drizzle-cube 0.5.8 → 0.6.0

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 (388) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters/adapters/hono/agent-handler.d.ts +9 -0
  3. package/dist/adapters/adapters/hono/mcp-handler.d.ts +37 -0
  4. package/dist/adapters/adapters/mcp-tools-handlers.d.ts +18 -0
  5. package/dist/adapters/adapters/nextjs/mcp-handler.d.ts +36 -0
  6. package/dist/adapters/adapters/utils.d.ts +6 -81
  7. package/dist/adapters/express/index.cjs +1 -1
  8. package/dist/adapters/express/index.js +50 -50
  9. package/dist/adapters/fastify/index.cjs +1 -1
  10. package/dist/adapters/fastify/index.js +78 -78
  11. package/dist/adapters/google-BOnRIN1w.cjs +2 -0
  12. package/dist/adapters/{google-CFYljAOF.js → google-CvKM9yVM.js} +83 -71
  13. package/dist/adapters/{handler-Cx8QYLk6.js → handler-CfgE0JSL.js} +499 -576
  14. package/dist/adapters/handler-Cn0dOctE.cjs +25 -0
  15. package/dist/adapters/hono/index.cjs +2 -2
  16. package/dist/adapters/hono/index.js +205 -175
  17. package/dist/adapters/locale-DDvZDFVn.js +8114 -0
  18. package/dist/adapters/locale-ZLUUNUxr.cjs +166 -0
  19. package/dist/adapters/mcp-tools.cjs +1 -1
  20. package/dist/adapters/mcp-tools.js +49 -38
  21. package/dist/adapters/mcp-transport-Chiaj4ll.cjs +40 -0
  22. package/dist/adapters/mcp-transport-H96VG3WY.js +591 -0
  23. package/dist/adapters/nextjs/index.cjs +1 -1
  24. package/dist/adapters/nextjs/index.js +190 -197
  25. package/dist/adapters/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
  26. package/dist/adapters/openai-vXvLni8v.cjs +1 -0
  27. package/dist/adapters/{utils-D9JPLmfl.js → utils-BPWZsX7k.js} +1271 -1218
  28. package/dist/adapters/utils-_whV4fXL.cjs +128 -0
  29. package/dist/adapters/utils.cjs +1 -1
  30. package/dist/adapters/utils.js +2 -2
  31. package/dist/client/charts/ChartLoader.d.ts +2 -16
  32. package/dist/client/charts/chartComponentRegistry.d.ts +46 -0
  33. package/dist/client/charts/chartConfigHelpers.d.ts +38 -0
  34. package/dist/client/charts.js +14 -13
  35. package/dist/client/chunks/{DashboardEditModal-CjCIAT-J.js → DashboardEditModal-okVfH8ZK.js} +5296 -4544
  36. package/dist/client/chunks/DashboardEditModal-okVfH8ZK.js.map +1 -0
  37. package/dist/client/chunks/{RetentionCombinedChart-BPkfcTa8.js → RetentionCombinedChart-BgbDhsPz.js} +10 -10
  38. package/dist/client/chunks/{RetentionCombinedChart-BPkfcTa8.js.map → RetentionCombinedChart-BgbDhsPz.js.map} +1 -1
  39. package/dist/client/chunks/{RetentionHeatmap-DGzLzr7h.js → RetentionHeatmap-DjXZaTPq.js} +5 -5
  40. package/dist/client/chunks/{RetentionHeatmap-DGzLzr7h.js.map → RetentionHeatmap-DjXZaTPq.js.map} +1 -1
  41. package/dist/client/chunks/analysis-builder-DB88FojM.js +5674 -0
  42. package/dist/client/chunks/analysis-builder-DB88FojM.js.map +1 -0
  43. package/dist/client/chunks/{analysis-builder-shared-CYVwSPqt.js → analysis-builder-shared-BVK4TYfR.js} +1578 -1292
  44. package/dist/client/chunks/analysis-builder-shared-BVK4TYfR.js.map +1 -0
  45. package/dist/client/chunks/{chart-activity-grid-DmruKPab.js → chart-activity-grid-DX0SJbxs.js} +635 -492
  46. package/dist/client/chunks/chart-activity-grid-DX0SJbxs.js.map +1 -0
  47. package/dist/client/chunks/chart-area-of01_62R.js +775 -0
  48. package/dist/client/chunks/chart-area-of01_62R.js.map +1 -0
  49. package/dist/client/chunks/chart-bar-BqelQE_I.js +194 -0
  50. package/dist/client/chunks/chart-bar-BqelQE_I.js.map +1 -0
  51. package/dist/client/chunks/{chart-box-plot-DYKfyOI8.js → chart-box-plot-kkBixZ27.js} +2 -2
  52. package/dist/client/chunks/{chart-box-plot-DYKfyOI8.js.map → chart-box-plot-kkBixZ27.js.map} +1 -1
  53. package/dist/client/chunks/chart-bubble-B2he1--4.js +221 -0
  54. package/dist/client/chunks/chart-bubble-B2he1--4.js.map +1 -0
  55. package/dist/client/chunks/{chart-candlestick-Dwc92Mrj.js → chart-candlestick-DZp19Tzh.js} +2 -2
  56. package/dist/client/chunks/{chart-candlestick-Dwc92Mrj.js.map → chart-candlestick-DZp19Tzh.js.map} +1 -1
  57. package/dist/client/chunks/chart-config-area-BNigHUy8.js +124 -0
  58. package/dist/client/chunks/chart-config-area-BNigHUy8.js.map +1 -0
  59. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js +54 -0
  60. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js.map +1 -0
  61. package/dist/client/chunks/{chart-config-box-plot-DJ-dWWXA.js → chart-config-box-plot-oW8axV2q.js} +5 -10
  62. package/dist/client/chunks/chart-config-box-plot-oW8axV2q.js.map +1 -0
  63. package/dist/client/chunks/{chart-config-gauge-DSwC04l0.js → chart-config-gauge-Dq-_H9UN.js} +5 -7
  64. package/dist/client/chunks/chart-config-gauge-Dq-_H9UN.js.map +1 -0
  65. package/dist/client/chunks/{chart-config-kpi-delta-D6BIkHL3.js → chart-config-kpi-delta-DSQbvqu_.js} +5 -10
  66. package/dist/client/chunks/chart-config-kpi-delta-DSQbvqu_.js.map +1 -0
  67. package/dist/client/chunks/{chart-config-kpi-number-Bx-V9a62.js → chart-config-kpi-number-EFSWY1We.js} +5 -7
  68. package/dist/client/chunks/chart-config-kpi-number-EFSWY1We.js.map +1 -0
  69. package/dist/client/chunks/{chart-config-kpi-text-CcqC1u-8.js → chart-config-kpi-text-KM3V5X2u.js} +5 -7
  70. package/dist/client/chunks/chart-config-kpi-text-KM3V5X2u.js.map +1 -0
  71. package/dist/client/chunks/{chart-config-line-Db3jDsWc.js → chart-config-line-D6jG8PCH.js} +9 -36
  72. package/dist/client/chunks/chart-config-line-D6jG8PCH.js.map +1 -0
  73. package/dist/client/chunks/{chart-config-pie-DD4SmRTF.js → chart-config-pie-BhzW-fdn.js} +6 -16
  74. package/dist/client/chunks/chart-config-pie-BhzW-fdn.js.map +1 -0
  75. package/dist/client/chunks/{chart-config-radar-CC2XAaGr.js → chart-config-radar-D7REP1q_.js} +6 -16
  76. package/dist/client/chunks/chart-config-radar-D7REP1q_.js.map +1 -0
  77. package/dist/client/chunks/{chart-config-radial-bar-DmxKx1R0.js → chart-config-radial-bar-Byx6qOPU.js} +6 -16
  78. package/dist/client/chunks/chart-config-radial-bar-Byx6qOPU.js.map +1 -0
  79. package/dist/client/chunks/{chart-config-tree-map-BI-oQStO.js → chart-config-tree-map-DVrvf3yQ.js} +6 -16
  80. package/dist/client/chunks/chart-config-tree-map-DVrvf3yQ.js.map +1 -0
  81. package/dist/client/chunks/{chart-config-waterfall-DSnyixbI.js → chart-config-waterfall-DmFeQdIk.js} +5 -10
  82. package/dist/client/chunks/chart-config-waterfall-DmFeQdIk.js.map +1 -0
  83. package/dist/client/chunks/{chart-data-table-BO4sXsim.js → chart-data-table-CKauQXme.js} +1046 -1121
  84. package/dist/client/chunks/chart-data-table-CKauQXme.js.map +1 -0
  85. package/dist/client/chunks/{chart-funnel-DnWRsmnS.js → chart-funnel-CToKSBaL.js} +184 -222
  86. package/dist/client/chunks/chart-funnel-CToKSBaL.js.map +1 -0
  87. package/dist/client/chunks/chart-gauge-DTVezSk7.js +403 -0
  88. package/dist/client/chunks/chart-gauge-DTVezSk7.js.map +1 -0
  89. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js +236 -0
  90. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js.map +1 -0
  91. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js +408 -0
  92. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js.map +1 -0
  93. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js +244 -0
  94. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js.map +1 -0
  95. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js +185 -0
  96. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js.map +1 -0
  97. package/dist/client/chunks/chart-line-DKgrQA6c.js +101 -0
  98. package/dist/client/chunks/chart-line-DKgrQA6c.js.map +1 -0
  99. package/dist/client/chunks/{chart-markdown-dgUetjyM.js → chart-markdown-CV75S_zL.js} +2 -2
  100. package/dist/client/chunks/{chart-markdown-dgUetjyM.js.map → chart-markdown-CV75S_zL.js.map} +1 -1
  101. package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js → chart-measure-profile-Ket8fJyf.js} +7 -7
  102. package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js.map → chart-measure-profile-Ket8fJyf.js.map} +1 -1
  103. package/dist/client/chunks/chart-pie-ByieAX5H.js +119 -0
  104. package/dist/client/chunks/chart-pie-ByieAX5H.js.map +1 -0
  105. package/dist/client/chunks/chart-radar-CiSwHWp4.js +138 -0
  106. package/dist/client/chunks/chart-radar-CiSwHWp4.js.map +1 -0
  107. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js +122 -0
  108. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js.map +1 -0
  109. package/dist/client/chunks/{chart-sankey-M3XpO_ah.js → chart-sankey-DjrvKw6K.js} +36 -39
  110. package/dist/client/chunks/{chart-sankey-M3XpO_ah.js.map → chart-sankey-DjrvKw6K.js.map} +1 -1
  111. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js +258 -0
  112. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js.map +1 -0
  113. package/dist/client/chunks/{chart-sunburst-A_u6lqlS.js → chart-sunburst-leGpuDj7.js} +3 -3
  114. package/dist/client/chunks/{chart-sunburst-A_u6lqlS.js.map → chart-sunburst-leGpuDj7.js.map} +1 -1
  115. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js +323 -0
  116. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js.map +1 -0
  117. package/dist/client/chunks/{chart-waterfall-BuhMoagf.js → chart-waterfall-DyvQReN5.js} +7 -7
  118. package/dist/client/chunks/{chart-waterfall-BuhMoagf.js.map → chart-waterfall-DyvQReN5.js.map} +1 -1
  119. package/dist/client/chunks/{charts-core-jRtb0S2M.js → charts-core-DaXSt1Dd.js} +2 -2
  120. package/dist/client/chunks/{charts-core-jRtb0S2M.js.map → charts-core-DaXSt1Dd.js.map} +1 -1
  121. package/dist/client/chunks/charts-loader-DdTeCeNo.js +84 -0
  122. package/dist/client/chunks/charts-loader-DdTeCeNo.js.map +1 -0
  123. package/dist/client/chunks/{nl-NL-CpVs7ox3.js → nl-NL-2zTAWTej.js} +2 -1
  124. package/dist/client/chunks/{nl-NL-CpVs7ox3.js.map → nl-NL-2zTAWTej.js.map} +1 -1
  125. package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
  126. package/dist/client/chunks/{schema-visualization-DE09kQE3.js → schema-visualization-Cb_E9_Gd.js} +12 -12
  127. package/dist/client/chunks/{schema-visualization-DE09kQE3.js.map → schema-visualization-Cb_E9_Gd.js.map} +1 -1
  128. package/dist/client/chunks/{useDirtyStateTracking-CoeQbprt.js → useDirtyStateTracking-MbpxH_v6.js} +95 -84
  129. package/dist/client/chunks/useDirtyStateTracking-MbpxH_v6.js.map +1 -0
  130. package/dist/client/chunks/{useExplainAI-DlnXWdmz.js → useExplainAI-evnZkjCY.js} +14 -14
  131. package/dist/client/chunks/{useExplainAI-DlnXWdmz.js.map → useExplainAI-evnZkjCY.js.map} +1 -1
  132. package/dist/client/chunks/{utils-CTKNaXS8.js → utils-3P6z1vz5.js} +2 -2
  133. package/dist/client/chunks/{utils-CTKNaXS8.js.map → utils-3P6z1vz5.js.map} +1 -1
  134. package/dist/client/chunks/{vendor-CPIYyeuD.js → vendor-DSpR0IW6.js} +43 -43
  135. package/dist/client/chunks/{vendor-CPIYyeuD.js.map → vendor-DSpR0IW6.js.map} +1 -1
  136. package/dist/client/components/AgenticNotebook/agentChatParts.d.ts +34 -0
  137. package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +39 -0
  138. package/dist/client/components/AgenticNotebook/useAgentChatController.d.ts +25 -0
  139. package/dist/client/components/AgenticNotebook/useNotebookAutosave.d.ts +12 -0
  140. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +64 -0
  141. package/dist/client/components/AnalysisBuilder/AnalysisResultsHeader.d.ts +67 -0
  142. package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
  143. package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
  144. package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
  145. package/dist/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
  146. package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
  147. package/dist/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
  148. package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
  149. package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
  150. package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +8 -0
  151. package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
  152. package/dist/client/components/AnalysisBuilder/SortToggleButton.d.ts +13 -0
  153. package/dist/client/components/AnalysisBuilder/StringArrayInput.d.ts +17 -0
  154. package/dist/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +30 -0
  155. package/dist/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +13 -0
  156. package/dist/client/components/AnalysisBuilder/hooks/useDragReorder.d.ts +25 -0
  157. package/dist/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +11 -0
  158. package/dist/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +23 -0
  159. package/dist/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +8 -0
  160. package/dist/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +5 -0
  161. package/dist/client/components/AnalysisBuilder/utils/resultsPanelDerive.d.ts +68 -0
  162. package/dist/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +68 -0
  163. package/dist/client/components/AnalysisBuilder/utils/sortUtils.d.ts +7 -0
  164. package/dist/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
  165. package/dist/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
  166. package/dist/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
  167. package/dist/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +21 -0
  168. package/dist/client/components/DashboardFilters/useCompactFilterBar.d.ts +19 -0
  169. package/dist/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +69 -0
  170. package/dist/client/components/DashboardFilters/useDateRangeState.d.ts +19 -0
  171. package/dist/client/components/DashboardFilters/useFilterDropdowns.d.ts +21 -0
  172. package/dist/client/components/DashboardFilters/useFilterValueFetch.d.ts +23 -0
  173. package/dist/client/components/DashboardPortletCard.d.ts +2 -57
  174. package/dist/client/components/analyticsPortlet/PortletChart.d.ts +31 -0
  175. package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +35 -0
  176. package/dist/client/components/analyticsPortlet/PortletStates.d.ts +65 -0
  177. package/dist/client/components/analyticsPortlet/parsePortletQuery.d.ts +22 -0
  178. package/dist/client/components/analyticsPortlet/portletRenderState.d.ts +31 -0
  179. package/dist/client/components/analyticsPortlet/usePortletDebugData.d.ts +37 -0
  180. package/dist/client/components/analyticsPortlet/usePortletDrillState.d.ts +17 -0
  181. package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +37 -0
  182. package/dist/client/components/charts/ActivityGridChart.helpers.d.ts +33 -0
  183. package/dist/client/components/charts/ActivityGridChart.render.d.ts +31 -0
  184. package/dist/client/components/charts/AxisFormatControls.d.ts +3 -1
  185. package/dist/client/components/charts/BarChart.helpers.d.ts +23 -0
  186. package/dist/client/components/charts/BarSeries.d.ts +29 -0
  187. package/dist/client/components/charts/BubbleChart.helpers.d.ts +43 -0
  188. package/dist/client/components/charts/BubbleChart.render.d.ts +21 -0
  189. package/dist/client/components/charts/ChartStates.d.ts +38 -0
  190. package/dist/client/components/charts/FunnelChart.helpers.d.ts +25 -0
  191. package/dist/client/components/charts/FunnelViews.d.ts +16 -0
  192. package/dist/client/components/charts/HeatMapCanvas.d.ts +25 -0
  193. package/dist/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
  194. package/dist/client/components/charts/KpiDelta.helpers.d.ts +20 -0
  195. package/dist/client/components/charts/KpiNumber.helpers.d.ts +30 -0
  196. package/dist/client/components/charts/KpiStates.d.ts +19 -0
  197. package/dist/client/components/charts/ScatterChart.helpers.d.ts +43 -0
  198. package/dist/client/components/charts/ScatterSeries.d.ts +17 -0
  199. package/dist/client/components/charts/ScatterTooltip.d.ts +21 -0
  200. package/dist/client/components/charts/TreeMapChart.helpers.d.ts +37 -0
  201. package/dist/client/components/charts/TreeMapContent.d.ts +24 -0
  202. package/dist/client/components/charts/TreeMapLegend.d.ts +13 -0
  203. package/dist/client/components/charts/cartesianChartHelpers.d.ts +126 -0
  204. package/dist/client/components/charts/chartAxisResolution.d.ts +32 -0
  205. package/dist/client/components/charts/chartScaffolding.d.ts +77 -0
  206. package/dist/client/components/charts/gaugeChartHelpers.d.ts +36 -0
  207. package/dist/client/components/charts/kpiTextHelpers.d.ts +46 -0
  208. package/dist/client/components/charts/radarChartHelpers.d.ts +14 -0
  209. package/dist/client/components/charts/radialBarChartHelpers.d.ts +22 -0
  210. package/dist/client/components/charts/useChartDimensions.d.ts +20 -0
  211. package/dist/client/components/charts/useKpiDimensions.d.ts +30 -0
  212. package/dist/client/components/dashboard/DashboardEditBar.d.ts +5 -0
  213. package/dist/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
  214. package/dist/client/components/dashboardPortletCard/FilterFieldChip.d.ts +12 -0
  215. package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +43 -0
  216. package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +33 -0
  217. package/dist/client/components/dashboardPortletCard/filterField.d.ts +12 -0
  218. package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +55 -0
  219. package/dist/client/components/dashboardPortletCard/usePortletCardActions.d.ts +16 -0
  220. package/dist/client/components/portletAnalysisModal/saveValidation.d.ts +8 -0
  221. package/dist/client/components/shared/dateRangeUtils.d.ts +40 -0
  222. package/dist/client/components/shared/filterDisplayUtils.d.ts +10 -0
  223. package/dist/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +17 -0
  224. package/dist/client/components/shared/filterItem/FilterFieldDropdown.d.ts +16 -0
  225. package/dist/client/components/shared/filterItem/dateRangeSync.d.ts +14 -0
  226. package/dist/client/components/shared/filterItem/fieldVisuals.d.ts +5 -0
  227. package/dist/client/components/shared/filterValueSelector/FilterValueInputs.d.ts +55 -0
  228. package/dist/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +25 -0
  229. package/dist/client/components/shared/queryFieldUtils.d.ts +21 -0
  230. package/dist/client/components/shared/utils.d.ts +4 -43
  231. package/dist/client/components.js +3 -3
  232. package/dist/client/hooks/agentChatStream.d.ts +39 -0
  233. package/dist/client/hooks/analysisQueryExecutionModes.d.ts +133 -0
  234. package/dist/client/hooks/drillNavigation.d.ts +25 -0
  235. package/dist/client/hooks.js +3 -3
  236. package/dist/client/icons.js +2 -2
  237. package/dist/client/index.js +816 -669
  238. package/dist/client/index.js.map +1 -1
  239. package/dist/client/providers.js +3 -3
  240. package/dist/client/schema.js +1 -1
  241. package/dist/client/shared/chartConfigBuilders.d.ts +18 -0
  242. package/dist/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
  243. package/dist/client/shared/queryTransforms.d.ts +20 -0
  244. package/dist/client/shared/utils.d.ts +2 -4
  245. package/dist/client/stores/optionsToAnalysisConfig.d.ts +17 -0
  246. package/dist/client/styles.css +1 -1
  247. package/dist/client/utils/axisValueFormatting.d.ts +32 -0
  248. package/dist/client/utils/timeValueFormatting.d.ts +32 -0
  249. package/dist/client/utils.js +6 -6
  250. package/dist/client-bundle-stats.html +1 -1
  251. package/dist/mcp-app/mcp-app.html +55 -55
  252. package/dist/server/google-BOnRIN1w.cjs +2 -0
  253. package/dist/server/{google-CFYljAOF.js → google-CvKM9yVM.js} +83 -71
  254. package/dist/server/index.cjs +179 -211
  255. package/dist/server/index.js +6330 -6458
  256. package/dist/server/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
  257. package/dist/server/openai-vXvLni8v.cjs +1 -0
  258. package/dist/server/server/adapters/base-adapter.d.ts +80 -35
  259. package/dist/server/server/adapters/databend-adapter.d.ts +8 -59
  260. package/dist/server/server/adapters/duckdb-adapter.d.ts +5 -59
  261. package/dist/server/server/adapters/mysql-adapter.d.ts +13 -70
  262. package/dist/server/server/adapters/postgres-adapter.d.ts +1 -65
  263. package/dist/server/server/adapters/snowflake-adapter.d.ts +5 -68
  264. package/dist/server/server/adapters/sqlite-adapter.d.ts +12 -32
  265. package/dist/server/server/adapters/window-function-builder.d.ts +11 -0
  266. package/dist/server/server/agent/chart-validation.d.ts +0 -5
  267. package/dist/server/server/agent/handler-steps.d.ts +37 -0
  268. package/dist/server/server/ai/discovery-helpers.d.ts +29 -0
  269. package/dist/server/server/ai/discovery.d.ts +4 -0
  270. package/dist/server/server/ai/suggestion-helpers.d.ts +33 -0
  271. package/dist/server/server/ai/suggestion.d.ts +0 -3
  272. package/dist/server/server/ai/validation-helpers.d.ts +21 -0
  273. package/dist/server/server/ai/validation.d.ts +0 -3
  274. package/dist/server/server/builders/analysis-utils.d.ts +106 -0
  275. package/dist/server/server/builders/cte-builder.d.ts +46 -0
  276. package/dist/server/server/builders/date-time-builder.d.ts +5 -0
  277. package/dist/server/server/builders/date-time-helpers.d.ts +34 -0
  278. package/dist/server/server/builders/filter-builder.d.ts +2 -0
  279. package/dist/server/server/builders/filter-operators.d.ts +23 -0
  280. package/dist/server/server/builders/flow-query-builder.d.ts +46 -19
  281. package/dist/server/server/builders/funnel-query-builder.d.ts +16 -5
  282. package/dist/server/server/builders/group-by-builder.d.ts +11 -0
  283. package/dist/server/server/builders/measure-builder.d.ts +43 -0
  284. package/dist/server/server/builders/retention-query-builder.d.ts +12 -14
  285. package/dist/server/server/cache-utils.d.ts +25 -5
  286. package/dist/server/server/compiler-metadata.d.ts +11 -0
  287. package/dist/server/server/compiler.d.ts +8 -14
  288. package/dist/server/server/cube-utils.d.ts +29 -4
  289. package/dist/server/server/execution/annotation-builder.d.ts +12 -0
  290. package/dist/server/server/execution/filter-cache-preloader.d.ts +19 -0
  291. package/dist/server/server/execution/mode-router.d.ts +25 -0
  292. package/dist/server/server/execution/query-result-cache.d.ts +21 -0
  293. package/dist/server/server/execution/result-post-processor.d.ts +10 -0
  294. package/dist/server/server/executor.d.ts +33 -30
  295. package/dist/server/server/executors/explain-utils.d.ts +28 -0
  296. package/dist/server/server/explain/explain-tree.d.ts +20 -0
  297. package/dist/server/server/filter-cache.d.ts +2 -2
  298. package/dist/server/server/gap-filler.d.ts +6 -0
  299. package/dist/server/server/index.d.ts +3 -1
  300. package/dist/server/server/logical-plan/cte-planner-helpers.d.ts +37 -0
  301. package/dist/server/server/logical-plan/cte-planner.d.ts +104 -0
  302. package/dist/server/server/logical-plan/filter-propagation.d.ts +44 -0
  303. package/dist/server/server/logical-plan/index.d.ts +6 -1
  304. package/dist/server/server/logical-plan/join-planner.d.ts +27 -0
  305. package/dist/server/server/logical-plan/logical-planner.d.ts +7 -200
  306. package/dist/server/server/logical-plan/optimiser.d.ts +3 -1
  307. package/dist/server/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
  308. package/dist/server/server/logical-plan/planner-utils.d.ts +20 -0
  309. package/dist/server/server/logical-plan/types.d.ts +17 -9
  310. package/dist/server/server/measure-classification.d.ts +40 -0
  311. package/dist/server/server/physical-plan/drizzle-plan-builder.d.ts +21 -21
  312. package/dist/server/server/physical-plan/drizzle-sql-builder.d.ts +11 -0
  313. package/dist/server/server/physical-plan/processors/index.d.ts +2 -0
  314. package/dist/server/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
  315. package/dist/server/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
  316. package/dist/server/server/physical-plan/processors/shared.d.ts +5 -0
  317. package/dist/server/server/query-handlers.d.ts +79 -0
  318. package/dist/server/server/query-modes.d.ts +28 -0
  319. package/dist/server/server/query-validator.d.ts +9 -0
  320. package/dist/server/server/resolvers/calculated-measure-resolver.d.ts +5 -0
  321. package/dist/server/server/resolvers/join-path-resolver.d.ts +6 -0
  322. package/dist/server/server/sql-format.d.ts +11 -0
  323. package/dist/server/server/types/cube.d.ts +18 -4
  324. package/dist/server/server/types/flow.d.ts +6 -5
  325. package/dist/server/server/types/index.d.ts +1 -1
  326. package/dist/server/server/types/validation.d.ts +14 -0
  327. package/package.json +11 -4
  328. package/dist/adapters/google-DUlXeeDA.cjs +0 -2
  329. package/dist/adapters/handler-CzbCuS6_.cjs +0 -25
  330. package/dist/adapters/locale-BPB7flIG.js +0 -8249
  331. package/dist/adapters/locale-tIMrNcCr.cjs +0 -198
  332. package/dist/adapters/mcp-transport-C2QzXm6h.cjs +0 -40
  333. package/dist/adapters/mcp-transport-D0B3S1tB.js +0 -579
  334. package/dist/adapters/openai-D_U4V0kT.cjs +0 -1
  335. package/dist/adapters/utils-KV37IBIv.cjs +0 -128
  336. package/dist/client/chunks/DashboardEditModal-CjCIAT-J.js.map +0 -1
  337. package/dist/client/chunks/analysis-builder-MuMIzoRq.js +0 -5367
  338. package/dist/client/chunks/analysis-builder-MuMIzoRq.js.map +0 -1
  339. package/dist/client/chunks/analysis-builder-shared-CYVwSPqt.js.map +0 -1
  340. package/dist/client/chunks/chart-activity-grid-DmruKPab.js.map +0 -1
  341. package/dist/client/chunks/chart-area-DHCPM4Em.js +0 -450
  342. package/dist/client/chunks/chart-area-DHCPM4Em.js.map +0 -1
  343. package/dist/client/chunks/chart-bar-KddciGDv.js +0 -271
  344. package/dist/client/chunks/chart-bar-KddciGDv.js.map +0 -1
  345. package/dist/client/chunks/chart-bubble-CfqiB538.js +0 -273
  346. package/dist/client/chunks/chart-bubble-CfqiB538.js.map +0 -1
  347. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js +0 -101
  348. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js.map +0 -1
  349. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js +0 -95
  350. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js.map +0 -1
  351. package/dist/client/chunks/chart-config-box-plot-DJ-dWWXA.js.map +0 -1
  352. package/dist/client/chunks/chart-config-gauge-DSwC04l0.js.map +0 -1
  353. package/dist/client/chunks/chart-config-kpi-delta-D6BIkHL3.js.map +0 -1
  354. package/dist/client/chunks/chart-config-kpi-number-Bx-V9a62.js.map +0 -1
  355. package/dist/client/chunks/chart-config-kpi-text-CcqC1u-8.js.map +0 -1
  356. package/dist/client/chunks/chart-config-line-Db3jDsWc.js.map +0 -1
  357. package/dist/client/chunks/chart-config-pie-DD4SmRTF.js.map +0 -1
  358. package/dist/client/chunks/chart-config-radar-CC2XAaGr.js.map +0 -1
  359. package/dist/client/chunks/chart-config-radial-bar-DmxKx1R0.js.map +0 -1
  360. package/dist/client/chunks/chart-config-tree-map-BI-oQStO.js.map +0 -1
  361. package/dist/client/chunks/chart-config-waterfall-DSnyixbI.js.map +0 -1
  362. package/dist/client/chunks/chart-data-table-BO4sXsim.js.map +0 -1
  363. package/dist/client/chunks/chart-funnel-DnWRsmnS.js.map +0 -1
  364. package/dist/client/chunks/chart-gauge-CgMeqeGb.js +0 -424
  365. package/dist/client/chunks/chart-gauge-CgMeqeGb.js.map +0 -1
  366. package/dist/client/chunks/chart-heat-map-DcGm9SWK.js +0 -231
  367. package/dist/client/chunks/chart-heat-map-DcGm9SWK.js.map +0 -1
  368. package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js +0 -343
  369. package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js.map +0 -1
  370. package/dist/client/chunks/chart-kpi-number-gWYF44ol.js +0 -322
  371. package/dist/client/chunks/chart-kpi-number-gWYF44ol.js.map +0 -1
  372. package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js +0 -149
  373. package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js.map +0 -1
  374. package/dist/client/chunks/chart-line-9BEGN5Ti.js +0 -433
  375. package/dist/client/chunks/chart-line-9BEGN5Ti.js.map +0 -1
  376. package/dist/client/chunks/chart-pie-BjAIhyOi.js +0 -172
  377. package/dist/client/chunks/chart-pie-BjAIhyOi.js.map +0 -1
  378. package/dist/client/chunks/chart-radar-Dgkcl2bN.js +0 -154
  379. package/dist/client/chunks/chart-radar-Dgkcl2bN.js.map +0 -1
  380. package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js +0 -148
  381. package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js.map +0 -1
  382. package/dist/client/chunks/chart-scatter-DaHYP_OL.js +0 -255
  383. package/dist/client/chunks/chart-scatter-DaHYP_OL.js.map +0 -1
  384. package/dist/client/chunks/chart-tree-map-uiwUU4nb.js +0 -298
  385. package/dist/client/chunks/chart-tree-map-uiwUU4nb.js.map +0 -1
  386. package/dist/client/chunks/useDirtyStateTracking-CoeQbprt.js.map +0 -1
  387. package/dist/server/google-DUlXeeDA.cjs +0 -2
  388. package/dist/server/openai-D_U4V0kT.cjs +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-bubble-CfqiB538.js","names":[],"sources":["../../../src/client/hooks/useTheme.ts","../../../src/client/components/charts/BubbleChart.tsx"],"sourcesContent":["/**\n * useTheme - External Theme State Hook\n *\n * Uses React 18's useSyncExternalStore to prevent parent component re-renders.\n * The theme state is stored externally and changes are propagated through\n * a subscribe/notify pattern.\n *\n * This prevents the ThemeToggle component from causing Layout re-renders.\n */\n\nimport { useSyncExternalStore, useCallback } from 'react'\nimport { getTheme, setTheme as setThemeUtil, watchThemeChanges, type Theme } from '../theme'\n\n// External store for theme state\nconst themeStore = {\n listeners: new Set<() => void>(),\n\n subscribe(listener: () => void) {\n this.listeners.add(listener)\n return () => this.listeners.delete(listener)\n },\n\n notify() {\n this.listeners.forEach(listener => listener())\n }\n}\n\n// Watch theme changes from DOM/system and notify subscribers\nwatchThemeChanges(() => {\n themeStore.notify()\n})\n\n/**\n * Hook to access and update theme\n *\n * Returns current theme and a setter function.\n * Only components using this hook will re-render on theme changes.\n */\nexport function useTheme() {\n // Subscribe to external theme store\n const theme = useSyncExternalStore(\n themeStore.subscribe.bind(themeStore),\n getTheme, // Client-side snapshot\n getTheme // Server-side snapshot (SSR)\n )\n\n // Stable setter function\n const setTheme = useCallback((newTheme: Theme) => {\n setThemeUtil(newTheme)\n themeStore.notify()\n }, [])\n\n return { theme, setTheme }\n}\n","import React, { useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport { useTranslation } from '../../hooks/useTranslation'\nimport { select, scaleLinear, scaleSqrt, scaleOrdinal, scaleQuantize, extent, max, axisBottom, axisLeft, transition as _transition, type ScaleOrdinal, type ScaleQuantize } from 'd3'\n// _transition import is for side effects only - it extends Selection.prototype with .transition() method\nimport { CHART_COLORS, CHART_COLORS_GRADIENT, CHART_MARGINS } from '../../utils/chartConstants'\nimport { formatTimeValue, getFieldGranularity, parseNumericValue, isValidNumericValue, formatAxisValue } from '../../utils/chartUtils'\nimport { useCubeFieldLabel } from '../../hooks/useCubeFieldLabel'\nimport { useTheme } from '../../hooks/useTheme'\nimport type { ChartProps } from '../../types'\n\ninterface BubbleData {\n x: number\n xLabel?: string // Formatted label for time dimensions\n y: number\n size: number\n color?: string | number\n label: string\n series?: string\n}\n\nconst BubbleChart = React.memo(function BubbleChart({\n data,\n chartConfig,\n displayConfig = {},\n queryObject,\n height = \"100%\",\n colorPalette\n}: ChartProps) {\n const { t } = useTranslation()\n const svgRef = useRef<SVGSVGElement | null>(null)\n const containerRef = useRef<HTMLDivElement | null>(null)\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 })\n const [dimensionsReady, setDimensionsReady] = useState(false)\n const { theme } = useTheme()\n const getFieldLabel = useCubeFieldLabel()\n\n // Memoize safeDisplayConfig to prevent unnecessary re-renders\n const safeDisplayConfig = useMemo(() => ({\n showLegend: displayConfig?.showLegend ?? true,\n showGrid: displayConfig?.showGrid ?? true,\n showTooltip: displayConfig?.showTooltip ?? true,\n minBubbleSize: displayConfig?.minBubbleSize ?? 5,\n maxBubbleSize: displayConfig?.maxBubbleSize ?? 50,\n bubbleOpacity: displayConfig?.bubbleOpacity ?? 0.7,\n xAxisFormat: displayConfig?.xAxisFormat,\n leftYAxisFormat: displayConfig?.leftYAxisFormat\n }), [\n displayConfig?.showLegend,\n displayConfig?.showGrid,\n displayConfig?.showTooltip,\n displayConfig?.minBubbleSize,\n displayConfig?.maxBubbleSize,\n displayConfig?.bubbleOpacity,\n displayConfig?.xAxisFormat,\n displayConfig?.leftYAxisFormat\n ])\n\n // Enhanced dimension measurement with retry mechanism\n useLayoutEffect(() => {\n let retryCount = 0\n const maxRetries = 10\n let rafId: number\n let timeoutId: ReturnType<typeof setTimeout>\n \n const updateDimensions = () => {\n if (containerRef.current) {\n const { width, height } = containerRef.current.getBoundingClientRect()\n \n if (width > 0 && height > 0) {\n setDimensions({ width, height })\n setDimensionsReady(true)\n return true\n }\n }\n return false\n }\n \n // Immediate measurement\n const success = updateDimensions()\n \n if (!success && retryCount < maxRetries) {\n // Retry with requestAnimationFrame\n const retryWithRaf = () => {\n const rafSuccess = updateDimensions()\n \n if (!rafSuccess && retryCount < maxRetries) {\n retryCount++\n // Use setTimeout for additional retries with increasing delays\n timeoutId = setTimeout(() => {\n rafId = requestAnimationFrame(retryWithRaf)\n }, 50 * retryCount) // Increasing delay: 50ms, 100ms, 150ms, etc.\n }\n }\n \n rafId = requestAnimationFrame(retryWithRaf)\n }\n \n return () => {\n if (rafId) cancelAnimationFrame(rafId)\n if (timeoutId) clearTimeout(timeoutId)\n }\n }, [])\n\n // Enhanced ResizeObserver for dynamic resizing with immediate initialization\n useEffect(() => {\n let resizeObserver: ResizeObserver | null = null\n \n const updateDimensions = () => {\n if (containerRef.current) {\n const { width, height } = containerRef.current.getBoundingClientRect()\n if (width > 0 && height > 0) {\n setDimensions({ width, height })\n if (!dimensionsReady) {\n setDimensionsReady(true)\n }\n }\n }\n }\n \n // Initialize ResizeObserver immediately\n if (containerRef.current) {\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect\n if (width > 0 && height > 0) {\n setDimensions({ width, height })\n if (!dimensionsReady) {\n setDimensionsReady(true)\n }\n }\n }\n })\n \n resizeObserver.observe(containerRef.current)\n \n // Also try immediate measurement as fallback\n updateDimensions()\n }\n\n // Window resize as additional fallback\n window.addEventListener('resize', updateDimensions)\n \n return () => {\n if (resizeObserver) {\n resizeObserver.disconnect()\n }\n window.removeEventListener('resize', updateDimensions)\n }\n }, [dimensionsReady])\n\n useEffect(() => {\n if (!data || data.length === 0 || !svgRef.current || !dimensionsReady || dimensions.width === 0) {\n return\n }\n\n // Clear previous chart\n select(svgRef.current).selectAll('*').remove()\n\n\n // Validate chartConfig - only new format supported\n if (!chartConfig?.xAxis || !chartConfig?.yAxis || !chartConfig?.series) {\n return\n }\n\n const xAxisField = Array.isArray(chartConfig.xAxis) ? chartConfig.xAxis[0] : chartConfig.xAxis\n const yAxisField = Array.isArray(chartConfig.yAxis) ? chartConfig.yAxis[0] : chartConfig.yAxis\n const seriesField = Array.isArray(chartConfig.series) ? chartConfig.series[0] : chartConfig.series\n const sizeFieldName = Array.isArray(chartConfig.sizeField) ? chartConfig.sizeField[0] : chartConfig.sizeField || yAxisField\n const colorFieldName = Array.isArray(chartConfig.colorField) ? chartConfig.colorField[0] : chartConfig.colorField\n\n\n if (!xAxisField || !yAxisField || !seriesField || !sizeFieldName) {\n return\n }\n\n // Transform data for bubble chart\n // Null handling: Filter out bubbles where x, y, or size are null\n const xGranularity = getFieldGranularity(queryObject, xAxisField)\n\n // Check if x-axis field is a time dimension\n const isTimeDimension = queryObject?.timeDimensions?.some(\n (td: { dimension: string }) => td.dimension === xAxisField\n ) || false\n\n const bubbleData: BubbleData[] = data\n .map(item => {\n const rawXValue = item[xAxisField]\n let xNum: number\n let xLabel: string\n\n if (isTimeDimension && rawXValue) {\n // For time dimensions, convert to timestamp for proper numeric positioning\n const dateStr = String(rawXValue)\n // Try to parse as date - handle ISO format and PostgreSQL format\n let date: Date\n if (dateStr.match(/^\\d{4}-\\d{2}-\\d{2}[T ]/)) {\n // Full timestamp format\n let isoStr = dateStr\n if (dateStr.includes(' ')) {\n isoStr = dateStr.replace(' ', 'T').replace('+00', 'Z').replace(/\\+\\d{2}:\\d{2}$/, 'Z')\n }\n if (!isoStr.endsWith('Z') && !isoStr.includes('+')) {\n isoStr = isoStr + 'Z'\n }\n date = new Date(isoStr)\n } else {\n date = new Date(dateStr)\n }\n\n xNum = isNaN(date.getTime()) ? parseFloat(dateStr) : date.getTime()\n xLabel = formatTimeValue(rawXValue, xGranularity)\n } else {\n // Non-time value - use as-is\n const formattedValue = formatTimeValue(rawXValue, xGranularity) || rawXValue\n xNum = typeof formattedValue === 'string' ? parseFloat(formattedValue) : formattedValue\n xLabel = String(formattedValue)\n }\n\n const yValue = parseNumericValue(item[yAxisField])\n const sizeValue = parseNumericValue(item[sizeFieldName])\n const seriesValue = item[seriesField]\n\n return {\n x: xNum,\n xLabel, // Store formatted label for tooltip display\n y: yValue as number, // Type assertion: filter below ensures this is never null\n size: sizeValue !== null ? Math.abs(sizeValue) : 0, // Ensure positive size\n color: colorFieldName ? item[colorFieldName] : seriesValue,\n series: seriesValue,\n label: `${seriesValue || 'Unknown'}`,\n isValid: isValidNumericValue(xNum) && yValue !== null && sizeValue !== null && sizeValue > 0\n }\n })\n .filter(d => d.isValid && d.size > 0) // Filter out bubbles with invalid coordinates or no size\n\n if (bubbleData.length === 0) return\n\n const margin = { \n ...CHART_MARGINS, \n left: CHART_MARGINS.left + 30, // Add extra 30px left margin for Y-axis label\n bottom: (safeDisplayConfig.showLegend && colorFieldName) ? 100 : 40 // Add extra space for legend\n }\n const width = dimensions.width - margin.left - margin.right\n const chartHeight = dimensions.height - margin.top - margin.bottom\n\n const svg = select(svgRef.current)\n .attr('width', dimensions.width)\n .attr('height', dimensions.height)\n\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`)\n\n // Set up scales\n const xScale = scaleLinear()\n .domain(extent(bubbleData, d => d.x) as [number, number])\n .range([0, width])\n .nice()\n\n const yScale = scaleLinear()\n .domain(extent(bubbleData, d => d.y) as [number, number])\n .range([chartHeight, 0])\n .nice()\n\n const sizeScale = scaleSqrt()\n .domain([0, max(bubbleData, d => d.size) as number])\n .range([safeDisplayConfig.minBubbleSize, safeDisplayConfig.maxBubbleSize])\n\n // Set up color scale\n let colorScale: ScaleOrdinal<string, string> | ScaleQuantize<string>\n let isNumericColorField = false\n let uniqueColors: string[] = []\n \n if (colorFieldName && bubbleData.length > 0) {\n // Check if color field is numeric for color scaling (same logic as TreeMapChart)\n const colorValues = bubbleData.map(item => {\n const value = item.color\n return typeof value === 'string' ? parseFloat(value) : value\n }).filter((val): val is number => !isNaN(val as number))\n \n isNumericColorField = colorValues.length === bubbleData.length && colorValues.every(val => typeof val === 'number')\n \n if (isNumericColorField) {\n // Use D3 quantize scale for better color distribution with small ranges\n const minValue = Math.min(...colorValues)\n const maxValue = Math.max(...colorValues)\n \n // Create D3 quantize color scale - maps continuous data to discrete color bands\n colorScale = scaleQuantize<string>()\n .domain([minValue, maxValue])\n .range(colorPalette?.gradient || CHART_COLORS_GRADIENT)\n } else {\n // Categorical color field - use series colors\n uniqueColors = [...new Set(bubbleData.map(d => String(d.color)))]\n colorScale = scaleOrdinal<string>()\n .domain(uniqueColors)\n .range(colorPalette?.colors || CHART_COLORS)\n }\n } else {\n // Single color for all bubbles\n colorScale = scaleOrdinal<string>()\n .domain(['default'])\n .range([CHART_COLORS[0]])\n }\n\n // Get theme colors from CSS variables\n const getThemeColor = (varName: string, fallback: string) => {\n const value = getComputedStyle(document.documentElement).getPropertyValue(varName).trim()\n return value || fallback\n }\n\n const isDark = theme !== 'light'\n const textColor = isDark\n ? getThemeColor('--dc-text-muted', '#cbd5e1') // Lighter text for dark mode\n : getThemeColor('--dc-text-secondary', '#374151') // Darker text for light mode\n const gridColor = isDark\n ? getThemeColor('--dc-border', '#475569') // Lighter grid for dark mode\n : '#9ca3af' // Much darker gray for light mode visibility\n\n // Add grid\n if (safeDisplayConfig.showGrid) {\n // X-axis grid\n const xGrid = g.append('g')\n .attr('class', 'grid')\n .attr('transform', `translate(0,${chartHeight})`)\n .call(axisBottom(xScale)\n .tickSize(-chartHeight)\n .tickFormat(() => '')\n )\n\n xGrid.selectAll('line')\n .style('stroke', gridColor)\n .style('stroke-dasharray', '3,3')\n .style('opacity', 0.3)\n\n xGrid.select('.domain')\n .style('stroke', 'none')\n\n // Y-axis grid\n const yGrid = g.append('g')\n .attr('class', 'grid')\n .call(axisLeft(yScale)\n .tickSize(-width)\n .tickFormat(() => '')\n )\n\n yGrid.selectAll('line')\n .style('stroke', gridColor)\n .style('stroke-dasharray', '3,3')\n .style('opacity', 0.3)\n\n yGrid.select('.domain')\n .style('stroke', 'none')\n }\n\n // Add X axis with proper time formatting if needed\n const xAxisGenerator = axisBottom(xScale)\n\n // If it's a time dimension, format the tick labels\n if (isTimeDimension) {\n xAxisGenerator.tickFormat((d) => {\n const date = new Date(d as number)\n if (isNaN(date.getTime())) return String(d)\n\n // Format based on granularity\n switch (xGranularity?.toLowerCase()) {\n case 'year':\n return String(date.getUTCFullYear())\n case 'quarter': {\n const q = Math.floor(date.getUTCMonth() / 3) + 1\n return `${date.getUTCFullYear()}-Q${q}`\n }\n case 'month':\n return `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, '0')}`\n case 'week':\n case 'day':\n return `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, '0')}-${String(date.getUTCDate()).padStart(2, '0')}`\n case 'hour':\n return `${String(date.getUTCMonth() + 1).padStart(2, '0')}-${String(date.getUTCDate()).padStart(2, '0')} ${String(date.getUTCHours()).padStart(2, '0')}:00`\n default:\n return `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, '0')}`\n }\n })\n } else if (safeDisplayConfig.xAxisFormat) {\n // Apply custom formatting for non-time X-axis\n xAxisGenerator.tickFormat((d) => formatAxisValue(d as number, safeDisplayConfig.xAxisFormat))\n }\n\n const xAxis = g.append('g')\n .attr('transform', `translate(0,${chartHeight})`)\n .call(xAxisGenerator)\n\n xAxis.selectAll('text')\n .style('fill', textColor)\n\n xAxis.selectAll('line, path')\n .style('stroke', gridColor)\n\n xAxis.append('text')\n .attr('x', width / 2)\n .attr('y', 35)\n .attr('fill', textColor)\n .style('text-anchor', 'middle')\n .style('font-size', '12px')\n .text(safeDisplayConfig.xAxisFormat?.label || getFieldLabel(xAxisField))\n\n // Add Y axis with optional formatting\n const yAxisGenerator = axisLeft(yScale)\n if (safeDisplayConfig.leftYAxisFormat) {\n yAxisGenerator.tickFormat((d) => formatAxisValue(d as number, safeDisplayConfig.leftYAxisFormat))\n }\n const yAxis = g.append('g')\n .call(yAxisGenerator)\n\n yAxis.selectAll('text')\n .style('fill', textColor)\n\n yAxis.selectAll('line, path')\n .style('stroke', gridColor)\n\n yAxis.append('text')\n .attr('transform', 'rotate(-90)')\n .attr('y', -35)\n .attr('x', -chartHeight / 2)\n .attr('fill', textColor)\n .style('text-anchor', 'middle')\n .style('font-size', '12px')\n .text(safeDisplayConfig.leftYAxisFormat?.label || getFieldLabel(yAxisField))\n\n // Create tooltip\n const tooltip = select('body').append('div')\n .attr('class', 'bubble-chart-tooltip')\n .style('position', 'absolute')\n .style('padding', '8px')\n .style('background', 'rgba(0, 0, 0, 0.8)')\n .style('color', 'white')\n .style('border-radius', '4px')\n .style('font-size', '12px')\n .style('pointer-events', 'none')\n .style('opacity', 0)\n .style('z-index', 1000)\n\n // Add bubbles\n const bubbles = g.selectAll('.bubble')\n .data(bubbleData)\n .enter().append('circle')\n .attr('class', 'bubble')\n .attr('cx', d => xScale(d.x))\n .attr('cy', d => yScale(d.y))\n .attr('r', d => sizeScale(d.size))\n .style('fill', d => {\n if (colorFieldName && d.color !== undefined) {\n return isNumericColorField\n ? (colorScale as ScaleQuantize<string>)(d.color as number)\n : (colorScale as ScaleOrdinal<string, string>)(String(d.color))\n }\n return CHART_COLORS[0]\n })\n .style('opacity', safeDisplayConfig.bubbleOpacity)\n .style('stroke', '#fff')\n .style('stroke-width', 1)\n .style('cursor', 'pointer')\n\n // Add hover effects\n if (safeDisplayConfig.showTooltip) {\n bubbles\n .on('mouseover', function(event, d) {\n select(this)\n .transition()\n .duration(200)\n .style('opacity', 1)\n .attr('r', sizeScale(d.size) * 1.1)\n\n const tooltipContent = [\n `<strong>${d.series || 'Unknown'}</strong>`,\n `${getFieldLabel(xAxisField)}: ${d.xLabel || (safeDisplayConfig.xAxisFormat ? formatAxisValue(d.x, safeDisplayConfig.xAxisFormat) : d.x)}`,\n `${getFieldLabel(yAxisField)}: ${safeDisplayConfig.leftYAxisFormat ? formatAxisValue(d.y, safeDisplayConfig.leftYAxisFormat) : d.y}`,\n `${getFieldLabel(sizeFieldName)}: ${safeDisplayConfig.leftYAxisFormat ? formatAxisValue(d.size, safeDisplayConfig.leftYAxisFormat) : d.size}`,\n colorFieldName && d.color ? `${getFieldLabel(colorFieldName)}: ${d.color}` : ''\n ].filter(Boolean).join('<br>')\n\n tooltip\n .html(tooltipContent)\n .style('left', (event.pageX + 10) + 'px')\n .style('top', (event.pageY - 10) + 'px')\n .transition()\n .duration(200)\n .style('opacity', 1)\n })\n .on('mousemove', function(event) {\n tooltip\n .style('left', (event.pageX + 10) + 'px')\n .style('top', (event.pageY - 10) + 'px')\n })\n .on('mouseout', function(_event, d) {\n select(this)\n .transition()\n .duration(200)\n .style('opacity', safeDisplayConfig.bubbleOpacity)\n .attr('r', sizeScale(d.size))\n\n tooltip\n .transition()\n .duration(200)\n .style('opacity', 0)\n })\n }\n\n // Add legend if needed\n if (safeDisplayConfig.showLegend && colorFieldName) {\n if (isNumericColorField) {\n // Create gradient legend for numeric color field\n const legendWidth = 200\n const legendHeight = 20\n const minValue = Math.min(...bubbleData.map(d => d.color as number))\n const maxValue = Math.max(...bubbleData.map(d => d.color as number))\n \n const legend = g.append('g')\n .attr('class', 'color-legend')\n .attr('transform', `translate(${width / 2 - legendWidth / 2}, ${chartHeight + 60})`)\n\n // Create gradient definition\n const defs = svg.append('defs')\n const gradient = defs.append('linearGradient')\n .attr('id', 'color-scale-gradient')\n .attr('x1', '0%')\n .attr('y1', '0%')\n .attr('x2', '100%')\n .attr('y2', '0%')\n\n // Add color stops for the gradient\n const gradientColors = colorPalette?.gradient || CHART_COLORS_GRADIENT\n gradientColors.forEach((color, i) => {\n gradient.append('stop')\n .attr('offset', `${(i / (gradientColors.length - 1)) * 100}%`)\n .attr('stop-color', color)\n })\n\n // Add the gradient rectangle\n legend.append('rect')\n .attr('width', legendWidth)\n .attr('height', legendHeight)\n .style('fill', 'url(#color-scale-gradient)')\n .style('stroke', '#ccc')\n .style('stroke-width', 1)\n\n // Add min value label\n legend.append('text')\n .attr('x', 0)\n .attr('y', legendHeight + 15)\n .attr('text-anchor', 'start')\n .style('font-size', '11px')\n .style('fill', textColor)\n .text(safeDisplayConfig.leftYAxisFormat ? formatAxisValue(minValue, safeDisplayConfig.leftYAxisFormat) : minValue.toFixed(2))\n\n // Add max value label\n legend.append('text')\n .attr('x', legendWidth)\n .attr('y', legendHeight + 15)\n .attr('text-anchor', 'end')\n .style('font-size', '11px')\n .style('fill', textColor)\n .text(safeDisplayConfig.leftYAxisFormat ? formatAxisValue(maxValue, safeDisplayConfig.leftYAxisFormat) : maxValue.toFixed(2))\n\n // Add field name label\n legend.append('text')\n .attr('x', legendWidth / 2)\n .attr('y', -5)\n .attr('text-anchor', 'middle')\n .style('font-size', '12px')\n .style('font-weight', 'bold')\n .style('fill', textColor)\n .text(getFieldLabel(colorFieldName))\n\n } else {\n // Original categorical legend\n const legendItems = uniqueColors\n\n if (legendItems.length > 0) {\n const legend = g.append('g')\n .attr('class', 'legend')\n .attr('transform', `translate(${width / 2 - (legendItems.length * 80) / 2}, ${chartHeight + 60})`)\n\n const legendItem = legend.selectAll('.legend-item')\n .data(legendItems)\n .enter().append('g')\n .attr('class', 'legend-item')\n .attr('transform', (_d, i) => `translate(${i * 80}, 0)`)\n .style('cursor', 'pointer')\n\n legendItem.append('circle')\n .attr('cx', 5)\n .attr('cy', 5)\n .attr('r', 5)\n .style('fill', d => (colorScale as ScaleOrdinal<string, string>)(d as string))\n .style('opacity', safeDisplayConfig.bubbleOpacity)\n\n legendItem.append('text')\n .attr('x', 15)\n .attr('y', 5)\n .attr('dy', '.35em')\n .style('font-size', '11px')\n .style('fill', textColor)\n .text(d => String(d))\n\n // Legend hover effects\n legendItem\n .on('mouseover', function(_event, legendKey) {\n // Highlight matching bubbles\n bubbles\n .transition()\n .duration(200)\n .style('opacity', d => {\n const matches = colorFieldName && String(d.color) === legendKey\n return matches ? 1 : 0.2\n })\n })\n .on('mouseout', function() {\n // Reset all bubbles\n bubbles\n .transition()\n .duration(200)\n .style('opacity', safeDisplayConfig.bubbleOpacity)\n })\n }\n }\n }\n\n // Cleanup function\n return () => {\n tooltip.remove()\n }\n }, [data, chartConfig, safeDisplayConfig, queryObject, dimensions, dimensionsReady, colorPalette, theme, getFieldLabel])\n\n if (!data || data.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">{t('chart.runtime.noData')}</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">{t('chart.runtime.noDataHint.bubble')}</div>\n </div>\n </div>\n )\n }\n\n // Validate that we have required fields\n const hasValidConfig = chartConfig?.xAxis && chartConfig?.yAxis && chartConfig?.series\n if (!hasValidConfig) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">{t('chart.runtime.activityGridConfigRequired')}</div>\n <div className=\"dc:text-xs\">{t('chart.runtime.configErrorHint.bubbleRequired')}</div>\n <div className=\"dc:text-xs dc:mt-1\">{t('chart.runtime.configErrorHint.bubbleOptional')}</div>\n </div>\n </div>\n )\n }\n\n return (\n <div className=\"dc:w-full dc:flex-1 dc:flex dc:flex-col dc:relative\" style={{ height, minHeight: '250px', overflow: 'hidden' }}>\n <div ref={containerRef} className=\"dc:w-full dc:h-full dc:relative\">\n <svg ref={svgRef} className=\"dc:w-full dc:h-full\" />\n {!dimensionsReady && (\n <div className=\"dc:absolute dc:inset-0 dc:flex dc:items-center dc:justify-center\">\n <div className=\"text-dc-text-muted dc:text-sm\">{t('chart.runtime.measuringDimensions')}</div>\n </div>\n )}\n </div>\n </div>\n )\n})\n\nexport default BubbleChart"],"mappings":";;;;;;AAcA,IAAM,IAAa;CACjB,2BAAW,IAAI,IAAgB;CAE/B,UAAU,GAAsB;EAE9B,OADA,KAAK,UAAU,IAAI,CAAQ,SACd,KAAK,UAAU,OAAO,CAAQ;CAC7C;CAEA,SAAS;EACP,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;AACF;AAGA,QAAwB;CACtB,EAAW,OAAO;AACpB,CAAC;AAQD,SAAgB,IAAW;CAczB,OAAO;EAAE,OAZK,EACZ,EAAW,UAAU,KAAK,CAAU,GACpC,GACA,CASO;EAAO,UALC,GAAa,MAAoB;GAEhD,AADA,EAAa,CAAQ,GACrB,EAAW,OAAO;EACpB,GAAG,CAAC,CAEY;CAAS;AAC3B;;;iDCjCM,IAAc,EAAM,KAAK,SAAqB,EAClD,SACA,gBACA,mBAAgB,CAAC,GACjB,gBACA,YAAS,QACT,mBACa;CACb,IAAM,EAAE,SAAM,EAAe,GACvB,IAAS,EAA6B,IAAI,GAC1C,IAAe,EAA8B,IAAI,GACjD,CAAC,GAAY,KAAiB,EAAS;EAAE,OAAO;EAAG,QAAQ;CAAE,CAAC,GAC9D,CAAC,GAAiB,KAAsB,EAAS,EAAK,GACtD,EAAE,aAAU,EAAS,GACrB,IAAgB,EAAkB,GAGlC,IAAoB,SAAe;EACvC,YAAY,GAAe,cAAc;EACzC,UAAU,GAAe,YAAY;EACrC,aAAa,GAAe,eAAe;EAC3C,eAAe,GAAe,iBAAiB;EAC/C,eAAe,GAAe,iBAAiB;EAC/C,eAAe,GAAe,iBAAiB;EAC/C,aAAa,GAAe;EAC5B,iBAAiB,GAAe;CAClC,IAAI;EACF,GAAe;EACf,GAAe;EACf,GAAe;EACf,GAAe;EACf,GAAe;EACf,GAAe;EACf,GAAe;EACf,GAAe;CACjB,CAAC;CA2lBD,OAxlBA,QAAsB;EACpB,IAAI,IAAa,GAEb,GACA,GAEE,UAAyB;GAC7B,IAAI,EAAa,SAAS;IACxB,IAAM,EAAE,UAAO,cAAW,EAAa,QAAQ,sBAAsB;IAErE,IAAI,IAAQ,KAAK,IAAS,GAGxB,OAFA,EAAc;KAAE;KAAO;IAAO,CAAC,GAC/B,EAAmB,EAAI,GAChB;GAEX;GACA,OAAO;EACT;EAKA,IAAI,CAFY,EAEX,KAAW,IAAa,IAAY;GAEvC,IAAM,UAAqB;IAGzB,AAAI,CAFe,EAEd,KAAc,IAAa,OAC9B,KAEA,IAAY,iBAAiB;KAC3B,IAAQ,sBAAsB,CAAY;IAC5C,GAAG,KAAK,CAAU;GAEtB;GAEA,IAAQ,sBAAsB,CAAY;EAC5C;EAEA,aAAa;GAEX,AADI,KAAO,qBAAqB,CAAK,GACjC,KAAW,aAAa,CAAS;EACvC;CACF,GAAG,CAAC,CAAC,GAGL,QAAgB;EACd,IAAI,IAAwC,MAEtC,UAAyB;GAC7B,IAAI,EAAa,SAAS;IACxB,IAAM,EAAE,UAAO,cAAW,EAAa,QAAQ,sBAAsB;IACrE,AAAI,IAAQ,KAAK,IAAS,MACxB,EAAc;KAAE;KAAO;IAAO,CAAC,GAC1B,KACH,EAAmB,EAAI;GAG7B;EACF;EAyBA,OAtBI,EAAa,YACf,IAAiB,IAAI,gBAAgB,MAAY;GAC/C,KAAK,IAAM,KAAS,GAAS;IAC3B,IAAM,EAAE,UAAO,cAAW,EAAM;IAChC,AAAI,IAAQ,KAAK,IAAS,MACxB,EAAc;KAAE;KAAO;IAAO,CAAC,GAC1B,KACH,EAAmB,EAAI;GAG7B;EACF,CAAC,GAED,EAAe,QAAQ,EAAa,OAAO,GAG3C,EAAiB,IAInB,OAAO,iBAAiB,UAAU,CAAgB,SAErC;GAIX,AAHI,KACF,EAAe,WAAW,GAE5B,OAAO,oBAAoB,UAAU,CAAgB;EACvD;CACF,GAAG,CAAC,CAAe,CAAC,GAEpB,QAAgB;EAUd,IATI,CAAC,KAAQ,EAAK,WAAW,KAAK,CAAC,EAAO,WAAW,CAAC,KAAmB,EAAW,UAAU,MAK9F,EAAO,EAAO,OAAO,EAAE,UAAU,GAAG,EAAE,OAAO,GAIzC,CAAC,GAAa,SAAS,CAAC,GAAa,SAAS,CAAC,GAAa,SAC9D;EAGF,IAAM,IAAa,MAAM,QAAQ,EAAY,KAAK,IAAI,EAAY,MAAM,KAAK,EAAY,OACnF,IAAa,MAAM,QAAQ,EAAY,KAAK,IAAI,EAAY,MAAM,KAAK,EAAY,OACnF,IAAc,MAAM,QAAQ,EAAY,MAAM,IAAI,EAAY,OAAO,KAAK,EAAY,QACtF,IAAgB,MAAM,QAAQ,EAAY,SAAS,IAAI,EAAY,UAAU,KAAK,EAAY,aAAa,GAC3G,IAAiB,MAAM,QAAQ,EAAY,UAAU,IAAI,EAAY,WAAW,KAAK,EAAY;EAGvG,IAAI,CAAC,KAAc,CAAC,KAAc,CAAC,KAAe,CAAC,GACjD;EAKF,IAAM,IAAe,EAAoB,GAAa,CAAU,GAG1D,IAAkB,GAAa,gBAAgB,MAClD,MAA8B,EAAG,cAAc,CAClD,KAAK,IAEC,IAA2B,EAC9B,KAAI,MAAQ;GACX,IAAM,IAAY,EAAK,IACnB,GACA;GAEJ,IAAI,KAAmB,GAAW;IAEhC,IAAM,IAAU,OAAO,CAAS,GAE5B;IACJ,IAAI,EAAQ,MAAM,wBAAwB,GAAG;KAE3C,IAAI,IAAS;KAOb,AANI,EAAQ,SAAS,GAAG,MACtB,IAAS,EAAQ,QAAQ,KAAK,GAAG,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,kBAAkB,GAAG,IAElF,CAAC,EAAO,SAAS,GAAG,KAAK,CAAC,EAAO,SAAS,GAAG,MAC/C,KAAkB,MAEpB,IAAO,IAAI,KAAK,CAAM;IACxB,OACE,IAAO,IAAI,KAAK,CAAO;IAIzB,AADA,IAAO,MAAM,EAAK,QAAQ,CAAC,IAAI,WAAW,CAAO,IAAI,EAAK,QAAQ,GAClE,IAAS,EAAgB,GAAW,CAAY;GAClD,OAAO;IAEL,IAAM,IAAiB,EAAgB,GAAW,CAAY,KAAK;IAEnE,AADA,IAAO,OAAO,KAAmB,WAAW,WAAW,CAAc,IAAI,GACzE,IAAS,OAAO,CAAc;GAChC;GAEA,IAAM,IAAS,EAAkB,EAAK,EAAW,GAC3C,IAAY,EAAkB,EAAK,EAAc,GACjD,IAAc,EAAK;GAEzB,OAAO;IACL,GAAG;IACH;IACA,GAAG;IACH,MAAM,MAAc,OAA6B,IAAtB,KAAK,IAAI,CAAS;IAC7C,OAAO,IAAiB,EAAK,KAAkB;IAC/C,QAAQ;IACR,OAAO,GAAG,KAAe;IACzB,SAAS,EAAoB,CAAI,KAAK,MAAW,QAAQ,MAAc,QAAQ,IAAY;GAC7F;EACF,CAAC,EACA,QAAO,MAAK,EAAE,WAAW,EAAE,OAAO,CAAC;EAEtC,IAAI,EAAW,WAAW,GAAG;EAE7B,IAAM,IAAS;GACb,GAAG;GACH,MAAM,EAAc,OAAO;GAC3B,QAAS,EAAkB,cAAc,IAAkB,MAAM;EACnE,GACM,IAAQ,EAAW,QAAQ,EAAO,OAAO,EAAO,OAChD,IAAc,EAAW,SAAS,EAAO,MAAM,EAAO,QAEtD,IAAM,EAAO,EAAO,OAAO,EAC9B,KAAK,SAAS,EAAW,KAAK,EAC9B,KAAK,UAAU,EAAW,MAAM,GAE7B,IAAI,EAAI,OAAO,GAAG,EACrB,KAAK,aAAa,aAAa,EAAO,KAAK,GAAG,EAAO,IAAI,EAAE,GAGxD,IAAS,EAAY,EACxB,OAAO,EAAO,IAAY,MAAK,EAAE,CAAC,CAAqB,EACvD,MAAM,CAAC,GAAG,CAAK,CAAC,EAChB,KAAK,GAEF,IAAS,EAAY,EACxB,OAAO,EAAO,IAAY,MAAK,EAAE,CAAC,CAAqB,EACvD,MAAM,CAAC,GAAa,CAAC,CAAC,EACtB,KAAK,GAEF,IAAY,GAAU,EACzB,OAAO,CAAC,GAAG,EAAI,IAAY,MAAK,EAAE,IAAI,CAAW,CAAC,EAClD,MAAM,CAAC,EAAkB,eAAe,EAAkB,aAAa,CAAC,GAGvE,GACA,IAAsB,IACtB,IAAyB,CAAC;EAE9B,IAAI,KAAkB,EAAW,SAAS,GAAG;GAE3C,IAAM,IAAc,EAAW,KAAI,MAAQ;IACzC,IAAM,IAAQ,EAAK;IACnB,OAAO,OAAO,KAAU,WAAW,WAAW,CAAK,IAAI;GACzD,CAAC,EAAE,QAAQ,MAAuB,CAAC,MAAM,CAAa,CAAC;GAIvD,IAFA,IAAsB,EAAY,WAAW,EAAW,UAAU,EAAY,OAAM,MAAO,OAAO,KAAQ,QAAQ,GAE9G,GAAqB;IAEvB,IAAM,IAAW,KAAK,IAAI,GAAG,CAAW,GAClC,IAAW,KAAK,IAAI,GAAG,CAAW;IAGxC,IAAa,GAAsB,EAChC,OAAO,CAAC,GAAU,CAAQ,CAAC,EAC3B,MAAM,GAAc,YAAY,CAAqB;GAC1D,OAGE,AADA,IAAe,CAAC,GAAG,IAAI,IAAI,EAAW,KAAI,MAAK,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAChE,IAAa,EAAqB,EAC/B,OAAO,CAAY,EACnB,MAAM,GAAc,UAAU,CAAY;EAEjD,OAEE,IAAa,EAAqB,EAC/B,OAAO,CAAC,SAAS,CAAC,EAClB,MAAM,CAAC,EAAa,EAAE,CAAC;EAI5B,IAAM,KAAiB,GAAiB,MACxB,iBAAiB,SAAS,eAAe,EAAE,iBAAiB,CAAO,EAAE,KAC5E,KAAS,GAGZ,IAAS,MAAU,SACnB,IAAY,IACd,EAAc,mBAAmB,SAAS,IAC1C,EAAc,uBAAuB,SAAS,GAC5C,IAAY,IACd,EAAc,eAAe,SAAS,IACtC;EAGJ,IAAI,EAAkB,UAAU;GAE9B,IAAM,IAAQ,EAAE,OAAO,GAAG,EACvB,KAAK,SAAS,MAAM,EACpB,KAAK,aAAa,eAAe,EAAY,EAAE,EAC/C,KAAK,EAAW,CAAM,EACpB,SAAS,CAAC,CAAW,EACrB,iBAAiB,EAAE,CACtB;GAOF,AALA,EAAM,UAAU,MAAM,EACnB,MAAM,UAAU,CAAS,EACzB,MAAM,oBAAoB,KAAK,EAC/B,MAAM,WAAW,EAAG,GAEvB,EAAM,OAAO,SAAS,EACnB,MAAM,UAAU,MAAM;GAGzB,IAAM,IAAQ,EAAE,OAAO,GAAG,EACvB,KAAK,SAAS,MAAM,EACpB,KAAK,EAAS,CAAM,EAClB,SAAS,CAAC,CAAK,EACf,iBAAiB,EAAE,CACtB;GAOF,AALA,EAAM,UAAU,MAAM,EACnB,MAAM,UAAU,CAAS,EACzB,MAAM,oBAAoB,KAAK,EAC/B,MAAM,WAAW,EAAG,GAEvB,EAAM,OAAO,SAAS,EACnB,MAAM,UAAU,MAAM;EAC3B;EAGA,IAAM,IAAiB,EAAW,CAAM;EAGxC,AAAI,IACF,EAAe,YAAY,MAAM;GAC/B,IAAM,IAAO,IAAI,KAAK,CAAW;GACjC,IAAI,MAAM,EAAK,QAAQ,CAAC,GAAG,OAAO,OAAO,CAAC;GAG1C,QAAQ,GAAc,YAAY,GAAlC;IACE,KAAK,QACH,OAAO,OAAO,EAAK,eAAe,CAAC;IACrC,KAAK,WAAW;KACd,IAAM,IAAI,KAAK,MAAM,EAAK,YAAY,IAAI,CAAC,IAAI;KAC/C,OAAO,GAAG,EAAK,eAAe,EAAE,IAAI;IACtC;IACA,KAAK,SACH,OAAO,GAAG,EAAK,eAAe,EAAE,GAAG,OAAO,EAAK,YAAY,IAAI,CAAC,EAAE,SAAS,GAAG,GAAG;IACnF,KAAK;IACL,KAAK,OACH,OAAO,GAAG,EAAK,eAAe,EAAE,GAAG,OAAO,EAAK,YAAY,IAAI,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE,GAAG,OAAO,EAAK,WAAW,CAAC,EAAE,SAAS,GAAG,GAAG;IACjI,KAAK,QACH,OAAO,GAAG,OAAO,EAAK,YAAY,IAAI,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE,GAAG,OAAO,EAAK,WAAW,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE,GAAG,OAAO,EAAK,YAAY,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE;IACzJ,SACE,OAAO,GAAG,EAAK,eAAe,EAAE,GAAG,OAAO,EAAK,YAAY,IAAI,CAAC,EAAE,SAAS,GAAG,GAAG;GACrF;EACF,CAAC,IACQ,EAAkB,eAE3B,EAAe,YAAY,MAAM,EAAgB,GAAa,EAAkB,WAAW,CAAC;EAG9F,IAAM,IAAQ,EAAE,OAAO,GAAG,EACvB,KAAK,aAAa,eAAe,EAAY,EAAE,EAC/C,KAAK,CAAc;EAQtB,AANA,EAAM,UAAU,MAAM,EACnB,MAAM,QAAQ,CAAS,GAE1B,EAAM,UAAU,YAAY,EACzB,MAAM,UAAU,CAAS,GAE5B,EAAM,OAAO,MAAM,EAChB,KAAK,KAAK,IAAQ,CAAC,EACnB,KAAK,KAAK,EAAE,EACZ,KAAK,QAAQ,CAAS,EACtB,MAAM,eAAe,QAAQ,EAC7B,MAAM,aAAa,MAAM,EACzB,KAAK,EAAkB,aAAa,SAAS,EAAc,CAAU,CAAC;EAGzE,IAAM,IAAiB,EAAS,CAAM;EACtC,AAAI,EAAkB,mBACpB,EAAe,YAAY,MAAM,EAAgB,GAAa,EAAkB,eAAe,CAAC;EAElG,IAAM,IAAQ,EAAE,OAAO,GAAG,EACvB,KAAK,CAAc;EAQtB,AANA,EAAM,UAAU,MAAM,EACnB,MAAM,QAAQ,CAAS,GAE1B,EAAM,UAAU,YAAY,EACzB,MAAM,UAAU,CAAS,GAE5B,EAAM,OAAO,MAAM,EAChB,KAAK,aAAa,aAAa,EAC/B,KAAK,KAAK,GAAG,EACb,KAAK,KAAK,CAAC,IAAc,CAAC,EAC1B,KAAK,QAAQ,CAAS,EACtB,MAAM,eAAe,QAAQ,EAC7B,MAAM,aAAa,MAAM,EACzB,KAAK,EAAkB,iBAAiB,SAAS,EAAc,CAAU,CAAC;EAG7E,IAAM,IAAU,EAAO,MAAM,EAAE,OAAO,KAAK,EACxC,KAAK,SAAS,sBAAsB,EACpC,MAAM,YAAY,UAAU,EAC5B,MAAM,WAAW,KAAK,EACtB,MAAM,cAAc,oBAAoB,EACxC,MAAM,SAAS,OAAO,EACtB,MAAM,iBAAiB,KAAK,EAC5B,MAAM,aAAa,MAAM,EACzB,MAAM,kBAAkB,MAAM,EAC9B,MAAM,WAAW,CAAC,EAClB,MAAM,WAAW,GAAI,GAGlB,IAAU,EAAE,UAAU,SAAS,EAClC,KAAK,CAAU,EACf,MAAM,EAAE,OAAO,QAAQ,EACvB,KAAK,SAAS,QAAQ,EACtB,KAAK,OAAM,MAAK,EAAO,EAAE,CAAC,CAAC,EAC3B,KAAK,OAAM,MAAK,EAAO,EAAE,CAAC,CAAC,EAC3B,KAAK,MAAK,MAAK,EAAU,EAAE,IAAI,CAAC,EAChC,MAAM,SAAQ,MACT,KAAkB,EAAE,UAAU,KAAA,IAE3B,EADE,IACmC,EAAE,QACK,OAAO,EAAE,KAAK,CAAC,IAE3D,EAAa,EACrB,EACA,MAAM,WAAW,EAAkB,aAAa,EAChD,MAAM,UAAU,MAAM,EACtB,MAAM,gBAAgB,CAAC,EACvB,MAAM,UAAU,SAAS;EAgD5B,IA7CI,EAAkB,eACpB,EACG,GAAG,aAAa,SAAS,GAAO,GAAG;GAClC,EAAO,IAAI,EACR,WAAW,EACX,SAAS,GAAG,EACZ,MAAM,WAAW,CAAC,EAClB,KAAK,KAAK,EAAU,EAAE,IAAI,IAAI,GAAG;GAEpC,IAAM,IAAiB;IACrB,WAAW,EAAE,UAAU,UAAU;IACjC,GAAG,EAAc,CAAU,EAAE,IAAI,EAAE,WAAW,EAAkB,cAAc,EAAgB,EAAE,GAAG,EAAkB,WAAW,IAAI,EAAE;IACtI,GAAG,EAAc,CAAU,EAAE,IAAI,EAAkB,kBAAkB,EAAgB,EAAE,GAAG,EAAkB,eAAe,IAAI,EAAE;IACjI,GAAG,EAAc,CAAa,EAAE,IAAI,EAAkB,kBAAkB,EAAgB,EAAE,MAAM,EAAkB,eAAe,IAAI,EAAE;IACvI,KAAkB,EAAE,QAAQ,GAAG,EAAc,CAAc,EAAE,IAAI,EAAE,UAAU;GAC/E,EAAE,OAAO,OAAO,EAAE,KAAK,MAAM;GAE7B,EACG,KAAK,CAAc,EACnB,MAAM,QAAS,EAAM,QAAQ,KAAM,IAAI,EACvC,MAAM,OAAQ,EAAM,QAAQ,KAAM,IAAI,EACtC,WAAW,EACX,SAAS,GAAG,EACZ,MAAM,WAAW,CAAC;EACvB,CAAC,EACA,GAAG,aAAa,SAAS,GAAO;GAC/B,EACG,MAAM,QAAS,EAAM,QAAQ,KAAM,IAAI,EACvC,MAAM,OAAQ,EAAM,QAAQ,KAAM,IAAI;EAC3C,CAAC,EACA,GAAG,YAAY,SAAS,GAAQ,GAAG;GAOlC,AANA,EAAO,IAAI,EACR,WAAW,EACX,SAAS,GAAG,EACZ,MAAM,WAAW,EAAkB,aAAa,EAChD,KAAK,KAAK,EAAU,EAAE,IAAI,CAAC,GAE9B,EACG,WAAW,EACX,SAAS,GAAG,EACZ,MAAM,WAAW,CAAC;EACvB,CAAC,GAID,EAAkB,cAAc,GAClC,IAAI,GAAqB;GAEvB,IAEM,IAAW,KAAK,IAAI,GAAG,EAAW,KAAI,MAAK,EAAE,KAAe,CAAC,GAC7D,IAAW,KAAK,IAAI,GAAG,EAAW,KAAI,MAAK,EAAE,KAAe,CAAC,GAE7D,IAAS,EAAE,OAAO,GAAG,EACxB,KAAK,SAAS,cAAc,EAC5B,KAAK,aAAa,aAAa,IAAQ,IAAI,MAAc,EAAE,IAAI,IAAc,GAAG,EAAE,GAI/E,IADO,EAAI,OAAO,MACP,EAAK,OAAO,gBAAgB,EAC1C,KAAK,MAAM,sBAAsB,EACjC,KAAK,MAAM,IAAI,EACf,KAAK,MAAM,IAAI,EACf,KAAK,MAAM,MAAM,EACjB,KAAK,MAAM,IAAI,GAGZ,IAAiB,GAAc,YAAY;GAkCjD,AAjCA,EAAe,SAAS,GAAO,MAAM;IACnC,EAAS,OAAO,MAAM,EACnB,KAAK,UAAU,GAAI,KAAK,EAAe,SAAS,KAAM,IAAI,EAAE,EAC5D,KAAK,cAAc,CAAK;GAC7B,CAAC,GAGD,EAAO,OAAO,MAAM,EACjB,KAAK,SAAS,GAAW,EACzB,KAAK,UAAU,EAAY,EAC3B,MAAM,QAAQ,4BAA4B,EAC1C,MAAM,UAAU,MAAM,EACtB,MAAM,gBAAgB,CAAC,GAG1B,EAAO,OAAO,MAAM,EACjB,KAAK,KAAK,CAAC,EACX,KAAK,KAAK,EAAiB,EAC3B,KAAK,eAAe,OAAO,EAC3B,MAAM,aAAa,MAAM,EACzB,MAAM,QAAQ,CAAS,EACvB,KAAK,EAAkB,kBAAkB,EAAgB,GAAU,EAAkB,eAAe,IAAI,EAAS,QAAQ,CAAC,CAAC,GAG9H,EAAO,OAAO,MAAM,EACjB,KAAK,KAAK,GAAW,EACrB,KAAK,KAAK,EAAiB,EAC3B,KAAK,eAAe,KAAK,EACzB,MAAM,aAAa,MAAM,EACzB,MAAM,QAAQ,CAAS,EACvB,KAAK,EAAkB,kBAAkB,EAAgB,GAAU,EAAkB,eAAe,IAAI,EAAS,QAAQ,CAAC,CAAC,GAG9H,EAAO,OAAO,MAAM,EACjB,KAAK,KAAK,MAAc,CAAC,EACzB,KAAK,KAAK,EAAE,EACZ,KAAK,eAAe,QAAQ,EAC5B,MAAM,aAAa,MAAM,EACzB,MAAM,eAAe,MAAM,EAC3B,MAAM,QAAQ,CAAS,EACvB,KAAK,EAAc,CAAc,CAAC;EAEvC,OAAO;GAEL,IAAM,IAAc;GAEpB,IAAI,EAAY,SAAS,GAAG;IAK1B,IAAM,IAJS,EAAE,OAAO,GAAG,EACxB,KAAK,SAAS,QAAQ,EACtB,KAAK,aAAa,aAAa,IAAQ,IAAK,EAAY,SAAS,KAAM,EAAE,IAAI,IAAc,GAAG,EAE9E,EAAO,UAAU,cAAc,EAC/C,KAAK,CAAW,EAChB,MAAM,EAAE,OAAO,GAAG,EAClB,KAAK,SAAS,aAAa,EAC3B,KAAK,cAAc,GAAI,MAAM,aAAa,IAAI,GAAG,KAAK,EACtD,MAAM,UAAU,SAAS;IAkB5B,AAhBA,EAAW,OAAO,QAAQ,EACvB,KAAK,MAAM,CAAC,EACZ,KAAK,MAAM,CAAC,EACZ,KAAK,KAAK,CAAC,EACX,MAAM,SAAQ,MAAM,EAA4C,CAAW,CAAC,EAC5E,MAAM,WAAW,EAAkB,aAAa,GAEnD,EAAW,OAAO,MAAM,EACrB,KAAK,KAAK,EAAE,EACZ,KAAK,KAAK,CAAC,EACX,KAAK,MAAM,OAAO,EAClB,MAAM,aAAa,MAAM,EACzB,MAAM,QAAQ,CAAS,EACvB,MAAK,MAAK,OAAO,CAAC,CAAC,GAGtB,EACG,GAAG,aAAa,SAAS,GAAQ,GAAW;KAE3C,EACG,WAAW,EACX,SAAS,GAAG,EACZ,MAAM,YAAW,MACA,KAAkB,OAAO,EAAE,KAAK,MAAM,IACrC,IAAI,EACtB;IACL,CAAC,EACA,GAAG,YAAY,WAAW;KAEzB,EACG,WAAW,EACX,SAAS,GAAG,EACZ,MAAM,WAAW,EAAkB,aAAa;IACrD,CAAC;GACL;EACF;EAIF,aAAa;GACX,EAAQ,OAAO;EACjB;CACF,GAAG;EAAC;EAAM;EAAa;EAAmB;EAAa;EAAY;EAAiB;EAAc;EAAO;CAAa,CAAC,GAEnH,CAAC,KAAQ,EAAK,WAAW,IAEzB,kBAAC,OAAD;EAAK,WAAU;EAAyE,OAAO,EAAE,UAAO;YACtG,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD;IAAK,WAAU;cAAuC,EAAE,sBAAsB;GAAO,CAAA,GACrF,kBAAC,OAAD;IAAK,WAAU;cAAqC,EAAE,iCAAiC;GAAO,CAAA,CAC3F;;CACF,CAAA,IAKc,GAAa,SAAS,GAAa,SAAS,GAAa,SAc9E,kBAAC,OAAD;EAAK,WAAU;EAAsD,OAAO;GAAE;GAAQ,WAAW;GAAS,UAAU;EAAS;YAC3H,kBAAC,OAAD;GAAK,KAAK;GAAc,WAAU;aAAlC,CACE,kBAAC,OAAD;IAAK,KAAK;IAAQ,WAAU;GAAuB,CAAA,GAClD,CAAC,KACA,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,OAAD;KAAK,WAAU;eAAiC,EAAE,mCAAmC;IAAO,CAAA;GACzF,CAAA,CAEJ;;CACF,CAAA,IApBH,kBAAC,OAAD;EAAK,WAAU;EAAsE,OAAO,EAAE,UAAO;YACnG,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,OAAD;KAAK,WAAU;eAAuC,EAAE,0CAA0C;IAAO,CAAA;IACzG,kBAAC,OAAD;KAAK,WAAU;eAAc,EAAE,8CAA8C;IAAO,CAAA;IACpF,kBAAC,OAAD;KAAK,WAAU;eAAsB,EAAE,8CAA8C;IAAO,CAAA;GACzF;;CACF,CAAA;AAgBX,CAAC"}
