drizzle-cube 0.5.8 → 0.6.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 (725) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters/express/index.cjs +1 -1
  3. package/dist/adapters/{adapters/express → express}/index.d.ts +3 -3
  4. package/dist/adapters/express/index.js +50 -50
  5. package/dist/adapters/fastify/index.cjs +1 -1
  6. package/dist/adapters/{adapters/fastify → fastify}/index.d.ts +3 -3
  7. package/dist/adapters/fastify/index.js +78 -78
  8. package/dist/adapters/google-BOnRIN1w.cjs +2 -0
  9. package/dist/{server/google-CFYljAOF.js → adapters/google-CvKM9yVM.js} +83 -71
  10. package/dist/adapters/{handler-Cx8QYLk6.js → handler-CfgE0JSL.js} +499 -576
  11. package/dist/adapters/handler-Cn0dOctE.cjs +25 -0
  12. package/dist/adapters/hono/agent-handler.d.ts +9 -0
  13. package/dist/adapters/hono/index.cjs +2 -2
  14. package/dist/adapters/{adapters/hono → hono}/index.d.ts +4 -4
  15. package/dist/adapters/hono/index.js +205 -175
  16. package/dist/adapters/hono/mcp-handler.d.ts +37 -0
  17. package/dist/adapters/locale-DDvZDFVn.js +8114 -0
  18. package/dist/adapters/locale-ZLUUNUxr.cjs +166 -0
  19. package/dist/adapters/{adapters/locale.d.ts → locale.d.ts} +1 -1
  20. package/dist/adapters/mcp-tools-handlers.d.ts +18 -0
  21. package/dist/adapters/mcp-tools.cjs +1 -1
  22. package/dist/adapters/{adapters/mcp-tools.d.ts → mcp-tools.d.ts} +5 -5
  23. package/dist/adapters/mcp-tools.js +49 -38
  24. package/dist/adapters/mcp-transport-B7ddET3M.cjs +40 -0
  25. package/dist/adapters/mcp-transport-Dfuj4j4q.js +591 -0
  26. package/dist/adapters/{adapters/mcp-transport.d.ts → mcp-transport.d.ts} +3 -3
  27. package/dist/adapters/nextjs/index.cjs +1 -1
  28. package/dist/adapters/{adapters/nextjs → nextjs}/index.d.ts +3 -3
  29. package/dist/adapters/nextjs/index.js +190 -197
  30. package/dist/adapters/nextjs/mcp-handler.d.ts +36 -0
  31. package/dist/adapters/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
  32. package/dist/adapters/openai-vXvLni8v.cjs +1 -0
  33. package/dist/adapters/{adapters/types.d.ts → types.d.ts} +1 -1
  34. package/dist/adapters/{utils-D9JPLmfl.js → utils-BPWZsX7k.js} +1271 -1218
  35. package/dist/adapters/utils-_whV4fXL.cjs +128 -0
  36. package/dist/adapters/utils.cjs +1 -1
  37. package/dist/adapters/{adapters/utils.d.ts → utils.d.ts} +17 -92
  38. package/dist/adapters/utils.js +2 -2
  39. package/dist/cli/index.cjs +2 -2
  40. package/dist/client/adapters/adapterRegistry.d.ts +2 -2
  41. package/dist/client/adapters/flowModeAdapter.d.ts +2 -2
  42. package/dist/client/adapters/funnelModeAdapter.d.ts +2 -2
  43. package/dist/client/adapters/index.d.ts +9 -9
  44. package/dist/client/adapters/modeAdapter.d.ts +1 -1
  45. package/dist/client/adapters/queryModeAdapter.d.ts +3 -3
  46. package/dist/client/adapters/retentionModeAdapter.d.ts +2 -2
  47. package/dist/client/charts/ChartLoader.d.ts +3 -17
  48. package/dist/client/charts/chartComponentRegistry.d.ts +46 -0
  49. package/dist/client/charts/chartConfigHelpers.d.ts +38 -0
  50. package/dist/client/charts/chartConfigRegistry.d.ts +1 -1
  51. package/dist/client/charts/chartPlugin.d.ts +3 -3
  52. package/dist/client/charts/lazyChartConfigRegistry.d.ts +2 -2
  53. package/dist/client/charts.d.ts +8 -8
  54. package/dist/client/charts.js +14 -13
  55. package/dist/client/chunks/{DashboardEditModal-CjCIAT-J.js → DashboardEditModal-okVfH8ZK.js} +5296 -4544
  56. package/dist/client/chunks/DashboardEditModal-okVfH8ZK.js.map +1 -0
  57. package/dist/client/chunks/{RetentionCombinedChart-BPkfcTa8.js → RetentionCombinedChart-BgbDhsPz.js} +10 -10
  58. package/dist/client/chunks/RetentionCombinedChart-BgbDhsPz.js.map +1 -0
  59. package/dist/client/chunks/{RetentionHeatmap-DGzLzr7h.js → RetentionHeatmap-DjXZaTPq.js} +5 -5
  60. package/dist/client/chunks/RetentionHeatmap-DjXZaTPq.js.map +1 -0
  61. package/dist/client/chunks/analysis-builder-DB88FojM.js +5674 -0
  62. package/dist/client/chunks/analysis-builder-DB88FojM.js.map +1 -0
  63. package/dist/client/chunks/{analysis-builder-shared-CYVwSPqt.js → analysis-builder-shared-BVK4TYfR.js} +1578 -1292
  64. package/dist/client/chunks/analysis-builder-shared-BVK4TYfR.js.map +1 -0
  65. package/dist/client/chunks/{chart-activity-grid-DmruKPab.js → chart-activity-grid-DX0SJbxs.js} +635 -492
  66. package/dist/client/chunks/chart-activity-grid-DX0SJbxs.js.map +1 -0
  67. package/dist/client/chunks/chart-area-of01_62R.js +775 -0
  68. package/dist/client/chunks/chart-area-of01_62R.js.map +1 -0
  69. package/dist/client/chunks/chart-bar-BqelQE_I.js +194 -0
  70. package/dist/client/chunks/chart-bar-BqelQE_I.js.map +1 -0
  71. package/dist/client/chunks/{chart-box-plot-DYKfyOI8.js → chart-box-plot-kkBixZ27.js} +2 -2
  72. package/dist/client/chunks/chart-box-plot-kkBixZ27.js.map +1 -0
  73. package/dist/client/chunks/chart-bubble-B2he1--4.js +221 -0
  74. package/dist/client/chunks/chart-bubble-B2he1--4.js.map +1 -0
  75. package/dist/client/chunks/{chart-candlestick-Dwc92Mrj.js → chart-candlestick-DZp19Tzh.js} +2 -2
  76. package/dist/client/chunks/chart-candlestick-DZp19Tzh.js.map +1 -0
  77. package/dist/client/chunks/chart-config-activity-grid-D_UX4NHC.js.map +1 -1
  78. package/dist/client/chunks/chart-config-area-BNigHUy8.js +124 -0
  79. package/dist/client/chunks/chart-config-area-BNigHUy8.js.map +1 -0
  80. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js +54 -0
  81. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js.map +1 -0
  82. package/dist/client/chunks/{chart-config-box-plot-DJ-dWWXA.js → chart-config-box-plot-oW8axV2q.js} +5 -10
  83. package/dist/client/chunks/chart-config-box-plot-oW8axV2q.js.map +1 -0
  84. package/dist/client/chunks/chart-config-bubble-gIoqVyjZ.js.map +1 -1
  85. package/dist/client/chunks/chart-config-candlestick-N6DchAA3.js.map +1 -1
  86. package/dist/client/chunks/chart-config-data-table-d7VBY-y_.js.map +1 -1
  87. package/dist/client/chunks/chart-config-funnel-DEYMcxsD.js.map +1 -1
  88. package/dist/client/chunks/{chart-config-gauge-DSwC04l0.js → chart-config-gauge-Dq-_H9UN.js} +5 -7
  89. package/dist/client/chunks/chart-config-gauge-Dq-_H9UN.js.map +1 -0
  90. package/dist/client/chunks/chart-config-heat-map-CfRnRNcw.js.map +1 -1
  91. package/dist/client/chunks/{chart-config-kpi-delta-D6BIkHL3.js → chart-config-kpi-delta-DSQbvqu_.js} +5 -10
  92. package/dist/client/chunks/chart-config-kpi-delta-DSQbvqu_.js.map +1 -0
  93. package/dist/client/chunks/{chart-config-kpi-number-Bx-V9a62.js → chart-config-kpi-number-EFSWY1We.js} +5 -7
  94. package/dist/client/chunks/chart-config-kpi-number-EFSWY1We.js.map +1 -0
  95. package/dist/client/chunks/{chart-config-kpi-text-CcqC1u-8.js → chart-config-kpi-text-KM3V5X2u.js} +5 -7
  96. package/dist/client/chunks/chart-config-kpi-text-KM3V5X2u.js.map +1 -0
  97. package/dist/client/chunks/{chart-config-line-Db3jDsWc.js → chart-config-line-D6jG8PCH.js} +9 -36
  98. package/dist/client/chunks/chart-config-line-D6jG8PCH.js.map +1 -0
  99. package/dist/client/chunks/chart-config-markdown-BtRIe8JN.js.map +1 -1
  100. package/dist/client/chunks/chart-config-measure-profile-DxRGa-zf.js.map +1 -1
  101. package/dist/client/chunks/{chart-config-pie-DD4SmRTF.js → chart-config-pie-BhzW-fdn.js} +6 -16
  102. package/dist/client/chunks/chart-config-pie-BhzW-fdn.js.map +1 -0
  103. package/dist/client/chunks/{chart-config-radar-CC2XAaGr.js → chart-config-radar-D7REP1q_.js} +6 -16
  104. package/dist/client/chunks/chart-config-radar-D7REP1q_.js.map +1 -0
  105. package/dist/client/chunks/{chart-config-radial-bar-DmxKx1R0.js → chart-config-radial-bar-Byx6qOPU.js} +6 -16
  106. package/dist/client/chunks/chart-config-radial-bar-Byx6qOPU.js.map +1 -0
  107. package/dist/client/chunks/chart-config-sankey-BTnWA7EW.js.map +1 -1
  108. package/dist/client/chunks/chart-config-scatter-DSYTjwRb.js.map +1 -1
  109. package/dist/client/chunks/chart-config-sunburst-Bwjtdf7X.js.map +1 -1
  110. package/dist/client/chunks/{chart-config-tree-map-BI-oQStO.js → chart-config-tree-map-DVrvf3yQ.js} +6 -16
  111. package/dist/client/chunks/chart-config-tree-map-DVrvf3yQ.js.map +1 -0
  112. package/dist/client/chunks/{chart-config-waterfall-DSnyixbI.js → chart-config-waterfall-DmFeQdIk.js} +5 -10
  113. package/dist/client/chunks/chart-config-waterfall-DmFeQdIk.js.map +1 -0
  114. package/dist/client/chunks/{chart-data-table-BO4sXsim.js → chart-data-table-CKauQXme.js} +1046 -1121
  115. package/dist/client/chunks/chart-data-table-CKauQXme.js.map +1 -0
  116. package/dist/client/chunks/{chart-funnel-DnWRsmnS.js → chart-funnel-CToKSBaL.js} +184 -222
  117. package/dist/client/chunks/chart-funnel-CToKSBaL.js.map +1 -0
  118. package/dist/client/chunks/chart-gauge-DTVezSk7.js +403 -0
  119. package/dist/client/chunks/chart-gauge-DTVezSk7.js.map +1 -0
  120. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js +236 -0
  121. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js.map +1 -0
  122. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js +408 -0
  123. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js.map +1 -0
  124. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js +244 -0
  125. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js.map +1 -0
  126. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js +185 -0
  127. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js.map +1 -0
  128. package/dist/client/chunks/chart-line-DKgrQA6c.js +101 -0
  129. package/dist/client/chunks/chart-line-DKgrQA6c.js.map +1 -0
  130. package/dist/client/chunks/{chart-markdown-dgUetjyM.js → chart-markdown-CV75S_zL.js} +2 -2
  131. package/dist/client/chunks/chart-markdown-CV75S_zL.js.map +1 -0
  132. package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js → chart-measure-profile-Ket8fJyf.js} +7 -7
  133. package/dist/client/chunks/chart-measure-profile-Ket8fJyf.js.map +1 -0
  134. package/dist/client/chunks/chart-pie-ByieAX5H.js +119 -0
  135. package/dist/client/chunks/chart-pie-ByieAX5H.js.map +1 -0
  136. package/dist/client/chunks/chart-radar-CiSwHWp4.js +138 -0
  137. package/dist/client/chunks/chart-radar-CiSwHWp4.js.map +1 -0
  138. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js +122 -0
  139. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js.map +1 -0
  140. package/dist/client/chunks/{chart-sankey-M3XpO_ah.js → chart-sankey-DjrvKw6K.js} +36 -39
  141. package/dist/client/chunks/chart-sankey-DjrvKw6K.js.map +1 -0
  142. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js +258 -0
  143. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js.map +1 -0
  144. package/dist/client/chunks/{chart-sunburst-A_u6lqlS.js → chart-sunburst-leGpuDj7.js} +3 -3
  145. package/dist/client/chunks/chart-sunburst-leGpuDj7.js.map +1 -0
  146. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js +323 -0
  147. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js.map +1 -0
  148. package/dist/client/chunks/{chart-waterfall-BuhMoagf.js → chart-waterfall-DyvQReN5.js} +7 -7
  149. package/dist/client/chunks/chart-waterfall-DyvQReN5.js.map +1 -0
  150. package/dist/client/chunks/{charts-core-jRtb0S2M.js → charts-core-DaXSt1Dd.js} +2 -2
  151. package/dist/client/chunks/charts-core-DaXSt1Dd.js.map +1 -0
  152. package/dist/client/chunks/charts-loader-DdTeCeNo.js +84 -0
  153. package/dist/client/chunks/charts-loader-DdTeCeNo.js.map +1 -0
  154. package/dist/client/chunks/{nl-NL-CpVs7ox3.js → nl-NL-2zTAWTej.js} +2 -1
  155. package/dist/client/chunks/{nl-NL-CpVs7ox3.js.map → nl-NL-2zTAWTej.js.map} +1 -1
  156. package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
  157. package/dist/client/chunks/{schema-visualization-DE09kQE3.js → schema-visualization-Cb_E9_Gd.js} +12 -12
  158. package/dist/client/chunks/schema-visualization-Cb_E9_Gd.js.map +1 -0
  159. package/dist/client/chunks/{useDirtyStateTracking-CoeQbprt.js → useDirtyStateTracking-MbpxH_v6.js} +95 -84
  160. package/dist/client/chunks/useDirtyStateTracking-MbpxH_v6.js.map +1 -0
  161. package/dist/client/chunks/{useExplainAI-DlnXWdmz.js → useExplainAI-evnZkjCY.js} +14 -14
  162. package/dist/client/chunks/useExplainAI-evnZkjCY.js.map +1 -0
  163. package/dist/client/chunks/{utils-CTKNaXS8.js → utils-3P6z1vz5.js} +2 -2
  164. package/dist/client/chunks/utils-3P6z1vz5.js.map +1 -0
  165. package/dist/client/chunks/{vendor-CPIYyeuD.js → vendor-DSpR0IW6.js} +43 -43
  166. package/dist/client/chunks/{vendor-CPIYyeuD.js.map → vendor-DSpR0IW6.js.map} +1 -1
  167. package/dist/client/client/BatchCoordinator.d.ts +1 -1
  168. package/dist/client/client/CubeClient.d.ts +1 -1
  169. package/dist/client/components/AIAssistant/index.d.ts +3 -3
  170. package/dist/client/components/AIAssistant/utils.d.ts +1 -1
  171. package/dist/client/components/AgenticNotebook/ChatMessage.d.ts +1 -1
  172. package/dist/client/components/AgenticNotebook/NotebookCanvas.d.ts +1 -1
  173. package/dist/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +1 -1
  174. package/dist/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +2 -2
  175. package/dist/client/components/AgenticNotebook/agentChatParts.d.ts +34 -0
  176. package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +39 -0
  177. package/dist/client/components/AgenticNotebook/index.d.ts +2 -2
  178. package/dist/client/components/AgenticNotebook/useAgentChatController.d.ts +25 -0
  179. package/dist/client/components/AgenticNotebook/useNotebookAutosave.d.ts +12 -0
  180. package/dist/client/components/AnalysisBuilder/AnalysisAxisDropZone.d.ts +1 -1
  181. package/dist/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +4 -4
  182. package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +1 -1
  183. package/dist/client/components/AnalysisBuilder/AnalysisFilterGroup.d.ts +2 -2
  184. package/dist/client/components/AnalysisBuilder/AnalysisFilterItem.d.ts +2 -2
  185. package/dist/client/components/AnalysisBuilder/AnalysisFilterSection.d.ts +2 -2
  186. package/dist/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +1 -1
  187. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +1 -1
  188. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +64 -0
  189. package/dist/client/components/AnalysisBuilder/AnalysisResultsHeader.d.ts +67 -0
  190. package/dist/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +1 -1
  191. package/dist/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +1 -1
  192. package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
  193. package/dist/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +1 -1
  194. package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
  195. package/dist/client/components/AnalysisBuilder/BreakdownSection.d.ts +1 -1
  196. package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
  197. package/dist/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +1 -1
  198. package/dist/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
  199. package/dist/client/components/AnalysisBuilder/ExplainAIPanel.d.ts +1 -1
  200. package/dist/client/components/AnalysisBuilder/FieldDetailPanel.d.ts +1 -1
  201. package/dist/client/components/AnalysisBuilder/FieldSearchItem.d.ts +1 -1
  202. package/dist/client/components/AnalysisBuilder/FieldSearchModal.d.ts +1 -1
  203. package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
  204. package/dist/client/components/AnalysisBuilder/FilterConfigModal.d.ts +2 -2
  205. package/dist/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
  206. package/dist/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +1 -1
  207. package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
  208. package/dist/client/components/AnalysisBuilder/FlowModeContent.d.ts +3 -3
  209. package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
  210. package/dist/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +1 -1
  211. package/dist/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +1 -1
  212. package/dist/client/components/AnalysisBuilder/FunnelModeContent.d.ts +2 -2
  213. package/dist/client/components/AnalysisBuilder/FunnelStepCard.d.ts +1 -1
  214. package/dist/client/components/AnalysisBuilder/FunnelStepList.d.ts +1 -1
  215. package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +8 -0
  216. package/dist/client/components/AnalysisBuilder/MetricItemCard.d.ts +1 -1
  217. package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
  218. package/dist/client/components/AnalysisBuilder/MetricsSection.d.ts +1 -1
  219. package/dist/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +2 -2
  220. package/dist/client/components/AnalysisBuilder/RetentionModeContent.d.ts +3 -3
  221. package/dist/client/components/AnalysisBuilder/SortToggleButton.d.ts +13 -0
  222. package/dist/client/components/AnalysisBuilder/StringArrayInput.d.ts +17 -0
  223. package/dist/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +30 -0
  224. package/dist/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +13 -0
  225. package/dist/client/components/AnalysisBuilder/hooks/useDragReorder.d.ts +25 -0
  226. package/dist/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +11 -0
  227. package/dist/client/components/AnalysisBuilder/index.d.ts +1 -1
  228. package/dist/client/components/AnalysisBuilder/types.d.ts +28 -28
  229. package/dist/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +23 -0
  230. package/dist/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +8 -0
  231. package/dist/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +7 -2
  232. package/dist/client/components/AnalysisBuilder/utils/filterUtils.d.ts +1 -1
  233. package/dist/client/components/AnalysisBuilder/utils/index.d.ts +6 -6
  234. package/dist/client/components/AnalysisBuilder/utils/queryUtils.d.ts +2 -2
  235. package/dist/client/components/AnalysisBuilder/utils/recentFieldsUtils.d.ts +2 -2
  236. package/dist/client/components/AnalysisBuilder/utils/resultsPanelDerive.d.ts +68 -0
  237. package/dist/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +68 -0
  238. package/dist/client/components/AnalysisBuilder/utils/sortUtils.d.ts +7 -0
  239. package/dist/client/components/AnalysisBuilder/utils/storageUtils.d.ts +2 -2
  240. package/dist/client/components/AnalysisBuilderLazy.d.ts +1 -1
  241. package/dist/client/components/AnalyticsDashboard.d.ts +1 -1
  242. package/dist/client/components/AnalyticsPortlet.d.ts +1 -1
  243. package/dist/client/components/ChartTypeSelector.d.ts +2 -2
  244. package/dist/client/components/DashboardFilterPanel.d.ts +1 -1
  245. package/dist/client/components/DashboardFilters/CompactFilterBar.d.ts +1 -1
  246. package/dist/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
  247. package/dist/client/components/DashboardFilters/DashboardFilterConfigModal.d.ts +2 -2
  248. package/dist/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
  249. package/dist/client/components/DashboardFilters/DashboardFilterItem.d.ts +2 -2
  250. package/dist/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
  251. package/dist/client/components/DashboardFilters/EditModeFilterList.d.ts +1 -1
  252. package/dist/client/components/DashboardFilters/FilterChip.d.ts +1 -1
  253. package/dist/client/components/DashboardFilters/FilterEditModal.d.ts +2 -2
  254. package/dist/client/components/DashboardFilters/FilterValuePopover.d.ts +1 -1
  255. package/dist/client/components/DashboardFilters/ReadOnlyFilterList.d.ts +2 -2
  256. package/dist/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +21 -0
  257. package/dist/client/components/DashboardFilters/useCompactFilterBar.d.ts +19 -0
  258. package/dist/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +69 -0
  259. package/dist/client/components/DashboardFilters/useDateRangeState.d.ts +19 -0
  260. package/dist/client/components/DashboardFilters/useFilterDropdowns.d.ts +21 -0
  261. package/dist/client/components/DashboardFilters/useFilterValueFetch.d.ts +23 -0
  262. package/dist/client/components/DashboardGrid.d.ts +2 -2
  263. package/dist/client/components/DashboardPortletCard.d.ts +2 -57
  264. package/dist/client/components/DebugModal.d.ts +2 -2
  265. package/dist/client/components/DrillBreadcrumb.d.ts +1 -1
  266. package/dist/client/components/DrillMenu.d.ts +1 -1
  267. package/dist/client/components/FloatingEditToolbar.d.ts +1 -1
  268. package/dist/client/components/MobileStackedLayout.d.ts +2 -2
  269. package/dist/client/components/PortletAnalysisModal.d.ts +1 -1
  270. package/dist/client/components/PortletContainer.d.ts +1 -1
  271. package/dist/client/components/PortletFilterConfigModal.d.ts +1 -1
  272. package/dist/client/components/RowManagedLayout.d.ts +1 -1
  273. package/dist/client/components/SchemaVisualization/CubeNode.d.ts +1 -1
  274. package/dist/client/components/SchemaVisualization/FieldDetailPanel.d.ts +1 -1
  275. package/dist/client/components/SchemaVisualization/RelationshipEdge.d.ts +1 -1
  276. package/dist/client/components/SchemaVisualization/SchemaVisualizationLazy.d.ts +1 -1
  277. package/dist/client/components/TextPortletModal.d.ts +2 -2
  278. package/dist/client/components/analyticsPortlet/PortletChart.d.ts +31 -0
  279. package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +35 -0
  280. package/dist/client/components/analyticsPortlet/PortletStates.d.ts +65 -0
  281. package/dist/client/components/analyticsPortlet/parsePortletQuery.d.ts +22 -0
  282. package/dist/client/components/analyticsPortlet/portletRenderState.d.ts +31 -0
  283. package/dist/client/components/analyticsPortlet/usePortletDebugData.d.ts +37 -0
  284. package/dist/client/components/analyticsPortlet/usePortletDrillState.d.ts +17 -0
  285. package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +37 -0
  286. package/dist/client/components/charts/ActivityGridChart.config.d.ts +1 -1
  287. package/dist/client/components/charts/ActivityGridChart.d.ts +1 -1
  288. package/dist/client/components/charts/ActivityGridChart.helpers.d.ts +33 -0
  289. package/dist/client/components/charts/ActivityGridChart.render.d.ts +31 -0
  290. package/dist/client/components/charts/AreaChart.config.d.ts +1 -1
  291. package/dist/client/components/charts/AreaChart.d.ts +1 -1
  292. package/dist/client/components/charts/AxisFormatControls.d.ts +4 -2
  293. package/dist/client/components/charts/BarChart.config.d.ts +1 -1
  294. package/dist/client/components/charts/BarChart.d.ts +1 -1
  295. package/dist/client/components/charts/BarChart.helpers.d.ts +23 -0
  296. package/dist/client/components/charts/BarSeries.d.ts +29 -0
  297. package/dist/client/components/charts/BoxPlotChart.config.d.ts +1 -1
  298. package/dist/client/components/charts/BoxPlotChart.d.ts +1 -1
  299. package/dist/client/components/charts/BubbleChart.config.d.ts +1 -1
  300. package/dist/client/components/charts/BubbleChart.d.ts +1 -1
  301. package/dist/client/components/charts/BubbleChart.helpers.d.ts +43 -0
  302. package/dist/client/components/charts/BubbleChart.render.d.ts +21 -0
  303. package/dist/client/components/charts/CandlestickChart.config.d.ts +1 -1
  304. package/dist/client/components/charts/CandlestickChart.d.ts +1 -1
  305. package/dist/client/components/charts/ChartStates.d.ts +38 -0
  306. package/dist/client/components/charts/DataTable.config.d.ts +1 -1
  307. package/dist/client/components/charts/DataTable.d.ts +1 -1
  308. package/dist/client/components/charts/FunnelChart.config.d.ts +1 -1
  309. package/dist/client/components/charts/FunnelChart.d.ts +1 -1
  310. package/dist/client/components/charts/FunnelChart.helpers.d.ts +25 -0
  311. package/dist/client/components/charts/FunnelViews.d.ts +16 -0
  312. package/dist/client/components/charts/GaugeChart.config.d.ts +1 -1
  313. package/dist/client/components/charts/GaugeChart.d.ts +1 -1
  314. package/dist/client/components/charts/HeatMapCanvas.d.ts +25 -0
  315. package/dist/client/components/charts/HeatMapChart.config.d.ts +1 -1
  316. package/dist/client/components/charts/HeatMapChart.d.ts +1 -1
  317. package/dist/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
  318. package/dist/client/components/charts/KpiDelta.config.d.ts +1 -1
  319. package/dist/client/components/charts/KpiDelta.d.ts +1 -1
  320. package/dist/client/components/charts/KpiDelta.helpers.d.ts +20 -0
  321. package/dist/client/components/charts/KpiNumber.config.d.ts +1 -1
  322. package/dist/client/components/charts/KpiNumber.d.ts +1 -1
  323. package/dist/client/components/charts/KpiNumber.helpers.d.ts +30 -0
  324. package/dist/client/components/charts/KpiStates.d.ts +19 -0
  325. package/dist/client/components/charts/KpiText.config.d.ts +1 -1
  326. package/dist/client/components/charts/KpiText.d.ts +1 -1
  327. package/dist/client/components/charts/LineChart.config.d.ts +1 -1
  328. package/dist/client/components/charts/LineChart.d.ts +1 -1
  329. package/dist/client/components/charts/MarkdownChart.config.d.ts +1 -1
  330. package/dist/client/components/charts/MarkdownChart.d.ts +1 -1
  331. package/dist/client/components/charts/MeasureProfileChart.config.d.ts +1 -1
  332. package/dist/client/components/charts/MeasureProfileChart.d.ts +1 -1
  333. package/dist/client/components/charts/PieChart.config.d.ts +1 -1
  334. package/dist/client/components/charts/PieChart.d.ts +1 -1
  335. package/dist/client/components/charts/RadarChart.config.d.ts +1 -1
  336. package/dist/client/components/charts/RadarChart.d.ts +1 -1
  337. package/dist/client/components/charts/RadialBarChart.config.d.ts +1 -1
  338. package/dist/client/components/charts/RadialBarChart.d.ts +1 -1
  339. package/dist/client/components/charts/RetentionCombinedChart.config.d.ts +1 -1
  340. package/dist/client/components/charts/RetentionCombinedChart.d.ts +1 -1
  341. package/dist/client/components/charts/RetentionHeatmap.config.d.ts +1 -1
  342. package/dist/client/components/charts/RetentionHeatmap.d.ts +1 -1
  343. package/dist/client/components/charts/SankeyChart.config.d.ts +1 -1
  344. package/dist/client/components/charts/SankeyChart.d.ts +1 -1
  345. package/dist/client/components/charts/ScatterChart.config.d.ts +1 -1
  346. package/dist/client/components/charts/ScatterChart.d.ts +1 -1
  347. package/dist/client/components/charts/ScatterChart.helpers.d.ts +43 -0
  348. package/dist/client/components/charts/ScatterSeries.d.ts +17 -0
  349. package/dist/client/components/charts/ScatterTooltip.d.ts +21 -0
  350. package/dist/client/components/charts/SunburstChart.config.d.ts +1 -1
  351. package/dist/client/components/charts/SunburstChart.d.ts +1 -1
  352. package/dist/client/components/charts/TreeMapChart.config.d.ts +1 -1
  353. package/dist/client/components/charts/TreeMapChart.d.ts +1 -1
  354. package/dist/client/components/charts/TreeMapChart.helpers.d.ts +37 -0
  355. package/dist/client/components/charts/TreeMapContent.d.ts +24 -0
  356. package/dist/client/components/charts/TreeMapLegend.d.ts +13 -0
  357. package/dist/client/components/charts/WaterfallChart.config.d.ts +1 -1
  358. package/dist/client/components/charts/WaterfallChart.d.ts +1 -1
  359. package/dist/client/components/charts/cartesianChartHelpers.d.ts +126 -0
  360. package/dist/client/components/charts/chartAxisResolution.d.ts +32 -0
  361. package/dist/client/components/charts/chartScaffolding.d.ts +77 -0
  362. package/dist/client/components/charts/gaugeChartHelpers.d.ts +36 -0
  363. package/dist/client/components/charts/index.d.ts +21 -21
  364. package/dist/client/components/charts/kpiTextHelpers.d.ts +46 -0
  365. package/dist/client/components/charts/radarChartHelpers.d.ts +14 -0
  366. package/dist/client/components/charts/radialBarChartHelpers.d.ts +22 -0
  367. package/dist/client/components/charts/useChartDimensions.d.ts +20 -0
  368. package/dist/client/components/charts/useKpiDimensions.d.ts +30 -0
  369. package/dist/client/components/dashboard/DashboardContext.d.ts +6 -6
  370. package/dist/client/components/dashboard/DashboardCoordinator.d.ts +1 -1
  371. package/dist/client/components/dashboard/DashboardEditBar.d.ts +5 -0
  372. package/dist/client/components/dashboard/DashboardProvider.d.ts +1 -1
  373. package/dist/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
  374. package/dist/client/components/dashboard/dashboardGridUtils.d.ts +1 -1
  375. package/dist/client/components/dashboard/index.d.ts +7 -7
  376. package/dist/client/components/dashboardPortletCard/FilterFieldChip.d.ts +12 -0
  377. package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +43 -0
  378. package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +33 -0
  379. package/dist/client/components/dashboardPortletCard/filterField.d.ts +12 -0
  380. package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +55 -0
  381. package/dist/client/components/dashboardPortletCard/usePortletCardActions.d.ts +16 -0
  382. package/dist/client/components/portletAnalysisModal/saveValidation.d.ts +8 -0
  383. package/dist/client/components/shared/DateRangeFilter.d.ts +1 -1
  384. package/dist/client/components/shared/FilterBuilder.d.ts +1 -1
  385. package/dist/client/components/shared/FilterGroup.d.ts +1 -1
  386. package/dist/client/components/shared/FilterItem.d.ts +1 -1
  387. package/dist/client/components/shared/FilterValueSelector.d.ts +1 -1
  388. package/dist/client/components/shared/dateRangeUtils.d.ts +40 -0
  389. package/dist/client/components/shared/filterDisplayUtils.d.ts +10 -0
  390. package/dist/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +17 -0
  391. package/dist/client/components/shared/filterItem/FilterFieldDropdown.d.ts +16 -0
  392. package/dist/client/components/shared/filterItem/dateRangeSync.d.ts +14 -0
  393. package/dist/client/components/shared/filterItem/fieldVisuals.d.ts +5 -0
  394. package/dist/client/components/shared/filterValueSelector/FilterValueInputs.d.ts +55 -0
  395. package/dist/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +25 -0
  396. package/dist/client/components/shared/queryFieldUtils.d.ts +21 -0
  397. package/dist/client/components/shared/types.d.ts +8 -8
  398. package/dist/client/components/shared/utils.d.ts +7 -46
  399. package/dist/client/components.d.ts +11 -11
  400. package/dist/client/components.js +3 -3
  401. package/dist/client/hooks/agentChatStream.d.ts +39 -0
  402. package/dist/client/hooks/analysisQueryExecutionModes.d.ts +133 -0
  403. package/dist/client/hooks/dashboard/layoutUtils.d.ts +1 -1
  404. package/dist/client/hooks/dashboard/useDashboardController.d.ts +2 -2
  405. package/dist/client/hooks/dashboard/useGridLayoutEngine.d.ts +1 -1
  406. package/dist/client/hooks/dashboard/useRowLayoutEngine.d.ts +1 -1
  407. package/dist/client/hooks/drillNavigation.d.ts +25 -0
  408. package/dist/client/hooks/queries/index.d.ts +9 -9
  409. package/dist/client/hooks/queries/useCubeLoadQuery.d.ts +2 -2
  410. package/dist/client/hooks/queries/useCubeMetaQuery.d.ts +2 -2
  411. package/dist/client/hooks/queries/useDryRunQuery.d.ts +2 -2
  412. package/dist/client/hooks/queries/useExplainAI.d.ts +1 -1
  413. package/dist/client/hooks/queries/useExplainQuery.d.ts +1 -1
  414. package/dist/client/hooks/queries/useFlowQuery.d.ts +1 -1
  415. package/dist/client/hooks/queries/useFunnelQuery.d.ts +1 -1
  416. package/dist/client/hooks/queries/useMultiCubeLoadQuery.d.ts +1 -1
  417. package/dist/client/hooks/queries/useRetentionQuery.d.ts +1 -1
  418. package/dist/client/hooks/useAgentChat.d.ts +1 -1
  419. package/dist/client/hooks/useAnalysisAI.d.ts +4 -4
  420. package/dist/client/hooks/useAnalysisBuilderHook.d.ts +27 -27
  421. package/dist/client/hooks/useAnalysisChartDefaults.d.ts +4 -4
  422. package/dist/client/hooks/useAnalysisCombinedFields.d.ts +2 -2
  423. package/dist/client/hooks/useAnalysisInitialization.d.ts +1 -1
  424. package/dist/client/hooks/useAnalysisQueryBuilder.d.ts +3 -3
  425. package/dist/client/hooks/useAnalysisQueryExecution.d.ts +7 -7
  426. package/dist/client/hooks/useAnalysisShare.d.ts +1 -1
  427. package/dist/client/hooks/useAnalysisUIState.d.ts +2 -2
  428. package/dist/client/hooks/useDashboardHook.d.ts +2 -2
  429. package/dist/client/hooks/useDataBrowser.d.ts +5 -5
  430. package/dist/client/hooks/useDrillInteraction.d.ts +1 -1
  431. package/dist/client/hooks/useTheme.d.ts +1 -1
  432. package/dist/client/hooks/useTranslation.d.ts +1 -1
  433. package/dist/client/hooks.d.ts +11 -11
  434. package/dist/client/hooks.js +3 -3
  435. package/dist/client/icons/defaultIcons.d.ts +1 -1
  436. package/dist/client/icons/index.d.ts +3 -3
  437. package/dist/client/icons/registry.d.ts +1 -1
  438. package/dist/client/icons.js +2 -2
  439. package/dist/client/index.d.ts +74 -74
  440. package/dist/client/index.js +816 -669
  441. package/dist/client/index.js.map +1 -1
  442. package/dist/client/providers/CubeApiProvider.d.ts +3 -3
  443. package/dist/client/providers/CubeFeaturesProvider.d.ts +1 -1
  444. package/dist/client/providers/CubeMetaContext.d.ts +1 -1
  445. package/dist/client/providers/CubeProvider.d.ts +7 -7
  446. package/dist/client/providers/I18nProvider.d.ts +1 -1
  447. package/dist/client/providers.d.ts +4 -4
  448. package/dist/client/providers.js +3 -3
  449. package/dist/client/schema.d.ts +2 -2
  450. package/dist/client/schema.js +1 -1
  451. package/dist/client/shared/chartConfigBuilders.d.ts +18 -0
  452. package/dist/client/shared/chartDefaults.d.ts +4 -4
  453. package/dist/client/shared/components/QueryAnalysisPanel.d.ts +1 -1
  454. package/dist/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
  455. package/dist/client/shared/index.d.ts +7 -7
  456. package/dist/client/shared/queryTransforms.d.ts +20 -0
  457. package/dist/client/shared/types.d.ts +1 -1
  458. package/dist/client/shared/utils.d.ts +4 -6
  459. package/dist/client/stores/analysisBuilderStore.d.ts +9 -9
  460. package/dist/client/stores/dashboardStore.d.ts +3 -3
  461. package/dist/client/stores/dataBrowserStore.d.ts +1 -1
  462. package/dist/client/stores/notebookStore.d.ts +1 -1
  463. package/dist/client/stores/optionsToAnalysisConfig.d.ts +17 -0
  464. package/dist/client/stores/slices/coreSlice.d.ts +3 -3
  465. package/dist/client/stores/slices/flowSlice.d.ts +3 -3
  466. package/dist/client/stores/slices/funnelSlice.d.ts +3 -3
  467. package/dist/client/stores/slices/index.d.ts +7 -7
  468. package/dist/client/stores/slices/querySlice.d.ts +3 -3
  469. package/dist/client/stores/slices/retentionSlice.d.ts +3 -3
  470. package/dist/client/stores/slices/uiSlice.d.ts +2 -2
  471. package/dist/client/styles.css +1 -1
  472. package/dist/client/types/analysisConfig.d.ts +4 -4
  473. package/dist/client/types/drill.d.ts +5 -5
  474. package/dist/client/types/flow.d.ts +2 -2
  475. package/dist/client/types/funnel.d.ts +1 -1
  476. package/dist/client/types/retention.d.ts +2 -2
  477. package/dist/client/types.d.ts +12 -12
  478. package/dist/client/utils/axisValueFormatting.d.ts +32 -0
  479. package/dist/client/utils/chartUtils.d.ts +1 -1
  480. package/dist/client/utils/configMigration.d.ts +2 -2
  481. package/dist/client/utils/drillQueryBuilder.d.ts +2 -2
  482. package/dist/client/utils/exportXlsx.d.ts +2 -2
  483. package/dist/client/utils/filterUtils.d.ts +1 -1
  484. package/dist/client/utils/funnelExecution.d.ts +2 -2
  485. package/dist/client/utils/funnelValidation.d.ts +2 -2
  486. package/dist/client/utils/index.d.ts +10 -10
  487. package/dist/client/utils/joinReachability.d.ts +1 -1
  488. package/dist/client/utils/multiQueryUtils.d.ts +1 -1
  489. package/dist/client/utils/multiQueryValidation.d.ts +1 -1
  490. package/dist/client/utils/pivotUtils.d.ts +1 -1
  491. package/dist/client/utils/shareUtils.d.ts +1 -1
  492. package/dist/client/utils/thumbnail.d.ts +1 -1
  493. package/dist/client/utils/timeValueFormatting.d.ts +32 -0
  494. package/dist/client/utils.d.ts +2 -2
  495. package/dist/client/utils.js +6 -6
  496. package/dist/client-bundle-stats.html +1 -1
  497. package/dist/mcp-app/mcp-app.html +55 -55
  498. package/dist/server/{server/adapters → adapters}/base-adapter.d.ts +81 -36
  499. package/dist/server/adapters/databend-adapter.d.ts +63 -0
  500. package/dist/server/{server/adapters → adapters}/duckdb-adapter.d.ts +6 -60
  501. package/dist/server/adapters/mysql-adapter.d.ts +65 -0
  502. package/dist/server/adapters/postgres-adapter.d.ts +55 -0
  503. package/dist/server/{server/adapters → adapters}/singlestore-adapter.d.ts +1 -1
  504. package/dist/server/adapters/snowflake-adapter.d.ts +53 -0
  505. package/dist/server/{server/adapters → adapters}/sqlite-adapter.d.ts +13 -33
  506. package/dist/server/adapters/window-function-builder.d.ts +11 -0
  507. package/dist/server/{server/agent → agent}/chart-validation.d.ts +0 -5
  508. package/dist/server/agent/handler-steps.d.ts +37 -0
  509. package/dist/server/{server/agent → agent}/handler.d.ts +3 -3
  510. package/dist/server/agent/index.d.ts +11 -0
  511. package/dist/server/{server/agent → agent}/providers/anthropic.d.ts +1 -1
  512. package/dist/server/{server/agent → agent}/providers/factory.d.ts +1 -1
  513. package/dist/server/{server/agent → agent}/providers/google.d.ts +1 -1
  514. package/dist/server/agent/providers/index.d.ts +6 -0
  515. package/dist/server/{server/agent → agent}/providers/openai.d.ts +1 -1
  516. package/dist/server/{server/agent → agent}/system-prompt.d.ts +1 -1
  517. package/dist/server/{server/agent → agent}/tools.d.ts +4 -4
  518. package/dist/server/{server/agent → agent}/types.d.ts +1 -1
  519. package/dist/server/ai/discovery-helpers.d.ts +29 -0
  520. package/dist/server/{server/ai → ai}/discovery.d.ts +6 -2
  521. package/dist/server/{server/ai → ai}/index.d.ts +6 -6
  522. package/dist/server/ai/suggestion-helpers.d.ts +33 -0
  523. package/dist/server/{server/ai → ai}/suggestion.d.ts +2 -5
  524. package/dist/server/ai/validation-helpers.d.ts +21 -0
  525. package/dist/server/{server/ai → ai}/validation.d.ts +2 -5
  526. package/dist/server/builders/analysis-utils.d.ts +106 -0
  527. package/dist/server/{server/builders → builders}/comparison-query-builder.d.ts +2 -2
  528. package/dist/server/{server/builders → builders}/cte-builder.d.ts +48 -2
  529. package/dist/server/{server/builders → builders}/date-time-builder.d.ts +7 -2
  530. package/dist/server/builders/date-time-helpers.d.ts +34 -0
  531. package/dist/server/{server/builders → builders}/filter-builder.d.ts +5 -3
  532. package/dist/server/builders/filter-operators.d.ts +23 -0
  533. package/dist/server/builders/flow-query-builder.d.ts +136 -0
  534. package/dist/server/{server/builders → builders}/funnel-query-builder.d.ts +18 -7
  535. package/dist/server/{server/builders → builders}/group-by-builder.d.ts +13 -2
  536. package/dist/server/builders/index.d.ts +13 -0
  537. package/dist/server/{server/builders → builders}/measure-builder.d.ts +46 -3
  538. package/dist/server/{server/builders → builders}/retention-query-builder.d.ts +14 -16
  539. package/dist/server/cache-providers/index.d.ts +5 -0
  540. package/dist/server/{server/cache-providers → cache-providers}/memory.d.ts +1 -1
  541. package/dist/server/{server/cache-utils.d.ts → cache-utils.d.ts} +26 -6
  542. package/dist/server/compiler-metadata.d.ts +11 -0
  543. package/dist/server/{server/compiler.d.ts → compiler.d.ts} +9 -15
  544. package/dist/server/{server/cube-utils.d.ts → cube-utils.d.ts} +29 -4
  545. package/dist/server/{server/database-utils.d.ts → database-utils.d.ts} +1 -1
  546. package/dist/server/execution/annotation-builder.d.ts +12 -0
  547. package/dist/server/execution/filter-cache-preloader.d.ts +19 -0
  548. package/dist/server/execution/mode-router.d.ts +25 -0
  549. package/dist/server/execution/query-result-cache.d.ts +21 -0
  550. package/dist/server/execution/result-post-processor.d.ts +10 -0
  551. package/dist/server/{server/executor.d.ts → executor.d.ts} +35 -32
  552. package/dist/server/{server/executors → executors}/base-executor.d.ts +2 -2
  553. package/dist/server/{server/executors → executors}/databend-executor.d.ts +2 -2
  554. package/dist/server/{server/executors → executors}/duckdb-executor.d.ts +2 -2
  555. package/dist/server/executors/explain-utils.d.ts +28 -0
  556. package/dist/server/{server/executors → executors}/index.d.ts +9 -9
  557. package/dist/server/{server/executors → executors}/mysql-executor.d.ts +2 -2
  558. package/dist/server/{server/executors → executors}/postgres-executor.d.ts +2 -2
  559. package/dist/server/{server/executors → executors}/singlestore-executor.d.ts +2 -2
  560. package/dist/server/{server/executors → executors}/snowflake-executor.d.ts +2 -2
  561. package/dist/server/{server/executors → executors}/sqlite-executor.d.ts +2 -2
  562. package/dist/server/{server/explain → explain}/databend-parser.d.ts +1 -1
  563. package/dist/server/{server/explain → explain}/duckdb-parser.d.ts +1 -1
  564. package/dist/server/explain/explain-tree.d.ts +20 -0
  565. package/dist/server/explain/index.d.ts +9 -0
  566. package/dist/server/{server/explain → explain}/mysql-parser.d.ts +1 -1
  567. package/dist/server/{server/explain → explain}/postgres-parser.d.ts +1 -1
  568. package/dist/server/{server/explain → explain}/snowflake-parser.d.ts +1 -1
  569. package/dist/server/{server/explain → explain}/sqlite-parser.d.ts +1 -1
  570. package/dist/server/{server/filter-cache.d.ts → filter-cache.d.ts} +2 -2
  571. package/dist/server/{server/gap-filler.d.ts → gap-filler.d.ts} +8 -2
  572. package/dist/server/google-BOnRIN1w.cjs +2 -0
  573. package/dist/{adapters/google-CFYljAOF.js → server/google-CvKM9yVM.js} +83 -71
  574. package/dist/server/index.cjs +179 -211
  575. package/dist/server/index.d.ts +38 -2
  576. package/dist/server/index.js +6330 -6458
  577. package/dist/server/logical-plan/cte-planner-helpers.d.ts +37 -0
  578. package/dist/server/logical-plan/cte-planner.d.ts +104 -0
  579. package/dist/server/logical-plan/filter-propagation.d.ts +44 -0
  580. package/dist/server/{server/logical-plan → logical-plan}/index.d.ts +11 -6
  581. package/dist/server/logical-plan/join-planner.d.ts +27 -0
  582. package/dist/server/{server/logical-plan → logical-plan}/logical-plan-builder.d.ts +5 -5
  583. package/dist/server/logical-plan/logical-planner.d.ts +39 -0
  584. package/dist/server/{server/logical-plan → logical-plan}/optimiser.d.ts +4 -2
  585. package/dist/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
  586. package/dist/server/logical-plan/planner-utils.d.ts +20 -0
  587. package/dist/server/{server/logical-plan → logical-plan}/types.d.ts +18 -10
  588. package/dist/server/measure-classification.d.ts +40 -0
  589. package/dist/server/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
  590. package/dist/server/openai-vXvLni8v.cjs +1 -0
  591. package/dist/server/physical-plan/drizzle-plan-builder.d.ts +50 -0
  592. package/dist/server/{server/physical-plan → physical-plan}/drizzle-sql-builder.d.ts +14 -3
  593. package/dist/server/physical-plan/index.d.ts +2 -0
  594. package/dist/server/{server/physical-plan → physical-plan}/processors/cte-processor.d.ts +2 -2
  595. package/dist/server/physical-plan/processors/index.d.ts +8 -0
  596. package/dist/server/{server/physical-plan → physical-plan}/processors/joins-processor.d.ts +2 -2
  597. package/dist/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
  598. package/dist/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
  599. package/dist/server/{server/physical-plan → physical-plan}/processors/predicates-processor.d.ts +2 -2
  600. package/dist/server/{server/physical-plan → physical-plan}/processors/selection-processor.d.ts +2 -2
  601. package/dist/server/{server/physical-plan → physical-plan}/processors/shared.d.ts +9 -4
  602. package/dist/server/{server/physical-plan → physical-plan}/processors/window-processor.d.ts +2 -2
  603. package/dist/server/query-handlers.d.ts +79 -0
  604. package/dist/server/query-modes.d.ts +28 -0
  605. package/dist/server/query-validator.d.ts +9 -0
  606. package/dist/server/{server/resolvers → resolvers}/calculated-measure-resolver.d.ts +6 -1
  607. package/dist/server/{server/resolvers → resolvers}/index.d.ts +2 -2
  608. package/dist/server/{server/resolvers → resolvers}/join-path-resolver.d.ts +7 -1
  609. package/dist/server/sql-format.d.ts +11 -0
  610. package/dist/server/{server/template-substitution.d.ts → template-substitution.d.ts} +1 -1
  611. package/dist/server/{server/types → types}/cache.d.ts +1 -1
  612. package/dist/server/{server/types → types}/cube.d.ts +22 -8
  613. package/dist/server/{server/types → types}/executor.d.ts +2 -2
  614. package/dist/server/{server/types → types}/flow.d.ts +7 -6
  615. package/dist/server/{server/types → types}/funnel.d.ts +1 -1
  616. package/dist/server/types/index.d.ts +11 -0
  617. package/dist/server/{server/types → types}/metadata.d.ts +1 -1
  618. package/dist/server/{server/types → types}/query.d.ts +4 -4
  619. package/dist/server/{server/types → types}/retention.d.ts +1 -1
  620. package/dist/server/{server/types → types}/utils.d.ts +1 -1
  621. package/dist/server/types/validation.d.ts +14 -0
  622. package/package.json +22 -7
  623. package/dist/adapters/google-DUlXeeDA.cjs +0 -2
  624. package/dist/adapters/handler-CzbCuS6_.cjs +0 -25
  625. package/dist/adapters/locale-BPB7flIG.js +0 -8249
  626. package/dist/adapters/locale-tIMrNcCr.cjs +0 -198
  627. package/dist/adapters/mcp-transport-C2QzXm6h.cjs +0 -40
  628. package/dist/adapters/mcp-transport-D0B3S1tB.js +0 -579
  629. package/dist/adapters/openai-D_U4V0kT.cjs +0 -1
  630. package/dist/adapters/utils-KV37IBIv.cjs +0 -128
  631. package/dist/client/chunks/DashboardEditModal-CjCIAT-J.js.map +0 -1
  632. package/dist/client/chunks/RetentionCombinedChart-BPkfcTa8.js.map +0 -1
  633. package/dist/client/chunks/RetentionHeatmap-DGzLzr7h.js.map +0 -1
  634. package/dist/client/chunks/analysis-builder-MuMIzoRq.js +0 -5367
  635. package/dist/client/chunks/analysis-builder-MuMIzoRq.js.map +0 -1
  636. package/dist/client/chunks/analysis-builder-shared-CYVwSPqt.js.map +0 -1
  637. package/dist/client/chunks/chart-activity-grid-DmruKPab.js.map +0 -1
  638. package/dist/client/chunks/chart-area-DHCPM4Em.js +0 -450
  639. package/dist/client/chunks/chart-area-DHCPM4Em.js.map +0 -1
  640. package/dist/client/chunks/chart-bar-KddciGDv.js +0 -271
  641. package/dist/client/chunks/chart-bar-KddciGDv.js.map +0 -1
  642. package/dist/client/chunks/chart-box-plot-DYKfyOI8.js.map +0 -1
  643. package/dist/client/chunks/chart-bubble-CfqiB538.js +0 -273
  644. package/dist/client/chunks/chart-bubble-CfqiB538.js.map +0 -1
  645. package/dist/client/chunks/chart-candlestick-Dwc92Mrj.js.map +0 -1
  646. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js +0 -101
  647. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js.map +0 -1
  648. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js +0 -95
  649. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js.map +0 -1
  650. package/dist/client/chunks/chart-config-box-plot-DJ-dWWXA.js.map +0 -1
  651. package/dist/client/chunks/chart-config-gauge-DSwC04l0.js.map +0 -1
  652. package/dist/client/chunks/chart-config-kpi-delta-D6BIkHL3.js.map +0 -1
  653. package/dist/client/chunks/chart-config-kpi-number-Bx-V9a62.js.map +0 -1
  654. package/dist/client/chunks/chart-config-kpi-text-CcqC1u-8.js.map +0 -1
  655. package/dist/client/chunks/chart-config-line-Db3jDsWc.js.map +0 -1
  656. package/dist/client/chunks/chart-config-pie-DD4SmRTF.js.map +0 -1
  657. package/dist/client/chunks/chart-config-radar-CC2XAaGr.js.map +0 -1
  658. package/dist/client/chunks/chart-config-radial-bar-DmxKx1R0.js.map +0 -1
  659. package/dist/client/chunks/chart-config-tree-map-BI-oQStO.js.map +0 -1
  660. package/dist/client/chunks/chart-config-waterfall-DSnyixbI.js.map +0 -1
  661. package/dist/client/chunks/chart-data-table-BO4sXsim.js.map +0 -1
  662. package/dist/client/chunks/chart-funnel-DnWRsmnS.js.map +0 -1
  663. package/dist/client/chunks/chart-gauge-CgMeqeGb.js +0 -424
  664. package/dist/client/chunks/chart-gauge-CgMeqeGb.js.map +0 -1
  665. package/dist/client/chunks/chart-heat-map-DcGm9SWK.js +0 -231
  666. package/dist/client/chunks/chart-heat-map-DcGm9SWK.js.map +0 -1
  667. package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js +0 -343
  668. package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js.map +0 -1
  669. package/dist/client/chunks/chart-kpi-number-gWYF44ol.js +0 -322
  670. package/dist/client/chunks/chart-kpi-number-gWYF44ol.js.map +0 -1
  671. package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js +0 -149
  672. package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js.map +0 -1
  673. package/dist/client/chunks/chart-line-9BEGN5Ti.js +0 -433
  674. package/dist/client/chunks/chart-line-9BEGN5Ti.js.map +0 -1
  675. package/dist/client/chunks/chart-markdown-dgUetjyM.js.map +0 -1
  676. package/dist/client/chunks/chart-measure-profile-ClfpLs4q.js.map +0 -1
  677. package/dist/client/chunks/chart-pie-BjAIhyOi.js +0 -172
  678. package/dist/client/chunks/chart-pie-BjAIhyOi.js.map +0 -1
  679. package/dist/client/chunks/chart-radar-Dgkcl2bN.js +0 -154
  680. package/dist/client/chunks/chart-radar-Dgkcl2bN.js.map +0 -1
  681. package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js +0 -148
  682. package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js.map +0 -1
  683. package/dist/client/chunks/chart-sankey-M3XpO_ah.js.map +0 -1
  684. package/dist/client/chunks/chart-scatter-DaHYP_OL.js +0 -255
  685. package/dist/client/chunks/chart-scatter-DaHYP_OL.js.map +0 -1
  686. package/dist/client/chunks/chart-sunburst-A_u6lqlS.js.map +0 -1
  687. package/dist/client/chunks/chart-tree-map-uiwUU4nb.js +0 -298
  688. package/dist/client/chunks/chart-tree-map-uiwUU4nb.js.map +0 -1
  689. package/dist/client/chunks/chart-waterfall-BuhMoagf.js.map +0 -1
  690. package/dist/client/chunks/charts-core-jRtb0S2M.js.map +0 -1
  691. package/dist/client/chunks/schema-visualization-DE09kQE3.js.map +0 -1
  692. package/dist/client/chunks/useDirtyStateTracking-CoeQbprt.js.map +0 -1
  693. package/dist/client/chunks/useExplainAI-DlnXWdmz.js.map +0 -1
  694. package/dist/client/chunks/utils-CTKNaXS8.js.map +0 -1
  695. package/dist/server/google-DUlXeeDA.cjs +0 -2
  696. package/dist/server/openai-D_U4V0kT.cjs +0 -1
  697. package/dist/server/server/adapters/databend-adapter.d.ts +0 -114
  698. package/dist/server/server/adapters/mysql-adapter.d.ts +0 -122
  699. package/dist/server/server/adapters/postgres-adapter.d.ts +0 -119
  700. package/dist/server/server/adapters/snowflake-adapter.d.ts +0 -116
  701. package/dist/server/server/agent/index.d.ts +0 -11
  702. package/dist/server/server/agent/providers/index.d.ts +0 -6
  703. package/dist/server/server/builders/flow-query-builder.d.ts +0 -109
  704. package/dist/server/server/builders/index.d.ts +0 -13
  705. package/dist/server/server/cache-providers/index.d.ts +0 -5
  706. package/dist/server/server/explain/index.d.ts +0 -9
  707. package/dist/server/server/index.d.ts +0 -36
  708. package/dist/server/server/logical-plan/logical-planner.d.ts +0 -232
  709. package/dist/server/server/physical-plan/drizzle-plan-builder.d.ts +0 -50
  710. package/dist/server/server/physical-plan/index.d.ts +0 -2
  711. package/dist/server/server/physical-plan/processors/index.d.ts +0 -6
  712. package/dist/server/server/types/index.d.ts +0 -11
  713. /package/dist/server/{server/agent → agent}/providers/types.d.ts +0 -0
  714. /package/dist/server/{server/ai → ai}/mcp-prompts.d.ts +0 -0
  715. /package/dist/server/{server/ai → ai}/query-schema.d.ts +0 -0
  716. /package/dist/server/{server/ai → ai}/schemas.d.ts +0 -0
  717. /package/dist/server/{server/prompts → prompts}/explain-analysis-prompt.d.ts +0 -0
  718. /package/dist/server/{server/prompts → prompts}/index.d.ts +0 -0
  719. /package/dist/server/{server/prompts → prompts}/single-step-prompt.d.ts +0 -0
  720. /package/dist/server/{server/prompts → prompts}/step0-validation-prompt.d.ts +0 -0
  721. /package/dist/server/{server/prompts → prompts}/step1-shape-prompt.d.ts +0 -0
  722. /package/dist/server/{server/prompts → prompts}/step2-complete-prompt.d.ts +0 -0
  723. /package/dist/server/{server/prompts → prompts}/types.d.ts +0 -0
  724. /package/dist/server/{server/types → types}/analysis.d.ts +0 -0
  725. /package/dist/server/{server/types → types}/core.d.ts +0 -0
