drizzle-cube 0.8.1 → 0.8.3

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 (263) hide show
  1. package/dist/adapters/ActivityGridChart.config-Bu5lf3M0.js +2 -0
  2. package/dist/adapters/ActivityGridChart.config-NSLCFzvM.cjs +1 -0
  3. package/dist/adapters/AreaChart.config-Bv7qJYd0.cjs +1 -0
  4. package/dist/adapters/AreaChart.config-DexPQDQp.js +2 -0
  5. package/dist/adapters/BarChart.config-Br0vyPO0.js +2 -0
  6. package/dist/adapters/BarChart.config-Dc1FHoux.cjs +1 -0
  7. package/dist/adapters/BoxPlotChart.config-C_j-wp0l.cjs +1 -0
  8. package/dist/adapters/BoxPlotChart.config-Dz9P8ck_.js +2 -0
  9. package/dist/adapters/BubbleChart.config-e6hABmpk.js +2 -0
  10. package/dist/adapters/BubbleChart.config-ro80CWd_.cjs +1 -0
  11. package/dist/adapters/CandlestickChart.config-Btzcen-6.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-BzAPnbp4.js +2 -0
  13. package/dist/adapters/DataTable.config-RNGMSueS.cjs +1 -0
  14. package/dist/adapters/DataTable.config-enzxzWhP.js +2 -0
  15. package/dist/adapters/DotStripChart.config-C3FEV6Ys.js +2 -0
  16. package/dist/adapters/DotStripChart.config-DhODtwbu.cjs +1 -0
  17. package/dist/adapters/FunnelChart.config-CX1DFABr.cjs +1 -0
  18. package/dist/adapters/FunnelChart.config-DXg1N0FP.js +2 -0
  19. package/dist/adapters/GaugeChart.config-Dl2DrFSl.cjs +1 -0
  20. package/dist/adapters/GaugeChart.config-oiPzrfGx.js +2 -0
  21. package/dist/adapters/HeatMapChart.config-B9SrePWx.js +2 -0
  22. package/dist/adapters/HeatMapChart.config-CTwcA2aU.cjs +1 -0
  23. package/dist/adapters/KpiDelta.config-CgZQueiY.js +2 -0
  24. package/dist/adapters/KpiDelta.config-eybdn0eH.cjs +1 -0
  25. package/dist/adapters/KpiNumber.config-Ce2piJuC.js +2 -0
  26. package/dist/adapters/KpiNumber.config-h_KXh89X.cjs +1 -0
  27. package/dist/adapters/KpiText.config-CLk6a0TW.cjs +1 -0
  28. package/dist/adapters/KpiText.config-_g2gpg2d.js +2 -0
  29. package/dist/adapters/LineChart.config-C3MQKW5U.cjs +1 -0
  30. package/dist/adapters/LineChart.config-CA4b1Xt-.js +2 -0
  31. package/dist/adapters/MarkdownChart.config-B4lCc0_v.js +2 -0
  32. package/dist/adapters/MarkdownChart.config-waq3gxEs.cjs +1 -0
  33. package/dist/adapters/MeasureProfileChart.config-B1LrfeP-.js +2 -0
  34. package/dist/adapters/MeasureProfileChart.config-Djka_dSU.cjs +1 -0
  35. package/dist/adapters/PieChart.config-BfSLFe9d.js +2 -0
  36. package/dist/adapters/PieChart.config-D5ixLlYJ.cjs +1 -0
  37. package/dist/adapters/ProportionBarChart.config-CRWy5aME.cjs +1 -0
  38. package/dist/adapters/ProportionBarChart.config-nyP6m6i0.js +2 -0
  39. package/dist/adapters/RadarChart.config-B7C-0wYa.cjs +1 -0
  40. package/dist/adapters/RadarChart.config-COzBFXrA.js +2 -0
  41. package/dist/adapters/RadialBarChart.config-C50IqzNQ.js +2 -0
  42. package/dist/adapters/RadialBarChart.config-LTSl-xoA.cjs +1 -0
  43. package/dist/adapters/RecordsTable.config-BHWD9CBE.js +2 -0
  44. package/dist/adapters/RecordsTable.config-DnY_PByk.cjs +1 -0
  45. package/dist/adapters/RetentionCombinedChart.config-CObWpIId.cjs +1 -0
  46. package/dist/adapters/RetentionCombinedChart.config-DxPk1BaI.js +2 -0
  47. package/dist/adapters/RetentionHeatmap.config-CHZiVXVo.cjs +1 -0
  48. package/dist/adapters/RetentionHeatmap.config-Ckoiq5Jo.js +2 -0
  49. package/dist/adapters/SankeyChart.config-CVoAarnp.cjs +1 -0
  50. package/dist/adapters/SankeyChart.config-D2R8E5Ss.js +2 -0
  51. package/dist/adapters/ScatterChart.config-BE_J_t4r.js +2 -0
  52. package/dist/adapters/ScatterChart.config-DsVSbcSc.cjs +1 -0
  53. package/dist/adapters/SunburstChart.config-BLtPPPli.cjs +1 -0
  54. package/dist/adapters/SunburstChart.config-DrnmHxNQ.js +2 -0
  55. package/dist/adapters/TreeMapChart.config-4p3cVWIy.js +2 -0
  56. package/dist/adapters/TreeMapChart.config-DkRO8LYG.cjs +1 -0
  57. package/dist/adapters/WaterfallChart.config-CKi4zg3x.cjs +1 -0
  58. package/dist/adapters/WaterfallChart.config-DuUXmAyw.js +2 -0
  59. package/dist/adapters/{compiler-CBGD_4Et.js → compiler-BFLAXV7W.js} +1 -1
  60. package/dist/adapters/{compiler-BxZHh0UD.cjs → compiler-DG6dLFQU.cjs} +1 -1
  61. package/dist/adapters/core/index.cjs +1 -1
  62. package/dist/adapters/core/index.js +1 -1
  63. package/dist/adapters/{core-DAAnqPyN.js → core-BBtbwMwR.js} +2 -2
  64. package/dist/adapters/{core-CIGuwGuI.cjs → core-DnUv8WiY.cjs} +1 -1
  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-eA0VJDHj.js → handler-_xh4X1OO.js} +215 -95
  70. package/dist/adapters/{handler-BcYTw6zB.cjs → handler-l75Hbzv3.cjs} +9 -9
  71. package/dist/adapters/hono/index.cjs +1 -1
  72. package/dist/adapters/hono/index.js +4 -4
  73. package/dist/adapters/mcp-tools.cjs +1 -1
  74. package/dist/adapters/mcp-tools.js +2 -2
  75. package/dist/adapters/mcp-transport-BOfhj01O.js +730 -0
  76. package/dist/adapters/mcp-transport-Dl5bn6h4.cjs +42 -0
  77. package/dist/adapters/nextjs/index.cjs +1 -1
  78. package/dist/adapters/nextjs/index.js +5 -5
  79. package/dist/adapters/{openai-CYYjUG_3.js → openai-BJyU4kvE.js} +1 -1
  80. package/dist/adapters/{openai-Bw1j-OiP.cjs → openai-DH9MtcLA.cjs} +1 -1
  81. package/dist/adapters/{openai-BZ48ioYp.js → openai-DK_KWiI7.js} +1 -1
  82. package/dist/adapters/{openai-CLjyL5_J.cjs → openai-GO3M7Hwi.cjs} +1 -1
  83. package/dist/adapters/{utils-BagURNRb.js → utils-BhlkVCzZ.js} +38 -0
  84. package/dist/adapters/utils-C1JpSDOX.cjs +128 -0
  85. package/dist/adapters/utils.cjs +1 -1
  86. package/dist/adapters/utils.js +1 -1
  87. package/dist/cjs/client/components/PortletGroupCard.d.ts +3 -1
  88. package/dist/cjs/client/components/RowManagedLayout.d.ts +5 -2
  89. package/dist/cjs/client/components/charts/DotStripChart.config.d.ts +15 -0
  90. package/dist/cjs/client/components/charts/DotStripChart.d.ts +4 -0
  91. package/dist/cjs/client/components/charts/DotStripChart.helpers.d.ts +91 -0
  92. package/dist/cjs/client/components/dashboardPortletCard/cardStyles.d.ts +7 -3
  93. package/dist/cjs/client/components/rowManagedLayout/sections.d.ts +46 -0
  94. package/dist/cjs/client/icons/types.d.ts +1 -0
  95. package/dist/cjs/client/types.d.ts +6 -1
  96. package/dist/cli/index.cjs +4 -0
  97. package/dist/client/charts.js +12 -12
  98. package/dist/client/chunks/{DashboardEditModal-_ZDMwaGX.js → DashboardEditModal-B-0eV6vd.js} +878 -785
  99. package/dist/client/chunks/DashboardEditModal-B-0eV6vd.js.map +1 -0
  100. package/dist/client/chunks/DotStripChart-ChwsVeRU.js +408 -0
  101. package/dist/client/chunks/DotStripChart-ChwsVeRU.js.map +1 -0
  102. package/dist/client/chunks/{ProportionBarChart-qfpAWhIg.js → ProportionBarChart-D-Qt9nkF.js} +3 -3
  103. package/dist/client/chunks/{ProportionBarChart-qfpAWhIg.js.map → ProportionBarChart-D-Qt9nkF.js.map} +1 -1
  104. package/dist/client/chunks/{RecordsTable-KmJy94xN.js → RecordsTable-aG-QYXOH.js} +4 -4
  105. package/dist/client/chunks/{RecordsTable-KmJy94xN.js.map → RecordsTable-aG-QYXOH.js.map} +1 -1
  106. package/dist/client/chunks/{RetentionCombinedChart-C7X6aj97.js → RetentionCombinedChart-BRZ9w7ah.js} +3 -3
  107. package/dist/client/chunks/{RetentionCombinedChart-C7X6aj97.js.map → RetentionCombinedChart-BRZ9w7ah.js.map} +1 -1
  108. package/dist/client/chunks/{RetentionHeatmap-PpRpiqR_.js → RetentionHeatmap-LkTt89pK.js} +2 -2
  109. package/dist/client/chunks/{RetentionHeatmap-PpRpiqR_.js.map → RetentionHeatmap-LkTt89pK.js.map} +1 -1
  110. package/dist/client/chunks/{analysis-builder-DaqyOjLX.js → analysis-builder-DnDw164v.js} +9 -9
  111. package/dist/client/chunks/{analysis-builder-DaqyOjLX.js.map → analysis-builder-DnDw164v.js.map} +1 -1
  112. package/dist/client/chunks/{analysis-builder-shared-ow9KAHDP.js → analysis-builder-shared-D7eA0iW7.js} +9 -9
  113. package/dist/client/chunks/{analysis-builder-shared-ow9KAHDP.js.map → analysis-builder-shared-D7eA0iW7.js.map} +1 -1
  114. package/dist/client/chunks/{chart-activity-grid-DO82rrbW.js → chart-activity-grid-CJzxC18G.js} +40 -2
  115. package/dist/client/chunks/chart-activity-grid-CJzxC18G.js.map +1 -0
  116. package/dist/client/chunks/{chart-area-9SBeG0GM.js → chart-area-C66dgy84.js} +2 -2
  117. package/dist/client/chunks/{chart-area-9SBeG0GM.js.map → chart-area-C66dgy84.js.map} +1 -1
  118. package/dist/client/chunks/{chart-bar-tfgmLK2D.js → chart-bar-D9kiSOCT.js} +3 -3
  119. package/dist/client/chunks/{chart-bar-tfgmLK2D.js.map → chart-bar-D9kiSOCT.js.map} +1 -1
  120. package/dist/client/chunks/{chart-box-plot-BuYW6j6g.js → chart-box-plot-FsLIMisc.js} +2 -2
  121. package/dist/client/chunks/{chart-box-plot-BuYW6j6g.js.map → chart-box-plot-FsLIMisc.js.map} +1 -1
  122. package/dist/client/chunks/{chart-bubble-BNmonWqW.js → chart-bubble-BzyvrqKs.js} +2 -2
  123. package/dist/client/chunks/{chart-bubble-BNmonWqW.js.map → chart-bubble-BzyvrqKs.js.map} +1 -1
  124. package/dist/client/chunks/{chart-candlestick-BYeWNkKl.js → chart-candlestick-6lD35bLw.js} +2 -2
  125. package/dist/client/chunks/{chart-candlestick-BYeWNkKl.js.map → chart-candlestick-6lD35bLw.js.map} +1 -1
  126. package/dist/client/chunks/{chart-data-table-C_oHiK6N.js → chart-data-table-Cou9qOab.js} +248 -120
  127. package/dist/client/chunks/chart-data-table-Cou9qOab.js.map +1 -0
  128. package/dist/client/chunks/{chart-funnel-B_CWC3cL.js → chart-funnel-B0775aaT.js} +2 -2
  129. package/dist/client/chunks/{chart-funnel-B_CWC3cL.js.map → chart-funnel-B0775aaT.js.map} +1 -1
  130. package/dist/client/chunks/{chart-gauge-D7VxwPnx.js → chart-gauge-pf-2E8w9.js} +3 -3
  131. package/dist/client/chunks/{chart-gauge-D7VxwPnx.js.map → chart-gauge-pf-2E8w9.js.map} +1 -1
  132. package/dist/client/chunks/{chart-heat-map-q7Vf_dog.js → chart-heat-map-EzVGe6fl.js} +3 -3
  133. package/dist/client/chunks/{chart-heat-map-q7Vf_dog.js.map → chart-heat-map-EzVGe6fl.js.map} +1 -1
  134. package/dist/client/chunks/{chart-kpi-delta-PEuA3iGs.js → chart-kpi-delta-lfskDdx4.js} +3 -3
  135. package/dist/client/chunks/{chart-kpi-delta-PEuA3iGs.js.map → chart-kpi-delta-lfskDdx4.js.map} +1 -1
  136. package/dist/client/chunks/{chart-kpi-number-DlxrO6Pq.js → chart-kpi-number-BnsofbTf.js} +5 -5
  137. package/dist/client/chunks/{chart-kpi-number-DlxrO6Pq.js.map → chart-kpi-number-BnsofbTf.js.map} +1 -1
  138. package/dist/client/chunks/{chart-kpi-text-Cx6cJu2s.js → chart-kpi-text-U5EdmdkV.js} +3 -3
  139. package/dist/client/chunks/{chart-kpi-text-Cx6cJu2s.js.map → chart-kpi-text-U5EdmdkV.js.map} +1 -1
  140. package/dist/client/chunks/{chart-line-pDe25JzB.js → chart-line-IwXqPY80.js} +3 -3
  141. package/dist/client/chunks/{chart-line-pDe25JzB.js.map → chart-line-IwXqPY80.js.map} +1 -1
  142. package/dist/client/chunks/{chart-markdown-CRY15yp0.js → chart-markdown-BhLRzK_W.js} +3 -3
  143. package/dist/client/chunks/chart-markdown-BhLRzK_W.js.map +1 -0
  144. package/dist/client/chunks/{chart-measure-profile-DyQ-vvuC.js → chart-measure-profile-Bs4vhBJQ.js} +3 -3
  145. package/dist/client/chunks/{chart-measure-profile-DyQ-vvuC.js.map → chart-measure-profile-Bs4vhBJQ.js.map} +1 -1
  146. package/dist/client/chunks/{chart-pie-ZrnBycy1.js → chart-pie-LDJfDXfX.js} +3 -3
  147. package/dist/client/chunks/{chart-pie-ZrnBycy1.js.map → chart-pie-LDJfDXfX.js.map} +1 -1
  148. package/dist/client/chunks/{chart-radar-BXbnYMUJ.js → chart-radar-BZY6TP9m.js} +3 -3
  149. package/dist/client/chunks/{chart-radar-BXbnYMUJ.js.map → chart-radar-BZY6TP9m.js.map} +1 -1
  150. package/dist/client/chunks/{chart-radial-bar-CYxH3ryh.js → chart-radial-bar-aga05X7h.js} +3 -3
  151. package/dist/client/chunks/{chart-radial-bar-CYxH3ryh.js.map → chart-radial-bar-aga05X7h.js.map} +1 -1
  152. package/dist/client/chunks/{chart-sankey-C9R_TDDh.js → chart-sankey-MRCoWFd4.js} +2 -2
  153. package/dist/client/chunks/{chart-sankey-C9R_TDDh.js.map → chart-sankey-MRCoWFd4.js.map} +1 -1
  154. package/dist/client/chunks/{chart-scatter-DrwRkzzl.js → chart-scatter-DP-nn9hH.js} +3 -3
  155. package/dist/client/chunks/{chart-scatter-DrwRkzzl.js.map → chart-scatter-DP-nn9hH.js.map} +1 -1
  156. package/dist/client/chunks/{chart-sunburst-Bs1yqIPp.js → chart-sunburst-DE4EX7zi.js} +3 -3
  157. package/dist/client/chunks/{chart-sunburst-Bs1yqIPp.js.map → chart-sunburst-DE4EX7zi.js.map} +1 -1
  158. package/dist/client/chunks/{chart-tree-map-BNjHhhVq.js → chart-tree-map-C3O6uQcP.js} +3 -3
  159. package/dist/client/chunks/{chart-tree-map-BNjHhhVq.js.map → chart-tree-map-C3O6uQcP.js.map} +1 -1
  160. package/dist/client/chunks/{chart-waterfall-CyoC0uLT.js → chart-waterfall-DU2Fg_7P.js} +3 -3
  161. package/dist/client/chunks/{chart-waterfall-CyoC0uLT.js.map → chart-waterfall-DU2Fg_7P.js.map} +1 -1
  162. package/dist/client/chunks/{charts-core-DCQ7od_L.js → charts-core-DnirPG1F.js} +2 -2
  163. package/dist/client/chunks/{charts-core-DCQ7od_L.js.map → charts-core-DnirPG1F.js.map} +1 -1
  164. package/dist/client/chunks/charts-loader-D_yEsIpH.js +87 -0
  165. package/dist/client/chunks/charts-loader-D_yEsIpH.js.map +1 -0
  166. package/dist/client/chunks/{nl-NL-CEdoCz6Q.js → nl-NL-B9VnaVAm.js} +39 -1
  167. package/dist/client/chunks/nl-NL-B9VnaVAm.js.map +1 -0
  168. package/dist/client/chunks/{schema-visualization-DfXxFBIY.js → schema-visualization-o1zzuMQy.js} +3 -3
  169. package/dist/client/chunks/{schema-visualization-DfXxFBIY.js.map → schema-visualization-o1zzuMQy.js.map} +1 -1
  170. package/dist/client/chunks/{useDirtyStateTracking-BFJHiiVK.js → useDirtyStateTracking-DTYbmRBn.js} +4 -4
  171. package/dist/client/chunks/{useDirtyStateTracking-BFJHiiVK.js.map → useDirtyStateTracking-DTYbmRBn.js.map} +1 -1
  172. package/dist/client/chunks/{useExplainAI-_C4WQE5I.js → useExplainAI-MuC9jBn-.js} +4 -4
  173. package/dist/client/chunks/{useExplainAI-_C4WQE5I.js.map → useExplainAI-MuC9jBn-.js.map} +1 -1
  174. package/dist/client/chunks/{vendor-Gb3lH0cc.js → vendor-XQT9APIq.js} +2 -2
  175. package/dist/client/chunks/{vendor-Gb3lH0cc.js.map → vendor-XQT9APIq.js.map} +1 -1
  176. package/dist/client/components/PortletGroupCard.d.ts +3 -1
  177. package/dist/client/components/RowManagedLayout.d.ts +5 -2
  178. package/dist/client/components/charts/DotStripChart.config.d.ts +15 -0
  179. package/dist/client/components/charts/DotStripChart.d.ts +4 -0
  180. package/dist/client/components/charts/DotStripChart.helpers.d.ts +91 -0
  181. package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +7 -3
  182. package/dist/client/components/rowManagedLayout/sections.d.ts +46 -0
  183. package/dist/client/components.js +1 -1
  184. package/dist/client/hooks.js +3 -3
  185. package/dist/client/icons/types.d.ts +1 -0
  186. package/dist/client/icons.js +1 -1
  187. package/dist/client/index.js +13 -13
  188. package/dist/client/providers.js +1 -1
  189. package/dist/client/schema.js +1 -1
  190. package/dist/client/styles.css +1 -1
  191. package/dist/client/types.d.ts +6 -1
  192. package/dist/client/utils.js +4 -4
  193. package/dist/client-bundle-stats.html +1 -1
  194. package/dist/mcp-app/mcp-app.html +99 -99
  195. package/dist/server/index.cjs +29 -29
  196. package/dist/server/index.js +312 -154
  197. package/package.json +1 -1
  198. package/dist/adapters/ActivityGridChart.config-DXUUgx0N.cjs +0 -1
  199. package/dist/adapters/ActivityGridChart.config-Dyozu3VW.js +0 -2
  200. package/dist/adapters/AreaChart.config-Di5odBXp.cjs +0 -1
  201. package/dist/adapters/AreaChart.config-KEaXP_4K.js +0 -2
  202. package/dist/adapters/BarChart.config-B-hBHykR.cjs +0 -1
  203. package/dist/adapters/BarChart.config-C5sqbn0A.js +0 -2
  204. package/dist/adapters/BoxPlotChart.config-B1R4Br7L.js +0 -2
  205. package/dist/adapters/BoxPlotChart.config-C82Fhd3c.cjs +0 -1
  206. package/dist/adapters/BubbleChart.config-CoBxmmfp.js +0 -2
  207. package/dist/adapters/BubbleChart.config-DfOnNjL-.cjs +0 -1
  208. package/dist/adapters/CandlestickChart.config-C5ggV_3j.cjs +0 -1
  209. package/dist/adapters/CandlestickChart.config-ZaJpWVuL.js +0 -2
  210. package/dist/adapters/DataTable.config-Cx2_ACdY.cjs +0 -1
  211. package/dist/adapters/DataTable.config-DkAgD-iz.js +0 -2
  212. package/dist/adapters/FunnelChart.config-CvzcECUB.js +0 -2
  213. package/dist/adapters/FunnelChart.config-DVH7IFnb.cjs +0 -1
  214. package/dist/adapters/GaugeChart.config-Csx8rt8o.cjs +0 -1
  215. package/dist/adapters/GaugeChart.config-DEmrNgMa.js +0 -2
  216. package/dist/adapters/HeatMapChart.config-BfD_dpP7.js +0 -2
  217. package/dist/adapters/HeatMapChart.config-D_jlyPJL.cjs +0 -1
  218. package/dist/adapters/KpiDelta.config-CVBdUL_n.cjs +0 -1
  219. package/dist/adapters/KpiDelta.config-D4dCXOxl.js +0 -2
  220. package/dist/adapters/KpiNumber.config-BK5pgIKz.cjs +0 -1
  221. package/dist/adapters/KpiNumber.config-D6XqjZrm.js +0 -2
  222. package/dist/adapters/KpiText.config-ChphMwG5.js +0 -2
  223. package/dist/adapters/KpiText.config-fO1wc6FH.cjs +0 -1
  224. package/dist/adapters/LineChart.config-CXJrgz1s.js +0 -2
  225. package/dist/adapters/LineChart.config-Cg_h-SiJ.cjs +0 -1
  226. package/dist/adapters/MarkdownChart.config-ByPjX-4O.cjs +0 -1
  227. package/dist/adapters/MarkdownChart.config-Df2yY9AT.js +0 -2
  228. package/dist/adapters/MeasureProfileChart.config-BBWGIteF.cjs +0 -1
  229. package/dist/adapters/MeasureProfileChart.config-C9OFbN9Z.js +0 -2
  230. package/dist/adapters/PieChart.config-C6jJj6xm.js +0 -2
  231. package/dist/adapters/PieChart.config-CmCw_8eN.cjs +0 -1
  232. package/dist/adapters/ProportionBarChart.config-B9NEyFEe.js +0 -2
  233. package/dist/adapters/ProportionBarChart.config-C3GAVPWn.cjs +0 -1
  234. package/dist/adapters/RadarChart.config-5AMwEqUJ.cjs +0 -1
  235. package/dist/adapters/RadarChart.config-Ct_b7IM5.js +0 -2
  236. package/dist/adapters/RadialBarChart.config-Bp-Sl0cm.js +0 -2
  237. package/dist/adapters/RadialBarChart.config-D14yoexI.cjs +0 -1
  238. package/dist/adapters/RecordsTable.config-D2-qmG06.cjs +0 -1
  239. package/dist/adapters/RecordsTable.config-DIwoqZCU.js +0 -2
  240. package/dist/adapters/RetentionCombinedChart.config-BWHipi5M.cjs +0 -1
  241. package/dist/adapters/RetentionCombinedChart.config-D40UgTcl.js +0 -2
  242. package/dist/adapters/RetentionHeatmap.config-GlnSLrjn.js +0 -2
  243. package/dist/adapters/RetentionHeatmap.config-MlhZf26c.cjs +0 -1
  244. package/dist/adapters/SankeyChart.config-Bf1_NHiv.js +0 -2
  245. package/dist/adapters/SankeyChart.config-BoYf6BFE.cjs +0 -1
  246. package/dist/adapters/ScatterChart.config-CV2rdGJp.js +0 -2
  247. package/dist/adapters/ScatterChart.config-DywduGF3.cjs +0 -1
  248. package/dist/adapters/SunburstChart.config-CrqiE1UZ.js +0 -2
  249. package/dist/adapters/SunburstChart.config-D5tbF_GJ.cjs +0 -1
  250. package/dist/adapters/TreeMapChart.config-BJ8HnZU0.cjs +0 -1
  251. package/dist/adapters/TreeMapChart.config-DxgIqIIj.js +0 -2
  252. package/dist/adapters/WaterfallChart.config-Cns8fLFu.js +0 -2
  253. package/dist/adapters/WaterfallChart.config-D_kdL9SN.cjs +0 -1
  254. package/dist/adapters/mcp-transport-BpG44Fvn.js +0 -730
  255. package/dist/adapters/mcp-transport-CDxZXpc-.cjs +0 -42
  256. package/dist/adapters/utils-BiKIg2tk.cjs +0 -128
  257. package/dist/client/chunks/DashboardEditModal-_ZDMwaGX.js.map +0 -1
  258. package/dist/client/chunks/chart-activity-grid-DO82rrbW.js.map +0 -1
  259. package/dist/client/chunks/chart-data-table-C_oHiK6N.js.map +0 -1
  260. package/dist/client/chunks/chart-markdown-CRY15yp0.js.map +0 -1
  261. package/dist/client/chunks/charts-loader-Bya_zDIA.js +0 -86
  262. package/dist/client/chunks/charts-loader-Bya_zDIA.js.map +0 -1
  263. package/dist/client/chunks/nl-NL-CEdoCz6Q.js.map +0 -1
@@ -1,17 +1,17 @@
1
- import { a as e, n as t, o as n, r, s as i, u as a } from "./vendor-Gb3lH0cc.js";
1
+ import { a as e, n as t, o as n, r, s as i, u as a } from "./vendor-XQT9APIq.js";
2
2
  import { n as o, t as s } from "./providers-DwQCKdGW.js";
3
- import { A as c, C as l, F as u, I as d, M as f, P as p, ct as m, gt as h, j as g, v as _, y as v } from "./chart-data-table-C_oHiK6N.js";
4
- import { r as y } from "./chart-sankey-C9R_TDDh.js";
3
+ import { A as c, C as l, F as u, I as d, M as f, P as p, ct as m, gt as h, j as g, v as _, y as v } from "./chart-data-table-Cou9qOab.js";
4
+ import { r as y } from "./chart-sankey-MRCoWFd4.js";
5
5
  import { a as b, l as x, s as S } from "./retention-ChW9jYdy.js";
6
- import { A as C, D as w, E as T, L as E, S as D, T as O, a as k, d as A, i as j, l as M, n as N, r as P, s as ee, t as te, u as F, w as I, x as ne } from "./useDirtyStateTracking-BFJHiiVK.js";
7
- import { B as L, F as R, R as z } from "./chart-activity-grid-DO82rrbW.js";
8
- import { a as B, t as re } from "./charts-loader-Bya_zDIA.js";
9
- import { H as ie } from "./chart-area-9SBeG0GM.js";
6
+ import { A as C, D as w, E as T, L as E, S as D, T as O, a as k, d as A, i as j, l as M, n as N, r as P, s as ee, t as te, u as F, w as I, x as ne } from "./useDirtyStateTracking-DTYbmRBn.js";
7
+ import { B as L, F as R, R as z } from "./chart-activity-grid-CJzxC18G.js";
8
+ import { a as B, t as re } from "./charts-loader-D_yEsIpH.js";
9
+ import { H as ie } from "./chart-area-C66dgy84.js";
10
10
  import { a as ae, t as oe } from "./syntaxHighlighting-Cm43as8i.js";
11
- import { n as se, t as ce } from "./charts-core-DCQ7od_L.js";
12
- import { n as le } from "./chart-gauge-D7VxwPnx.js";
13
- import { t as ue } from "./chart-markdown-CRY15yp0.js";
14
- import de, { Component as fe, Fragment as pe, Suspense as me, createContext as V, forwardRef as he, lazy as ge, memo as H, startTransition as U, useCallback as W, useContext as _e, useEffect as G, useImperativeHandle as ve, useMemo as K, useRef as q, useState as J } from "react";
11
+ import { n as se, t as ce } from "./charts-core-DnirPG1F.js";
12
+ import { n as le } from "./chart-gauge-pf-2E8w9.js";
13
+ import { t as ue } from "./chart-markdown-BhLRzK_W.js";
14
+ import de, { Component as fe, Fragment as pe, Suspense as V, createContext as H, forwardRef as me, lazy as he, memo as U, startTransition as ge, useCallback as W, useContext as _e, useEffect as G, useImperativeHandle as ve, useMemo as K, useRef as q, useState as J } from "react";
15
15
  import { Fragment as Y, jsx as X, jsxs as Z } from "react/jsx-runtime";
16
16
  import { createPortal as ye } from "react-dom";
17
17
  import be, { verticalCompactor as xe } from "react-grid-layout";
@@ -2334,7 +2334,7 @@ function Sn(e) {
2334
2334
  }
2335
2335
  //#endregion
2336
2336
  //#region src/client/components/AnalyticsPortlet.tsx