@@ -1,101 +0,0 @@
1
- import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
- //#region src/client/components/charts/AreaChart.config.ts
3
- var t = /* @__PURE__ */ e({ areaChartConfig: () => n }), n = {
4
- label: "chart.area.label",
5
- description: "chart.area.description",
6
- useCase: "chart.area.useCase",
7
- isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
8
- available: !1,
9
- reason: "chart.availability.requiresMeasure"
10
- } : t < 1 ? {
11
- available: !1,
12
- reason: "chart.availability.requiresDimension"
13
- } : { available: !0 },
14
- dropZones: [
15
- {
16
- key: "xAxis",
17
- label: "chart.configText.x_axis_time_categories",
18
- description: "chart.configText.time_dimensions_or_dimensions_for_x_axis",
19
- mandatory: !0,
20
- acceptTypes: ["dimension", "timeDimension"],
21
- emptyText: "chart.area.dropZone.xAxis.empty"
22
- },
23
- {
24
- key: "yAxis",
25
- label: "chart.dropZone.yAxis.label",
26
- description: "chart.configText.measures_for_area_values",
27
- mandatory: !0,
28
- acceptTypes: ["measure"],
29
- emptyText: "chart.area.dropZone.yAxis.empty",
30
- enableDualAxis: !0
31
- },
32
- {
33
- key: "series",
34
- label: "chart.configText.series_stack_areas",
35
- description: "chart.configText.dimensions_to_create_stacked_areas",
36
- mandatory: !1,
37
- acceptTypes: ["dimension"],
38
- emptyText: "chart.area.dropZone.series.empty"
39
- }
40
- ],
41
- displayOptions: [
42
- "showLegend",
43
- "showGrid",
44
- "showTooltip",
45
- "showAllXLabels",
46
- "hideHeader"
47
- ],
48
- displayOptionsConfig: [
49
- {
50
- key: "stackType",
51
- label: "chart.option.stacking.label",
52
- type: "select",
53
- defaultValue: "none",
54
- options: [
55
- {
56
- value: "none",
57
- label: "chart.option.accentBorder.none"
58
- },
59
- {
60
- value: "normal",
61
- label: "chart.option.stacking.stacked"
62
- },
63
- {
64
- value: "percent",
65
- label: "chart.option.stacking.percent"
66
- }
67
- ],
68
- description: "chart.configText.how_to_stack_multiple_area_series"
69
- },
70
- {
71
- key: "connectNulls",
72
- label: "chart.option.connectNulls.label",
73
- type: "boolean",
74
- defaultValue: !1,
75
- description: "chart.option.connectNulls.description"
76
- },
77
- {
78
- key: "target",
79
- label: "chart.option.target.label",
80
- type: "string",
81
- placeholder: "e.g., 100 or 50,75 for spread",
82
- description: "chart.option.target.description"
83
- },
84
- {
85
- key: "leftYAxisFormat",
86
- label: "chart.option.leftYAxisFormat.label",
87
- type: "axisFormat",
88
- description: "chart.option.leftYAxisFormat.description"
89
- },
90
- {
91
- key: "rightYAxisFormat",
92
- label: "chart.option.rightYAxisFormat.label",
93
- type: "axisFormat",
94
- description: "chart.option.rightYAxisFormat.description"
95
- }
96
- ]
97
- };
98
- //#endregion
99
- export { n, t };
100
-
101
- //# sourceMappingURL=chart-config-area-Bq_UsW3x.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-area-Bq_UsW3x.js","names":[],"sources":["../../../src/client/components/charts/AreaChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the area chart type\n */\nexport const areaChartConfig: ChartTypeConfig = {\n label: 'chart.area.label',\n description: 'chart.area.description',\n useCase: 'chart.area.useCase',\n isAvailable: ({ measureCount, dimensionCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n if (dimensionCount < 1) return { available: false, reason: 'chart.availability.requiresDimension' }\n return { available: true }\n },\n dropZones: [\n {\n key: 'xAxis',\n label: 'chart.configText.x_axis_time_categories',\n description: 'chart.configText.time_dimensions_or_dimensions_for_x_axis',\n mandatory: true,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'chart.area.dropZone.xAxis.empty'\n },\n {\n key: 'yAxis',\n label: 'chart.dropZone.yAxis.label',\n description: 'chart.configText.measures_for_area_values',\n mandatory: true,\n acceptTypes: ['measure'],\n emptyText: 'chart.area.dropZone.yAxis.empty',\n enableDualAxis: true\n },\n {\n key: 'series',\n label: 'chart.configText.series_stack_areas',\n description: 'chart.configText.dimensions_to_create_stacked_areas',\n mandatory: false,\n acceptTypes: ['dimension'],\n emptyText: 'chart.area.dropZone.series.empty'\n }\n ],\n displayOptions: ['showLegend', 'showGrid', 'showTooltip', 'showAllXLabels', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'stackType',\n label: 'chart.option.stacking.label',\n type: 'select',\n defaultValue: 'none',\n options: [\n { value: 'none', label: 'chart.option.accentBorder.none' },\n { value: 'normal', label: 'chart.option.stacking.stacked' },\n { value: 'percent', label: 'chart.option.stacking.percent' }\n ],\n description: 'chart.configText.how_to_stack_multiple_area_series'\n },\n {\n key: 'connectNulls',\n label: 'chart.option.connectNulls.label',\n type: 'boolean',\n defaultValue: false,\n description: 'chart.option.connectNulls.description'\n },\n {\n key: 'target',\n label: 'chart.option.target.label',\n type: 'string',\n placeholder: 'e.g., 100 or 50,75 for spread',\n description: 'chart.option.target.description'\n },\n {\n key: 'leftYAxisFormat',\n label: 'chart.option.leftYAxisFormat.label',\n type: 'axisFormat',\n description: 'chart.option.leftYAxisFormat.description'\n },\n {\n key: 'rightYAxisFormat',\n label: 'chart.option.rightYAxisFormat.label',\n type: 'axisFormat',\n description: 'chart.option.rightYAxisFormat.description'\n }\n ]\n}"],"mappings":";;yDAKa,IAAmC;CAC9C,OAAO;CACP,aAAa;CACb,SAAS;CACT,cAAc,EAAE,iBAAc,wBACxB,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IAC1F,IAAiB,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAuC,IAC3F,EAAE,WAAW,GAAK;CAE3B,WAAW;EACT;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,aAAa,eAAe;GAC1C,WAAW;EACb;EACA;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,SAAS;GACvB,WAAW;GACX,gBAAgB;EAClB;EACA;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,WAAW;GACzB,WAAW;EACb;CACF;CACA,gBAAgB;EAAC;EAAc;EAAY;EAAe;EAAkB;CAAY;CACxF,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,SAAS;IACP;KAAE,OAAO;KAAQ,OAAO;IAAiC;IACzD;KAAE,OAAO;KAAU,OAAO;IAAgC;IAC1D;KAAE,OAAO;KAAW,OAAO;IAAgC;GAC7D;GACA,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;EACf;CACF;AACF"}
@@ -1,95 +0,0 @@
1
- import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
- //#region src/client/components/charts/BarChart.config.ts
3
- var t = /* @__PURE__ */ e({ barChartConfig: () => n }), n = {
4
- label: "chart.bar.label",
5
- description: "chart.bar.description",
6
- useCase: "chart.bar.useCase",
7
- clickableElements: { bar: !0 },
8
- isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
9
- available: !1,
10
- reason: "chart.availability.requiresMeasure"
11
- } : t < 1 ? {
12
- available: !1,
13
- reason: "chart.availability.requiresDimension"
14
- } : { available: !0 },
15
- dropZones: [
16
- {
17
- key: "xAxis",
18
- label: "chart.dropZone.xAxis.label",
19
- description: "chart.dropZone.xAxis.description",
20
- mandatory: !1,
21
- acceptTypes: ["dimension", "timeDimension"],
22
- emptyText: "chart.bar.dropZone.xAxis.empty"
23
- },
24
- {
25
- key: "yAxis",
26
- label: "chart.dropZone.yAxis.label",
27
- description: "chart.configText.measures_for_bar_heights",
28
- mandatory: !0,
29
- acceptTypes: ["measure"],
30
- emptyText: "chart.bar.dropZone.yAxis.empty",
31
- enableDualAxis: !0
32
- },
33
- {
34
- key: "series",
35
- label: "chart.dropZone.series.label",
36
- description: "chart.dropZone.series.description",
37
- mandatory: !1,
38
- acceptTypes: ["dimension"],
39
- emptyText: "chart.bar.dropZone.series.empty"
40
- }
41
- ],
42
- displayOptions: [
43
- "showLegend",
44
- "showGrid",
45
- "showTooltip",
46
- "showAllXLabels",
47
- "hideHeader"
48
- ],
49
- displayOptionsConfig: [
50
- {
51
- key: "stackType",
52
- label: "chart.option.stacking.label",
53
- type: "select",
54
- defaultValue: "none",
55
- options: [
56
- {
57
- value: "none",
58
- label: "chart.option.accentBorder.none"
59
- },
60
- {
61
- value: "normal",
62
- label: "chart.option.stacking.stacked"
63
- },
64
- {
65
- value: "percent",
66
- label: "chart.option.stacking.percent"
67
- }
68
- ],
69
- description: "chart.configText.how_to_stack_multiple_bar_series"
70
- },
71
- {
72
- key: "target",
73
- label: "chart.option.target.label",
74
- type: "string",
75
- placeholder: "e.g., 100 or 50,75 for spread",
76
- description: "chart.option.target.description"
77
- },
78
- {
79
- key: "leftYAxisFormat",
80
- label: "chart.option.leftYAxisFormat.label",
81
- type: "axisFormat",
82
- description: "chart.option.leftYAxisFormat.description"
83
- },
84
- {
85
- key: "rightYAxisFormat",
86
- label: "chart.option.rightYAxisFormat.label",
87
- type: "axisFormat",
88
- description: "chart.option.rightYAxisFormat.description"
89
- }
90
- ]
91
- };
92
- //#endregion
93
- export { n, t };
94
-
95
- //# sourceMappingURL=chart-config-bar-_JEGZnAu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-bar-_JEGZnAu.js","names":[],"sources":["../../../src/client/components/charts/BarChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the bar chart type\n */\nexport const barChartConfig: ChartTypeConfig = {\n label: 'chart.bar.label',\n description: 'chart.bar.description',\n useCase: 'chart.bar.useCase',\n clickableElements: { bar: true },\n isAvailable: ({ measureCount, dimensionCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n if (dimensionCount < 1) return { available: false, reason: 'chart.availability.requiresDimension' }\n return { available: true }\n },\n dropZones: [\n {\n key: 'xAxis',\n label: 'chart.dropZone.xAxis.label',\n description: 'chart.dropZone.xAxis.description',\n mandatory: false,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'chart.bar.dropZone.xAxis.empty'\n },\n {\n key: 'yAxis',\n label: 'chart.dropZone.yAxis.label',\n description: 'chart.configText.measures_for_bar_heights',\n mandatory: true,\n acceptTypes: ['measure'],\n emptyText: 'chart.bar.dropZone.yAxis.empty',\n enableDualAxis: true\n },\n {\n key: 'series',\n label: 'chart.dropZone.series.label',\n description: 'chart.dropZone.series.description',\n mandatory: false,\n acceptTypes: ['dimension'],\n emptyText: 'chart.bar.dropZone.series.empty'\n }\n ],\n displayOptions: ['showLegend', 'showGrid', 'showTooltip', 'showAllXLabels', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'stackType',\n label: 'chart.option.stacking.label',\n type: 'select',\n defaultValue: 'none',\n options: [\n { value: 'none', label: 'chart.option.accentBorder.none' },\n { value: 'normal', label: 'chart.option.stacking.stacked' },\n { value: 'percent', label: 'chart.option.stacking.percent' }\n ],\n description: 'chart.configText.how_to_stack_multiple_bar_series'\n },\n {\n key: 'target',\n label: 'chart.option.target.label',\n type: 'string',\n placeholder: 'e.g., 100 or 50,75 for spread',\n description: 'chart.option.target.description'\n },\n {\n key: 'leftYAxisFormat',\n label: 'chart.option.leftYAxisFormat.label',\n type: 'axisFormat',\n description: 'chart.option.leftYAxisFormat.description'\n },\n {\n key: 'rightYAxisFormat',\n label: 'chart.option.rightYAxisFormat.label',\n type: 'axisFormat',\n description: 'chart.option.rightYAxisFormat.description'\n }\n ]\n}"],"mappings":";;wDAKa,IAAkC;CAC7C,OAAO;CACP,aAAa;CACb,SAAS;CACT,mBAAmB,EAAE,KAAK,GAAK;CAC/B,cAAc,EAAE,iBAAc,wBACxB,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IAC1F,IAAiB,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAuC,IAC3F,EAAE,WAAW,GAAK;CAE3B,WAAW;EACT;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,aAAa,eAAe;GAC1C,WAAW;EACb;EACA;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,SAAS;GACvB,WAAW;GACX,gBAAgB;EAClB;EACA;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,WAAW;GACzB,WAAW;EACb;CACF;CACA,gBAAgB;EAAC;EAAc;EAAY;EAAe;EAAkB;CAAY;CACxF,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,SAAS;IACP;KAAE,OAAO;KAAQ,OAAO;IAAiC;IACzD;KAAE,OAAO;KAAU,OAAO;IAAgC;IAC1D;KAAE,OAAO;KAAW,OAAO;IAAgC;GAC7D;GACA,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;EACf;CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-box-plot-DJ-dWWXA.js","names":[],"sources":["../../../src/client/components/charts/BoxPlotChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the box plot chart type\n */\nexport const boxPlotChartConfig: ChartTypeConfig = {\n label: 'chart.boxPlot.label',\n description: 'chart.boxPlot.description',\n useCase: 'chart.boxPlot.useCase',\n isAvailable: ({ measureCount, dimensionCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n if (dimensionCount < 1) return { available: false, reason: 'chart.availability.requiresDimension' }\n return { available: true }\n },\n displayOptions: ['hideHeader'],\n dropZones: [\n {\n key: 'xAxis',\n label: 'chart.configText.x_axis_groups',\n description: 'chart.configText.dimension_to_group_boxes_by_e_g_symbol_platform',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'chart.boxPlot.dropZone.xAxis.empty',\n },\n {\n key: 'yAxis',\n label: 'chart.configText.y_axis_measures',\n description: 'chart.configText.drop_1_measure_for_auto_mode_3_for_avg_stddev_median_mode_or_5_for_min_q',\n mandatory: true,\n maxItems: 5,\n acceptTypes: ['measure'],\n emptyText: 'chart.boxPlot.dropZone.yAxis.empty',\n },\n ],\n displayOptionsConfig: [\n {\n key: 'leftYAxisFormat',\n label: 'chart.option.yAxisFormat.label',\n type: 'axisFormat',\n description: 'chart.configText.number_formatting_for_the_value_axis',\n },\n ],\n}\n"],"mappings":";;4DAKa,IAAsC;CACjD,OAAO;CACP,aAAa;CACb,SAAS;CACT,cAAc,EAAE,iBAAc,wBACxB,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IAC1F,IAAiB,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAuC,IAC3F,EAAE,WAAW,GAAK;CAE3B,gBAAgB,CAAC,YAAY;CAC7B,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,aAAa,eAAe;EAC1C,WAAW;CACb,GACA;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,SAAS;EACvB,WAAW;CACb,CACF;CACA,sBAAsB,CACpB;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;CACf,CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-gauge-DSwC04l0.js","names":[],"sources":["../../../src/client/components/charts/GaugeChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the gauge chart type\n */\nexport const gaugeChartConfig: ChartTypeConfig = {\n label: 'chart.gauge.label',\n description: 'chart.gauge.description',\n useCase: 'chart.gauge.useCase',\n clickableElements: {},\n displayOptions: ['hideHeader'],\n isAvailable: ({ measureCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n return { available: true }\n },\n dropZones: [\n {\n key: 'yAxis',\n label: 'chart.configText.value_measure',\n description: 'chart.configText.current_value_to_display_on_the_gauge_e_g_current_equity_margin_used',\n mandatory: true,\n maxItems: 2,\n acceptTypes: ['measure'],\n emptyText: 'chart.gauge.dropZone.yAxis.empty',\n },\n ],\n displayOptionsConfig: [\n {\n key: 'minValue',\n label: 'chart.option.minValue.label',\n type: 'number',\n defaultValue: 0,\n description: 'chart.option.minValue.description',\n },\n {\n key: 'maxValue',\n label: 'chart.option.maxValue.label',\n type: 'number',\n description: 'chart.option.maxValue.description',\n },\n {\n key: 'thresholds',\n label: 'chart.configText.threshold_bands',\n type: 'string',\n placeholder: '[{\"value\":0.33,\"color\":\"#22c55e\"},{\"value\":0.66,\"color\":\"#f59e0b\"},{\"value\":1,\"color\":\"#ef4444\"}]',\n description: 'chart.configText.array_of_value_0_1_fraction_color_bands_shown_as_outer_arc_markers',\n },\n {\n key: 'showCenterLabel',\n label: 'chart.option.showCentreLabel.label',\n type: 'boolean',\n defaultValue: true,\n description: 'chart.option.showCentreLabel.description',\n },\n {\n key: 'showPercentage',\n label: 'chart.option.showPercentage.label',\n type: 'boolean',\n defaultValue: false,\n description: 'chart.option.showPercentage.description',\n },\n {\n key: 'leftYAxisFormat',\n label: 'chart.option.valueFormat.label',\n type: 'axisFormat',\n description: 'chart.configText.number_formatting_for_the_displayed_value_and_axis_labels',\n },\n ],\n}\n"],"mappings":";;0DAKa,IAAoC;CAC/C,OAAO;CACP,aAAa;CACb,SAAS;CACT,mBAAmB,CAAC;CACpB,gBAAgB,CAAC,YAAY;CAC7B,cAAc,EAAE,sBACV,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IACvF,EAAE,WAAW,GAAK;CAE3B,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,SAAS;EACvB,WAAW;CACb,CACF;CACA,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;EACf;CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-kpi-delta-D6BIkHL3.js","names":[],"sources":["../../../src/client/components/charts/KpiDelta.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the KPI Delta chart type\n */\nexport const kpiDeltaConfig: ChartTypeConfig = {\n label: 'chart.kpiDelta.label',\n description: 'chart.kpiDelta.description',\n useCase: 'chart.kpiDelta.useCase',\n isAvailable: ({ measureCount, dimensionCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n if (dimensionCount < 1) return { available: false, reason: 'chart.availability.requiresDimension' }\n return { available: true }\n },\n dropZones: [\n {\n key: 'yAxis',\n label: 'chart.configText.value',\n description: 'chart.configText.measure_to_track_changes_for',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['measure'],\n emptyText: 'chart.kpiDelta.dropZone.yAxis.empty'\n },\n {\n key: 'xAxis',\n label: 'chart.configText.dimension_optional',\n description: 'chart.configText.dimension_for_ordering_data_typically_time',\n mandatory: false,\n maxItems: 1,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'chart.kpiDelta.dropZone.xAxis.empty'\n }\n ],\n displayOptionsConfig: [\n {\n key: 'prefix',\n label: 'chart.option.prefix.label',\n type: 'string',\n placeholder: 'e.g., $, €, #',\n description: 'chart.option.prefix.description'\n },\n {\n key: 'suffix',\n label: 'chart.option.suffix.label',\n type: 'string',\n placeholder: 'e.g., %, units, items',\n description: 'chart.option.suffix.description'\n },\n {\n key: 'decimals',\n label: 'chart.option.decimals.label',\n type: 'number',\n defaultValue: 1,\n min: 0,\n max: 10,\n step: 1,\n description: 'chart.option.decimals.description'\n },\n {\n key: 'positiveColorIndex',\n label: 'chart.configText.positive_change_color',\n type: 'paletteColor',\n defaultValue: 2, // Typically green in most palettes\n description: 'chart.configText.color_for_positive_changes_increases'\n },\n {\n key: 'negativeColorIndex',\n label: 'chart.configText.negative_change_color', \n type: 'paletteColor',\n defaultValue: 3, // Typically red in most palettes\n description: 'chart.configText.color_for_negative_changes_decreases'\n },\n {\n key: 'showHistogram',\n label: 'chart.option.showHistogram.label',\n type: 'boolean',\n defaultValue: true,\n description: 'chart.option.showHistogram.description'\n },\n {\n key: 'useLastCompletePeriod',\n label: 'chart.option.useLastCompletePeriod.label',\n type: 'boolean',\n defaultValue: true,\n description: 'chart.configText.exclude_current_incomplete_period_from_delta_calculation_e_g_partial_wee'\n },\n {\n key: 'skipLastPeriod',\n label: 'chart.option.skipLastPeriod.label',\n type: 'boolean',\n defaultValue: false,\n description: 'chart.option.skipLastPeriod.description'\n }\n ],\n displayOptions: ['hideHeader'],\n validate: (config: any) => {\n if (!config.yAxis || (Array.isArray(config.yAxis) && config.yAxis.length === 0)) {\n return {\n isValid: false,\n message: 'chart.kpiDelta.validation.measureRequired'\n }\n }\n \n return { isValid: true }\n }\n}"],"mappings":";;wDAKa,IAAkC;CAC7C,OAAO;CACP,aAAa;CACb,SAAS;CACT,cAAc,EAAE,iBAAc,wBACxB,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IAC1F,IAAiB,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAuC,IAC3F,EAAE,WAAW,GAAK;CAE3B,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,SAAS;EACvB,WAAW;CACb,GACA;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,aAAa,eAAe;EAC1C,WAAW;CACb,CACF;CACA,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,KAAK;GACL,KAAK;GACL,MAAM;GACN,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;CACF;CACA,gBAAgB,CAAC,YAAY;CAC7B,WAAW,MACL,CAAC,EAAO,SAAU,MAAM,QAAQ,EAAO,KAAK,KAAK,EAAO,MAAM,WAAW,IACpE;EACL,SAAS;EACT,SAAS;CACX,IAGK,EAAE,SAAS,GAAK;AAE3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-kpi-number-Bx-V9a62.js","names":[],"sources":["../../../src/client/components/charts/KpiNumber.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the KPI Number chart type\n */\nexport const kpiNumberConfig: ChartTypeConfig = {\n label: 'chart.kpiNumber.label',\n description: 'chart.kpiNumber.description',\n useCase: 'chart.kpiNumber.useCase',\n isAvailable: ({ measureCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n return { available: true }\n },\n dropZones: [\n {\n key: 'yAxis',\n label: 'chart.configText.value',\n description: 'chart.configText.measure_to_display_as_kpi_number',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['measure'],\n emptyText: 'chart.kpiNumber.dropZone.yAxis.empty'\n }\n ],\n displayOptionsConfig: [\n {\n key: 'target',\n label: 'chart.runtime.tooltip.targetValue',\n type: 'string',\n placeholder: 'e.g., 100',\n description: 'chart.configText.target_value_to_compare_against_first_value_used_if_multiple_provided'\n },\n {\n key: 'prefix',\n label: 'chart.option.prefix.label',\n type: 'string',\n placeholder: 'e.g., $, €, #',\n description: 'chart.option.prefix.description'\n },\n {\n key: 'suffix',\n label: 'chart.option.suffix.label',\n type: 'string',\n placeholder: 'e.g., %, units, items',\n description: 'chart.option.suffix.description'\n },\n {\n key: 'decimals',\n label: 'chart.option.decimals.label',\n type: 'number',\n defaultValue: 0,\n min: 0,\n max: 10,\n step: 1,\n description: 'chart.option.decimals.description'\n },\n {\n key: 'valueColorIndex',\n label: 'chart.configText.value_color',\n type: 'paletteColor',\n defaultValue: 0,\n description: 'chart.configText.color_from_the_dashboard_palette_for_the_kpi_value_text'\n },\n {\n key: 'useLastCompletePeriod',\n label: 'chart.option.useLastCompletePeriod.label',\n type: 'boolean',\n defaultValue: true,\n description: 'chart.configText.exclude_current_incomplete_period_from_aggregation_e_g_partial_week_mont'\n },\n {\n key: 'skipLastPeriod',\n label: 'chart.option.skipLastPeriod.label',\n type: 'boolean',\n defaultValue: false,\n description: 'chart.option.skipLastPeriod.description'\n }\n ],\n displayOptions: ['hideHeader']\n}"],"mappings":";;yDAKa,IAAmC;CAC9C,OAAO;CACP,aAAa;CACb,SAAS;CACT,cAAc,EAAE,sBACV,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IACvF,EAAE,WAAW,GAAK;CAE3B,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,SAAS;EACvB,WAAW;CACb,CACF;CACA,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,KAAK;GACL,KAAK;GACL,MAAM;GACN,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;CACF;CACA,gBAAgB,CAAC,YAAY;AAC/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-kpi-text-CcqC1u-8.js","names":[],"sources":["../../../src/client/components/charts/KpiText.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the KPI Text chart type\n */\nexport const kpiTextConfig: ChartTypeConfig = {\n label: 'chart.kpiText.label',\n description: 'chart.kpiText.description',\n useCase: 'chart.kpiText.useCase',\n isAvailable: ({ measureCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n return { available: true }\n },\n dropZones: [\n {\n key: 'yAxis',\n label: 'chart.configText.value',\n description: 'chart.configText.measure_to_display_in_the_kpi_text_template',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['measure'],\n emptyText: 'chart.kpiText.dropZone.yAxis.empty'\n }\n ],\n displayOptionsConfig: [\n {\n key: 'template',\n label: 'chart.configText.text_template',\n type: 'string',\n placeholder: 'e.g., Total Revenue: ${value}',\n description: 'chart.configText.template_for_displaying_the_text_use_value_to_insert_the_measure_value'\n },\n {\n key: 'decimals',\n label: 'chart.option.decimals.label',\n type: 'number',\n defaultValue: 0,\n min: 0,\n max: 10,\n step: 1,\n description: 'chart.configText.number_of_decimal_places_to_display_for_numeric_values'\n },\n {\n key: 'valueColorIndex',\n label: 'chart.configText.value_color',\n type: 'paletteColor',\n defaultValue: 0,\n description: 'chart.configText.color_from_the_dashboard_palette_for_the_kpi_value_text'\n }\n ],\n displayOptions: ['hideHeader']\n}"],"mappings":";;uDAKa,IAAiC;CAC5C,OAAO;CACP,aAAa;CACb,SAAS;CACT,cAAc,EAAE,sBACV,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IACvF,EAAE,WAAW,GAAK;CAE3B,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,SAAS;EACvB,WAAW;CACb,CACF;CACA,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,KAAK;GACL,KAAK;GACL,MAAM;GACN,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;CACF;CACA,gBAAgB,CAAC,YAAY;AAC/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-line-Db3jDsWc.js","names":[],"sources":["../../../src/client/components/charts/LineChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the line chart type\n */\nexport const lineChartConfig: ChartTypeConfig = {\n label: 'chart.line.label',\n description: 'chart.line.description',\n useCase: 'chart.line.useCase',\n clickableElements: { point: true },\n isAvailable: ({ measureCount, dimensionCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n if (dimensionCount < 1) return { available: false, reason: 'chart.availability.requiresDimension' }\n return { available: true }\n },\n dropZones: [\n {\n key: 'xAxis',\n label: 'chart.configText.x_axis_time_categories',\n description: 'chart.configText.time_dimensions_or_dimensions_for_x_axis',\n mandatory: true,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'chart.line.dropZone.xAxis.empty'\n },\n {\n key: 'yAxis',\n label: 'chart.dropZone.yAxis.label',\n description: 'chart.configText.measures_for_line_values',\n mandatory: true,\n acceptTypes: ['measure'],\n emptyText: 'chart.line.dropZone.yAxis.empty',\n enableDualAxis: true\n },\n {\n key: 'series',\n label: 'chart.configText.series_multiple_lines',\n description: 'chart.configText.dimensions_to_create_separate_lines',\n mandatory: false,\n acceptTypes: ['dimension'],\n emptyText: 'chart.line.dropZone.series.empty'\n }\n ],\n displayOptions: ['showLegend', 'showGrid', 'showTooltip', 'showAllXLabels', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'connectNulls',\n label: 'chart.option.connectNulls.label',\n type: 'boolean',\n defaultValue: false,\n description: 'chart.option.connectNulls.description'\n },\n {\n key: 'target',\n label: 'chart.option.target.label',\n type: 'string',\n placeholder: 'e.g., 100 or 50,75 for spread',\n description: 'chart.option.target.description'\n },\n {\n key: 'priorPeriodStyle',\n label: 'chart.option.priorPeriodStyle.label',\n type: 'select',\n defaultValue: 'dashed',\n options: [\n { value: 'dashed', label: 'chart.option.priorPeriodStyle.dashed' },\n { value: 'dotted', label: 'chart.option.priorPeriodStyle.dotted' },\n { value: 'solid', label: 'chart.option.priorPeriodStyle.solid' }\n ],\n description: 'chart.option.priorPeriodStyle.description'\n },\n {\n key: 'priorPeriodOpacity',\n label: 'chart.option.priorPeriodOpacity.label',\n type: 'number',\n defaultValue: 0.5,\n min: 0.1,\n max: 1,\n step: 0.1,\n description: 'chart.option.priorPeriodOpacity.description'\n },\n {\n key: 'leftYAxisFormat',\n label: 'chart.option.leftYAxisFormat.label',\n type: 'axisFormat',\n description: 'chart.option.leftYAxisFormat.description'\n },\n {\n key: 'rightYAxisFormat',\n label: 'chart.option.rightYAxisFormat.label',\n type: 'axisFormat',\n description: 'chart.option.rightYAxisFormat.description'\n }\n ]\n}"],"mappings":";;yDAKa,IAAmC;CAC9C,OAAO;CACP,aAAa;CACb,SAAS;CACT,mBAAmB,EAAE,OAAO,GAAK;CACjC,cAAc,EAAE,iBAAc,wBACxB,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IAC1F,IAAiB,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAuC,IAC3F,EAAE,WAAW,GAAK;CAE3B,WAAW;EACT;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,aAAa,eAAe;GAC1C,WAAW;EACb;EACA;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,SAAS;GACvB,WAAW;GACX,gBAAgB;EAClB;EACA;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,WAAW;GACzB,WAAW;EACb;CACF;CACA,gBAAgB;EAAC;EAAc;EAAY;EAAe;EAAkB;CAAY;CACxF,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,SAAS;IACP;KAAE,OAAO;KAAU,OAAO;IAAuC;IACjE;KAAE,OAAO;KAAU,OAAO;IAAuC;IACjE;KAAE,OAAO;KAAS,OAAO;IAAsC;GACjE;GACA,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,KAAK;GACL,KAAK;GACL,MAAM;GACN,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;EACf;CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-pie-DD4SmRTF.js","names":[],"sources":["../../../src/client/components/charts/PieChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the pie chart type\n */\nexport const pieChartConfig: ChartTypeConfig = {\n label: 'chart.pie.label',\n description: 'chart.pie.description',\n useCase: 'chart.pie.useCase',\n clickableElements: { slice: true },\n isAvailable: ({ measureCount, dimensionCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n if (dimensionCount < 1) return { available: false, reason: 'chart.availability.requiresDimension' }\n return { available: true }\n },\n dropZones: [\n {\n key: 'xAxis',\n label: 'chart.configText.categories',\n description: 'chart.configText.dimension_for_pie_slices',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['dimension'],\n emptyText: 'chart.pie.dropZone.xAxis.empty'\n },\n {\n key: 'yAxis',\n label: 'chart.configText.values',\n description: 'chart.configText.measure_for_slice_sizes',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['measure'],\n emptyText: 'chart.pie.dropZone.yAxis.empty'\n }\n ],\n displayOptions: ['showLegend', 'showTooltip', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'innerRadius',\n label: 'chart.option.innerRadius.label',\n type: 'select',\n description: 'chart.configText.hollow_center_size_0_percent_solid_pie_higher_donut_style',\n defaultValue: '0%',\n options: [\n { value: '0%', label: 'chart.configText.none_pie' },\n { value: '20%', label: 'chart.configText.20_percent' },\n { value: '40%', label: 'chart.configText.40_percent' },\n { value: '60%', label: 'chart.configText.60_percent' },\n { value: '80%', label: 'chart.configText.80_percent' },\n ]\n },\n {\n key: 'leftYAxisFormat',\n label: 'chart.option.valueFormat.label',\n type: 'axisFormat',\n description: 'chart.option.valueFormat.description'\n }\n ]\n}"],"mappings":";;wDAKa,IAAkC;CAC7C,OAAO;CACP,aAAa;CACb,SAAS;CACT,mBAAmB,EAAE,OAAO,GAAK;CACjC,cAAc,EAAE,iBAAc,wBACxB,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IAC1F,IAAiB,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAuC,IAC3F,EAAE,WAAW,GAAK;CAE3B,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,WAAW;EACzB,WAAW;CACb,GACA;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,SAAS;EACvB,WAAW;CACb,CACF;CACA,gBAAgB;EAAC;EAAc;EAAe;CAAY;CAC1D,sBAAsB,CACpB;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;EACb,cAAc;EACd,SAAS;GACP;IAAE,OAAO;IAAM,OAAO;GAA4B;GAClD;IAAE,OAAO;IAAO,OAAO;GAA8B;GACrD;IAAE,OAAO;IAAO,OAAO;GAA8B;GACrD;IAAE,OAAO;IAAO,OAAO;GAA8B;GACrD;IAAE,OAAO;IAAO,OAAO;GAA8B;EACvD;CACF,GACA;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;CACf,CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-radar-CC2XAaGr.js","names":[],"sources":["../../../src/client/components/charts/RadarChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the radar chart type\n */\nexport const radarChartConfig: ChartTypeConfig = {\n label: 'chart.radar.label',\n description: 'chart.radar.description',\n useCase: 'chart.radar.useCase',\n isAvailable: ({ measureCount, dimensionCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n if (dimensionCount < 1) return { available: false, reason: 'chart.availability.requiresDimension' }\n return { available: true }\n },\n dropZones: [\n {\n key: 'xAxis',\n label: 'chart.configText.axes_categories',\n description: 'chart.configText.dimensions_for_radar_axes',\n mandatory: true,\n acceptTypes: ['dimension'],\n emptyText: 'chart.radar.dropZone.xAxis.empty'\n },\n {\n key: 'yAxis',\n label: 'chart.configText.values',\n description: 'chart.configText.measures_for_radar_values',\n mandatory: true,\n acceptTypes: ['measure'],\n emptyText: 'chart.radar.dropZone.yAxis.empty'\n },\n {\n key: 'series',\n label: 'chart.configText.series_multiple_shapes',\n description: 'chart.configText.dimensions_to_create_multiple_radar_shapes',\n mandatory: false,\n acceptTypes: ['dimension'],\n emptyText: 'chart.radar.dropZone.series.empty'\n }\n ],\n displayOptions: ['showLegend', 'showGrid', 'showTooltip', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'leftYAxisFormat',\n label: 'chart.option.valueFormat.label',\n type: 'axisFormat',\n description: 'chart.option.valueFormat.description'\n }\n ]\n}"],"mappings":";;0DAKa,IAAoC;CAC/C,OAAO;CACP,aAAa;CACb,SAAS;CACT,cAAc,EAAE,iBAAc,wBACxB,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IAC1F,IAAiB,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAuC,IAC3F,EAAE,WAAW,GAAK;CAE3B,WAAW;EACT;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,WAAW;GACzB,WAAW;EACb;EACA;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,SAAS;GACvB,WAAW;EACb;EACA;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,WAAW;GACzB,WAAW;EACb;CACF;CACA,gBAAgB;EAAC;EAAc;EAAY;EAAe;CAAY;CACtE,sBAAsB,CACpB;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;CACf,CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-radial-bar-DmxKx1R0.js","names":[],"sources":["../../../src/client/components/charts/RadialBarChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the radial bar chart type\n */\nexport const radialBarChartConfig: ChartTypeConfig = {\n label: 'chart.radialBar.label',\n description: 'chart.radialBar.description',\n useCase: 'chart.radialBar.useCase',\n isAvailable: ({ measureCount, dimensionCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n if (dimensionCount < 1) return { available: false, reason: 'chart.availability.requiresDimension' }\n return { available: true }\n },\n dropZones: [\n {\n key: 'xAxis',\n label: 'chart.configText.categories',\n description: 'chart.configText.dimensions_for_radial_segments',\n mandatory: true,\n acceptTypes: ['dimension'],\n emptyText: 'chart.radialBar.dropZone.xAxis.empty'\n },\n {\n key: 'yAxis',\n label: 'chart.configText.values',\n description: 'chart.configText.measures_for_radial_bar_lengths',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['measure'],\n emptyText: 'chart.radialBar.dropZone.yAxis.empty'\n }\n ],\n displayOptions: ['showLegend', 'showTooltip', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'leftYAxisFormat',\n label: 'chart.option.valueFormat.label',\n type: 'axisFormat',\n description: 'chart.option.valueFormat.description'\n }\n ]\n}"],"mappings":";;8DAKa,IAAwC;CACnD,OAAO;CACP,aAAa;CACb,SAAS;CACT,cAAc,EAAE,iBAAc,wBACxB,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IAC1F,IAAiB,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAuC,IAC3F,EAAE,WAAW,GAAK;CAE3B,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,aAAa,CAAC,WAAW;EACzB,WAAW;CACb,GACA;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,SAAS;EACvB,WAAW;CACb,CACF;CACA,gBAAgB;EAAC;EAAc;EAAe;CAAY;CAC1D,sBAAsB,CACpB;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;CACf,CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-tree-map-BI-oQStO.js","names":[],"sources":["../../../src/client/components/charts/TreeMapChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the treemap chart type\n */\nexport const treemapChartConfig: ChartTypeConfig = {\n label: 'chart.treemap.label',\n description: 'chart.treemap.description',\n useCase: 'chart.treemap.useCase',\n isAvailable: ({ measureCount, dimensionCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n if (dimensionCount < 1) return { available: false, reason: 'chart.availability.requiresDimension' }\n return { available: true }\n },\n dropZones: [\n {\n key: 'xAxis',\n label: 'chart.configText.categories',\n description: 'chart.configText.dimensions_for_treemap_rectangles',\n mandatory: true,\n acceptTypes: ['dimension'],\n emptyText: 'chart.treemap.dropZone.xAxis.empty'\n },\n {\n key: 'yAxis',\n label: 'chart.configText.size',\n description: 'chart.configText.measure_for_rectangle_sizes',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['measure'],\n emptyText: 'chart.treemap.dropZone.yAxis.empty'\n },\n {\n key: 'series',\n label: 'chart.configText.color_groups',\n description: 'chart.configText.dimension_to_color_rectangles_by_category',\n mandatory: false,\n maxItems: 1,\n acceptTypes: ['dimension'],\n emptyText: 'chart.treemap.dropZone.series.empty'\n }\n ],\n displayOptions: ['showLegend', 'showTooltip', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'leftYAxisFormat',\n label: 'chart.option.valueFormat.label',\n type: 'axisFormat',\n description: 'chart.configText.number_formatting_for_size_values'\n }\n ],\n clickableElements: { cell: true }\n}"],"mappings":";;4DAKa,IAAsC;CACjD,OAAO;CACP,aAAa;CACb,SAAS;CACT,cAAc,EAAE,iBAAc,wBACxB,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IAC1F,IAAiB,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAuC,IAC3F,EAAE,WAAW,GAAK;CAE3B,WAAW;EACT;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,WAAW;GACzB,WAAW;EACb;EACA;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,UAAU;GACV,aAAa,CAAC,SAAS;GACvB,WAAW;EACb;EACA;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,UAAU;GACV,aAAa,CAAC,WAAW;GACzB,WAAW;EACb;CACF;CACA,gBAAgB;EAAC;EAAc;EAAe;CAAY;CAC1D,sBAAsB,CACpB;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;CACf,CACF;CACA,mBAAmB,EAAE,MAAM,GAAK;AAClC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-config-waterfall-DSnyixbI.js","names":[],"sources":["../../../src/client/components/charts/WaterfallChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the waterfall chart type\n */\nexport const waterfallChartConfig: ChartTypeConfig = {\n label: 'chart.waterfall.label',\n description: 'chart.waterfall.description',\n useCase: 'chart.waterfall.useCase',\n clickableElements: { bar: true },\n isAvailable: ({ measureCount, dimensionCount }) => {\n if (measureCount < 1) return { available: false, reason: 'chart.availability.requiresMeasure' }\n if (dimensionCount < 1) return { available: false, reason: 'chart.availability.requiresDimension' }\n return { available: true }\n },\n displayOptions: ['showTooltip', 'hideHeader'],\n dropZones: [\n {\n key: 'xAxis',\n label: 'chart.dropZone.xAxis.label',\n description: 'chart.configText.dimension_labels_for_each_bar_segment_e_g_symbol_transaction_type',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'chart.waterfall.dropZone.xAxis.empty',\n },\n {\n key: 'yAxis',\n label: 'chart.configText.y_axis_value',\n description: 'chart.configText.single_measure_whose_values_are_summed_cumulatively',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['measure'],\n emptyText: 'chart.waterfall.dropZone.yAxis.empty',\n },\n ],\n displayOptionsConfig: [\n {\n key: 'showTotal',\n label: 'chart.option.showTotal.label',\n type: 'boolean',\n defaultValue: true,\n description: 'chart.option.showTotal.description',\n },\n {\n key: 'showConnectorLine',\n label: 'chart.option.showConnectorLine.label',\n type: 'boolean',\n defaultValue: true,\n description: 'chart.option.showConnectorLine.description',\n },\n {\n key: 'showDataLabels',\n label: 'chart.option.showDataLabels.label',\n type: 'boolean',\n defaultValue: false,\n description: 'chart.configText.display_the_value_above_each_bar_segment',\n },\n {\n key: 'leftYAxisFormat',\n label: 'chart.option.yAxisFormat.label',\n type: 'axisFormat',\n description: 'chart.configText.number_formatting_for_the_y_axis',\n },\n ],\n}\n"],"mappings":";;8DAKa,IAAwC;CACnD,OAAO;CACP,aAAa;CACb,SAAS;CACT,mBAAmB,EAAE,KAAK,GAAK;CAC/B,cAAc,EAAE,iBAAc,wBACxB,IAAe,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAqC,IAC1F,IAAiB,IAAU;EAAE,WAAW;EAAO,QAAQ;CAAuC,IAC3F,EAAE,WAAW,GAAK;CAE3B,gBAAgB,CAAC,eAAe,YAAY;CAC5C,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,aAAa,eAAe;EAC1C,WAAW;CACb,GACA;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,SAAS;EACvB,WAAW;CACb,CACF;CACA,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;EACf;EACA;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;EACf;CACF;AACF"}