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.
Files changed (217) hide show
  1. package/dist/adapters/express/index.cjs +1 -1
  2. package/dist/adapters/express/index.js +4 -4
  3. package/dist/adapters/fastify/index.cjs +1 -1
  4. package/dist/adapters/fastify/index.js +4 -4
  5. package/dist/adapters/{handler-CNn3q29F.cjs → handler-C0nUppAK.cjs} +3 -3
  6. package/dist/adapters/{handler-_TKfigrZ.js → handler-Odsi9_Rd.js} +125 -1
  7. package/dist/adapters/hono/index.cjs +1 -1
  8. package/dist/adapters/hono/index.js +4 -4
  9. package/dist/adapters/{locale-Dl_3R6hP.cjs → locale-Dv6bl_eU.cjs} +2 -2
  10. package/dist/adapters/{locale-BQQrZYhz.js → locale-Dy3LcTwN.js} +4 -2
  11. package/dist/adapters/mcp-tools.cjs +1 -1
  12. package/dist/adapters/mcp-tools.js +8 -3
  13. package/dist/adapters/mcp-transport-BCtjU0lC.cjs +40 -0
  14. package/dist/adapters/mcp-transport-DW_Uks-O.js +579 -0
  15. package/dist/adapters/nextjs/index.cjs +1 -1
  16. package/dist/adapters/nextjs/index.js +4 -4
  17. package/dist/adapters/{utils-DG8ti3FT.js → utils-Bd5mzZfk.js} +44 -18
  18. package/dist/adapters/utils-DklqMBHn.cjs +128 -0
  19. package/dist/adapters/utils.cjs +1 -1
  20. package/dist/adapters/utils.d.ts +6 -1
  21. package/dist/adapters/utils.js +1 -1
  22. package/dist/client/charts/chartConfigs.d.ts +34 -0
  23. package/dist/client/charts.js +12 -12
  24. package/dist/client/chunks/{DashboardEditModal-BBcB0E2g.js → DashboardEditModal-BiJwVv0b.js} +11 -11
  25. package/dist/client/chunks/DashboardEditModal-BiJwVv0b.js.map +1 -0
  26. package/dist/client/chunks/{FieldSearchModal-CisOov-_.js → FieldSearchModal-DdcbCwAi.js} +21 -5
  27. package/dist/client/chunks/{FieldSearchModal-CisOov-_.js.map → FieldSearchModal-DdcbCwAi.js.map} +1 -1
  28. package/dist/client/chunks/{RetentionCombinedChart-DiyZwiPv.js → RetentionCombinedChart-CivIny9P.js} +3 -3
  29. package/dist/client/chunks/{RetentionCombinedChart-DiyZwiPv.js.map → RetentionCombinedChart-CivIny9P.js.map} +1 -1
  30. package/dist/client/chunks/{RetentionHeatmap-usGF7BCo.js → RetentionHeatmap-BHCgwZmB.js} +2 -2
  31. package/dist/client/chunks/{RetentionHeatmap-usGF7BCo.js.map → RetentionHeatmap-BHCgwZmB.js.map} +1 -1
  32. package/dist/client/chunks/{af-ZA-xDmO5F0s.js → af-ZA-BdL6DOWy.js} +10 -3
  33. package/dist/client/chunks/af-ZA-BdL6DOWy.js.map +1 -0
  34. package/dist/client/chunks/{analysis-builder-0o1W-k3K.js → analysis-builder-MoGvbMRe.js} +245 -255
  35. package/dist/client/chunks/analysis-builder-MoGvbMRe.js.map +1 -0
  36. package/dist/client/chunks/{analysis-builder-shared-Cz4KAlIC.js → analysis-builder-shared-DmyRh2O3.js} +391 -459
  37. package/dist/client/chunks/analysis-builder-shared-DmyRh2O3.js.map +1 -0
  38. package/dist/client/chunks/{chart-activity-grid-VFFm85hC.js → chart-activity-grid-Bdb8U_NC.js} +14 -7
  39. package/dist/client/chunks/chart-activity-grid-Bdb8U_NC.js.map +1 -0
  40. package/dist/client/chunks/{chart-area-CwwIHTmK.js → chart-area-BZEnT-tf.js} +39 -38
  41. package/dist/client/chunks/chart-area-BZEnT-tf.js.map +1 -0
  42. package/dist/client/chunks/{chart-bar-Bmny922L.js → chart-bar-CTmdv_v0.js} +53 -52
  43. package/dist/client/chunks/chart-bar-CTmdv_v0.js.map +1 -0
  44. package/dist/client/chunks/{chart-box-plot-DM7GwtCV.js → chart-box-plot-CYObdFtp.js} +3 -3
  45. package/dist/client/chunks/{chart-box-plot-DM7GwtCV.js.map → chart-box-plot-CYObdFtp.js.map} +1 -1
  46. package/dist/client/chunks/{chart-bubble-DJOq4IpT.js → chart-bubble-CjFprySz.js} +3 -3
  47. package/dist/client/chunks/{chart-bubble-DJOq4IpT.js.map → chart-bubble-CjFprySz.js.map} +1 -1
  48. package/dist/client/chunks/{chart-candlestick-C2nzVCv1.js → chart-candlestick-D2HoM3B5.js} +3 -3
  49. package/dist/client/chunks/{chart-candlestick-C2nzVCv1.js.map → chart-candlestick-D2HoM3B5.js.map} +1 -1
  50. package/dist/client/chunks/{chart-config-activity-grid-C-EkgYoa.js → chart-config-activity-grid-Bom99j9m.js} +9 -2
  51. package/dist/client/chunks/chart-config-activity-grid-Bom99j9m.js.map +1 -0
  52. package/dist/client/chunks/{chart-config-area-CMZpbIah.js → chart-config-area-DtYTKZxS.js} +10 -2
  53. package/dist/client/chunks/chart-config-area-DtYTKZxS.js.map +1 -0
  54. package/dist/client/chunks/{chart-config-bar-B8_V4YLg.js → chart-config-bar-7v5JVY2y.js} +10 -2
  55. package/dist/client/chunks/chart-config-bar-7v5JVY2y.js.map +1 -0
  56. package/dist/client/chunks/{chart-config-box-plot-Dwj7sEbU.js → chart-config-box-plot-BHGv-wqu.js} +9 -2
  57. package/dist/client/chunks/chart-config-box-plot-BHGv-wqu.js.map +1 -0
  58. package/dist/client/chunks/{chart-config-bubble-B0w0ZVp4.js → chart-config-bubble-BkHm-mfu.js} +9 -2
  59. package/dist/client/chunks/chart-config-bubble-BkHm-mfu.js.map +1 -0
  60. package/dist/client/chunks/{chart-config-candlestick-Bvo3zeIn.js → chart-config-candlestick-D1aaHvTe.js} +9 -2
  61. package/dist/client/chunks/chart-config-candlestick-D1aaHvTe.js.map +1 -0
  62. package/dist/client/chunks/{chart-config-data-table-BQXSn4b_.js → chart-config-data-table-B_Hw8w2J.js} +2 -2
  63. package/dist/client/chunks/{chart-config-data-table-BQXSn4b_.js.map → chart-config-data-table-B_Hw8w2J.js.map} +1 -1
  64. package/dist/client/chunks/{chart-config-funnel-BzEsHmjR.js → chart-config-funnel-DL8PSGuL.js} +2 -2
  65. package/dist/client/chunks/{chart-config-funnel-BzEsHmjR.js.map → chart-config-funnel-DL8PSGuL.js.map} +1 -1
  66. package/dist/client/chunks/{chart-config-gauge-C5ZiyZy7.js → chart-config-gauge-BVLxuA3f.js} +6 -2
  67. package/dist/client/chunks/chart-config-gauge-BVLxuA3f.js.map +1 -0
  68. package/dist/client/chunks/{chart-config-heat-map-Cv8qNnVP.js → chart-config-heat-map-CjudGdui.js} +9 -2
  69. package/dist/client/chunks/chart-config-heat-map-CjudGdui.js.map +1 -0
  70. package/dist/client/chunks/{chart-config-kpi-delta-BraHQc2E.js → chart-config-kpi-delta-Bf47hGqD.js} +9 -2
  71. package/dist/client/chunks/chart-config-kpi-delta-Bf47hGqD.js.map +1 -0
  72. package/dist/client/chunks/{chart-config-kpi-number-CeCkx7mC.js → chart-config-kpi-number-QTQRNgOi.js} +6 -2
  73. package/dist/client/chunks/chart-config-kpi-number-QTQRNgOi.js.map +1 -0
  74. package/dist/client/chunks/{chart-config-kpi-text-CImM3SvH.js → chart-config-kpi-text-BRze2eyh.js} +6 -2
  75. package/dist/client/chunks/chart-config-kpi-text-BRze2eyh.js.map +1 -0
  76. package/dist/client/chunks/{chart-config-line-BVKapAQK.js → chart-config-line-BFeCqmKH.js} +10 -2
  77. package/dist/client/chunks/chart-config-line-BFeCqmKH.js.map +1 -0
  78. package/dist/client/chunks/{chart-config-markdown-C-_g_8te.js → chart-config-markdown-EWYckwXv.js} +2 -2
  79. package/dist/client/chunks/{chart-config-markdown-C-_g_8te.js.map → chart-config-markdown-EWYckwXv.js.map} +1 -1
  80. package/dist/client/chunks/{chart-config-measure-profile-KTVV1gO3.js → chart-config-measure-profile-B9nIhqKR.js} +6 -2
  81. package/dist/client/chunks/chart-config-measure-profile-B9nIhqKR.js.map +1 -0
  82. package/dist/client/chunks/{chart-config-pie-BZxVl25X.js → chart-config-pie-6LHtEyMM.js} +9 -2
  83. package/dist/client/chunks/chart-config-pie-6LHtEyMM.js.map +1 -0
  84. package/dist/client/chunks/{chart-config-radar-B7FByX3t.js → chart-config-radar-BuLS6Inn.js} +9 -2
  85. package/dist/client/chunks/chart-config-radar-BuLS6Inn.js.map +1 -0
  86. package/dist/client/chunks/{chart-config-radial-bar-UfW_3yyX.js → chart-config-radial-bar-BP0eMohx.js} +9 -2
  87. package/dist/client/chunks/chart-config-radial-bar-BP0eMohx.js.map +1 -0
  88. package/dist/client/chunks/{chart-config-sankey-DGAThN9i.js → chart-config-sankey-CT8oGIGP.js} +2 -2
  89. package/dist/client/chunks/{chart-config-sankey-DGAThN9i.js.map → chart-config-sankey-CT8oGIGP.js.map} +1 -1
  90. package/dist/client/chunks/{chart-config-scatter-BVVJuOnt.js → chart-config-scatter-DOSpN07Z.js} +9 -2
  91. package/dist/client/chunks/chart-config-scatter-DOSpN07Z.js.map +1 -0
  92. package/dist/client/chunks/{chart-config-sunburst-utejM2YS.js → chart-config-sunburst-BSUX_YoB.js} +2 -2
  93. package/dist/client/chunks/{chart-config-sunburst-utejM2YS.js.map → chart-config-sunburst-BSUX_YoB.js.map} +1 -1
  94. package/dist/client/chunks/{chart-config-tree-map-IHp97OyV.js → chart-config-tree-map-D8GuAgVB.js} +9 -2
  95. package/dist/client/chunks/chart-config-tree-map-D8GuAgVB.js.map +1 -0
  96. package/dist/client/chunks/{chart-config-waterfall-BdqG1V-x.js → chart-config-waterfall-BDi7BoJP.js} +9 -2
  97. package/dist/client/chunks/chart-config-waterfall-BDi7BoJP.js.map +1 -0
  98. package/dist/client/chunks/{chart-data-table-zZtwLf55.js → chart-data-table-DT4uBZaq.js} +92 -90
  99. package/dist/client/chunks/{chart-data-table-zZtwLf55.js.map → chart-data-table-DT4uBZaq.js.map} +1 -1
  100. package/dist/client/chunks/{chart-funnel-COTJy8BP.js → chart-funnel-B9crR3b3.js} +3 -3
  101. package/dist/client/chunks/{chart-funnel-COTJy8BP.js.map → chart-funnel-B9crR3b3.js.map} +1 -1
  102. package/dist/client/chunks/{chart-gauge-C8lIneI0.js → chart-gauge-DAMFsicz.js} +3 -3
  103. package/dist/client/chunks/{chart-gauge-C8lIneI0.js.map → chart-gauge-DAMFsicz.js.map} +1 -1
  104. package/dist/client/chunks/{chart-heat-map-BJXt3RMt.js → chart-heat-map-BxgM_X1G.js} +3 -3
  105. package/dist/client/chunks/{chart-heat-map-BJXt3RMt.js.map → chart-heat-map-BxgM_X1G.js.map} +1 -1
  106. package/dist/client/chunks/{chart-kpi-delta-DHkNqufb.js → chart-kpi-delta-DJKL02Ut.js} +75 -73
  107. package/dist/client/chunks/{chart-kpi-delta-DHkNqufb.js.map → chart-kpi-delta-DJKL02Ut.js.map} +1 -1
  108. package/dist/client/chunks/{chart-kpi-number-BrXw7m-S.js → chart-kpi-number-CuNEYbRx.js} +66 -65
  109. package/dist/client/chunks/{chart-kpi-number-BrXw7m-S.js.map → chart-kpi-number-CuNEYbRx.js.map} +1 -1
  110. package/dist/client/chunks/{chart-kpi-text-D0plngLV.js → chart-kpi-text-u8FJaZDQ.js} +27 -26
  111. package/dist/client/chunks/{chart-kpi-text-D0plngLV.js.map → chart-kpi-text-u8FJaZDQ.js.map} +1 -1
  112. package/dist/client/chunks/{chart-line-DKvW32U-.js → chart-line-BZhzOjRl.js} +119 -118
  113. package/dist/client/chunks/chart-line-BZhzOjRl.js.map +1 -0
  114. package/dist/client/chunks/{chart-markdown-CJU2hUq3.js → chart-markdown-DEtjn8gx.js} +70 -69
  115. package/dist/client/chunks/chart-markdown-DEtjn8gx.js.map +1 -0
  116. package/dist/client/chunks/{chart-measure-profile-DNT_tbh4.js → chart-measure-profile-BnpIOS4Q.js} +4 -4
  117. package/dist/client/chunks/{chart-measure-profile-DNT_tbh4.js.map → chart-measure-profile-BnpIOS4Q.js.map} +1 -1
  118. package/dist/client/chunks/{chart-pie-CzYnncO-.js → chart-pie-CsdzxmSK.js} +4 -4
  119. package/dist/client/chunks/{chart-pie-CzYnncO-.js.map → chart-pie-CsdzxmSK.js.map} +1 -1
  120. package/dist/client/chunks/{chart-radar-8iAt3QZl.js → chart-radar-C_9RwMKw.js} +4 -4
  121. package/dist/client/chunks/{chart-radar-8iAt3QZl.js.map → chart-radar-C_9RwMKw.js.map} +1 -1
  122. package/dist/client/chunks/{chart-radial-bar-CJbG7RIe.js → chart-radial-bar-CewRelyQ.js} +4 -4
  123. package/dist/client/chunks/{chart-radial-bar-CJbG7RIe.js.map → chart-radial-bar-CewRelyQ.js.map} +1 -1
  124. package/dist/client/chunks/{chart-sankey-C-wLBUmb.js → chart-sankey-ItraHWH1.js} +3 -3
  125. package/dist/client/chunks/{chart-sankey-C-wLBUmb.js.map → chart-sankey-ItraHWH1.js.map} +1 -1
  126. package/dist/client/chunks/{chart-scatter-NMjD1lbW.js → chart-scatter-k2IJbO2Y.js} +4 -4
  127. package/dist/client/chunks/{chart-scatter-NMjD1lbW.js.map → chart-scatter-k2IJbO2Y.js.map} +1 -1
  128. package/dist/client/chunks/{chart-sunburst-HtJ-LJ7n.js → chart-sunburst-NsFRuqi9.js} +4 -4
  129. package/dist/client/chunks/{chart-sunburst-HtJ-LJ7n.js.map → chart-sunburst-NsFRuqi9.js.map} +1 -1
  130. package/dist/client/chunks/{chart-tree-map-CetaLMt8.js → chart-tree-map-Cj_ewpwJ.js} +4 -4
  131. package/dist/client/chunks/{chart-tree-map-CetaLMt8.js.map → chart-tree-map-Cj_ewpwJ.js.map} +1 -1
  132. package/dist/client/chunks/{chart-waterfall-ontNp1Sd.js → chart-waterfall-C-MTFcOz.js} +4 -4
  133. package/dist/client/chunks/{chart-waterfall-ontNp1Sd.js.map → chart-waterfall-C-MTFcOz.js.map} +1 -1
  134. package/dist/client/chunks/{charts-core-B5UXUg6_.js → charts-core-vZA3zPKb.js} +2 -2
  135. package/dist/client/chunks/{charts-core-B5UXUg6_.js.map → charts-core-vZA3zPKb.js.map} +1 -1
  136. package/dist/client/chunks/{core-Dk6z6kC0.js → core-Su6tIYhp.js} +5 -3
  137. package/dist/client/chunks/{core-Dk6z6kC0.js.map → core-Su6tIYhp.js.map} +1 -1
  138. package/dist/client/chunks/{dist-eZurnOde.js → dist-BTq3NoG3.js} +38 -32
  139. package/dist/client/chunks/dist-BTq3NoG3.js.map +1 -0
  140. package/dist/client/chunks/{en-US-5xPTdCXg.js → en-US-D-1JPTPv.js} +1 -1
  141. package/dist/client/chunks/{en-US-5xPTdCXg.js.map → en-US-D-1JPTPv.js.map} +1 -1
  142. package/dist/client/chunks/{exceljs.min-DaJsLlWM.js → exceljs.min-Dc1cBQ5l.js} +71 -45
  143. package/dist/client/chunks/{exceljs.min-DaJsLlWM.js.map → exceljs.min-Dc1cBQ5l.js.map} +1 -1
  144. package/dist/client/chunks/{javascript-DFvvCuoP.js → javascript-YXkoOgWa.js} +1 -1
  145. package/dist/client/chunks/{javascript-DFvvCuoP.js.map → javascript-YXkoOgWa.js.map} +1 -1
  146. package/dist/client/chunks/{json-BBm9TlrA.js → json-O7MKB_4V.js} +1 -1
  147. package/dist/client/chunks/{json-BBm9TlrA.js.map → json-O7MKB_4V.js.map} +1 -1
  148. package/dist/client/chunks/{nl-NL-DDf0OdfW.js → nl-NL-BErZMygi.js} +10 -3
  149. package/dist/client/chunks/nl-NL-BErZMygi.js.map +1 -0
  150. package/dist/client/chunks/{rolldown-runtime-CCl2IeXn.js → rolldown-runtime-CKnJJeip.js} +1 -1
  151. package/dist/client/chunks/{schema-visualization-cnB2xZxn.js → schema-visualization-BY9L2nBQ.js} +294 -290
  152. package/dist/client/chunks/{schema-visualization-cnB2xZxn.js.map → schema-visualization-BY9L2nBQ.js.map} +1 -1
  153. package/dist/client/chunks/{sql-k0GA6oZ_.js → sql-r2a-9CCK.js} +1 -1
  154. package/dist/client/chunks/{sql-k0GA6oZ_.js.map → sql-r2a-9CCK.js.map} +1 -1
  155. package/dist/client/chunks/{syntaxHighlighting-D8J6Yt9j.js → syntaxHighlighting-5zHcjn27.js} +2 -2
  156. package/dist/client/chunks/{syntaxHighlighting-D8J6Yt9j.js.map → syntaxHighlighting-5zHcjn27.js.map} +1 -1
  157. package/dist/client/chunks/{useDebounce-BOBSvhHy.js → useDebounce-DGfYXtkm.js} +4 -4
  158. package/dist/client/chunks/{useDebounce-BOBSvhHy.js.map → useDebounce-DGfYXtkm.js.map} +1 -1
  159. package/dist/client/chunks/{useExplainAI-B_Pi4eXW.js → useExplainAI-CD0KuKwY.js} +4 -4
  160. package/dist/client/chunks/{useExplainAI-B_Pi4eXW.js.map → useExplainAI-CD0KuKwY.js.map} +1 -1
  161. package/dist/client/chunks/{utils-BIuqPQuJ.js → utils-D2SCtAkZ.js} +2 -2
  162. package/dist/client/chunks/{utils-BIuqPQuJ.js.map → utils-D2SCtAkZ.js.map} +1 -1
  163. package/dist/client/chunks/{vendor-BxLCTfvm.js → vendor-CfR5hJGc.js} +3 -3
  164. package/dist/client/chunks/{vendor-BxLCTfvm.js.map → vendor-CfR5hJGc.js.map} +1 -1
  165. package/dist/client/components/AnalysisBuilder/types.d.ts +2 -2
  166. package/dist/client/components.js +3 -3
  167. package/dist/client/hooks.js +3 -3
  168. package/dist/client/icons.js +1 -1
  169. package/dist/client/index.js +15 -15
  170. package/dist/client/providers.js +1 -1
  171. package/dist/client/schema.js +1 -1
  172. package/dist/client/shared/chartDefaults.d.ts +5 -10
  173. package/dist/client/types.d.ts +1 -0
  174. package/dist/client/utils.js +6 -6
  175. package/dist/client-bundle-stats.html +1 -1
  176. package/dist/mcp-app/mcp-app.html +48 -48
  177. package/dist/server/index.cjs +7 -7
  178. package/dist/server/index.js +159 -16
  179. package/package.json +2 -2
  180. package/dist/adapters/mcp-transport-CkyawtUT.cjs +0 -40
  181. package/dist/adapters/mcp-transport-DSbd6M_u.js +0 -586
  182. package/dist/adapters/utils-DrWvXf0G.cjs +0 -128
  183. package/dist/client/chunks/DashboardEditModal-BBcB0E2g.js.map +0 -1
  184. package/dist/client/chunks/KpiDelta-D09hA_UJ.js +0 -2
  185. package/dist/client/chunks/KpiNumber-B7F9F9fC.js +0 -2
  186. package/dist/client/chunks/KpiText-C3ZXOF8b.js +0 -2
  187. package/dist/client/chunks/SchemaVisualization-DP4k1fPp.js +0 -2
  188. package/dist/client/chunks/SchemaVisualizationLazy-Brqv_PY9.js +0 -2
  189. package/dist/client/chunks/af-ZA-xDmO5F0s.js.map +0 -1
  190. package/dist/client/chunks/analysis-builder-0o1W-k3K.js.map +0 -1
  191. package/dist/client/chunks/analysis-builder-shared-Cz4KAlIC.js.map +0 -1
  192. package/dist/client/chunks/chart-activity-grid-VFFm85hC.js.map +0 -1
  193. package/dist/client/chunks/chart-area-CwwIHTmK.js.map +0 -1
  194. package/dist/client/chunks/chart-bar-Bmny922L.js.map +0 -1
  195. package/dist/client/chunks/chart-config-activity-grid-C-EkgYoa.js.map +0 -1
  196. package/dist/client/chunks/chart-config-area-CMZpbIah.js.map +0 -1
  197. package/dist/client/chunks/chart-config-bar-B8_V4YLg.js.map +0 -1
  198. package/dist/client/chunks/chart-config-box-plot-Dwj7sEbU.js.map +0 -1
  199. package/dist/client/chunks/chart-config-bubble-B0w0ZVp4.js.map +0 -1
  200. package/dist/client/chunks/chart-config-candlestick-Bvo3zeIn.js.map +0 -1
  201. package/dist/client/chunks/chart-config-gauge-C5ZiyZy7.js.map +0 -1
  202. package/dist/client/chunks/chart-config-heat-map-Cv8qNnVP.js.map +0 -1
  203. package/dist/client/chunks/chart-config-kpi-delta-BraHQc2E.js.map +0 -1
  204. package/dist/client/chunks/chart-config-kpi-number-CeCkx7mC.js.map +0 -1
  205. package/dist/client/chunks/chart-config-kpi-text-CImM3SvH.js.map +0 -1
  206. package/dist/client/chunks/chart-config-line-BVKapAQK.js.map +0 -1
  207. package/dist/client/chunks/chart-config-measure-profile-KTVV1gO3.js.map +0 -1
  208. package/dist/client/chunks/chart-config-pie-BZxVl25X.js.map +0 -1
  209. package/dist/client/chunks/chart-config-radar-B7FByX3t.js.map +0 -1
  210. package/dist/client/chunks/chart-config-radial-bar-UfW_3yyX.js.map +0 -1
  211. package/dist/client/chunks/chart-config-scatter-BVVJuOnt.js.map +0 -1
  212. package/dist/client/chunks/chart-config-tree-map-IHp97OyV.js.map +0 -1
  213. package/dist/client/chunks/chart-config-waterfall-BdqG1V-x.js.map +0 -1
  214. package/dist/client/chunks/chart-line-DKvW32U-.js.map +0 -1
  215. package/dist/client/chunks/chart-markdown-CJU2hUq3.js.map +0 -1
  216. package/dist/client/chunks/dist-eZurnOde.js.map +0 -1
  217. 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-BxLCTfvm.js";
