drizzle-cube 0.9.6 → 0.9.8

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 (275) hide show
  1. package/README.md +3 -2
  2. package/dist/adapters/ActivityGridChart.config-BGndyZtr.cjs +1 -0
  3. package/dist/adapters/ActivityGridChart.config-ZdvHJAHq.js +2 -0
  4. package/dist/adapters/AreaChart.config-Cybigwcb.js +2 -0
  5. package/dist/adapters/AreaChart.config-DWGesxUg.cjs +1 -0
  6. package/dist/adapters/BarChart.config-Cc04tVQF.js +2 -0
  7. package/dist/adapters/BarChart.config-DBCu0t_-.cjs +1 -0
  8. package/dist/adapters/BoxPlotChart.config-C0WK_ipa.cjs +1 -0
  9. package/dist/adapters/BoxPlotChart.config-DapOUN_R.js +2 -0
  10. package/dist/adapters/BubbleChart.config-DPmf7sI5.cjs +1 -0
  11. package/dist/adapters/BubbleChart.config-DROSTwxW.js +2 -0
  12. package/dist/adapters/CandlestickChart.config-BHoEJ2nY.js +2 -0
  13. package/dist/adapters/CandlestickChart.config-Cm0PKObO.cjs +1 -0
  14. package/dist/adapters/DataTable.config-DLvfXXSH.cjs +1 -0
  15. package/dist/adapters/DataTable.config-DbVrWZIw.js +2 -0
  16. package/dist/adapters/DotStripChart.config-CKPw82HE.js +2 -0
  17. package/dist/adapters/DotStripChart.config-DPIrTLb6.cjs +1 -0
  18. package/dist/adapters/FunnelChart.config-DpiDbOTn.cjs +1 -0
  19. package/dist/adapters/FunnelChart.config-DtBHVpLB.js +2 -0
  20. package/dist/adapters/GaugeChart.config-CmuXGRNV.js +2 -0
  21. package/dist/adapters/GaugeChart.config-DLj1YNsp.cjs +1 -0
  22. package/dist/adapters/HeatMapChart.config-BvFK2bny.cjs +1 -0
  23. package/dist/adapters/HeatMapChart.config-DK18zZV8.js +2 -0
  24. package/dist/adapters/KpiDelta.config-BsaVN5-T.js +2 -0
  25. package/dist/adapters/KpiDelta.config-DHsMgIdk.cjs +1 -0
  26. package/dist/adapters/KpiNumber.config-D82-j-8T.js +2 -0
  27. package/dist/adapters/KpiNumber.config-pFRomJRE.cjs +1 -0
  28. package/dist/adapters/KpiText.config-CCqeKuFB.js +2 -0
  29. package/dist/adapters/KpiText.config-CSeCoBuO.cjs +1 -0
  30. package/dist/adapters/LineChart.config-C2acjFv4.js +2 -0
  31. package/dist/adapters/LineChart.config-Dr9wmiK0.cjs +1 -0
  32. package/dist/adapters/MarkdownChart.config-C-tYLLan.js +2 -0
  33. package/dist/adapters/MarkdownChart.config-Dvyfo0CB.cjs +1 -0
  34. package/dist/adapters/MeasureProfileChart.config-C5CjPw48.js +2 -0
  35. package/dist/adapters/MeasureProfileChart.config-Dj-7HqkS.cjs +1 -0
  36. package/dist/adapters/PieChart.config-CY7nFFQn.cjs +1 -0
  37. package/dist/adapters/PieChart.config-DQLQMHc_.js +2 -0
  38. package/dist/adapters/ProportionBarChart.config-BVqtS7wi.cjs +1 -0
  39. package/dist/adapters/ProportionBarChart.config-BaSgs976.js +2 -0
  40. package/dist/adapters/RadarChart.config-DxJ5k8L9.cjs +1 -0
  41. package/dist/adapters/RadarChart.config-DzL7zQUc.js +2 -0
  42. package/dist/adapters/RadialBarChart.config-Dzl1HiGz.js +2 -0
  43. package/dist/adapters/RadialBarChart.config-XlGTd9gV.cjs +1 -0
  44. package/dist/adapters/RecordsTable.config-CS5oIMvv.js +2 -0
  45. package/dist/adapters/RecordsTable.config-DRQdHghk.cjs +1 -0
  46. package/dist/adapters/RetentionCombinedChart.config-C0iiKOdf.js +2 -0
  47. package/dist/adapters/RetentionCombinedChart.config-Dl20GZnb.cjs +1 -0
  48. package/dist/adapters/RetentionHeatmap.config-Bt42ip_c.js +2 -0
  49. package/dist/adapters/RetentionHeatmap.config-DyggEvyy.cjs +1 -0
  50. package/dist/adapters/SankeyChart.config-DYz1nUx9.js +2 -0
  51. package/dist/adapters/SankeyChart.config-dlNLJMf9.cjs +1 -0
  52. package/dist/adapters/ScatterChart.config-D72zRviD.js +2 -0
  53. package/dist/adapters/ScatterChart.config-DRtyuQvV.cjs +1 -0
  54. package/dist/adapters/SunburstChart.config-C5nHXLcu.cjs +1 -0
  55. package/dist/adapters/SunburstChart.config-j5ioABeT.js +2 -0
  56. package/dist/adapters/TreeMapChart.config-CXKcX5CH.js +2 -0
  57. package/dist/adapters/TreeMapChart.config-DuYbme03.cjs +1 -0
  58. package/dist/adapters/WaterfallChart.config-BCn4tsBV.cjs +1 -0
  59. package/dist/adapters/WaterfallChart.config-BPqhdzTP.js +2 -0
  60. package/dist/adapters/{compiler-CpvetSCm.js → compiler-BKg3j2mm.js} +1260 -2446
  61. package/dist/adapters/compiler-BX6Ug_Uq.cjs +166 -0
  62. package/dist/adapters/core/index.cjs +1 -1
  63. package/dist/adapters/core/index.js +1 -1
  64. package/dist/adapters/{core-BH_56XtM.js → core-Bmb7XMBz.js} +2 -2
  65. package/dist/adapters/{core-CydD6oFu.cjs → core-JgUTMhxl.cjs} +1 -1
  66. package/dist/adapters/express/index.cjs +1 -1
  67. package/dist/adapters/express/index.js +5 -5
  68. package/dist/adapters/fastify/index.cjs +1 -1
  69. package/dist/adapters/fastify/index.js +23 -23
  70. package/dist/adapters/{handler-CtcALGcY.js → handler-CknKLUQW.js} +213 -209
  71. package/dist/adapters/{handler-Dp8fpSpk.cjs → handler-DLWgxPOk.cjs} +8 -8
  72. package/dist/adapters/hono/index.cjs +1 -1
  73. package/dist/adapters/hono/index.js +4 -4
  74. package/dist/adapters/mcp-app-html-Bu4j3yZM.cjs +1 -0
  75. package/dist/adapters/{mcp-app-html-C8vG9epH.js → mcp-app-html-D3GsxPcx.js} +1 -1
  76. package/dist/adapters/mcp-app-html.cjs +1 -1
  77. package/dist/adapters/mcp-app-html.js +1 -1
  78. package/dist/adapters/mcp-tools.cjs +1 -1
  79. package/dist/adapters/mcp-tools.js +3 -3
  80. package/dist/adapters/{mcp-transport-DDxjqyuK.js → mcp-transport-BTmAXLo8.js} +8 -3
  81. package/dist/adapters/{mcp-transport-QGYYYSgR.cjs → mcp-transport-DzxluRyH.cjs} +2 -2
  82. package/dist/adapters/nextjs/index.cjs +1 -1
  83. package/dist/adapters/nextjs/index.js +5 -5
  84. package/dist/adapters/openai-CDH_AU_Z.cjs +19 -0
  85. package/dist/adapters/{openai-pCkHdDh4.js → openai-CYTlIdxS.js} +1 -1
  86. package/dist/adapters/{openai-Cm4JcLuF.cjs → openai-KbobaAQj.cjs} +1 -1
  87. package/dist/adapters/{openai-DH5InEPj.js → openai-enh3Hkzr.js} +510 -439
  88. package/dist/adapters/utils-Du_UZbn5.cjs +139 -0
  89. package/dist/adapters/{utils-C_Mc0qsk.js → utils-i2h5cwI3.js} +2587 -1254
  90. package/dist/adapters/utils.cjs +1 -1
  91. package/dist/adapters/utils.js +1 -1
  92. package/dist/cjs/client/components/shared/dateRangeUtils.d.ts +7 -3
  93. package/dist/cjs/server/adapters/base-adapter.d.ts +3 -3
  94. package/dist/cjs/server/ai/query-schema.d.ts +3 -3
  95. package/dist/cjs/server/builders/date-time-builder.d.ts +1 -2
  96. package/dist/cjs/server/builders/date-time-helpers.d.ts +19 -6
  97. package/dist/cjs/server/builders/filter-operators.d.ts +10 -1
  98. package/dist/cjs/server/execution/query-normalizer.d.ts +9 -0
  99. package/dist/cjs/server/physical-plan/drizzle-sql-builder.d.ts +25 -0
  100. package/dist/cjs/server/physical-plan/semi-join.d.ts +21 -0
  101. package/dist/cjs/server/prompts/single-step-prompt.d.ts +1 -1
  102. package/dist/client/charts.js +12 -12
  103. package/dist/client/chunks/{DashboardEditModal-USQFytJw.js → DashboardEditModal-CiN77tQN.js} +662 -540
  104. package/dist/client/chunks/DashboardEditModal-CiN77tQN.js.map +1 -0
  105. package/dist/client/chunks/{DotStripChart-CjSsunHE.js → DotStripChart-in6QHc0b.js} +3 -3
  106. package/dist/client/chunks/{DotStripChart-CjSsunHE.js.map → DotStripChart-in6QHc0b.js.map} +1 -1
  107. package/dist/client/chunks/{ProportionBarChart-B8UyZBO_.js → ProportionBarChart-CjuOm7NT.js} +3 -3
  108. package/dist/client/chunks/{ProportionBarChart-B8UyZBO_.js.map → ProportionBarChart-CjuOm7NT.js.map} +1 -1
  109. package/dist/client/chunks/{RecordsTable-BSmkwdgd.js → RecordsTable-CXXsiaV1.js} +4 -4
  110. package/dist/client/chunks/{RecordsTable-BSmkwdgd.js.map → RecordsTable-CXXsiaV1.js.map} +1 -1
  111. package/dist/client/chunks/{RetentionCombinedChart-rOdIhUGH.js → RetentionCombinedChart-DFCeEFkx.js} +3 -3
  112. package/dist/client/chunks/{RetentionCombinedChart-rOdIhUGH.js.map → RetentionCombinedChart-DFCeEFkx.js.map} +1 -1
  113. package/dist/client/chunks/{RetentionHeatmap-DVm_7rph.js → RetentionHeatmap-jpshJ2Af.js} +2 -2
  114. package/dist/client/chunks/{RetentionHeatmap-DVm_7rph.js.map → RetentionHeatmap-jpshJ2Af.js.map} +1 -1
  115. package/dist/client/chunks/{analysis-builder-D_tw9BvU.js → analysis-builder-DIOnKxJu.js} +41 -41
  116. package/dist/client/chunks/{analysis-builder-D_tw9BvU.js.map → analysis-builder-DIOnKxJu.js.map} +1 -1
  117. package/dist/client/chunks/{analysis-builder-shared-BSINKFr2.js → analysis-builder-shared-CoX_nmo0.js} +640 -778
  118. package/dist/client/chunks/analysis-builder-shared-CoX_nmo0.js.map +1 -0
  119. package/dist/client/chunks/{chart-activity-grid-CSIsJ12e.js → chart-activity-grid-DGazwi4C.js} +9 -2
  120. package/dist/client/chunks/chart-activity-grid-DGazwi4C.js.map +1 -0
  121. package/dist/client/chunks/{chart-area-BpvSKH5I.js → chart-area-zyLGD-ym.js} +2 -2
  122. package/dist/client/chunks/{chart-area-BpvSKH5I.js.map → chart-area-zyLGD-ym.js.map} +1 -1
  123. package/dist/client/chunks/{chart-bar-Cjzv-LvG.js → chart-bar-DMCBq8qJ.js} +3 -3
  124. package/dist/client/chunks/{chart-bar-Cjzv-LvG.js.map → chart-bar-DMCBq8qJ.js.map} +1 -1
  125. package/dist/client/chunks/{chart-box-plot-DHsHfMt6.js → chart-box-plot-5Z55A-it.js} +2 -2
  126. package/dist/client/chunks/{chart-box-plot-DHsHfMt6.js.map → chart-box-plot-5Z55A-it.js.map} +1 -1
  127. package/dist/client/chunks/{chart-bubble-BtWm6x7L.js → chart-bubble-YD28dX8w.js} +2 -2
  128. package/dist/client/chunks/{chart-bubble-BtWm6x7L.js.map → chart-bubble-YD28dX8w.js.map} +1 -1
  129. package/dist/client/chunks/{chart-candlestick-Bz0_fLuq.js → chart-candlestick-BUMpBI08.js} +2 -2
  130. package/dist/client/chunks/{chart-candlestick-Bz0_fLuq.js.map → chart-candlestick-BUMpBI08.js.map} +1 -1
  131. package/dist/client/chunks/{chart-data-table-BH1A-1RN.js → chart-data-table-BdMo3zVh.js} +2 -2
  132. package/dist/client/chunks/chart-data-table-BdMo3zVh.js.map +1 -0
  133. package/dist/client/chunks/{chart-funnel-C_-K4RLj.js → chart-funnel-BRyZS6ie.js} +2 -2
  134. package/dist/client/chunks/{chart-funnel-C_-K4RLj.js.map → chart-funnel-BRyZS6ie.js.map} +1 -1
  135. package/dist/client/chunks/{chart-gauge-F-vdq2BX.js → chart-gauge-DxgHlZKp.js} +3 -3
  136. package/dist/client/chunks/{chart-gauge-F-vdq2BX.js.map → chart-gauge-DxgHlZKp.js.map} +1 -1
  137. package/dist/client/chunks/{chart-heat-map-D_8TluGo.js → chart-heat-map-5jHm3f-V.js} +3 -3
  138. package/dist/client/chunks/{chart-heat-map-D_8TluGo.js.map → chart-heat-map-5jHm3f-V.js.map} +1 -1
  139. package/dist/client/chunks/{chart-kpi-delta-DGvQ0BHZ.js → chart-kpi-delta-C84P-mwu.js} +3 -3
  140. package/dist/client/chunks/{chart-kpi-delta-DGvQ0BHZ.js.map → chart-kpi-delta-C84P-mwu.js.map} +1 -1
  141. package/dist/client/chunks/{chart-kpi-number-DP6zCh-c.js → chart-kpi-number-D9GqtBWw.js} +5 -5
  142. package/dist/client/chunks/{chart-kpi-number-DP6zCh-c.js.map → chart-kpi-number-D9GqtBWw.js.map} +1 -1
  143. package/dist/client/chunks/{chart-kpi-text-DDbWfMwK.js → chart-kpi-text-D3HqxXzU.js} +3 -3
  144. package/dist/client/chunks/{chart-kpi-text-DDbWfMwK.js.map → chart-kpi-text-D3HqxXzU.js.map} +1 -1
  145. package/dist/client/chunks/{chart-line-DlhmQQ-X.js → chart-line-IEgiF8Nv.js} +3 -3
  146. package/dist/client/chunks/{chart-line-DlhmQQ-X.js.map → chart-line-IEgiF8Nv.js.map} +1 -1
  147. package/dist/client/chunks/{chart-markdown-C5ldCjSN.js → chart-markdown-B_2Ed7FJ.js} +2 -2
  148. package/dist/client/chunks/{chart-markdown-C5ldCjSN.js.map → chart-markdown-B_2Ed7FJ.js.map} +1 -1
  149. package/dist/client/chunks/{chart-measure-profile-CjErXQI4.js → chart-measure-profile-CWsPrQhH.js} +3 -3
  150. package/dist/client/chunks/{chart-measure-profile-CjErXQI4.js.map → chart-measure-profile-CWsPrQhH.js.map} +1 -1
  151. package/dist/client/chunks/{chart-pie-CmKhmUR-.js → chart-pie-BEB2sCXF.js} +3 -3
  152. package/dist/client/chunks/{chart-pie-CmKhmUR-.js.map → chart-pie-BEB2sCXF.js.map} +1 -1
  153. package/dist/client/chunks/{chart-radar-B2bYTyb0.js → chart-radar-BbSbXKbP.js} +3 -3
  154. package/dist/client/chunks/{chart-radar-B2bYTyb0.js.map → chart-radar-BbSbXKbP.js.map} +1 -1
  155. package/dist/client/chunks/{chart-radial-bar-DvQ-xZS-.js → chart-radial-bar-CNYD7tkM.js} +3 -3
  156. package/dist/client/chunks/{chart-radial-bar-DvQ-xZS-.js.map → chart-radial-bar-CNYD7tkM.js.map} +1 -1
  157. package/dist/client/chunks/{chart-sankey-DHIrjmhj.js → chart-sankey-DKnTIvSr.js} +2 -2
  158. package/dist/client/chunks/{chart-sankey-DHIrjmhj.js.map → chart-sankey-DKnTIvSr.js.map} +1 -1
  159. package/dist/client/chunks/{chart-scatter-JnoA3CD5.js → chart-scatter-CSWF6-lx.js} +3 -3
  160. package/dist/client/chunks/{chart-scatter-JnoA3CD5.js.map → chart-scatter-CSWF6-lx.js.map} +1 -1
  161. package/dist/client/chunks/{chart-sunburst-BtzRp5bg.js → chart-sunburst-CdGzCq7q.js} +3 -3
  162. package/dist/client/chunks/{chart-sunburst-BtzRp5bg.js.map → chart-sunburst-CdGzCq7q.js.map} +1 -1
  163. package/dist/client/chunks/{chart-tree-map-HQitd39D.js → chart-tree-map-BiXB7EiM.js} +3 -3
  164. package/dist/client/chunks/{chart-tree-map-HQitd39D.js.map → chart-tree-map-BiXB7EiM.js.map} +1 -1
  165. package/dist/client/chunks/{chart-waterfall-Dd3HMz3p.js → chart-waterfall-5rSDeLEZ.js} +3 -3
  166. package/dist/client/chunks/{chart-waterfall-Dd3HMz3p.js.map → chart-waterfall-5rSDeLEZ.js.map} +1 -1
  167. package/dist/client/chunks/{charts-core-CQFOTTPb.js → charts-core-CKpkoMCa.js} +2 -2
  168. package/dist/client/chunks/{charts-core-CQFOTTPb.js.map → charts-core-CKpkoMCa.js.map} +1 -1
  169. package/dist/client/chunks/charts-loader-BTI0UPK4.js +87 -0
  170. package/dist/client/chunks/{charts-loader-BlxEsp39.js.map → charts-loader-BTI0UPK4.js.map} +1 -1
  171. package/dist/client/chunks/{nl-NL-gaWTnOGQ.js → nl-NL-kRjxedTf.js} +8 -1
  172. package/dist/client/chunks/{nl-NL-gaWTnOGQ.js.map → nl-NL-kRjxedTf.js.map} +1 -1
  173. package/dist/client/chunks/{schema-visualization-BspQ-XB8.js → schema-visualization-BbvL74Sf.js} +3 -3
  174. package/dist/client/chunks/{schema-visualization-BspQ-XB8.js.map → schema-visualization-BbvL74Sf.js.map} +1 -1
  175. package/dist/client/chunks/{useDirtyStateTracking-DY5sjvb6.js → useDirtyStateTracking-BfG1lX_3.js} +4 -4
  176. package/dist/client/chunks/{useDirtyStateTracking-DY5sjvb6.js.map → useDirtyStateTracking-BfG1lX_3.js.map} +1 -1
  177. package/dist/client/chunks/{useExplainAI-BY0Ti3FZ.js → useExplainAI-CDFhgmpE.js} +4 -4
  178. package/dist/client/chunks/{useExplainAI-BY0Ti3FZ.js.map → useExplainAI-CDFhgmpE.js.map} +1 -1
  179. package/dist/client/chunks/{vendor-C4pD7rZf.js → vendor-DeckzF1j.js} +2 -2
  180. package/dist/client/chunks/{vendor-C4pD7rZf.js.map → vendor-DeckzF1j.js.map} +1 -1
  181. package/dist/client/components/shared/dateRangeUtils.d.ts +7 -3
  182. package/dist/client/components.js +2 -2
  183. package/dist/client/hooks.js +3 -3
  184. package/dist/client/icons.js +1 -1
  185. package/dist/client/index.js +18 -18
  186. package/dist/client/index.js.map +1 -1
  187. package/dist/client/providers.js +1 -1
  188. package/dist/client/schema.js +1 -1
  189. package/dist/client/utils.js +4 -4
  190. package/dist/client-bundle-stats.html +1 -1
  191. package/dist/mcp-app/mcp-app.html +2 -2
  192. package/dist/server/adapters/base-adapter.d.ts +3 -3
  193. package/dist/server/ai/query-schema.d.ts +3 -3
  194. package/dist/server/builders/date-time-builder.d.ts +1 -2
  195. package/dist/server/builders/date-time-helpers.d.ts +19 -6
  196. package/dist/server/builders/filter-operators.d.ts +10 -1
  197. package/dist/server/execution/query-normalizer.d.ts +9 -0
  198. package/dist/server/index.cjs +54 -47
  199. package/dist/server/index.js +2562 -2409
  200. package/dist/server/{openai-D346-vmt.cjs → openai-BIHkBS7X.cjs} +1 -1
  201. package/dist/server/{openai-SILGL2q_.js → openai-CPW5x6kl.js} +1 -1
  202. package/dist/server/{openai-D0vh48Oi.js → openai-DCC49vC6.js} +507 -436
  203. package/dist/server/openai-xQRpdAPa.cjs +19 -0
  204. package/dist/server/physical-plan/drizzle-sql-builder.d.ts +25 -0
  205. package/dist/server/physical-plan/semi-join.d.ts +21 -0
  206. package/dist/server/prompts/single-step-prompt.d.ts +1 -1
  207. package/package.json +3 -3
  208. package/dist/adapters/ActivityGridChart.config-BgAUfqKS.js +0 -2
  209. package/dist/adapters/ActivityGridChart.config-CGsjbfYL.cjs +0 -1
  210. package/dist/adapters/AreaChart.config-Bmj24k3G.cjs +0 -1
  211. package/dist/adapters/AreaChart.config-DqJvquc-.js +0 -2
  212. package/dist/adapters/BarChart.config-CzGxsUq-.js +0 -2
  213. package/dist/adapters/BarChart.config-D1uQGV6T.cjs +0 -1
  214. package/dist/adapters/BoxPlotChart.config-I0S4-aNF.js +0 -2
  215. package/dist/adapters/BoxPlotChart.config-wfS4FxGI.cjs +0 -1
  216. package/dist/adapters/BubbleChart.config-BDSknEkc.js +0 -2
  217. package/dist/adapters/BubbleChart.config-CByvW3Rq.cjs +0 -1
  218. package/dist/adapters/CandlestickChart.config-08gqS1xj.cjs +0 -1
  219. package/dist/adapters/CandlestickChart.config-Bkr9bdwM.js +0 -2
  220. package/dist/adapters/DataTable.config-BFP6xnMc.cjs +0 -1
  221. package/dist/adapters/DataTable.config-DHYD7PA8.js +0 -2
  222. package/dist/adapters/DotStripChart.config-DRQybZZu.cjs +0 -1
  223. package/dist/adapters/DotStripChart.config-Sp0fOxfM.js +0 -2
  224. package/dist/adapters/FunnelChart.config-ByARozX6.cjs +0 -1
  225. package/dist/adapters/FunnelChart.config-DhCqap3P.js +0 -2
  226. package/dist/adapters/GaugeChart.config-CfRicB1o.cjs +0 -1
  227. package/dist/adapters/GaugeChart.config-PTQ85WM5.js +0 -2
  228. package/dist/adapters/HeatMapChart.config-0tmGHwm2.cjs +0 -1
  229. package/dist/adapters/HeatMapChart.config-Devz5A5U.js +0 -2
  230. package/dist/adapters/KpiDelta.config-CGTdddOM.js +0 -2
  231. package/dist/adapters/KpiDelta.config-CjWmwXjk.cjs +0 -1
  232. package/dist/adapters/KpiNumber.config-Cd4jw22d.cjs +0 -1
  233. package/dist/adapters/KpiNumber.config-D3Et71Zn.js +0 -2
  234. package/dist/adapters/KpiText.config-B9VATPy2.js +0 -2
  235. package/dist/adapters/KpiText.config-B_dkrdHj.cjs +0 -1
  236. package/dist/adapters/LineChart.config-C3p-mc15.cjs +0 -1
  237. package/dist/adapters/LineChart.config-DXWLMWjn.js +0 -2
  238. package/dist/adapters/MarkdownChart.config-BQGmd6Iz.js +0 -2
  239. package/dist/adapters/MarkdownChart.config-CQFu4297.cjs +0 -1
  240. package/dist/adapters/MeasureProfileChart.config-CXLeprVS.js +0 -2
  241. package/dist/adapters/MeasureProfileChart.config-KpfD016N.cjs +0 -1
  242. package/dist/adapters/PieChart.config-j-syrhBx.js +0 -2
  243. package/dist/adapters/PieChart.config-zzBPh0tx.cjs +0 -1
  244. package/dist/adapters/ProportionBarChart.config-BD9bf-LZ.js +0 -2
  245. package/dist/adapters/ProportionBarChart.config-CBLcLV4Z.cjs +0 -1
  246. package/dist/adapters/RadarChart.config-CW9f_VxU.cjs +0 -1
  247. package/dist/adapters/RadarChart.config-yKvcZ49V.js +0 -2
  248. package/dist/adapters/RadialBarChart.config-DwQYejI6.cjs +0 -1
  249. package/dist/adapters/RadialBarChart.config-xK4AyoOF.js +0 -2
  250. package/dist/adapters/RecordsTable.config-CquV7Wi0.js +0 -2
  251. package/dist/adapters/RecordsTable.config-DzrQXBvh.cjs +0 -1
  252. package/dist/adapters/RetentionCombinedChart.config-BYAFkFb-.cjs +0 -1
  253. package/dist/adapters/RetentionCombinedChart.config-Ddmb-WwM.js +0 -2
  254. package/dist/adapters/RetentionHeatmap.config-CSHXD736.cjs +0 -1
  255. package/dist/adapters/RetentionHeatmap.config-DODcy3gK.js +0 -2
  256. package/dist/adapters/SankeyChart.config-B56o6GFu.js +0 -2
  257. package/dist/adapters/SankeyChart.config-DLnhr2k_.cjs +0 -1
  258. package/dist/adapters/ScatterChart.config-CrIFaC-s.js +0 -2
  259. package/dist/adapters/ScatterChart.config-Dfj1_af-.cjs +0 -1
  260. package/dist/adapters/SunburstChart.config-CuLsLj6v.cjs +0 -1
  261. package/dist/adapters/SunburstChart.config-CvuVUfkp.js +0 -2
  262. package/dist/adapters/TreeMapChart.config-CvbDr1Ic.js +0 -2
  263. package/dist/adapters/TreeMapChart.config-Dqjhe8Xk.cjs +0 -1
  264. package/dist/adapters/WaterfallChart.config-DXFeGg7P.cjs +0 -1
  265. package/dist/adapters/WaterfallChart.config-MLHPNE5q.js +0 -2
  266. package/dist/adapters/compiler-C5OSdfwn.cjs +0 -166
  267. package/dist/adapters/mcp-app-html-DRWnkcx4.cjs +0 -1
  268. package/dist/adapters/openai-CwKv0DD-.cjs +0 -19
  269. package/dist/adapters/utils-BFGzuSlF.cjs +0 -132
  270. package/dist/client/chunks/DashboardEditModal-USQFytJw.js.map +0 -1
  271. package/dist/client/chunks/analysis-builder-shared-BSINKFr2.js.map +0 -1
  272. package/dist/client/chunks/chart-activity-grid-CSIsJ12e.js.map +0 -1
  273. package/dist/client/chunks/chart-data-table-BH1A-1RN.js.map +0 -1
  274. package/dist/client/chunks/charts-loader-BlxEsp39.js +0 -87
  275. package/dist/server/openai-C6tdx3yN.cjs +0 -19