@@ -812,6 +812,7 @@ var v = (e, t, n) => {
812
812
  "server.validation.retention.dateRangeRequired": "Date range is required",
813
813
  "server.validation.retention.dateRangeStartBeforeEnd": "Date range start must be before or equal to end",
814
814
  "server.validation.retention.dateRangeStartRequired": "Date range start is required",
815
+ "server.validation.retention.engineNotSupported": "Retention queries are not supported on {engine}. Use PostgreSQL or DuckDB for retention analysis.",
815
816
  "server.validation.retention.invalidBindingKeyFormat": "Invalid binding key format: {bindingKey}. Expected 'CubeName.dimensionName'",
816
817
  "server.validation.retention.invalidBreakdownDimFormat": "Invalid breakdown dimension format: {dimension}. Expected 'CubeName.dimensionName'",
817
818
  "server.validation.retention.invalidGranularity": "Invalid granularity: {granularity}",
@@ -1529,17 +1530,17 @@ var v = (e, t, n) => {
1529
1530
  "mcp.footer.dimensions": "{count} dimension",
1530
1531
  "mcp.footer.dimensionsPlural": "{count} dimensions"
1531
1532
  }, x = "en-GB", S = b, C = !1;
1532
- function w(e) {
1533
+ function ee(e) {
1533
1534
  C = e;
1534
1535
  }
1535
- function T(e, t) {
1536
+ function w(e, t) {
1536
1537
  let n = S[e];
1537
1538
  return n ? t ? n.replace(/\{(\w+)\}/g, (e, n) => {
1538
1539
  let r = t[n];
1539
1540
  return r === void 0 ? `{${n}}` : String(r);
1540
1541
  }) : n : (C && typeof console < "u" && console.warn(`[drizzle-cube i18n] Missing translation key: "${e}"`), e);
1541
1542
  }
1542
- async function E(e) {
1543
+ async function te(e) {
1543
1544
  if (e === "nl" && (e = "nl-NL"), e === "en-GB" || e === "en") {
1544
1545
  x = "en-GB", S = b;
1545
1546
  return;
@@ -1549,7 +1550,7 @@ async function E(e) {
1549
1550
  "./locales/af-ZA.json": () => import("./af-ZA-BTaChuqI.js"),
1550
1551
  "./locales/en-US.json": () => import("./en-US-BE6VoG0o.js"),
1551
1552
  "./locales/en.json": () => Promise.resolve().then(() => y),
1552
- "./locales/nl-NL.json": () => import("./nl-NL-CpVs7ox3.js")
1553
+ "./locales/nl-NL.json": () => import("./nl-NL-2zTAWTej.js")
1553
1554
  }), `./locales/${e}.json`, 3);
1554
1555
  x = e, S = {
1555
1556
  ...b,
@@ -1559,39 +1560,39 @@ async function E(e) {
1559
1560
  typeof console < "u" && console.warn(`[drizzle-cube] Failed to load locale "${e}", falling back to en-GB`), x = "en-GB", S = b;
1560
1561
  }
1561
1562
  }
1562
- function D(e, t) {
1563
+ function ne(e, t) {
1563
1564
  x = e, S = {
1564
1565
  ...b,
1565
1566
  ...t
1566
1567
  };
1567
1568
  }
1568
- function O() {
1569
+ function T() {
1569
1570
  return x;
1570
1571
  }
1571
- function k() {
1572
+ function re() {
1572
1573
  return S;
1573
1574
  }
1574
1575
  //#endregion
1575
1576
  //#region src/client/providers/I18nProvider.tsx
1576
- var A = n({
1577
- t: T,
1577
+ var E = n({
1578
+ t: w,
1578
1579
  locale: "en-GB"
1579
1580
  });
1580
- function j({ locale: e = "en-GB", translations: t, children: n }) {
1581
- let [r, i] = l(!1), [o, s] = l(O());
1581
+ function ie({ locale: e = "en-GB", translations: t, children: n }) {
1582
+ let [r, i] = l(!1), [o, s] = l(T());
1582
1583
  return a(() => {
1583
1584
  let n = !1;
1584
1585
  return (async () => {
1585
- await E(e), t && !n && D(e, {
1586
- ...k(),
1586
+ await te(e), t && !n && ne(e, {
1587
+ ...re(),
1587
1588
  ...t
1588
- }), n || (s(O()), i(!0));
1589
+ }), n || (s(T()), i(!0));
1589
1590
  })(), () => {
1590
1591
  n = !0;
1591
1592
  };
1592
- }, [e, t]), /* @__PURE__ */ u(A.Provider, {
1593
+ }, [e, t]), /* @__PURE__ */ u(E.Provider, {
1593
1594
  value: {
1594
- t: T,
1595
+ t: w,
1595
1596
  locale: r ? o : e
1596
1597
  },
1597
1598
  children: n
@@ -1599,84 +1600,16 @@ function j({ locale: e = "en-GB", translations: t, children: n }) {
1599
1600
  }
1600
1601
  //#endregion
1601
1602
  //#region src/client/hooks/useTranslation.ts
1602
- function M(e) {
1603
- let { t, locale: n } = i(A);
1603
+ function D(e) {
1604
+ let { t, locale: n } = i(E);
1604
1605
  return {
1605
1606
  t: r((n, r) => t(e ? `${e}.${n}` : n, r), [t, e]),
1606
1607
  locale: n
1607
1608
  };
1608
1609
  }
1609
1610
  //#endregion
1610
- //#region src/client/utils/chartUtils.ts
1611
- function N(e) {
1612
- return e != null && !isNaN(Number(e));
1613
- }
1614
- function P(e) {
1615
- if (e == null) return null;
1616
- let t = typeof e == "string" ? parseFloat(e) : Number(e);
1617
- return isNaN(t) ? null : t;
1618
- }
1619
- function F(e) {
1620
- if (e == null) return "No data";
1621
- let t = typeof e == "number" ? e : parseFloat(e);
1622
- return isNaN(t) ? String(e) : Number.isInteger(t) ? t.toLocaleString() : parseFloat(t.toFixed(2)).toLocaleString();
1623
- }
1624
- function I(e, t, n) {
1625
- if (e == null) return "No data";
1626
- let r = typeof e == "number" ? e : parseFloat(String(e));
1627
- if (isNaN(r)) return String(e);
1628
- if (!isFinite(r)) return r > 0 ? "∞" : "-∞";
1629
- let i = n || (typeof navigator < "u" ? navigator.language : "en-US");
1630
- if (!t) return F(e);
1631
- let { unit: a, abbreviate: o = !0, decimals: s, customPrefix: c, customSuffix: l } = t, u = r, d = "";
1632
- if (o) {
1633
- let e = Math.abs(r);
1634
- e >= 1e9 ? (u = r / 1e9, d = "B") : e >= 1e6 ? (u = r / 1e6, d = "M") : e >= 1e3 && (u = r / 1e3, d = "K");
1635
- }
1636
- let f = s === void 0 ? Number.isInteger(u) ? 0 : 2 : s;
1637
- switch (a) {
1638
- case "currency": {
1639
- let e = L(i);
1640
- if (o && d) {
1641
- let t = new Intl.NumberFormat(i, {
1642
- style: "currency",
1643
- currency: e,
1644
- minimumFractionDigits: f,
1645
- maximumFractionDigits: f
1646
- }).format(u), n = new Intl.NumberFormat(i, {
1647
- style: "currency",
1648
- currency: e
1649
- }).formatToParts(u);
1650
- return n[n.length - 1]?.type === "currency" ? t.replace(/(\s*[^\d\s]+)$/, d + "$1") : t + d;
1651
- }
1652
- return new Intl.NumberFormat(i, {
1653
- style: "currency",
1654
- currency: e,
1655
- minimumFractionDigits: f,
1656
- maximumFractionDigits: f
1657
- }).format(u);
1658
- }
1659
- case "percent": {
1660
- let e = Math.abs(u) <= 1 && !o ? u * 100 : u;
1661
- return new Intl.NumberFormat(i, {
1662
- minimumFractionDigits: f,
1663
- maximumFractionDigits: f
1664
- }).format(e) + d + "%";
1665
- }
1666
- case "custom": {
1667
- let e = c || "", t = l || "";
1668
- return e + new Intl.NumberFormat(i, {
1669
- minimumFractionDigits: f,
1670
- maximumFractionDigits: f
1671
- }).format(u) + d + t;
1672
- }
1673
- default: return new Intl.NumberFormat(i, {
1674
- minimumFractionDigits: f,
1675
- maximumFractionDigits: f
1676
- }).format(u) + d;
1677
- }
1678
- }
1679
- function L(e) {
1611
+ //#region src/client/utils/axisValueFormatting.ts
1612
+ function ae(e) {
1680
1613
  return {
1681
1614
  US: "USD",
1682
1615
  CA: "CAD",
@@ -1722,40 +1655,162 @@ function L(e) {
1722
1655
  TR: "TRY"
1723
1656
  }[e.split("-")[1]?.toUpperCase()] || "USD";
1724
1657
  }
1725
- function R(e) {
1726
- return (t) => I(t, e);
1658
+ function oe(e, t) {
1659
+ if (!t) return {
1660
+ displayValue: e,
1661
+ abbreviationSuffix: ""
1662
+ };
1663
+ let n = Math.abs(e);
1664
+ return n >= 1e9 ? {
1665
+ displayValue: e / 1e9,
1666
+ abbreviationSuffix: "B"
1667
+ } : n >= 1e6 ? {
1668
+ displayValue: e / 1e6,
1669
+ abbreviationSuffix: "M"
1670
+ } : n >= 1e3 ? {
1671
+ displayValue: e / 1e3,
1672
+ abbreviationSuffix: "K"
1673
+ } : {
1674
+ displayValue: e,
1675
+ abbreviationSuffix: ""
1676
+ };
1727
1677
  }
1728
- function z(e, t) {
1678
+ function se(e) {
1679
+ let { displayValue: t, abbreviate: n, abbreviationSuffix: r, decimals: i, locale: a } = e, o = ae(a);
1680
+ if (n && r) {
1681
+ let e = new Intl.NumberFormat(a, {
1682
+ style: "currency",
1683
+ currency: o,
1684
+ minimumFractionDigits: i,
1685
+ maximumFractionDigits: i
1686
+ }).format(t), n = new Intl.NumberFormat(a, {
1687
+ style: "currency",
1688
+ currency: o
1689
+ }).formatToParts(t);
1690
+ return n[n.length - 1]?.type === "currency" ? e.replace(/(\s*[^\d\s]+)$/, r + "$1") : e + r;
1691
+ }
1692
+ return new Intl.NumberFormat(a, {
1693
+ style: "currency",
1694
+ currency: o,
1695
+ minimumFractionDigits: i,
1696
+ maximumFractionDigits: i
1697
+ }).format(t);
1698
+ }
1699
+ function ce(e) {
1700
+ let { displayValue: t, abbreviate: n, abbreviationSuffix: r, decimals: i, locale: a } = e, o = Math.abs(t) <= 1 && !n ? t * 100 : t;
1701
+ return new Intl.NumberFormat(a, {
1702
+ minimumFractionDigits: i,
1703
+ maximumFractionDigits: i
1704
+ }).format(o) + r + "%";
1705
+ }
1706
+ function le(e) {
1707
+ let { displayValue: t, abbreviationSuffix: n, decimals: r, locale: i, config: a } = e, o = a.customPrefix || "", s = a.customSuffix || "";
1708
+ return o + new Intl.NumberFormat(i, {
1709
+ minimumFractionDigits: r,
1710
+ maximumFractionDigits: r
1711
+ }).format(t) + n + s;
1712
+ }
1713
+ function O(e) {
1714
+ let { displayValue: t, abbreviationSuffix: n, decimals: r, locale: i } = e;
1715
+ return new Intl.NumberFormat(i, {
1716
+ minimumFractionDigits: r,
1717
+ maximumFractionDigits: r
1718
+ }).format(t) + n;
1719
+ }
1720
+ var ue = {
1721
+ currency: se,
1722
+ percent: ce,
1723
+ custom: le,
1724
+ number: O
1725
+ };
1726
+ function de(e) {
1727
+ return ((e.config.unit ? ue[e.config.unit] : void 0) || O)(e);
1728
+ }
1729
+ //#endregion
1730
+ //#region src/client/utils/timeValueFormatting.ts
1731
+ function fe(e) {
1732
+ if (!e.match(/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}/)) return null;
1733
+ let t = e;
1734
+ e.includes(" ") && (t = e.replace(" ", "T").replace("+00", "Z").replace(/\+\d{2}:\d{2}$/, "Z")), !t.endsWith("Z") && !t.includes("+") && (t += "Z");
1735
+ let n = new Date(t);
1736
+ return isNaN(n.getTime()) ? null : {
1737
+ date: n,
1738
+ year: n.getUTCFullYear(),
1739
+ month: String(n.getUTCMonth() + 1).padStart(2, "0"),
1740
+ day: String(n.getUTCDate()).padStart(2, "0"),
1741
+ hours: n.getUTCHours(),
1742
+ minutes: n.getUTCMinutes()
1743
+ };
1744
+ }
1745
+ function pe(e, t) {
1746
+ let { date: n, year: r, month: i, day: a, hours: o, minutes: s } = e;
1747
+ switch (t.toLowerCase()) {
1748
+ case "year": return `${r}`;
1749
+ case "quarter": return `${r}-Q${Math.floor(n.getUTCMonth() / 3) + 1}`;
1750
+ case "month": return `${r}-${i}`;
1751
+ case "week": return `${r}-${i}-${a}`;
1752
+ case "day": return `${r}-${i}-${a}`;
1753
+ case "hour": return `${r}-${i}-${a} ${String(o).padStart(2, "0")}:00`;
1754
+ case "minute": return `${r}-${i}-${a} ${String(o).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
1755
+ default: return null;
1756
+ }
1757
+ }
1758
+ function me(e) {
1759
+ let { date: t, year: n, month: r, day: i, hours: a, minutes: o } = e, s = t.getUTCSeconds(), c = t.getUTCMilliseconds(), l = a === 0 && o === 0 && s === 0 && c === 0;
1760
+ return i === "01" && l ? r === "01" || r === "04" || r === "07" || r === "10" ? `${n}-Q${Math.floor(t.getUTCMonth() / 3) + 1}` : `${n}-${r}` : l ? `${n}-${r}-${i}` : o === 0 && s === 0 && c === 0 ? `${n}-${r}-${i} ${String(a).padStart(2, "0")}:00` : `${n}-${r}-${i} ${String(a).padStart(2, "0")}:${String(o).padStart(2, "0")}`;
1761
+ }
1762
+ //#endregion
1763
+ //#region src/client/utils/chartUtils.ts
1764
+ function k(e) {
1765
+ return e != null && !isNaN(Number(e));
1766
+ }
1767
+ function A(e) {
1768
+ if (e == null) return null;
1769
+ let t = typeof e == "string" ? parseFloat(e) : Number(e);
1770
+ return isNaN(t) ? null : t;
1771
+ }
1772
+ function j(e) {
1773
+ if (e == null) return "No data";
1774
+ let t = typeof e == "number" ? e : parseFloat(e);
1775
+ return isNaN(t) ? String(e) : Number.isInteger(t) ? t.toLocaleString() : parseFloat(t.toFixed(2)).toLocaleString();
1776
+ }
1777
+ function M(e, t, n) {
1778
+ if (e == null) return "No data";
1779
+ let r = typeof e == "number" ? e : parseFloat(String(e));
1780
+ if (isNaN(r)) return String(e);
1781
+ if (!isFinite(r)) return r > 0 ? "∞" : "-∞";
1782
+ let i = n || (typeof navigator < "u" ? navigator.language : "en-US");
1783
+ if (!t) return j(e);
1784
+ let { abbreviate: a = !0, decimals: o } = t, { displayValue: s, abbreviationSuffix: c } = oe(r, a);
1785
+ return de({
1786
+ displayValue: s,
1787
+ abbreviate: a,
1788
+ abbreviationSuffix: c,
1789
+ decimals: o === void 0 ? Number.isInteger(s) ? 0 : 2 : o,
1790
+ locale: i,
1791
+ config: t
1792
+ });
1793
+ }
1794
+ function he(e) {
1795
+ return (t) => M(t, e);
1796
+ }
1797
+ function N(e, t) {
1729
1798
  return t[e] || e;
1730
1799
  }
1731
- function B(e, t) {
1732
- return e.map((e) => z(e, t));
1800
+ function ge(e, t) {
1801
+ return e.map((e) => N(e, t));
1733
1802
  }
1734
- function V(e, t) {
1803
+ function P(e, t) {
1735
1804
  if (!e) return "Unknown";
1736
- let n = String(e);
1737
- if (n.match(/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}/)) {
1738
- let e = n;
1739
- n.includes(" ") && (e = n.replace(" ", "T").replace("+00", "Z").replace(/\+\d{2}:\d{2}$/, "Z")), !e.endsWith("Z") && !e.includes("+") && (e += "Z");
1740
- let r = new Date(e);
1741
- if (isNaN(r.getTime())) return n;
1742
- let i = r.getUTCFullYear(), a = String(r.getUTCMonth() + 1).padStart(2, "0"), o = String(r.getUTCDate()).padStart(2, "0"), s = r.getUTCHours(), c = r.getUTCMinutes();
1743
- if (t) switch (t.toLowerCase()) {
1744
- case "year": return `${i}`;
1745
- case "quarter": return `${i}-Q${Math.floor(r.getUTCMonth() / 3) + 1}`;
1746
- case "month": return `${i}-${a}`;
1747
- case "week": return `${i}-${a}-${o}`;
1748
- case "day": return `${i}-${a}-${o}`;
1749
- case "hour": return `${i}-${a}-${o} ${String(s).padStart(2, "0")}:00`;
1750
- case "minute": return `${i}-${a}-${o} ${String(s).padStart(2, "0")}:${String(c).padStart(2, "0")}`;
1751
- default: break;
1752
- }
1753
- let l = r.getUTCSeconds(), u = r.getUTCMilliseconds();
1754
- return o === "01" && s === 0 && c === 0 && l === 0 && u === 0 ? a === "01" || a === "04" || a === "07" || a === "10" ? `${i}-Q${Math.floor(r.getUTCMonth() / 3) + 1}` : `${i}-${a}` : s === 0 && c === 0 && l === 0 && u === 0 ? `${i}-${a}-${o}` : c === 0 && l === 0 && u === 0 ? `${i}-${a}-${o} ${String(s).padStart(2, "0")}:00` : `${i}-${a}-${o} ${String(s).padStart(2, "0")}:${String(c).padStart(2, "0")}`;
1805
+ let n = String(e), r = fe(n);
1806
+ if (!r) return n;
1807
+ if (t) {
1808
+ let e = pe(r, t);
1809
+ if (e !== null) return e;
1755
1810
  }
1756
- return n;
1811
+ return me(r);
1757
1812
  }
1758
- function H(e, t) {
1813
+ function F(e, t) {
1759
1814
  try {
1760
1815
  if (e?.timeDimensions) {
1761
1816
  let n = e.timeDimensions.find((e) => t === e.dimension || t.startsWith(e.dimension.replace(".", "_")) || t === `${e.dimension}_${e.granularity}`);
@@ -1780,18 +1835,18 @@ function H(e, t) {
1780
1835
  return;
1781
1836
  }
1782
1837
  }
1783
- function U(e, t, n, r, i = (e) => e) {
1838
+ function I(e, t, n, r, i = (e) => e) {
1784
1839
  if (!e || e.length === 0) return [];
1785
- let a = H(r, t);
1840
+ let a = F(r, t);
1786
1841
  return e.map((e) => {
1787
- let r = { name: V(e[t], a) || e[t] || "Unknown" };
1842
+ let r = { name: P(e[t], a) || e[t] || "Unknown" };
1788
1843
  return n.forEach((t) => {
1789
1844
  let n = i(t);
1790
- n === "__proto__" || n === "constructor" || n === "prototype" || (r[n] = P(e[t]));
1845
+ n === "__proto__" || n === "constructor" || n === "prototype" || (r[n] = A(e[t]));
1791
1846
  }), r;
1792
1847
  });
1793
1848
  }
1794
- function W(e, t, n, r, i, a = (e) => e) {
1849
+ function L(e, t, n, r, i, a = (e) => e) {
1795
1850
  if (!e || e.length === 0) return {
1796
1851
  data: [],
1797
1852
  seriesKeys: [],
@@ -1801,11 +1856,11 @@ function W(e, t, n, r, i, a = (e) => e) {
1801
1856
  if (u.length > 0) {
1802
1857
  let n = {};
1803
1858
  return e.forEach((e) => {
1804
- let i = H(r, t), o = V(e[t], i) || e[t] || "Unknown";
1859
+ let i = F(r, t), o = P(e[t], i) || e[t] || "Unknown";
1805
1860
  o === "__proto__" || o === "constructor" || o === "prototype" || (n[o] || (n[o] = { name: String(o) }), l.forEach((t) => {
1806
1861
  let r = a(t);
1807
1862
  if (r === "__proto__" || r === "constructor" || r === "prototype") return;
1808
- let i = P(e[t]);
1863
+ let i = A(e[t]);
1809
1864
  if (i !== null) {
1810
1865
  let e = n[o][r];
1811
1866
  n[o][r] = e == null ? i : e + i;
@@ -1816,7 +1871,7 @@ function W(e, t, n, r, i, a = (e) => e) {
1816
1871
  let t = String(r), i = l[0] || c.find((e) => e.includes("totalCost") || e.includes("count") || e.includes("sum")) || c[0];
1817
1872
  if (i) {
1818
1873
  if (t === "__proto__" || t === "constructor" || t === "prototype") return;
1819
- let r = P(e[i]);
1874
+ let r = A(e[i]);
1820
1875
  if (r !== null) {
1821
1876
  let e = n[o][t];
1822
1877
  n[o][t] = e == null ? r : e + r;
@@ -1834,67 +1889,67 @@ function W(e, t, n, r, i, a = (e) => e) {
1834
1889
  };
1835
1890
  }
1836
1891
  return {
1837
- data: U(e, t, n, r, a),
1892
+ data: I(e, t, n, r, a),
1838
1893
  seriesKeys: n.map((e) => a(e)),
1839
1894
  hasDimensions: !1
1840
1895
  };
1841
1896
  }
1842
1897
  //#endregion
1843
1898
  //#region src/client/hooks/useCubeFieldLabel.ts
1844
- function G() {
1899
+ function R() {
1845
1900
  let e = i(g);
1846
1901
  if (!e) throw Error("useCubeFieldLabel must be used within CubeProvider");
1847
1902
  return s(() => e.getFieldLabel, [e.getFieldLabel]);
1848
1903
  }
1849
1904
  //#endregion
1850
1905
  //#region src/client/theme/index.ts
1851
- function K(e) {
1906
+ function _e(e) {
1852
1907
  return typeof window > "u" ? "" : getComputedStyle(document.documentElement).getPropertyValue(`--dc-${e}`).trim();
1853
1908
  }
1854
- function q(e, t) {
1909
+ function z(e, t) {
1855
1910
  typeof window > "u" || document.documentElement.style.setProperty(`--dc-${e}`, t);
1856
1911
  }
1857
- function J(e) {
1912
+ function ve(e) {
1858
1913
  typeof window > "u" || Object.entries(e.colors).forEach(([e, t]) => {
1859
- t && q(e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), t);
1914
+ t && z(e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), t);
1860
1915
  });
1861
1916
  }
1862
- function Y() {
1917
+ function ye() {
1863
1918
  if (typeof window > "u") return;
1864
1919
  let e = document.documentElement.style;
1865
1920
  Array.from(e).forEach((t) => {
1866
1921
  t.startsWith("--dc-") && e.removeProperty(t);
1867
1922
  });
1868
1923
  }
1869
- function X() {
1924
+ function B() {
1870
1925
  if (typeof window > "u") return "light";
1871
1926
  let e = localStorage.getItem("theme");
1872
1927
  if (e === "dark" || e === "neon" || e === "light") return e;
1873
1928
  let t = document.documentElement.getAttribute("data-theme");
1874
1929
  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";
1875
1930
  }
1876
- function ee(e) {
1931
+ function be(e) {
1877
1932
  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));
1878
1933
  }
1879
- function te() {
1880
- let e = X();
1934
+ function xe() {
1935
+ let e = B();
1881
1936
  return e === "dark" || e === "neon";
1882
1937
  }
1883
- function Z(e) {
1938
+ function V(e) {
1884
1939
  if (typeof window > "u") return () => {};
1885
1940
  let t = new MutationObserver(() => {
1886
- e(X());
1941
+ e(B());
1887
1942
  });
1888
1943
  t.observe(document.documentElement, {
1889
1944
  attributes: !0,
1890
1945
  attributeFilter: ["class", "data-theme"]
1891
1946
  });
1892
- let n = window.matchMedia("(prefers-color-scheme: dark)"), r = () => e(X());
1947
+ let n = window.matchMedia("(prefers-color-scheme: dark)"), r = () => e(B());
1893
1948
  return n.addEventListener("change", r), () => {
1894
1949
  t.disconnect(), n.removeEventListener("change", r);
1895
1950
  };
1896
1951
  }
1897
- var ne = {
1952
+ var Se = {
1898
1953
  light: {
1899
1954
  name: "light",
1900
1955
  colors: {
@@ -1942,7 +1997,7 @@ var ne = {
1942
1997
  danger: "#ff1493"
1943
1998
  }
1944
1999
  }
1945
- }, re = [
2000
+ }, Ce = [
1946
2001
  "#3b82f6",
1947
2002
  "#10b981",
1948
2003
  "#f59e0b",
@@ -1951,453 +2006,541 @@ var ne = {
1951
2006
  "#f97316",
1952
2007
  "#06b6d4",
1953
2008
  "#84cc16"
1954
- ], Q = [
2009
+ ], H = [
1955
2010
  "#440154",
1956
2011
  "#414487",
1957
2012
  "#2a788e",
1958
2013
  "#22a884",
1959
2014
  "#7ad151",
1960
2015
  "#fde725"
1961
- ], ie = "#10b981", ae = "#ef4444", $ = {
2016
+ ], we = "#10b981", Te = "#ef4444", U = {
1962
2017
  top: 5,
1963
2018
  right: 30,
1964
2019
  left: 20,
1965
2020
  bottom: 5
1966
- }, oe = {
2021
+ }, Ee = {
1967
2022
  top: 5,
1968
2023
  right: 30,
1969
2024
  left: 20,
1970
2025
  bottom: 60
1971
- }, se = /* @__PURE__ */ e({ default: () => ce }), ce = t.memo(function({ data: e, chartConfig: t, displayConfig: n = {}, queryObject: i, height: g = "100%", colorPalette: _, onDataPointClick: v, drillEnabled: y }) {
1972
- let { t: b } = M(), x = c(null), S = c(null), [C, w] = l({
2026
+ };
2027
+ //#endregion
2028
+ //#region src/client/components/charts/useChartDimensions.ts
2029
+ function W() {
2030
+ let e = c(null), [t, n] = l({
1973
2031
  width: 0,
1974
2032
  height: 0
1975
- }), [T, E] = l(!1), [D, O] = l("light"), k = G();
1976
- a(() => (O(X()), Z((e) => {
1977
- O(e);
1978
- })), []);
1979
- let A = s(() => ({
1980
- showTooltip: n?.showTooltip ?? !0,
1981
- showLabels: n?.showLabels ?? !0,
1982
- fitToWidth: n?.fitToWidth ?? !1
1983
- }), [
1984
- n?.showTooltip,
1985
- n?.showLabels,
1986
- n?.fitToWidth
1987
- ]);
1988
- o(() => {
1989
- let e = 0, t, n, r = () => {
1990
- if (S.current) {
1991
- let { width: e, height: t } = S.current.getBoundingClientRect();
1992
- if (e > 0 && t > 0) return w({
1993
- width: e,
1994
- height: t
1995
- }), E(!0), !0;
2033
+ }), [r, i] = l(!1);
2034
+ return o(() => {
2035
+ let t = 0, r, a, o = () => {
2036
+ if (e.current) {
2037
+ let { width: t, height: r } = e.current.getBoundingClientRect();
2038
+ if (t > 0 && r > 0) return n({
2039
+ width: t,
2040
+ height: r
2041
+ }), i(!0), !0;
1996
2042
  }
1997
2043
  return !1;
1998
2044
  };
1999
- if (!r() && e < 10) {
2000
- let i = () => {
2001
- !r() && e < 10 && (e++, n = setTimeout(() => {
2002
- t = requestAnimationFrame(i);
2003
- }, 50 * e));
2045
+ if (!o() && t < 10) {
2046
+ let e = () => {
2047
+ !o() && t < 10 && (t++, a = setTimeout(() => {
2048
+ r = requestAnimationFrame(e);
2049
+ }, 50 * t));
2004
2050
  };
2005
- t = requestAnimationFrame(i);
2051
+ r = requestAnimationFrame(e);
2006
2052
  }
2007
2053
  return () => {
2008
- t && cancelAnimationFrame(t), n && clearTimeout(n);
2054
+ r && cancelAnimationFrame(r), a && clearTimeout(a);
2009
2055
  };
2010
2056
  }, []), a(() => {
2011
- let e = null, t = () => {
2012
- if (S.current) {
2013
- let { width: e, height: t } = S.current.getBoundingClientRect();
2014
- e > 0 && t > 0 && (w({
2015
- width: e,
2016
- height: t
2017
- }), T || E(!0));
2057
+ let t = null, r = () => {
2058
+ if (e.current) {
2059
+ let { width: t, height: r } = e.current.getBoundingClientRect();
2060
+ t > 0 && r > 0 && (n({
2061
+ width: t,
2062
+ height: r
2063
+ }), i((e) => e || !0));
2018
2064
  }
2019
2065
  };
2020
- return S.current && (e = new ResizeObserver(() => t()), e.observe(S.current), t()), window.addEventListener("resize", t), () => {
2021
- e && e.disconnect(), window.removeEventListener("resize", t);
2066
+ return e.current && (t = new ResizeObserver(() => r()), t.observe(e.current), r()), window.addEventListener("resize", r), () => {
2067
+ t && t.disconnect(), window.removeEventListener("resize", r);
2022
2068
  };
2023
- }, [T]);
2024
- let j = (e) => Math.floor(e.getMonth() / 3) + 1, N = (e) => e.getMonth() % 3 + 1, P = (e) => {
2025
- let t = e.getDate();
2026
- return Math.floor((t - 1) / 7) + 1;
2027
- }, F = r((e) => {
2028
- switch (e?.toLowerCase()) {
2029
- case "year": return null;
2030
- case "quarter": return {
2031
- extractX: (e) => e.getFullYear(),
2032
- extractY: (e) => j(e) - 1,
2033
- xLabels: [],
2034
- yLabels: [
2035
- "Q1",
2036
- "Q2",
2037
- "Q3",
2038
- "Q4"
2039
- ],
2040
- xFormat: (e) => `'${e.toString().slice(-2)}`,
2041
- yFormat: (e) => [
2042
- "Q1",
2043
- "Q2",
2044
- "Q3",
2045
- "Q4"
2046
- ][e] || "",
2047
- cellWidth: 16,
2048
- cellHeight: 16
2049
- };
2050
- case "month": return {
2051
- extractX: (e) => {
2052
- let t = e.getFullYear(), n = j(e);
2053
- return t * 10 + n;
2054
- },
2055
- extractY: (e) => N(e) - 1,
2056
- xLabels: [],
2057
- yLabels: [
2058
- "Month 1",
2059
- "Month 2",
2060
- "Month 3"
2061
- ],
2062
- xFormat: (e) => `Q${e % 10}`,
2063
- yFormat: (e) => [
2064
- "Month 1",
2065
- "Month 2",
2066
- "Month 3"
2067
- ][e] || "",
2068
- cellWidth: 16,
2069
- cellHeight: 16,
2070
- hasHierarchicalLabels: !0,
2071
- getYearFromX: (e) => Math.floor(e / 10)
2072
- };
2073
- case "week": return {
2074
- extractX: (e) => {
2075
- let t = e.getFullYear(), n = e.getMonth() + 1;
2076
- return t * 100 + n;
2077
- },
2078
- extractY: (e) => P(e) - 1,
2079
- xLabels: [],
2080
- yLabels: [
2081
- "Week 1",
2082
- "Week 2",
2083
- "Week 3",
2084
- "Week 4",
2085
- "Week 5"
2086
- ],
2087
- xFormat: (e) => [
2088
- "J",
2089
- "F",
2090
- "M",
2091
- "A",
2092
- "M",
2093
- "J",
2094
- "J",
2095
- "A",
2096
- "S",
2097
- "O",
2098
- "N",
2099
- "D"
2100
- ][e % 100 - 1] || "",
2101
- yFormat: (e) => [
2102
- "Week 1",
2103
- "Week 2",
2104
- "Week 3",
2105
- "Week 4",
2106
- "Week 5"
2107
- ][e] || "",
2108
- cellWidth: 16,
2109
- cellHeight: 16,
2110
- hasHierarchicalLabels: !0,
2111
- getYearFromX: (e) => Math.floor(e / 100)
2112
- };
2113
- case "day": return {
2114
- extractX: (e) => {
2115
- let { year: t, week: n } = I(e);
2116
- return t * 100 + n;
2117
- },
2118
- extractY: (e) => e.getDay(),
2119
- xLabels: [],
2120
- yLabels: [
2121
- "Sun",
2122
- "Mon",
2123
- "Tue",
2124
- "Wed",
2125
- "Thu",
2126
- "Fri",
2127
- "Sat"
2128
- ],
2129
- xFormat: (e) => `${e % 100}`,
2130
- yFormat: (e) => [
2131
- "Sun",
2132
- "Mon",
2133
- "Tue",
2134
- "Wed",
2135
- "Thu",
2136
- "Fri",
2137
- "Sat"
2138
- ][e] || "",
2139
- cellWidth: 16,
2140
- cellHeight: 16,
2141
- hasHierarchicalLabels: !0,
2142
- getYearFromX: (e) => Math.floor(e / 100)
2143
- };
2144
- case "hour": return {
2145
- extractX: (e) => {
2146
- let t = e.getFullYear(), n = e.getMonth() + 1, r = e.getDate();
2147
- return t * 1e4 + n * 100 + r;
2148
- },
2149
- extractY: (e) => Math.floor(e.getHours() / 3),
2150
- xLabels: [],
2151
- yLabels: [
2152
- "00-03",
2153
- "03-06",
2154
- "06-09",
2155
- "09-12",
2156
- "12-15",
2157
- "15-18",
2158
- "18-21",
2159
- "21-00"
2160
- ],
2161
- xFormat: (e) => `${e % 100}`,
2162
- yFormat: (e) => [
2163
- "00-03",
2164
- "03-06",
2165
- "06-09",
2166
- "09-12",
2167
- "12-15",
2168
- "15-18",
2169
- "18-21",
2170
- "21-00"
2171
- ][e] || "",
2172
- cellWidth: 16,
2173
- cellHeight: 16,
2174
- hasHierarchicalLabels: !0,
2175
- getYearFromX: (e) => Math.floor(e / 100)
2176
- };
2177
- default: return null;
2178
- }
2179
- }, []), I = (e) => {
2180
- let t = new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate())), n = t.getUTCDay() || 7;
2181
- t.setUTCDate(t.getUTCDate() + 4 - n);
2182
- let r = t.getUTCFullYear(), i = new Date(Date.UTC(r, 0, 1));
2069
+ }, []), {
2070
+ containerRef: e,
2071
+ dimensions: t,
2072
+ dimensionsReady: r
2073
+ };
2074
+ }
2075
+ //#endregion
2076
+ //#region src/client/components/charts/BubbleChart.helpers.ts
2077
+ function De(e) {
2078
+ return {
2079
+ showLegend: e?.showLegend ?? !0,
2080
+ showGrid: e?.showGrid ?? !0,
2081
+ showTooltip: e?.showTooltip ?? !0,
2082
+ minBubbleSize: e?.minBubbleSize ?? 5,
2083
+ maxBubbleSize: e?.maxBubbleSize ?? 50,
2084
+ bubbleOpacity: e?.bubbleOpacity ?? .7,
2085
+ xAxisFormat: e?.xAxisFormat,
2086
+ leftYAxisFormat: e?.leftYAxisFormat
2087
+ };
2088
+ }
2089
+ function Oe(e) {
2090
+ if (!e?.xAxis || !e?.yAxis || !e?.series) return null;
2091
+ 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;
2092
+ return !t || !n || !r || !i ? null : {
2093
+ xAxisField: t,
2094
+ yAxisField: n,
2095
+ seriesField: r,
2096
+ sizeFieldName: i,
2097
+ colorFieldName: Array.isArray(e.colorField) ? e.colorField[0] : e.colorField
2098
+ };
2099
+ }
2100
+ function ke(e, t, n) {
2101
+ if (t && e) {
2102
+ let t = String(e), r;
2103
+ if (t.match(/^\d{4}-\d{2}-\d{2}[T ]/)) {
2104
+ let e = t;
2105
+ t.includes(" ") && (e = t.replace(" ", "T").replace("+00", "Z").replace(/\+\d{2}:\d{2}$/, "Z")), !e.endsWith("Z") && !e.includes("+") && (e += "Z"), r = new Date(e);
2106
+ } else r = new Date(t);
2183
2107
  return {
2184
- year: r,
2185
- week: Math.ceil(((t.getTime() - i.getTime()) / 864e5 + 1) / 7)
2108
+ xNum: isNaN(r.getTime()) ? parseFloat(t) : r.getTime(),
2109
+ xLabel: P(e, n)
2186
2110
  };
2111
+ }
2112
+ let r = P(e, n) || e;
2113
+ return {
2114
+ xNum: typeof r == "string" ? parseFloat(r) : r,
2115
+ xLabel: String(r)
2187
2116
  };
2188
- if (a(() => {
2189
- if (!e || e.length === 0 || !x.current || !T || C.width === 0 || (h(x.current).selectAll("*").remove(), !t?.dateField || !t?.valueField)) return;
2190
- let n = Array.isArray(t.dateField) ? t.dateField[0] : t.dateField, r = Array.isArray(t.valueField) ? t.valueField[0] : t.valueField;
2191
- if (!n || !r) return;
2192
- let a = (() => {
2193
- if (!i?.timeDimensions || i.timeDimensions.length === 0) return "day";
2194
- let e = i.timeDimensions.find((e) => e.dimension === n || e.dimension.includes(n));
2195
- if (e && e.granularity) return e.granularity;
2196
- let t = i.timeDimensions[0];
2197
- return t && t.granularity ? t.granularity : "day";
2198
- })(), o = F(a);
2199
- if (!o) return;
2200
- let s = e.map((e) => {
2201
- let t = e[n], i = typeof e[r] == "string" ? parseFloat(e[r]) : e[r] || 0, s;
2202
- if (typeof t == "string") {
2203
- let e = t;
2204
- t.includes(" ") && (e = t.replace(" ", "T").replace("+00", "Z").replace(/\+\d{2}:\d{2}$/, "Z")), !e.endsWith("Z") && !e.includes("+") && (e += "Z"), s = new Date(e);
2205
- } else s = new Date(t);
2206
- return isNaN(s.getTime()) ? null : {
2207
- x: o.extractX(s),
2208
- y: o.extractY(s),
2209
- value: i,
2210
- date: s,
2211
- label: V(t, a)
2212
- };
2213
- }).filter((e) => e !== null);
2214
- if (s.length === 0) return;
2215
- let c = f(s, (e) => e.y) || 0, l = p(s, (e) => e.y) || 0, u = [...new Set(s.map((e) => e.x))].sort(), d = u.length * o.cellWidth + (u.length - 1) * 4, g = (c - l + 1) * o.cellHeight + (c - l) * 4, b = {
2216
- ...$,
2217
- left: 60,
2218
- bottom: 10,
2219
- top: o.hasHierarchicalLabels ? 40 : 25,
2220
- right: 10
2221
- }, S = C.width - b.left - b.right, w = C.height - b.top - b.bottom, E, O;
2222
- if (A.fitToWidth) {
2223
- let e = S / d, t = w / g, n = Math.min(e, t);
2224
- E = o.cellWidth * n, O = o.cellHeight * n;
2225
- } else {
2226
- let e = {
2227
- width: 16,
2228
- height: 16
2229
- }, t = S / d, n = w / g, r = Math.min(t, n);
2230
- E = Math.max(e.width, Math.min(24, o.cellWidth * r)), O = Math.max(e.height, Math.min(24, o.cellHeight * r)), a === "week" && E < e.width && (E = e.width);
2117
+ }
2118
+ function Ae(e, t, n) {
2119
+ 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;
2120
+ return e.map((e) => {
2121
+ let { xNum: t, xLabel: n } = ke(e[r], l, c), u = A(e[i]), d = A(e[a]), f = e[o];
2122
+ return {
2123
+ x: t,
2124
+ xLabel: n,
2125
+ y: u,
2126
+ size: d === null ? 0 : Math.abs(d),
2127
+ color: s ? e[s] : f,
2128
+ series: f,
2129
+ label: `${f || "Unknown"}`,
2130
+ isValid: k(t) && u !== null && d !== null && d > 0
2131
+ };
2132
+ }).filter((e) => e.isValid && e.size > 0).map(({ isValid: e, ...t }) => t);
2133
+ }
2134
+ function G(e, t) {
2135
+ return getComputedStyle(document.documentElement).getPropertyValue(e).trim() || t;
2136
+ }
2137
+ function je(e) {
2138
+ return {
2139
+ textColor: e ? G("--dc-text-muted", "#cbd5e1") : G("--dc-text-secondary", "#374151"),
2140
+ gridColor: e ? G("--dc-border", "#475569") : "#9ca3af"
2141
+ };
2142
+ }
2143
+ //#endregion
2144
+ //#region src/client/components/charts/ActivityGridChart.helpers.ts
2145
+ 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 = [
2146
+ "J",
2147
+ "F",
2148
+ "M",
2149
+ "A",
2150
+ "M",
2151
+ "J",
2152
+ "J",
2153
+ "A",
2154
+ "S",
2155
+ "O",
2156
+ "N",
2157
+ "D"
2158
+ ], q = [
2159
+ "Q1",
2160
+ "Q2",
2161
+ "Q3",
2162
+ "Q4"
2163
+ ], J = [
2164
+ "Month 1",
2165
+ "Month 2",
2166
+ "Month 3"
2167
+ ], Y = [
2168
+ "Week 1",
2169
+ "Week 2",
2170
+ "Week 3",
2171
+ "Week 4",
2172
+ "Week 5"
2173
+ ], X = [
2174
+ "Sun",
2175
+ "Mon",
2176
+ "Tue",
2177
+ "Wed",
2178
+ "Thu",
2179
+ "Fri",
2180
+ "Sat"
2181
+ ], Z = [
2182
+ "00-03",
2183
+ "03-06",
2184
+ "06-09",
2185
+ "09-12",
2186
+ "12-15",
2187
+ "15-18",
2188
+ "18-21",
2189
+ "21-00"
2190
+ ];
2191
+ function Fe(e) {
2192
+ let t = new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate())), n = t.getUTCDay() || 7;
2193
+ t.setUTCDate(t.getUTCDate() + 4 - n);
2194
+ let r = t.getUTCFullYear(), i = new Date(Date.UTC(r, 0, 1));
2195
+ return {
2196
+ year: r,
2197
+ week: Math.ceil(((t.getTime() - i.getTime()) / 864e5 + 1) / 7)
2198
+ };
2199
+ }
2200
+ var Ie = {
2201
+ quarter: {
2202
+ extractX: (e) => e.getFullYear(),
2203
+ extractY: (e) => K(e) - 1,
2204
+ xLabels: [],
2205
+ yLabels: q,
2206
+ xFormat: (e) => `'${e.toString().slice(-2)}`,
2207
+ yFormat: (e) => q[e] || "",
2208
+ cellWidth: 16,
2209
+ cellHeight: 16
2210
+ },
2211
+ month: {
2212
+ extractX: (e) => e.getFullYear() * 10 + K(e),
2213
+ extractY: (e) => Me(e) - 1,
2214
+ xLabels: [],
2215
+ yLabels: J,
2216
+ xFormat: (e) => `Q${e % 10}`,
2217
+ yFormat: (e) => J[e] || "",
2218
+ cellWidth: 16,
2219
+ cellHeight: 16,
2220
+ hasHierarchicalLabels: !0,
2221
+ getYearFromX: (e) => Math.floor(e / 10)
2222
+ },
2223
+ week: {
2224
+ extractX: (e) => e.getFullYear() * 100 + (e.getMonth() + 1),
2225
+ extractY: (e) => Ne(e) - 1,
2226
+ xLabels: [],
2227
+ yLabels: Y,
2228
+ xFormat: (e) => Pe[e % 100 - 1] || "",
2229
+ yFormat: (e) => Y[e] || "",
2230
+ cellWidth: 16,
2231
+ cellHeight: 16,
2232
+ hasHierarchicalLabels: !0,
2233
+ getYearFromX: (e) => Math.floor(e / 100)
2234
+ },
2235
+ day: {
2236
+ extractX: (e) => {
2237
+ let { year: t, week: n } = Fe(e);
2238
+ return t * 100 + n;
2239
+ },
2240
+ extractY: (e) => e.getDay(),
2241
+ xLabels: [],
2242
+ yLabels: X,
2243
+ xFormat: (e) => `${e % 100}`,
2244
+ yFormat: (e) => X[e] || "",
2245
+ cellWidth: 16,
2246
+ cellHeight: 16,
2247
+ hasHierarchicalLabels: !0,
2248
+ getYearFromX: (e) => Math.floor(e / 100)
2249
+ },
2250
+ hour: {
2251
+ extractX: (e) => e.getFullYear() * 1e4 + (e.getMonth() + 1) * 100 + e.getDate(),
2252
+ extractY: (e) => Math.floor(e.getHours() / 3),
2253
+ xLabels: [],
2254
+ yLabels: Z,
2255
+ xFormat: (e) => `${e % 100}`,
2256
+ yFormat: (e) => Z[e] || "",
2257
+ cellWidth: 16,
2258
+ cellHeight: 16,
2259
+ hasHierarchicalLabels: !0,
2260
+ getYearFromX: (e) => Math.floor(e / 100)
2261
+ }
2262
+ };
2263
+ function Le(e) {
2264
+ return Ie[e?.toLowerCase()] ?? null;
2265
+ }
2266
+ function Q(e) {
2267
+ if (e) return Array.isArray(e) ? e[0] : e;
2268
+ }
2269
+ function Re(e, t) {
2270
+ let n = e?.timeDimensions;
2271
+ if (!n || n.length === 0) return "day";
2272
+ let r = n.find((e) => e.dimension === t || e.dimension.includes(t));
2273
+ if (r && r.granularity) return r.granularity;
2274
+ let i = n[0];
2275
+ return i && i.granularity ? i.granularity : "day";
2276
+ }
2277
+ function ze(e) {
2278
+ if (typeof e == "string") {
2279
+ let t = e;
2280
+ 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);
2281
+ }
2282
+ return new Date(e);
2283
+ }
2284
+ function Be(e, t, n, r, i) {
2285
+ return e.map((e) => {
2286
+ let a = e[t], o = typeof e[n] == "string" ? parseFloat(e[n]) : e[n] || 0, s = ze(a);
2287
+ return isNaN(s.getTime()) ? null : {
2288
+ x: r.extractX(s),
2289
+ y: r.extractY(s),
2290
+ value: o,
2291
+ date: s,
2292
+ label: P(a, i)
2293
+ };
2294
+ }).filter((e) => e !== null);
2295
+ }
2296
+ //#endregion
2297
+ //#region src/client/components/charts/ActivityGridChart.render.ts
2298
+ var Ve = [
2299
+ "Jan",
2300
+ "Feb",
2301
+ "Mar",
2302
+ "Apr",
2303
+ "May",
2304
+ "Jun",
2305
+ "Jul",
2306
+ "Aug",
2307
+ "Sep",
2308
+ "Oct",
2309
+ "Nov",
2310
+ "Dec"
2311
+ ];
2312
+ function $(e) {
2313
+ return {
2314
+ textColor: e ? G("--dc-text-muted", "#cbd5e1") : G("--dc-text-secondary", "#374151"),
2315
+ lineColor: G("--dc-border", "#e5e7eb"),
2316
+ emptyCellColor: e ? G("--dc-bg-secondary", "#1e293b") : G("--dc-bg-secondary", "#f3f4f6"),
2317
+ cellStrokeColor: e ? G("--dc-border", "#334155") : G("--dc-bg", "#ffffff")
2318
+ };
2319
+ }
2320
+ function He(e) {
2321
+ 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 = {
2322
+ ...U,
2323
+ left: 60,
2324
+ bottom: 10,
2325
+ top: n.hasHierarchicalLabels ? 40 : 25,
2326
+ right: 10
2327
+ }, d = r.width - u.left - u.right, m = r.height - u.top - u.bottom, h = Math.min(d / c, m / l), g, _;
2328
+ i.fitToWidth ? (g = n.cellWidth * h, _ = n.cellHeight * h) : (g = Math.max(16, Math.min(24, n.cellWidth * h)), _ = Math.max(16, Math.min(24, n.cellHeight * h)), e.granularity === "week" && g < 16 && (g = 16));
2329
+ let v = s.length * g + (s.length - 1) * 4, y = v > d ? v + u.left + u.right : r.width;
2330
+ return {
2331
+ margin: u,
2332
+ finalCellWidth: g,
2333
+ finalCellHeight: _,
2334
+ completeXRange: s,
2335
+ minY: o,
2336
+ maxY: a,
2337
+ svgWidth: y
2338
+ };
2339
+ }
2340
+ function Ue() {
2341
+ 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);
2342
+ }
2343
+ function We(e, t, n, r, i) {
2344
+ e.style("cursor", t.drillEnabled ? "pointer" : "default").on("mouseover", function(e) {
2345
+ if (h(this).style("stroke", "#000").style("stroke-width", 2), n) {
2346
+ let i = [`<strong>${n.label}</strong>`, `${t.getFieldLabel(t.valueField)}: ${n.value}`].join("<br>");
2347
+ r.html(i).style("left", e.pageX + 10 + "px").style("top", e.pageY - 10 + "px").transition().duration(200).style("opacity", 1);
2231
2348
  }
2232
- let j = u.length * E + (u.length - 1) * 4, M = j > S ? j + b.left + b.right : C.width, N = h(x.current).attr("width", M).attr("height", C.height).append("g").attr("transform", `translate(${b.left},${b.top})`), P = s.map((e) => e.value), I = p(P) || 0, L = f(P) || 1, R = m().domain([I, L]).range(_?.gradient || Q), z = /* @__PURE__ */ new Map();
2233
- s.forEach((e) => {
2234
- let t = `${e.x}-${e.y}`;
2235
- z.set(t, e);
2349
+ }).on("mousemove", function(e) {
2350
+ r.style("left", e.pageX + 10 + "px").style("top", e.pageY - 10 + "px");
2351
+ }).on("mouseout", function() {
2352
+ h(this).style("stroke", i).style("stroke-width", 1), r.transition().duration(200).style("opacity", 0);
2353
+ });
2354
+ }
2355
+ function Ge(e, t, n, r, i, a) {
2356
+ 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();
2357
+ o.forEach((e) => _.set(`${e.x}-${e.y}`, e));
2358
+ let v = /* @__PURE__ */ new Map();
2359
+ f.forEach((e, t) => v.set(e, t));
2360
+ for (let n of f) for (let o = p; o <= m; o++) {
2361
+ 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);
2362
+ d.showTooltip ? We(y, e, f, i, a.cellStrokeColor) : l && y.style("cursor", "pointer"), l && u && f && y.on("click", function(e) {
2363
+ u({
2364
+ dataPoint: {
2365
+ [s]: f.value,
2366
+ [c]: f.date
2367
+ },
2368
+ clickedField: s,
2369
+ xValue: f.label,
2370
+ position: {
2371
+ x: e.pageX,
2372
+ y: e.pageY
2373
+ },
2374
+ nativeEvent: e
2375
+ });
2236
2376
  });
2237
- let B = (e, t) => getComputedStyle(document.documentElement).getPropertyValue(e).trim() || t, H = D !== "light", U = H ? B("--dc-text-muted", "#cbd5e1") : B("--dc-text-secondary", "#374151"), W = B("--dc-border", "#e5e7eb"), G = H ? B("--dc-bg-secondary", "#1e293b") : B("--dc-bg-secondary", "#f3f4f6"), K = H ? B("--dc-border", "#334155") : B("--dc-bg", "#ffffff"), q = 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), J = /* @__PURE__ */ new Map();
2238
- u.forEach((e, t) => {
2239
- J.set(e, t);
2377
+ }
2378
+ }
2379
+ function Ke(e) {
2380
+ if (e > 9999) {
2381
+ let t = Math.floor(e / 100);
2382
+ return `${Ve[e % 100 - 1]} '${t.toString().slice(-2)}`;
2383
+ }
2384
+ return `'${e.toString().slice(-2)}`;
2385
+ }
2386
+ function qe(e, t, n, r) {
2387
+ let { gridMapping: i } = e, { completeXRange: a, finalCellWidth: o } = n, s = /* @__PURE__ */ new Map();
2388
+ a.forEach((e, t) => s.set(e, t));
2389
+ let c = /* @__PURE__ */ new Map();
2390
+ for (let e of a) {
2391
+ let t = i.getYearFromX(e);
2392
+ c.has(t) || c.set(t, []), c.get(t).push(e);
2393
+ }
2394
+ for (let e of a) {
2395
+ let n = s.get(e) || 0;
2396
+ t.append("text").attr("x", n * (o + 4) + o / 2).attr("y", -8).attr("text-anchor", "middle").style("font-size", "10px").style("fill", r.textColor).text(i.xFormat(e));
2397
+ }
2398
+ for (let [e, n] of c) {
2399
+ if (n.length === 0) continue;
2400
+ 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;
2401
+ 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);
2402
+ }
2403
+ }
2404
+ function Je(e, t, n, r) {
2405
+ let { gridMapping: i } = e, { completeXRange: a, finalCellWidth: o } = n, s = Math.max(1, Math.floor(a.length / 10));
2406
+ 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]));
2407
+ }
2408
+ function Ye(e, t, n, r) {
2409
+ let { gridMapping: i } = e, { minY: a, maxY: o, finalCellHeight: s } = n;
2410
+ i.hasHierarchicalLabels && i.getYearFromX ? qe(e, t, n, r) : Je(e, t, n, r);
2411
+ 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));
2412
+ }
2413
+ function Xe(e) {
2414
+ let { svgEl: t, gridData: n, dimensions: r, colorPalette: i, isDark: a, safeDisplayConfig: o } = e;
2415
+ if (h(t).selectAll("*").remove(), n.length === 0) return;
2416
+ 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();
2417
+ return Ge(e, c, s, u, g, d), o.showLabels && Ye(e, c, s, d), () => {
2418
+ g.remove();
2419
+ };
2420
+ }
2421
+ //#endregion
2422
+ //#region src/client/components/charts/ActivityGridChart.tsx
2423
+ 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 }) {
2424
+ let { t: m } = D(), h = c(null), { containerRef: g, dimensions: _, dimensionsReady: v } = W(), [y, b] = l("light"), x = R();
2425
+ a(() => (b(B()), V((e) => b(e))), []);
2426
+ let S = s(() => ({
2427
+ showTooltip: n?.showTooltip ?? !0,
2428
+ showLabels: n?.showLabels ?? !0,
2429
+ fitToWidth: n?.fitToWidth ?? !1
2430
+ }), [
2431
+ n?.showTooltip,
2432
+ n?.showLabels,
2433
+ n?.fitToWidth
2434
+ ]);
2435
+ if (a(() => {
2436
+ if (!e || e.length === 0 || !h.current || !v || _.width === 0 || !t?.dateField || !t?.valueField) return;
2437
+ let n = Q(t.dateField), i = Q(t.valueField);
2438
+ if (!n || !i) return;
2439
+ let a = Re(r, n), s = Le(a);
2440
+ if (!s) return;
2441
+ let c = Be(e, n, i, s, a);
2442
+ return Xe({
2443
+ svgEl: h.current,
2444
+ gridData: c,
2445
+ gridMapping: s,
2446
+ granularity: a,
2447
+ dimensions: _,
2448
+ safeDisplayConfig: S,
2449
+ colorPalette: o,
2450
+ isDark: y !== "light",
2451
+ valueField: i,
2452
+ dateField: n,
2453
+ getFieldLabel: x,
2454
+ drillEnabled: p,
2455
+ onDataPointClick: f
2240
2456
  });
2241
- for (let e of u) for (let t = l; t <= c; t++) {
2242
- let i = `${e}-${t}`, a = z.get(i), o = J.get(e) || 0, s = N.append("rect").attr("x", o * (E + 4)).attr("y", (t - l) * (O + 4)).attr("width", E).attr("height", O).attr("rx", 2).attr("ry", 2).style("fill", a ? R(a.value) : G).style("stroke", K).style("stroke-width", 1);
2243
- A.showTooltip ? s.style("cursor", y ? "pointer" : "default").on("mouseover", function(e) {
2244
- if (h(this).style("stroke", "#000").style("stroke-width", 2), a) {
2245
- let t = [`<strong>${a.label}</strong>`, `${k(r)}: ${a.value}`].join("<br>");
2246
- q.html(t).style("left", e.pageX + 10 + "px").style("top", e.pageY - 10 + "px").transition().duration(200).style("opacity", 1);
2247
- }
2248
- }).on("mousemove", function(e) {
2249
- q.style("left", e.pageX + 10 + "px").style("top", e.pageY - 10 + "px");
2250
- }).on("mouseout", function() {
2251
- h(this).style("stroke", K).style("stroke-width", 1), q.transition().duration(200).style("opacity", 0);
2252
- }) : y && s.style("cursor", "pointer"), y && v && a && s.on("click", function(e) {
2253
- v({
2254
- dataPoint: {
2255
- [r]: a.value,
2256
- [n]: a.date
2257
- },
2258
- clickedField: r,
2259
- xValue: a.label,
2260
- position: {
2261
- x: e.pageX,
2262
- y: e.pageY
2263
- },
2264
- nativeEvent: e
2265
- });
2266
- });
2267
- }
2268
- if (A.showLabels) {
2269
- if (o.hasHierarchicalLabels && o.getYearFromX) {
2270
- let e = /* @__PURE__ */ new Map();
2271
- for (let t of u) {
2272
- let n = o.getYearFromX(t);
2273
- e.has(n) || e.set(n, []), e.get(n).push(t);
2274
- }
2275
- for (let e of u) {
2276
- let t = J.get(e) || 0;
2277
- N.append("text").attr("x", t * (E + 4) + E / 2).attr("y", -8).attr("text-anchor", "middle").style("font-size", "10px").style("fill", U).text(o.xFormat(e));
2278
- }
2279
- for (let [t, n] of e) if (n.length > 0) {
2280
- let e = Math.min(...n.map((e) => J.get(e) || 0)), r = Math.max(...n.map((e) => J.get(e) || 0)), i = (e + r) / 2, a;
2281
- if (t > 9999) {
2282
- let e = Math.floor(t / 100);
2283
- a = `${[
2284
- "Jan",
2285
- "Feb",
2286
- "Mar",
2287
- "Apr",
2288
- "May",
2289
- "Jun",
2290
- "Jul",
2291
- "Aug",
2292
- "Sep",
2293
- "Oct",
2294
- "Nov",
2295
- "Dec"
2296
- ][t % 100 - 1]} '${e.toString().slice(-2)}`;
2297
- } else a = `'${t.toString().slice(-2)}`;
2298
- N.append("text").attr("x", i * (E + 4) + E / 2).attr("y", -25).attr("text-anchor", "middle").style("font-size", "12px").style("font-weight", "bold").style("fill", U).text(a), n.length > 1 && N.append("line").attr("x1", e * (E + 4)).attr("x2", r * (E + 4) + E).attr("y1", -20).attr("y2", -20).style("stroke", W).style("stroke-width", 1).style("opacity", .3);
2299
- }
2300
- } else {
2301
- let e = Math.max(1, Math.floor(u.length / 10));
2302
- for (let t = 0; t < u.length; t += e) {
2303
- let e = u[t];
2304
- N.append("text").attr("x", t * (E + 4) + E / 2).attr("y", -8).attr("text-anchor", "middle").style("font-size", "10px").style("fill", U).text(o.xFormat(e));
2305
- }
2306
- }
2307
- for (let e = l; e <= c; e++) N.append("text").attr("x", -8).attr("y", (e - l) * (O + 4) + O / 2).attr("text-anchor", "end").attr("dy", ".35em").style("font-size", "10px").style("fill", U).text(o.yFormat(e));
2308
- }
2309
- return () => {
2310
- q.remove();
2311
- };
2312
2457
  }, [
2313
2458
  e,
2314
2459
  t,
2315
- n,
2316
- i,
2317
- C,
2318
- T,
2319
- A,
2460
+ r,
2320
2461
  _,
2321
- D,
2322
- k,
2323
- F,
2462
+ v,
2463
+ S,
2464
+ o,
2324
2465
  y,
2325
- v
2466
+ x,
2467
+ p,
2468
+ f
2326
2469
  ]), !e || e.length === 0) return /* @__PURE__ */ u("div", {
2327
2470
  className: "dc:flex dc:items-center dc:justify-center dc:w-full",
2328
- style: { height: g },
2471
+ style: { height: i },
2329
2472
  children: /* @__PURE__ */ d("div", {
2330
2473
  className: "dc:text-center text-dc-text-muted",
2331
2474
  children: [/* @__PURE__ */ u("div", {
2332
2475
  className: "dc:text-sm dc:font-semibold dc:mb-1",
2333
- children: b("chart.runtime.noData")
2476
+ children: m("chart.runtime.noData")
2334
2477
  }), /* @__PURE__ */ u("div", {
2335
2478
  className: "dc:text-xs text-dc-text-secondary",
2336
- children: b("chart.runtime.noDataHint.activityGrid")
2479
+ children: m("chart.runtime.noDataHint.activityGrid")
2337
2480
  })]
2338
2481
  })
2339
2482
  });
2340
2483
  if (!(t?.dateField && t?.valueField)) return /* @__PURE__ */ u("div", {
2341
2484
  className: "dc:flex dc:items-center dc:justify-center dc:w-full",
2342
- style: { height: g },
2485
+ style: { height: i },
2343
2486
  children: /* @__PURE__ */ d("div", {
2344
2487
  className: "dc:text-center text-dc-text-muted",
2345
2488
  children: [/* @__PURE__ */ u("div", {
2346
2489
  className: "dc:text-sm dc:font-semibold dc:mb-1",
2347
- children: b("chart.runtime.activityGridConfigRequired")
2490
+ children: m("chart.runtime.activityGridConfigRequired")
2348
2491
  }), /* @__PURE__ */ u("div", {
2349
2492
  className: "dc:text-xs text-dc-text-secondary",
2350
- children: b("chart.runtime.configErrorHint.activityGridRequired")
2493
+ children: m("chart.runtime.configErrorHint.activityGridRequired")
2351
2494
  })]
2352
2495
  })
2353
2496
  });
2354
- let L = Array.isArray(t.dateField) ? t.dateField[0] : t.dateField;
2355
- return (i?.timeDimensions?.find((e) => e.dimension === L || e.dimension.includes(L))?.granularity || "day")?.toLowerCase() === "year" ? /* @__PURE__ */ u("div", {
2497
+ let C = Q(t.dateField);
2498
+ return (r?.timeDimensions?.find((e) => e.dimension === C || e.dimension.includes(C))?.granularity || "day")?.toLowerCase() === "year" ? /* @__PURE__ */ u("div", {
2356
2499
  className: "dc:flex dc:items-center dc:justify-center dc:w-full",
2357
- style: { height: g },
2500
+ style: { height: i },
2358
2501
  children: /* @__PURE__ */ d("div", {
2359
2502
  className: "dc:text-center text-dc-text-muted",
2360
2503
  children: [
2361
2504
  /* @__PURE__ */ u("div", {
2362
2505
  className: "dc:text-sm dc:font-semibold dc:mb-1",
2363
- children: b("chart.runtime.activityGridGranularityTooHigh")
2506
+ children: m("chart.runtime.activityGridGranularityTooHigh")
2364
2507
  }),
2365
2508
  /* @__PURE__ */ u("div", {
2366
2509
  className: "dc:text-xs text-dc-text-secondary",
2367
- children: b("chart.runtime.activityGridGranularityHint")
2510
+ children: m("chart.runtime.activityGridGranularityHint")
2368
2511
  }),
2369
2512
  /* @__PURE__ */ u("div", {
2370
2513
  className: "dc:text-xs text-dc-text-secondary dc:mt-1",
2371
- children: b("chart.runtime.activityGridGranularityAction")
2514
+ children: m("chart.runtime.activityGridGranularityAction")
2372
2515
  })
2373
2516
  ]
2374
2517
  })
2375
2518
  }) : /* @__PURE__ */ u("div", {
2376
2519
  className: "dc:w-full dc:flex dc:flex-col dc:relative",
2377
2520
  style: {
2378
- height: g,
2521
+ height: i,
2379
2522
  minHeight: "250px",
2380
2523
  overflow: "hidden",
2381
2524
  width: "100%"
2382
2525
  },
2383
2526
  children: /* @__PURE__ */ d("div", {
2384
- ref: S,
2527
+ ref: g,
2385
2528
  className: "dc:w-full dc:h-full dc:relative dc:overflow-x-auto",
2386
2529
  style: { width: "100%" },
2387
2530
  children: [/* @__PURE__ */ u("svg", {
2388
- ref: x,
2531
+ ref: h,
2389
2532
  className: "dc:h-full"
2390
- }), !T && /* @__PURE__ */ u("div", {
2533
+ }), !v && /* @__PURE__ */ u("div", {
2391
2534
  className: "dc:absolute dc:inset-0 dc:flex dc:items-center dc:justify-center",
2392
2535
  children: /* @__PURE__ */ u("div", {
2393
2536
  className: "text-dc-text-muted dc:text-sm",
2394
- children: b("chart.runtime.measuringDimensions")
2537
+ children: m("chart.runtime.measuringDimensions")
2395
2538
  })
2396
2539
  })]
2397
2540
  })
2398
2541
  });
2399
2542
  });
2400
2543
  //#endregion
2401
- export { j as A, z as C, W as D, U as E, T as M, g as N, B as O, _ as P, H as S, P as T, G as _, ae as a, F as b, ne as c, K as d, te as f, Z as g, q as h, $ as i, w as j, M as k, J as l, ee as m, re as n, ie as o, Y as p, Q as r, oe as s, se as t, X as u, R as v, N as w, V as x, I as y };
2544
+ 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 };
2402
2545
 
2403
- //# sourceMappingURL=chart-activity-grid-DmruKPab.js.map
2546
+ //# sourceMappingURL=chart-activity-grid-DX0SJbxs.js.map