2
- import { A as s, V as c, u as l } from "./chart-data-table-zZtwLf55.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-BOBSvhHy.js";
4
- import { a as S, i as C } from "./useExplainAI-B_Pi4eXW.js";
5
- import { r as ee, s as w } from "./chart-funnel-COTJy8BP.js";
6
- import { F as te, k as T } from "./chart-activity-grid-VFFm85hC.js";
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 oe, s as P, t as se, x as F } from "./FieldSearchModal-CisOov-_.js";
9
- import { n as ce } from "./charts-core-B5UXUg6_.js";
10
- import I, { createContext as le, memo as L, useCallback as R, useContext as ue, useEffect as z, useMemo as B, useRef as V, useState as H } from "react";
11
- import { Fragment as U, jsx as W, jsxs as G } from "react/jsx-runtime";
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) => F(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] = H(e), [c, l] = H(!1), [h, g] = H(!1), [_, y] = H(!1), [b, S] = H("this_month"), [C, ee] = H(1), [w, te] = H(""), [E, ne] = H(null), [D, O] = H(-1), k = V(null), A = V(null), M = x(w, 300), N = j(o.member, t), re = N?.field.type || "string", ie = re === "time", oe = N?.fieldType === "measure", P = N?.fieldType === "dimension", se = ae(o.member, t), F = p[o.operator], ce = m(re), I = ie && o.operator === "inDateRange", le = R(() => [
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) && P && !ie, [
229
+ ].includes(o.operator) && F && !ie, [
230
230
  o.operator,
231
- P,
231
+ F,
232
232
  ie
233
- ])(), { values: L, loading: ue, error: B, searchValues: de } = v(o.member, le);
234
- z(() => {
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]), z(() => {
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
- }, []), z(() => {
253
- h && le && de && de("", !0), h || O(-1);
252
+ }, []), B(() => {
253
+ h && ce && de && de("", !0), h || O(-1);
254
254
  }, [
255
255
  h,
256
- le,
256
+ ce,
257
257
  de
258
- ]), z(() => {
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]), z(() => {
264
- h && le && de && M !== void 0 && de(M);
263
+ }, [D]), B(() => {
264
+ h && ce && de && M !== void 0 && de(M);
265
265
  }, [
266
266
  M,
267
267
  h,
268
- le,
268
+ ce,
269
269
  de
270
- ]), z(() => {
271
- if (!(!I || !o.dateRange)) if (Array.isArray(o.dateRange)) S("custom");
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, I]);
290
- let fe = R((e) => {
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 = R((e, t) => {
296
+ }, [o.member]), pe = z((e, t) => {
297
297
  let n = t?.shiftKey ?? !1, r = o.values || [];
298
- F?.supportsMultipleValues ? (r.includes(e) ? s({
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, F?.supportsMultipleValues]), me = R((e) => {
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 = R((e) => {
315
- if (!(!h || L.length === 0)) switch (e.key) {
314
+ }, [o]), he = z((e) => {
315
+ if (!(!h || R.length === 0)) switch (e.key) {
316
316
  case "ArrowDown":
317
- e.preventDefault(), O((e) => e < L.length - 1 ? e + 1 : 0);
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 : L.length - 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 < L.length && pe(L[D], { shiftKey: e.shiftKey });
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
- L,
331
+ R,
332
332
  D,
333
333
  pe
334
- ]), ge = R((e) => {
334
+ ]), ge = z((e) => {
335
335
  let t = e.target.value;
336
- if (F?.valueType === "number") {
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, F?.valueType]), _e = R((e) => {
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 = R((e) => {
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 = R((e) => {
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 = R((e) => {
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 = R((e) => {
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 = R((e) => {
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 = R((e) => {
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(ce.find((e) => e.operator === o.operator)?.label || o.operator), Ee = a(d.find((e) => e.value === b)?.label || "filter.modal.selectRange"), De = ie ? ye : oe ? be : Y, Oe = () => F?.requiresValues ? I ? /* @__PURE__ */ G("div", {
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
- }) : F?.valueType === "date" ? /* @__PURE__ */ W("input", {
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
- }) : F?.valueType === "number" ? /* @__PURE__ */ W("input", {
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
- }) : le ? /* @__PURE__ */ G("div", {
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(ue ? "filter.modal.loading" : "filter.modal.selectValue")
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: ue ? /* @__PURE__ */ W("div", {
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
- }) : B ? /* @__PURE__ */ G("div", {
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"), B]
542
- }) : L.length === 0 ? /* @__PURE__ */ W("div", {
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
- }) : L.map((e, t) => {
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
- F?.supportsMultipleValues && /* @__PURE__ */ W("p", {
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(U, { children: /* @__PURE__ */ W("div", {
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: se
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: ce.map((e) => /* @__PURE__ */ W("button", {
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] = H(!1), s = V(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(U, { children: [/* @__PURE__ */ G("div", {
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] = H(!1), u = V(null);
729
- z(() => {
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 = R(() => {
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 = R((t, r) => {
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 = R((t) => {
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 = R((t) => {
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 = R(() => {
767
+ }, [e, n]), h = z(() => {
768
768
  i([]), l(!1);
769
- }, [i]), g = R((e) => (t = []) => {
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] = H(!1), [c, l] = H(!1), d = V([]), f = Ie(e), p = R((e) => {
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 = R((e) => {
898
+ }, []), m = z((e) => {
899
899
  e.preventDefault(), e.stopPropagation(), l(!1);
900
- }, []), h = R((e) => {
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), _ = R((t, r, i) => {
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 = R((t, r) => {
913
+ }, [e, n]), v = z((t, r) => {
914
914
  let i = [...e];
915
915
  i[t] = r, n(i);
916
- }, [e, n]), y = R((t) => {
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 = R(() => {
926
+ }, [e, n]), b = z(() => {
927
927
  n([]);
928
- }, [n]), x = R(() => {
928
+ }, [n]), x = z(() => {
929
929
  d.current = [], s(!0);
930
- }, []), S = R((e) => (t = []) => {
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(ce, { children: [a("analysis.sections.filters"), f > 0 && /* @__PURE__ */ G("span", {
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(se, {
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, n) {
1019
- let r = t.length, i = Ue(n).length, a = We(n).length, o = n.length;
1020
- switch (e) {
1021
- case "table":
1022
- case "markdown": return { available: !0 };
1023
- case "kpiNumber":
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] = Ge(i, e, t);
1031
+ for (let i of n) r[i] = Ke(i, e, t);
1105
1032
  return r;
1106
1033
  }
1107
- function qe(e, t, n) {
1108
- if (Ge(n, e, t).available || e.length === 0 && t.length === 0) return n;
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 Je(e, t, n) {
1113
- let r = qe(e, t, n);
1039
+ function Ye(e, t, n) {
1040
+ let r = Je(e, t, n);
1114
1041
  return {
1115
1042
  chartType: r,
1116
- chartConfig: Ye(r, e, t)
1043
+ chartConfig: Xe(r, e, t)
1117
1044
  };
1118
1045
  }
1119
- function Ye(e, t, n) {
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 Xe(e, t, n, r) {
1174
- if (r && Ge(n, e, t).available) return null;
1175
- let i = qe(e, t, n);
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 Ze(e) {
1107
+ function Qe(e) {
1181
1108
  return typeof e == "string" ? e : typeof e == "object" && e ? JSON.stringify(e) : String(e ?? "");
1182
1109
  }
1183
- var Qe = {
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
- }, $e = {
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
- }, et = {
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 tt({ assessment: e, reason: t }) {
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 ${Qe[e]}`,
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: Ze(t)
1144
+ children: Qe(t)
1218
1145
  })]
1219
1146
  });
1220
1147
  }
1221
- function nt({ issue: e }) {
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 ${et[e.severity]}`,
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: Ze(e.description)
1160
+ children: Qe(e.description)
1234
1161
  })]
1235
1162
  });
1236
1163
  }
1237
- function rt({ text: e }) {
1238
- let { t } = T(), [n, r] = I.useState(!1), i = I.useRef(null);
1239
- return I.useEffect(() => () => {
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 it({ rec: e }) {
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 ${$e[e.severity]}`,
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: Ze(e.title)
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: Ze(e.description)
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(rt, { text: e.sql })
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(rt, { text: e.cubeCode })
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
- Ze(e.estimatedImpact)
1234
+ Qe(e.estimatedImpact)
1308
1235
  ]
1309
1236
  })
1310
1237
  ]
1311
1238
  });
1312
1239
  }
1313
- function at({ analysis: e, onClose: t, onClear: n }) {
1240
+ function ot({ analysis: e, onClose: t, onClear: n }) {
1314
1241
  let { t: r } = T(), i = t || n;
1315
- return I.useEffect(() => {
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]), I.useEffect(() => (document.body.style.overflow = "hidden", () => {
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(tt, {
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: Ze(e.summary)
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: Ze(e.queryUnderstanding)
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(nt, { issue: e }, t))
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(it, { rec: e }, t))
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 ot = L(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" }) {
1424
- let { t: v } = T(), [y, b] = H(!1), [x, S] = H(!1), C = e ? e.sql + (e.params && e.params.length > 0 ? "\n\n-- Parameters:\n" + JSON.stringify(e.params, null, 2) : "") : "", ee = () => {
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(U, { children: [/* @__PURE__ */ W("span", {
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(U, { children: `✨ ${v("debug.aiAnalysis")}` })
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(U, { children: [/* @__PURE__ */ W("h4", {
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(U, { children: [/* @__PURE__ */ W("h4", {
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(U, { children: [/* @__PURE__ */ G("label", {
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(U, { children: [/* @__PURE__ */ W("h4", {
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(at, {
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 st() {
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 ct(e) {
1495
+ function lt(e) {
1569
1496
  return e.map((e) => e.field);
1570
1497
  }
1571
- function lt(e, t) {
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 ut(e) {
1590
- let { dimensions: t, timeDimensions: n } = lt(e.breakdowns, e.filters), r = {
1591
- measures: ct(e.metrics),
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 dt(e) {
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 ft(e) {
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 pt(e) {
1549
+ function mt(e) {
1623
1550
  return {
1624
- metrics: dt(e.measures || []),
1625
- breakdowns: ft(e),
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 mt(e) {
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: [st()],
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 (mt(t.query)) {
1661
- let e = t.query, n = e.queries.map(pt);
1662
- return n.length === 0 && n.push(st()), {
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: [pt(t.query)],
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(ut), i = r.length === 1 && e.mergeStrategy === "concat" ? r[0] : {
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.some((e) => e.metrics.length > 0) || t.push("At least one metric is required"), e.queryStates.forEach((t, r) => {
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(), ht = !1;
1720
- function gt() {
1721
- ht ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel", P), Z.has("flow") || Z.set("flow", oe), Z.has("retention") || Z.set("retention", A), !0);
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
- gt();
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 gt(), Z.has(e);
1658
+ return _t(), Z.has(e);
1735
1659
  },
1736
1660
  getRegisteredTypes() {
1737
- return gt(), Array.from(Z.keys());
1661
+ return _t(), Array.from(Z.keys());
1738
1662
  },
1739
1663
  clear() {
1740
- Z.clear(), ht = !1;
1664
+ Z.clear(), gt = !1;
1741
1665
  }
1742
- }, _t = () => ({
1666
+ }, vt = () => ({
1743
1667
  analysisType: "query",
1744
1668
  charts: {
1745
1669
  query: X.getDefaultChartConfig(),
1746
- funnel: P.getDefaultChartConfig(),
1747
- flow: oe.getDefaultChartConfig(),
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
- }), vt = (e, t, n) => ({
1759
- ..._t(),
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
- }), yt = () => ({
1896
+ }), bt = () => ({
1973
1897
  queryStates: [K()],
1974
1898
  activeQueryIndex: 0,
1975
1899
  mergeStrategy: "concat"
1976
- }), bt = (e, t, n) => ({
1977
- ...yt(),
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
- }), xt = () => ({
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
- }), St = (e, t, n) => ({
2243
- ...xt(),
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
- }), Ct = () => ({
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
- }), wt = (e, t, n) => ({
2324
- ...Ct(),
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
- }), Tt = () => ({ ...E }), Et = (e, t, n) => ({
2395
- ...Tt(),
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
- }), Dt = {
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
- }, Ot = () => ({
2401
+ }, kt = () => ({
2478
2402
  activeTab: "query",
2479
2403
  activeView: "chart",
2480
2404
  displayLimit: 100,
2481
2405
  showFieldModal: !1,
2482
2406
  fieldModalMode: "metrics",
2483
- aiState: Dt
2484
- }), kt = (e, t, n) => ({
2485
- ...Ot(),
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: { ...Dt }
2493
+ aiState: { ...Ot }
2570
2494
  };
2571
2495
  })
2572
2496
  });
2573
2497
  //#endregion
2574
2498
  //#region src/client/stores/analysisBuilderStore.tsx
2575
- function At(e) {
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 jt(e) {
2542
+ function Mt(e) {
2619
2543
  return "queries" in e && Array.isArray(e.queries);
2620
2544
  }
2621
- function Mt(e) {
2545
+ function Nt(e) {
2622
2546
  if (e.initialAnalysisType === "funnel" && e.initialFunnelState) {
2623
- let t = P.getDefaultChartConfig();
2624
- return P.save({
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 = oe.getDefaultChartConfig();
2638
- return oe.save({
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
- jt(t) ? (n = t.queries.map(At), t.mergeStrategy && (r = t.mergeStrategy)) : n = [At(t)];
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 Nt(e, t) {
2631
+ function Pt(e, t) {
2708
2632
  return {
2709
2633
  reset: () => {
2710
2634
  e({
2711
- ..._t(),
2712
- ...yt(),
2713
- ...xt(),
2714
- ...Ct(),
2715
- ...Tt(),
2635
+ ...vt(),
2636
+ ...bt(),
2637
+ ...St(),
2638
+ ...wt(),
2639
+ ...Et(),
2716
2640
  charts: {
2717
2641
  query: X.getDefaultChartConfig(),
2718
- funnel: P.getDefaultChartConfig(),
2719
- flow: oe.getDefaultChartConfig(),
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
- ...xt(),
2657
+ ...St(),
2734
2658
  charts: {
2735
2659
  ...e.charts,
2736
- funnel: P.getDefaultChartConfig()
2660
+ funnel: F.getDefaultChartConfig()
2737
2661
  }
2738
2662
  };
2739
2663
  case "flow": return {
2740
- ...Ct(),
2664
+ ...wt(),
2741
2665
  charts: {
2742
2666
  ...e.charts,
2743
- flow: oe.getDefaultChartConfig()
2667
+ flow: P.getDefaultChartConfig()
2744
2668
  }
2745
2669
  };
2746
2670
  case "retention": return {
2747
- ...Tt(),
2671
+ ...Et(),
2748
2672
  charts: {
2749
2673
  ...e.charts,
2750
2674
  retention: A.getDefaultChartConfig()
2751
2675
  }
2752
2676
  };
2753
2677
  default: return {
2754
- ...yt(),
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 Pt(n = {}) {
2781
- let r = Mt(n), o = (e, t, n) => ({
2782
- ...vt(e, t, n),
2783
- ...bt(e, t, n),
2784
- ...St(e, t, n),
2785
- ...wt(e, t, n),
2786
- ...Et(e, t, n),
2787
- ...kt(e, t, n),
2788
- ...Nt(e, t)
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 Ft = le(null);
2824
- function It({ children: e, initialQuery: t, initialChartConfig: n, disableLocalStorage: r, storageKey: i, initialAnalysisType: a, initialFunnelState: o, initialFlowState: s, initialRetentionState: c, initialActiveView: l }) {
2825
- let u = V(null);
2826
- return u.current ||= Pt({
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(Ft.Provider, {
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 = ue(Ft);
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 Lt() {
2847
- let e = ue(Ft);
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 Rt = (e) => e.queryStates[e.activeQueryIndex] || K(), zt = (e) => Rt(e).metrics, Bt = (e) => Rt(e).breakdowns, Vt = (e) => Rt(e).filters, Ht = (e) => {
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
- }, Ut = (e) => ({
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
- }), Wt = (e) => ({
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
- }), Gt = (e) => ({
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 Kt(e) {
2812
+ function qt(e) {
2889
2813
  return e.timeDimensions || [];
2890
2814
  }
2891
- function qt(e) {
2815
+ function Jt(e) {
2892
2816
  let t = [];
2893
2817
  if (e.length < 2) return t;
2894
- let n = Kt(e[0]);
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 = Kt(e[r]);
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 Jt(e, t) {
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 Yt(e) {
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 Xt(e) {
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 Zt(e, t, n = []) {
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(...Yt(e)), i.push(...Xt(e)), t === "merge" && (r.push(...qt(e)), n.length > 0 && r.push(...Jt(e, n))), {
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 Qt(e) {
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 $t(e) {
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 en() {
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 = B(() => {
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 = B(() => {
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: B(() => {
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: B(() => d ? Zt(m, n, f || []) : null, [
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: B(() => p.measures && p.measures.length > 0 || p.dimensions && p.dimensions.length > 0 || p.timeDimensions && p.timeDimensions.length > 0, [p]),
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 tn(e) {
2963
+ function nn(e) {
3040
2964
  let { queryState: t, queryStates: n, isMultiQueryMode: r, mergeStrategy: i, activeQueryIndex: a } = e;
3041
2965
  return {
3042
- combinedMetrics: B(() => {
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: B(() => {
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: B(() => i === "merge" && a > 0 ? n[0]?.breakdowns || [] : t.breakdowns, [
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 nn(e) {
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 = B(() => D || !x || !c || n.length < 2 ? null : ee(n, c), [
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 }), oe = S(p, { skip: !T || !p }), P = T ? N.isLoading || N.isDebouncing : w ? M.isLoading || M.isDebouncing : x ? j.isExecuting || j.isDebouncing : E ? A.isLoading : k.isLoading, se = T ? N.isFetching : w ? M.isFetching : x ? j.isExecuting : E ? A.isFetching : k.isFetching, F = T ? N.error : w ? M.error : x ? j.error : E ? A.error : k.error, ce = !!(k.debouncedQuery || A.debouncedConfig || !j.isDebouncing || !M.isDebouncing || !N.isDebouncing), I = R((e) => {
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
- ]), le = B(() => {
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 ? P && !e ? "loading" : se && e ? "refreshing" : F ? "error" : e ? "success" : "idle" : "idle";
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
- ]), L = B(() => T && N.chartData ? N.chartData.rows.map((e) => ({
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
- ]), ue = B(() => x && j.stepResults ? j.stepResults.map((e) => e.data) : !E || !A.perQueryData ? null : A.perQueryData, [
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
- ]), z = x && j.executedQueries?.length > 0 ? j.executedQueries : null, V = x ? j.serverQuery : null, H = x ? ie.debugData : null, U = 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 ? oe.debugData : null, me = B(() => T ? N.needsRefresh : w ? M.needsRefresh : x ? j.needsRefresh : E ? !1 : k.needsRefresh, [
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 = B(() => {
3093
+ ]), he = V(() => {
3170
3094
  if (ne && k.warnings) return k.warnings;
3171
3095
  }, [ne, k.warnings]);
3172
3096
  return {
3173
- executionStatus: le,
3174
- executionResults: L,
3175
- perQueryResults: ue,
3176
- isLoading: P,
3177
- isFetching: se,
3178
- error: F,
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: ce,
3181
- refetch: I,
3182
- funnelExecutedQueries: z,
3183
- funnelServerQuery: V,
3184
- funnelDebugData: H,
3185
- flowServerQuery: U,
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 rn(e) {
3199
- let { externalColorPalette: t, combinedMetrics: r, combinedBreakdowns: i, hasDebounced: a } = e, o = $((e) => e.analysisType), { chartType: s, chartConfig: c, displayConfig: l } = $(n(Ht)), 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 = R((e) => {
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 } = Je(r, i, e);
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 = R((e) => {
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 = R((e) => {
3143
+ ]), S = z((e) => {
3220
3144
  o === "funnel" ? _(e) : m(e);
3221
3145
  }, [
3222
3146
  o,
3223
3147
  _,
3224
3148
  m
3225
- ]), C = B(() => Ke(r, i), [r, i]), ee = B(() => t ? Array.isArray(t) && typeof t[0] == "string" ? {
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 = V("");
3231
- return z(() => {
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 = Xe(r, i, s, u);
3166
+ let t = Ze(r, i, s, u);
3243
3167
  if (t) {
3244
- let { chartConfig: e } = Je(r, i, t);
3168
+ let { chartConfig: e } = Ye(r, i, t);
3245
3169
  b(t), x(e), y(!1);
3246
- } else if ((r.length > 0 || i.length > 0) && !c.xAxis?.length && !c.yAxis?.length && !c.series?.length) {
3247
- let { chartConfig: e } = Je(r, i, s);
3248
- x(e);
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 an() {
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] = H(0);
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 on = o(), sn = 1800, cn = "share=";
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, on.decompressFromEncodedURIComponent)(e);
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 dn(e) {
3310
- let t = ln(e);
3241
+ function fn(e) {
3242
+ let t = un(e);
3311
3243
  return {
3312
- ok: t.length <= sn,
3244
+ ok: t.length <= cn,
3313
3245
  size: t.length,
3314
- maxSize: sn
3246
+ maxSize: cn
3315
3247
  };
3316
3248
  }
3317
- function fn(e) {
3318
- let t = ln(e);
3319
- if (t.length <= sn) return {
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 = ln({
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 <= sn ? {
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 pn(e) {
3339
- let { encoded: t } = fn(e);
3340
- return t ? `${window.location.origin}${window.location.pathname}#${cn}${t}` : null;
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 mn() {
3274
+ function hn() {
3343
3275
  if (typeof window > "u") return null;
3344
3276
  let e = window.location.hash;
3345
- return !e || !e.startsWith(`#${cn}`) ? null : e.slice(7);
3277
+ return !e || !e.startsWith(`#${ln}`) ? null : e.slice(7);
3346
3278
  }
3347
- function hn() {
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 gn() {
3353
- let e = mn();
3354
- return e ? un(e) : null;
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 _n(e) {
3359
- let { currentQuery: t, isValidQuery: n, chartType: r, chartConfig: i, displayConfig: a, onQueryChange: o, onChartConfigChange: s } = e, c = $((e) => e.load), l = V(!1);
3360
- z(() => {
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 = gn();
3364
- e && (c(e), hn());
3365
- }, [c]), z(() => {
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
- ]), z(() => {
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 vn(e = {}) {
3387
- let { initialData: t, externalColorPalette: n, onQueryChange: r, onChartConfigChange: i } = e, { features: a } = c(), o = Lt(), s = en(), l = tn({
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 = B(() => d !== "funnel" || !u?.dimension || !h || !p || p.length < 2 ? !1 : p.every((e) => e.filters.length > 0), [
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 = B(() => 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 = B(() => E || {
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 = B(() => d === "funnel" ? O() : null, [
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 = B(() => d === "flow" ? A() : null, [
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), oe = $((e) => e.retentionActivityFilters), P = $((e) => e.retentionBreakdowns), se = $((e) => e.retentionViewGranularity), F = $((e) => e.retentionPeriods), ce = $((e) => e.retentionType), I = $((e) => e.buildRetentionQuery), le = $((e) => e.getRetentionValidation), L = $((e) => e.charts.retention?.displayConfig), ue = $((e) => e.setRetentionCube), z = $((e) => e.setRetentionBindingKey), H = $((e) => e.setRetentionTimeDimension), U = $((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 = B(() => d === "retention" ? I() : null, [
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
- I,
3352
+ L,
3421
3353
  M,
3422
3354
  N,
3423
3355
  re,
3424
3356
  ie,
3425
- P,
3426
- se,
3427
3357
  F,
3428
- ce,
3358
+ oe,
3359
+ I,
3360
+ se,
3429
3361
  ae,
3430
- oe
3431
- ]), ve = B(() => d === "retention" ? le() : null, [
3362
+ P
3363
+ ]), ve = V(() => d === "retention" ? ce() : null, [
3432
3364
  d,
3433
- le,
3365
+ ce,
3434
3366
  M,
3435
3367
  N,
3436
3368
  re,
3437
3369
  ie
3438
- ]), K = B(() => d === "retention" ? _e !== null : d === "flow" ? j !== null : d === "funnel" ? k !== null : s.isValidQuery ?? !1, [
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 = nn({
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 = rn({
3391
+ }), J = an({
3460
3392
  externalColorPalette: n,
3461
3393
  combinedMetrics: l.combinedMetrics,
3462
3394
  combinedBreakdowns: l.combinedBreakdowns,
3463
3395
  hasDebounced: q.hasDebounced
3464
- }), Y = an();
3465
- _n({
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 = B(() => Ke || {
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 = R((e) => {
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 = R((e) => {
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), X = V("idle"), Z = K, ht = $((e) => e.getValidation), gt = B(() => ht(), [
3503
- ht,
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
- ]), Q = R((e, t, n, r) => {
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
- ]), _t = R(async () => {
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 = R(() => {
3474
+ ]), vt = z(() => {
3543
3475
  ct(), ft(!1);
3544
- }, [ct, ft]), yt = R(() => {
3476
+ }, [ct, ft]), yt = z(() => {
3545
3477
  mt(), ct();
3546
- }, [mt, ct]), bt = R(async () => {
3547
- X.current = "copied", setTimeout(() => {
3548
- X.current = "idle";
3478
+ }, [mt, ct]), bt = z(async () => {
3479
+ ht.current = "copied", setTimeout(() => {
3480
+ ht.current = "idle";
3549
3481
  }, 2e3);
3550
- }, []), xt = R(() => {
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 = R(() => {
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 = R(() => o.getState().analysisType, [o]);
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: oe,
3613
- retentionBreakdowns: P,
3614
- retentionViewGranularity: se,
3615
- retentionPeriods: F,
3616
- retentionType: ce,
3617
- retentionDisplayConfig: L,
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: X.current,
3661
- canShare: Z,
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: ue,
3705
- setRetentionBindingKey: z,
3706
- setRetentionTimeDimension: H,
3707
- setRetentionDateRange: U,
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: _t,
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: Q
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 yn(e, t) {
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 bn(e) {
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 xn(e, t) {
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 Sn(e, t) {
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 (!xn(e, i.query)) {
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 Cn(e) {
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 wn(e, t) {
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(...yn(e.bindingKey, t)), n.push(...Sn(e.bindingKey, e.steps))) : 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(...bn(e.steps));
3747
+ }), n.push(...xn(e.steps));
3816
3748
  for (let t = 0; t < e.steps.length; t++) {
3817
- let r = e.steps[t], i = Cn(r.timeToConvert);
3749
+ let r = e.steps[t], i = wn(r.timeToConvert);
3818
3750
  i && (i.stepIndex = t, n.push(i));
3819
3751
  }
3820
- let i = Cn(e.globalTimeWindow);
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 Tn(e, t) {
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 En(e) {
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 Dn(e) {
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 { Wt as A, It as C, Vt as D, Rt as E, at as F, ze as I, $ as M, Lt as N, Gt as O, ot as P, qt as S, Ht as T, Yt as _, Sn as a, Jt as b, vn as c, un as d, pn as f, Xt as g, gn as h, yn as i, Ut as j, zt as k, ln as l, mn as m, Dn as n, wn as o, dn as p, Tn as r, bn as s, En as t, fn as u, $t as v, Bt as w, Zt as x, Qt as y };
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-Cz4KAlIC.js.map
3793
+ //# sourceMappingURL=analysis-builder-shared-DmyRh2O3.js.map