@@ -1,171 +1,33 @@
1
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-C4pD7rZf.js";
2
- import { A as s, B as c, d as l, u, y as d } from "./chart-data-table-BH1A-1RN.js";
3
- import { C as f, D as p, M as m, _ as h, b as g, d as _, f as v, it as y, nt as b, rt as x, u as S, v as C, w, x as T, y as E } from "./DashboardEditModal-USQFytJw.js";
4
- import { a as D, s as O, t as k } from "./retention-ChW9jYdy.js";
5
- import { O as A, k as j } from "./dashboardExport-Db3rmUP1.js";
6
- import { A as ee, D as M, F as N, I as te, M as P, N as ne, O as re, P as ie, S as F, T as I, a as ae, d as oe, j as L, k as R, l as se, n as ce, r as le, s as ue } from "./useDirtyStateTracking-DY5sjvb6.js";
7
- import { B as de, F as z } from "./chart-activity-grid-CSIsJ12e.js";
8
- import { a as fe, i as pe } from "./useExplainAI-BY0Ti3FZ.js";
9
- import { r as me, s as he } from "./chart-funnel-C_-K4RLj.js";
10
- import { n as ge } from "./charts-core-CQFOTTPb.js";
11
- import B, { createContext as _e, memo as ve, useCallback as V, useContext as ye, useEffect as H, useMemo as U, useRef as W, useState as G } from "react";
1
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-DeckzF1j.js";
2
+ import { A as s, B as c, d as l, u, y as d } from "./chart-data-table-BdMo3zVh.js";
3
+ import { A as f, C as p, D as m, E as h, F as g, T as _, _ as v, at as y, b, d as x, f as S, ot as C, st as w, u as T, v as E, w as D, x as O, y as k } from "./DashboardEditModal-CiN77tQN.js";
4
+ import { a as ee, s as A, t as te } from "./retention-ChW9jYdy.js";
5
+ import { O as j, k as M } from "./dashboardExport-Db3rmUP1.js";
6
+ import { A as N, D as ne, F as re, I as ie, M as ae, N as P, O as oe, P as se, S as F, T as I, a as L, d as ce, j as le, k as R, l as ue, n as de, r as fe, s as pe } from "./useDirtyStateTracking-BfG1lX_3.js";
7
+ import { B as me, F as z } from "./chart-activity-grid-DGazwi4C.js";
8
+ import { a as he, i as ge } from "./useExplainAI-CDFhgmpE.js";
9
+ import { r as _e, s as ve } from "./chart-funnel-BRyZS6ie.js";
10
+ import { n as ye } from "./charts-core-CKpkoMCa.js";
11
+ import B, { createContext as be, memo as xe, useCallback as V, useContext as Se, useEffect as H, useMemo as U, useRef as W, useState as G } from "react";
12
12
  import { Fragment as K, jsx as q, jsxs as J } from "react/jsx-runtime";
13
- //#region src/shared/date-utils.ts
14
- function be(e) {
15
- let t = /* @__PURE__ */ new Date(), n = e.toLowerCase().trim(), r = t.getUTCFullYear(), i = t.getUTCMonth(), a = t.getUTCDate(), o = t.getUTCDay();
16
- if (n === "today") {
17
- let e = new Date(t);
18
- e.setUTCHours(0, 0, 0, 0);
19
- let n = new Date(t);
20
- return n.setUTCHours(23, 59, 59, 999), {
21
- start: e,
22
- end: n
23
- };
24
- }
25
- if (n === "yesterday") {
26
- let e = new Date(t);
27
- e.setUTCDate(a - 1), e.setUTCHours(0, 0, 0, 0);
28
- let n = new Date(t);
29
- return n.setUTCDate(a - 1), n.setUTCHours(23, 59, 59, 999), {
30
- start: e,
31
- end: n
32
- };
33
- }
34
- if (n === "this week") {
35
- let e = o === 0 ? -6 : 1 - o, n = new Date(t);
36
- n.setUTCDate(a + e), n.setUTCHours(0, 0, 0, 0);
37
- let r = new Date(n);
38
- return r.setUTCDate(n.getUTCDate() + 6), r.setUTCHours(23, 59, 59, 999), {
39
- start: n,
40
- end: r
41
- };
42
- }
43
- if (n === "this month") return {
44
- start: new Date(Date.UTC(r, i, 1, 0, 0, 0, 0)),
45
- end: new Date(Date.UTC(r, i + 1, 0, 23, 59, 59, 999))
46
- };
47
- if (n === "this quarter") {
48
- let e = Math.floor(i / 3);
49
- return {
50
- start: new Date(Date.UTC(r, e * 3, 1, 0, 0, 0, 0)),
51
- end: new Date(Date.UTC(r, e * 3 + 3, 0, 23, 59, 59, 999))
52
- };
53
- }
54
- if (n === "this year") return {
55
- start: new Date(Date.UTC(r, 0, 1, 0, 0, 0, 0)),
56
- end: new Date(Date.UTC(r, 11, 31, 23, 59, 59, 999))
57
- };
58
- let s = n.match(/^last\s+(\d+)\s+days?$/);
59
- if (s) {
60
- let e = parseInt(s[1], 10), n = new Date(t);
61
- n.setUTCDate(a - e + 1), n.setUTCHours(0, 0, 0, 0);
62
- let r = new Date(t);
63
- return r.setUTCHours(23, 59, 59, 999), {
64
- start: n,
65
- end: r
66
- };
67
- }
68
- let c = n.match(/^last\s+(\d+)\s+weeks?$/);
69
- if (c) {
70
- let e = parseInt(c[1], 10) * 7, n = new Date(t);
71
- n.setUTCDate(a - e + 1), n.setUTCHours(0, 0, 0, 0);
72
- let r = new Date(t);
73
- return r.setUTCHours(23, 59, 59, 999), {
74
- start: n,
75
- end: r
76
- };
77
- }
78
- if (n === "last week") {
79
- let e = o === 0 ? -13 : -6 - o, n = new Date(t);
80
- n.setUTCDate(a + e), n.setUTCHours(0, 0, 0, 0);
81
- let r = new Date(n);
82
- return r.setUTCDate(n.getUTCDate() + 6), r.setUTCHours(23, 59, 59, 999), {
83
- start: n,
84
- end: r
85
- };
86
- }
87
- if (n === "last month") return {
88
- start: new Date(Date.UTC(r, i - 1, 1, 0, 0, 0, 0)),
89
- end: new Date(Date.UTC(r, i, 0, 23, 59, 59, 999))
90
- };
91
- if (n === "last quarter") {
92
- let e = Math.floor(i / 3), t = e === 0 ? 3 : e - 1, n = e === 0 ? r - 1 : r;
93
- return {
94
- start: new Date(Date.UTC(n, t * 3, 1, 0, 0, 0, 0)),
95
- end: new Date(Date.UTC(n, t * 3 + 3, 0, 23, 59, 59, 999))
96
- };
97
- }
98
- if (n === "last year") return {
99
- start: new Date(Date.UTC(r - 1, 0, 1, 0, 0, 0, 0)),
100
- end: new Date(Date.UTC(r - 1, 11, 31, 23, 59, 59, 999))
101
- };
102
- if (n === "last 12 months") {
103
- let e = new Date(Date.UTC(r, i - 11, 1, 0, 0, 0, 0)), n = new Date(t);
104
- return n.setUTCHours(23, 59, 59, 999), {
105
- start: e,
106
- end: n
107
- };
108
- }
109
- let l = n.match(/^last\s+(\d+)\s+months?$/);
110
- if (l) {
111
- let e = new Date(Date.UTC(r, i - parseInt(l[1], 10) + 1, 1, 0, 0, 0, 0)), n = new Date(t);
112
- return n.setUTCHours(23, 59, 59, 999), {
113
- start: e,
114
- end: n
115
- };
116
- }
117
- let u = n.match(/^last\s+(\d+)\s+years?$/);
118
- if (u) {
119
- let e = new Date(Date.UTC(r - parseInt(u[1], 10), 0, 1, 0, 0, 0, 0)), n = new Date(t);
120
- return n.setUTCHours(23, 59, 59, 999), {
121
- start: e,
122
- end: n
123
- };
124
- }
125
- return null;
126
- }
127
- function xe(e) {
128
- if (Array.isArray(e)) {
129
- if (e.length < 2) return null;
130
- let t = new Date(e[0]), n = new Date(e[1]);
131
- return isNaN(t.getTime()) || isNaN(n.getTime()) ? null : (n.setUTCHours(23, 59, 59, 999), {
132
- start: t,
133
- end: n
134
- });
135
- }
136
- return be(e);
137
- }
138
- function Se(e) {
139
- return e.toISOString().split("T")[0];
140
- }
141
- function Ce(e, t) {
142
- let n = t.getTime() - e.getTime(), r = Math.ceil(n / 864e5), i = new Date(e);
143
- i.setUTCDate(i.getUTCDate() - 1), i.setUTCHours(23, 59, 59, 999);
144
- let a = new Date(i);
145
- return a.setUTCDate(a.getUTCDate() - r + 1), a.setUTCHours(0, 0, 0, 0), {
146
- start: a,
147
- end: i
148
- };
149
- }
150
- //#endregion
151
13
  //#region src/client/components/AnalysisBuilder/utils/filterUtils.ts
