brd-ui-kit 0.1.57 → 0.1.59

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 (327) hide show
  1. package/dist/_commonjsHelpers-DKOUU3wS.cjs +2 -0
  2. package/dist/_commonjsHelpers-DKOUU3wS.cjs.map +1 -0
  3. package/dist/_commonjsHelpers-DaMA6jEr.js +9 -0
  4. package/dist/_commonjsHelpers-DaMA6jEr.js.map +1 -0
  5. package/dist/chart-CgVfpT_X.cjs +63 -0
  6. package/dist/chart-CgVfpT_X.cjs.map +1 -0
  7. package/dist/chart-D15EtNmb.js +13139 -0
  8. package/dist/chart-D15EtNmb.js.map +1 -0
  9. package/dist/components/app-pagination/app-pagination.styles.d.ts +4 -3
  10. package/dist/components/app-sidebar/app-sidebar.styles.d.ts +5 -4
  11. package/dist/components/ui/badge/badge.styles.d.ts +3 -2
  12. package/dist/components/ui/button/button.styles.d.ts +2 -1
  13. package/dist/components/ui/card/card.styles.d.ts +7 -6
  14. package/dist/components/ui/combobox/combobox.styles.d.ts +4 -3
  15. package/dist/components/ui/field/field.styles.d.ts +2 -1
  16. package/dist/components/ui/icon/icon-dictionary.d.ts +52 -50
  17. package/dist/components/ui/input/input.styles.d.ts +2 -1
  18. package/dist/components/ui/input-group/input-group.styles.d.ts +3 -2
  19. package/dist/components/ui/label/label.d.ts +2 -1
  20. package/dist/components/ui/navigation-item/navigation-item.styles.d.ts +2 -1
  21. package/dist/components/ui/navigation-menu/navigation-menu.styles.d.ts +2 -1
  22. package/dist/components/ui/tabs/tabs.styles.d.ts +3 -2
  23. package/dist/components/ui/typography/typography.styles.d.ts +2 -1
  24. package/dist/components-app-pagination-app-pagination.js +97 -0
  25. package/dist/components-app-pagination-app-pagination.js.map +1 -0
  26. package/dist/components-app-pagination-app-pagination.styles.js +85 -0
  27. package/dist/components-app-pagination-app-pagination.styles.js.map +1 -0
  28. package/dist/components-app-pagination.js +5 -0
  29. package/dist/components-app-pagination.js.map +1 -0
  30. package/dist/components-app-sidebar-app-sidebar.js +97 -0
  31. package/dist/components-app-sidebar-app-sidebar.js.map +1 -0
  32. package/dist/components-app-sidebar-app-sidebar.styles.js +59 -0
  33. package/dist/components-app-sidebar-app-sidebar.styles.js.map +1 -0
  34. package/dist/components-app-sidebar.js +5 -0
  35. package/dist/components-app-sidebar.js.map +1 -0
  36. package/dist/components-avatar-uploader-avatar-uploader.cjs +2 -2
  37. package/dist/components-avatar-uploader-avatar-uploader.cjs.map +1 -1
  38. package/dist/components-avatar-uploader-avatar-uploader.js +103 -0
  39. package/dist/components-avatar-uploader-avatar-uploader.js.map +1 -0
  40. package/dist/components-avatar-uploader.js +5 -0
  41. package/dist/components-avatar-uploader.js.map +1 -0
  42. package/dist/components-basic-avatar-basic-avatar.cjs +1 -1
  43. package/dist/components-basic-avatar-basic-avatar.cjs.map +1 -1
  44. package/dist/components-basic-avatar-basic-avatar.js +99 -0
  45. package/dist/components-basic-avatar-basic-avatar.js.map +1 -0
  46. package/dist/components-basic-avatar.js +5 -0
  47. package/dist/components-basic-avatar.js.map +1 -0
  48. package/dist/components-basic-chart-basic-chart.cjs +3 -1
  49. package/dist/components-basic-chart-basic-chart.cjs.map +1 -1
  50. package/dist/components-basic-chart-basic-chart.js +5546 -0
  51. package/dist/components-basic-chart-basic-chart.js.map +1 -0
  52. package/dist/components-basic-chart.js +5 -0
  53. package/dist/components-basic-chart.js.map +1 -0
  54. package/dist/components-basic-checkbox-basic-checkbox.js +54 -0
  55. package/dist/components-basic-checkbox-basic-checkbox.js.map +1 -0
  56. package/dist/components-basic-checkbox.js +5 -0
  57. package/dist/components-basic-checkbox.js.map +1 -0
  58. package/dist/components-basic-drawer-basic-drawer.cjs +1 -1
  59. package/dist/components-basic-drawer-basic-drawer.cjs.map +1 -1
  60. package/dist/components-basic-drawer-basic-drawer.js +74 -0
  61. package/dist/components-basic-drawer-basic-drawer.js.map +1 -0
  62. package/dist/components-basic-drawer.js +5 -0
  63. package/dist/components-basic-drawer.js.map +1 -0
  64. package/dist/components-basic-modal-basic-modal.js +56 -0
  65. package/dist/components-basic-modal-basic-modal.js.map +1 -0
  66. package/dist/components-basic-modal.js +5 -0
  67. package/dist/components-basic-modal.js.map +1 -0
  68. package/dist/components-basic-select-basic-select.js +53 -0
  69. package/dist/components-basic-select-basic-select.js.map +1 -0
  70. package/dist/components-basic-select.js +5 -0
  71. package/dist/components-basic-select.js.map +1 -0
  72. package/dist/components-basic-table-basic-table.js +1961 -0
  73. package/dist/components-basic-table-basic-table.js.map +1 -0
  74. package/dist/components-basic-table.js +5 -0
  75. package/dist/components-basic-table.js.map +1 -0
  76. package/dist/components-basic-tooltip-basic-tooltip.js +61 -0
  77. package/dist/components-basic-tooltip-basic-tooltip.js.map +1 -0
  78. package/dist/components-basic-tooltip.js +5 -0
  79. package/dist/components-basic-tooltip.js.map +1 -0
  80. package/dist/components-files-uploader-files-uploader.cjs +3 -3
  81. package/dist/components-files-uploader-files-uploader.cjs.map +1 -1
  82. package/dist/components-files-uploader-files-uploader.js +185 -0
  83. package/dist/components-files-uploader-files-uploader.js.map +1 -0
  84. package/dist/components-files-uploader.js +5 -0
  85. package/dist/components-files-uploader.js.map +1 -0
  86. package/dist/components-input-field-input-field.js +56 -0
  87. package/dist/components-input-field-input-field.js.map +1 -0
  88. package/dist/components-input-field.js +5 -0
  89. package/dist/components-input-field.js.map +1 -0
  90. package/dist/components-input-password-input-password.cjs +1 -1
  91. package/dist/components-input-password-input-password.cjs.map +1 -1
  92. package/dist/components-input-password-input-password.js +67 -0
  93. package/dist/components-input-password-input-password.js.map +1 -0
  94. package/dist/components-input-password.js +5 -0
  95. package/dist/components-input-password.js.map +1 -0
  96. package/dist/components-popover-modal-popover-modal.js +40 -0
  97. package/dist/components-popover-modal-popover-modal.js.map +1 -0
  98. package/dist/components-popover-modal.js +5 -0
  99. package/dist/components-popover-modal.js.map +1 -0
  100. package/dist/components-radio-button-radio-button.js +74 -0
  101. package/dist/components-radio-button-radio-button.js.map +1 -0
  102. package/dist/components-radio-button.js +5 -0
  103. package/dist/components-radio-button.js.map +1 -0
  104. package/dist/components-select-field-select-field.js +179 -0
  105. package/dist/components-select-field-select-field.js.map +1 -0
  106. package/dist/components-select-field.js +5 -0
  107. package/dist/components-select-field.js.map +1 -0
  108. package/dist/components-select-groups-select-groups.js +91 -0
  109. package/dist/components-select-groups-select-groups.js.map +1 -0
  110. package/dist/components-select-groups.js +5 -0
  111. package/dist/components-select-groups.js.map +1 -0
  112. package/dist/components-textarea-field-textarea-field.js +30 -0
  113. package/dist/components-textarea-field-textarea-field.js.map +1 -0
  114. package/dist/components-textarea-field.js +5 -0
  115. package/dist/components-textarea-field.js.map +1 -0
  116. package/dist/components-ui-avatar-avatar.js +149 -0
  117. package/dist/components-ui-avatar-avatar.js.map +1 -0
  118. package/dist/components-ui-avatar.js +10 -0
  119. package/dist/components-ui-avatar.js.map +1 -0
  120. package/dist/components-ui-badge-badge.js +47 -0
  121. package/dist/components-ui-badge-badge.js.map +1 -0
  122. package/dist/components-ui-badge-badge.styles.js +53 -0
  123. package/dist/components-ui-badge-badge.styles.js.map +1 -0
  124. package/dist/components-ui-badge.js +7 -0
  125. package/dist/components-ui-badge.js.map +1 -0
  126. package/dist/components-ui-button-button.js +26 -0
  127. package/dist/components-ui-button-button.js.map +1 -0
  128. package/dist/components-ui-button-button.styles.js +58 -0
  129. package/dist/components-ui-button-button.styles.js.map +1 -0
  130. package/dist/components-ui-button.js +7 -0
  131. package/dist/components-ui-button.js.map +1 -0
  132. package/dist/components-ui-card-card.js +95 -0
  133. package/dist/components-ui-card-card.js.map +1 -0
  134. package/dist/components-ui-card-card.styles.js +55 -0
  135. package/dist/components-ui-card-card.styles.js.map +1 -0
  136. package/dist/components-ui-card.js +10 -0
  137. package/dist/components-ui-card.js.map +1 -0
  138. package/dist/components-ui-chart-chart.cjs +1 -21
  139. package/dist/components-ui-chart-chart.cjs.map +1 -1
  140. package/dist/components-ui-chart-chart.js +13 -0
  141. package/dist/components-ui-chart-chart.js.map +1 -0
  142. package/dist/components-ui-chart.cjs +1 -1
  143. package/dist/components-ui-chart.js +10 -0
  144. package/dist/components-ui-chart.js.map +1 -0
  145. package/dist/components-ui-checkbox-checkbox.js +26 -0
  146. package/dist/components-ui-checkbox-checkbox.js.map +1 -0
  147. package/dist/components-ui-checkbox-checkbox.styles.js +20 -0
  148. package/dist/components-ui-checkbox-checkbox.styles.js.map +1 -0
  149. package/dist/components-ui-checkbox.js +5 -0
  150. package/dist/components-ui-checkbox.js.map +1 -0
  151. package/dist/components-ui-combobox-combobox.cjs +5 -5
  152. package/dist/components-ui-combobox-combobox.cjs.map +1 -1
  153. package/dist/components-ui-combobox-combobox.js +7155 -0
  154. package/dist/components-ui-combobox-combobox.js.map +1 -0
  155. package/dist/components-ui-combobox-combobox.styles.js +93 -0
  156. package/dist/components-ui-combobox-combobox.styles.js.map +1 -0
  157. package/dist/components-ui-combobox.js +20 -0
  158. package/dist/components-ui-combobox.js.map +1 -0
  159. package/dist/components-ui-dialog-dialog.js +88 -0
  160. package/dist/components-ui-dialog-dialog.js.map +1 -0
  161. package/dist/components-ui-dialog-dialog.styles.js +34 -0
  162. package/dist/components-ui-dialog-dialog.styles.js.map +1 -0
  163. package/dist/components-ui-dialog.js +14 -0
  164. package/dist/components-ui-dialog.js.map +1 -0
  165. package/dist/components-ui-drawer-drawer.cjs +1 -1
  166. package/dist/components-ui-drawer-drawer.cjs.map +1 -1
  167. package/dist/components-ui-drawer-drawer.js +177 -0
  168. package/dist/components-ui-drawer-drawer.js.map +1 -0
  169. package/dist/components-ui-drawer.js +14 -0
  170. package/dist/components-ui-drawer.js.map +1 -0
  171. package/dist/components-ui-field-field.js +155 -0
  172. package/dist/components-ui-field-field.js.map +1 -0
  173. package/dist/components-ui-field-field.styles.js +59 -0
  174. package/dist/components-ui-field-field.styles.js.map +1 -0
  175. package/dist/components-ui-field.js +14 -0
  176. package/dist/components-ui-field.js.map +1 -0
  177. package/dist/components-ui-icon-icon-dictionary.js +60 -0
  178. package/dist/components-ui-icon-icon-dictionary.js.map +1 -0
  179. package/dist/components-ui-icon-icon.js +40 -0
  180. package/dist/components-ui-icon-icon.js.map +1 -0
  181. package/dist/components-ui-icon-overrides.js +65 -0
  182. package/dist/components-ui-icon-overrides.js.map +1 -0
  183. package/dist/components-ui-icon.js +5 -0
  184. package/dist/components-ui-icon.js.map +1 -0
  185. package/dist/components-ui-input-group-input-group.js +129 -0
  186. package/dist/components-ui-input-group-input-group.js.map +1 -0
  187. package/dist/components-ui-input-group-input-group.styles.js +43 -0
  188. package/dist/components-ui-input-group-input-group.styles.js.map +1 -0
  189. package/dist/components-ui-input-group.js +10 -0
  190. package/dist/components-ui-input-group.js.map +1 -0
  191. package/dist/components-ui-input-input.js +18 -0
  192. package/dist/components-ui-input-input.js.map +1 -0
  193. package/dist/components-ui-input-input.styles.js +31 -0
  194. package/dist/components-ui-input-input.styles.js.map +1 -0
  195. package/dist/components-ui-input.js +5 -0
  196. package/dist/components-ui-input.js.map +1 -0
  197. package/dist/components-ui-label-label.js +19 -0
  198. package/dist/components-ui-label-label.js.map +1 -0
  199. package/dist/components-ui-label.js +5 -0
  200. package/dist/components-ui-label.js.map +1 -0
  201. package/dist/components-ui-navigation-item-navigation-item.js +66 -0
  202. package/dist/components-ui-navigation-item-navigation-item.js.map +1 -0
  203. package/dist/components-ui-navigation-item-navigation-item.styles.js +32 -0
  204. package/dist/components-ui-navigation-item-navigation-item.styles.js.map +1 -0
  205. package/dist/components-ui-navigation-item.js +5 -0
  206. package/dist/components-ui-navigation-item.js.map +1 -0
  207. package/dist/components-ui-navigation-menu-navigation-menu.js +25 -0
  208. package/dist/components-ui-navigation-menu-navigation-menu.js.map +1 -0
  209. package/dist/components-ui-navigation-menu-navigation-menu.styles.js +23 -0
  210. package/dist/components-ui-navigation-menu-navigation-menu.styles.js.map +1 -0
  211. package/dist/components-ui-navigation-menu.js +5 -0
  212. package/dist/components-ui-navigation-menu.js.map +1 -0
  213. package/dist/components-ui-pagination-pagination.js +110 -0
  214. package/dist/components-ui-pagination-pagination.js.map +1 -0
  215. package/dist/components-ui-pagination.js +11 -0
  216. package/dist/components-ui-pagination.js.map +1 -0
  217. package/dist/components-ui-popover-popover.js +117 -0
  218. package/dist/components-ui-popover-popover.js.map +1 -0
  219. package/dist/components-ui-popover-popover.styles.js +13 -0
  220. package/dist/components-ui-popover-popover.styles.js.map +1 -0
  221. package/dist/components-ui-popover.js +11 -0
  222. package/dist/components-ui-popover.js.map +1 -0
  223. package/dist/components-ui-progress-progress.js +49 -0
  224. package/dist/components-ui-progress-progress.js.map +1 -0
  225. package/dist/components-ui-progress.js +5 -0
  226. package/dist/components-ui-progress.js.map +1 -0
  227. package/dist/components-ui-radio-group-radio-group.js +29 -0
  228. package/dist/components-ui-radio-group-radio-group.js.map +1 -0
  229. package/dist/components-ui-radio-group-radio-group.styles.js +23 -0
  230. package/dist/components-ui-radio-group-radio-group.styles.js.map +1 -0
  231. package/dist/components-ui-radio-group.js +6 -0
  232. package/dist/components-ui-radio-group.js.map +1 -0
  233. package/dist/components-ui-select-select.js +194 -0
  234. package/dist/components-ui-select-select.js.map +1 -0
  235. package/dist/components-ui-select-select.styles.js +43 -0
  236. package/dist/components-ui-select-select.styles.js.map +1 -0
  237. package/dist/components-ui-select.js +14 -0
  238. package/dist/components-ui-select.js.map +1 -0
  239. package/dist/components-ui-separator-separator.js +29 -0
  240. package/dist/components-ui-separator-separator.js.map +1 -0
  241. package/dist/components-ui-separator.js +5 -0
  242. package/dist/components-ui-separator.js.map +1 -0
  243. package/dist/components-ui-sonner-sonner.cjs +1 -1
  244. package/dist/components-ui-sonner-sonner.cjs.map +1 -1
  245. package/dist/components-ui-sonner-sonner.js +72 -0
  246. package/dist/components-ui-sonner-sonner.js.map +1 -0
  247. package/dist/components-ui-sonner-sonner.styles.js +42 -0
  248. package/dist/components-ui-sonner-sonner.styles.js.map +1 -0
  249. package/dist/components-ui-sonner.cjs +1 -1
  250. package/dist/components-ui-sonner.js +7 -0
  251. package/dist/components-ui-sonner.js.map +1 -0
  252. package/dist/components-ui-switch-switch.js +19 -0
  253. package/dist/components-ui-switch-switch.js.map +1 -0
  254. package/dist/components-ui-switch-switch.styles.js +22 -0
  255. package/dist/components-ui-switch-switch.styles.js.map +1 -0
  256. package/dist/components-ui-switch.js +5 -0
  257. package/dist/components-ui-switch.js.map +1 -0
  258. package/dist/components-ui-table-table.js +130 -0
  259. package/dist/components-ui-table-table.js.map +1 -0
  260. package/dist/components-ui-table.js +12 -0
  261. package/dist/components-ui-table.js.map +1 -0
  262. package/dist/components-ui-tabs-tabs.js +62 -0
  263. package/dist/components-ui-tabs-tabs.js.map +1 -0
  264. package/dist/components-ui-tabs-tabs.styles.js +64 -0
  265. package/dist/components-ui-tabs-tabs.styles.js.map +1 -0
  266. package/dist/components-ui-tabs.js +8 -0
  267. package/dist/components-ui-tabs.js.map +1 -0
  268. package/dist/components-ui-textarea-textarea.js +16 -0
  269. package/dist/components-ui-textarea-textarea.js.map +1 -0
  270. package/dist/components-ui-textarea-textarea.styles.js +13 -0
  271. package/dist/components-ui-textarea-textarea.styles.js.map +1 -0
  272. package/dist/components-ui-textarea.js +5 -0
  273. package/dist/components-ui-textarea.js.map +1 -0
  274. package/dist/components-ui-tooltip-tooltip.js +28 -0
  275. package/dist/components-ui-tooltip-tooltip.js.map +1 -0
  276. package/dist/components-ui-tooltip-tooltip.styles.js +11 -0
  277. package/dist/components-ui-tooltip-tooltip.styles.js.map +1 -0
  278. package/dist/components-ui-tooltip.js +9 -0
  279. package/dist/components-ui-tooltip.js.map +1 -0
  280. package/dist/components-ui-typography-typography.js +19 -0
  281. package/dist/components-ui-typography-typography.js.map +1 -0
  282. package/dist/components-ui-typography-typography.styles.js +85 -0
  283. package/dist/components-ui-typography-typography.styles.js.map +1 -0
  284. package/dist/components-ui-typography.js +9 -0
  285. package/dist/components-ui-typography.js.map +1 -0
  286. package/dist/hooks-usePopupControls.js +14 -0
  287. package/dist/hooks-usePopupControls.js.map +1 -0
  288. package/dist/index-B5Id-jNC.js +2830 -0
  289. package/dist/index-B5Id-jNC.js.map +1 -0
  290. package/dist/index-C4iHL8Gs.js +776 -0
  291. package/dist/index-C4iHL8Gs.js.map +1 -0
  292. package/dist/index-C6N9aMq_.js +1038 -0
  293. package/dist/index-C6N9aMq_.js.map +1 -0
  294. package/dist/index-D8y9Cogu.cjs +7 -0
  295. package/dist/index-D8y9Cogu.cjs.map +1 -0
  296. package/dist/index-DGxwh2Ms.cjs +2 -0
  297. package/dist/index-DGxwh2Ms.cjs.map +1 -0
  298. package/dist/index-fTTv8YY8.cjs +4 -0
  299. package/dist/index-fTTv8YY8.cjs.map +1 -0
  300. package/dist/index.cjs +1 -1
  301. package/dist/index.js +194 -0
  302. package/dist/index.js.map +1 -0
  303. package/dist/lib-utils.js +16 -0
  304. package/dist/lib-utils.js.map +1 -0
  305. package/dist/lodash-FemA_LCk.js +3688 -0
  306. package/dist/lodash-FemA_LCk.js.map +1 -0
  307. package/dist/lodash-kqhtUJfz.cjs +21 -0
  308. package/dist/lodash-kqhtUJfz.cjs.map +1 -0
  309. package/dist/types-types.js +2 -0
  310. package/dist/types-types.js.map +1 -0
  311. package/dist/utils-helpers.js +17 -0
  312. package/dist/utils-helpers.js.map +1 -0
  313. package/dist/with-selector-CNcGWQ-h.js +534 -0
  314. package/dist/with-selector-CNcGWQ-h.js.map +1 -0
  315. package/dist/with-selector-DSbfqgSY.cjs +8 -0
  316. package/dist/with-selector-DSbfqgSY.cjs.map +1 -0
  317. package/package.json +87 -625
  318. package/.githooks/pre-commit +0 -19
  319. package/.prettierignore +0 -13
  320. package/components.json +0 -25
  321. package/prettier.config.mjs +0 -28
  322. package/public/vite.svg +0 -1
  323. package/scripts/generate-exports.js +0 -76
  324. package/scripts/get-entry-points.ts +0 -102
  325. package/tsconfig.app.json +0 -40
  326. package/tsconfig.node.json +0 -26
  327. package/tsconfig.storybook.json +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"components-basic-chart-basic-chart.cjs","sources":["../src/components/basic-chart/basic-chart.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport { debounce } from \"lodash\";\nimport { useEffect, useState } from \"react\";\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n XAxis,\n YAxis,\n type BarProps,\n type TooltipProps,\n type TooltipValueType,\n type XAxisProps,\n type YAxisProps,\n} from \"recharts\";\nimport type { NameType } from \"recharts/types/component/DefaultTooltipContent\";\nimport type { CartesianChartProps } from \"recharts/types/util/types\";\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"../ui/chart/chart\";\n\ntype Props = {\n chartContainer?: React.ClassAttributes<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement> & {\n config: ChartConfig;\n };\n barChart?: CartesianChartProps<any> & {\n ref?: React.Ref<SVGSVGElement> | undefined;\n };\n cartesianGrid?: React.ComponentProps<typeof CartesianGrid>;\n axis?: {\n y?: Partial<YAxisProps>;\n x?: Partial<XAxisProps>;\n };\n hasTooltip?: boolean;\n tooltip?: TooltipProps<TooltipValueType, NameType>;\n bar?: BarProps;\n chartTooltipContent?: React.ComponentProps<typeof ChartTooltipContent>;\n fillContainer?: boolean;\n minHeight?: number | string;\n smoothResize?: boolean;\n resizeDebounceMs?: number;\n mobileBreakpoint?: number;\n};\n\nconst DEFAULT_BAR_SIZE = 14.52;\nconst DEFAULT_TICK_MARGIN = 10;\nconst DEFAULT_BAR_RADIUS = 4;\nconst DEFAULT_BAR_COLOR = \"#3B82F6\";\nconst DEFAULT_MOBILE_BREAKPOINT = 400;\nconst MIN_HEIGHT = 200;\nconst RESIZE_DOBOUNCE_MS = 150;\n\nconst DEFAULT_CONFIG = {\n desktop: {\n label: \"default\",\n color: DEFAULT_BAR_COLOR,\n },\n} satisfies ChartConfig;\n\nexport const BasicChart = ({\n chartContainer,\n barChart,\n cartesianGrid,\n axis,\n hasTooltip = true,\n tooltip,\n bar,\n chartTooltipContent,\n fillContainer = false,\n minHeight = MIN_HEIGHT,\n smoothResize = true,\n resizeDebounceMs = RESIZE_DOBOUNCE_MS,\n mobileBreakpoint = DEFAULT_MOBILE_BREAKPOINT,\n}: Props) => {\n const chartConfig = chartContainer?.config ?? DEFAULT_CONFIG;\n const [containerRef, setContainerRef] = useState<HTMLDivElement | null>(null);\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 });\n const [isResizing, setIsResizing] = useState(false);\n\n // TODO: позже вынести в хук\n useEffect(() => {\n if (!smoothResize || !containerRef) return;\n\n let resizeTimer: NodeJS.Timeout;\n\n const handleResize = debounce((entries: ResizeObserverEntry[]) => {\n setIsResizing(true);\n\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setDimensions({ width, height });\n }\n\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(() => {\n setIsResizing(false);\n }, 100);\n }, resizeDebounceMs);\n\n const resizeObserver = new ResizeObserver(handleResize);\n resizeObserver.observe(containerRef);\n\n const { width, height } = containerRef.getBoundingClientRect();\n setDimensions({ width, height });\n\n return () => {\n resizeObserver.disconnect();\n handleResize.cancel();\n clearTimeout(resizeTimer);\n };\n }, [containerRef, smoothResize, resizeDebounceMs]);\n\n const isMobile = dimensions.width < mobileBreakpoint;\n\n return (\n <div\n ref={setContainerRef}\n className={cn(\n \"w-full transition-opacity duration-200 will-change-transform\",\n isResizing ? \"opacity-60\" : \"opacity-100\",\n fillContainer ? \"h-full\" : \"min-h-50\",\n )}\n style={{\n minHeight: fillContainer ? undefined : minHeight,\n transform: \"translateZ(0)\",\n backfaceVisibility: \"hidden\",\n }}\n >\n <ChartContainer\n {...chartContainer}\n config={chartContainer?.config ?? chartConfig}\n className={cn(\n !fillContainer && \"aspect-video\",\n \"transition-[width,height] duration-200 ease-in-out\",\n chartContainer?.className,\n )}\n >\n <BarChart\n barSize={bar?.barSize ?? barChart?.barSize ?? DEFAULT_BAR_SIZE}\n {...barChart}\n margin={\n barChart?.margin || {\n top: 10,\n right: isMobile ? 5 : 10,\n bottom: isMobile ? 30 : 20,\n left: isMobile ? 0 : 10,\n }\n }\n className=\"transition-all duration-200\"\n >\n <CartesianGrid\n vertical={cartesianGrid?.vertical ?? false}\n horizontal={cartesianGrid?.horizontal ?? true}\n strokeDasharray={cartesianGrid?.strokeDasharray ?? \"3 3\"}\n {...cartesianGrid}\n />\n\n <YAxis\n tickLine={axis?.y?.tickLine ?? false}\n axisLine={axis?.y?.axisLine ?? false}\n tickMargin={axis?.y?.tickMargin ?? DEFAULT_TICK_MARGIN}\n width={axis?.y?.width ?? (isMobile ? 30 : 35)}\n {...axis?.y}\n // Адаптивные настройки для мобильных\n hide={axis?.y?.hide ?? isMobile}\n tick={\n axis?.y?.tick ?? {\n fontSize: isMobile ? 10 : 12,\n ...(typeof axis?.y?.tick === \"object\" ? axis?.y?.tick : {}),\n }\n }\n />\n\n <XAxis\n tickLine={axis?.x?.tickLine ?? false}\n axisLine={axis?.x?.axisLine ?? false}\n tickMargin={axis?.x?.tickMargin ?? DEFAULT_TICK_MARGIN}\n interval={axis?.x?.interval ?? (isMobile ? 0 : \"preserveStart\")}\n {...axis?.x}\n // Адаптивный угол наклона для мобильных\n angle={axis?.x?.angle ?? (isMobile ? -45 : 0)}\n textAnchor={axis?.x?.textAnchor ?? (isMobile ? \"end\" : \"middle\")}\n height={axis?.x?.height ?? (isMobile ? 60 : 30)}\n tick={\n axis?.x?.tick ?? {\n fontSize: isMobile ? 10 : 12,\n ...(typeof axis?.x?.tick === \"object\" ? axis?.x?.tick : {}),\n }\n }\n />\n\n {hasTooltip && (\n <ChartTooltip\n cursor={tooltip?.cursor ?? true}\n content={\n <ChartTooltipContent\n {...chartTooltipContent}\n className={cn(\n \"transition-all duration-200\",\n isMobile && \"origin-top-left scale-90 text-xs\",\n )}\n />\n }\n {...tooltip}\n />\n )}\n\n <Bar\n fill={bar?.fill ?? DEFAULT_BAR_COLOR}\n radius={\n typeof bar?.radius === \"number\"\n ? Math.min(bar.radius, isMobile ? 3 : bar.radius)\n : isMobile\n ? 3\n : DEFAULT_BAR_RADIUS\n }\n {...bar}\n />\n </BarChart>\n </ChartContainer>\n </div>\n );\n};\n\nexport type { Props as ChartProps };\n"],"names":["DEFAULT_BAR_SIZE","DEFAULT_TICK_MARGIN","DEFAULT_BAR_RADIUS","DEFAULT_BAR_COLOR","DEFAULT_MOBILE_BREAKPOINT","MIN_HEIGHT","RESIZE_DOBOUNCE_MS","DEFAULT_CONFIG","BasicChart","chartContainer","barChart","cartesianGrid","axis","hasTooltip","tooltip","bar","chartTooltipContent","fillContainer","minHeight","smoothResize","resizeDebounceMs","mobileBreakpoint","chartConfig","containerRef","setContainerRef","useState","dimensions","setDimensions","isResizing","setIsResizing","useEffect","resizeTimer","handleResize","debounce","entries","entry","width","height","resizeObserver","isMobile","jsx","cn","ChartContainer","jsxs","BarChart","CartesianGrid","YAxis","XAxis","ChartTooltip","ChartTooltipContent","Bar"],"mappings":"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"}
