drizzle-cube 0.7.1 → 0.8.1

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 (363) hide show
  1. package/dist/adapters/ActivityGridChart.config-DXUUgx0N.cjs +1 -0
  2. package/dist/adapters/ActivityGridChart.config-Dyozu3VW.js +2 -0
  3. package/dist/adapters/AreaChart.config-Di5odBXp.cjs +1 -0
  4. package/dist/adapters/AreaChart.config-KEaXP_4K.js +2 -0
  5. package/dist/adapters/BarChart.config-B-hBHykR.cjs +1 -0
  6. package/dist/adapters/BarChart.config-C5sqbn0A.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-B1R4Br7L.js +2 -0
  8. package/dist/adapters/BoxPlotChart.config-C82Fhd3c.cjs +1 -0
  9. package/dist/adapters/BubbleChart.config-CoBxmmfp.js +2 -0
  10. package/dist/adapters/BubbleChart.config-DfOnNjL-.cjs +1 -0
  11. package/dist/adapters/CandlestickChart.config-C5ggV_3j.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-ZaJpWVuL.js +2 -0
  13. package/dist/adapters/DataTable.config-Cx2_ACdY.cjs +1 -0
  14. package/dist/adapters/DataTable.config-DkAgD-iz.js +2 -0
  15. package/dist/adapters/FunnelChart.config-CvzcECUB.js +2 -0
  16. package/dist/adapters/FunnelChart.config-DVH7IFnb.cjs +1 -0
  17. package/dist/adapters/GaugeChart.config-Csx8rt8o.cjs +1 -0
  18. package/dist/adapters/GaugeChart.config-DEmrNgMa.js +2 -0
  19. package/dist/adapters/HeatMapChart.config-BfD_dpP7.js +2 -0
  20. package/dist/adapters/HeatMapChart.config-D_jlyPJL.cjs +1 -0
  21. package/dist/adapters/KpiDelta.config-CVBdUL_n.cjs +1 -0
  22. package/dist/adapters/KpiDelta.config-D4dCXOxl.js +2 -0
  23. package/dist/adapters/KpiNumber.config-BK5pgIKz.cjs +1 -0
  24. package/dist/adapters/KpiNumber.config-D6XqjZrm.js +2 -0
  25. package/dist/adapters/KpiText.config-ChphMwG5.js +2 -0
  26. package/dist/adapters/KpiText.config-fO1wc6FH.cjs +1 -0
  27. package/dist/adapters/LineChart.config-CXJrgz1s.js +2 -0
  28. package/dist/adapters/LineChart.config-Cg_h-SiJ.cjs +1 -0
  29. package/dist/adapters/MarkdownChart.config-ByPjX-4O.cjs +1 -0
  30. package/dist/adapters/MarkdownChart.config-Df2yY9AT.js +2 -0
  31. package/dist/adapters/MeasureProfileChart.config-BBWGIteF.cjs +1 -0
  32. package/dist/adapters/MeasureProfileChart.config-C9OFbN9Z.js +2 -0
  33. package/dist/adapters/PieChart.config-C6jJj6xm.js +2 -0
  34. package/dist/adapters/PieChart.config-CmCw_8eN.cjs +1 -0
  35. package/dist/adapters/ProportionBarChart.config-B9NEyFEe.js +2 -0
  36. package/dist/adapters/ProportionBarChart.config-C3GAVPWn.cjs +1 -0
  37. package/dist/adapters/RadarChart.config-5AMwEqUJ.cjs +1 -0
  38. package/dist/adapters/RadarChart.config-Ct_b7IM5.js +2 -0
  39. package/dist/adapters/RadialBarChart.config-Bp-Sl0cm.js +2 -0
  40. package/dist/adapters/RadialBarChart.config-D14yoexI.cjs +1 -0
  41. package/dist/adapters/RecordsTable.config-D2-qmG06.cjs +1 -0
  42. package/dist/adapters/RecordsTable.config-DIwoqZCU.js +2 -0
  43. package/dist/adapters/RetentionCombinedChart.config-BWHipi5M.cjs +1 -0
  44. package/dist/adapters/RetentionCombinedChart.config-D40UgTcl.js +2 -0
  45. package/dist/adapters/RetentionHeatmap.config-GlnSLrjn.js +2 -0
  46. package/dist/adapters/RetentionHeatmap.config-MlhZf26c.cjs +1 -0
  47. package/dist/adapters/SankeyChart.config-Bf1_NHiv.js +2 -0
  48. package/dist/adapters/SankeyChart.config-BoYf6BFE.cjs +1 -0
  49. package/dist/adapters/ScatterChart.config-CV2rdGJp.js +2 -0
  50. package/dist/adapters/ScatterChart.config-DywduGF3.cjs +1 -0
  51. package/dist/adapters/SunburstChart.config-CrqiE1UZ.js +2 -0
  52. package/dist/adapters/SunburstChart.config-D5tbF_GJ.cjs +1 -0
  53. package/dist/adapters/TreeMapChart.config-BJ8HnZU0.cjs +1 -0
  54. package/dist/adapters/TreeMapChart.config-DxgIqIIj.js +2 -0
  55. package/dist/adapters/WaterfallChart.config-Cns8fLFu.js +2 -0
  56. package/dist/adapters/WaterfallChart.config-D_kdL9SN.cjs +1 -0
  57. package/dist/adapters/compiler-BxZHh0UD.cjs +166 -0
  58. package/dist/adapters/{compiler-DiYxWAKg.js → compiler-CBGD_4Et.js} +1389 -1923
  59. package/dist/adapters/core/http-port.d.ts +34 -7
  60. package/dist/adapters/core/index.cjs +1 -1
  61. package/dist/adapters/core/index.d.ts +1 -0
  62. package/dist/adapters/core/index.js +2 -2
  63. package/dist/adapters/core/rest-handlers.d.ts +1 -1
  64. package/dist/adapters/core-CIGuwGuI.cjs +1 -0
  65. package/dist/adapters/{core-BOPRmxPc.js → core-DAAnqPyN.js} +81 -65
  66. package/dist/adapters/express/index.cjs +2 -2
  67. package/dist/adapters/express/index.d.ts +11 -2
  68. package/dist/adapters/express/index.js +14 -14
  69. package/dist/adapters/fastify/index.cjs +2 -2
  70. package/dist/adapters/fastify/index.d.ts +11 -2
  71. package/dist/adapters/fastify/index.js +29 -29
  72. package/dist/{server/google-eKAc20al.js → adapters/google-DRY7jnOh.js} +46 -28
  73. package/dist/adapters/{google-BhvizbFR.cjs → google-PsZzwedr.cjs} +2 -2
  74. package/dist/adapters/handler-BcYTw6zB.cjs +25 -0
  75. package/dist/adapters/{handler-DGud-C-w.js → handler-eA0VJDHj.js} +363 -266
  76. package/dist/adapters/hono/index.cjs +1 -1
  77. package/dist/adapters/hono/index.js +9 -9
  78. package/dist/adapters/mcp-tools-handlers.d.ts +10 -3
  79. package/dist/adapters/mcp-tools.cjs +1 -1
  80. package/dist/adapters/mcp-tools.js +18 -20
  81. package/dist/adapters/mcp-transport-BpG44Fvn.js +730 -0
  82. package/dist/adapters/mcp-transport-CDxZXpc-.cjs +42 -0
  83. package/dist/adapters/mcp-transport.d.ts +13 -2
  84. package/dist/adapters/nextjs/index.cjs +1 -1
  85. package/dist/adapters/nextjs/index.d.ts +5 -2
  86. package/dist/adapters/nextjs/index.js +32 -32
  87. package/dist/adapters/{openai-Crp3X_zg.js → openai-BZ48ioYp.js} +1 -1
  88. package/dist/adapters/{openai-CmdN7Sj1.cjs → openai-Bw1j-OiP.cjs} +1 -1
  89. package/dist/adapters/{openai-Dwt9bxOE.cjs → openai-CLjyL5_J.cjs} +2 -2
  90. package/dist/adapters/{openai-CGJM6Qun.js → openai-CYYjUG_3.js} +4 -4
  91. package/dist/adapters/{utils-DboNUT3A.js → utils-BagURNRb.js} +1963 -1135
  92. package/dist/adapters/utils-BiKIg2tk.cjs +128 -0
  93. package/dist/adapters/utils.cjs +1 -1
  94. package/dist/adapters/utils.d.ts +19 -5
  95. package/dist/adapters/utils.js +1 -1
  96. package/dist/cjs/adapters/core/http-port.d.ts +34 -7
  97. package/dist/cjs/adapters/core/index.d.ts +1 -0
  98. package/dist/cjs/adapters/core/rest-handlers.d.ts +1 -1
  99. package/dist/cjs/adapters/express/index.d.ts +11 -2
  100. package/dist/cjs/adapters/fastify/index.d.ts +11 -2
  101. package/dist/cjs/adapters/mcp-tools-handlers.d.ts +10 -3
  102. package/dist/cjs/adapters/mcp-transport.d.ts +13 -2
  103. package/dist/cjs/adapters/nextjs/index.d.ts +5 -2
  104. package/dist/cjs/adapters/utils.d.ts +19 -5
  105. package/dist/cjs/client/charts/chartConfigRegistry.d.ts +7 -0
  106. package/dist/cjs/client/charts/chartConfigs.d.ts +17 -1
  107. package/dist/cjs/client/client/CubeClient.d.ts +11 -1
  108. package/dist/cjs/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +4 -2
  109. package/dist/cjs/client/components/AnalysisBuilder/ColumnFormatsEditor.d.ts +10 -0
  110. package/dist/cjs/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +3 -2
  111. package/dist/cjs/client/components/AnalysisBuilder/utils/queryUtils.d.ts +7 -1
  112. package/dist/cjs/client/components/analyticsPortlet/PortletChart.d.ts +2 -1
  113. package/dist/cjs/client/components/analyticsPortlet/PortletChartView.d.ts +4 -1
  114. package/dist/cjs/client/components/analyticsPortlet/usePortletDeadMembers.d.ts +24 -0
  115. package/dist/cjs/client/components/analyticsPortlet/usePortletPagination.d.ts +21 -0
  116. package/dist/cjs/client/components/charts/RecordsTable.config.d.ts +10 -0
  117. package/dist/cjs/client/components/charts/RecordsTable.d.ts +4 -0
  118. package/dist/cjs/client/components/charts/recordsTableHooks.d.ts +68 -0
  119. package/dist/cjs/client/icons/types.d.ts +1 -0
  120. package/dist/cjs/client/index.d.ts +2 -2
  121. package/dist/cjs/client/types.d.ts +92 -1
  122. package/dist/cjs/client/utils/recordsTableUtils.d.ts +71 -0
  123. package/dist/cjs/client/utils/rowLinkUtils.d.ts +35 -0
  124. package/dist/cjs/server/adapters/base-adapter.d.ts +46 -0
  125. package/dist/cjs/server/adapters/databend-adapter.d.ts +5 -0
  126. package/dist/cjs/server/adapters/duckdb-adapter.d.ts +5 -0
  127. package/dist/cjs/server/adapters/mysql-adapter.d.ts +14 -0
  128. package/dist/cjs/server/adapters/postgres-adapter.d.ts +15 -0
  129. package/dist/cjs/server/adapters/snowflake-adapter.d.ts +6 -0
  130. package/dist/cjs/server/adapters/sqlite-adapter.d.ts +21 -0
  131. package/dist/cjs/server/agent/chart-validation.d.ts +1 -1
  132. package/dist/cjs/server/ai/chart-schema.d.ts +117 -0
  133. package/dist/cjs/server/ai/discovery-helpers.d.ts +14 -0
  134. package/dist/cjs/server/ai/discovery.d.ts +6 -0
  135. package/dist/cjs/server/ai/query-schema.d.ts +1 -1
  136. package/dist/cjs/server/attribute-dimensions.d.ts +102 -0
  137. package/dist/cjs/server/builders/group-by-builder.d.ts +15 -0
  138. package/dist/cjs/server/cache-utils.d.ts +5 -1
  139. package/dist/cjs/server/compiler-metadata.d.ts +24 -3
  140. package/dist/cjs/server/compiler.d.ts +159 -13
  141. package/dist/cjs/server/execution/query-result-cache.d.ts +1 -1
  142. package/dist/cjs/server/executor.d.ts +15 -0
  143. package/dist/cjs/server/index.d.ts +13 -3
  144. package/dist/cjs/server/query-handlers.d.ts +2 -1
  145. package/dist/cjs/server/query-validator.d.ts +36 -4
  146. package/dist/cjs/server/types/core.d.ts +13 -0
  147. package/dist/cjs/server/types/cube.d.ts +39 -2
  148. package/dist/cjs/server/types/query.d.ts +8 -0
  149. package/dist/cli/index.cjs +130 -52
  150. package/dist/client/charts/chartConfigRegistry.d.ts +7 -0
  151. package/dist/client/charts/chartConfigs.d.ts +17 -1
  152. package/dist/client/charts.js +13 -13
  153. package/dist/client/chunks/{DashboardEditModal-BOfLdTgV.js → DashboardEditModal-_ZDMwaGX.js} +1653 -1188
  154. package/dist/client/chunks/DashboardEditModal-_ZDMwaGX.js.map +1 -0
  155. package/dist/client/chunks/{ProportionBarChart-DwoXU5VP.js → ProportionBarChart-qfpAWhIg.js} +3 -3
  156. package/dist/client/chunks/{ProportionBarChart-DwoXU5VP.js.map → ProportionBarChart-qfpAWhIg.js.map} +1 -1
  157. package/dist/client/chunks/RecordsTable-KmJy94xN.js +556 -0
  158. package/dist/client/chunks/RecordsTable-KmJy94xN.js.map +1 -0
  159. package/dist/client/chunks/{RetentionCombinedChart-BqlSV7yF.js → RetentionCombinedChart-C7X6aj97.js} +3 -3
  160. package/dist/client/chunks/{RetentionCombinedChart-BqlSV7yF.js.map → RetentionCombinedChart-C7X6aj97.js.map} +1 -1
  161. package/dist/client/chunks/{RetentionHeatmap-VdVkBg8Q.js → RetentionHeatmap-PpRpiqR_.js} +2 -2
  162. package/dist/client/chunks/{RetentionHeatmap-VdVkBg8Q.js.map → RetentionHeatmap-PpRpiqR_.js.map} +1 -1
  163. package/dist/client/chunks/{analysis-builder-DXw60SEs.js → analysis-builder-DaqyOjLX.js} +169 -168
  164. package/dist/client/chunks/{analysis-builder-DXw60SEs.js.map → analysis-builder-DaqyOjLX.js.map} +1 -1
  165. package/dist/client/chunks/{analysis-builder-shared-CEvHIlmk.js → analysis-builder-shared-ow9KAHDP.js} +965 -954
  166. package/dist/client/chunks/analysis-builder-shared-ow9KAHDP.js.map +1 -0
  167. package/dist/client/chunks/{chart-activity-grid-4jfS8khG.js → chart-activity-grid-DO82rrbW.js} +140 -84
  168. package/dist/client/chunks/chart-activity-grid-DO82rrbW.js.map +1 -0
  169. package/dist/client/chunks/{chart-area-Dol6s9no.js → chart-area-9SBeG0GM.js} +21 -21
  170. package/dist/client/chunks/{chart-area-Dol6s9no.js.map → chart-area-9SBeG0GM.js.map} +1 -1
  171. package/dist/client/chunks/{chart-bar-5_niozi2.js → chart-bar-tfgmLK2D.js} +5 -5
  172. package/dist/client/chunks/{chart-bar-5_niozi2.js.map → chart-bar-tfgmLK2D.js.map} +1 -1
  173. package/dist/client/chunks/{chart-box-plot-Dhp-VwhD.js → chart-box-plot-BuYW6j6g.js} +2 -2
  174. package/dist/client/chunks/{chart-box-plot-Dhp-VwhD.js.map → chart-box-plot-BuYW6j6g.js.map} +1 -1
  175. package/dist/client/chunks/{chart-bubble-BM2BAMSo.js → chart-bubble-BNmonWqW.js} +2 -2
  176. package/dist/client/chunks/{chart-bubble-BM2BAMSo.js.map → chart-bubble-BNmonWqW.js.map} +1 -1
  177. package/dist/client/chunks/{chart-candlestick-BNwLIBfm.js → chart-candlestick-BYeWNkKl.js} +2 -2
  178. package/dist/client/chunks/{chart-candlestick-BNwLIBfm.js.map → chart-candlestick-BYeWNkKl.js.map} +1 -1
  179. package/dist/client/chunks/{chart-data-table-DoDHQRe7.js → chart-data-table-C_oHiK6N.js} +1094 -1029
  180. package/dist/client/chunks/chart-data-table-C_oHiK6N.js.map +1 -0
  181. package/dist/client/chunks/{chart-funnel-Cd7da_sa.js → chart-funnel-B_CWC3cL.js} +2 -2
  182. package/dist/client/chunks/{chart-funnel-Cd7da_sa.js.map → chart-funnel-B_CWC3cL.js.map} +1 -1
  183. package/dist/client/chunks/{chart-gauge-DOpul-Oz.js → chart-gauge-D7VxwPnx.js} +3 -3
  184. package/dist/client/chunks/{chart-gauge-DOpul-Oz.js.map → chart-gauge-D7VxwPnx.js.map} +1 -1
  185. package/dist/client/chunks/{chart-heat-map-CeKbK655.js → chart-heat-map-q7Vf_dog.js} +3 -3
  186. package/dist/client/chunks/{chart-heat-map-CeKbK655.js.map → chart-heat-map-q7Vf_dog.js.map} +1 -1
  187. package/dist/client/chunks/{chart-kpi-delta-Dq8qUOOT.js → chart-kpi-delta-PEuA3iGs.js} +3 -3
  188. package/dist/client/chunks/{chart-kpi-delta-Dq8qUOOT.js.map → chart-kpi-delta-PEuA3iGs.js.map} +1 -1
  189. package/dist/client/chunks/{chart-kpi-number-DgiqTi9g.js → chart-kpi-number-DlxrO6Pq.js} +5 -5
  190. package/dist/client/chunks/{chart-kpi-number-DgiqTi9g.js.map → chart-kpi-number-DlxrO6Pq.js.map} +1 -1
  191. package/dist/client/chunks/{chart-kpi-text-CsZMVEnM.js → chart-kpi-text-Cx6cJu2s.js} +3 -3
  192. package/dist/client/chunks/{chart-kpi-text-CsZMVEnM.js.map → chart-kpi-text-Cx6cJu2s.js.map} +1 -1
  193. package/dist/client/chunks/{chart-line-DlwOB7C7.js → chart-line-pDe25JzB.js} +3 -3
  194. package/dist/client/chunks/{chart-line-DlwOB7C7.js.map → chart-line-pDe25JzB.js.map} +1 -1
  195. package/dist/client/chunks/{chart-markdown-DPE34SjC.js → chart-markdown-CRY15yp0.js} +2 -2
  196. package/dist/client/chunks/{chart-markdown-DPE34SjC.js.map → chart-markdown-CRY15yp0.js.map} +1 -1
  197. package/dist/client/chunks/{chart-measure-profile-BpTz1fce.js → chart-measure-profile-DyQ-vvuC.js} +3 -3
  198. package/dist/client/chunks/{chart-measure-profile-BpTz1fce.js.map → chart-measure-profile-DyQ-vvuC.js.map} +1 -1
  199. package/dist/client/chunks/{chart-pie-FGw66XAH.js → chart-pie-ZrnBycy1.js} +15 -15
  200. package/dist/client/chunks/{chart-pie-FGw66XAH.js.map → chart-pie-ZrnBycy1.js.map} +1 -1
  201. package/dist/client/chunks/{chart-radar-D-eRDoiA.js → chart-radar-BXbnYMUJ.js} +13 -13
  202. package/dist/client/chunks/{chart-radar-D-eRDoiA.js.map → chart-radar-BXbnYMUJ.js.map} +1 -1
  203. package/dist/client/chunks/{chart-radial-bar-DgtkNTs3.js → chart-radial-bar-CYxH3ryh.js} +3 -3
  204. package/dist/client/chunks/{chart-radial-bar-DgtkNTs3.js.map → chart-radial-bar-CYxH3ryh.js.map} +1 -1
  205. package/dist/client/chunks/{chart-sankey-D0hhb_EQ.js → chart-sankey-C9R_TDDh.js} +2 -2
  206. package/dist/client/chunks/{chart-sankey-D0hhb_EQ.js.map → chart-sankey-C9R_TDDh.js.map} +1 -1
  207. package/dist/client/chunks/{chart-scatter-D9EcAiMQ.js → chart-scatter-DrwRkzzl.js} +3 -3
  208. package/dist/client/chunks/{chart-scatter-D9EcAiMQ.js.map → chart-scatter-DrwRkzzl.js.map} +1 -1
  209. package/dist/client/chunks/{chart-sunburst-DCYmJ5DU.js → chart-sunburst-Bs1yqIPp.js} +3 -3
  210. package/dist/client/chunks/{chart-sunburst-DCYmJ5DU.js.map → chart-sunburst-Bs1yqIPp.js.map} +1 -1
  211. package/dist/client/chunks/{chart-tree-map-D_ACSSiB.js → chart-tree-map-BNjHhhVq.js} +3 -3
  212. package/dist/client/chunks/{chart-tree-map-D_ACSSiB.js.map → chart-tree-map-BNjHhhVq.js.map} +1 -1
  213. package/dist/client/chunks/{chart-waterfall-CVUVNa1R.js → chart-waterfall-CyoC0uLT.js} +3 -3
  214. package/dist/client/chunks/{chart-waterfall-CVUVNa1R.js.map → chart-waterfall-CyoC0uLT.js.map} +1 -1
  215. package/dist/client/chunks/charts-core-DCQ7od_L.js +190 -0
  216. package/dist/client/chunks/charts-core-DCQ7od_L.js.map +1 -0
  217. package/dist/client/chunks/charts-loader-Bya_zDIA.js +86 -0
  218. package/dist/client/chunks/charts-loader-Bya_zDIA.js.map +1 -0
  219. package/dist/client/chunks/{en-US-BE6VoG0o.js → en-US-HP6FHuNy.js} +3 -1
  220. package/dist/client/chunks/{en-US-BE6VoG0o.js.map → en-US-HP6FHuNy.js.map} +1 -1
  221. package/dist/client/chunks/{exceljs.min-DWC_b8G9.js → exceljs.min-CiByP8VQ.js} +2 -3
  222. package/dist/client/chunks/{exceljs.min-DWC_b8G9.js.map → exceljs.min-CiByP8VQ.js.map} +1 -1
  223. package/dist/client/chunks/{nl-NL-DFLVORiD.js → nl-NL-CEdoCz6Q.js} +54 -1
  224. package/dist/client/chunks/nl-NL-CEdoCz6Q.js.map +1 -0
  225. package/dist/client/chunks/{schema-visualization-C6g_LCiA.js → schema-visualization-DfXxFBIY.js} +3 -3
  226. package/dist/client/chunks/{schema-visualization-C6g_LCiA.js.map → schema-visualization-DfXxFBIY.js.map} +1 -1
  227. package/dist/client/chunks/{useDirtyStateTracking-ZfChDEd3.js → useDirtyStateTracking-BFJHiiVK.js} +15 -15
  228. package/dist/client/chunks/{useDirtyStateTracking-ZfChDEd3.js.map → useDirtyStateTracking-BFJHiiVK.js.map} +1 -1
  229. package/dist/client/chunks/{useExplainAI-im9e1rVb.js → useExplainAI-_C4WQE5I.js} +16 -16
  230. package/dist/client/chunks/{useExplainAI-im9e1rVb.js.map → useExplainAI-_C4WQE5I.js.map} +1 -1
  231. package/dist/client/chunks/{vendor-Qa1s8oSX.js → vendor-Gb3lH0cc.js} +49 -49
  232. package/dist/client/chunks/vendor-Gb3lH0cc.js.map +1 -0
  233. package/dist/client/client/CubeClient.d.ts +11 -1
  234. package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +4 -2
  235. package/dist/client/components/AnalysisBuilder/ColumnFormatsEditor.d.ts +10 -0
  236. package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +3 -2
  237. package/dist/client/components/AnalysisBuilder/utils/queryUtils.d.ts +7 -1
  238. package/dist/client/components/analyticsPortlet/PortletChart.d.ts +2 -1
  239. package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +4 -1
  240. package/dist/client/components/analyticsPortlet/usePortletDeadMembers.d.ts +24 -0
  241. package/dist/client/components/analyticsPortlet/usePortletPagination.d.ts +21 -0
  242. package/dist/client/components/charts/RecordsTable.config.d.ts +10 -0
  243. package/dist/client/components/charts/RecordsTable.d.ts +4 -0
  244. package/dist/client/components/charts/recordsTableHooks.d.ts +68 -0
  245. package/dist/client/components.js +1 -1
  246. package/dist/client/hooks.js +3 -3
  247. package/dist/client/icons/types.d.ts +1 -0
  248. package/dist/client/icons.js +2 -2
  249. package/dist/client/index.d.ts +2 -2
  250. package/dist/client/index.js +213 -213
  251. package/dist/client/providers.js +1 -1
  252. package/dist/client/schema.js +1 -1
  253. package/dist/client/styles.css +1 -1
  254. package/dist/client/types.d.ts +92 -1
  255. package/dist/client/utils/recordsTableUtils.d.ts +71 -0
  256. package/dist/client/utils/rowLinkUtils.d.ts +35 -0
  257. package/dist/client/utils.js +14 -14
  258. package/dist/client-bundle-stats.html +1 -1
  259. package/dist/mcp-app/mcp-app.html +109 -109
  260. package/dist/server/adapters/base-adapter.d.ts +46 -0
  261. package/dist/server/adapters/databend-adapter.d.ts +5 -0
  262. package/dist/server/adapters/duckdb-adapter.d.ts +5 -0
  263. package/dist/server/adapters/mysql-adapter.d.ts +14 -0
  264. package/dist/server/adapters/postgres-adapter.d.ts +15 -0
  265. package/dist/server/adapters/snowflake-adapter.d.ts +6 -0
  266. package/dist/server/adapters/sqlite-adapter.d.ts +21 -0
  267. package/dist/server/agent/chart-validation.d.ts +1 -1
  268. package/dist/server/ai/chart-schema.d.ts +117 -0
  269. package/dist/server/ai/discovery-helpers.d.ts +14 -0
  270. package/dist/server/ai/discovery.d.ts +6 -0
  271. package/dist/server/ai/query-schema.d.ts +1 -1
  272. package/dist/server/attribute-dimensions.d.ts +102 -0
  273. package/dist/server/builders/group-by-builder.d.ts +15 -0
  274. package/dist/server/cache-utils.d.ts +5 -1
  275. package/dist/server/compiler-metadata.d.ts +24 -3
  276. package/dist/server/compiler.d.ts +159 -13
  277. package/dist/server/execution/query-result-cache.d.ts +1 -1
  278. package/dist/server/executor.d.ts +15 -0
  279. package/dist/{adapters/google-eKAc20al.js → server/google-DRY7jnOh.js} +46 -28
  280. package/dist/server/{google-BhvizbFR.cjs → google-PsZzwedr.cjs} +2 -2
  281. package/dist/server/index.cjs +42 -38
  282. package/dist/server/index.d.ts +13 -3
  283. package/dist/server/index.js +2079 -1573
  284. package/dist/server/{openai-Czk1BdHa.js → openai-6uUf7h-5.js} +1 -1
  285. package/dist/server/{openai-DBwI1OSu.cjs → openai-BBe1XbZd.cjs} +1 -1
  286. package/dist/server/{openai-Cu4TXXjl.cjs → openai-BmADmD1e.cjs} +1 -1
  287. package/dist/server/{openai-CUf4vc3Q.js → openai-C1gLuR-0.js} +1 -1
  288. package/dist/server/query-handlers.d.ts +2 -1
  289. package/dist/server/query-validator.d.ts +36 -4
  290. package/dist/server/types/core.d.ts +13 -0
  291. package/dist/server/types/cube.d.ts +39 -2
  292. package/dist/server/types/query.d.ts +8 -0
  293. package/package.json +2 -2
  294. package/dist/adapters/ActivityGridChart.config-D6hhj345.cjs +0 -1
  295. package/dist/adapters/ActivityGridChart.config-QZKs_NYg.js +0 -2
  296. package/dist/adapters/AreaChart.config-B5XM6G22.js +0 -2
  297. package/dist/adapters/AreaChart.config-NP34BH5y.cjs +0 -1
  298. package/dist/adapters/BarChart.config-Bqlmr81N.js +0 -2
  299. package/dist/adapters/BarChart.config-C3bw-cAP.cjs +0 -1
  300. package/dist/adapters/BoxPlotChart.config-BOAvoj6x.cjs +0 -1
  301. package/dist/adapters/BoxPlotChart.config-CTXiycYY.js +0 -2
  302. package/dist/adapters/BubbleChart.config-CGFIkl4H.cjs +0 -1
  303. package/dist/adapters/BubbleChart.config-Njxx4Eq1.js +0 -2
  304. package/dist/adapters/CandlestickChart.config-BZ_yWaSo.cjs +0 -1
  305. package/dist/adapters/CandlestickChart.config-D4Svhmef.js +0 -2
  306. package/dist/adapters/DataTable.config-B-bT9puT.js +0 -2
  307. package/dist/adapters/DataTable.config-BHtt1cPM.cjs +0 -1
  308. package/dist/adapters/FunnelChart.config-C1e07O7B.cjs +0 -1
  309. package/dist/adapters/FunnelChart.config-CVEy0tV9.js +0 -2
  310. package/dist/adapters/GaugeChart.config-5PLNlQlu.js +0 -2
  311. package/dist/adapters/GaugeChart.config-Cdv6knjZ.cjs +0 -1
  312. package/dist/adapters/HeatMapChart.config-MGTfYpWJ.js +0 -2
  313. package/dist/adapters/HeatMapChart.config-jfBEi1ZI.cjs +0 -1
  314. package/dist/adapters/KpiDelta.config-D2IUsEYz.cjs +0 -1
  315. package/dist/adapters/KpiDelta.config-DT_MmAHw.js +0 -2
  316. package/dist/adapters/KpiNumber.config-ChgbKmx8.cjs +0 -1
  317. package/dist/adapters/KpiNumber.config-CvZ_FhyL.js +0 -2
  318. package/dist/adapters/KpiText.config-Bgkw8gr2.js +0 -2
  319. package/dist/adapters/KpiText.config-Bz9orqt6.cjs +0 -1
  320. package/dist/adapters/LineChart.config-BVew35dI.cjs +0 -1
  321. package/dist/adapters/LineChart.config-DSCCKXNg.js +0 -2
  322. package/dist/adapters/MarkdownChart.config-Bu6XUuhI.js +0 -2
  323. package/dist/adapters/MarkdownChart.config-E4aSVTf3.cjs +0 -1
  324. package/dist/adapters/MeasureProfileChart.config-BF249hc_.cjs +0 -1
  325. package/dist/adapters/MeasureProfileChart.config-lERVe38G.js +0 -2
  326. package/dist/adapters/PieChart.config-7Ujwp8R5.cjs +0 -1
  327. package/dist/adapters/PieChart.config-jQl2HIcA.js +0 -2
  328. package/dist/adapters/ProportionBarChart.config-o0w_Pnlt.js +0 -2
  329. package/dist/adapters/ProportionBarChart.config-phNohhhY.cjs +0 -1
  330. package/dist/adapters/RadarChart.config-BmrYBd9x.js +0 -2
  331. package/dist/adapters/RadarChart.config-Dlt3UflG.cjs +0 -1
  332. package/dist/adapters/RadialBarChart.config-CeEm8xRb.cjs +0 -1
  333. package/dist/adapters/RadialBarChart.config-Dishh6bC.js +0 -2
  334. package/dist/adapters/RetentionCombinedChart.config-BaD4ev85.cjs +0 -1
  335. package/dist/adapters/RetentionCombinedChart.config-m2FjBUi9.js +0 -2
  336. package/dist/adapters/RetentionHeatmap.config-DiMplGdk.js +0 -2
  337. package/dist/adapters/RetentionHeatmap.config-Dp6oYwQZ.cjs +0 -1
  338. package/dist/adapters/SankeyChart.config-C4Y6qzCS.cjs +0 -1
  339. package/dist/adapters/SankeyChart.config-CJHqgjQ1.js +0 -2
  340. package/dist/adapters/ScatterChart.config-C0QqvDrN.cjs +0 -1
  341. package/dist/adapters/ScatterChart.config-DywOsWPW.js +0 -2
  342. package/dist/adapters/SunburstChart.config-DE8RxpDR.cjs +0 -1
  343. package/dist/adapters/SunburstChart.config-DohowrO3.js +0 -2
  344. package/dist/adapters/TreeMapChart.config-D2gXz-zC.cjs +0 -1
  345. package/dist/adapters/TreeMapChart.config-HMlI29GG.js +0 -2
  346. package/dist/adapters/WaterfallChart.config-BO2WV2VB.js +0 -2
  347. package/dist/adapters/WaterfallChart.config-CzwGiheB.cjs +0 -1
  348. package/dist/adapters/compiler-BNjqYdmc.cjs +0 -166
  349. package/dist/adapters/core-CzFfrJzu.cjs +0 -1
  350. package/dist/adapters/handler-m6WgA9xu.cjs +0 -25
  351. package/dist/adapters/mcp-transport-B0b27YUB.cjs +0 -40
  352. package/dist/adapters/mcp-transport-BXyA4dTk.js +0 -603
  353. package/dist/adapters/utils-BoOeig94.cjs +0 -128
  354. package/dist/client/chunks/DashboardEditModal-BOfLdTgV.js.map +0 -1
  355. package/dist/client/chunks/analysis-builder-shared-CEvHIlmk.js.map +0 -1
  356. package/dist/client/chunks/chart-activity-grid-4jfS8khG.js.map +0 -1
  357. package/dist/client/chunks/chart-data-table-DoDHQRe7.js.map +0 -1
  358. package/dist/client/chunks/charts-core-BPD_hLaL.js +0 -215
  359. package/dist/client/chunks/charts-core-BPD_hLaL.js.map +0 -1
  360. package/dist/client/chunks/charts-loader-CwMcOfwT.js +0 -85
  361. package/dist/client/chunks/charts-loader-CwMcOfwT.js.map +0 -1
  362. package/dist/client/chunks/nl-NL-DFLVORiD.js.map +0 -1
  363. package/dist/client/chunks/vendor-Qa1s8oSX.js.map +0 -1