152
- function we(e, t) {
153
- let n = L(t, e);
14
+ function Ce(e, t) {
15
+ let n = le(t, e);
154
16
  if (!n?.dateRange) return;
155
- let r = xe(n.dateRange);
17
+ let r = _(n.dateRange);
156
18
  if (!r) return;
157
- let i = Ce(r.start, r.end);
158
- return [[Se(r.start), Se(r.end)], [Se(i.start), Se(i.end)]];
19
+ let i = p(r.start, r.end);
20
+ return [[D(r.start), D(r.end)], [D(i.start), D(i.end)]];
159
21
  }
160
- function Te(e, t) {
161
- return N(e, t, "inDateRange");
22
+ function we(e, t) {
23
+ return re(e, t, "inDateRange");
162
24
  }
163
25
  //#endregion
164
26
  //#region src/client/components/AnalysisBuilder/utils/queryUtils.ts
165
- function Ee(e, t, n, r, i = !1, a, o = !1) {
27
+ function Te(e, t, n, r, i = !1, a, o = !1) {
166
28
  let s = t.filter((e) => e.isTimeDimension && e.enableComparison).map((e) => e.field), c = n;
167
- if (!i) for (let e of s) c = Te(c, e);
168
- c = c.filter((e) => b(e));
29
+ if (!i) for (let e of s) c = we(c, e);
30
+ c = c.filter((e) => y(e));
169
31
  let l = {
170
32
  measures: e.map((e) => e.field),
171
33
  dimensions: t.filter((e) => !e.isTimeDimension).map((e) => e.field),
@@ -175,7 +37,7 @@ function Ee(e, t, n, r, i = !1, a, o = !1) {
175
37
  granularity: e.granularity || "day"
176
38
  };
177
39
  if (e.enableComparison) {
178
- let r = we(e.field, n);
40
+ let r = Ce(e.field, n);
179
41
  r && (t.compareDateRange = r);
180
42
  }
181
43
  return t;
@@ -200,7 +62,7 @@ function Y() {
200
62
  }
201
63
  //#endregion
202
64
  //#region src/client/components/AnalysisBuilder/filterConfigModalUtils.ts
203
- function De(e, t, n, r) {
65
+ function Ee(e, t, n, r) {
204
66
  if (!t || n === 0) return { type: "none" };
205
67
  switch (e) {
206
68
  case "ArrowDown": return {
@@ -221,8 +83,8 @@ function De(e, t, n, r) {
221
83
  }
222
84
  //#endregion
223
85
  //#region src/client/components/AnalysisBuilder/FilterValueInput.tsx
224
- var Oe = d("close"), ke = d("chevronDown");
225
- function Ae({ filter: e, dateRange: t }) {
86
+ var De = d("close"), Oe = d("chevronDown");
87
+ function ke({ filter: e, dateRange: t }) {
226
88
  let { t: n } = z(), { rangeType: r, numberValue: i, label: a, isOpen: o, onToggle: s, onRangeTypeChange: c, onNumberValueChange: l, onCustomStartDate: u, onCustomEndDate: d, onOpen: f } = t;
227
89
  return /* @__PURE__ */ J("div", {
228
90
  className: "dc:space-y-2",
@@ -237,17 +99,17 @@ function Ae({ filter: e, dateRange: t }) {
237
99
  children: [/* @__PURE__ */ q("span", {
238
100
  className: "dc:truncate",
239
101
  children: a
240
- }), /* @__PURE__ */ q(ke, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${o ? "dc:rotate-180" : ""}` })]
102
+ }), /* @__PURE__ */ q(Oe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${o ? "dc:rotate-180" : ""}` })]
241
103
  }), o && /* @__PURE__ */ q("div", {
242
104
  className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
243
- children: C.map((e) => /* @__PURE__ */ q("button", {
105
+ children: E.map((e) => /* @__PURE__ */ q("button", {
244
106
  onClick: () => c(e.value),
245
107
  className: `dc:w-full dc:text-left dc:px-3 dc:py-2 dc:text-sm hover:bg-dc-surface-hover ${e.value === r ? "bg-dc-primary/10 text-dc-primary" : "text-dc-text"}`,
246
108
  children: n(e.label)
247
109
  }, e.value))
248
110
  })]
249
111
  }),
250
- M(r) && /* @__PURE__ */ J("div", {
112
+ ne(r) && /* @__PURE__ */ J("div", {
251
113
  className: "dc:flex dc:items-center dc:gap-2",
252
114
  children: [/* @__PURE__ */ q("input", {
253
115
  type: "number",
@@ -285,7 +147,7 @@ function Ae({ filter: e, dateRange: t }) {
285
147
  ]
286
148
  });
287
149
  }
288
- function je({ filter: e, combo: t }) {
150
+ function Ae({ filter: e, combo: t }) {
289
151
  let { t: n } = z(), { options: r, loading: i, error: a, highlightedIndex: o, listRef: s, onSelect: c } = t;
290
152
  return i ? /* @__PURE__ */ q("div", {
291
153
  className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
@@ -312,7 +174,7 @@ function je({ filter: e, combo: t }) {
312
174
  })
313
175
  });
314
176
  }
315
- function Me({ filter: e, operatorMeta: t, combo: n }) {
177
+ function je({ filter: e, operatorMeta: t, combo: n }) {
316
178
  let { t: r } = z(), { isOpen: i, loading: a, searchText: o, onSearchTextChange: s, onHighlightedIndexChange: c, onRemove: l, onKeyDown: u, onOpen: d } = n;
317
179
  return /* @__PURE__ */ J("div", {
318
180
  className: "dc:space-y-2",
@@ -327,7 +189,7 @@ function Me({ filter: e, operatorMeta: t, combo: n }) {
327
189
  }), /* @__PURE__ */ q("button", {
328
190
  onClick: () => l(e),
329
191
  className: "hover:text-dc-danger",
330
- children: /* @__PURE__ */ q(Oe, { className: "dc:w-3.5 dc:h-3.5" })
192
+ children: /* @__PURE__ */ q(De, { className: "dc:w-3.5 dc:h-3.5" })
331
193
  })]
332
194
  }, t))
333
195
  }),
@@ -341,7 +203,7 @@ function Me({ filter: e, operatorMeta: t, combo: n }) {
341
203
  children: [/* @__PURE__ */ q("span", {
342
204
  className: "text-dc-text-muted dc:truncate",
343
205
  children: r(a ? "filter.modal.loading" : "filter.modal.selectValue")
344
- }), /* @__PURE__ */ q(ke, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${i ? "dc:rotate-180" : ""}` })]
206
+ }), /* @__PURE__ */ q(Oe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${i ? "dc:rotate-180" : ""}` })]
345
207
  }), i && /* @__PURE__ */ J("div", {
346
208
  className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-56 dc:overflow-hidden",
347
209
  children: [/* @__PURE__ */ q("div", {
@@ -357,7 +219,7 @@ function Me({ filter: e, operatorMeta: t, combo: n }) {
357
219
  className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text",
358
220
  autoFocus: !0
359
221
  })
360
- }), /* @__PURE__ */ q(je, {
222
+ }), /* @__PURE__ */ q(Ae, {
361
223
  filter: e,
362
224
  combo: n
363
225
  })]
@@ -370,9 +232,9 @@ function Me({ filter: e, operatorMeta: t, combo: n }) {
370
232
  ]
371
233
  });
372
234
  }
373
- function Ne({ field: e, dateRange: t, combo: n, inputs: r }) {
235
+ function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
374
236
  let { t: i } = z(), { filter: a, operatorMeta: o, shouldShowDateRange: s, shouldShowComboBox: c } = e, { onBetweenStart: l, onBetweenEnd: u, onDate: d, onDirect: f } = r;
375
- return o?.requiresValues ? s ? /* @__PURE__ */ q(Ae, {
237
+ return o?.requiresValues ? s ? /* @__PURE__ */ q(ke, {
376
238
  filter: a,
377
239
  dateRange: t
378
240
  }) : a.operator === "between" || a.operator === "notBetween" ? /* @__PURE__ */ J("div", {
@@ -408,7 +270,7 @@ function Ne({ field: e, dateRange: t, combo: n, inputs: r }) {
408
270
  onChange: f,
409
271
  placeholder: i("filter.modal.enterNumber"),
410
272
  className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
411
- }) : c ? /* @__PURE__ */ q(Me, {
273
+ }) : c ? /* @__PURE__ */ q(je, {
412
274
  filter: a,
413
275
  operatorMeta: o,
414
276
  combo: n
@@ -425,25 +287,25 @@ function Ne({ field: e, dateRange: t, combo: n, inputs: r }) {
425
287
  }
426
288
  //#endregion
427
289
  //#region src/client/components/AnalysisBuilder/FilterConfigModal.tsx
428
- var Pe = d("close"), Fe = d("chevronDown"), Ie = d("dimension"), Le = d("timeDimension"), Re = d("measure");
429
- function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i }) {
430
- let { t: a } = z(), [o, s] = G(e), [c, l] = G(!1), [u, d] = G(!1), [f, p] = G(!1), [m, _] = G("this_month"), [v, b] = G(1), [S, w] = G(""), [E, D] = G(null), [O, k] = G(-1), A = W(null), j = W(null), ee = ce(S, 300), N = g(o.member, t), te = N?.field.type || "string", P = te === "time", ne = N?.fieldType === "measure", re = N?.fieldType === "dimension", ie = T(o.member, t), F = x[o.operator], ae = y(te), oe = P && o.operator === "inDateRange", L = V(() => [
290
+ var Ne = d("close"), Pe = d("chevronDown"), Fe = d("dimension"), Ie = d("timeDimension"), Le = d("measure");
291
+ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i }) {
292
+ let { t: a } = z(), [o, s] = G(e), [c, l] = G(!1), [u, d] = G(!1), [f, p] = G(!1), [m, h] = G("this_month"), [g, _] = G(1), [y, x] = G(""), [S, T] = G(null), [D, k] = G(-1), ee = W(null), A = W(null), te = de(y, 300), j = b(o.member, t), M = j?.field.type || "string", N = M === "time", re = j?.fieldType === "measure", ie = j?.fieldType === "dimension", ae = O(o.member, t), P = C[o.operator], oe = w(M), se = N && o.operator === "inDateRange", F = V(() => [
431
293
  "equals",
432
294
  "notEquals",
433
295
  "in",
434
296
  "notIn"
435
- ].includes(o.operator) && re && !P, [
297
+ ].includes(o.operator) && ie && !N, [
436
298
  o.operator,
437
- re,
438
- P
439
- ])(), { values: R, loading: se, error: ue, searchValues: de } = le(o.member, L);
299
+ ie,
300
+ N
301
+ ])(), { values: L, loading: ce, error: le, searchValues: R } = fe(o.member, F);
440
302
  H(() => {
441
303
  if (!i) {
442
- D(null);
304
+ T(null);
443
305
  return;
444
306
  }
445
307
  let e = i.getBoundingClientRect(), t = e.top, n = window.innerHeight - e.bottom, r = t > 500 || t > n, a = Math.max(16, Math.min(e.left, window.innerWidth - 400 - 16));
446
- D(r ? {
308
+ T(r ? {
447
309
  bottom: window.innerHeight - e.top + 8,
448
310
  left: a
449
311
  } : {
@@ -452,33 +314,33 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
452
314
  });
453
315
  }, [i]), H(() => {
454
316
  let e = (e) => {
455
- A.current && !A.current.contains(e.target) && (l(!1), d(!1), p(!1));
317
+ ee.current && !ee.current.contains(e.target) && (l(!1), d(!1), p(!1));
456
318
  };
457
319
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
458
320
  }, []), H(() => {
459
- u && L && de && de("", !0), u || k(-1);
321
+ u && F && R && R("", !0), u || k(-1);
460
322
  }, [
461
323
  u,
462
- L,
463
- de
324
+ F,
325
+ R
464
326
  ]), H(() => {
465
- if (O >= 0 && j.current) {
466
- let e = j.current.children[O];
327
+ if (D >= 0 && A.current) {
328
+ let e = A.current.children[D];
467
329
  e && e.scrollIntoView({ block: "nearest" });
468
330
  }
469
- }, [O]), H(() => {
470
- u && L && de && ee !== void 0 && de(ee);
331
+ }, [D]), H(() => {
332
+ u && F && R && te !== void 0 && R(te);
471
333
  }, [
472
- ee,
334
+ te,
473
335
  u,
474
- L,
475
- de
336
+ F,
337
+ R
476
338
  ]), H(() => {
477
- if (!oe) return;
478
- let e = h(o.dateRange);
479
- e && (_(e.rangeType), e.numberValue !== void 0 && b(e.numberValue));
480
- }, [o.dateRange, oe]);
481
- let fe = V((e) => {
339
+ if (!se) return;
340
+ let e = v(o.dateRange);
341
+ e && (h(e.rangeType), e.numberValue !== void 0 && _(e.numberValue));
342
+ }, [o.dateRange, se]);
343
+ let ue = V((e) => {
482
344
  s({
483
345
  member: o.member,
484
346
  operator: e,
@@ -486,7 +348,7 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
486
348
  }), l(!1);
487
349
  }, [o.member]), pe = V((e, t) => {
488
350
  let n = t?.shiftKey ?? !1, r = o.values || [];
489
- F?.supportsMultipleValues ? (r.includes(e) ? s({
351
+ P?.supportsMultipleValues ? (r.includes(e) ? s({
490
352
  ...o,
491
353
  values: r.filter((t) => t !== e)
492
354
  }) : s({
@@ -495,28 +357,28 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
495
357
  }), n || d(!1)) : (s({
496
358
  ...o,
497
359
  values: [e]
498
- }), d(!1)), w(""), k(-1);
499
- }, [o, F?.supportsMultipleValues]), me = V((e) => {
360
+ }), d(!1)), x(""), k(-1);
361
+ }, [o, P?.supportsMultipleValues]), me = V((e) => {
500
362
  let t = (o.values || []).filter((t) => t !== e);
501
363
  s({
502
364
  ...o,
503
365
  values: t
504
366
  });
505
367
  }, [o]), he = V((e) => {
506
- let t = De(e.key, u, R.length, O);
368
+ let t = Ee(e.key, u, L.length, D);
507
369
  if (t.type !== "none") {
508
370
  if (e.preventDefault(), t.type === "highlight") return k(t.index);
509
- if (t.type === "select") return pe(R[t.index], { shiftKey: e.shiftKey });
371
+ if (t.type === "select") return pe(L[t.index], { shiftKey: e.shiftKey });
510
372
  d(!1), k(-1);
511
373
  }
512
374
  }, [
513
375
  u,
514
- R,
515
- O,
376
+ L,
377
+ D,
516
378
  pe
517
379
  ]), ge = V((e) => {
518
380
  let t = e.target.value;
519
- if (F?.valueType === "number") {
381
+ if (P?.valueType === "number") {
520
382
  let e = parseFloat(t);
521
383
  isNaN(e) ? (t === "" || t === "-") && s({
522
384
  ...o,
@@ -529,37 +391,37 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
529
391
  ...o,
530
392
  values: t ? [t] : []
531
393
  });
532
- }, [o, F?.valueType]), B = V((e) => {
394
+ }, [o, P?.valueType]), _e = V((e) => {
533
395
  let t = parseFloat(e.target.value), n = [isNaN(t) ? "" : t, (o.values?.length >= 2 ? o.values : ["", ""])[1]].filter((e) => e !== "");
534
396
  s({
535
397
  ...o,
536
398
  values: n
537
399
  });
538
- }, [o]), _e = V((e) => {
400
+ }, [o]), ve = V((e) => {
539
401
  let t = parseFloat(e.target.value), n = [(o.values?.length >= 2 ? o.values : ["", ""])[0], isNaN(t) ? "" : t].filter((e) => e !== "");
540
402
  s({
541
403
  ...o,
542
404
  values: n
543
405
  });
544
- }, [o]), ve = V((e) => {
406
+ }, [o]), ye = V((e) => {
545
407
  let t = e.target.value;
546
408
  s({
547
409
  ...o,
548
410
  values: t ? [t] : []
549
411
  });
550
- }, [o]), ye = V((e) => {
551
- _(e), p(!1);
412
+ }, [o]), B = V((e) => {
413
+ h(e), p(!1);
552
414
  let t;
553
415
  if (e === "custom") {
554
416
  let e = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
555
417
  t = [e, e];
556
- } else t = M(e) ? I(e, v) : I(e);
418
+ } else t = ne(e) ? I(e, g) : I(e);
557
419
  s({
558
420
  ...o,
559
421
  dateRange: t
560
422
  });
561
- }, [o, v]), be = V((e) => {
562
- if (b(e), M(m)) {
423
+ }, [o, g]), be = V((e) => {
424
+ if (_(e), ne(m)) {
563
425
  let t = I(m, e);
564
426
  s({
565
427
  ...o,
@@ -578,33 +440,33 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
578
440
  ...o,
579
441
  dateRange: [n, t]
580
442
  });
581
- }, [o]), Ce = a(ae.find((e) => e.operator === o.operator)?.label || o.operator), we = a(C.find((e) => e.value === m)?.label || "filter.modal.selectRange"), Te = {
443
+ }, [o]), Ce = a(oe.find((e) => e.operator === o.operator)?.label || o.operator), we = a(E.find((e) => e.value === m)?.label || "filter.modal.selectRange"), Te = {
582
444
  filter: o,
583
- operatorMeta: F,
584
- shouldShowDateRange: oe,
585
- shouldShowComboBox: L
586
- }, Ee = {
445
+ operatorMeta: P,
446
+ shouldShowDateRange: se,
447
+ shouldShowComboBox: F
448
+ }, Y = {
587
449
  rangeType: m,
588
- numberValue: v,
450
+ numberValue: g,
589
451
  label: we,
590
452
  isOpen: f,
591
453
  onToggle: p,
592
- onRangeTypeChange: ye,
454
+ onRangeTypeChange: B,
593
455
  onNumberValueChange: be,
594
456
  onCustomStartDate: xe,
595
457
  onCustomEndDate: Se,
596
458
  onOpen: V(() => {
597
459
  l(!1), d(!1);
598
460
  }, [])
599
- }, Y = {
461
+ }, De = {
600
462
  isOpen: u,
601
- options: R,
602
- loading: se,
603
- error: ue,
604
- searchText: S,
605
- highlightedIndex: O,
606
- listRef: j,
607
- onSearchTextChange: w,
463
+ options: L,
464
+ loading: ce,
465
+ error: le,
466
+ searchText: y,
467
+ highlightedIndex: D,
468
+ listRef: A,
469
+ onSearchTextChange: x,
608
470
  onHighlightedIndexChange: k,
609
471
  onSelect: pe,
610
472
  onRemove: me,
@@ -613,26 +475,26 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
613
475
  l(!1), p(!1), d((e) => !e);
614
476
  }, [])
615
477
  }, Oe = U(() => ({
616
- onBetweenStart: B,
617
- onBetweenEnd: _e,
618
- onDate: ve,
478
+ onBetweenStart: _e,
479
+ onBetweenEnd: ve,
480
+ onDate: ye,
619
481
  onDirect: ge
620
482
  }), [
621
- B,
622
483
  _e,
623
484
  ve,
485
+ ye,
624
486
  ge
625
- ]), ke = P ? Le : ne ? Re : Ie;
487
+ ]), ke = N ? Ie : re ? Le : Fe;
626
488
  return /* @__PURE__ */ q(K, { children: /* @__PURE__ */ q("div", {
627
- className: `dc:fixed dc:inset-0 bg-dc-overlay dc:z-50 ${E ? "" : "dc:flex dc:items-center dc:justify-center dc:p-4"}`,
489
+ className: `dc:fixed dc:inset-0 bg-dc-overlay dc:z-50 ${S ? "" : "dc:flex dc:items-center dc:justify-center dc:p-4"}`,
628
490
  onClick: r,
629
491
  children: /* @__PURE__ */ J("div", {
630
- ref: A,
631
- className: E ? "bg-dc-surface dc:rounded-lg dc:border border-dc-border" : "bg-dc-surface dc:rounded-lg dc:border border-dc-border dc:max-w-md dc:w-full",
492
+ ref: ee,
493
+ className: S ? "bg-dc-surface dc:rounded-lg dc:border border-dc-border" : "bg-dc-surface dc:rounded-lg dc:border border-dc-border dc:max-w-md dc:w-full",
632
494
  style: {
633
- ...E ? {
495
+ ...S ? {
634
496
  position: "fixed",
635
- ...E,
497
+ ...S,
636
498
  maxWidth: "400px",
637
499
  width: "100%"
638
500
  } : {},
@@ -648,7 +510,7 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
648
510
  }), /* @__PURE__ */ q("button", {
649
511
  onClick: r,
650
512
  className: "dc:p-1 text-dc-text-muted hover:text-dc-text dc:transition-colors",
651
- children: /* @__PURE__ */ q(Pe, { className: "dc:w-5 dc:h-5" })
513
+ children: /* @__PURE__ */ q(Ne, { className: "dc:w-5 dc:h-5" })
652
514
  })]
653
515
  }),
654
516
  /* @__PURE__ */ J("div", {
@@ -661,7 +523,7 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
661
523
  className: "dc:flex dc:items-center dc:gap-2 dc:p-3 bg-dc-surface-secondary dc:rounded-sm",
662
524
  children: [/* @__PURE__ */ q(ke, { className: "dc:w-5 dc:h-5 text-dc-filter-text" }), /* @__PURE__ */ q("span", {
663
525
  className: "dc:text-sm dc:font-medium text-dc-text",
664
- children: ie
526
+ children: ae
665
527
  })]
666
528
  })] }),
667
529
  /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("label", {
@@ -677,11 +539,11 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
677
539
  children: [/* @__PURE__ */ q("span", {
678
540
  className: "dc:truncate",
679
541
  children: Ce
680
- }), /* @__PURE__ */ q(Fe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${c ? "dc:rotate-180" : ""}` })]
542
+ }), /* @__PURE__ */ q(Pe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${c ? "dc:rotate-180" : ""}` })]
681
543
  }), c && /* @__PURE__ */ q("div", {
682
544
  className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
683
- children: ae.map((e) => /* @__PURE__ */ q("button", {
684
- onClick: () => fe(e.operator),
545
+ children: oe.map((e) => /* @__PURE__ */ q("button", {
546
+ onClick: () => ue(e.operator),
685
547
  className: `dc:w-full dc:text-left dc:px-3 dc:py-2 dc:text-sm hover:bg-dc-surface-hover ${e.operator === o.operator ? "bg-dc-primary/10 text-dc-primary" : "text-dc-text"}`,
686
548
  children: a(e.label)
687
549
  }, e.operator))
@@ -690,10 +552,10 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
690
552
  /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("label", {
691
553
  className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
692
554
  children: a("filter.modal.valueLabel")
693
- }), /* @__PURE__ */ q(Ne, {
555
+ }), /* @__PURE__ */ q(Me, {
694
556
  field: Te,
695
- dateRange: Ee,
696
- combo: Y,
557
+ dateRange: Y,
558
+ combo: De,
697
559
  inputs: Oe
698
560
  })] })
699
561
  ]
@@ -716,9 +578,9 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
716
578
  }
717
579
  //#endregion
718
580
  //#region src/client/components/AnalysisBuilder/AnalysisFilterItem.tsx
719
- var Be = d("close"), Ve = d("dimension"), He = d("timeDimension"), Ue = d("measure");
720
- function We({ filter: e, schema: t, onRemove: n, onUpdate: r }) {
721
- let { t: i } = z(), [a, o] = G(!1), s = W(null), c = g(e.member, t), l = (c?.field.type || "string") === "time", u = c?.fieldType === "measure", d = T(e.member, t), f = x[e.operator], p = f?.label ? i(f.label) : e.operator, m = Ge(e, f, i), h = l ? He : u ? Ue : Ve;
581
+ var ze = d("close"), Be = d("dimension"), Ve = d("timeDimension"), He = d("measure");
582
+ function Ue({ filter: e, schema: t, onRemove: n, onUpdate: r }) {
583
+ let { t: i } = z(), [a, o] = G(!1), s = W(null), c = b(e.member, t), l = (c?.field.type || "string") === "time", u = c?.fieldType === "measure", d = O(e.member, t), f = C[e.operator], p = f?.label ? i(f.label) : e.operator, m = We(e, f, i), h = l ? Ve : u ? He : Be;
722
584
  return /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ J("div", {
723
585
  className: "dc:flex dc:items-start dc:gap-2 dc:px-2 dc:py-1.5 bg-dc-surface-secondary dc:rounded-lg dc:group hover:bg-dc-surface-tertiary dc:transition-all dc:duration-150 dc:w-full",
724
586
  children: [
@@ -753,10 +615,10 @@ function We({ filter: e, schema: t, onRemove: n, onUpdate: r }) {
753
615
  onClick: n,
754
616
  className: "dc:p-1 text-dc-text-muted hover:text-dc-danger dc:opacity-100 dc:sm:opacity-0 dc:sm:group-hover:opacity-100 dc:transition-opacity dc:flex-shrink-0 dc:mt-0.5",
755
617
  title: i("filter.removeButton.title"),
756
- children: Be && /* @__PURE__ */ q(Be, { className: "dc:w-4 dc:h-4" })
618
+ children: ze && /* @__PURE__ */ q(ze, { className: "dc:w-4 dc:h-4" })
757
619
  })
758
620
  ]
759
- }), a && /* @__PURE__ */ q(ze, {
621
+ }), a && /* @__PURE__ */ q(Re, {
760
622
  filter: e,
761
623
  schema: t,
762
624
  onSave: (e) => {
@@ -766,7 +628,7 @@ function We({ filter: e, schema: t, onRemove: n, onUpdate: r }) {
766
628
  anchorElement: s.current
767
629
  })] });
768
630
  }
769
- function Ge(e, t, n) {
631
+ function We(e, t, n) {
770
632
  if (!t?.requiresValues) return "";
771
633
  if (e.dateRange) return Array.isArray(e.dateRange) ? `${e.dateRange[0]} to ${e.dateRange[1]}` : e.dateRange;
772
634
  let r = e.values || [];
@@ -774,8 +636,8 @@ function Ge(e, t, n) {
774
636
  }
775
637
  //#endregion
776
638
  //#region src/client/components/AnalysisBuilder/AnalysisFilterGroup.tsx
777
- var Ke = d("add"), qe = d("close");
778
- function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, depth: a = 0, hideRemoveButton: o = !1 }) {
639
+ var Ge = d("add"), Ke = d("close");
640
+ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, depth: a = 0, hideRemoveButton: o = !1 }) {
779
641
  let { t: s } = z(), [c, l] = G(!1), u = W(null);
780
642
  H(() => {
781
643
  let e = (e) => {
@@ -784,7 +646,7 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
784
646
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
785
647
  }, []);
786
648
  let d = V(() => {
787
- n(te(e));
649
+ n(ie(e));
788
650
  }, [e, n]), f = V((t, r) => {
789
651
  let i = [...e.filters];
790
652
  i[t] = r, n({
@@ -844,7 +706,7 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
844
706
  onClick: () => l(!c),
845
707
  className: "dc:p-1 text-dc-text-secondary hover:text-dc-primary hover:bg-dc-surface-hover dc:rounded-sm dc:transition-colors",
846
708
  title: "Add condition",
847
- children: /* @__PURE__ */ q(Ke, { className: "dc:w-4 dc:h-4" })
709
+ children: /* @__PURE__ */ q(Ge, { className: "dc:w-4 dc:h-4" })
848
710
  }), c && /* @__PURE__ */ J("div", {
849
711
  className: "dc:absolute dc:right-0 dc:mt-1 dc:z-40 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:py-1 dc:min-w-[120px]",
850
712
  children: [
@@ -869,7 +731,7 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
869
731
  onClick: r,
870
732
  className: "dc:p-1 text-dc-text-muted hover:text-dc-danger dc:transition-colors",
871
733
  title: s("filter.group.removeGroup"),
872
- children: /* @__PURE__ */ q(qe, { className: "dc:w-4 dc:h-4" })
734
+ children: /* @__PURE__ */ q(Ke, { className: "dc:w-4 dc:h-4" })
873
735
  })]
874
736
  })]
875
737
  }), /* @__PURE__ */ q("div", {
@@ -884,12 +746,12 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
884
746
  className: "dc:text-xs text-dc-primary dc:hover:underline",
885
747
  children: s("filter.group.addFilterLink")
886
748
  })]
887
- }) : e.filters.map((e, n) => ne(e) ? /* @__PURE__ */ q(We, {
749
+ }) : e.filters.map((e, n) => P(e) ? /* @__PURE__ */ q(Ue, {
888
750
  filter: e,
889
751
  schema: t,
890
752
  onUpdate: (e) => f(n, e),
891
753
  onRemove: () => p(n)
892
- }, `filter-${n}`) : P(e) ? /* @__PURE__ */ q(Je, {
754
+ }, `filter-${n}`) : ae(e) ? /* @__PURE__ */ q(qe, {
893
755
  group: e,
894
756
  schema: t,
895
757
  onUpdate: (e) => f(n, e),
@@ -902,8 +764,8 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
902
764
  }
903
765
  //#endregion
904
766
  //#region src/client/components/AnalysisBuilder/AnalysisFilterSection.tsx
905
- var Ye = d("add");
906
- function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dimensionsOnly: i = !1 }) {
767
+ var Je = d("add");
768
+ function Ye({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dimensionsOnly: i = !1 }) {
907
769
  let { t: a } = z(), [o, s] = G(!1), [c, l] = G(!1), u = W([]), d = R(e), f = V((e) => {
908
770
  e.preventDefault(), e.stopPropagation(), l(!0);
909
771
  }, []), p = V((e) => {
@@ -914,18 +776,18 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
914
776
  let t = JSON.parse(e.dataTransfer.getData("text/plain"));
915
777
  t.field && r && r(t.field);
916
778
  } catch {}
917
- }, [r]), h = ee(e), g = V((t, r, i) => {
779
+ }, [r]), h = N(e), g = V((t, r, i) => {
918
780
  let a = t.type === "time", o = a ? "inDateRange" : "equals", c = {
919
781
  member: t.name,
920
782
  operator: o,
921
783
  values: []
922
784
  };
923
- a && o === "inDateRange" && (c.dateRange = I("this_month")), n(re(e, u.current, c)), s(!1), u.current = [];
785
+ a && o === "inDateRange" && (c.dateRange = I("this_month")), n(oe(e, u.current, c)), s(!1), u.current = [];
924
786
  }, [e, n]), _ = V((t, r) => {
925
787
  let i = [...e];
926
788
  i[t] = r, n(i);
927
789
  }, [e, n]), v = V((t) => {
928
- n(ie(e, t));
790
+ n(se(e, t));
929
791
  }, [e, n]), y = V(() => {
930
792
  n([]);
931
793
  }, [n]), b = V(() => {
@@ -934,12 +796,12 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
934
796
  u.current = [...e, ...t], s(!0);
935
797
  }, []), S = (n, r, i = []) => {
936
798
  let a = [...i, r];
937
- return ne(n) ? /* @__PURE__ */ q(We, {
799
+ return P(n) ? /* @__PURE__ */ q(Ue, {
938
800
  filter: n,
939
801
  schema: t,
940
802
  onUpdate: (e) => _(r, e),
941
803
  onRemove: () => v(r)
942
- }, `filter-${a.join("-")}`) : P(n) ? /* @__PURE__ */ q(Je, {
804
+ }, `filter-${a.join("-")}`) : ae(n) ? /* @__PURE__ */ q(qe, {
943
805
  group: n,
944
806
  schema: t,
945
807
  onUpdate: (e) => _(r, e),
@@ -953,7 +815,7 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
953
815
  onClick: b,
954
816
  className: "dc:flex dc:items-center dc:justify-between dc:mb-3 dc:w-full dc:py-1 dc:px-2 dc:-ml-2 dc:rounded-lg hover:bg-dc-primary/10 dc:transition-colors dc:group",
955
817
  title: "Add filter",
956
- children: [/* @__PURE__ */ J(ge, { children: [a("analysis.sections.filters"), d > 0 && /* @__PURE__ */ J("span", {
818
+ children: [/* @__PURE__ */ J(ye, { children: [a("analysis.sections.filters"), d > 0 && /* @__PURE__ */ J("span", {
957
819
  className: "dc:ml-1.5 dc:text-xs dc:font-normal text-dc-text-muted dc:normal-case dc:tracking-normal",
958
820
  children: [
959
821
  "(",
@@ -973,7 +835,7 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
973
835
  },
974
836
  className: "dc:text-xs text-dc-text-muted hover:text-dc-error dc:underline dc:cursor-pointer",
975
837
  children: a("filter.section.clearAll")
976
- }), /* @__PURE__ */ q(Ye, { className: "dc:w-5 dc:h-5 text-dc-text-secondary group-hover:text-dc-primary dc:transition-colors" })]
838
+ }), /* @__PURE__ */ q(Je, { className: "dc:w-5 dc:h-5 text-dc-text-secondary group-hover:text-dc-primary dc:transition-colors" })]
977
839
  })]
978
840
  }),
979
841
  /* @__PURE__ */ q("div", {
@@ -989,7 +851,7 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
989
851
  children: e.map((e, t) => S(e, t))
990
852
  })
991
853
  }),
992
- /* @__PURE__ */ q(E, {
854
+ /* @__PURE__ */ q(k, {
993
855
  isOpen: o,
994
856
  onClose: () => {
995
857
  s(!1), u.current = [];
@@ -1003,30 +865,30 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
1003
865
  }
1004
866
  //#endregion
1005
867
  //#region src/client/components/AnalysisBuilder/ExplainAIPanel.tsx
1006
- function Ze(e) {
868
+ function Xe(e) {
1007
869
  return typeof e == "string" ? e : typeof e == "object" && e ? JSON.stringify(e) : String(e ?? "");
1008
870
  }
1009
- var Qe = {
871
+ var Ze = {
1010
872
  good: "bg-dc-success-bg text-dc-success border-dc-success",
1011
873
  warning: "bg-dc-warning-bg text-dc-warning border-dc-warning",
1012
874
  critical: "bg-dc-danger-bg text-dc-error border-dc-error"
1013
- }, $e = {
875
+ }, Qe = {
1014
876
  critical: "bg-dc-danger-bg text-dc-error",
1015
877
  warning: "bg-dc-warning-bg text-dc-warning",
1016
878
  suggestion: "bg-dc-accent-bg text-dc-accent"
1017
- }, et = {
879
+ }, $e = {
1018
880
  high: "text-dc-error",
1019
881
  medium: "text-dc-warning",
1020
882
  low: "text-dc-text-muted"
1021
883
  };
1022
- function tt({ assessment: e, reason: t }) {
884
+ function et({ assessment: e, reason: t }) {
1023
885
  let { t: n } = z(), r = {
1024
886
  good: n("explainAI.assessment.good"),
1025
887
  warning: n("explainAI.assessment.warning"),
1026
888
  critical: n("explainAI.assessment.critical")
1027
889
  };
1028
890
  return /* @__PURE__ */ J("div", {
1029
- className: `dc:p-4 dc:rounded-lg dc:border ${Qe[e]}`,
891
+ className: `dc:p-4 dc:rounded-lg dc:border ${Ze[e]}`,
1030
892
  children: [/* @__PURE__ */ q("div", {
1031
893
  className: "dc:flex dc:items-center dc:gap-2 dc:mb-1",
1032
894
  children: /* @__PURE__ */ J("span", {
@@ -1040,15 +902,15 @@ function tt({ assessment: e, reason: t }) {
1040
902
  })
1041
903
  }), /* @__PURE__ */ q("p", {
1042
904
  className: "dc:text-sm",
1043
- children: Ze(t)
905
+ children: Xe(t)
1044
906
  })]
1045
907
  });
1046
908
  }
1047
- function nt({ issue: e }) {
909
+ function tt({ issue: e }) {
1048
910
  return /* @__PURE__ */ J("div", {
1049
911
  className: "dc:flex dc:items-start dc:gap-2 dc:py-2",
1050
912
  children: [/* @__PURE__ */ J("span", {
1051
- className: `dc:text-sm ${et[e.severity]}`,
913
+ className: `dc:text-sm ${$e[e.severity]}`,
1052
914
  children: [
1053
915
  e.severity === "high" && "●",
1054
916
  e.severity === "medium" && "○",
@@ -1056,11 +918,11 @@ function nt({ issue: e }) {
1056
918
  ]
1057
919
  }), /* @__PURE__ */ q("span", {
1058
920
  className: "dc:text-sm text-dc-text-secondary",
1059
- children: Ze(e.description)
921
+ children: Xe(e.description)
1060
922
  })]
1061
923
  });
1062
924
  }
1063
- function rt({ text: e }) {
925
+ function nt({ text: e }) {
1064
926
  let { t } = z(), [n, r] = B.useState(!1), i = B.useRef(null);
1065
927
  return B.useEffect(() => () => {
1066
928
  i.current && clearTimeout(i.current);
@@ -1077,7 +939,7 @@ function rt({ text: e }) {
1077
939
  children: t(n ? "explainAI.copied" : "explainAI.copy")
1078
940
  });
1079
941
  }
1080
- function it({ rec: e }) {
942
+ function rt({ rec: e }) {
1081
943
  let { t } = z(), n = {
1082
944
  index: t("explainAI.type.index"),
1083
945
  table: t("explainAI.type.table"),
@@ -1090,23 +952,23 @@ function it({ rec: e }) {
1090
952
  /* @__PURE__ */ J("div", {
1091
953
  className: "dc:flex dc:items-center dc:gap-2 dc:mb-2",
1092
954
  children: [/* @__PURE__ */ q("span", {
1093
- className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-medium dc:rounded-sm ${$e[e.severity]}`,
955
+ className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-medium dc:rounded-sm ${Qe[e.severity]}`,
1094
956
  children: n[e.type]
1095
957
  }), /* @__PURE__ */ q("h5", {
1096
958
  className: "dc:font-medium text-dc-text",
1097
- children: Ze(e.title)
959
+ children: Xe(e.title)
1098
960
  })]
1099
961
  }),
1100
962
  /* @__PURE__ */ q("p", {
1101
963
  className: "dc:text-sm text-dc-text-secondary dc:mb-3",
1102
- children: Ze(e.description)
964
+ children: Xe(e.description)
1103
965
  }),
1104
966
  e.sql && /* @__PURE__ */ q("div", {
1105
967
  className: "dc:mt-2",
1106
- children: /* @__PURE__ */ q(m, {
968
+ children: /* @__PURE__ */ q(g, {
1107
969
  code: e.sql,
1108
970
  language: "sql",
1109
- headerRight: /* @__PURE__ */ q(rt, { text: e.sql })
971
+ headerRight: /* @__PURE__ */ q(nt, { text: e.sql })
1110
972
  })
1111
973
  }),
1112
974
  e.cubeCode && /* @__PURE__ */ J("div", {
@@ -1121,7 +983,7 @@ function it({ rec: e }) {
1121
983
  children: e.cubeCode
1122
984
  }), /* @__PURE__ */ q("div", {
1123
985
  className: "dc:absolute dc:top-1 dc:right-1",
1124
- children: /* @__PURE__ */ q(rt, { text: e.cubeCode })
986
+ children: /* @__PURE__ */ q(nt, { text: e.cubeCode })
1125
987
  })]
1126
988
  })]
1127
989
  }),
@@ -1130,13 +992,13 @@ function it({ rec: e }) {
1130
992
  children: [
1131
993
  /* @__PURE__ */ q("strong", { children: t("explainAI.expectedImpact") }),
1132
994
  " ",
1133
- Ze(e.estimatedImpact)
995
+ Xe(e.estimatedImpact)
1134
996
  ]
1135
997
  })
1136
998
  ]
1137
999
  });
1138
1000
  }
1139
- function at({ analysis: e, onClose: t, onClear: n }) {
1001
+ function it({ analysis: e, onClose: t, onClear: n }) {
1140
1002
  let { t: r } = z(), i = t || n;
1141
1003
  return B.useEffect(() => {
1142
1004
  let e = (e) => {
@@ -1186,7 +1048,7 @@ function at({ analysis: e, onClose: t, onClear: n }) {
1186
1048
  /* @__PURE__ */ J("div", {
1187
1049
  className: "dc:flex-1 dc:overflow-y-auto dc:px-6 dc:py-4 dc:space-y-6",
1188
1050
  children: [
1189
- /* @__PURE__ */ q(tt, {
1051
+ /* @__PURE__ */ q(et, {
1190
1052
  assessment: e.assessment,
1191
1053
  reason: e.assessmentReason
1192
1054
  }),
@@ -1195,28 +1057,28 @@ function at({ analysis: e, onClose: t, onClear: n }) {
1195
1057
  children: r("explainAI.summary")
1196
1058
  }), /* @__PURE__ */ q("p", {
1197
1059
  className: "text-dc-text",
1198
- children: Ze(e.summary)
1060
+ children: Xe(e.summary)
1199
1061
  })] }),
1200
1062
  e.queryUnderstanding && /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("h4", {
1201
1063
  className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-2",
1202
1064
  children: r("explainAI.queryAnalysis")
1203
1065
  }), /* @__PURE__ */ q("p", {
1204
1066
  className: "text-dc-text-secondary",
1205
- children: Ze(e.queryUnderstanding)
1067
+ children: Xe(e.queryUnderstanding)
1206
1068
  })] }),
1207
1069
  e.issues && e.issues.length > 0 && /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("h4", {
1208
1070
  className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-2",
1209
1071
  children: r("explainAI.issuesFound", { count: e.issues.length })
1210
1072
  }), /* @__PURE__ */ q("div", {
1211
1073
  className: "dc:space-y-1 bg-dc-surface-secondary dc:rounded-lg dc:p-3",
1212
- children: e.issues.map((e, t) => /* @__PURE__ */ q(nt, { issue: e }, t))
1074
+ children: e.issues.map((e, t) => /* @__PURE__ */ q(tt, { issue: e }, t))
1213
1075
  })] }),
1214
1076
  e.recommendations && e.recommendations.length > 0 && /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("h4", {
1215
1077
  className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-3",
1216
1078
  children: r("explainAI.recommendations", { count: e.recommendations.length })
1217
1079
  }), /* @__PURE__ */ q("div", {
1218
1080
  className: "dc:space-y-4",
1219
- children: e.recommendations.map((e, t) => /* @__PURE__ */ q(it, { rec: e }, t))
1081
+ children: e.recommendations.map((e, t) => /* @__PURE__ */ q(rt, { rec: e }, t))
1220
1082
  })] }),
1221
1083
  (!e.recommendations || e.recommendations.length === 0) && /* @__PURE__ */ q("div", {
1222
1084
  className: "text-dc-text-muted dc:italic dc:p-4 bg-dc-surface-secondary dc:rounded-lg",
@@ -1246,31 +1108,31 @@ function at({ analysis: e, onClose: t, onClear: n }) {
1246
1108
  }
1247
1109
  //#endregion
1248
1110
  //#region src/client/shared/chartConfigBuilders.ts
1249
- var ot = (e) => e.map((e) => e.field), st = (e) => e.length > 0 ? [e[0].field] : [];
1250
- function ct(e) {
1111
+ var at = (e) => e.map((e) => e.field), ot = (e) => e.length > 0 ? [e[0].field] : [];
1112
+ function st(e) {
1251
1113
  let { metrics: t, timeDimension: n, dimension: r, dimensions: i } = e;
1252
1114
  return {
1253
1115
  xAxis: n ? [n.field] : r ? [r.field] : [],
1254
- yAxis: ot(t),
1116
+ yAxis: at(t),
1255
1117
  series: i.length > 1 ? [i[1].field] : r && n ? [r.field] : []
1256
1118
  };
1257
1119
  }
1258
- function lt(e) {
1120
+ function ct(e) {
1259
1121
  let { metrics: t, timeDimension: n, dimension: r, dimensions: i } = e;
1260
1122
  return {
1261
1123
  xAxis: r ? [r.field] : n ? [n.field] : [],
1262
- yAxis: ot(t),
1124
+ yAxis: at(t),
1263
1125
  series: i.length > 1 ? [i[1].field] : n && r ? [n.field] : []
1264
1126
  };
1265
1127
  }
1266
- function ut(e) {
1128
+ function lt(e) {
1267
1129
  let { metrics: t, dimension: n } = e;
1268
1130
  return {
1269
1131
  xAxis: n ? [n.field] : [],
1270
- yAxis: st(t)
1132
+ yAxis: ot(t)
1271
1133
  };
1272
1134
  }
1273
- function dt(e) {
1135
+ function ut(e) {
1274
1136
  let { metrics: t, breakdowns: n, dimension: r, dimensions: i } = e;
1275
1137
  return t.length >= 2 ? {
1276
1138
  xAxis: [t[0].field],
@@ -1278,11 +1140,11 @@ function dt(e) {
1278
1140
  series: r ? [r.field] : []
1279
1141
  } : {
1280
1142
  xAxis: n.length > 0 ? [n[0].field] : [],
1281
- yAxis: st(t),
1143
+ yAxis: ot(t),
1282
1144
  series: i.length > 1 ? [i[1].field] : []
1283
1145
  };
1284
1146
  }
1285
- function ft(e) {
1147
+ function dt(e) {
1286
1148
  let { metrics: t, timeDimension: n, dimension: r } = e;
1287
1149
  return {
1288
1150
  xAxis: t.length > 0 ? [t[0].field] : [],
@@ -1291,125 +1153,125 @@ function ft(e) {
1291
1153
  series: r ? [r.field] : n ? [n.field] : []
1292
1154
  };
1293
1155
  }
1294
- function pt(e) {
1156
+ function ft(e) {
1295
1157
  let { metrics: t, dimension: n } = e;
1296
1158
  return {
1297
1159
  xAxis: n ? [n.field] : [],
1298
- yAxis: st(t)
1160
+ yAxis: ot(t)
1299
1161
  };
1300
1162
  }
1301
- function mt(e) {
1163
+ function pt(e) {
1302
1164
  let { metrics: t, timeDimension: n } = e;
1303
1165
  return {
1304
1166
  dateField: n ? [n.field] : [],
1305
- valueField: st(t)
1167
+ valueField: ot(t)
1306
1168
  };
1307
1169
  }
1308
- function ht(e) {
1309
- return { yAxis: st(e.metrics) };
1170
+ function mt(e) {
1171
+ return { yAxis: ot(e.metrics) };
1310
1172
  }
1311
- function gt(e) {
1173
+ function ht(e) {
1312
1174
  let { metrics: t, breakdowns: n } = e;
1313
1175
  return { xAxis: [...n.map((e) => e.field), ...t.map((e) => e.field)] };
1314
1176
  }
1315
- function _t(e) {
1177
+ function gt(e) {
1316
1178
  let { metrics: t, breakdowns: n } = e;
1317
1179
  return { columns: [...n.map((e) => e.field), ...t.map((e) => e.field)] };
1318
1180
  }
1319
- function vt() {
1181
+ function _t() {
1320
1182
  return {};
1321
1183
  }
1322
- function yt(e) {
1184
+ function vt(e) {
1323
1185
  let { metrics: t, breakdowns: n } = e;
1324
1186
  return {
1325
1187
  xAxis: n.length > 0 ? [n[0].field] : [],
1326
- yAxis: ot(t)
1188
+ yAxis: at(t)
1327
1189
  };
1328
1190
  }
1329
- var bt = {
1330
- line: ct,
1331
- area: ct,
1332
- bar: lt,
1333
- pie: ut,
1334
- scatter: dt,
1335
- bubble: ft,
1336
- radar: pt,
1337
- radialBar: pt,
1338
- treemap: pt,
1339
- proportionBar: ut,
1340
- activityGrid: mt,
1341
- kpiNumber: ht,
1342
- kpiDelta: ht,
1343
- kpiText: ht,
1344
- table: gt,
1345
- recordsTable: _t,
1346
- markdown: vt
1191
+ var yt = {
1192
+ line: st,
1193
+ area: st,
1194
+ bar: ct,
1195
+ pie: lt,
1196
+ scatter: ut,
1197
+ bubble: dt,
1198
+ radar: ft,
1199
+ radialBar: ft,
1200
+ treemap: ft,
1201
+ proportionBar: lt,
1202
+ activityGrid: pt,
1203
+ kpiNumber: mt,
1204
+ kpiDelta: mt,
1205
+ kpiText: mt,
1206
+ table: ht,
1207
+ recordsTable: gt,
1208
+ markdown: _t
1347
1209
  };
1348
- function xt(e) {
1349
- return bt[e] || yt;
1210
+ function bt(e) {
1211
+ return yt[e] || vt;
1350
1212
  }
1351
1213
  //#endregion
1352
1214
  //#region src/client/shared/chartDefaults.ts
1353
- function St(e) {
1215
+ function xt(e) {
1354
1216
  return e.isTimeDimension;
1355
1217
  }
1356
- function Ct(e) {
1357
- return e.find(St);
1218
+ function St(e) {
1219
+ return e.find(xt);
1358
1220
  }
1359
- function wt(e) {
1221
+ function Ct(e) {
1360
1222
  return e.find((e) => !e.isTimeDimension);
1361
1223
  }
1362
- function Tt(e) {
1224
+ function wt(e) {
1363
1225
  return e.filter((e) => !e.isTimeDimension);
1364
1226
  }
1365
- function Et(e) {
1366
- return e.filter(St);
1227
+ function Tt(e) {
1228
+ return e.filter(xt);
1367
1229
  }
1368
- function Dt(e, t) {
1230
+ function Et(e, t) {
1369
1231
  return {
1370
1232
  measureCount: e.length,
1371
1233
  dimensionCount: t.length,
1372
- timeDimensionCount: Et(t).length
1234
+ timeDimensionCount: Tt(t).length
1373
1235
  };
1374
1236
  }
1375
- function Ot(e, t, n) {
1237
+ function Dt(e, t, n) {
1376
1238
  let r = u[e];
1377
- return !r || !r.isAvailable ? { available: !0 } : r.isAvailable(Dt(t, n));
1239
+ return !r || !r.isAvailable ? { available: !0 } : r.isAvailable(Et(t, n));
1378
1240
  }
1379
- function kt(e, t) {
1241
+ function Ot(e, t) {
1380
1242
  let n = Object.keys(u), r = {};
1381
- for (let i of n) r[i] = Ot(i, e, t);
1243
+ for (let i of n) r[i] = Dt(i, e, t);
1382
1244
  return r;
1383
1245
  }
1384
- function At(e, t, n) {
1385
- if (Ot(n, e, t).available || e.length === 0 && t.length === 0) return n;
1386
- let r = Et(t).length > 0, i = Tt(t).length > 0, a = e.length > 0;
1246
+ function kt(e, t, n) {
1247
+ if (Dt(n, e, t).available || e.length === 0 && t.length === 0) return n;
1248
+ let r = Tt(t).length > 0, i = wt(t).length > 0, a = e.length > 0;
1387
1249
  return r && a ? "line" : i && a ? "bar" : a && !i && !r ? "kpiNumber" : "table";
1388
1250
  }
1389
- function jt(e, t, n) {
1390
- let r = At(e, t, n);
1251
+ function At(e, t, n) {
1252
+ let r = kt(e, t, n);
1391
1253
  return {
1392
1254
  chartType: r,
1393
- chartConfig: Mt(r, e, t)
1255
+ chartConfig: jt(r, e, t)
1394
1256
  };
1395
1257
  }
1396
- function Mt(e, t, n) {
1397
- return xt(e)({
1258
+ function jt(e, t, n) {
1259
+ return bt(e)({
1398
1260
  metrics: t,
1399
1261
  breakdowns: n,
1400
- timeDimension: Ct(n),
1401
- dimension: wt(n),
1402
- dimensions: Tt(n)
1262
+ timeDimension: St(n),
1263
+ dimension: Ct(n),
1264
+ dimensions: wt(n)
1403
1265
  });
1404
1266
  }
1405
- function Nt(e, t, n, r) {
1406
- if (r && Ot(n, e, t).available) return null;
1407
- let i = At(e, t, n);
1267
+ function Mt(e, t, n, r) {
1268
+ if (r && Dt(n, e, t).available) return null;
1269
+ let i = kt(e, t, n);
1408
1270
  return i === n ? null : i;
1409
1271
  }
1410
1272
  //#endregion
1411
1273
  //#region src/client/components/AnalysisBuilder/ExecutionPlanPanelParts.tsx
1412
- function Pt({ title: e, height: t, className: n, children: r }) {
1274
+ function Nt({ title: e, height: t, className: n, children: r }) {
1413
1275
  return /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ q("h4", {
1414
1276
  className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2",
1415
1277
  children: e
@@ -1419,32 +1281,32 @@ function Pt({ title: e, height: t, className: n, children: r }) {
1419
1281
  children: r
1420
1282
  })] });
1421
1283
  }
1422
- function Ft({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSql: i, title: a, height: o, headerRight: s }) {
1284
+ function Pt({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSql: i, title: a, height: o, headerRight: s }) {
1423
1285
  let { t: c } = z();
1424
- return t ? /* @__PURE__ */ q(Pt, {
1286
+ return t ? /* @__PURE__ */ q(Nt, {
1425
1287
  title: a,
1426
1288
  height: o,
1427
1289
  className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
1428
1290
  children: c("results.debug.loadingSql")
1429
- }) : n ? /* @__PURE__ */ q(Pt, {
1291
+ }) : n ? /* @__PURE__ */ q(Nt, {
1430
1292
  title: a,
1431
1293
  height: o,
1432
1294
  className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
1433
1295
  children: n.message
1434
- }) : e ? /* @__PURE__ */ q(m, {
1296
+ }) : e ? /* @__PURE__ */ q(g, {
1435
1297
  code: i,
1436
1298
  language: "sql",
1437
1299
  title: a,
1438
1300
  height: o,
1439
1301
  headerRight: s
1440
- }) : /* @__PURE__ */ q(Pt, {
1302
+ }) : /* @__PURE__ */ q(Nt, {
1441
1303
  title: a,
1442
1304
  height: o,
1443
1305
  className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm",
1444
1306
  children: r
1445
1307
  });
1446
1308
  }
1447
- function It({ summary: e }) {
1309
+ function Ft({ summary: e }) {
1448
1310
  let { t } = z();
1449
1311
  return /* @__PURE__ */ J("div", {
1450
1312
  className: "dc:flex dc:flex-wrap dc:items-center dc:gap-2",
@@ -1476,7 +1338,7 @@ function It({ summary: e }) {
1476
1338
  ]
1477
1339
  });
1478
1340
  }
1479
- function Lt({ explainLoading: e, explainError: t, explainResult: n, useAnalyze: r, aiButton: i }) {
1341
+ function It({ explainLoading: e, explainError: t, explainResult: n, useAnalyze: r, aiButton: i }) {
1480
1342
  let { t: a } = z();
1481
1343
  return e ? /* @__PURE__ */ q("div", {
1482
1344
  className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
@@ -1491,7 +1353,7 @@ function Lt({ explainLoading: e, explainError: t, explainResult: n, useAnalyze:
1491
1353
  }) : n ? /* @__PURE__ */ J("div", {
1492
1354
  className: "dc:space-y-3",
1493
1355
  children: [
1494
- /* @__PURE__ */ q(It, { summary: n.summary }),
1356
+ /* @__PURE__ */ q(Ft, { summary: n.summary }),
1495
1357
  n.summary.usedIndexes.length > 0 && /* @__PURE__ */ J("div", {
1496
1358
  className: "dc:text-xs text-dc-text-muted",
1497
1359
  children: [
@@ -1500,7 +1362,7 @@ function Lt({ explainLoading: e, explainError: t, explainResult: n, useAnalyze:
1500
1362
  n.summary.usedIndexes.join(", ")
1501
1363
  ]
1502
1364
  }),
1503
- /* @__PURE__ */ q(m, {
1365
+ /* @__PURE__ */ q(g, {
1504
1366
  code: n.raw,
1505
1367
  language: "sql",
1506
1368
  title: a("debug.executionPlanTitle", { database: n.summary.database }),
@@ -1512,7 +1374,7 @@ function Lt({ explainLoading: e, explainError: t, explainResult: n, useAnalyze:
1512
1374
  }
1513
1375
  //#endregion
1514
1376
  //#region src/client/components/AnalysisBuilder/ExecutionPlanPanel.tsx
1515
- var Rt = ve(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder: r = "Add metrics to generate SQL", explainResult: i, explainLoading: a = !1, explainHasRun: o = !1, explainError: s, runExplain: c, aiAnalysis: l, aiAnalysisLoading: u = !1, aiAnalysisError: d, runAIAnalysis: f, clearAIAnalysis: p, enableAI: m = !1, query: h, title: g = "Generated SQL", height: _ = "16rem" }) {
1377
+ var Lt = xe(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder: r = "Add metrics to generate SQL", explainResult: i, explainLoading: a = !1, explainHasRun: o = !1, explainError: s, runExplain: c, aiAnalysis: l, aiAnalysisLoading: u = !1, aiAnalysisError: d, runAIAnalysis: f, clearAIAnalysis: p, enableAI: m = !1, query: h, title: g = "Generated SQL", height: _ = "16rem" }) {
1516
1378
  let { t: v } = z(), [y, b] = G(!1), [x, S] = G(!1), C = e ? e.sql + (e.params && e.params.length > 0 ? "\n\n-- Parameters:\n" + JSON.stringify(e.params, null, 2) : "") : "", w = () => {
1517
1379
  f && i && h && (f(i, h), S(!0));
1518
1380
  }, T = () => {
@@ -1529,7 +1391,7 @@ var Rt = ve(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
1529
1391
  return /* @__PURE__ */ J("div", {
1530
1392
  className: "dc:space-y-3",
1531
1393
  children: [
1532
- /* @__PURE__ */ q(Ft, {
1394
+ /* @__PURE__ */ q(Pt, {
1533
1395
  sql: e,
1534
1396
  sqlLoading: t,
1535
1397
  sqlError: n,
@@ -1552,7 +1414,7 @@ var Rt = ve(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
1552
1414
  children: v(a ? "debug.explainRunning" : "debug.explainPlan")
1553
1415
  })] })
1554
1416
  }),
1555
- o && /* @__PURE__ */ q("div", { children: /* @__PURE__ */ q(Lt, {
1417
+ o && /* @__PURE__ */ q("div", { children: /* @__PURE__ */ q(It, {
1556
1418
  explainLoading: a,
1557
1419
  explainError: s,
1558
1420
  explainResult: i,
@@ -1567,7 +1429,7 @@ var Rt = ve(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
1567
1429
  d.message
1568
1430
  ]
1569
1431
  }),
1570
- x && l && /* @__PURE__ */ q(at, {
1432
+ x && l && /* @__PURE__ */ q(it, {
1571
1433
  analysis: l,
1572
1434
  onClose: T
1573
1435
  })
@@ -1576,7 +1438,7 @@ var Rt = ve(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
1576
1438
  });
1577
1439
  //#endregion
1578
1440
  //#region src/client/adapters/queryModeAdapter.ts
1579
- function zt() {
1441
+ function Rt() {
1580
1442
  return {
1581
1443
  metrics: [],
1582
1444
  breakdowns: [],
@@ -1587,10 +1449,10 @@ function zt() {
1587
1449
  validationError: null
1588
1450
  };
1589
1451
  }
1590
- function Bt(e) {
1452
+ function zt(e) {
1591
1453
  return e.map((e) => e.field);
1592
1454
  }
1593
- function Vt(e, t) {
1455
+ function Bt(e, t) {
1594
1456
  let n = [], r = [];
1595
1457
  for (let i of e) if (i.isTimeDimension) {
1596
1458
  let e = {
@@ -1598,7 +1460,7 @@ function Vt(e, t) {
1598
1460
  granularity: i.granularity || "day"
1599
1461
  };
1600
1462
  if (i.enableComparison) {
1601
- let n = we(i.field, t);
1463
+ let n = Ce(i.field, t);
1602
1464
  n && (e.compareDateRange = n);
1603
1465
  }
1604
1466
  r.push(e);
@@ -1608,31 +1470,31 @@ function Vt(e, t) {
1608
1470
  timeDimensions: r
1609
1471
  };
1610
1472
  }
1611
- function Ht(e) {
1612
- let { dimensions: t, timeDimensions: n } = Vt(e.breakdowns, e.filters), r = {
1613
- measures: Bt(e.metrics),
1473
+ function Vt(e) {
1474
+ let { dimensions: t, timeDimensions: n } = Bt(e.breakdowns, e.filters), r = {
1475
+ measures: zt(e.metrics),
1614
1476
  dimensions: t
1615
1477
  };
1616
1478
  return n.length > 0 && (r.timeDimensions = n), e.filters.length > 0 && (r.filters = e.filters), e.order && Object.keys(e.order).length > 0 && (r.order = e.order), e.limit != null && (r.limit = e.limit), r;
1617
1479
  }
1618
- function Ut(e) {
1480
+ function Ht(e) {
1619
1481
  return e.map((e, t) => ({
1620
- id: f(),
1482
+ id: h(),
1621
1483
  field: e,
1622
- label: w(t)
1484
+ label: m(t)
1623
1485
  }));
1624
1486
  }
1625
- function Wt(e) {
1487
+ function Ut(e) {
1626
1488
  let t = [];
1627
1489
  if (e.dimensions) for (let n of e.dimensions) t.push({
1628
- id: f(),
1490
+ id: h(),
1629
1491
  field: n,
1630
1492
  isTimeDimension: !1
1631
1493
  });
1632
1494
  if (e.timeDimensions) for (let n of e.timeDimensions) {
1633
1495
  let e = !!(n.compareDateRange && n.compareDateRange.length > 0);
1634
1496
  t.push({
1635
- id: f(),
1497
+ id: h(),
1636
1498
  field: n.dimension,
1637
1499
  granularity: n.granularity,
1638
1500
  isTimeDimension: !0,
@@ -1641,10 +1503,10 @@ function Wt(e) {
1641
1503
  }
1642
1504
  return t;
1643
1505
  }
1644
- function Gt(e) {
1506
+ function Wt(e) {
1645
1507
  return {
1646
- metrics: Ut(e.measures || []),
1647
- breakdowns: Wt(e),
1508
+ metrics: Ht(e.measures || []),
1509
+ breakdowns: Ut(e),
1648
1510
  filters: e.filters || [],
1649
1511
  order: e.order,
1650
1512
  limit: e.limit,
@@ -1652,14 +1514,14 @@ function Gt(e) {
1652
1514
  validationError: null
1653
1515
  };
1654
1516
  }
1655
- function Kt(e) {
1517
+ function Gt(e) {
1656
1518
  return typeof e == "object" && !!e && "queries" in e && Array.isArray(e.queries);
1657
1519
  }
1658
1520
  var X = {
1659
1521
  type: "query",
1660
1522
  createInitial() {
1661
1523
  return {
1662
- queryStates: [zt()],
1524
+ queryStates: [Rt()],
1663
1525
  activeQueryIndex: 0,
1664
1526
  mergeStrategy: "concat"
1665
1527
  };
@@ -1679,22 +1541,22 @@ var X = {
1679
1541
  load(e) {
1680
1542
  if (e.analysisType !== "query") throw Error(`Cannot load ${e.analysisType} config with query adapter`);
1681
1543
  let t = e;
1682
- if (Kt(t.query)) {
1683
- let e = t.query, n = e.queries.map(Gt);
1684
- return n.length === 0 && n.push(zt()), {
1544
+ if (Gt(t.query)) {
1545
+ let e = t.query, n = e.queries.map(Wt);
1546
+ return n.length === 0 && n.push(Rt()), {
1685
1547
  queryStates: n,
1686
1548
  activeQueryIndex: 0,
1687
1549
  mergeStrategy: e.mergeStrategy || "concat"
1688
1550
  };
1689
1551
  }
1690
1552
  return {
1691
- queryStates: [Gt(t.query)],
1553
+ queryStates: [Wt(t.query)],
1692
1554
  activeQueryIndex: 0,
1693
1555
  mergeStrategy: "concat"
1694
1556
  };
1695
1557
  },
1696
1558
  save(e, t, n) {
1697
- let r = e.queryStates.map(Ht), i = r.length === 1 && e.mergeStrategy === "concat" ? r[0] : {
1559
+ let r = e.queryStates.map(Vt), i = r.length === 1 && e.mergeStrategy === "concat" ? r[0] : {
1698
1560
  queries: r,
1699
1561
  mergeStrategy: e.mergeStrategy
1700
1562
  };
@@ -1735,36 +1597,36 @@ var X = {
1735
1597
  }
1736
1598
  };
1737
1599
  }
1738
- }, Z = /* @__PURE__ */ new Map(), qt = !1;
1739
- function Jt() {
1740
- qt ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel", v), Z.has("flow") || Z.set("flow", _), Z.has("retention") || Z.set("retention", S), !0);
1600
+ }, Z = /* @__PURE__ */ new Map(), Kt = !1;
1601
+ function qt() {
1602
+ Kt ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel", S), Z.has("flow") || Z.set("flow", x), Z.has("retention") || Z.set("retention", T), !0);
1741
1603
  }
1742
1604
  var Q = {
1743
1605
  register(e) {
1744
1606
  Z.has(e.type) && console.warn(`[adapterRegistry] Overwriting existing adapter for type: ${e.type}`), Z.set(e.type, e);
1745
1607
  },
1746
1608
  get(e) {
1747
- Jt();
1609
+ qt();
1748
1610
  let t = Z.get(e);
1749
1611
  if (!t) throw Error(`[adapterRegistry] No adapter registered for type: ${e}. Available types: ${Array.from(Z.keys()).join(", ") || "none"}`);
1750
1612
  return t;
1751
1613
  },
1752
1614
  has(e) {
1753
- return Jt(), Z.has(e);
1615
+ return qt(), Z.has(e);
1754
1616
  },
1755
1617
  getRegisteredTypes() {
1756
- return Jt(), Array.from(Z.keys());
1618
+ return qt(), Array.from(Z.keys());
1757
1619
  },
1758
1620
  clear() {
1759
- Z.clear(), qt = !1;
1621
+ Z.clear(), Kt = !1;
1760
1622
  }
1761
- }, Yt = () => ({
1623
+ }, Jt = () => ({
1762
1624
  analysisType: "query",
1763
1625
  charts: {
1764
1626
  query: X.getDefaultChartConfig(),
1765
- funnel: v.getDefaultChartConfig(),
1766
- flow: _.getDefaultChartConfig(),
1767
- retention: S.getDefaultChartConfig()
1627
+ funnel: S.getDefaultChartConfig(),
1628
+ flow: x.getDefaultChartConfig(),
1629
+ retention: T.getDefaultChartConfig()
1768
1630
  },
1769
1631
  activeViews: {
1770
1632
  query: "chart",
@@ -1774,8 +1636,8 @@ var Q = {
1774
1636
  },
1775
1637
  userManuallySelectedChart: !1,
1776
1638
  localPaletteName: "default"
1777
- }), Xt = (e, t, n) => ({
1778
- ...Yt(),
1639
+ }), Yt = (e, t, n) => ({
1640
+ ...Jt(),
1779
1641
  setAnalysisType: (t) => {
1780
1642
  e((e) => {
1781
1643
  let n = { ...e.charts };
@@ -1988,12 +1850,12 @@ var Q = {
1988
1850
  ...u
1989
1851
  });
1990
1852
  }
1991
- }), Zt = () => ({
1853
+ }), Xt = () => ({
1992
1854
  queryStates: [Y()],
1993
1855
  activeQueryIndex: 0,
1994
1856
  mergeStrategy: "concat"
1995
- }), Qt = (e, t, n) => ({
1996
- ...Zt(),
1857
+ }), Zt = (e, t, n) => ({
1858
+ ...Xt(),
1997
1859
  setQueryStates: (t) => e({ queryStates: t }),
1998
1860
  updateQueryState: (t, n) => e((e) => {
1999
1861
  let r = [...e.queryStates];
@@ -2023,9 +1885,9 @@ var Q = {
2023
1885
  }),
2024
1886
  addMetric: (t, n) => e((e) => {
2025
1887
  let r = e.activeQueryIndex, i = [...e.queryStates], a = i[r] || Y(), o = {
2026
- id: f(),
1888
+ id: h(),
2027
1889
  field: t,
2028
- label: n || w(a.metrics.length)
1890
+ label: n || m(a.metrics.length)
2029
1891
  };
2030
1892
  return i[r] = {
2031
1893
  ...a,
@@ -2048,9 +1910,9 @@ var Q = {
2048
1910
  };
2049
1911
  else {
2050
1912
  let e = {
2051
- id: f(),
1913
+ id: h(),
2052
1914
  field: t,
2053
- label: w(i.metrics.length)
1915
+ label: m(i.metrics.length)
2054
1916
  };
2055
1917
  r[n] = {
2056
1918
  ...i,
@@ -2070,7 +1932,7 @@ var Q = {
2070
1932
  let i = e.activeQueryIndex, a = [...e.queryStates], o = a[i] || Y();
2071
1933
  if (n && o.breakdowns.some((e) => e.isTimeDimension)) return e;
2072
1934
  let s = {
2073
- id: f(),
1935
+ id: h(),
2074
1936
  field: t,
2075
1937
  isTimeDimension: n,
2076
1938
  granularity: n ? r || "month" : void 0
@@ -2097,7 +1959,7 @@ var Q = {
2097
1959
  else {
2098
1960
  if (n && o.breakdowns.some((e) => e.isTimeDimension)) return e;
2099
1961
  let s = {
2100
- id: f(),
1962
+ id: h(),
2101
1963
  field: t,
2102
1964
  isTimeDimension: n,
2103
1965
  granularity: n ? r || "month" : void 0
@@ -2234,11 +2096,11 @@ var Q = {
2234
2096
  },
2235
2097
  buildCurrentQuery: () => {
2236
2098
  let e = t(), n = e.queryStates[e.activeQueryIndex] || Y(), r = l(e.charts[e.analysisType]?.chartType ?? "");
2237
- return Ee(n.metrics, n.breakdowns, n.filters, n.order, !1, n.limit, r);
2099
+ return Te(n.metrics, n.breakdowns, n.filters, n.order, !1, n.limit, r);
2238
2100
  },
2239
2101
  buildAllQueries: () => {
2240
2102
  let e = t(), n = e.queryStates[0]?.breakdowns || [], r = l(e.charts[e.analysisType]?.chartType ?? "");
2241
- return e.queryStates.map((t, i) => Ee(t.metrics, e.mergeStrategy === "merge" && i > 0 ? n : t.breakdowns, t.filters, t.order, !1, t.limit, r));
2103
+ return e.queryStates.map((t, i) => Te(t.metrics, e.mergeStrategy === "merge" && i > 0 ? n : t.breakdowns, t.filters, t.order, !1, t.limit, r));
2242
2104
  },
2243
2105
  buildMultiQueryConfig: () => {
2244
2106
  let e = t();
@@ -2251,18 +2113,18 @@ var Q = {
2251
2113
  queryLabels: n.map((e, t) => `Q${t + 1}`)
2252
2114
  };
2253
2115
  }
2254
- }), $t = () => ({
2116
+ }), Qt = () => ({
2255
2117
  funnelCube: null,
2256
2118
  funnelSteps: [],
2257
2119
  activeFunnelStepIndex: 0,
2258
2120
  funnelTimeDimension: null,
2259
2121
  funnelBindingKey: null,
2260
2122
  stepTimeToConvert: []
2261
- }), en = (e, t, n) => ({
2262
- ...$t(),
2123
+ }), $t = (e, t, n) => ({
2124
+ ...Qt(),
2263
2125
  addFunnelStep: () => e((e) => {
2264
2126
  let t = e.funnelSteps[e.funnelSteps.length - 1], n = {
2265
- id: f(),
2127
+ id: h(),
2266
2128
  name: `Step ${e.funnelSteps.length + 1}`,
2267
2129
  cube: e.funnelCube || "",
2268
2130
  filters: t?.filters ? JSON.parse(JSON.stringify(t.filters)) : [],
@@ -2327,7 +2189,7 @@ var Q = {
2327
2189
  let e = t();
2328
2190
  return e.analysisType !== "funnel" || !e.funnelBindingKey || !e.funnelTimeDimension || e.funnelSteps.length < 2 ? !1 : e.funnelSteps.filter((e) => e.cube && e.name).length >= 2;
2329
2191
  }
2330
- }), tn = () => ({
2192
+ }), en = () => ({
2331
2193
  flowCube: null,
2332
2194
  flowBindingKey: null,
2333
2195
  flowTimeDimension: null,
@@ -2339,8 +2201,8 @@ var Q = {
2339
2201
  stepsAfter: 3,
2340
2202
  eventDimension: null,
2341
2203
  joinStrategy: "auto"
2342
- }), nn = (e, t, n) => ({
2343
- ...tn(),
2204
+ }), tn = (e, t, n) => ({
2205
+ ...en(),
2344
2206
  setFlowCube: (t) => e(() => ({
2345
2207
  flowCube: t,
2346
2208
  flowBindingKey: null,
@@ -2410,8 +2272,8 @@ var Q = {
2410
2272
  joinStrategy: e.joinStrategy
2411
2273
  } };
2412
2274
  }
2413
- }), rn = () => ({ ...D }), an = (e, t, n) => ({
2414
- ...rn(),
2275
+ }), nn = () => ({ ...ee }), rn = (e, t, n) => ({
2276
+ ...nn(),
2415
2277
  setRetentionCube: (t) => e(() => ({
2416
2278
  retentionCube: t,
2417
2279
  retentionTimeDimension: null,
@@ -2486,22 +2348,22 @@ var Q = {
2486
2348
  warnings: r
2487
2349
  };
2488
2350
  }
2489
- }), on = {
2351
+ }), an = {
2490
2352
  isOpen: !1,
2491
2353
  userPrompt: "",
2492
2354
  isGenerating: !1,
2493
2355
  error: null,
2494
2356
  hasGeneratedQuery: !1,
2495
2357
  previousState: null
2496
- }, sn = () => ({
2358
+ }, on = () => ({
2497
2359
  activeTab: "query",
2498
2360
  activeView: "chart",
2499
2361
  displayLimit: 100,
2500
2362
  showFieldModal: !1,
2501
2363
  fieldModalMode: "metrics",
2502
- aiState: on
2503
- }), cn = (e, t, n) => ({
2504
- ...sn(),
2364
+ aiState: an
2365
+ }), sn = (e, t, n) => ({
2366
+ ...on(),
2505
2367
  setActiveTab: (t) => e({ activeTab: t }),
2506
2368
  setActiveView: (t) => e((e) => ({
2507
2369
  activeView: t,
@@ -2585,19 +2447,19 @@ var Q = {
2585
2447
  displayConfig: t.displayConfig
2586
2448
  }
2587
2449
  },
2588
- aiState: { ...on }
2450
+ aiState: { ...an }
2589
2451
  };
2590
2452
  })
2591
2453
  });
2592
2454
  //#endregion
2593
2455
  //#region src/client/stores/optionsToAnalysisConfig.ts
2594
- function ln(e) {
2456
+ function cn(e) {
2595
2457
  let t = e.filters ? [...e.filters] : [], n = e.timeDimensions || [], r = [...(e.dimensions || []).map((e) => ({
2596
- id: f(),
2458
+ id: h(),
2597
2459
  field: e,
2598
2460
  isTimeDimension: !1
2599
2461
  })), ...n.map((e) => ({
2600
- id: f(),
2462
+ id: h(),
2601
2463
  field: e.dimension,
2602
2464
  granularity: e.granularity,
2603
2465
  isTimeDimension: !0,
@@ -2625,19 +2487,19 @@ function ln(e) {
2625
2487
  return {
2626
2488
  ...Y(),
2627
2489
  metrics: (e.measures || []).map((e, t) => ({
2628
- id: f(),
2490
+ id: h(),
2629
2491
  field: e,
2630
- label: w(t)
2492
+ label: m(t)
2631
2493
  })),
2632
2494
  breakdowns: r,
2633
2495
  filters: i,
2634
2496
  order: e.order
2635
2497
  };
2636
2498
  }
2637
- function un(e) {
2499
+ function ln(e) {
2638
2500
  return "queries" in e && Array.isArray(e.queries);
2639
2501
  }
2640
- function dn(e, t) {
2502
+ function un(e, t) {
2641
2503
  let n = e.getDefaultChartConfig();
2642
2504
  return {
2643
2505
  chartType: t?.chartType || n.chartType,
@@ -2645,22 +2507,22 @@ function dn(e, t) {
2645
2507
  displayConfig: t?.displayConfig || n.displayConfig
2646
2508
  };
2647
2509
  }
2648
- function fn(e) {
2510
+ function dn(e) {
2649
2511
  return e.initialActiveView || "chart";
2650
2512
  }
2651
- function pn(e) {
2652
- let t = dn(v, e.initialChartConfig), n = e.initialFunnelState ?? {};
2653
- return v.save({
2513
+ function fn(e) {
2514
+ let t = un(S, e.initialChartConfig), n = e.initialFunnelState ?? {};
2515
+ return S.save({
2654
2516
  funnelCube: n.funnelCube ?? null,
2655
2517
  funnelSteps: n.funnelSteps || [],
2656
2518
  activeFunnelStepIndex: 0,
2657
2519
  funnelTimeDimension: n.funnelTimeDimension ?? null,
2658
2520
  funnelBindingKey: n.funnelBindingKey ?? null
2659
- }, { funnel: t }, fn(e));
2521
+ }, { funnel: t }, dn(e));
2660
2522
  }
2661
- function mn(e) {
2662
- let t = dn(_, e.initialChartConfig), n = e.initialFlowState ?? {};
2663
- return _.save({
2523
+ function pn(e) {
2524
+ let t = un(x, e.initialChartConfig), n = e.initialFlowState ?? {};
2525
+ return x.save({
2664
2526
  flowCube: n.flowCube ?? null,
2665
2527
  flowBindingKey: n.flowBindingKey ?? null,
2666
2528
  flowTimeDimension: n.flowTimeDimension ?? null,
@@ -2672,11 +2534,11 @@ function mn(e) {
2672
2534
  stepsAfter: n.stepsAfter ?? 3,
2673
2535
  eventDimension: n.eventDimension ?? null,
2674
2536
  joinStrategy: n.joinStrategy ?? "auto"
2675
- }, { flow: t }, fn(e));
2537
+ }, { flow: t }, dn(e));
2676
2538
  }
2677
- function hn(e) {
2678
- let t = dn(S, e.initialChartConfig), n = e.initialRetentionState ?? {}, r = O(k);
2679
- return S.save({
2539
+ function mn(e) {
2540
+ let t = un(T, e.initialChartConfig), n = e.initialRetentionState ?? {}, r = A(te);
2541
+ return T.save({
2680
2542
  retentionCube: n.retentionCube ?? null,
2681
2543
  retentionBindingKey: n.retentionBindingKey ?? null,
2682
2544
  retentionTimeDimension: n.retentionTimeDimension ?? null,
@@ -2687,52 +2549,52 @@ function hn(e) {
2687
2549
  retentionViewGranularity: n.retentionViewGranularity ?? "week",
2688
2550
  retentionPeriods: n.retentionPeriods ?? 12,
2689
2551
  retentionType: n.retentionType ?? "classic"
2690
- }, { retention: t }, fn(e));
2552
+ }, { retention: t }, dn(e));
2691
2553
  }
2692
- function gn(e, t) {
2554
+ function hn(e, t) {
2693
2555
  let n, r = "concat";
2694
- un(t) ? (n = t.queries.map(ln), t.mergeStrategy && (r = t.mergeStrategy)) : n = [ln(t)];
2695
- let i = dn(X, e.initialChartConfig);
2556
+ ln(t) ? (n = t.queries.map(cn), t.mergeStrategy && (r = t.mergeStrategy)) : n = [cn(t)];
2557
+ let i = un(X, e.initialChartConfig);
2696
2558
  return X.save({
2697
2559
  queryStates: n,
2698
2560
  activeQueryIndex: 0,
2699
2561
  mergeStrategy: r
2700
- }, { query: i }, fn(e));
2562
+ }, { query: i }, dn(e));
2701
2563
  }
2702
- function _n(e) {
2703
- let t = dn(X, e.initialChartConfig);
2564
+ function gn(e) {
2565
+ let t = un(X, e.initialChartConfig);
2704
2566
  return X.save({
2705
2567
  queryStates: [Y()],
2706
2568
  activeQueryIndex: 0,
2707
2569
  mergeStrategy: "concat"
2708
- }, { query: t }, fn(e));
2570
+ }, { query: t }, dn(e));
2709
2571
  }
2710
- function vn(e) {
2572
+ function _n(e) {
2711
2573
  return X.save({
2712
2574
  queryStates: [Y()],
2713
2575
  activeQueryIndex: 0,
2714
2576
  mergeStrategy: "concat"
2715
2577
  }, { query: X.getDefaultChartConfig() }, e.initialActiveView);
2716
2578
  }
2717
- function yn(e) {
2718
- return e.initialAnalysisType === "funnel" && e.initialFunnelState ? pn(e) : e.initialAnalysisType === "flow" && e.initialFlowState ? mn(e) : e.initialAnalysisType === "retention" && e.initialRetentionState ? hn(e) : e.initialQuery ? gn(e, e.initialQuery) : e.initialChartConfig ? _n(e) : e.initialActiveView ? vn(e) : null;
2579
+ function vn(e) {
2580
+ return e.initialAnalysisType === "funnel" && e.initialFunnelState ? fn(e) : e.initialAnalysisType === "flow" && e.initialFlowState ? pn(e) : e.initialAnalysisType === "retention" && e.initialRetentionState ? mn(e) : e.initialQuery ? hn(e, e.initialQuery) : e.initialChartConfig ? gn(e) : e.initialActiveView ? _n(e) : null;
2719
2581
  }
2720
2582
  //#endregion
2721
2583
  //#region src/client/stores/analysisBuilderStore.tsx
2722
- function bn(e, t) {
2584
+ function yn(e, t) {
2723
2585
  return {
2724
2586
  reset: () => {
2725
2587
  e({
2726
- ...Yt(),
2727
- ...Zt(),
2728
- ...$t(),
2729
- ...tn(),
2730
- ...rn(),
2588
+ ...Jt(),
2589
+ ...Xt(),
2590
+ ...Qt(),
2591
+ ...en(),
2592
+ ...nn(),
2731
2593
  charts: {
2732
2594
  query: X.getDefaultChartConfig(),
2733
- funnel: v.getDefaultChartConfig(),
2734
- flow: _.getDefaultChartConfig(),
2735
- retention: S.getDefaultChartConfig()
2595
+ funnel: S.getDefaultChartConfig(),
2596
+ flow: x.getDefaultChartConfig(),
2597
+ retention: T.getDefaultChartConfig()
2736
2598
  },
2737
2599
  activeViews: {
2738
2600
  query: "chart",
@@ -2745,28 +2607,28 @@ function bn(e, t) {
2745
2607
  clearCurrentMode: () => e((e) => {
2746
2608
  switch (e.analysisType) {
2747
2609
  case "funnel": return {
2748
- ...$t(),
2610
+ ...Qt(),
2749
2611
  charts: {
2750
2612
  ...e.charts,
2751
- funnel: v.getDefaultChartConfig()
2613
+ funnel: S.getDefaultChartConfig()
2752
2614
  }
2753
2615
  };
2754
2616
  case "flow": return {
2755
- ...tn(),
2617
+ ...en(),
2756
2618
  charts: {
2757
2619
  ...e.charts,
2758
- flow: _.getDefaultChartConfig()
2620
+ flow: x.getDefaultChartConfig()
2759
2621
  }
2760
2622
  };
2761
2623
  case "retention": return {
2762
- ...rn(),
2624
+ ...nn(),
2763
2625
  charts: {
2764
2626
  ...e.charts,
2765
- retention: S.getDefaultChartConfig()
2627
+ retention: T.getDefaultChartConfig()
2766
2628
  }
2767
2629
  };
2768
2630
  default: return {
2769
- ...Zt(),
2631
+ ...Xt(),
2770
2632
  userManuallySelectedChart: !1,
2771
2633
  charts: {
2772
2634
  ...e.charts,
@@ -2792,15 +2654,15 @@ function bn(e, t) {
2792
2654
  }
2793
2655
  };
2794
2656
  }
2795
- function xn(n = {}) {
2796
- let r = yn(n), o = (e, t, n) => ({
2797
- ...Xt(e, t, n),
2798
- ...Qt(e, t, n),
2799
- ...en(e, t, n),
2800
- ...nn(e, t, n),
2801
- ...an(e, t, n),
2802
- ...cn(e, t, n),
2803
- ...bn(e, t)
2657
+ function bn(n = {}) {
2658
+ let r = vn(n), o = (e, t, n) => ({
2659
+ ...Yt(e, t, n),
2660
+ ...Zt(e, t, n),
2661
+ ...$t(e, t, n),
2662
+ ...tn(e, t, n),
2663
+ ...rn(e, t, n),
2664
+ ...sn(e, t, n),
2665
+ ...yn(e, t)
2804
2666
  });
2805
2667
  if (n.disableLocalStorage) {
2806
2668
  let t = a()(i(e(o), { name: "AnalysisBuilderStore (no-persist)" }));
@@ -2809,10 +2671,10 @@ function xn(n = {}) {
2809
2671
  return a()(i(e(t(o, {
2810
2672
  name: n.storageKey || "drizzle-cube-analysis-builder-v3",
2811
2673
  partialize: (e) => e.saveWorkspace(),
2812
- merge: (e, t) => e && j(e) ? {
2674
+ merge: (e, t) => e && M(e) ? {
2813
2675
  ...t,
2814
2676
  _persistedWorkspace: e
2815
- } : e && A(e) ? {
2677
+ } : e && j(e) ? {
2816
2678
  ...t,
2817
2679
  _persistedConfig: e
2818
2680
  } : r ? {
@@ -2835,10 +2697,10 @@ function xn(n = {}) {
2835
2697
  }
2836
2698
  })), { name: "AnalysisBuilderStore" }));
2837
2699
  }
2838
- var Sn = _e(null);
2839
- function Cn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalStorage: r, storageKey: i, initialAnalysisType: a, initialFunnelState: o, initialFlowState: s, initialRetentionState: c, initialActiveView: l }) {
2700
+ var xn = be(null);
2701
+ function Sn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalStorage: r, storageKey: i, initialAnalysisType: a, initialFunnelState: o, initialFlowState: s, initialRetentionState: c, initialActiveView: l }) {
2840
2702
  let u = W(null);
2841
- return u.current ||= xn({
2703
+ return u.current ||= bn({
2842
2704
  initialQuery: t,
2843
2705
  initialChartConfig: n,
2844
2706
  disableLocalStorage: r,
@@ -2848,22 +2710,22 @@ function Cn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalS
2848
2710
  initialFlowState: s,
2849
2711
  initialRetentionState: c,
2850
2712
  initialActiveView: l
2851
- }), /* @__PURE__ */ q(Sn.Provider, {
2713
+ }), /* @__PURE__ */ q(xn.Provider, {
2852
2714
  value: u.current,
2853
2715
  children: e
2854
2716
  });
2855
2717
  }
2856
2718
  function $(e) {
2857
- let t = ye(Sn);
2719
+ let t = Se(xn);
2858
2720
  if (!t) throw Error("useAnalysisBuilderStore must be used within AnalysisBuilderStoreProvider");
2859
2721
  return r(t, e);
2860
2722
  }
2861
- function wn() {
2862
- let e = ye(Sn);
2723
+ function Cn() {
2724
+ let e = Se(xn);
2863
2725
  if (!e) throw Error("useAnalysisBuilderStoreApi must be used within AnalysisBuilderStoreProvider");
2864
2726
  return e;
2865
2727
  }
2866
- var Tn = (e) => e.queryStates[e.activeQueryIndex] || Y(), En = (e) => Tn(e).metrics, Dn = (e) => Tn(e).breakdowns, On = (e) => Tn(e).filters, kn = (e) => {
2728
+ var wn = (e) => e.queryStates[e.activeQueryIndex] || Y(), Tn = (e) => wn(e).metrics, En = (e) => wn(e).breakdowns, Dn = (e) => wn(e).filters, On = (e) => {
2867
2729
  let t = e.charts[e.analysisType];
2868
2730
  return t ? {
2869
2731
  chartType: t.chartType,
@@ -2878,18 +2740,18 @@ var Tn = (e) => e.queryStates[e.activeQueryIndex] || Y(), En = (e) => Tn(e).metr
2878
2740
  showTooltip: !0
2879
2741
  }
2880
2742
  };
2881
- }, An = (e) => ({
2743
+ }, kn = (e) => ({
2882
2744
  activeTab: e.activeTab,
2883
2745
  activeView: e.activeView,
2884
2746
  displayLimit: e.displayLimit,
2885
2747
  showFieldModal: e.showFieldModal,
2886
2748
  fieldModalMode: e.fieldModalMode
2887
- }), jn = (e) => ({
2749
+ }), An = (e) => ({
2888
2750
  queryStates: e.queryStates,
2889
2751
  activeQueryIndex: e.activeQueryIndex,
2890
2752
  mergeStrategy: e.mergeStrategy,
2891
2753
  isMultiQueryMode: e.analysisType === "query" && e.queryStates.length > 1
2892
- }), Mn = (e) => ({
2754
+ }), jn = (e) => ({
2893
2755
  funnelCube: e.funnelCube,
2894
2756
  funnelSteps: e.funnelSteps,
2895
2757
  activeFunnelStepIndex: e.activeFunnelStepIndex,
@@ -2900,16 +2762,16 @@ var Tn = (e) => e.queryStates[e.activeQueryIndex] || Y(), En = (e) => Tn(e).metr
2900
2762
  });
2901
2763
  //#endregion
2902
2764
  //#region src/client/utils/multiQueryValidation.ts
2903
- function Nn(e) {
2765
+ function Mn(e) {
2904
2766
  return e.timeDimensions || [];
2905
2767
  }
2906
- function Pn(e) {
2768
+ function Nn(e) {
2907
2769
  let t = [];
2908
2770
  if (e.length < 2) return t;
2909
- let n = Nn(e[0]);
2771
+ let n = Mn(e[0]);
2910
2772
  if (n.length === 0) return t;
2911
2773
  for (let r = 1; r < e.length; r++) {
2912
- let i = Nn(e[r]);
2774
+ let i = Mn(e[r]);
2913
2775
  if (i.length === 0 && n.length > 0) {
2914
2776
  t.push({
2915
2777
  type: "missing_time_dimension",
@@ -2935,7 +2797,7 @@ function Pn(e) {
2935
2797
  }
2936
2798
  return t;
2937
2799
  }
2938
- function Fn(e, t) {
2800
+ function Pn(e, t) {
2939
2801
  let n = [];
2940
2802
  if (e.length < 2 || t.length === 0) return n;
2941
2803
  for (let r = 0; r < e.length; r++) {
@@ -2949,7 +2811,7 @@ function Fn(e, t) {
2949
2811
  }
2950
2812
  return n;
2951
2813
  }
2952
- function In(e) {
2814
+ function Fn(e) {
2953
2815
  let t = [];
2954
2816
  if (e.length < 2) return t;
2955
2817
  let n = /* @__PURE__ */ new Map();
@@ -2968,7 +2830,7 @@ function In(e) {
2968
2830
  affectedMeasures: r
2969
2831
  }), t;
2970
2832
  }
2971
- function Ln(e) {
2833
+ function In(e) {
2972
2834
  let t = [];
2973
2835
  if (e.length < 2) return t;
2974
2836
  let n = e.map((e) => e.timeDimensions?.[0]?.dateRange);
@@ -2978,38 +2840,38 @@ function Ln(e) {
2978
2840
  message: "Queries have different date ranges - some data points may be missing in merged results"
2979
2841
  }), t;
2980
2842
  }
2981
- function Rn(e, t, n = []) {
2843
+ function Ln(e, t, n = []) {
2982
2844
  let r = [], i = [];
2983
2845
  return e.length < 2 ? {
2984
2846
  isValid: !0,
2985
2847
  errors: r,
2986
2848
  warnings: i
2987
- } : (i.push(...In(e)), i.push(...Ln(e)), t === "merge" && (r.push(...Pn(e)), n.length > 0 && r.push(...Fn(e, n))), {
2849
+ } : (i.push(...Fn(e)), i.push(...In(e)), t === "merge" && (r.push(...Nn(e)), n.length > 0 && r.push(...Pn(e, n))), {
2988
2850
  isValid: r.length === 0,
2989
2851
  errors: r,
2990
2852
  warnings: i
2991
2853
  });
2992
2854
  }
2993
- function zn(e) {
2855
+ function Rn(e) {
2994
2856
  return (e.measures?.length || 0) + (e.dimensions?.length || 0) + (e.timeDimensions?.length || 0);
2995
2857
  }
2996
- function Bn(e) {
2997
- return e.filter((e) => zn(e) > 0).length >= 2;
2858
+ function zn(e) {
2859
+ return e.filter((e) => Rn(e) > 0).length >= 2;
2998
2860
  }
2999
- function Vn(e, t) {
2861
+ function Bn(e, t) {
3000
2862
  return `${e} ${t}${e === 1 ? "" : "s"}`;
3001
2863
  }
3002
- function Hn(e) {
2864
+ function Vn(e) {
3003
2865
  if (e.isValid && e.warnings.length === 0) return "Configuration is valid";
3004
2866
  let t = [];
3005
- return e.errors.length > 0 && t.push(Vn(e.errors.length, "error")), e.warnings.length > 0 && t.push(Vn(e.warnings.length, "warning")), t.join(", ");
2867
+ return e.errors.length > 0 && t.push(Bn(e.errors.length, "error")), e.warnings.length > 0 && t.push(Bn(e.warnings.length, "warning")), t.join(", ");
3006
2868
  }
3007
2869
  //#endregion
3008
2870
  //#region src/client/hooks/useAnalysisState.ts
3009
- function Un(e = {}) {
3010
- let { externalColorPalette: t } = e, r = wn(), i = $((e) => e.queryStates), a = $((e) => e.activeQueryIndex), o = $((e) => e.mergeStrategy), s = $((e) => e.setActiveQueryIndex), c = $((e) => e.setMergeStrategy), u = $((e) => e.addQuery), d = $((e) => e.removeQuery), f = $((e) => e.getCurrentState), m = $((e) => e.getMergeKeys), h = $((e) => e.isMultiQueryMode), g = f(), _ = h(), v = m(), y = $((e) => l(e.charts[e.analysisType]?.chartType ?? "")), b = U(() => {
2871
+ function Hn(e = {}) {
2872
+ let { externalColorPalette: t } = e, r = Cn(), i = $((e) => e.queryStates), a = $((e) => e.activeQueryIndex), o = $((e) => e.mergeStrategy), s = $((e) => e.setActiveQueryIndex), c = $((e) => e.setMergeStrategy), u = $((e) => e.addQuery), d = $((e) => e.removeQuery), p = $((e) => e.getCurrentState), m = $((e) => e.getMergeKeys), h = $((e) => e.isMultiQueryMode), g = p(), _ = h(), v = m(), y = $((e) => l(e.charts[e.analysisType]?.chartType ?? "")), b = U(() => {
3011
2873
  let e = i[a] || g;
3012
- return Ee(e.metrics, e.breakdowns, e.filters, e.order, !1, e.limit, y);
2874
+ return Te(e.metrics, e.breakdowns, e.filters, e.order, !1, e.limit, y);
3013
2875
  }, [
3014
2876
  i,
3015
2877
  a,
@@ -3017,7 +2879,7 @@ function Un(e = {}) {
3017
2879
  y
3018
2880
  ]), x = U(() => {
3019
2881
  let e = i[0]?.breakdowns || [];
3020
- return i.map((t, n) => Ee(t.metrics, o === "merge" && n > 0 ? e : t.breakdowns, t.filters, t.order, !1, t.limit, y));
2882
+ return i.map((t, n) => Te(t.metrics, o === "merge" && n > 0 ? e : t.breakdowns, t.filters, t.order, !1, t.limit, y));
3021
2883
  }, [
3022
2884
  i,
3023
2885
  o,
@@ -3036,7 +2898,7 @@ function Un(e = {}) {
3036
2898
  i.length,
3037
2899
  o,
3038
2900
  v
3039
- ]), C = U(() => _ ? Rn(x, o, v || []) : null, [
2901
+ ]), C = U(() => _ ? Ln(x, o, v || []) : null, [
3040
2902
  _,
3041
2903
  x,
3042
2904
  o,
@@ -3073,66 +2935,66 @@ function Un(e = {}) {
3073
2935
  a,
3074
2936
  i,
3075
2937
  g.breakdowns
3076
- ]), O = $((e) => e.analysisType), k = $((e) => e.funnelBindingKey), A = $((e) => e.funnelCube), j = $((e) => e.funnelSteps), ee = $((e) => e.activeFunnelStepIndex), M = $((e) => e.funnelTimeDimension), N = U(() => O !== "funnel" || !k?.dimension || !M || !j || j.length < 2 ? !1 : j.every((e) => e.filters.length > 0), [
2938
+ ]), O = $((e) => e.analysisType), k = $((e) => e.funnelBindingKey), ee = $((e) => e.funnelCube), A = $((e) => e.funnelSteps), te = $((e) => e.activeFunnelStepIndex), j = $((e) => e.funnelTimeDimension), M = U(() => O !== "funnel" || !k?.dimension || !j || !A || A.length < 2 ? !1 : A.every((e) => e.filters.length > 0), [
3077
2939
  O,
3078
2940
  k,
3079
- M,
3080
- j
3081
- ]), te = $((e) => e.charts.funnel?.chartType) || "funnel", P = $((e) => e.charts.funnel?.chartConfig), ne = U(() => P || {}, [P]), re = $((e) => e.charts.funnel?.displayConfig), ie = U(() => re || {
2941
+ j,
2942
+ A
2943
+ ]), N = $((e) => e.charts.funnel?.chartType) || "funnel", ne = $((e) => e.charts.funnel?.chartConfig), re = U(() => ne || {}, [ne]), ie = $((e) => e.charts.funnel?.displayConfig), ae = U(() => ie || {
3082
2944
  showLegend: !0,
3083
2945
  showGrid: !0,
3084
2946
  showTooltip: !0
3085
- }, [re]), F = $((e) => e.flowCube), I = $((e) => e.flowBindingKey), ae = $((e) => e.flowTimeDimension), oe = $((e) => e.eventDimension), L = $((e) => e.startingStep), R = $((e) => e.stepsBefore), se = $((e) => e.stepsAfter), ce = $((e) => e.joinStrategy), le = $((e) => e.charts.flow?.displayConfig), ue = U(() => le || {
2947
+ }, [ie]), P = $((e) => e.flowCube), oe = $((e) => e.flowBindingKey), se = $((e) => e.flowTimeDimension), F = $((e) => e.eventDimension), I = $((e) => e.startingStep), L = $((e) => e.stepsBefore), ce = $((e) => e.stepsAfter), le = $((e) => e.joinStrategy), R = $((e) => e.charts.flow?.displayConfig), ue = U(() => R || {
3086
2948
  showLegend: !0,
3087
2949
  showGrid: !0,
3088
2950
  showTooltip: !0
3089
- }, [le]), de = $((e) => e.charts.flow?.chartType) || "sankey", z = $((e) => e.buildFunnelQueryFromSteps), fe = U(() => O === "funnel" ? z() : null, [
2951
+ }, [R]), de = $((e) => e.charts.flow?.chartType) || "sankey", fe = $((e) => e.buildFunnelQueryFromSteps), pe = U(() => O === "funnel" ? fe() : null, [
3090
2952
  O,
3091
- z,
3092
- j
3093
- ]), pe = $((e) => e.buildFlowQuery), me = U(() => O === "flow" ? pe() : null, [
2953
+ fe,
2954
+ A
2955
+ ]), me = $((e) => e.buildFlowQuery), z = U(() => O === "flow" ? me() : null, [
3094
2956
  O,
3095
- pe,
2957
+ me,
2958
+ P,
2959
+ oe,
2960
+ se,
3096
2961
  F,
3097
2962
  I,
3098
- ae,
3099
- oe,
3100
2963
  L,
3101
- R,
3102
- se,
2964
+ ce,
3103
2965
  de,
3104
- ce
3105
- ]), he = $((e) => e.retentionCube), ge = $((e) => e.retentionBindingKey), B = $((e) => e.retentionTimeDimension), _e = $((e) => e.retentionDateRange), ve = $((e) => e.retentionCohortFilters), ye = $((e) => e.retentionActivityFilters), H = $((e) => e.retentionBreakdowns), W = $((e) => e.retentionViewGranularity), K = $((e) => e.retentionPeriods), q = $((e) => e.retentionType), J = $((e) => e.buildRetentionQuery), be = $((e) => e.getRetentionValidation), xe = $((e) => e.charts.retention?.displayConfig), Se = U(() => O === "retention" ? J() : null, [
2966
+ le
2967
+ ]), he = $((e) => e.retentionCube), ge = $((e) => e.retentionBindingKey), _e = $((e) => e.retentionTimeDimension), ve = $((e) => e.retentionDateRange), ye = $((e) => e.retentionCohortFilters), B = $((e) => e.retentionActivityFilters), be = $((e) => e.retentionBreakdowns), xe = $((e) => e.retentionViewGranularity), Se = $((e) => e.retentionPeriods), H = $((e) => e.retentionType), W = $((e) => e.buildRetentionQuery), K = $((e) => e.getRetentionValidation), q = $((e) => e.charts.retention?.displayConfig), J = U(() => O === "retention" ? W() : null, [
3106
2968
  O,
3107
- J,
2969
+ W,
3108
2970
  he,
3109
2971
  ge,
3110
- B,
3111
2972
  _e,
3112
- H,
3113
- W,
3114
- K,
3115
- q,
3116
2973
  ve,
3117
- ye
3118
- ]), Ce = U(() => O === "retention" ? be() : null, [
3119
- O,
3120
2974
  be,
2975
+ xe,
2976
+ Se,
2977
+ H,
2978
+ ye,
2979
+ B
2980
+ ]), Ce = U(() => O === "retention" ? K() : null, [
2981
+ O,
2982
+ K,
3121
2983
  he,
3122
2984
  ge,
3123
- B,
3124
- _e
3125
- ]), we = U(() => O === "retention" ? Se !== null : O === "flow" ? me !== null : O === "funnel" ? fe !== null : w ?? !1, [
2985
+ _e,
2986
+ ve
2987
+ ]), we = U(() => O === "retention" ? J !== null : O === "flow" ? z !== null : O === "funnel" ? pe !== null : w ?? !1, [
3126
2988
  O,
3127
- Se,
3128
- me,
3129
- fe,
2989
+ J,
2990
+ z,
2991
+ pe,
3130
2992
  w
3131
- ]), { chartType: Te, chartConfig: Y, displayConfig: De } = $(n(kn)), Oe = $((e) => e.userManuallySelectedChart), ke = $((e) => e.localPaletteName), Ae = $((e) => e.setChartTypeManual), je = $((e) => e.setChartConfig), Me = $((e) => e.setDisplayConfig), Ne = $((e) => e.setFunnelChartType), Pe = $((e) => e.setFunnelChartConfig), Fe = $((e) => e.setFunnelDisplayConfig), Ie = $((e) => e.setLocalPaletteName), Le = $((e) => e.setUserManuallySelectedChart), Re = V((e) => {
2993
+ ]), { chartType: Y, chartConfig: Ee, displayConfig: De } = $(n(On)), Oe = $((e) => e.userManuallySelectedChart), ke = $((e) => e.localPaletteName), Ae = $((e) => e.setChartTypeManual), je = $((e) => e.setChartConfig), Me = $((e) => e.setDisplayConfig), Ne = $((e) => e.setFunnelChartType), Pe = $((e) => e.setFunnelChartConfig), Fe = $((e) => e.setFunnelDisplayConfig), Ie = $((e) => e.setLocalPaletteName), Le = $((e) => e.setUserManuallySelectedChart), Re = V((e) => {
3132
2994
  if (O === "funnel") Ne(e);
3133
2995
  else {
3134
2996
  Ae(e);
3135
- let { chartConfig: t } = jt(T, E, e);
2997
+ let { chartConfig: t } = At(T, E, e);
3136
2998
  je(t);
3137
2999
  }
3138
3000
  }, [
@@ -3154,12 +3016,12 @@ function Un(e = {}) {
3154
3016
  O,
3155
3017
  Fe,
3156
3018
  Me
3157
- ]), Ve = U(() => kt(T, E), [T, E]), He = U(() => t ? Array.isArray(t) && typeof t[0] == "string" ? {
3019
+ ]), Ve = U(() => Ot(T, E), [T, E]), He = U(() => t ? Array.isArray(t) && typeof t[0] == "string" ? {
3158
3020
  name: "custom",
3159
3021
  label: "Custom",
3160
3022
  colors: t,
3161
3023
  gradient: t
3162
- } : t : p(ke), [t, ke]), Ue = V((e) => {
3024
+ } : t : f(ke), [t, ke]), Ue = V((e) => {
3163
3025
  r.setState((t) => ({ charts: {
3164
3026
  ...t.charts,
3165
3027
  flow: {
@@ -3183,26 +3045,26 @@ function Un(e = {}) {
3183
3045
  displayConfig: e
3184
3046
  }
3185
3047
  } }));
3186
- }, [r]), Ge = $((e) => e.activeTab), Ke = $((e) => e.activeView), qe = $((e) => e.displayLimit), Je = $((e) => e.showFieldModal), Ye = $((e) => e.fieldModalMode), Xe = $((e) => e.setActiveTab), Ze = $((e) => e.setActiveView), Qe = $((e) => e.setDisplayLimit), $e = $((e) => e.closeFieldModal), [et, tt] = G(0), nt = $((e) => e.openMetricsModal), rt = $((e) => e.addMetric), it = $((e) => e.removeMetric), at = $((e) => e.toggleMetric), ot = $((e) => e.reorderMetrics), st = $((e) => e.openBreakdownsModal), ct = $((e) => e.addBreakdown), lt = $((e) => e.removeBreakdown), ut = $((e) => e.toggleBreakdown), dt = $((e) => e.setBreakdownGranularity), ft = $((e) => e.toggleBreakdownComparison), pt = $((e) => e.reorderBreakdowns), mt = $((e) => e.setFilters), ht = $((e) => e.dropFieldToFilter), gt = $((e) => e.setOrder), _t = $((e) => e.setLimit), vt = $((e) => e.clearQuery), yt = $((e) => e.clearCurrentMode), bt = $((e) => e.setFunnelBindingKey), xt = $((e) => e.setAnalysisType), St = $((e) => e.setFunnelCube), Ct = $((e) => e.addFunnelStep), wt = $((e) => e.removeFunnelStep), Tt = $((e) => e.updateFunnelStep), Et = $((e) => e.setActiveFunnelStepIndex), Dt = $((e) => e.reorderFunnelSteps), Ot = $((e) => e.setFunnelTimeDimension), At = $((e) => e.setFlowCube), Mt = $((e) => e.setFlowBindingKey), Nt = $((e) => e.setFlowTimeDimension), Pt = $((e) => e.setEventDimension), Ft = $((e) => e.setStartingStepName), It = $((e) => e.setStartingStepFilters), Lt = $((e) => e.setStepsBefore), Rt = $((e) => e.setStepsAfter), zt = $((e) => e.setJoinStrategy), Bt = $((e) => e.setRetentionCube), Vt = $((e) => e.setRetentionBindingKey), Ht = $((e) => e.setRetentionTimeDimension), Ut = $((e) => e.setRetentionDateRange), Wt = $((e) => e.setRetentionCohortFilters), Gt = $((e) => e.setRetentionActivityFilters), Kt = $((e) => e.setRetentionBreakdowns), X = $((e) => e.addRetentionBreakdown), Z = $((e) => e.removeRetentionBreakdown), qt = $((e) => e.setRetentionViewGranularity), Jt = $((e) => e.setRetentionPeriods), Q = $((e) => e.setRetentionType), Yt = $((e) => e.getValidation), Xt = U(() => Yt(), [
3048
+ }, [r]), Ge = $((e) => e.activeTab), Ke = $((e) => e.activeView), qe = $((e) => e.displayLimit), Je = $((e) => e.showFieldModal), Ye = $((e) => e.fieldModalMode), Xe = $((e) => e.setActiveTab), Ze = $((e) => e.setActiveView), Qe = $((e) => e.setDisplayLimit), $e = $((e) => e.closeFieldModal), [et, tt] = G(0), nt = $((e) => e.openMetricsModal), rt = $((e) => e.addMetric), it = $((e) => e.removeMetric), at = $((e) => e.toggleMetric), ot = $((e) => e.reorderMetrics), st = $((e) => e.openBreakdownsModal), ct = $((e) => e.addBreakdown), lt = $((e) => e.removeBreakdown), ut = $((e) => e.toggleBreakdown), dt = $((e) => e.setBreakdownGranularity), ft = $((e) => e.toggleBreakdownComparison), pt = $((e) => e.reorderBreakdowns), mt = $((e) => e.setFilters), ht = $((e) => e.dropFieldToFilter), gt = $((e) => e.setOrder), _t = $((e) => e.setLimit), vt = $((e) => e.clearQuery), yt = $((e) => e.clearCurrentMode), bt = $((e) => e.setFunnelBindingKey), xt = $((e) => e.setAnalysisType), St = $((e) => e.setFunnelCube), Ct = $((e) => e.addFunnelStep), wt = $((e) => e.removeFunnelStep), Tt = $((e) => e.updateFunnelStep), Et = $((e) => e.setActiveFunnelStepIndex), Dt = $((e) => e.reorderFunnelSteps), kt = $((e) => e.setFunnelTimeDimension), jt = $((e) => e.setFlowCube), Mt = $((e) => e.setFlowBindingKey), Nt = $((e) => e.setFlowTimeDimension), Pt = $((e) => e.setEventDimension), Ft = $((e) => e.setStartingStepName), It = $((e) => e.setStartingStepFilters), Lt = $((e) => e.setStepsBefore), Rt = $((e) => e.setStepsAfter), zt = $((e) => e.setJoinStrategy), Bt = $((e) => e.setRetentionCube), Vt = $((e) => e.setRetentionBindingKey), Ht = $((e) => e.setRetentionTimeDimension), Ut = $((e) => e.setRetentionDateRange), Wt = $((e) => e.setRetentionCohortFilters), Gt = $((e) => e.setRetentionActivityFilters), X = $((e) => e.setRetentionBreakdowns), Z = $((e) => e.addRetentionBreakdown), Kt = $((e) => e.removeRetentionBreakdown), qt = $((e) => e.setRetentionViewGranularity), Q = $((e) => e.setRetentionPeriods), Jt = $((e) => e.setRetentionType), Yt = $((e) => e.getValidation), Xt = U(() => Yt(), [
3187
3049
  Yt,
3188
3050
  i,
3189
3051
  O,
3190
- j,
3052
+ A,
3191
3053
  k,
3192
- M,
3054
+ j,
3055
+ P,
3056
+ oe,
3057
+ se,
3193
3058
  F,
3194
3059
  I,
3195
- ae,
3196
- oe,
3197
3060
  L,
3198
- R,
3199
- se,
3200
- ce
3061
+ ce,
3062
+ le
3201
3063
  ]), Zt = V((e, t) => {
3202
- O === "retention" && t === "dimension" ? X({ field: e.name }) : ut(e.name, t === "timeDimension");
3064
+ O === "retention" && t === "dimension" ? Z({ field: e.name }) : ut(e.name, t === "timeDimension");
3203
3065
  }, [
3204
3066
  O,
3205
- X,
3067
+ Z,
3206
3068
  ut
3207
3069
  ]), Qt = V((e, t, n, r) => {
3208
3070
  Ye === "metrics" && t === "measure" ? at(e.name) : Ye === "breakdown" && Zt(e, t), r || $e();
@@ -3231,40 +3093,40 @@ function Un(e = {}) {
3231
3093
  effectiveBreakdowns: D,
3232
3094
  analysisType: O,
3233
3095
  funnelBindingKey: k,
3234
- isFunnelModeEnabled: N,
3235
- funnelCube: A,
3236
- funnelSteps: j,
3237
- activeFunnelStepIndex: ee,
3238
- funnelTimeDimension: M,
3239
- funnelChartType: te,
3240
- funnelChartConfig: ne,
3241
- funnelDisplayConfig: ie,
3242
- serverFunnelQuery: fe,
3243
- flowCube: F,
3244
- flowBindingKey: I,
3245
- flowTimeDimension: ae,
3246
- eventDimension: oe,
3247
- startingStep: L,
3248
- stepsBefore: R,
3249
- stepsAfter: se,
3250
- joinStrategy: ce,
3096
+ isFunnelModeEnabled: M,
3097
+ funnelCube: ee,
3098
+ funnelSteps: A,
3099
+ activeFunnelStepIndex: te,
3100
+ funnelTimeDimension: j,
3101
+ funnelChartType: N,
3102
+ funnelChartConfig: re,
3103
+ funnelDisplayConfig: ae,
3104
+ serverFunnelQuery: pe,
3105
+ flowCube: P,
3106
+ flowBindingKey: oe,
3107
+ flowTimeDimension: se,
3108
+ eventDimension: F,
3109
+ startingStep: I,
3110
+ stepsBefore: L,
3111
+ stepsAfter: ce,
3112
+ joinStrategy: le,
3251
3113
  flowDisplayConfig: ue,
3252
- serverFlowQuery: me,
3114
+ serverFlowQuery: z,
3253
3115
  retentionCube: he,
3254
3116
  retentionBindingKey: ge,
3255
- retentionTimeDimension: B,
3256
- retentionDateRange: _e,
3257
- retentionCohortFilters: ve,
3258
- retentionActivityFilters: ye,
3259
- retentionBreakdowns: H,
3260
- retentionViewGranularity: W,
3261
- retentionPeriods: K,
3262
- retentionType: q,
3263
- retentionDisplayConfig: xe,
3264
- serverRetentionQuery: Se,
3117
+ retentionTimeDimension: _e,
3118
+ retentionDateRange: ve,
3119
+ retentionCohortFilters: ye,
3120
+ retentionActivityFilters: B,
3121
+ retentionBreakdowns: be,
3122
+ retentionViewGranularity: xe,
3123
+ retentionPeriods: Se,
3124
+ retentionType: H,
3125
+ retentionDisplayConfig: q,
3126
+ serverRetentionQuery: J,
3265
3127
  retentionValidation: Ce,
3266
- chartType: Te,
3267
- chartConfig: Y,
3128
+ chartType: Y,
3129
+ chartConfig: Ee,
3268
3130
  displayConfig: De,
3269
3131
  colorPalette: He,
3270
3132
  localPaletteName: ke,
@@ -3295,14 +3157,14 @@ function Un(e = {}) {
3295
3157
  chartConfig: t.chartConfig,
3296
3158
  displayConfig: t.displayConfig
3297
3159
  } : {
3298
- chartType: Te,
3299
- chartConfig: Y,
3160
+ chartType: Y,
3161
+ chartConfig: Ee,
3300
3162
  displayConfig: De
3301
3163
  };
3302
3164
  }, [
3303
3165
  r,
3304
- Te,
3305
3166
  Y,
3167
+ Ee,
3306
3168
  De
3307
3169
  ]),
3308
3170
  getAnalysisType: V(() => r.getState().analysisType, [r]),
@@ -3335,9 +3197,9 @@ function Un(e = {}) {
3335
3197
  updateFunnelStep: Tt,
3336
3198
  setActiveFunnelStepIndex: Et,
3337
3199
  reorderFunnelSteps: Dt,
3338
- setFunnelTimeDimension: Ot,
3200
+ setFunnelTimeDimension: kt,
3339
3201
  setFunnelDisplayConfig: Fe,
3340
- setFlowCube: At,
3202
+ setFlowCube: jt,
3341
3203
  setFlowBindingKey: Mt,
3342
3204
  setFlowTimeDimension: Nt,
3343
3205
  setEventDimension: Pt,
@@ -3353,12 +3215,12 @@ function Un(e = {}) {
3353
3215
  setRetentionDateRange: Ut,
3354
3216
  setRetentionCohortFilters: Wt,
3355
3217
  setRetentionActivityFilters: Gt,
3356
- setRetentionBreakdowns: Kt,
3357
- addRetentionBreakdown: X,
3358
- removeRetentionBreakdown: Z,
3218
+ setRetentionBreakdowns: X,
3219
+ addRetentionBreakdown: Z,
3220
+ removeRetentionBreakdown: Kt,
3359
3221
  setRetentionViewGranularity: qt,
3360
- setRetentionPeriods: Jt,
3361
- setRetentionType: Q,
3222
+ setRetentionPeriods: Q,
3223
+ setRetentionType: Jt,
3362
3224
  setRetentionDisplayConfig: We,
3363
3225
  setChartType: Re,
3364
3226
  setChartConfig: ze,
@@ -3378,13 +3240,13 @@ function Un(e = {}) {
3378
3240
  }
3379
3241
  //#endregion
3380
3242
  //#region src/client/hooks/analysisQueryExecutionModes.ts
3381
- function Wn(e) {
3243
+ function Un(e) {
3382
3244
  return e.isRetentionMode ? "retention" : e.isFlowMode ? "flow" : e.isFunnelMode ? "funnel" : e.isMultiMode ? "multi" : "single";
3383
3245
  }
3384
- function Gn(e, t) {
3246
+ function Wn(e, t) {
3385
3247
  return t[e];
3386
3248
  }
3387
- function Kn(e) {
3249
+ function Gn(e) {
3388
3250
  return {
3389
3251
  funnelExecutedQueries: e.isFunnelMode && e.funnelExecutedQueries && e.funnelExecutedQueries.length > 0 ? e.funnelExecutedQueries : null,
3390
3252
  funnelServerQuery: e.isFunnelMode ? e.funnelServerQuery : null,
@@ -3397,7 +3259,7 @@ function Kn(e) {
3397
3259
  retentionDebugData: e.isRetentionMode ? e.retentionDebugData : null
3398
3260
  };
3399
3261
  }
3400
- function qn(e) {
3262
+ function Kn(e) {
3401
3263
  return {
3402
3264
  single: !e.isValidQuery || !e.isSingleMode,
3403
3265
  multi: !e.hasMultiQueryConfig || !e.isMultiMode,
@@ -3407,11 +3269,11 @@ function qn(e) {
3407
3269
  dryRun: !!(!e.isValidQuery || e.isFunnelMode || e.isFlowMode || e.isRetentionMode)
3408
3270
  };
3409
3271
  }
3410
- function Jn(e) {
3272
+ function qn(e) {
3411
3273
  let { hasResults: t, initialData: n, isValidQuery: r, isLoading: i, isFetching: a, error: o } = e;
3412
3274
  return n && n.length > 0 && !t ? "success" : r ? i && !t ? "loading" : a && t ? "refreshing" : o ? "error" : t ? "success" : "idle" : "idle";
3413
3275
  }
3414
- function Yn(e) {
3276
+ function Jn(e) {
3415
3277
  return e.isRetentionMode && e.retentionChartData ? e.retentionChartData.rows.map((e) => ({
3416
3278
  "Retention.period": `P${e.period}`,
3417
3279
  "Retention.rate": e.retentionRate,
@@ -3422,18 +3284,18 @@ function Yn(e) {
3422
3284
  }
3423
3285
  //#endregion
3424
3286
  //#region src/client/hooks/useAnalysisQuery.ts
3425
- function Xn(e) {
3426
- let { currentQuery: t, allQueries: n, multiQueryConfig: r, isMultiQueryMode: i, isValidQuery: a, initialData: o, mergeStrategy: s, funnelBindingKey: c, isFunnelModeEnabled: l, analysisType: u, serverFunnelQuery: d, serverFlowQuery: f, serverRetentionQuery: p, retentionValidation: m } = e, { getFieldLabel: h } = de(), g = u === "funnel" || l, _ = u === "flow", v = u === "retention", y = u === "query" && i, b = u === "query" && !i, x = u === "funnel" && !!d, S = Wn({
3287
+ function Yn(e) {
3288
+ let { currentQuery: t, allQueries: n, multiQueryConfig: r, isMultiQueryMode: i, isValidQuery: a, initialData: o, mergeStrategy: s, funnelBindingKey: c, isFunnelModeEnabled: l, analysisType: u, serverFunnelQuery: d, serverFlowQuery: f, serverRetentionQuery: p, retentionValidation: m } = e, { getFieldLabel: h } = me(), g = u === "funnel" || l, _ = u === "flow", v = u === "retention", y = u === "query" && i, b = u === "query" && !i, x = u === "funnel" && !!d, S = Un({
3427
3289
  isRetentionMode: v,
3428
3290
  isFlowMode: _,
3429
3291
  isFunnelMode: g,
3430
3292
  isMultiMode: y
3431
- }), C = U(() => x || !g || !c || n.length < 2 ? null : me(n, c), [
3293
+ }), C = U(() => x || !g || !c || n.length < 2 ? null : _e(n, c), [
3432
3294
  x,
3433
3295
  g,
3434
3296
  c,
3435
3297
  n
3436
- ]), w = qn({
3298
+ ]), w = Kn({
3437
3299
  isValidQuery: a,
3438
3300
  isSingleMode: b,
3439
3301
  isMultiMode: y,
@@ -3448,43 +3310,43 @@ function Xn(e) {
3448
3310
  }), T = F(t, {
3449
3311
  skip: w.single,
3450
3312
  debounceMs: 300
3451
- }), E = oe(r, {
3313
+ }), E = ce(r, {
3452
3314
  skip: w.multi,
3453
3315
  debounceMs: 300
3454
- }), D = se(C, {
3316
+ }), D = ue(C, {
3455
3317
  skip: w.funnel,
3456
3318
  debounceMs: 300,
3457
3319
  prebuiltServerQuery: x ? d : void 0
3458
- }), O = ue(f ?? null, {
3320
+ }), O = pe(f ?? null, {
3459
3321
  skip: w.flow,
3460
3322
  debounceMs: 300
3461
- }), k = ae(p ?? null, {
3323
+ }), k = L(p ?? null, {
3462
3324
  skip: w.retention,
3463
3325
  debounceMs: 300,
3464
3326
  getFieldLabel: h
3465
- }), A = pe({
3327
+ }), ee = ge({
3466
3328
  queries: i ? n : [t],
3467
3329
  isMultiQueryMode: i,
3468
3330
  skip: w.dryRun
3469
- }), j = fe(D.serverQuery, { skip: !g || !D.serverQuery }), ee = fe(O.serverQuery, { skip: !_ || !O.serverQuery }), M = fe(p, { skip: !v || !p }), N = Gn(S, {
3331
+ }), A = he(D.serverQuery, { skip: !g || !D.serverQuery }), te = he(O.serverQuery, { skip: !_ || !O.serverQuery }), j = he(p, { skip: !v || !p }), M = Wn(S, {
3470
3332
  retention: k.isLoading || k.isDebouncing,
3471
3333
  flow: O.isLoading || O.isDebouncing,
3472
3334
  funnel: D.isExecuting || D.isDebouncing,
3473
3335
  multi: E.isLoading,
3474
3336
  single: T.isLoading
3475
- }), te = Gn(S, {
3337
+ }), N = Wn(S, {
3476
3338
  retention: k.isFetching,
3477
3339
  flow: O.isFetching,
3478
3340
  funnel: D.isExecuting,
3479
3341
  multi: E.isFetching,
3480
3342
  single: T.isFetching
3481
- }), P = Gn(S, {
3343
+ }), ne = Wn(S, {
3482
3344
  retention: k.error,
3483
3345
  flow: O.error,
3484
3346
  funnel: D.error,
3485
3347
  multi: E.error,
3486
3348
  single: T.error
3487
- }), ne = !(!T.debouncedQuery && !E.debouncedConfig && D.isDebouncing && O.isDebouncing && k.isDebouncing), re = V((e) => {
3349
+ }), re = !(!T.debouncedQuery && !E.debouncedConfig && D.isDebouncing && O.isDebouncing && k.isDebouncing), ie = V((e) => {
3488
3350
  switch (S) {
3489
3351
  case "retention":
3490
3352
  k.execute(e);
@@ -3507,8 +3369,8 @@ function Xn(e) {
3507
3369
  D,
3508
3370
  E,
3509
3371
  T
3510
- ]), ie = U(() => Jn({
3511
- hasResults: Gn(S, {
3372
+ ]), ae = U(() => qn({
3373
+ hasResults: Wn(S, {
3512
3374
  retention: k.chartData,
3513
3375
  flow: O.data,
3514
3376
  funnel: D.chartData,
@@ -3517,14 +3379,14 @@ function Xn(e) {
3517
3379
  }),
3518
3380
  initialData: o,
3519
3381
  isValidQuery: a,
3520
- isLoading: N,
3521
- isFetching: te,
3522
- error: P
3382
+ isLoading: M,
3383
+ isFetching: N,
3384
+ error: ne
3523
3385
  }), [
3524
3386
  a,
3387
+ M,
3525
3388
  N,
3526
- te,
3527
- P,
3389
+ ne,
3528
3390
  T.rawData,
3529
3391
  E.data,
3530
3392
  D.chartData,
@@ -3532,7 +3394,7 @@ function Xn(e) {
3532
3394
  k.chartData,
3533
3395
  o,
3534
3396
  S
3535
- ]), I = U(() => Yn({
3397
+ ]), P = U(() => Jn({
3536
3398
  isRetentionMode: v,
3537
3399
  isFlowMode: _,
3538
3400
  isFunnelMode: g,
@@ -3554,25 +3416,25 @@ function Xn(e) {
3554
3416
  g,
3555
3417
  _,
3556
3418
  v
3557
- ]), L = U(() => g && D.stepResults ? D.stepResults.map((e) => e.data) : !y || !E.perQueryData ? null : E.perQueryData, [
3419
+ ]), oe = U(() => g && D.stepResults ? D.stepResults.map((e) => e.data) : !y || !E.perQueryData ? null : E.perQueryData, [
3558
3420
  y,
3559
3421
  g,
3560
3422
  E.perQueryData,
3561
3423
  D.stepResults
3562
- ]), { funnelExecutedQueries: R, funnelServerQuery: ce, funnelDebugData: le, flowServerQuery: z, flowChartData: he, flowDebugData: ge, retentionServerQuery: B, retentionChartData: _e, retentionDebugData: ve } = Kn({
3424
+ ]), { funnelExecutedQueries: se, funnelServerQuery: I, funnelDebugData: le, flowServerQuery: R, flowChartData: de, flowDebugData: fe, retentionServerQuery: z, retentionChartData: ve, retentionDebugData: ye } = Gn({
3563
3425
  isFunnelMode: g,
3564
3426
  isFlowMode: _,
3565
3427
  isRetentionMode: v,
3566
3428
  funnelExecutedQueries: D.executedQueries,
3567
3429
  funnelServerQuery: D.serverQuery,
3568
- funnelDebugData: j.debugData,
3430
+ funnelDebugData: A.debugData,
3569
3431
  flowServerQuery: O.serverQuery,
3570
3432
  flowData: O.data,
3571
- flowDebugData: ee.debugData,
3433
+ flowDebugData: te.debugData,
3572
3434
  retentionServerQuery: p ?? null,
3573
3435
  retentionChartData: k.chartData,
3574
- retentionDebugData: M.debugData
3575
- }), ye = U(() => Gn(S, {
3436
+ retentionDebugData: j.debugData
3437
+ }), B = U(() => Wn(S, {
3576
3438
  retention: k.needsRefresh,
3577
3439
  flow: O.needsRefresh,
3578
3440
  funnel: D.needsRefresh,
@@ -3584,72 +3446,72 @@ function Xn(e) {
3584
3446
  O.needsRefresh,
3585
3447
  D.needsRefresh,
3586
3448
  T.needsRefresh
3587
- ]), H = U(() => {
3449
+ ]), be = U(() => {
3588
3450
  if (b && T.warnings) return T.warnings;
3589
3451
  }, [b, T.warnings]);
3590
3452
  return {
3591
- executionStatus: ie,
3592
- executionResults: I,
3593
- perQueryResults: L,
3594
- isLoading: N,
3595
- isFetching: te,
3596
- error: P,
3597
- debugDataPerQuery: A.debugDataPerQuery,
3598
- hasDebounced: ne,
3599
- refetch: re,
3600
- funnelExecutedQueries: R,
3601
- funnelServerQuery: ce,
3453
+ executionStatus: ae,
3454
+ executionResults: P,
3455
+ perQueryResults: oe,
3456
+ isLoading: M,
3457
+ isFetching: N,
3458
+ error: ne,
3459
+ debugDataPerQuery: ee.debugDataPerQuery,
3460
+ hasDebounced: re,
3461
+ refetch: ie,
3462
+ funnelExecutedQueries: se,
3463
+ funnelServerQuery: I,
3602
3464
  funnelDebugData: le,
3603
- flowServerQuery: z,
3604
- flowChartData: he,
3605
- flowDebugData: ge,
3606
- retentionServerQuery: B,
3607
- retentionChartData: _e,
3608
- retentionDebugData: ve,
3465
+ flowServerQuery: R,
3466
+ flowChartData: de,
3467
+ flowDebugData: fe,
3468
+ retentionServerQuery: z,
3469
+ retentionChartData: ve,
3470
+ retentionDebugData: ye,
3609
3471
  retentionValidation: m ?? null,
3610
- needsRefresh: ye,
3611
- warnings: H
3472
+ needsRefresh: B,
3473
+ warnings: be
3612
3474
  };
3613
3475
  }
3614
3476
  //#endregion
3615
3477
  //#region src/client/utils/shareUtils.ts
3616
- var Zn = o(), Qn = 1800, $n = "share=";
3617
- function er(e) {
3478
+ var Xn = o(), Zn = 1800, Qn = "share=";
3479
+ function $n(e) {
3618
3480
  let t = JSON.stringify(e);
3619
- return (0, Zn.compressToEncodedURIComponent)(t);
3481
+ return (0, Xn.compressToEncodedURIComponent)(t);
3620
3482
  }
3621
- function tr(e) {
3483
+ function er(e) {
3622
3484
  try {
3623
- let t = (0, Zn.decompressFromEncodedURIComponent)(e);
3485
+ let t = (0, Xn.decompressFromEncodedURIComponent)(e);
3624
3486
  if (!t) return null;
3625
3487
  let n = JSON.parse(t);
3626
- return A(n) ? n : (console.warn("[shareUtils] Invalid AnalysisConfig in share URL"), null);
3488
+ return j(n) ? n : (console.warn("[shareUtils] Invalid AnalysisConfig in share URL"), null);
3627
3489
  } catch {
3628
3490
  return null;
3629
3491
  }
3630
3492
  }
3631
- function nr(e) {
3632
- let t = er(e);
3493
+ function tr(e) {
3494
+ let t = $n(e);
3633
3495
  return {
3634
- ok: t.length <= Qn,
3496
+ ok: t.length <= Zn,
3635
3497
  size: t.length,
3636
- maxSize: Qn
3498
+ maxSize: Zn
3637
3499
  };
3638
3500
  }
3639
- function rr(e) {
3640
- let t = er(e);
3641
- if (t.length <= Qn) return {
3501
+ function nr(e) {
3502
+ let t = $n(e);
3503
+ if (t.length <= Zn) return {
3642
3504
  encoded: t,
3643
3505
  queryOnly: !1
3644
3506
  };
3645
- let n = er({
3507
+ let n = $n({
3646
3508
  version: e.version,
3647
3509
  analysisType: e.analysisType,
3648
3510
  activeView: e.activeView,
3649
3511
  charts: {},
3650
3512
  query: e.query
3651
3513
  });
3652
- return n.length <= Qn ? {
3514
+ return n.length <= Zn ? {
3653
3515
  encoded: n,
3654
3516
  queryOnly: !0
3655
3517
  } : {
@@ -3657,27 +3519,27 @@ function rr(e) {
3657
3519
  queryOnly: !0
3658
3520
  };
3659
3521
  }
3660
- function ir(e) {
3661
- let { encoded: t } = rr(e);
3662
- return t ? `${window.location.origin}${window.location.pathname}#${$n}${t}` : null;
3522
+ function rr(e) {
3523
+ let { encoded: t } = nr(e);
3524
+ return t ? `${window.location.origin}${window.location.pathname}#${Qn}${t}` : null;
3663
3525
  }
3664
- function ar() {
3526
+ function ir() {
3665
3527
  if (typeof window > "u") return null;
3666
3528
  let e = window.location.hash;
3667
- return !e || !e.startsWith(`#${$n}`) ? null : e.slice(7);
3529
+ return !e || !e.startsWith(`#${Qn}`) ? null : e.slice(7);
3668
3530
  }
3669
- function or() {
3531
+ function ar() {
3670
3532
  if (typeof window > "u") return;
3671
3533
  let e = new URL(window.location.href);
3672
3534
  e.hash = "", window.history.replaceState(null, "", e.toString());
3673
3535
  }
3674
- function sr() {
3675
- let e = ar();
3676
- return e ? tr(e) : null;
3536
+ function or() {
3537
+ let e = ir();
3538
+ return e ? er(e) : null;
3677
3539
  }
3678
3540
  //#endregion
3679
3541
  //#region src/client/components/AIAssistant/utils.ts
3680
- async function cr(e, t, n = "/api/ai/generate", r) {
3542
+ async function sr(e, t, n = "/api/ai/generate", r) {
3681
3543
  let i = { text: t }, a = {
3682
3544
  "Content-Type": "application/json",
3683
3545
  ...r
@@ -3707,21 +3569,21 @@ async function cr(e, t, n = "/api/ai/generate", r) {
3707
3569
  let s = await o.json();
3708
3570
  return console.log("✅ Client: Successfully generated content"), s;
3709
3571
  }
3710
- function lr(e) {
3572
+ function cr(e) {
3711
3573
  return (e.query || "").replace(/```json\s*/g, "").replace(/```\s*/g, "").replace(/^\s*```.*\n/gm, "").trim();
3712
3574
  }
3713
3575
  //#endregion
3714
3576
  //#region src/client/hooks/useAnalysisEffects.ts
3715
- function ur(e) {
3577
+ function lr(e) {
3716
3578
  return typeof e == "object" && !!e && "funnel" in e && typeof e.funnel == "object";
3717
3579
  }
3718
- function dr(e) {
3580
+ function ur(e) {
3719
3581
  let { state: t, query: n, aiEndpoint: r = "/api/ai", onQueryChange: i, onChartConfigChange: a } = e, { storeApi: o, actions: s } = t, { apiOptions: l } = c(), u = W(!1);
3720
3582
  H(() => {
3721
3583
  if (u.current) return;
3722
3584
  u.current = !0;
3723
- let e = sr();
3724
- e && (o.getState().load(e), or());
3585
+ let e = or();
3586
+ e && (o.getState().load(e), ar());
3725
3587
  }, [o]), H(() => {
3726
3588
  i && t.isValidQuery && i(t.currentQuery);
3727
3589
  }, [
@@ -3740,46 +3602,46 @@ function dr(e) {
3740
3602
  t.displayConfig,
3741
3603
  a
3742
3604
  ]);
3743
- let { combinedMetrics: d, combinedBreakdowns: p, chartType: m, chartConfig: h, userManuallySelectedChart: g } = t, { hasDebounced: _ } = n, { setChartType: v, setChartConfig: y } = s, b = W("");
3605
+ let { combinedMetrics: d, combinedBreakdowns: f, chartType: p, chartConfig: g, userManuallySelectedChart: _ } = t, { hasDebounced: v } = n, { setChartType: y, setChartConfig: b } = s, x = W("");
3744
3606
  H(() => {
3745
- if (!_ || d.length === 0 && p.length === 0) return;
3607
+ if (!v || d.length === 0 && f.length === 0) return;
3746
3608
  let e = JSON.stringify({
3747
3609
  metrics: d.map((e) => e.field),
3748
- breakdowns: p.map((e) => ({
3610
+ breakdowns: f.map((e) => ({
3749
3611
  field: e.field,
3750
3612
  isTime: e.isTimeDimension
3751
3613
  }))
3752
3614
  });
3753
- if (e === b.current) return;
3754
- b.current = e;
3755
- let t = Nt(d, p, m, g);
3615
+ if (e === x.current) return;
3616
+ x.current = e;
3617
+ let t = Mt(d, f, p, _);
3756
3618
  if (t) {
3757
- let { chartConfig: e } = jt(d, p, t);
3758
- v(t), y(e), s.setUserManuallySelectedChart(!1);
3759
- } else if (d.length > 0 || p.length > 0) {
3760
- if (m === "table" || m === "recordsTable") {
3761
- let e = m === "recordsTable" ? "columns" : "xAxis", t = [...p.map((e) => e.field), ...d.map((e) => e.field)], n = Array.isArray(h[e]) ? h[e] : [], r = new Set(h.hiddenColumns ?? []), i = t.filter((e) => !n.includes(e) && !r.has(e));
3762
- i.length > 0 && y({
3763
- ...h,
3619
+ let { chartConfig: e } = At(d, f, t);
3620
+ y(t), b(e), s.setUserManuallySelectedChart(!1);
3621
+ } else if (d.length > 0 || f.length > 0) {
3622
+ if (p === "table" || p === "recordsTable") {
3623
+ let e = p === "recordsTable" ? "columns" : "xAxis", t = [...f.map((e) => e.field), ...d.map((e) => e.field)], n = Array.isArray(g[e]) ? g[e] : [], r = new Set(g.hiddenColumns ?? []), i = t.filter((e) => !n.includes(e) && !r.has(e));
3624
+ i.length > 0 && b({
3625
+ ...g,
3764
3626
  [e]: [...n, ...i]
3765
3627
  });
3766
- } else if (!h.xAxis?.length && !h.yAxis?.length && !h.series?.length) {
3767
- let { chartConfig: e } = jt(d, p, m);
3768
- y(e);
3628
+ } else if (!g.xAxis?.length && !g.yAxis?.length && !g.series?.length) {
3629
+ let { chartConfig: e } = At(d, f, p);
3630
+ b(e);
3769
3631
  }
3770
3632
  }
3771
3633
  }, [
3772
- _,
3634
+ v,
3773
3635
  d,
3636
+ f,
3774
3637
  p,
3775
- m,
3638
+ _,
3776
3639
  g,
3777
- h,
3778
- v,
3779
3640
  y,
3641
+ b,
3780
3642
  s
3781
3643
  ]);
3782
- let [x, S] = G({
3644
+ let [S, C] = G({
3783
3645
  isOpen: !1,
3784
3646
  userPrompt: "",
3785
3647
  isGenerating: !1,
@@ -3787,7 +3649,7 @@ function dr(e) {
3787
3649
  hasGeneratedQuery: !1,
3788
3650
  previousState: null,
3789
3651
  previousConfig: null
3790
- }), C = V((e) => {
3652
+ }), w = V((e) => {
3791
3653
  o.getState().updateQueryState(t.activeQueryIndex, (t) => {
3792
3654
  let n = e(t);
3793
3655
  return {
@@ -3814,7 +3676,7 @@ function dr(e) {
3814
3676
  o.getState().load(t);
3815
3677
  }, [o]), E = V(() => {
3816
3678
  let e = o.getState().save();
3817
- S({
3679
+ C({
3818
3680
  isOpen: !0,
3819
3681
  userPrompt: "",
3820
3682
  isGenerating: !1,
@@ -3841,7 +3703,7 @@ function dr(e) {
3841
3703
  t.displayConfig,
3842
3704
  t.analysisType
3843
3705
  ]), D = V(() => {
3844
- S((e) => ({
3706
+ C((e) => ({
3845
3707
  ...e,
3846
3708
  isOpen: !1,
3847
3709
  userPrompt: "",
@@ -3849,21 +3711,21 @@ function dr(e) {
3849
3711
  hasGeneratedQuery: !1
3850
3712
  }));
3851
3713
  }, []), O = V((e) => {
3852
- S((t) => ({
3714
+ C((t) => ({
3853
3715
  ...t,
3854
3716
  userPrompt: e
3855
3717
  }));
3856
3718
  }, []), k = V(async () => {
3857
- if (x.userPrompt.trim()) {
3858
- S((e) => ({
3719
+ if (S.userPrompt.trim()) {
3720
+ C((e) => ({
3859
3721
  ...e,
3860
3722
  isGenerating: !0,
3861
3723
  error: null
3862
3724
  }));
3863
3725
  try {
3864
- let e = lr(await cr("", x.userPrompt, r, l?.headers)), n = JSON.parse(e), i = "query" in n && n.query ? n.query : n, a = "chartType" in n ? n.chartType : void 0, o = "chartConfig" in n ? n.chartConfig : void 0;
3865
- if (ur(i)) {
3866
- s.setAnalysisType("funnel"), T(i), s.setChartType("funnel"), o && s.setChartConfig(o), s.setActiveView("chart"), S((e) => ({
3726
+ let e = cr(await sr("", S.userPrompt, r, l?.headers)), n = JSON.parse(e), i = "query" in n && n.query ? n.query : n, a = "chartType" in n ? n.chartType : void 0, o = "chartConfig" in n ? n.chartConfig : void 0;
3727
+ if (lr(i)) {
3728
+ s.setAnalysisType("funnel"), T(i), s.setChartType("funnel"), o && s.setChartConfig(o), s.setActiveView("chart"), C((e) => ({
3867
3729
  ...e,
3868
3730
  isGenerating: !1,
3869
3731
  hasGeneratedQuery: !0
@@ -3871,19 +3733,19 @@ function dr(e) {
3871
3733
  return;
3872
3734
  }
3873
3735
  let c = i;
3874
- C((e) => ({
3736
+ w((e) => ({
3875
3737
  ...e,
3876
3738
  metrics: (c.measures || []).map((e, t) => ({
3877
- id: f(),
3739
+ id: h(),
3878
3740
  field: e,
3879
- label: w(t)
3741
+ label: m(t)
3880
3742
  })),
3881
3743
  breakdowns: [...(c.dimensions || []).map((e) => ({
3882
- id: f(),
3744
+ id: h(),
3883
3745
  field: e,
3884
3746
  isTimeDimension: !1
3885
3747
  })), ...(c.timeDimensions || []).map((e) => ({
3886
- id: f(),
3748
+ id: h(),
3887
3749
  field: e.dimension,
3888
3750
  granularity: e.granularity,
3889
3751
  isTimeDimension: !0
@@ -3891,13 +3753,13 @@ function dr(e) {
3891
3753
  filters: c.filters || [],
3892
3754
  order: c.order || void 0,
3893
3755
  limit: c.limit ?? void 0
3894
- })), t.analysisType === "funnel" && s.setAnalysisType("query"), a && s.setChartType(a), o && s.setChartConfig(o), s.setActiveView("chart"), S((e) => ({
3756
+ })), t.analysisType === "funnel" && s.setAnalysisType("query"), a && s.setChartType(a), o && s.setChartConfig(o), s.setActiveView("chart"), C((e) => ({
3895
3757
  ...e,
3896
3758
  isGenerating: !1,
3897
3759
  hasGeneratedQuery: !0
3898
3760
  }));
3899
3761
  } catch (e) {
3900
- S((t) => ({
3762
+ C((t) => ({
3901
3763
  ...t,
3902
3764
  isGenerating: !1,
3903
3765
  error: e instanceof Error ? e.message : "Failed to generate query"
@@ -3905,15 +3767,15 @@ function dr(e) {
3905
3767
  }
3906
3768
  }
3907
3769
  }, [
3908
- x.userPrompt,
3770
+ S.userPrompt,
3909
3771
  r,
3910
3772
  l?.headers,
3911
- C,
3773
+ w,
3912
3774
  T,
3913
3775
  t.analysisType,
3914
3776
  s
3915
- ]), A = V(() => {
3916
- S({
3777
+ ]), ee = V(() => {
3778
+ C({
3917
3779
  isOpen: !1,
3918
3780
  userPrompt: "",
3919
3781
  isGenerating: !1,
@@ -3922,13 +3784,13 @@ function dr(e) {
3922
3784
  previousState: null,
3923
3785
  previousConfig: null
3924
3786
  });
3925
- }, []), j = V(() => {
3926
- x.previousConfig ? o.getState().load(x.previousConfig) : x.previousState && (C((e) => ({
3787
+ }, []), A = V(() => {
3788
+ S.previousConfig ? o.getState().load(S.previousConfig) : S.previousState && (w((e) => ({
3927
3789
  ...e,
3928
- metrics: x.previousState.metrics,
3929
- breakdowns: x.previousState.breakdowns,
3930
- filters: x.previousState.filters
3931
- })), s.setChartType(x.previousState.chartType), s.setChartConfig(x.previousState.chartConfig), s.setDisplayConfig(x.previousState.displayConfig), x.previousState.analysisType && s.setAnalysisType(x.previousState.analysisType)), S({
3790
+ metrics: S.previousState.metrics,
3791
+ breakdowns: S.previousState.breakdowns,
3792
+ filters: S.previousState.filters
3793
+ })), s.setChartType(S.previousState.chartType), s.setChartConfig(S.previousState.chartConfig), s.setDisplayConfig(S.previousState.displayConfig), S.previousState.analysisType && s.setAnalysisType(S.previousState.analysisType)), C({
3932
3794
  isOpen: !1,
3933
3795
  userPrompt: "",
3934
3796
  isGenerating: !1,
@@ -3938,24 +3800,24 @@ function dr(e) {
3938
3800
  previousConfig: null
3939
3801
  });
3940
3802
  }, [
3941
- x.previousState,
3942
- x.previousConfig,
3803
+ S.previousState,
3804
+ S.previousConfig,
3943
3805
  o,
3944
- C,
3806
+ w,
3945
3807
  s
3946
- ]), [ee, M] = G("idle"), N = t.effectiveIsValidQuery;
3808
+ ]), [te, j] = G("idle"), M = t.effectiveIsValidQuery;
3947
3809
  return {
3948
- aiState: x,
3810
+ aiState: S,
3949
3811
  openAI: E,
3950
3812
  closeAI: D,
3951
3813
  setAIPrompt: O,
3952
3814
  generateAI: k,
3953
- acceptAI: A,
3954
- cancelAI: j,
3955
- shareButtonState: ee,
3815
+ acceptAI: ee,
3816
+ cancelAI: A,
3817
+ shareButtonState: te,
3956
3818
  share: V(async () => {
3957
- if (!N) return;
3958
- let { encoded: e, queryOnly: t } = rr(o.getState().save());
3819
+ if (!M) return;
3820
+ let { encoded: e, queryOnly: t } = nr(o.getState().save());
3959
3821
  if (!e) return;
3960
3822
  let n = `${window.location.origin}${window.location.pathname}#share=${e}`;
3961
3823
  try {
@@ -3964,17 +3826,17 @@ function dr(e) {
3964
3826
  let e = document.createElement("textarea");
3965
3827
  e.value = n, document.body.appendChild(e), e.select(), document.execCommand("copy"), document.body.removeChild(e);
3966
3828
  }
3967
- M(t ? "copied-no-chart" : "copied"), setTimeout(() => {
3968
- M("idle");
3829
+ j(t ? "copied-no-chart" : "copied"), setTimeout(() => {
3830
+ j("idle");
3969
3831
  }, 2e3);
3970
- }, [N, o]),
3971
- canShare: N
3832
+ }, [M, o]),
3833
+ canShare: M
3972
3834
  };
3973
3835
  }
3974
3836
  //#endregion
3975
3837
  //#region src/client/hooks/useAnalysisBuilderHook.ts
3976
- function fr(e = {}) {
3977
- let { initialData: t, externalColorPalette: n, onQueryChange: r, onChartConfigChange: i } = e, { features: a } = s(), o = Un({ externalColorPalette: n }), c = Xn({
3838
+ function dr(e = {}) {
3839
+ let { initialData: t, externalColorPalette: n, onQueryChange: r, onChartConfigChange: i } = e, { features: a } = s(), o = Hn({ externalColorPalette: n }), c = Yn({
3978
3840
  currentQuery: o.currentQuery,
3979
3841
  allQueries: o.allQueries,
3980
3842
  multiQueryConfig: o.multiQueryConfig,
@@ -3989,7 +3851,7 @@ function fr(e = {}) {
3989
3851
  serverFlowQuery: o.serverFlowQuery,
3990
3852
  serverRetentionQuery: o.serverRetentionQuery,
3991
3853
  retentionValidation: o.retentionValidation
3992
- }), l = dr({
3854
+ }), l = ur({
3993
3855
  state: o,
3994
3856
  query: c,
3995
3857
  aiEndpoint: a?.aiEndpoint,
@@ -4164,7 +4026,7 @@ function fr(e = {}) {
4164
4026
  }
4165
4027
  //#endregion
4166
4028
  //#region src/client/utils/funnelValidation.ts
4167
- function pr(e, t) {
4029
+ function fr(e, t) {
4168
4030
  let n = [];
4169
4031
  if (!t?.cubes) return n;
4170
4032
  if (typeof e.dimension == "string") {
@@ -4188,7 +4050,7 @@ function pr(e, t) {
4188
4050
  }
4189
4051
  return n;
4190
4052
  }
4191
- function mr(e) {
4053
+ function pr(e) {
4192
4054
  let t = [];
4193
4055
  for (let n = 0; n < e.length; n++) {
4194
4056
  let r = e[n], i = r.query;
@@ -4200,17 +4062,17 @@ function mr(e) {
4200
4062
  }
4201
4063
  return t;
4202
4064
  }
4203
- function hr(e, t) {
4065
+ function mr(e, t) {
4204
4066
  if (typeof e.dimension == "string") return !0;
4205
- let n = he(t);
4067
+ let n = ve(t);
4206
4068
  return n ? e.dimension.some((e) => e.cube === n) : !1;
4207
4069
  }
4208
- function gr(e, t) {
4070
+ function hr(e, t) {
4209
4071
  let n = [];
4210
4072
  for (let r = 0; r < t.length; r++) {
4211
4073
  let i = t[r];
4212
- if (!hr(e, i.query)) {
4213
- let e = he(i.query) || "unknown";
4074
+ if (!mr(e, i.query)) {
4075
+ let e = ve(i.query) || "unknown";
4214
4076
  n.push({
4215
4077
  type: "cross_cube",
4216
4078
  message: `Step ${r + 1} uses cube "${e}" but no binding key mapping exists for it`,
@@ -4220,26 +4082,26 @@ function gr(e, t) {
4220
4082
  }
4221
4083
  return n;
4222
4084
  }
4223
- function _r(e) {
4085
+ function gr(e) {
4224
4086
  return e ? /^P(?:\d+Y)?(?:\d+M)?(?:\d+W)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$/.test(e) ? null : {
4225
4087
  type: "time_window",
4226
4088
  message: `Invalid time window format "${e}". Expected ISO 8601 duration (e.g., P7D, PT1H)`
4227
4089
  } : null;
4228
4090
  }
4229
- function vr(e, t) {
4091
+ function _r(e, t) {
4230
4092
  let n = [], r = [];
4231
4093
  e.steps.length < 2 && n.push({
4232
4094
  type: "general",
4233
4095
  message: "Funnel requires at least 2 steps"
4234
- }), e.bindingKey?.dimension ? (n.push(...pr(e.bindingKey, t)), n.push(...gr(e.bindingKey, e.steps))) : n.push({
4096
+ }), e.bindingKey?.dimension ? (n.push(...fr(e.bindingKey, t)), n.push(...hr(e.bindingKey, e.steps))) : n.push({
4235
4097
  type: "binding_key",
4236
4098
  message: "Binding key dimension is required"
4237
- }), n.push(...mr(e.steps));
4099
+ }), n.push(...pr(e.steps));
4238
4100
  for (let t = 0; t < e.steps.length; t++) {
4239
- let r = e.steps[t], i = _r(r.timeToConvert);
4101
+ let r = e.steps[t], i = gr(r.timeToConvert);
4240
4102
  i && (i.stepIndex = t, n.push(i));
4241
4103
  }
4242
- let i = _r(e.globalTimeWindow);
4104
+ let i = gr(e.globalTimeWindow);
4243
4105
  return i && n.push(i), e.steps.length > 5 && r.push({
4244
4106
  type: "general",
4245
4107
  message: "Funnels with more than 5 steps may have reduced performance"
@@ -4249,7 +4111,7 @@ function vr(e, t) {
4249
4111
  warnings: r
4250
4112
  };
4251
4113
  }
4252
- function yr(e, t) {
4114
+ function vr(e, t) {
4253
4115
  return t < 2 ? {
4254
4116
  isValid: !1,
4255
4117
  message: "Add at least 2 steps for funnel"
@@ -4258,7 +4120,7 @@ function yr(e, t) {
4258
4120
  message: "Select a binding key dimension"
4259
4121
  } : { isValid: !0 };
4260
4122
  }
4261
- function br(e) {
4123
+ function yr(e) {
4262
4124
  if (!e?.cubes) return [];
4263
4125
  let t = [];
4264
4126
  for (let n of e.cubes) if (n.dimensions) for (let e of n.dimensions) (e.type === "string" || e.type === "number") && t.push({
@@ -4268,7 +4130,7 @@ function br(e) {
4268
4130
  });
4269
4131
  return t;
4270
4132
  }
4271
- function xr(e) {
4133
+ function br(e) {
4272
4134
  if (!e?.dimension) return "Select binding key...";
4273
4135
  if (typeof e.dimension == "string") return e.dimension.split(".")[1] || e.dimension;
4274
4136
  if (e.dimension.length > 0) {
@@ -4278,6 +4140,6 @@ function xr(e) {
4278
4140
  return "Select binding key...";
4279
4141
  }
4280
4142
  //#endregion
4281
- export { An as A, Dn as C, Mn as D, On as E, Xe as F, wn as M, Rt as N, En as O, at as P, Cn as S, Tn as T, Hn as _, gr as a, Rn as b, fr as c, ir as d, nr as f, In as g, Ln as h, pr as i, $ as j, jn as k, er as l, sr as m, xr as n, vr as o, ar as p, yr as r, mr as s, br as t, tr as u, Bn as v, kn as w, Pn as x, Fn as y };
4143
+ export { kn as A, En as C, jn as D, Dn as E, Ye as F, Cn as M, Lt as N, Tn as O, it as P, Sn as S, wn as T, Vn as _, hr as a, Ln as b, dr as c, rr as d, tr as f, Fn as g, In as h, fr as i, $ as j, An as k, $n as l, or as m, br as n, _r as o, ir as p, vr as r, pr as s, yr as t, er as u, zn as v, On as w, Nn as x, Pn as y };
4282
4144
 
4283
- //# sourceMappingURL=analysis-builder-shared-BSINKFr2.js.map
4145
+ //# sourceMappingURL=analysis-builder-shared-CoX_nmo0.js.map