2337
- var Cn = de.memo(he(({ query: e, chartType: t, chartConfig: n, displayConfig: r, dashboardFilters: i, dashboardFilterMapping: s, eagerLoad: c = !1, isVisible: l, height: u = 300, title: d, colorPalette: f, loadingComponent: p, onDebugDataReady: m }, g) => {
2337
+ var Cn = de.memo(me(({ query: e, chartType: t, chartConfig: n, displayConfig: r, dashboardFilters: i, dashboardFilterMapping: s, eagerLoad: c = !1, isVisible: l, height: u = 300, title: d, colorPalette: f, loadingComponent: p, onDebugDataReady: m }, g) => {
2338
2338
  let _ = o(), { ref: v, inView: y } = a({
2339
2339
  root: _,
2340
2340
  rootMargin: "500px",
@@ -2386,7 +2386,7 @@ var Cn = de.memo(he(({ query: e, chartType: t, chartConfig: n, displayConfig: r,
2386
2386
  G(() => {
2387
2387
  P(ae ?? null);
2388
2388
  }, [ae]), ve(g, () => ({ refresh: fe }), [fe]);
2389
- let me = K(() => z ? {
2389
+ let V = K(() => z ? {
2390
2390
  ...z,
2391
2391
  total: B?.totalCount?.()
2392
2392
  } : void 0, [z, B]);
@@ -2414,9 +2414,9 @@ var Cn = de.memo(he(({ query: e, chartType: t, chartConfig: n, displayConfig: r,
2414
2414
  drillPath: F.drillPath,
2415
2415
  currentChartConfig: F.currentChartConfig
2416
2416
  });
2417
- let V = !S && x.dropZones.some((e) => e.mandatory === !0), he = qt({
2417
+ let H = !S && x.dropZones.some((e) => e.mandatory === !0), me = qt({
2418
2418
  hasChartConfig: !!n,
2419
- hasMandatoryFields: V,
2419
+ hasMandatoryFields: H,
2420
2420
  shouldSkipQuery: S,
2421
2421
  eagerLoad: c,
2422
2422
  isVisible: b,
@@ -2437,7 +2437,7 @@ var Cn = de.memo(he(({ query: e, chartType: t, chartConfig: n, displayConfig: r,
2437
2437
  flowChartData: se,
2438
2438
  retentionChartData: ce
2439
2439
  });
2440
- return he === "chart" ? /* @__PURE__ */ X("div", {
2440
+ return me === "chart" ? /* @__PURE__ */ X("div", {
2441
2441
  ref: v,
2442
2442
  className: "dc:w-full dc:h-full dc:relative",
2443
2443
  children: /* @__PURE__ */ X(gn, {
@@ -2458,7 +2458,7 @@ var Cn = de.memo(he(({ query: e, chartType: t, chartConfig: n, displayConfig: r,
2458
2458
  flowChartData: se,
2459
2459
  retentionChartData: ce,
2460
2460
  activeQuery: R,
2461
- pagination: me,
2461
+ pagination: V,
2462
2462
  droppedMembers: te,
2463
2463
  drill: F,
2464
2464
  isDrillEnabled: !k && !A && !j && !M && F.drillEnabled,
@@ -2466,7 +2466,7 @@ var Cn = de.memo(he(({ query: e, chartType: t, chartConfig: n, displayConfig: r,
2466
2466
  onNavigateToLevel: L
2467
2467
  })
2468
2468
  }) : /* @__PURE__ */ X(Sn, {
2469
- kind: he,
2469
+ kind: me,
2470
2470
  inViewRef: v,
2471
2471
  height: u,
2472
2472
  loadingComponent: p,
@@ -2595,7 +2595,7 @@ var On = null;
2595
2595
  function kn() {
2596
2596
  return On ||= Dn(), On;
2597
2597
  }
2598
- var An = V(null);
2598
+ var An = H(null);
2599
2599
  function jn({ children: e, initialEditMode: t }) {
2600
2600
  let n = q(null);
2601
2601
  return n.current ||= Dn({ initialEditMode: t }), /* @__PURE__ */ X(An.Provider, {
@@ -3443,12 +3443,19 @@ function pr(e) {
3443
3443
  isTransparent: !0,
3444
3444
  shouldHideHeader: !0
3445
3445
  };
3446
- let s = t === "markdown", c = r !== "grid" && s && (n?.autoHeight ?? !0), l = s && !!n?.transparentBackground;
3446
+ let s = t === "markdown", c = r !== "grid" && s && (n?.autoHeight ?? !0), l = s ? (n?.hideHeader ?? !0) || !!n?.transparentBackground || !a : n?.hideHeader ?? !1;
3447
+ if (o === "sectionChild") return {
3448
+ isMarkdownAutoHeight: c,
3449
+ isTransparentContent: !1,
3450
+ isTransparent: !0,
3451
+ shouldHideHeader: l
3452
+ };
3453
+ let u = s && !!n?.transparentBackground;
3447
3454
  return {
3448
3455
  isMarkdownAutoHeight: c,
3449
- isTransparentContent: l,
3450
- isTransparent: l && !i,
3451
- shouldHideHeader: s ? (n?.hideHeader ?? !0) || !!n?.transparentBackground || !a : n?.hideHeader ?? !1
3456
+ isTransparentContent: u,
3457
+ isTransparent: u && !i,
3458
+ shouldHideHeader: l
3452
3459
  };
3453
3460
  }
3454
3461
  function mr(e) {
@@ -3458,22 +3465,24 @@ function mr(e) {
3458
3465
  r ? "dc:cursor-pointer" : "",
3459
3466
  i
3460
3467
  ].filter(Boolean).join(" ") : [
3468
+ a === "sectionChild" ? "dc-portlet-section-child" : "",
3461
3469
  t ? "dc:flex dc:flex-col dc:transition-all" : "bg-dc-surface dc:border dc:rounded-lg dc:flex dc:flex-col dc:transition-all",
3462
3470
  n ? "" : "dc:h-full",
3463
3471
  r ? "dc:cursor-pointer dc:relative" : "",
3464
3472
  i
3465
3473
  ].filter(Boolean).join(" ");
3466
3474
  }
3467
- function hr(e, t) {
3475
+ function hr(e, t, n) {
3468
3476
  return [
3469
- "dc:flex dc:items-center dc:justify-between dc:px-3 dc:py-1.5 dc:md:px-4 dc:md:py-1 dc:border-b border-dc-border dc:shrink-0 bg-dc-surface-secondary dc:rounded-t-lg portlet-drag-handle",
3477
+ "dc:flex dc:items-center dc:justify-between dc:px-3 dc:md:px-4 dc:shrink-0 portlet-drag-handle",
3478
+ n === "sectionChild" ? "dc:py-3 dc:md:py-3" : "dc:py-1.5 dc:md:py-1 dc:border-b border-dc-border bg-dc-surface-secondary dc:rounded-t-lg",
3470
3479
  e ? "dc:cursor-move" : "dc:cursor-default",
3471
3480
  t
3472
3481
  ].filter(Boolean).join(" ");
3473
3482
  }
3474
3483
  function gr(e) {
3475
3484
  let { isTransparent: t, isInSelectionMode: n, hasSelectedFilter: r, containerStyle: i, variant: a } = e, o = n && r;
3476
- return a === "groupChild" ? {
3485
+ return a === "groupChild" || a === "sectionChild" ? {
3477
3486
  boxShadow: o ? "inset 0 0 0 2px var(--dc-primary)" : "none",
3478
3487
  borderWidth: 0,
3479
3488
  backgroundColor: o ? "color-mix(in srgb, var(--dc-primary) 5%, transparent)" : "transparent",
@@ -3493,7 +3502,7 @@ function gr(e) {
3493
3502
  var _r = de.memo(function({ isTransparent: e, setChartContainerRef: t, setPortletComponentRef: n, renderQuery: r, renderChartType: i, renderChartConfig: a, renderDisplayConfig: o, dashboardFilters: s, dashboardFilterMapping: c, eagerLoad: l, title: u, isMarkdownAutoHeight: d, colorPalette: f, loadingComponent: p, onDebugDataReady: m }) {
3494
3503
  return /* @__PURE__ */ X("div", {
3495
3504
  ref: t,
3496
- className: `dc:flex-1 dc:min-h-0 dc:flex dc:flex-col${e ? "" : " dc:px-2 dc:py-3 dc:md:px-4 dc:md:py-4"}`,
3505
+ className: `dc-portlet-card-body dc:flex-1 dc:min-h-0 dc:flex dc:flex-col${e ? "" : " dc:px-2 dc:py-3 dc:md:px-4 dc:md:py-4"}`,
3497
3506
  children: /* @__PURE__ */ X(Cn, {
3498
3507
  ref: n,
3499
3508
  query: r,
@@ -3539,7 +3548,7 @@ var _r = de.memo(function({ isTransparent: e, setChartContainerRef: t, setPortle
3539
3548
  isInSelectionMode: I,
3540
3549
  extraClassName: s?.className,
3541
3550
  variant: l
3542
- }), R = hr(b, c?.className), { onClick: z, className: B, style: re, ...ie } = s ?? {}, { onClick: ae, className: oe, style: se, ...ce } = c ?? {}, le = W((t) => {
3551
+ }), R = hr(b, c?.className, l), { onClick: z, className: B, style: re, ...ie } = s ?? {}, { onClick: ae, className: oe, style: se, ...ce } = c ?? {}, le = W((t) => {
3543
3552
  D(e.id, t);
3544
3553
  }, [e.id, D]), ue = W((t) => {
3545
3554
  u(e.id, t);
@@ -3629,20 +3638,73 @@ var _r = de.memo(function({ isTransparent: e, setChartContainerRef: t, setPortle
3629
3638
  })
3630
3639
  ]
3631
3640
  });
3632
- }, Qn), yr = [
3641
+ }, Qn);
3642
+ //#endregion
3643
+ //#region src/client/components/rowManagedLayout/sections.ts
3644
+ function yr(e) {
3645
+ let t = Ke(e), n = t.analysisConfig.charts[t.analysisConfig.analysisType];
3646
+ return n?.chartType === "markdown" && (n.displayConfig?.autoHeight ?? !0);
3647
+ }
3648
+ function br(e, t) {
3649
+ return e.columns.length > 0 && e.columns.every((e) => {
3650
+ if (e.groupId) return !1;
3651
+ let n = e.portletId ? t.get(e.portletId) : void 0;
3652
+ return !!n && yr(n);
3653
+ });
3654
+ }
3655
+ function xr(e, t, n) {
3656
+ if (e.columns.length !== 1) return !1;
3657
+ let [r] = e.columns;
3658
+ return r.groupId || !r.portletId || Math.abs(r.w - n) > 1e-6 ? !1 : br(e, t);
3659
+ }
3660
+ var Sr = /^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/;
3661
+ function Cr(e) {
3662
+ let t = Ke(e), n = t.analysisConfig.charts[t.analysisConfig.analysisType]?.displayConfig;
3663
+ if (n?.accentBorder === "bottom") return !0;
3664
+ let r = n?.content;
3665
+ if (typeof r != "string") return !1;
3666
+ let i = r.trimEnd().split("\n");
3667
+ return Sr.test(i[i.length - 1] ?? "");
3668
+ }
3669
+ function wr(e, t, n) {
3670
+ let r = [], i = 0;
3671
+ for (; i < e.length;) {
3672
+ if (!xr(e[i], t, n)) {
3673
+ r.push({
3674
+ kind: "loose",
3675
+ rowIndex: i
3676
+ }), i += 1;
3677
+ continue;
3678
+ }
3679
+ let a = i, o = [];
3680
+ for (i += 1; i < e.length && !xr(e[i], t, n);) o.push(i), i += 1;
3681
+ r.push(o.length === 0 ? {
3682
+ kind: "loose",
3683
+ rowIndex: a
3684
+ } : {
3685
+ kind: "section",
3686
+ headerRowIndex: a,
3687
+ bodyRowIndices: o
3688
+ });
3689
+ }
3690
+ return r;
3691
+ }
3692
+ //#endregion
3693
+ //#region src/client/components/RowManagedLayout.tsx
3694
+ var Tr = [
3633
3695
  "top",
3634
3696
  "right",
3635
3697
  "bottom",
3636
3698
  "left"
3637
- ], br = 16;
3638
- function xr({ rows: e, portlets: t, groups: n = [], gridSettings: r, gridWidth: i, canEdit: a, isDragging: o, onRowResize: s, onColumnResize: c, onPortletDragStart: l, onPortletDragEnd: u, onRowDrop: d, onNewRowDrop: f, onSnapDrop: p, draggingPortletId: m, draggingGroupId: h, renderPortlet: g, renderGroup: _ }) {
3699
+ ], Er = 16;
3700
+ function Dr({ rows: e, portlets: t, groups: n = [], gridSettings: r, gridWidth: i, canEdit: a, isDragging: o, onRowResize: s, onColumnResize: c, onPortletDragStart: l, onPortletDragEnd: u, onRowDrop: d, onNewRowDrop: f, onSnapDrop: p, draggingPortletId: m, draggingGroupId: h, renderPortlet: g, renderGroup: _ }) {
3639
3701
  let v = new Map(t.map((e) => [e.id, e])), y = new Map(n.map((e) => [e.id, e])), [b, x] = J(null), S = (e) => {
3640
3702
  x(e);
3641
3703
  }, C = o || b !== null, w = W((e) => {
3642
3704
  l(parseInt(e.currentTarget.dataset.rowIndex || "0", 10), parseInt(e.currentTarget.dataset.columnIndex || "0", 10), e.currentTarget.dataset.portletId || "", e, e.currentTarget.dataset.groupId || void 0);
3643
3705
  }, [l]), T = W(() => {
3644
3706
  S(null), u();
3645
- }, [u]), E = W((e) => !a || !p || !o || h || m === e ? null : yr.map((t) => {
3707
+ }, [u]), E = W((e) => !a || !p || !o || h || m === e ? null : Tr.map((t) => {
3646
3708
  let n = `snap-${e}-${t}`, r = b === n;
3647
3709
  return /* @__PURE__ */ Z(pe, { children: [/* @__PURE__ */ X("div", {
3648
3710
  "data-snap-edge": t,
@@ -3663,14 +3725,96 @@ function xr({ rows: e, portlets: t, groups: n = [], gridSettings: r, gridWidth:
3663
3725
  m,
3664
3726
  o,
3665
3727
  p
3666
- ]), D = b === "row-insert-0", O = b === "row-bottom";
3728
+ ]), D = a ? null : wr(e, v, r.cols), O = (t) => {
3729
+ let n = e[t]?.columns[0]?.portletId, r = n ? v.get(n) : void 0;
3730
+ return !!r && Cr(r);
3731
+ }, k = (e, t, n) => {
3732
+ let o = br(e, v), l = o ? void 0 : e.h * r.rowHeight, u = i || r.cols * r.rowHeight, p = b === `row-${t}-insert-0` ? Er : 0, x = b === `row-${t}-insert-${e.columns.length}` ? Er : 0, C = (u - (e.columns.length - 1) * Er - p - x) / r.cols;
3733
+ return /* @__PURE__ */ Z("div", {
3734
+ className: "dc-row-layout-row-wrapper",
3735
+ children: [
3736
+ /* @__PURE__ */ X("div", {
3737
+ className: "dc-row-layout-row",
3738
+ style: {
3739
+ height: l ?? "auto",
3740
+ paddingLeft: p,
3741
+ paddingRight: x
3742
+ },
3743
+ children: e.columns.map((r, i) => {
3744
+ let o = r.groupId ? y.get(r.groupId) : void 0, s = !o && r.portletId ? v.get(r.portletId) : void 0;
3745
+ if (!o && !s) return null;
3746
+ let l = o ? o.id : s.id, u = r.w * C;
3747
+ return /* @__PURE__ */ Z("div", {
3748
+ className: `dc-row-layout-column-wrapper dc-row-layout-column${(o ? h === o.id : m === s.id) ? " dc-row-layout-column-dragging" : ""}`,
3749
+ draggable: a,
3750
+ "data-row-index": t.toString(),
3751
+ "data-column-index": i.toString(),
3752
+ "data-portlet-id": s?.id,
3753
+ "data-group-id": o?.id,
3754
+ onDragStart: w,
3755
+ onDragEnd: T,
3756
+ style: {
3757
+ flex: `0 0 ${u}px`,
3758
+ maxWidth: `${u}px`
3759
+ },
3760
+ children: [o ? _?.(o, E, n) : /* @__PURE__ */ Z(Y, { children: [g(s, void 0, void 0, n ? "sectionChild" : "standalone"), E(s.id)] }), i < e.columns.length - 1 && /* @__PURE__ */ X("div", {
3761
+ className: `dc-column-resize-handle dc-split-handle${b === `row-${t}-insert-${i + 1}` ? " dc-drop-zone-active" : ""}`,
3762
+ onMouseDown: (e) => c(t, i, e),
3763
+ onDragOver: (e) => {
3764
+ a && (e.preventDefault(), S(`row-${t}-insert-${i + 1}`));
3765
+ },
3766
+ onDragLeave: () => S(null),
3767
+ onDrop: (e) => {
3768
+ a && (e.preventDefault(), e.stopPropagation(), S(null), d(t, i + 1));
3769
+ }
3770
+ })]
3771
+ }, l);
3772
+ })
3773
+ }),
3774
+ a && /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X("div", {
3775
+ className: `dc-row-edge-drop dc-row-edge-drop-left dc-split-handle${b === `row-${t}-insert-0` ? " dc-drop-zone-active" : ""}`,
3776
+ onDragOver: (e) => {
3777
+ e.preventDefault(), S(`row-${t}-insert-0`);
3778
+ },
3779
+ onDragLeave: () => {
3780
+ S(null);
3781
+ },
3782
+ onDrop: (e) => {
3783
+ e.preventDefault(), S(null), d(t, 0);
3784
+ }
3785
+ }), /* @__PURE__ */ X("div", {
3786
+ className: `dc-row-edge-drop dc-row-edge-drop-right dc-split-handle${b === `row-${t}-insert-${e.columns.length}` ? " dc-drop-zone-active" : ""}`,
3787
+ onDragOver: (n) => {
3788
+ n.preventDefault(), S(`row-${t}-insert-${e.columns.length}`);
3789
+ },
3790
+ onDragLeave: () => {
3791
+ S(null);
3792
+ },
3793
+ onDrop: (n) => {
3794
+ n.preventDefault(), S(null), d(t, e.columns.length);
3795
+ }
3796
+ })] }),
3797
+ a && /* @__PURE__ */ X("div", {
3798
+ className: `dc-row-resize-handle dc-split-handle${o ? " dc-row-resize-handle-drop-only" : ""}${b === `row-insert-${t + 1}` ? " dc-drop-zone-active" : ""}`,
3799
+ onMouseDown: o ? void 0 : (e) => s(t, e),
3800
+ onDragOver: (e) => {
3801
+ e.preventDefault(), S(`row-insert-${t + 1}`);
3802
+ },
3803
+ onDragLeave: () => S(null),
3804
+ onDrop: (e) => {
3805
+ e.preventDefault(), S(null), f(t + 1);
3806
+ }
3807
+ })
3808
+ ]
3809
+ }, e.id);
3810
+ }, A = b === "row-insert-0", j = b === "row-bottom";
3667
3811
  return /* @__PURE__ */ Z("div", {
3668
3812
  className: `dc-row-layout${a ? " dc-row-layout-editable" : ""}${C ? " dc-row-layout-dragging" : ""}`,
3669
3813
  style: {
3670
3814
  "--dc-row-gap": "24px",
3671
- "--dc-column-gap": `${br}px`,
3672
- "--dc-top-drop-space": D ? "24px" : "0px",
3673
- "--dc-bottom-drop-space": O ? "24px" : "0px"
3815
+ "--dc-column-gap": `${Er}px`,
3816
+ "--dc-top-drop-space": A ? "24px" : "0px",
3817
+ "--dc-bottom-drop-space": j ? "24px" : "0px"
3674
3818
  },
3675
3819
  children: [
3676
3820
  a && /* @__PURE__ */ X("div", {
@@ -3683,92 +3827,10 @@ function xr({ rows: e, portlets: t, groups: n = [], gridSettings: r, gridWidth:
3683
3827
  e.preventDefault(), S(null), f(0);
3684
3828
  }
3685
3829
  }),
3686
- e.map((e, t) => {
3687
- let n = e.columns.length > 0 && e.columns.every((e) => {
3688
- if (e.groupId) return !1;
3689
- let t = e.portletId ? v.get(e.portletId) : void 0;
3690
- if (!t) return !1;
3691
- let n = Ke(t), r = n.analysisConfig.charts[n.analysisConfig.analysisType];
3692
- return r?.chartType === "markdown" && (r.displayConfig?.autoHeight ?? !0);
3693
- }), o = n ? void 0 : e.h * r.rowHeight, l = i || r.cols * r.rowHeight, u = b === `row-${t}-insert-0` ? br : 0, p = b === `row-${t}-insert-${e.columns.length}` ? br : 0, x = (l - (e.columns.length - 1) * br - u - p) / r.cols;
3694
- return /* @__PURE__ */ Z("div", {
3695
- className: "dc-row-layout-row-wrapper",
3696
- children: [
3697
- /* @__PURE__ */ X("div", {
3698
- className: "dc-row-layout-row",
3699
- style: {
3700
- height: o ?? "auto",
3701
- paddingLeft: u,
3702
- paddingRight: p
3703
- },
3704
- children: e.columns.map((n, r) => {
3705
- let i = n.groupId ? y.get(n.groupId) : void 0, o = !i && n.portletId ? v.get(n.portletId) : void 0;
3706
- if (!i && !o) return null;
3707
- let s = i ? i.id : o.id, l = n.w * x;
3708
- return /* @__PURE__ */ Z("div", {
3709
- className: `dc-row-layout-column-wrapper dc-row-layout-column${(i ? h === i.id : m === o.id) ? " dc-row-layout-column-dragging" : ""}`,
3710
- draggable: a,
3711
- "data-row-index": t.toString(),
3712
- "data-column-index": r.toString(),
3713
- "data-portlet-id": o?.id,
3714
- "data-group-id": i?.id,
3715
- onDragStart: w,
3716
- onDragEnd: T,
3717
- style: {
3718
- flex: `0 0 ${l}px`,
3719
- maxWidth: `${l}px`
3720
- },
3721
- children: [i ? _?.(i, E) : /* @__PURE__ */ Z(Y, { children: [g(o), E(o.id)] }), r < e.columns.length - 1 && /* @__PURE__ */ X("div", {
3722
- className: `dc-column-resize-handle dc-split-handle${b === `row-${t}-insert-${r + 1}` ? " dc-drop-zone-active" : ""}`,
3723
- onMouseDown: (e) => c(t, r, e),
3724
- onDragOver: (e) => {
3725
- a && (e.preventDefault(), S(`row-${t}-insert-${r + 1}`));
3726
- },
3727
- onDragLeave: () => S(null),
3728
- onDrop: (e) => {
3729
- a && (e.preventDefault(), e.stopPropagation(), S(null), d(t, r + 1));
3730
- }
3731
- })]
3732
- }, s);
3733
- })
3734
- }),
3735
- a && /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X("div", {
3736
- className: `dc-row-edge-drop dc-row-edge-drop-left dc-split-handle${b === `row-${t}-insert-0` ? " dc-drop-zone-active" : ""}`,
3737
- onDragOver: (e) => {
3738
- e.preventDefault(), S(`row-${t}-insert-0`);
3739
- },
3740
- onDragLeave: () => {
3741
- S(null);
3742
- },
3743
- onDrop: (e) => {
3744
- e.preventDefault(), S(null), d(t, 0);
3745
- }
3746
- }), /* @__PURE__ */ X("div", {
3747
- className: `dc-row-edge-drop dc-row-edge-drop-right dc-split-handle${b === `row-${t}-insert-${e.columns.length}` ? " dc-drop-zone-active" : ""}`,
3748
- onDragOver: (n) => {
3749
- n.preventDefault(), S(`row-${t}-insert-${e.columns.length}`);
3750
- },
3751
- onDragLeave: () => {
3752
- S(null);
3753
- },
3754
- onDrop: (n) => {
3755
- n.preventDefault(), S(null), d(t, e.columns.length);
3756
- }
3757
- })] }),
3758
- a && /* @__PURE__ */ X("div", {
3759
- className: `dc-row-resize-handle dc-split-handle${n ? " dc-row-resize-handle-drop-only" : ""}${b === `row-insert-${t + 1}` ? " dc-drop-zone-active" : ""}`,
3760
- onMouseDown: n ? void 0 : (e) => s(t, e),
3761
- onDragOver: (e) => {
3762
- e.preventDefault(), S(`row-insert-${t + 1}`);
3763
- },
3764
- onDragLeave: () => S(null),
3765
- onDrop: (e) => {
3766
- e.preventDefault(), S(null), f(t + 1);
3767
- }
3768
- })
3769
- ]
3770
- }, e.id);
3771
- }),
3830
+ D ? D.map((t) => t.kind === "loose" ? k(e[t.rowIndex], t.rowIndex, !1) : /* @__PURE__ */ Z("div", {
3831
+ className: `dc-dashboard-section${O(t.headerRowIndex) ? " dc-dashboard-section-ruled" : ""}`,
3832
+ children: [k(e[t.headerRowIndex], t.headerRowIndex, !0), t.bodyRowIndices.map((t) => k(e[t], t, !0))]
3833
+ }, `section-${e[t.headerRowIndex].id}`)) : e.map((e, t) => k(e, t, !1)),
3772
3834
  a && /* @__PURE__ */ X("div", {
3773
3835
  className: `dc-row-boundary-drop dc-row-boundary-drop-bottom dc-split-handle${b === "row-bottom" ? " dc-drop-zone-active" : ""}`,
3774
3836
  onDragOver: (e) => {
@@ -3784,7 +3846,7 @@ function xr({ rows: e, portlets: t, groups: n = [], gridSettings: r, gridWidth:
3784
3846
  }
3785
3847
  //#endregion
3786
3848
  //#region src/client/components/PortletGroupCard.tsx
3787
- function Sr() {
3849
+ function Or() {
3788
3850
  return /* @__PURE__ */ Z("svg", {
3789
3851
  style: {
3790
3852
  width: "14px",
@@ -3828,18 +3890,18 @@ function Sr() {
3828
3890
  ]
3829
3891
  });
3830
3892
  }
3831
- var Cr = v("edit"), wr = v("delete"), Tr = v("segment");
3832
- function Er({ group: e, portlets: t, canEdit: n, renderChild: r, onRename: i, onUngroup: a, onDelete: o, onChildDragStart: s, onChildDragEnd: c, renderSnapBands: l }) {
3833
- let { t: u } = R(), [d, f] = J(!1), [p, m] = J(e.title ?? ""), h = e.direction === "row", g = !!(e.title && e.title.trim()), _ = W(() => {
3834
- f(!1), p !== (e.title ?? "") && i(e.id, p);
3893
+ var kr = v("edit"), Ar = v("delete"), jr = v("segment");
3894
+ function Mr({ group: e, portlets: t, canEdit: n, renderChild: r, onRename: i, onUngroup: a, onDelete: o, onChildDragStart: s, onChildDragEnd: c, renderSnapBands: l, frameless: u = !1 }) {
3895
+ let { t: d } = R(), [f, p] = J(!1), [m, h] = J(e.title ?? ""), g = e.direction === "row", _ = !!(e.title && e.title.trim()), v = W(() => {
3896
+ p(!1), m !== (e.title ?? "") && i(e.id, m);
3835
3897
  }, [
3836
3898
  e.id,
3837
3899
  e.title,
3838
3900
  i,
3839
- p
3840
- ]), v = W(() => {
3841
- m(e.title ?? ""), f(!0);
3842
- }, [e.title]), y = n ? /* @__PURE__ */ Z("div", {
3901
+ m
3902
+ ]), y = W(() => {
3903
+ h(e.title ?? ""), p(!0);
3904
+ }, [e.title]), b = n ? /* @__PURE__ */ Z("div", {
3843
3905
  className: "dc-portlet-group-toolbar dc:flex dc:items-center dc:gap-0.5 dc:shrink-0",
3844
3906
  onMouseDown: (e) => {
3845
3907
  e.stopPropagation(), e.preventDefault();
@@ -3848,10 +3910,10 @@ function Er({ group: e, portlets: t, canEdit: n, renderChild: r, onRename: i, on
3848
3910
  children: [
3849
3911
  /* @__PURE__ */ X("button", {
3850
3912
  draggable: !1,
3851
- onClick: v,
3913
+ onClick: y,
3852
3914
  className: "dc:p-1 bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer hover:bg-dc-surface-hover dc:transition-colors",
3853
- title: u("dashboard.group.rename"),
3854
- children: /* @__PURE__ */ X(Cr, { style: {
3915
+ title: d("dashboard.group.rename"),
3916
+ children: /* @__PURE__ */ X(kr, { style: {
3855
3917
  width: "14px",
3856
3918
  height: "14px",
3857
3919
  color: "currentColor"
@@ -3861,8 +3923,8 @@ function Er({ group: e, portlets: t, canEdit: n, renderChild: r, onRename: i, on
3861
3923
  draggable: !1,
3862
3924
  onClick: () => a(e.id),
3863
3925
  className: "dc:p-1 bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer hover:bg-dc-surface-hover dc:transition-colors",
3864
- title: u("dashboard.group.ungroup"),
3865
- children: /* @__PURE__ */ X(Tr, { style: {
3926
+ title: d("dashboard.group.ungroup"),
3927
+ children: /* @__PURE__ */ X(jr, { style: {
3866
3928
  width: "14px",
3867
3929
  height: "14px",
3868
3930
  color: "currentColor"
@@ -3872,53 +3934,53 @@ function Er({ group: e, portlets: t, canEdit: n, renderChild: r, onRename: i, on
3872
3934
  draggable: !1,
3873
3935
  onClick: () => o(e.id),
3874
3936
  className: "dc:p-1 bg-transparent dc:border-none dc:rounded-sm text-dc-danger dc:cursor-pointer hover:bg-dc-danger-bg dc:transition-colors",
3875
- title: u("dashboard.group.delete"),
3876
- children: /* @__PURE__ */ X(wr, { style: {
3937
+ title: d("dashboard.group.delete"),
3938
+ children: /* @__PURE__ */ X(Ar, { style: {
3877
3939
  width: "14px",
3878
3940
  height: "14px",
3879
3941
  color: "currentColor"
3880
3942
  } })
3881
3943
  })
3882
3944
  ]
3883
- }) : null, b = n ? /* @__PURE__ */ X("span", {
3945
+ }) : null, x = n ? /* @__PURE__ */ X("span", {
3884
3946
  className: "dc-portlet-group-drag-grip dc:inline-flex dc:items-center dc:p-1 text-dc-text-muted dc:cursor-move dc:shrink-0",
3885
- title: u("dashboard.group.drag"),
3886
- children: /* @__PURE__ */ X(Sr, {})
3947
+ title: d("dashboard.group.drag"),
3948
+ children: /* @__PURE__ */ X(Or, {})
3887
3949
  }) : null;
3888
3950
  return /* @__PURE__ */ Z("div", {
3889
- className: "dc-portlet-group bg-dc-surface dc:border border-dc-border dc:rounded-lg dc:flex dc:flex-col dc:h-full dc:min-h-0 dc:relative",
3890
- style: { boxShadow: "var(--dc-shadow-sm)" },
3951
+ className: `dc-portlet-group${u ? " dc-portlet-group-frameless" : " bg-dc-surface dc:border border-dc-border dc:rounded-lg"} dc:flex dc:flex-col dc:h-full dc:min-h-0 dc:relative`,
3952
+ style: { boxShadow: u ? "none" : "var(--dc-shadow-sm)" },
3891
3953
  "data-group-id": e.id,
3892
3954
  children: [
3893
- (g || d) && /* @__PURE__ */ Z("div", {
3955
+ (_ || f) && /* @__PURE__ */ Z("div", {
3894
3956
  className: "dc-portlet-group-title portlet-drag-handle dc:flex dc:items-center dc:justify-between dc:gap-2 dc:px-2 dc:py-1 dc:border-b border-dc-border dc:shrink-0 bg-dc-surface-secondary dc:rounded-t-lg",
3895
3957
  children: [/* @__PURE__ */ Z("div", {
3896
3958
  className: "dc:flex dc:items-center dc:gap-1 dc:min-w-0 dc:flex-1",
3897
- children: [b, d ? /* @__PURE__ */ X("input", {
3959
+ children: [x, f ? /* @__PURE__ */ X("input", {
3898
3960
  autoFocus: !0,
3899
- value: p,
3900
- onChange: (e) => m(e.target.value),
3901
- onBlur: _,
3961
+ value: m,
3962
+ onChange: (e) => h(e.target.value),
3963
+ onBlur: v,
3902
3964
  onKeyDown: (e) => {
3903
- e.key === "Enter" && _(), e.key === "Escape" && f(!1);
3965
+ e.key === "Enter" && v(), e.key === "Escape" && p(!1);
3904
3966
  },
3905
3967
  onMouseDown: (e) => e.stopPropagation(),
3906
- placeholder: u("dashboard.group.titlePlaceholder"),
3968
+ placeholder: d("dashboard.group.titlePlaceholder"),
3907
3969
  className: "dc:flex-1 dc:min-w-0 dc:text-sm dc:font-semibold text-dc-text bg-transparent dc:border-none dc:outline-hidden"
3908
3970
  }) : /* @__PURE__ */ X("h3", {
3909
3971
  className: "dc:font-semibold dc:text-sm text-dc-text dc:truncate",
3910
3972
  children: e.title
3911
3973
  })]
3912
- }), y]
3974
+ }), b]
3913
3975
  }),
3914
- !g && !d && n && /* @__PURE__ */ Z("div", {
3976
+ !_ && !f && n && /* @__PURE__ */ Z("div", {
3915
3977
  className: "dc-portlet-group-floating-toolbar dc:flex dc:items-center dc:px-1 dc:py-0.5 dc:rounded-sm dc:border border-dc-border bg-dc-surface",
3916
- children: [b, y]
3978
+ children: [x, b]
3917
3979
  }),
3918
3980
  /* @__PURE__ */ X("div", {
3919
3981
  className: "dc-portlet-group-body dc:flex dc:flex-1 dc:min-h-0 dc:p-1",
3920
3982
  style: {
3921
- flexDirection: h ? "row" : "column",
3983
+ flexDirection: g ? "row" : "column",
3922
3984
  gap: "var(--dc-group-gap, 4px)"
3923
3985
  },
3924
3986
  children: e.cells.map((i, a) => /* @__PURE__ */ X("div", {
@@ -3927,7 +3989,7 @@ function Er({ group: e, portlets: t, canEdit: n, renderChild: r, onRename: i, on
3927
3989
  flexGrow: 1,
3928
3990
  flexShrink: 1,
3929
3991
  flexBasis: 0,
3930
- flexDirection: h ? "column" : "row",
3992
+ flexDirection: g ? "column" : "row",
3931
3993
  gap: "var(--dc-group-gap, 4px)"
3932
3994
  },
3933
3995
  children: i.portletIds.map((i) => {
@@ -3951,7 +4013,7 @@ function Er({ group: e, portlets: t, canEdit: n, renderChild: r, onRename: i, on
3951
4013
  }
3952
4014
  //#endregion
3953
4015
  //#region src/client/hooks/dashboard/groupGeometry.ts
3954
- function Dr(e, t) {
4016
+ function Nr(e, t) {
3955
4017
  let n = t.length;
3956
4018
  if (n === 0) return [];
3957
4019
  if (e <= n) return t.map(() => 1);
@@ -3970,12 +4032,12 @@ function Dr(e, t) {
3970
4032
  }
3971
4033
  return a;
3972
4034
  }
3973
- function Or(e, t, n, r, i) {
4035
+ function Pr(e, t, n, r, i) {
3974
4036
  let a = e.cells.filter((e) => e.portletIds.length > 0);
3975
4037
  if (a.length === 0) return [];
3976
- let o = a.map(() => 1), s = e.direction === "row", c = Dr(s ? r : i, o), l = [], u = s ? t : n;
4038
+ let o = a.map(() => 1), s = e.direction === "row", c = Nr(s ? r : i, o), l = [], u = s ? t : n;
3977
4039
  return a.forEach((e, a) => {
3978
- let o = c[a], d = Dr(s ? i : r, e.portletIds.map(() => 1)), f = s ? n : t;
4040
+ let o = c[a], d = Nr(s ? i : r, e.portletIds.map(() => 1)), f = s ? n : t;
3979
4041
  e.portletIds.forEach((e, t) => {
3980
4042
  let n = d[t];
3981
4043
  l.push(s ? {
@@ -3996,7 +4058,7 @@ function Or(e, t, n, r, i) {
3996
4058
  }
3997
4059
  //#endregion
3998
4060
  //#region src/client/hooks/dashboard/layoutUtils.ts
3999
- var kr = () => `row-${Date.now()}`, Ar = (e, t, n) => n && t < e ? e - 1 : e, $ = (e, t) => {
4061
+ var Fr = () => `row-${Date.now()}`, Ir = (e, t, n) => n && t < e ? e - 1 : e, $ = (e, t) => {
4000
4062
  let n = e.length;
4001
4063
  if (n === 0) return [];
4002
4064
  let { cols: r, minW: i } = t, a = i * n;
@@ -4012,7 +4074,7 @@ var kr = () => `row-${Date.now()}`, Ar = (e, t, n) => n && t < e ? e - 1 : e, $
4012
4074
  ...e,
4013
4075
  w: i + s + +(t < c)
4014
4076
  }));
4015
- }, jr = (e, t) => {
4077
+ }, Lr = (e, t) => {
4016
4078
  if (e.length === 0) return [];
4017
4079
  let { cols: n, minW: r } = t, i = e.map((e) => ({
4018
4080
  ...e,
@@ -4032,7 +4094,7 @@ var kr = () => `row-${Date.now()}`, Ar = (e, t, n) => n && t < e ? e - 1 : e, $
4032
4094
  t.w -= a, o -= a;
4033
4095
  }
4034
4096
  return i;
4035
- }, Mr = (e, t) => {
4097
+ }, Rr = (e, t) => {
4036
4098
  if (e.length === 0) return [];
4037
4099
  let n = [...e].sort((e, t) => e.y === t.y ? e.x - t.x : e.y - t.y), r = /* @__PURE__ */ new Map();
4038
4100
  return n.forEach((e) => {
@@ -4049,14 +4111,14 @@ var kr = () => `row-${Date.now()}`, Ar = (e, t, n) => n && t < e ? e - 1 : e, $
4049
4111
  })), t)
4050
4112
  };
4051
4113
  });
4052
- }, Nr = (e, t, n, r = []) => {
4114
+ }, zr = (e, t, n, r = []) => {
4053
4115
  let i = new Set(t.map((e) => e.id)), a = new Set(r.map((e) => e.id)), o = (e) => e.groupId ? a.has(e.groupId) : !!e.portletId && i.has(e.portletId);
4054
4116
  return e.map((e) => ({
4055
4117
  ...e,
4056
4118
  h: Math.max(n.minH, e.h),
4057
- columns: jr(e.columns.filter(o), n)
4119
+ columns: Lr(e.columns.filter(o), n)
4058
4120
  })).filter((e) => e.columns.length > 0);
4059
- }, Pr = (e, t, n = []) => {
4121
+ }, Br = (e, t, n = []) => {
4060
4122
  let r = new Map(t.map((e) => [e.id, e])), i = new Map(n.map((e) => [e.id, e])), a = 0, o = [];
4061
4123
  e.forEach((e) => {
4062
4124
  let t = Math.max(1, Math.round(e.h)), n = 0;
@@ -4064,7 +4126,7 @@ var kr = () => `row-${Date.now()}`, Ar = (e, t, n) => n && t < e ? e - 1 : e, $
4064
4126
  let s = Math.round(n), c = Math.max(1, Math.round(n + e.w) - s);
4065
4127
  if (e.groupId) {
4066
4128
  let l = i.get(e.groupId);
4067
- l && Or(l, s, a, c, t).forEach((e) => {
4129
+ l && Pr(l, s, a, c, t).forEach((e) => {
4068
4130
  let t = r.get(e.portletId);
4069
4131
  t && o.push({
4070
4132
  ...t,
@@ -4090,17 +4152,17 @@ var kr = () => `row-${Date.now()}`, Ar = (e, t, n) => n && t < e ? e - 1 : e, $
4090
4152
  return t.forEach((e) => {
4091
4153
  s.has(e.id) || o.push(e);
4092
4154
  }), o;
4093
- }, Fr = 0, Ir = () => `group-${Date.now()}-${Fr += 1}`, Lr = (e) => e.cells.flatMap((e) => e.portletIds), Rr = (e) => ({
4155
+ }, Vr = 0, Hr = () => `group-${Date.now()}-${Vr += 1}`, Ur = (e) => e.cells.flatMap((e) => e.portletIds), Wr = (e) => ({
4094
4156
  ...e,
4095
4157
  cells: e.cells.map((e) => ({
4096
4158
  ...e,
4097
4159
  portletIds: [...e.portletIds]
4098
4160
  }))
4099
- }), zr = (e) => e.map((e) => ({
4161
+ }), Gr = (e) => e.map((e) => ({
4100
4162
  ...e,
4101
4163
  columns: e.columns.map((e) => ({ ...e }))
4102
4164
  }));
4103
- function Br(e, t, n) {
4165
+ function Kr(e, t, n) {
4104
4166
  let r = new Map(t.map((e) => [e.id, e]));
4105
4167
  for (let t = 0; t < e.length; t += 1) {
4106
4168
  let { columns: i } = e[t];
@@ -4126,11 +4188,11 @@ function Br(e, t, n) {
4126
4188
  }
4127
4189
  return null;
4128
4190
  }
4129
- function Vr(e, t) {
4191
+ function qr(e, t) {
4130
4192
  let n = null;
4131
4193
  return {
4132
4194
  groups: e.flatMap((e) => {
4133
- if (!Lr(e).includes(t)) return [e];
4195
+ if (!Ur(e).includes(t)) return [e];
4134
4196
  n = e.id;
4135
4197
  let r = e.cells.map((e) => ({
4136
4198
  ...e,
@@ -4144,7 +4206,7 @@ function Vr(e, t) {
4144
4206
  groupId: n
4145
4207
  };
4146
4208
  }
4147
- function Hr(e, t, n, r) {
4209
+ function Jr(e, t, n, r) {
4148
4210
  let i = new Set(t.map((e) => e.id)), a = /* @__PURE__ */ new Map(), o = [];
4149
4211
  for (let t of e ?? []) {
4150
4212
  let e = t.cells.map((e) => ({ portletIds: e.portletIds.filter((e) => i.has(e) && !a.has(e)) })).filter((e) => e.portletIds.length > 0);
@@ -4163,7 +4225,7 @@ function Hr(e, t, n, r) {
4163
4225
  let e = s.get(t.groupId);
4164
4226
  !e || c.has(e.id) || (c.add(e.id), e.cells.length === 1 && e.cells[0].portletIds.length === 1 && l.add(e.id));
4165
4227
  }
4166
- let u = o.filter((e) => c.has(e.id) && !l.has(e.id)), d = new Set(u.map((e) => e.id)), f = new Set(u.flatMap(Lr)), p = /* @__PURE__ */ new Set(), m = n.map((e) => ({
4228
+ let u = o.filter((e) => c.has(e.id) && !l.has(e.id)), d = new Set(u.map((e) => e.id)), f = new Set(u.flatMap(Ur)), p = /* @__PURE__ */ new Set(), m = n.map((e) => ({
4167
4229
  ...e,
4168
4230
  columns: e.columns.flatMap((e) => {
4169
4231
  if (e.groupId) {
@@ -4181,7 +4243,7 @@ function Hr(e, t, n, r) {
4181
4243
  w: e.w
4182
4244
  }];
4183
4245
  })
4184
- })), h = new Set(m.flatMap((e) => e.columns.map((e) => e.portletId).filter(Boolean))), g = o.filter((e) => !c.has(e.id)).flatMap(Lr).filter((e) => !h.has(e));
4246
+ })), h = new Set(m.flatMap((e) => e.columns.map((e) => e.portletId).filter(Boolean))), g = o.filter((e) => !c.has(e.id)).flatMap(Ur).filter((e) => !h.has(e));
4185
4247
  return g.length > 0 && (m = [...m, {
4186
4248
  id: `row-orphans-${Date.now()}`,
4187
4249
  h: Math.max(r.minH, 3),
@@ -4191,23 +4253,23 @@ function Hr(e, t, n, r) {
4191
4253
  })), r)
4192
4254
  }]), m = m.map((e) => ({
4193
4255
  ...e,
4194
- columns: jr(e.columns, r)
4256
+ columns: Lr(e.columns, r)
4195
4257
  })).filter((e) => e.columns.length > 0), {
4196
4258
  groups: u,
4197
4259
  rows: m
4198
4260
  };
4199
4261
  }
4200
- var Ur = {
4262
+ var Yr = {
4201
4263
  left: "row",
4202
4264
  right: "row",
4203
4265
  top: "column",
4204
4266
  bottom: "column"
4205
- }, Wr = (e) => e === "left" || e === "top";
4206
- function Gr(e, t, n) {
4207
- let r = Br(e.rows, e.groups, t);
4267
+ }, Xr = (e) => e === "left" || e === "top";
4268
+ function Zr(e, t, n) {
4269
+ let r = Kr(e.rows, e.groups, t);
4208
4270
  return r ? r.groupId ? {
4209
4271
  rows: e.rows,
4210
- groups: Vr(e.groups, t).groups
4272
+ groups: qr(e.groups, t).groups
4211
4273
  } : {
4212
4274
  rows: e.rows.map((e, t) => {
4213
4275
  if (t !== r.rowIndex) return e;
@@ -4220,17 +4282,17 @@ function Gr(e, t, n) {
4220
4282
  groups: e.groups
4221
4283
  } : e;
4222
4284
  }
4223
- function Kr(e, t, n, r, i) {
4224
- if (t === n || !Br(e.rows, e.groups, n)) return null;
4225
- let a = Gr({
4226
- rows: zr(e.rows),
4227
- groups: e.groups.map(Rr)
4228
- }, t, i), o = Br(a.rows, a.groups, n);
4285
+ function Qr(e, t, n, r, i) {
4286
+ if (t === n || !Kr(e.rows, e.groups, n)) return null;
4287
+ let a = Zr({
4288
+ rows: Gr(e.rows),
4289
+ groups: e.groups.map(Wr)
4290
+ }, t, i), o = Kr(a.rows, a.groups, n);
4229
4291
  if (!o) return null;
4230
- let s = Ur[r], c = Wr(r);
4292
+ let s = Yr[r], c = Xr(r);
4231
4293
  if (!o.groupId) {
4232
4294
  let e = {
4233
- id: Ir(),
4295
+ id: Hr(),
4234
4296
  direction: s,
4235
4297
  cells: (c ? [t, n] : [n, t]).map((e) => ({ portletIds: [e] }))
4236
4298
  };
@@ -4265,10 +4327,10 @@ function Kr(e, t, n, r, i) {
4265
4327
  groups: l
4266
4328
  };
4267
4329
  }
4268
- function qr(e, t, n) {
4330
+ function $r(e, t, n) {
4269
4331
  let r = e.groups.find((e) => e.id === t);
4270
4332
  if (!r) return e;
4271
- let i = Lr(r);
4333
+ let i = Ur(r);
4272
4334
  return {
4273
4335
  rows: e.rows.map((e) => {
4274
4336
  if (!e.columns.some((e) => e.groupId === t)) return e;
@@ -4284,7 +4346,7 @@ function qr(e, t, n) {
4284
4346
  groups: e.groups.filter((e) => e.id !== t)
4285
4347
  };
4286
4348
  }
4287
- function Jr(e, t, n) {
4349
+ function ei(e, t, n) {
4288
4350
  let r = e.groups.find((e) => e.id === t);
4289
4351
  return r ? {
4290
4352
  state: {
@@ -4298,7 +4360,7 @@ function Jr(e, t, n) {
4298
4360
  }).filter((e) => e.columns.length > 0),
4299
4361
  groups: e.groups.filter((e) => e.id !== t)
4300
4362
  },
4301
- removedPortletIds: Lr(r)
4363
+ removedPortletIds: Ur(r)
4302
4364
  } : {
4303
4365
  state: e,
4304
4366
  removedPortletIds: []
@@ -4306,7 +4368,7 @@ function Jr(e, t, n) {
4306
4368
  }
4307
4369
  //#endregion
4308
4370
  //#region src/client/hooks/dashboard/useGridLayoutEngine.ts
4309
- function Yr({ storeApi: e }) {
4371
+ function ti({ storeApi: e }) {
4310
4372
  return { hasLayoutActuallyChanged: W((t) => {
4311
4373
  let { isInitialized: n, lastKnownLayout: r } = e.getState();
4312
4374
  if (!n || r.length === 0) return !1;
@@ -4319,16 +4381,16 @@ function Yr({ storeApi: e }) {
4319
4381
  }
4320
4382
  //#endregion
4321
4383
  //#region src/client/hooks/dashboard/useRowLayoutEngine.ts
4322
- function Xr({ layoutMode: e, draftRows: t, draftGroups: n, config: r, gridSettings: i, configRef: a, onConfigChangeRef: o, onSaveRef: s, setDraftRows: c, setDraftGroups: l, setThumbnailDirty: u }) {
4384
+ function ni({ layoutMode: e, draftRows: t, draftGroups: n, config: r, gridSettings: i, configRef: a, onConfigChangeRef: o, onSaveRef: s, setDraftRows: c, setDraftGroups: l, setThumbnailDirty: u }) {
4323
4385
  let d = K(() => {
4324
4386
  if (e !== "rows") return {
4325
4387
  rows: [],
4326
4388
  groups: []
4327
4389
  };
4328
- let a = !!(t ?? r.rows), o = t ?? r.rows ?? Mr(r.portlets, i), s = Hr(a ? n ?? r.groups : void 0, r.portlets, o, i);
4390
+ let a = !!(t ?? r.rows), o = t ?? r.rows ?? Rr(r.portlets, i), s = Jr(a ? n ?? r.groups : void 0, r.portlets, o, i);
4329
4391
  return {
4330
4392
  groups: s.groups,
4331
- rows: Nr(s.rows, r.portlets, i, s.groups)
4393
+ rows: zr(s.rows, r.portlets, i, s.groups)
4332
4394
  };
4333
4395
  }, [
4334
4396
  e,
@@ -4340,7 +4402,7 @@ function Xr({ layoutMode: e, draftRows: t, draftGroups: n, config: r, gridSettin
4340
4402
  i
4341
4403
  ]), f = d.rows, p = d.groups, m = W(async (e, t = !0) => {
4342
4404
  if (!o.current) return;
4343
- let n = e.portlets ?? a.current.portlets, r = Hr(e.groups ?? a.current.groups, n, e.rows, i), d = Nr(r.rows, n, i, r.groups), f = Pr(d, n, r.groups), p = {
4405
+ let n = e.portlets ?? a.current.portlets, r = Jr(e.groups ?? a.current.groups, n, e.rows, i), d = zr(r.rows, n, i, r.groups), f = Br(d, n, r.groups), p = {
4344
4406
  ...a.current,
4345
4407
  layoutMode: "rows",
4346
4408
  rows: d,
@@ -4373,7 +4435,7 @@ function Xr({ layoutMode: e, draftRows: t, draftGroups: n, config: r, gridSettin
4373
4435
  }
4374
4436
  //#endregion
4375
4437
  //#region src/client/hooks/dashboard/useDashboardController.ts
4376
- function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n, layoutMode: r, resolvedRows: i, resolvedGroups: a, gridSettings: o, thumbnailConfig: s, dashboardRef: c, storeApi: l, storeActions: u, configRef: d, onConfigChangeRef: f, onSaveRef: m, onSaveThumbnailRef: h, updateLayout: g, updateRowLayout: _, portletComponentRefs: v, onPortletRefresh: y }) {
4438
+ function ri({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n, layoutMode: r, resolvedRows: i, resolvedGroups: a, gridSettings: o, thumbnailConfig: s, dashboardRef: c, storeApi: l, storeActions: u, configRef: d, onConfigChangeRef: f, onSaveRef: m, onSaveThumbnailRef: h, updateLayout: g, updateRowLayout: _, portletComponentRefs: v, onPortletRefresh: y }) {
4377
4439
  let b = q(r);
4378
4440
  b.current = r;
4379
4441
  let x = q(t);
@@ -4393,11 +4455,11 @@ function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n,
4393
4455
  m,
4394
4456
  u
4395
4457
  ]), T = W(() => {
4396
- U(() => {
4458
+ ge(() => {
4397
4459
  u.setEditMode(!0);
4398
4460
  });
4399
4461
  }, [u]), E = W(() => {
4400
- U(() => {
4462
+ ge(() => {
4401
4463
  u.setEditMode(!1);
4402
4464
  }), l.getState().thumbnailDirty && s?.enabled && c && setTimeout(async () => {
4403
4465
  let e = await p(c, s);
@@ -4422,7 +4484,7 @@ function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n,
4422
4484
  u,
4423
4485
  s
4424
4486
  ]), D = W(() => {
4425
- n && (l.getState().isEditMode ? E() : U(() => {
4487
+ n && (l.getState().isEditMode ? E() : ge(() => {
4426
4488
  u.setEditMode(!0);
4427
4489
  }));
4428
4490
  }, [
@@ -4445,7 +4507,7 @@ function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n,
4445
4507
  u.openFilterConfigModal(e);
4446
4508
  }, [u]), P = W(async (t) => {
4447
4509
  if (!f.current || t === b.current || !x.current || !e.includes(t)) return;
4448
- let n = d.current, r = !!(n.rows && n.rows.length > 0), i = r ? n.rows : Mr(n.portlets, o), a = Hr(r ? n.groups : void 0, n.portlets, i, o), s = Nr(a.rows, n.portlets, o, a.groups), c = Pr(s, n.portlets, a.groups);
4510
+ let n = d.current, r = !!(n.rows && n.rows.length > 0), i = r ? n.rows : Rr(n.portlets, o), a = Jr(r ? n.groups : void 0, n.portlets, i, o), s = zr(a.rows, n.portlets, o, a.groups), c = Br(s, n.portlets, a.groups);
4449
4511
  await w({
4450
4512
  ...n,
4451
4513
  layoutMode: t,
@@ -4483,9 +4545,9 @@ function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n,
4483
4545
  let e = S.current, a = e.length > 0 ? e.map((e) => ({
4484
4546
  ...e,
4485
4547
  columns: e.columns.map((e) => ({ ...e }))
4486
- })) : Nr(t.rows ?? Mr(t.portlets, o), n, o);
4548
+ })) : zr(t.rows ?? Rr(t.portlets, o), n, o);
4487
4549
  await _(r && i ? [...a, {
4488
- id: kr(),
4550
+ id: Fr(),
4489
4551
  h: Math.max(o.minH, 3),
4490
4552
  columns: $([{
4491
4553
  portletId: i,
@@ -4510,7 +4572,7 @@ function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n,
4510
4572
  if (!f.current) return;
4511
4573
  let t = d.current, n = t.portlets.filter((t) => t.id !== e);
4512
4574
  if (b.current === "rows") {
4513
- let t = Vr(C.current, e).groups;
4575
+ let t = qr(C.current, e).groups;
4514
4576
  await g({
4515
4577
  rows: S.current.map((t) => ({
4516
4578
  ...t,
@@ -4538,7 +4600,7 @@ function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n,
4538
4600
  u.openDeleteConfirm(e);
4539
4601
  }, [u]), I = W(async (e, t, n) => {
4540
4602
  if (b.current !== "rows") return;
4541
- let r = Kr({
4603
+ let r = Qr({
4542
4604
  rows: S.current,
4543
4605
  groups: C.current
4544
4606
  }, e, t, n, o);
@@ -4553,7 +4615,7 @@ function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n,
4553
4615
  g
4554
4616
  ]), ne = W(async (e) => {
4555
4617
  if (b.current !== "rows") return;
4556
- let t = qr({
4618
+ let t = $r({
4557
4619
  rows: S.current,
4558
4620
  groups: C.current
4559
4621
  }, e, o);
@@ -4570,7 +4632,7 @@ function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n,
4570
4632
  u.openDeleteGroupConfirm(e);
4571
4633
  }, [u]), R = W(async (e) => {
4572
4634
  if (b.current !== "rows") return;
4573
- let { state: t, removedPortletIds: n } = Jr({
4635
+ let { state: t, removedPortletIds: n } = ei({
4574
4636
  rows: S.current,
4575
4637
  groups: C.current
4576
4638
  }, e, o), r = new Set(n), i = d.current.portlets.filter((e) => !r.has(e.id));
@@ -4644,7 +4706,7 @@ function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n,
4644
4706
  let t = S.current.map((e) => ({
4645
4707
  ...e,
4646
4708
  columns: e.columns.map((e) => ({ ...e }))
4647
- })), n = Br(t, C.current, e);
4709
+ })), n = Kr(t, C.current, e);
4648
4710
  if (n?.groupId) return await g({
4649
4711
  rows: t,
4650
4712
  groups: C.current.map((e) => {
@@ -4665,7 +4727,7 @@ function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n,
4665
4727
  portlets: a
4666
4728
  }), r.id;
4667
4729
  await _([...t, {
4668
- id: kr(),
4730
+ id: Fr(),
4669
4731
  h: Math.max(o.minH, 3),
4670
4732
  columns: $([{
4671
4733
  portletId: r.id,
@@ -4765,7 +4827,7 @@ function Zr({ allowedModes: e, canChangeLayoutMode: t, isResponsiveEditable: n,
4765
4827
  }
4766
4828
  //#endregion
4767
4829
  //#region src/client/hooks/useDashboardHook.ts
4768
- var Qr = (e) => ({
4830
+ var ii = (e) => ({
4769
4831
  isEditMode: e.isEditMode,
4770
4832
  selectedFilterId: e.selectedFilterId,
4771
4833
  isPortletModalOpen: e.isPortletModalOpen,
@@ -4781,7 +4843,7 @@ var Qr = (e) => ({
4781
4843
  isDraggingPortlet: e.isDraggingPortlet,
4782
4844
  lastKnownLayout: e.lastKnownLayout,
4783
4845
  isInitialized: e.isInitialized
4784
- }), $r = (e) => ({
4846
+ }), ai = (e) => ({
4785
4847
  setEditMode: e.setEditMode,
4786
4848
  toggleEditMode: e.toggleEditMode,
4787
4849
  setSelectedFilterId: e.setSelectedFilterId,
@@ -4806,8 +4868,8 @@ var Qr = (e) => ({
4806
4868
  clearDebugData: e.clearDebugData,
4807
4869
  setThumbnailDirty: e.setThumbnailDirty
4808
4870
  });
4809
- function ei(e) {
4810
- let { config: n, editable: r = !1, dashboardFilters: i, gridSettings: a, allowedModes: o, isResponsiveEditable: s = !0, onConfigChange: l, onSave: u, onSaveThumbnail: d, portletComponentRefs: f, onPortletRefresh: p, dashboardRef: m } = e, h = Mn(t(Qr)), g = Mn(t($r)), _ = Nn(), { features: v } = c(), y = v.thumbnail, b = q(n);
4871
+ function oi(e) {
4872
+ let { config: n, editable: r = !1, dashboardFilters: i, gridSettings: a, allowedModes: o, isResponsiveEditable: s = !0, onConfigChange: l, onSave: u, onSaveThumbnail: d, portletComponentRefs: f, onPortletRefresh: p, dashboardRef: m } = e, h = Mn(t(ii)), g = Mn(t(ai)), _ = Nn(), { features: v } = c(), y = v.thumbnail, b = q(n);
4811
4873
  b.current = n;
4812
4874
  let x = q(l);
4813
4875
  x.current = l;
@@ -4833,7 +4895,7 @@ function ei(e) {
4833
4895
  s,
4834
4896
  h.selectedFilterId,
4835
4897
  D.length
4836
- ]), k = K(() => !h.selectedFilterId || !i ? null : i.find((e) => e.id === h.selectedFilterId) ?? null, [h.selectedFilterId, i]), { resolvedRows: A, resolvedGroups: j, updateLayout: M, updateRowLayout: N } = Xr({
4898
+ ]), k = K(() => !h.selectedFilterId || !i ? null : i.find((e) => e.id === h.selectedFilterId) ?? null, [h.selectedFilterId, i]), { resolvedRows: A, resolvedGroups: j, updateLayout: M, updateRowLayout: N } = ni({
4837
4899
  layoutMode: T,
4838
4900
  draftRows: h.draftRows,
4839
4901
  draftGroups: h.draftGroups,
@@ -4845,7 +4907,7 @@ function ei(e) {
4845
4907
  setDraftRows: g.setDraftRows,
4846
4908
  setDraftGroups: g.setDraftGroups,
4847
4909
  setThumbnailDirty: g.setThumbnailDirty
4848
- }), { hasLayoutActuallyChanged: P } = Yr({ storeApi: _ }), { enterEditMode: ee, exitEditMode: te, toggleEditMode: F, selectFilter: I, openAddPortlet: ne, openEditPortlet: L, openAddText: R, openEditText: z, openFilterConfig: B, handleLayoutModeChange: re, savePortlet: ie, deletePortlet: ae, confirmDelete: oe, duplicatePortlet: se, refreshPortlet: ce, toggleFilterForPortlet: le, selectAllForFilter: ue, saveFilterConfig: de, handlePaletteChange: fe, snapPortletIntoGroup: pe, ungroupGroup: me, deleteGroup: V, renameGroup: he } = Zr({
4910
+ }), { hasLayoutActuallyChanged: P } = ti({ storeApi: _ }), { enterEditMode: ee, exitEditMode: te, toggleEditMode: F, selectFilter: I, openAddPortlet: ne, openEditPortlet: L, openAddText: R, openEditText: z, openFilterConfig: B, handleLayoutModeChange: re, savePortlet: ie, deletePortlet: ae, confirmDelete: oe, duplicatePortlet: se, refreshPortlet: ce, toggleFilterForPortlet: le, selectAllForFilter: ue, saveFilterConfig: de, handlePaletteChange: fe, snapPortletIntoGroup: pe, ungroupGroup: V, deleteGroup: H, renameGroup: me } = ri({
4849
4911
  allowedModes: w,
4850
4912
  canChangeLayoutMode: O,
4851
4913
  isResponsiveEditable: s,
@@ -4865,7 +4927,7 @@ function ei(e) {
4865
4927
  updateRowLayout: N,
4866
4928
  portletComponentRefs: f,
4867
4929
  onPortletRefresh: p
4868
- }), ge = K(() => ({
4930
+ }), he = K(() => ({
4869
4931
  enterEditMode: ee,
4870
4932
  exitEditMode: te,
4871
4933
  toggleEditMode: F,
@@ -4899,9 +4961,9 @@ function ei(e) {
4899
4961
  saveFilterConfig: de,
4900
4962
  handlePaletteChange: fe,
4901
4963
  snapPortletIntoGroup: pe,
4902
- ungroupGroup: me,
4903
- deleteGroup: V,
4904
- renameGroup: he,
4964
+ ungroupGroup: V,
4965
+ deleteGroup: H,
4966
+ renameGroup: me,
4905
4967
  openDeleteConfirm: g.openDeleteConfirm,
4906
4968
  openDeleteGroupConfirm: g.openDeleteGroupConfirm,
4907
4969
  closeDeleteConfirm: g.closeDeleteConfirm,
@@ -4932,9 +4994,9 @@ function ei(e) {
4932
4994
  de,
4933
4995
  fe,
4934
4996
  pe,
4935
- me,
4936
4997
  V,
4937
- he,
4998
+ H,
4999
+ me,
4938
5000
  oe
4939
5001
  ]);
4940
5002
  return {
@@ -4947,23 +5009,23 @@ function ei(e) {
4947
5009
  layoutMode: T,
4948
5010
  allowedModes: w,
4949
5011
  selectableModes: D,
4950
- actions: ge
5012
+ actions: he
4951
5013
  };
4952
5014
  }
4953
5015
  //#endregion
4954
5016
  //#region src/client/components/dashboard/dashboardGridUtils.tsx
4955
- var ti = {
5017
+ var si = {
4956
5018
  cols: 12,
4957
5019
  rowHeight: 80,
4958
5020
  minW: 2,
4959
5021
  minH: 1
4960
- }, ni = (e) => ({
4961
- cols: e.grid?.cols ?? ti.cols,
4962
- rowHeight: e.grid?.rowHeight ?? ti.rowHeight,
4963
- minW: e.grid?.minW ?? ti.minW,
4964
- minH: e.grid?.minH ?? ti.minH
5022
+ }, ci = (e) => ({
5023
+ cols: e.grid?.cols ?? si.cols,
5024
+ rowHeight: e.grid?.rowHeight ?? si.rowHeight,
5025
+ minW: e.grid?.minW ?? si.minW,
5026
+ minH: e.grid?.minH ?? si.minH
4965
5027
  });
4966
- function ri(e) {
5028
+ function li(e) {
4967
5029
  if (!e) return null;
4968
5030
  let t = null, n = e.parentElement;
4969
5031
  for (; n;) {
@@ -4974,7 +5036,7 @@ function ri(e) {
4974
5036
  }
4975
5037
  return t;
4976
5038
  }
4977
- function ii({ className: e, style: t }) {
5039
+ function ui({ className: e, style: t }) {
4978
5040
  return /* @__PURE__ */ Z("svg", {
4979
5041
  className: e,
4980
5042
  style: t,
@@ -5000,22 +5062,22 @@ function ii({ className: e, style: t }) {
5000
5062
  }
5001
5063
  //#endregion
5002
5064
  //#region src/client/components/dashboard/DashboardContext.tsx
5003
- var ai = V(null);
5004
- function oi() {
5005
- let e = _e(ai);
5065
+ var di = H(null);
5066
+ function fi() {
5067
+ let e = _e(di);
5006
5068
  if (!e) throw Error("useDashboardContext must be used within a DashboardProvider");
5007
5069
  return e;
5008
5070
  }
5009
5071
  //#endregion
5010
5072
  //#region src/client/components/dashboard/DashboardCoordinator.tsx
5011
- var si = v("refresh"), ci = v("edit"), li = v("delete"), ui = v("copy"), di = v("filter");
5012
- function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent: r, onConfigChange: i, onPortletRefresh: a, onSave: o, onSaveThumbnail: l, colorPalette: u, schema: d, onDashboardFiltersChange: f, dashboardModes: p, hideToolbar: m, children: h }) {
5013
- let { features: g } = c(), { containerRef: _, containerWidth: v, displayMode: y, scaleFactor: b, isEditable: x, designWidth: S } = j(), C = p && p.length > 0 ? p : ["rows", "grid"], w = K(() => ni(e), [e]), [T, E] = J(null), D = q(null), O = q(null), k = q(null), A = q(null), M = W((e) => {
5073
+ var pi = v("refresh"), mi = v("edit"), hi = v("delete"), gi = v("copy"), _i = v("filter");
5074
+ function vi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent: r, onConfigChange: i, onPortletRefresh: a, onSave: o, onSaveThumbnail: l, colorPalette: u, schema: d, onDashboardFiltersChange: f, dashboardModes: p, hideToolbar: m, children: h }) {
5075
+ let { features: g } = c(), { containerRef: _, containerWidth: v, displayMode: y, scaleFactor: b, isEditable: x, designWidth: S } = j(), C = p && p.length > 0 ? p : ["rows", "grid"], w = K(() => ci(e), [e]), [T, E] = J(null), D = q(null), O = q(null), k = q(null), A = q(null), M = W((e) => {
5014
5076
  if (D.current = e, _(e), e) {
5015
- let t = ri(e);
5077
+ let t = li(e);
5016
5078
  E(t), O.current = t;
5017
5079
  }
5018
- }, [_]), N = y === "desktop" ? v : S, P = q({}), ee = q({}), te = q(null), F = q(null), I = q(null), [ne, L] = J(null), [R, z] = J(null), { isEditMode: B, selectedFilterId: re, isPortletModalOpen: ie, editingPortlet: ae, isTextModalOpen: oe, editingTextPortlet: se, isFilterConfigModalOpen: ce, filterConfigPortlet: le, deleteConfirmPortletId: ue, deleteConfirmGroupId: de, draftRows: fe, isDraggingPortlet: pe, isInitialized: me, canEdit: V, canChangeLayoutMode: he, selectedFilter: ge, resolvedRows: H, resolvedGroups: U, layoutMode: _e, selectableModes: ve, actions: Y } = ei({
5080
+ }, [_]), N = y === "desktop" ? v : S, P = q({}), ee = q({}), te = q(null), F = q(null), I = q(null), [ne, L] = J(null), [R, z] = J(null), { isEditMode: B, selectedFilterId: re, isPortletModalOpen: ie, editingPortlet: ae, isTextModalOpen: oe, editingTextPortlet: se, isFilterConfigModalOpen: ce, filterConfigPortlet: le, deleteConfirmPortletId: ue, deleteConfirmGroupId: de, draftRows: fe, isDraggingPortlet: pe, isInitialized: V, canEdit: H, canChangeLayoutMode: me, selectedFilter: he, resolvedRows: U, resolvedGroups: ge, layoutMode: _e, selectableModes: ve, actions: Y } = oi({
5019
5081
  config: e,
5020
5082
  editable: t,
5021
5083
  dashboardFilters: n,
@@ -5031,12 +5093,12 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5031
5093
  dashboardRef: A
5032
5094
  }), Z = q(Y);
5033
5095
  Z.current = Y;
5034
- let ye = q(V);
5035
- ye.current = V;
5036
- let Se = q(H);
5037
- Se.current = H;
5038
- let Ce = q(U);
5039
- Ce.current = U, G(() => {
5096
+ let ye = q(H);
5097
+ ye.current = H;
5098
+ let Se = q(U);
5099
+ Se.current = U;
5100
+ let Ce = q(ge);
5101
+ Ce.current = ge, G(() => {
5040
5102
  te.current = fe;
5041
5103
  }, [fe]), G(() => {
5042
5104
  (!B || !x) && re && Y.exitFilterSelectionMode();
@@ -5067,7 +5129,7 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5067
5129
  edgeThreshold: 80,
5068
5130
  maxScrollSpeed: 15
5069
5131
  }), G(() => {
5070
- if (me) return;
5132
+ if (V) return;
5071
5133
  let t = setTimeout(() => {
5072
5134
  Y.setIsInitialized(!0);
5073
5135
  let t = e.portlets.map((e) => ({
@@ -5081,7 +5143,7 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5081
5143
  }, 200);
5082
5144
  return () => clearTimeout(t);
5083
5145
  }, [
5084
- me,
5146
+ V,
5085
5147
  e.portlets,
5086
5148
  Y
5087
5149
  ]);
@@ -5105,7 +5167,7 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5105
5167
  Y
5106
5168
  ]);
5107
5169
  let De = W((e) => {}, []), Oe = W(async (n, r, a, s, c, l) => {
5108
- if (!t || !B || !o || !me) return;
5170
+ if (!t || !B || !o || !V) return;
5109
5171
  let u = [...n];
5110
5172
  if (!Y.hasLayoutActuallyChanged(u)) return;
5111
5173
  let d = e.portlets.map((e) => {
@@ -5137,10 +5199,10 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5137
5199
  B,
5138
5200
  i,
5139
5201
  o,
5140
- me,
5202
+ V,
5141
5203
  Y
5142
5204
  ]), ke = W(async (n, r, a, s, c, l) => {
5143
- if (!t || !B || !i || !me) return;
5205
+ if (!t || !B || !i || !V) return;
5144
5206
  let u = [...n];
5145
5207
  if (!Y.hasLayoutActuallyChanged(u)) return;
5146
5208
  let d = e.portlets.map((e) => {
@@ -5171,12 +5233,12 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5171
5233
  B,
5172
5234
  i,
5173
5235
  o,
5174
- me,
5236
+ V,
5175
5237
  Y
5176
5238
  ]), Ae = (e, t) => t ? e : Math.round(e * 2) / 2, je = W((e, t) => {
5177
- if (!V) return;
5239
+ if (!H) return;
5178
5240
  t.preventDefault();
5179
- let n = t.clientY, r = H.map((e) => ({
5241
+ let n = t.clientY, r = U.map((e) => ({
5180
5242
  ...e,
5181
5243
  columns: e.columns.map((e) => ({ ...e }))
5182
5244
  }));
@@ -5194,14 +5256,14 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5194
5256
  };
5195
5257
  document.addEventListener("mousemove", i), document.addEventListener("mouseup", a);
5196
5258
  }, [
5197
- V,
5198
- w,
5199
5259
  H,
5260
+ w,
5261
+ U,
5200
5262
  Y
5201
5263
  ]), Me = W((e, t, n) => {
5202
- if (!V) return;
5264
+ if (!H) return;
5203
5265
  n.preventDefault();
5204
- let r = n.clientX, i = H.map((e) => ({
5266
+ let r = n.clientX, i = U.map((e) => ({
5205
5267
  ...e,
5206
5268
  columns: e.columns.map((e) => ({ ...e }))
5207
5269
  })), a = i[e], o = a?.columns[t], s = a?.columns[t + 1];
@@ -5235,7 +5297,7 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5235
5297
  } : e);
5236
5298
  return {
5237
5299
  ...n,
5238
- columns: jr(i, w)
5300
+ columns: Lr(i, w)
5239
5301
  };
5240
5302
  });
5241
5303
  F.current = f, Y.setDraftRows(f);
@@ -5246,10 +5308,10 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5246
5308
  };
5247
5309
  document.addEventListener("mousemove", l), document.addEventListener("mouseup", u);
5248
5310
  }, [
5249
- V,
5311
+ H,
5250
5312
  w,
5251
5313
  N,
5252
- H,
5314
+ U,
5253
5315
  Y
5254
5316
  ]), Ne = W((e, t, n, r, i) => {
5255
5317
  r.dataTransfer.effectAllowed = "move", r.dataTransfer.setData("text/plain", i ?? n), ye.current && (I.current = i ? {
@@ -5265,7 +5327,7 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5265
5327
  }, L(i ? null : n), z(i ?? null), Z.current.setIsDraggingPortlet(!0));
5266
5328
  }, []), Pe = W((e, t, n) => {
5267
5329
  if (n.dataTransfer.effectAllowed = "move", n.dataTransfer.setData("text/plain", t), !ye.current) return;
5268
- let r = Br(Se.current, Ce.current, t);
5330
+ let r = Kr(Se.current, Ce.current, t);
5269
5331
  I.current = {
5270
5332
  kind: "groupChild",
5271
5333
  rowIndex: r?.rowIndex ?? 0,
@@ -5279,13 +5341,13 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5279
5341
  let n = I.current;
5280
5342
  if (!n) return;
5281
5343
  Q();
5282
- let r = H.map((e) => ({
5344
+ let r = U.map((e) => ({
5283
5345
  ...e,
5284
5346
  columns: e.columns.map((e) => ({ ...e }))
5285
5347
  })), i = n.rowIndex, a = r[i];
5286
5348
  if (!a) return;
5287
5349
  if (n.kind === "groupChild") {
5288
- let { groups: i } = Vr(U, n.portletId), a = r[e];
5350
+ let { groups: i } = qr(ge, n.portletId), a = r[e];
5289
5351
  if (!a) return;
5290
5352
  a.columns.splice(t ?? a.columns.length, 0, {
5291
5353
  portletId: n.portletId,
@@ -5312,24 +5374,24 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5312
5374
  }), Y.updateRowLayout(r);
5313
5375
  }, [
5314
5376
  w,
5377
+ ge,
5315
5378
  U,
5316
- H,
5317
5379
  Y,
5318
5380
  Q
5319
5381
  ]), Ie = W((e) => {
5320
5382
  let t = I.current;
5321
5383
  if (!t) return;
5322
5384
  Q();
5323
- let n = H.map((e) => ({
5385
+ let n = U.map((e) => ({
5324
5386
  ...e,
5325
5387
  columns: e.columns.map((e) => ({ ...e }))
5326
5388
  })), r = n[t.rowIndex];
5327
5389
  if (!r) return;
5328
5390
  let i = Math.max(r.h || 0, w.minH, 1);
5329
5391
  if (t.kind === "groupChild") {
5330
- let { groups: r } = Vr(U, t.portletId);
5392
+ let { groups: r } = qr(ge, t.portletId);
5331
5393
  n.splice(e, 0, {
5332
- id: kr(),
5394
+ id: Fr(),
5333
5395
  h: i,
5334
5396
  columns: $([{
5335
5397
  portletId: t.portletId,
@@ -5343,16 +5405,16 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5343
5405
  }
5344
5406
  let [a] = r.columns.splice(t.colIndex, 1), o = r.columns.length === 0;
5345
5407
  o ? n.splice(t.rowIndex, 1) : r.columns = $(r.columns, w);
5346
- let s = Ar(e, t.rowIndex, o), c = {
5347
- id: kr(),
5408
+ let s = Ir(e, t.rowIndex, o), c = {
5409
+ id: Fr(),
5348
5410
  h: i,
5349
5411
  columns: $([a], w)
5350
5412
  };
5351
5413
  n.splice(s, 0, c), Y.updateRowLayout(n);
5352
5414
  }, [
5353
5415
  w,
5416
+ ge,
5354
5417
  U,
5355
- H,
5356
5418
  Y,
5357
5419
  Q
5358
5420
  ]), Le = W((e, t) => {
@@ -5417,11 +5479,11 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5417
5479
  }, []), Xe = W((e, t) => {
5418
5480
  ee.current[e] = t;
5419
5481
  }, []), Ze = K(() => ({
5420
- RefreshIcon: si,
5421
- EditIcon: ci,
5422
- DeleteIcon: li,
5423
- CopyIcon: ui,
5424
- FilterIcon: di
5482
+ RefreshIcon: pi,
5483
+ EditIcon: mi,
5484
+ DeleteIcon: hi,
5485
+ CopyIcon: gi,
5486
+ FilterIcon: _i
5425
5487
  }), []), Qe = W(async (e, t) => {
5426
5488
  await Z.current.toggleFilterForPortlet(e, t);
5427
5489
  }, []), $e = W((e) => {
@@ -5476,9 +5538,9 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5476
5538
  h: e.h,
5477
5539
  minW: Math.min(w.minW, e.w),
5478
5540
  minH: Math.min(w.minH, e.h),
5479
- isDraggable: V,
5480
- isResizable: V,
5481
- ...V ? { resizeHandles: [
5541
+ isDraggable: H,
5542
+ isResizable: H,
5543
+ ...H ? { resizeHandles: [
5482
5544
  "s",
5483
5545
  "w",
5484
5546
  "e",
@@ -5502,11 +5564,11 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5502
5564
  containerPadding: [0, 0]
5503
5565
  },
5504
5566
  dragConfig: {
5505
- enabled: V,
5567
+ enabled: H,
5506
5568
  handle: ".portlet-drag-handle"
5507
5569
  },
5508
5570
  resizeConfig: {
5509
- enabled: V,
5571
+ enabled: H,
5510
5572
  handles: [
5511
5573
  "s",
5512
5574
  "w",
@@ -5532,13 +5594,14 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5532
5594
  ke,
5533
5595
  N,
5534
5596
  w,
5535
- V,
5597
+ H,
5536
5598
  e.portlets,
5537
5599
  nt
5538
- ]), at = K(() => new Map(e.portlets.map((e) => [e.id, e])), [e.portlets]), ot = W((e, t) => /* @__PURE__ */ X(Er, {
5600
+ ]), at = K(() => new Map(e.portlets.map((e) => [e.id, e])), [e.portlets]), ot = W((e, t, n) => /* @__PURE__ */ X(Mr, {
5539
5601
  group: e,
5540
5602
  portlets: at,
5541
- canEdit: V,
5603
+ canEdit: H,
5604
+ frameless: n,
5542
5605
  renderChild: (e, t) => nt(e, t, void 0, "groupChild"),
5543
5606
  onRename: (e, t) => {
5544
5607
  Z.current.renameGroup(e, t);
@@ -5551,18 +5614,18 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5551
5614
  onChildDragEnd: Q,
5552
5615
  renderSnapBands: t
5553
5616
  }), [
5554
- V,
5617
+ H,
5555
5618
  Pe,
5556
5619
  Q,
5557
5620
  at,
5558
5621
  nt
5559
- ]), st = W(() => /* @__PURE__ */ X(xr, {
5560
- rows: H,
5622
+ ]), st = W(() => /* @__PURE__ */ X(Dr, {
5623
+ rows: U,
5561
5624
  portlets: e.portlets,
5562
- groups: U,
5625
+ groups: ge,
5563
5626
  gridSettings: w,
5564
5627
  gridWidth: N,
5565
- canEdit: V,
5628
+ canEdit: H,
5566
5629
  isDragging: pe,
5567
5630
  onRowResize: je,
5568
5631
  onColumnResize: Me,
@@ -5576,12 +5639,12 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5576
5639
  renderPortlet: nt,
5577
5640
  renderGroup: ot
5578
5641
  }), [
5579
- H,
5580
5642
  U,
5643
+ ge,
5581
5644
  e.portlets,
5582
5645
  w,
5583
5646
  N,
5584
- V,
5647
+ H,
5585
5648
  pe,
5586
5649
  je,
5587
5650
  Me,
@@ -5617,12 +5680,12 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5617
5680
  deleteConfirmGroupId: de,
5618
5681
  draftRows: fe,
5619
5682
  isDraggingPortlet: pe,
5620
- isInitialized: me,
5621
- canEdit: V,
5622
- canChangeLayoutMode: he,
5623
- selectedFilter: ge,
5624
- resolvedRows: H,
5625
- resolvedGroups: U,
5683
+ isInitialized: V,
5684
+ canEdit: H,
5685
+ canChangeLayoutMode: me,
5686
+ selectedFilter: he,
5687
+ resolvedRows: U,
5688
+ resolvedGroups: ge,
5626
5689
  layoutMode: _e,
5627
5690
  allowedModes: C,
5628
5691
  selectableModes: ve,
@@ -5664,7 +5727,7 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5664
5727
  handleRowDrop: Fe,
5665
5728
  handleNewRowDrop: Ie
5666
5729
  };
5667
- return /* @__PURE__ */ X(ai.Provider, {
5730
+ return /* @__PURE__ */ X(di.Provider, {
5668
5731
  value: ct,
5669
5732
  children: /* @__PURE__ */ X(s, {
5670
5733
  value: T,
@@ -5682,15 +5745,15 @@ function fi({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
5682
5745
  }
5683
5746
  //#endregion
5684
5747
  //#region src/client/components/dashboard/DashboardProvider.tsx
5685
- function pi({ children: e, ...t }) {
5686
- return /* @__PURE__ */ X(jn, { children: /* @__PURE__ */ X(fi, {
5748
+ function yi({ children: e, ...t }) {
5749
+ return /* @__PURE__ */ X(jn, { children: /* @__PURE__ */ X(vi, {
5687
5750
  ...t,
5688
5751
  children: e
5689
5752
  }) });
5690
5753
  }
5691
5754
  //#endregion
5692
5755
  //#region src/client/utils/colorPalettes.ts
5693
- var mi = [
5756
+ var bi = [
5694
5757
  {
5695
5758
  name: "default",
5696
5759
  label: "Default",
@@ -6373,13 +6436,13 @@ var mi = [
6373
6436
  ]
6374
6437
  }
6375
6438
  ];
6376
- function hi(e) {
6377
- return e && mi.find((t) => t.name === e) || mi[0];
6439
+ function xi(e) {
6440
+ return e && bi.find((t) => t.name === e) || bi[0];
6378
6441
  }
6379
6442
  //#endregion
6380
6443
  //#region src/client/components/FloatingEditToolbar.tsx
6381
- var gi = v("edit"), _i = v("check"), vi = v("segment"), yi = v("table"), bi = v("add");
6382
- function xi({ className: e }) {
6444
+ var Si = v("edit"), Ci = v("check"), wi = v("segment"), Ti = v("table"), Ei = v("add");
6445
+ function Di({ className: e }) {
6383
6446
  return /* @__PURE__ */ Z("svg", {
6384
6447
  className: e,
6385
6448
  viewBox: "0 0 24 24",
@@ -6402,8 +6465,8 @@ function xi({ className: e }) {
6402
6465
  })]
6403
6466
  });
6404
6467
  }
6405
- var Si = v("swatch");
6406
- function Ci({ isEditBarVisible: e, position: t, isEditMode: n, onEditModeToggle: r, layoutMode: i, onLayoutModeChange: a, allowedModes: o, canChangeLayoutMode: s, currentPalette: c, onPaletteChange: l, onAddPortlet: u, onAddText: d }) {
6468
+ var Oi = v("swatch");
6469
+ function ki({ isEditBarVisible: e, position: t, isEditMode: n, onEditModeToggle: r, layoutMode: i, onLayoutModeChange: a, allowedModes: o, canChangeLayoutMode: s, currentPalette: c, onPaletteChange: l, onAddPortlet: u, onAddText: d }) {
6407
6470
  let [f, p] = J(!1), m = q(null);
6408
6471
  G(() => {
6409
6472
  if (!f) return;
@@ -6421,23 +6484,23 @@ function Ci({ isEditBarVisible: e, position: t, isEditMode: n, onEditModeToggle:
6421
6484
  ${h} ${t === "left" ? g ? "dc:-translate-x-16 dc:opacity-0 dc:pointer-events-none" : "dc:translate-x-0 dc:opacity-100" : g ? "dc:translate-x-16 dc:opacity-0 dc:pointer-events-none" : "dc:translate-x-0 dc:opacity-100"}`,
6422
6485
  style: { boxShadow: "var(--dc-shadow-lg)" },
6423
6486
  children: [
6424
- /* @__PURE__ */ X(wi, {
6425
- icon: n ? _i : gi,
6487
+ /* @__PURE__ */ X(Ai, {
6488
+ icon: n ? Ci : Si,
6426
6489
  tooltip: n ? "Finish Editing" : "Edit Dashboard",
6427
6490
  isActive: n,
6428
6491
  onClick: r
6429
6492
  }),
6430
6493
  n && o.length > 1 && /* @__PURE__ */ Z(Y, { children: [
6431
6494
  /* @__PURE__ */ X("div", { className: "dc:w-full dc:h-px bg-dc-border dc:my-0.5" }),
6432
- /* @__PURE__ */ X(wi, {
6433
- icon: vi,
6495
+ /* @__PURE__ */ X(Ai, {
6496
+ icon: wi,
6434
6497
  tooltip: "Grid Layout",
6435
6498
  isActive: i === "grid",
6436
6499
  disabled: !s,
6437
6500
  onClick: () => a("grid")
6438
6501
  }),
6439
- /* @__PURE__ */ X(wi, {
6440
- icon: yi,
6502
+ /* @__PURE__ */ X(Ai, {
6503
+ icon: Ti,
6441
6504
  tooltip: "Rows Layout",
6442
6505
  isActive: i === "rows",
6443
6506
  disabled: !s,
@@ -6447,12 +6510,12 @@ function Ci({ isEditBarVisible: e, position: t, isEditMode: n, onEditModeToggle:
6447
6510
  n && /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X("div", { className: "dc:w-full dc:h-px bg-dc-border dc:my-0.5" }), /* @__PURE__ */ Z("div", {
6448
6511
  ref: m,
6449
6512
  className: "dc:relative",
6450
- children: [/* @__PURE__ */ X(wi, {
6451
- icon: Si,
6513
+ children: [/* @__PURE__ */ X(Ai, {
6514
+ icon: Oi,
6452
6515
  tooltip: "Color Palette",
6453
6516
  isActive: f,
6454
6517
  onClick: () => p(!f)
6455
- }), f && /* @__PURE__ */ X(Ti, {
6518
+ }), f && /* @__PURE__ */ X(ji, {
6456
6519
  position: t,
6457
6520
  currentPalette: c,
6458
6521
  onPaletteChange: (e) => {
@@ -6462,13 +6525,13 @@ function Ci({ isEditBarVisible: e, position: t, isEditMode: n, onEditModeToggle:
6462
6525
  })] }),
6463
6526
  n && /* @__PURE__ */ Z(Y, { children: [
6464
6527
  /* @__PURE__ */ X("div", { className: "dc:w-full dc:h-px bg-dc-border dc:my-0.5" }),
6465
- d && /* @__PURE__ */ X(wi, {
6466
- icon: xi,
6528
+ d && /* @__PURE__ */ X(Ai, {
6529
+ icon: Di,
6467
6530
  tooltip: "Add Text",
6468
6531
  onClick: d
6469
6532
  }),
6470
- /* @__PURE__ */ X(wi, {
6471
- icon: bi,
6533
+ /* @__PURE__ */ X(Ai, {
6534
+ icon: Ei,
6472
6535
  tooltip: "Add Portlet",
6473
6536
  onClick: u
6474
6537
  })
@@ -6477,7 +6540,7 @@ function Ci({ isEditBarVisible: e, position: t, isEditMode: n, onEditModeToggle:
6477
6540
  });
6478
6541
  return typeof document > "u" ? null : ye(_, document.body);
6479
6542
  }
6480
- function wi({ icon: e, tooltip: t, isActive: n, disabled: r, onClick: i }) {
6543
+ function Ai({ icon: e, tooltip: t, isActive: n, disabled: r, onClick: i }) {
6481
6544
  return /* @__PURE__ */ X("button", {
6482
6545
  type: "button",
6483
6546
  onClick: i,
@@ -6488,13 +6551,13 @@ function wi({ icon: e, tooltip: t, isActive: n, disabled: r, onClick: i }) {
6488
6551
  children: /* @__PURE__ */ X(e, { className: "dc:w-5 dc:h-5" })
6489
6552
  });
6490
6553
  }
6491
- function Ti({ position: e, currentPalette: t, onPaletteChange: n }) {
6554
+ function ji({ position: e, currentPalette: t, onPaletteChange: n }) {
6492
6555
  return /* @__PURE__ */ X("div", {
6493
6556
  className: `dc:absolute dc:top-0 ${e === "left" ? "dc:left-full dc:ml-2" : "dc:right-full dc:mr-2"} dc:w-52 bg-dc-surface dc:border border-dc-border dc:rounded-md dc:z-50 dc:max-h-72 dc:overflow-y-auto`,
6494
6557
  style: { boxShadow: "var(--dc-shadow-lg)" },
6495
6558
  children: /* @__PURE__ */ X("div", {
6496
6559
  className: "dc:py-1",
6497
- children: mi.slice().sort((e, t) => e.label.localeCompare(t.label)).map((e) => /* @__PURE__ */ X("button", {
6560
+ children: bi.slice().sort((e, t) => e.label.localeCompare(t.label)).map((e) => /* @__PURE__ */ X("button", {
6498
6561
  type: "button",
6499
6562
  onClick: () => n(e.name),
6500
6563
  className: `dc:w-full dc:px-3 dc:py-2 dc:text-left dc:text-sm hover:bg-dc-surface-hover dc:transition-colors ${e.name === t ? "bg-dc-surface-secondary text-dc-primary" : "text-dc-text-secondary"}`,
@@ -6521,9 +6584,9 @@ function Ti({ position: e, currentPalette: t, onPaletteChange: n }) {
6521
6584
  }
6522
6585
  //#endregion
6523
6586
  //#region src/client/components/ColorPaletteSelector.tsx
6524
- var Ei = v("chevronDown");
6525
- function Di({ currentPalette: e = "default", onPaletteChange: t, className: n = "" }) {
6526
- let [r, i] = J(!1), a = q(null), o = hi(e);
6587
+ var Mi = v("chevronDown");
6588
+ function Ni({ currentPalette: e = "default", onPaletteChange: t, className: n = "" }) {
6589
+ let [r, i] = J(!1), a = q(null), o = xi(e);
6527
6590
  G(() => {
6528
6591
  function e(e) {
6529
6592
  a.current && !a.current.contains(e.target) && i(!1);
@@ -6570,13 +6633,13 @@ function Di({ currentPalette: e = "default", onPaletteChange: t, className: n =
6570
6633
  ]
6571
6634
  }),
6572
6635
  /* @__PURE__ */ X("span", { children: o.label }),
6573
- /* @__PURE__ */ X(Ei, { className: `dc:w-4 dc:h-4 dc:transition-transform ${r ? "dc:rotate-180" : ""}` })
6636
+ /* @__PURE__ */ X(Mi, { className: `dc:w-4 dc:h-4 dc:transition-transform ${r ? "dc:rotate-180" : ""}` })
6574
6637
  ]
6575
6638
  }), r && /* @__PURE__ */ X("div", {
6576
6639
  className: "dc:absolute dc:top-full dc:left-0 dc:mt-1 dc:w-72 dc:md:w-80 dc:lg:w-96 bg-dc-surface dc:border border-dc-border dc:rounded-md dc:shadow-lg dc:z-50 dc:max-h-80 dc:overflow-y-auto",
6577
6640
  children: /* @__PURE__ */ X("div", {
6578
6641
  className: "dc:py-1",
6579
- children: mi.slice().sort((e, t) => e.label.localeCompare(t.label)).map((t) => /* @__PURE__ */ X("button", {
6642
+ children: bi.slice().sort((e, t) => e.label.localeCompare(t.label)).map((t) => /* @__PURE__ */ X("button", {
6580
6643
  type: "button",
6581
6644
  onClick: () => s(t.name),
6582
6645
  className: `dc:w-full dc:px-3 dc:py-2 dc:text-left dc:text-sm hover:bg-dc-surface-hover focus:outline-hidden focus:bg-dc-surface-hover ${t.name === e ? "bg-dc-surface-secondary" : "text-dc-text-secondary"}`,
@@ -6624,8 +6687,8 @@ function Di({ currentPalette: e = "default", onPaletteChange: t, className: n =
6624
6687
  }
6625
6688
  //#endregion
6626
6689
  //#region src/client/components/dashboard/LayoutModeToggle.tsx
6627
- var Oi = v("segment"), ki = v("table");
6628
- function Ai({ active: e, disabled: t, onClick: n, icon: r, label: i }) {
6690
+ var Pi = v("segment"), Fi = v("table");
6691
+ function Ii({ active: e, disabled: t, onClick: n, icon: r, label: i }) {
6629
6692
  return /* @__PURE__ */ Z("button", {
6630
6693
  onClick: n,
6631
6694
  disabled: t,
@@ -6633,29 +6696,29 @@ function Ai({ active: e, disabled: t, onClick: n, icon: r, label: i }) {
6633
6696
  children: [r, i]
6634
6697
  });
6635
6698
  }
6636
- function ji({ layoutMode: e, canChangeLayoutMode: t, onLayoutModeChange: n }) {
6699
+ function Li({ layoutMode: e, canChangeLayoutMode: t, onLayoutModeChange: n }) {
6637
6700
  let { t: r } = R();
6638
6701
  return /* @__PURE__ */ Z("div", {
6639
6702
  className: "dc:inline-flex dc:rounded-md dc:border border-dc-border dc:overflow-hidden dc:whitespace-nowrap",
6640
- children: [/* @__PURE__ */ X(Ai, {
6703
+ children: [/* @__PURE__ */ X(Ii, {
6641
6704
  active: e === "grid",
6642
6705
  disabled: !t,
6643
6706
  onClick: () => n("grid"),
6644
- icon: /* @__PURE__ */ X(Oi, { className: "dc:w-4 dc:h-4 dc:shrink-0" }),
6707
+ icon: /* @__PURE__ */ X(Pi, { className: "dc:w-4 dc:h-4 dc:shrink-0" }),
6645
6708
  label: r("dashboard.grid")
6646
- }), /* @__PURE__ */ X(Ai, {
6709
+ }), /* @__PURE__ */ X(Ii, {
6647
6710
  active: e === "rows",
6648
6711
  disabled: !t,
6649
6712
  onClick: () => n("rows"),
6650
- icon: /* @__PURE__ */ X(ki, { className: "dc:w-4 dc:h-4 dc:shrink-0" }),
6713
+ icon: /* @__PURE__ */ X(Fi, { className: "dc:w-4 dc:h-4 dc:shrink-0" }),
6651
6714
  label: r("dashboard.rows")
6652
6715
  })]
6653
6716
  });
6654
6717
  }
6655
6718
  //#endregion
6656
6719
  //#region src/client/components/dashboard/DashboardEditBar.tsx
6657
- var Mi = v("edit"), Ni = v("check"), Pi = v("add"), Fi = v("desktop");
6658
- function Ii({ isEditMode: e, isResponsiveEditable: t, onToggle: n }) {
6720
+ var Ri = v("edit"), zi = v("check"), Bi = v("add"), Vi = v("desktop");
6721
+ function Hi({ isEditMode: e, isResponsiveEditable: t, onToggle: n }) {
6659
6722
  let { t: r } = R();
6660
6723
  return /* @__PURE__ */ Z("button", {
6661
6724
  onClick: () => t && n(),
@@ -6665,15 +6728,15 @@ function Ii({ isEditMode: e, isResponsiveEditable: t, onToggle: n }) {
6665
6728
  color: t ? "var(--dc-primary)" : "var(--dc-text-muted)",
6666
6729
  borderColor: t ? e ? "var(--dc-border)" : "var(--dc-primary)" : "var(--dc-border)"
6667
6730
  },
6668
- children: [X(e ? Ni : Mi, { className: "dc:w-4 dc:h-4 dc:mr-1.5" }), r(e ? "dashboard.finishEditing" : "dashboard.edit")]
6731
+ children: [X(e ? zi : Ri, { className: "dc:w-4 dc:h-4 dc:mr-1.5" }), r(e ? "dashboard.finishEditing" : "dashboard.edit")]
6669
6732
  });
6670
6733
  }
6671
- function Li({ colorPalette: e, onPaletteChange: t, onAddText: n, onAddPortlet: r }) {
6734
+ function Ui({ colorPalette: e, onPaletteChange: t, onAddText: n, onAddPortlet: r }) {
6672
6735
  let { t: i } = R();
6673
6736
  return /* @__PURE__ */ Z("div", {
6674
6737
  className: "dc:flex dc:items-center dc:gap-3",
6675
6738
  children: [
6676
- /* @__PURE__ */ X(Di, {
6739
+ /* @__PURE__ */ X(Ni, {
6677
6740
  currentPalette: e,
6678
6741
  onPaletteChange: t,
6679
6742
  className: "dc:shrink-0"
@@ -6685,7 +6748,7 @@ function Li({ colorPalette: e, onPaletteChange: t, onAddText: n, onAddPortlet: r
6685
6748
  color: "var(--dc-text-secondary)",
6686
6749
  borderColor: "var(--dc-border)"
6687
6750
  },
6688
- children: [/* @__PURE__ */ X(ii, { className: "dc:w-5 dc:h-5 dc:mr-2" }), i("dashboard.addText")]
6751
+ children: [/* @__PURE__ */ X(ui, { className: "dc:w-5 dc:h-5 dc:mr-2" }), i("dashboard.addText")]
6689
6752
  }),
6690
6753
  /* @__PURE__ */ Z("button", {
6691
6754
  onClick: r,
@@ -6694,13 +6757,13 @@ function Li({ colorPalette: e, onPaletteChange: t, onAddText: n, onAddPortlet: r
6694
6757
  color: "var(--dc-primary)",
6695
6758
  borderColor: "var(--dc-primary)"
6696
6759
  },
6697
- children: [/* @__PURE__ */ X(Pi, { className: "dc:w-5 dc:h-5 dc:mr-2" }), i("dashboard.addPortlet")]
6760
+ children: [/* @__PURE__ */ X(Bi, { className: "dc:w-5 dc:h-5 dc:mr-2" }), i("dashboard.addPortlet")]
6698
6761
  })
6699
6762
  ]
6700
6763
  });
6701
6764
  }
6702
- function Ri() {
6703
- let { t: e } = R(), { isEditMode: t, isResponsiveEditable: n, layoutMode: r, selectableModes: i, canChangeLayoutMode: a, isScrolled: o, editBarRef: s, config: c, actions: l, handleAddText: u, handleAddPortlet: d, handlePaletteChange: f } = oi();
6765
+ function Wi() {
6766
+ let { t: e } = R(), { isEditMode: t, isResponsiveEditable: n, layoutMode: r, selectableModes: i, canChangeLayoutMode: a, isScrolled: o, editBarRef: s, config: c, actions: l, handleAddText: u, handleAddPortlet: d, handlePaletteChange: f } = fi();
6704
6767
  return /* @__PURE__ */ Z("div", {
6705
6768
  ref: s,
6706
6769
  className: `dc:mb-4 dc:flex dc:justify-between dc:items-center dc:sticky dc:top-0 dc:z-10 dc:px-4 dc:py-4 bg-dc-surface-tertiary dc:border border-dc-border dc:rounded-lg dc:transition-all dc:duration-200 ${o ? "dc:border-b" : ""}`,
@@ -6708,26 +6771,26 @@ function Ri() {
6708
6771
  children: [/* @__PURE__ */ Z("div", {
6709
6772
  className: "dc:flex dc:items-center dc:gap-4",
6710
6773
  children: [
6711
- /* @__PURE__ */ X(Ii, {
6774
+ /* @__PURE__ */ X(Hi, {
6712
6775
  isEditMode: t,
6713
6776
  isResponsiveEditable: n,
6714
6777
  onToggle: l.toggleEditMode
6715
6778
  }),
6716
- t && i.length > 1 && /* @__PURE__ */ X(ji, {
6779
+ t && i.length > 1 && /* @__PURE__ */ X(Li, {
6717
6780
  layoutMode: r,
6718
6781
  canChangeLayoutMode: a,
6719
6782
  onLayoutModeChange: l.handleLayoutModeChange
6720
6783
  }),
6721
6784
  !n && /* @__PURE__ */ Z("div", {
6722
6785
  className: "dc:flex dc:items-center dc:gap-2 dc:text-sm text-dc-text-secondary",
6723
- children: [/* @__PURE__ */ X(Fi, { className: "dc:w-4 dc:h-4" }), /* @__PURE__ */ X("span", { children: e("dashboard.desktopRequired") })]
6786
+ children: [/* @__PURE__ */ X(Vi, { className: "dc:w-4 dc:h-4" }), /* @__PURE__ */ X("span", { children: e("dashboard.desktopRequired") })]
6724
6787
  }),
6725
6788
  t && n && /* @__PURE__ */ X("p", {
6726
6789
  className: "dc:hidden dc:md:block dc:text-sm text-dc-text-secondary",
6727
6790
  children: e("dashboard.editModeHint")
6728
6791
  })
6729
6792
  ]
6730
- }), t && /* @__PURE__ */ X(Li, {
6793
+ }), t && /* @__PURE__ */ X(Ui, {
6731
6794
  colorPalette: c.colorPalette,
6732
6795
  onPaletteChange: f,
6733
6796
  onAddText: u,
@@ -6737,9 +6800,9 @@ function Ri() {
6737
6800
  }
6738
6801
  //#endregion
6739
6802
  //#region src/client/components/dashboard/DashboardToolbar.tsx
6740
- function zi() {
6741
- let { editable: e, hideToolbar: t, features: n, displayMode: r, isEditMode: i, isResponsiveEditable: a, layoutMode: o, selectableModes: s, canChangeLayoutMode: c, isEditBarVisible: l, config: u, actions: d } = oi();
6742
- return !e || t ? null : /* @__PURE__ */ Z(Y, { children: [n.editToolbar !== "floating" && /* @__PURE__ */ X(Ri, {}), n.editToolbar !== "top" && r === "desktop" && /* @__PURE__ */ X(Ci, {
6803
+ function Gi() {
6804
+ let { editable: e, hideToolbar: t, features: n, displayMode: r, isEditMode: i, isResponsiveEditable: a, layoutMode: o, selectableModes: s, canChangeLayoutMode: c, isEditBarVisible: l, config: u, actions: d } = fi();
6805
+ return !e || t ? null : /* @__PURE__ */ Z(Y, { children: [n.editToolbar !== "floating" && /* @__PURE__ */ X(Wi, {}), n.editToolbar !== "top" && r === "desktop" && /* @__PURE__ */ X(ki, {
6743
6806
  isEditBarVisible: n.editToolbar !== "floating" && l,
6744
6807
  position: n.floatingToolbarPosition || "right",
6745
6808
  isEditMode: i,
@@ -6756,10 +6819,10 @@ function zi() {
6756
6819
  }
6757
6820
  //#endregion
6758
6821
  //#region src/client/components/AnalysisBuilder/utils/idUtils.ts
6759
- function Bi() {
6822
+ function Ki() {
6760
6823
  return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
6761
6824
  }
6762
- function Vi(e) {
6825
+ function qi(e) {
6763
6826
  let t = "", n = e;
6764
6827
  do
6765
6828
  t = String.fromCharCode(65 + n % 26) + t, n = Math.floor(n / 26) - 1;
@@ -6768,7 +6831,7 @@ function Vi(e) {
6768
6831
  }
6769
6832
  //#endregion
6770
6833
  //#region src/client/components/AnalysisBuilder/utils/fieldUtils.ts
6771
- function Hi(e, t) {
6834
+ function Ji(e, t) {
6772
6835
  if (!t) return null;
6773
6836
  for (let n of t.cubes) {
6774
6837
  let t = n.measures.find((t) => t.name === e);
@@ -6786,11 +6849,11 @@ function Hi(e, t) {
6786
6849
  }
6787
6850
  return null;
6788
6851
  }
6789
- function Ui(e, t) {
6790
- let n = Hi(e, t);
6852
+ function Yi(e, t) {
6853
+ let n = Ji(e, t);
6791
6854
  return n && (n.field.title || n.field.shortTitle) || e;
6792
6855
  }
6793
- function Wi(e, t) {
6856
+ function Xi(e, t) {
6794
6857
  return {
6795
6858
  name: t.name,
6796
6859
  title: t.title || t.shortTitle || t.name,
@@ -6801,7 +6864,7 @@ function Wi(e, t) {
6801
6864
  fieldType: "measure"
6802
6865
  };
6803
6866
  }
6804
- function Gi(e, t) {
6867
+ function Zi(e, t) {
6805
6868
  return {
6806
6869
  name: t.name,
6807
6870
  title: t.title || t.shortTitle || t.name,
@@ -6812,16 +6875,16 @@ function Gi(e, t) {
6812
6875
  fieldType: t.type === "time" ? "timeDimension" : "dimension"
6813
6876
  };
6814
6877
  }
6815
- function Ki(e, t) {
6878
+ function Qi(e, t) {
6816
6879
  if (!e) return [];
6817
6880
  let n = t === "metrics" || t === "filter", r = t !== "metrics", i = [];
6818
6881
  for (let t of e.cubes) {
6819
- if (n) for (let e of t.measures) i.push(Wi(t.name, e));
6820
- if (r) for (let e of t.dimensions) i.push(Gi(t.name, e));
6882
+ if (n) for (let e of t.measures) i.push(Xi(t.name, e));
6883
+ if (r) for (let e of t.dimensions) i.push(Zi(t.name, e));
6821
6884
  }
6822
6885
  return i;
6823
6886
  }
6824
- function qi(e, t, n) {
6887
+ function $i(e, t, n) {
6825
6888
  let r = e;
6826
6889
  if (n && n !== "all" && (r = r.filter((e) => e.cubeName === n)), t.trim()) {
6827
6890
  let e = t.toLowerCase();
@@ -6829,7 +6892,7 @@ function qi(e, t, n) {
6829
6892
  }
6830
6893
  return r;
6831
6894
  }
6832
- function Ji(e) {
6895
+ function ea(e) {
6833
6896
  let t = /* @__PURE__ */ new Map();
6834
6897
  for (let n of e) {
6835
6898
  let e = t.get(n.cubeName) || [];
@@ -6837,13 +6900,13 @@ function Ji(e) {
6837
6900
  }
6838
6901
  return t;
6839
6902
  }
6840
- function Yi(e) {
6903
+ function ta(e) {
6841
6904
  return e ? e.cubes.map((e) => e.name) : [];
6842
6905
  }
6843
- function Xi(e, t) {
6906
+ function na(e, t) {
6844
6907
  return t && t.cubes.find((t) => t.name === e)?.title || e;
6845
6908
  }
6846
- function Zi(e, t) {
6909
+ function ra(e, t) {
6847
6910
  let n = /* @__PURE__ */ new Set();
6848
6911
  if (!t) return n;
6849
6912
  n.add(e);
@@ -6852,9 +6915,9 @@ function Zi(e, t) {
6852
6915
  for (let e of r.relationships) n.add(e.targetCube);
6853
6916
  return n;
6854
6917
  }
6855
- function Qi(e, t) {
6918
+ function ia(e, t) {
6856
6919
  if (!t) return null;
6857
- let n = Zi(e, t);
6920
+ let n = ra(e, t);
6858
6921
  return { cubes: t.cubes.filter((e) => n.has(e.name)).map((e) => ({
6859
6922
  ...e,
6860
6923
  description: e.description || ""
@@ -6862,10 +6925,10 @@ function Qi(e, t) {
6862
6925
  }
6863
6926
  //#endregion
6864
6927
  //#region src/client/components/AnalysisBuilder/utils/recentFieldsUtils.ts
6865
- var $i = "drizzle-cube-recent-fields", ea = 10;
6866
- function ta() {
6928
+ var aa = "drizzle-cube-recent-fields", oa = 10;
6929
+ function sa() {
6867
6930
  try {
6868
- let e = localStorage.getItem($i);
6931
+ let e = localStorage.getItem(aa);
6869
6932
  if (e) return JSON.parse(e);
6870
6933
  } catch {}
6871
6934
  return {
@@ -6873,15 +6936,15 @@ function ta() {
6873
6936
  breakdowns: []
6874
6937
  };
6875
6938
  }
6876
- function na(e, t) {
6939
+ function ca(e, t) {
6877
6940
  try {
6878
- let n = ta(), r = n[t].filter((t) => t !== e);
6879
- r.unshift(e), n[t] = r.slice(0, ea), localStorage.setItem($i, JSON.stringify(n));
6941
+ let n = sa(), r = n[t].filter((t) => t !== e);
6942
+ r.unshift(e), n[t] = r.slice(0, oa), localStorage.setItem(aa, JSON.stringify(n));
6880
6943
  } catch {}
6881
6944
  }
6882
- function ra(e, t, n) {
6945
+ function la(e, t, n) {
6883
6946
  if (!e || n.length === 0) return [];
6884
- let r = Ki(e, t), i = [];
6947
+ let r = Qi(e, t), i = [];
6885
6948
  for (let e of n) {
6886
6949
  let t = r.find((t) => t.name === e);
6887
6950
  t && i.push(t);
@@ -6890,7 +6953,7 @@ function ra(e, t, n) {
6890
6953
  }
6891
6954
  //#endregion
6892
6955
  //#region src/client/components/AnalysisBuilder/FieldDetailPanel.tsx
6893
- function ia({ field: e }) {
6956
+ function ua({ field: e }) {
6894
6957
  let { t } = R();
6895
6958
  return e ? /* @__PURE__ */ Z("div", {
6896
6959
  className: "dc:p-4",
@@ -6997,8 +7060,8 @@ function ia({ field: e }) {
6997
7060
  })
6998
7061
  });
6999
7062
  }
7000
- var aa = H(ia), oa = v("check");
7001
- function sa({ field: e, isSelected: t, isFocused: n, onClick: r, onMouseEnter: i, ...a }) {
7063
+ var da = U(ua), fa = v("check");
7064
+ function pa({ field: e, isSelected: t, isFocused: n, onClick: r, onMouseEnter: i, ...a }) {
7002
7065
  let o = () => {
7003
7066
  if (e.fieldType === "measure") {
7004
7067
  let t = l(e.type);
@@ -7039,19 +7102,19 @@ function sa({ field: e, isSelected: t, isFocused: n, onClick: r, onMouseEnter: i
7039
7102
  }),
7040
7103
  t && /* @__PURE__ */ X("span", {
7041
7104
  className: "dc:shrink-0 dc:w-5 dc:h-5 dc:flex dc:items-center dc:justify-center dc:rounded-full bg-dc-success text-white",
7042
- children: /* @__PURE__ */ X(oa, { className: "dc:w-3 dc:h-3" })
7105
+ children: /* @__PURE__ */ X(fa, { className: "dc:w-3 dc:h-3" })
7043
7106
  })
7044
7107
  ]
7045
7108
  });
7046
7109
  }
7047
- var ca = H(sa);
7110
+ var ma = U(pa);
7048
7111
  //#endregion
7049
7112
  //#region src/client/components/AnalysisBuilder/FieldSearchResults.tsx
7050
- function la(e, t, n, r, i) {
7113
+ function ha(e, t, n, r, i) {
7051
7114
  let a = Array.from(e.entries()), o = Array.from(e.keys()).indexOf(n);
7052
7115
  return t + a.slice(0, o).reduce((e, [, t]) => e + t.length, 0) + r.indexOf(i);
7053
7116
  }
7054
- var ua = H(function({ mode: e, schema: t, searchTerm: n, recentOptions: r, groupedFields: i, filteredCount: a, selectedFields: o, focusedIndex: s, onSelectField: c, onFocusField: l }) {
7117
+ var ga = U(function({ mode: e, schema: t, searchTerm: n, recentOptions: r, groupedFields: i, filteredCount: a, selectedFields: o, focusedIndex: s, onSelectField: c, onFocusField: l }) {
7055
7118
  let { t: u } = R();
7056
7119
  if (a === 0 && r.length === 0) {
7057
7120
  let t;
@@ -7066,7 +7129,7 @@ var ua = H(function({ mode: e, schema: t, searchTerm: n, recentOptions: r, group
7066
7129
  })]
7067
7130
  });
7068
7131
  }
7069
- let d = (e, t, n = "") => /* @__PURE__ */ X(ca, {
7132
+ let d = (e, t, n = "") => /* @__PURE__ */ X(ma, {
7070
7133
  field: e,
7071
7134
  isSelected: o.includes(e.name),
7072
7135
  isFocused: s === t,
@@ -7084,16 +7147,16 @@ var ua = H(function({ mode: e, schema: t, searchTerm: n, recentOptions: r, group
7084
7147
  children: r.map((e, t) => d(e, t, "recent-"))
7085
7148
  })] }), Array.from(i.entries()).map(([e, n]) => /* @__PURE__ */ Z("div", { children: [/* @__PURE__ */ X("h3", {
7086
7149
  className: "dc:text-xs dc:font-semibold text-dc-text-muted dc:uppercase dc:tracking-wider dc:mb-2",
7087
- children: Xi(e, t)
7150
+ children: na(e, t)
7088
7151
  }), /* @__PURE__ */ X("div", {
7089
7152
  className: "dc:space-y-1",
7090
- children: n.map((t) => d(t, la(i, r.length, e, n, t)))
7153
+ children: n.map((t) => d(t, ha(i, r.length, e, n, t)))
7091
7154
  })] }, e))]
7092
7155
  });
7093
7156
  });
7094
7157
  //#endregion
7095
7158
  //#region src/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.ts
7096
- function da(e, t, n) {
7159
+ function _a(e, t, n) {
7097
7160
  let [r, i] = J(null), [a, o] = J(-1), s = q(null), c = W((t) => {
7098
7161
  o((n) => {
7099
7162
  let r = t > 0 ? Math.min(n + 1, e.length - 1) : Math.max(n - 1, 0);
@@ -7138,17 +7201,17 @@ function da(e, t, n) {
7138
7201
  }
7139
7202
  //#endregion
7140
7203
  //#region src/client/components/AnalysisBuilder/FieldSearchModal.tsx
7141
- var fa = v("search"), pa = v("close");
7142
- function ma({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFields: a, recentFields: o }) {
7204
+ var va = v("search"), ya = v("close");
7205
+ function ba({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFields: a, recentFields: o }) {
7143
7206
  let { t: s } = R(), [c, l] = J(""), [u, d] = J(null), [f, p] = J(null), m = q(null), h = K(() => {
7144
7207
  if (o) return o;
7145
- let e = ta();
7208
+ let e = sa();
7146
7209
  return r === "metrics" ? e.metrics : e.breakdowns;
7147
- }, [o, r]), g = r, _ = K(() => Ki(i, g), [i, g]), v = K(() => Yi(i), [i]), y = K(() => qi(_, c, u), [
7210
+ }, [o, r]), g = r, _ = K(() => Qi(i, g), [i, g]), v = K(() => ta(i), [i]), y = K(() => $i(_, c, u), [
7148
7211
  _,
7149
7212
  c,
7150
7213
  u
7151
- ]), b = K(() => Ji(y), [y]), x = K(() => c.trim() ? [] : ra(i, g, h).filter((e) => !u || e.cubeName === u), [
7214
+ ]), b = K(() => ea(y), [y]), x = K(() => c.trim() ? [] : la(i, g, h).filter((e) => !u || e.cubeName === u), [
7152
7215
  i,
7153
7216
  g,
7154
7217
  h,
@@ -7164,7 +7227,7 @@ function ma({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7164
7227
  e && m.current && m.current.focus();
7165
7228
  }, [e]);
7166
7229
  let C = W((e, t = !1) => {
7167
- na(e.name, r === "metrics" ? "metrics" : "breakdowns"), n({
7230
+ ca(e.name, r === "metrics" ? "metrics" : "breakdowns"), n({
7168
7231
  name: e.name,
7169
7232
  title: e.title,
7170
7233
  shortTitle: e.shortTitle,
@@ -7185,7 +7248,7 @@ function ma({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7185
7248
  f,
7186
7249
  C,
7187
7250
  a
7188
- ]), { focusedField: T, setFocusedField: E, focusedIndex: D, setFocusedIndex: O, resultsContainerRef: k, handleKeyDown: A } = da(S, w, t), j = W((e, t) => {
7251
+ ]), { focusedField: T, setFocusedField: E, focusedIndex: D, setFocusedIndex: O, resultsContainerRef: k, handleKeyDown: A } = _a(S, w, t), j = W((e, t) => {
7189
7252
  E(e), O(t);
7190
7253
  }, [E, O]);
7191
7254
  if (G(() => {
@@ -7214,7 +7277,7 @@ function ma({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7214
7277
  children: [/* @__PURE__ */ Z("div", {
7215
7278
  className: "dc:flex dc:items-center dc:px-4 dc:py-3 dc:gap-3",
7216
7279
  children: [
7217
- /* @__PURE__ */ X(fa, {
7280
+ /* @__PURE__ */ X(va, {
7218
7281
  className: "dc:w-5 dc:h-5 text-dc-text-muted",
7219
7282
  "aria-hidden": !0
7220
7283
  }),
@@ -7238,7 +7301,7 @@ function ma({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7238
7301
  onClick: t,
7239
7302
  className: "dc:p-1 text-dc-text-secondary hover:text-dc-text dc:rounded-sm",
7240
7303
  "aria-label": "Close dialog",
7241
- children: /* @__PURE__ */ X(pa, {
7304
+ children: /* @__PURE__ */ X(ya, {
7242
7305
  className: "dc:w-5 dc:h-5",
7243
7306
  "aria-hidden": !0
7244
7307
  })
@@ -7256,7 +7319,7 @@ function ma({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7256
7319
  children: s("fieldSearch.filter.allCubes")
7257
7320
  }), v.map((e) => /* @__PURE__ */ X("option", {
7258
7321
  value: e,
7259
- children: Xi(e, i)
7322
+ children: na(e, i)
7260
7323
  }, e))]
7261
7324
  })
7262
7325
  })]
@@ -7279,9 +7342,9 @@ function ma({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7279
7342
  }), v.map((e) => /* @__PURE__ */ X("button", {
7280
7343
  onClick: () => d(e),
7281
7344
  className: `dc:w-full dc:text-left dc:px-3 dc:py-2 dc:rounded-md dc:text-sm dc:transition-colors dc:truncate ${u === e ? "bg-dc-primary/10 text-dc-primary dc:font-medium" : "text-dc-text hover:bg-dc-surface-hover"}`,
7282
- title: Xi(e, i),
7345
+ title: na(e, i),
7283
7346
  "aria-pressed": u === e,
7284
- children: Xi(e, i)
7347
+ children: na(e, i)
7285
7348
  }, e))]
7286
7349
  })
7287
7350
  }),
@@ -7291,7 +7354,7 @@ function ma({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7291
7354
  className: "dc:flex-1 dc:overflow-y-auto dc:p-4",
7292
7355
  role: "listbox",
7293
7356
  "aria-label": "Available fields",
7294
- children: /* @__PURE__ */ X(ua, {
7357
+ children: /* @__PURE__ */ X(ga, {
7295
7358
  mode: r,
7296
7359
  schema: i,
7297
7360
  searchTerm: c,
@@ -7306,7 +7369,7 @@ function ma({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7306
7369
  }),
7307
7370
  /* @__PURE__ */ X("div", {
7308
7371
  className: "dc:hidden dc:md:block dc:w-72 dc:shrink-0 dc:border-l border-dc-border bg-dc-surface-secondary dc:overflow-y-auto",
7309
- children: /* @__PURE__ */ X(aa, { field: T })
7372
+ children: /* @__PURE__ */ X(da, { field: T })
7310
7373
  })
7311
7374
  ]
7312
7375
  }),
@@ -7364,7 +7427,7 @@ function ma({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7364
7427
  }
7365
7428
  //#endregion
7366
7429
  //#region src/client/shared/types.ts
7367
- var ha = [
7430
+ var xa = [
7368
7431
  {
7369
7432
  value: "custom",
7370
7433
  label: "dateRange.custom"
@@ -7441,7 +7504,7 @@ var ha = [
7441
7504
  value: "last_n_years",
7442
7505
  label: "dateRange.lastNYears"
7443
7506
  }
7444
- ], ga = [
7507
+ ], Sa = [
7445
7508
  {
7446
7509
  id: "today",
7447
7510
  label: "Today",
@@ -7477,7 +7540,7 @@ var ha = [
7477
7540
  label: "12M",
7478
7541
  value: "last 12 months"
7479
7542
  }
7480
- ], _a = [
7543
+ ], Ca = [
7481
7544
  {
7482
7545
  id: "wtd",
7483
7546
  label: "Week to Date",
@@ -7499,11 +7562,11 @@ var ha = [
7499
7562
  value: "this year"
7500
7563
  }
7501
7564
  ];
7502
- function va(e) {
7565
+ function wa(e) {
7503
7566
  let t = new Date(e), n = t.getDay(), r = n === 0 ? 6 : n - 1;
7504
7567
  return t.setDate(t.getDate() - r), t;
7505
7568
  }
7506
- function ya(e, t, n) {
7569
+ function Ta(e, t, n) {
7507
7570
  switch (e) {
7508
7571
  case "today": return {
7509
7572
  start: t,
@@ -7519,7 +7582,7 @@ function ya(e, t, n) {
7519
7582
  };
7520
7583
  }
7521
7584
  case "this week": return {
7522
- start: va(t),
7585
+ start: wa(t),
7523
7586
  end: n
7524
7587
  };
7525
7588
  case "this month": return {
@@ -7540,7 +7603,7 @@ function ya(e, t, n) {
7540
7603
  default: return null;
7541
7604
  }
7542
7605
  }
7543
- function ba(e, t, n) {
7606
+ function Ea(e, t, n) {
7544
7607
  let r = e.match(/^last\s+(\d+)\s+(day|days|week|weeks|month|months|quarter|quarters|year|years)$/i);
7545
7608
  if (!r) return null;
7546
7609
  let i = parseInt(r[1], 10), a = r[2].toLowerCase(), o = new Date(t);
@@ -7549,7 +7612,7 @@ function ba(e, t, n) {
7549
7612
  end: n
7550
7613
  };
7551
7614
  }
7552
- function xa(e, t) {
7615
+ function Da(e, t) {
7553
7616
  let n = e.match(/^last\s+(week|month|quarter|year)$/i);
7554
7617
  if (!n) return null;
7555
7618
  let r = n[1].toLowerCase();
@@ -7582,13 +7645,13 @@ function xa(e, t) {
7582
7645
  end: a
7583
7646
  };
7584
7647
  }
7585
- function Sa(e) {
7648
+ function Oa(e) {
7586
7649
  let t = /* @__PURE__ */ new Date();
7587
7650
  t.setHours(0, 0, 0, 0);
7588
7651
  let n = new Date(t);
7589
- return n.setHours(23, 59, 59, 999), ya(e.toLowerCase(), t, n) ?? ba(e, t, n) ?? xa(e, t);
7652
+ return n.setHours(23, 59, 59, 999), Ta(e.toLowerCase(), t, n) ?? Ea(e, t, n) ?? Da(e, t);
7590
7653
  }
7591
- function Ca(e, t) {
7654
+ function ka(e, t) {
7592
7655
  let n = {
7593
7656
  month: "short",
7594
7657
  day: "numeric",
@@ -7599,20 +7662,20 @@ function Ca(e, t) {
7599
7662
  day: "numeric"
7600
7663
  })} - ${i}` : `${r} - ${i}`;
7601
7664
  }
7602
- function wa(e) {
7665
+ function Aa(e) {
7603
7666
  if (!e) return null;
7604
7667
  if (Array.isArray(e)) return "custom";
7605
- let t = e.toLowerCase().trim(), n = [...ga, ..._a].find((e) => e.value.toLowerCase() === t);
7668
+ let t = e.toLowerCase().trim(), n = [...Sa, ...Ca].find((e) => e.value.toLowerCase() === t);
7606
7669
  return n ? n.id : "custom";
7607
7670
  }
7608
- var Ta = {
7671
+ var ja = {
7609
7672
  day: "days",
7610
7673
  week: "weeks",
7611
7674
  month: "months",
7612
7675
  quarter: "quarters",
7613
7676
  year: "years"
7614
7677
  };
7615
- function Ea(e) {
7678
+ function Ma(e) {
7616
7679
  if (!e) return null;
7617
7680
  if (Array.isArray(e)) return { rangeType: "custom" };
7618
7681
  let t = e.match(/^last (\d+) (days|weeks|months|quarters|years)$/);
@@ -7627,16 +7690,16 @@ function Ea(e) {
7627
7690
  if (n) {
7628
7691
  let [, e] = n;
7629
7692
  return {
7630
- rangeType: `last_n_${Ta[e] ?? "years"}`,
7693
+ rangeType: `last_n_${ja[e] ?? "years"}`,
7631
7694
  numberValue: 1
7632
7695
  };
7633
7696
  }
7634
- for (let t of ha) if (t.value !== "custom" && !w(t.value) && O(t.value) === e) return { rangeType: t.value };
7697
+ for (let t of xa) if (t.value !== "custom" && !w(t.value) && O(t.value) === e) return { rangeType: t.value };
7635
7698
  return { rangeType: "custom" };
7636
7699
  }
7637
7700
  //#endregion
7638
7701
  //#region src/client/components/DashboardFilters/dashboardFilterConfigModalUtils.ts
7639
- function Da(e, t) {
7702
+ function Na(e, t) {
7640
7703
  if (t === "number") {
7641
7704
  let t = parseFloat(e);
7642
7705
  return isNaN(t) ? e === "" || e === "-" ? [] : null : [t];
@@ -7645,7 +7708,7 @@ function Da(e, t) {
7645
7708
  }
7646
7709
  //#endregion
7647
7710
  //#region src/client/components/DashboardFilters/useFilterDropdowns.ts
7648
- function Oa() {
7711
+ function Pa() {
7649
7712
  let e = q(null), [t, n] = J(!1), [r, i] = J(!1), [a, o] = J(!1);
7650
7713
  return G(() => {
7651
7714
  let t = (t) => {
@@ -7664,7 +7727,7 @@ function Oa() {
7664
7727
  }
7665
7728
  //#endregion
7666
7729
  //#region src/client/components/DashboardFilters/useFilterValueFetch.ts
7667
- function ka({ localFilter: e, setLocalFilter: t, operatorMeta: n, shouldShowComboBox: r, isValueDropdownOpen: i, setIsValueDropdownOpen: a }) {
7730
+ function Fa({ localFilter: e, setLocalFilter: t, operatorMeta: n, shouldShowComboBox: r, isValueDropdownOpen: i, setIsValueDropdownOpen: a }) {
7668
7731
  let [o, s] = J(""), c = N(o, 300), { values: l, loading: u, error: d, searchValues: f } = P(e.member, r);
7669
7732
  return G(() => {
7670
7733
  i && r && f && f("", !0);
@@ -7711,11 +7774,11 @@ function ka({ localFilter: e, setLocalFilter: t, operatorMeta: n, shouldShowComb
7711
7774
  }
7712
7775
  //#endregion
7713
7776
  //#region src/client/components/DashboardFilters/useDateRangeState.ts
7714
- function Aa({ localFilter: e, setLocalFilter: t, shouldShowDateRange: n, setIsDateRangeDropdownOpen: r }) {
7777
+ function Ia({ localFilter: e, setLocalFilter: t, shouldShowDateRange: n, setIsDateRangeDropdownOpen: r }) {
7715
7778
  let [i, a] = J("this_month"), [o, s] = J(1);
7716
7779
  return G(() => {
7717
7780
  if (!n) return;
7718
- let t = Ea(e.dateRange);
7781
+ let t = Ma(e.dateRange);
7719
7782
  t && (a(t.rangeType), t.numberValue !== void 0 && s(t.numberValue));
7720
7783
  }, [e.dateRange, n]), {
7721
7784
  rangeType: i,
@@ -7768,24 +7831,24 @@ function Aa({ localFilter: e, setLocalFilter: t, shouldShowDateRange: n, setIsDa
7768
7831
  }
7769
7832
  //#endregion
7770
7833
  //#region src/client/components/DashboardFilters/useDashboardFilterConfigModal.ts
7771
- function ja({ initialFilter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i }) {
7772
- let { t: a } = R(), [o, s] = J(e.label), [c, l] = J(e.filter), [u, d] = J(!1), [f, p] = J(!1), m = Oa(), { setIsOperatorDropdownOpen: h, setIsValueDropdownOpen: g, setIsDateRangeDropdownOpen: _ } = m, v = u ? t : n;
7834
+ function La({ initialFilter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i }) {
7835
+ let { t: a } = R(), [o, s] = J(e.label), [c, l] = J(e.filter), [u, d] = J(!1), [f, p] = J(!1), m = Pa(), { setIsOperatorDropdownOpen: h, setIsValueDropdownOpen: g, setIsDateRangeDropdownOpen: _ } = m, v = u ? t : n;
7773
7836
  G(() => {
7774
7837
  r && (s(e.label), l(e.filter));
7775
7838
  }, [e, r]);
7776
- let y = Hi(c.member, v), b = y?.field.type || "string", x = b === "time", S = y?.fieldType === "measure", C = y?.fieldType === "dimension", w = Ui(c.member, v), T = qe[c.operator], E = Xe(b), D = x && c.operator === "inDateRange", O = [
7839
+ let y = Ji(c.member, v), b = y?.field.type || "string", x = b === "time", S = y?.fieldType === "measure", C = y?.fieldType === "dimension", w = Yi(c.member, v), T = qe[c.operator], E = Xe(b), D = x && c.operator === "inDateRange", O = [
7777
7840
  "equals",
7778
7841
  "notEquals",
7779
7842
  "in",
7780
7843
  "notIn"
7781
- ].includes(c.operator) && C && !x, k = ka({
7844
+ ].includes(c.operator) && C && !x, k = Fa({
7782
7845
  localFilter: c,
7783
7846
  setLocalFilter: l,
7784
7847
  operatorMeta: T,
7785
7848
  shouldShowComboBox: O,
7786
7849
  isValueDropdownOpen: m.isValueDropdownOpen,
7787
7850
  setIsValueDropdownOpen: g
7788
- }), A = Aa({
7851
+ }), A = Ia({
7789
7852
  localFilter: c,
7790
7853
  setLocalFilter: l,
7791
7854
  shouldShowDateRange: D,
@@ -7804,7 +7867,7 @@ function ja({ initialFilter: e, fullSchema: t, filteredSchema: n, isOpen: r, onS
7804
7867
  values: []
7805
7868
  }), h(!1);
7806
7869
  }, [c.member, h]), N = W((e) => {
7807
- let t = Da(e.target.value, T?.valueType);
7870
+ let t = Na(e.target.value, T?.valueType);
7808
7871
  t !== null && l({
7809
7872
  ...c,
7810
7873
  values: t
@@ -7849,7 +7912,7 @@ function ja({ initialFilter: e, fullSchema: t, filteredSchema: n, isOpen: r, onS
7849
7912
  c,
7850
7913
  i,
7851
7914
  a
7852
- ]), I = a(E.find((e) => e.operator === c.operator)?.label || c.operator), ne = a(ha.find((e) => e.value === A.rangeType)?.label || "filter.modal.selectRange");
7915
+ ]), I = a(E.find((e) => e.operator === c.operator)?.label || c.operator), ne = a(xa.find((e) => e.value === A.rangeType)?.label || "filter.modal.selectRange");
7853
7916
  return {
7854
7917
  localLabel: o,
7855
7918
  setLocalLabel: s,
@@ -7886,8 +7949,8 @@ function ja({ initialFilter: e, fullSchema: t, filteredSchema: n, isOpen: r, onS
7886
7949
  }
7887
7950
  //#endregion
7888
7951
  //#region src/client/components/DashboardFilters/DashboardFilterValueInput.tsx
7889
- var Ma = v("close"), Na = v("chevronDown");
7890
- function Pa(e) {
7952
+ var Ra = v("close"), za = v("chevronDown");
7953
+ function Ba(e) {
7891
7954
  let { t } = R(), { filter: n, rangeType: r, numberValue: i, dateRangeLabel: a, isDateRangeDropdownOpen: o, setIsOperatorDropdownOpen: s, setIsValueDropdownOpen: c, setIsDateRangeDropdownOpen: l, handleRangeTypeChange: u, handleNumberValueChange: d, handleCustomStartDate: f, handleCustomEndDate: p } = e;
7892
7955
  return /* @__PURE__ */ Z("div", {
7893
7956
  className: "dc:space-y-2",
@@ -7902,10 +7965,10 @@ function Pa(e) {
7902
7965
  children: [/* @__PURE__ */ X("span", {
7903
7966
  className: "dc:truncate",
7904
7967
  children: a
7905
- }), /* @__PURE__ */ X(Na, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${o ? "dc:rotate-180" : ""}` })]
7968
+ }), /* @__PURE__ */ X(za, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${o ? "dc:rotate-180" : ""}` })]
7906
7969
  }), o && /* @__PURE__ */ X("div", {
7907
7970
  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",
7908
- children: ha.map((e) => /* @__PURE__ */ X("button", {
7971
+ children: xa.map((e) => /* @__PURE__ */ X("button", {
7909
7972
  onClick: () => u(e.value),
7910
7973
  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"}`,
7911
7974
  children: t(e.label)
@@ -7950,7 +8013,7 @@ function Pa(e) {
7950
8013
  ]
7951
8014
  });
7952
8015
  }
7953
- function Fa(e) {
8016
+ function Va(e) {
7954
8017
  let { t } = R(), { filter: n, distinctValues: r, valuesLoading: i, valuesError: a, handleValueSelect: o } = e;
7955
8018
  return i ? /* @__PURE__ */ X("div", {
7956
8019
  className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
@@ -7976,7 +8039,7 @@ function Fa(e) {
7976
8039
  })
7977
8040
  });
7978
8041
  }
7979
- function Ia(e) {
8042
+ function Ha(e) {
7980
8043
  let { t } = R(), { filter: n, isValueDropdownOpen: r, valuesLoading: i, searchText: a, setSearchText: o, setIsOperatorDropdownOpen: s, setIsValueDropdownOpen: c, setIsDateRangeDropdownOpen: l, handleValueRemove: u } = e;
7981
8044
  return /* @__PURE__ */ Z("div", {
7982
8045
  className: "dc:space-y-2",
@@ -7990,7 +8053,7 @@ function Ia(e) {
7990
8053
  }), /* @__PURE__ */ X("button", {
7991
8054
  onClick: () => u(e),
7992
8055
  className: "hover:text-dc-danger",
7993
- children: /* @__PURE__ */ X(Ma, { className: "dc:w-3.5 dc:h-3.5" })
8056
+ children: /* @__PURE__ */ X(Ra, { className: "dc:w-3.5 dc:h-3.5" })
7994
8057
  })]
7995
8058
  }, t))
7996
8059
  }), /* @__PURE__ */ Z("div", {
@@ -8003,7 +8066,7 @@ function Ia(e) {
8003
8066
  children: [/* @__PURE__ */ X("span", {
8004
8067
  className: "text-dc-text-muted dc:truncate",
8005
8068
  children: i ? "Loading..." : "Select value..."
8006
- }), /* @__PURE__ */ X(Na, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${r ? "dc:rotate-180" : ""}` })]
8069
+ }), /* @__PURE__ */ X(za, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${r ? "dc:rotate-180" : ""}` })]
8007
8070
  }), r && /* @__PURE__ */ Z("div", {
8008
8071
  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",
8009
8072
  children: [/* @__PURE__ */ X("div", {
@@ -8016,14 +8079,14 @@ function Ia(e) {
8016
8079
  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",
8017
8080
  autoFocus: !0
8018
8081
  })
8019
- }), /* @__PURE__ */ X(Fa, { ...e })]
8082
+ }), /* @__PURE__ */ X(Va, { ...e })]
8020
8083
  })]
8021
8084
  })]
8022
8085
  });
8023
8086
  }
8024
- function La(e) {
8087
+ function Ua(e) {
8025
8088
  let { t } = R(), { filter: n, operatorMeta: r, shouldShowDateRange: i, shouldShowComboBox: a, handleBetweenStartInput: o, handleBetweenEndInput: s, handleDateInput: c, handleDirectInput: l } = e;
8026
- return r?.requiresValues ? i ? /* @__PURE__ */ X(Pa, { ...e }) : n.operator === "between" || n.operator === "notBetween" ? /* @__PURE__ */ Z("div", {
8089
+ return r?.requiresValues ? i ? /* @__PURE__ */ X(Ba, { ...e }) : n.operator === "between" || n.operator === "notBetween" ? /* @__PURE__ */ Z("div", {
8027
8090
  className: "dc:flex dc:items-center dc:gap-2",
8028
8091
  children: [
8029
8092
  /* @__PURE__ */ X("input", {
@@ -8056,7 +8119,7 @@ function La(e) {
8056
8119
  onChange: l,
8057
8120
  placeholder: "Enter number",
8058
8121
  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"
8059
- }) : a ? /* @__PURE__ */ X(Ia, { ...e }) : /* @__PURE__ */ X("input", {
8122
+ }) : a ? /* @__PURE__ */ X(Ha, { ...e }) : /* @__PURE__ */ X("input", {
8060
8123
  type: "text",
8061
8124
  value: n.values?.[0] ?? "",
8062
8125
  onChange: l,
@@ -8069,9 +8132,9 @@ function La(e) {
8069
8132
  }
8070
8133
  //#endregion
8071
8134
  //#region src/client/components/DashboardFilters/DashboardFilterConfigModalParts.tsx
8072
- var Ra = v("chevronDown"), za = v("dimension"), Ba = v("timeDimension"), Va = v("measure"), Ha = v("edit"), Ua = v("eye"), Wa = v("eyeOff");
8073
- function Ga({ localFilter: e, activeSchema: t, isTimeField: n, isMeasureField: r, showAllFields: i, setShowAllFields: a, setShowFieldSearch: o }) {
8074
- let { t: s } = R(), c = Ui(e.member, t), l = n ? Ba : r ? Va : za, u = n ? "bg-dc-time-dimension" : r ? "bg-dc-measure" : "bg-dc-dimension", d = n ? "text-dc-time-dimension-text" : r ? "text-dc-measure-text" : "text-dc-dimension-text";
8135
+ var Wa = v("chevronDown"), Ga = v("dimension"), Ka = v("timeDimension"), qa = v("measure"), Ja = v("edit"), Ya = v("eye"), Xa = v("eyeOff");
8136
+ function Za({ localFilter: e, activeSchema: t, isTimeField: n, isMeasureField: r, showAllFields: i, setShowAllFields: a, setShowFieldSearch: o }) {
8137
+ let { t: s } = R(), c = Yi(e.member, t), l = n ? Ka : r ? qa : Ga, u = n ? "bg-dc-time-dimension" : r ? "bg-dc-measure" : "bg-dc-dimension", d = n ? "text-dc-time-dimension-text" : r ? "text-dc-measure-text" : "text-dc-dimension-text";
8075
8138
  return /* @__PURE__ */ Z("div", { children: [/* @__PURE__ */ Z("div", {
8076
8139
  className: "dc:flex dc:items-center dc:justify-between dc:mb-2",
8077
8140
  children: [/* @__PURE__ */ X("label", {
@@ -8081,7 +8144,7 @@ function Ga({ localFilter: e, activeSchema: t, isTimeField: n, isMeasureField: r
8081
8144
  onClick: () => a(!i),
8082
8145
  className: "dc:flex dc:items-center dc:gap-1 dc:text-xs dc:px-2 dc:py-1 dc:rounded-sm hover:bg-dc-surface-hover text-dc-text-muted",
8083
8146
  title: i ? "Show dashboard fields only" : "Show all fields",
8084
- children: i ? /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X(Wa, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ X("span", { children: s("dashboardFilter.dashboard") })] }) : /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X(Ua, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ X("span", { children: s("dashboardFilter.all") })] })
8147
+ children: i ? /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X(Xa, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ X("span", { children: s("dashboardFilter.dashboard") })] }) : /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X(Ya, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ X("span", { children: s("dashboardFilter.all") })] })
8085
8148
  })]
8086
8149
  }), /* @__PURE__ */ Z("button", {
8087
8150
  onClick: () => o(!0),
@@ -8094,14 +8157,14 @@ function Ga({ localFilter: e, activeSchema: t, isTimeField: n, isMeasureField: r
8094
8157
  children: c
8095
8158
  })] }) : /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X("span", {
8096
8159
  className: "dc:w-6 dc:h-6 dc:flex dc:items-center dc:justify-center dc:rounded-sm bg-dc-surface-tertiary text-dc-text-muted",
8097
- children: /* @__PURE__ */ X(za, { className: "dc:w-4 dc:h-4" })
8160
+ children: /* @__PURE__ */ X(Ga, { className: "dc:w-4 dc:h-4" })
8098
8161
  }), /* @__PURE__ */ X("span", {
8099
8162
  className: "dc:flex-1 dc:text-sm text-dc-text-muted dc:text-left",
8100
8163
  children: s("dashboardFilter.clickToSelectField")
8101
- })] }), /* @__PURE__ */ X(Ha, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })]
8164
+ })] }), /* @__PURE__ */ X(Ja, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })]
8102
8165
  })] });
8103
8166
  }
8104
- function Ka({ localFilter: e, operatorLabel: t, availableOperators: n, isOperatorDropdownOpen: r, setIsOperatorDropdownOpen: i, setIsValueDropdownOpen: a, setIsDateRangeDropdownOpen: o, handleOperatorChange: s }) {
8167
+ function Qa({ localFilter: e, operatorLabel: t, availableOperators: n, isOperatorDropdownOpen: r, setIsOperatorDropdownOpen: i, setIsValueDropdownOpen: a, setIsDateRangeDropdownOpen: o, handleOperatorChange: s }) {
8105
8168
  let { t: c } = R();
8106
8169
  return /* @__PURE__ */ Z("div", { children: [/* @__PURE__ */ X("label", {
8107
8170
  className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
@@ -8116,7 +8179,7 @@ function Ka({ localFilter: e, operatorLabel: t, availableOperators: n, isOperato
8116
8179
  children: [/* @__PURE__ */ X("span", {
8117
8180
  className: "dc:truncate",
8118
8181
  children: t
8119
- }), /* @__PURE__ */ X(Ra, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${r ? "dc:rotate-180" : ""}` })]
8182
+ }), /* @__PURE__ */ X(Wa, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${r ? "dc:rotate-180" : ""}` })]
8120
8183
  }), r && /* @__PURE__ */ X("div", {
8121
8184
  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",
8122
8185
  children: n.map((t) => /* @__PURE__ */ X("button", {
@@ -8129,9 +8192,9 @@ function Ka({ localFilter: e, operatorLabel: t, availableOperators: n, isOperato
8129
8192
  }
8130
8193
  //#endregion
8131
8194
  //#region src/client/components/DashboardFilters/DashboardFilterConfigModal.tsx
8132
- var qa = v("close");
8133
- function Ja({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i, onDelete: a, onClose: o }) {
8134
- let { t: s } = R(), c = ja({
8195
+ var $a = v("close");
8196
+ function eo({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i, onDelete: a, onClose: o }) {
8197
+ let { t: s } = R(), c = La({
8135
8198
  initialFilter: e,
8136
8199
  fullSchema: t,
8137
8200
  filteredSchema: n,
@@ -8139,7 +8202,7 @@ function Ja({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8139
8202
  onSave: i
8140
8203
  });
8141
8204
  if (!r) return null;
8142
- let { localLabel: l, setLocalLabel: u, localFilter: d, showAllFields: f, setShowAllFields: p, showFieldSearch: m, setShowFieldSearch: h, field: g, dropdowns: _, values: v, dateRange: y, handleFieldSelected: b, handleOperatorChange: x, handleDirectInput: S, handleBetweenStartInput: C, handleBetweenEndInput: w, handleDateInput: T, handleSave: E } = c, { containerRef: D, isOperatorDropdownOpen: O, setIsOperatorDropdownOpen: k, isValueDropdownOpen: A, setIsValueDropdownOpen: j, isDateRangeDropdownOpen: M, setIsDateRangeDropdownOpen: N } = _, { activeSchema: P, isTimeField: ee, isMeasureField: te, operatorMeta: F, availableOperators: I, operatorLabel: ne, shouldShowDateRange: L, shouldShowComboBox: z } = g, { distinctValues: B, valuesLoading: re, valuesError: ie, searchText: ae, setSearchText: oe, handleValueSelect: se, handleValueRemove: ce } = v, { rangeType: le, numberValue: ue, dateRangeLabel: de, handleRangeTypeChange: fe, handleNumberValueChange: pe, handleCustomStartDate: me, handleCustomEndDate: V } = y, he = !e.isUniversalTime, ge = d.member && !e.isUniversalTime, H = d.member && !e.isUniversalTime;
8205
+ let { localLabel: l, setLocalLabel: u, localFilter: d, showAllFields: f, setShowAllFields: p, showFieldSearch: m, setShowFieldSearch: h, field: g, dropdowns: _, values: v, dateRange: y, handleFieldSelected: b, handleOperatorChange: x, handleDirectInput: S, handleBetweenStartInput: C, handleBetweenEndInput: w, handleDateInput: T, handleSave: E } = c, { containerRef: D, isOperatorDropdownOpen: O, setIsOperatorDropdownOpen: k, isValueDropdownOpen: A, setIsValueDropdownOpen: j, isDateRangeDropdownOpen: M, setIsDateRangeDropdownOpen: N } = _, { activeSchema: P, isTimeField: ee, isMeasureField: te, operatorMeta: F, availableOperators: I, operatorLabel: ne, shouldShowDateRange: L, shouldShowComboBox: z } = g, { distinctValues: B, valuesLoading: re, valuesError: ie, searchText: ae, setSearchText: oe, handleValueSelect: se, handleValueRemove: ce } = v, { rangeType: le, numberValue: ue, dateRangeLabel: de, handleRangeTypeChange: fe, handleNumberValueChange: pe, handleCustomStartDate: V, handleCustomEndDate: H } = y, me = !e.isUniversalTime, he = d.member && !e.isUniversalTime, U = d.member && !e.isUniversalTime;
8143
8206
  return /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X("div", {
8144
8207
  className: "dc:fixed dc:inset-0 dc:z-50 dc:flex dc:items-center dc:justify-center dc:p-4",
8145
8208
  style: { backgroundColor: "var(--dc-overlay)" },
@@ -8158,7 +8221,7 @@ function Ja({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8158
8221
  }), /* @__PURE__ */ X("button", {
8159
8222
  onClick: o,
8160
8223
  className: "dc:p-1 text-dc-text-muted hover:text-dc-text dc:transition-colors",
8161
- children: /* @__PURE__ */ X(qa, { className: "dc:w-5 dc:h-5" })
8224
+ children: /* @__PURE__ */ X($a, { className: "dc:w-5 dc:h-5" })
8162
8225
  })]
8163
8226
  }),
8164
8227
  /* @__PURE__ */ Z("div", {
@@ -8184,7 +8247,7 @@ function Ja({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8184
8247
  children: s("dashboardFilter.universalTimeDescription")
8185
8248
  })]
8186
8249
  }),
8187
- he && /* @__PURE__ */ X(Ga, {
8250
+ me && /* @__PURE__ */ X(Za, {
8188
8251
  localFilter: d,
8189
8252
  activeSchema: P,
8190
8253
  isTimeField: ee,
@@ -8193,7 +8256,7 @@ function Ja({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8193
8256
  setShowAllFields: p,
8194
8257
  setShowFieldSearch: h
8195
8258
  }),
8196
- ge && /* @__PURE__ */ X(Ka, {
8259
+ he && /* @__PURE__ */ X(Qa, {
8197
8260
  localFilter: d,
8198
8261
  operatorLabel: ne,
8199
8262
  availableOperators: I,
@@ -8203,10 +8266,10 @@ function Ja({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8203
8266
  setIsDateRangeDropdownOpen: N,
8204
8267
  handleOperatorChange: x
8205
8268
  }),
8206
- H && /* @__PURE__ */ Z("div", { children: [/* @__PURE__ */ X("label", {
8269
+ U && /* @__PURE__ */ Z("div", { children: [/* @__PURE__ */ X("label", {
8207
8270
  className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
8208
8271
  children: s("dashboardFilter.defaultValue")
8209
- }), /* @__PURE__ */ X(La, {
8272
+ }), /* @__PURE__ */ X(Ua, {
8210
8273
  filter: d,
8211
8274
  operatorMeta: F,
8212
8275
  shouldShowDateRange: L,
@@ -8220,8 +8283,8 @@ function Ja({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8220
8283
  setIsDateRangeDropdownOpen: N,
8221
8284
  handleRangeTypeChange: fe,
8222
8285
  handleNumberValueChange: pe,
8223
- handleCustomStartDate: me,
8224
- handleCustomEndDate: V,
8286
+ handleCustomStartDate: V,
8287
+ handleCustomEndDate: H,
8225
8288
  handleBetweenStartInput: C,
8226
8289
  handleBetweenEndInput: w,
8227
8290
  handleDateInput: T,
@@ -8258,7 +8321,7 @@ function Ja({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8258
8321
  })
8259
8322
  ]
8260
8323
  })
8261
- }), m && /* @__PURE__ */ X(ma, {
8324
+ }), m && /* @__PURE__ */ X(ba, {
8262
8325
  isOpen: m,
8263
8326
  onClose: () => h(!1),
8264
8327
  onSelect: b,
@@ -8269,7 +8332,7 @@ function Ja({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8269
8332
  }
8270
8333
  //#endregion
8271
8334
  //#region src/client/components/DashboardFilters/FilterEditModal.tsx
8272
- var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onClose: a, onDelete: o, convertToMetaResponse: s }) => {
8335
+ var to = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onClose: a, onDelete: o, convertToMetaResponse: s }) => {
8273
8336
  let c = K(() => s(t), [t, s]), l = K(() => at(n), [n]), u = K(() => {
8274
8337
  if (!t) return null;
8275
8338
  let e = t.cubes.map((e) => {
@@ -8301,7 +8364,7 @@ var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8301
8364
  console.error("Failed to save filter:", e), alert("Failed to save filter. Please try again.");
8302
8365
  }
8303
8366
  }, [i, a]);
8304
- return r ? /* @__PURE__ */ X(Ja, {
8367
+ return r ? /* @__PURE__ */ X(eo, {
8305
8368
  filter: e,
8306
8369
  fullSchema: c,
8307
8370
  filteredSchema: u,
@@ -8310,7 +8373,7 @@ var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8310
8373
  onDelete: o,
8311
8374
  onClose: a
8312
8375
  }) : null;
8313
- }, Xa = v("filter"), Za = v("add"), Qa = v("close"), $a = v("edit"), eo = v("chevronDown"), to = v("timeDimension"), no = ({ dashboardFilters: e, onAddFilter: t, onAddTimeFilter: n, onEditFilter: r, onRemoveFilter: i, selectedFilterId: a, onFilterSelect: o }) => {
8376
+ }, no = v("filter"), ro = v("add"), io = v("close"), ao = v("edit"), oo = v("chevronDown"), so = v("timeDimension"), co = ({ dashboardFilters: e, onAddFilter: t, onAddTimeFilter: n, onEditFilter: r, onRemoveFilter: i, selectedFilterId: a, onFilterSelect: o }) => {
8314
8377
  let { t: s } = R(), [c, l] = de.useState(!1), u = (e) => {
8315
8378
  let { id: t, label: n, isUniversalTime: s } = e, c = a === t;
8316
8379
  return /* @__PURE__ */ Z("div", {
@@ -8326,7 +8389,7 @@ var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8326
8389
  o && o(t);
8327
8390
  },
8328
8391
  children: [
8329
- /* @__PURE__ */ X(s ? to : Xa, {
8392
+ /* @__PURE__ */ X(s ? so : no, {
8330
8393
  className: "dc:w-3.5 dc:h-3.5 dc:shrink-0",
8331
8394
  style: { color: c ? "white" : "var(--dc-primary)" }
8332
8395
  }),
@@ -8341,12 +8404,12 @@ var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8341
8404
  onClick: () => r(t),
8342
8405
  className: "dc:p-0.5 hover:bg-dc-hover dc:rounded-sm dc:transition-colors",
8343
8406
  title: "Edit filter",
8344
- children: /* @__PURE__ */ X($a, { className: "dc:w-3 dc:h-3" })
8407
+ children: /* @__PURE__ */ X(ao, { className: "dc:w-3 dc:h-3" })
8345
8408
  }), /* @__PURE__ */ X("button", {
8346
8409
  onClick: () => i(t),
8347
8410
  className: "dc:p-0.5 hover:bg-dc-danger-bg hover:text-dc-danger dc:rounded-sm dc:transition-colors",
8348
8411
  title: "Remove filter",
8349
- children: /* @__PURE__ */ X(Qa, { className: "dc:w-3 dc:h-3" })
8412
+ children: /* @__PURE__ */ X(io, { className: "dc:w-3 dc:h-3" })
8350
8413
  })]
8351
8414
  })
8352
8415
  ]
@@ -8361,7 +8424,7 @@ var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8361
8424
  children: [/* @__PURE__ */ Z("div", {
8362
8425
  className: "dc:flex dc:items-center dc:gap-2",
8363
8426
  children: [
8364
- /* @__PURE__ */ X(Xa, {
8427
+ /* @__PURE__ */ X(no, {
8365
8428
  className: "dc:w-4 dc:h-4 dc:shrink-0",
8366
8429
  style: { color: "var(--dc-primary)" }
8367
8430
  }),
@@ -8378,7 +8441,7 @@ var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8378
8441
  },
8379
8442
  children: e.length
8380
8443
  }),
8381
- /* @__PURE__ */ X(eo, {
8444
+ /* @__PURE__ */ X(oo, {
8382
8445
  className: `dc:w-4 dc:h-4 dc:transition-transform ${c ? "" : "dc:rotate-180"}`,
8383
8446
  style: { color: "var(--dc-text-secondary)" }
8384
8447
  })
@@ -8396,7 +8459,7 @@ var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8396
8459
  border: "1px solid var(--dc-border)"
8397
8460
  },
8398
8461
  title: "Add date range filter (applies to all time dimensions)",
8399
- children: [/* @__PURE__ */ X(Za, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ X(to, { className: "dc:w-3.5 dc:h-3.5" })]
8462
+ children: [/* @__PURE__ */ X(ro, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ X(so, { className: "dc:w-3.5 dc:h-3.5" })]
8400
8463
  }), /* @__PURE__ */ X("button", {
8401
8464
  onClick: (e) => {
8402
8465
  e.stopPropagation(), t();
@@ -8406,7 +8469,7 @@ var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8406
8469
  backgroundColor: "var(--dc-primary)",
8407
8470
  color: "white"
8408
8471
  },
8409
- children: /* @__PURE__ */ X(Za, { className: "dc:w-3.5 dc:h-3.5" })
8472
+ children: /* @__PURE__ */ X(ro, { className: "dc:w-3.5 dc:h-3.5" })
8410
8473
  })]
8411
8474
  })]
8412
8475
  }),
@@ -8432,7 +8495,7 @@ var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8432
8495
  /* @__PURE__ */ Z("div", {
8433
8496
  className: "dc:flex dc:items-center dc:gap-2 dc:shrink-0",
8434
8497
  children: [
8435
- /* @__PURE__ */ X(Xa, {
8498
+ /* @__PURE__ */ X(no, {
8436
8499
  className: "dc:w-4 dc:h-4 dc:shrink-0",
8437
8500
  style: { color: "var(--dc-primary)" }
8438
8501
  }),
@@ -8476,7 +8539,7 @@ var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8476
8539
  border: "1px solid var(--dc-border)"
8477
8540
  },
8478
8541
  title: "Add date range filter (applies to all time dimensions)",
8479
- children: [/* @__PURE__ */ X(Za, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ X("span", { children: s("dashboardFilter.editMode.dateRange") })]
8542
+ children: [/* @__PURE__ */ X(ro, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ X("span", { children: s("dashboardFilter.editMode.dateRange") })]
8480
8543
  }), /* @__PURE__ */ Z("button", {
8481
8544
  onClick: t,
8482
8545
  className: "dc:inline-flex dc:items-center dc:gap-1 dc:px-2 dc:py-1 dc:rounded-md dc:text-xs dc:font-medium dc:transition-colors dc:hover:opacity-80",
@@ -8484,35 +8547,35 @@ var Ya = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8484
8547
  backgroundColor: "var(--dc-primary)",
8485
8548
  color: "white"
8486
8549
  },
8487
- children: [/* @__PURE__ */ X(Za, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ X("span", { children: s("dashboardFilter.editMode.filter") })]
8550
+ children: [/* @__PURE__ */ X(ro, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ X("span", { children: s("dashboardFilter.editMode.filter") })]
8488
8551
  })]
8489
8552
  })
8490
8553
  ]
8491
8554
  })] });
8492
- }, ro = {
8555
+ }, lo = {
8493
8556
  set: "is set",
8494
8557
  notSet: "is not set",
8495
8558
  isEmpty: "is empty",
8496
8559
  isNotEmpty: "is not empty"
8497
- }, io = {
8560
+ }, uo = {
8498
8561
  gt: ">",
8499
8562
  gte: ">=",
8500
8563
  lt: "<",
8501
8564
  lte: "<="
8502
- }, ao = {
8565
+ }, fo = {
8503
8566
  contains: "contains",
8504
8567
  notContains: "!contains",
8505
8568
  startsWith: "starts with",
8506
8569
  endsWith: "ends with"
8507
8570
  };
8508
- function oo(e) {
8571
+ function po(e) {
8509
8572
  return e === !0 ? "true" : e === !1 ? "false" : e == null ? "null" : String(e);
8510
8573
  }
8511
- function so(e, t) {
8512
- if (!e || e.length === 0) return ro[t] ?? "";
8513
- let n = e.map(oo);
8514
- if (io[t]) return `${io[t]} ${n[0]}`;
8515
- if (ao[t]) return `${ao[t]} "${n[0]}"`;
8574
+ function mo(e, t) {
8575
+ if (!e || e.length === 0) return lo[t] ?? "";
8576
+ let n = e.map(po);
8577
+ if (uo[t]) return `${uo[t]} ${n[0]}`;
8578
+ if (fo[t]) return `${fo[t]} "${n[0]}"`;
8516
8579
  switch (t) {
8517
8580
  case "equals": return n.length === 1 ? `= ${n[0]}` : `in (${n.join(", ")})`;
8518
8581
  case "notEquals": return n.length === 1 ? `!= ${n[0]}` : `not in (${n.join(", ")})`;
@@ -8526,7 +8589,7 @@ function so(e, t) {
8526
8589
  }
8527
8590
  //#endregion
8528
8591
  //#region src/client/components/DashboardFilters/useCompactFilterBar.ts
8529
- function co(e, t) {
8592
+ function ho(e, t) {
8530
8593
  let [n, r] = J(e);
8531
8594
  G(() => {
8532
8595
  r(e);
@@ -8535,10 +8598,10 @@ function co(e, t) {
8535
8598
  if (!u) return null;
8536
8599
  let e = u.filter;
8537
8600
  return e.dateRange ? e.dateRange : e.values && e.values.length > 0 ? e.values.length === 1 && typeof e.values[0] == "string" ? e.values[0] : e.values : null;
8538
- }, [u]), f = K(() => wa(d), [d]), p = K(() => {
8601
+ }, [u]), f = K(() => Aa(d), [d]), p = K(() => {
8539
8602
  if (!d || Array.isArray(d)) return null;
8540
- let e = wa(d);
8541
- return _a.find((t) => t.id === e)?.id || null;
8603
+ let e = Aa(d);
8604
+ return Ca.find((t) => t.id === e)?.id || null;
8542
8605
  }, [d]), m = K(() => n.filter((e) => !e.isUniversalTime), [n]), h = W(() => `df_${Date.now()}_${Math.random().toString(36).substring(7)}`, []), g = W((e) => {
8543
8606
  if (u) {
8544
8607
  let i = n.map((t) => t.id === u.id ? {
@@ -8597,26 +8660,26 @@ function co(e, t) {
8597
8660
  }, [n, t]),
8598
8661
  dateRangeTooltip: K(() => {
8599
8662
  if (!d) return null;
8600
- if (Array.isArray(d)) return Ca(new Date(d[0]), new Date(d[1] || d[0]));
8601
- let e = Sa(d);
8602
- return e ? Ca(e.start, e.end) : d;
8663
+ if (Array.isArray(d)) return ka(new Date(d[0]), new Date(d[1] || d[0]));
8664
+ let e = Oa(d);
8665
+ return e ? ka(e.start, e.end) : d;
8603
8666
  }, [d])
8604
8667
  };
8605
8668
  }
8606
8669
  //#endregion
8607
8670
  //#region src/client/components/DashboardFilters/DatePresetChips.tsx
8608
- var lo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8671
+ var go = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8609
8672
  let r = K(() => {
8610
8673
  let e = {};
8611
- for (let t of ga) {
8612
- let n = Sa(t.value);
8613
- n && (e[t.id] = Ca(n.start, n.end));
8674
+ for (let t of Sa) {
8675
+ let n = Oa(t.value);
8676
+ n && (e[t.id] = ka(n.start, n.end));
8614
8677
  }
8615
8678
  return e;
8616
8679
  }, []);
8617
8680
  return /* @__PURE__ */ X("div", {
8618
8681
  className: "dc:flex dc:items-center dc:gap-1",
8619
- children: ga.map((i) => {
8682
+ children: Sa.map((i) => {
8620
8683
  let a = e === i.id, o = r[i.id];
8621
8684
  return /* @__PURE__ */ X("button", {
8622
8685
  type: "button",
@@ -8645,7 +8708,7 @@ var lo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8645
8708
  }, i.id);
8646
8709
  })
8647
8710
  });
8648
- }, uo = [
8711
+ }, _o = [
8649
8712
  {
8650
8713
  value: "days",
8651
8714
  label: "Days"
@@ -8666,7 +8729,7 @@ var lo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8666
8729
  value: "years",
8667
8730
  label: "Years"
8668
8731
  }
8669
- ], fo = ({ isOpen: e, onClose: t, onDateRangeChange: n, currentDateRange: r }) => {
8732
+ ], vo = ({ isOpen: e, onClose: t, onDateRangeChange: n, currentDateRange: r }) => {
8670
8733
  let { t: i } = R(), a = q(null), [o, s] = J("fixed"), [c, l] = J(""), [u, d] = J(""), [f, p] = J(""), [m, h] = J(7), [g, _] = J("days");
8671
8734
  G(() => {
8672
8735
  if (r) {
@@ -8872,7 +8935,7 @@ var lo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8872
8935
  backgroundColor: "var(--dc-bg)",
8873
8936
  color: "var(--dc-text)"
8874
8937
  },
8875
- children: uo.map((e) => /* @__PURE__ */ X("option", {
8938
+ children: _o.map((e) => /* @__PURE__ */ X("option", {
8876
8939
  value: e.value,
8877
8940
  children: e.label
8878
8941
  }, e.value))
@@ -8918,7 +8981,7 @@ var lo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8918
8981
  })
8919
8982
  ]
8920
8983
  });
8921
- }, po = v("check"), mo = ({ isOpen: e, onClose: t, onSelect: n, currentXTD: r }) => {
8984
+ }, yo = v("check"), bo = ({ isOpen: e, onClose: t, onSelect: n, currentXTD: r }) => {
8922
8985
  let i = q(null);
8923
8986
  if (G(() => {
8924
8987
  if (!e) return;
@@ -8946,8 +9009,8 @@ var lo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8946
9009
  },
8947
9010
  onClick: a,
8948
9011
  onMouseDown: a,
8949
- children: _a.map((e) => {
8950
- let t = r === e.id, i = Sa(e.value), a = i ? Ca(i.start, i.end) : "";
9012
+ children: Ca.map((e) => {
9013
+ let t = r === e.id, i = Oa(e.value), a = i ? ka(i.start, i.end) : "";
8951
9014
  return /* @__PURE__ */ Z("button", {
8952
9015
  type: "button",
8953
9016
  onClick: () => n(e.value),
@@ -8972,21 +9035,21 @@ var lo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8972
9035
  style: { color: "var(--dc-text-secondary)" },
8973
9036
  children: a
8974
9037
  })]
8975
- }), t && /* @__PURE__ */ X(po, {
9038
+ }), t && /* @__PURE__ */ X(yo, {
8976
9039
  className: "dc:w-4 dc:h-4 dc:shrink-0",
8977
9040
  style: { color: "var(--dc-primary)" }
8978
9041
  })]
8979
9042
  }, e.id);
8980
9043
  })
8981
9044
  });
8982
- }, ho = [
9045
+ }, xo = [
8983
9046
  "equals",
8984
9047
  "notEquals",
8985
9048
  "in",
8986
9049
  "notIn"
8987
9050
  ];
8988
- function go({ fieldName: e, operator: t, values: n, onValuesChange: r, schema: i }) {
8989
- let a = qe[t], [o, s] = J(!1), [c, l] = J(""), [u, d] = J(!1), f = q(null), p = q(""), m = N(c, 300), h = K(() => i ? i.cubes.some((t) => t.dimensions.some((t) => t.name === e)) : !1, [i, e]), g = K(() => i ? i.cubes.some((t) => t.dimensions.some((t) => t.name === e && t.type === "time")) : !1, [i, e]), _ = K(() => ho.includes(t) && h && !g, [
9051
+ function So({ fieldName: e, operator: t, values: n, onValuesChange: r, schema: i }) {
9052
+ let a = qe[t], [o, s] = J(!1), [c, l] = J(""), [u, d] = J(!1), f = q(null), p = q(""), m = N(c, 300), h = K(() => i ? i.cubes.some((t) => t.dimensions.some((t) => t.name === e)) : !1, [i, e]), g = K(() => i ? i.cubes.some((t) => t.dimensions.some((t) => t.name === e && t.type === "time")) : !1, [i, e]), _ = K(() => xo.includes(t) && h && !g, [
8990
9053
  t,
8991
9054
  h,
8992
9055
  g
@@ -9068,14 +9131,14 @@ function go({ fieldName: e, operator: t, values: n, onValuesChange: r, schema: i
9068
9131
  }
9069
9132
  //#endregion
9070
9133
  //#region src/client/components/shared/filterValueSelector/FilterValueInputs.tsx
9071
- var _o = v("chevronDown"), vo = v("close"), yo = "dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-2 dc:py-1 bg-dc-surface text-dc-text dc:focus:ring-2 focus:ring-dc-accent focus:border-dc-accent";
9072
- function bo() {
9134
+ var Co = v("chevronDown"), wo = v("close"), To = "dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-2 dc:py-1 bg-dc-surface text-dc-text dc:focus:ring-2 focus:ring-dc-accent focus:border-dc-accent";
9135
+ function Eo() {
9073
9136
  return /* @__PURE__ */ X("div", {
9074
9137
  className: "dc:text-sm text-dc-text-muted dc:italic",
9075
9138
  children: "No value required"
9076
9139
  });
9077
9140
  }
9078
- function xo({ values: e, onStartChange: t, onEndChange: n }) {
9141
+ function Do({ values: e, onStartChange: t, onEndChange: n }) {
9079
9142
  return /* @__PURE__ */ Z("div", {
9080
9143
  className: "dc:flex dc:items-center dc:space-x-2",
9081
9144
  children: [
@@ -9083,7 +9146,7 @@ function xo({ values: e, onStartChange: t, onEndChange: n }) {
9083
9146
  type: "date",
9084
9147
  value: e[0] || "",
9085
9148
  onChange: t,
9086
- className: yo
9149
+ className: To
9087
9150
  }),
9088
9151
  /* @__PURE__ */ X("span", {
9089
9152
  className: "dc:text-sm text-dc-text-muted",
@@ -9093,12 +9156,12 @@ function xo({ values: e, onStartChange: t, onEndChange: n }) {
9093
9156
  type: "date",
9094
9157
  value: e[1] || "",
9095
9158
  onChange: n,
9096
- className: yo
9159
+ className: To
9097
9160
  })
9098
9161
  ]
9099
9162
  });
9100
9163
  }
9101
- function So({ values: e, onStartChange: t, onEndChange: n }) {
9164
+ function Oo({ values: e, onStartChange: t, onEndChange: n }) {
9102
9165
  return /* @__PURE__ */ Z("div", {
9103
9166
  className: "dc:flex dc:items-center dc:space-x-2",
9104
9167
  children: [
@@ -9107,7 +9170,7 @@ function So({ values: e, onStartChange: t, onEndChange: n }) {
9107
9170
  value: e[0] !== void 0 && e[0] !== null ? e[0] : "",
9108
9171
  onChange: t,
9109
9172
  placeholder: "Min",
9110
- className: yo
9173
+ className: To
9111
9174
  }),
9112
9175
  /* @__PURE__ */ X("span", {
9113
9176
  className: "dc:text-sm text-dc-text-muted",
@@ -9118,38 +9181,38 @@ function So({ values: e, onStartChange: t, onEndChange: n }) {
9118
9181
  value: e[1] !== void 0 && e[1] !== null ? e[1] : "",
9119
9182
  onChange: n,
9120
9183
  placeholder: "Max",
9121
- className: yo
9184
+ className: To
9122
9185
  })
9123
9186
  ]
9124
9187
  });
9125
9188
  }
9126
- function Co({ values: e, onChange: t }) {
9189
+ function ko({ values: e, onChange: t }) {
9127
9190
  return /* @__PURE__ */ X("input", {
9128
9191
  type: "date",
9129
9192
  value: e[0] || "",
9130
9193
  onChange: t,
9131
- className: yo
9194
+ className: To
9132
9195
  });
9133
9196
  }
9134
- function wo({ values: e, onChange: t }) {
9197
+ function Ao({ values: e, onChange: t }) {
9135
9198
  return /* @__PURE__ */ X("input", {
9136
9199
  type: "number",
9137
9200
  value: e[0] !== void 0 && e[0] !== null ? e[0] : "",
9138
9201
  onChange: t,
9139
9202
  placeholder: "Enter number",
9140
- className: yo
9203
+ className: To
9141
9204
  });
9142
9205
  }
9143
- function To({ values: e, onChange: t, valueType: n }) {
9206
+ function jo({ values: e, onChange: t, valueType: n }) {
9144
9207
  return /* @__PURE__ */ X("input", {
9145
9208
  type: "text",
9146
9209
  value: e[0] !== void 0 && e[0] !== null ? e[0] : "",
9147
9210
  onChange: t,
9148
9211
  placeholder: `Enter ${n} value`,
9149
- className: yo
9212
+ className: To
9150
9213
  });
9151
9214
  }
9152
- function Eo({ value: e, onRemove: t }) {
9215
+ function Mo({ value: e, onRemove: t }) {
9153
9216
  return /* @__PURE__ */ Z("div", {
9154
9217
  className: "dc:inline-flex dc:items-center bg-dc-time-dimension text-dc-time-dimension dc:text-xs dc:px-2 dc:py-1 dc:rounded-sm dc:border border-dc-time-dimension",
9155
9218
  children: [/* @__PURE__ */ X("span", {
@@ -9158,16 +9221,16 @@ function Eo({ value: e, onRemove: t }) {
9158
9221
  }), /* @__PURE__ */ X("button", {
9159
9222
  onClick: t,
9160
9223
  className: "text-dc-accent hover:text-dc-accent focus:outline-hidden",
9161
- children: /* @__PURE__ */ X(vo, { className: "dc:w-3 dc:h-3" })
9224
+ children: /* @__PURE__ */ X(wo, { className: "dc:w-3 dc:h-3" })
9162
9225
  })]
9163
9226
  });
9164
9227
  }
9165
- function Do({ values: e, onValuesChange: t, onValueRemove: n }) {
9228
+ function No({ values: e, onValuesChange: t, onValueRemove: n }) {
9166
9229
  return /* @__PURE__ */ Z("div", {
9167
9230
  className: "dc:space-y-2 dc:min-w-0 dc:max-w-full",
9168
9231
  children: [e.length > 0 && /* @__PURE__ */ X("div", {
9169
9232
  className: "dc:flex dc:flex-wrap dc:gap-1 dc:max-w-full",
9170
- children: e.map((e, t) => /* @__PURE__ */ X(Eo, {
9233
+ children: e.map((e, t) => /* @__PURE__ */ X(Mo, {
9171
9234
  value: e,
9172
9235
  onRemove: () => n(e)
9173
9236
  }, t))
@@ -9176,27 +9239,27 @@ function Do({ values: e, onValuesChange: t, onValueRemove: n }) {
9176
9239
  onChange: (n) => {
9177
9240
  n.target.value && !e.includes(n.target.value) && (t([...e, n.target.value]), n.target.value = "");
9178
9241
  },
9179
- className: yo,
9242
+ className: To,
9180
9243
  placeholder: "Add date..."
9181
9244
  })]
9182
9245
  });
9183
9246
  }
9184
- function Oo({ supportsMultipleValues: e, values: t, onValueRemove: n, onClear: r }) {
9247
+ function Po({ supportsMultipleValues: e, values: t, onValueRemove: n, onClear: r }) {
9185
9248
  return t.length === 0 ? null : e ? /* @__PURE__ */ X("div", {
9186
9249
  className: "dc:flex dc:flex-wrap dc:gap-1 dc:mb-2 dc:max-w-full",
9187
- children: t.map((e, t) => /* @__PURE__ */ X(Eo, {
9250
+ children: t.map((e, t) => /* @__PURE__ */ X(Mo, {
9188
9251
  value: e,
9189
9252
  onRemove: () => n(e)
9190
9253
  }, t))
9191
9254
  }) : /* @__PURE__ */ X("div", {
9192
9255
  className: "dc:mb-2",
9193
- children: /* @__PURE__ */ X(Eo, {
9256
+ children: /* @__PURE__ */ X(Mo, {
9194
9257
  value: t[0],
9195
9258
  onRemove: r
9196
9259
  })
9197
9260
  });
9198
9261
  }
9199
- function ko({ searchText: e, valuesLoading: t, valuesError: n, distinctValues: r, values: i, onValueSelect: a, onSearchChange: o }) {
9262
+ function Fo({ searchText: e, valuesLoading: t, valuesError: n, distinctValues: r, values: i, onValueSelect: a, onSearchChange: o }) {
9200
9263
  let { t: s } = R();
9201
9264
  return /* @__PURE__ */ Z("div", {
9202
9265
  className: "dc:absolute dc:z-30 dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-md dc:shadow-lg dc:max-h-60 dc:overflow-y-auto",
@@ -9235,13 +9298,13 @@ function ko({ searchText: e, valuesLoading: t, valuesError: n, distinctValues: r
9235
9298
  })]
9236
9299
  });
9237
9300
  }
9238
- function Ao({ dropdownRef: e, supportsMultipleValues: t, values: n, isOpen: r, searchText: i, hasLoadedInitial: a, valuesLoading: o, valuesError: s, distinctValues: c, onValuesChange: l, onValueRemove: u, onValueSelect: d, onToggle: f, onSearchChange: p }) {
9301
+ function Io({ dropdownRef: e, supportsMultipleValues: t, values: n, isOpen: r, searchText: i, hasLoadedInitial: a, valuesLoading: o, valuesError: s, distinctValues: c, onValuesChange: l, onValueRemove: u, onValueSelect: d, onToggle: f, onSearchChange: p }) {
9239
9302
  let { t: m } = R();
9240
9303
  return /* @__PURE__ */ Z("div", {
9241
9304
  className: "dc:relative dc:min-w-0 dc:max-w-full",
9242
9305
  ref: e,
9243
9306
  children: [
9244
- /* @__PURE__ */ X(Oo, {
9307
+ /* @__PURE__ */ X(Po, {
9245
9308
  supportsMultipleValues: t,
9246
9309
  values: n,
9247
9310
  onValueRemove: u,
@@ -9253,9 +9316,9 @@ function Ao({ dropdownRef: e, supportsMultipleValues: t, values: n, isOpen: r, s
9253
9316
  children: [/* @__PURE__ */ X("span", {
9254
9317
  className: "text-dc-text-muted dc:truncate",
9255
9318
  children: m(o && !a ? "filter.shared.valueSelector.loadingValues" : "filter.shared.valueSelector.selectValue")
9256
- }), /* @__PURE__ */ X(_o, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })]
9319
+ }), /* @__PURE__ */ X(Co, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })]
9257
9320
  }),
9258
- r && /* @__PURE__ */ X(ko, {
9321
+ r && /* @__PURE__ */ X(Fo, {
9259
9322
  searchText: i,
9260
9323
  valuesLoading: o,
9261
9324
  valuesError: s,
@@ -9269,30 +9332,30 @@ function Ao({ dropdownRef: e, supportsMultipleValues: t, values: n, isOpen: r, s
9269
9332
  }
9270
9333
  //#endregion
9271
9334
  //#region src/client/components/shared/FilterValueSelector.tsx
9272
- var jo = (e) => {
9273
- let { operator: t, values: n, onValuesChange: r } = e, { operatorMeta: i, isOpen: a, searchText: o, hasLoadedInitial: s, dropdownRef: c, isTimeDimension: l, shouldShowComboBox: u, distinctValues: d, valuesLoading: f, valuesError: p, handleDropdownToggle: m, handleSearchChange: h, handleValueSelect: g, handleValueRemove: _, handleDirectInput: v, handleDateInput: y, handleDateRangeEndInput: b, handleBetweenStartInput: x, handleBetweenEndInput: S } = go(e);
9274
- return i.requiresValues ? t === "inDateRange" ? /* @__PURE__ */ X(xo, {
9335
+ var Lo = (e) => {
9336
+ let { operator: t, values: n, onValuesChange: r } = e, { operatorMeta: i, isOpen: a, searchText: o, hasLoadedInitial: s, dropdownRef: c, isTimeDimension: l, shouldShowComboBox: u, distinctValues: d, valuesLoading: f, valuesError: p, handleDropdownToggle: m, handleSearchChange: h, handleValueSelect: g, handleValueRemove: _, handleDirectInput: v, handleDateInput: y, handleDateRangeEndInput: b, handleBetweenStartInput: x, handleBetweenEndInput: S } = So(e);
9337
+ return i.requiresValues ? t === "inDateRange" ? /* @__PURE__ */ X(Do, {
9275
9338
  values: n,
9276
9339
  onStartChange: y,
9277
9340
  onEndChange: b
9278
- }) : t === "between" || t === "notBetween" ? /* @__PURE__ */ X(So, {
9341
+ }) : t === "between" || t === "notBetween" ? /* @__PURE__ */ X(Oo, {
9279
9342
  values: n,
9280
9343
  onStartChange: x,
9281
9344
  onEndChange: S
9282
- }) : i.valueType === "date" ? /* @__PURE__ */ X(Co, {
9345
+ }) : i.valueType === "date" ? /* @__PURE__ */ X(ko, {
9283
9346
  values: n,
9284
9347
  onChange: y
9285
- }) : i.valueType === "number" ? /* @__PURE__ */ X(wo, {
9348
+ }) : i.valueType === "number" ? /* @__PURE__ */ X(Ao, {
9286
9349
  values: n,
9287
9350
  onChange: v
9288
- }) : l && ho.includes(t) ? i.supportsMultipleValues ? /* @__PURE__ */ X(Do, {
9351
+ }) : l && xo.includes(t) ? i.supportsMultipleValues ? /* @__PURE__ */ X(No, {
9289
9352
  values: n,
9290
9353
  onValuesChange: r,
9291
9354
  onValueRemove: _
9292
- }) : /* @__PURE__ */ X(Co, {
9355
+ }) : /* @__PURE__ */ X(ko, {
9293
9356
  values: n,
9294
9357
  onChange: y
9295
- }) : u ? /* @__PURE__ */ X(Ao, {
9358
+ }) : u ? /* @__PURE__ */ X(Io, {
9296
9359
  dropdownRef: c,
9297
9360
  supportsMultipleValues: i.supportsMultipleValues,
9298
9361
  values: n,
@@ -9307,15 +9370,15 @@ var jo = (e) => {
9307
9370
  onValueSelect: g,
9308
9371
  onToggle: m,
9309
9372
  onSearchChange: h
9310
- }) : /* @__PURE__ */ X(To, {
9373
+ }) : /* @__PURE__ */ X(jo, {
9311
9374
  values: n,
9312
9375
  onChange: v,
9313
9376
  valueType: i.valueType
9314
- }) : /* @__PURE__ */ X(bo, {});
9377
+ }) : /* @__PURE__ */ X(Eo, {});
9315
9378
  };
9316
9379
  //#endregion
9317
9380
  //#region src/client/components/DashboardFilters/FilterValuePopover.tsx
9318
- function Mo(e) {
9381
+ function Ro(e) {
9319
9382
  return e ? { cubes: e.cubes.map((e) => ({
9320
9383
  name: e.name,
9321
9384
  title: e.title || e.name,
@@ -9343,7 +9406,7 @@ function Mo(e) {
9343
9406
  })) || []
9344
9407
  })) } : null;
9345
9408
  }
9346
- var No = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i }) => {
9409
+ var zo = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i }) => {
9347
9410
  let { t: a } = R(), o = q(null);
9348
9411
  G(() => {
9349
9412
  let e = (e) => {
@@ -9359,7 +9422,7 @@ var No = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9359
9422
  }, [r, i]);
9360
9423
  let s = W((e) => {
9361
9424
  n(e);
9362
- }, [n]), c = Mo(t);
9425
+ }, [n]), c = Ro(t);
9363
9426
  return /* @__PURE__ */ Z("div", {
9364
9427
  ref: o,
9365
9428
  className: "dc:absolute dc:top-full dc:left-0 dc:mt-1 dc:z-50 dc:border dc:rounded-lg dc:shadow-lg dc:p-3 dc:min-w-[220px]",
@@ -9376,7 +9439,7 @@ var No = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9376
9439
  }),
9377
9440
  /* @__PURE__ */ X("div", {
9378
9441
  className: "dc:min-w-[180px]",
9379
- children: /* @__PURE__ */ X(jo, {
9442
+ children: /* @__PURE__ */ X(Lo, {
9380
9443
  fieldName: e.member,
9381
9444
  operator: e.operator,
9382
9445
  values: e.values || [],
@@ -9401,8 +9464,8 @@ var No = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9401
9464
  })
9402
9465
  ]
9403
9466
  });
9404
- }, Po = v("close"), Fo = v("edit"), Io = ({ filter: e, schema: t, isEditMode: n, onChange: r, onEdit: i, onRemove: a }) => {
9405
- let [o, s] = J(!1), c = q(null), l = e.filter, { label: u } = e, { operator: d, values: f } = l, p = so(f || [], d), m = W((t) => {
9467
+ }, Bo = v("close"), Vo = v("edit"), Ho = ({ filter: e, schema: t, isEditMode: n, onChange: r, onEdit: i, onRemove: a }) => {
9468
+ let [o, s] = J(!1), c = q(null), l = e.filter, { label: u } = e, { operator: d, values: f } = l, p = mo(f || [], d), m = W((t) => {
9406
9469
  r({
9407
9470
  ...e,
9408
9471
  filter: {
@@ -9461,7 +9524,7 @@ var No = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9461
9524
  onMouseLeave: (e) => {
9462
9525
  e.currentTarget.style.color = "var(--dc-text-secondary)";
9463
9526
  },
9464
- children: /* @__PURE__ */ X(Fo, { className: "dc:w-3 dc:h-3" })
9527
+ children: /* @__PURE__ */ X(Vo, { className: "dc:w-3 dc:h-3" })
9465
9528
  }), /* @__PURE__ */ X("button", {
9466
9529
  type: "button",
9467
9530
  onClick: (e) => {
@@ -9475,10 +9538,10 @@ var No = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9475
9538
  onMouseLeave: (e) => {
9476
9539
  e.currentTarget.style.color = "var(--dc-text-secondary)";
9477
9540
  },
9478
- children: /* @__PURE__ */ X(Po, { className: "dc:w-3 dc:h-3" })
9541
+ children: /* @__PURE__ */ X(Bo, { className: "dc:w-3 dc:h-3" })
9479
9542
  })] })
9480
9543
  ]
9481
- }), o && !n && /* @__PURE__ */ X(No, {
9544
+ }), o && !n && /* @__PURE__ */ X(zo, {
9482
9545
  filter: l,
9483
9546
  schema: t,
9484
9547
  onValuesChange: m,
@@ -9486,8 +9549,8 @@ var No = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9486
9549
  anchorRef: c
9487
9550
  })]
9488
9551
  }) : null;
9489
- }, Lo = v("add"), Ro = v("timeDimension"), zo = v("chevronDown"), Bo = v("filter");
9490
- function Vo({ isEditMode: e, onAddFilter: t, withHoverHandlers: n }) {
9552
+ }, Uo = v("add"), Wo = v("timeDimension"), Go = v("chevronDown"), Ko = v("filter");
9553
+ function qo({ isEditMode: e, onAddFilter: t, withHoverHandlers: n }) {
9491
9554
  return !e || !t ? null : /* @__PURE__ */ X("button", {
9492
9555
  type: "button",
9493
9556
  onClick: t,
@@ -9503,11 +9566,11 @@ function Vo({ isEditMode: e, onAddFilter: t, withHoverHandlers: n }) {
9503
9566
  onMouseLeave: n ? (e) => {
9504
9567
  e.currentTarget.style.backgroundColor = "transparent";
9505
9568
  } : void 0,
9506
- children: /* @__PURE__ */ X(Lo, { className: "dc:w-3.5 dc:h-3.5" })
9569
+ children: /* @__PURE__ */ X(Uo, { className: "dc:w-3.5 dc:h-3.5" })
9507
9570
  });
9508
9571
  }
9509
- function Ho({ nonDateFilters: e, schema: t, isEditMode: n, onEditFilter: r, onRemoveFilter: i, handleFilterChange: a }) {
9510
- return /* @__PURE__ */ X(Y, { children: e.map((e) => /* @__PURE__ */ X(Io, {
9572
+ function Jo({ nonDateFilters: e, schema: t, isEditMode: n, onEditFilter: r, onRemoveFilter: i, handleFilterChange: a }) {
9573
+ return /* @__PURE__ */ X(Y, { children: e.map((e) => /* @__PURE__ */ X(Ho, {
9511
9574
  filter: e,
9512
9575
  schema: t,
9513
9576
  isEditMode: n,
@@ -9516,7 +9579,7 @@ function Ho({ nonDateFilters: e, schema: t, isEditMode: n, onEditFilter: r, onRe
9516
9579
  onRemove: () => i?.(e.id)
9517
9580
  }, e.id)) });
9518
9581
  }
9519
- function Uo({ props: e, showLabel: t, withTitle: n }) {
9582
+ function Yo({ props: e, showLabel: t, withTitle: n }) {
9520
9583
  let { t: r } = R(), { activePresetId: i, dateRangeTooltip: a, showCustomDropdown: o, setShowCustomDropdown: s, setShowXTDDropdown: c, customButtonRef: l, currentDateRange: u, handleCustomDateSelect: d } = e;
9521
9584
  return /* @__PURE__ */ Z("div", {
9522
9585
  className: "dc:relative",
@@ -9537,11 +9600,11 @@ function Uo({ props: e, showLabel: t, withTitle: n }) {
9537
9600
  borderColor: i === "custom" ? "transparent" : "var(--dc-border)"
9538
9601
  },
9539
9602
  children: [
9540
- /* @__PURE__ */ X(Ro, { className: "dc:w-3 dc:h-3" }),
9603
+ /* @__PURE__ */ X(Wo, { className: "dc:w-3 dc:h-3" }),
9541
9604
  /* @__PURE__ */ X("span", { children: r("dateRange.custom") }),
9542
- t && /* @__PURE__ */ X(zo, { className: "dc:w-3 dc:h-3" })
9605
+ t && /* @__PURE__ */ X(Go, { className: "dc:w-3 dc:h-3" })
9543
9606
  ]
9544
- }), o && /* @__PURE__ */ X(fo, {
9607
+ }), o && /* @__PURE__ */ X(vo, {
9545
9608
  isOpen: o,
9546
9609
  onClose: () => s(!1),
9547
9610
  onDateRangeChange: d,
@@ -9550,7 +9613,7 @@ function Uo({ props: e, showLabel: t, withTitle: n }) {
9550
9613
  })]
9551
9614
  });
9552
9615
  }
9553
- function Wo({ props: e, withTitle: t }) {
9616
+ function Xo({ props: e, withTitle: t }) {
9554
9617
  let { activeXTDId: n, dateRangeTooltip: r, showXTDDropdown: i, setShowXTDDropdown: a, setShowCustomDropdown: o, xtdButtonRef: s, handleXTDSelect: c } = e;
9555
9618
  return /* @__PURE__ */ Z("div", {
9556
9619
  className: "dc:relative",
@@ -9570,8 +9633,8 @@ function Wo({ props: e, withTitle: t }) {
9570
9633
  color: n ? "white" : "var(--dc-text)",
9571
9634
  borderColor: n ? "transparent" : "var(--dc-border)"
9572
9635
  },
9573
- children: [/* @__PURE__ */ X("span", { children: "XTD" }), /* @__PURE__ */ X(zo, { className: "dc:w-3 dc:h-3" })]
9574
- }), i && /* @__PURE__ */ X(mo, {
9636
+ children: [/* @__PURE__ */ X("span", { children: "XTD" }), /* @__PURE__ */ X(Go, { className: "dc:w-3 dc:h-3" })]
9637
+ }), i && /* @__PURE__ */ X(bo, {
9575
9638
  isOpen: i,
9576
9639
  onClose: () => a(!1),
9577
9640
  onSelect: c,
@@ -9580,25 +9643,25 @@ function Wo({ props: e, withTitle: t }) {
9580
9643
  })]
9581
9644
  });
9582
9645
  }
9583
- function Go(e) {
9646
+ function Zo(e) {
9584
9647
  let { activePresetId: t, activeXTDId: n, nonDateFilters: r, handlePresetSelect: i, isEditMode: a, onAddFilter: o } = e;
9585
9648
  return /* @__PURE__ */ Z("div", {
9586
9649
  className: "dc:hidden dc:md:flex dc:items-center dc:gap-2 dc:px-3 dc:py-2",
9587
9650
  children: [
9588
- /* @__PURE__ */ X(Bo, {
9651
+ /* @__PURE__ */ X(Ko, {
9589
9652
  className: "dc:w-4 dc:h-4 dc:shrink-0",
9590
9653
  style: { color: "var(--dc-text-secondary)" }
9591
9654
  }),
9592
- /* @__PURE__ */ X(lo, {
9655
+ /* @__PURE__ */ X(go, {
9593
9656
  activePreset: t !== "custom" && !n ? t : null,
9594
9657
  onPresetSelect: i
9595
9658
  }),
9596
- /* @__PURE__ */ X(Uo, {
9659
+ /* @__PURE__ */ X(Yo, {
9597
9660
  props: e,
9598
9661
  showLabel: !0,
9599
9662
  withTitle: !0
9600
9663
  }),
9601
- /* @__PURE__ */ X(Wo, {
9664
+ /* @__PURE__ */ X(Xo, {
9602
9665
  props: e,
9603
9666
  withTitle: !0
9604
9667
  }),
@@ -9608,9 +9671,9 @@ function Go(e) {
9608
9671
  }),
9609
9672
  /* @__PURE__ */ X("div", {
9610
9673
  className: "dc:flex dc:items-center dc:gap-1.5 dc:flex-wrap",
9611
- children: /* @__PURE__ */ X(Ho, { ...e })
9674
+ children: /* @__PURE__ */ X(Jo, { ...e })
9612
9675
  }),
9613
- /* @__PURE__ */ X(Vo, {
9676
+ /* @__PURE__ */ X(qo, {
9614
9677
  isEditMode: a,
9615
9678
  onAddFilter: o,
9616
9679
  withHoverHandlers: !0
@@ -9618,17 +9681,17 @@ function Go(e) {
9618
9681
  ]
9619
9682
  });
9620
9683
  }
9621
- function Ko(e) {
9684
+ function Qo(e) {
9622
9685
  let { activePresetId: t, activeXTDId: n, nonDateFilters: r, handlePresetSelect: i, isEditMode: a, onAddFilter: o } = e;
9623
9686
  return /* @__PURE__ */ Z("div", {
9624
9687
  className: "dc:md:hidden",
9625
9688
  children: [
9626
9689
  /* @__PURE__ */ Z("div", {
9627
9690
  className: "dc:flex dc:items-center dc:gap-2 dc:overflow-x-auto dc:px-3 dc:py-2 scrollbar-thin",
9628
- children: [/* @__PURE__ */ X(Bo, {
9691
+ children: [/* @__PURE__ */ X(Ko, {
9629
9692
  className: "dc:w-4 dc:h-4 dc:shrink-0",
9630
9693
  style: { color: "var(--dc-text-secondary)" }
9631
- }), /* @__PURE__ */ X(lo, {
9694
+ }), /* @__PURE__ */ X(go, {
9632
9695
  activePreset: t !== "custom" && !n ? t : null,
9633
9696
  onPresetSelect: i
9634
9697
  })]
@@ -9638,15 +9701,15 @@ function Ko(e) {
9638
9701
  style: { borderColor: "var(--dc-border)" },
9639
9702
  children: [/* @__PURE__ */ Z("div", {
9640
9703
  className: "dc:flex dc:items-center dc:gap-2",
9641
- children: [/* @__PURE__ */ X(Uo, {
9704
+ children: [/* @__PURE__ */ X(Yo, {
9642
9705
  props: e,
9643
9706
  showLabel: !1,
9644
9707
  withTitle: !1
9645
- }), /* @__PURE__ */ X(Wo, {
9708
+ }), /* @__PURE__ */ X(Xo, {
9646
9709
  props: e,
9647
9710
  withTitle: !1
9648
9711
  })]
9649
- }), /* @__PURE__ */ X(Vo, {
9712
+ }), /* @__PURE__ */ X(qo, {
9650
9713
  isEditMode: a,
9651
9714
  onAddFilter: o,
9652
9715
  withHoverHandlers: !1
@@ -9657,7 +9720,7 @@ function Ko(e) {
9657
9720
  style: { borderColor: "var(--dc-border)" },
9658
9721
  children: /* @__PURE__ */ X("div", {
9659
9722
  className: "dc:flex dc:items-center dc:gap-1.5 dc:flex-wrap",
9660
- children: /* @__PURE__ */ X(Ho, { ...e })
9723
+ children: /* @__PURE__ */ X(Jo, { ...e })
9661
9724
  })
9662
9725
  })
9663
9726
  ]
@@ -9665,8 +9728,8 @@ function Ko(e) {
9665
9728
  }
9666
9729
  //#endregion
9667
9730
  //#region src/client/components/DashboardFilters/CompactFilterBar.tsx
9668
- var qo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersChange: r, onAddFilter: i, onEditFilter: a, onRemoveFilter: o }) => {
9669
- let s = co(e, r);
9731
+ var $o = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersChange: r, onAddFilter: i, onEditFilter: a, onRemoveFilter: o }) => {
9732
+ let s = ho(e, r);
9670
9733
  if (!n && s.localFilters.length === 0) return null;
9671
9734
  let c = {
9672
9735
  schema: t,
@@ -9696,9 +9759,9 @@ var qo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersCha
9696
9759
  borderColor: "var(--dc-border)",
9697
9760
  backgroundColor: "var(--dc-surface)"
9698
9761
  },
9699
- children: [/* @__PURE__ */ X(Go, { ...c }), /* @__PURE__ */ X(Ko, { ...c })]
9762
+ children: [/* @__PURE__ */ X(Zo, { ...c }), /* @__PURE__ */ X(Qo, { ...c })]
9700
9763
  });
9701
- }, Jo = ({ dashboardFilters: e, editable: t, schema: n, dashboardConfig: r, onDashboardFiltersChange: i, onSaveFilters: a, selectedFilterId: o, onFilterSelect: s, isEditMode: c = !1 }) => {
9764
+ }, es = ({ dashboardFilters: e, editable: t, schema: n, dashboardConfig: r, onDashboardFiltersChange: i, onSaveFilters: a, selectedFilterId: o, onFilterSelect: s, isEditMode: c = !1 }) => {
9702
9765
  let [l, u] = J(null), [d, f] = J(!1), p = W((e) => e ? { cubes: e.cubes.map((e) => ({
9703
9766
  name: e.name,
9704
9767
  title: e.title || e.name,
@@ -9787,7 +9850,7 @@ var qo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersCha
9787
9850
  backgroundColor: "var(--dc-surface)",
9788
9851
  boxShadow: "var(--dc-shadow-sm)"
9789
9852
  },
9790
- children: /* @__PURE__ */ X(no, {
9853
+ children: /* @__PURE__ */ X(co, {
9791
9854
  dashboardFilters: e,
9792
9855
  onAddFilter: g,
9793
9856
  onAddTimeFilter: _,
@@ -9796,7 +9859,7 @@ var qo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersCha
9796
9859
  selectedFilterId: o,
9797
9860
  onFilterSelect: s
9798
9861
  })
9799
- }) : /* @__PURE__ */ X(qo, {
9862
+ }) : /* @__PURE__ */ X($o, {
9800
9863
  dashboardFilters: e,
9801
9864
  schema: n,
9802
9865
  isEditMode: !1,
@@ -9804,7 +9867,7 @@ var qo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersCha
9804
9867
  onAddFilter: g,
9805
9868
  onEditFilter: v,
9806
9869
  onRemoveFilter: y
9807
- }), d && l && /* @__PURE__ */ X(Ya, {
9870
+ }), d && l && /* @__PURE__ */ X(to, {
9808
9871
  filter: l,
9809
9872
  schema: n,
9810
9873
  dashboardConfig: r,
@@ -9815,10 +9878,10 @@ var qo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersCha
9815
9878
  convertToMetaResponse: p
9816
9879
  })]
9817
9880
  });
9818
- }, Yo = v("filter");
9819
- function Xo() {
9820
- let { t: e } = R(), { dashboardFilters: t, editable: n, schema: r, config: i, onDashboardFiltersChange: a, onSave: o, selectedFilterId: s, selectedFilter: c, isEditMode: l, handleFilterSelect: u, handleSelectAllForFilter: d, actions: f } = oi();
9821
- return /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X(Jo, {
9881
+ }, ts = v("filter");
9882
+ function ns() {
9883
+ let { t: e } = R(), { dashboardFilters: t, editable: n, schema: r, config: i, onDashboardFiltersChange: a, onSave: o, selectedFilterId: s, selectedFilter: c, isEditMode: l, handleFilterSelect: u, handleSelectAllForFilter: d, actions: f } = fi();
9884
+ return /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X(es, {
9822
9885
  dashboardFilters: t || [],
9823
9886
  editable: n,
9824
9887
  schema: r || null,
@@ -9845,7 +9908,7 @@ function Xo() {
9845
9908
  children: [/* @__PURE__ */ Z("div", {
9846
9909
  className: "dc:flex dc:items-center dc:gap-2 dc:flex-wrap",
9847
9910
  children: [
9848
- /* @__PURE__ */ X(Yo, { className: "dc:w-5 dc:h-5 dc:shrink-0" }),
9911
+ /* @__PURE__ */ X(ts, { className: "dc:w-5 dc:h-5 dc:shrink-0" }),
9849
9912
  /* @__PURE__ */ X("span", {
9850
9913
  className: "dc:font-medium",
9851
9914
  children: e("dashboard.filterSelectionMode", { filterLabel: c.label })
@@ -9884,10 +9947,10 @@ function Xo() {
9884
9947
  }
9885
9948
  //#endregion
9886
9949
  //#region src/client/components/mobileStackedLayout/memberDisplay.ts
9887
- var Zo = ["kpiNumber", "kpiDelta"];
9888
- function Qo(e) {
9950
+ var rs = ["kpiNumber", "kpiDelta"];
9951
+ function is(e) {
9889
9952
  let { portlet: t, framed: n, memberCount: r } = e, { analysisConfig: i } = Ke(t), a = i.charts[i.analysisType], o = a?.chartType || "line", s = a?.displayConfig;
9890
- !n && Zo.includes(o) && (s = {
9953
+ !n && rs.includes(o) && (s = {
9891
9954
  ...s,
9892
9955
  layout: "compact"
9893
9956
  });
@@ -9906,10 +9969,10 @@ function Qo(e) {
9906
9969
  }
9907
9970
  //#endregion
9908
9971
  //#region src/client/components/MobileStackedLayout.tsx
9909
- var $o = v("refresh");
9910
- function es({ config: e, colorPalette: t, dashboardFilters: n, onPortletRefresh: r }) {
9972
+ var as = v("refresh");
9973
+ function os({ config: e, colorPalette: t, dashboardFilters: n, onPortletRefresh: r }) {
9911
9974
  let { t: i } = R(), a = q({}), [o, c] = J(null), l = q(null), u = W((e) => {
9912
- l.current = e, e && c(ri(e));
9975
+ l.current = e, e && c(li(e));
9913
9976
  }, []), d = K(() => {
9914
9977
  let t = new Map(e.portlets.map((e) => [e.id, e])), n = /* @__PURE__ */ new Set(), r = [];
9915
9978
  for (let i of e.groups ?? []) {
@@ -9930,36 +9993,63 @@ function es({ config: e, colorPalette: t, dashboardFilters: n, onPortletRefresh:
9930
9993
  portlet: t
9931
9994
  });
9932
9995
  return r.sort((e, t) => e.sort[0] === t.sort[0] ? e.sort[1] - t.sort[1] : e.sort[0] - t.sort[0]);
9933
- }, [e.groups, e.portlets]), f = (e) => {
9996
+ }, [e.groups, e.portlets]), f = K(() => {
9997
+ if (e.layoutMode !== "rows") return null;
9998
+ let t = /* @__PURE__ */ new Map();
9999
+ d.forEach((e) => {
10000
+ t.set(e.sort[0], (t.get(e.sort[0]) ?? 0) + 1);
10001
+ });
10002
+ let n = (e) => e.kind === "portlet" && t.get(e.sort[0]) === 1 && yr(e.portlet), r = [], i = 0;
10003
+ for (; i < d.length;) {
10004
+ if (!n(d[i])) {
10005
+ r.push({
10006
+ kind: "loose",
10007
+ block: d[i]
10008
+ }), i += 1;
10009
+ continue;
10010
+ }
10011
+ let e = d[i], t = [];
10012
+ for (i += 1; i < d.length && !n(d[i]);) t.push(d[i]), i += 1;
10013
+ r.push(t.length === 0 ? {
10014
+ kind: "loose",
10015
+ block: e
10016
+ } : {
10017
+ kind: "section",
10018
+ header: e,
10019
+ body: t
10020
+ });
10021
+ }
10022
+ return r.some((e) => e.kind === "section") ? r : null;
10023
+ }, [d, e.layoutMode]), p = (e) => {
9934
10024
  a.current[e]?.refresh(), r?.(e);
9935
- }, p = (r, o, s = 1) => {
9936
- let c = Qo({
10025
+ }, m = (r, o, s = 1, c = !1) => {
10026
+ let l = is({
9937
10027
  portlet: r,
9938
10028
  framed: o,
9939
10029
  memberCount: s
9940
- }), { isTransparent: l, isAutoHeight: u, shouldHideHeader: d, contentHeight: p } = c, m = l || !o;
10030
+ }), { isTransparent: u, isAutoHeight: d, shouldHideHeader: f, contentHeight: m } = l, h = u || !o || c;
9941
10031
  return /* @__PURE__ */ Z("div", {
9942
10032
  "data-portlet-id": r.id,
9943
- className: m ? "dc:flex dc:flex-col" : "bg-dc-surface dc:border border-dc-border dc:rounded-lg dc:flex dc:flex-col",
10033
+ className: h ? "dc:flex dc:flex-col" : "bg-dc-surface dc:border border-dc-border dc:rounded-lg dc:flex dc:flex-col",
9944
10034
  style: {
9945
- height: u ? "auto" : c.height,
9946
- boxShadow: m ? "none" : "var(--dc-shadow-sm)",
9947
- borderColor: l ? "transparent" : void 0,
9948
- borderWidth: l ? "0" : void 0,
9949
- backgroundColor: l ? "transparent" : void 0
10035
+ height: d ? "auto" : l.height,
10036
+ boxShadow: h ? "none" : "var(--dc-shadow-sm)",
10037
+ borderColor: u ? "transparent" : void 0,
10038
+ borderWidth: u ? "0" : void 0,
10039
+ backgroundColor: u ? "transparent" : void 0
9950
10040
  },
9951
- children: [!d && /* @__PURE__ */ Z("div", {
9952
- className: "dc:flex dc:items-center dc:justify-between dc:px-3 dc:py-2 dc:border-b border-dc-border dc:shrink-0 bg-dc-surface-secondary dc:rounded-t-lg",
10041
+ children: [!f && /* @__PURE__ */ Z("div", {
10042
+ className: `dc:flex dc:items-center dc:justify-between dc:px-3 dc:shrink-0${c ? " dc:py-3" : " dc:py-2 dc:border-b border-dc-border bg-dc-surface-secondary dc:rounded-t-lg"}`,
9953
10043
  children: [/* @__PURE__ */ X("h3", {
9954
10044
  className: "dc:font-semibold dc:text-sm text-dc-text dc:truncate dc:flex-1",
9955
10045
  children: r.title
9956
10046
  }), /* @__PURE__ */ X("div", {
9957
10047
  className: "dc:flex dc:items-center dc:gap-1 dc:shrink-0 dc:ml-2",
9958
10048
  children: /* @__PURE__ */ X("button", {
9959
- onClick: () => f(r.id),
10049
+ onClick: () => p(r.id),
9960
10050
  className: "dc:p-1 bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer hover:bg-dc-surface-hover dc:transition-colors",
9961
10051
  title: i("dashboard.portlet.action.refresh"),
9962
- children: /* @__PURE__ */ X($o, { style: {
10052
+ children: /* @__PURE__ */ X(as, { style: {
9963
10053
  width: "16px",
9964
10054
  height: "16px",
9965
10055
  color: "currentColor"
@@ -9967,52 +10057,55 @@ function es({ config: e, colorPalette: t, dashboardFilters: n, onPortletRefresh:
9967
10057
  })
9968
10058
  })]
9969
10059
  }), /* @__PURE__ */ X("div", {
9970
- className: `dc:overflow-visible dc:flex dc:flex-col${l ? "" : " dc:px-2 dc:py-3"}`,
9971
- style: { height: u ? "auto" : p },
10060
+ className: `dc-portlet-card-body dc:overflow-visible dc:flex dc:flex-col${u && !c ? "" : " dc:px-2 dc:py-3"}`,
10061
+ style: { height: d ? "auto" : m },
9972
10062
  children: /* @__PURE__ */ X(Cn, {
9973
10063
  ref: (e) => {
9974
10064
  a.current[r.id] = e;
9975
10065
  },
9976
- query: c.query,
9977
- chartType: c.chartType,
9978
- chartConfig: c.chartConfig,
9979
- displayConfig: c.displayConfig,
10066
+ query: l.query,
10067
+ chartType: l.chartType,
10068
+ chartConfig: l.chartConfig,
10069
+ displayConfig: l.displayConfig,
9980
10070
  dashboardFilters: n,
9981
10071
  dashboardFilterMapping: r.dashboardFilterMapping,
9982
10072
  eagerLoad: r.eagerLoad ?? e.eagerLoad ?? !1,
9983
10073
  title: r.title,
9984
- height: u ? "auto" : p,
10074
+ height: d ? "auto" : m,
9985
10075
  colorPalette: t
9986
10076
  })
9987
10077
  })]
9988
10078
  }, r.id);
9989
- };
10079
+ }, h = (e) => e.kind === "group" ? e.group.id : e.portlet.id, g = (e, t) => e.kind === "portlet" ? m(e.portlet, !0, 1, t) : /* @__PURE__ */ Z("div", {
10080
+ "data-group-id": e.group.id,
10081
+ className: `dc:flex dc:flex-col${t ? "" : " bg-dc-surface dc:border border-dc-border dc:rounded-lg"}`,
10082
+ style: { boxShadow: t ? "none" : "var(--dc-shadow-sm)" },
10083
+ children: [e.group.title && e.group.title.trim() && /* @__PURE__ */ X("div", {
10084
+ className: "dc:flex dc:items-center dc:px-3 dc:py-2 dc:border-b border-dc-border dc:shrink-0 bg-dc-surface-secondary dc:rounded-t-lg",
10085
+ children: /* @__PURE__ */ X("h3", {
10086
+ className: "dc:font-semibold dc:text-sm text-dc-text dc:truncate",
10087
+ children: e.group.title
10088
+ })
10089
+ }), /* @__PURE__ */ X("div", {
10090
+ className: "dc:flex dc:flex-col dc:p-1 dc:gap-1",
10091
+ children: e.portlets.map((t) => m(t, !1, e.portlets.length))
10092
+ })]
10093
+ }, e.group.id);
9990
10094
  return /* @__PURE__ */ X(s, {
9991
10095
  value: o,
9992
10096
  children: /* @__PURE__ */ X("div", {
9993
10097
  ref: u,
9994
10098
  className: "mobile-stacked-layout dc:space-y-4 dc:px-2",
9995
- children: d.map((e) => e.kind === "portlet" ? p(e.portlet, !0) : /* @__PURE__ */ Z("div", {
9996
- "data-group-id": e.group.id,
9997
- className: "bg-dc-surface dc:border border-dc-border dc:rounded-lg dc:flex dc:flex-col",
9998
- style: { boxShadow: "var(--dc-shadow-sm)" },
9999
- children: [e.group.title && e.group.title.trim() && /* @__PURE__ */ X("div", {
10000
- className: "dc:flex dc:items-center dc:px-3 dc:py-2 dc:border-b border-dc-border dc:shrink-0 bg-dc-surface-secondary dc:rounded-t-lg",
10001
- children: /* @__PURE__ */ X("h3", {
10002
- className: "dc:font-semibold dc:text-sm text-dc-text dc:truncate",
10003
- children: e.group.title
10004
- })
10005
- }), /* @__PURE__ */ X("div", {
10006
- className: "dc:flex dc:flex-col dc:p-1 dc:gap-1",
10007
- children: e.portlets.map((t) => p(t, !1, e.portlets.length))
10008
- })]
10009
- }, e.group.id))
10099
+ children: f ? f.map((e) => e.kind === "loose" ? g(e.block, !1) : /* @__PURE__ */ Z("div", {
10100
+ className: `dc-dashboard-section${e.header.kind === "portlet" && Cr(e.header.portlet) ? " dc-dashboard-section-ruled" : ""}`,
10101
+ children: [g(e.header, !0), e.body.map((e) => g(e, !0))]
10102
+ }, `section-${h(e.header)}`)) : d.map((e) => g(e, !1))
10010
10103
  })
10011
10104
  });
10012
10105
  }
10013
10106
  //#endregion
10014
10107
  //#region src/client/components/ScaledGridWrapper.tsx
10015
- function ts({ scaleFactor: e, designWidth: t, children: n }) {
10108
+ function ss({ scaleFactor: e, designWidth: t, children: n }) {
10016
10109
  let [r, i] = J(0), a = q(null);
10017
10110
  G(() => {
10018
10111
  if (!a.current) return;
@@ -10043,15 +10136,15 @@ function ts({ scaleFactor: e, designWidth: t, children: n }) {
10043
10136
  }
10044
10137
  //#endregion
10045
10138
  //#region src/client/components/dashboard/DashboardGridSurface.tsx
10046
- var ns = v("measure"), rs = v("add");
10047
- function is() {
10048
- let { t: e } = R(), { config: t, gridContentRef: n, displayMode: r, scaleFactor: i, designWidth: a, colorPalette: o, dashboardFilters: s, handlePortletRefresh: c, renderActiveLayout: l, editable: u, handleAddText: d, handleAddPortlet: f } = oi();
10139
+ var cs = v("measure"), ls = v("add");
10140
+ function us() {
10141
+ let { t: e } = R(), { config: t, gridContentRef: n, displayMode: r, scaleFactor: i, designWidth: a, colorPalette: o, dashboardFilters: s, handlePortletRefresh: c, renderActiveLayout: l, editable: u, handleAddText: d, handleAddPortlet: f } = fi();
10049
10142
  return !t.portlets || t.portlets.length === 0 ? /* @__PURE__ */ X("div", {
10050
10143
  className: "dc:flex dc:justify-center dc:items-center dc:min-h-[50vh]",
10051
10144
  children: /* @__PURE__ */ Z("div", {
10052
10145
  className: "dc:text-center",
10053
10146
  children: [
10054
- /* @__PURE__ */ X(ns, { style: {
10147
+ /* @__PURE__ */ X(cs, { style: {
10055
10148
  width: "64px",
10056
10149
  height: "64px",
10057
10150
  color: "var(--dc-text-muted)",
@@ -10076,7 +10169,7 @@ function is() {
10076
10169
  },
10077
10170
  onMouseEnter: (e) => e.currentTarget.style.backgroundColor = "var(--dc-surface-hover)",
10078
10171
  onMouseLeave: (e) => e.currentTarget.style.backgroundColor = "var(--dc-surface)",
10079
- children: [/* @__PURE__ */ X(ii, { className: "dc:w-5 dc:h-5 dc:mr-2" }), e("dashboard.addText")]
10172
+ children: [/* @__PURE__ */ X(ui, { className: "dc:w-5 dc:h-5 dc:mr-2" }), e("dashboard.addText")]
10080
10173
  }), /* @__PURE__ */ Z("button", {
10081
10174
  onClick: f,
10082
10175
  className: "dc:inline-flex dc:items-center dc:px-4 dc:py-2 dc:border border-dc-border bg-dc-surface dc:rounded-md focus:outline-hidden dc:focus:ring-2",
@@ -10086,19 +10179,19 @@ function is() {
10086
10179
  },
10087
10180
  onMouseEnter: (e) => e.currentTarget.style.backgroundColor = "var(--dc-surface-hover)",
10088
10181
  onMouseLeave: (e) => e.currentTarget.style.backgroundColor = "var(--dc-surface)",
10089
- children: [/* @__PURE__ */ X(rs, { className: "dc:w-5 dc:h-5 dc:mr-2" }), e("dashboard.addPortlet")]
10182
+ children: [/* @__PURE__ */ X(ls, { className: "dc:w-5 dc:h-5 dc:mr-2" }), e("dashboard.addPortlet")]
10090
10183
  })]
10091
10184
  })
10092
10185
  ]
10093
10186
  })
10094
10187
  }) : /* @__PURE__ */ X("div", {
10095
10188
  ref: n,
10096
- children: r === "mobile" ? /* @__PURE__ */ X(es, {
10189
+ children: r === "mobile" ? /* @__PURE__ */ X(os, {
10097
10190
  config: t,
10098
10191
  colorPalette: o,
10099
10192
  dashboardFilters: s,
10100
10193
  onPortletRefresh: c
10101
- }) : r === "scaled" ? /* @__PURE__ */ X(ts, {
10194
+ }) : r === "scaled" ? /* @__PURE__ */ X(ss, {
10102
10195
  scaleFactor: i,
10103
10196
  designWidth: a,
10104
10197
  children: l()
@@ -10107,7 +10200,7 @@ function is() {
10107
10200
  }
10108
10201
  //#endregion
10109
10202
  //#region src/client/components/Modal.tsx
10110
- var as = ({ isOpen: e, onClose: t, title: n, size: r = "md", closeOnBackdropClick: i = !0, closeOnEscape: a = !0, showCloseButton: o = !0, children: s, footer: c, noPadding: l = !1 }) => {
10203
+ var ds = ({ isOpen: e, onClose: t, title: n, size: r = "md", closeOnBackdropClick: i = !0, closeOnEscape: a = !0, showCloseButton: o = !0, children: s, footer: c, noPadding: l = !1 }) => {
10111
10204
  let u = W((e) => {
10112
10205
  e.key === "Escape" && a && t();
10113
10206
  }, [a, t]);
@@ -10178,20 +10271,20 @@ var as = ({ isOpen: e, onClose: t, title: n, size: r = "md", closeOnBackdropClic
10178
10271
  ]
10179
10272
  })
10180
10273
  }) : null;
10181
- }, os = ge(() => import("./analysis-builder-DaqyOjLX.js")), ss = he((e, t) => /* @__PURE__ */ X(me, {
10274
+ }, fs = he(() => import("./analysis-builder-DnDw164v.js")), ps = me((e, t) => /* @__PURE__ */ X(V, {
10182
10275
  fallback: /* @__PURE__ */ X("div", {
10183
10276
  className: "dc:flex dc:items-center dc:justify-center dc:w-full dc:py-6",
10184
10277
  children: /* @__PURE__ */ X(ie, {})
10185
10278
  }),
10186
- children: /* @__PURE__ */ X(os, {
10279
+ children: /* @__PURE__ */ X(fs, {
10187
10280
  ...e,
10188
10281
  ref: t
10189
10282
  })
10190
10283
  }));
10191
- ss.displayName = "AnalysisBuilder";
10284
+ ps.displayName = "AnalysisBuilder";
10192
10285
  //#endregion
10193
10286
  //#region src/client/adapters/funnelModeAdapter.ts
10194
- function cs(e) {
10287
+ function ms(e) {
10195
10288
  let t = "";
10196
10289
  e.funnelBindingKey && (typeof e.funnelBindingKey.dimension == "string" ? t = e.funnelBindingKey.dimension : Array.isArray(e.funnelBindingKey.dimension) && (t = e.funnelBindingKey.dimension.map((e) => ({
10197
10290
  cube: e.cube,
@@ -10208,7 +10301,7 @@ function cs(e) {
10208
10301
  includeTimeMetrics: !0
10209
10302
  } };
10210
10303
  }
10211
- function ls(e) {
10304
+ function hs(e) {
10212
10305
  let { funnel: t } = e, n = null;
10213
10306
  if (t.steps.length > 0 && t.steps[0].cube) n = t.steps[0].cube;
10214
10307
  else if (typeof t.bindingKey == "string") {
@@ -10225,7 +10318,7 @@ function ls(e) {
10225
10318
  let a = t.steps.map((e) => {
10226
10319
  let t = [];
10227
10320
  return e.filter && (t = Array.isArray(e.filter) ? e.filter : typeof e.filter == "object" && "and" in e.filter ? e.filter.and : [e.filter]), {
10228
- id: Bi(),
10321
+ id: Ki(),
10229
10322
  name: e.name,
10230
10323
  cube: e.cube || n || "",
10231
10324
  filters: t,
@@ -10240,14 +10333,14 @@ function ls(e) {
10240
10333
  funnelBindingKey: r
10241
10334
  };
10242
10335
  }
10243
- function us(e) {
10336
+ function gs(e) {
10244
10337
  if (!e || typeof e != "object") return !1;
10245
10338
  let t = e;
10246
10339
  if (t.version !== 1 || t.analysisType !== "funnel" || !t.query || typeof t.query != "object") return !1;
10247
10340
  let n = t.query;
10248
10341
  return !(!n.funnel || typeof n.funnel != "object");
10249
10342
  }
10250
- var ds = {
10343
+ var _s = {
10251
10344
  type: "funnel",
10252
10345
  createInitial() {
10253
10346
  return {
@@ -10268,11 +10361,11 @@ var ds = {
10268
10361
  };
10269
10362
  },
10270
10363
  canLoad(e) {
10271
- return us(e);
10364
+ return gs(e);
10272
10365
  },
10273
10366
  load(e) {
10274
10367
  if (e.analysisType !== "funnel") throw Error(`Cannot load ${e.analysisType} config with funnel adapter`);
10275
- return ls(e.query);
10368
+ return hs(e.query);
10276
10369
  },
10277
10370
  save(e, t, n) {
10278
10371
  return {
@@ -10280,7 +10373,7 @@ var ds = {
10280
10373
  analysisType: "funnel",
10281
10374
  activeView: n,
10282
10375
  charts: { funnel: t.funnel || this.getDefaultChartConfig() },
10283
- query: cs(e)
10376
+ query: ms(e)
10284
10377
  };
10285
10378
  },
10286
10379
  validate(e) {
@@ -10315,7 +10408,7 @@ var ds = {
10315
10408
  };
10316
10409
  //#endregion
10317
10410
  //#region src/client/adapters/flowModeAdapter.ts
10318
- function fs(e) {
10411
+ function vs(e) {
10319
10412
  let t = "";
10320
10413
  return e.flowBindingKey && (typeof e.flowBindingKey.dimension == "string" ? t = e.flowBindingKey.dimension : Array.isArray(e.flowBindingKey.dimension) && (t = e.flowBindingKey.dimension.map((e) => ({
10321
10414
  cube: e.cube,
@@ -10333,7 +10426,7 @@ function fs(e) {
10333
10426
  joinStrategy: e.joinStrategy
10334
10427
  } };
10335
10428
  }
10336
- function ps(e) {
10429
+ function ys(e) {
10337
10430
  let { flow: t } = e, n = null;
10338
10431
  if (typeof t.bindingKey == "string") {
10339
10432
  let e = t.bindingKey.split(".");
@@ -10361,14 +10454,14 @@ function ps(e) {
10361
10454
  joinStrategy: t.joinStrategy || "auto"
10362
10455
  };
10363
10456
  }
10364
- function ms(e) {
10457
+ function bs(e) {
10365
10458
  if (!e || typeof e != "object") return !1;
10366
10459
  let t = e;
10367
10460
  if (t.version !== 1 || t.analysisType !== "flow" || !t.query || typeof t.query != "object") return !1;
10368
10461
  let n = t.query;
10369
10462
  return !(!n.flow || typeof n.flow != "object");
10370
10463
  }
10371
- var hs = {
10464
+ var xs = {
10372
10465
  type: "flow",
10373
10466
  createInitial() {
10374
10467
  return {
@@ -10398,11 +10491,11 @@ var hs = {
10398
10491
  };
10399
10492
  },
10400
10493
  canLoad(e) {
10401
- return ms(e);
10494
+ return bs(e);
10402
10495
  },
10403
10496
  load(e) {
10404
10497
  if (e.analysisType !== "flow") throw Error(`Cannot load ${e.analysisType} config with flow adapter`);
10405
- return ps(e.query);
10498
+ return ys(e.query);
10406
10499
  },
10407
10500
  save(e, t, n) {
10408
10501
  return {
@@ -10410,7 +10503,7 @@ var hs = {
10410
10503
  analysisType: "flow",
10411
10504
  activeView: n,
10412
10505
  charts: { flow: t.flow || this.getDefaultChartConfig() },
10413
- query: fs(e)
10506
+ query: vs(e)
10414
10507
  };
10415
10508
  },
10416
10509
  validate(e) {
@@ -10445,7 +10538,7 @@ var hs = {
10445
10538
  };
10446
10539
  //#endregion
10447
10540
  //#region src/client/adapters/retentionModeAdapter.ts
10448
- function gs(e) {
10541
+ function Ss(e) {
10449
10542
  let t = "";
10450
10543
  e.retentionBindingKey && (typeof e.retentionBindingKey.dimension == "string" ? t = e.retentionBindingKey.dimension : Array.isArray(e.retentionBindingKey.dimension) && (t = e.retentionBindingKey.dimension.map((e) => ({
10451
10544
  cube: e.cube,
@@ -10461,7 +10554,7 @@ function gs(e) {
10461
10554
  } };
10462
10555
  return e.retentionCohortFilters.length > 0 && (n.retention.cohortFilters = e.retentionCohortFilters.length === 1 ? e.retentionCohortFilters[0] : e.retentionCohortFilters), e.retentionActivityFilters.length > 0 && (n.retention.activityFilters = e.retentionActivityFilters.length === 1 ? e.retentionActivityFilters[0] : e.retentionActivityFilters), e.retentionBreakdowns && e.retentionBreakdowns.length > 0 && (n.retention.breakdownDimensions = e.retentionBreakdowns.map((e) => e.field)), n;
10463
10556
  }
10464
- function _s(e) {
10557
+ function Cs(e) {
10465
10558
  let { retention: t } = e, n = null;
10466
10559
  if (typeof t.timeDimension == "string") {
10467
10560
  let e = t.timeDimension.split(".");
@@ -10497,14 +10590,14 @@ function _s(e) {
10497
10590
  retentionBreakdowns: s
10498
10591
  };
10499
10592
  }
10500
- function vs(e) {
10593
+ function ws(e) {
10501
10594
  if (!e || typeof e != "object") return !1;
10502
10595
  let t = e;
10503
10596
  if (t.version !== 1 || t.analysisType !== "retention" || !t.query || typeof t.query != "object") return !1;
10504
10597
  let n = t.query;
10505
10598
  return !(!n.retention || typeof n.retention != "object");
10506
10599
  }
10507
- var ys = {
10600
+ var Ts = {
10508
10601
  type: "retention",
10509
10602
  createInitial() {
10510
10603
  return { ...b };
@@ -10524,11 +10617,11 @@ var ys = {
10524
10617
  };
10525
10618
  },
10526
10619
  canLoad(e) {
10527
- return vs(e);
10620
+ return ws(e);
10528
10621
  },
10529
10622
  load(e) {
10530
10623
  if (e.analysisType !== "retention") throw Error(`Cannot load ${e.analysisType} config with retention adapter`);
10531
- return _s(e.query);
10624
+ return Cs(e.query);
10532
10625
  },
10533
10626
  save(e, t, n) {
10534
10627
  return {
@@ -10536,7 +10629,7 @@ var ys = {
10536
10629
  analysisType: "retention",
10537
10630
  activeView: n,
10538
10631
  charts: { retention: t.retention || this.getDefaultChartConfig() },
10539
- query: gs(e)
10632
+ query: Ss(e)
10540
10633
  };
10541
10634
  },
10542
10635
  validate(e) {
@@ -10574,13 +10667,13 @@ var ys = {
10574
10667
  };
10575
10668
  //#endregion
10576
10669
  //#region src/client/components/portletAnalysisModal/saveValidation.ts
10577
- function bs(e) {
10578
- return "flow" in e && e.flow ? !!(e.flow.bindingKey && e.flow.timeDimension && e.flow.eventDimension && e.flow.startingStep?.filter) : "retention" in e && e.retention ? !!(e.retention.bindingKey && e.retention.timeDimension && e.retention.dateRange?.start && e.retention.dateRange?.end) : "funnel" in e && e.funnel ? !!(e.funnel.steps && e.funnel.steps.length >= 2) : "queries" in e ? xs(e.queries[0]) : xs(e);
10670
+ function Es(e) {
10671
+ return "flow" in e && e.flow ? !!(e.flow.bindingKey && e.flow.timeDimension && e.flow.eventDimension && e.flow.startingStep?.filter) : "retention" in e && e.retention ? !!(e.retention.bindingKey && e.retention.timeDimension && e.retention.dateRange?.start && e.retention.dateRange?.end) : "funnel" in e && e.funnel ? !!(e.funnel.steps && e.funnel.steps.length >= 2) : "queries" in e ? Ds(e.queries[0]) : Ds(e);
10579
10672
  }
10580
- function xs(e) {
10673
+ function Ds(e) {
10581
10674
  return !!(e?.measures && e.measures.length > 0 || e?.dimensions && e.dimensions.length > 0 || e?.timeDimensions && e.timeDimensions.length > 0);
10582
10675
  }
10583
- function Ss(e) {
10676
+ function Os(e) {
10584
10677
  switch (e) {
10585
10678
  case "flow": return "Please configure the flow analysis (binding key, time dimension, event dimension, and starting step filter).";
10586
10679
  case "retention": return "Please configure the retention analysis (binding key, time dimension, and date range).";
@@ -10590,7 +10683,7 @@ function Ss(e) {
10590
10683
  }
10591
10684
  //#endregion
10592
10685
  //#region src/client/components/PortletAnalysisModal.tsx
10593
- function Cs({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, title: a, submitText: o, colorPalette: s }) {
10686
+ function ks({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, title: a, submitText: o, colorPalette: s }) {
10594
10687
  let { t: c } = R(), l = q(null), [u, d] = J(""), f = K(() => r ? Ke(r).analysisConfig : null, [r]), p = K(() => {
10595
10688
  if (!f) return;
10596
10689
  let e = f.query;
@@ -10615,7 +10708,7 @@ function Cs({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10615
10708
  funnelDisplayConfig: r.funnelDisplayConfig
10616
10709
  };
10617
10710
  if (f.query && "funnel" in f.query) {
10618
- let e = ds.load(f), t = f.charts?.funnel;
10711
+ let e = _s.load(f), t = f.charts?.funnel;
10619
10712
  return {
10620
10713
  ...e,
10621
10714
  funnelChartType: t?.chartType,
@@ -10626,7 +10719,7 @@ function Cs({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10626
10719
  }
10627
10720
  }, [f, r]), _ = K(() => {
10628
10721
  if (f?.analysisType === "flow" && f.query && "flow" in f.query) {
10629
- let e = hs.load(f), t = f.charts?.flow;
10722
+ let e = xs.load(f), t = f.charts?.flow;
10630
10723
  return {
10631
10724
  ...e,
10632
10725
  flowChartType: t?.chartType,
@@ -10636,7 +10729,7 @@ function Cs({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10636
10729
  }
10637
10730
  }, [f]), v = K(() => {
10638
10731
  if (f?.analysisType === "retention" && f.query && "retention" in f.query) {
10639
- let e = ys.load(f), t = f.charts?.retention;
10732
+ let e = Ts.load(f), t = f.charts?.retention;
10640
10733
  return {
10641
10734
  ...e,
10642
10735
  retentionChartType: t?.chartType,
@@ -10659,8 +10752,8 @@ function Cs({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10659
10752
  return;
10660
10753
  }
10661
10754
  let { query: i, analysisType: a } = e;
10662
- if (!bs(i)) {
10663
- alert(Ss(a));
10755
+ if (!Es(i)) {
10756
+ alert(Os(a));
10664
10757
  return;
10665
10758
  }
10666
10759
  n({
@@ -10690,7 +10783,7 @@ function Cs({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10690
10783
  className: "dc:px-4 dc:py-2 dc:text-sm dc:font-medium text-white bg-dc-accent hover:bg-dc-accent-hover dc:rounded-md dc:transition-colors",
10691
10784
  children: o
10692
10785
  })] });
10693
- return /* @__PURE__ */ X(as, {
10786
+ return /* @__PURE__ */ X(ds, {
10694
10787
  isOpen: e,
10695
10788
  onClose: t,
10696
10789
  title: a,
@@ -10723,7 +10816,7 @@ function Cs({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10723
10816
  })
10724
10817
  }), /* @__PURE__ */ X("div", {
10725
10818
  className: "dc:flex-1 dc:min-h-0",
10726
- children: /* @__PURE__ */ X(ss, {
10819
+ children: /* @__PURE__ */ X(ps, {
10727
10820
  ref: l,
10728
10821
  maxHeight: "100%",
10729
10822
  initialQuery: p,
@@ -10743,7 +10836,7 @@ function Cs({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10743
10836
  }
10744
10837
  //#endregion
10745
10838
  //#region src/client/components/AnalysisBuilder/StringArrayInput.tsx
10746
- function ws({ label: e, value: t, onChange: n, placeholder: r, description: i }) {
10839
+ function As({ label: e, value: t, onChange: n, placeholder: r, description: i }) {
10747
10840
  let [a, o] = J(() => t.join("\n"));
10748
10841
  G(() => {
10749
10842
  o(t.join("\n"));
@@ -10775,13 +10868,13 @@ function ws({ label: e, value: t, onChange: n, placeholder: r, description: i })
10775
10868
  }
10776
10869
  //#endregion
10777
10870
  //#region src/client/components/AnalysisBuilder/ColumnFormatsEditor.tsx
10778
- var Ts = [
10871
+ var js = [
10779
10872
  "text",
10780
10873
  "number",
10781
10874
  "date",
10782
10875
  "badge",
10783
10876
  "progress"
10784
- ], Es = ["bar", "circle"], Ds = [
10877
+ ], Ms = ["bar", "circle"], Ns = [
10785
10878
  "hour",
10786
10879
  "day",
10787
10880
  "week",
@@ -10789,7 +10882,7 @@ var Ts = [
10789
10882
  "quarter",
10790
10883
  "year"
10791
10884
  ];
10792
- function Os({ value: e, chartConfig: t, colorPalette: n, onChange: r, t: i }) {
10885
+ function Ps({ value: e, chartConfig: t, colorPalette: n, onChange: r, t: i }) {
10793
10886
  let { getFieldLabel: a } = L(), [o, s] = J(null), c = t?.columns ?? [];
10794
10887
  if (c.length === 0) return /* @__PURE__ */ X("p", {
10795
10888
  className: "dc:text-xs text-dc-text-muted",
@@ -10801,7 +10894,7 @@ function Os({ value: e, chartConfig: t, colorPalette: n, onChange: r, t: i }) {
10801
10894
  };
10802
10895
  return /* @__PURE__ */ X("div", {
10803
10896
  className: "dc:space-y-1",
10804
- children: c.map((t) => /* @__PURE__ */ X(ks, {
10897
+ children: c.map((t) => /* @__PURE__ */ X(Fs, {
10805
10898
  column: t,
10806
10899
  format: e[t] ?? { kind: "text" },
10807
10900
  fallbackLabel: a(t),
@@ -10813,7 +10906,7 @@ function Os({ value: e, chartConfig: t, colorPalette: n, onChange: r, t: i }) {
10813
10906
  }, t))
10814
10907
  });
10815
10908
  }
10816
- function ks({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle: i, onChange: a, t: o }) {
10909
+ function Fs({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle: i, onChange: a, t: o }) {
10817
10910
  return /* @__PURE__ */ Z("div", {
10818
10911
  className: "dc:border border-dc-border dc:rounded-sm",
10819
10912
  children: [/* @__PURE__ */ Z("button", {
@@ -10830,7 +10923,7 @@ function ks({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle:
10830
10923
  }), n && /* @__PURE__ */ Z("div", {
10831
10924
  className: "dc:px-2 dc:py-2 dc:space-y-2 dc:border-t border-dc-border",
10832
10925
  children: [
10833
- /* @__PURE__ */ X(Ms, {
10926
+ /* @__PURE__ */ X(Rs, {
10834
10927
  kind: e.kind,
10835
10928
  onSelect: (t) => a({
10836
10929
  ...e,
@@ -10838,7 +10931,7 @@ function ks({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle:
10838
10931
  }),
10839
10932
  t: o
10840
10933
  }),
10841
- /* @__PURE__ */ X(As, {
10934
+ /* @__PURE__ */ X(Is, {
10842
10935
  format: e,
10843
10936
  colorPalette: r,
10844
10937
  onChange: a,
@@ -10864,7 +10957,7 @@ function ks({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle:
10864
10957
  })]
10865
10958
  });
10866
10959
  }
10867
- function As({ format: e, colorPalette: t, onChange: n, t: r }) {
10960
+ function Is({ format: e, colorPalette: t, onChange: n, t: r }) {
10868
10961
  return e.kind === "number" ? /* @__PURE__ */ X(ce, {
10869
10962
  axisLabel: r("chart.recordsTable.columnFormats.numberFormat"),
10870
10963
  value: e.numberFormat ?? {},
@@ -10885,23 +10978,23 @@ function As({ format: e, colorPalette: t, onChange: n, t: r }) {
10885
10978
  dateGranularity: t.target.value
10886
10979
  }),
10887
10980
  className: "dc:w-full dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm bg-dc-surface text-dc-text",
10888
- children: Ds.map((e) => /* @__PURE__ */ X("option", {
10981
+ children: Ns.map((e) => /* @__PURE__ */ X("option", {
10889
10982
  value: e,
10890
10983
  children: r(`timeGranularity.${e}`)
10891
10984
  }, e))
10892
10985
  })]
10893
- }) : e.kind === "badge" ? /* @__PURE__ */ X(Ps, {
10986
+ }) : e.kind === "badge" ? /* @__PURE__ */ X(Bs, {
10894
10987
  format: e,
10895
10988
  colorPalette: t,
10896
10989
  onChange: n,
10897
10990
  t: r
10898
- }) : e.kind === "progress" ? /* @__PURE__ */ X(js, {
10991
+ }) : e.kind === "progress" ? /* @__PURE__ */ X(Ls, {
10899
10992
  format: e,
10900
10993
  onChange: n,
10901
10994
  t: r
10902
10995
  }) : null;
10903
10996
  }
10904
- function js({ format: e, onChange: t, t: n }) {
10997
+ function Ls({ format: e, onChange: t, t: n }) {
10905
10998
  return /* @__PURE__ */ Z("div", {
10906
10999
  className: "dc:space-y-2",
10907
11000
  children: [/* @__PURE__ */ Z("div", {
@@ -10909,7 +11002,7 @@ function js({ format: e, onChange: t, t: n }) {
10909
11002
  children: [/* @__PURE__ */ X("span", {
10910
11003
  className: "dc:block dc:text-xs text-dc-text-secondary",
10911
11004
  children: n("chart.recordsTable.columnFormats.progressStyle")
10912
- }), /* @__PURE__ */ X(Ns, {
11005
+ }), /* @__PURE__ */ X(zs, {
10913
11006
  style: e.progressStyle ?? "bar",
10914
11007
  onSelect: (n) => t({
10915
11008
  ...e,
@@ -10919,14 +11012,14 @@ function js({ format: e, onChange: t, t: n }) {
10919
11012
  })]
10920
11013
  }), /* @__PURE__ */ Z("div", {
10921
11014
  className: "dc:flex dc:gap-2",
10922
- children: [/* @__PURE__ */ X(Fs, {
11015
+ children: [/* @__PURE__ */ X(Vs, {
10923
11016
  label: n("chart.recordsTable.columnFormats.progressMin"),
10924
11017
  value: e.progressMin ?? 0,
10925
11018
  onChange: (n) => t({
10926
11019
  ...e,
10927
11020
  progressMin: n
10928
11021
  })
10929
- }), /* @__PURE__ */ X(Fs, {
11022
+ }), /* @__PURE__ */ X(Vs, {
10930
11023
  label: n("chart.recordsTable.columnFormats.progressMax"),
10931
11024
  value: e.progressMax ?? 100,
10932
11025
  onChange: (n) => t({
@@ -10937,10 +11030,10 @@ function js({ format: e, onChange: t, t: n }) {
10937
11030
  })]
10938
11031
  });
10939
11032
  }
10940
- function Ms({ kind: e, onSelect: t, t: n }) {
11033
+ function Rs({ kind: e, onSelect: t, t: n }) {
10941
11034
  return /* @__PURE__ */ X("div", {
10942
11035
  className: "dc:flex dc:border border-dc-border dc:rounded-sm dc:overflow-hidden",
10943
- children: Ts.map((r) => /* @__PURE__ */ X("button", {
11036
+ children: js.map((r) => /* @__PURE__ */ X("button", {
10944
11037
  type: "button",
10945
11038
  onClick: () => t(r),
10946
11039
  className: `dc:flex-1 dc:px-1 dc:py-1 dc:text-xs dc:font-medium dc:transition-colors dc:cursor-pointer ${e === r ? "bg-dc-primary text-white" : "bg-dc-surface text-dc-text hover:bg-dc-border"}`,
@@ -10948,10 +11041,10 @@ function Ms({ kind: e, onSelect: t, t: n }) {
10948
11041
  }, r))
10949
11042
  });
10950
11043
  }
10951
- function Ns({ style: e, onSelect: t, t: n }) {
11044
+ function zs({ style: e, onSelect: t, t: n }) {
10952
11045
  return /* @__PURE__ */ X("div", {
10953
11046
  className: "dc:flex dc:border border-dc-border dc:rounded-sm dc:overflow-hidden",
10954
- children: Es.map((r) => /* @__PURE__ */ X("button", {
11047
+ children: Ms.map((r) => /* @__PURE__ */ X("button", {
10955
11048
  type: "button",
10956
11049
  onClick: () => t(r),
10957
11050
  className: `dc:flex-1 dc:px-1 dc:py-1 dc:text-xs dc:font-medium dc:transition-colors dc:cursor-pointer ${e === r ? "bg-dc-primary text-white" : "bg-dc-surface text-dc-text hover:bg-dc-border"}`,
@@ -10959,7 +11052,7 @@ function Ns({ style: e, onSelect: t, t: n }) {
10959
11052
  }, r))
10960
11053
  });
10961
11054
  }
10962
- function Ps({ format: e, colorPalette: t, onChange: n, t: r }) {
11055
+ function Bs({ format: e, colorPalette: t, onChange: n, t: r }) {
10963
11056
  let i = Array.isArray(e.badgeColors) ? e.badgeColors : [], a = t?.colors ?? [], o = (t) => n({
10964
11057
  ...e,
10965
11058
  badgeColors: t.length > 0 ? t : void 0
@@ -11023,7 +11116,7 @@ function Ps({ format: e, colorPalette: t, onChange: n, t: r }) {
11023
11116
  ]
11024
11117
  });
11025
11118
  }
11026
- function Fs({ label: e, value: t, onChange: n }) {
11119
+ function Vs({ label: e, value: t, onChange: n }) {
11027
11120
  return /* @__PURE__ */ Z("label", {
11028
11121
  className: "dc:flex-1 dc:space-y-1",
11029
11122
  children: [/* @__PURE__ */ X("span", {
@@ -11043,14 +11136,14 @@ function Fs({ label: e, value: t, onChange: n }) {
11043
11136
  }
11044
11137
  //#endregion
11045
11138
  //#region src/client/components/AnalysisBuilder/DisplayOptionControl.tsx
11046
- var Is = "#22c55e";
11047
- function Ls({ description: e, t }) {
11139
+ var Hs = "#22c55e";
11140
+ function Us({ description: e, t }) {
11048
11141
  return e ? /* @__PURE__ */ X("p", {
11049
11142
  className: "dc:text-xs text-dc-text-muted",
11050
11143
  children: t(e)
11051
11144
  }) : null;
11052
11145
  }
11053
- function Rs({ option: e, displayConfig: t, setValue: n, t: r }) {
11146
+ function Ws({ option: e, displayConfig: t, setValue: n, t: r }) {
11054
11147
  let i = e.key;
11055
11148
  return /* @__PURE__ */ Z("label", {
11056
11149
  className: "dc:flex dc:items-center dc:space-x-2",
@@ -11066,7 +11159,7 @@ function Rs({ option: e, displayConfig: t, setValue: n, t: r }) {
11066
11159
  })]
11067
11160
  });
11068
11161
  }
11069
- function zs({ option: e, displayConfig: t, setValue: n, t: r }) {
11162
+ function Gs({ option: e, displayConfig: t, setValue: n, t: r }) {
11070
11163
  let i = t[e.key] ?? e.defaultValue ?? "";
11071
11164
  return /* @__PURE__ */ Z("div", {
11072
11165
  className: "dc:space-y-1",
@@ -11091,14 +11184,14 @@ function zs({ option: e, displayConfig: t, setValue: n, t: r }) {
11091
11184
  placeholder: e.placeholder,
11092
11185
  className: "dc:w-full dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm focus:ring-dc-accent focus:border-dc-accent bg-dc-surface text-dc-text"
11093
11186
  }),
11094
- /* @__PURE__ */ X(Ls, {
11187
+ /* @__PURE__ */ X(Us, {
11095
11188
  description: e.description,
11096
11189
  t: r
11097
11190
  })
11098
11191
  ]
11099
11192
  });
11100
11193
  }
11101
- function Bs({ option: e, displayConfig: t, colorPalette: n, setValue: r, t: i }) {
11194
+ function Ks({ option: e, displayConfig: t, colorPalette: n, setValue: r, t: i }) {
11102
11195
  let a = t[e.key] ?? e.defaultValue ?? 0;
11103
11196
  return /* @__PURE__ */ Z("div", {
11104
11197
  className: "dc:space-y-1",
@@ -11130,14 +11223,14 @@ function Bs({ option: e, displayConfig: t, colorPalette: n, setValue: r, t: i })
11130
11223
  title: "Default Color"
11131
11224
  }, 0)]
11132
11225
  }),
11133
- /* @__PURE__ */ X(Ls, {
11226
+ /* @__PURE__ */ X(Us, {
11134
11227
  description: e.description,
11135
11228
  t: i
11136
11229
  })
11137
11230
  ]
11138
11231
  });
11139
11232
  }
11140
- function Vs({ option: e, displayConfig: t, setValue: n, t: r }) {
11233
+ function qs({ option: e, displayConfig: t, setValue: n, t: r }) {
11141
11234
  let i = e.key;
11142
11235
  return /* @__PURE__ */ Z("div", {
11143
11236
  className: "dc:space-y-1",
@@ -11156,14 +11249,14 @@ function Vs({ option: e, displayConfig: t, setValue: n, t: r }) {
11156
11249
  step: e.step,
11157
11250
  className: "dc:w-full dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm focus:ring-dc-accent focus:border-dc-accent bg-dc-surface text-dc-text"
11158
11251
  }),
11159
- /* @__PURE__ */ X(Ls, {
11252
+ /* @__PURE__ */ X(Us, {
11160
11253
  description: e.description,
11161
11254
  t: r
11162
11255
  })
11163
11256
  ]
11164
11257
  });
11165
11258
  }
11166
- function Hs({ option: e, displayConfig: t, setValue: n, t: r }) {
11259
+ function Js({ option: e, displayConfig: t, setValue: n, t: r }) {
11167
11260
  let i = e.key;
11168
11261
  return /* @__PURE__ */ Z("div", {
11169
11262
  className: "dc:space-y-1",
@@ -11181,14 +11274,14 @@ function Hs({ option: e, displayConfig: t, setValue: n, t: r }) {
11181
11274
  children: r(e.label)
11182
11275
  }, e.value))
11183
11276
  }),
11184
- /* @__PURE__ */ X(Ls, {
11277
+ /* @__PURE__ */ X(Us, {
11185
11278
  description: e.description,
11186
11279
  t: r
11187
11280
  })
11188
11281
  ]
11189
11282
  });
11190
11283
  }
11191
- function Us({ option: e, displayConfig: t, setValue: n, t: r }) {
11284
+ function Ys({ option: e, displayConfig: t, setValue: n, t: r }) {
11192
11285
  let i = t[e.key] ?? e.defaultValue ?? "#8884d8";
11193
11286
  return /* @__PURE__ */ Z("div", {
11194
11287
  className: "dc:space-y-1",
@@ -11212,14 +11305,14 @@ function Us({ option: e, displayConfig: t, setValue: n, t: r }) {
11212
11305
  className: "dc:flex-1 dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm focus:ring-dc-accent focus:border-dc-accent bg-dc-surface text-dc-text"
11213
11306
  })]
11214
11307
  }),
11215
- /* @__PURE__ */ X(Ls, {
11308
+ /* @__PURE__ */ X(Us, {
11216
11309
  description: e.description,
11217
11310
  t: r
11218
11311
  })
11219
11312
  ]
11220
11313
  });
11221
11314
  }
11222
- function Ws({ option: e, displayConfig: t, setValue: n, t: r }) {
11315
+ function Xs({ option: e, displayConfig: t, setValue: n, t: r }) {
11223
11316
  let i = e.key;
11224
11317
  return /* @__PURE__ */ X(ce, {
11225
11318
  axisLabel: r(e.label),
@@ -11227,9 +11320,9 @@ function Ws({ option: e, displayConfig: t, setValue: n, t: r }) {
11227
11320
  onChange: (e) => n(Object.keys(e).length > 0 ? e : void 0)
11228
11321
  });
11229
11322
  }
11230
- function Gs({ option: e, displayConfig: t, setValue: n, t: r }) {
11323
+ function Zs({ option: e, displayConfig: t, setValue: n, t: r }) {
11231
11324
  let i = e.key;
11232
- return /* @__PURE__ */ X(ws, {
11325
+ return /* @__PURE__ */ X(As, {
11233
11326
  label: r(e.label),
11234
11327
  value: t[i] ?? [],
11235
11328
  onChange: (e) => n(e.length > 0 ? e : void 0),
@@ -11237,7 +11330,7 @@ function Gs({ option: e, displayConfig: t, setValue: n, t: r }) {
11237
11330
  description: e.description ? r(e.description) : void 0
11238
11331
  });
11239
11332
  }
11240
- function Ks({ option: e, displayConfig: t, setValue: n, t: r }) {
11333
+ function Qs({ option: e, displayConfig: t, setValue: n, t: r }) {
11241
11334
  let i = e.key;
11242
11335
  return /* @__PURE__ */ Z("div", {
11243
11336
  className: "dc:space-y-1",
@@ -11255,14 +11348,14 @@ function Ks({ option: e, displayConfig: t, setValue: n, t: r }) {
11255
11348
  children: r(a.label)
11256
11349
  }, a.value))
11257
11350
  }),
11258
- /* @__PURE__ */ X(Ls, {
11351
+ /* @__PURE__ */ X(Us, {
11259
11352
  description: e.description,
11260
11353
  t: r
11261
11354
  })
11262
11355
  ]
11263
11356
  });
11264
11357
  }
11265
- function qs({ option: e, displayConfig: t, setValue: n, t: r }) {
11358
+ function $s({ option: e, displayConfig: t, setValue: n, t: r }) {
11266
11359
  let i = t[e.key], a = le(i), o = Number(t.minValue ?? 0), s = Number(t.maxValue ?? 100) - o, c = Number.isFinite(s) && s !== 0, l = (e) => c ? o + e * s : e, u = (e) => c ? (e - o) / s : e, d = (e) => {
11267
11360
  let t = [...e].sort((e, t) => e.value - t.value);
11268
11361
  n(t.length > 0 ? t : void 0);
@@ -11315,20 +11408,20 @@ function qs({ option: e, displayConfig: t, setValue: n, t: r }) {
11315
11408
  let e = a[a.length - 1], t = e ? Math.min(1, (e.value + 1) / 2) : 0;
11316
11409
  d([...a, {
11317
11410
  value: t,
11318
- color: Is
11411
+ color: Hs
11319
11412
  }]);
11320
11413
  },
11321
11414
  className: "dc:text-xs dc:px-2 dc:py-1 dc:rounded-sm dc:border border-dc-border text-dc-text-secondary hover:bg-dc-surface-hover dc:cursor-pointer",
11322
11415
  children: r("chart.gauge.thresholds.add")
11323
11416
  }),
11324
- /* @__PURE__ */ X(Ls, {
11417
+ /* @__PURE__ */ X(Us, {
11325
11418
  description: e.description,
11326
11419
  t: r
11327
11420
  })
11328
11421
  ]
11329
11422
  });
11330
11423
  }
11331
- function Js({ option: e, displayConfig: t, chartConfig: n, colorPalette: r, setValue: i, t: a }) {
11424
+ function ec({ option: e, displayConfig: t, chartConfig: n, colorPalette: r, setValue: i, t: a }) {
11332
11425
  let o = e.key;
11333
11426
  return /* @__PURE__ */ Z("div", {
11334
11427
  className: "dc:space-y-1",
@@ -11337,21 +11430,21 @@ function Js({ option: e, displayConfig: t, chartConfig: n, colorPalette: r, setV
11337
11430
  className: "dc:text-sm text-dc-text-secondary",
11338
11431
  children: a(e.label)
11339
11432
  }),
11340
- /* @__PURE__ */ X(Os, {
11433
+ /* @__PURE__ */ X(Ps, {
11341
11434
  value: t[o] ?? {},
11342
11435
  chartConfig: n,
11343
11436
  colorPalette: r,
11344
11437
  onChange: i,
11345
11438
  t: a
11346
11439
  }),
11347
- /* @__PURE__ */ X(Ls, {
11440
+ /* @__PURE__ */ X(Us, {
11348
11441
  description: e.description,
11349
11442
  t: a
11350
11443
  })
11351
11444
  ]
11352
11445
  });
11353
11446
  }
11354
- function Ys({ option: e, displayConfig: t, setValue: n, t: r }) {
11447
+ function tc({ option: e, displayConfig: t, setValue: n, t: r }) {
11355
11448
  let i = t[e.key] ?? { urlTemplate: "" }, a = (e) => n(e.urlTemplate.trim() ? e : void 0);
11356
11449
  return /* @__PURE__ */ Z("div", {
11357
11450
  className: "dc:space-y-1",
@@ -11383,32 +11476,32 @@ function Ys({ option: e, displayConfig: t, setValue: n, t: r }) {
11383
11476
  children: r(`chart.recordsTable.rowLink.target.${e}`)
11384
11477
  }, e))
11385
11478
  }),
11386
- /* @__PURE__ */ X(Ls, {
11479
+ /* @__PURE__ */ X(Us, {
11387
11480
  description: e.description,
11388
11481
  t: r
11389
11482
  })
11390
11483
  ]
11391
11484
  });
11392
11485
  }
11393
- var Xs = {
11394
- boolean: Rs,
11395
- string: zs,
11396
- paletteColor: Bs,
11397
- number: Vs,
11398
- select: Hs,
11399
- color: Us,
11400
- axisFormat: Ws,
11401
- stringArray: Gs,
11402
- buttonGroup: Ks,
11403
- thresholdBands: qs,
11404
- columnFormats: Js,
11405
- rowLink: Ys
11486
+ var nc = {
11487
+ boolean: Ws,
11488
+ string: Gs,
11489
+ paletteColor: Ks,
11490
+ number: qs,
11491
+ select: Js,
11492
+ color: Ys,
11493
+ axisFormat: Xs,
11494
+ stringArray: Zs,
11495
+ buttonGroup: Qs,
11496
+ thresholdBands: $s,
11497
+ columnFormats: ec,
11498
+ rowLink: tc
11406
11499
  };
11407
- function Zs({ option: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i }) {
11500
+ function rc({ option: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i }) {
11408
11501
  let { t: a } = R(), o = (n) => i({
11409
11502
  ...t,
11410
11503
  [e.key]: n
11411
- }), s = Xs[e.type];
11504
+ }), s = nc[e.type];
11412
11505
  return s ? /* @__PURE__ */ X(s, {
11413
11506
  option: e,
11414
11507
  displayConfig: t,
@@ -11420,7 +11513,7 @@ function Zs({ option: e, displayConfig: t, colorPalette: n, chartConfig: r, onDi
11420
11513
  }
11421
11514
  //#endregion
11422
11515
  //#region src/client/components/AnalysisBuilder/LegacyBooleanOptions.tsx
11423
- var Qs = [
11516
+ var ic = [
11424
11517
  {
11425
11518
  key: "showLegend",
11426
11519
  labelKey: "display.showLegend",
@@ -11451,9 +11544,9 @@ var Qs = [
11451
11544
  labelKey: "display.hideHeader",
11452
11545
  defaultChecked: !1
11453
11546
  }
11454
- ], $s = H(function({ displayOptions: e, displayConfig: t, onDisplayConfigChange: n }) {
11547
+ ], ac = U(function({ displayOptions: e, displayConfig: t, onDisplayConfigChange: n }) {
11455
11548
  let { t: r } = R();
11456
- return !e || e.length === 0 ? null : /* @__PURE__ */ X(Y, { children: Qs.filter((t) => e.includes(t.key)).map((e) => /* @__PURE__ */ Z("label", {
11549
+ return !e || e.length === 0 ? null : /* @__PURE__ */ X(Y, { children: ic.filter((t) => e.includes(t.key)).map((e) => /* @__PURE__ */ Z("label", {
11457
11550
  className: "dc:flex dc:items-center dc:space-x-2",
11458
11551
  children: [/* @__PURE__ */ X("input", {
11459
11552
  type: "checkbox",
@@ -11472,7 +11565,7 @@ var Qs = [
11472
11565
  });
11473
11566
  //#endregion
11474
11567
  //#region src/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.tsx
11475
- function ec({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i, excludeKeys: a }) {
11568
+ function oc({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i, excludeKeys: a }) {
11476
11569
  let { t: o } = R(), { config: s, loaded: c } = h(e);
11477
11570
  return c ? s.displayOptions && s.displayOptions.length > 0 || s.displayOptionsConfig && s.displayOptionsConfig.length > 0 ? /* @__PURE__ */ X("div", {
11478
11571
  className: "dc:space-y-6",
@@ -11481,13 +11574,13 @@ function ec({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, o
11481
11574
  children: o("display.heading")
11482
11575
  }), /* @__PURE__ */ Z("div", {
11483
11576
  className: "dc:space-y-2",
11484
- children: [/* @__PURE__ */ X($s, {
11577
+ children: [/* @__PURE__ */ X(ac, {
11485
11578
  displayOptions: s.displayOptions,
11486
11579
  displayConfig: t,
11487
11580
  onDisplayConfigChange: i
11488
11581
  }), s.displayOptionsConfig?.filter((e) => !a?.includes(e.key)).map((e) => /* @__PURE__ */ X("div", {
11489
11582
  className: `dc:space-y-1 ${e.type === "axisFormat" ? "dc:mt-6 dc:pt-2" : ""}`,
11490
- children: /* @__PURE__ */ X(Zs, {
11583
+ children: /* @__PURE__ */ X(rc, {
11491
11584
  option: e,
11492
11585
  displayConfig: t,
11493
11586
  colorPalette: n,
@@ -11506,8 +11599,8 @@ function ec({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, o
11506
11599
  }
11507
11600
  //#endregion
11508
11601
  //#region src/client/components/TextPortletModal.tsx
11509
- var tc = v("close");
11510
- function nc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, existingTitles: a = [] }) {
11602
+ var sc = v("close");
11603
+ function cc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, existingTitles: a = [] }) {
11511
11604
  let { t: o } = R(), s = K(() => r ? Ke(r).analysisConfig.charts.query?.displayConfig ?? {} : {
11512
11605
  content: "",
11513
11606
  hideHeader: !0,
@@ -11603,7 +11696,7 @@ function nc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, exi
11603
11696
  }), /* @__PURE__ */ X("button", {
11604
11697
  onClick: t,
11605
11698
  className: "dc:p-1 dc:rounded-md text-dc-text-secondary dc:hover:bg-dc-surface-hover dc:transition-colors",
11606
- children: /* @__PURE__ */ X(tc, { className: "dc:w-5 dc:h-5" })
11699
+ children: /* @__PURE__ */ X(sc, { className: "dc:w-5 dc:h-5" })
11607
11700
  })]
11608
11701
  }),
11609
11702
  /* @__PURE__ */ X("div", {
@@ -11660,7 +11753,7 @@ function nc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, exi
11660
11753
  ]
11661
11754
  }), /* @__PURE__ */ X("div", {
11662
11755
  className: "dc:w-72 dc:shrink-0",
11663
- children: /* @__PURE__ */ X(ec, {
11756
+ children: /* @__PURE__ */ X(oc, {
11664
11757
  chartType: "markdown",
11665
11758
  displayConfig: c,
11666
11759
  colorPalette: i,
@@ -11689,7 +11782,7 @@ function nc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, exi
11689
11782
  }
11690
11783
  //#endregion
11691
11784
  //#region src/client/utils/joinReachability.ts
11692
- function rc(e, t) {
11785
+ function lc(e, t) {
11693
11786
  let n = new Set(t);
11694
11787
  if (!e?.cubes || t.length === 0) return n;
11695
11788
  let r = /* @__PURE__ */ new Map(), i = (e, t) => {
@@ -11707,14 +11800,14 @@ function rc(e, t) {
11707
11800
  }
11708
11801
  return n;
11709
11802
  }
11710
- function ic(e) {
11803
+ function uc(e) {
11711
11804
  let t = e.indexOf(".");
11712
11805
  return t > 0 ? e.substring(0, t) : null;
11713
11806
  }
11714
- function ac(e) {
11807
+ function dc(e) {
11715
11808
  let t = /* @__PURE__ */ new Set(), n = (e) => {
11716
11809
  if (typeof e == "string") {
11717
- let n = ic(e);
11810
+ let n = uc(e);
11718
11811
  n && t.add(n);
11719
11812
  }
11720
11813
  }, r = (e) => {
@@ -11732,11 +11825,11 @@ function ac(e) {
11732
11825
  }
11733
11826
  return [...t];
11734
11827
  }
11735
- function oc(e, t, n) {
11828
+ function fc(e, t, n) {
11736
11829
  if (!e?.cubes) return [];
11737
- let r = ac(t);
11830
+ let r = dc(t);
11738
11831
  if (r.length === 0) return [];
11739
- let i = rc(e, r), a;
11832
+ let i = lc(e, r), a;
11740
11833
  if (n?.sameTypeAs) for (let t of e.cubes) {
11741
11834
  let e = t.dimensions?.find((e) => e.name === n.sameTypeAs);
11742
11835
  if (e) {
@@ -11752,7 +11845,7 @@ function oc(e, t, n) {
11752
11845
  }
11753
11846
  //#endregion
11754
11847
  //#region src/client/components/PortletFilterConfigModal.tsx
11755
- function sc({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r = [], onSave: i, portletTitle: a, schema: o = null, portlet: s = null }) {
11848
+ function pc({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r = [], onSave: i, portletTitle: a, schema: o = null, portlet: s = null }) {
11756
11849
  let { t: c } = R(), [l, u] = J(() => Ze(r));
11757
11850
  G(() => {
11758
11851
  u((e) => {
@@ -11774,7 +11867,7 @@ function sc({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r
11774
11867
  }, h = K(() => {
11775
11868
  let e = /* @__PURE__ */ new Map();
11776
11869
  return !o || !s || n.forEach((t) => {
11777
- t.isUniversalTime || !("member" in t.filter) || !t.filter.member || e.has(t.filter.member) || e.set(t.filter.member, oc(o, s, { sameTypeAs: t.filter.member }));
11870
+ t.isUniversalTime || !("member" in t.filter) || !t.filter.member || e.has(t.filter.member) || e.set(t.filter.member, fc(o, s, { sameTypeAs: t.filter.member }));
11778
11871
  }), e;
11779
11872
  }, [
11780
11873
  o,
@@ -11953,9 +12046,9 @@ function sc({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r
11953
12046
  }
11954
12047
  //#endregion
11955
12048
  //#region src/client/components/ConfirmModal.tsx
11956
- var cc = ({ isOpen: e, onClose: t, onConfirm: n, title: r, message: i, confirmText: a, cancelText: o, confirmVariant: s = "primary", isLoading: c = !1 }) => {
12049
+ var mc = ({ isOpen: e, onClose: t, onConfirm: n, title: r, message: i, confirmText: a, cancelText: o, confirmVariant: s = "primary", isLoading: c = !1 }) => {
11957
12050
  let { t: l } = R(), u = r ?? l("common.actions.confirm"), d = a ?? l("common.actions.confirm"), f = o ?? l("common.actions.cancel");
11958
- return /* @__PURE__ */ X(as, {
12051
+ return /* @__PURE__ */ X(ds, {
11959
12052
  isOpen: e,
11960
12053
  onClose: t,
11961
12054
  title: u,
@@ -12012,10 +12105,10 @@ var cc = ({ isOpen: e, onClose: t, onConfirm: n, title: r, message: i, confirmTe
12012
12105
  };
12013
12106
  //#endregion
12014
12107
  //#region src/client/components/dashboard/DashboardModals.tsx
12015
- function lc() {
12016
- let { t: e } = R(), { config: t, colorPalette: n, dashboardFilters: r, schema: i, isPortletModalOpen: a, editingPortlet: o, isTextModalOpen: s, editingTextPortlet: c, isFilterConfigModalOpen: l, filterConfigPortlet: u, deleteConfirmPortletId: d, deleteConfirmGroupId: f, handlePortletSave: p, handleSaveFilterConfig: m, actions: h } = oi(), g = t.portlets.find((e) => e.id === d)?.title || e("dashboard.thisPortlet"), _ = (t.groups?.find((e) => e.id === f))?.cells.reduce((e, t) => e + t.portletIds.length, 0) ?? 0;
12108
+ function hc() {
12109
+ let { t: e } = R(), { config: t, colorPalette: n, dashboardFilters: r, schema: i, isPortletModalOpen: a, editingPortlet: o, isTextModalOpen: s, editingTextPortlet: c, isFilterConfigModalOpen: l, filterConfigPortlet: u, deleteConfirmPortletId: d, deleteConfirmGroupId: f, handlePortletSave: p, handleSaveFilterConfig: m, actions: h } = fi(), g = t.portlets.find((e) => e.id === d)?.title || e("dashboard.thisPortlet"), _ = (t.groups?.find((e) => e.id === f))?.cells.reduce((e, t) => e + t.portletIds.length, 0) ?? 0;
12017
12110
  return /* @__PURE__ */ Z(Y, { children: [
12018
- /* @__PURE__ */ X(Cs, {
12111
+ /* @__PURE__ */ X(ks, {
12019
12112
  isOpen: a,
12020
12113
  onClose: h.closePortletModal,
12021
12114
  onSave: p,
@@ -12025,7 +12118,7 @@ function lc() {
12025
12118
  colorPalette: n,
12026
12119
  dashboardFilters: r
12027
12120
  }),
12028
- /* @__PURE__ */ X(nc, {
12121
+ /* @__PURE__ */ X(cc, {
12029
12122
  isOpen: s,
12030
12123
  onClose: h.closeTextModal,
12031
12124
  onSave: p,
@@ -12033,7 +12126,7 @@ function lc() {
12033
12126
  colorPalette: n,
12034
12127
  existingTitles: t.portlets.map((e) => e.title)
12035
12128
  }),
12036
- /* @__PURE__ */ X(sc, {
12129
+ /* @__PURE__ */ X(pc, {
12037
12130
  isOpen: l,
12038
12131
  onClose: h.closeFilterConfig,
12039
12132
  dashboardFilters: r || [],
@@ -12043,7 +12136,7 @@ function lc() {
12043
12136
  schema: i || null,
12044
12137
  portlet: u
12045
12138
  }),
12046
- /* @__PURE__ */ X(cc, {
12139
+ /* @__PURE__ */ X(mc, {
12047
12140
  isOpen: !!f,
12048
12141
  onClose: h.closeDeleteConfirm,
12049
12142
  onConfirm: h.confirmDelete,
@@ -12052,7 +12145,7 @@ function lc() {
12052
12145
  confirmText: e("common.actions.delete"),
12053
12146
  confirmVariant: "danger"
12054
12147
  }),
12055
- /* @__PURE__ */ X(cc, {
12148
+ /* @__PURE__ */ X(mc, {
12056
12149
  isOpen: !!d,
12057
12150
  onClose: h.closeDeleteConfirm,
12058
12151
  onConfirm: h.confirmDelete,
@@ -12070,21 +12163,21 @@ function lc() {
12070
12163
  }
12071
12164
  //#endregion
12072
12165
  //#region src/client/components/DashboardGrid.tsx
12073
- function uc(e) {
12166
+ function gc(e) {
12074
12167
  let t = !e.config.portlets || e.config.portlets.length === 0;
12075
- return /* @__PURE__ */ Z(pi, {
12168
+ return /* @__PURE__ */ Z(yi, {
12076
12169
  ...e,
12077
12170
  children: [
12078
- !t && !e.hideToolbar && /* @__PURE__ */ X(zi, {}),
12079
- !t && /* @__PURE__ */ X(Xo, {}),
12080
- /* @__PURE__ */ X(is, {}),
12081
- /* @__PURE__ */ X(lc, {})
12171
+ !t && !e.hideToolbar && /* @__PURE__ */ X(Gi, {}),
12172
+ !t && /* @__PURE__ */ X(ns, {}),
12173
+ /* @__PURE__ */ X(us, {}),
12174
+ /* @__PURE__ */ X(hc, {})
12082
12175
  ]
12083
12176
  });
12084
12177
  }
12085
12178
  //#endregion
12086
12179
  //#region src/client/components/AnalyticsDashboard.tsx
12087
- function dc({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent: r, onConfigChange: i, onSave: a, onSaveThumbnail: o, onDirtyStateChange: s }) {
12180
+ function _c({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent: r, onConfigChange: i, onSave: a, onSaveThumbnail: o, onDirtyStateChange: s }) {
12088
12181
  let { meta: l } = L(), { dashboardModes: u } = c(), { handleConfigChange: d, handleSave: f } = te({
12089
12182
  initialConfig: e,
12090
12183
  onConfigChange: i,
@@ -12113,11 +12206,11 @@ function dc({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
12113
12206
  d
12114
12207
  ]), h = K(() => {
12115
12208
  let t = e.colorPalette;
12116
- return hi(t);
12209
+ return xi(t);
12117
12210
  }, [e.colorPalette]);
12118
12211
  return /* @__PURE__ */ X("div", {
12119
12212
  className: "dc:w-full",
12120
- children: /* @__PURE__ */ X(uc, {
12213
+ children: /* @__PURE__ */ X(gc, {
12121
12214
  config: e,
12122
12215
  editable: t,
12123
12216
  dashboardFilters: p,
@@ -12134,7 +12227,7 @@ function dc({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
12134
12227
  }
12135
12228
  //#endregion
12136
12229
  //#region src/client/components/PortletContainer.tsx
12137
- function fc({ portlet: e, editable: t = !1, onEdit: n, onDelete: r, onRefresh: i }) {
12230
+ function vc({ portlet: e, editable: t = !1, onEdit: n, onDelete: r, onRefresh: i }) {
12138
12231
  let { analysisConfig: a } = K(() => Ke(e), [e]), o = a.charts[a.analysisType], s = K(() => JSON.stringify(a.query), [a.query]), c = o?.chartType || "line", l = o?.chartConfig, u = o?.displayConfig, [d, f] = J(null), p = W((e) => {
12139
12232
  f(e);
12140
12233
  }, []);
@@ -12231,7 +12324,7 @@ function fc({ portlet: e, editable: t = !1, onEdit: n, onDelete: r, onRefresh: i
12231
12324
  }
12232
12325
  //#endregion
12233
12326
  //#region src/client/components/DashboardEditModal.tsx
12234
- function pc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initialName: a = "", initialDescription: o = "" }) {
12327
+ function yc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initialName: a = "", initialDescription: o = "" }) {
12235
12328
  let { t: s } = R(), [c, l] = J(""), [u, d] = J(""), [f, p] = J(!1);
12236
12329
  G(() => {
12237
12330
  e && (l(a), d(o));
@@ -12267,7 +12360,7 @@ function pc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initial
12267
12360
  className: "dc:px-4 dc:py-2 dc:text-sm dc:font-medium text-white bg-dc-primary dc:border border-transparent dc:rounded-md hover:bg-dc-primary-hover dc:disabled:opacity-50 dc:disabled:cursor-not-allowed",
12268
12361
  children: f ? "Saving..." : i
12269
12362
  })] });
12270
- return /* @__PURE__ */ X(as, {
12363
+ return /* @__PURE__ */ X(ds, {
12271
12364
  isOpen: e,
12272
12365
  onClose: h,
12273
12366
  title: r,
@@ -12306,6 +12399,6 @@ function pc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initial
12306
12399
  });
12307
12400
  }
12308
12401
  //#endregion
12309
- export { Yt as $, nr as A, Fn as B, Vi as C, pi as D, hi as E, Dn as F, zn as G, Ln as H, Gn as I, Nn as J, Wn as K, Rn as L, qn as M, Kn as N, oi as O, jn as P, an as Q, Un as R, Bi as S, Ce as St, Di as T, Vn as U, Hn as V, In as W, Cn as X, Pn as Y, un as Z, ha as _, De as _t, lc as a, We as at, Ui as b, Fe as bt, Cs as c, Ne as ct, ds as d, Pe as dt, jt as et, ss as f, Ie as ft, Ea as g, we as gt, Xo as h, Oe as ht, uc as i, Ke as it, tr as j, ei as k, ys as l, Me as lt, is as m, Te as mt, fc as n, qe as nt, cc as o, He as ot, as as p, Ee as pt, Mn as q, dc as r, Xe as rt, ec as s, Q as st, pc as t, nt as tt, hs as u, je as ut, ma as v, ke as vt, zi as w, Qi as x, Se as xt, Hi as y, Ae as yt, Bn as z };
12402
+ export { Yt as $, nr as A, Fn as B, qi as C, yi as D, xi as E, Dn as F, zn as G, Ln as H, Gn as I, Nn as J, Wn as K, Rn as L, qn as M, Kn as N, fi as O, jn as P, an as Q, Un as R, Ki as S, Ce as St, Ni as T, Vn as U, Hn as V, In as W, Cn as X, Pn as Y, un as Z, xa as _, De as _t, hc as a, We as at, Yi as b, Fe as bt, ks as c, Ne as ct, _s as d, Pe as dt, jt as et, ps as f, Ie as ft, Ma as g, we as gt, ns as h, Oe as ht, gc as i, Ke as it, tr as j, oi as k, Ts as l, Me as lt, us as m, Te as mt, vc as n, qe as nt, mc as o, He as ot, ds as p, Ee as pt, Mn as q, _c as r, Xe as rt, oc as s, Q as st, yc as t, nt as tt, xs as u, je as ut, ba as v, ke as vt, Gi as w, ia as x, Se as xt, Ji as y, Ae as yt, Bn as z };
12310
12403
 
12311
- //# sourceMappingURL=DashboardEditModal-_ZDMwaGX.js.map
12404
+ //# sourceMappingURL=DashboardEditModal-B-0eV6vd.js.map