drizzle-cube 0.9.7 → 0.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/adapters/ActivityGridChart.config-BGndyZtr.cjs +1 -0
  2. package/dist/adapters/ActivityGridChart.config-ZdvHJAHq.js +2 -0
  3. package/dist/adapters/AreaChart.config-Cybigwcb.js +2 -0
  4. package/dist/adapters/AreaChart.config-DWGesxUg.cjs +1 -0
  5. package/dist/adapters/BarChart.config-Cc04tVQF.js +2 -0
  6. package/dist/adapters/BarChart.config-DBCu0t_-.cjs +1 -0
  7. package/dist/adapters/BoxPlotChart.config-C0WK_ipa.cjs +1 -0
  8. package/dist/adapters/BoxPlotChart.config-DapOUN_R.js +2 -0
  9. package/dist/adapters/BubbleChart.config-DPmf7sI5.cjs +1 -0
  10. package/dist/adapters/BubbleChart.config-DROSTwxW.js +2 -0
  11. package/dist/adapters/CandlestickChart.config-BHoEJ2nY.js +2 -0
  12. package/dist/adapters/CandlestickChart.config-Cm0PKObO.cjs +1 -0
  13. package/dist/adapters/DataTable.config-DLvfXXSH.cjs +1 -0
  14. package/dist/adapters/DataTable.config-DbVrWZIw.js +2 -0
  15. package/dist/adapters/DotStripChart.config-CKPw82HE.js +2 -0
  16. package/dist/adapters/DotStripChart.config-DPIrTLb6.cjs +1 -0
  17. package/dist/adapters/FunnelChart.config-DpiDbOTn.cjs +1 -0
  18. package/dist/adapters/FunnelChart.config-DtBHVpLB.js +2 -0
  19. package/dist/adapters/GaugeChart.config-CmuXGRNV.js +2 -0
  20. package/dist/adapters/GaugeChart.config-DLj1YNsp.cjs +1 -0
  21. package/dist/adapters/HeatMapChart.config-BvFK2bny.cjs +1 -0
  22. package/dist/adapters/HeatMapChart.config-DK18zZV8.js +2 -0
  23. package/dist/adapters/KpiDelta.config-BsaVN5-T.js +2 -0
  24. package/dist/adapters/KpiDelta.config-DHsMgIdk.cjs +1 -0
  25. package/dist/adapters/KpiNumber.config-D82-j-8T.js +2 -0
  26. package/dist/adapters/KpiNumber.config-pFRomJRE.cjs +1 -0
  27. package/dist/adapters/KpiText.config-CCqeKuFB.js +2 -0
  28. package/dist/adapters/KpiText.config-CSeCoBuO.cjs +1 -0
  29. package/dist/adapters/LineChart.config-C2acjFv4.js +2 -0
  30. package/dist/adapters/LineChart.config-Dr9wmiK0.cjs +1 -0
  31. package/dist/adapters/MarkdownChart.config-C-tYLLan.js +2 -0
  32. package/dist/adapters/MarkdownChart.config-Dvyfo0CB.cjs +1 -0
  33. package/dist/adapters/MeasureProfileChart.config-C5CjPw48.js +2 -0
  34. package/dist/adapters/MeasureProfileChart.config-Dj-7HqkS.cjs +1 -0
  35. package/dist/adapters/PieChart.config-CY7nFFQn.cjs +1 -0
  36. package/dist/adapters/PieChart.config-DQLQMHc_.js +2 -0
  37. package/dist/adapters/ProportionBarChart.config-BVqtS7wi.cjs +1 -0
  38. package/dist/adapters/ProportionBarChart.config-BaSgs976.js +2 -0
  39. package/dist/adapters/RadarChart.config-DxJ5k8L9.cjs +1 -0
  40. package/dist/adapters/RadarChart.config-DzL7zQUc.js +2 -0
  41. package/dist/adapters/RadialBarChart.config-Dzl1HiGz.js +2 -0
  42. package/dist/adapters/RadialBarChart.config-XlGTd9gV.cjs +1 -0
  43. package/dist/adapters/RecordsTable.config-CS5oIMvv.js +2 -0
  44. package/dist/adapters/RecordsTable.config-DRQdHghk.cjs +1 -0
  45. package/dist/adapters/RetentionCombinedChart.config-C0iiKOdf.js +2 -0
  46. package/dist/adapters/RetentionCombinedChart.config-Dl20GZnb.cjs +1 -0
  47. package/dist/adapters/RetentionHeatmap.config-Bt42ip_c.js +2 -0
  48. package/dist/adapters/RetentionHeatmap.config-DyggEvyy.cjs +1 -0
  49. package/dist/adapters/SankeyChart.config-DYz1nUx9.js +2 -0
  50. package/dist/adapters/SankeyChart.config-dlNLJMf9.cjs +1 -0
  51. package/dist/adapters/ScatterChart.config-D72zRviD.js +2 -0
  52. package/dist/adapters/ScatterChart.config-DRtyuQvV.cjs +1 -0
  53. package/dist/adapters/SunburstChart.config-C5nHXLcu.cjs +1 -0
  54. package/dist/adapters/SunburstChart.config-j5ioABeT.js +2 -0
  55. package/dist/adapters/TreeMapChart.config-CXKcX5CH.js +2 -0
  56. package/dist/adapters/TreeMapChart.config-DuYbme03.cjs +1 -0
  57. package/dist/adapters/WaterfallChart.config-BCn4tsBV.cjs +1 -0
  58. package/dist/adapters/WaterfallChart.config-BPqhdzTP.js +2 -0
  59. package/dist/adapters/express/index.cjs +1 -1
  60. package/dist/adapters/express/index.js +1 -1
  61. package/dist/adapters/fastify/index.cjs +1 -1
  62. package/dist/adapters/fastify/index.js +1 -1
  63. package/dist/adapters/{handler-DtX1YNOn.js → handler-CknKLUQW.js} +30 -30
  64. package/dist/adapters/{handler-CTSg1daG.cjs → handler-DLWgxPOk.cjs} +2 -2
  65. package/dist/adapters/hono/index.cjs +1 -1
  66. package/dist/adapters/hono/index.js +1 -1
  67. package/dist/adapters/nextjs/index.cjs +1 -1
  68. package/dist/adapters/nextjs/index.js +1 -1
  69. package/dist/adapters/openai-CDH_AU_Z.cjs +19 -0
  70. package/dist/adapters/{openai-CWnhWp3I.js → openai-CYTlIdxS.js} +1 -1
  71. package/dist/adapters/{openai-BwtOIJIk.cjs → openai-KbobaAQj.cjs} +1 -1
  72. package/dist/adapters/{openai-Dqrs3PGo.js → openai-enh3Hkzr.js} +507 -436
  73. package/dist/cjs/client/components/shared/dateRangeUtils.d.ts +7 -3
  74. package/dist/client/chunks/{DashboardEditModal-DfaeSZGf.js → DashboardEditModal-CiN77tQN.js} +652 -530
  75. package/dist/client/chunks/DashboardEditModal-CiN77tQN.js.map +1 -0
  76. package/dist/client/chunks/{analysis-builder-fPK8NgJW.js → analysis-builder-DIOnKxJu.js} +36 -36
  77. package/dist/client/chunks/{analysis-builder-fPK8NgJW.js.map → analysis-builder-DIOnKxJu.js.map} +1 -1
  78. package/dist/client/chunks/{analysis-builder-shared--4LqPSum.js → analysis-builder-shared-CoX_nmo0.js} +747 -939
  79. package/dist/client/chunks/analysis-builder-shared-CoX_nmo0.js.map +1 -0
  80. package/dist/client/chunks/chart-data-table-BdMo3zVh.js.map +1 -1
  81. package/dist/client/components/shared/dateRangeUtils.d.ts +7 -3
  82. package/dist/client/components.js +2 -2
  83. package/dist/client/index.js +7 -7
  84. package/dist/client/index.js.map +1 -1
  85. package/dist/client-bundle-stats.html +1 -1
  86. package/dist/server/index.cjs +1 -1
  87. package/dist/server/index.js +1 -1
  88. package/dist/server/{openai-D346-vmt.cjs → openai-BIHkBS7X.cjs} +1 -1
  89. package/dist/server/{openai-SILGL2q_.js → openai-CPW5x6kl.js} +1 -1
  90. package/dist/server/{openai-D0vh48Oi.js → openai-DCC49vC6.js} +507 -436
  91. package/dist/server/openai-xQRpdAPa.cjs +19 -0
  92. package/package.json +3 -3
  93. package/dist/adapters/ActivityGridChart.config-C2kT9qd6.cjs +0 -1
  94. package/dist/adapters/ActivityGridChart.config-Crkwyx_5.js +0 -2
  95. package/dist/adapters/AreaChart.config-Cn4fTDQH.js +0 -2
  96. package/dist/adapters/AreaChart.config-DSBAn4xT.cjs +0 -1
  97. package/dist/adapters/BarChart.config-2r2_F09O.cjs +0 -1
  98. package/dist/adapters/BarChart.config-CorT50Sr.js +0 -2
  99. package/dist/adapters/BoxPlotChart.config-BM4SbL34.cjs +0 -1
  100. package/dist/adapters/BoxPlotChart.config-Dki3qfhN.js +0 -2
  101. package/dist/adapters/BubbleChart.config-DA768T1u.cjs +0 -1
  102. package/dist/adapters/BubbleChart.config-LJ2w0ZAz.js +0 -2
  103. package/dist/adapters/CandlestickChart.config-C00YG927.cjs +0 -1
  104. package/dist/adapters/CandlestickChart.config-D-vVDHaQ.js +0 -2
  105. package/dist/adapters/DataTable.config-Ml6Q3VEP.cjs +0 -1
  106. package/dist/adapters/DataTable.config-jwBiAUpg.js +0 -2
  107. package/dist/adapters/DotStripChart.config-C_dgJFje.js +0 -2
  108. package/dist/adapters/DotStripChart.config-D5M4xxNE.cjs +0 -1
  109. package/dist/adapters/FunnelChart.config-DBkjp0wh.js +0 -2
  110. package/dist/adapters/FunnelChart.config-Jc6DVjCx.cjs +0 -1
  111. package/dist/adapters/GaugeChart.config-BqW6WqXS.cjs +0 -1
  112. package/dist/adapters/GaugeChart.config-CyD4y_yf.js +0 -2
  113. package/dist/adapters/HeatMapChart.config-C_TKjH9_.cjs +0 -1
  114. package/dist/adapters/HeatMapChart.config-Di1KFl9H.js +0 -2
  115. package/dist/adapters/KpiDelta.config-qlIY4kju.js +0 -2
  116. package/dist/adapters/KpiDelta.config-zaqkGeS2.cjs +0 -1
  117. package/dist/adapters/KpiNumber.config-D1hq68b3.cjs +0 -1
  118. package/dist/adapters/KpiNumber.config-D9LpXMmo.js +0 -2
  119. package/dist/adapters/KpiText.config-BBBV_4aK.cjs +0 -1
  120. package/dist/adapters/KpiText.config-pqFid-lb.js +0 -2
  121. package/dist/adapters/LineChart.config-CFGa_jpk.js +0 -2
  122. package/dist/adapters/LineChart.config-DRTr24Jl.cjs +0 -1
  123. package/dist/adapters/MarkdownChart.config--Teyo7aa.cjs +0 -1
  124. package/dist/adapters/MarkdownChart.config-Cnptz8gx.js +0 -2
  125. package/dist/adapters/MeasureProfileChart.config-BlAnkNf6.js +0 -2
  126. package/dist/adapters/MeasureProfileChart.config-c4K6xVET.cjs +0 -1
  127. package/dist/adapters/PieChart.config-BX5FcoZn.cjs +0 -1
  128. package/dist/adapters/PieChart.config-DT1TCBFA.js +0 -2
  129. package/dist/adapters/ProportionBarChart.config-CN5ov6e6.js +0 -2
  130. package/dist/adapters/ProportionBarChart.config-DdrZQypv.cjs +0 -1
  131. package/dist/adapters/RadarChart.config-CYpWy1MI.js +0 -2
  132. package/dist/adapters/RadarChart.config-Cm14F-JW.cjs +0 -1
  133. package/dist/adapters/RadialBarChart.config-BXEmrEW0.js +0 -2
  134. package/dist/adapters/RadialBarChart.config-bJL8ZwT5.cjs +0 -1
  135. package/dist/adapters/RecordsTable.config-BifW_6cA.cjs +0 -1
  136. package/dist/adapters/RecordsTable.config-DOu5dLR9.js +0 -2
  137. package/dist/adapters/RetentionCombinedChart.config-BLTS46q4.js +0 -2
  138. package/dist/adapters/RetentionCombinedChart.config-DkIUp-uU.cjs +0 -1
  139. package/dist/adapters/RetentionHeatmap.config-Csnntt4P.js +0 -2
  140. package/dist/adapters/RetentionHeatmap.config-Xljn01Px.cjs +0 -1
  141. package/dist/adapters/SankeyChart.config-BExGzO93.cjs +0 -1
  142. package/dist/adapters/SankeyChart.config-DEBF3E7J.js +0 -2
  143. package/dist/adapters/ScatterChart.config-B9fxyVl8.cjs +0 -1
  144. package/dist/adapters/ScatterChart.config-CNWNsjv_.js +0 -2
  145. package/dist/adapters/SunburstChart.config-DyBJr_Ah.js +0 -2
  146. package/dist/adapters/SunburstChart.config-vXKPV3lF.cjs +0 -1
  147. package/dist/adapters/TreeMapChart.config-CoXSasFP.js +0 -2
  148. package/dist/adapters/TreeMapChart.config-iq-fCkIZ.cjs +0 -1
  149. package/dist/adapters/WaterfallChart.config-Coyj2j_7.cjs +0 -1
  150. package/dist/adapters/WaterfallChart.config-Dyf-p2Z2.js +0 -2
  151. package/dist/adapters/openai-ClwjvwzT.cjs +0 -19
  152. package/dist/client/chunks/DashboardEditModal-DfaeSZGf.js.map +0 -1
  153. package/dist/client/chunks/analysis-builder-shared--4LqPSum.js.map +0 -1
  154. package/dist/server/openai-C6tdx3yN.cjs +0 -19
@@ -6812,8 +6812,200 @@ function Hi(e) {
6812
6812
  return t;
6813
6813
  }
6814
6814
  //#endregion
6815
+ //#region src/shared/date-utils.ts
6816
+ var Ui = (e) => {
6817
+ let t = new Date(e);
6818
+ return t.setUTCHours(0, 0, 0, 0), t;
6819
+ }, Wi = (e) => {
6820
+ let t = new Date(e);
6821
+ return t.setUTCHours(23, 59, 59, 999), t;
6822
+ }, Gi = {
6823
+ today: ({ now: e }) => ({
6824
+ start: Ui(e),
6825
+ end: Wi(e)
6826
+ }),
6827
+ yesterday: ({ now: e, utcDate: t }) => {
6828
+ let n = new Date(e);
6829
+ n.setUTCDate(t - 1), n.setUTCHours(0, 0, 0, 0);
6830
+ let r = new Date(e);
6831
+ return r.setUTCDate(t - 1), r.setUTCHours(23, 59, 59, 999), {
6832
+ start: n,
6833
+ end: r
6834
+ };
6835
+ },
6836
+ "this week": ({ now: e, utcDate: t, utcDay: n }) => {
6837
+ let r = n === 0 ? -6 : 1 - n, i = new Date(e);
6838
+ i.setUTCDate(t + r), i.setUTCHours(0, 0, 0, 0);
6839
+ let a = new Date(i);
6840
+ return a.setUTCDate(i.getUTCDate() + 6), a.setUTCHours(23, 59, 59, 999), {
6841
+ start: i,
6842
+ end: a
6843
+ };
6844
+ },
6845
+ "this month": ({ utcYear: e, utcMonth: t }) => ({
6846
+ start: new Date(Date.UTC(e, t, 1, 0, 0, 0, 0)),
6847
+ end: new Date(Date.UTC(e, t + 1, 0, 23, 59, 59, 999))
6848
+ }),
6849
+ "this quarter": ({ utcYear: e, utcMonth: t }) => {
6850
+ let n = Math.floor(t / 3);
6851
+ return {
6852
+ start: new Date(Date.UTC(e, n * 3, 1, 0, 0, 0, 0)),
6853
+ end: new Date(Date.UTC(e, n * 3 + 3, 0, 23, 59, 59, 999))
6854
+ };
6855
+ },
6856
+ "this year": ({ utcYear: e }) => ({
6857
+ start: new Date(Date.UTC(e, 0, 1, 0, 0, 0, 0)),
6858
+ end: new Date(Date.UTC(e, 11, 31, 23, 59, 59, 999))
6859
+ }),
6860
+ "last week": ({ now: e, utcDate: t, utcDay: n }) => {
6861
+ let r = n === 0 ? -13 : -6 - n, i = new Date(e);
6862
+ i.setUTCDate(t + r), i.setUTCHours(0, 0, 0, 0);
6863
+ let a = new Date(i);
6864
+ return a.setUTCDate(i.getUTCDate() + 6), a.setUTCHours(23, 59, 59, 999), {
6865
+ start: i,
6866
+ end: a
6867
+ };
6868
+ },
6869
+ "last month": ({ utcYear: e, utcMonth: t }) => ({
6870
+ start: new Date(Date.UTC(e, t - 1, 1, 0, 0, 0, 0)),
6871
+ end: new Date(Date.UTC(e, t, 0, 23, 59, 59, 999))
6872
+ }),
6873
+ "last quarter": ({ utcYear: e, utcMonth: t }) => {
6874
+ let n = Math.floor(t / 3), r = n === 0 ? 3 : n - 1, i = n === 0 ? e - 1 : e;
6875
+ return {
6876
+ start: new Date(Date.UTC(i, r * 3, 1, 0, 0, 0, 0)),
6877
+ end: new Date(Date.UTC(i, r * 3 + 3, 0, 23, 59, 59, 999))
6878
+ };
6879
+ },
6880
+ "last year": ({ utcYear: e }) => ({
6881
+ start: new Date(Date.UTC(e - 1, 0, 1, 0, 0, 0, 0)),
6882
+ end: new Date(Date.UTC(e - 1, 11, 31, 23, 59, 59, 999))
6883
+ }),
6884
+ "last 12 months": ({ now: e, utcYear: t, utcMonth: n }) => ({
6885
+ start: new Date(Date.UTC(t, n - 11, 1, 0, 0, 0, 0)),
6886
+ end: Wi(e)
6887
+ })
6888
+ }, Ki = [
6889
+ {
6890
+ re: /^last\s+(\d+)\s+days?$/,
6891
+ build: (e, { now: t, utcDate: n }) => {
6892
+ let r = new Date(t);
6893
+ return r.setUTCDate(n - e + 1), r.setUTCHours(0, 0, 0, 0), {
6894
+ start: r,
6895
+ end: Wi(t)
6896
+ };
6897
+ }
6898
+ },
6899
+ {
6900
+ re: /^last\s+(\d+)\s+weeks?$/,
6901
+ build: (e, { now: t, utcDate: n }) => {
6902
+ let r = new Date(t);
6903
+ return r.setUTCDate(n - e * 7 + 1), r.setUTCHours(0, 0, 0, 0), {
6904
+ start: r,
6905
+ end: Wi(t)
6906
+ };
6907
+ }
6908
+ },
6909
+ {
6910
+ re: /^last\s+(\d+)\s+months?$/,
6911
+ build: (e, { now: t, utcYear: n, utcMonth: r }) => ({
6912
+ start: new Date(Date.UTC(n, r - e + 1, 1, 0, 0, 0, 0)),
6913
+ end: Wi(t)
6914
+ })
6915
+ },
6916
+ {
6917
+ re: /^last\s+(\d+)\s+quarters?$/,
6918
+ build: (e, { now: t, utcYear: n, utcMonth: r }) => ({
6919
+ start: new Date(Date.UTC(n, (Math.floor(r / 3) - e + 1) * 3, 1, 0, 0, 0, 0)),
6920
+ end: Wi(t)
6921
+ })
6922
+ },
6923
+ {
6924
+ re: /^last\s+(\d+)\s+years?$/,
6925
+ build: (e, { now: t, utcYear: n }) => ({
6926
+ start: new Date(Date.UTC(n - e, 0, 1, 0, 0, 0, 0)),
6927
+ end: Wi(t)
6928
+ })
6929
+ }
6930
+ ], qi = ({ now: e, utcDate: t, utcDay: n }) => {
6931
+ let r = new Date(e);
6932
+ return r.setUTCDate(t + (n === 0 ? -6 : 1 - n)), r.setUTCHours(0, 0, 0, 0), r;
6933
+ }, Ji = {
6934
+ tomorrow: ({ now: e, utcDate: t }) => {
6935
+ let n = new Date(e);
6936
+ n.setUTCDate(t + 1), n.setUTCHours(0, 0, 0, 0);
6937
+ let r = new Date(n);
6938
+ return r.setUTCHours(23, 59, 59, 999), {
6939
+ start: n,
6940
+ end: r
6941
+ };
6942
+ },
6943
+ "next week": (e) => {
6944
+ let t = qi(e);
6945
+ t.setUTCDate(t.getUTCDate() + 7);
6946
+ let n = new Date(t);
6947
+ return n.setUTCDate(t.getUTCDate() + 6), n.setUTCHours(23, 59, 59, 999), {
6948
+ start: t,
6949
+ end: n
6950
+ };
6951
+ },
6952
+ "next month": ({ utcYear: e, utcMonth: t }) => ({
6953
+ start: new Date(Date.UTC(e, t + 1, 1, 0, 0, 0, 0)),
6954
+ end: new Date(Date.UTC(e, t + 2, 0, 23, 59, 59, 999))
6955
+ }),
6956
+ "next quarter": ({ utcYear: e, utcMonth: t }) => {
6957
+ let n = (Math.floor(t / 3) + 1) * 3;
6958
+ return {
6959
+ start: new Date(Date.UTC(e, n, 1, 0, 0, 0, 0)),
6960
+ end: new Date(Date.UTC(e, n + 3, 0, 23, 59, 59, 999))
6961
+ };
6962
+ },
6963
+ "next year": ({ utcYear: e }) => ({
6964
+ start: new Date(Date.UTC(e + 1, 0, 1, 0, 0, 0, 0)),
6965
+ end: new Date(Date.UTC(e + 1, 11, 31, 23, 59, 59, 999))
6966
+ })
6967
+ };
6968
+ function Yi(e) {
6969
+ let t = /* @__PURE__ */ new Date(), n = e.toLowerCase().trim(), r = {
6970
+ now: t,
6971
+ utcYear: t.getUTCFullYear(),
6972
+ utcMonth: t.getUTCMonth(),
6973
+ utcDate: t.getUTCDate(),
6974
+ utcDay: t.getUTCDay()
6975
+ }, i = Object.prototype.hasOwnProperty.call(Gi, n) ? Gi[n] : Object.prototype.hasOwnProperty.call(Ji, n) ? Ji[n] : void 0;
6976
+ if (i) return i(r);
6977
+ for (let { re: e, build: t } of Ki) {
6978
+ let i = n.match(e);
6979
+ if (i) return t(parseInt(i[1], 10), r);
6980
+ }
6981
+ return null;
6982
+ }
6983
+ function Xi(e) {
6984
+ if (Array.isArray(e)) {
6985
+ if (e.length < 2) return null;
6986
+ let t = new Date(e[0]), n = new Date(e[1]);
6987
+ return isNaN(t.getTime()) || isNaN(n.getTime()) ? null : (n.setUTCHours(23, 59, 59, 999), {
6988
+ start: t,
6989
+ end: n
6990
+ });
6991
+ }
6992
+ return Yi(e);
6993
+ }
6994
+ function Zi(e) {
6995
+ return e.toISOString().split("T")[0];
6996
+ }
6997
+ function Qi(e, t) {
6998
+ let n = t.getTime() - e.getTime(), r = Math.ceil(n / 864e5), i = new Date(e);
6999
+ i.setUTCDate(i.getUTCDate() - 1), i.setUTCHours(23, 59, 59, 999);
7000
+ let a = new Date(i);
7001
+ return a.setUTCDate(a.getUTCDate() - r + 1), a.setUTCHours(0, 0, 0, 0), {
7002
+ start: a,
7003
+ end: i
7004
+ };
7005
+ }
7006
+ //#endregion
6815
7007
  //#region src/client/components/AnalysisBuilder/utils/fieldUtils.ts