@@ -276,6 +276,9 @@ var v = (e, t, n) => {
276
276
  "chart.table.label": "Data Table",
277
277
  "chart.table.description": "Display detailed tabular data",
278
278
  "chart.table.useCase": "Best for precise values, detailed analysis, sortable/filterable data exploration",
279
+ "chart.recordsTable.label": "Records Table",
280
+ "chart.recordsTable.description": "List individual records with per-column formatting",
281
+ "chart.recordsTable.useCase": "Best for browsing record-level detail — badges, progress bars and links per column",
279
282
  "chart.activityGrid.label": "Activity Grid",
280
283
  "chart.activityGrid.description": "GitHub-style activity grid showing temporal patterns across different time scales",
281
284
  "chart.activityGrid.useCase": "Best for visualising activity patterns over time. Supports hour (3hr blocks × days), day (days × weeks), week (weeks × months), month (months × quarters), and quarter (quarters × years) granularities",
@@ -369,6 +372,44 @@ var v = (e, t, n) => {
369
372
  "chart.treemap.dropZone.yAxis.empty": "Drop a measure for size",
370
373
  "chart.treemap.dropZone.series.empty": "Drop a dimension for colour grouping",
371
374
  "chart.table.dropZone.xAxis.empty": "Drop fields to display as columns (or leave empty for all)",
375
+ "chart.recordsTable.dropZone.columns.label": "Columns",
376
+ "chart.recordsTable.dropZone.columns.description": "Fields rendered as columns, in this order",
377
+ "chart.recordsTable.dropZone.columns.empty": "Drop fields to display as columns (or leave empty for all)",
378
+ "chart.recordsTable.dropZone.hiddenColumns.label": "Hidden fields",
379
+ "chart.recordsTable.dropZone.hiddenColumns.description": "Fetched for row context and links, never displayed",
380
+ "chart.recordsTable.dropZone.hiddenColumns.empty": "Drop fields to fetch without showing them",
381
+ "chart.recordsTable.option.columnFormats.label": "Column formats",
382
+ "chart.recordsTable.option.columnFormats.description": "Choose how each column renders its value",
383
+ "chart.recordsTable.option.pageSize.label": "Rows per page",
384
+ "chart.recordsTable.option.pageSize.description": "How many records to show at a time",
385
+ "chart.recordsTable.option.pageSize.option.25": "25",
386
+ "chart.recordsTable.option.pageSize.option.50": "50",
387
+ "chart.recordsTable.option.pageSize.option.100": "100",
388
+ "chart.recordsTable.option.rowLink.label": "Row link",
389
+ "chart.recordsTable.option.rowLink.description": "Make each row a link. Use {Cube.field} tokens — hidden fields work too. Relative paths and http(s) URLs only.",
390
+ "chart.recordsTable.rowLink.urlTemplate": "URL template",
391
+ "chart.recordsTable.rowLink.placeholder": "/employees/{Employees.id}",
392
+ "chart.recordsTable.rowLink.target.self": "Same tab",
393
+ "chart.recordsTable.rowLink.target.blank": "New tab",
394
+ "chart.recordsTable.columnFormats.noColumns": "Assign columns first — each one can then be formatted here",
395
+ "chart.recordsTable.columnFormats.kind.text": "Text",
396
+ "chart.recordsTable.columnFormats.kind.number": "Number",
397
+ "chart.recordsTable.columnFormats.kind.date": "Date",
398
+ "chart.recordsTable.columnFormats.kind.badge": "Badge",
399
+ "chart.recordsTable.columnFormats.kind.progress": "Progress",
400
+ "chart.recordsTable.columnFormats.numberFormat": "Number format",
401
+ "chart.recordsTable.columnFormats.granularity": "Granularity",
402
+ "chart.recordsTable.columnFormats.badgeColours": "Value colours",
403
+ "chart.recordsTable.columnFormats.badgeColour": "Colour",
404
+ "chart.recordsTable.columnFormats.badgeValue": "Value",
405
+ "chart.recordsTable.columnFormats.badgeAdd": "Add value",
406
+ "chart.recordsTable.columnFormats.badgeRemove": "Remove value",
407
+ "chart.recordsTable.columnFormats.progressMin": "Minimum",
408
+ "chart.recordsTable.columnFormats.progressMax": "Maximum",
409
+ "chart.recordsTable.columnFormats.progressStyle": "Style",
410
+ "chart.recordsTable.columnFormats.progressStyle.bar": "Bar",
411
+ "chart.recordsTable.columnFormats.progressStyle.circle": "Circle",
412
+ "chart.recordsTable.columnFormats.header": "Header",
372
413
  "chart.activityGrid.dropZone.dateField.empty": "Drop a time dimension (granularity affects grid structure)",
373
414
  "chart.activityGrid.dropZone.valueField.empty": "Drop a measure for activity intensity",
374
415
  "chart.kpiNumber.dropZone.yAxis.empty": "Drop a measure here",
@@ -712,6 +753,9 @@ var v = (e, t, n) => {
712
753
  "server.errors.retentionValidationFailed": "Retention validation failed: {errors}",
713
754
  "server.errors.cubeRefUnresolved": "{cubeName}.joins.{joinName}: target cube '{targetCube}' is not registered",
714
755
  "server.errors.unresolvedCubeRefs": "Unresolved cube references:\n{details}",
756
+ "server.errors.cubeSetIdEmpty": "Cube set id must not be empty — the empty id is reserved for the base cube set",
757
+ "server.errors.cubeSetNotFound": "No cube set registered for '{setId}'",
758
+ "server.errors.attributeIdRequired": "Attribute definitions must have a non-empty id",
715
759
  "server.errors.calculatedMeasureValidation": "Calculated measure validation failed for cube '{cubeName}':\n{details}",
716
760
  "server.errors.queryValidationFailed": "Query validation failed: {errors}",
717
761
  "server.errors.queryContainsMultipleModes": "Query contains multiple query modes: {modes}",
@@ -763,6 +807,7 @@ var v = (e, t, n) => {
763
807
  "server.validation.chart.barNeedsDimension": "Bar charts need an xAxis dimension for category labels. Add a dimension to the query or use \"table\" chart type instead.",
764
808
  "server.validation.chart.barXAxisRequired": "chartConfig.xAxis is required for bar charts. Put a dimension in xAxis so bars have category labels.",
765
809
  "server.validation.chart.dropZoneRequired": "chartConfig.{key} is required for {chartType} chart ({label}). Accepts: {acceptDesc}.",
810
+ "server.validation.chart.recordGrainNeedsUngrouped": "{chartType} lists one row per record, so its query must set \"ungrouped\": true. Add it to the query, and remove count/countDistinct measures — they cannot be ungrouped. An ungrouped query also cannot span two cubes joined by hasMany, so keep it to one cube plus its to-one joins.",
766
811
  "server.validation.chart.seriesDuplicatesXAxis": "chartConfig.series must not contain the same field as xAxis (found: {duplicates}). The series field is only for splitting into grouped/stacked sub-series by a DIFFERENT dimension. Remove the duplicate from series.",
767
812
  "server.validation.flow.bindingKeyCubeNotFound": "Binding key cube not found: {cubeName}",
768
813
  "server.validation.flow.bindingKeyDimNotFound": "Binding key dimension not found: {dimName} in cube {cubeName}",
@@ -1018,6 +1063,11 @@ var v = (e, t, n) => {
1018
1063
  "chart.runtime.responsiveContainerError": "Failed to create responsive container",
1019
1064
  "chart.runtime.noDataToDisplay": "No data to display",
1020
1065
  "chart.runtime.table.invalidStructure": "Data structure is invalid",
1066
+ "chart.runtime.recordsTable.noColumns": "No columns available",
1067
+ "chart.runtime.recordsTable.rowRange": "{from}–{to} of {total}",
1068
+ "chart.runtime.recordsTable.pageOf": "Page {page} of {pages}",
1069
+ "chart.runtime.recordsTable.previousPage": "Previous page",
1070
+ "chart.runtime.recordsTable.nextPage": "Next page",
1021
1071
  "chart.runtime.heatmapNoResults": "The query returned no results for the heatmap",
1022
1072
  "chart.runtime.heatmapConfigRequired": "Configuration required",
1023
1073
  "chart.runtime.heatmapXRequired": "X-axis dimension required. ",
@@ -1064,6 +1114,8 @@ var v = (e, t, n) => {
1064
1114
  "chart.runtime.axisFormat.prefixExample": "e.g., $",
1065
1115
  "chart.runtime.axisFormat.suffix": "Suffix",
1066
1116
  "chart.runtime.axisFormat.suffixExample": "e.g., units",
1117
+ "chart.runtime.axisFormat.currencyCode": "Currency code",
1118
+ "chart.runtime.axisFormat.currencyCodeHint": "Leave blank to follow the viewer's locale",
1067
1119
  "chart.runtime.axisFormat.abbreviation": "Abbreviation",
1068
1120
  "chart.runtime.axisFormat.yes": "Yes",
1069
1121
  "chart.runtime.axisFormat.no": "No",
@@ -1469,6 +1521,7 @@ var v = (e, t, n) => {
1469
1521
  "portlet.invalidQuery": "Invalid query or no results",
1470
1522
  "portlet.unsupportedChartType": "Unsupported chart type",
1471
1523
  "portlet.unableToRender": "Unable to render chart",
1524
+ "portlet.droppedMembers": "Hidden — no longer in the model: {members}",
1472
1525
  "portlet.enterTitle": "Enter portlet title...",
1473
1526
  "portlet.enterPortletTitle": "Please enter a title for the portlet.",
1474
1527
  "portlet.configureQuery": "Please configure a query before saving.",
@@ -1607,9 +1660,9 @@ async function te(e) {
1607
1660
  try {
1608
1661
  let t = await v(/* #__PURE__ */ Object.assign({
1609
1662
  "./locales/af-ZA.json": () => import("./af-ZA-C0dGb_53.js"),
1610
- "./locales/en-US.json": () => import("./en-US-BE6VoG0o.js"),
1663
+ "./locales/en-US.json": () => import("./en-US-HP6FHuNy.js"),
1611
1664
  "./locales/en.json": () => Promise.resolve().then(() => y),
1612
- "./locales/nl-NL.json": () => import("./nl-NL-DFLVORiD.js")
1665
+ "./locales/nl-NL.json": () => import("./nl-NL-CEdoCz6Q.js")
1613
1666
  }), `./locales/${e}.json`, 3);
1614
1667
  x = e, S = {
1615
1668
  ...b,
@@ -1671,7 +1724,7 @@ function D(e) {
1671
1724
  }
1672
1725
  //#endregion
1673
1726
  //#region src/client/utils/axisValueFormatting.ts
1674
- function ae(e) {
1727
+ function O(e) {
1675
1728
  return {
1676
1729
  US: "USD",
1677
1730
  CA: "CAD",
@@ -1717,7 +1770,7 @@ function ae(e) {
1717
1770
  TR: "TRY"
1718
1771
  }[e.split("-")[1]?.toUpperCase()] || "USD";
1719
1772
  }
1720
- function oe(e, t) {
1773
+ function ae(e, t) {
1721
1774
  if (!t) return {
1722
1775
  displayValue: e,
1723
1776
  abbreviationSuffix: ""
@@ -1737,8 +1790,11 @@ function oe(e, t) {
1737
1790
  abbreviationSuffix: ""
1738
1791
  };
1739
1792
  }
1793
+ function oe(e, t) {
1794
+ return e && /^[A-Za-z]{3}$/.test(e) ? e.toUpperCase() : O(t);
1795
+ }
1740
1796
  function se(e) {
1741
- let { displayValue: t, abbreviate: n, abbreviationSuffix: r, decimals: i, locale: a } = e, o = ae(a);
1797
+ let { displayValue: t, abbreviate: n, abbreviationSuffix: r, decimals: i, locale: a } = e, o = oe(e.config.currencyCode, a);
1742
1798
  if (n && r) {
1743
1799
  let e = new Intl.NumberFormat(a, {
1744
1800
  style: "currency",
@@ -1772,7 +1828,7 @@ function le(e) {
1772
1828
  maximumFractionDigits: r
1773
1829
  }).format(t) + n + s;
1774
1830
  }
1775
- function O(e) {
1831
+ function k(e) {
1776
1832
  let { displayValue: t, abbreviationSuffix: n, decimals: r, locale: i } = e;
1777
1833
  return new Intl.NumberFormat(i, {
1778
1834
  minimumFractionDigits: r,
@@ -1783,10 +1839,10 @@ var ue = {
1783
1839
  currency: se,
1784
1840
  percent: ce,
1785
1841
  custom: le,
1786
- number: O
1842
+ number: k
1787
1843
  };
1788
1844
  function de(e) {
1789
- return ((e.config.unit ? ue[e.config.unit] : void 0) || O)(e);
1845
+ return ((e.config.unit ? ue[e.config.unit] : void 0) || k)(e);
1790
1846
  }
1791
1847
  //#endregion
1792
1848
  //#region src/client/utils/timeValueFormatting.ts
@@ -1823,27 +1879,27 @@ function me(e) {
1823
1879
  }
1824
1880
  //#endregion
1825
1881
  //#region src/client/utils/chartUtils.ts
1826
- function k(e) {
1882
+ function A(e) {
1827
1883
  return e != null && !isNaN(Number(e));
1828
1884
  }
1829
- function A(e) {
1885
+ function j(e) {
1830
1886
  if (e == null) return null;
1831
1887
  let t = typeof e == "string" ? parseFloat(e) : Number(e);
1832
1888
  return isNaN(t) ? null : t;
1833
1889
  }
1834
- function j(e) {
1890
+ function M(e) {
1835
1891
  if (e == null) return "No data";
1836
1892
  let t = typeof e == "number" ? e : parseFloat(e);
1837
1893
  return isNaN(t) ? String(e) : Number.isInteger(t) ? t.toLocaleString() : parseFloat(t.toFixed(2)).toLocaleString();
1838
1894
  }
1839
- function M(e, t, n) {
1895
+ function N(e, t, n) {
1840
1896
  if (e == null) return "No data";
1841
1897
  let r = typeof e == "number" ? e : parseFloat(String(e));
1842
1898
  if (isNaN(r)) return String(e);
1843
1899
  if (!isFinite(r)) return r > 0 ? "∞" : "-∞";
1844
1900
  let i = n || (typeof navigator < "u" ? navigator.language : "en-US");
1845
- if (!t) return j(e);
1846
- let { abbreviate: a = !0, decimals: o } = t, { displayValue: s, abbreviationSuffix: c } = oe(r, a);
1901
+ if (!t) return M(e);
1902
+ let { abbreviate: a = !0, decimals: o } = t, { displayValue: s, abbreviationSuffix: c } = ae(r, a);
1847
1903
  return de({
1848
1904
  displayValue: s,
1849
1905
  abbreviate: a,
@@ -1854,15 +1910,15 @@ function M(e, t, n) {
1854
1910
  });
1855
1911
  }
1856
1912
  function he(e) {
1857
- return (t) => M(t, e);
1913
+ return (t) => N(t, e);
1858
1914
  }
1859
- function N(e, t) {
1915
+ function P(e, t) {
1860
1916
  return t[e] || e;
1861
1917
  }
1862
1918
  function ge(e, t) {
1863
- return e.map((e) => N(e, t));
1919
+ return e.map((e) => P(e, t));
1864
1920
  }
1865
- function P(e, t) {
1921
+ function F(e, t) {
1866
1922
  if (!e) return "Unknown";
1867
1923
  let n = String(e), r = fe(n);
1868
1924
  if (!r) return n;
@@ -1872,7 +1928,7 @@ function P(e, t) {
1872
1928
  }
1873
1929
  return me(r);
1874
1930
  }
1875
- function F(e, t) {
1931
+ function I(e, t) {
1876
1932
  try {
1877
1933
  if (e?.timeDimensions) {
1878
1934
  let n = e.timeDimensions.find((e) => t === e.dimension || t.startsWith(e.dimension.replace(".", "_")) || t === `${e.dimension}_${e.granularity}`);
@@ -1897,18 +1953,18 @@ function F(e, t) {
1897
1953
  return;
1898
1954
  }
1899
1955
  }
1900
- function I(e, t, n, r, i = (e) => e) {
1956
+ function L(e, t, n, r, i = (e) => e) {
1901
1957
  if (!e || e.length === 0) return [];
1902
- let a = F(r, t);
1958
+ let a = I(r, t);
1903
1959
  return e.map((e) => {
1904
- let r = { name: P(e[t], a) || e[t] || "Unknown" };
1960
+ let r = { name: F(e[t], a) || e[t] || "Unknown" };
1905
1961
  return n.forEach((t) => {
1906
1962
  let n = i(t);
1907
- n !== "__proto__" && n !== "constructor" && n !== "prototype" && (r[n] = A(e[t]));
1963
+ n !== "__proto__" && n !== "constructor" && n !== "prototype" && (r[n] = j(e[t]));
1908
1964
  }), r;
1909
1965
  });
1910
1966
  }
1911
- function L(e, t, n, r, i, a = (e) => e) {
1967
+ function _e(e, t, n, r, i, a = (e) => e) {
1912
1968
  if (!e || e.length === 0) return {
1913
1969
  data: [],
1914
1970
  seriesKeys: [],
@@ -1918,11 +1974,11 @@ function L(e, t, n, r, i, a = (e) => e) {
1918
1974
  if (u.length > 0) {
1919
1975
  let n = {};
1920
1976
  return e.forEach((e) => {
1921
- let i = F(r, t), o = P(e[t], i) || e[t] || "Unknown";
1977
+ let i = I(r, t), o = F(e[t], i) || e[t] || "Unknown";
1922
1978
  o !== "__proto__" && o !== "constructor" && o !== "prototype" && (n[o] || (n[o] = { name: String(o) }), l.forEach((t) => {
1923
1979
  let r = a(t);
1924
1980
  if (r === "__proto__" || r === "constructor" || r === "prototype") return;
1925
- let i = A(e[t]);
1981
+ let i = j(e[t]);
1926
1982
  if (i !== null) {
1927
1983
  let e = n[o][r];
1928
1984
  n[o][r] = e == null ? i : e + i;
@@ -1933,7 +1989,7 @@ function L(e, t, n, r, i, a = (e) => e) {
1933
1989
  let t = String(r), i = l[0] || c.find((e) => e.includes("totalCost") || e.includes("count") || e.includes("sum")) || c[0];
1934
1990
  if (i) {
1935
1991
  if (t === "__proto__" || t === "constructor" || t === "prototype") return;
1936
- let r = A(e[i]);
1992
+ let r = j(e[i]);
1937
1993
  if (r !== null) {
1938
1994
  let e = n[o][t];
1939
1995
  n[o][t] = e == null ? r : e + r;
@@ -1951,7 +2007,7 @@ function L(e, t, n, r, i, a = (e) => e) {
1951
2007
  };
1952
2008
  }
1953
2009
  return {
1954
- data: I(e, t, n, r, a),
2010
+ data: L(e, t, n, r, a),
1955
2011
  seriesKeys: n.map((e) => a(e)),
1956
2012
  hasDimensions: !1
1957
2013
  };
@@ -1965,18 +2021,18 @@ function R() {
1965
2021
  }
1966
2022
  //#endregion
1967
2023
  //#region src/client/theme/index.ts
1968
- function _e(e) {
2024
+ function ve(e) {
1969
2025
  return typeof window > "u" ? "" : getComputedStyle(document.documentElement).getPropertyValue(`--dc-${e}`).trim();
1970
2026
  }
1971
2027
  function z(e, t) {
1972
2028
  typeof window > "u" || document.documentElement.style.setProperty(`--dc-${e}`, t);
1973
2029
  }
1974
- function ve(e) {
2030
+ function ye(e) {
1975
2031
  typeof window > "u" || Object.entries(e.colors).forEach(([e, t]) => {
1976
2032
  t && z(e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), t);
1977
2033
  });
1978
2034
  }
1979
- function ye() {
2035
+ function be() {
1980
2036
  if (typeof window > "u") return;
1981
2037
  let e = document.documentElement.style;
1982
2038
  Array.from(e).forEach((t) => {
@@ -1990,10 +2046,10 @@ function B() {
1990
2046
  let t = document.documentElement.getAttribute("data-theme");
1991
2047
  return t === "dark" || t === "neon" ? t : document.documentElement.classList.contains("dark") || document.body.classList.contains("dark") ? "dark" : document.documentElement.classList.contains("neon") || document.body.classList.contains("neon") ? "neon" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
1992
2048
  }
1993
- function be(e) {
2049
+ function xe(e) {
1994
2050
  typeof window > "u" || (document.documentElement.classList.remove("dark", "neon"), document.documentElement.setAttribute("data-theme", e), (e === "dark" || e === "neon") && document.documentElement.classList.add(e), localStorage.setItem("theme", e));
1995
2051
  }
1996
- function xe() {
2052
+ function Se() {
1997
2053
  let e = B();
1998
2054
  return e === "dark" || e === "neon";
1999
2055
  }
@@ -2011,7 +2067,7 @@ function V(e) {
2011
2067
  t.disconnect(), n.removeEventListener("change", r);
2012
2068
  };
2013
2069
  }
2014
- var Se = {
2070
+ var Ce = {
2015
2071
  light: {
2016
2072
  name: "light",
2017
2073
  colors: {
@@ -2059,7 +2115,7 @@ var Se = {
2059
2115
  danger: "#ff1493"
2060
2116
  }
2061
2117
  }
2062
- }, Ce = [
2118
+ }, we = [
2063
2119
  "#3b82f6",
2064
2120
  "#10b981",
2065
2121
  "#f59e0b",
@@ -2075,12 +2131,12 @@ var Se = {
2075
2131
  "#22a884",
2076
2132
  "#7ad151",
2077
2133
  "#fde725"
2078
- ], we = "#10b981", Te = "#ef4444", U = {
2134
+ ], Te = "#10b981", Ee = "#ef4444", U = {
2079
2135
  top: 5,
2080
2136
  right: 30,
2081
2137
  left: 20,
2082
2138
  bottom: 5
2083
- }, Ee = {
2139
+ }, De = {
2084
2140
  top: 5,
2085
2141
  right: 30,
2086
2142
  left: 20,
@@ -2136,7 +2192,7 @@ function W() {
2136
2192
  }
2137
2193
  //#endregion
2138
2194
  //#region src/client/components/charts/BubbleChart.helpers.ts
2139
- function De(e) {
2195
+ function Oe(e) {
2140
2196
  return {
2141
2197
  showLegend: e?.showLegend ?? !0,
2142
2198
  showGrid: e?.showGrid ?? !0,
@@ -2148,7 +2204,7 @@ function De(e) {
2148
2204
  leftYAxisFormat: e?.leftYAxisFormat
2149
2205
  };
2150
2206
  }
2151
- function Oe(e) {
2207
+ function ke(e) {
2152
2208
  if (!e?.xAxis || !e?.yAxis || !e?.series) return null;
2153
2209
  let t = Array.isArray(e.xAxis) ? e.xAxis[0] : e.xAxis, n = Array.isArray(e.yAxis) ? e.yAxis[0] : e.yAxis, r = Array.isArray(e.series) ? e.series[0] : e.series, i = (Array.isArray(e.sizeField) ? e.sizeField[0] : e.sizeField) || n;
2154
2210
  return !t || !n || !r || !i ? null : {
@@ -2159,7 +2215,7 @@ function Oe(e) {
2159
2215
  colorFieldName: Array.isArray(e.colorField) ? e.colorField[0] : e.colorField
2160
2216
  };
2161
2217
  }
2162
- function ke(e, t, n) {
2218
+ function Ae(e, t, n) {
2163
2219
  if (t && e) {
2164
2220
  let t = String(e), r;
2165
2221
  if (t.match(/^\d{4}-\d{2}-\d{2}[T ]/)) {
@@ -2168,19 +2224,19 @@ function ke(e, t, n) {
2168
2224
  } else r = new Date(t);
2169
2225
  return {
2170
2226
  xNum: isNaN(r.getTime()) ? parseFloat(t) : r.getTime(),
2171
- xLabel: P(e, n)
2227
+ xLabel: F(e, n)
2172
2228
  };
2173
2229
  }
2174
- let r = P(e, n) || e;
2230
+ let r = F(e, n) || e;
2175
2231
  return {
2176
2232
  xNum: typeof r == "string" ? parseFloat(r) : r,
2177
2233
  xLabel: String(r)
2178
2234
  };
2179
2235
  }
2180
- function Ae(e, t, n) {
2181
- let { xAxisField: r, yAxisField: i, sizeFieldName: a, seriesField: o, colorFieldName: s } = t, c = F(n, r), l = n?.timeDimensions?.some((e) => e.dimension === r) || !1;
2236
+ function je(e, t, n) {
2237
+ let { xAxisField: r, yAxisField: i, sizeFieldName: a, seriesField: o, colorFieldName: s } = t, c = I(n, r), l = n?.timeDimensions?.some((e) => e.dimension === r) || !1;
2182
2238
  return e.map((e) => {
2183
- let { xNum: t, xLabel: n } = ke(e[r], l, c), u = A(e[i]), d = A(e[a]), f = e[o];
2239
+ let { xNum: t, xLabel: n } = Ae(e[r], l, c), u = j(e[i]), d = j(e[a]), f = e[o];
2184
2240
  return {
2185
2241
  x: t,
2186
2242
  xLabel: n,
@@ -2189,14 +2245,14 @@ function Ae(e, t, n) {
2189
2245
  color: s ? e[s] : f,
2190
2246
  series: f,
2191
2247
  label: `${f || "Unknown"}`,
2192
- isValid: k(t) && u !== null && d !== null && d > 0
2248
+ isValid: A(t) && u !== null && d !== null && d > 0
2193
2249
  };
2194
2250
  }).filter((e) => e.isValid && e.size > 0).map(({ isValid: e, ...t }) => t);
2195
2251
  }
2196
2252
  function G(e, t) {
2197
2253
  return getComputedStyle(document.documentElement).getPropertyValue(e).trim() || t;
2198
2254
  }
2199
- function je(e) {
2255
+ function Me(e) {
2200
2256
  return {
2201
2257
  textColor: e ? G("--dc-text-muted", "#cbd5e1") : G("--dc-text-secondary", "#374151"),
2202
2258
  gridColor: e ? G("--dc-border", "#475569") : "#9ca3af"
@@ -2204,7 +2260,7 @@ function je(e) {
2204
2260
  }
2205
2261
  //#endregion
2206
2262
  //#region src/client/components/charts/ActivityGridChart.helpers.ts
2207
- var K = (e) => Math.floor(e.getMonth() / 3) + 1, Me = (e) => e.getMonth() % 3 + 1, Ne = (e) => Math.floor((e.getDate() - 1) / 7) + 1, Pe = [
2263
+ var K = (e) => Math.floor(e.getMonth() / 3) + 1, Ne = (e) => e.getMonth() % 3 + 1, Pe = (e) => Math.floor((e.getDate() - 1) / 7) + 1, Fe = [
2208
2264
  "J",
2209
2265
  "F",
2210
2266
  "M",
@@ -2250,7 +2306,7 @@ var K = (e) => Math.floor(e.getMonth() / 3) + 1, Me = (e) => e.getMonth() % 3 +
2250
2306
  "18-21",
2251
2307
  "21-00"
2252
2308
  ];
2253
- function Fe(e) {
2309
+ function Ie(e) {
2254
2310
  let t = new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate())), n = t.getUTCDay() || 7;
2255
2311
  t.setUTCDate(t.getUTCDate() + 4 - n);
2256
2312
  let r = t.getUTCFullYear(), i = new Date(Date.UTC(r, 0, 1));
@@ -2259,7 +2315,7 @@ function Fe(e) {
2259
2315
  week: Math.ceil(((t.getTime() - i.getTime()) / 864e5 + 1) / 7)
2260
2316
  };
2261
2317
  }
2262
- var Ie = {
2318
+ var Le = {
2263
2319
  quarter: {
2264
2320
  extractX: (e) => e.getFullYear(),
2265
2321
  extractY: (e) => K(e) - 1,
@@ -2272,7 +2328,7 @@ var Ie = {
2272
2328
  },
2273
2329
  month: {
2274
2330
  extractX: (e) => e.getFullYear() * 10 + K(e),
2275
- extractY: (e) => Me(e) - 1,
2331
+ extractY: (e) => Ne(e) - 1,
2276
2332
  xLabels: [],
2277
2333
  yLabels: J,
2278
2334
  xFormat: (e) => `Q${e % 10}`,
@@ -2284,10 +2340,10 @@ var Ie = {
2284
2340
  },
2285
2341
  week: {
2286
2342
  extractX: (e) => e.getFullYear() * 100 + (e.getMonth() + 1),
2287
- extractY: (e) => Ne(e) - 1,
2343
+ extractY: (e) => Pe(e) - 1,
2288
2344
  xLabels: [],
2289
2345
  yLabels: Y,
2290
- xFormat: (e) => Pe[e % 100 - 1] || "",
2346
+ xFormat: (e) => Fe[e % 100 - 1] || "",
2291
2347
  yFormat: (e) => Y[e] || "",
2292
2348
  cellWidth: 16,
2293
2349
  cellHeight: 16,
@@ -2296,7 +2352,7 @@ var Ie = {
2296
2352
  },
2297
2353
  day: {
2298
2354
  extractX: (e) => {
2299
- let { year: t, week: n } = Fe(e);
2355
+ let { year: t, week: n } = Ie(e);
2300
2356
  return t * 100 + n;
2301
2357
  },
2302
2358
  extractY: (e) => e.getDay(),
@@ -2322,13 +2378,13 @@ var Ie = {
2322
2378
  getYearFromX: (e) => Math.floor(e / 100)
2323
2379
  }
2324
2380
  };
2325
- function Le(e) {
2326
- return Ie[e?.toLowerCase()] ?? null;
2381
+ function Re(e) {
2382
+ return Le[e?.toLowerCase()] ?? null;
2327
2383
  }
2328
2384
  function Q(e) {
2329
2385
  if (e) return Array.isArray(e) ? e[0] : e;
2330
2386
  }
2331
- function Re(e, t) {
2387
+ function ze(e, t) {
2332
2388
  let n = e?.timeDimensions;
2333
2389
  if (!n || n.length === 0) return "day";
2334
2390
  let r = n.find((e) => e.dimension === t || e.dimension.includes(t));
@@ -2336,28 +2392,28 @@ function Re(e, t) {
2336
2392
  let i = n[0];
2337
2393
  return i && i.granularity ? i.granularity : "day";
2338
2394
  }
2339
- function ze(e) {
2395
+ function Be(e) {
2340
2396
  if (typeof e == "string") {
2341
2397
  let t = e;
2342
2398
  return e.includes(" ") && (t = e.replace(" ", "T").replace("+00", "Z").replace(/\+\d{2}:\d{2}$/, "Z")), !t.endsWith("Z") && !t.includes("+") && (t += "Z"), new Date(t);
2343
2399
  }
2344
2400
  return new Date(e);
2345
2401
  }
2346
- function Be(e, t, n, r, i) {
2402
+ function Ve(e, t, n, r, i) {
2347
2403
  return e.map((e) => {
2348
- let a = e[t], o = typeof e[n] == "string" ? parseFloat(e[n]) : e[n] || 0, s = ze(a);
2404
+ let a = e[t], o = typeof e[n] == "string" ? parseFloat(e[n]) : e[n] || 0, s = Be(a);
2349
2405
  return isNaN(s.getTime()) ? null : {
2350
2406
  x: r.extractX(s),
2351
2407
  y: r.extractY(s),
2352
2408
  value: o,
2353
2409
  date: s,
2354
- label: P(a, i)
2410
+ label: F(a, i)
2355
2411
  };
2356
2412
  }).filter((e) => e !== null);
2357
2413
  }
2358
2414
  //#endregion
2359
2415
  //#region src/client/components/charts/ActivityGridChart.render.ts
2360
- var Ve = [
2416
+ var He = [
2361
2417
  "Jan",
2362
2418
  "Feb",
2363
2419
  "Mar",
@@ -2371,7 +2427,7 @@ var Ve = [
2371
2427
  "Nov",
2372
2428
  "Dec"
2373
2429
  ];
2374
- function $(e) {
2430
+ function Ue(e) {
2375
2431
  return {
2376
2432
  textColor: e ? G("--dc-text-muted", "#cbd5e1") : G("--dc-text-secondary", "#374151"),
2377
2433
  lineColor: G("--dc-border", "#e5e7eb"),
@@ -2379,7 +2435,7 @@ function $(e) {
2379
2435
  cellStrokeColor: e ? G("--dc-border", "#334155") : G("--dc-bg", "#ffffff")
2380
2436
  };
2381
2437
  }
2382
- function He(e) {
2438
+ function We(e) {
2383
2439
  let { gridData: t, gridMapping: n, dimensions: r, safeDisplayConfig: i } = e, a = f(t, (e) => e.y) || 0, o = p(t, (e) => e.y) || 0, s = [...new Set(t.map((e) => e.x))].sort((e, t) => e - t), c = s.length * n.cellWidth + (s.length - 1) * 4, l = (a - o + 1) * n.cellHeight + (a - o) * 4, u = {
2384
2440
  ...U,
2385
2441
  left: 60,
@@ -2399,10 +2455,10 @@ function He(e) {
2399
2455
  svgWidth: y
2400
2456
  };
2401
2457
  }
2402
- function Ue() {
2458
+ function Ge() {
2403
2459
  return h("body").append("div").attr("class", "activity-grid-tooltip").style("position", "absolute").style("padding", "8px").style("background", "rgba(0, 0, 0, 0.8)").style("color", "white").style("border-radius", "4px").style("font-size", "12px").style("pointer-events", "none").style("opacity", 0).style("z-index", 1e3);
2404
2460
  }
2405
- function We(e, t, n, r, i) {
2461
+ function $(e, t, n, r, i) {
2406
2462
  e.style("cursor", t.drillEnabled ? "pointer" : "default").on("mouseover", function(e) {
2407
2463
  if (h(this).style("stroke", "#000").style("stroke-width", 2), n) {
2408
2464
  let i = [`<strong>${n.label}</strong>`, `${t.getFieldLabel(t.valueField)}: ${n.value}`].join("<br>");
@@ -2414,14 +2470,14 @@ function We(e, t, n, r, i) {
2414
2470
  h(this).style("stroke", i).style("stroke-width", 1), r.transition().duration(200).style("opacity", 0);
2415
2471
  });
2416
2472
  }
2417
- function Ge(e, t, n, r, i, a) {
2473
+ function Ke(e, t, n, r, i, a) {
2418
2474
  let { gridData: o, valueField: s, dateField: c, drillEnabled: l, onDataPointClick: u, safeDisplayConfig: d } = e, { completeXRange: f, minY: p, maxY: m, finalCellWidth: h, finalCellHeight: g } = n, _ = /* @__PURE__ */ new Map();
2419
2475
  o.forEach((e) => _.set(`${e.x}-${e.y}`, e));
2420
2476
  let v = /* @__PURE__ */ new Map();
2421
2477
  f.forEach((e, t) => v.set(e, t));
2422
2478
  for (let n of f) for (let o = p; o <= m; o++) {
2423
2479
  let f = _.get(`${n}-${o}`), m = v.get(n) || 0, y = t.append("rect").attr("x", m * (h + 4)).attr("y", (o - p) * (g + 4)).attr("width", h).attr("height", g).attr("rx", 2).attr("ry", 2).style("fill", f ? r(f.value) : a.emptyCellColor).style("stroke", a.cellStrokeColor).style("stroke-width", 1);
2424
- d.showTooltip ? We(y, e, f, i, a.cellStrokeColor) : l && y.style("cursor", "pointer"), l && u && f && y.on("click", function(e) {
2480
+ d.showTooltip ? $(y, e, f, i, a.cellStrokeColor) : l && y.style("cursor", "pointer"), l && u && f && y.on("click", function(e) {
2425
2481
  u({
2426
2482
  dataPoint: {
2427
2483
  [s]: f.value,
@@ -2438,14 +2494,14 @@ function Ge(e, t, n, r, i, a) {
2438
2494
  });
2439
2495
  }
2440
2496
  }
2441
- function Ke(e) {
2497
+ function qe(e) {
2442
2498
  if (e > 9999) {
2443
2499
  let t = Math.floor(e / 100);
2444
- return `${Ve[e % 100 - 1]} '${t.toString().slice(-2)}`;
2500
+ return `${He[e % 100 - 1]} '${t.toString().slice(-2)}`;
2445
2501
  }
2446
2502
  return `'${e.toString().slice(-2)}`;
2447
2503
  }
2448
- function qe(e, t, n, r) {
2504
+ function Je(e, t, n, r) {
2449
2505
  let { gridMapping: i } = e, { completeXRange: a, finalCellWidth: o } = n, s = /* @__PURE__ */ new Map();
2450
2506
  a.forEach((e, t) => s.set(e, t));
2451
2507
  let c = /* @__PURE__ */ new Map();
@@ -2460,29 +2516,29 @@ function qe(e, t, n, r) {
2460
2516
  for (let [e, n] of c) {
2461
2517
  if (n.length === 0) continue;
2462
2518
  let i = Math.min(...n.map((e) => s.get(e) || 0)), a = Math.max(...n.map((e) => s.get(e) || 0)), c = (i + a) / 2;
2463
- t.append("text").attr("x", c * (o + 4) + o / 2).attr("y", -25).attr("text-anchor", "middle").style("font-size", "12px").style("font-weight", "bold").style("fill", r.textColor).text(Ke(e)), n.length > 1 && t.append("line").attr("x1", i * (o + 4)).attr("x2", a * (o + 4) + o).attr("y1", -20).attr("y2", -20).style("stroke", r.lineColor).style("stroke-width", 1).style("opacity", .3);
2519
+ t.append("text").attr("x", c * (o + 4) + o / 2).attr("y", -25).attr("text-anchor", "middle").style("font-size", "12px").style("font-weight", "bold").style("fill", r.textColor).text(qe(e)), n.length > 1 && t.append("line").attr("x1", i * (o + 4)).attr("x2", a * (o + 4) + o).attr("y1", -20).attr("y2", -20).style("stroke", r.lineColor).style("stroke-width", 1).style("opacity", .3);
2464
2520
  }
2465
2521
  }
2466
- function Je(e, t, n, r) {
2522
+ function Ye(e, t, n, r) {
2467
2523
  let { gridMapping: i } = e, { completeXRange: a, finalCellWidth: o } = n, s = Math.max(1, Math.floor(a.length / 10));
2468
2524
  for (let e = 0; e < a.length; e += s) t.append("text").attr("x", e * (o + 4) + o / 2).attr("y", -8).attr("text-anchor", "middle").style("font-size", "10px").style("fill", r.textColor).text(i.xFormat(a[e]));
2469
2525
  }
2470
- function Ye(e, t, n, r) {
2526
+ function Xe(e, t, n, r) {
2471
2527
  let { gridMapping: i } = e, { minY: a, maxY: o, finalCellHeight: s } = n;
2472
- i.hasHierarchicalLabels && i.getYearFromX ? qe(e, t, n, r) : Je(e, t, n, r);
2528
+ i.hasHierarchicalLabels && i.getYearFromX ? Je(e, t, n, r) : Ye(e, t, n, r);
2473
2529
  for (let e = a; e <= o; e++) t.append("text").attr("x", -8).attr("y", (e - a) * (s + 4) + s / 2).attr("text-anchor", "end").attr("dy", ".35em").style("font-size", "10px").style("fill", r.textColor).text(i.yFormat(e));
2474
2530
  }
2475
- function Xe(e) {
2531
+ function Ze(e) {
2476
2532
  let { svgEl: t, gridData: n, dimensions: r, colorPalette: i, isDark: a, safeDisplayConfig: o } = e;
2477
2533
  if (h(t).selectAll("*").remove(), n.length === 0) return;
2478
- let s = He(e), c = h(t).attr("width", s.svgWidth).attr("height", r.height).append("g").attr("transform", `translate(${s.margin.left},${s.margin.top})`), l = n.map((e) => e.value), u = m().domain([p(l) || 0, f(l) || 1]).range(i?.gradient || H), d = $(a), g = Ue();
2479
- return Ge(e, c, s, u, g, d), o.showLabels && Ye(e, c, s, d), () => {
2534
+ let s = We(e), c = h(t).attr("width", s.svgWidth).attr("height", r.height).append("g").attr("transform", `translate(${s.margin.left},${s.margin.top})`), l = n.map((e) => e.value), u = m().domain([p(l) || 0, f(l) || 1]).range(i?.gradient || H), d = Ue(a), g = Ge();
2535
+ return Ke(e, c, s, u, g, d), o.showLabels && Xe(e, c, s, d), () => {
2480
2536
  g.remove();
2481
2537
  };
2482
2538
  }
2483
2539
  //#endregion
2484
2540
  //#region src/client/components/charts/ActivityGridChart.tsx
2485
- var Ze = /* @__PURE__ */ e({ default: () => Qe }), Qe = t.memo(function({ data: e, chartConfig: t, displayConfig: n = {}, queryObject: r, height: i = "100%", colorPalette: o, onDataPointClick: f, drillEnabled: p }) {
2541
+ var Qe = /* @__PURE__ */ e({ default: () => $e }), $e = t.memo(function({ data: e, chartConfig: t, displayConfig: n = {}, queryObject: r, height: i = "100%", colorPalette: o, onDataPointClick: f, drillEnabled: p }) {
2486
2542
  let { t: m } = D(), h = c(null), { containerRef: g, dimensions: _, dimensionsReady: v } = W(), [y, b] = l("light"), x = R();
2487
2543
  a(() => (b(B()), V((e) => b(e))), []);
2488
2544
  let S = s(() => ({
@@ -2498,10 +2554,10 @@ var Ze = /* @__PURE__ */ e({ default: () => Qe }), Qe = t.memo(function({ data:
2498
2554
  if (!e || e.length === 0 || !h.current || !v || _.width === 0 || !t?.dateField || !t?.valueField) return;
2499
2555
  let n = Q(t.dateField), i = Q(t.valueField);
2500
2556
  if (!n || !i) return;
2501
- let a = Re(r, n), s = Le(a);
2557
+ let a = ze(r, n), s = Re(a);
2502
2558
  if (!s) return;
2503
- let c = Be(e, n, i, s, a);
2504
- return Xe({
2559
+ let c = Ve(e, n, i, s, a);
2560
+ return Ze({
2505
2561
  svgEl: h.current,
2506
2562
  gridData: c,
2507
2563
  gridMapping: s,
@@ -2603,6 +2659,6 @@ var Ze = /* @__PURE__ */ e({ default: () => Qe }), Qe = t.memo(function({ data:
2603
2659
  });
2604
2660
  });
2605
2661
  //#endregion
2606
- export { A, he as C, F as D, P as E, ie as F, ee as I, w as L, L as M, ge as N, N as O, D as P, g as R, R as S, j as T, xe as _, Ae as a, z as b, H as c, we as d, Ee as f, _e as g, B as h, je as i, I as j, k, U as l, ve as m, De as n, W as o, Se as p, Oe as r, Ce as s, Ze as t, Te as u, ye as v, M as w, V as x, be as y, _ as z };
2662
+ export { j as A, _ as B, he as C, I as D, F as E, D as F, ie as I, ee as L, _e as M, ge as N, P as O, O as P, w as R, R as S, M as T, Se as _, je as a, z as b, H as c, Te as d, De as f, ve as g, B as h, Me as i, L as j, A as k, U as l, ye as m, Oe as n, W as o, Ce as p, ke as r, we as s, Qe as t, Ee as u, be as v, N as w, V as x, xe as y, g as z };
2607
2663
 
2608
- //# sourceMappingURL=chart-activity-grid-4jfS8khG.js.map
2664
+ //# sourceMappingURL=chart-activity-grid-DO82rrbW.js.map