1
+ {"version":3,"file":"components-basic-chart-basic-chart.cjs","sources":["../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/container/Layer.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/Cell.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/LRUCache.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/DOMUtils.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/ReduceCSSCalc.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/Text.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/getCartesianPosition.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/Label.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/LabelList.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/polarAxisSlice.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/getClassNameFromUnknown.js","../node_modules/.pnpm/react-is@17.0.2/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/.pnpm/react-is@17.0.2/node_modules/react-is/cjs/react-is.development.js","../node_modules/.pnpm/react-is@17.0.2/node_modules/react-is/index.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/ReactUtils.js","../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isPlainObject.js","../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/isPlainObject.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/shape/Trapezoid.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/ActiveShapeUtils.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/tooltipContext.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/SetTooltipEntrySettings.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/SetLegendPayload.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/useId.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/useUniqueId.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/RegisterGraphicalItemId.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/graphicalItemsSlice.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/SetGraphicalItem.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/cartesianAxisSlice.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectChartOffset.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectPlotArea.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/hooks.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineBarSizeList.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineAllBarPositions.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineStackedData.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineBarPosition.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/zIndex/getZIndexFromUnknown.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/chartDataContext.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/brushSlice.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/referenceElementsSlice.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/container/ClipPathProvider.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/getEveryNth.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/TickUtils.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/getEquidistantTicks.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/getTicks.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/YAxisUtils.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/renderedTicksSlice.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/CartesianGrid.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/errorBarSlice.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/ErrorBarContext.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/GraphicalItemClipPath.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/graphicalItemSelectors.js","../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/BarUtils.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/barSelectors.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/BarStack.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/Bar.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/axisPropsAreEqual.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectActivePropsFromChartPointer.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/getRelativeCoordinate.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/mouseEventsMiddleware.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/reduxDevtoolsJsonStringifyReplacer.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/rootPropsSlice.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/polarOptionsSlice.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/keyboardEventsMiddleware.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/createEventProxy.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/externalEventsMiddleware.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/touchSelectors.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/touchEventsMiddleware.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/eventSettingsSlice.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/store.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/RechartsStoreProvider.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/ReportMainChartProps.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/ReportChartProps.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/ReportEventSettings.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/zIndex/ZIndexPortal.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/container/RootSurface.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/useReportScale.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/RechartsWrapper.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/CategoricalChart.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/CartesianChart.js","../node_modules/.pnpm/recharts@3.8.0_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react-is@17.0.2_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/BarChart.js","../src/components/basic-chart/basic-chart.tsx"],"sourcesContent":["var _excluded = [\"children\", \"className\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\n/**\n * Creates an SVG group element to group other SVG elements.\n *\n * Useful if you want to apply transformations or styles to a set of elements\n * without affecting other elements in the SVG.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/g\n */\nexport var Layer = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n children,\n className\n } = props,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, svgPropertiesAndEvents(others), {\n ref: ref\n }), children);\n});","/**\n * Cell component used to define colors and styles of chart elements.\n *\n * This component is now deprecated and will be removed in Recharts 4.0.\n *\n * Please use the `shape` prop or `content` prop on the respective chart components\n * to customize the rendering of chart elements instead of using `Cell`.\n *\n * @see {@link https://recharts.github.io/en-US/guide/cell/ Guide: Migrate from Cell component to shape prop}\n *\n * @deprecated\n * @consumes CellReader\n */\nexport var Cell = _props => null;\nCell.displayName = 'Cell';","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * Simple LRU (Least Recently Used) cache implementation\n */\nexport class LRUCache {\n constructor(maxSize) {\n _defineProperty(this, \"cache\", new Map());\n this.maxSize = maxSize;\n }\n get(key) {\n var value = this.cache.get(key);\n if (value !== undefined) {\n this.cache.delete(key);\n this.cache.set(key, value);\n }\n return value;\n }\n set(key, value) {\n if (this.cache.has(key)) {\n this.cache.delete(key);\n } else if (this.cache.size >= this.maxSize) {\n var firstKey = this.cache.keys().next().value;\n if (firstKey != null) {\n this.cache.delete(firstKey);\n }\n }\n this.cache.set(key, value);\n }\n clear() {\n this.cache.clear();\n }\n size() {\n return this.cache.size;\n }\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Global } from './Global';\nimport { LRUCache } from './LRUCache';\nvar defaultConfig = {\n cacheSize: 2000,\n enableCache: true\n};\nvar currentConfig = _objectSpread({}, defaultConfig);\nvar stringCache = new LRUCache(currentConfig.cacheSize);\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction createCacheKey(text, style) {\n // Simple string concatenation for better performance than JSON.stringify\n var fontSize = style.fontSize || '';\n var fontFamily = style.fontFamily || '';\n var fontWeight = style.fontWeight || '';\n var fontStyle = style.fontStyle || '';\n var letterSpacing = style.letterSpacing || '';\n var textTransform = style.textTransform || '';\n return \"\".concat(text, \"|\").concat(fontSize, \"|\").concat(fontFamily, \"|\").concat(fontWeight, \"|\").concat(fontStyle, \"|\").concat(letterSpacing, \"|\").concat(textTransform);\n}\n\n/**\n * Measure text using DOM (accurate but slower)\n * @param text - The text to measure\n * @param style - CSS style properties to apply\n * @returns The size of the text\n */\nvar measureTextWithDOM = (text, style) => {\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n }\n\n // Apply styles directly without unnecessary object creation\n Object.assign(measurementSpan.style, SPAN_STYLE, style);\n measurementSpan.textContent = \"\".concat(text);\n var rect = measurementSpan.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height\n };\n } catch (_unused) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n // If caching is disabled, measure directly\n if (!currentConfig.enableCache) {\n return measureTextWithDOM(text, style);\n }\n var cacheKey = createCacheKey(text, style);\n var cachedResult = stringCache.get(cacheKey);\n if (cachedResult) {\n return cachedResult;\n }\n\n // Measure using DOM\n var result = measureTextWithDOM(text, style);\n\n // Store in LRU cache\n stringCache.set(cacheKey, result);\n return result;\n};\n\n/**\n * Configure text measurement behavior\n * @param config - Partial configuration to apply\n * @returns void\n */\nexport var configureTextMeasurement = config => {\n var newConfig = _objectSpread(_objectSpread({}, currentConfig), config);\n if (newConfig.cacheSize !== currentConfig.cacheSize) {\n stringCache = new LRUCache(newConfig.cacheSize);\n }\n currentConfig = newConfig;\n};\n\n/**\n * Get current text measurement configuration\n * @returns Current configuration\n */\nexport var getTextMeasurementConfig = () => _objectSpread({}, currentConfig);\n\n/**\n * Clear the string size cache. Useful for testing or memory management.\n * @returns void\n */\nexport var clearStringCache = () => {\n stringCache.clear();\n};\n\n/**\n * Get cache statistics for debugging purposes.\n * @returns Cache statistics including size and max size\n */\nexport var getStringCacheStats = () => ({\n size: stringCache.size(),\n maxSize: currentConfig.cacheSize\n});","var _DecimalCSS;\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { isNan } from './DataUtils';\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^(px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q)$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n in: 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = ['cm', 'mm', 'pt', 'pc', 'in', 'Q', 'px'];\nfunction isSupportedUnit(unit) {\n return FIXED_CSS_LENGTH_UNITS.includes(unit);\n}\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nclass DecimalCSS {\n static parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var [, numStr, unit] = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [];\n if (numStr == null) {\n return DecimalCSS.NaN;\n }\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n constructor(num, unit) {\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (isNan(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (isSupportedUnit(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n isNaN() {\n return isNan(this.num);\n }\n}\n_DecimalCSS = DecimalCSS;\n_defineProperty(DecimalCSS, \"NaN\", new _DecimalCSS(NaN, ''));\nfunction calculateArithmetic(expr) {\n if (expr == null || expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var [, leftOperand, operator, rightOperand] = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var [, _leftOperand, _operator, _rightOperand] = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n var match;\n // eslint-disable-next-line no-cond-assign\n while ((match = PARENTHESES_REGEX.exec(newExpr)) != null) {\n var [, parentheticalExpression] = match;\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (_unused) {\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"fill\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { useMemo, forwardRef } from 'react';\nimport { clsx } from 'clsx';\nimport { isNullish, isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = _ref => {\n var {\n children,\n breakAll,\n style\n } = _ref;\n try {\n var words = [];\n if (!isNullish(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(word => ({\n word,\n width: getStringSize(word, style).width\n }));\n var spaceWidth = breakAll ? 0 : getStringSize('\\u00A0', style).width;\n return {\n wordsWithComputedWidth,\n spaceWidth\n };\n } catch (_unused) {\n return null;\n }\n};\n\n/**\n * @inline\n */\n\nexport function isValidTextAnchor(value) {\n return value === 'start' || value === 'middle' || value === 'end' || value === 'inherit';\n}\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\nexport function isRenderableText(val) {\n return isNullish(val) || typeof val === 'string' || typeof val === 'number' || typeof val === 'boolean';\n}\nvar calculate = (words, lineWidth, spaceWidth, scaleToFit) => words.reduce((result, _ref2) => {\n var {\n word,\n width\n } = _ref2;\n var currentLine = result[result.length - 1];\n if (currentLine && width != null && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width\n };\n result.push(newLine);\n }\n return result;\n}, []);\nvar findLongestLine = words => words.reduce((a, b) => a.width > b.width ? a : b);\nvar suffix = '…';\nvar checkOverflow = (text, index, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit) => {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll,\n style,\n children: tempText + suffix\n });\n if (!words) {\n return [false, []];\n }\n var result = calculate(words.wordsWithComputedWidth, lineWidth, spaceWidth, scaleToFit);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n};\nvar calculateWordsByLines = (_ref3, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) => {\n var {\n maxLines,\n children,\n style,\n breakAll\n } = _ref3;\n var shouldLimitLines = isNumber(maxLines);\n var text = String(children);\n var originalResult = calculate(initialWordsWithComputedWith, lineWidth, spaceWidth, scaleToFit);\n if (!shouldLimitLines || scaleToFit) {\n return originalResult;\n }\n var overflows = originalResult.length > maxLines || findLongestLine(originalResult).width > Number(lineWidth);\n if (!overflows) {\n return originalResult;\n }\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var [doesPrevOverflow, result] = checkOverflow(text, prev, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit);\n var [doesMiddleOverflow] = checkOverflow(text, middle, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit);\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = children => {\n var words = !isNullish(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words,\n width: undefined\n }];\n};\nexport var getWordsByLines = _ref4 => {\n var {\n width,\n scaleToFit,\n children,\n style,\n breakAll,\n maxLines\n } = _ref4;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll,\n children,\n style\n });\n if (wordWidths) {\n var {\n wordsWithComputedWidth: wcw,\n spaceWidth: sw\n } = wordWidths;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll,\n children,\n maxLines,\n style\n }, wordsWithComputedWidth, spaceWidth, width, Boolean(scaleToFit));\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var textDefaultProps = {\n angle: 0,\n breakAll: false,\n // Magic number from d3\n capHeight: '0.71em',\n fill: DEFAULT_FILL,\n lineHeight: '1em',\n scaleToFit: false,\n textAnchor: 'start',\n // Maintain compat with existing charts / default SVG behavior\n verticalAnchor: 'end',\n x: 0,\n y: 0\n};\nexport var Text = /*#__PURE__*/forwardRef((outsideProps, ref) => {\n var _resolveDefaultProps = resolveDefaultProps(outsideProps, textDefaultProps),\n {\n x: propsX,\n y: propsY,\n lineHeight,\n capHeight,\n fill,\n scaleToFit,\n textAnchor,\n verticalAnchor\n } = _resolveDefaultProps,\n props = _objectWithoutProperties(_resolveDefaultProps, _excluded);\n var wordsByLines = useMemo(() => {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var {\n dx,\n dy,\n angle,\n className,\n breakAll\n } = props,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY) || wordsByLines.length === 0) {\n return null;\n }\n var x = Number(propsX) + (isNumber(dx) ? dx : 0);\n var y = Number(propsY) + (isNumber(dy) ? dy : 0);\n if (!isWellBehavedNumber(x) || !isWellBehavedNumber(y)) {\n return null;\n }\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n var firstLine = wordsByLines[0];\n if (scaleToFit && firstLine != null) {\n var lineWidth = firstLine.width;\n var {\n width\n } = props;\n transforms.push(\"scale(\".concat(isNumber(width) && isNumber(lineWidth) ? width / lineWidth : 1, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, svgPropertiesAndEvents(textProps), {\n ref: ref,\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map((line, index) => {\n var words = line.words.join(breakAll ? '' : ' ');\n return (\n /*#__PURE__*/\n // duplicate words will cause duplicate keys which is why we add the array index here\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: \"\".concat(words, \"-\").concat(index)\n }, words)\n );\n }));\n});\nText.displayName = 'Text';","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { getPercentValue, isNumber, isPercent } from '../util/DataUtils';\nimport { cartesianViewBoxToTrapezoid } from '../context/chartLayoutContext';\n/**\n * Calculates the position and alignment for a generic element in a Cartesian coordinate system.\n *\n * @param options - The options including viewBox, position, and offset.\n * @returns The calculated x, y, alignment and size.\n */\nexport var getCartesianPosition = options => {\n var {\n viewBox,\n position,\n offset = 0,\n parentViewBox: parentViewBoxFromOptions,\n clamp\n } = options;\n var {\n x,\n y,\n height,\n upperWidth,\n lowerWidth\n } = cartesianViewBoxToTrapezoid(viewBox);\n\n // Funnel.tsx provides a viewBox where `x` is the top-left of the trapezoid shape.\n var upperX = x;\n // The trapezoid is centered, so we can calculate the other corners from the top-left.\n var lowerX = x + (upperWidth - lowerWidth) / 2;\n // middleX is the x-coordinate of the left edge at the vertical midpoint of the trapezoid.\n var middleX = (upperX + lowerX) / 2;\n // The width of the trapezoid at its vertical midpoint.\n var midHeightWidth = (upperWidth + lowerWidth) / 2;\n // The center x-coordinate is constant for the entire height of the trapezoid.\n var centerX = upperX + upperWidth / 2;\n\n // Define vertical offsets and position inverts based on the value being positive or negative.\n // This allows labels to be positioned correctly for bars with negative height.\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative.\n // This allows labels to be positioned correctly for bars with negative width.\n var horizontalSign = upperWidth >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n\n // We assume parentViewBox is generic if provided.\n // The user has asserted that parentViewBox will be CartesianViewBoxRequired if present.\n var parentViewBox = parentViewBoxFromOptions;\n if (position === 'top') {\n var result = {\n x: upperX + upperWidth / 2,\n y: y - verticalOffset,\n horizontalAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n if (clamp && parentViewBox) {\n result.height = Math.max(y - parentViewBox.y, 0);\n result.width = upperWidth;\n }\n return result;\n }\n if (position === 'bottom') {\n var _result = {\n x: lowerX + lowerWidth / 2,\n y: y + height + verticalOffset,\n horizontalAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n if (clamp && parentViewBox) {\n _result.height = Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0);\n _result.width = lowerWidth;\n }\n return _result;\n }\n if (position === 'left') {\n var _result2 = {\n x: middleX - horizontalOffset,\n y: y + height / 2,\n horizontalAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n if (clamp && parentViewBox) {\n _result2.width = Math.max(_result2.x - parentViewBox.x, 0);\n _result2.height = height;\n }\n return _result2;\n }\n if (position === 'right') {\n var _result3 = {\n x: middleX + midHeightWidth + horizontalOffset,\n y: y + height / 2,\n horizontalAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n if (clamp && parentViewBox) {\n _result3.width = Math.max(parentViewBox.x + parentViewBox.width - _result3.x, 0);\n _result3.height = height;\n }\n return _result3;\n }\n var sizeAttrs = clamp && parentViewBox ? {\n width: midHeightWidth,\n height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: middleX + horizontalOffset,\n y: y + height / 2,\n horizontalAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: middleX + midHeightWidth - horizontalOffset,\n y: y + height / 2,\n horizontalAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: upperX + upperWidth / 2,\n y: y + verticalOffset,\n horizontalAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: lowerX + lowerWidth / 2,\n y: y + height - verticalOffset,\n horizontalAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: upperX + horizontalOffset,\n y: y + verticalOffset,\n horizontalAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: upperX + upperWidth - horizontalOffset,\n y: y + verticalOffset,\n horizontalAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: lowerX + horizontalOffset,\n y: y + height - verticalOffset,\n horizontalAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: lowerX + lowerWidth - horizontalOffset,\n y: y + height - verticalOffset,\n horizontalAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (!!position && typeof position === 'object' && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n // TODO: This is not quite right. The width of the trapezoid changes with y.\n // A percentage-based x should be relative to the width at that y.\n // For now, we use the mid-height width as a reasonable approximation.\n return _objectSpread({\n x: x + getPercentValue(position.x, midHeightWidth),\n y: y + getPercentValue(position.y, height),\n horizontalAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: centerX,\n y: y + height / 2,\n horizontalAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};","var _excluded = [\"labelRef\"],\n _excluded2 = [\"content\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from 'react';\nimport { cloneElement, createContext, createElement, isValidElement, useContext, useMemo } from 'react';\nimport { clsx } from 'clsx';\nimport { isValidTextAnchor, Text } from './Text';\nimport { isNullish, isNumber, isNumOrStr, mathSign, uniqueId } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { cartesianViewBoxToTrapezoid, useViewBox } from '../context/chartLayoutContext';\nimport { useAppSelector } from '../state/hooks';\nimport { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getCartesianPosition } from '../cartesian/getCartesianPosition';\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\nvar CartesianLabelContext = /*#__PURE__*/createContext(null);\nexport var CartesianLabelContextProvider = _ref => {\n var {\n x,\n y,\n upperWidth,\n lowerWidth,\n width,\n height,\n children\n } = _ref;\n var viewBox = useMemo(() => ({\n x,\n y,\n upperWidth,\n lowerWidth,\n width,\n height\n }), [x, y, upperWidth, lowerWidth, width, height]);\n return /*#__PURE__*/React.createElement(CartesianLabelContext.Provider, {\n value: viewBox\n }, children);\n};\nvar useCartesianLabelContext = () => {\n var labelChildContext = useContext(CartesianLabelContext);\n var chartContext = useViewBox();\n return labelChildContext || (chartContext ? cartesianViewBoxToTrapezoid(chartContext) : undefined);\n};\nvar PolarLabelContext = /*#__PURE__*/createContext(null);\nexport var PolarLabelContextProvider = _ref2 => {\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n clockWise,\n children\n } = _ref2;\n var viewBox = useMemo(() => ({\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n clockWise\n }), [cx, cy, innerRadius, outerRadius, startAngle, endAngle, clockWise]);\n return /*#__PURE__*/React.createElement(PolarLabelContext.Provider, {\n value: viewBox\n }, children);\n};\nexport var usePolarLabelContext = () => {\n var labelChildContext = useContext(PolarLabelContext);\n var chartContext = useAppSelector(selectPolarViewBox);\n return labelChildContext || chartContext;\n};\nvar getLabel = props => {\n var {\n value,\n formatter\n } = props;\n var label = isNullish(props.children) ? value : props.children;\n if (typeof formatter === 'function') {\n return formatter(label);\n }\n return label;\n};\nexport var isLabelContentAFunction = content => {\n return content != null && typeof content === 'function';\n};\nvar getDeltaAngle = (startAngle, endAngle) => {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = (labelProps, position, label, attrs, viewBox) => {\n var {\n offset,\n className\n } = labelProps;\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n clockWise\n } = viewBox;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n switch (position) {\n case 'insideStart':\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n break;\n case 'insideEnd':\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n break;\n case 'end':\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n break;\n default:\n throw new Error(\"Unsupported position \".concat(position));\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = isNullish(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: clsx('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = (viewBox, offset, position) => {\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle\n } = viewBox;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var {\n x: _x,\n y: _y\n } = polarToCartesian(cx, cy, outerRadius + offset, midAngle);\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var {\n x,\n y\n } = polarToCartesian(cx, cy, r, midAngle);\n return {\n x,\n y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar isPolar = viewBox => viewBox != null && 'cx' in viewBox && isNumber(viewBox.cx);\nexport var defaultLabelProps = {\n angle: 0,\n offset: 5,\n zIndex: DefaultZIndexes.label,\n position: 'middle',\n textBreakAll: false\n};\nfunction polarViewBoxToTrapezoid(viewBox) {\n if (!isPolar(viewBox)) {\n return viewBox;\n }\n var {\n cx,\n cy,\n outerRadius\n } = viewBox;\n var diameter = outerRadius * 2;\n return {\n x: cx - outerRadius,\n y: cy - outerRadius,\n width: diameter,\n upperWidth: diameter,\n lowerWidth: diameter,\n height: diameter\n };\n}\n\n/**\n * @consumes CartesianViewBoxContext\n * @consumes PolarViewBoxContext\n * @consumes CartesianLabelContext\n * @consumes PolarLabelContext\n */\nexport function Label(outerProps) {\n var props = resolveDefaultProps(outerProps, defaultLabelProps);\n var {\n viewBox: viewBoxFromProps,\n parentViewBox,\n position,\n value,\n children,\n content,\n className = '',\n textBreakAll,\n labelRef\n } = props;\n var polarViewBox = usePolarLabelContext();\n var cartesianViewBox = useCartesianLabelContext();\n\n /*\n * I am not proud about this solution, but it's a quick fix for https://github.com/recharts/recharts/issues/6030#issuecomment-3155352460.\n * What we should really do is split Label into two components: CartesianLabel and PolarLabel and then handle their respective viewBoxes separately.\n * Also other components should set its own viewBox in a context so that we can fix https://github.com/recharts/recharts/issues/6156\n */\n var resolvedViewBox = position === 'center' ? cartesianViewBox : polarViewBox !== null && polarViewBox !== void 0 ? polarViewBox : cartesianViewBox;\n var viewBox, label, positionAttrs;\n if (viewBoxFromProps == null) {\n viewBox = resolvedViewBox;\n } else if (isPolar(viewBoxFromProps)) {\n viewBox = viewBoxFromProps;\n } else {\n viewBox = cartesianViewBoxToTrapezoid(viewBoxFromProps);\n }\n var cartesianBox = polarViewBoxToTrapezoid(viewBox);\n if (!viewBox || isNullish(value) && isNullish(children) && ! /*#__PURE__*/isValidElement(content) && typeof content !== 'function') {\n return null;\n }\n var propsWithViewBox = _objectSpread(_objectSpread({}, props), {}, {\n viewBox\n });\n if (/*#__PURE__*/isValidElement(content)) {\n var {\n labelRef: _\n } = propsWithViewBox,\n propsWithoutLabelRef = _objectWithoutProperties(propsWithViewBox, _excluded);\n return /*#__PURE__*/cloneElement(content, propsWithoutLabelRef);\n }\n if (typeof content === 'function') {\n var {\n content: _2\n } = propsWithViewBox,\n propsForContent = _objectWithoutProperties(propsWithViewBox, _excluded2);\n // @ts-expect-error we're not checking if the content component returns something that Text is able to render\n label = /*#__PURE__*/createElement(content, propsForContent);\n if (/*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var attrs = svgPropertiesAndEvents(props);\n if (isPolar(viewBox)) {\n // TODO: Generic Polar Hook\n if (position === 'insideStart' || position === 'insideEnd' || position === 'end') {\n return renderRadialLabel(props, position, label, attrs, viewBox);\n }\n positionAttrs = getAttrsOfPolarLabel(viewBox, props.offset, props.position);\n } else {\n if (!cartesianBox) {\n return null;\n }\n var cartesianResult = getCartesianPosition({\n viewBox: cartesianBox,\n position,\n offset: props.offset,\n parentViewBox: isPolar(parentViewBox) ? undefined : parentViewBox,\n clamp: true\n });\n positionAttrs = _objectSpread(_objectSpread({\n x: cartesianResult.x,\n y: cartesianResult.y,\n textAnchor: cartesianResult.horizontalAnchor,\n verticalAnchor: cartesianResult.verticalAnchor\n }, cartesianResult.width !== undefined ? {\n width: cartesianResult.width\n } : {}), cartesianResult.height !== undefined ? {\n height: cartesianResult.height\n } : {});\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Text, _extends({\n ref: labelRef,\n className: clsx('recharts-label', className)\n }, attrs, positionAttrs, {\n /*\n * textAnchor is decided by default based on the `position`\n * but we allow overriding via props for precise control.\n */\n textAnchor: isValidTextAnchor(attrs.textAnchor) ? attrs.textAnchor : positionAttrs.textAnchor,\n breakAll: textBreakAll\n }), label));\n}\nLabel.displayName = 'Label';\nvar parseLabel = (label, viewBox, labelRef) => {\n if (!label) {\n return null;\n }\n var commonProps = {\n viewBox,\n labelRef\n };\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\"\n }, commonProps));\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\",\n value: label\n }, commonProps));\n }\n if (/*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, _objectSpread({\n key: 'label-implicit'\n }, commonProps));\n }\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\",\n content: label\n }, commonProps));\n }\n if (isLabelContentAFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\",\n content: label\n }, commonProps));\n }\n if (label && typeof label === 'object') {\n return /*#__PURE__*/React.createElement(Label, _extends({}, label, {\n key: \"label-implicit\"\n }, commonProps));\n }\n return null;\n};\nexport function CartesianLabelFromLabelProp(_ref3) {\n var {\n label,\n labelRef\n } = _ref3;\n var viewBox = useCartesianLabelContext();\n return parseLabel(label, viewBox, labelRef) || null;\n}\nexport function PolarLabelFromLabelProp(_ref4) {\n var {\n label\n } = _ref4;\n var viewBox = usePolarLabelContext();\n return parseLabel(label, viewBox) || null;\n}","var _excluded = [\"valueAccessor\"],\n _excluded2 = [\"dataKey\", \"clockWise\", \"id\", \"textBreakAll\", \"zIndex\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { createContext, useContext } from 'react';\nimport { isLabelContentAFunction, Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNullish } from '../util/DataUtils';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { isRenderableText } from './Text';\n\n/**\n * This is public API because we expose it as the valueAccessor parameter.\n *\n * The properties of \"viewBox\" are repeated as the root props of the entry object.\n * So it doesn't matter if you read entry.x or entry.viewBox.x, they are the same.\n *\n * It's not necessary to pass redundant data, but we keep it for backward compatibility.\n */\n\n/**\n * LabelList props do not allow refs because the same props are reused in multiple elements so we don't have a good single place to ref to.\n */\n\n/**\n * This is the type accepted for the `label` prop on various graphical items.\n * It accepts:\n *\n * boolean:\n * true = labels show,\n * false = labels don't show\n * React element:\n * will be cloned with extra props\n * function:\n * is used as <Label content={function} />, so this will be called once for each individual label (so typically once for each data point)\n * object:\n * the props to be passed to a LabelList component\n *\n * @inline\n */\n\nvar defaultAccessor = entry => {\n var val = Array.isArray(entry.value) ? entry.value[entry.value.length - 1] : entry.value;\n if (isRenderableText(val)) {\n return val;\n }\n return undefined;\n};\nvar CartesianLabelListContext = /*#__PURE__*/createContext(undefined);\nexport var CartesianLabelListContextProvider = CartesianLabelListContext.Provider;\nvar PolarLabelListContext = /*#__PURE__*/createContext(undefined);\nexport var PolarLabelListContextProvider = PolarLabelListContext.Provider;\nfunction useCartesianLabelListContext() {\n return useContext(CartesianLabelListContext);\n}\nfunction usePolarLabelListContext() {\n return useContext(PolarLabelListContext);\n}\n\n/**\n * @consumes LabelListContext\n */\nexport function LabelList(_ref) {\n var {\n valueAccessor = defaultAccessor\n } = _ref,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var {\n dataKey,\n clockWise,\n id,\n textBreakAll,\n zIndex\n } = restProps,\n others = _objectWithoutProperties(restProps, _excluded2);\n var cartesianData = useCartesianLabelListContext();\n var polarData = usePolarLabelListContext();\n var data = cartesianData || polarData;\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: zIndex !== null && zIndex !== void 0 ? zIndex : DefaultZIndexes.label\n }, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map((entry, index) => {\n var _restProps$fill;\n var value = isNullish(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry.payload, dataKey);\n var idProps = isNullish(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-\".concat(index)\n }, svgPropertiesAndEvents(entry), others, idProps, {\n /*\n * Prefer to use the explicit fill from LabelList props.\n * Only in an absence of that, fall back to the fill of the entry.\n * The entry fill can be quite difficult to see especially in Bar, Pie, RadialBar in inside positions.\n * On the other hand it's quite convenient in Scatter, Line, or when the position is outside the Bar, Pie filled shapes.\n */\n fill: (_restProps$fill = restProps.fill) !== null && _restProps$fill !== void 0 ? _restProps$fill : entry.fill,\n parentViewBox: entry.parentViewBox,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: entry.viewBox,\n index: index\n /*\n * Here we don't want to use the default Label zIndex,\n * we want it to inherit the zIndex of the LabelList itself\n * which means just rendering as a regular child, without portaling anywhere.\n */,\n zIndex: 0\n }));\n })));\n}\nLabelList.displayName = 'LabelList';\nexport function LabelListFromLabelProp(_ref2) {\n var {\n label\n } = _ref2;\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\"\n });\n }\n if (/*#__PURE__*/React.isValidElement(label) || isLabelContentAFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n content: label\n });\n }\n if (typeof label === 'object') {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n key: \"labelList-implicit\"\n }, label, {\n type: String(label.type)\n }));\n }\n return null;\n}","import { createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nvar initialState = {\n radiusAxis: {},\n angleAxis: {}\n};\nvar polarAxisSlice = createSlice({\n name: 'polarAxis',\n initialState,\n reducers: {\n addRadiusAxis(state, action) {\n state.radiusAxis[action.payload.id] = castDraft(action.payload);\n },\n removeRadiusAxis(state, action) {\n delete state.radiusAxis[action.payload.id];\n },\n addAngleAxis(state, action) {\n state.angleAxis[action.payload.id] = castDraft(action.payload);\n },\n removeAngleAxis(state, action) {\n delete state.angleAxis[action.payload.id];\n }\n }\n});\nexport var {\n addRadiusAxis,\n removeRadiusAxis,\n addAngleAxis,\n removeAngleAxis\n} = polarAxisSlice.actions;\nexport var polarAxisReducer = polarAxisSlice.reducer;","export function getClassNameFromUnknown(u) {\n if (u && typeof u === 'object' && 'className' in u && typeof u.className === 'string') {\n return u.className;\n }\n return '';\n}","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","/** @license React v17.0.2\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import get from 'es-toolkit/compat/get';\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNullish } from './DataUtils';\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\n\n/**\n * @deprecated instead find another approach that does not depend on displayName.\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = Comp => {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\n\n/**\n * @deprecated instead find another approach that does not require reading React Elements from DOM.\n *\n * @param children do not use\n * @return deprecated do not use\n */\nexport var toArray = children => {\n if (children === lastChildren && Array.isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, child => {\n if (isNullish(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n // @ts-expect-error this could still be Iterable<ReactNode> and TS does not like that\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/**\n * @deprecated instead find another approach that does not require reading React Elements from DOM.\n *\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n *\n * @param children do not use\n * @param type do not use\n * @return deprecated do not use\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (Array.isArray(type)) {\n types = type.map(t => getDisplayName(t));\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(child => {\n // @ts-expect-error toArray and lodash.get are not compatible. Let's get rid of the whole findAllByType function\n var childType = get(child, 'type.displayName') || get(child, 'type.name');\n if (childType && types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\nexport var isClipDot = dot => {\n if (dot && typeof dot === 'object' && 'clipDot' in dot) {\n return Boolean(dot.clipDot);\n }\n return true;\n};","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isPlainObject(object) {\n if (typeof object !== 'object') {\n return false;\n }\n if (object == null) {\n return false;\n }\n if (Object.getPrototypeOf(object) === null) {\n return true;\n }\n if (Object.prototype.toString.call(object) !== '[object Object]') {\n const tag = object[Symbol.toStringTag];\n if (tag == null) {\n return false;\n }\n const isTagReadonly = !Object.getOwnPropertyDescriptor(object, Symbol.toStringTag)?.writable;\n if (isTagReadonly) {\n return false;\n }\n return object.toString() === `[object ${tag}]`;\n }\n let proto = object;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(object) === proto;\n}\n\nexports.isPlainObject = isPlainObject;\n","module.exports = require('../dist/compat/predicate/isPlainObject.js').isPlainObject;\n","var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }\n/**\n * @fileOverview Rectangle\n */\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { interpolate } from '../util/DataUtils';\nimport { getTransitionVal } from '../animation/util';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { roundTemplateLiteral } from '../util/round';\nvar getTrapezoidPath = (x, y, upperWidth, lowerWidth, height) => {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = roundTemplateLiteral(_templateObject || (_templateObject = _taggedTemplateLiteral([\"M \", \",\", \"\"])), x, y);\n path += roundTemplateLiteral(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + upperWidth, y);\n path += roundTemplateLiteral(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + upperWidth - widthGap / 2, y + height);\n path += roundTemplateLiteral(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + upperWidth - widthGap / 2 - lowerWidth, y + height);\n path += roundTemplateLiteral(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"L \", \",\", \" Z\"])), x, y);\n return path;\n};\nexport var defaultTrapezoidProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Trapezoid = outsideProps => {\n var trapezoidProps = resolveDefaultProps(outsideProps, defaultTrapezoidProps);\n var {\n x,\n y,\n upperWidth,\n lowerWidth,\n height,\n className\n } = trapezoidProps;\n var {\n animationEasing,\n animationDuration,\n animationBegin,\n isUpdateAnimationActive\n } = trapezoidProps;\n var pathRef = useRef(null);\n var [totalLength, setTotalLength] = useState(-1);\n var prevUpperWidthRef = useRef(upperWidth);\n var prevLowerWidthRef = useRef(lowerWidth);\n var prevHeightRef = useRef(height);\n var prevXRef = useRef(x);\n var prevYRef = useRef(y);\n var animationId = useAnimationId(outsideProps, 'trapezoid-');\n useEffect(() => {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (_unused) {\n // calculate total length error\n }\n }\n }, []);\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-trapezoid', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(trapezoidProps), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n var prevUpperWidth = prevUpperWidthRef.current;\n var prevLowerWidth = prevLowerWidthRef.current;\n var prevHeight = prevHeightRef.current;\n var prevX = prevXRef.current;\n var prevY = prevYRef.current;\n var from = \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\");\n var to = \"\".concat(totalLength, \"px \").concat(totalLength, \"px\");\n var transition = getTransitionVal(['strokeDasharray'], animationDuration, animationEasing);\n return /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n key: animationId,\n canBegin: totalLength > 0,\n duration: animationDuration,\n easing: animationEasing,\n isActive: isUpdateAnimationActive,\n begin: animationBegin\n }, t => {\n var currUpperWidth = interpolate(prevUpperWidth, upperWidth, t);\n var currLowerWidth = interpolate(prevLowerWidth, lowerWidth, t);\n var currHeight = interpolate(prevHeight, height, t);\n var currX = interpolate(prevX, x, t);\n var currY = interpolate(prevY, y, t);\n if (pathRef.current) {\n prevUpperWidthRef.current = currUpperWidth;\n prevLowerWidthRef.current = currLowerWidth;\n prevHeightRef.current = currHeight;\n prevXRef.current = currX;\n prevYRef.current = currY;\n }\n var animationStyle = t > 0 ? {\n transition,\n strokeDasharray: to\n } : {\n strokeDasharray: from\n };\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(trapezoidProps), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: pathRef,\n style: _objectSpread(_objectSpread({}, animationStyle), trapezoidProps.style)\n }));\n });\n};","var _excluded = [\"option\", \"shapeType\", \"activeClassName\", \"inActiveClassName\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from 'react';\nimport isPlainObject from 'es-toolkit/compat/isPlainObject';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols } from '../shape/Symbols';\nimport { Curve } from '../shape/Curve';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * <Shape /> is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a React element\n *\n * <ShapeSelector /> is a subcomponent of <Shape /> and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\n\nfunction defaultPropTransformer(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nfunction isSymbolsProps(shapeType, _elementProps) {\n return shapeType === 'symbols';\n}\nfunction ShapeSelector(_ref) {\n var {\n shapeType,\n elementProps\n } = _ref;\n switch (shapeType) {\n case 'rectangle':\n return /*#__PURE__*/React.createElement(Rectangle, elementProps);\n case 'trapezoid':\n return /*#__PURE__*/React.createElement(Trapezoid, elementProps);\n case 'sector':\n return /*#__PURE__*/React.createElement(Sector, elementProps);\n case 'symbols':\n if (isSymbolsProps(shapeType, elementProps)) {\n return /*#__PURE__*/React.createElement(Symbols, elementProps);\n }\n break;\n case 'curve':\n return /*#__PURE__*/React.createElement(Curve, elementProps);\n default:\n return null;\n }\n}\nexport function getPropsFromShapeOption(option) {\n if (/*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nexport function Shape(_ref2) {\n var {\n option,\n shapeType,\n activeClassName = 'recharts-active-shape',\n inActiveClassName = 'recharts-shape'\n } = _ref2,\n props = _objectWithoutProperties(_ref2, _excluded);\n var shape;\n if (/*#__PURE__*/isValidElement(option)) {\n // @ts-expect-error we can't know the type of cloned element props\n shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));\n } else if (typeof option === 'function') {\n shape = option(props, props.index);\n } else if (isPlainObject(option) && typeof option !== 'boolean') {\n var nextProps = defaultPropTransformer(option, props);\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: nextProps\n });\n } else {\n var elementProps = props;\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: elementProps\n });\n }\n if (props.isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: inActiveClassName\n }, shape);\n}","import { useAppDispatch } from '../state/hooks';\nimport { mouseLeaveItem, setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';\n\n/**\n * Some graphical items choose to provide more information to the tooltip\n * and some do not.\n */\n\nexport var useMouseEnterItemDispatch = (onMouseEnterFromProps, dataKey, graphicalItemId) => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseEnterFromProps === null || onMouseEnterFromProps === void 0 || onMouseEnterFromProps(data, index, event);\n dispatch(setActiveMouseOverItemIndex({\n activeIndex: String(index),\n activeDataKey: dataKey,\n activeCoordinate: data.tooltipPosition,\n activeGraphicalItemId: graphicalItemId\n }));\n };\n};\nexport var useMouseLeaveItemDispatch = onMouseLeaveFromProps => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseLeaveFromProps === null || onMouseLeaveFromProps === void 0 || onMouseLeaveFromProps(data, index, event);\n dispatch(mouseLeaveItem());\n };\n};\nexport var useMouseClickItemDispatch = (onMouseClickFromProps, dataKey, graphicalItemId) => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseClickFromProps === null || onMouseClickFromProps === void 0 || onMouseClickFromProps(data, index, event);\n dispatch(setActiveClickItemIndex({\n activeIndex: String(index),\n activeDataKey: dataKey,\n activeCoordinate: data.tooltipPosition,\n activeGraphicalItemId: graphicalItemId\n }));\n };\n};","import { useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { addTooltipEntrySettings, removeTooltipEntrySettings, replaceTooltipEntrySettings } from './tooltipSlice';\nimport { useIsPanorama } from '../context/PanoramaContext';\nexport function SetTooltipEntrySettings(_ref) {\n var {\n tooltipEntrySettings\n } = _ref;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n var prevSettingsRef = useRef(null);\n useLayoutEffect(() => {\n if (isPanorama) {\n // Panorama graphical items should never contribute to Tooltip payload.\n return;\n }\n if (prevSettingsRef.current === null) {\n dispatch(addTooltipEntrySettings(tooltipEntrySettings));\n } else if (prevSettingsRef.current !== tooltipEntrySettings) {\n dispatch(replaceTooltipEntrySettings({\n prev: prevSettingsRef.current,\n next: tooltipEntrySettings\n }));\n }\n prevSettingsRef.current = tooltipEntrySettings;\n }, [tooltipEntrySettings, dispatch, isPanorama]);\n useLayoutEffect(() => {\n return () => {\n if (prevSettingsRef.current) {\n dispatch(removeTooltipEntrySettings(prevSettingsRef.current));\n prevSettingsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}","import { useLayoutEffect, useRef } from 'react';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectChartLayout } from '../context/chartLayoutContext';\nimport { useAppDispatch, useAppSelector } from './hooks';\nimport { addLegendPayload, replaceLegendPayload, removeLegendPayload } from './legendSlice';\nexport function SetLegendPayload(_ref) {\n var {\n legendPayload\n } = _ref;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n var prevPayloadRef = useRef(null);\n useLayoutEffect(() => {\n if (isPanorama) {\n return;\n }\n if (prevPayloadRef.current === null) {\n dispatch(addLegendPayload(legendPayload));\n } else if (prevPayloadRef.current !== legendPayload) {\n dispatch(replaceLegendPayload({\n prev: prevPayloadRef.current,\n next: legendPayload\n }));\n }\n prevPayloadRef.current = legendPayload;\n }, [dispatch, isPanorama, legendPayload]);\n useLayoutEffect(() => {\n return () => {\n if (prevPayloadRef.current) {\n dispatch(removeLegendPayload(prevPayloadRef.current));\n prevPayloadRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}\nexport function SetPolarLegendPayload(_ref2) {\n var {\n legendPayload\n } = _ref2;\n var dispatch = useAppDispatch();\n var layout = useAppSelector(selectChartLayout);\n var prevPayloadRef = useRef(null);\n useLayoutEffect(() => {\n if (layout !== 'centric' && layout !== 'radial') {\n return;\n }\n if (prevPayloadRef.current === null) {\n dispatch(addLegendPayload(legendPayload));\n } else if (prevPayloadRef.current !== legendPayload) {\n dispatch(replaceLegendPayload({\n prev: prevPayloadRef.current,\n next: legendPayload\n }));\n }\n prevPayloadRef.current = legendPayload;\n }, [dispatch, layout, legendPayload]);\n useLayoutEffect(() => {\n return () => {\n if (prevPayloadRef.current) {\n dispatch(removeLegendPayload(prevPayloadRef.current));\n prevPayloadRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}","var _ref;\nimport * as React from 'react';\nimport { uniqueId } from './DataUtils';\n\n/**\n * Fallback for React.useId() for versions prior to React 18.\n * Generates a unique ID using a simple counter and a prefix.\n *\n * @returns A unique ID that remains consistent across renders.\n */\nexport var useIdFallback = () => {\n var [id] = React.useState(() => uniqueId('uid-'));\n return id;\n};\n\n/*\n * This weird syntax is used to avoid a build-time error in React 17 and earlier when building with Webpack.\n * See https://github.com/webpack/webpack/issues/14814\n */\nexport var useId = (_ref = React['useId'.toString()]) !== null && _ref !== void 0 ? _ref : useIdFallback;","import { useId } from './useId';\n\n/**\n * A hook that generates a unique ID. It uses React.useId() in React 18+ for SSR safety\n * and falls back to a client-side-only unique ID generator for older versions.\n *\n * The ID will stay the same across renders, and you can optionally provide a prefix.\n *\n * @param [prefix] - An optional prefix for the generated ID.\n * @param [customId] - An optional custom ID to override the generated one.\n * @returns The unique ID.\n */\nexport function useUniqueId(prefix, customId) {\n /*\n * We have to call this hook here even if we don't use the result because\n * rules of hooks demand that hooks are never called conditionally.\n */\n var generatedId = useId();\n\n // If a custom ID is provided, it always takes precedence.\n if (customId) {\n return customId;\n }\n\n // Apply the prefix if one was provided.\n return prefix ? \"\".concat(prefix, \"-\").concat(generatedId) : generatedId;\n}\n\n/**\n * The useUniqueId hook returns a unique ID that is either reused from external props or generated internally.\n * Either way the ID is now guaranteed to be present so no more nulls or undefined.\n */","import * as React from 'react';\nimport { createContext, useContext } from 'react';\nimport { useUniqueId } from '../util/useUniqueId';\nvar GraphicalItemIdContext = /*#__PURE__*/createContext(undefined);\nexport var RegisterGraphicalItemId = _ref => {\n var {\n id,\n type,\n children\n } = _ref;\n var resolvedId = useUniqueId(\"recharts-\".concat(type), id);\n return /*#__PURE__*/React.createElement(GraphicalItemIdContext.Provider, {\n value: resolvedId\n }, children(resolvedId));\n};\nexport function useGraphicalItemId() {\n return useContext(GraphicalItemIdContext);\n}","import { createSlice, current, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\n/**\n * Unique ID of the graphical item.\n * This is used to identify the graphical item in the state and in the React tree.\n * This is required for every graphical item - it's either provided by the user or generated automatically.\n */\n\nvar initialState = {\n cartesianItems: [],\n polarItems: []\n};\nvar graphicalItemsSlice = createSlice({\n name: 'graphicalItems',\n initialState,\n reducers: {\n addCartesianGraphicalItem: {\n reducer(state, action) {\n state.cartesianItems.push(castDraft(action.payload));\n },\n prepare: prepareAutoBatched()\n },\n replaceCartesianGraphicalItem: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n var index = current(state).cartesianItems.indexOf(castDraft(prev));\n if (index > -1) {\n state.cartesianItems[index] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n },\n removeCartesianGraphicalItem: {\n reducer(state, action) {\n var index = current(state).cartesianItems.indexOf(castDraft(action.payload));\n if (index > -1) {\n state.cartesianItems.splice(index, 1);\n }\n },\n prepare: prepareAutoBatched()\n },\n addPolarGraphicalItem: {\n reducer(state, action) {\n state.polarItems.push(castDraft(action.payload));\n },\n prepare: prepareAutoBatched()\n },\n removePolarGraphicalItem: {\n reducer(state, action) {\n var index = current(state).polarItems.indexOf(castDraft(action.payload));\n if (index > -1) {\n state.polarItems.splice(index, 1);\n }\n },\n prepare: prepareAutoBatched()\n },\n replacePolarGraphicalItem: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n var index = current(state).polarItems.indexOf(castDraft(prev));\n if (index > -1) {\n state.polarItems[index] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n }\n }\n});\nexport var {\n addCartesianGraphicalItem,\n replaceCartesianGraphicalItem,\n removeCartesianGraphicalItem,\n addPolarGraphicalItem,\n removePolarGraphicalItem,\n replacePolarGraphicalItem\n} = graphicalItemsSlice.actions;\nexport var graphicalItemsReducer = graphicalItemsSlice.reducer;","import { memo, useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { addCartesianGraphicalItem, addPolarGraphicalItem, removeCartesianGraphicalItem, removePolarGraphicalItem, replaceCartesianGraphicalItem, replacePolarGraphicalItem } from './graphicalItemsSlice';\nvar SetCartesianGraphicalItemImpl = props => {\n var dispatch = useAppDispatch();\n var prevPropsRef = useRef(null);\n useLayoutEffect(() => {\n if (prevPropsRef.current === null) {\n dispatch(addCartesianGraphicalItem(props));\n } else if (prevPropsRef.current !== props) {\n dispatch(replaceCartesianGraphicalItem({\n prev: prevPropsRef.current,\n next: props\n }));\n }\n prevPropsRef.current = props;\n }, [dispatch, props]);\n useLayoutEffect(() => {\n return () => {\n if (prevPropsRef.current) {\n dispatch(removeCartesianGraphicalItem(prevPropsRef.current));\n /*\n * Here we have to reset the ref to null because in StrictMode, the effect will run twice,\n * but it will keep the same ref value from the first render.\n *\n * In browser, React will clear the ref after the first effect cleanup,\n * so that wouldn't be an issue.\n *\n * In StrictMode, however, the ref is kept,\n * and in the hook above the code checks for `prevPropsRef.current === null`\n * which would be false so it would not dispatch the `addCartesianGraphicalItem` action again.\n *\n * https://github.com/recharts/recharts/issues/6022\n */\n prevPropsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n};\nexport var SetCartesianGraphicalItem = /*#__PURE__*/memo(SetCartesianGraphicalItemImpl);\nvar SetPolarGraphicalItemImpl = props => {\n var dispatch = useAppDispatch();\n var prevPropsRef = useRef(null);\n useLayoutEffect(() => {\n if (prevPropsRef.current === null) {\n dispatch(addPolarGraphicalItem(props));\n } else if (prevPropsRef.current !== props) {\n dispatch(replacePolarGraphicalItem({\n prev: prevPropsRef.current,\n next: props\n }));\n }\n prevPropsRef.current = props;\n }, [dispatch, props]);\n useLayoutEffect(() => {\n return () => {\n if (prevPropsRef.current) {\n dispatch(removePolarGraphicalItem(prevPropsRef.current));\n prevPropsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n};\nexport var SetPolarGraphicalItem = /*#__PURE__*/memo(SetPolarGraphicalItemImpl);","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { createSlice, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\n/**\n * @inline\n */\n\nexport var defaultAxisId = 0;\n\n/**\n * Properties shared in X, Y, and Z axes.\n * User defined axis settings, coming from props.\n */\n\n/**\n * Controls how Recharts calculates \"nice\" tick values for numerical axes.\n *\n * - `'none'`: Recharts does not apply any tick-rounding algorithm; tick positions are\n * determined entirely by d3, evenly spaced but not rounded to human-friendly numbers.\n * There is no domain-extension logic applied in this mode.\n *\n * - `'auto'` *(default)*: Recharts automatically decides whether and how to apply tick\n * niceties based on the domain definition. When the domain contains an `'auto'` keyword,\n * Recharts uses the `'adaptive'` algorithm and may extend the domain slightly to\n * produce clean tick labels. Otherwise, it applies the same algorithm while keeping\n * ticks within the fixed domain. This mirrors the default behavior from Recharts v2.\n *\n * - `'adaptive'`: Always applies the space-efficient algorithm (`getAdaptiveStep`),\n * which fills the available range as densely as possible while still rounding steps\n * to reasonable numbers (e.g. 10, 20, 25). May produce less \"round-looking\" labels\n * than `'snap125'`, but wastes less space. The domain-extension logic still applies\n * when the domain contains an `'auto'` keyword.\n *\n * - `'snap125'`: Always applies the round-numbers algorithm (`getSnap125Step`), which\n * snaps step sizes to values from the set {1, 2, 2.5, 5} × 10ⁿ. Produces very\n * human-friendly labels (e.g. 0, 5, 10, 15, 20) but may leave blank space at the\n * edges of the chart. The domain-extension logic still applies when the domain\n * contains an `'auto'` keyword.\n *\n * @see {@link https://recharts.github.io/guide/axisTicks/}\n * @inline\n */\n\n/**\n * These are the external props, visible for users as they set them using our public API.\n * There is all sorts of internal computed things based on these, but they will come through selectors.\n *\n * Properties shared between X and Y axes\n */\n\n/**\n * Z axis is special because it's never displayed. It controls the size of Scatter dots,\n * but it never displays ticks anywhere.\n */\n\nvar initialState = {\n xAxis: {},\n yAxis: {},\n zAxis: {}\n};\n\n/**\n * This is the slice where each individual Axis element pushes its own configuration.\n * Prefer to use this one instead of axisSlice.\n */\nvar cartesianAxisSlice = createSlice({\n name: 'cartesianAxis',\n initialState,\n reducers: {\n addXAxis: {\n reducer(state, action) {\n state.xAxis[action.payload.id] = castDraft(action.payload);\n },\n prepare: prepareAutoBatched()\n },\n replaceXAxis: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n if (state.xAxis[prev.id] !== undefined) {\n if (prev.id !== next.id) {\n delete state.xAxis[prev.id];\n }\n state.xAxis[next.id] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n },\n removeXAxis: {\n reducer(state, action) {\n delete state.xAxis[action.payload.id];\n },\n prepare: prepareAutoBatched()\n },\n addYAxis: {\n reducer(state, action) {\n state.yAxis[action.payload.id] = castDraft(action.payload);\n },\n prepare: prepareAutoBatched()\n },\n replaceYAxis: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n if (state.yAxis[prev.id] !== undefined) {\n if (prev.id !== next.id) {\n delete state.yAxis[prev.id];\n }\n state.yAxis[next.id] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n },\n removeYAxis: {\n reducer(state, action) {\n delete state.yAxis[action.payload.id];\n },\n prepare: prepareAutoBatched()\n },\n addZAxis: {\n reducer(state, action) {\n state.zAxis[action.payload.id] = castDraft(action.payload);\n },\n prepare: prepareAutoBatched()\n },\n replaceZAxis: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n if (state.zAxis[prev.id] !== undefined) {\n if (prev.id !== next.id) {\n delete state.zAxis[prev.id];\n }\n state.zAxis[next.id] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n },\n removeZAxis: {\n reducer(state, action) {\n delete state.zAxis[action.payload.id];\n },\n prepare: prepareAutoBatched()\n },\n updateYAxisWidth(state, action) {\n var {\n id,\n width\n } = action.payload;\n var axis = state.yAxis[id];\n if (axis) {\n var _history$;\n var history = axis.widthHistory || [];\n // An oscillation is detected when the new width is the same as the width before the last one.\n // This is a simple A -> B -> A pattern. If the next width is B, and the difference is less than 1 pixel, we ignore it.\n if (history.length === 3 && history[0] === history[2] && width === history[1] && width !== axis.width && Math.abs(width - ((_history$ = history[0]) !== null && _history$ !== void 0 ? _history$ : 0)) <= 1) {\n return;\n }\n var newHistory = [...history, width].slice(-3);\n state.yAxis[id] = _objectSpread(_objectSpread({}, axis), {}, {\n width,\n widthHistory: newHistory\n });\n }\n }\n }\n});\nexport var {\n addXAxis,\n replaceXAxis,\n removeXAxis,\n addYAxis,\n replaceYAxis,\n removeYAxis,\n addZAxis,\n replaceZAxis,\n removeZAxis,\n updateYAxisWidth\n} = cartesianAxisSlice.actions;\nexport var cartesianAxisReducer = cartesianAxisSlice.reducer;","import { createSelector } from 'reselect';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nexport var selectChartOffset = createSelector([selectChartOffsetInternal], offsetInternal => {\n return {\n top: offsetInternal.top,\n bottom: offsetInternal.bottom,\n left: offsetInternal.left,\n right: offsetInternal.right\n };\n});","import { createSelector } from 'reselect';\nimport { selectChartOffset } from './selectChartOffset';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nexport var selectPlotArea = createSelector([selectChartOffset, selectChartWidth, selectChartHeight], (offset, chartWidth, chartHeight) => {\n if (!offset || chartWidth == null || chartHeight == null) {\n return undefined;\n }\n return {\n x: offset.left,\n y: offset.top,\n width: Math.max(0, chartWidth - offset.left - offset.right),\n height: Math.max(0, chartHeight - offset.top - offset.bottom)\n };\n});","import { defaultAxisId } from './state/cartesianAxisSlice';\nimport { selectAxisDomain, selectAxisInverseScale, selectAxisInverseDataSnapScale, selectAxisInverseTickSnapScale, selectAxisScale, selectAxisWithScale, selectRenderedTicksOfAxis } from './state/selectors/axisSelectors';\nimport { useAppSelector } from './state/hooks';\nimport { useIsPanorama } from './context/PanoramaContext';\nimport { selectActiveLabel, selectActiveTooltipCoordinate, selectActiveTooltipDataPoints, selectIsTooltipActive } from './state/selectors/tooltipSelectors';\nimport { selectChartOffset } from './state/selectors/selectChartOffset';\nimport { selectPlotArea } from './state/selectors/selectPlotArea';\nexport var useXAxis = xAxisId => {\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama));\n};\nexport var useYAxis = yAxisId => {\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * A function that converts data values to pixel coordinates.\n * @param value - The data value to convert (number, string, or category).\n * @param options - Optional configuration for banded scales.\n * @param options.position - Position within a band: 'start', 'middle', or 'end'.\n * @returns The pixel coordinate, or `undefined` if the value is not in the domain.\n */\n\n/**\n * A function that converts pixel coordinates back to data values.\n * @param pixelValue - The pixel coordinate to convert.\n * @returns The closest data value in the domain.\n */\n\n/**\n * Returns a function to convert data values to pixel coordinates for an {@link XAxis}.\n *\n * This is useful for positioning annotations, custom shapes, or other elements\n * at specific data points on the chart.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const xScale = useXAxisScale();\n * if (xScale) {\n * const pixelX = xScale('Page A'); // Returns the pixel x-coordinate for 'Page A'\n * }\n * ```\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns A scale function that maps data values to pixel coordinates, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisScale = function useXAxisScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n var scale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));\n return scale === null || scale === void 0 ? void 0 : scale.map;\n};\n\n/**\n * Returns a function to convert data values to pixel coordinates for a {@link YAxis}.\n *\n * This is useful for positioning annotations, custom shapes, or other elements\n * at specific data points on the chart.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const yScale = useYAxisScale();\n * if (yScale) {\n * const pixelY = yScale(1500); // Returns the pixel y-coordinate for value 1500\n * }\n * ```\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns A scale function that maps data values to pixel coordinates, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisScale = function useYAxisScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n var scale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));\n return scale === null || scale === void 0 ? void 0 : scale.map;\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for an {@link XAxis}.\n *\n * This is useful for implementing interactions like click-to-add-annotation,\n * drag interactions, or tooltips that need to determine what data point\n * corresponds to a mouse position.\n *\n * For continuous (numerical) scales, returns an interpolated value.\n * For categorical scales, returns the closest category in the domain - which is the same behaviour as {@link useXAxisInverseDataSnapScale}.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const xInverseScale = useXAxisInverseScale();\n * if (xInverseScale) {\n * const dataValue = xInverseScale(150); // Returns the data value at pixel x=150\n * }\n * ```\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to data values, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisInverseScale = function useXAxisInverseScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseScale(state, 'xAxis', xAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for an {@link XAxis},\n * but snapping to the closest data point.\n *\n * This is similar to {@link useXAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest data point.\n *\n * This is useful for implementing interactions where you want to select the closest data point\n * rather than an exact value or a tick.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest data value, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisInverseDataSnapScale = function useXAxisInverseDataSnapScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseDataSnapScale(state, 'xAxis', xAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for an {@link XAxis},\n * but snapping to the closest axis tick.\n *\n * This is similar to {@link useXAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest tick.\n *\n * This is useful for implementing interactions where you want to select the closest tick\n * rather than an exact value or a data point.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest tick value, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisInverseTickSnapScale = function useXAxisInverseTickSnapScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectAxisInverseTickSnapScale(state, 'xAxis', xAxisId));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for a {@link YAxis}.\n *\n * This is useful for implementing interactions like click-to-add-annotation,\n * drag interactions, or tooltips that need to determine what data point\n * corresponds to a mouse position.\n *\n * For continuous (numerical) scales, returns an interpolated value.\n * For categorical scales, returns the closest category in the domain - which is the same behaviour as {@link useYAxisInverseDataSnapScale}.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const yInverseScale = useYAxisInverseScale();\n * if (yInverseScale) {\n * const dataValue = yInverseScale(200); // Returns the data value at pixel y=200\n * }\n * ```\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to data values, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisInverseScale = function useYAxisInverseScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseScale(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for a {@link YAxis},\n * but snapping to the closest data point.\n *\n * This is similar to {@link useYAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest data point.\n *\n * This is useful for implementing interactions where you want to select the closest data point\n * rather than an exact value or a tick.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest data value, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisInverseDataSnapScale = function useYAxisInverseDataSnapScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseDataSnapScale(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for a {@link YAxis},\n * but snapping to the closest axis tick.\n *\n * This is similar to {@link useYAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest tick.\n *\n * This is useful for implementing interactions where you want to select the closest tick\n * rather than an exact value or a data point.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest tick value, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisInverseTickSnapScale = function useYAxisInverseTickSnapScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectAxisInverseTickSnapScale(state, 'yAxis', yAxisId));\n};\n\n/**\n * Returns the ticks of an {@link XAxis}.\n *\n * This hook is useful for accessing the calculated ticks of an XAxis.\n * The ticks are the same as the ones rendered by the XAxis component.\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An array of ticks, or `undefined` if the axis doesn't exist or hasn't been calculated yet.\n * @since 3.8\n */\nexport var useXAxisTicks = function useXAxisTicks() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectRenderedTicksOfAxis(state, 'xAxis', xAxisId));\n};\n\n/**\n * Returns the ticks of a {@link YAxis}.\n *\n * This hook is useful for accessing the calculated ticks of a YAxis.\n * The ticks are the same as the ones rendered by the YAxis component.\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An array of ticks, or `undefined` if the axis doesn't exist or hasn't been calculated yet.\n * @since 3.8\n */\nexport var useYAxisTicks = function useYAxisTicks() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectRenderedTicksOfAxis(state, 'yAxis', yAxisId));\n};\n\n/**\n * Data point with x and y values that can be converted to pixel coordinates.\n * The x and y values should be in the same format as your chart data.\n */\n\n/**\n * Converts a data point (in data coordinates) to pixel coordinates.\n *\n * This hook is useful for positioning annotations, custom shapes, or other elements\n * at specific data points on the chart. It uses the axis scales to convert\n * data values to their corresponding pixel positions within the chart area.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist, or if the data point\n * cannot be converted (e.g., if the data values are outside the axis domains).\n *\n * This is a convenience hook that combines {@link useXAxisScale} and {@link useYAxisScale} together in a single call.\n *\n * @example\n * ```tsx\n * // Position a marker at data point { x: 'Page C', y: 2500 }\n * const pixelCoords = useCartesianScale({ x: 'Page C', y: 2500 });\n * if (pixelCoords) {\n * return <circle cx={pixelCoords.x} cy={pixelCoords.y} r={5} fill=\"red\" />;\n * }\n * ```\n *\n * @param dataPoint The data point with x and y values in data coordinates.\n * @param xAxisId The `xAxisId` of the X-axis. Defaults to `0` if not provided.\n * @param yAxisId The `yAxisId` of the Y-axis. Defaults to `0` if not provided.\n * @returns The pixel x,y coordinates, or `undefined` if conversion is not possible.\n * @since 3.8\n */\nexport var useCartesianScale = function useCartesianScale(dataPoint) {\n var xAxisId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultAxisId;\n var yAxisId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultAxisId;\n var xScale = useXAxisScale(xAxisId);\n var yScale = useYAxisScale(yAxisId);\n if (xScale == null || yScale == null) {\n return undefined;\n }\n var pixelX = xScale(dataPoint.x);\n var pixelY = yScale(dataPoint.y);\n if (pixelX == null || pixelY == null) {\n return undefined;\n }\n return {\n x: pixelX,\n y: pixelY\n };\n};\n\n/**\n * Returns the active tooltip label. The label is one of the values from the chart data,\n * and is used to display in the tooltip content.\n *\n * Returns undefined if there is no active user interaction or if used outside a chart context\n *\n * @returns ActiveLabel\n * @since 3.0\n */\nexport var useActiveTooltipLabel = () => {\n return useAppSelector(selectActiveLabel);\n};\n\n/**\n * Returns the offset of the chart in pixels.\n *\n * Offset defines the blank space between the chart and the plot area.\n * This blank space is occupied by supporting elements like axes, legends, and brushes.\n *\n * The offset includes:\n *\n * - Margins\n * - Width and height of the axes\n * - Width and height of the legend\n * - Brush height\n *\n * If you are interested in the margin alone, use {@link useMargin} instead.\n *\n * The offset is independent of charts position on the page, meaning it does not change as the chart is scrolled or resized.\n *\n * It is also independent of the scale and zoom, meaning that as the user zooms in and out,\n * the numbers will not change as the chart gets visually larger or smaller.\n *\n * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).\n * This hook returns `undefined` if used outside a chart context.\n *\n * @returns Offset of the chart in pixels, or undefined if used outside a chart context.\n * @since 3.1\n */\nexport var useOffset = () => {\n return useAppSelector(selectChartOffset);\n};\n\n/**\n * Plot area is the area where the actual chart data is rendered.\n * This means: bars, lines, scatter points, etc.\n *\n * The plot area is calculated based on the chart dimensions and the offset.\n *\n * Plot area `width` and `height` are the dimensions in pixels;\n * `x` and `y` are the coordinates of the top-left corner of the plot area relative to the chart container.\n *\n * They are also independent of the scale and zoom, meaning that as the user zooms in and out,\n * the plot area dimensions will not change as the chart gets visually larger or smaller.\n *\n * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).\n * This hook returns `undefined` if used outside a chart context.\n *\n * @returns Plot area of the chart in pixels, or undefined if used outside a chart context.\n * @since 3.1\n */\nexport var usePlotArea = () => {\n return useAppSelector(selectPlotArea);\n};\n\n/**\n * Returns the currently active data points being displayed in the Tooltip.\n * Active means that it is currently visible; this hook will return `undefined` if there is no current interaction.\n *\n * This follows the `<Tooltip />` props, if the Tooltip element is present in the chart.\n * If there is no `<Tooltip />` then this hook will follow the default Tooltip props.\n *\n * Data point is whatever you pass as an input to the chart using the `data={}` prop.\n *\n * This returns an array because a chart can have multiple graphical items in it (multiple Lines for example)\n * and tooltip with `shared={true}` will display all items at the same time.\n *\n * Returns undefined when used outside a chart context.\n *\n * @returns Data points that are currently visible in a Tooltip\n */\nexport var useActiveTooltipDataPoints = () => {\n return useAppSelector(selectActiveTooltipDataPoints);\n};\n\n/**\n * Returns the calculated domain of an X-axis.\n *\n * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.\n *\n * The type of the domain is defined by the `type` prop of the XAxis.\n *\n * The values of the domain are calculated based on the data and the `dataKey` of the axis.\n *\n * If the chart has a Brush, the domain will be filtered to the brushed indexes if the hook is used outside a Brush context,\n * and the full domain will be returned if the hook is used inside a Brush context.\n *\n * @param xAxisId The `xAxisId` of the X-axis. Defaults to `0` if not provided.\n * @returns The domain of the X-axis, or `undefined` if it cannot be calculated or if used outside a chart context.\n * @since 3.2\n */\nexport var useXAxisDomain = function useXAxisDomain() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisDomain(state, 'xAxis', xAxisId, isPanorama));\n};\n\n/**\n * Returns the calculated domain of a Y-axis.\n *\n * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.\n *\n * The type of the domain is defined by the `type` prop of the YAxis.\n *\n * The values of the domain are calculated based on the data and the `dataKey` of the axis.\n *\n * Does not interact with Brushes, as Y-axes do not support brushing.\n *\n * @param yAxisId The `yAxisId` of the Y-axis. Defaults to `0` if not provided.\n * @returns The domain of the Y-axis, or `undefined` if it cannot be calculated or if used outside a chart context.\n * @since 3.2\n */\nexport var useYAxisDomain = function useYAxisDomain() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisDomain(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * Returns true if the {@link Tooltip} is currently active (visible).\n *\n * Returns false if the Tooltip is not active or if used outside a chart context.\n *\n * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.\n * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.\n *\n * @returns {boolean} True if the Tooltip is active, false otherwise.\n * @since 3.7\n */\nexport var useIsTooltipActive = () => {\n var _useAppSelector;\n return (_useAppSelector = useAppSelector(selectIsTooltipActive)) !== null && _useAppSelector !== void 0 ? _useAppSelector : false;\n};\n\n/**\n * Returns the Cartesian `x` + `y` coordinates of the active {@link Tooltip}.\n *\n * Returns undefined if there is no active user interaction or if used outside a chart context.\n *\n * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.\n * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.\n *\n * @returns {Coordinate | undefined} The coordinate of the active Tooltip, or undefined.\n * @since 3.7\n */\nexport var useActiveTooltipCoordinate = () => {\n var coordinate = useAppSelector(selectActiveTooltipCoordinate);\n if (coordinate == null) {\n return undefined;\n }\n return {\n x: coordinate.x,\n y: coordinate.y\n };\n};","import { isStacked } from '../../types/StackedGraphicalItem';\nimport { getPercentValue, isNullish } from '../../../util/DataUtils';\nvar getBarSize = (globalSize, totalSize, selfSize) => {\n var barSize = selfSize !== null && selfSize !== void 0 ? selfSize : globalSize;\n if (isNullish(barSize)) {\n return undefined;\n }\n return getPercentValue(barSize, totalSize, 0);\n};\nexport var combineBarSizeList = (allBars, globalSize, totalSize) => {\n var initialValue = {};\n var stackedBars = allBars.filter(isStacked);\n var unstackedBars = allBars.filter(b => b.stackId == null);\n var groupByStack = stackedBars.reduce((acc, bar) => {\n var s = acc[bar.stackId];\n if (s == null) {\n s = [];\n }\n s.push(bar);\n acc[bar.stackId] = s;\n return acc;\n }, initialValue);\n var stackedSizeList = Object.entries(groupByStack).map(_ref => {\n var _bars$;\n var [stackId, bars] = _ref;\n var dataKeys = bars.map(b => b.dataKey);\n var barSize = getBarSize(globalSize, totalSize, (_bars$ = bars[0]) === null || _bars$ === void 0 ? void 0 : _bars$.barSize);\n return {\n stackId,\n dataKeys,\n barSize\n };\n });\n var unstackedSizeList = unstackedBars.map(b => {\n var dataKeys = [b.dataKey].filter(dk => dk != null);\n var barSize = getBarSize(globalSize, totalSize, b.barSize);\n return {\n stackId: undefined,\n dataKeys,\n barSize\n };\n });\n return [...stackedSizeList, ...unstackedSizeList];\n};","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { getPercentValue, isNullish } from '../../../util/DataUtils';\nimport { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';\nfunction getBarPositions(barGap, barCategoryGap, bandSize, sizeList, maxBarSize) {\n var _sizeList$;\n var len = sizeList.length;\n if (len < 1) {\n return undefined;\n }\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n var initialValue = [];\n\n // whether is barSize set by user\n // Okay but why does it check only for the first element? What if the first element is set but others are not?\n if (isWellBehavedNumber((_sizeList$ = sizeList[0]) === null || _sizeList$ === void 0 ? void 0 : _sizeList$.barSize)) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce((res, entry) => res + (entry.barSize || 0), 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce((res, entry) => {\n var _entry$barSize;\n var newPosition = {\n stackId: entry.stackId,\n dataKeys: entry.dataKeys,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : (_entry$barSize = entry.barSize) !== null && _entry$barSize !== void 0 ? _entry$barSize : 0\n }\n };\n var newRes = [...res, newPosition];\n prev = newPosition.position;\n return newRes;\n }, initialValue);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = isWellBehavedNumber(maxBarSize) ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce((res, entry, i) => [...res, {\n stackId: entry.stackId,\n dataKeys: entry.dataKeys,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size\n }\n }], initialValue);\n }\n return result;\n}\nexport var combineAllBarPositions = (sizeList, globalMaxBarSize, barGap, barCategoryGap, barBandSize, bandSize, childMaxBarSize) => {\n var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var allBarPositions = getBarPositions(barGap, barCategoryGap, barBandSize !== bandSize ? barBandSize : bandSize, sizeList, maxBarSize);\n if (barBandSize !== bandSize && allBarPositions != null) {\n allBarPositions = allBarPositions.map(pos => _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n }));\n }\n return allBarPositions;\n};","import { getStackSeriesIdentifier } from '../../../util/stacks/getStackSeriesIdentifier';\nexport var combineStackedData = (stackGroups, barSettings) => {\n var stackSeriesIdentifier = getStackSeriesIdentifier(barSettings);\n if (!stackGroups || stackSeriesIdentifier == null || barSettings == null) {\n return undefined;\n }\n var {\n stackId\n } = barSettings;\n if (stackId == null) {\n return undefined;\n }\n var stackGroup = stackGroups[stackId];\n if (!stackGroup) {\n return undefined;\n }\n var {\n stackedData\n } = stackGroup;\n if (!stackedData) {\n return undefined;\n }\n return stackedData.find(sd => sd.key === stackSeriesIdentifier);\n};","export var combineBarPosition = (allBarPositions, barSettings) => {\n if (allBarPositions == null || barSettings == null) {\n return undefined;\n }\n var position = allBarPositions.find(p => p.stackId === barSettings.stackId && barSettings.dataKey != null && p.dataKeys.includes(barSettings.dataKey));\n if (position == null) {\n return undefined;\n }\n return position.position;\n};","import { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nexport function getZIndexFromUnknown(input, defaultZIndex) {\n if (input && typeof input === 'object' && 'zIndex' in input && typeof input.zIndex === 'number' && isWellBehavedNumber(input.zIndex)) {\n return input.zIndex;\n }\n return defaultZIndex;\n}","import { useEffect } from 'react';\nimport { setChartData, setComputedData } from '../state/chartDataSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from './PanoramaContext';\nexport var ChartDataContextProvider = props => {\n var {\n chartData\n } = props;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n useEffect(() => {\n if (isPanorama) {\n // Panorama mode reuses data from the main chart, so we must not overwrite it here.\n return () => {\n // there is nothing to clean up\n };\n }\n dispatch(setChartData(chartData));\n return () => {\n dispatch(setChartData(undefined));\n };\n }, [chartData, dispatch, isPanorama]);\n return null;\n};\nexport var SetComputedData = props => {\n var {\n computedData\n } = props;\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setComputedData(computedData));\n return () => {\n dispatch(setChartData(undefined));\n };\n }, [computedData, dispatch]);\n return null;\n};\nvar selectChartData = state => state.chartData.chartData;\n\n/**\n * \"data\" is the data of the chart - it has no type because this part of recharts is very flexible.\n * Basically it's an array of \"something\" and then there's the dataKey property in various places\n * that's meant to pull other things away from the data.\n *\n * Some charts have `data` defined on the chart root, and they will return the array through this hook.\n * For example: <ComposedChart data={data} />.\n *\n * Other charts, such as Pie, have data defined on individual graphical elements.\n * These charts will return `undefined` through this hook, and you need to read the data from children.\n * For example: <PieChart><Pie data={data} />\n *\n * Some charts also allow setting both - data on the parent, and data on the children at the same time!\n * However, this particular selector will only return the ones defined on the parent.\n *\n * @deprecated use one of the other selectors instead - which one, depends on how do you identify the applicable graphical items.\n *\n * @return data array for some charts and undefined for other\n */\nexport var useChartData = () => useAppSelector(selectChartData);\nvar selectDataIndex = state => {\n var {\n dataStartIndex,\n dataEndIndex\n } = state.chartData;\n return {\n startIndex: dataStartIndex,\n endIndex: dataEndIndex\n };\n};\n\n/**\n * startIndex and endIndex are data boundaries, set through Brush.\n *\n * @return object with startIndex and endIndex\n */\nexport var useDataIndex = () => {\n return useAppSelector(selectDataIndex);\n};","import { createSlice } from '@reduxjs/toolkit';\n\n/**\n * From all Brush properties, only height has a default value and will always be defined.\n * Other properties are nullable and will be computed from offsets and margins if they are not set.\n */\n\nvar initialState = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n};\nexport var brushSlice = createSlice({\n name: 'brush',\n initialState,\n reducers: {\n setBrushSettings(_state, action) {\n if (action.payload == null) {\n return initialState;\n }\n return action.payload;\n }\n }\n});\nexport var {\n setBrushSettings\n} = brushSlice.actions;\nexport var brushReducer = brushSlice.reducer;","export var rectWithPoints = (_ref, _ref2) => {\n var {\n x: x1,\n y: y1\n } = _ref;\n var {\n x: x2,\n y: y2\n } = _ref2;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = _ref3 => {\n var {\n x1,\n y1,\n x2,\n y2\n } = _ref3;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref4) {\n var {\n width,\n height\n } = _ref4;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","import { createSlice, current } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nvar initialState = {\n dots: [],\n areas: [],\n lines: []\n};\nexport var referenceElementsSlice = createSlice({\n name: 'referenceElements',\n initialState,\n reducers: {\n addDot: (state, action) => {\n state.dots.push(action.payload);\n },\n removeDot: (state, action) => {\n var index = current(state).dots.findIndex(dot => dot === action.payload);\n if (index !== -1) {\n state.dots.splice(index, 1);\n }\n },\n addArea: (state, action) => {\n state.areas.push(action.payload);\n },\n removeArea: (state, action) => {\n var index = current(state).areas.findIndex(area => area === action.payload);\n if (index !== -1) {\n state.areas.splice(index, 1);\n }\n },\n addLine: (state, action) => {\n state.lines.push(castDraft(action.payload));\n },\n removeLine: (state, action) => {\n var index = current(state).lines.findIndex(line => line === action.payload);\n if (index !== -1) {\n state.lines.splice(index, 1);\n }\n }\n }\n});\nexport var {\n addDot,\n removeDot,\n addArea,\n removeArea,\n addLine,\n removeLine\n} = referenceElementsSlice.actions;\nexport var referenceElementsReducer = referenceElementsSlice.reducer;","import * as React from 'react';\nimport { createContext, useContext, useState } from 'react';\nimport { uniqueId } from '../util/DataUtils';\nimport { usePlotArea } from '../hooks';\nvar ClipPathIdContext = /*#__PURE__*/createContext(undefined);\n\n/**\n * Generates a unique clip path ID for use in SVG elements,\n * and puts it in a context provider.\n *\n * To read the clip path ID, use the `useClipPathId` hook,\n * or render `<ClipPath>` component which will automatically use the ID from this context.\n *\n * @param props children - React children to be wrapped by the provider\n * @returns React Context Provider\n */\nexport var ClipPathProvider = _ref => {\n var {\n children\n } = _ref;\n var [clipPathId] = useState(\"\".concat(uniqueId('recharts'), \"-clip\"));\n var plotArea = usePlotArea();\n if (plotArea == null) {\n return null;\n }\n var {\n x,\n y,\n width,\n height\n } = plotArea;\n return /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {\n value: clipPathId\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n height: height,\n width: width\n }))), children);\n};\nexport var useClipPathId = () => {\n return useContext(ClipPathIdContext);\n};","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * For n equal to 1, the input array is returned as is.\n * For n greater than the length of the array, an array containing the first element\n * and every nTh element after that (if any) is returned.\n *\n * @param array An input array.\n * @param n A number specifying which elements to take.\n * @returns The result array of the same type as the input array.\n */\nexport function getEveryNth(array, n) {\n if (n < 1) {\n return [];\n }\n if (n === 1) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n var item = array[i];\n if (item !== undefined) {\n result.push(item);\n }\n }\n return result;\n}","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNth } from './getEveryNth';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var {\n x,\n y,\n width,\n height\n } = viewBox;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNth(ticks, interval + 1);\n}","import { isVisible } from '../util/TickUtils';\nimport { getEveryNth } from '../util/getEveryNth';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n // If the ticks are readonly, then the slice might not be necessary\n var result = (ticks || []).slice();\n var {\n start: initialStart,\n end\n } = boundaries;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluated all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNth(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}\nexport function getEquidistantPreserveEndTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n // If the ticks are readonly, then the slice might not be necessary\n // Reworked logic for getEquidistantPreserveEndTicks\n var result = (ticks || []).slice();\n var len = result.length;\n if (len === 0) {\n return [];\n }\n var {\n start: initialStart,\n end\n } = boundaries;\n\n // Start with stepsize = 1 (every tick) up to the maximum possible stepsize (len)\n for (var stepsize = 1; stepsize <= len; stepsize++) {\n // 1. Calculate the offset so the last tick (index len - 1) is always included in the sequence.\n var offset = (len - 1) % stepsize;\n var start = initialStart; // `start` tracks the coordinate of the last successfully drawn tick + gap\n var ok = true;\n\n // 2. Iterate through the end-anchored sequence: offset, offset + stepsize, ..., len - 1\n var _loop2 = function _loop2() {\n var entry = ticks[index];\n if (entry == null) {\n return 0; // continue\n }\n var i = index;\n var size;\n\n // Use a function to get size, as in the original code\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n\n // 3. Apply visibility logic (including the first tick special case)\n // The reviewer says *not* to unconditionally bypass checks for the last tick.\n var isShow = index === offset || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // If any tick in this end-anchored sequence fails visibility/collision,\n // reject this stepsize and move to the next iteration (larger stepsize).\n ok = false;\n return 1; // break\n }\n\n // 4. If showable, update the 'start' coordinate for the next collision check\n if (isShow) {\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n }\n },\n _ret2;\n for (var index = offset; index < len; index += stepsize) {\n _ret2 = _loop2();\n if (_ret2 === 0) continue;\n if (_ret2 === 1) break;\n }\n\n // 5. If the entire sequence for this stepsize passed the visibility check, return the result\n if (ok) {\n // Build the final result array explicitly using the validated stepsize and offset.\n var finalTicks = [];\n for (var _index = offset; _index < len; _index += stepsize) {\n var tick = ticks[_index];\n if (tick != null) {\n finalTicks.push(tick);\n }\n }\n return finalTicks;\n }\n }\n\n // If no stepsize works (this shouldn't happen unless minTickGap is huge), return an empty array.\n return [];\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks, getEquidistantPreserveEndTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var {\n start\n } = boundaries;\n var {\n end\n } = boundaries;\n var _loop = function _loop(i) {\n var initialEntry = result[i];\n if (initialEntry == null) {\n return 1; // continue\n }\n var entry = initialEntry;\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(initialEntry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n if (entry.tickCoord != null) {\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n if (_loop(i)) continue;\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n // This method is mutating the array so clone is indeed necessary here\n var result = (ticks || []).slice();\n var len = result.length;\n var {\n start,\n end\n } = boundaries;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n if (tail != null) {\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n if (tail.tickCoord != null) {\n var isTailShow = isVisible(sign, tail.tickCoord, () => tailSize, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var initialEntry = result[i];\n if (initialEntry == null) {\n return 1; // continue\n }\n var entry = initialEntry;\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(initialEntry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n if (entry.tickCoord != null) {\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n };\n for (var i = 0; i < count; i++) {\n if (_loop2(i)) continue;\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var {\n tick,\n ticks,\n viewBox,\n minTickGap,\n orientation,\n interval,\n tickFormatter,\n unit,\n angle\n } = props;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n var _getNumberIntervalTic;\n return (_getNumberIntervalTic = getNumberIntervalTicks(ticks, isNumber(interval) ? interval : 0)) !== null && _getNumberIntervalTic !== void 0 ? _getNumberIntervalTic : [];\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize,\n letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = (content, index) => {\n var value = typeof tickFormatter === 'function' ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize,\n letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize,\n letterSpacing\n })[sizeKey];\n };\n var tick0 = ticks[0];\n var tick1 = ticks[1];\n var sign = ticks.length >= 2 && tick0 != null && tick1 != null ? mathSign(tick1.coordinate - tick0.coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'equidistantPreserveEnd') {\n return getEquidistantPreserveEndTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(entry => entry.isShow);\n}","/**\n * Calculates the width of the Y-axis based on the tick labels and the axis label.\n * @param params - The parameters object.\n * @param [params.ticks] - An array-like object of tick elements, each with a `getBoundingClientRect` method.\n * @param [params.label] - The axis label element, with a `getBoundingClientRect` method.\n * @param [params.labelGapWithTick=5] - The gap between the label and the tick.\n * @param [params.tickSize=0] - The length of the tick line.\n * @param [params.tickMargin=0] - The margin between the tick line and the tick text.\n * @returns The calculated width of the Y-axis.\n */\nexport var getCalculatedYAxisWidth = _ref => {\n var {\n ticks,\n label,\n labelGapWithTick = 5,\n // Default gap between label and tick\n tickSize = 0,\n tickMargin = 0\n } = _ref;\n // find the max width of the tick labels\n var maxTickWidth = 0;\n if (ticks) {\n Array.from(ticks).forEach(tickNode => {\n if (tickNode) {\n var bbox = tickNode.getBoundingClientRect();\n if (bbox.width > maxTickWidth) {\n maxTickWidth = bbox.width;\n }\n }\n });\n\n // calculate width of the axis label\n var labelWidth = label ? label.getBoundingClientRect().width : 0;\n var tickWidth = tickSize + tickMargin;\n\n // calculate the updated width of the y-axis\n var updatedYAxisWidth = maxTickWidth + tickWidth + labelWidth + (label ? labelGapWithTick : 0);\n return Math.round(updatedYAxisWidth);\n }\n return 0;\n};","/**\n * @fileOverview this stores actually rendered ticks.\n *\n * What we do is that we have the domain -> ticks mapping in the cartesianSlice,\n * which is fine but the result then goes to CartesianAxis where we use DOM measurement\n * to decide which ticks to actually render.\n *\n * This renderedTickSlice stores those actually rendered ticks so that we can return them from a hook later.\n */\nimport { createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nvar initialState = {\n xAxis: {},\n yAxis: {}\n};\nexport var renderedTicksSlice = createSlice({\n name: 'renderedTicks',\n initialState,\n reducers: {\n setRenderedTicks: (state, action) => {\n var {\n axisType,\n axisId,\n ticks\n } = action.payload;\n state[axisType][axisId] = castDraft(ticks);\n },\n removeRenderedTicks: (state, action) => {\n var {\n axisType,\n axisId\n } = action.payload;\n delete state[axisType][axisId];\n }\n }\n});\nexport var {\n setRenderedTicks,\n removeRenderedTicks\n} = renderedTicksSlice.actions;\nexport var renderedTicksReducer = renderedTicksSlice.reducer;","var _excluded = [\"axisLine\", \"width\", \"height\", \"className\", \"hide\", \"ticks\", \"axisType\", \"axisId\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport * as React from 'react';\nimport { useState, useRef, useCallback, forwardRef, useImperativeHandle, useEffect } from 'react';\nimport get from 'es-toolkit/compat/get';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Text, isValidTextAnchor } from '../component/Text';\nimport { CartesianLabelContextProvider, CartesianLabelFromLabelProp } from '../component/Label';\nimport { isNumber, noop } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { getTicks } from './getTicks';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { getCalculatedYAxisWidth } from '../util/YAxisUtils';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';\nimport { removeRenderedTicks, setRenderedTicks } from '../state/renderedTicksSlice';\nimport { useAppDispatch } from '../state/hooks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var defaultCartesianAxisProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd',\n zIndex: DefaultZIndexes.axis\n};\n\n/*\n * `viewBox` and `scale` are SVG attributes.\n * Recharts however - unfortunately - has its own attributes named `viewBox` and `scale`\n * that are completely different data shape and different purpose.\n */\n\nfunction AxisLine(axisLineProps) {\n var {\n x,\n y,\n width,\n height,\n orientation,\n mirror,\n axisLine,\n otherSvgProps\n } = axisLineProps;\n if (!axisLine) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread({}, otherSvgProps), svgPropertiesNoEvents(axisLine)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n}\n\n/**\n * Calculate the coordinates of endpoints in ticks.\n * @param data The data of a simple tick.\n * @param x The x-coordinate of the axis.\n * @param y The y-coordinate of the axis.\n * @param width The width of the axis.\n * @param height The height of the axis.\n * @param orientation The orientation of the axis.\n * @param tickSize The length of the tick line.\n * @param mirror If true, the ticks are mirrored.\n * @param tickMargin The margin between the tick line and the tick text.\n * @returns An object with `line` and `tick` coordinates.\n * `line` is the coordinates for the tick line, and `tick` is the coordinate for the tick text.\n */\nfunction getTickLineCoord(data, x, y, width, height, orientation, tickSize, mirror, tickMargin) {\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1,\n y1,\n x2,\n y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n}\n\n/**\n * @param orientation The orientation of the axis.\n * @param mirror If true, the ticks are mirrored.\n * @returns The text anchor of the tick.\n */\nfunction getTickTextAnchor(orientation, mirror) {\n switch (orientation) {\n case 'left':\n return mirror ? 'start' : 'end';\n case 'right':\n return mirror ? 'end' : 'start';\n default:\n return 'middle';\n }\n}\n\n/**\n * @param orientation The orientation of the axis.\n * @param mirror If true, the ticks are mirrored.\n * @returns The vertical text anchor of the tick.\n */\nfunction getTickVerticalAnchor(orientation, mirror) {\n switch (orientation) {\n case 'left':\n case 'right':\n return 'middle';\n case 'top':\n return mirror ? 'start' : 'end';\n default:\n return mirror ? 'end' : 'start';\n }\n}\nfunction TickItem(props) {\n var {\n option,\n tickProps,\n value\n } = props;\n var tickItem;\n var combinedClassName = clsx(tickProps.className, 'recharts-cartesian-axis-tick-value');\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error element cloning is not typed\n tickItem = /*#__PURE__*/React.cloneElement(option, _objectSpread(_objectSpread({}, tickProps), {}, {\n className: combinedClassName\n }));\n } else if (typeof option === 'function') {\n tickItem = option(_objectSpread(_objectSpread({}, tickProps), {}, {\n className: combinedClassName\n }));\n } else {\n var className = 'recharts-cartesian-axis-tick-value';\n if (typeof option !== 'boolean') {\n className = clsx(className, getClassNameFromUnknown(option));\n }\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, tickProps, {\n className: className\n }), value);\n }\n return tickItem;\n}\nfunction RenderedTicksReporter(_ref) {\n var {\n ticks,\n axisType,\n axisId\n } = _ref;\n var dispatch = useAppDispatch();\n useEffect(() => {\n if (axisId == null || axisType == null) {\n return noop;\n }\n // Filter out irrelevant internal properties before exposing externally\n var tickItems = ticks.map(tick => ({\n value: tick.value,\n coordinate: tick.coordinate,\n offset: tick.offset,\n index: tick.index\n }));\n dispatch(setRenderedTicks({\n ticks: tickItems,\n axisId,\n axisType\n }));\n return () => {\n dispatch(removeRenderedTicks({\n axisId,\n axisType\n }));\n };\n }, [dispatch, ticks, axisId, axisType]);\n return null;\n}\nvar Ticks = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n ticks = [],\n tick,\n tickLine,\n stroke,\n tickFormatter,\n unit,\n padding,\n tickTextProps,\n orientation,\n mirror,\n x,\n y,\n width,\n height,\n tickSize,\n tickMargin,\n fontSize,\n letterSpacing,\n getTicksConfig,\n events,\n axisType,\n axisId\n } = props;\n // @ts-expect-error some properties are optional in props but required in getTicks\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, getTicksConfig), {}, {\n ticks\n }), fontSize, letterSpacing);\n var axisProps = svgPropertiesNoEvents(getTicksConfig);\n var customTickProps = svgPropertiesNoEventsFromUnknown(tick);\n // Use user-provided textAnchor if available, otherwise calculate from orientation/mirror\n var textAnchor = isValidTextAnchor(axisProps.textAnchor) ? axisProps.textAnchor : getTickTextAnchor(orientation, mirror);\n var verticalAnchor = getTickVerticalAnchor(orientation, mirror);\n var tickLinePropsObject = {};\n if (typeof tickLine === 'object') {\n tickLinePropsObject = tickLine;\n }\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, tickLinePropsObject);\n var tickLineCoords = finalTicks.map(entry => _objectSpread({\n entry\n }, getTickLineCoord(entry, x, y, width, height, orientation, tickSize, mirror, tickMargin)));\n var tickLines = tickLineCoords.map(_ref2 => {\n var {\n entry,\n line: lineCoord\n } = _ref2;\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })));\n });\n var tickLabels = tickLineCoords.map((_ref3, i) => {\n var _ref4, _tickTextProps$angle;\n var {\n entry,\n tick: tickCoord\n } = _ref3;\n // @ts-expect-error we're not checking that padding and orientation types are in sync\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n verticalAnchor\n }, axisProps), {}, {\n textAnchor,\n stroke: 'none',\n fill: stroke\n }, tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter,\n padding\n }, tickTextProps), {}, {\n angle: (_ref4 = (_tickTextProps$angle = tickTextProps === null || tickTextProps === void 0 ? void 0 : tickTextProps.angle) !== null && _tickTextProps$angle !== void 0 ? _tickTextProps$angle : axisProps.angle) !== null && _ref4 !== void 0 ? _ref4 : 0\n });\n\n // @ts-expect-error customTickProps is contributing unknown props which we don't type properly\n var finalTickProps = _objectSpread(_objectSpread({}, tickProps), customTickProps);\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick-label\",\n key: \"tick-label-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(events, entry, i)), tick && /*#__PURE__*/React.createElement(TickItem, {\n option: tick,\n tickProps: finalTickProps,\n value: \"\".concat(typeof tickFormatter === 'function' ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')\n }));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks recharts-\".concat(axisType, \"-ticks\")\n }, /*#__PURE__*/React.createElement(RenderedTicksReporter, {\n ticks: finalTicks,\n axisId: axisId,\n axisType: axisType\n }), tickLabels.length > 0 && /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: DefaultZIndexes.label\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-tick-labels recharts-\".concat(axisType, \"-tick-labels\"),\n ref: ref\n }, tickLabels)), tickLines.length > 0 && /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-tick-lines recharts-\".concat(axisType, \"-tick-lines\")\n }, tickLines));\n});\nvar CartesianAxisComponent = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n axisLine,\n width,\n height,\n className,\n hide,\n ticks,\n axisType,\n axisId\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var [fontSize, setFontSize] = useState('');\n var [letterSpacing, setLetterSpacing] = useState('');\n var tickRefs = useRef(null);\n useImperativeHandle(ref, () => ({\n getCalculatedWidth: () => {\n var _props$labelRef;\n return getCalculatedYAxisWidth({\n ticks: tickRefs.current,\n label: (_props$labelRef = props.labelRef) === null || _props$labelRef === void 0 ? void 0 : _props$labelRef.current,\n labelGapWithTick: 5,\n tickSize: props.tickSize,\n tickMargin: props.tickMargin\n });\n }\n }));\n var layerRef = useCallback(el => {\n if (el) {\n var tickNodes = el.getElementsByClassName('recharts-cartesian-axis-tick-value');\n tickRefs.current = tickNodes;\n var tick = tickNodes[0];\n if (tick) {\n var computedStyle = window.getComputedStyle(tick);\n var calculatedFontSize = computedStyle.fontSize;\n var calculatedLetterSpacing = computedStyle.letterSpacing;\n if (calculatedFontSize !== fontSize || calculatedLetterSpacing !== letterSpacing) {\n setFontSize(calculatedFontSize);\n setLetterSpacing(calculatedLetterSpacing);\n }\n }\n }\n }, [fontSize, letterSpacing]);\n if (hide) {\n return null;\n }\n\n /*\n * This is different condition from what validateWidthHeight is doing;\n * the CartesianAxis does allow width or height to be undefined.\n */\n if (width != null && width <= 0 || height != null && height <= 0) {\n return null;\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className)\n }, /*#__PURE__*/React.createElement(AxisLine, {\n x: props.x,\n y: props.y,\n width: width,\n height: height,\n orientation: props.orientation,\n mirror: props.mirror,\n axisLine: axisLine,\n otherSvgProps: svgPropertiesNoEvents(props)\n }), /*#__PURE__*/React.createElement(Ticks, {\n ref: layerRef,\n axisType: axisType,\n events: rest,\n fontSize: fontSize,\n getTicksConfig: props,\n height: props.height,\n letterSpacing: letterSpacing,\n mirror: props.mirror,\n orientation: props.orientation,\n padding: props.padding,\n stroke: props.stroke,\n tick: props.tick,\n tickFormatter: props.tickFormatter,\n tickLine: props.tickLine,\n tickMargin: props.tickMargin,\n tickSize: props.tickSize,\n tickTextProps: props.tickTextProps,\n ticks: ticks,\n unit: props.unit,\n width: props.width,\n x: props.x,\n y: props.y,\n axisId: axisId\n }), /*#__PURE__*/React.createElement(CartesianLabelContextProvider, {\n x: props.x,\n y: props.y,\n width: props.width,\n height: props.height,\n lowerWidth: props.width,\n upperWidth: props.width\n }, /*#__PURE__*/React.createElement(CartesianLabelFromLabelProp, {\n label: props.label,\n labelRef: props.labelRef\n }), props.children)));\n});\n\n/**\n * @deprecated\n *\n * This component is not meant to be used directly in app code.\n * Use XAxis or YAxis instead.\n *\n * Starting from Recharts v4.0 we will make this component internal only.\n */\nexport var CartesianAxis = /*#__PURE__*/React.forwardRef((outsideProps, ref) => {\n var props = resolveDefaultProps(outsideProps, defaultCartesianAxisProps);\n return /*#__PURE__*/React.createElement(CartesianAxisComponent, _extends({}, props, {\n ref: ref\n }));\n});\nCartesianAxis.displayName = 'CartesianAxis';","var _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"],\n _excluded2 = [\"offset\"],\n _excluded3 = [\"xAxisId\", \"yAxisId\"],\n _excluded4 = [\"xAxisId\", \"yAxisId\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks } from './getTicks';\nimport { defaultCartesianAxisProps } from './CartesianAxis';\nimport { useChartHeight, useChartWidth, useOffsetInternal } from '../context/chartLayoutContext';\nimport { selectAxisPropsNeededForCartesianGridTicksGenerator } from '../state/selectors/axisSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\n/**\n * The <CartesianGrid horizontal\n */\n\nvar Background = props => {\n var {\n fill\n } = props;\n if (!fill || fill === 'none') {\n return null;\n }\n var {\n fillOpacity,\n x,\n y,\n width,\n height,\n ry\n } = props;\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n ry: ry,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n};\nfunction LineItem(_ref) {\n var {\n option,\n lineItemProps\n } = _ref;\n var lineItem;\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error typescript does not see the props type when cloning an element\n lineItem = /*#__PURE__*/React.cloneElement(option, lineItemProps);\n } else if (typeof option === 'function') {\n lineItem = option(lineItemProps);\n } else {\n var _svgPropertiesNoEvent;\n var {\n x1,\n y1,\n x2,\n y2,\n key\n } = lineItemProps,\n others = _objectWithoutProperties(lineItemProps, _excluded);\n var _ref2 = (_svgPropertiesNoEvent = svgPropertiesNoEvents(others)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},\n {\n offset: __\n } = _ref2,\n restOfFilteredProps = _objectWithoutProperties(_ref2, _excluded2);\n lineItem = /*#__PURE__*/React.createElement(\"line\", _extends({}, restOfFilteredProps, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n return lineItem;\n}\nfunction HorizontalGridLines(props) {\n var {\n x,\n width,\n horizontal = true,\n horizontalPoints\n } = props;\n if (!horizontal || !horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n var {\n xAxisId,\n yAxisId\n } = props,\n otherLineItemProps = _objectWithoutProperties(props, _excluded3);\n var items = horizontalPoints.map((entry, i) => {\n var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n return /*#__PURE__*/React.createElement(LineItem, {\n key: \"line-\".concat(i),\n option: horizontal,\n lineItemProps: lineItemProps\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n}\nfunction VerticalGridLines(props) {\n var {\n y,\n height,\n vertical = true,\n verticalPoints\n } = props;\n if (!vertical || !verticalPoints || !verticalPoints.length) {\n return null;\n }\n var {\n xAxisId,\n yAxisId\n } = props,\n otherLineItemProps = _objectWithoutProperties(props, _excluded4);\n var items = verticalPoints.map((entry, i) => {\n var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n return /*#__PURE__*/React.createElement(LineItem, {\n option: vertical,\n lineItemProps: lineItemProps,\n key: \"line-\".concat(i)\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n}\nfunction HorizontalStripes(props) {\n var {\n horizontalFill,\n fillOpacity,\n x,\n y,\n width,\n height,\n horizontalPoints,\n horizontal = true\n } = props;\n if (!horizontal || !horizontalFill || !horizontalFill.length || horizontalPoints == null) {\n return null;\n }\n var roundedSortedHorizontalPoints = horizontalPoints.map(e => Math.round(e + y - y)).sort((a, b) => a - b);\n // Why is this condition `!==` instead of `<=` ?\n if (y !== roundedSortedHorizontalPoints[0]) {\n roundedSortedHorizontalPoints.unshift(0);\n }\n var items = roundedSortedHorizontalPoints.map((entry, i) => {\n // Why do we strip only the last stripe if it is invisible, and not all invisible stripes?\n var nextPoint = roundedSortedHorizontalPoints[i + 1];\n var lastStripe = nextPoint == null;\n var lineHeight = lastStripe ? y + height - entry : nextPoint - entry;\n if (lineHeight <= 0) {\n return null;\n }\n var colorIndex = i % horizontalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i),\n y: entry,\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n}\nfunction VerticalStripes(props) {\n var {\n vertical = true,\n verticalFill,\n fillOpacity,\n x,\n y,\n width,\n height,\n verticalPoints\n } = props;\n if (!vertical || !verticalFill || !verticalFill.length) {\n return null;\n }\n var roundedSortedVerticalPoints = verticalPoints.map(e => Math.round(e + x - x)).sort((a, b) => a - b);\n if (x !== roundedSortedVerticalPoints[0]) {\n roundedSortedVerticalPoints.unshift(0);\n }\n var items = roundedSortedVerticalPoints.map((entry, i) => {\n var nextPoint = roundedSortedVerticalPoints[i + 1];\n var lastStripe = nextPoint == null;\n var lineWidth = lastStripe ? x + width - entry : nextPoint - entry;\n if (lineWidth <= 0) {\n return null;\n }\n var colorIndex = i % verticalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i),\n x: entry,\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n}\nvar defaultVerticalCoordinatesGenerator = (_ref3, syncWithTicks) => {\n var {\n xAxis,\n width,\n height,\n offset\n } = _ref3;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, defaultCartesianAxisProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width,\n height\n }\n })), offset.left, offset.left + offset.width, syncWithTicks);\n};\nvar defaultHorizontalCoordinatesGenerator = (_ref4, syncWithTicks) => {\n var {\n yAxis,\n width,\n height,\n offset\n } = _ref4;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, defaultCartesianAxisProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width,\n height\n }\n })), offset.top, offset.top + offset.height, syncWithTicks);\n};\nexport var defaultCartesianGridProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: [],\n xAxisId: 0,\n yAxisId: 0,\n syncWithTicks: false,\n zIndex: DefaultZIndexes.grid\n};\n\n/**\n * Renders background grid with lines and fill colors in a Cartesian chart.\n *\n * @consumes CartesianChartContext\n */\nexport function CartesianGrid(props) {\n var chartWidth = useChartWidth();\n var chartHeight = useChartHeight();\n var offset = useOffsetInternal();\n var propsIncludingDefaults = _objectSpread(_objectSpread({}, resolveDefaultProps(props, defaultCartesianGridProps)), {}, {\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height\n });\n var {\n xAxisId,\n yAxisId,\n x,\n y,\n width,\n height,\n syncWithTicks,\n horizontalValues,\n verticalValues\n } = propsIncludingDefaults;\n var isPanorama = useIsPanorama();\n var xAxis = useAppSelector(state => selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'xAxis', xAxisId, isPanorama));\n var yAxis = useAppSelector(state => selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'yAxis', yAxisId, isPanorama));\n if (!isPositiveNumber(width) || !isPositiveNumber(height) || !isNumber(x) || !isNumber(y)) {\n return null;\n }\n\n /*\n * verticalCoordinatesGenerator and horizontalCoordinatesGenerator are defined\n * outside the propsIncludingDefaults because they were never part of the original props\n * and they were never passed as a prop down to horizontal/vertical custom elements.\n * If we add these two to propsIncludingDefaults then we are changing public API.\n * Not a bad thing per se but also not necessary.\n */\n var verticalCoordinatesGenerator = propsIncludingDefaults.verticalCoordinatesGenerator || defaultVerticalCoordinatesGenerator;\n var horizontalCoordinatesGenerator = propsIncludingDefaults.horizontalCoordinatesGenerator || defaultHorizontalCoordinatesGenerator;\n var {\n horizontalPoints,\n verticalPoints\n } = propsIncludingDefaults;\n\n // No horizontal points are specified\n if ((!horizontalPoints || !horizontalPoints.length) && typeof horizontalCoordinatesGenerator === 'function') {\n var isHorizontalValues = horizontalValues && horizontalValues.length;\n var generatorResult = horizontalCoordinatesGenerator({\n yAxis: yAxis ? _objectSpread(_objectSpread({}, yAxis), {}, {\n ticks: isHorizontalValues ? horizontalValues : yAxis.ticks\n }) : undefined,\n width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,\n height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,\n offset\n }, isHorizontalValues ? true : syncWithTicks);\n warn(Array.isArray(generatorResult), \"horizontalCoordinatesGenerator should return Array but instead it returned [\".concat(typeof generatorResult, \"]\"));\n if (Array.isArray(generatorResult)) {\n horizontalPoints = generatorResult;\n }\n }\n\n // No vertical points are specified\n if ((!verticalPoints || !verticalPoints.length) && typeof verticalCoordinatesGenerator === 'function') {\n var isVerticalValues = verticalValues && verticalValues.length;\n var _generatorResult = verticalCoordinatesGenerator({\n xAxis: xAxis ? _objectSpread(_objectSpread({}, xAxis), {}, {\n ticks: isVerticalValues ? verticalValues : xAxis.ticks\n }) : undefined,\n width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,\n height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,\n offset\n }, isVerticalValues ? true : syncWithTicks);\n warn(Array.isArray(_generatorResult), \"verticalCoordinatesGenerator should return Array but instead it returned [\".concat(typeof _generatorResult, \"]\"));\n if (Array.isArray(_generatorResult)) {\n verticalPoints = _generatorResult;\n }\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: propsIncludingDefaults.zIndex\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, /*#__PURE__*/React.createElement(Background, {\n fill: propsIncludingDefaults.fill,\n fillOpacity: propsIncludingDefaults.fillOpacity,\n x: propsIncludingDefaults.x,\n y: propsIncludingDefaults.y,\n width: propsIncludingDefaults.width,\n height: propsIncludingDefaults.height,\n ry: propsIncludingDefaults.ry\n }), /*#__PURE__*/React.createElement(HorizontalStripes, _extends({}, propsIncludingDefaults, {\n horizontalPoints: horizontalPoints\n })), /*#__PURE__*/React.createElement(VerticalStripes, _extends({}, propsIncludingDefaults, {\n verticalPoints: verticalPoints\n })), /*#__PURE__*/React.createElement(HorizontalGridLines, _extends({}, propsIncludingDefaults, {\n offset: offset,\n horizontalPoints: horizontalPoints,\n xAxis: xAxis,\n yAxis: yAxis\n })), /*#__PURE__*/React.createElement(VerticalGridLines, _extends({}, propsIncludingDefaults, {\n offset: offset,\n verticalPoints: verticalPoints,\n xAxis: xAxis,\n yAxis: yAxis\n }))));\n}\nCartesianGrid.displayName = 'CartesianGrid';","import { createSlice } from '@reduxjs/toolkit';\n\n/**\n * ErrorBars have lot more settings but all the others are scoped to the component itself.\n * Only some of them required to be reported to the global store because XAxis and YAxis need to know\n * if the error bar is contributing to extending the axis domain.\n */\n\nvar initialState = {};\nvar errorBarSlice = createSlice({\n name: 'errorBars',\n initialState,\n reducers: {\n addErrorBar: (state, action) => {\n var {\n itemId,\n errorBar\n } = action.payload;\n if (!state[itemId]) {\n state[itemId] = [];\n }\n state[itemId].push(errorBar);\n },\n replaceErrorBar: (state, action) => {\n var {\n itemId,\n prev,\n next\n } = action.payload;\n if (state[itemId]) {\n state[itemId] = state[itemId].map(e => e.dataKey === prev.dataKey && e.direction === prev.direction ? next : e);\n }\n },\n removeErrorBar: (state, action) => {\n var {\n itemId,\n errorBar\n } = action.payload;\n if (state[itemId]) {\n state[itemId] = state[itemId].filter(e => e.dataKey !== errorBar.dataKey || e.direction !== errorBar.direction);\n }\n }\n }\n});\nexport var {\n addErrorBar,\n replaceErrorBar,\n removeErrorBar\n} = errorBarSlice.actions;\nexport var errorBarReducer = errorBarSlice.reducer;","var _excluded = [\"children\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { createContext, useContext, useEffect, useRef } from 'react';\nimport { addErrorBar, removeErrorBar, replaceErrorBar } from '../state/errorBarSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { useGraphicalItemId } from './RegisterGraphicalItemId';\nvar initialContextState = {\n data: [],\n xAxisId: 'xAxis-0',\n yAxisId: 'yAxis-0',\n dataPointFormatter: () => ({\n x: 0,\n y: 0,\n value: 0\n }),\n errorBarOffset: 0\n};\nvar ErrorBarContext = /*#__PURE__*/createContext(initialContextState);\nexport function SetErrorBarContext(props) {\n var {\n children\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(ErrorBarContext.Provider, {\n value: rest\n }, children);\n}\nexport var useErrorBarContext = () => useContext(ErrorBarContext);\nexport function ReportErrorBarSettings(props) {\n var dispatch = useAppDispatch();\n var graphicalItemId = useGraphicalItemId();\n var prevPropsRef = useRef(null);\n useEffect(() => {\n if (graphicalItemId == null) {\n // ErrorBar outside a graphical item context does not do anything.\n return;\n }\n if (prevPropsRef.current === null) {\n dispatch(addErrorBar({\n itemId: graphicalItemId,\n errorBar: props\n }));\n } else if (prevPropsRef.current !== props) {\n dispatch(replaceErrorBar({\n itemId: graphicalItemId,\n prev: prevPropsRef.current,\n next: props\n }));\n }\n prevPropsRef.current = props;\n }, [dispatch, graphicalItemId, props]);\n useEffect(() => {\n return () => {\n if (prevPropsRef.current != null && graphicalItemId != null) {\n dispatch(removeErrorBar({\n itemId: graphicalItemId,\n errorBar: prevPropsRef.current\n }));\n prevPropsRef.current = null;\n }\n };\n }, [dispatch, graphicalItemId]);\n return null;\n}","import * as React from 'react';\nimport { useAppSelector } from '../state/hooks';\nimport { implicitXAxis, implicitYAxis, selectXAxisSettings, selectYAxisSettings } from '../state/selectors/axisSelectors';\nimport { usePlotArea } from '../hooks';\nexport function useNeedsClip(xAxisId, yAxisId) {\n var _xAxis$allowDataOverf, _yAxis$allowDataOverf;\n var xAxis = useAppSelector(state => selectXAxisSettings(state, xAxisId));\n var yAxis = useAppSelector(state => selectYAxisSettings(state, yAxisId));\n var needClipX = (_xAxis$allowDataOverf = xAxis === null || xAxis === void 0 ? void 0 : xAxis.allowDataOverflow) !== null && _xAxis$allowDataOverf !== void 0 ? _xAxis$allowDataOverf : implicitXAxis.allowDataOverflow;\n var needClipY = (_yAxis$allowDataOverf = yAxis === null || yAxis === void 0 ? void 0 : yAxis.allowDataOverflow) !== null && _yAxis$allowDataOverf !== void 0 ? _yAxis$allowDataOverf : implicitYAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n return {\n needClip,\n needClipX,\n needClipY\n };\n}\nexport function GraphicalItemClipPath(_ref) {\n var {\n xAxisId,\n yAxisId,\n clipPathId\n } = _ref;\n var plotArea = usePlotArea();\n var {\n needClipX,\n needClipY,\n needClip\n } = useNeedsClip(xAxisId, yAxisId);\n if (!needClip || !plotArea) {\n return null;\n }\n var {\n x,\n y,\n width,\n height\n } = plotArea;\n return /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? x : x - width / 2,\n y: needClipY ? y : y - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }));\n}","import { defaultAxisId } from '../cartesianAxisSlice';\nexport function selectXAxisIdFromGraphicalItemId(state, id) {\n var _state$graphicalItems, _state$graphicalItems2;\n return (_state$graphicalItems = (_state$graphicalItems2 = state.graphicalItems.cartesianItems.find(item => item.id === id)) === null || _state$graphicalItems2 === void 0 ? void 0 : _state$graphicalItems2.xAxisId) !== null && _state$graphicalItems !== void 0 ? _state$graphicalItems : defaultAxisId;\n}\nexport function selectYAxisIdFromGraphicalItemId(state, id) {\n var _state$graphicalItems3, _state$graphicalItems4;\n return (_state$graphicalItems3 = (_state$graphicalItems4 = state.graphicalItems.cartesianItems.find(item => item.id === id)) === null || _state$graphicalItems4 === void 0 ? void 0 : _state$graphicalItems4.yAxisId) !== null && _state$graphicalItems3 !== void 0 ? _state$graphicalItems3 : defaultAxisId;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Shape } from './ActiveShapeUtils';\nimport { isNullish, isNumber } from './DataUtils';\nexport function BarRectangle(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"rectangle\",\n activeClassName: \"recharts-active-bar\",\n inActiveClassName: \"recharts-inactive-bar\"\n }, props));\n}\n/**\n * Safely gets minPointSize from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return (value, index) => {\n if (isNumber(minPointSize)) return minPointSize;\n var isValueNumberOrNil = isNumber(value) || isNullish(value);\n if (isValueNumberOrNil) {\n return minPointSize(value, index);\n }\n !isValueNumberOrNil ? true ? invariant(false, \"minPointSize callback function received a value with type of \".concat(typeof value, \". Currently only numbers or null/undefined are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};","import { createSelector } from 'reselect';\nimport { selectAxisWithScale, selectCartesianAxisSize, selectStackGroups, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems } from './axisSelectors';\nimport { isNullish } from '../../util/DataUtils';\nimport { getBandSizeOfAxis } from '../../util/ChartUtils';\nimport { computeBarRectangles } from '../../cartesian/Bar';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectChartDataWithIndexesIfNotInPanoramaPosition3 } from './dataSelectors';\nimport { selectAxisViewBox, selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectBarCategoryGap, selectBarGap, selectRootBarSize, selectRootMaxBarSize } from './rootPropsSelectors';\nimport { combineBarSizeList } from './combiners/combineBarSizeList';\nimport { combineAllBarPositions } from './combiners/combineAllBarPositions';\nimport { combineStackedData } from './combiners/combineStackedData';\nimport { selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId } from './graphicalItemSelectors';\nimport { combineBarPosition } from './combiners/combineBarPosition';\nvar pickIsPanorama = (_state, _id, isPanorama) => isPanorama;\nvar pickBarId = (_state, id) => id;\nvar selectSynchronisedBarSettings = createSelector([selectUnfilteredCartesianItems, pickBarId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'bar').find(item => item.id === id));\nexport var selectMaxBarSize = createSelector([selectSynchronisedBarSettings], barSettings => barSettings === null || barSettings === void 0 ? void 0 : barSettings.maxBarSize);\nvar pickCells = (_state, _id, _isPanorama, cells) => cells;\nexport var selectAllVisibleBars = createSelector([selectChartLayout, selectUnfilteredCartesianItems, selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId, pickIsPanorama], (layout, allItems, xAxisId, yAxisId, isPanorama) => allItems.filter(i => {\n if (layout === 'horizontal') {\n return i.xAxisId === xAxisId;\n }\n return i.yAxisId === yAxisId;\n}).filter(i => i.isPanorama === isPanorama).filter(i => i.hide === false).filter(i => i.type === 'bar'));\nvar selectBarStackGroups = (state, id, isPanorama) => {\n var layout = selectChartLayout(state);\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return undefined;\n }\n if (layout === 'horizontal') {\n return selectStackGroups(state, 'yAxis', yAxisId, isPanorama);\n }\n return selectStackGroups(state, 'xAxis', xAxisId, isPanorama);\n};\nexport var selectBarCartesianAxisSize = (state, id) => {\n var layout = selectChartLayout(state);\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return undefined;\n }\n if (layout === 'horizontal') {\n return selectCartesianAxisSize(state, 'xAxis', xAxisId);\n }\n return selectCartesianAxisSize(state, 'yAxis', yAxisId);\n};\nexport var selectBarSizeList = createSelector([selectAllVisibleBars, selectRootBarSize, selectBarCartesianAxisSize], combineBarSizeList);\nexport var selectBarBandSize = (state, id, isPanorama) => {\n var _ref, _getBandSizeOfAxis;\n var barSettings = selectSynchronisedBarSettings(state, id);\n if (barSettings == null) {\n return 0;\n }\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return 0;\n }\n var layout = selectChartLayout(state);\n var globalMaxBarSize = selectRootMaxBarSize(state);\n var {\n maxBarSize: childMaxBarSize\n } = barSettings;\n var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var axis, ticks;\n if (layout === 'horizontal') {\n axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n } else {\n axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n }\n return (_ref = (_getBandSizeOfAxis = getBandSizeOfAxis(axis, ticks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref !== void 0 ? _ref : 0;\n};\nexport var selectAxisBandSize = (state, id, isPanorama) => {\n var layout = selectChartLayout(state);\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return undefined;\n }\n var axis, ticks;\n if (layout === 'horizontal') {\n axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n } else {\n axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n }\n return getBandSizeOfAxis(axis, ticks);\n};\nexport var selectAllBarPositions = createSelector([selectBarSizeList, selectRootMaxBarSize, selectBarGap, selectBarCategoryGap, selectBarBandSize, selectAxisBandSize, selectMaxBarSize], combineAllBarPositions);\nvar selectXAxisWithScale = (state, id, isPanorama) => {\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null) {\n return undefined;\n }\n return selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n};\nvar selectYAxisWithScale = (state, id, isPanorama) => {\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (yAxisId == null) {\n return undefined;\n }\n return selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n};\nvar selectXAxisTicks = (state, id, isPanorama) => {\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null) {\n return undefined;\n }\n return selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n};\nvar selectYAxisTicks = (state, id, isPanorama) => {\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (yAxisId == null) {\n return undefined;\n }\n return selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n};\nexport var selectBarPosition = createSelector([selectAllBarPositions, selectSynchronisedBarSettings], combineBarPosition);\nexport var selectStackedDataOfItem = createSelector([selectBarStackGroups, selectSynchronisedBarSettings], combineStackedData);\nexport var selectBarRectangles = createSelector([selectChartOffsetInternal, selectAxisViewBox, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectBarPosition, selectChartLayout, selectChartDataWithIndexesIfNotInPanoramaPosition3, selectAxisBandSize, selectStackedDataOfItem, selectSynchronisedBarSettings, pickCells], (offset, axisViewBox, xAxis, yAxis, xAxisTicks, yAxisTicks, pos, layout, _ref2, bandSize, stackedData, barSettings, cells) => {\n var {\n chartData,\n dataStartIndex,\n dataEndIndex\n } = _ref2;\n if (barSettings == null || pos == null || axisViewBox == null || layout !== 'horizontal' && layout !== 'vertical' || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || bandSize == null) {\n return undefined;\n }\n var {\n data\n } = barSettings;\n var displayedData;\n if (data != null && data.length > 0) {\n displayedData = data;\n } else {\n displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);\n }\n if (displayedData == null) {\n return undefined;\n }\n return computeBarRectangles({\n layout,\n barSettings,\n pos,\n parentViewBox: axisViewBox,\n bandSize,\n xAxis,\n yAxis,\n xAxisTicks,\n yAxisTicks,\n stackedData,\n displayedData,\n offset,\n cells,\n dataStartIndex\n });\n});","var _excluded = [\"index\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { createContext, useContext, useMemo } from 'react';\nimport { getNormalizedStackId } from '../util/ChartUtils';\nimport { useUniqueId } from '../util/useUniqueId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { useAppSelector } from '../state/hooks';\nimport { selectStackRects } from '../state/selectors/barStackSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { Layer } from '../container/Layer';\nimport { Rectangle } from '../shape/Rectangle';\nimport { propsAreEqual } from '../util/propsAreEqual';\nvar BarStackContext = /*#__PURE__*/createContext(undefined);\n\n/**\n * Hook to resolve the stack ID for a Bar component.\n * If a stack ID is provided via props, it is used directly.\n * Otherwise, this will read stack ID from BarStack context if available.\n * If both are undefined, it returns undefined.\n * @param childStackId\n */\nexport var useStackId = childStackId => {\n var stackSettings = useContext(BarStackContext);\n if (stackSettings != null) {\n return stackSettings.stackId;\n }\n if (childStackId == null) {\n return undefined;\n }\n return getNormalizedStackId(childStackId);\n};\nexport var defaultBarStackProps = {\n radius: 0\n};\nvar getClipPathId = (stackId, index) => {\n return \"recharts-bar-stack-clip-path-\".concat(stackId, \"-\").concat(index);\n};\nexport var useBarStackClipPathUrl = index => {\n var barStackContext = useContext(BarStackContext);\n if (barStackContext == null) {\n return undefined;\n }\n var {\n stackId\n } = barStackContext;\n return \"url(#\".concat(getClipPathId(stackId, index), \")\");\n};\nexport var BarStackClipLayer = _ref => {\n var {\n index\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n var clipPathUrl = useBarStackClipPathUrl(index);\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-stack-layer\",\n clipPath: clipPathUrl\n }, rest));\n};\n\n/**\n * This React component will render a clipPath that the individual bars in the stack will reference\n * to achieve rounded corners for the entire stack.\n */\nvar BarStackClipPath = _ref2 => {\n var {\n stackId,\n radius\n } = _ref2;\n var isPanorama = useIsPanorama();\n var positions = useAppSelector(state => selectStackRects(state, stackId, isPanorama));\n if (positions == null || positions.length === 0) {\n return null;\n }\n /*\n * Render one clipPath per rectangle in the stack.\n * Each rectangle corresponds to one data entry in the chart.\n */\n return /*#__PURE__*/React.createElement(\"defs\", null, positions.map((pos, index) => {\n if (pos == null) {\n return null;\n }\n var clipPathId = getClipPathId(stackId, index);\n return /*#__PURE__*/React.createElement(\"clipPath\", {\n key: clipPathId,\n id: clipPathId\n }, /*#__PURE__*/React.createElement(Rectangle, {\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n x: pos.x,\n y: pos.y,\n width: pos.width,\n height: pos.height,\n radius: radius\n }));\n }));\n};\nvar BarStackImpl = props => {\n var resolvedStackId = useUniqueId('recharts-bar-stack', getNormalizedStackId(props.stackId));\n var {\n children,\n radius\n } = resolveDefaultProps(props, defaultBarStackProps);\n var context = useMemo(() => ({\n stackId: resolvedStackId,\n radius\n }), [resolvedStackId, radius]);\n return /*#__PURE__*/React.createElement(BarStackContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(BarStackClipPath, {\n stackId: resolvedStackId,\n radius: radius\n }), children);\n};\n\n/**\n * @provides BarStackContext\n * @since 3.6\n */\nexport var BarStack = /*#__PURE__*/React.memo(BarStackImpl, propsAreEqual);","var _excluded = [\"onMouseEnter\", \"onMouseLeave\", \"onClick\"],\n _excluded2 = [\"value\", \"background\", \"tooltipPosition\"],\n _excluded3 = [\"id\"],\n _excluded4 = [\"onMouseEnter\", \"onClick\", \"onMouseLeave\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { PureComponent, useCallback, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Cell } from '../component/Cell';\nimport { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';\nimport { interpolate, isNan, mathSign, noop } from '../util/DataUtils';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getBaseValueOfBar, getCateCoordinateOfBar, getTooltipNameProp, getValueByDataKey, truncateByDomain } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, minPointSizeCallback } from '../util/BarUtils';\nimport { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { SetErrorBarContext } from '../context/ErrorBarContext';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { useChartLayout } from '../context/chartLayoutContext';\nimport { selectBarRectangles } from '../state/selectors/barSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectActiveTooltipDataKey, selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getZIndexFromUnknown } from '../zIndex/getZIndexFromUnknown';\nimport { propsAreEqual } from '../util/propsAreEqual';\nimport { BarStackClipLayer, useStackId } from './BarStack';\nvar computeLegendPayloadFromBarData = props => {\n var {\n dataKey,\n name,\n fill,\n legendType,\n hide\n } = props;\n return [{\n inactive: hide,\n dataKey,\n type: legendType,\n color: fill,\n value: getTooltipNameProp(name, dataKey),\n payload: props\n }];\n};\nvar SetBarTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {\n var {\n dataKey,\n stroke,\n strokeWidth,\n fill,\n name,\n hide,\n unit,\n tooltipType,\n id\n } = _ref;\n var tooltipEntrySettings = {\n dataDefinedOnItem: undefined,\n getPosition: noop,\n settings: {\n stroke,\n strokeWidth,\n fill,\n dataKey,\n nameKey: undefined,\n name: getTooltipNameProp(name, dataKey),\n hide,\n type: tooltipType,\n color: fill,\n unit,\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\nfunction BarBackground(props) {\n var activeIndex = useAppSelector(selectActiveTooltipIndex);\n var {\n data,\n dataKey,\n background: backgroundFromProps,\n allOtherBarProps\n } = props;\n var {\n onMouseEnter: onMouseEnterFromProps,\n onMouseLeave: onMouseLeaveFromProps,\n onClick: onItemClickFromProps\n } = allOtherBarProps,\n restOfAllOtherProps = _objectWithoutProperties(allOtherBarProps, _excluded);\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, allOtherBarProps.id);\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, allOtherBarProps.id);\n if (!backgroundFromProps || data == null) {\n return null;\n }\n var backgroundProps = svgPropertiesNoEventsFromUnknown(backgroundFromProps);\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: getZIndexFromUnknown(backgroundFromProps, DefaultZIndexes.barBackground)\n }, data.map((entry, i) => {\n var {\n value,\n background: backgroundFromDataEntry,\n tooltipPosition\n } = entry,\n rest = _objectWithoutProperties(entry, _excluded2);\n if (!backgroundFromDataEntry) {\n return null;\n }\n var onMouseEnter = onMouseEnterFromContext(entry, i);\n var onMouseLeave = onMouseLeaveFromContext(entry, i);\n var onClick = onClickFromContext(entry, i);\n var barRectangleProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n option: backgroundFromProps,\n isActive: String(i) === activeIndex\n }, rest), {}, {\n // @ts-expect-error backgroundProps is contributing unknown props\n fill: '#eee'\n }, backgroundFromDataEntry), backgroundProps), adaptEventsOfChild(restOfAllOtherProps, entry, i)), {}, {\n onMouseEnter,\n onMouseLeave,\n onClick,\n dataKey,\n index: i,\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n key: \"background-bar-\".concat(i)\n }, barRectangleProps));\n }));\n}\nfunction BarLabelListProvider(_ref2) {\n var {\n showLabels,\n children,\n rects\n } = _ref2;\n var labelListEntries = rects === null || rects === void 0 ? void 0 : rects.map(entry => {\n var viewBox = {\n x: entry.x,\n y: entry.y,\n width: entry.width,\n lowerWidth: entry.width,\n upperWidth: entry.width,\n height: entry.height\n };\n return _objectSpread(_objectSpread({}, viewBox), {}, {\n value: entry.value,\n payload: entry.payload,\n parentViewBox: entry.parentViewBox,\n viewBox,\n fill: entry.fill\n });\n });\n return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {\n value: showLabels ? labelListEntries : undefined\n }, children);\n}\nfunction BarRectangleWithActiveState(props) {\n var {\n shape,\n activeBar,\n baseProps,\n entry,\n index,\n dataKey\n } = props;\n var activeIndex = useAppSelector(selectActiveTooltipIndex);\n var activeDataKey = useAppSelector(selectActiveTooltipDataKey);\n /*\n * Bars support stacking, meaning that there can be multiple bars at the same x value.\n * With Tooltip shared=false we only want to highlight the currently active Bar, not all.\n *\n * Also, if the tooltip is shared, we want to highlight all bars at the same x value\n * regardless of the dataKey.\n *\n * With shared Tooltip, the activeDataKey is undefined.\n *\n * We use entry.originalDataIndex to match against activeIndex because the render index parameter\n * is based on the filtered array, while activeIndex is based on the pre-filter displayed data slice.\n * When entries are filtered out (for example null/zero-dimension bars), these indices can differ.\n */\n var isActive = activeBar && String(entry.originalDataIndex) === activeIndex && (activeDataKey == null || dataKey === activeDataKey);\n var [stayInLayer, setStayInLayer] = useState(false);\n var [hasMountedActive, setHasMountedActive] = useState(false);\n useEffect(() => {\n var rafId;\n if (isActive) {\n // 1. Enter the layer immediately\n setStayInLayer(true);\n\n // 2. Wait for the browser to paint the \"inactive\" state in the new layer,\n // then switch to active to trigger the CSS transition (width grow).\n rafId = requestAnimationFrame(() => {\n setHasMountedActive(true);\n });\n } else {\n setHasMountedActive(false);\n }\n return () => {\n cancelAnimationFrame(rafId);\n };\n }, [isActive]);\n var handleTransitionEnd = useCallback(() => {\n // 4. Leave the layer only when the exit transition finishes\n if (!isActive) {\n setStayInLayer(false);\n }\n }, [isActive]);\n\n // Determine props:\n // - If entering (isActive=true) but not mounted yet (hasMountedActive=false), pass isActive=false (inactive size).\n // - If exiting (isActive=false), pass isActive=false (inactive size).\n var isVisuallyActive = isActive && hasMountedActive;\n\n // Render in ZIndexLayer if active OR if we are waiting for exit transition\n var shouldRenderInLayer = isActive || stayInLayer;\n var option;\n if (isActive) {\n if (activeBar === true) {\n option = shape;\n } else {\n option = activeBar;\n }\n } else {\n option = shape;\n }\n var content = /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {\n name: String(baseProps.name)\n }, entry, {\n isActive: isVisuallyActive,\n option: option,\n index: index,\n dataKey: dataKey,\n onTransitionEnd: handleTransitionEnd\n }));\n if (shouldRenderInLayer) {\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: DefaultZIndexes.activeBar\n }, /*#__PURE__*/React.createElement(BarStackClipLayer, {\n index: entry.originalDataIndex\n }, content));\n }\n return content;\n}\nfunction BarRectangleNeverActive(props) {\n var {\n shape,\n baseProps,\n entry,\n index,\n dataKey\n } = props;\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {\n name: String(baseProps.name)\n }, entry, {\n isActive: false,\n option: shape,\n index: index,\n dataKey: dataKey\n }));\n}\nfunction BarRectangles(_ref3) {\n var _svgPropertiesNoEvent;\n var {\n data,\n props\n } = _ref3;\n var _ref4 = (_svgPropertiesNoEvent = svgPropertiesNoEvents(props)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},\n {\n id\n } = _ref4,\n baseProps = _objectWithoutProperties(_ref4, _excluded3);\n var {\n shape,\n dataKey,\n activeBar\n } = props;\n var {\n onMouseEnter: onMouseEnterFromProps,\n onClick: onItemClickFromProps,\n onMouseLeave: onMouseLeaveFromProps\n } = props,\n restOfAllOtherProps = _objectWithoutProperties(props, _excluded4);\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, id);\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, id);\n if (!data) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, data.map((entry, i) => {\n return /*#__PURE__*/React.createElement(BarStackClipLayer, _extends({\n index: entry.originalDataIndex\n // https://github.com/recharts/recharts/issues/5415\n ,\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value, \"-\").concat(i),\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(restOfAllOtherProps, entry, i), {\n onMouseEnter: onMouseEnterFromContext(entry, i),\n onMouseLeave: onMouseLeaveFromContext(entry, i),\n onClick: onClickFromContext(entry, i)\n }), activeBar ? /*#__PURE__*/React.createElement(BarRectangleWithActiveState, {\n shape: shape,\n activeBar: activeBar,\n baseProps: baseProps,\n entry: entry,\n index: i,\n dataKey: dataKey\n }) :\n /*#__PURE__*/\n /*\n * If the `activeBar` prop is falsy, then let's call the variant without hooks.\n * Using the `selectActiveTooltipIndex` selector is usually fast\n * but in charts with large-ish amount of data even the few nanoseconds add up to a noticeable jank.\n * If the activeBar is false then we don't need to know which index is active - because we won't use it anyway.\n * So let's just skip the hooks altogether. That way, React can skip rendering the component,\n * and can skip the tree reconciliation for its children too.\n * Because we can't call hooks conditionally, we need to have a separate component for that.\n */\n React.createElement(BarRectangleNeverActive, {\n shape: shape,\n baseProps: baseProps,\n entry: entry,\n index: i,\n dataKey: dataKey\n }));\n }));\n}\nfunction RectanglesWithAnimation(_ref5) {\n var {\n props,\n previousRectanglesRef\n } = _ref5;\n var {\n data,\n layout,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n onAnimationEnd,\n onAnimationStart\n } = props;\n var prevData = previousRectanglesRef.current;\n var animationId = useAnimationId(props, 'recharts-bar-');\n var [isAnimating, setIsAnimating] = useState(false);\n var showLabels = !isAnimating;\n var handleAnimationEnd = useCallback(() => {\n if (typeof onAnimationEnd === 'function') {\n onAnimationEnd();\n }\n setIsAnimating(false);\n }, [onAnimationEnd]);\n var handleAnimationStart = useCallback(() => {\n if (typeof onAnimationStart === 'function') {\n onAnimationStart();\n }\n setIsAnimating(true);\n }, [onAnimationStart]);\n return /*#__PURE__*/React.createElement(BarLabelListProvider, {\n showLabels: showLabels,\n rects: data\n }, /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n onAnimationEnd: handleAnimationEnd,\n onAnimationStart: handleAnimationStart,\n key: animationId\n }, t => {\n var stepData = t === 1 ? data : data === null || data === void 0 ? void 0 : data.map((entry, index) => {\n var prev = prevData && prevData[index];\n if (prev) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolate(prev.x, entry.x, t),\n y: interpolate(prev.y, entry.y, t),\n width: interpolate(prev.width, entry.width, t),\n height: interpolate(prev.height, entry.height, t)\n });\n }\n if (layout === 'horizontal') {\n var height = interpolate(0, entry.height, t);\n var y = interpolate(entry.stackedBarStart, entry.y, t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y,\n height\n });\n }\n var w = interpolate(0, entry.width, t);\n var x = interpolate(entry.stackedBarStart, entry.x, t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w,\n x\n });\n });\n if (t > 0) {\n // eslint-disable-next-line no-param-reassign\n previousRectanglesRef.current = stepData !== null && stepData !== void 0 ? stepData : null;\n }\n if (stepData == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(BarRectangles, {\n props: props,\n data: stepData\n }));\n }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {\n label: props.label\n }), props.children);\n}\nfunction RenderRectangles(props) {\n var previousRectanglesRef = useRef(null);\n return /*#__PURE__*/React.createElement(RectanglesWithAnimation, {\n previousRectanglesRef: previousRectanglesRef,\n props: props\n });\n}\nvar defaultMinPointSize = 0;\nvar errorBarDataPointFormatter = (dataPoint, dataKey) => {\n /**\n * if the value coming from `selectBarRectangles` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value,\n // getValueByDataKey does not validate the output type\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n};\nclass BarWithState extends PureComponent {\n render() {\n var {\n hide,\n data,\n dataKey,\n className,\n xAxisId,\n yAxisId,\n needClip,\n background,\n id\n } = this.props;\n if (hide || data == null) {\n return null;\n }\n var layerClass = clsx('recharts-bar', className);\n var clipPathId = id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n id: id\n }, needClip && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {\n clipPathId: clipPathId,\n xAxisId: xAxisId,\n yAxisId: yAxisId\n })), /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : undefined\n }, /*#__PURE__*/React.createElement(BarBackground, {\n data: data,\n dataKey: dataKey,\n background: background,\n allOtherBarProps: this.props\n }), /*#__PURE__*/React.createElement(RenderRectangles, this.props)));\n }\n}\nexport var defaultBarProps = {\n activeBar: false,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease',\n background: false,\n hide: false,\n isAnimationActive: 'auto',\n label: false,\n legendType: 'rect',\n minPointSize: defaultMinPointSize,\n xAxisId: 0,\n yAxisId: 0,\n zIndex: DefaultZIndexes.bar\n};\nfunction BarImpl(props) {\n var {\n xAxisId,\n yAxisId,\n hide,\n legendType,\n minPointSize,\n activeBar,\n animationBegin,\n animationDuration,\n animationEasing,\n isAnimationActive\n } = props;\n var {\n needClip\n } = useNeedsClip(xAxisId, yAxisId);\n var layout = useChartLayout();\n var isPanorama = useIsPanorama();\n var cells = findAllByType(props.children, Cell);\n var rects = useAppSelector(state => selectBarRectangles(state, props.id, isPanorama, cells));\n if (layout !== 'vertical' && layout !== 'horizontal') {\n return null;\n }\n var errorBarOffset;\n var firstDataPoint = rects === null || rects === void 0 ? void 0 : rects[0];\n if (firstDataPoint == null || firstDataPoint.height == null || firstDataPoint.width == null) {\n errorBarOffset = 0;\n } else {\n errorBarOffset = layout === 'vertical' ? firstDataPoint.height / 2 : firstDataPoint.width / 2;\n }\n return /*#__PURE__*/React.createElement(SetErrorBarContext, {\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n data: rects,\n dataPointFormatter: errorBarDataPointFormatter,\n errorBarOffset: errorBarOffset\n }, /*#__PURE__*/React.createElement(BarWithState, _extends({}, props, {\n layout: layout,\n needClip: needClip,\n data: rects,\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n hide: hide,\n legendType: legendType,\n minPointSize: minPointSize,\n activeBar: activeBar,\n animationBegin: animationBegin,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive\n })));\n}\nexport function computeBarRectangles(_ref6) {\n var {\n layout,\n barSettings: {\n dataKey,\n minPointSize: minPointSizeProp,\n hasCustomShape\n },\n pos,\n bandSize,\n xAxis,\n yAxis,\n xAxisTicks,\n yAxisTicks,\n stackedData,\n displayedData,\n offset,\n cells,\n parentViewBox,\n dataStartIndex\n } = _ref6;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n // @ts-expect-error this assumes that the domain is always numeric, but doesn't check for it\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis\n });\n var stackedBarStart = numericAxis.scale.map(baseValue);\n return displayedData.map((entry, index) => {\n var value, x, y, width, height, background;\n if (stackedData) {\n // Use dataStartIndex to access the correct element in the full stackedData array\n var untruncatedValue = stackedData[index + dataStartIndex];\n if (untruncatedValue == null) {\n return null;\n }\n value = truncateByDomain(untruncatedValue, stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, defaultMinPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref7;\n var baseValueScale = yAxis.scale.map(value[0]);\n var currentValueScale = yAxis.scale.map(value[1]);\n if (baseValueScale == null || currentValueScale == null) {\n return null;\n }\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index\n });\n y = (_ref7 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref7 !== void 0 ? _ref7 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = isNan(computedHeight) ? 0 : computedHeight;\n background = {\n x,\n y: offset.top,\n width,\n height: offset.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _baseValueScale = xAxis.scale.map(value[0]);\n var _currentValueScale = xAxis.scale.map(value[1]);\n if (_baseValueScale == null || _currentValueScale == null) {\n return null;\n }\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: offset.left,\n y,\n width: offset.width,\n height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n\n /*\n * Filter out 0-dimension rectangles early to avoid creating unnecessary component trees.\n * BarStack clip-paths use originalDataIndex, so sparse filtered arrays remain index-stable.\n * Bars with a custom shape are not filtered out: the custom renderer may still draw something\n * visible at zero-dimension positions (e.g. horizontal lines in a BoxPlot).\n */\n if (x == null || y == null || width == null || height == null || !hasCustomShape && (width === 0 || height === 0)) {\n return null;\n }\n var barRectangleItem = _objectSpread(_objectSpread({}, entry), {}, {\n stackedBarStart,\n x,\n y,\n width,\n height,\n value: stackedData ? value : value[1],\n payload: entry,\n background,\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n },\n parentViewBox,\n originalDataIndex: index\n }, cells && cells[index] && cells[index].props);\n return barRectangleItem;\n }).filter(Boolean);\n}\nfunction BarFn(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultBarProps);\n // stackId may arrive from props or from BarStack context\n var stackId = useStackId(props.stackId);\n var isPanorama = useIsPanorama();\n // Report all props to Redux store first, before calling any hooks, to avoid circular dependencies.\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: props.id,\n type: \"bar\"\n }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetLegendPayload, {\n legendPayload: computeLegendPayloadFromBarData(props)\n }), /*#__PURE__*/React.createElement(SetBarTooltipEntrySettings, {\n dataKey: props.dataKey,\n stroke: props.stroke,\n strokeWidth: props.strokeWidth,\n fill: props.fill,\n name: props.name,\n hide: props.hide,\n unit: props.unit,\n tooltipType: props.tooltipType,\n id: id\n }), /*#__PURE__*/React.createElement(SetCartesianGraphicalItem, {\n type: \"bar\",\n id: id\n // Bar does not allow setting data directly on the graphical item (why?)\n ,\n data: undefined,\n xAxisId: props.xAxisId,\n yAxisId: props.yAxisId,\n zAxisId: 0,\n dataKey: props.dataKey,\n stackId: stackId,\n hide: props.hide,\n barSize: props.barSize,\n minPointSize: props.minPointSize,\n maxBarSize: props.maxBarSize,\n isPanorama: isPanorama,\n hasCustomShape: props.shape != null\n }), /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(BarImpl, _extends({}, props, {\n id: id\n })))));\n}\n\n/**\n * @provides ErrorBarContext\n * @provides LabelListContext\n * @provides CellReader\n * @consumes CartesianChartContext\n * @consumes BarStackContext\n */\nexport var Bar = /*#__PURE__*/React.memo(BarFn, propsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\nBar.displayName = 'Bar';","var _excluded = [\"domain\", \"range\"],\n _excluded2 = [\"domain\", \"range\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport { propsAreEqual } from './propsAreEqual';\nfunction shortArraysAreEqual(arr1, arr2) {\n if (arr1 === arr2) {\n return true;\n }\n if (Array.isArray(arr1) && arr1.length === 2 && Array.isArray(arr2) && arr2.length === 2) {\n return arr1[0] === arr2[0] && arr1[1] === arr2[1];\n }\n return false;\n}\n\n/**\n * Usually we would not compare array props deeply for performance consideration.\n * However, for axis props, domain is sometimes defined as a two-elements array, and range is always\n * a two-elements array. So we can do a shallow comparison for the rest props and a shallow\n * comparison for these two array props.\n * @param prevProps\n * @param nextProps\n */\nexport function axisPropsAreEqual(prevProps, nextProps) {\n if (prevProps === nextProps) {\n return true;\n }\n var {\n domain: prevDomain,\n range: prevRange\n } = prevProps,\n prevRest = _objectWithoutProperties(prevProps, _excluded);\n var {\n domain: nextDomain,\n range: nextRange\n } = nextProps,\n nextRest = _objectWithoutProperties(nextProps, _excluded2);\n if (!shortArraysAreEqual(prevDomain, nextDomain)) {\n return false;\n }\n if (!shortArraysAreEqual(prevRange, nextRange)) {\n return false;\n }\n return propsAreEqual(prevRest, nextRest);\n}","var _excluded = [\"type\"],\n _excluded2 = [\"dangerouslySetInnerHTML\", \"ticks\", \"scale\"],\n _excluded3 = [\"id\", \"scale\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/**\n * @fileOverview X Axis\n */\nimport * as React from 'react';\nimport { useLayoutEffect, useMemo, useRef } from 'react';\nimport { clsx } from 'clsx';\nimport { CartesianAxis, defaultCartesianAxisProps } from './CartesianAxis';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { addXAxis, replaceXAxis, removeXAxis } from '../state/cartesianAxisSlice';\nimport { implicitXAxis, selectTicksOfAxis, selectXAxisPosition, selectXAxisSettingsNoDefaults, selectXAxisSize } from '../state/selectors/axisSelectors';\nimport { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { axisPropsAreEqual } from '../util/axisPropsAreEqual';\nimport { useCartesianChartLayout } from '../context/chartLayoutContext';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\nfunction SetXAxisSettings(props) {\n var dispatch = useAppDispatch();\n var prevSettingsRef = useRef(null);\n var layout = useCartesianChartLayout();\n var {\n type: typeFromProps\n } = props,\n restProps = _objectWithoutProperties(props, _excluded);\n var evaluatedType = getAxisTypeBasedOnLayout(layout, 'xAxis', typeFromProps);\n var settings = useMemo(() => {\n if (evaluatedType == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, restProps), {}, {\n type: evaluatedType\n });\n }, [restProps, evaluatedType]);\n useLayoutEffect(() => {\n if (settings == null) {\n return;\n }\n if (prevSettingsRef.current === null) {\n dispatch(addXAxis(settings));\n } else if (prevSettingsRef.current !== settings) {\n dispatch(replaceXAxis({\n prev: prevSettingsRef.current,\n next: settings\n }));\n }\n prevSettingsRef.current = settings;\n }, [settings, dispatch]);\n useLayoutEffect(() => {\n return () => {\n if (prevSettingsRef.current) {\n dispatch(removeXAxis(prevSettingsRef.current));\n prevSettingsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}\nvar XAxisImpl = props => {\n var {\n xAxisId,\n className\n } = props;\n var viewBox = useAppSelector(selectAxisViewBox);\n var isPanorama = useIsPanorama();\n var axisType = 'xAxis';\n var cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, xAxisId, isPanorama));\n var axisSize = useAppSelector(state => selectXAxisSize(state, xAxisId));\n var position = useAppSelector(state => selectXAxisPosition(state, xAxisId));\n /*\n * Here we select settings from the store and prefer to use them instead of the actual props\n * so that the chart is consistent. If we used the props directly, some components will use axis settings\n * from state and some from props and because there is a render step between these two, they might be showing different things.\n * https://github.com/recharts/recharts/issues/6257\n */\n var synchronizedSettings = useAppSelector(state => selectXAxisSettingsNoDefaults(state, xAxisId));\n if (axisSize == null || position == null || synchronizedSettings == null) {\n return null;\n }\n var {\n dangerouslySetInnerHTML,\n ticks,\n scale: del\n } = props,\n allOtherProps = _objectWithoutProperties(props, _excluded2);\n var {\n id,\n scale: del2\n } = synchronizedSettings,\n restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded3);\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {\n x: position.x,\n y: position.y,\n width: axisSize.width,\n height: axisSize.height,\n className: clsx(\"recharts-\".concat(axisType, \" \").concat(axisType), className),\n viewBox: viewBox,\n ticks: cartesianTickItems,\n axisType: axisType,\n axisId: xAxisId\n }));\n};\nexport var xAxisDefaultProps = {\n allowDataOverflow: implicitXAxis.allowDataOverflow,\n allowDecimals: implicitXAxis.allowDecimals,\n allowDuplicatedCategory: implicitXAxis.allowDuplicatedCategory,\n angle: implicitXAxis.angle,\n axisLine: defaultCartesianAxisProps.axisLine,\n height: implicitXAxis.height,\n hide: false,\n includeHidden: implicitXAxis.includeHidden,\n interval: implicitXAxis.interval,\n label: false,\n minTickGap: implicitXAxis.minTickGap,\n mirror: implicitXAxis.mirror,\n orientation: implicitXAxis.orientation,\n padding: implicitXAxis.padding,\n reversed: implicitXAxis.reversed,\n scale: implicitXAxis.scale,\n tick: implicitXAxis.tick,\n tickCount: implicitXAxis.tickCount,\n tickLine: defaultCartesianAxisProps.tickLine,\n tickSize: defaultCartesianAxisProps.tickSize,\n type: implicitXAxis.type,\n niceTicks: implicitXAxis.niceTicks,\n xAxisId: 0\n};\nvar XAxisSettingsDispatcher = outsideProps => {\n var props = resolveDefaultProps(outsideProps, xAxisDefaultProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetXAxisSettings, {\n allowDataOverflow: props.allowDataOverflow,\n allowDecimals: props.allowDecimals,\n allowDuplicatedCategory: props.allowDuplicatedCategory,\n angle: props.angle,\n dataKey: props.dataKey,\n domain: props.domain,\n height: props.height,\n hide: props.hide,\n id: props.xAxisId,\n includeHidden: props.includeHidden,\n interval: props.interval,\n minTickGap: props.minTickGap,\n mirror: props.mirror,\n name: props.name,\n orientation: props.orientation,\n padding: props.padding,\n reversed: props.reversed,\n scale: props.scale,\n tick: props.tick,\n tickCount: props.tickCount,\n tickFormatter: props.tickFormatter,\n ticks: props.ticks,\n type: props.type,\n unit: props.unit,\n niceTicks: props.niceTicks\n }), /*#__PURE__*/React.createElement(XAxisImpl, props));\n};\n\n/**\n * @consumes CartesianViewBoxContext\n * @provides CartesianLabelContext\n */\nexport var XAxis = /*#__PURE__*/React.memo(XAxisSettingsDispatcher, axisPropsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\n\nXAxis.displayName = 'XAxis';","var _excluded = [\"type\"],\n _excluded2 = [\"dangerouslySetInnerHTML\", \"ticks\", \"scale\"],\n _excluded3 = [\"id\", \"scale\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { isValidElement, useLayoutEffect, useMemo, useRef } from 'react';\nimport { clsx } from 'clsx';\nimport { CartesianAxis, defaultCartesianAxisProps } from './CartesianAxis';\nimport { addYAxis, replaceYAxis, removeYAxis, updateYAxisWidth } from '../state/cartesianAxisSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { implicitYAxis, selectTicksOfAxis, selectYAxisPosition, selectYAxisSettingsNoDefaults, selectYAxisSize } from '../state/selectors/axisSelectors';\nimport { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { isLabelContentAFunction } from '../component/Label';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { axisPropsAreEqual } from '../util/axisPropsAreEqual';\nimport { useCartesianChartLayout } from '../context/chartLayoutContext';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\nfunction SetYAxisSettings(props) {\n var dispatch = useAppDispatch();\n var prevSettingsRef = useRef(null);\n var layout = useCartesianChartLayout();\n var {\n type: typeFromProps\n } = props,\n restProps = _objectWithoutProperties(props, _excluded);\n var evaluatedType = getAxisTypeBasedOnLayout(layout, 'yAxis', typeFromProps);\n var settings = useMemo(() => {\n if (evaluatedType == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, restProps), {}, {\n type: evaluatedType\n });\n }, [evaluatedType, restProps]);\n useLayoutEffect(() => {\n if (settings == null) {\n return;\n }\n if (prevSettingsRef.current === null) {\n dispatch(addYAxis(settings));\n } else if (prevSettingsRef.current !== settings) {\n dispatch(replaceYAxis({\n prev: prevSettingsRef.current,\n next: settings\n }));\n }\n prevSettingsRef.current = settings;\n }, [settings, dispatch]);\n useLayoutEffect(() => {\n return () => {\n if (prevSettingsRef.current) {\n dispatch(removeYAxis(prevSettingsRef.current));\n prevSettingsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}\nfunction YAxisImpl(props) {\n var {\n yAxisId,\n className,\n width,\n label\n } = props;\n var cartesianAxisRef = useRef(null);\n var labelRef = useRef(null);\n var viewBox = useAppSelector(selectAxisViewBox);\n var isPanorama = useIsPanorama();\n var dispatch = useAppDispatch();\n var axisType = 'yAxis';\n var axisSize = useAppSelector(state => selectYAxisSize(state, yAxisId));\n var position = useAppSelector(state => selectYAxisPosition(state, yAxisId));\n var cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, yAxisId, isPanorama));\n /*\n * Here we select settings from the store and prefer to use them instead of the actual props\n * so that the chart is consistent. If we used the props directly, some components will use axis settings\n * from state and some from props and because there is a render step between these two, they might be showing different things.\n * https://github.com/recharts/recharts/issues/6257\n */\n var synchronizedSettings = useAppSelector(state => selectYAxisSettingsNoDefaults(state, yAxisId));\n useLayoutEffect(() => {\n // No dynamic width calculation is done when width !== 'auto'\n // or when a function/react element is used for label\n if (width !== 'auto' || !axisSize || isLabelContentAFunction(label) || /*#__PURE__*/isValidElement(label) || synchronizedSettings == null) {\n return;\n }\n var axisComponent = cartesianAxisRef.current;\n if (!axisComponent) {\n return;\n }\n var updatedYAxisWidth = axisComponent.getCalculatedWidth();\n\n // if the width has changed, dispatch an action to update the width\n if (Math.round(axisSize.width) !== Math.round(updatedYAxisWidth)) {\n dispatch(updateYAxisWidth({\n id: yAxisId,\n width: updatedYAxisWidth\n }));\n }\n }, [\n // The dependency on cartesianAxisRef.current is not needed because useLayoutEffect will run after every render.\n // The ref will be populated by then.\n // To re-run this effect when ticks change, we can depend on the ticks array from the store.\n cartesianTickItems, axisSize, dispatch, label, yAxisId, width, synchronizedSettings]);\n if (axisSize == null || position == null || synchronizedSettings == null) {\n return null;\n }\n var {\n dangerouslySetInnerHTML,\n ticks,\n scale: del\n } = props,\n allOtherProps = _objectWithoutProperties(props, _excluded2);\n var {\n id,\n scale: del2\n } = synchronizedSettings,\n restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded3);\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {\n ref: cartesianAxisRef,\n labelRef: labelRef,\n x: position.x,\n y: position.y,\n tickTextProps: width === 'auto' ? {\n width: undefined\n } : {\n width\n },\n width: axisSize.width,\n height: axisSize.height,\n className: clsx(\"recharts-\".concat(axisType, \" \").concat(axisType), className),\n viewBox: viewBox,\n ticks: cartesianTickItems,\n axisType: axisType,\n axisId: yAxisId\n }));\n}\nexport var yAxisDefaultProps = {\n allowDataOverflow: implicitYAxis.allowDataOverflow,\n allowDecimals: implicitYAxis.allowDecimals,\n allowDuplicatedCategory: implicitYAxis.allowDuplicatedCategory,\n angle: implicitYAxis.angle,\n axisLine: defaultCartesianAxisProps.axisLine,\n hide: false,\n includeHidden: implicitYAxis.includeHidden,\n interval: implicitYAxis.interval,\n label: false,\n minTickGap: implicitYAxis.minTickGap,\n mirror: implicitYAxis.mirror,\n orientation: implicitYAxis.orientation,\n padding: implicitYAxis.padding,\n reversed: implicitYAxis.reversed,\n scale: implicitYAxis.scale,\n tick: implicitYAxis.tick,\n tickCount: implicitYAxis.tickCount,\n tickLine: defaultCartesianAxisProps.tickLine,\n tickSize: defaultCartesianAxisProps.tickSize,\n type: implicitYAxis.type,\n niceTicks: implicitYAxis.niceTicks,\n width: implicitYAxis.width,\n yAxisId: 0\n};\nvar YAxisSettingsDispatcher = outsideProps => {\n var props = resolveDefaultProps(outsideProps, yAxisDefaultProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetYAxisSettings, {\n interval: props.interval,\n id: props.yAxisId,\n scale: props.scale,\n type: props.type,\n domain: props.domain,\n allowDataOverflow: props.allowDataOverflow,\n dataKey: props.dataKey,\n allowDuplicatedCategory: props.allowDuplicatedCategory,\n allowDecimals: props.allowDecimals,\n tickCount: props.tickCount,\n padding: props.padding,\n includeHidden: props.includeHidden,\n reversed: props.reversed,\n ticks: props.ticks,\n width: props.width,\n orientation: props.orientation,\n mirror: props.mirror,\n hide: props.hide,\n unit: props.unit,\n name: props.name,\n angle: props.angle,\n minTickGap: props.minTickGap,\n tick: props.tick,\n tickFormatter: props.tickFormatter,\n niceTicks: props.niceTicks\n }), /*#__PURE__*/React.createElement(YAxisImpl, props));\n};\n\n/**\n * @consumes CartesianViewBoxContext\n * @provides CartesianLabelContext\n */\nexport var YAxis = /*#__PURE__*/React.memo(YAxisSettingsDispatcher, axisPropsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\n\nYAxis.displayName = 'YAxis';","import { createSelector } from 'reselect';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectTooltipAxisRangeWithReverse, selectTooltipAxisTicks } from './tooltipSelectors';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { combineActiveProps, selectOrderedTooltipTicks } from './selectors';\nimport { selectPolarViewBox } from './polarAxisSelectors';\nimport { selectTooltipAxisType } from './selectTooltipAxisType';\nvar pickChartPointer = (_state, chartPointer) => chartPointer;\nexport var selectActivePropsFromChartPointer = createSelector([pickChartPointer, selectChartLayout, selectPolarViewBox, selectTooltipAxisType, selectTooltipAxisRangeWithReverse, selectTooltipAxisTicks, selectOrderedTooltipTicks, selectChartOffsetInternal], combineActiveProps);","/**\n * Type guard to check if the pointer event is from an SVG element.\n */\nfunction isSvgPointer(pointer) {\n return 'getBBox' in pointer.currentTarget && typeof pointer.currentTarget.getBBox === 'function';\n}\n\n/**\n * Computes relative element coordinates from mouse or touch event.\n *\n * The output coordinates are relative to the top-left corner of the active element (= currentTarget),\n * where the top-left corner is (0, 0).\n * Moving right, the x-coordinate increases, and moving down, the y-coordinate increases.\n *\n * The coordinates are rounded to the nearest integer and account for CSS transform scale.\n * So element that's scaled will return the same coordinates as element that's not scaled.\n *\n * In other words: you zoom in or out, numbers stay the same.\n *\n * This function works with both HTML elements and SVG elements.\n *\n * It works with both Mouse and Touch events.\n * For Touch events, it returns an array of coordinates, one for each touch point.\n * For Mouse events, it returns a single coordinate object.\n *\n * @example\n * ```tsx\n * // In an HTML element event handler. Legend passes the native event as the 3rd argument.\n * <Legend onMouseMove={(_data, _i, e) => {\n * // These coordinates are relative to the top-left corner of the Legend element\n * const { relativeX, relativeY } = getRelativeCoordinate(e);\n * console.log(`Mouse at Legend position: (${relativeX}, ${relativeY})`);\n * }}>\n * ```\n *\n * @example\n * ```tsx\n * // In an SVG element event handler. Area is an SVG element, and passes the event as second argument.\n * <Area onMouseMove={(_, e) => {\n * const { relativeX, relativeY } = getRelativeCoordinate(e);\n * console.log(`Mouse at Area position: (${relativeX}, ${relativeY})`);\n * // Here you can call usePlotArea to convert to chart coordinates\n * }}>\n * ```\n *\n * @example\n * ```tsx\n * // In a chart root touch handler. Chart root passes the event as second argument.\n * <LineChart onTouchMove={(_, e) => {\n * const touchPoints = getRelativeCoordinate(e);\n * touchPoints.forEach(({ relativeX, relativeY }, index) => {\n * console.log(`Touch point ${index} at LineChart position: (${relativeX}, ${relativeY})`);\n * });\n * }}>\n * ```\n *\n * @since 3.8\n * @param event The mouse or touch event from React event handlers (works with both HTML and SVG elements)\n * @returns Coordinates relative to the top-left corner of the element. Single object for Mouse events, array of objects for Touch events.\n */\n\nexport function getRelativeCoordinate(event) {\n var rect = event.currentTarget.getBoundingClientRect();\n var scaleX, scaleY;\n if (isSvgPointer(event)) {\n // For SVG elements, use getBBox() to get the intrinsic size in SVG coordinates\n var bbox = event.currentTarget.getBBox();\n scaleX = bbox.width > 0 ? rect.width / bbox.width : 1;\n scaleY = bbox.height > 0 ? rect.height / bbox.height : 1;\n } else {\n // For HTML elements, use offsetWidth/offsetHeight\n var element = event.currentTarget;\n scaleX = element.offsetWidth > 0 ? rect.width / element.offsetWidth : 1;\n scaleY = element.offsetHeight > 0 ? rect.height / element.offsetHeight : 1;\n }\n var getCoordinates = (clientX, clientY) => ({\n /*\n * Here it's important to use:\n * - event.clientX and event.clientY to get the mouse position relative to the viewport, including scroll.\n * - pageX and pageY are not used because they are relative to the whole document, and ignore scroll.\n * - rect.left and rect.top are used to get the position of the chart relative to the viewport.\n * - offsetX and offsetY are not used because they are relative to the offset parent\n * which may or may not be the same as the clientX and clientY, depending on the position of the chart in the DOM\n * and surrounding element styles. CSS position: relative, absolute, fixed, will change the offset parent.\n * - scaleX and scaleY are necessary for when the chart element is scaled using CSS `transform: scale(N)`.\n */\n relativeX: Math.round((clientX - rect.left) / scaleX),\n relativeY: Math.round((clientY - rect.top) / scaleY)\n });\n if ('touches' in event) {\n return Array.from(event.touches).map(touch => getCoordinates(touch.clientX, touch.clientY));\n }\n return getCoordinates(event.clientX, event.clientY);\n}","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { mouseLeaveChart, setMouseClickAxisIndex, setMouseOverAxisIndex } from './tooltipSlice';\nimport { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';\nimport { selectTooltipEventType } from './selectors/selectTooltipEventType';\nimport { getRelativeCoordinate } from '../util/getRelativeCoordinate';\nexport var mouseClickAction = createAction('mouseClick');\nexport var mouseClickMiddleware = createListenerMiddleware();\n\n// TODO: there's a bug here when you click the chart the activeIndex resets to zero\nmouseClickMiddleware.startListening({\n actionCreator: mouseClickAction,\n effect: (action, listenerApi) => {\n var mousePointer = action.payload;\n var activeProps = selectActivePropsFromChartPointer(listenerApi.getState(), getRelativeCoordinate(mousePointer));\n if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {\n listenerApi.dispatch(setMouseClickAxisIndex({\n activeIndex: activeProps.activeIndex,\n activeDataKey: undefined,\n activeCoordinate: activeProps.activeCoordinate\n }));\n }\n }\n});\nexport var mouseMoveAction = createAction('mouseMove');\nexport var mouseMoveMiddleware = createListenerMiddleware();\n\n/*\n * This single rafId is safe because:\n * 1. Each chart has its own Redux store instance with its own middleware\n * 2. mouseMoveAction only fires from one DOM element (the chart wrapper)\n * 3. Rapid mousemove events from the same element SHOULD debounce - we only care about the latest position\n * This is different from externalEventsMiddleware which handles multiple event types\n * (click, mouseenter, mouseleave, etc.) that should NOT cancel each other.\n */\nvar rafId = null;\nvar timeoutId = null;\nvar latestChartPointer = null;\nmouseMoveMiddleware.startListening({\n actionCreator: mouseMoveAction,\n effect: (action, listenerApi) => {\n var mousePointer = action.payload;\n var state = listenerApi.getState();\n var {\n throttleDelay,\n throttledEvents\n } = state.eventSettings;\n var isThrottled = throttledEvents === 'all' || (throttledEvents === null || throttledEvents === void 0 ? void 0 : throttledEvents.includes('mousemove'));\n\n // Cancel any pending execution\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n if (timeoutId !== null && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n\n /*\n * Here it is important to resolve the chart pointer _before_ the callback,\n * because once we leave the current event loop, the mousePointer event object will lose\n * reference to currentTarget which getRelativeCoordinate uses.\n */\n latestChartPointer = getRelativeCoordinate(mousePointer);\n var callback = () => {\n /*\n * Here we read a fresh state again inside the callback to ensure we have the latest state values\n * after any potential actions that may have been dispatched between the original event and this callback.\n */\n var currentState = listenerApi.getState();\n var tooltipEventType = selectTooltipEventType(currentState, currentState.tooltip.settings.shared);\n if (!latestChartPointer) {\n rafId = null;\n timeoutId = null;\n return;\n }\n\n /*\n * This functionality only applies to charts that have axes.\n * Graphical items have its own mouse events handling mechanism where they attach events directly to the items.\n */\n if (tooltipEventType === 'axis') {\n var activeProps = selectActivePropsFromChartPointer(currentState, latestChartPointer);\n if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {\n listenerApi.dispatch(setMouseOverAxisIndex({\n activeIndex: activeProps.activeIndex,\n activeDataKey: undefined,\n activeCoordinate: activeProps.activeCoordinate\n }));\n } else {\n // this is needed to clear tooltip state when the mouse moves out of the inRange (svg - offset) function, but not yet out of the svg\n listenerApi.dispatch(mouseLeaveChart());\n }\n }\n rafId = null;\n timeoutId = null;\n };\n if (!isThrottled) {\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n rafId = requestAnimationFrame(callback);\n } else if (typeof throttleDelay === 'number') {\n if (timeoutId === null) {\n timeoutId = setTimeout(callback, throttleDelay);\n }\n }\n }\n});","export function reduxDevtoolsJsonStringifyReplacer(key, value) {\n if (value instanceof HTMLElement) {\n return \"HTMLElement <\".concat(value.tagName, \" class=\\\"\").concat(value.className, \"\\\">\");\n }\n if (value === window) {\n return 'global.window';\n }\n if (key === 'children' && typeof value === 'object' && value !== null) {\n return '<<CHILDREN>>';\n }\n return value;\n}","import { createSlice } from '@reduxjs/toolkit';\n\n/**\n * These are chart options that users can choose - which means they can also\n * choose to change them which should trigger a re-render.\n */\n\nexport var initialState = {\n accessibilityLayer: true,\n barCategoryGap: '10%',\n barGap: 4,\n barSize: undefined,\n className: undefined,\n maxBarSize: undefined,\n stackOffset: 'none',\n syncId: undefined,\n syncMethod: 'index',\n baseValue: undefined,\n reverseStackOrder: false\n};\nvar rootPropsSlice = createSlice({\n name: 'rootProps',\n initialState,\n reducers: {\n updateOptions: (state, action) => {\n var _action$payload$barGa;\n state.accessibilityLayer = action.payload.accessibilityLayer;\n state.barCategoryGap = action.payload.barCategoryGap;\n state.barGap = (_action$payload$barGa = action.payload.barGap) !== null && _action$payload$barGa !== void 0 ? _action$payload$barGa : initialState.barGap;\n state.barSize = action.payload.barSize;\n state.maxBarSize = action.payload.maxBarSize;\n state.stackOffset = action.payload.stackOffset;\n state.syncId = action.payload.syncId;\n state.syncMethod = action.payload.syncMethod;\n state.className = action.payload.className;\n state.baseValue = action.payload.baseValue;\n state.reverseStackOrder = action.payload.reverseStackOrder;\n }\n }\n});\nexport var rootPropsReducer = rootPropsSlice.reducer;\nexport var {\n updateOptions\n} = rootPropsSlice.actions;","import { createSlice } from '@reduxjs/toolkit';\nvar initialState = null;\nvar reducers = {\n updatePolarOptions: (state, action) => {\n if (state === null) {\n return action.payload;\n }\n state.startAngle = action.payload.startAngle;\n state.endAngle = action.payload.endAngle;\n state.cx = action.payload.cx;\n state.cy = action.payload.cy;\n state.innerRadius = action.payload.innerRadius;\n state.outerRadius = action.payload.outerRadius;\n return state;\n }\n};\nvar polarOptionsSlice = createSlice({\n name: 'polarOptions',\n initialState,\n reducers\n});\nexport var {\n updatePolarOptions\n} = polarOptionsSlice.actions;\nexport var polarOptionsReducer = polarOptionsSlice.reducer;","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { setKeyboardInteraction } from './tooltipSlice';\nimport { selectTooltipAxisDomain, selectTooltipAxisTicks, selectTooltipDisplayedData } from './selectors/tooltipSelectors';\nimport { selectCoordinateForDefaultIndex } from './selectors/selectors';\nimport { selectChartDirection, selectTooltipAxisDataKey } from './selectors/axisSelectors';\nimport { combineActiveTooltipIndex } from './selectors/combiners/combineActiveTooltipIndex';\nexport var keyDownAction = createAction('keyDown');\nexport var focusAction = createAction('focus');\nexport var blurAction = createAction('blur');\nexport var keyboardEventsMiddleware = createListenerMiddleware();\nvar rafId = null;\nvar timeoutId = null;\nvar latestKeyboardActionPayload = null;\nkeyboardEventsMiddleware.startListening({\n actionCreator: keyDownAction,\n effect: (action, listenerApi) => {\n latestKeyboardActionPayload = action.payload;\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n var state = listenerApi.getState();\n var {\n throttleDelay,\n throttledEvents\n } = state.eventSettings;\n var isThrottled = throttledEvents === 'all' || throttledEvents.includes('keydown');\n if (timeoutId !== null && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n var callback = () => {\n try {\n var currentState = listenerApi.getState();\n var accessibilityLayerIsActive = currentState.rootProps.accessibilityLayer !== false;\n if (!accessibilityLayerIsActive) {\n return;\n }\n var {\n keyboardInteraction\n } = currentState.tooltip;\n var key = latestKeyboardActionPayload;\n if (key !== 'ArrowRight' && key !== 'ArrowLeft' && key !== 'Enter') {\n return;\n }\n\n // TODO this is lacking index for charts that do not support numeric indexes\n var resolvedIndex = combineActiveTooltipIndex(keyboardInteraction, selectTooltipDisplayedData(currentState), selectTooltipAxisDataKey(currentState), selectTooltipAxisDomain(currentState));\n var currentIndex = resolvedIndex == null ? -1 : Number(resolvedIndex);\n if (!Number.isFinite(currentIndex) || currentIndex < 0) {\n return;\n }\n var tooltipTicks = selectTooltipAxisTicks(currentState);\n if (key === 'Enter') {\n var _coordinate = selectCoordinateForDefaultIndex(currentState, 'axis', 'hover', String(keyboardInteraction.index));\n listenerApi.dispatch(setKeyboardInteraction({\n active: !keyboardInteraction.active,\n activeIndex: keyboardInteraction.index,\n activeCoordinate: _coordinate\n }));\n return;\n }\n var direction = selectChartDirection(currentState);\n var directionMultiplier = direction === 'left-to-right' ? 1 : -1;\n var movement = key === 'ArrowRight' ? 1 : -1;\n var nextIndex = currentIndex + movement * directionMultiplier;\n if (tooltipTicks == null || nextIndex >= tooltipTicks.length || nextIndex < 0) {\n return;\n }\n var coordinate = selectCoordinateForDefaultIndex(currentState, 'axis', 'hover', String(nextIndex));\n listenerApi.dispatch(setKeyboardInteraction({\n active: true,\n activeIndex: nextIndex.toString(),\n activeCoordinate: coordinate\n }));\n } finally {\n rafId = null;\n timeoutId = null;\n }\n };\n if (!isThrottled) {\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n rafId = requestAnimationFrame(callback);\n } else if (typeof throttleDelay === 'number') {\n if (timeoutId === null) {\n callback();\n latestKeyboardActionPayload = null;\n timeoutId = setTimeout(() => {\n if (latestKeyboardActionPayload) {\n callback();\n } else {\n timeoutId = null;\n rafId = null;\n }\n }, throttleDelay);\n }\n }\n }\n});\nkeyboardEventsMiddleware.startListening({\n actionCreator: focusAction,\n effect: (_action, listenerApi) => {\n var state = listenerApi.getState();\n var accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;\n if (!accessibilityLayerIsActive) {\n return;\n }\n var {\n keyboardInteraction\n } = state.tooltip;\n if (keyboardInteraction.active) {\n return;\n }\n if (keyboardInteraction.index == null) {\n var nextIndex = '0';\n var coordinate = selectCoordinateForDefaultIndex(state, 'axis', 'hover', String(nextIndex));\n listenerApi.dispatch(setKeyboardInteraction({\n active: true,\n activeIndex: nextIndex,\n activeCoordinate: coordinate\n }));\n }\n }\n});\nkeyboardEventsMiddleware.startListening({\n actionCreator: blurAction,\n effect: (_action, listenerApi) => {\n var state = listenerApi.getState();\n var accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;\n if (!accessibilityLayerIsActive) {\n return;\n }\n var {\n keyboardInteraction\n } = state.tooltip;\n if (keyboardInteraction.active) {\n listenerApi.dispatch(setKeyboardInteraction({\n active: false,\n activeIndex: keyboardInteraction.index,\n activeCoordinate: keyboardInteraction.coordinate\n }));\n }\n }\n});","export function createEventProxy(reactEvent) {\n reactEvent.persist();\n var {\n currentTarget\n } = reactEvent;\n return new Proxy(reactEvent, {\n get: (target, prop) => {\n if (prop === 'currentTarget') {\n return currentTarget;\n }\n var value = Reflect.get(target, prop);\n if (typeof value === 'function') {\n return value.bind(target);\n }\n return value;\n }\n });\n}","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { selectActiveLabel, selectActiveTooltipCoordinate, selectActiveTooltipDataKey, selectActiveTooltipIndex, selectIsTooltipActive } from './selectors/tooltipSelectors';\nimport { createEventProxy } from '../util/createEventProxy';\nexport var externalEventAction = createAction('externalEvent');\nexport var externalEventsMiddleware = createListenerMiddleware();\n\n/*\n * We need a Map keyed by event type because this middleware handles MULTIPLE different event types\n * (click, mouseenter, mouseleave, mousedown, mouseup, contextmenu, dblclick, touchstart, touchmove, touchend)\n * from the same DOM element. Different event types should NOT cancel each other's animation frames.\n * For example, a click event and a mousemove event can happen in quick succession and both should be processed.\n * This is different from mouseMoveMiddleware which only handles one event type and uses a single rafId.\n */\nvar rafIdMap = new Map();\nvar timeoutIdMap = new Map();\nvar latestEventMap = new Map();\nexternalEventsMiddleware.startListening({\n actionCreator: externalEventAction,\n effect: (action, listenerApi) => {\n var {\n handler,\n reactEvent\n } = action.payload;\n if (handler == null) {\n return;\n }\n var eventType = reactEvent.type;\n var eventProxy = createEventProxy(reactEvent);\n latestEventMap.set(eventType, {\n handler,\n reactEvent: eventProxy\n });\n\n // Cancel any pending execution for this event type\n var existingRafId = rafIdMap.get(eventType);\n if (existingRafId !== undefined) {\n cancelAnimationFrame(existingRafId);\n rafIdMap.delete(eventType);\n }\n var state = listenerApi.getState();\n var {\n throttleDelay,\n throttledEvents\n } = state.eventSettings;\n\n /*\n * reactEvent.type gives us the event type as a string, e.g., 'click', 'mousemove', etc.\n * which is the same as the names used in throttledEvents array\n * but that array is strictly typed as ReadonlyArray<keyof GlobalEventHandlersEventMap> | 'all' | undefined\n * so that we can have relevant autocomplete and type checking elsewhere.\n * This makes TypeScript panic because it refuses to call .includes() on ReadonlyArray<keyof GlobalEventHandlersEventMap>\n * with a string argument.\n * To satisfy TypeScript, we need to explicitly typecast throttledEvents here.\n */\n var eventListAsString = throttledEvents;\n\n // Check if this event type should be throttled\n // throttledEvents can be 'all' or an array of event names\n var isThrottled = eventListAsString === 'all' || (eventListAsString === null || eventListAsString === void 0 ? void 0 : eventListAsString.includes(eventType));\n var existingTimeoutId = timeoutIdMap.get(eventType);\n if (existingTimeoutId !== undefined && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(existingTimeoutId);\n timeoutIdMap.delete(eventType);\n }\n var callback = () => {\n var latestAction = latestEventMap.get(eventType);\n try {\n if (!latestAction) {\n // This happens if the event was consumed by the leading edge and no new event came in\n return;\n }\n var {\n handler: latestHandler,\n reactEvent: latestEvent\n } = latestAction;\n var currentState = listenerApi.getState();\n var nextState = {\n activeCoordinate: selectActiveTooltipCoordinate(currentState),\n activeDataKey: selectActiveTooltipDataKey(currentState),\n activeIndex: selectActiveTooltipIndex(currentState),\n activeLabel: selectActiveLabel(currentState),\n activeTooltipIndex: selectActiveTooltipIndex(currentState),\n isTooltipActive: selectIsTooltipActive(currentState)\n };\n if (latestHandler) {\n latestHandler(nextState, latestEvent);\n }\n } finally {\n rafIdMap.delete(eventType);\n timeoutIdMap.delete(eventType);\n latestEventMap.delete(eventType);\n }\n };\n if (!isThrottled) {\n // Execute immediately\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n var rafId = requestAnimationFrame(callback);\n rafIdMap.set(eventType, rafId);\n } else if (typeof throttleDelay === 'number') {\n if (!timeoutIdMap.has(eventType)) {\n /*\n * Leading edge execution - execute immediately on the first event\n * and then start the cooldown period to throttle subsequent events.\n */\n callback();\n\n // Start cooldown\n var timeoutId = setTimeout(callback, throttleDelay);\n timeoutIdMap.set(eventType, timeoutId);\n }\n } else {\n // Should not happen based on type, but fallback to immediate\n callback();\n }\n }\n});","import { createSelector } from 'reselect';\nimport { selectTooltipState } from './selectTooltipState';\nvar selectAllTooltipPayloadConfiguration = createSelector([selectTooltipState], tooltipState => tooltipState.tooltipItemPayloads);\nexport var selectTooltipCoordinate = createSelector([selectAllTooltipPayloadConfiguration, (_state, tooltipIndex) => tooltipIndex, (_state, _tooltipIndex, graphicalItemId) => graphicalItemId], (allTooltipConfigurations, tooltipIndex, graphicalItemId) => {\n if (tooltipIndex == null) {\n return undefined;\n }\n var mostRelevantTooltipConfiguration = allTooltipConfigurations.find(tooltipConfiguration => {\n return tooltipConfiguration.settings.graphicalItemId === graphicalItemId;\n });\n if (mostRelevantTooltipConfiguration == null) {\n return undefined;\n }\n var {\n getPosition\n } = mostRelevantTooltipConfiguration;\n if (getPosition == null) {\n return undefined;\n }\n return getPosition(tooltipIndex);\n});","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { setActiveMouseOverItemIndex, setMouseOverAxisIndex } from './tooltipSlice';\nimport { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';\nimport { getRelativeCoordinate } from '../util/getRelativeCoordinate';\nimport { selectTooltipEventType } from './selectors/selectTooltipEventType';\nimport { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME, DATA_ITEM_INDEX_ATTRIBUTE_NAME } from '../util/Constants';\nimport { selectTooltipCoordinate } from './selectors/touchSelectors';\nimport { selectAllGraphicalItemsSettings } from './selectors/tooltipSelectors';\nimport { createEventProxy } from '../util/createEventProxy';\nexport var touchEventAction = createAction('touchMove');\nexport var touchEventMiddleware = createListenerMiddleware();\nvar rafId = null;\nvar timeoutId = null;\nvar latestChartPointers = null;\nvar latestTouchEvent = null;\ntouchEventMiddleware.startListening({\n actionCreator: touchEventAction,\n effect: (action, listenerApi) => {\n var touchEvent = action.payload;\n if (touchEvent.touches == null || touchEvent.touches.length === 0) {\n return;\n }\n latestTouchEvent = createEventProxy(touchEvent);\n var state = listenerApi.getState();\n var {\n throttleDelay,\n throttledEvents\n } = state.eventSettings;\n var isThrottled = throttledEvents === 'all' || throttledEvents.includes('touchmove');\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n if (timeoutId !== null && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n latestChartPointers = Array.from(touchEvent.touches).map(touch => getRelativeCoordinate({\n clientX: touch.clientX,\n clientY: touch.clientY,\n currentTarget: touchEvent.currentTarget\n }));\n var callback = () => {\n if (latestTouchEvent == null) {\n return;\n }\n var currentState = listenerApi.getState();\n var tooltipEventType = selectTooltipEventType(currentState, currentState.tooltip.settings.shared);\n if (tooltipEventType === 'axis') {\n var _latestChartPointers;\n var latestTouchPointer = (_latestChartPointers = latestChartPointers) === null || _latestChartPointers === void 0 ? void 0 : _latestChartPointers[0];\n if (latestTouchPointer == null) {\n rafId = null;\n timeoutId = null;\n return;\n }\n var activeProps = selectActivePropsFromChartPointer(currentState, latestTouchPointer);\n if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {\n listenerApi.dispatch(setMouseOverAxisIndex({\n activeIndex: activeProps.activeIndex,\n activeDataKey: undefined,\n activeCoordinate: activeProps.activeCoordinate\n }));\n }\n } else if (tooltipEventType === 'item') {\n var _target$getAttribute;\n var touch = latestTouchEvent.touches[0];\n if (document.elementFromPoint == null || touch == null) {\n return;\n }\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n if (!target || !target.getAttribute) {\n return;\n }\n var itemIndex = target.getAttribute(DATA_ITEM_INDEX_ATTRIBUTE_NAME);\n var graphicalItemId = (_target$getAttribute = target.getAttribute(DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME)) !== null && _target$getAttribute !== void 0 ? _target$getAttribute : undefined;\n var settings = selectAllGraphicalItemsSettings(currentState).find(item => item.id === graphicalItemId);\n if (itemIndex == null || settings == null || graphicalItemId == null) {\n return;\n }\n var {\n dataKey\n } = settings;\n var coordinate = selectTooltipCoordinate(currentState, itemIndex, graphicalItemId);\n listenerApi.dispatch(setActiveMouseOverItemIndex({\n activeDataKey: dataKey,\n activeIndex: itemIndex,\n activeCoordinate: coordinate,\n activeGraphicalItemId: graphicalItemId\n }));\n }\n rafId = null;\n timeoutId = null;\n };\n if (!isThrottled) {\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n rafId = requestAnimationFrame(callback);\n } else if (typeof throttleDelay === 'number') {\n if (timeoutId === null) {\n callback();\n latestTouchEvent = null;\n timeoutId = setTimeout(() => {\n if (latestTouchEvent) {\n callback();\n } else {\n timeoutId = null;\n rafId = null;\n }\n }, throttleDelay);\n }\n }\n }\n});","import { createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nexport var initialEventSettingsState = {\n throttleDelay: 'raf',\n throttledEvents: ['mousemove', 'touchmove', 'pointermove', 'scroll', 'wheel']\n};\nvar eventSettingsSlice = createSlice({\n name: 'eventSettings',\n initialState: initialEventSettingsState,\n reducers: {\n setEventSettings: (state, action) => {\n if (action.payload.throttleDelay != null) {\n state.throttleDelay = action.payload.throttleDelay;\n }\n if (action.payload.throttledEvents != null) {\n state.throttledEvents = castDraft(action.payload.throttledEvents);\n }\n }\n }\n});\nexport var {\n setEventSettings\n} = eventSettingsSlice.actions;\nexport var eventSettingsReducer = eventSettingsSlice.reducer;","import { autoBatchEnhancer, combineReducers, configureStore } from '@reduxjs/toolkit';\nimport { optionsReducer } from './optionsSlice';\nimport { tooltipReducer } from './tooltipSlice';\nimport { chartDataReducer } from './chartDataSlice';\nimport { chartLayoutReducer } from './layoutSlice';\nimport { mouseClickMiddleware, mouseMoveMiddleware } from './mouseEventsMiddleware';\nimport { reduxDevtoolsJsonStringifyReplacer } from './reduxDevtoolsJsonStringifyReplacer';\nimport { cartesianAxisReducer } from './cartesianAxisSlice';\nimport { graphicalItemsReducer } from './graphicalItemsSlice';\nimport { referenceElementsReducer } from './referenceElementsSlice';\nimport { brushReducer } from './brushSlice';\nimport { legendReducer } from './legendSlice';\nimport { rootPropsReducer } from './rootPropsSlice';\nimport { polarAxisReducer } from './polarAxisSlice';\nimport { polarOptionsReducer } from './polarOptionsSlice';\nimport { keyboardEventsMiddleware } from './keyboardEventsMiddleware';\nimport { externalEventsMiddleware } from './externalEventsMiddleware';\nimport { touchEventMiddleware } from './touchEventsMiddleware';\nimport { errorBarReducer } from './errorBarSlice';\nimport { Global } from '../util/Global';\nimport { zIndexReducer } from './zIndexSlice';\nimport { eventSettingsReducer } from './eventSettingsSlice';\nimport { renderedTicksReducer } from './renderedTicksSlice';\nvar rootReducer = combineReducers({\n brush: brushReducer,\n cartesianAxis: cartesianAxisReducer,\n chartData: chartDataReducer,\n errorBars: errorBarReducer,\n eventSettings: eventSettingsReducer,\n graphicalItems: graphicalItemsReducer,\n layout: chartLayoutReducer,\n legend: legendReducer,\n options: optionsReducer,\n polarAxis: polarAxisReducer,\n polarOptions: polarOptionsReducer,\n referenceElements: referenceElementsReducer,\n renderedTicks: renderedTicksReducer,\n rootProps: rootPropsReducer,\n tooltip: tooltipReducer,\n zIndex: zIndexReducer\n});\nexport var createRechartsStore = function createRechartsStore(preloadedState) {\n var chartName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Chart';\n return configureStore({\n reducer: rootReducer,\n // redux-toolkit v1 types are unhappy with the preloadedState type. Remove the `as any` when bumping to v2\n preloadedState: preloadedState,\n // @ts-expect-error redux-toolkit v1 types are unhappy with the middleware array. Remove this comment when bumping to v2\n middleware: getDefaultMiddleware => {\n var _process$env$NODE_ENV;\n return getDefaultMiddleware({\n serializableCheck: false,\n immutableCheck: !['commonjs', 'es6', 'production'].includes((_process$env$NODE_ENV = \"es6\") !== null && _process$env$NODE_ENV !== void 0 ? _process$env$NODE_ENV : '')\n }).concat([mouseClickMiddleware.middleware, mouseMoveMiddleware.middleware, keyboardEventsMiddleware.middleware, externalEventsMiddleware.middleware, touchEventMiddleware.middleware]);\n },\n /*\n * I can't find out how to satisfy typescript here.\n * We return `EnhancerArray<[StoreEnhancer<{}, {}>, StoreEnhancer]>` from this function,\n * but the types say we should return `EnhancerArray<StoreEnhancer<{}, {}>`.\n * Looks like it's badly inferred generics, but it won't allow me to provide the correct type manually either.\n * So let's just ignore the error for now.\n */\n // @ts-expect-error mismatched generics\n enhancers: getDefaultEnhancers => {\n var enhancers = getDefaultEnhancers;\n if (typeof getDefaultEnhancers === 'function') {\n /*\n * In RTK v2 this is always a function, but in v1 it is an array.\n * Because we have @types/redux-toolkit v1 as a dependency, typescript is going to flag this as an error.\n * We support both RTK v1 and v2, so we need to do this check.\n * https://redux-toolkit.js.org/usage/migrating-rtk-2#configurestoreenhancers-must-be-a-callback\n */\n // @ts-expect-error RTK v2 behaviour on RTK v1 types\n enhancers = getDefaultEnhancers();\n }\n return enhancers.concat(autoBatchEnhancer({\n type: 'raf'\n }));\n },\n devTools: Global.devToolsEnabled && {\n serialize: {\n replacer: reduxDevtoolsJsonStringifyReplacer\n },\n name: \"recharts-\".concat(chartName)\n }\n });\n};","import * as React from 'react';\nimport { useRef } from 'react';\nimport { Provider } from 'react-redux';\nimport { createRechartsStore } from './store';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { RechartsReduxContext } from './RechartsReduxContext';\nexport function RechartsStoreProvider(_ref) {\n var {\n preloadedState,\n children,\n reduxStoreName\n } = _ref;\n var isPanorama = useIsPanorama();\n /*\n * Why the ref? Redux official documentation recommends to use store as a singleton,\n * and reuse that everywhere: https://redux-toolkit.js.org/api/configureStore#basic-example\n *\n * Which is correct! Except that is considering deploying Redux in an app.\n * Recharts as a library supports multiple charts on the same page.\n * And each of these charts needs its own store independent of others!\n *\n * The alternative is to have everything in the store keyed by the chart id.\n * Which would make working with everything a little bit more painful because we need the chart id everywhere.\n */\n var storeRef = useRef(null);\n\n /*\n * Panorama means that this chart is not its own chart, it's only a \"preview\"\n * being rendered as a child of Brush.\n * In such case, it should not have a store on its own - it should implicitly inherit\n * whatever data is in the \"parent\" or \"root\" chart.\n * Which here is represented by not having a Provider at all. All selectors will use the root store by default.\n */\n if (isPanorama) {\n return children;\n }\n if (storeRef.current == null) {\n storeRef.current = createRechartsStore(preloadedState, reduxStoreName);\n }\n\n // @ts-expect-error React-Redux types demand that the context internal value is not null, but we have that as default.\n var nonNullContext = RechartsReduxContext;\n return /*#__PURE__*/React.createElement(Provider, {\n context: nonNullContext,\n store: storeRef.current\n }, children);\n}","import { memo, useEffect } from 'react';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { setLayout, setMargin } from './layoutSlice';\nimport { useAppDispatch } from './hooks';\nimport { propsAreEqual } from '../util/propsAreEqual';\n\n/**\n * \"Main\" props are props that are only accepted on the main chart,\n * as opposed to the small panorama chart inside a Brush.\n */\n\nfunction ReportMainChartPropsImpl(_ref) {\n var {\n layout,\n margin\n } = _ref;\n var dispatch = useAppDispatch();\n\n /*\n * Skip dispatching properties in panorama chart for two reasons:\n * 1. The root chart should be deciding on these properties, and\n * 2. Brush reads these properties from redux store, and so they must remain stable\n * to avoid circular dependency and infinite re-rendering.\n */\n var isPanorama = useIsPanorama();\n /*\n * useEffect here is required to avoid the \"Cannot update a component while rendering a different component\" error.\n * https://github.com/facebook/react/issues/18178\n *\n * Reported in https://github.com/recharts/recharts/issues/5514\n */\n useEffect(() => {\n if (!isPanorama) {\n dispatch(setLayout(layout));\n dispatch(setMargin(margin));\n }\n }, [dispatch, isPanorama, layout, margin]);\n return null;\n}\nexport var ReportMainChartProps = /*#__PURE__*/memo(ReportMainChartPropsImpl, propsAreEqual);","import { useEffect } from 'react';\nimport { updateOptions } from './rootPropsSlice';\nimport { useAppDispatch } from './hooks';\nexport function ReportChartProps(props) {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(updateOptions(props));\n }, [dispatch, props]);\n return null;\n}","import { useEffect, memo } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { setEventSettings } from './eventSettingsSlice';\nimport { propsAreEqual } from '../util/propsAreEqual';\nvar ReportEventSettingsImpl = props => {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setEventSettings(props));\n }, [dispatch, props]);\n return null;\n};\nexport var ReportEventSettings = /*#__PURE__*/memo(ReportEventSettingsImpl, propsAreEqual);","import * as React from 'react';\nimport { useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { registerZIndexPortalElement, unregisterZIndexPortalElement } from '../state/zIndexSlice';\nimport { selectAllRegisteredZIndexes } from './zIndexSelectors';\nfunction ZIndexSvgPortal(_ref) {\n var {\n zIndex,\n isPanorama\n } = _ref;\n var ref = useRef(null);\n var dispatch = useAppDispatch();\n useLayoutEffect(() => {\n if (ref.current) {\n dispatch(registerZIndexPortalElement({\n zIndex,\n element: ref.current,\n isPanorama\n }));\n }\n return () => {\n dispatch(unregisterZIndexPortalElement({\n zIndex,\n isPanorama\n }));\n };\n }, [dispatch, zIndex, isPanorama]);\n // these g elements should not be tabbable\n return /*#__PURE__*/React.createElement(\"g\", {\n tabIndex: -1,\n ref: ref,\n className: \"recharts-zIndex-layer_\".concat(zIndex)\n });\n}\nexport function AllZIndexPortals(_ref2) {\n var {\n children,\n isPanorama\n } = _ref2;\n var allRegisteredZIndexes = useAppSelector(selectAllRegisteredZIndexes);\n if (!allRegisteredZIndexes || allRegisteredZIndexes.length === 0) {\n return children;\n }\n var allNegativeZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex < 0);\n // We exclude zero on purpose - that is the default layer, and it doesn't need a portal.\n var allPositiveZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex > 0);\n return /*#__PURE__*/React.createElement(React.Fragment, null, allNegativeZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {\n key: zIndex,\n zIndex: zIndex,\n isPanorama: isPanorama\n })), children, allPositiveZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {\n key: zIndex,\n zIndex: zIndex,\n isPanorama: isPanorama\n })));\n}","var _excluded = [\"children\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { useChartHeight, useChartWidth } from '../context/chartLayoutContext';\nimport { useAccessibilityLayer } from '../context/accessibilityContext';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { Surface } from './Surface';\nimport { useAppSelector } from '../state/hooks';\nimport { selectBrushDimensions } from '../state/selectors/brushSelectors';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { AllZIndexPortals } from '../zIndex/ZIndexPortal';\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%',\n /*\n * display: block is necessary here because the default for an SVG is display: inline,\n * which in some browsers (Chrome) adds a little bit of extra space above and below the SVG\n * to make space for the descender of letters like \"g\" and \"y\". This throws off the height calculation\n * and causes the container to grow indefinitely on each render with responsive=true.\n * Display: block removes that extra space.\n *\n * Interestingly, Firefox does not have this problem, but it doesn't hurt to add the style anyway.\n */\n display: 'block'\n};\nvar MainChartSurface = /*#__PURE__*/forwardRef((props, ref) => {\n var width = useChartWidth();\n var height = useChartHeight();\n var hasAccessibilityLayer = useAccessibilityLayer();\n if (!isPositiveNumber(width) || !isPositiveNumber(height)) {\n return null;\n }\n var {\n children,\n otherAttributes,\n title,\n desc\n } = props;\n var tabIndex, role;\n if (otherAttributes != null) {\n if (typeof otherAttributes.tabIndex === 'number') {\n tabIndex = otherAttributes.tabIndex;\n } else {\n tabIndex = hasAccessibilityLayer ? 0 : undefined;\n }\n if (typeof otherAttributes.role === 'string') {\n role = otherAttributes.role;\n } else {\n role = hasAccessibilityLayer ? 'application' : undefined;\n }\n }\n return /*#__PURE__*/React.createElement(Surface, _extends({}, otherAttributes, {\n title: title,\n desc: desc,\n role: role,\n tabIndex: tabIndex,\n width: width,\n height: height,\n style: FULL_WIDTH_AND_HEIGHT,\n ref: ref\n }), children);\n});\nvar BrushPanoramaSurface = _ref => {\n var {\n children\n } = _ref;\n var brushDimensions = useAppSelector(selectBrushDimensions);\n if (!brushDimensions) {\n return null;\n }\n var {\n width,\n height,\n y,\n x\n } = brushDimensions;\n return /*#__PURE__*/React.createElement(Surface, {\n width: width,\n height: height,\n x: x,\n y: y\n }, children);\n};\nexport var RootSurface = /*#__PURE__*/forwardRef((_ref2, ref) => {\n var {\n children\n } = _ref2,\n rest = _objectWithoutProperties(_ref2, _excluded);\n var isPanorama = useIsPanorama();\n if (isPanorama) {\n return /*#__PURE__*/React.createElement(BrushPanoramaSurface, null, /*#__PURE__*/React.createElement(AllZIndexPortals, {\n isPanorama: true\n }, children));\n }\n return /*#__PURE__*/React.createElement(MainChartSurface, _extends({\n ref: ref\n }, rest), /*#__PURE__*/React.createElement(AllZIndexPortals, {\n isPanorama: false\n }, children));\n});","import { useEffect, useState } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectContainerScale } from '../state/selectors/containerSelectors';\nimport { setScale } from '../state/layoutSlice';\nimport { isWellBehavedNumber } from './isWellBehavedNumber';\nexport function useReportScale() {\n var dispatch = useAppDispatch();\n var [ref, setRef] = useState(null);\n var scale = useAppSelector(selectContainerScale);\n useEffect(() => {\n if (ref == null) {\n return;\n }\n var rect = ref.getBoundingClientRect();\n var newScale = rect.width / ref.offsetWidth;\n if (isWellBehavedNumber(newScale) && newScale !== scale) {\n dispatch(setScale(newScale));\n }\n }, [ref, dispatch, scale]);\n return setRef;\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from 'react';\nimport { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { mouseLeaveChart } from '../state/tooltipSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { mouseClickAction, mouseMoveAction } from '../state/mouseEventsMiddleware';\nimport { useSynchronisedEventsFromOtherCharts } from '../synchronisation/useChartSynchronisation';\nimport { focusAction, keyDownAction, blurAction } from '../state/keyboardEventsMiddleware';\nimport { useReportScale } from '../util/useReportScale';\nimport { externalEventAction } from '../state/externalEventsMiddleware';\nimport { touchEventAction } from '../state/touchEventsMiddleware';\nimport { TooltipPortalContext } from '../context/tooltipPortalContext';\nimport { LegendPortalContext } from '../context/legendPortalContext';\nimport { ReportChartSize } from '../context/chartLayoutContext';\nimport { useResponsiveContainerContext } from '../component/ResponsiveContainer';\nvar EventSynchronizer = () => {\n useSynchronisedEventsFromOtherCharts();\n return null;\n};\nfunction getNumberOrZero(value) {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n var parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n return parsed;\n }\n }\n return 0;\n}\nvar ResponsiveDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var _props$style, _props$style2;\n var observerRef = useRef(null);\n var [sizes, setSizes] = useState({\n containerWidth: getNumberOrZero((_props$style = props.style) === null || _props$style === void 0 ? void 0 : _props$style.width),\n containerHeight: getNumberOrZero((_props$style2 = props.style) === null || _props$style2 === void 0 ? void 0 : _props$style2.height)\n });\n var setContainerSize = useCallback((newWidth, newHeight) => {\n setSizes(prevState => {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n var innerRef = useCallback(node => {\n if (typeof ref === 'function') {\n ref(node);\n }\n if (node != null && typeof ResizeObserver !== 'undefined') {\n var {\n width: containerWidth,\n height: containerHeight\n } = node.getBoundingClientRect();\n setContainerSize(containerWidth, containerHeight);\n var callback = entries => {\n var entry = entries[0];\n if (entry == null) {\n return;\n }\n var {\n width,\n height\n } = entry.contentRect;\n setContainerSize(width, height);\n };\n var observer = new ResizeObserver(callback);\n observer.observe(node);\n observerRef.current = observer;\n }\n }, [ref, setContainerSize]);\n useEffect(() => {\n return () => {\n var observer = observerRef.current;\n if (observer != null) {\n observer.disconnect();\n }\n };\n }, [setContainerSize]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: sizes.containerWidth,\n height: sizes.containerHeight\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: innerRef\n }, props)));\n});\nvar ReadSizeOnceDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n width,\n height\n } = props;\n var [sizes, setSizes] = useState({\n containerWidth: getNumberOrZero(width),\n containerHeight: getNumberOrZero(height)\n });\n var setContainerSize = useCallback((newWidth, newHeight) => {\n setSizes(prevState => {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n var innerRef = useCallback(node => {\n if (typeof ref === 'function') {\n ref(node);\n }\n if (node != null) {\n var {\n width: containerWidth,\n height: containerHeight\n } = node.getBoundingClientRect();\n setContainerSize(containerWidth, containerHeight);\n }\n }, [ref, setContainerSize]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: sizes.containerWidth,\n height: sizes.containerHeight\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: innerRef\n }, props)));\n});\nvar StaticDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n width,\n height\n } = props;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: width,\n height: height\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, props)));\n});\nvar NonResponsiveDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n width,\n height\n } = props;\n // When width or height are percentages or CSS short names, read size from DOM once\n if (typeof width === 'string' || typeof height === 'string') {\n return /*#__PURE__*/React.createElement(ReadSizeOnceDiv, _extends({}, props, {\n ref: ref\n }));\n }\n // When both are numbers, use them directly\n if (typeof width === 'number' && typeof height === 'number') {\n return /*#__PURE__*/React.createElement(StaticDiv, _extends({}, props, {\n width: width,\n height: height,\n ref: ref\n }));\n }\n // When width/height are undefined, render wrapper div without reporting size\n // This results in no SVG being rendered (intentional for backwards compatibility)\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: width,\n height: height\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, props)));\n});\nfunction getWrapperDivComponent(responsive) {\n return responsive ? ResponsiveDiv : NonResponsiveDiv;\n}\nexport var RechartsWrapper = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n children,\n className,\n height: heightFromProps,\n onClick,\n onContextMenu,\n onDoubleClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n style,\n width: widthFromProps,\n responsive,\n dispatchTouchEvents = true\n } = props;\n var containerRef = useRef(null);\n var dispatch = useAppDispatch();\n var [tooltipPortal, setTooltipPortal] = useState(null);\n var [legendPortal, setLegendPortal] = useState(null);\n var setScaleRef = useReportScale();\n var responsiveContainerCalculations = useResponsiveContainerContext();\n var width = (responsiveContainerCalculations === null || responsiveContainerCalculations === void 0 ? void 0 : responsiveContainerCalculations.width) > 0 ? responsiveContainerCalculations.width : widthFromProps;\n var height = (responsiveContainerCalculations === null || responsiveContainerCalculations === void 0 ? void 0 : responsiveContainerCalculations.height) > 0 ? responsiveContainerCalculations.height : heightFromProps;\n var innerRef = useCallback(node => {\n setScaleRef(node);\n if (typeof ref === 'function') {\n ref(node);\n }\n setTooltipPortal(node);\n setLegendPortal(node);\n if (node != null) {\n containerRef.current = node;\n }\n }, [setScaleRef, ref, setTooltipPortal, setLegendPortal]);\n var myOnClick = useCallback(e => {\n dispatch(mouseClickAction(e));\n dispatch(externalEventAction({\n handler: onClick,\n reactEvent: e\n }));\n }, [dispatch, onClick]);\n var myOnMouseEnter = useCallback(e => {\n dispatch(mouseMoveAction(e));\n dispatch(externalEventAction({\n handler: onMouseEnter,\n reactEvent: e\n }));\n }, [dispatch, onMouseEnter]);\n var myOnMouseLeave = useCallback(e => {\n dispatch(mouseLeaveChart());\n dispatch(externalEventAction({\n handler: onMouseLeave,\n reactEvent: e\n }));\n }, [dispatch, onMouseLeave]);\n var myOnMouseMove = useCallback(e => {\n dispatch(mouseMoveAction(e));\n dispatch(externalEventAction({\n handler: onMouseMove,\n reactEvent: e\n }));\n }, [dispatch, onMouseMove]);\n var onFocus = useCallback(() => {\n dispatch(focusAction());\n }, [dispatch]);\n var onBlur = useCallback(() => {\n dispatch(blurAction());\n }, [dispatch]);\n var onKeyDown = useCallback(e => {\n dispatch(keyDownAction(e.key));\n }, [dispatch]);\n var myOnContextMenu = useCallback(e => {\n dispatch(externalEventAction({\n handler: onContextMenu,\n reactEvent: e\n }));\n }, [dispatch, onContextMenu]);\n var myOnDoubleClick = useCallback(e => {\n dispatch(externalEventAction({\n handler: onDoubleClick,\n reactEvent: e\n }));\n }, [dispatch, onDoubleClick]);\n var myOnMouseDown = useCallback(e => {\n dispatch(externalEventAction({\n handler: onMouseDown,\n reactEvent: e\n }));\n }, [dispatch, onMouseDown]);\n var myOnMouseUp = useCallback(e => {\n dispatch(externalEventAction({\n handler: onMouseUp,\n reactEvent: e\n }));\n }, [dispatch, onMouseUp]);\n var myOnTouchStart = useCallback(e => {\n dispatch(externalEventAction({\n handler: onTouchStart,\n reactEvent: e\n }));\n }, [dispatch, onTouchStart]);\n\n /*\n * onTouchMove is special because it behaves different from mouse events.\n * Mouse events have 'enter' + 'leave' combo that notify us when the mouse is over\n * a certain element. Touch events don't have that; touch only gives us\n * start (finger down), end (finger up) and move (finger moving).\n * So we need to figure out which element the user is touching\n * ourselves. Fortunately, there's a convenient method for that:\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/elementFromPoint\n */\n var myOnTouchMove = useCallback(e => {\n if (dispatchTouchEvents) {\n dispatch(touchEventAction(e));\n }\n dispatch(externalEventAction({\n handler: onTouchMove,\n reactEvent: e\n }));\n }, [dispatch, dispatchTouchEvents, onTouchMove]);\n var myOnTouchEnd = useCallback(e => {\n dispatch(externalEventAction({\n handler: onTouchEnd,\n reactEvent: e\n }));\n }, [dispatch, onTouchEnd]);\n var WrapperDiv = getWrapperDivComponent(responsive);\n return /*#__PURE__*/React.createElement(TooltipPortalContext.Provider, {\n value: tooltipPortal\n }, /*#__PURE__*/React.createElement(LegendPortalContext.Provider, {\n value: legendPortal\n }, /*#__PURE__*/React.createElement(WrapperDiv, {\n width: width !== null && width !== void 0 ? width : style === null || style === void 0 ? void 0 : style.width,\n height: height !== null && height !== void 0 ? height : style === null || style === void 0 ? void 0 : style.height,\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width,\n height\n }, style),\n onClick: myOnClick,\n onContextMenu: myOnContextMenu,\n onDoubleClick: myOnDoubleClick,\n onFocus: onFocus,\n onBlur: onBlur,\n onKeyDown: onKeyDown,\n onMouseDown: myOnMouseDown,\n onMouseEnter: myOnMouseEnter,\n onMouseLeave: myOnMouseLeave,\n onMouseMove: myOnMouseMove,\n onMouseUp: myOnMouseUp,\n onTouchEnd: myOnTouchEnd,\n onTouchMove: myOnTouchMove,\n onTouchStart: myOnTouchStart,\n ref: innerRef\n }, /*#__PURE__*/React.createElement(EventSynchronizer, null), children)));\n});","var _excluded = [\"width\", \"height\", \"responsive\", \"children\", \"className\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { RootSurface } from '../container/RootSurface';\nimport { RechartsWrapper } from './RechartsWrapper';\nimport { ClipPathProvider } from '../container/ClipPathProvider';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { ReportChartSize } from '../context/chartLayoutContext';\nexport var CategoricalChart = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n width,\n height,\n responsive,\n children,\n className,\n style,\n compact,\n title,\n desc\n } = props,\n others = _objectWithoutProperties(props, _excluded);\n var attrs = svgPropertiesNoEvents(others);\n\n /*\n * The \"compact\" mode is used as the panorama within Brush.\n * However because `compact` is a public prop, let's assume that it can render outside of Brush too.\n */\n if (compact) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: width,\n height: height\n }), /*#__PURE__*/React.createElement(RootSurface, {\n otherAttributes: attrs,\n title: title,\n desc: desc\n }, children));\n }\n return /*#__PURE__*/React.createElement(RechartsWrapper, {\n className: className,\n style: style,\n width: width,\n height: height,\n responsive: responsive !== null && responsive !== void 0 ? responsive : false,\n onClick: props.onClick,\n onMouseLeave: props.onMouseLeave,\n onMouseEnter: props.onMouseEnter,\n onMouseMove: props.onMouseMove,\n onMouseDown: props.onMouseDown,\n onMouseUp: props.onMouseUp,\n onContextMenu: props.onContextMenu,\n onDoubleClick: props.onDoubleClick,\n onTouchStart: props.onTouchStart,\n onTouchMove: props.onTouchMove,\n onTouchEnd: props.onTouchEnd\n }, /*#__PURE__*/React.createElement(RootSurface, {\n otherAttributes: attrs,\n title: title,\n desc: desc,\n ref: ref\n }, /*#__PURE__*/React.createElement(ClipPathProvider, null, children)));\n});","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { ChartDataContextProvider } from '../context/chartDataContext';\nimport { ReportMainChartProps } from '../state/ReportMainChartProps';\nimport { ReportChartProps } from '../state/ReportChartProps';\nimport { ReportEventSettings } from '../state/ReportEventSettings';\nimport { CategoricalChart } from './CategoricalChart';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { initialEventSettingsState } from '../state/eventSettingsSlice';\nvar defaultMargin = {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n};\nexport var defaultCartesianChartProps = _objectSpread({\n accessibilityLayer: true,\n barCategoryGap: '10%',\n barGap: 4,\n layout: 'horizontal',\n margin: defaultMargin,\n responsive: false,\n reverseStackOrder: false,\n stackOffset: 'none',\n syncMethod: 'index'\n}, initialEventSettingsState);\n\n/**\n * These are one-time, immutable options that decide the chart's behavior.\n * Users who wish to call CartesianChart may decide to pass these options explicitly,\n * but usually we would expect that they use one of the convenience components like BarChart, LineChart, etc.\n */\n\nexport var CartesianChart = /*#__PURE__*/forwardRef(function CartesianChart(props, ref) {\n var _categoricalChartProp;\n var rootChartProps = resolveDefaultProps(props.categoricalChartProps, defaultCartesianChartProps);\n var {\n chartName,\n defaultTooltipEventType,\n validateTooltipEventTypes,\n tooltipPayloadSearcher,\n categoricalChartProps\n } = props;\n var options = {\n chartName,\n defaultTooltipEventType,\n validateTooltipEventTypes,\n tooltipPayloadSearcher,\n eventEmitter: undefined\n };\n return /*#__PURE__*/React.createElement(RechartsStoreProvider, {\n preloadedState: {\n options\n },\n reduxStoreName: (_categoricalChartProp = categoricalChartProps.id) !== null && _categoricalChartProp !== void 0 ? _categoricalChartProp : chartName\n }, /*#__PURE__*/React.createElement(ChartDataContextProvider, {\n chartData: categoricalChartProps.data\n }), /*#__PURE__*/React.createElement(ReportMainChartProps, {\n layout: rootChartProps.layout,\n margin: rootChartProps.margin\n }), /*#__PURE__*/React.createElement(ReportEventSettings, {\n throttleDelay: rootChartProps.throttleDelay,\n throttledEvents: rootChartProps.throttledEvents\n }), /*#__PURE__*/React.createElement(ReportChartProps, {\n baseValue: rootChartProps.baseValue,\n accessibilityLayer: rootChartProps.accessibilityLayer,\n barCategoryGap: rootChartProps.barCategoryGap,\n maxBarSize: rootChartProps.maxBarSize,\n stackOffset: rootChartProps.stackOffset,\n barGap: rootChartProps.barGap,\n barSize: rootChartProps.barSize,\n syncId: rootChartProps.syncId,\n syncMethod: rootChartProps.syncMethod,\n className: rootChartProps.className,\n reverseStackOrder: rootChartProps.reverseStackOrder\n }), /*#__PURE__*/React.createElement(CategoricalChart, _extends({}, rootChartProps, {\n ref: ref\n })));\n});","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nvar allowedTooltipTypes = ['axis', 'item'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport var BarChart = /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(CartesianChart, {\n chartName: \"BarChart\",\n defaultTooltipEventType: \"axis\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: props,\n ref: ref\n });\n});","import { cn } from \"@/lib/utils\";\nimport { debounce } from \"lodash\";\nimport { useEffect, useState } from \"react\";\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n XAxis,\n YAxis,\n type BarProps,\n type TooltipProps,\n type TooltipValueType,\n type XAxisProps,\n type YAxisProps,\n} from \"recharts\";\nimport type { NameType } from \"recharts/types/component/DefaultTooltipContent\";\nimport type { CartesianChartProps } from \"recharts/types/util/types\";\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"../ui/chart/chart\";\n\ntype Props = {\n chartContainer?: React.ClassAttributes<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement> & {\n config: ChartConfig;\n };\n barChart?: CartesianChartProps<any> & {\n ref?: React.Ref<SVGSVGElement> | undefined;\n };\n cartesianGrid?: React.ComponentProps<typeof CartesianGrid>;\n axis?: {\n y?: Partial<YAxisProps>;\n x?: Partial<XAxisProps>;\n };\n hasTooltip?: boolean;\n tooltip?: TooltipProps<TooltipValueType, NameType>;\n bar?: BarProps;\n chartTooltipContent?: React.ComponentProps<typeof ChartTooltipContent>;\n fillContainer?: boolean;\n minHeight?: number | string;\n smoothResize?: boolean;\n resizeDebounceMs?: number;\n mobileBreakpoint?: number;\n};\n\nconst DEFAULT_BAR_SIZE = 14.52;\nconst DEFAULT_TICK_MARGIN = 10;\nconst DEFAULT_BAR_RADIUS = 4;\nconst DEFAULT_BAR_COLOR = \"#3B82F6\";\nconst DEFAULT_MOBILE_BREAKPOINT = 400;\nconst MIN_HEIGHT = 200;\nconst RESIZE_DOBOUNCE_MS = 150;\n\nconst DEFAULT_CONFIG = {\n desktop: {\n label: \"default\",\n color: DEFAULT_BAR_COLOR,\n },\n} satisfies ChartConfig;\n\nexport const BasicChart = ({\n chartContainer,\n barChart,\n cartesianGrid,\n axis,\n hasTooltip = true,\n tooltip,\n bar,\n chartTooltipContent,\n fillContainer = false,\n minHeight = MIN_HEIGHT,\n smoothResize = true,\n resizeDebounceMs = RESIZE_DOBOUNCE_MS,\n mobileBreakpoint = DEFAULT_MOBILE_BREAKPOINT,\n}: Props) => {\n const chartConfig = chartContainer?.config ?? DEFAULT_CONFIG;\n const [containerRef, setContainerRef] = useState<HTMLDivElement | null>(null);\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 });\n const [isResizing, setIsResizing] = useState(false);\n\n // TODO: позже вынести в хук\n useEffect(() => {\n if (!smoothResize || !containerRef) return;\n\n let resizeTimer: NodeJS.Timeout;\n\n const handleResize = debounce((entries: ResizeObserverEntry[]) => {\n setIsResizing(true);\n\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setDimensions({ width, height });\n }\n\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(() => {\n setIsResizing(false);\n }, 100);\n }, resizeDebounceMs);\n\n const resizeObserver = new ResizeObserver(handleResize);\n resizeObserver.observe(containerRef);\n\n const { width, height } = containerRef.getBoundingClientRect();\n setDimensions({ width, height });\n\n return () => {\n resizeObserver.disconnect();\n handleResize.cancel();\n clearTimeout(resizeTimer);\n };\n }, [containerRef, smoothResize, resizeDebounceMs]);\n\n const isMobile = dimensions.width < mobileBreakpoint;\n\n return (\n <div\n ref={setContainerRef}\n className={cn(\n \"w-full transition-opacity duration-200 will-change-transform\",\n isResizing ? \"opacity-60\" : \"opacity-100\",\n fillContainer ? \"h-full\" : \"min-h-50\",\n )}\n style={{\n minHeight: fillContainer ? undefined : minHeight,\n transform: \"translateZ(0)\",\n backfaceVisibility: \"hidden\",\n }}\n >\n <ChartContainer\n {...chartContainer}\n config={chartContainer?.config ?? chartConfig}\n className={cn(\n !fillContainer && \"aspect-video\",\n \"transition-[width,height] duration-200 ease-in-out\",\n chartContainer?.className,\n )}\n >\n <BarChart\n barSize={bar?.barSize ?? barChart?.barSize ?? DEFAULT_BAR_SIZE}\n {...barChart}\n margin={\n barChart?.margin || {\n top: 10,\n right: isMobile ? 5 : 10,\n bottom: isMobile ? 30 : 20,\n left: isMobile ? 0 : 10,\n }\n }\n className=\"transition-all duration-200\"\n >\n <CartesianGrid\n vertical={cartesianGrid?.vertical ?? false}\n horizontal={cartesianGrid?.horizontal ?? true}\n strokeDasharray={cartesianGrid?.strokeDasharray ?? \"3 3\"}\n {...cartesianGrid}\n />\n\n <YAxis\n tickLine={axis?.y?.tickLine ?? false}\n axisLine={axis?.y?.axisLine ?? false}\n tickMargin={axis?.y?.tickMargin ?? DEFAULT_TICK_MARGIN}\n width={axis?.y?.width ?? (isMobile ? 30 : 35)}\n {...axis?.y}\n // Адаптивные настройки для мобильных\n hide={axis?.y?.hide ?? isMobile}\n tick={\n axis?.y?.tick ?? {\n fontSize: isMobile ? 10 : 12,\n ...(typeof axis?.y?.tick === \"object\" ? axis?.y?.tick : {}),\n }\n }\n />\n\n <XAxis\n tickLine={axis?.x?.tickLine ?? false}\n axisLine={axis?.x?.axisLine ?? false}\n tickMargin={axis?.x?.tickMargin ?? DEFAULT_TICK_MARGIN}\n interval={axis?.x?.interval ?? (isMobile ? 0 : \"preserveStart\")}\n {...axis?.x}\n // Адаптивный угол наклона для мобильных\n angle={axis?.x?.angle ?? (isMobile ? -45 : 0)}\n textAnchor={axis?.x?.textAnchor ?? (isMobile ? \"end\" : \"middle\")}\n height={axis?.x?.height ?? (isMobile ? 60 : 30)}\n tick={\n axis?.x?.tick ?? {\n fontSize: isMobile ? 10 : 12,\n ...(typeof axis?.x?.tick === \"object\" ? axis?.x?.tick : {}),\n }\n }\n />\n\n {hasTooltip && (\n <ChartTooltip\n cursor={tooltip?.cursor ?? true}\n content={\n <ChartTooltipContent\n {...chartTooltipContent}\n className={cn(\n \"transition-all duration-200\",\n isMobile && \"origin-top-left scale-90 text-xs\",\n )}\n />\n }\n {...tooltip}\n />\n )}\n\n <Bar\n fill={bar?.fill ?? DEFAULT_BAR_COLOR}\n radius={\n typeof bar?.radius === \"number\"\n ? Math.min(bar.radius, isMobile ? 3 : bar.radius)\n : isMobile\n ? 3\n : DEFAULT_BAR_RADIUS\n }\n {...bar}\n />\n </BarChart>\n </ChartContainer>\n </div>\n );\n};\n\nexport type { Props as ChartProps };\n"],"names":["_excluded","_extends","n","e","t","r","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","Layer","React","props","ref","children","className","others","layerClass","clsx","svgPropertiesAndEvents","Cell","_props","_defineProperty","_toPropertyKey","i","_toPrimitive","LRUCache","maxSize","key","value","firstKey","ownKeys","_objectSpread","defaultConfig","currentConfig","stringCache","SPAN_STYLE","MEASUREMENT_SPAN_ID","createCacheKey","text","style","fontSize","fontFamily","fontWeight","fontStyle","letterSpacing","textTransform","measureTextWithDOM","measurementSpan","rect","getStringSize","Global","cacheKey","cachedResult","result","_DecimalCSS","MULTIPLY_OR_DIVIDE_REGEX","ADD_OR_SUBTRACT_REGEX","CSS_LENGTH_UNIT_REGEX","NUM_SPLIT_REGEX","CONVERSION_RATES","FIXED_CSS_LENGTH_UNITS","isSupportedUnit","unit","STR_NAN","convertToPx","DecimalCSS","str","_NUM_SPLIT_REGEX$exec","numStr","num","isNan","other","calculateArithmetic","expr","newExpr","_MULTIPLY_OR_DIVIDE_R","leftOperand","operator","rightOperand","lTs","rTs","_ADD_OR_SUBTRACT_REGE","_leftOperand","_operator","_rightOperand","_lTs","_rTs","_result","PARENTHESES_REGEX","calculateParentheses","match","parentheticalExpression","evaluateExpression","expression","safeEvaluateExpression","reduceCSSCalc","_excluded2","BREAKING_SPACES","calculateWordWidths","_ref","breakAll","words","isNullish","wordsWithComputedWidth","word","spaceWidth","isValidTextAnchor","isRenderableText","val","calculate","lineWidth","scaleToFit","_ref2","width","currentLine","newLine","findLongestLine","a","b","suffix","checkOverflow","index","maxLines","tempText","doesOverflow","calculateWordsByLines","_ref3","initialWordsWithComputedWith","shouldLimitLines","isNumber","originalResult","overflows","start","end","iterations","trimmedResult","middle","prev","doesPrevOverflow","doesMiddleOverflow","getWordsWithoutCalculate","getWordsByLines","_ref4","wordWidths","wcw","sw","DEFAULT_FILL","textDefaultProps","Text","forwardRef","outsideProps","_resolveDefaultProps","resolveDefaultProps","propsX","propsY","lineHeight","capHeight","fill","textAnchor","verticalAnchor","wordsByLines","useMemo","dx","dy","angle","textProps","isNumOrStr","x","y","isWellBehavedNumber","startDy","transforms","firstLine","line","getCartesianPosition","options","viewBox","position","offset","parentViewBoxFromOptions","height","upperWidth","lowerWidth","cartesianViewBoxToTrapezoid","upperX","lowerX","middleX","midHeightWidth","centerX","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","parentViewBox","_result2","_result3","sizeAttrs","isPercent","getPercentValue","CartesianLabelContext","createContext","CartesianLabelContextProvider","useCartesianLabelContext","labelChildContext","useContext","chartContext","useViewBox","PolarLabelContext","usePolarLabelContext","useAppSelector","selectPolarViewBox","getLabel","formatter","label","isLabelContentAFunction","content","getDeltaAngle","startAngle","endAngle","sign","mathSign","deltaAngle","renderRadialLabel","labelProps","attrs","cx","cy","innerRadius","outerRadius","clockWise","radius","labelAngle","direction","startPoint","polarToCartesian","endPoint","path","id","uniqueId","getAttrsOfPolarLabel","midAngle","_x","_y","isPolar","defaultLabelProps","DefaultZIndexes","polarViewBoxToTrapezoid","diameter","Label","outerProps","viewBoxFromProps","textBreakAll","labelRef","polarViewBox","cartesianViewBox","resolvedViewBox","positionAttrs","cartesianBox","isValidElement","propsWithViewBox","_","propsWithoutLabelRef","cloneElement","_2","propsForContent","createElement","cartesianResult","ZIndexLayer","parseLabel","commonProps","CartesianLabelFromLabelProp","defaultAccessor","entry","CartesianLabelListContext","CartesianLabelListContextProvider","PolarLabelListContext","useCartesianLabelListContext","usePolarLabelListContext","LabelList","valueAccessor","restProps","dataKey","zIndex","cartesianData","polarData","data","_restProps$fill","getValueByDataKey","idProps","LabelListFromLabelProp","initialState","polarAxisSlice","createSlice","state","action","castDraft","addRadiusAxis","removeRadiusAxis","addAngleAxis","removeAngleAxis","polarAxisReducer","getClassNameFromUnknown","u","c","d","f","g","h","k","l","m","p","q","v","w","z","A","B","C","D","E","F","G","H","I","reactIs_production_min","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_SERVER_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_DEBUG_TRACING_MODE_TYPE","REACT_LEGACY_HIDDEN_TYPE","symbolFor","enableScopeAPI","isValidElementType","type","typeOf","object","$$typeof","$$typeofType","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","hasWarnedAboutDeprecatedIsConcurrentMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","require$$0","require$$1","getDisplayName","Comp","lastChildren","lastResult","toArray","Children","child","findAllByType","types","childType","get","exports","isPlainObject","tag","proto","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_taggedTemplateLiteral","getTrapezoidPath","widthGap","roundTemplateLiteral","defaultTrapezoidProps","Trapezoid","trapezoidProps","animationEasing","animationDuration","animationBegin","isUpdateAnimationActive","pathRef","useRef","totalLength","setTotalLength","useState","prevUpperWidthRef","prevLowerWidthRef","prevHeightRef","prevXRef","prevYRef","animationId","useAnimationId","useEffect","pathTotalLength","prevUpperWidth","prevLowerWidth","prevHeight","prevX","prevY","from","to","transition","getTransitionVal","JavascriptAnimate","currUpperWidth","interpolate","currLowerWidth","currHeight","currX","currY","animationStyle","defaultPropTransformer","option","isSymbolsProps","shapeType","_elementProps","ShapeSelector","elementProps","Rectangle","Sector","Symbols","Curve","getPropsFromShapeOption","Shape","activeClassName","inActiveClassName","shape","nextProps","useMouseEnterItemDispatch","onMouseEnterFromProps","graphicalItemId","dispatch","useAppDispatch","event","setActiveMouseOverItemIndex","useMouseLeaveItemDispatch","onMouseLeaveFromProps","mouseLeaveItem","useMouseClickItemDispatch","onMouseClickFromProps","setActiveClickItemIndex","SetTooltipEntrySettings","tooltipEntrySettings","isPanorama","useIsPanorama","prevSettingsRef","useLayoutEffect","addTooltipEntrySettings","replaceTooltipEntrySettings","removeTooltipEntrySettings","SetLegendPayload","legendPayload","prevPayloadRef","addLegendPayload","replaceLegendPayload","removeLegendPayload","useIdFallback","useId","useUniqueId","prefix","customId","generatedId","GraphicalItemIdContext","RegisterGraphicalItemId","resolvedId","graphicalItemsSlice","prepareAutoBatched","next","current","addCartesianGraphicalItem","replaceCartesianGraphicalItem","removeCartesianGraphicalItem","addPolarGraphicalItem","removePolarGraphicalItem","replacePolarGraphicalItem","graphicalItemsReducer","SetCartesianGraphicalItemImpl","prevPropsRef","SetCartesianGraphicalItem","memo","defaultAxisId","cartesianAxisSlice","axis","_history$","history","newHistory","addXAxis","replaceXAxis","removeXAxis","addYAxis","replaceYAxis","removeYAxis","addZAxis","replaceZAxis","removeZAxis","updateYAxisWidth","cartesianAxisReducer","selectChartOffset","createSelector","selectChartOffsetInternal","offsetInternal","selectPlotArea","selectChartWidth","selectChartHeight","chartWidth","chartHeight","usePlotArea","getBarSize","globalSize","totalSize","selfSize","barSize","combineBarSizeList","allBars","initialValue","stackedBars","isStacked","unstackedBars","groupByStack","acc","bar","s","stackedSizeList","_bars$","stackId","bars","dataKeys","unstackedSizeList","dk","getBarPositions","barGap","barCategoryGap","bandSize","sizeList","maxBarSize","_sizeList$","len","realBarGap","useFull","fullBarSize","sum","res","_entry$barSize","newPosition","newRes","_offset","originalSize","size","combineAllBarPositions","globalMaxBarSize","barBandSize","childMaxBarSize","allBarPositions","pos","combineStackedData","stackGroups","barSettings","stackSeriesIdentifier","getStackSeriesIdentifier","stackGroup","stackedData","sd","combineBarPosition","getZIndexFromUnknown","input","defaultZIndex","ChartDataContextProvider","chartData","setChartData","brushSlice","_state","setBrushSettings","brushReducer","normalizeAngle","getAngledRectangleWidth","normalizedAngle","angleRadians","angleThreshold","angledWidth","referenceElementsSlice","dot","area","addDot","removeDot","addArea","removeArea","addLine","removeLine","referenceElementsReducer","ClipPathIdContext","ClipPathProvider","clipPathId","plotArea","getEveryNth","array","item","getAngledTickWidth","contentSize","unitSize","getTickBoundaries","sizeKey","isWidth","isVisible","tickPosition","getSize","getNumberIntervalTicks","ticks","interval","getEquidistantTicks","boundaries","getTickSize","minTickGap","initialStart","stepsize","_loop","tickCoord","isShow","_ret","getEquidistantPreserveEndTicks","ok","_loop2","_ret2","finalTicks","_index","tick","getTicksEnd","initialEntry","gap","getTicksStart","preserveEnd","tail","tailSize","tailGap","isTailShow","count","getTicks","orientation","tickFormatter","_getNumberIntervalTic","candidates","tick0","tick1","getCalculatedYAxisWidth","labelGapWithTick","tickSize","tickMargin","maxTickWidth","tickNode","bbox","labelWidth","tickWidth","updatedYAxisWidth","renderedTicksSlice","axisType","axisId","setRenderedTicks","removeRenderedTicks","renderedTicksReducer","defaultCartesianAxisProps","AxisLine","axisLineProps","mirror","axisLine","otherSvgProps","svgPropertiesNoEvents","needHeight","needWidth","getTickLineCoord","x1","x2","y1","y2","tx","ty","finalTickSize","getTickTextAnchor","getTickVerticalAnchor","TickItem","tickProps","tickItem","combinedClassName","RenderedTicksReporter","noop","tickItems","Ticks","tickLine","stroke","padding","tickTextProps","getTicksConfig","events","axisProps","customTickProps","svgPropertiesNoEventsFromUnknown","tickLinePropsObject","tickLineProps","tickLineCoords","tickLines","lineCoord","tickLabels","_tickTextProps$angle","finalTickProps","adaptEventsOfChild","CartesianAxisComponent","hide","rest","setFontSize","setLetterSpacing","tickRefs","useImperativeHandle","_props$labelRef","layerRef","useCallback","el","tickNodes","computedStyle","calculatedFontSize","calculatedLetterSpacing","CartesianAxis","_excluded3","_excluded4","Background","fillOpacity","ry","LineItem","lineItemProps","lineItem","_svgPropertiesNoEvent","__","restOfFilteredProps","HorizontalGridLines","horizontal","horizontalPoints","xAxisId","yAxisId","otherLineItemProps","items","VerticalGridLines","vertical","verticalPoints","HorizontalStripes","horizontalFill","roundedSortedHorizontalPoints","nextPoint","lastStripe","colorIndex","VerticalStripes","verticalFill","roundedSortedVerticalPoints","defaultVerticalCoordinatesGenerator","syncWithTicks","xAxis","getCoordinatesOfGrid","getTicksOfAxis","defaultHorizontalCoordinatesGenerator","yAxis","defaultCartesianGridProps","CartesianGrid","useChartWidth","useChartHeight","useOffsetInternal","propsIncludingDefaults","horizontalValues","verticalValues","selectAxisPropsNeededForCartesianGridTicksGenerator","isPositiveNumber","verticalCoordinatesGenerator","horizontalCoordinatesGenerator","isHorizontalValues","generatorResult","warn","isVerticalValues","_generatorResult","errorBarSlice","itemId","errorBar","addErrorBar","replaceErrorBar","removeErrorBar","errorBarReducer","initialContextState","ErrorBarContext","SetErrorBarContext","useNeedsClip","_xAxis$allowDataOverf","_yAxis$allowDataOverf","selectXAxisSettings","selectYAxisSettings","needClipX","implicitXAxis","needClipY","implicitYAxis","needClip","GraphicalItemClipPath","selectXAxisIdFromGraphicalItemId","_state$graphicalItems","_state$graphicalItems2","selectYAxisIdFromGraphicalItemId","_state$graphicalItems3","_state$graphicalItems4","isProduction","invariant","condition","message","provided","BarRectangle","minPointSizeCallback","minPointSize","defaultValue","isValueNumberOrNil","pickIsPanorama","_id","pickBarId","selectSynchronisedBarSettings","selectUnfilteredCartesianItems","graphicalItems","selectMaxBarSize","pickCells","_isPanorama","cells","selectAllVisibleBars","selectChartLayout","layout","allItems","selectBarStackGroups","selectStackGroups","selectBarCartesianAxisSize","selectCartesianAxisSize","selectBarSizeList","selectRootBarSize","selectBarBandSize","_getBandSizeOfAxis","selectRootMaxBarSize","selectAxisWithScale","selectTicksOfGraphicalItem","getBandSizeOfAxis","selectAxisBandSize","selectAllBarPositions","selectBarGap","selectBarCategoryGap","selectXAxisWithScale","selectYAxisWithScale","selectXAxisTicks","selectYAxisTicks","selectBarPosition","selectStackedDataOfItem","selectBarRectangles","selectAxisViewBox","selectChartDataWithIndexesIfNotInPanoramaPosition3","axisViewBox","xAxisTicks","yAxisTicks","dataStartIndex","dataEndIndex","displayedData","computeBarRectangles","BarStackContext","useStackId","childStackId","stackSettings","getNormalizedStackId","getClipPathId","useBarStackClipPathUrl","barStackContext","BarStackClipLayer","clipPathUrl","computeLegendPayloadFromBarData","name","legendType","getTooltipNameProp","SetBarTooltipEntrySettings","strokeWidth","tooltipType","BarBackground","activeIndex","selectActiveTooltipIndex","backgroundFromProps","allOtherBarProps","onItemClickFromProps","restOfAllOtherProps","onMouseEnterFromContext","onMouseLeaveFromContext","onClickFromContext","backgroundProps","backgroundFromDataEntry","tooltipPosition","onMouseEnter","onMouseLeave","onClick","barRectangleProps","BarLabelListProvider","showLabels","rects","labelListEntries","BarRectangleWithActiveState","activeBar","baseProps","activeDataKey","selectActiveTooltipDataKey","isActive","stayInLayer","setStayInLayer","hasMountedActive","setHasMountedActive","rafId","handleTransitionEnd","isVisuallyActive","shouldRenderInLayer","BarRectangleNeverActive","BarRectangles","RectanglesWithAnimation","_ref5","previousRectanglesRef","isAnimationActive","onAnimationEnd","onAnimationStart","prevData","isAnimating","setIsAnimating","handleAnimationEnd","handleAnimationStart","stepData","RenderRectangles","defaultMinPointSize","errorBarDataPointFormatter","dataPoint","BarWithState","PureComponent","background","defaultBarProps","BarImpl","useChartLayout","errorBarOffset","firstDataPoint","_ref6","minPointSizeProp","hasCustomShape","numericAxis","stackedDomain","baseValue","getBaseValueOfBar","stackedBarStart","untruncatedValue","truncateByDomain","_ref7","baseValueScale","currentValueScale","getCateCoordinateOfBar","computedHeight","delta","_baseValueScale","_currentValueScale","_delta","barRectangleItem","BarFn","Bar","propsAreEqual","shortArraysAreEqual","arr1","arr2","axisPropsAreEqual","prevProps","prevDomain","prevRange","prevRest","nextDomain","nextRange","nextRest","SetXAxisSettings","useCartesianChartLayout","typeFromProps","evaluatedType","getAxisTypeBasedOnLayout","settings","XAxisImpl","cartesianTickItems","selectTicksOfAxis","axisSize","selectXAxisSize","selectXAxisPosition","synchronizedSettings","selectXAxisSettingsNoDefaults","dangerouslySetInnerHTML","del","allOtherProps","del2","restSynchronizedSettings","xAxisDefaultProps","XAxisSettingsDispatcher","XAxis","SetYAxisSettings","YAxisImpl","cartesianAxisRef","selectYAxisSize","selectYAxisPosition","selectYAxisSettingsNoDefaults","axisComponent","yAxisDefaultProps","YAxisSettingsDispatcher","YAxis","pickChartPointer","chartPointer","selectActivePropsFromChartPointer","selectTooltipAxisType","selectTooltipAxisRangeWithReverse","selectTooltipAxisTicks","selectOrderedTooltipTicks","combineActiveProps","isSvgPointer","pointer","getRelativeCoordinate","scaleX","scaleY","element","getCoordinates","clientX","clientY","touch","mouseClickAction","createAction","mouseClickMiddleware","createListenerMiddleware","listenerApi","mousePointer","activeProps","setMouseClickAxisIndex","mouseMoveAction","mouseMoveMiddleware","timeoutId","latestChartPointer","throttleDelay","throttledEvents","isThrottled","callback","currentState","tooltipEventType","selectTooltipEventType","setMouseOverAxisIndex","mouseLeaveChart","reduxDevtoolsJsonStringifyReplacer","rootPropsSlice","_action$payload$barGa","rootPropsReducer","updateOptions","reducers","polarOptionsSlice","updatePolarOptions","polarOptionsReducer","keyDownAction","focusAction","blurAction","keyboardEventsMiddleware","latestKeyboardActionPayload","accessibilityLayerIsActive","keyboardInteraction","resolvedIndex","combineActiveTooltipIndex","selectTooltipDisplayedData","selectTooltipAxisDataKey","selectTooltipAxisDomain","currentIndex","tooltipTicks","_coordinate","selectCoordinateForDefaultIndex","setKeyboardInteraction","selectChartDirection","directionMultiplier","movement","nextIndex","coordinate","_action","createEventProxy","reactEvent","currentTarget","target","prop","externalEventAction","externalEventsMiddleware","rafIdMap","timeoutIdMap","latestEventMap","handler","eventType","eventProxy","existingRafId","eventListAsString","existingTimeoutId","latestAction","latestHandler","latestEvent","nextState","selectActiveTooltipCoordinate","selectActiveLabel","selectIsTooltipActive","selectAllTooltipPayloadConfiguration","selectTooltipState","tooltipState","selectTooltipCoordinate","tooltipIndex","_tooltipIndex","allTooltipConfigurations","mostRelevantTooltipConfiguration","tooltipConfiguration","getPosition","touchEventAction","touchEventMiddleware","latestChartPointers","latestTouchEvent","touchEvent","_latestChartPointers","latestTouchPointer","_target$getAttribute","itemIndex","DATA_ITEM_INDEX_ATTRIBUTE_NAME","DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME","selectAllGraphicalItemsSettings","initialEventSettingsState","eventSettingsSlice","setEventSettings","eventSettingsReducer","rootReducer","combineReducers","chartDataReducer","chartLayoutReducer","legendReducer","optionsReducer","tooltipReducer","zIndexReducer","createRechartsStore","preloadedState","chartName","configureStore","getDefaultMiddleware","_process$env$NODE_ENV","getDefaultEnhancers","enhancers","autoBatchEnhancer","RechartsStoreProvider","reduxStoreName","storeRef","nonNullContext","RechartsReduxContext","Provider","ReportMainChartPropsImpl","margin","setLayout","setMargin","ReportMainChartProps","ReportChartProps","ReportEventSettingsImpl","ReportEventSettings","ZIndexSvgPortal","registerZIndexPortalElement","unregisterZIndexPortalElement","AllZIndexPortals","allRegisteredZIndexes","selectAllRegisteredZIndexes","allNegativeZIndexes","allPositiveZIndexes","FULL_WIDTH_AND_HEIGHT","MainChartSurface","hasAccessibilityLayer","useAccessibilityLayer","otherAttributes","title","desc","tabIndex","role","Surface","BrushPanoramaSurface","brushDimensions","selectBrushDimensions","RootSurface","useReportScale","setRef","scale","selectContainerScale","newScale","setScale","EventSynchronizer","useSynchronisedEventsFromOtherCharts","getNumberOrZero","parsed","ResponsiveDiv","_props$style","_props$style2","observerRef","sizes","setSizes","setContainerSize","newWidth","newHeight","prevState","roundedWidth","roundedHeight","innerRef","node","containerWidth","containerHeight","entries","observer","ReportChartSize","ReadSizeOnceDiv","StaticDiv","NonResponsiveDiv","getWrapperDivComponent","responsive","RechartsWrapper","heightFromProps","onContextMenu","onDoubleClick","onMouseDown","onMouseMove","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","widthFromProps","dispatchTouchEvents","containerRef","tooltipPortal","setTooltipPortal","legendPortal","setLegendPortal","setScaleRef","responsiveContainerCalculations","useResponsiveContainerContext","myOnClick","myOnMouseEnter","myOnMouseLeave","myOnMouseMove","onFocus","onBlur","onKeyDown","myOnContextMenu","myOnDoubleClick","myOnMouseDown","myOnMouseUp","myOnTouchStart","myOnTouchMove","myOnTouchEnd","WrapperDiv","TooltipPortalContext","LegendPortalContext","CategoricalChart","compact","defaultMargin","defaultCartesianChartProps","CartesianChart","_categoricalChartProp","rootChartProps","defaultTooltipEventType","validateTooltipEventTypes","tooltipPayloadSearcher","categoricalChartProps","allowedTooltipTypes","BarChart","arrayTooltipSearcher","DEFAULT_BAR_SIZE","DEFAULT_TICK_MARGIN","DEFAULT_BAR_RADIUS","DEFAULT_BAR_COLOR","DEFAULT_MOBILE_BREAKPOINT","MIN_HEIGHT","RESIZE_DOBOUNCE_MS","DEFAULT_CONFIG","BasicChart","chartContainer","barChart","cartesianGrid","hasTooltip","tooltip","chartTooltipContent","fillContainer","minHeight","smoothResize","resizeDebounceMs","mobileBreakpoint","chartConfig","setContainerRef","dimensions","setDimensions","isResizing","setIsResizing","resizeTimer","handleResize","debounce","resizeObserver","isMobile","jsx","cn","ChartContainer","jsxs","ChartTooltip","ChartTooltipContent"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84]}