6816
- function Ui(e, t) {
7008
+ function $i(e, t) {
6817
7009
  if (!t) return null;
6818
7010
  for (let n of t.cubes) {
6819
7011
  let t = n.measures.find((t) => t.name === e);
@@ -6831,11 +7023,11 @@ function Ui(e, t) {
6831
7023
  }
6832
7024
  return null;
6833
7025
  }
6834
- function Wi(e, t) {
6835
- let n = Ui(e, t);
7026
+ function ea(e, t) {
7027
+ let n = $i(e, t);
6836
7028
  return n && (n.field.title || n.field.shortTitle) || e;
6837
7029
  }
6838
- function Gi(e, t) {
7030
+ function ta(e, t) {
6839
7031
  return {
6840
7032
  name: t.name,
6841
7033
  title: t.title || t.shortTitle || t.name,
@@ -6846,7 +7038,7 @@ function Gi(e, t) {
6846
7038
  fieldType: "measure"
6847
7039
  };
6848
7040
  }
6849
- function Ki(e, t) {
7041
+ function na(e, t) {
6850
7042
  return {
6851
7043
  name: t.name,
6852
7044
  title: t.title || t.shortTitle || t.name,
@@ -6857,16 +7049,16 @@ function Ki(e, t) {
6857
7049
  fieldType: t.type === "time" ? "timeDimension" : "dimension"
6858
7050
  };
6859
7051
  }
6860
- function qi(e, t) {
7052
+ function ra(e, t) {
6861
7053
  if (!e) return [];
6862
7054
  let n = t === "metrics" || t === "filter", r = t !== "metrics", i = [];
6863
7055
  for (let t of e.cubes) {
6864
- if (n) for (let e of t.measures) i.push(Gi(t.name, e));
6865
- if (r) for (let e of t.dimensions) i.push(Ki(t.name, e));
7056
+ if (n) for (let e of t.measures) i.push(ta(t.name, e));
7057
+ if (r) for (let e of t.dimensions) i.push(na(t.name, e));
6866
7058
  }
6867
7059
  return i;
6868
7060
  }
6869
- function Ji(e, t, n) {
7061
+ function ia(e, t, n) {
6870
7062
  let r = e;
6871
7063
  if (n && n !== "all" && (r = r.filter((e) => e.cubeName === n)), t.trim()) {
6872
7064
  let e = t.toLowerCase();
@@ -6874,7 +7066,7 @@ function Ji(e, t, n) {
6874
7066
  }
6875
7067
  return r;
6876
7068
  }
6877
- function Yi(e) {
7069
+ function aa(e) {
6878
7070
  let t = /* @__PURE__ */ new Map();
6879
7071
  for (let n of e) {
6880
7072
  let e = t.get(n.cubeName) || [];
@@ -6882,13 +7074,13 @@ function Yi(e) {
6882
7074
  }
6883
7075
  return t;
6884
7076
  }
6885
- function Xi(e) {
7077
+ function oa(e) {
6886
7078
  return e ? e.cubes.map((e) => e.name) : [];
6887
7079
  }
6888
- function Zi(e, t) {
7080
+ function sa(e, t) {
6889
7081
  return t && t.cubes.find((t) => t.name === e)?.title || e;
6890
7082
  }
6891
- function Qi(e, t) {
7083
+ function ca(e, t) {
6892
7084
  let n = /* @__PURE__ */ new Set();
6893
7085
  if (!t) return n;
6894
7086
  n.add(e);
@@ -6897,9 +7089,9 @@ function Qi(e, t) {
6897
7089
  for (let e of r.relationships) n.add(e.targetCube);
6898
7090
  return n;
6899
7091
  }
6900
- function $i(e, t) {
7092
+ function la(e, t) {
6901
7093
  if (!t) return null;
6902
- let n = Qi(e, t);
7094
+ let n = ca(e, t);
6903
7095
  return { cubes: t.cubes.filter((e) => n.has(e.name)).map((e) => ({
6904
7096
  ...e,
6905
7097
  description: e.description || ""
@@ -6907,10 +7099,10 @@ function $i(e, t) {
6907
7099
  }
6908
7100
  //#endregion
6909
7101
  //#region src/client/components/AnalysisBuilder/utils/recentFieldsUtils.ts
6910
- var ea = "drizzle-cube-recent-fields", ta = 10;
6911
- function na() {
7102
+ var ua = "drizzle-cube-recent-fields", da = 10;
7103
+ function fa() {
6912
7104
  try {
6913
- let e = localStorage.getItem(ea);
7105
+ let e = localStorage.getItem(ua);
6914
7106
  if (e) return JSON.parse(e);
6915
7107
  } catch {}
6916
7108
  return {
@@ -6918,15 +7110,15 @@ function na() {
6918
7110
  breakdowns: []
6919
7111
  };
6920
7112
  }
6921
- function ra(e, t) {
7113
+ function pa(e, t) {
6922
7114
  try {
6923
- let n = na(), r = n[t].filter((t) => t !== e);
6924
- r.unshift(e), n[t] = r.slice(0, ta), localStorage.setItem(ea, JSON.stringify(n));
7115
+ let n = fa(), r = n[t].filter((t) => t !== e);
7116
+ r.unshift(e), n[t] = r.slice(0, da), localStorage.setItem(ua, JSON.stringify(n));
6925
7117
  } catch {}
6926
7118
  }
6927
- function ia(e, t, n) {
7119
+ function ma(e, t, n) {
6928
7120
  if (!e || n.length === 0) return [];
6929
- let r = qi(e, t), i = [];
7121
+ let r = ra(e, t), i = [];
6930
7122
  for (let e of n) {
6931
7123
  let t = r.find((t) => t.name === e);
6932
7124
  t && i.push(t);
@@ -6935,7 +7127,7 @@ function ia(e, t, n) {
6935
7127
  }
6936
7128
  //#endregion
6937
7129
  //#region src/client/components/AnalysisBuilder/FieldDetailPanel.tsx
6938
- function aa({ field: e }) {
7130
+ function ha({ field: e }) {
6939
7131
  let { t } = B();
6940
7132
  return e ? /* @__PURE__ */ Q("div", {
6941
7133
  className: "dc:p-4",
@@ -7042,8 +7234,8 @@ function aa({ field: e }) {
7042
7234
  })
7043
7235
  });
7044
7236
  }
7045
- var oa = W(aa), sa = b("check");
7046
- function ca({ field: e, isSelected: t, isFocused: n, onClick: r, onMouseEnter: i, ...a }) {
7237
+ var ga = W(ha), _a = b("check");
7238
+ function va({ field: e, isSelected: t, isFocused: n, onClick: r, onMouseEnter: i, ...a }) {
7047
7239
  let o = () => {
7048
7240
  if (e.fieldType === "measure") {
7049
7241
  let t = u(e.type);
@@ -7084,19 +7276,19 @@ function ca({ field: e, isSelected: t, isFocused: n, onClick: r, onMouseEnter: i
7084
7276
  }),
7085
7277
  t && /* @__PURE__ */ Z("span", {
7086
7278
  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",
7087
- children: /* @__PURE__ */ Z(sa, { className: "dc:w-3 dc:h-3" })
7279
+ children: /* @__PURE__ */ Z(_a, { className: "dc:w-3 dc:h-3" })
7088
7280
  })
7089
7281
  ]
7090
7282
  });
7091
7283
  }
7092
- var la = W(ca);
7284
+ var ya = W(va);
7093
7285
  //#endregion
7094
7286
  //#region src/client/components/AnalysisBuilder/FieldSearchResults.tsx
7095
- function ua(e, t, n, r, i) {
7287
+ function ba(e, t, n, r, i) {
7096
7288
  let a = Array.from(e.entries()), o = Array.from(e.keys()).indexOf(n);
7097
7289
  return t + a.slice(0, o).reduce((e, [, t]) => e + t.length, 0) + r.indexOf(i);
7098
7290
  }
7099
- var da = W(function({ mode: e, schema: t, searchTerm: n, recentOptions: r, groupedFields: i, filteredCount: a, selectedFields: o, focusedIndex: s, onSelectField: c, onFocusField: l }) {
7291
+ var xa = W(function({ mode: e, schema: t, searchTerm: n, recentOptions: r, groupedFields: i, filteredCount: a, selectedFields: o, focusedIndex: s, onSelectField: c, onFocusField: l }) {
7100
7292
  let { t: u } = B();
7101
7293
  if (a === 0 && r.length === 0) {
7102
7294
  let t;
@@ -7111,7 +7303,7 @@ var da = W(function({ mode: e, schema: t, searchTerm: n, recentOptions: r, group
7111
7303
  })]
7112
7304
  });
7113
7305
  }
7114
- let d = (e, t, n = "") => /* @__PURE__ */ Z(la, {
7306
+ let d = (e, t, n = "") => /* @__PURE__ */ Z(ya, {
7115
7307
  field: e,
7116
7308
  isSelected: o.includes(e.name),
7117
7309
  isFocused: s === t,
@@ -7129,16 +7321,16 @@ var da = W(function({ mode: e, schema: t, searchTerm: n, recentOptions: r, group
7129
7321
  children: r.map((e, t) => d(e, t, "recent-"))
7130
7322
  })] }), Array.from(i.entries()).map(([e, n]) => /* @__PURE__ */ Q("div", { children: [/* @__PURE__ */ Z("h3", {
7131
7323
  className: "dc:text-xs dc:font-semibold text-dc-text-muted dc:uppercase dc:tracking-wider dc:mb-2",
7132
- children: Zi(e, t)
7324
+ children: sa(e, t)
7133
7325
  }), /* @__PURE__ */ Z("div", {
7134
7326
  className: "dc:space-y-1",
7135
- children: n.map((t) => d(t, ua(i, r.length, e, n, t)))
7327
+ children: n.map((t) => d(t, ba(i, r.length, e, n, t)))
7136
7328
  })] }, e))]
7137
7329
  });
7138
7330
  });
7139
7331
  //#endregion
7140
7332
  //#region src/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.ts
7141
- function fa(e, t, n) {
7333
+ function Sa(e, t, n) {
7142
7334
  let [r, i] = Y(null), [a, o] = Y(-1), s = J(null), c = G((t) => {
7143
7335
  o((n) => {
7144
7336
  let r = t > 0 ? Math.min(n + 1, e.length - 1) : Math.max(n - 1, 0);
@@ -7183,17 +7375,17 @@ function fa(e, t, n) {
7183
7375
  }
7184
7376
  //#endregion
7185
7377
  //#region src/client/components/AnalysisBuilder/FieldSearchModal.tsx
7186
- var pa = b("search"), ma = b("close");
7187
- function ha({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFields: a, recentFields: o }) {
7378
+ var Ca = b("search"), wa = b("close");
7379
+ function Ta({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFields: a, recentFields: o }) {
7188
7380
  let { t: s } = B(), [c, l] = Y(""), [u, d] = Y(null), [f, p] = Y(null), m = J(null), h = q(() => {
7189
7381
  if (o) return o;
7190
- let e = na();
7382
+ let e = fa();
7191
7383
  return r === "metrics" ? e.metrics : e.breakdowns;
7192
- }, [o, r]), g = r, _ = q(() => qi(i, g), [i, g]), v = q(() => Xi(i), [i]), y = q(() => Ji(_, c, u), [
7384
+ }, [o, r]), g = r, _ = q(() => ra(i, g), [i, g]), v = q(() => oa(i), [i]), y = q(() => ia(_, c, u), [
7193
7385
  _,
7194
7386
  c,
7195
7387
  u
7196
- ]), b = q(() => Yi(y), [y]), x = q(() => c.trim() ? [] : ia(i, g, h).filter((e) => !u || e.cubeName === u), [
7388
+ ]), b = q(() => aa(y), [y]), x = q(() => c.trim() ? [] : ma(i, g, h).filter((e) => !u || e.cubeName === u), [
7197
7389
  i,
7198
7390
  g,
7199
7391
  h,
@@ -7209,7 +7401,7 @@ function ha({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7209
7401
  e && m.current && m.current.focus();
7210
7402
  }, [e]);
7211
7403
  let C = G((e, t = !1) => {
7212
- ra(e.name, r === "metrics" ? "metrics" : "breakdowns"), n({
7404
+ pa(e.name, r === "metrics" ? "metrics" : "breakdowns"), n({
7213
7405
  name: e.name,
7214
7406
  title: e.title,
7215
7407
  shortTitle: e.shortTitle,
@@ -7230,7 +7422,7 @@ function ha({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7230
7422
  f,
7231
7423
  C,
7232
7424
  a
7233
- ]), { focusedField: T, setFocusedField: E, focusedIndex: D, setFocusedIndex: O, resultsContainerRef: k, handleKeyDown: A } = fa(S, w, t), j = G((e, t) => {
7425
+ ]), { focusedField: T, setFocusedField: E, focusedIndex: D, setFocusedIndex: O, resultsContainerRef: k, handleKeyDown: A } = Sa(S, w, t), j = G((e, t) => {
7234
7426
  E(e), O(t);
7235
7427
  }, [E, O]);
7236
7428
  if (K(() => {
@@ -7259,7 +7451,7 @@ function ha({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7259
7451
  children: [/* @__PURE__ */ Q("div", {
7260
7452
  className: "dc:flex dc:items-center dc:px-4 dc:py-3 dc:gap-3",
7261
7453
  children: [
7262
- /* @__PURE__ */ Z(pa, {
7454
+ /* @__PURE__ */ Z(Ca, {
7263
7455
  className: "dc:w-5 dc:h-5 text-dc-text-muted",
7264
7456
  "aria-hidden": !0
7265
7457
  }),
@@ -7283,7 +7475,7 @@ function ha({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7283
7475
  onClick: t,
7284
7476
  className: "dc:p-1 text-dc-text-secondary hover:text-dc-text dc:rounded-sm",
7285
7477
  "aria-label": "Close dialog",
7286
- children: /* @__PURE__ */ Z(ma, {
7478
+ children: /* @__PURE__ */ Z(wa, {
7287
7479
  className: "dc:w-5 dc:h-5",
7288
7480
  "aria-hidden": !0
7289
7481
  })
@@ -7301,7 +7493,7 @@ function ha({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7301
7493
  children: s("fieldSearch.filter.allCubes")
7302
7494
  }), v.map((e) => /* @__PURE__ */ Z("option", {
7303
7495
  value: e,
7304
- children: Zi(e, i)
7496
+ children: sa(e, i)
7305
7497
  }, e))]
7306
7498
  })
7307
7499
  })]
@@ -7324,9 +7516,9 @@ function ha({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7324
7516
  }), v.map((e) => /* @__PURE__ */ Z("button", {
7325
7517
  onClick: () => d(e),
7326
7518
  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"}`,
7327
- title: Zi(e, i),
7519
+ title: sa(e, i),
7328
7520
  "aria-pressed": u === e,
7329
- children: Zi(e, i)
7521
+ children: sa(e, i)
7330
7522
  }, e))]
7331
7523
  })
7332
7524
  }),
@@ -7336,7 +7528,7 @@ function ha({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7336
7528
  className: "dc:flex-1 dc:overflow-y-auto dc:p-4",
7337
7529
  role: "listbox",
7338
7530
  "aria-label": "Available fields",
7339
- children: /* @__PURE__ */ Z(da, {
7531
+ children: /* @__PURE__ */ Z(xa, {
7340
7532
  mode: r,
7341
7533
  schema: i,
7342
7534
  searchTerm: c,
@@ -7351,7 +7543,7 @@ function ha({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7351
7543
  }),
7352
7544
  /* @__PURE__ */ Z("div", {
7353
7545
  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",
7354
- children: /* @__PURE__ */ Z(oa, { field: T })
7546
+ children: /* @__PURE__ */ Z(ga, { field: T })
7355
7547
  })
7356
7548
  ]
7357
7549
  }),
@@ -7409,7 +7601,7 @@ function ha({ isOpen: e, onClose: t, onSelect: n, mode: r, schema: i, selectedFi
7409
7601
  }
7410
7602
  //#endregion
7411
7603
  //#region src/client/shared/types.ts
7412
- var ga = [
7604
+ var Ea = [
7413
7605
  {
7414
7606
  value: "custom",
7415
7607
  label: "dateRange.custom"
@@ -7486,7 +7678,7 @@ var ga = [
7486
7678
  value: "last_n_years",
7487
7679
  label: "dateRange.lastNYears"
7488
7680
  }
7489
- ], _a = [
7681
+ ], Da = [
7490
7682
  {
7491
7683
  id: "today",
7492
7684
  label: "Today",
@@ -7522,7 +7714,7 @@ var ga = [
7522
7714
  label: "12M",
7523
7715
  value: "last 12 months"
7524
7716
  }
7525
- ], va = [
7717
+ ], Oa = [
7526
7718
  {
7527
7719
  id: "wtd",
7528
7720
  label: "Week to Date",
@@ -7544,120 +7736,36 @@ var ga = [
7544
7736
  value: "this year"
7545
7737
  }
7546
7738
  ];
7547
- function ya(e) {
7548
- let t = new Date(e), n = t.getDay(), r = n === 0 ? 6 : n - 1;
7549
- return t.setDate(t.getDate() - r), t;
7739
+ function ka(e) {
7740
+ return Yi(e);
7550
7741
  }
7551
- function ba(e, t, n) {
7552
- switch (e) {
7553
- case "today": return {
7554
- start: t,
7555
- end: n
7556
- };
7557
- case "yesterday": {
7558
- let e = new Date(t);
7559
- e.setDate(e.getDate() - 1);
7560
- let n = new Date(e);
7561
- return n.setHours(23, 59, 59, 999), {
7562
- start: e,
7563
- end: n
7564
- };
7565
- }
7566
- case "this week": return {
7567
- start: ya(t),
7568
- end: n
7569
- };
7570
- case "this month": return {
7571
- start: new Date(t.getFullYear(), t.getMonth(), 1),
7572
- end: n
7573
- };
7574
- case "this quarter": {
7575
- let e = Math.floor(t.getMonth() / 3);
7576
- return {
7577
- start: new Date(t.getFullYear(), e * 3, 1),
7578
- end: n
7579
- };
7580
- }
7581
- case "this year": return {
7582
- start: new Date(t.getFullYear(), 0, 1),
7583
- end: n
7584
- };
7585
- default: return null;
7586
- }
7587
- }
7588
- function xa(e, t, n) {
7589
- let r = e.match(/^last\s+(\d+)\s+(day|days|week|weeks|month|months|quarter|quarters|year|years)$/i);
7590
- if (!r) return null;
7591
- let i = parseInt(r[1], 10), a = r[2].toLowerCase(), o = new Date(t);
7592
- return a === "day" || a === "days" ? o.setDate(o.getDate() - i + 1) : a === "week" || a === "weeks" ? o.setDate(o.getDate() - i * 7 + 1) : a === "month" || a === "months" ? (o.setMonth(o.getMonth() - i), o.setDate(o.getDate() + 1)) : a === "quarter" || a === "quarters" ? (o.setMonth(o.getMonth() - i * 3), o.setDate(o.getDate() + 1)) : (a === "year" || a === "years") && (o.setFullYear(o.getFullYear() - i), o.setDate(o.getDate() + 1)), {
7593
- start: o,
7594
- end: n
7595
- };
7596
- }
7597
- function Sa(e, t) {
7598
- let n = e.match(/^last\s+(week|month|quarter|year)$/i);
7599
- if (!n) return null;
7600
- let r = n[1].toLowerCase();
7601
- if (r === "week") {
7602
- let e = new Date(t), n = e.getDay(), r = n === 0 ? 6 : n - 1;
7603
- e.setDate(e.getDate() - r - 1), e.setHours(23, 59, 59, 999);
7604
- let i = new Date(e);
7605
- return i.setDate(i.getDate() - 6), i.setHours(0, 0, 0, 0), {
7606
- start: i,
7607
- end: e
7608
- };
7609
- }
7610
- if (r === "month") {
7611
- let e = new Date(t.getFullYear(), t.getMonth() - 1, 1), n = new Date(t.getFullYear(), t.getMonth(), 0);
7612
- return n.setHours(23, 59, 59, 999), {
7613
- start: e,
7614
- end: n
7615
- };
7616
- }
7617
- if (r === "quarter") {
7618
- let e = Math.floor(t.getMonth() / 3), n = e === 0 ? 3 : e - 1, r = e === 0 ? t.getFullYear() - 1 : t.getFullYear(), i = new Date(r, n * 3, 1), a = new Date(r, n * 3 + 3, 0);
7619
- return a.setHours(23, 59, 59, 999), {
7620
- start: i,
7621
- end: a
7622
- };
7623
- }
7624
- let i = new Date(t.getFullYear() - 1, 0, 1), a = new Date(t.getFullYear() - 1, 11, 31);
7625
- return a.setHours(23, 59, 59, 999), {
7626
- start: i,
7627
- end: a
7628
- };
7629
- }
7630
- function Ca(e) {
7631
- let t = /* @__PURE__ */ new Date();
7632
- t.setHours(0, 0, 0, 0);
7633
- let n = new Date(t);
7634
- return n.setHours(23, 59, 59, 999), ba(e.toLowerCase(), t, n) ?? xa(e, t, n) ?? Sa(e, t);
7635
- }
7636
- function wa(e, t) {
7742
+ function Aa(e, t) {
7637
7743
  let n = {
7638
7744
  month: "short",
7639
7745
  day: "numeric",
7640
- year: "numeric"
7746
+ year: "numeric",
7747
+ timeZone: "UTC"
7641
7748
  }, r = e.toLocaleDateString("en-US", n), i = t.toLocaleDateString("en-US", n);
7642
- return r === i ? r : e.getFullYear() === t.getFullYear() ? `${e.toLocaleDateString("en-US", {
7749
+ return r === i ? r : e.getUTCFullYear() === t.getUTCFullYear() ? `${e.toLocaleDateString("en-US", {
7643
7750
  month: "short",
7644
- day: "numeric"
7751
+ day: "numeric",
7752
+ timeZone: "UTC"
7645
7753
  })} - ${i}` : `${r} - ${i}`;
7646
7754
  }
7647
- function Ta(e) {
7755
+ function ja(e) {
7648
7756
  if (!e) return null;
7649
7757
  if (Array.isArray(e)) return "custom";
7650
- let t = e.toLowerCase().trim(), n = [..._a, ...va].find((e) => e.value.toLowerCase() === t);
7758
+ let t = e.toLowerCase().trim(), n = [...Da, ...Oa].find((e) => e.value.toLowerCase() === t);
7651
7759
  return n ? n.id : "custom";
7652
7760
  }
7653
- var Ea = {
7761
+ var Ma = {
7654
7762
  day: "days",
7655
7763
  week: "weeks",
7656
7764
  month: "months",
7657
7765
  quarter: "quarters",
7658
7766
  year: "years"
7659
7767
  };
7660
- function Da(e) {
7768
+ function Na(e) {
7661
7769
  if (!e) return null;
7662
7770
  if (Array.isArray(e)) return { rangeType: "custom" };
7663
7771
  let t = e.match(/^last (\d+) (days|weeks|months|quarters|years)$/);
@@ -7672,16 +7780,16 @@ function Da(e) {
7672
7780
  if (n) {
7673
7781
  let [, e] = n;
7674
7782
  return {
7675
- rangeType: `last_n_${Ea[e] ?? "years"}`,
7783
+ rangeType: `last_n_${Ma[e] ?? "years"}`,
7676
7784
  numberValue: 1
7677
7785
  };
7678
7786
  }
7679
- for (let t of ga) if (t.value !== "custom" && !F(t.value) && L(t.value) === e) return { rangeType: t.value };
7787
+ for (let t of Ea) if (t.value !== "custom" && !F(t.value) && L(t.value) === e) return { rangeType: t.value };
7680
7788
  return { rangeType: "custom" };
7681
7789
  }
7682
7790
  //#endregion
7683
7791
  //#region src/client/components/DashboardFilters/dashboardFilterConfigModalUtils.ts
7684
- function Oa(e, t) {
7792
+ function Pa(e, t) {
7685
7793
  if (t === "number") {
7686
7794
  let t = parseFloat(e);
7687
7795
  return isNaN(t) ? e === "" || e === "-" ? [] : null : [t];
@@ -7690,7 +7798,7 @@ function Oa(e, t) {
7690
7798
  }
7691
7799
  //#endregion
7692
7800
  //#region src/client/components/DashboardFilters/useFilterDropdowns.ts
7693
- function ka() {
7801
+ function Fa() {
7694
7802
  let e = J(null), [t, n] = Y(!1), [r, i] = Y(!1), [a, o] = Y(!1);
7695
7803
  return K(() => {
7696
7804
  let t = (t) => {
@@ -7709,7 +7817,7 @@ function ka() {
7709
7817
  }
7710
7818
  //#endregion
7711
7819
  //#region src/client/components/DashboardFilters/useFilterValueFetch.ts
7712
- function Aa({ localFilter: e, setLocalFilter: t, operatorMeta: n, shouldShowComboBox: r, isValueDropdownOpen: i, setIsValueDropdownOpen: a }) {
7820
+ function Ia({ localFilter: e, setLocalFilter: t, operatorMeta: n, shouldShowComboBox: r, isValueDropdownOpen: i, setIsValueDropdownOpen: a }) {
7713
7821
  let [o, s] = Y(""), c = ae(o, 300), { values: l, loading: u, error: d, searchValues: f } = oe(e.member, r);
7714
7822
  return K(() => {
7715
7823
  i && r && f && f("", !0);
@@ -7756,11 +7864,11 @@ function Aa({ localFilter: e, setLocalFilter: t, operatorMeta: n, shouldShowComb
7756
7864
  }
7757
7865
  //#endregion
7758
7866
  //#region src/client/components/DashboardFilters/useDateRangeState.ts
7759
- function ja({ localFilter: e, setLocalFilter: t, shouldShowDateRange: n, setIsDateRangeDropdownOpen: r }) {
7867
+ function La({ localFilter: e, setLocalFilter: t, shouldShowDateRange: n, setIsDateRangeDropdownOpen: r }) {
7760
7868
  let [i, a] = Y("this_month"), [o, s] = Y(1);
7761
7869
  return K(() => {
7762
7870
  if (!n) return;
7763
- let t = Da(e.dateRange);
7871
+ let t = Na(e.dateRange);
7764
7872
  t && (a(t.rangeType), t.numberValue !== void 0 && s(t.numberValue));
7765
7873
  }, [e.dateRange, n]), {
7766
7874
  rangeType: i,
@@ -7813,24 +7921,24 @@ function ja({ localFilter: e, setLocalFilter: t, shouldShowDateRange: n, setIsDa
7813
7921
  }
7814
7922
  //#endregion
7815
7923
  //#region src/client/components/DashboardFilters/useDashboardFilterConfigModal.ts
7816
- function Ma({ initialFilter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i }) {
7817
- let { t: a } = B(), [o, s] = Y(e.label), [c, l] = Y(e.filter), [u, d] = Y(!1), [f, p] = Y(!1), m = ka(), { setIsOperatorDropdownOpen: h, setIsValueDropdownOpen: g, setIsDateRangeDropdownOpen: _ } = m, v = u ? t : n;
7924
+ function Ra({ initialFilter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i }) {
7925
+ let { t: a } = B(), [o, s] = Y(e.label), [c, l] = Y(e.filter), [u, d] = Y(!1), [f, p] = Y(!1), m = Fa(), { setIsOperatorDropdownOpen: h, setIsValueDropdownOpen: g, setIsDateRangeDropdownOpen: _ } = m, v = u ? t : n;
7818
7926
  K(() => {
7819
7927
  r && (s(e.label), l(e.filter));
7820
7928
  }, [e, r]);
7821
- let y = Ui(c.member, v), b = y?.field.type || "string", x = b === "time", S = y?.fieldType === "measure", C = y?.fieldType === "dimension", w = Wi(c.member, v), T = je[c.operator], E = Pe(b), D = x && c.operator === "inDateRange", O = [
7929
+ let y = $i(c.member, v), b = y?.field.type || "string", x = b === "time", S = y?.fieldType === "measure", C = y?.fieldType === "dimension", w = ea(c.member, v), T = je[c.operator], E = Pe(b), D = x && c.operator === "inDateRange", O = [
7822
7930
  "equals",
7823
7931
  "notEquals",
7824
7932
  "in",
7825
7933
  "notIn"
7826
- ].includes(c.operator) && C && !x, k = Aa({
7934
+ ].includes(c.operator) && C && !x, k = Ia({
7827
7935
  localFilter: c,
7828
7936
  setLocalFilter: l,
7829
7937
  operatorMeta: T,
7830
7938
  shouldShowComboBox: O,
7831
7939
  isValueDropdownOpen: m.isValueDropdownOpen,
7832
7940
  setIsValueDropdownOpen: g
7833
- }), A = ja({
7941
+ }), A = La({
7834
7942
  localFilter: c,
7835
7943
  setLocalFilter: l,
7836
7944
  shouldShowDateRange: D,
@@ -7849,7 +7957,7 @@ function Ma({ initialFilter: e, fullSchema: t, filteredSchema: n, isOpen: r, onS
7849
7957
  values: []
7850
7958
  }), h(!1);
7851
7959
  }, [c.member, h]), N = G((e) => {
7852
- let t = Oa(e.target.value, T?.valueType);
7960
+ let t = Pa(e.target.value, T?.valueType);
7853
7961
  t !== null && l({
7854
7962
  ...c,
7855
7963
  values: t
@@ -7894,7 +8002,7 @@ function Ma({ initialFilter: e, fullSchema: t, filteredSchema: n, isOpen: r, onS
7894
8002
  c,
7895
8003
  i,
7896
8004
  a
7897
- ]), te = a(E.find((e) => e.operator === c.operator)?.label || c.operator), L = a(ga.find((e) => e.value === A.rangeType)?.label || "filter.modal.selectRange");
8005
+ ]), te = a(E.find((e) => e.operator === c.operator)?.label || c.operator), L = a(Ea.find((e) => e.value === A.rangeType)?.label || "filter.modal.selectRange");
7898
8006
  return {
7899
8007
  localLabel: o,
7900
8008
  setLocalLabel: s,
@@ -7931,8 +8039,8 @@ function Ma({ initialFilter: e, fullSchema: t, filteredSchema: n, isOpen: r, onS
7931
8039
  }
7932
8040
  //#endregion
7933
8041
  //#region src/client/components/DashboardFilters/DashboardFilterValueInput.tsx
7934
- var Na = b("close"), Pa = b("chevronDown");
7935
- function Fa(e) {
8042
+ var za = b("close"), Ba = b("chevronDown");
8043
+ function Va(e) {
7936
8044
  let { t } = B(), { 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;
7937
8045
  return /* @__PURE__ */ Q("div", {
7938
8046
  className: "dc:space-y-2",
@@ -7947,10 +8055,10 @@ function Fa(e) {
7947
8055
  children: [/* @__PURE__ */ Z("span", {
7948
8056
  className: "dc:truncate",
7949
8057
  children: a
7950
- }), /* @__PURE__ */ Z(Pa, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${o ? "dc:rotate-180" : ""}` })]
8058
+ }), /* @__PURE__ */ Z(Ba, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${o ? "dc:rotate-180" : ""}` })]
7951
8059
  }), o && /* @__PURE__ */ Z("div", {
7952
8060
  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",
7953
- children: ga.map((e) => /* @__PURE__ */ Z("button", {
8061
+ children: Ea.map((e) => /* @__PURE__ */ Z("button", {
7954
8062
  onClick: () => u(e.value),
7955
8063
  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"}`,
7956
8064
  children: t(e.label)
@@ -7995,7 +8103,7 @@ function Fa(e) {
7995
8103
  ]
7996
8104
  });
7997
8105
  }
7998
- function Ia(e) {
8106
+ function Ha(e) {
7999
8107
  let { t } = B(), { filter: n, distinctValues: r, valuesLoading: i, valuesError: a, handleValueSelect: o } = e;
8000
8108
  return i ? /* @__PURE__ */ Z("div", {
8001
8109
  className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
@@ -8021,7 +8129,7 @@ function Ia(e) {
8021
8129
  })
8022
8130
  });
8023
8131
  }
8024
- function La(e) {
8132
+ function Ua(e) {
8025
8133
  let { t } = B(), { filter: n, isValueDropdownOpen: r, valuesLoading: i, searchText: a, setSearchText: o, setIsOperatorDropdownOpen: s, setIsValueDropdownOpen: c, setIsDateRangeDropdownOpen: l, handleValueRemove: u } = e;
8026
8134
  return /* @__PURE__ */ Q("div", {
8027
8135
  className: "dc:space-y-2",
@@ -8035,7 +8143,7 @@ function La(e) {
8035
8143
  }), /* @__PURE__ */ Z("button", {
8036
8144
  onClick: () => u(e),
8037
8145
  className: "hover:text-dc-danger",
8038
- children: /* @__PURE__ */ Z(Na, { className: "dc:w-3.5 dc:h-3.5" })
8146
+ children: /* @__PURE__ */ Z(za, { className: "dc:w-3.5 dc:h-3.5" })
8039
8147
  })]
8040
8148
  }, t))
8041
8149
  }), /* @__PURE__ */ Q("div", {
@@ -8048,7 +8156,7 @@ function La(e) {
8048
8156
  children: [/* @__PURE__ */ Z("span", {
8049
8157
  className: "text-dc-text-muted dc:truncate",
8050
8158
  children: i ? "Loading..." : "Select value..."
8051
- }), /* @__PURE__ */ Z(Pa, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${r ? "dc:rotate-180" : ""}` })]
8159
+ }), /* @__PURE__ */ Z(Ba, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${r ? "dc:rotate-180" : ""}` })]
8052
8160
  }), r && /* @__PURE__ */ Q("div", {
8053
8161
  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",
8054
8162
  children: [/* @__PURE__ */ Z("div", {
@@ -8061,14 +8169,14 @@ function La(e) {
8061
8169
  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",
8062
8170
  autoFocus: !0
8063
8171
  })
8064
- }), /* @__PURE__ */ Z(Ia, { ...e })]
8172
+ }), /* @__PURE__ */ Z(Ha, { ...e })]
8065
8173
  })]
8066
8174
  })]
8067
8175
  });
8068
8176
  }
8069
- function Ra(e) {
8177
+ function Wa(e) {
8070
8178
  let { t } = B(), { filter: n, operatorMeta: r, shouldShowDateRange: i, shouldShowComboBox: a, handleBetweenStartInput: o, handleBetweenEndInput: s, handleDateInput: c, handleDirectInput: l } = e;
8071
- return r?.requiresValues ? i ? /* @__PURE__ */ Z(Fa, { ...e }) : n.operator === "between" || n.operator === "notBetween" ? /* @__PURE__ */ Q("div", {
8179
+ return r?.requiresValues ? i ? /* @__PURE__ */ Z(Va, { ...e }) : n.operator === "between" || n.operator === "notBetween" ? /* @__PURE__ */ Q("div", {
8072
8180
  className: "dc:flex dc:items-center dc:gap-2",
8073
8181
  children: [
8074
8182
  /* @__PURE__ */ Z("input", {
@@ -8101,7 +8209,7 @@ function Ra(e) {
8101
8209
  onChange: l,
8102
8210
  placeholder: "Enter number",
8103
8211
  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"
8104
- }) : a ? /* @__PURE__ */ Z(La, { ...e }) : /* @__PURE__ */ Z("input", {
8212
+ }) : a ? /* @__PURE__ */ Z(Ua, { ...e }) : /* @__PURE__ */ Z("input", {
8105
8213
  type: "text",
8106
8214
  value: n.values?.[0] ?? "",
8107
8215
  onChange: l,
@@ -8114,9 +8222,9 @@ function Ra(e) {
8114
8222
  }
8115
8223
  //#endregion
8116
8224
  //#region src/client/components/DashboardFilters/DashboardFilterConfigModalParts.tsx
8117
- var za = b("chevronDown"), Ba = b("dimension"), Va = b("timeDimension"), Ha = b("measure"), Ua = b("edit"), Wa = b("eye"), Ga = b("eyeOff");
8118
- function Ka({ localFilter: e, activeSchema: t, isTimeField: n, isMeasureField: r, showAllFields: i, setShowAllFields: a, setShowFieldSearch: o }) {
8119
- let { t: s } = B(), c = Wi(e.member, t), l = n ? Va : r ? Ha : Ba, 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";
8225
+ var Ga = b("chevronDown"), Ka = b("dimension"), qa = b("timeDimension"), Ja = b("measure"), Ya = b("edit"), Xa = b("eye"), Za = b("eyeOff");
8226
+ function Qa({ localFilter: e, activeSchema: t, isTimeField: n, isMeasureField: r, showAllFields: i, setShowAllFields: a, setShowFieldSearch: o }) {
8227
+ let { t: s } = B(), c = ea(e.member, t), l = n ? qa : r ? Ja : Ka, 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";
8120
8228
  return /* @__PURE__ */ Q("div", { children: [/* @__PURE__ */ Q("div", {
8121
8229
  className: "dc:flex dc:items-center dc:justify-between dc:mb-2",
8122
8230
  children: [/* @__PURE__ */ Z("label", {
@@ -8126,7 +8234,7 @@ function Ka({ localFilter: e, activeSchema: t, isTimeField: n, isMeasureField: r
8126
8234
  onClick: () => a(!i),
8127
8235
  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",
8128
8236
  title: i ? "Show dashboard fields only" : "Show all fields",
8129
- children: i ? /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(Ga, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ Z("span", { children: s("dashboardFilter.dashboard") })] }) : /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(Wa, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ Z("span", { children: s("dashboardFilter.all") })] })
8237
+ children: i ? /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(Za, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ Z("span", { children: s("dashboardFilter.dashboard") })] }) : /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(Xa, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ Z("span", { children: s("dashboardFilter.all") })] })
8130
8238
  })]
8131
8239
  }), /* @__PURE__ */ Q("button", {
8132
8240
  onClick: () => o(!0),
@@ -8139,14 +8247,14 @@ function Ka({ localFilter: e, activeSchema: t, isTimeField: n, isMeasureField: r
8139
8247
  children: c
8140
8248
  })] }) : /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z("span", {
8141
8249
  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",
8142
- children: /* @__PURE__ */ Z(Ba, { className: "dc:w-4 dc:h-4" })
8250
+ children: /* @__PURE__ */ Z(Ka, { className: "dc:w-4 dc:h-4" })
8143
8251
  }), /* @__PURE__ */ Z("span", {
8144
8252
  className: "dc:flex-1 dc:text-sm text-dc-text-muted dc:text-left",
8145
8253
  children: s("dashboardFilter.clickToSelectField")
8146
- })] }), /* @__PURE__ */ Z(Ua, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })]
8254
+ })] }), /* @__PURE__ */ Z(Ya, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })]
8147
8255
  })] });
8148
8256
  }
8149
- function qa({ localFilter: e, operatorLabel: t, availableOperators: n, isOperatorDropdownOpen: r, setIsOperatorDropdownOpen: i, setIsValueDropdownOpen: a, setIsDateRangeDropdownOpen: o, handleOperatorChange: s }) {
8257
+ function $a({ localFilter: e, operatorLabel: t, availableOperators: n, isOperatorDropdownOpen: r, setIsOperatorDropdownOpen: i, setIsValueDropdownOpen: a, setIsDateRangeDropdownOpen: o, handleOperatorChange: s }) {
8150
8258
  let { t: c } = B();
8151
8259
  return /* @__PURE__ */ Q("div", { children: [/* @__PURE__ */ Z("label", {
8152
8260
  className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
@@ -8161,7 +8269,7 @@ function qa({ localFilter: e, operatorLabel: t, availableOperators: n, isOperato
8161
8269
  children: [/* @__PURE__ */ Z("span", {
8162
8270
  className: "dc:truncate",
8163
8271
  children: t
8164
- }), /* @__PURE__ */ Z(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" : ""}` })]
8272
+ }), /* @__PURE__ */ Z(Ga, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${r ? "dc:rotate-180" : ""}` })]
8165
8273
  }), r && /* @__PURE__ */ Z("div", {
8166
8274
  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",
8167
8275
  children: n.map((t) => /* @__PURE__ */ Z("button", {
@@ -8174,9 +8282,9 @@ function qa({ localFilter: e, operatorLabel: t, availableOperators: n, isOperato
8174
8282
  }
8175
8283
  //#endregion
8176
8284
  //#region src/client/components/DashboardFilters/DashboardFilterConfigModal.tsx
8177
- var Ja = b("close");
8178
- function Ya({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i, onDelete: a, onClose: o }) {
8179
- let { t: s } = B(), c = Ma({
8285
+ var eo = b("close");
8286
+ function to({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i, onDelete: a, onClose: o }) {
8287
+ let { t: s } = B(), c = Ra({
8180
8288
  initialFilter: e,
8181
8289
  fullSchema: t,
8182
8290
  filteredSchema: n,
@@ -8203,7 +8311,7 @@ function Ya({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8203
8311
  }), /* @__PURE__ */ Z("button", {
8204
8312
  onClick: o,
8205
8313
  className: "dc:p-1 text-dc-text-muted hover:text-dc-text dc:transition-colors",
8206
- children: /* @__PURE__ */ Z(Ja, { className: "dc:w-5 dc:h-5" })
8314
+ children: /* @__PURE__ */ Z(eo, { className: "dc:w-5 dc:h-5" })
8207
8315
  })]
8208
8316
  }),
8209
8317
  /* @__PURE__ */ Q("div", {
@@ -8229,7 +8337,7 @@ function Ya({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8229
8337
  children: s("dashboardFilter.universalTimeDescription")
8230
8338
  })]
8231
8339
  }),
8232
- he && /* @__PURE__ */ Z(Ka, {
8340
+ he && /* @__PURE__ */ Z(Qa, {
8233
8341
  localFilter: d,
8234
8342
  activeSchema: P,
8235
8343
  isTimeField: F,
@@ -8238,7 +8346,7 @@ function Ya({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8238
8346
  setShowAllFields: p,
8239
8347
  setShowFieldSearch: h
8240
8348
  }),
8241
- ge && /* @__PURE__ */ Z(qa, {
8349
+ ge && /* @__PURE__ */ Z($a, {
8242
8350
  localFilter: d,
8243
8351
  operatorLabel: L,
8244
8352
  availableOperators: te,
@@ -8251,7 +8359,7 @@ function Ya({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8251
8359
  H && /* @__PURE__ */ Q("div", { children: [/* @__PURE__ */ Z("label", {
8252
8360
  className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
8253
8361
  children: s("dashboardFilter.defaultValue")
8254
- }), /* @__PURE__ */ Z(Ra, {
8362
+ }), /* @__PURE__ */ Z(Wa, {
8255
8363
  filter: d,
8256
8364
  operatorMeta: I,
8257
8365
  shouldShowDateRange: R,
@@ -8303,7 +8411,7 @@ function Ya({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8303
8411
  })
8304
8412
  ]
8305
8413
  })
8306
- }), m && /* @__PURE__ */ Z(ha, {
8414
+ }), m && /* @__PURE__ */ Z(Ta, {
8307
8415
  isOpen: m,
8308
8416
  onClose: () => h(!1),
8309
8417
  onSelect: b,
@@ -8314,7 +8422,7 @@ function Ya({ filter: e, fullSchema: t, filteredSchema: n, isOpen: r, onSave: i,
8314
8422
  }
8315
8423
  //#endregion
8316
8424
  //#region src/client/components/DashboardFilters/FilterEditModal.tsx
8317
- var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onClose: a, onDelete: o, convertToMetaResponse: s }) => {
8425
+ var no = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onClose: a, onDelete: o, convertToMetaResponse: s }) => {
8318
8426
  let c = q(() => s(t), [t, s]), l = q(() => He(n), [n]), u = q(() => {
8319
8427
  if (!t) return null;
8320
8428
  let e = t.cubes.map((e) => {
@@ -8346,7 +8454,7 @@ var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8346
8454
  console.error("Failed to save filter:", e), alert("Failed to save filter. Please try again.");
8347
8455
  }
8348
8456
  }, [i, a]);
8349
- return r ? /* @__PURE__ */ Z(Ya, {
8457
+ return r ? /* @__PURE__ */ Z(to, {
8350
8458
  filter: e,
8351
8459
  fullSchema: c,
8352
8460
  filteredSchema: u,
@@ -8355,7 +8463,7 @@ var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8355
8463
  onDelete: o,
8356
8464
  onClose: a
8357
8465
  }) : null;
8358
- }, Za = b("filter"), Qa = b("add"), $a = b("close"), eo = b("edit"), to = b("chevronDown"), no = b("timeDimension"), ro = ({ dashboardFilters: e, onAddFilter: t, onAddTimeFilter: n, onEditFilter: r, onRemoveFilter: i, selectedFilterId: a, onFilterSelect: o }) => {
8466
+ }, ro = b("filter"), io = b("add"), ao = b("close"), oo = b("edit"), so = b("chevronDown"), co = b("timeDimension"), lo = ({ dashboardFilters: e, onAddFilter: t, onAddTimeFilter: n, onEditFilter: r, onRemoveFilter: i, selectedFilterId: a, onFilterSelect: o }) => {
8359
8467
  let { t: s } = B(), [c, l] = _e.useState(!1), u = (e) => {
8360
8468
  let { id: t, label: n, isUniversalTime: s } = e, c = a === t;
8361
8469
  return /* @__PURE__ */ Q("div", {
@@ -8371,7 +8479,7 @@ var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8371
8479
  o && o(t);
8372
8480
  },
8373
8481
  children: [
8374
- /* @__PURE__ */ Z(s ? no : Za, {
8482
+ /* @__PURE__ */ Z(s ? co : ro, {
8375
8483
  className: "dc:w-3.5 dc:h-3.5 dc:shrink-0",
8376
8484
  style: { color: c ? "white" : "var(--dc-primary)" }
8377
8485
  }),
@@ -8386,12 +8494,12 @@ var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8386
8494
  onClick: () => r(t),
8387
8495
  className: "dc:p-0.5 hover:bg-dc-hover dc:rounded-sm dc:transition-colors",
8388
8496
  title: "Edit filter",
8389
- children: /* @__PURE__ */ Z(eo, { className: "dc:w-3 dc:h-3" })
8497
+ children: /* @__PURE__ */ Z(oo, { className: "dc:w-3 dc:h-3" })
8390
8498
  }), /* @__PURE__ */ Z("button", {
8391
8499
  onClick: () => i(t),
8392
8500
  className: "dc:p-0.5 hover:bg-dc-danger-bg hover:text-dc-danger dc:rounded-sm dc:transition-colors",
8393
8501
  title: "Remove filter",
8394
- children: /* @__PURE__ */ Z($a, { className: "dc:w-3 dc:h-3" })
8502
+ children: /* @__PURE__ */ Z(ao, { className: "dc:w-3 dc:h-3" })
8395
8503
  })]
8396
8504
  })
8397
8505
  ]
@@ -8406,7 +8514,7 @@ var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8406
8514
  children: [/* @__PURE__ */ Q("div", {
8407
8515
  className: "dc:flex dc:items-center dc:gap-2",
8408
8516
  children: [
8409
- /* @__PURE__ */ Z(Za, {
8517
+ /* @__PURE__ */ Z(ro, {
8410
8518
  className: "dc:w-4 dc:h-4 dc:shrink-0",
8411
8519
  style: { color: "var(--dc-primary)" }
8412
8520
  }),
@@ -8423,7 +8531,7 @@ var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8423
8531
  },
8424
8532
  children: e.length
8425
8533
  }),
8426
- /* @__PURE__ */ Z(to, {
8534
+ /* @__PURE__ */ Z(so, {
8427
8535
  className: `dc:w-4 dc:h-4 dc:transition-transform ${c ? "" : "dc:rotate-180"}`,
8428
8536
  style: { color: "var(--dc-text-secondary)" }
8429
8537
  })
@@ -8441,7 +8549,7 @@ var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8441
8549
  border: "1px solid var(--dc-border)"
8442
8550
  },
8443
8551
  title: "Add date range filter (applies to all time dimensions)",
8444
- children: [/* @__PURE__ */ Z(Qa, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ Z(no, { className: "dc:w-3.5 dc:h-3.5" })]
8552
+ children: [/* @__PURE__ */ Z(io, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ Z(co, { className: "dc:w-3.5 dc:h-3.5" })]
8445
8553
  }), /* @__PURE__ */ Z("button", {
8446
8554
  onClick: (e) => {
8447
8555
  e.stopPropagation(), t();
@@ -8451,7 +8559,7 @@ var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8451
8559
  backgroundColor: "var(--dc-primary)",
8452
8560
  color: "white"
8453
8561
  },
8454
- children: /* @__PURE__ */ Z(Qa, { className: "dc:w-3.5 dc:h-3.5" })
8562
+ children: /* @__PURE__ */ Z(io, { className: "dc:w-3.5 dc:h-3.5" })
8455
8563
  })]
8456
8564
  })]
8457
8565
  }),
@@ -8477,7 +8585,7 @@ var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8477
8585
  /* @__PURE__ */ Q("div", {
8478
8586
  className: "dc:flex dc:items-center dc:gap-2 dc:shrink-0",
8479
8587
  children: [
8480
- /* @__PURE__ */ Z(Za, {
8588
+ /* @__PURE__ */ Z(ro, {
8481
8589
  className: "dc:w-4 dc:h-4 dc:shrink-0",
8482
8590
  style: { color: "var(--dc-primary)" }
8483
8591
  }),
@@ -8521,7 +8629,7 @@ var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8521
8629
  border: "1px solid var(--dc-border)"
8522
8630
  },
8523
8631
  title: "Add date range filter (applies to all time dimensions)",
8524
- children: [/* @__PURE__ */ Z(Qa, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ Z("span", { children: s("dashboardFilter.editMode.dateRange") })]
8632
+ children: [/* @__PURE__ */ Z(io, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ Z("span", { children: s("dashboardFilter.editMode.dateRange") })]
8525
8633
  }), /* @__PURE__ */ Q("button", {
8526
8634
  onClick: t,
8527
8635
  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",
@@ -8529,35 +8637,35 @@ var Xa = ({ filter: e, schema: t, dashboardConfig: n, isOpen: r, onSave: i, onCl
8529
8637
  backgroundColor: "var(--dc-primary)",
8530
8638
  color: "white"
8531
8639
  },
8532
- children: [/* @__PURE__ */ Z(Qa, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ Z("span", { children: s("dashboardFilter.editMode.filter") })]
8640
+ children: [/* @__PURE__ */ Z(io, { className: "dc:w-3.5 dc:h-3.5" }), /* @__PURE__ */ Z("span", { children: s("dashboardFilter.editMode.filter") })]
8533
8641
  })]
8534
8642
  })
8535
8643
  ]
8536
8644
  })] });
8537
- }, io = {
8645
+ }, uo = {
8538
8646
  set: "is set",
8539
8647
  notSet: "is not set",
8540
8648
  isEmpty: "is empty",
8541
8649
  isNotEmpty: "is not empty"
8542
- }, ao = {
8650
+ }, fo = {
8543
8651
  gt: ">",
8544
8652
  gte: ">=",
8545
8653
  lt: "<",
8546
8654
  lte: "<="
8547
- }, oo = {
8655
+ }, po = {
8548
8656
  contains: "contains",
8549
8657
  notContains: "!contains",
8550
8658
  startsWith: "starts with",
8551
8659
  endsWith: "ends with"
8552
8660
  };
8553
- function so(e) {
8661
+ function mo(e) {
8554
8662
  return e === !0 ? "true" : e === !1 ? "false" : e == null ? "null" : String(e);
8555
8663
  }
8556
- function co(e, t) {
8557
- if (!e || e.length === 0) return io[t] ?? "";
8558
- let n = e.map(so);
8559
- if (ao[t]) return `${ao[t]} ${n[0]}`;
8560
- if (oo[t]) return `${oo[t]} "${n[0]}"`;
8664
+ function ho(e, t) {
8665
+ if (!e || e.length === 0) return uo[t] ?? "";
8666
+ let n = e.map(mo);
8667
+ if (fo[t]) return `${fo[t]} ${n[0]}`;
8668
+ if (po[t]) return `${po[t]} "${n[0]}"`;
8561
8669
  switch (t) {
8562
8670
  case "equals": return n.length === 1 ? `= ${n[0]}` : `in (${n.join(", ")})`;
8563
8671
  case "notEquals": return n.length === 1 ? `!= ${n[0]}` : `not in (${n.join(", ")})`;
@@ -8571,7 +8679,7 @@ function co(e, t) {
8571
8679
  }
8572
8680
  //#endregion
8573
8681
  //#region src/client/components/DashboardFilters/useCompactFilterBar.ts
8574
- function lo(e, t) {
8682
+ function go(e, t) {
8575
8683
  let [n, r] = Y(e);
8576
8684
  K(() => {
8577
8685
  r(e);
@@ -8580,10 +8688,10 @@ function lo(e, t) {
8580
8688
  if (!u) return null;
8581
8689
  let e = u.filter;
8582
8690
  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;
8583
- }, [u]), f = q(() => Ta(d), [d]), p = q(() => {
8691
+ }, [u]), f = q(() => ja(d), [d]), p = q(() => {
8584
8692
  if (!d || Array.isArray(d)) return null;
8585
- let e = Ta(d);
8586
- return va.find((t) => t.id === e)?.id || null;
8693
+ let e = ja(d);
8694
+ return Oa.find((t) => t.id === e)?.id || null;
8587
8695
  }, [d]), m = q(() => n.filter((e) => !e.isUniversalTime), [n]), h = G(() => `df_${Date.now()}_${Math.random().toString(36).substring(7)}`, []), g = G((e) => {
8588
8696
  if (u) {
8589
8697
  let i = n.map((t) => t.id === u.id ? {
@@ -8614,7 +8722,23 @@ function lo(e, t) {
8614
8722
  u,
8615
8723
  t,
8616
8724
  h
8617
- ]);
8725
+ ]), _ = G((e) => {
8726
+ g(e);
8727
+ }, [g]), v = G((e) => {
8728
+ g(e), s(!1);
8729
+ }, [g]), y = G((e) => {
8730
+ g(e), a(!1);
8731
+ }, [g]), b = G((e, i) => {
8732
+ let a = n.map((t) => t.id === e ? i : t);
8733
+ r(a), t(a);
8734
+ }, [n, t]), x = null;
8735
+ if (d) {
8736
+ if (Array.isArray(d)) x = Aa(new Date(d[0]), new Date(d[1] || d[0]));
8737
+ else {
8738
+ let e = ka(d);
8739
+ x = e ? Aa(e.start, e.end) : d;
8740
+ }
8741
+ }
8618
8742
  return {
8619
8743
  localFilters: n,
8620
8744
  showCustomDropdown: i,
@@ -8627,41 +8751,27 @@ function lo(e, t) {
8627
8751
  activePresetId: f,
8628
8752
  activeXTDId: p,
8629
8753
  nonDateFilters: m,
8630
- handlePresetSelect: G((e) => {
8631
- g(e);
8632
- }, [g]),
8633
- handleXTDSelect: G((e) => {
8634
- g(e), s(!1);
8635
- }, [g]),
8636
- handleCustomDateSelect: G((e) => {
8637
- g(e), a(!1);
8638
- }, [g]),
8639
- handleFilterChange: G((e, i) => {
8640
- let a = n.map((t) => t.id === e ? i : t);
8641
- r(a), t(a);
8642
- }, [n, t]),
8643
- dateRangeTooltip: q(() => {
8644
- if (!d) return null;
8645
- if (Array.isArray(d)) return wa(new Date(d[0]), new Date(d[1] || d[0]));
8646
- let e = Ca(d);
8647
- return e ? wa(e.start, e.end) : d;
8648
- }, [d])
8754
+ handlePresetSelect: _,
8755
+ handleXTDSelect: v,
8756
+ handleCustomDateSelect: y,
8757
+ handleFilterChange: b,
8758
+ dateRangeTooltip: x
8649
8759
  };
8650
8760
  }
8651
8761
  //#endregion
8652
8762
  //#region src/client/components/DashboardFilters/DatePresetChips.tsx
8653
- var uo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8763
+ var _o = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8654
8764
  let r = q(() => {
8655
8765
  let e = {};
8656
- for (let t of _a) {
8657
- let n = Ca(t.value);
8658
- n && (e[t.id] = wa(n.start, n.end));
8766
+ for (let t of Da) {
8767
+ let n = ka(t.value);
8768
+ n && (e[t.id] = Aa(n.start, n.end));
8659
8769
  }
8660
8770
  return e;
8661
8771
  }, []);
8662
8772
  return /* @__PURE__ */ Z("div", {
8663
8773
  className: "dc:flex dc:items-center dc:gap-1",
8664
- children: _a.map((i) => {
8774
+ children: Da.map((i) => {
8665
8775
  let a = e === i.id, o = r[i.id];
8666
8776
  return /* @__PURE__ */ Z("button", {
8667
8777
  type: "button",
@@ -8690,7 +8800,7 @@ var uo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8690
8800
  }, i.id);
8691
8801
  })
8692
8802
  });
8693
- }, fo = [
8803
+ }, vo = [
8694
8804
  {
8695
8805
  value: "days",
8696
8806
  label: "Days"
@@ -8711,7 +8821,7 @@ var uo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8711
8821
  value: "years",
8712
8822
  label: "Years"
8713
8823
  }
8714
- ], po = ({ isOpen: e, onClose: t, onDateRangeChange: n, currentDateRange: r }) => {
8824
+ ], yo = ({ isOpen: e, onClose: t, onDateRangeChange: n, currentDateRange: r }) => {
8715
8825
  let { t: i } = B(), a = J(null), [o, s] = Y("fixed"), [c, l] = Y(""), [u, d] = Y(""), [f, p] = Y(""), [m, h] = Y(7), [g, _] = Y("days");
8716
8826
  K(() => {
8717
8827
  if (r) {
@@ -8917,7 +9027,7 @@ var uo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8917
9027
  backgroundColor: "var(--dc-bg)",
8918
9028
  color: "var(--dc-text)"
8919
9029
  },
8920
- children: fo.map((e) => /* @__PURE__ */ Z("option", {
9030
+ children: vo.map((e) => /* @__PURE__ */ Z("option", {
8921
9031
  value: e.value,
8922
9032
  children: e.label
8923
9033
  }, e.value))
@@ -8963,7 +9073,7 @@ var uo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8963
9073
  })
8964
9074
  ]
8965
9075
  });
8966
- }, mo = b("check"), ho = ({ isOpen: e, onClose: t, onSelect: n, currentXTD: r }) => {
9076
+ }, bo = b("check"), xo = ({ isOpen: e, onClose: t, onSelect: n, currentXTD: r }) => {
8967
9077
  let i = J(null);
8968
9078
  if (K(() => {
8969
9079
  if (!e) return;
@@ -8991,8 +9101,8 @@ var uo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
8991
9101
  },
8992
9102
  onClick: a,
8993
9103
  onMouseDown: a,
8994
- children: va.map((e) => {
8995
- let t = r === e.id, i = Ca(e.value), a = i ? wa(i.start, i.end) : "";
9104
+ children: Oa.map((e) => {
9105
+ let t = r === e.id, i = ka(e.value), a = i ? Aa(i.start, i.end) : "";
8996
9106
  return /* @__PURE__ */ Q("button", {
8997
9107
  type: "button",
8998
9108
  onClick: () => n(e.value),
@@ -9017,21 +9127,21 @@ var uo = ({ activePreset: e, onPresetSelect: t, disabled: n = !1 }) => {
9017
9127
  style: { color: "var(--dc-text-secondary)" },
9018
9128
  children: a
9019
9129
  })]
9020
- }), t && /* @__PURE__ */ Z(mo, {
9130
+ }), t && /* @__PURE__ */ Z(bo, {
9021
9131
  className: "dc:w-4 dc:h-4 dc:shrink-0",
9022
9132
  style: { color: "var(--dc-primary)" }
9023
9133
  })]
9024
9134
  }, e.id);
9025
9135
  })
9026
9136
  });
9027
- }, go = [
9137
+ }, So = [
9028
9138
  "equals",
9029
9139
  "notEquals",
9030
9140
  "in",
9031
9141
  "notIn"
9032
9142
  ];
9033
- function _o({ fieldName: e, operator: t, values: n, onValuesChange: r, schema: i }) {
9034
- let a = je[t], [o, s] = Y(!1), [c, l] = Y(""), [u, d] = Y(!1), f = J(null), p = J(""), m = ae(c, 300), h = q(() => i ? i.cubes.some((t) => t.dimensions.some((t) => t.name === e)) : !1, [i, e]), g = q(() => i ? i.cubes.some((t) => t.dimensions.some((t) => t.name === e && t.type === "time")) : !1, [i, e]), _ = q(() => go.includes(t) && h && !g, [
9143
+ function Co({ fieldName: e, operator: t, values: n, onValuesChange: r, schema: i }) {
9144
+ let a = je[t], [o, s] = Y(!1), [c, l] = Y(""), [u, d] = Y(!1), f = J(null), p = J(""), m = ae(c, 300), h = q(() => i ? i.cubes.some((t) => t.dimensions.some((t) => t.name === e)) : !1, [i, e]), g = q(() => i ? i.cubes.some((t) => t.dimensions.some((t) => t.name === e && t.type === "time")) : !1, [i, e]), _ = q(() => So.includes(t) && h && !g, [
9035
9145
  t,
9036
9146
  h,
9037
9147
  g
@@ -9113,14 +9223,14 @@ function _o({ fieldName: e, operator: t, values: n, onValuesChange: r, schema: i
9113
9223
  }
9114
9224
  //#endregion
9115
9225
  //#region src/client/components/shared/filterValueSelector/FilterValueInputs.tsx
9116
- var vo = b("chevronDown"), yo = b("close"), bo = "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";
9117
- function xo() {
9226
+ var wo = b("chevronDown"), To = b("close"), Eo = "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";
9227
+ function Do() {
9118
9228
  return /* @__PURE__ */ Z("div", {
9119
9229
  className: "dc:text-sm text-dc-text-muted dc:italic",
9120
9230
  children: "No value required"
9121
9231
  });
9122
9232
  }
9123
- function So({ values: e, onStartChange: t, onEndChange: n }) {
9233
+ function Oo({ values: e, onStartChange: t, onEndChange: n }) {
9124
9234
  return /* @__PURE__ */ Q("div", {
9125
9235
  className: "dc:flex dc:items-center dc:space-x-2",
9126
9236
  children: [
@@ -9128,7 +9238,7 @@ function So({ values: e, onStartChange: t, onEndChange: n }) {
9128
9238
  type: "date",
9129
9239
  value: e[0] || "",
9130
9240
  onChange: t,
9131
- className: bo
9241
+ className: Eo
9132
9242
  }),
9133
9243
  /* @__PURE__ */ Z("span", {
9134
9244
  className: "dc:text-sm text-dc-text-muted",
@@ -9138,12 +9248,12 @@ function So({ values: e, onStartChange: t, onEndChange: n }) {
9138
9248
  type: "date",
9139
9249
  value: e[1] || "",
9140
9250
  onChange: n,
9141
- className: bo
9251
+ className: Eo
9142
9252
  })
9143
9253
  ]
9144
9254
  });
9145
9255
  }
9146
- function Co({ values: e, onStartChange: t, onEndChange: n }) {
9256
+ function ko({ values: e, onStartChange: t, onEndChange: n }) {
9147
9257
  return /* @__PURE__ */ Q("div", {
9148
9258
  className: "dc:flex dc:items-center dc:space-x-2",
9149
9259
  children: [
@@ -9152,7 +9262,7 @@ function Co({ values: e, onStartChange: t, onEndChange: n }) {
9152
9262
  value: e[0] !== void 0 && e[0] !== null ? e[0] : "",
9153
9263
  onChange: t,
9154
9264
  placeholder: "Min",
9155
- className: bo
9265
+ className: Eo
9156
9266
  }),
9157
9267
  /* @__PURE__ */ Z("span", {
9158
9268
  className: "dc:text-sm text-dc-text-muted",
@@ -9163,38 +9273,38 @@ function Co({ values: e, onStartChange: t, onEndChange: n }) {
9163
9273
  value: e[1] !== void 0 && e[1] !== null ? e[1] : "",
9164
9274
  onChange: n,
9165
9275
  placeholder: "Max",
9166
- className: bo
9276
+ className: Eo
9167
9277
  })
9168
9278
  ]
9169
9279
  });
9170
9280
  }
9171
- function wo({ values: e, onChange: t }) {
9281
+ function Ao({ values: e, onChange: t }) {
9172
9282
  return /* @__PURE__ */ Z("input", {
9173
9283
  type: "date",
9174
9284
  value: e[0] || "",
9175
9285
  onChange: t,
9176
- className: bo
9286
+ className: Eo
9177
9287
  });
9178
9288
  }
9179
- function To({ values: e, onChange: t }) {
9289
+ function jo({ values: e, onChange: t }) {
9180
9290
  return /* @__PURE__ */ Z("input", {
9181
9291
  type: "number",
9182
9292
  value: e[0] !== void 0 && e[0] !== null ? e[0] : "",
9183
9293
  onChange: t,
9184
9294
  placeholder: "Enter number",
9185
- className: bo
9295
+ className: Eo
9186
9296
  });
9187
9297
  }
9188
- function Eo({ values: e, onChange: t, valueType: n }) {
9298
+ function Mo({ values: e, onChange: t, valueType: n }) {
9189
9299
  return /* @__PURE__ */ Z("input", {
9190
9300
  type: "text",
9191
9301
  value: e[0] !== void 0 && e[0] !== null ? e[0] : "",
9192
9302
  onChange: t,
9193
9303
  placeholder: `Enter ${n} value`,
9194
- className: bo
9304
+ className: Eo
9195
9305
  });
9196
9306
  }
9197
- function Do({ value: e, onRemove: t }) {
9307
+ function No({ value: e, onRemove: t }) {
9198
9308
  return /* @__PURE__ */ Q("div", {
9199
9309
  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",
9200
9310
  children: [/* @__PURE__ */ Z("span", {
@@ -9203,16 +9313,16 @@ function Do({ value: e, onRemove: t }) {
9203
9313
  }), /* @__PURE__ */ Z("button", {
9204
9314
  onClick: t,
9205
9315
  className: "text-dc-accent hover:text-dc-accent focus:outline-hidden",
9206
- children: /* @__PURE__ */ Z(yo, { className: "dc:w-3 dc:h-3" })
9316
+ children: /* @__PURE__ */ Z(To, { className: "dc:w-3 dc:h-3" })
9207
9317
  })]
9208
9318
  });
9209
9319
  }
9210
- function Oo({ values: e, onValuesChange: t, onValueRemove: n }) {
9320
+ function Po({ values: e, onValuesChange: t, onValueRemove: n }) {
9211
9321
  return /* @__PURE__ */ Q("div", {
9212
9322
  className: "dc:space-y-2 dc:min-w-0 dc:max-w-full",
9213
9323
  children: [e.length > 0 && /* @__PURE__ */ Z("div", {
9214
9324
  className: "dc:flex dc:flex-wrap dc:gap-1 dc:max-w-full",
9215
- children: e.map((e, t) => /* @__PURE__ */ Z(Do, {
9325
+ children: e.map((e, t) => /* @__PURE__ */ Z(No, {
9216
9326
  value: e,
9217
9327
  onRemove: () => n(e)
9218
9328
  }, t))
@@ -9221,27 +9331,27 @@ function Oo({ values: e, onValuesChange: t, onValueRemove: n }) {
9221
9331
  onChange: (n) => {
9222
9332
  n.target.value && !e.includes(n.target.value) && (t([...e, n.target.value]), n.target.value = "");
9223
9333
  },
9224
- className: bo,
9334
+ className: Eo,
9225
9335
  placeholder: "Add date..."
9226
9336
  })]
9227
9337
  });
9228
9338
  }
9229
- function ko({ supportsMultipleValues: e, values: t, onValueRemove: n, onClear: r }) {
9339
+ function Fo({ supportsMultipleValues: e, values: t, onValueRemove: n, onClear: r }) {
9230
9340
  return t.length === 0 ? null : e ? /* @__PURE__ */ Z("div", {
9231
9341
  className: "dc:flex dc:flex-wrap dc:gap-1 dc:mb-2 dc:max-w-full",
9232
- children: t.map((e, t) => /* @__PURE__ */ Z(Do, {
9342
+ children: t.map((e, t) => /* @__PURE__ */ Z(No, {
9233
9343
  value: e,
9234
9344
  onRemove: () => n(e)
9235
9345
  }, t))
9236
9346
  }) : /* @__PURE__ */ Z("div", {
9237
9347
  className: "dc:mb-2",
9238
- children: /* @__PURE__ */ Z(Do, {
9348
+ children: /* @__PURE__ */ Z(No, {
9239
9349
  value: t[0],
9240
9350
  onRemove: r
9241
9351
  })
9242
9352
  });
9243
9353
  }
9244
- function Ao({ searchText: e, valuesLoading: t, valuesError: n, distinctValues: r, values: i, onValueSelect: a, onSearchChange: o }) {
9354
+ function Io({ searchText: e, valuesLoading: t, valuesError: n, distinctValues: r, values: i, onValueSelect: a, onSearchChange: o }) {
9245
9355
  let { t: s } = B();
9246
9356
  return /* @__PURE__ */ Q("div", {
9247
9357
  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",
@@ -9280,13 +9390,13 @@ function Ao({ searchText: e, valuesLoading: t, valuesError: n, distinctValues: r
9280
9390
  })]
9281
9391
  });
9282
9392
  }
9283
- function jo({ 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 }) {
9393
+ function Lo({ 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 }) {
9284
9394
  let { t: m } = B();
9285
9395
  return /* @__PURE__ */ Q("div", {
9286
9396
  className: "dc:relative dc:min-w-0 dc:max-w-full",
9287
9397
  ref: e,
9288
9398
  children: [
9289
- /* @__PURE__ */ Z(ko, {
9399
+ /* @__PURE__ */ Z(Fo, {
9290
9400
  supportsMultipleValues: t,
9291
9401
  values: n,
9292
9402
  onValueRemove: u,
@@ -9298,9 +9408,9 @@ function jo({ dropdownRef: e, supportsMultipleValues: t, values: n, isOpen: r, s
9298
9408
  children: [/* @__PURE__ */ Z("span", {
9299
9409
  className: "text-dc-text-muted dc:truncate",
9300
9410
  children: m(o && !a ? "filter.shared.valueSelector.loadingValues" : "filter.shared.valueSelector.selectValue")
9301
- }), /* @__PURE__ */ Z(vo, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })]
9411
+ }), /* @__PURE__ */ Z(wo, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })]
9302
9412
  }),
9303
- r && /* @__PURE__ */ Z(Ao, {
9413
+ r && /* @__PURE__ */ Z(Io, {
9304
9414
  searchText: i,
9305
9415
  valuesLoading: o,
9306
9416
  valuesError: s,
@@ -9314,30 +9424,30 @@ function jo({ dropdownRef: e, supportsMultipleValues: t, values: n, isOpen: r, s
9314
9424
  }
9315
9425
  //#endregion
9316
9426
  //#region src/client/components/shared/FilterValueSelector.tsx
9317
- var Mo = (e) => {
9318
- 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 } = _o(e);
9319
- return i.requiresValues ? t === "inDateRange" ? /* @__PURE__ */ Z(So, {
9427
+ var Ro = (e) => {
9428
+ 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 } = Co(e);
9429
+ return i.requiresValues ? t === "inDateRange" ? /* @__PURE__ */ Z(Oo, {
9320
9430
  values: n,
9321
9431
  onStartChange: y,
9322
9432
  onEndChange: b
9323
- }) : t === "between" || t === "notBetween" ? /* @__PURE__ */ Z(Co, {
9433
+ }) : t === "between" || t === "notBetween" ? /* @__PURE__ */ Z(ko, {
9324
9434
  values: n,
9325
9435
  onStartChange: x,
9326
9436
  onEndChange: S
9327
- }) : i.valueType === "date" ? /* @__PURE__ */ Z(wo, {
9437
+ }) : i.valueType === "date" ? /* @__PURE__ */ Z(Ao, {
9328
9438
  values: n,
9329
9439
  onChange: y
9330
- }) : i.valueType === "number" ? /* @__PURE__ */ Z(To, {
9440
+ }) : i.valueType === "number" ? /* @__PURE__ */ Z(jo, {
9331
9441
  values: n,
9332
9442
  onChange: v
9333
- }) : l && go.includes(t) ? i.supportsMultipleValues ? /* @__PURE__ */ Z(Oo, {
9443
+ }) : l && So.includes(t) ? i.supportsMultipleValues ? /* @__PURE__ */ Z(Po, {
9334
9444
  values: n,
9335
9445
  onValuesChange: r,
9336
9446
  onValueRemove: _
9337
- }) : /* @__PURE__ */ Z(wo, {
9447
+ }) : /* @__PURE__ */ Z(Ao, {
9338
9448
  values: n,
9339
9449
  onChange: y
9340
- }) : u ? /* @__PURE__ */ Z(jo, {
9450
+ }) : u ? /* @__PURE__ */ Z(Lo, {
9341
9451
  dropdownRef: c,
9342
9452
  supportsMultipleValues: i.supportsMultipleValues,
9343
9453
  values: n,
@@ -9352,15 +9462,15 @@ var Mo = (e) => {
9352
9462
  onValueSelect: g,
9353
9463
  onToggle: m,
9354
9464
  onSearchChange: h
9355
- }) : /* @__PURE__ */ Z(Eo, {
9465
+ }) : /* @__PURE__ */ Z(Mo, {
9356
9466
  values: n,
9357
9467
  onChange: v,
9358
9468
  valueType: i.valueType
9359
- }) : /* @__PURE__ */ Z(xo, {});
9469
+ }) : /* @__PURE__ */ Z(Do, {});
9360
9470
  };
9361
9471
  //#endregion
9362
9472
  //#region src/client/components/DashboardFilters/FilterValuePopover.tsx
9363
- function No(e) {
9473
+ function zo(e) {
9364
9474
  return e ? { cubes: e.cubes.map((e) => ({
9365
9475
  name: e.name,
9366
9476
  title: e.title || e.name,
@@ -9388,8 +9498,8 @@ function No(e) {
9388
9498
  })) || []
9389
9499
  })) } : null;
9390
9500
  }
9391
- var Po = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i }) => {
9392
- let { t: a } = B(), o = J(null);
9501
+ var Bo = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i }) => {
9502
+ let { t: a } = B(), o = J(null), [s, c] = Y(null);
9393
9503
  K(() => {
9394
9504
  let e = (e) => {
9395
9505
  o.current && !o.current.contains(e.target) && i.current && !i.current.contains(e.target) && r();
@@ -9402,9 +9512,16 @@ var Po = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9402
9512
  clearTimeout(n), document.removeEventListener("mousedown", e), document.removeEventListener("keydown", t);
9403
9513
  };
9404
9514
  }, [r, i]);
9405
- let s = G((e) => {
9406
- n(e);
9407
- }, [n]), c = No(t);
9515
+ let l = G((t) => {
9516
+ if (e.operator === "inDateRange" && t.length === 2 && t.some((e) => e === "") && t.some((e) => e !== "")) {
9517
+ c({
9518
+ filter: e,
9519
+ values: t
9520
+ });
9521
+ return;
9522
+ }
9523
+ c(null), n(t);
9524
+ }, [e, n]), u = q(() => zo(t), [t]), d = e.operator === "inDateRange" && e.dateRange ? Array.isArray(e.dateRange) ? e.dateRange : [e.dateRange] : e.values || [];
9408
9525
  return /* @__PURE__ */ Q("div", {
9409
9526
  ref: o,
9410
9527
  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]",
@@ -9421,12 +9538,12 @@ var Po = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9421
9538
  }),
9422
9539
  /* @__PURE__ */ Z("div", {
9423
9540
  className: "dc:min-w-[180px]",
9424
- children: /* @__PURE__ */ Z(Mo, {
9541
+ children: /* @__PURE__ */ Z(Ro, {
9425
9542
  fieldName: e.member,
9426
9543
  operator: e.operator,
9427
- values: e.values || [],
9428
- onValuesChange: s,
9429
- schema: c
9544
+ values: s?.filter === e ? s.values : d,
9545
+ onValuesChange: l,
9546
+ schema: u
9430
9547
  })
9431
9548
  }),
9432
9549
  /* @__PURE__ */ Z("div", {
@@ -9446,14 +9563,19 @@ var Po = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9446
9563
  })
9447
9564
  ]
9448
9565
  });
9449
- }, Fo = b("close"), Io = b("edit"), Lo = ({ filter: e, schema: t, isEditMode: n, onChange: r, onEdit: i, onRemove: a }) => {
9450
- let [o, s] = Y(!1), c = J(null), l = e.filter, { label: u } = e, { operator: d, values: f } = l, p = co(f || [], d), m = G((t) => {
9566
+ }, Vo = b("close"), Ho = b("edit"), Uo = ({ filter: e, schema: t, isEditMode: n, onChange: r, onEdit: i, onRemove: a }) => {
9567
+ let [o, s] = Y(!1), c = J(null), l = e.filter, { label: u } = e, { operator: d, dateRange: f } = l, p = ho((d === "inDateRange" && f ? Array.isArray(f) ? f : [f] : l.values) || [], d), m = G((t) => {
9568
+ let n = {
9569
+ ...l,
9570
+ values: t
9571
+ };
9572
+ if (l.operator === "inDateRange") {
9573
+ let e = t.some((e) => e !== "") ? t : [];
9574
+ n.values = e, e.length === 0 ? delete n.dateRange : n.dateRange = e.length === 1 ? e[0] : e;
9575
+ }
9451
9576
  r({
9452
9577
  ...e,
9453
- filter: {
9454
- ...l,
9455
- values: t
9456
- }
9578
+ filter: n
9457
9579
  });
9458
9580
  }, [
9459
9581
  e,
@@ -9506,7 +9628,7 @@ var Po = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9506
9628
  onMouseLeave: (e) => {
9507
9629
  e.currentTarget.style.color = "var(--dc-text-secondary)";
9508
9630
  },
9509
- children: /* @__PURE__ */ Z(Io, { className: "dc:w-3 dc:h-3" })
9631
+ children: /* @__PURE__ */ Z(Ho, { className: "dc:w-3 dc:h-3" })
9510
9632
  }), /* @__PURE__ */ Z("button", {
9511
9633
  type: "button",
9512
9634
  onClick: (e) => {
@@ -9520,10 +9642,10 @@ var Po = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9520
9642
  onMouseLeave: (e) => {
9521
9643
  e.currentTarget.style.color = "var(--dc-text-secondary)";
9522
9644
  },
9523
- children: /* @__PURE__ */ Z(Fo, { className: "dc:w-3 dc:h-3" })
9645
+ children: /* @__PURE__ */ Z(Vo, { className: "dc:w-3 dc:h-3" })
9524
9646
  })] })
9525
9647
  ]
9526
- }), o && !n && /* @__PURE__ */ Z(Po, {
9648
+ }), o && !n && /* @__PURE__ */ Z(Bo, {
9527
9649
  filter: l,
9528
9650
  schema: t,
9529
9651
  onValuesChange: m,
@@ -9531,8 +9653,8 @@ var Po = ({ filter: e, schema: t, onValuesChange: n, onClose: r, anchorRef: i })
9531
9653
  anchorRef: c
9532
9654
  })]
9533
9655
  }) : null;
9534
- }, Ro = b("add"), zo = b("timeDimension"), Bo = b("chevronDown"), Vo = b("filter");
9535
- function Ho({ isEditMode: e, onAddFilter: t, withHoverHandlers: n }) {
9656
+ }, Wo = b("add"), Go = b("timeDimension"), Ko = b("chevronDown"), qo = b("filter");
9657
+ function Jo({ isEditMode: e, onAddFilter: t, withHoverHandlers: n }) {
9536
9658
  return !e || !t ? null : /* @__PURE__ */ Z("button", {
9537
9659
  type: "button",
9538
9660
  onClick: t,
@@ -9548,11 +9670,11 @@ function Ho({ isEditMode: e, onAddFilter: t, withHoverHandlers: n }) {
9548
9670
  onMouseLeave: n ? (e) => {
9549
9671
  e.currentTarget.style.backgroundColor = "transparent";
9550
9672
  } : void 0,
9551
- children: /* @__PURE__ */ Z(Ro, { className: "dc:w-3.5 dc:h-3.5" })
9673
+ children: /* @__PURE__ */ Z(Wo, { className: "dc:w-3.5 dc:h-3.5" })
9552
9674
  });
9553
9675
  }
9554
- function Uo({ nonDateFilters: e, schema: t, isEditMode: n, onEditFilter: r, onRemoveFilter: i, handleFilterChange: a }) {
9555
- return /* @__PURE__ */ Z(X, { children: e.map((e) => /* @__PURE__ */ Z(Lo, {
9676
+ function Yo({ nonDateFilters: e, schema: t, isEditMode: n, onEditFilter: r, onRemoveFilter: i, handleFilterChange: a }) {
9677
+ return /* @__PURE__ */ Z(X, { children: e.map((e) => /* @__PURE__ */ Z(Uo, {
9556
9678
  filter: e,
9557
9679
  schema: t,
9558
9680
  isEditMode: n,
@@ -9561,7 +9683,7 @@ function Uo({ nonDateFilters: e, schema: t, isEditMode: n, onEditFilter: r, onRe
9561
9683
  onRemove: () => i?.(e.id)
9562
9684
  }, e.id)) });
9563
9685
  }
9564
- function Wo({ props: e, showLabel: t, withTitle: n }) {
9686
+ function Xo({ props: e, showLabel: t, withTitle: n }) {
9565
9687
  let { t: r } = B(), { activePresetId: i, dateRangeTooltip: a, showCustomDropdown: o, setShowCustomDropdown: s, setShowXTDDropdown: c, customButtonRef: l, currentDateRange: u, handleCustomDateSelect: d } = e;
9566
9688
  return /* @__PURE__ */ Q("div", {
9567
9689
  className: "dc:relative",
@@ -9582,11 +9704,11 @@ function Wo({ props: e, showLabel: t, withTitle: n }) {
9582
9704
  borderColor: i === "custom" ? "transparent" : "var(--dc-border)"
9583
9705
  },
9584
9706
  children: [
9585
- /* @__PURE__ */ Z(zo, { className: "dc:w-3 dc:h-3" }),
9707
+ /* @__PURE__ */ Z(Go, { className: "dc:w-3 dc:h-3" }),
9586
9708
  /* @__PURE__ */ Z("span", { children: r("dateRange.custom") }),
9587
- t && /* @__PURE__ */ Z(Bo, { className: "dc:w-3 dc:h-3" })
9709
+ t && /* @__PURE__ */ Z(Ko, { className: "dc:w-3 dc:h-3" })
9588
9710
  ]
9589
- }), o && /* @__PURE__ */ Z(po, {
9711
+ }), o && /* @__PURE__ */ Z(yo, {
9590
9712
  isOpen: o,
9591
9713
  onClose: () => s(!1),
9592
9714
  onDateRangeChange: d,
@@ -9595,7 +9717,7 @@ function Wo({ props: e, showLabel: t, withTitle: n }) {
9595
9717
  })]
9596
9718
  });
9597
9719
  }
9598
- function Go({ props: e, withTitle: t }) {
9720
+ function Zo({ props: e, withTitle: t }) {
9599
9721
  let { activeXTDId: n, dateRangeTooltip: r, showXTDDropdown: i, setShowXTDDropdown: a, setShowCustomDropdown: o, xtdButtonRef: s, handleXTDSelect: c } = e;
9600
9722
  return /* @__PURE__ */ Q("div", {
9601
9723
  className: "dc:relative",
@@ -9615,8 +9737,8 @@ function Go({ props: e, withTitle: t }) {
9615
9737
  color: n ? "white" : "var(--dc-text)",
9616
9738
  borderColor: n ? "transparent" : "var(--dc-border)"
9617
9739
  },
9618
- children: [/* @__PURE__ */ Z("span", { children: "XTD" }), /* @__PURE__ */ Z(Bo, { className: "dc:w-3 dc:h-3" })]
9619
- }), i && /* @__PURE__ */ Z(ho, {
9740
+ children: [/* @__PURE__ */ Z("span", { children: "XTD" }), /* @__PURE__ */ Z(Ko, { className: "dc:w-3 dc:h-3" })]
9741
+ }), i && /* @__PURE__ */ Z(xo, {
9620
9742
  isOpen: i,
9621
9743
  onClose: () => a(!1),
9622
9744
  onSelect: c,
@@ -9625,25 +9747,25 @@ function Go({ props: e, withTitle: t }) {
9625
9747
  })]
9626
9748
  });
9627
9749
  }
9628
- function Ko(e) {
9750
+ function Qo(e) {
9629
9751
  let { activePresetId: t, activeXTDId: n, nonDateFilters: r, handlePresetSelect: i, isEditMode: a, onAddFilter: o } = e;
9630
9752
  return /* @__PURE__ */ Q("div", {
9631
- className: "dc:hidden dc:md:flex dc:items-center dc:gap-2 dc:px-3 dc:py-2",
9753
+ className: "dc:hidden dc:md:flex dc:flex-wrap dc:items-center dc:gap-2 dc:px-3 dc:py-2",
9632
9754
  children: [
9633
- /* @__PURE__ */ Z(Vo, {
9755
+ /* @__PURE__ */ Z(qo, {
9634
9756
  className: "dc:w-4 dc:h-4 dc:shrink-0",
9635
9757
  style: { color: "var(--dc-text-secondary)" }
9636
9758
  }),
9637
- /* @__PURE__ */ Z(uo, {
9759
+ /* @__PURE__ */ Z(_o, {
9638
9760
  activePreset: t !== "custom" && !n ? t : null,
9639
9761
  onPresetSelect: i
9640
9762
  }),
9641
- /* @__PURE__ */ Z(Wo, {
9763
+ /* @__PURE__ */ Z(Xo, {
9642
9764
  props: e,
9643
9765
  showLabel: !0,
9644
9766
  withTitle: !0
9645
9767
  }),
9646
- /* @__PURE__ */ Z(Go, {
9768
+ /* @__PURE__ */ Z(Zo, {
9647
9769
  props: e,
9648
9770
  withTitle: !0
9649
9771
  }),
@@ -9653,9 +9775,9 @@ function Ko(e) {
9653
9775
  }),
9654
9776
  /* @__PURE__ */ Z("div", {
9655
9777
  className: "dc:flex dc:items-center dc:gap-1.5 dc:flex-wrap",
9656
- children: /* @__PURE__ */ Z(Uo, { ...e })
9778
+ children: /* @__PURE__ */ Z(Yo, { ...e })
9657
9779
  }),
9658
- /* @__PURE__ */ Z(Ho, {
9780
+ /* @__PURE__ */ Z(Jo, {
9659
9781
  isEditMode: a,
9660
9782
  onAddFilter: o,
9661
9783
  withHoverHandlers: !0
@@ -9663,17 +9785,17 @@ function Ko(e) {
9663
9785
  ]
9664
9786
  });
9665
9787
  }
9666
- function qo(e) {
9788
+ function $o(e) {
9667
9789
  let { activePresetId: t, activeXTDId: n, nonDateFilters: r, handlePresetSelect: i, isEditMode: a, onAddFilter: o } = e;
9668
9790
  return /* @__PURE__ */ Q("div", {
9669
9791
  className: "dc:md:hidden",
9670
9792
  children: [
9671
9793
  /* @__PURE__ */ Q("div", {
9672
9794
  className: "dc:flex dc:items-center dc:gap-2 dc:overflow-x-auto dc:px-3 dc:py-2 scrollbar-thin",
9673
- children: [/* @__PURE__ */ Z(Vo, {
9795
+ children: [/* @__PURE__ */ Z(qo, {
9674
9796
  className: "dc:w-4 dc:h-4 dc:shrink-0",
9675
9797
  style: { color: "var(--dc-text-secondary)" }
9676
- }), /* @__PURE__ */ Z(uo, {
9798
+ }), /* @__PURE__ */ Z(_o, {
9677
9799
  activePreset: t !== "custom" && !n ? t : null,
9678
9800
  onPresetSelect: i
9679
9801
  })]
@@ -9683,15 +9805,15 @@ function qo(e) {
9683
9805
  style: { borderColor: "var(--dc-border)" },
9684
9806
  children: [/* @__PURE__ */ Q("div", {
9685
9807
  className: "dc:flex dc:items-center dc:gap-2",
9686
- children: [/* @__PURE__ */ Z(Wo, {
9808
+ children: [/* @__PURE__ */ Z(Xo, {
9687
9809
  props: e,
9688
9810
  showLabel: !1,
9689
9811
  withTitle: !1
9690
- }), /* @__PURE__ */ Z(Go, {
9812
+ }), /* @__PURE__ */ Z(Zo, {
9691
9813
  props: e,
9692
9814
  withTitle: !1
9693
9815
  })]
9694
- }), /* @__PURE__ */ Z(Ho, {
9816
+ }), /* @__PURE__ */ Z(Jo, {
9695
9817
  isEditMode: a,
9696
9818
  onAddFilter: o,
9697
9819
  withHoverHandlers: !1
@@ -9702,7 +9824,7 @@ function qo(e) {
9702
9824
  style: { borderColor: "var(--dc-border)" },
9703
9825
  children: /* @__PURE__ */ Z("div", {
9704
9826
  className: "dc:flex dc:items-center dc:gap-1.5 dc:flex-wrap",
9705
- children: /* @__PURE__ */ Z(Uo, { ...e })
9827
+ children: /* @__PURE__ */ Z(Yo, { ...e })
9706
9828
  })
9707
9829
  })
9708
9830
  ]
@@ -9710,8 +9832,8 @@ function qo(e) {
9710
9832
  }
9711
9833
  //#endregion
9712
9834
  //#region src/client/components/DashboardFilters/CompactFilterBar.tsx
9713
- var Jo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersChange: r, onAddFilter: i, onEditFilter: a, onRemoveFilter: o }) => {
9714
- let s = lo(e, r);
9835
+ var es = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersChange: r, onAddFilter: i, onEditFilter: a, onRemoveFilter: o }) => {
9836
+ let s = go(e, r);
9715
9837
  if (!n && s.localFilters.length === 0) return null;
9716
9838
  let c = {
9717
9839
  schema: t,
@@ -9741,9 +9863,9 @@ var Jo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersCha
9741
9863
  borderColor: "var(--dc-border)",
9742
9864
  backgroundColor: "var(--dc-surface)"
9743
9865
  },
9744
- children: [/* @__PURE__ */ Z(Ko, { ...c }), /* @__PURE__ */ Z(qo, { ...c })]
9866
+ children: [/* @__PURE__ */ Z(Qo, { ...c }), /* @__PURE__ */ Z($o, { ...c })]
9745
9867
  });
9746
- }, Yo = ({ dashboardFilters: e, editable: t, schema: n, dashboardConfig: r, onDashboardFiltersChange: i, onSaveFilters: a, selectedFilterId: o, onFilterSelect: s, isEditMode: c = !1 }) => {
9868
+ }, ts = ({ dashboardFilters: e, editable: t, schema: n, dashboardConfig: r, onDashboardFiltersChange: i, onSaveFilters: a, selectedFilterId: o, onFilterSelect: s, isEditMode: c = !1 }) => {
9747
9869
  let [l, u] = Y(null), [d, f] = Y(!1), p = G((e) => e ? { cubes: e.cubes.map((e) => ({
9748
9870
  name: e.name,
9749
9871
  title: e.title || e.name,
@@ -9832,7 +9954,7 @@ var Jo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersCha
9832
9954
  backgroundColor: "var(--dc-surface)",
9833
9955
  boxShadow: "var(--dc-shadow-sm)"
9834
9956
  },
9835
- children: /* @__PURE__ */ Z(ro, {
9957
+ children: /* @__PURE__ */ Z(lo, {
9836
9958
  dashboardFilters: e,
9837
9959
  onAddFilter: g,
9838
9960
  onAddTimeFilter: _,
@@ -9841,7 +9963,7 @@ var Jo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersCha
9841
9963
  selectedFilterId: o,
9842
9964
  onFilterSelect: s
9843
9965
  })
9844
- }) : /* @__PURE__ */ Z(Jo, {
9966
+ }) : /* @__PURE__ */ Z(es, {
9845
9967
  dashboardFilters: e,
9846
9968
  schema: n,
9847
9969
  isEditMode: !1,
@@ -9849,7 +9971,7 @@ var Jo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersCha
9849
9971
  onAddFilter: g,
9850
9972
  onEditFilter: v,
9851
9973
  onRemoveFilter: y
9852
- }), d && l && /* @__PURE__ */ Z(Xa, {
9974
+ }), d && l && /* @__PURE__ */ Z(no, {
9853
9975
  filter: l,
9854
9976
  schema: n,
9855
9977
  dashboardConfig: r,
@@ -9860,10 +9982,10 @@ var Jo = ({ dashboardFilters: e, schema: t, isEditMode: n, onDashboardFiltersCha
9860
9982
  convertToMetaResponse: p
9861
9983
  })]
9862
9984
  });
9863
- }, Xo = b("filter");
9864
- function Zo() {
9985
+ }, ns = b("filter");
9986
+ function rs() {
9865
9987
  let { t: e } = B(), { dashboardFilters: t, editable: n, schema: r, config: i, onDashboardFiltersChange: a, onSave: o, selectedFilterId: s, selectedFilter: c, isEditMode: l, handleFilterSelect: u, handleSelectAllForFilter: d, actions: f } = $r();
9866
- return /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(Yo, {
9988
+ return /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(ts, {
9867
9989
  dashboardFilters: t || [],
9868
9990
  editable: n,
9869
9991
  schema: r || null,
@@ -9890,7 +10012,7 @@ function Zo() {
9890
10012
  children: [/* @__PURE__ */ Q("div", {
9891
10013
  className: "dc:flex dc:items-center dc:gap-2 dc:flex-wrap",
9892
10014
  children: [
9893
- /* @__PURE__ */ Z(Xo, { className: "dc:w-5 dc:h-5 dc:shrink-0" }),
10015
+ /* @__PURE__ */ Z(ns, { className: "dc:w-5 dc:h-5 dc:shrink-0" }),
9894
10016
  /* @__PURE__ */ Z("span", {
9895
10017
  className: "dc:font-medium",
9896
10018
  children: e("dashboard.filterSelectionMode", { filterLabel: c.label })
@@ -9929,10 +10051,10 @@ function Zo() {
9929
10051
  }
9930
10052
  //#endregion
9931
10053
  //#region src/client/components/mobileStackedLayout/memberDisplay.ts
9932
- var Qo = ["kpiNumber", "kpiDelta"];
9933
- function $o(e) {
10054
+ var is = ["kpiNumber", "kpiDelta"];
10055
+ function as(e) {
9934
10056
  let { portlet: t, framed: n, memberCount: r } = e, { analysisConfig: i } = j(t), a = i.charts[i.analysisType], o = a?.chartType || "line", s = a?.displayConfig;
9935
- !n && Qo.includes(o) && (s = {
10057
+ !n && is.includes(o) && (s = {
9936
10058
  ...s,
9937
10059
  layout: "compact"
9938
10060
  });
@@ -9951,8 +10073,8 @@ function $o(e) {
9951
10073
  }
9952
10074
  //#endregion
9953
10075
  //#region src/client/components/MobileStackedLayout.tsx
9954
- var es = b("refresh");
9955
- function ts({ config: e, colorPalette: t, dashboardFilters: n, onPortletRefresh: r }) {
10076
+ var os = b("refresh");
10077
+ function ss({ config: e, colorPalette: t, dashboardFilters: n, onPortletRefresh: r }) {
9956
10078
  let { t: i } = B(), a = J({}), [o, s] = Y(null), l = J(null), u = G((e) => {
9957
10079
  l.current = e, e && s(Xr(e));
9958
10080
  }, []), d = q(() => {
@@ -10005,7 +10127,7 @@ function ts({ config: e, colorPalette: t, dashboardFilters: n, onPortletRefresh:
10005
10127
  }, [d, e.layoutMode]), p = (e) => {
10006
10128
  a.current[e]?.refresh(), r?.(e);
10007
10129
  }, m = (r, o, s = 1, c = !1) => {
10008
- let l = $o({
10130
+ let l = as({
10009
10131
  portlet: r,
10010
10132
  framed: o,
10011
10133
  memberCount: s
@@ -10031,7 +10153,7 @@ function ts({ config: e, colorPalette: t, dashboardFilters: n, onPortletRefresh:
10031
10153
  onClick: () => p(r.id),
10032
10154
  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",
10033
10155
  title: i("dashboard.portlet.action.refresh"),
10034
- children: /* @__PURE__ */ Z(es, { style: {
10156
+ children: /* @__PURE__ */ Z(os, { style: {
10035
10157
  width: "16px",
10036
10158
  height: "16px",
10037
10159
  color: "currentColor"
@@ -10087,7 +10209,7 @@ function ts({ config: e, colorPalette: t, dashboardFilters: n, onPortletRefresh:
10087
10209
  }
10088
10210
  //#endregion
10089
10211
  //#region src/client/components/ScaledGridWrapper.tsx
10090
- function ns({ scaleFactor: e, designWidth: t, children: n }) {
10212
+ function cs({ scaleFactor: e, designWidth: t, children: n }) {
10091
10213
  let [r, i] = Y(0), a = J(null);
10092
10214
  K(() => {
10093
10215
  if (!a.current) return;
@@ -10118,15 +10240,15 @@ function ns({ scaleFactor: e, designWidth: t, children: n }) {
10118
10240
  }
10119
10241
  //#endregion
10120
10242
  //#region src/client/components/dashboard/DashboardGridSurface.tsx
10121
- var rs = b("measure"), is = b("add"), as = b("upload");
10122
- function os() {
10243
+ var ls = b("measure"), us = b("add"), ds = b("upload");
10244
+ function fs() {
10123
10245
  let { t: e } = B(), { config: t, gridContentRef: n, displayMode: r, scaleFactor: i, designWidth: a, colorPalette: o, dashboardFilters: s, handlePortletRefresh: c, renderActiveLayout: l, editable: u, handleAddText: d, handleAddPortlet: f, importExport: p } = $r(), m = J(null);
10124
10246
  return !t.portlets || t.portlets.length === 0 ? /* @__PURE__ */ Z("div", {
10125
10247
  className: "dc:flex dc:justify-center dc:items-center dc:min-h-[50vh]",
10126
10248
  children: /* @__PURE__ */ Q("div", {
10127
10249
  className: "dc:text-center",
10128
10250
  children: [
10129
- /* @__PURE__ */ Z(rs, { style: {
10251
+ /* @__PURE__ */ Z(ls, { style: {
10130
10252
  width: "64px",
10131
10253
  height: "64px",
10132
10254
  color: "var(--dc-text-muted)",
@@ -10153,7 +10275,7 @@ function os() {
10153
10275
  },
10154
10276
  onMouseEnter: (e) => e.currentTarget.style.backgroundColor = "var(--dc-surface-hover)",
10155
10277
  onMouseLeave: (e) => e.currentTarget.style.backgroundColor = "var(--dc-surface)",
10156
- children: [/* @__PURE__ */ Z(as, { className: "dc:w-5 dc:h-5 dc:mr-2" }), e("dashboard.import.button")]
10278
+ children: [/* @__PURE__ */ Z(ds, { className: "dc:w-5 dc:h-5 dc:mr-2" }), e("dashboard.import.button")]
10157
10279
  }), /* @__PURE__ */ Z(Ci, {
10158
10280
  ref: m,
10159
10281
  onFile: p.importFromFile
@@ -10178,7 +10300,7 @@ function os() {
10178
10300
  },
10179
10301
  onMouseEnter: (e) => e.currentTarget.style.backgroundColor = "var(--dc-surface-hover)",
10180
10302
  onMouseLeave: (e) => e.currentTarget.style.backgroundColor = "var(--dc-surface)",
10181
- children: [/* @__PURE__ */ Z(is, { className: "dc:w-5 dc:h-5 dc:mr-2" }), e("dashboard.addPortlet")]
10303
+ children: [/* @__PURE__ */ Z(us, { className: "dc:w-5 dc:h-5 dc:mr-2" }), e("dashboard.addPortlet")]
10182
10304
  })
10183
10305
  ]
10184
10306
  })
@@ -10186,12 +10308,12 @@ function os() {
10186
10308
  })
10187
10309
  }) : /* @__PURE__ */ Z("div", {
10188
10310
  ref: n,
10189
- children: r === "mobile" ? /* @__PURE__ */ Z(ts, {
10311
+ children: r === "mobile" ? /* @__PURE__ */ Z(ss, {
10190
10312
  config: t,
10191
10313
  colorPalette: o,
10192
10314
  dashboardFilters: s,
10193
10315
  onPortletRefresh: c
10194
- }) : r === "scaled" ? /* @__PURE__ */ Z(ns, {
10316
+ }) : r === "scaled" ? /* @__PURE__ */ Z(cs, {
10195
10317
  scaleFactor: i,
10196
10318
  designWidth: a,
10197
10319
  children: l()
@@ -10200,7 +10322,7 @@ function os() {
10200
10322
  }
10201
10323
  //#endregion
10202
10324
  //#region src/client/components/Modal.tsx
10203
- var ss = ({ 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 }) => {
10325
+ var ps = ({ 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 }) => {
10204
10326
  let u = G((e) => {
10205
10327
  e.key === "Escape" && a && t();
10206
10328
  }, [a, t]);
@@ -10271,20 +10393,20 @@ var ss = ({ isOpen: e, onClose: t, title: n, size: r = "md", closeOnBackdropClic
10271
10393
  ]
10272
10394
  })
10273
10395
  }) : null;
10274
- }, cs = U(() => import("./analysis-builder-fPK8NgJW.js")), ls = Se((e, t) => /* @__PURE__ */ Z(be, {
10396
+ }, ms = U(() => import("./analysis-builder-DIOnKxJu.js")), hs = Se((e, t) => /* @__PURE__ */ Z(be, {
10275
10397
  fallback: /* @__PURE__ */ Z("div", {
10276
10398
  className: "dc:flex dc:items-center dc:justify-center dc:w-full dc:py-6",
10277
10399
  children: /* @__PURE__ */ Z(me, {})
10278
10400
  }),
10279
- children: /* @__PURE__ */ Z(cs, {
10401
+ children: /* @__PURE__ */ Z(ms, {
10280
10402
  ...e,
10281
10403
  ref: t
10282
10404
  })
10283
10405
  }));
10284
- ls.displayName = "AnalysisBuilder";
10406
+ hs.displayName = "AnalysisBuilder";
10285
10407
  //#endregion
10286
10408
  //#region src/client/adapters/funnelModeAdapter.ts
10287
- function us(e) {
10409
+ function gs(e) {
10288
10410
  let t = "";
10289
10411
  e.funnelBindingKey && (typeof e.funnelBindingKey.dimension == "string" ? t = e.funnelBindingKey.dimension : Array.isArray(e.funnelBindingKey.dimension) && (t = e.funnelBindingKey.dimension.map((e) => ({
10290
10412
  cube: e.cube,
@@ -10301,7 +10423,7 @@ function us(e) {
10301
10423
  includeTimeMetrics: !0
10302
10424
  } };
10303
10425
  }
10304
- function ds(e) {
10426
+ function _s(e) {
10305
10427
  let { funnel: t } = e, n = null;
10306
10428
  if (t.steps.length > 0 && t.steps[0].cube) n = t.steps[0].cube;
10307
10429
  else if (typeof t.bindingKey == "string") {
@@ -10333,14 +10455,14 @@ function ds(e) {
10333
10455
  funnelBindingKey: r
10334
10456
  };
10335
10457
  }
10336
- function fs(e) {
10458
+ function vs(e) {
10337
10459
  if (!e || typeof e != "object") return !1;
10338
10460
  let t = e;
10339
10461
  if (t.version !== 1 || t.analysisType !== "funnel" || !t.query || typeof t.query != "object") return !1;
10340
10462
  let n = t.query;
10341
10463
  return !(!n.funnel || typeof n.funnel != "object");
10342
10464
  }
10343
- var ps = {
10465
+ var ys = {
10344
10466
  type: "funnel",
10345
10467
  createInitial() {
10346
10468
  return {
@@ -10361,11 +10483,11 @@ var ps = {
10361
10483
  };
10362
10484
  },
10363
10485
  canLoad(e) {
10364
- return fs(e);
10486
+ return vs(e);
10365
10487
  },
10366
10488
  load(e) {
10367
10489
  if (e.analysisType !== "funnel") throw Error(`Cannot load ${e.analysisType} config with funnel adapter`);
10368
- return ds(e.query);
10490
+ return _s(e.query);
10369
10491
  },
10370
10492
  save(e, t, n) {
10371
10493
  return {
@@ -10373,7 +10495,7 @@ var ps = {
10373
10495
  analysisType: "funnel",
10374
10496
  activeView: n,
10375
10497
  charts: { funnel: t.funnel || this.getDefaultChartConfig() },
10376
- query: us(e)
10498
+ query: gs(e)
10377
10499
  };
10378
10500
  },
10379
10501
  validate(e) {
@@ -10408,7 +10530,7 @@ var ps = {
10408
10530
  };
10409
10531
  //#endregion
10410
10532
  //#region src/client/adapters/flowModeAdapter.ts
10411
- function ms(e) {
10533
+ function bs(e) {
10412
10534
  let t = "";
10413
10535
  return e.flowBindingKey && (typeof e.flowBindingKey.dimension == "string" ? t = e.flowBindingKey.dimension : Array.isArray(e.flowBindingKey.dimension) && (t = e.flowBindingKey.dimension.map((e) => ({
10414
10536
  cube: e.cube,
@@ -10426,7 +10548,7 @@ function ms(e) {
10426
10548
  joinStrategy: e.joinStrategy
10427
10549
  } };
10428
10550
  }
10429
- function hs(e) {
10551
+ function xs(e) {
10430
10552
  let { flow: t } = e, n = null;
10431
10553
  if (typeof t.bindingKey == "string") {
10432
10554
  let e = t.bindingKey.split(".");
@@ -10454,14 +10576,14 @@ function hs(e) {
10454
10576
  joinStrategy: t.joinStrategy || "auto"
10455
10577
  };
10456
10578
  }
10457
- function gs(e) {
10579
+ function Ss(e) {
10458
10580
  if (!e || typeof e != "object") return !1;
10459
10581
  let t = e;
10460
10582
  if (t.version !== 1 || t.analysisType !== "flow" || !t.query || typeof t.query != "object") return !1;
10461
10583
  let n = t.query;
10462
10584
  return !(!n.flow || typeof n.flow != "object");
10463
10585
  }
10464
- var _s = {
10586
+ var Cs = {
10465
10587
  type: "flow",
10466
10588
  createInitial() {
10467
10589
  return {
@@ -10491,11 +10613,11 @@ var _s = {
10491
10613
  };
10492
10614
  },
10493
10615
  canLoad(e) {
10494
- return gs(e);
10616
+ return Ss(e);
10495
10617
  },
10496
10618
  load(e) {
10497
10619
  if (e.analysisType !== "flow") throw Error(`Cannot load ${e.analysisType} config with flow adapter`);
10498
- return hs(e.query);
10620
+ return xs(e.query);
10499
10621
  },
10500
10622
  save(e, t, n) {
10501
10623
  return {
@@ -10503,7 +10625,7 @@ var _s = {
10503
10625
  analysisType: "flow",
10504
10626
  activeView: n,
10505
10627
  charts: { flow: t.flow || this.getDefaultChartConfig() },
10506
- query: ms(e)
10628
+ query: bs(e)
10507
10629
  };
10508
10630
  },
10509
10631
  validate(e) {
@@ -10538,7 +10660,7 @@ var _s = {
10538
10660
  };
10539
10661
  //#endregion
10540
10662
  //#region src/client/adapters/retentionModeAdapter.ts
10541
- function vs(e) {
10663
+ function ws(e) {
10542
10664
  let t = "";
10543
10665
  e.retentionBindingKey && (typeof e.retentionBindingKey.dimension == "string" ? t = e.retentionBindingKey.dimension : Array.isArray(e.retentionBindingKey.dimension) && (t = e.retentionBindingKey.dimension.map((e) => ({
10544
10666
  cube: e.cube,
@@ -10554,7 +10676,7 @@ function vs(e) {
10554
10676
  } };
10555
10677
  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;
10556
10678
  }
10557
- function ys(e) {
10679
+ function Ts(e) {
10558
10680
  let { retention: t } = e, n = null;
10559
10681
  if (typeof t.timeDimension == "string") {
10560
10682
  let e = t.timeDimension.split(".");
@@ -10590,14 +10712,14 @@ function ys(e) {
10590
10712
  retentionBreakdowns: s
10591
10713
  };
10592
10714
  }
10593
- function bs(e) {
10715
+ function Es(e) {
10594
10716
  if (!e || typeof e != "object") return !1;
10595
10717
  let t = e;
10596
10718
  if (t.version !== 1 || t.analysisType !== "retention" || !t.query || typeof t.query != "object") return !1;
10597
10719
  let n = t.query;
10598
10720
  return !(!n.retention || typeof n.retention != "object");
10599
10721
  }
10600
- var xs = {
10722
+ var Ds = {
10601
10723
  type: "retention",
10602
10724
  createInitial() {
10603
10725
  return { ...S };
@@ -10617,11 +10739,11 @@ var xs = {
10617
10739
  };
10618
10740
  },
10619
10741
  canLoad(e) {
10620
- return bs(e);
10742
+ return Es(e);
10621
10743
  },
10622
10744
  load(e) {
10623
10745
  if (e.analysisType !== "retention") throw Error(`Cannot load ${e.analysisType} config with retention adapter`);
10624
- return ys(e.query);
10746
+ return Ts(e.query);
10625
10747
  },
10626
10748
  save(e, t, n) {
10627
10749
  return {
@@ -10629,7 +10751,7 @@ var xs = {
10629
10751
  analysisType: "retention",
10630
10752
  activeView: n,
10631
10753
  charts: { retention: t.retention || this.getDefaultChartConfig() },
10632
- query: vs(e)
10754
+ query: ws(e)
10633
10755
  };
10634
10756
  },
10635
10757
  validate(e) {
@@ -10667,13 +10789,13 @@ var xs = {
10667
10789
  };
10668
10790
  //#endregion
10669
10791
  //#region src/client/components/portletAnalysisModal/saveValidation.ts
10670
- function Ss(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 ? Cs(e.queries[0]) : Cs(e);
10792
+ function Os(e) {
10793
+ 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 ? ks(e.queries[0]) : ks(e);
10672
10794
  }
10673
- function Cs(e) {
10795
+ function ks(e) {
10674
10796
  return !!(e?.measures && e.measures.length > 0 || e?.dimensions && e.dimensions.length > 0 || e?.timeDimensions && e.timeDimensions.length > 0);
10675
10797
  }
10676
- function ws(e) {
10798
+ function As(e) {
10677
10799
  switch (e) {
10678
10800
  case "flow": return "Please configure the flow analysis (binding key, time dimension, event dimension, and starting step filter).";
10679
10801
  case "retention": return "Please configure the retention analysis (binding key, time dimension, and date range).";
@@ -10683,7 +10805,7 @@ function ws(e) {
10683
10805
  }
10684
10806
  //#endregion
10685
10807
  //#region src/client/components/PortletAnalysisModal.tsx
10686
- function Ts({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, title: a, submitText: o, colorPalette: s }) {
10808
+ function js({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, title: a, submitText: o, colorPalette: s }) {
10687
10809
  let { t: c } = B(), l = J(null), [u, d] = Y(""), f = q(() => r ? j(r).analysisConfig : null, [r]), p = q(() => {
10688
10810
  if (!f) return;
10689
10811
  let e = f.query;
@@ -10708,7 +10830,7 @@ function Ts({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10708
10830
  funnelDisplayConfig: r.funnelDisplayConfig
10709
10831
  };
10710
10832
  if (f.query && "funnel" in f.query) {
10711
- let e = ps.load(f), t = f.charts?.funnel;
10833
+ let e = ys.load(f), t = f.charts?.funnel;
10712
10834
  return {
10713
10835
  ...e,
10714
10836
  funnelChartType: t?.chartType,
@@ -10719,7 +10841,7 @@ function Ts({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10719
10841
  }
10720
10842
  }, [f, r]), _ = q(() => {
10721
10843
  if (f?.analysisType === "flow" && f.query && "flow" in f.query) {
10722
- let e = _s.load(f), t = f.charts?.flow;
10844
+ let e = Cs.load(f), t = f.charts?.flow;
10723
10845
  return {
10724
10846
  ...e,
10725
10847
  flowChartType: t?.chartType,
@@ -10729,7 +10851,7 @@ function Ts({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10729
10851
  }
10730
10852
  }, [f]), v = q(() => {
10731
10853
  if (f?.analysisType === "retention" && f.query && "retention" in f.query) {
10732
- let e = xs.load(f), t = f.charts?.retention;
10854
+ let e = Ds.load(f), t = f.charts?.retention;
10733
10855
  return {
10734
10856
  ...e,
10735
10857
  retentionChartType: t?.chartType,
@@ -10752,8 +10874,8 @@ function Ts({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10752
10874
  return;
10753
10875
  }
10754
10876
  let { query: i, analysisType: a } = e;
10755
- if (!Ss(i)) {
10756
- alert(ws(a));
10877
+ if (!Os(i)) {
10878
+ alert(As(a));
10757
10879
  return;
10758
10880
  }
10759
10881
  n({
@@ -10783,7 +10905,7 @@ function Ts({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10783
10905
  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",
10784
10906
  children: o
10785
10907
  })] });
10786
- return /* @__PURE__ */ Z(ss, {
10908
+ return /* @__PURE__ */ Z(ps, {
10787
10909
  isOpen: e,
10788
10910
  onClose: t,
10789
10911
  title: a,
@@ -10816,7 +10938,7 @@ function Ts({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10816
10938
  })
10817
10939
  }), /* @__PURE__ */ Z("div", {
10818
10940
  className: "dc:flex-1 dc:min-h-0",
10819
- children: /* @__PURE__ */ Z(ls, {
10941
+ children: /* @__PURE__ */ Z(hs, {
10820
10942
  ref: l,
10821
10943
  maxHeight: "100%",
10822
10944
  initialQuery: p,
@@ -10836,7 +10958,7 @@ function Ts({ isOpen: e, onClose: t, onSave: n, portlet: r, initialData: i, titl
10836
10958
  }
10837
10959
  //#endregion
10838
10960
  //#region src/client/components/AnalysisBuilder/StringArrayInput.tsx
10839
- function Es({ label: e, value: t, onChange: n, placeholder: r, description: i }) {
10961
+ function Ms({ label: e, value: t, onChange: n, placeholder: r, description: i }) {
10840
10962
  let [a, o] = Y(() => t.join("\n"));
10841
10963
  K(() => {
10842
10964
  o(t.join("\n"));
@@ -10868,13 +10990,13 @@ function Es({ label: e, value: t, onChange: n, placeholder: r, description: i })
10868
10990
  }
10869
10991
  //#endregion
10870
10992
  //#region src/client/components/AnalysisBuilder/ColumnFormatsEditor.tsx
10871
- var Ds = [
10993
+ var Ns = [
10872
10994
  "text",
10873
10995
  "number",
10874
10996
  "date",
10875
10997
  "badge",
10876
10998
  "progress"
10877
- ], Os = ["bar", "circle"], ks = [
10999
+ ], Ps = ["bar", "circle"], Fs = [
10878
11000
  "hour",
10879
11001
  "day",
10880
11002
  "week",
@@ -10882,7 +11004,7 @@ var Ds = [
10882
11004
  "quarter",
10883
11005
  "year"
10884
11006
  ];
10885
- function As({ value: e, chartConfig: t, colorPalette: n, onChange: r, t: i }) {
11007
+ function Is({ value: e, chartConfig: t, colorPalette: n, onChange: r, t: i }) {
10886
11008
  let { getFieldLabel: a } = de(), [o, s] = Y(null), c = t?.columns ?? [];
10887
11009
  if (c.length === 0) return /* @__PURE__ */ Z("p", {
10888
11010
  className: "dc:text-xs text-dc-text-muted",
@@ -10894,7 +11016,7 @@ function As({ value: e, chartConfig: t, colorPalette: n, onChange: r, t: i }) {
10894
11016
  };
10895
11017
  return /* @__PURE__ */ Z("div", {
10896
11018
  className: "dc:space-y-1",
10897
- children: c.map((t) => /* @__PURE__ */ Z(js, {
11019
+ children: c.map((t) => /* @__PURE__ */ Z(Ls, {
10898
11020
  column: t,
10899
11021
  format: e[t] ?? { kind: "text" },
10900
11022
  fallbackLabel: a(t),
@@ -10906,7 +11028,7 @@ function As({ value: e, chartConfig: t, colorPalette: n, onChange: r, t: i }) {
10906
11028
  }, t))
10907
11029
  });
10908
11030
  }
10909
- function js({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle: i, onChange: a, t: o }) {
11031
+ function Ls({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle: i, onChange: a, t: o }) {
10910
11032
  return /* @__PURE__ */ Q("div", {
10911
11033
  className: "dc:border border-dc-border dc:rounded-sm",
10912
11034
  children: [/* @__PURE__ */ Q("button", {
@@ -10923,7 +11045,7 @@ function js({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle:
10923
11045
  }), n && /* @__PURE__ */ Q("div", {
10924
11046
  className: "dc:px-2 dc:py-2 dc:space-y-2 dc:border-t border-dc-border",
10925
11047
  children: [
10926
- /* @__PURE__ */ Z(Ps, {
11048
+ /* @__PURE__ */ Z(Bs, {
10927
11049
  kind: e.kind,
10928
11050
  onSelect: (t) => a({
10929
11051
  ...e,
@@ -10931,7 +11053,7 @@ function js({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle:
10931
11053
  }),
10932
11054
  t: o
10933
11055
  }),
10934
- /* @__PURE__ */ Z(Ms, {
11056
+ /* @__PURE__ */ Z(Rs, {
10935
11057
  format: e,
10936
11058
  colorPalette: r,
10937
11059
  onChange: a,
@@ -10957,7 +11079,7 @@ function js({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle:
10957
11079
  })]
10958
11080
  });
10959
11081
  }
10960
- function Ms({ format: e, colorPalette: t, onChange: n, t: r }) {
11082
+ function Rs({ format: e, colorPalette: t, onChange: n, t: r }) {
10961
11083
  return e.kind === "number" ? /* @__PURE__ */ Z(ge, {
10962
11084
  axisLabel: r("chart.recordsTable.columnFormats.numberFormat"),
10963
11085
  value: e.numberFormat ?? {},
@@ -10978,23 +11100,23 @@ function Ms({ format: e, colorPalette: t, onChange: n, t: r }) {
10978
11100
  dateGranularity: t.target.value
10979
11101
  }),
10980
11102
  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",
10981
- children: ks.map((e) => /* @__PURE__ */ Z("option", {
11103
+ children: Fs.map((e) => /* @__PURE__ */ Z("option", {
10982
11104
  value: e,
10983
11105
  children: r(`timeGranularity.${e}`)
10984
11106
  }, e))
10985
11107
  })]
10986
- }) : e.kind === "badge" ? /* @__PURE__ */ Z(Is, {
11108
+ }) : e.kind === "badge" ? /* @__PURE__ */ Z(Hs, {
10987
11109
  format: e,
10988
11110
  colorPalette: t,
10989
11111
  onChange: n,
10990
11112
  t: r
10991
- }) : e.kind === "progress" ? /* @__PURE__ */ Z(Ns, {
11113
+ }) : e.kind === "progress" ? /* @__PURE__ */ Z(zs, {
10992
11114
  format: e,
10993
11115
  onChange: n,
10994
11116
  t: r
10995
11117
  }) : null;
10996
11118
  }
10997
- function Ns({ format: e, onChange: t, t: n }) {
11119
+ function zs({ format: e, onChange: t, t: n }) {
10998
11120
  return /* @__PURE__ */ Q("div", {
10999
11121
  className: "dc:space-y-2",
11000
11122
  children: [/* @__PURE__ */ Q("div", {
@@ -11002,7 +11124,7 @@ function Ns({ format: e, onChange: t, t: n }) {
11002
11124
  children: [/* @__PURE__ */ Z("span", {
11003
11125
  className: "dc:block dc:text-xs text-dc-text-secondary",
11004
11126
  children: n("chart.recordsTable.columnFormats.progressStyle")
11005
- }), /* @__PURE__ */ Z(Fs, {
11127
+ }), /* @__PURE__ */ Z(Vs, {
11006
11128
  style: e.progressStyle ?? "bar",
11007
11129
  onSelect: (n) => t({
11008
11130
  ...e,
@@ -11012,14 +11134,14 @@ function Ns({ format: e, onChange: t, t: n }) {
11012
11134
  })]
11013
11135
  }), /* @__PURE__ */ Q("div", {
11014
11136
  className: "dc:flex dc:gap-2",
11015
- children: [/* @__PURE__ */ Z(Ls, {
11137
+ children: [/* @__PURE__ */ Z(Us, {
11016
11138
  label: n("chart.recordsTable.columnFormats.progressMin"),
11017
11139
  value: e.progressMin ?? 0,
11018
11140
  onChange: (n) => t({
11019
11141
  ...e,
11020
11142
  progressMin: n
11021
11143
  })
11022
- }), /* @__PURE__ */ Z(Ls, {
11144
+ }), /* @__PURE__ */ Z(Us, {
11023
11145
  label: n("chart.recordsTable.columnFormats.progressMax"),
11024
11146
  value: e.progressMax ?? 100,
11025
11147
  onChange: (n) => t({
@@ -11030,10 +11152,10 @@ function Ns({ format: e, onChange: t, t: n }) {
11030
11152
  })]
11031
11153
  });
11032
11154
  }
11033
- function Ps({ kind: e, onSelect: t, t: n }) {
11155
+ function Bs({ kind: e, onSelect: t, t: n }) {
11034
11156
  return /* @__PURE__ */ Z("div", {
11035
11157
  className: "dc:flex dc:border border-dc-border dc:rounded-sm dc:overflow-hidden",
11036
- children: Ds.map((r) => /* @__PURE__ */ Z("button", {
11158
+ children: Ns.map((r) => /* @__PURE__ */ Z("button", {
11037
11159
  type: "button",
11038
11160
  onClick: () => t(r),
11039
11161
  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"}`,
@@ -11041,10 +11163,10 @@ function Ps({ kind: e, onSelect: t, t: n }) {
11041
11163
  }, r))
11042
11164
  });
11043
11165
  }
11044
- function Fs({ style: e, onSelect: t, t: n }) {
11166
+ function Vs({ style: e, onSelect: t, t: n }) {
11045
11167
  return /* @__PURE__ */ Z("div", {
11046
11168
  className: "dc:flex dc:border border-dc-border dc:rounded-sm dc:overflow-hidden",
11047
- children: Os.map((r) => /* @__PURE__ */ Z("button", {
11169
+ children: Ps.map((r) => /* @__PURE__ */ Z("button", {
11048
11170
  type: "button",
11049
11171
  onClick: () => t(r),
11050
11172
  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"}`,
@@ -11052,7 +11174,7 @@ function Fs({ style: e, onSelect: t, t: n }) {
11052
11174
  }, r))
11053
11175
  });
11054
11176
  }
11055
- function Is({ format: e, colorPalette: t, onChange: n, t: r }) {
11177
+ function Hs({ format: e, colorPalette: t, onChange: n, t: r }) {
11056
11178
  let i = Array.isArray(e.badgeColors) ? e.badgeColors : [], a = t?.colors ?? [], o = (t) => n({
11057
11179
  ...e,
11058
11180
  badgeColors: t.length > 0 ? t : void 0
@@ -11116,7 +11238,7 @@ function Is({ format: e, colorPalette: t, onChange: n, t: r }) {
11116
11238
  ]
11117
11239
  });
11118
11240
  }
11119
- function Ls({ label: e, value: t, onChange: n }) {
11241
+ function Us({ label: e, value: t, onChange: n }) {
11120
11242
  return /* @__PURE__ */ Q("label", {
11121
11243
  className: "dc:flex-1 dc:space-y-1",
11122
11244
  children: [/* @__PURE__ */ Z("span", {
@@ -11136,7 +11258,7 @@ function Ls({ label: e, value: t, onChange: n }) {
11136
11258
  }
11137
11259
  //#endregion
11138
11260
  //#region src/client/components/AnalysisBuilder/templateSyntax.ts
11139
- var Rs = /\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/g, zs = /^[ \t]{0,3}#{1,6}[ \t].*$/gm, Bs = /"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[A-Za-z_$][\w$]*|\d+(?:\.\d+)?|\s+|[\s\S]/g, Vs = /* @__PURE__ */ new Set([
11261
+ var Ws = /\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/g, Gs = /^[ \t]{0,3}#{1,6}[ \t].*$/gm, Ks = /"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[A-Za-z_$][\w$]*|\d+(?:\.\d+)?|\s+|[\s\S]/g, qs = /* @__PURE__ */ new Set([
11140
11262
  "if",
11141
11263
  "elseif",
11142
11264
  "else",
@@ -11153,7 +11275,7 @@ var Rs = /\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/g, zs = /^[ \t]{0,3}#{1,6}[ \t].*$/gm,
11153
11275
  "false",
11154
11276
  "null"
11155
11277
  ]);
11156
- function Hs(e, t, n) {
11278
+ function Js(e, t, n) {
11157
11279
  if (!t) return;
11158
11280
  let r = e[e.length - 1];
11159
11281
  if (r && r.kind === n) {
@@ -11165,36 +11287,36 @@ function Hs(e, t, n) {
11165
11287
  kind: n
11166
11288
  });
11167
11289
  }
11168
- function Us(e, t) {
11169
- return /^\s/.test(e) ? "delimiter" : /^["']/.test(e) ? "string" : /^\d/.test(e) ? "number" : /^[A-Za-z_$]/.test(e) ? Vs.has(e) ? "keyword" : t === "|" ? "filter" : "identifier" : "operator";
11290
+ function Ys(e, t) {
11291
+ return /^\s/.test(e) ? "delimiter" : /^["']/.test(e) ? "string" : /^\d/.test(e) ? "number" : /^[A-Za-z_$]/.test(e) ? qs.has(e) ? "keyword" : t === "|" ? "filter" : "identifier" : "operator";
11170
11292
  }
11171
- function Ws(e, t) {
11293
+ function Xs(e, t) {
11172
11294
  let n = "";
11173
- for (let [r] of e.matchAll(Bs)) Hs(t, r, Us(r, n)), /^\s/.test(r) || (n = r);
11295
+ for (let [r] of e.matchAll(Ks)) Js(t, r, Ys(r, n)), /^\s/.test(r) || (n = r);
11174
11296
  }
11175
- function Gs(e, t) {
11297
+ function Zs(e, t) {
11176
11298
  let n = e.slice(0, 2), r = e.slice(-2);
11177
- Hs(t, n, "delimiter"), Ws(e.slice(2, -2), t), Hs(t, r, "delimiter");
11299
+ Js(t, n, "delimiter"), Xs(e.slice(2, -2), t), Js(t, r, "delimiter");
11178
11300
  }
11179
- function Ks(e, t) {
11301
+ function Qs(e, t) {
11180
11302
  let n = 0;
11181
- for (let r of e.matchAll(zs)) {
11303
+ for (let r of e.matchAll(Gs)) {
11182
11304
  let i = r.index;
11183
- Hs(t, e.slice(n, i), "text"), Hs(t, r[0], "heading"), n = i + r[0].length;
11305
+ Js(t, e.slice(n, i), "text"), Js(t, r[0], "heading"), n = i + r[0].length;
11184
11306
  }
11185
- Hs(t, e.slice(n), "text");
11307
+ Js(t, e.slice(n), "text");
11186
11308
  }
11187
- function qs(e) {
11309
+ function $s(e) {
11188
11310
  let t = [], n = 0;
11189
- for (let r of e.matchAll(Rs)) {
11311
+ for (let r of e.matchAll(Ws)) {
11190
11312
  let i = r.index;
11191
- Ks(e.slice(n, i), t), Gs(r[0], t), n = i + r[0].length;
11313
+ Qs(e.slice(n, i), t), Zs(r[0], t), n = i + r[0].length;
11192
11314
  }
11193
- return Ks(e.slice(n), t), t;
11315
+ return Qs(e.slice(n), t), t;
11194
11316
  }
11195
11317
  //#endregion
11196
11318
  //#region src/client/components/AnalysisBuilder/TemplateEditor.tsx
11197
- var Js = {
11319
+ var ec = {
11198
11320
  margin: 0,
11199
11321
  padding: "0.25rem 0.5rem",
11200
11322
  border: "1px solid transparent",
@@ -11206,7 +11328,7 @@ var Js = {
11206
11328
  whiteSpace: "pre-wrap",
11207
11329
  overflowWrap: "break-word",
11208
11330
  wordBreak: "normal"
11209
- }, Ys = "​", Xs = {
11331
+ }, tc = "​", nc = {
11210
11332
  keyword: "text-dc-filter",
11211
11333
  identifier: "text-dc-accent",
11212
11334
  filter: "text-dc-warning",
@@ -11217,8 +11339,8 @@ var Js = {
11217
11339
  heading: "dc:font-bold text-dc-text-secondary",
11218
11340
  text: "text-dc-text"
11219
11341
  };
11220
- function Zs({ value: e, onChange: t, placeholder: n, rows: r = 8 }) {
11221
- let i = J(null), a = q(() => qs(e.endsWith("\n") ? `${e}${Ys}` : e), [e]), o = G((e) => {
11342
+ function rc({ value: e, onChange: t, placeholder: n, rows: r = 8 }) {
11343
+ let i = J(null), a = q(() => $s(e.endsWith("\n") ? `${e}${tc}` : e), [e]), o = G((e) => {
11222
11344
  let t = i.current;
11223
11345
  t && (t.scrollTop = e.currentTarget.scrollTop, t.scrollLeft = e.currentTarget.scrollLeft);
11224
11346
  }, []), s = `calc(${r} * 1.5rem + 0.5rem + 2px)`;
@@ -11229,12 +11351,12 @@ function Zs({ value: e, onChange: t, placeholder: n, rows: r = 8 }) {
11229
11351
  ref: i,
11230
11352
  "aria-hidden": "true",
11231
11353
  className: "dc:absolute dc:inset-0 dc:overflow-auto dc:pointer-events-none",
11232
- style: Js,
11354
+ style: ec,
11233
11355
  children: e === "" && n ? /* @__PURE__ */ Z("span", {
11234
11356
  className: "text-dc-text-muted",
11235
11357
  children: n
11236
11358
  }) : a.map((e, t) => /* @__PURE__ */ Z("span", {
11237
- className: Xs[e.kind],
11359
+ className: nc[e.kind],
11238
11360
  children: e.text
11239
11361
  }, t))
11240
11362
  }), /* @__PURE__ */ Z("textarea", {
@@ -11245,7 +11367,7 @@ function Zs({ value: e, onChange: t, placeholder: n, rows: r = 8 }) {
11245
11367
  spellCheck: !1,
11246
11368
  className: "dc:absolute dc:inset-0 dc:w-full dc:h-full dc:resize-none dc:bg-transparent focus:outline-hidden",
11247
11369
  style: {
11248
- ...Js,
11370
+ ...ec,
11249
11371
  color: "transparent",
11250
11372
  caretColor: "var(--dc-text)",
11251
11373
  WebkitTextFillColor: "transparent"
@@ -11255,8 +11377,8 @@ function Zs({ value: e, onChange: t, placeholder: n, rows: r = 8 }) {
11255
11377
  }
11256
11378
  //#endregion
11257
11379
  //#region src/client/components/AnalysisBuilder/DisplayOptionControl.tsx
11258
- var Qs = "#22c55e";
11259
- function $s({ description: e, docsUrl: t, docsLabel: n, t: r }) {
11380
+ var ic = "#22c55e";
11381
+ function ac({ description: e, docsUrl: t, docsLabel: n, t: r }) {
11260
11382
  return !e && !t ? null : /* @__PURE__ */ Q("p", {
11261
11383
  className: "dc:text-xs text-dc-text-muted",
11262
11384
  children: [e ? r(e) : null, t ? /* @__PURE__ */ Q(X, { children: [e ? " " : null, /* @__PURE__ */ Z("a", {
@@ -11268,7 +11390,7 @@ function $s({ description: e, docsUrl: t, docsLabel: n, t: r }) {
11268
11390
  })] }) : null]
11269
11391
  });
11270
11392
  }
11271
- function ec({ option: e, displayConfig: t, setValue: n, t: r }) {
11393
+ function oc({ option: e, displayConfig: t, setValue: n, t: r }) {
11272
11394
  let i = e.key;
11273
11395
  return /* @__PURE__ */ Q("label", {
11274
11396
  className: "dc:flex dc:items-center dc:space-x-2",
@@ -11284,7 +11406,7 @@ function ec({ option: e, displayConfig: t, setValue: n, t: r }) {
11284
11406
  })]
11285
11407
  });
11286
11408
  }
11287
- function tc({ option: e, displayConfig: t, setValue: n, t: r }) {
11409
+ function sc({ option: e, displayConfig: t, setValue: n, t: r }) {
11288
11410
  let i = t[e.key] ?? e.defaultValue ?? "", a = e.placeholder ? r(e.placeholder) : void 0;
11289
11411
  return /* @__PURE__ */ Q("div", {
11290
11412
  className: "dc:space-y-1",
@@ -11296,7 +11418,7 @@ function tc({ option: e, displayConfig: t, setValue: n, t: r }) {
11296
11418
  children: r("chart.markdown.contentHint")
11297
11419
  })]
11298
11420
  }),
11299
- e.syntax === "markdownTemplate" ? /* @__PURE__ */ Z(Zs, {
11421
+ e.syntax === "markdownTemplate" ? /* @__PURE__ */ Z(rc, {
11300
11422
  value: i,
11301
11423
  onChange: n,
11302
11424
  placeholder: a,
@@ -11314,7 +11436,7 @@ function tc({ option: e, displayConfig: t, setValue: n, t: r }) {
11314
11436
  placeholder: a,
11315
11437
  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"
11316
11438
  }),
11317
- /* @__PURE__ */ Z($s, {
11439
+ /* @__PURE__ */ Z(ac, {
11318
11440
  description: e.description,
11319
11441
  docsUrl: e.docsUrl,
11320
11442
  docsLabel: e.docsLabel,
@@ -11323,7 +11445,7 @@ function tc({ option: e, displayConfig: t, setValue: n, t: r }) {
11323
11445
  ]
11324
11446
  });
11325
11447
  }
11326
- function nc({ option: e, displayConfig: t, colorPalette: n, setValue: r, t: i }) {
11448
+ function cc({ option: e, displayConfig: t, colorPalette: n, setValue: r, t: i }) {
11327
11449
  let a = t[e.key] ?? e.defaultValue ?? 0;
11328
11450
  return /* @__PURE__ */ Q("div", {
11329
11451
  className: "dc:space-y-1",
@@ -11355,7 +11477,7 @@ function nc({ option: e, displayConfig: t, colorPalette: n, setValue: r, t: i })
11355
11477
  title: "Default Color"
11356
11478
  }, 0)]
11357
11479
  }),
11358
- /* @__PURE__ */ Z($s, {
11480
+ /* @__PURE__ */ Z(ac, {
11359
11481
  description: e.description,
11360
11482
  docsUrl: e.docsUrl,
11361
11483
  docsLabel: e.docsLabel,
@@ -11364,7 +11486,7 @@ function nc({ option: e, displayConfig: t, colorPalette: n, setValue: r, t: i })
11364
11486
  ]
11365
11487
  });
11366
11488
  }
11367
- function rc({ option: e, displayConfig: t, setValue: n, t: r }) {
11489
+ function lc({ option: e, displayConfig: t, setValue: n, t: r }) {
11368
11490
  let i = e.key;
11369
11491
  return /* @__PURE__ */ Q("div", {
11370
11492
  className: "dc:space-y-1",
@@ -11383,7 +11505,7 @@ function rc({ option: e, displayConfig: t, setValue: n, t: r }) {
11383
11505
  step: e.step,
11384
11506
  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"
11385
11507
  }),
11386
- /* @__PURE__ */ Z($s, {
11508
+ /* @__PURE__ */ Z(ac, {
11387
11509
  description: e.description,
11388
11510
  docsUrl: e.docsUrl,
11389
11511
  docsLabel: e.docsLabel,
@@ -11392,7 +11514,7 @@ function rc({ option: e, displayConfig: t, setValue: n, t: r }) {
11392
11514
  ]
11393
11515
  });
11394
11516
  }
11395
- function ic({ option: e, displayConfig: t, setValue: n, t: r }) {
11517
+ function uc({ option: e, displayConfig: t, setValue: n, t: r }) {
11396
11518
  let i = e.key;
11397
11519
  return /* @__PURE__ */ Q("div", {
11398
11520
  className: "dc:space-y-1",
@@ -11410,7 +11532,7 @@ function ic({ option: e, displayConfig: t, setValue: n, t: r }) {
11410
11532
  children: r(e.label)
11411
11533
  }, e.value))
11412
11534
  }),
11413
- /* @__PURE__ */ Z($s, {
11535
+ /* @__PURE__ */ Z(ac, {
11414
11536
  description: e.description,
11415
11537
  docsUrl: e.docsUrl,
11416
11538
  docsLabel: e.docsLabel,
@@ -11419,7 +11541,7 @@ function ic({ option: e, displayConfig: t, setValue: n, t: r }) {
11419
11541
  ]
11420
11542
  });
11421
11543
  }
11422
- function ac({ option: e, displayConfig: t, setValue: n, t: r }) {
11544
+ function dc({ option: e, displayConfig: t, setValue: n, t: r }) {
11423
11545
  let i = t[e.key] ?? e.defaultValue ?? "#8884d8";
11424
11546
  return /* @__PURE__ */ Q("div", {
11425
11547
  className: "dc:space-y-1",
@@ -11443,7 +11565,7 @@ function ac({ option: e, displayConfig: t, setValue: n, t: r }) {
11443
11565
  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"
11444
11566
  })]
11445
11567
  }),
11446
- /* @__PURE__ */ Z($s, {
11568
+ /* @__PURE__ */ Z(ac, {
11447
11569
  description: e.description,
11448
11570
  docsUrl: e.docsUrl,
11449
11571
  docsLabel: e.docsLabel,
@@ -11452,7 +11574,7 @@ function ac({ option: e, displayConfig: t, setValue: n, t: r }) {
11452
11574
  ]
11453
11575
  });
11454
11576
  }
11455
- function oc({ option: e, displayConfig: t, setValue: n, t: r }) {
11577
+ function fc({ option: e, displayConfig: t, setValue: n, t: r }) {
11456
11578
  let i = e.key;
11457
11579
  return /* @__PURE__ */ Z(ge, {
11458
11580
  axisLabel: r(e.label),
@@ -11460,9 +11582,9 @@ function oc({ option: e, displayConfig: t, setValue: n, t: r }) {
11460
11582
  onChange: (e) => n(Object.keys(e).length > 0 ? e : void 0)
11461
11583
  });
11462
11584
  }
11463
- function sc({ option: e, displayConfig: t, setValue: n, t: r }) {
11585
+ function pc({ option: e, displayConfig: t, setValue: n, t: r }) {
11464
11586
  let i = e.key;
11465
- return /* @__PURE__ */ Z(Es, {
11587
+ return /* @__PURE__ */ Z(Ms, {
11466
11588
  label: r(e.label),
11467
11589
  value: t[i] ?? [],
11468
11590
  onChange: (e) => n(e.length > 0 ? e : void 0),
@@ -11470,7 +11592,7 @@ function sc({ option: e, displayConfig: t, setValue: n, t: r }) {
11470
11592
  description: e.description ? r(e.description) : void 0
11471
11593
  });
11472
11594
  }
11473
- function cc({ option: e, displayConfig: t, setValue: n, t: r }) {
11595
+ function mc({ option: e, displayConfig: t, setValue: n, t: r }) {
11474
11596
  let i = e.key;
11475
11597
  return /* @__PURE__ */ Q("div", {
11476
11598
  className: "dc:space-y-1",
@@ -11488,7 +11610,7 @@ function cc({ option: e, displayConfig: t, setValue: n, t: r }) {
11488
11610
  children: r(a.label)
11489
11611
  }, a.value))
11490
11612
  }),
11491
- /* @__PURE__ */ Z($s, {
11613
+ /* @__PURE__ */ Z(ac, {
11492
11614
  description: e.description,
11493
11615
  docsUrl: e.docsUrl,
11494
11616
  docsLabel: e.docsLabel,
@@ -11497,7 +11619,7 @@ function cc({ option: e, displayConfig: t, setValue: n, t: r }) {
11497
11619
  ]
11498
11620
  });
11499
11621
  }
11500
- function lc({ option: e, displayConfig: t, setValue: n, t: r }) {
11622
+ function hc({ option: e, displayConfig: t, setValue: n, t: r }) {
11501
11623
  let i = t[e.key], a = H(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) => {
11502
11624
  let t = [...e].sort((e, t) => e.value - t.value);
11503
11625
  n(t.length > 0 ? t : void 0);
@@ -11550,13 +11672,13 @@ function lc({ option: e, displayConfig: t, setValue: n, t: r }) {
11550
11672
  let e = a[a.length - 1], t = e ? Math.min(1, (e.value + 1) / 2) : 0;
11551
11673
  d([...a, {
11552
11674
  value: t,
11553
- color: Qs
11675
+ color: ic
11554
11676
  }]);
11555
11677
  },
11556
11678
  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",
11557
11679
  children: r("chart.gauge.thresholds.add")
11558
11680
  }),
11559
- /* @__PURE__ */ Z($s, {
11681
+ /* @__PURE__ */ Z(ac, {
11560
11682
  description: e.description,
11561
11683
  docsUrl: e.docsUrl,
11562
11684
  docsLabel: e.docsLabel,
@@ -11565,7 +11687,7 @@ function lc({ option: e, displayConfig: t, setValue: n, t: r }) {
11565
11687
  ]
11566
11688
  });
11567
11689
  }
11568
- function uc({ option: e, displayConfig: t, chartConfig: n, colorPalette: r, setValue: i, t: a }) {
11690
+ function gc({ option: e, displayConfig: t, chartConfig: n, colorPalette: r, setValue: i, t: a }) {
11569
11691
  let o = e.key;
11570
11692
  return /* @__PURE__ */ Q("div", {
11571
11693
  className: "dc:space-y-1",
@@ -11574,14 +11696,14 @@ function uc({ option: e, displayConfig: t, chartConfig: n, colorPalette: r, setV
11574
11696
  className: "dc:text-sm text-dc-text-secondary",
11575
11697
  children: a(e.label)
11576
11698
  }),
11577
- /* @__PURE__ */ Z(As, {
11699
+ /* @__PURE__ */ Z(Is, {
11578
11700
  value: t[o] ?? {},
11579
11701
  chartConfig: n,
11580
11702
  colorPalette: r,
11581
11703
  onChange: i,
11582
11704
  t: a
11583
11705
  }),
11584
- /* @__PURE__ */ Z($s, {
11706
+ /* @__PURE__ */ Z(ac, {
11585
11707
  description: e.description,
11586
11708
  docsUrl: e.docsUrl,
11587
11709
  docsLabel: e.docsLabel,
@@ -11590,7 +11712,7 @@ function uc({ option: e, displayConfig: t, chartConfig: n, colorPalette: r, setV
11590
11712
  ]
11591
11713
  });
11592
11714
  }
11593
- function dc({ option: e, displayConfig: t, setValue: n, t: r }) {
11715
+ function _c({ option: e, displayConfig: t, setValue: n, t: r }) {
11594
11716
  let i = t[e.key] ?? { urlTemplate: "" }, a = (e) => n(e.urlTemplate.trim() ? e : void 0);
11595
11717
  return /* @__PURE__ */ Q("div", {
11596
11718
  className: "dc:space-y-1",
@@ -11622,7 +11744,7 @@ function dc({ option: e, displayConfig: t, setValue: n, t: r }) {
11622
11744
  children: r(`chart.recordsTable.rowLink.target.${e}`)
11623
11745
  }, e))
11624
11746
  }),
11625
- /* @__PURE__ */ Z($s, {
11747
+ /* @__PURE__ */ Z(ac, {
11626
11748
  description: e.description,
11627
11749
  docsUrl: e.docsUrl,
11628
11750
  docsLabel: e.docsLabel,
@@ -11631,25 +11753,25 @@ function dc({ option: e, displayConfig: t, setValue: n, t: r }) {
11631
11753
  ]
11632
11754
  });
11633
11755
  }
11634
- var fc = {
11635
- boolean: ec,
11636
- string: tc,
11637
- paletteColor: nc,
11638
- number: rc,
11639
- select: ic,
11640
- color: ac,
11641
- axisFormat: oc,
11642
- stringArray: sc,
11643
- buttonGroup: cc,
11644
- thresholdBands: lc,
11645
- columnFormats: uc,
11646
- rowLink: dc
11756
+ var vc = {
11757
+ boolean: oc,
11758
+ string: sc,
11759
+ paletteColor: cc,
11760
+ number: lc,
11761
+ select: uc,
11762
+ color: dc,
11763
+ axisFormat: fc,
11764
+ stringArray: pc,
11765
+ buttonGroup: mc,
11766
+ thresholdBands: hc,
11767
+ columnFormats: gc,
11768
+ rowLink: _c
11647
11769
  };
11648
- function pc({ option: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i }) {
11770
+ function yc({ option: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i }) {
11649
11771
  let { t: a } = B(), o = (n) => i({
11650
11772
  ...t,
11651
11773
  [e.key]: n
11652
- }), s = fc[e.type];
11774
+ }), s = vc[e.type];
11653
11775
  return s ? /* @__PURE__ */ Z(s, {
11654
11776
  option: e,
11655
11777
  displayConfig: t,
@@ -11661,7 +11783,7 @@ function pc({ option: e, displayConfig: t, colorPalette: n, chartConfig: r, onDi
11661
11783
  }
11662
11784
  //#endregion
11663
11785
  //#region src/client/components/AnalysisBuilder/LegacyBooleanOptions.tsx
11664
- var mc = [
11786
+ var bc = [
11665
11787
  {
11666
11788
  key: "showLegend",
11667
11789
  labelKey: "display.showLegend",
@@ -11692,9 +11814,9 @@ var mc = [
11692
11814
  labelKey: "display.hideHeader",
11693
11815
  defaultChecked: !1
11694
11816
  }
11695
- ], hc = W(function({ displayOptions: e, displayConfig: t, onDisplayConfigChange: n }) {
11817
+ ], xc = W(function({ displayOptions: e, displayConfig: t, onDisplayConfigChange: n }) {
11696
11818
  let { t: r } = B();
11697
- return !e || e.length === 0 ? null : /* @__PURE__ */ Z(X, { children: mc.filter((t) => e.includes(t.key)).map((e) => /* @__PURE__ */ Q("label", {
11819
+ return !e || e.length === 0 ? null : /* @__PURE__ */ Z(X, { children: bc.filter((t) => e.includes(t.key)).map((e) => /* @__PURE__ */ Q("label", {
11698
11820
  className: "dc:flex dc:items-center dc:space-x-2",
11699
11821
  children: [/* @__PURE__ */ Z("input", {
11700
11822
  type: "checkbox",
@@ -11713,7 +11835,7 @@ var mc = [
11713
11835
  });
11714
11836
  //#endregion
11715
11837
  //#region src/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.tsx
11716
- function gc({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i, excludeKeys: a }) {
11838
+ function Sc({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i, excludeKeys: a }) {
11717
11839
  let { t: o } = B(), { config: s, loaded: c } = _(e);
11718
11840
  if (!c) return /* @__PURE__ */ Z("div", {
11719
11841
  className: "dc:text-center text-dc-text-muted dc:text-sm dc:py-4",
@@ -11727,13 +11849,13 @@ function gc({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, o
11727
11849
  children: o("display.heading")
11728
11850
  }), /* @__PURE__ */ Q("div", {
11729
11851
  className: "dc:space-y-2",
11730
- children: [/* @__PURE__ */ Z(hc, {
11852
+ children: [/* @__PURE__ */ Z(xc, {
11731
11853
  displayOptions: s.displayOptions,
11732
11854
  displayConfig: t,
11733
11855
  onDisplayConfigChange: i
11734
11856
  }), l.map((e) => /* @__PURE__ */ Z("div", {
11735
11857
  className: `dc:space-y-1 ${e.type === "axisFormat" ? "dc:mt-6 dc:pt-2" : ""}`,
11736
- children: /* @__PURE__ */ Z(pc, {
11858
+ children: /* @__PURE__ */ Z(yc, {
11737
11859
  option: e,
11738
11860
  displayConfig: t,
11739
11861
  colorPalette: n,
@@ -11749,8 +11871,8 @@ function gc({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, o
11749
11871
  }
11750
11872
  //#endregion
11751
11873
  //#region src/client/components/TextPortletModal.tsx
11752
- var _c = b("close");
11753
- function vc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, existingTitles: a = [] }) {
11874
+ var Cc = b("close");
11875
+ function wc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, existingTitles: a = [] }) {
11754
11876
  let { t: o } = B(), s = q(() => r ? j(r).analysisConfig.charts.query?.displayConfig ?? {} : {
11755
11877
  content: "",
11756
11878
  hideHeader: !0,
@@ -11846,7 +11968,7 @@ function vc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, exi
11846
11968
  }), /* @__PURE__ */ Z("button", {
11847
11969
  onClick: t,
11848
11970
  className: "dc:p-1 dc:rounded-md text-dc-text-secondary dc:hover:bg-dc-surface-hover dc:transition-colors",
11849
- children: /* @__PURE__ */ Z(_c, { className: "dc:w-5 dc:h-5" })
11971
+ children: /* @__PURE__ */ Z(Cc, { className: "dc:w-5 dc:h-5" })
11850
11972
  })]
11851
11973
  }),
11852
11974
  /* @__PURE__ */ Z("div", {
@@ -11903,7 +12025,7 @@ function vc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, exi
11903
12025
  ]
11904
12026
  }), /* @__PURE__ */ Z("div", {
11905
12027
  className: "dc:w-72 dc:shrink-0",
11906
- children: /* @__PURE__ */ Z(gc, {
12028
+ children: /* @__PURE__ */ Z(Sc, {
11907
12029
  chartType: "markdown",
11908
12030
  displayConfig: c,
11909
12031
  colorPalette: i,
@@ -11932,7 +12054,7 @@ function vc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, exi
11932
12054
  }
11933
12055
  //#endregion
11934
12056
  //#region src/client/utils/joinReachability.ts
11935
- function yc(e, t) {
12057
+ function Tc(e, t) {
11936
12058
  let n = new Set(t);
11937
12059
  if (!e?.cubes || t.length === 0) return n;
11938
12060
  let r = /* @__PURE__ */ new Map(), i = (e, t) => {
@@ -11950,14 +12072,14 @@ function yc(e, t) {
11950
12072
  }
11951
12073
  return n;
11952
12074
  }
11953
- function bc(e) {
12075
+ function Ec(e) {
11954
12076
  let t = e.indexOf(".");
11955
12077
  return t > 0 ? e.substring(0, t) : null;
11956
12078
  }
11957
- function xc(e) {
12079
+ function Dc(e) {
11958
12080
  let t = /* @__PURE__ */ new Set(), n = (e) => {
11959
12081
  if (typeof e == "string") {
11960
- let n = bc(e);
12082
+ let n = Ec(e);
11961
12083
  n && t.add(n);
11962
12084
  }
11963
12085
  }, r = (e) => {
@@ -11975,11 +12097,11 @@ function xc(e) {
11975
12097
  }
11976
12098
  return [...t];
11977
12099
  }
11978
- function Sc(e, t, n) {
12100
+ function Oc(e, t, n) {
11979
12101
  if (!e?.cubes) return [];
11980
- let r = xc(t);
12102
+ let r = Dc(t);
11981
12103
  if (r.length === 0) return [];
11982
- let i = yc(e, r), a;
12104
+ let i = Tc(e, r), a;
11983
12105
  if (n?.sameTypeAs) for (let t of e.cubes) {
11984
12106
  let e = t.dimensions?.find((e) => e.name === n.sameTypeAs);
11985
12107
  if (e) {
@@ -11995,7 +12117,7 @@ function Sc(e, t, n) {
11995
12117
  }
11996
12118
  //#endregion
11997
12119
  //#region src/client/components/PortletFilterConfigModal.tsx
11998
- function Cc({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r = [], onSave: i, portletTitle: a, schema: o = null, portlet: s = null }) {
12120
+ function kc({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r = [], onSave: i, portletTitle: a, schema: o = null, portlet: s = null }) {
11999
12121
  let { t: c } = B(), [l, u] = Y(() => Fe(r));
12000
12122
  K(() => {
12001
12123
  u((e) => {
@@ -12017,7 +12139,7 @@ function Cc({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r
12017
12139
  }, h = q(() => {
12018
12140
  let e = /* @__PURE__ */ new Map();
12019
12141
  return !o || !s || n.forEach((t) => {
12020
- t.isUniversalTime || "member" in t.filter && t.filter.member && (e.has(t.filter.member) || e.set(t.filter.member, Sc(o, s, { sameTypeAs: t.filter.member })));
12142
+ 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 })));
12021
12143
  }), e;
12022
12144
  }, [
12023
12145
  o,
@@ -12196,9 +12318,9 @@ function Cc({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r
12196
12318
  }
12197
12319
  //#endregion
12198
12320
  //#region src/client/components/ConfirmModal.tsx
12199
- var wc = ({ isOpen: e, onClose: t, onConfirm: n, title: r, message: i, confirmText: a, cancelText: o, confirmVariant: s = "primary", isLoading: c = !1 }) => {
12321
+ var Ac = ({ isOpen: e, onClose: t, onConfirm: n, title: r, message: i, confirmText: a, cancelText: o, confirmVariant: s = "primary", isLoading: c = !1 }) => {
12200
12322
  let { t: l } = B(), u = r ?? l("common.actions.confirm"), d = a ?? l("common.actions.confirm"), f = o ?? l("common.actions.cancel");
12201
- return /* @__PURE__ */ Z(ss, {
12323
+ return /* @__PURE__ */ Z(ps, {
12202
12324
  isOpen: e,
12203
12325
  onClose: t,
12204
12326
  title: u,
@@ -12255,7 +12377,7 @@ var wc = ({ isOpen: e, onClose: t, onConfirm: n, title: r, message: i, confirmTe
12255
12377
  };
12256
12378
  //#endregion
12257
12379
  //#region src/client/components/dashboard/DashboardImportModals.tsx
12258
- function Tc(e, t) {
12380
+ function jc(e, t) {
12259
12381
  switch (e.code) {
12260
12382
  case "invalidJson": return t("dashboard.import.error.invalidJson");
12261
12383
  case "unknownFormat": return t("dashboard.import.error.unknownFormat");
@@ -12266,15 +12388,15 @@ function Tc(e, t) {
12266
12388
  });
12267
12389
  }
12268
12390
  }
12269
- function Ec(e, t) {
12391
+ function Mc(e, t) {
12270
12392
  if (e.code === "unknownFilterMapping") return t("dashboard.import.warning.unknownFilterMapping", {
12271
12393
  portlet: e.portletTitle || e.portletId,
12272
12394
  filterId: e.filterId
12273
12395
  });
12274
12396
  }
12275
- function Dc() {
12397
+ function Nc() {
12276
12398
  let { t: e } = B(), { importExport: t } = $r(), { pendingImport: n, failedImport: r, isImporting: i, canRename: a } = t, o = !!(a && n?.name);
12277
- return /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(wc, {
12399
+ return /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(Ac, {
12278
12400
  isOpen: n !== null,
12279
12401
  onClose: t.cancelImport,
12280
12402
  onConfirm: t.confirmImport,
@@ -12297,12 +12419,12 @@ function Dc() {
12297
12419
  children: e("dashboard.import.warningsTitle")
12298
12420
  }), /* @__PURE__ */ Z("ul", {
12299
12421
  className: "dc:list-disc dc:pl-5 dc:mt-1 dc:space-y-1",
12300
- children: n.warnings.map((t, n) => /* @__PURE__ */ Z("li", { children: Ec(t, e) }, n))
12422
+ children: n.warnings.map((t, n) => /* @__PURE__ */ Z("li", { children: Mc(t, e) }, n))
12301
12423
  })]
12302
12424
  })
12303
12425
  ]
12304
12426
  })
12305
- }), /* @__PURE__ */ Z(ss, {
12427
+ }), /* @__PURE__ */ Z(ps, {
12306
12428
  isOpen: r !== null,
12307
12429
  onClose: t.dismissImportError,
12308
12430
  title: e("dashboard.import.errorTitle"),
@@ -12317,17 +12439,17 @@ function Dc() {
12317
12439
  className: "text-dc-text-secondary dc:space-y-2",
12318
12440
  children: [/* @__PURE__ */ Z("p", { children: e("dashboard.import.errorIntro", { fileName: r.fileName }) }), /* @__PURE__ */ Z("ul", {
12319
12441
  className: "dc:list-disc dc:pl-5 dc:space-y-1 dc:text-sm",
12320
- children: r.errors.map((t, n) => /* @__PURE__ */ Z("li", { children: Tc(t, e) }, n))
12442
+ children: r.errors.map((t, n) => /* @__PURE__ */ Z("li", { children: jc(t, e) }, n))
12321
12443
  })]
12322
12444
  })
12323
12445
  })] });
12324
12446
  }
12325
12447
  //#endregion
12326
12448
  //#region src/client/components/dashboard/DashboardModals.tsx
12327
- function Oc() {
12449
+ function Pc() {
12328
12450
  let { t: e } = B(), { 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 } = $r(), 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;
12329
12451
  return /* @__PURE__ */ Q(X, { children: [
12330
- /* @__PURE__ */ Z(Ts, {
12452
+ /* @__PURE__ */ Z(js, {
12331
12453
  isOpen: a,
12332
12454
  onClose: h.closePortletModal,
12333
12455
  onSave: p,
@@ -12337,7 +12459,7 @@ function Oc() {
12337
12459
  colorPalette: n,
12338
12460
  dashboardFilters: r
12339
12461
  }),
12340
- /* @__PURE__ */ Z(vc, {
12462
+ /* @__PURE__ */ Z(wc, {
12341
12463
  isOpen: s,
12342
12464
  onClose: h.closeTextModal,
12343
12465
  onSave: p,
@@ -12345,7 +12467,7 @@ function Oc() {
12345
12467
  colorPalette: n,
12346
12468
  existingTitles: t.portlets.map((e) => e.title)
12347
12469
  }),
12348
- /* @__PURE__ */ Z(Cc, {
12470
+ /* @__PURE__ */ Z(kc, {
12349
12471
  isOpen: l,
12350
12472
  onClose: h.closeFilterConfig,
12351
12473
  dashboardFilters: r || [],
@@ -12355,7 +12477,7 @@ function Oc() {
12355
12477
  schema: i || null,
12356
12478
  portlet: u
12357
12479
  }),
12358
- /* @__PURE__ */ Z(wc, {
12480
+ /* @__PURE__ */ Z(Ac, {
12359
12481
  isOpen: !!f,
12360
12482
  onClose: h.closeDeleteConfirm,
12361
12483
  onConfirm: h.confirmDelete,
@@ -12364,7 +12486,7 @@ function Oc() {
12364
12486
  confirmText: e("common.actions.delete"),
12365
12487
  confirmVariant: "danger"
12366
12488
  }),
12367
- /* @__PURE__ */ Z(wc, {
12489
+ /* @__PURE__ */ Z(Ac, {
12368
12490
  isOpen: !!d,
12369
12491
  onClose: h.closeDeleteConfirm,
12370
12492
  onConfirm: h.confirmDelete,
@@ -12378,26 +12500,26 @@ function Oc() {
12378
12500
  confirmText: e("common.actions.delete"),
12379
12501
  confirmVariant: "danger"
12380
12502
  }),
12381
- /* @__PURE__ */ Z(Dc, {})
12503
+ /* @__PURE__ */ Z(Nc, {})
12382
12504
  ] });
12383
12505
  }
12384
12506
  //#endregion
12385
12507
  //#region src/client/components/DashboardGrid.tsx
12386
- function kc(e) {
12508
+ function Fc(e) {
12387
12509
  let t = !e.config.portlets || e.config.portlets.length === 0;
12388
12510
  return /* @__PURE__ */ Q(oi, {
12389
12511
  ...e,
12390
12512
  children: [
12391
12513
  !t && !e.hideToolbar && /* @__PURE__ */ Z(Bi, {}),
12392
- !t && /* @__PURE__ */ Z(Zo, {}),
12393
- /* @__PURE__ */ Z(os, {}),
12394
- /* @__PURE__ */ Z(Oc, {})
12514
+ !t && /* @__PURE__ */ Z(rs, {}),
12515
+ /* @__PURE__ */ Z(fs, {}),
12516
+ /* @__PURE__ */ Z(Pc, {})
12395
12517
  ]
12396
12518
  });
12397
12519
  }
12398
12520
  //#endregion
12399
12521
  //#region src/client/components/AnalyticsDashboard.tsx
12400
- function Ac({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent: r, onConfigChange: i, onSave: a, onSaveThumbnail: o, onDirtyStateChange: s, dashboardMeta: c, onDashboardMetaChange: u }) {
12522
+ function Ic({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent: r, onConfigChange: i, onSave: a, onSaveThumbnail: o, onDirtyStateChange: s, dashboardMeta: c, onDashboardMetaChange: u }) {
12401
12523
  let { meta: d } = de(), { dashboardModes: f } = l(), { handleConfigChange: p, handleSave: m } = se({
12402
12524
  initialConfig: e,
12403
12525
  onConfigChange: i,
@@ -12430,7 +12552,7 @@ function Ac({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
12430
12552
  }, [e.colorPalette]);
12431
12553
  return /* @__PURE__ */ Z("div", {
12432
12554
  className: "dc:w-full",
12433
- children: /* @__PURE__ */ Z(kc, {
12555
+ children: /* @__PURE__ */ Z(Fc, {
12434
12556
  config: e,
12435
12557
  editable: t,
12436
12558
  dashboardFilters: h,
@@ -12449,7 +12571,7 @@ function Ac({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
12449
12571
  }
12450
12572
  //#endregion
12451
12573
  //#region src/client/components/PortletContainer.tsx
12452
- function jc({ portlet: e, editable: t = !1, onEdit: n, onDelete: r, onRefresh: i }) {
12574
+ function Lc({ portlet: e, editable: t = !1, onEdit: n, onDelete: r, onRefresh: i }) {
12453
12575
  let { analysisConfig: a } = q(() => j(e), [e]), o = a.charts[a.analysisType], s = q(() => JSON.stringify(a.query), [a.query]), c = o?.chartType || "line", l = o?.chartConfig, u = o?.displayConfig, [d, f] = Y(null), p = G((e) => {
12454
12576
  f(e);
12455
12577
  }, []);
@@ -12546,7 +12668,7 @@ function jc({ portlet: e, editable: t = !1, onEdit: n, onDelete: r, onRefresh: i
12546
12668
  }
12547
12669
  //#endregion
12548
12670
  //#region src/client/components/DashboardEditModal.tsx
12549
- function Mc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initialName: a = "", initialDescription: o = "" }) {
12671
+ function Rc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initialName: a = "", initialDescription: o = "" }) {
12550
12672
  let { t: s } = B(), [c, l] = Y(""), [u, d] = Y(""), [f, p] = Y(!1);
12551
12673
  K(() => {
12552
12674
  e && (l(a), d(o));
@@ -12582,7 +12704,7 @@ function Mc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initial
12582
12704
  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",
12583
12705
  children: f ? "Saving..." : i
12584
12706
  })] });
12585
- return /* @__PURE__ */ Z(ss, {
12707
+ return /* @__PURE__ */ Z(ps, {
12586
12708
  isOpen: e,
12587
12709
  onClose: h,
12588
12710
  title: r,
@@ -12621,6 +12743,6 @@ function Mc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initial
12621
12743
  });
12622
12744
  }
12623
12745
  //#endregion
12624
- export { Ut as $, Kr as A, Tn as B, Vi as C, ci as D, Si as E, gn as F, xn as G, Dn as H, fn as I, _n as J, wn as K, An as L, Bn as M, Mn as N, oi as O, jn as P, Jt as Q, Cn as R, $i as S, Bi as T, Sn as U, bn as V, En as W, yn as X, vn as Y, cn as Z, Da as _, Oc as a, ke as at, Ui as b, pc as c, _s as d, Pt as et, ps as f, Zo as g, os as h, kc as i, Pe as it, Vn as j, $r as k, Ts as l, ss as m, jc as n, ze as nt, wc as o, Ae as ot, ls as p, kn as q, Ac as r, je as rt, gc as s, Mc as t, gt as tt, xs as u, ga as v, Hi as w, Wi as x, ha as y, On as z };
12746
+ export { yn as $, ci as A, An as B, Qi as C, Hi as D, Vi as E, Bn as F, Dn as G, On as H, Mn as I, xn as J, Sn as K, jn as L, $r as M, Kr as N, Bi as O, Vn as P, vn as Q, gn as R, la as S, Xi as T, Tn as U, Cn as V, bn as W, kn as X, wn as Y, _n as Z, Na as _, Pc as a, ze as at, $i as b, yc as c, ke as ct, Cs as d, cn as et, ys as f, rs as g, fs as h, Fc as i, gt as it, oi as j, Si as k, js as l, Ae as lt, ps as m, Lc as n, Ut as nt, Ac as o, je as ot, hs as p, En as q, Ic as r, Pt as rt, Sc as s, Pe as st, Rc as t, Jt as tt, Ds as u, Ea as v, Zi as w, ea as x, Ta as y, fn as z };
12625
12747
 
12626
- //# sourceMappingURL=DashboardEditModal-DfaeSZGf.js.map
12748
+ //# sourceMappingURL=DashboardEditModal-CiN77tQN.js.map