drizzle-cube 0.9.0 → 0.9.2

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