semiotic 2.0.3 → 3.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/CLAUDE.md +530 -0
  2. package/README.md +190 -37
  3. package/ai/cli.js +48 -0
  4. package/ai/dist/ai/componentRegistry.js +45 -0
  5. package/ai/dist/ai/mcp-server.js +99 -0
  6. package/ai/dist/ai/renderHOCToSVG.js +77 -0
  7. package/ai/dist/src/components/Annotation.js +358 -0
  8. package/ai/dist/src/components/AnnotationLayer/AnnotationLayer.js +369 -0
  9. package/ai/dist/src/components/Axis/Axis.js +373 -0
  10. package/ai/dist/src/components/Axis/axisTitle.js +14 -0
  11. package/ai/dist/src/components/Axis/index.js +7 -0
  12. package/ai/dist/src/components/Axis/summaryGraphic.js +37 -0
  13. package/ai/dist/src/components/Brush.js +84 -0
  14. package/ai/dist/src/components/DividedLine.js +65 -0
  15. package/ai/dist/src/components/FacetController.js +259 -0
  16. package/ai/dist/src/components/Frame.js +139 -0
  17. package/ai/dist/src/components/InteractionLayer.js +328 -0
  18. package/ai/dist/src/components/Legend.js +140 -0
  19. package/ai/dist/src/components/MiniMap.js +75 -0
  20. package/ai/dist/src/components/MinimapXYFrame.js +99 -0
  21. package/ai/dist/src/components/NetworkFrame.js +335 -0
  22. package/ai/dist/src/components/OrdinalFrame.js +437 -0
  23. package/ai/dist/src/components/ResponsiveFrame.js +68 -0
  24. package/ai/dist/src/components/ResponsiveMinimapXYFrame.js +11 -0
  25. package/ai/dist/src/components/ResponsiveNetworkFrame.js +11 -0
  26. package/ai/dist/src/components/ResponsiveOrdinalFrame.js +11 -0
  27. package/ai/dist/src/components/ResponsiveXYFrame.js +10 -0
  28. package/ai/dist/src/components/SparkFrame.js +113 -0
  29. package/ai/dist/src/components/SparkNetworkFrame.js +11 -0
  30. package/ai/dist/src/components/SparkOrdinalFrame.js +11 -0
  31. package/ai/dist/src/components/SparkXYFrame.js +11 -0
  32. package/ai/dist/src/components/Tooltip/Tooltip.js +304 -0
  33. package/ai/dist/src/components/TooltipPositioner/index.js +132 -0
  34. package/ai/dist/src/components/VisualizationLayer.js +395 -0
  35. package/ai/dist/src/components/XYFrame.js +524 -0
  36. package/ai/dist/src/components/annotationLayerBehavior/annotationHandling.js +73 -0
  37. package/ai/dist/src/components/annotationLayerBehavior/d3labeler.js +254 -0
  38. package/ai/dist/src/components/annotationRules/baseRules.js +150 -0
  39. package/ai/dist/src/components/annotationRules/networkframeRules.js +198 -0
  40. package/ai/dist/src/components/annotationRules/orframeRules.js +695 -0
  41. package/ai/dist/src/components/annotationRules/xyframeRules.js +299 -0
  42. package/ai/dist/src/components/batchWork.js +35 -0
  43. package/ai/dist/src/components/charts/index.js +96 -0
  44. package/ai/dist/src/components/charts/network/ChordDiagram.js +245 -0
  45. package/ai/dist/src/components/charts/network/CirclePack.js +177 -0
  46. package/ai/dist/src/components/charts/network/ForceDirectedGraph.js +248 -0
  47. package/ai/dist/src/components/charts/network/SankeyDiagram.js +305 -0
  48. package/ai/dist/src/components/charts/network/TreeDiagram.js +268 -0
  49. package/ai/dist/src/components/charts/network/Treemap.js +177 -0
  50. package/ai/dist/src/components/charts/ordinal/BarChart.js +191 -0
  51. package/ai/dist/src/components/charts/ordinal/BoxPlot.js +235 -0
  52. package/ai/dist/src/components/charts/ordinal/DonutChart.js +178 -0
  53. package/ai/dist/src/components/charts/ordinal/DotPlot.js +194 -0
  54. package/ai/dist/src/components/charts/ordinal/GroupedBarChart.js +194 -0
  55. package/ai/dist/src/components/charts/ordinal/PieChart.js +155 -0
  56. package/ai/dist/src/components/charts/ordinal/StackedBarChart.js +213 -0
  57. package/ai/dist/src/components/charts/ordinal/SwarmPlot.js +219 -0
  58. package/ai/dist/src/components/charts/realtime/RealtimeBarChart.js +91 -0
  59. package/ai/dist/src/components/charts/realtime/RealtimeLineChart.js +73 -0
  60. package/ai/dist/src/components/charts/realtime/RealtimeSwarmChart.js +85 -0
  61. package/ai/dist/src/components/charts/realtime/RealtimeWaterfallChart.js +86 -0
  62. package/ai/dist/src/components/charts/shared/ChartError.js +72 -0
  63. package/ai/dist/src/components/charts/shared/colorUtils.js +138 -0
  64. package/ai/dist/src/components/charts/shared/formatUtils.js +176 -0
  65. package/ai/dist/src/components/charts/shared/hooks.js +49 -0
  66. package/ai/dist/src/components/charts/shared/legendUtils.js +57 -0
  67. package/ai/dist/src/components/charts/shared/types.js +2 -0
  68. package/ai/dist/src/components/charts/shared/validateChartData.js +82 -0
  69. package/ai/dist/src/components/charts/shared/validateProps.js +640 -0
  70. package/ai/dist/src/components/charts/xy/AreaChart.js +220 -0
  71. package/ai/dist/src/components/charts/xy/BubbleChart.js +222 -0
  72. package/ai/dist/src/components/charts/xy/Heatmap.js +230 -0
  73. package/ai/dist/src/components/charts/xy/LineChart.js +302 -0
  74. package/ai/dist/src/components/charts/xy/Scatterplot.js +136 -0
  75. package/ai/dist/src/components/charts/xy/StackedAreaChart.js +220 -0
  76. package/ai/dist/src/components/constants/coordinateNames.js +11 -0
  77. package/ai/dist/src/components/constants/frame_props.js +251 -0
  78. package/ai/dist/src/components/constants/jsx.js +71 -0
  79. package/ai/dist/src/components/data/dataFunctions.js +473 -0
  80. package/ai/dist/src/components/data/multiAccessorUtils.js +14 -0
  81. package/ai/dist/src/components/data/networkPipelineCache.js +43 -0
  82. package/ai/dist/src/components/data/ordinalPipelineCache.js +53 -0
  83. package/ai/dist/src/components/data/unflowedFunctions.js +5 -0
  84. package/ai/dist/src/components/data/xyPipelineCache.js +49 -0
  85. package/ai/dist/src/components/generic_utilities/functions.js +5 -0
  86. package/ai/dist/src/components/index.js +145 -0
  87. package/ai/dist/src/components/interactionLayerBehavior/InteractionCanvas.js +128 -0
  88. package/ai/dist/src/components/processing/InteractionItems.js +223 -0
  89. package/ai/dist/src/components/processing/hierarchyUtils.js +104 -0
  90. package/ai/dist/src/components/processing/layouts/chordLayout.js +58 -0
  91. package/ai/dist/src/components/processing/layouts/forceLayout.js +142 -0
  92. package/ai/dist/src/components/processing/layouts/hierarchyLayout.js +31 -0
  93. package/ai/dist/src/components/processing/layouts/index.js +32 -0
  94. package/ai/dist/src/components/processing/layouts/sankeyLayout.js +96 -0
  95. package/ai/dist/src/components/processing/layouts/simpleLayouts.js +34 -0
  96. package/ai/dist/src/components/processing/layouts/types.js +2 -0
  97. package/ai/dist/src/components/processing/network.js +771 -0
  98. package/ai/dist/src/components/processing/networkDefaults.js +39 -0
  99. package/ai/dist/src/components/processing/networkLayoutHelpers.js +98 -0
  100. package/ai/dist/src/components/processing/ordinal.js +889 -0
  101. package/ai/dist/src/components/processing/ordinalConstants.js +23 -0
  102. package/ai/dist/src/components/processing/ordinalOverlays.js +88 -0
  103. package/ai/dist/src/components/processing/ordinalRenderPipeline.js +196 -0
  104. package/ai/dist/src/components/processing/xyDrawing.js +484 -0
  105. package/ai/dist/src/components/realtime/BinAccumulator.js +36 -0
  106. package/ai/dist/src/components/realtime/IncrementalExtent.js +55 -0
  107. package/ai/dist/src/components/realtime/RealtimeFrame.js +710 -0
  108. package/ai/dist/src/components/realtime/RingBuffer.js +104 -0
  109. package/ai/dist/src/components/realtime/renderers/barRenderer.js +133 -0
  110. package/ai/dist/src/components/realtime/renderers/candlestickRenderer.js +7 -0
  111. package/ai/dist/src/components/realtime/renderers/lineRenderer.js +164 -0
  112. package/ai/dist/src/components/realtime/renderers/swarmRenderer.js +91 -0
  113. package/ai/dist/src/components/realtime/renderers/types.js +2 -0
  114. package/ai/dist/src/components/realtime/renderers/waterfallRenderer.js +163 -0
  115. package/ai/dist/src/components/realtime/types.js +2 -0
  116. package/ai/dist/src/components/semiotic-ai.js +66 -0
  117. package/ai/dist/src/components/semiotic-network.js +30 -0
  118. package/ai/dist/src/components/semiotic-ordinal.js +28 -0
  119. package/ai/dist/src/components/semiotic-realtime.js +37 -0
  120. package/ai/dist/src/components/semiotic-server.js +8 -0
  121. package/ai/dist/src/components/semiotic-xy.js +41 -0
  122. package/ai/dist/src/components/semiotic.js +101 -0
  123. package/ai/dist/src/components/server/renderToStaticSVG.js +392 -0
  124. package/ai/dist/src/components/store/TooltipStore.js +13 -0
  125. package/ai/dist/src/components/store/createStore.js +77 -0
  126. package/ai/dist/src/components/svg/SvgHelper.js +308 -0
  127. package/ai/dist/src/components/svg/areaDrawing.js +312 -0
  128. package/ai/dist/src/components/svg/boxplotRenderer.js +441 -0
  129. package/ai/dist/src/components/svg/bucketizedRenderer.js +677 -0
  130. package/ai/dist/src/components/svg/ckbinsRenderer.js +92 -0
  131. package/ai/dist/src/components/svg/ckmeans.js +238 -0
  132. package/ai/dist/src/components/svg/contourLayout.js +73 -0
  133. package/ai/dist/src/components/svg/contourRenderer.js +53 -0
  134. package/ai/dist/src/components/svg/edgeGenerators.js +181 -0
  135. package/ai/dist/src/components/svg/frameFunctions.js +579 -0
  136. package/ai/dist/src/components/svg/graphAlgorithms.js +138 -0
  137. package/ai/dist/src/components/svg/hexbinLayout.js +163 -0
  138. package/ai/dist/src/components/svg/lineDrawing.js +427 -0
  139. package/ai/dist/src/components/svg/networkDrawing.js +207 -0
  140. package/ai/dist/src/components/svg/nodeGenerators.js +131 -0
  141. package/ai/dist/src/components/svg/pieceDrawing.js +110 -0
  142. package/ai/dist/src/components/svg/pieceLayouts.js +588 -0
  143. package/ai/dist/src/components/svg/sankeyLinks.js +143 -0
  144. package/ai/dist/src/components/svg/summaryAxis.js +48 -0
  145. package/ai/dist/src/components/svg/summaryLayouts.js +202 -0
  146. package/ai/dist/src/components/svg/swarmLayout.js +128 -0
  147. package/ai/dist/src/components/types/annotationTypes.js +2 -0
  148. package/ai/dist/src/components/types/canvasTypes.js +2 -0
  149. package/ai/dist/src/components/types/generalTypes.js +2 -0
  150. package/ai/dist/src/components/types/interactionTypes.js +2 -0
  151. package/ai/dist/src/components/types/legendTypes.js +2 -0
  152. package/ai/dist/src/components/types/networkTypes.js +2 -0
  153. package/ai/dist/src/components/types/ordinalTypes.js +2 -0
  154. package/ai/dist/src/components/types/xyTypes.js +2 -0
  155. package/ai/dist/src/components/useBoundingRect.js +24 -0
  156. package/ai/dist/src/components/useDerivedStateFromProps.js +25 -0
  157. package/ai/dist/src/components/useLegacyUnmountCallback.js +21 -0
  158. package/ai/dist/src/components/visualizationLayerBehavior/axis.js +249 -0
  159. package/ai/dist/src/components/visualizationLayerBehavior/general.js +435 -0
  160. package/ai/dist/src/setupTests.js +4 -0
  161. package/ai/examples.md +394 -0
  162. package/ai/schema.json +1178 -0
  163. package/ai/system-prompt.md +38 -0
  164. package/dist/AnnotationLayer/AnnotationLayer.d.ts +0 -1
  165. package/dist/Axis/axisTitle.d.ts +3 -3
  166. package/dist/Axis/summaryGraphic.d.ts +1 -1
  167. package/dist/FacetController.d.ts +1 -1
  168. package/dist/MinimapXYFrame.d.ts +2 -2
  169. package/dist/NetworkFrame.d.ts +5 -1
  170. package/dist/OrdinalFrame.d.ts +5 -1
  171. package/dist/ResponsiveFrame.d.ts +2 -2
  172. package/dist/ResponsiveMinimapXYFrame.d.ts +3 -6
  173. package/dist/ResponsiveNetworkFrame.d.ts +3 -6
  174. package/dist/ResponsiveOrdinalFrame.d.ts +3 -6
  175. package/dist/ResponsiveXYFrame.d.ts +3 -6
  176. package/dist/SparkFrame.d.ts +1 -1
  177. package/dist/SparkNetworkFrame.d.ts +3 -3
  178. package/dist/SparkOrdinalFrame.d.ts +3 -3
  179. package/dist/SparkXYFrame.d.ts +3 -3
  180. package/dist/Tooltip/Tooltip.d.ts +141 -0
  181. package/dist/TooltipPositioner/index.d.ts +1 -1
  182. package/dist/VisualizationLayer.d.ts +3 -3
  183. package/dist/XYFrame.d.ts +5 -1
  184. package/dist/annotationLayerBehavior/annotationHandling.d.ts +2 -2
  185. package/dist/annotationRules/networkframeRules.d.ts +2 -2
  186. package/dist/annotationRules/orframeRules.d.ts +2 -4
  187. package/dist/annotationRules/xyframeRules.d.ts +2 -2
  188. package/dist/batchWork.d.ts +1 -1
  189. package/dist/charts/index.d.ts +62 -0
  190. package/dist/charts/network/ChordDiagram.d.ts +181 -0
  191. package/dist/charts/network/CirclePack.d.ts +103 -0
  192. package/dist/charts/network/ForceDirectedGraph.d.ts +192 -0
  193. package/dist/charts/network/SankeyDiagram.d.ts +195 -0
  194. package/dist/charts/network/TreeDiagram.d.ts +200 -0
  195. package/dist/charts/network/Treemap.d.ts +98 -0
  196. package/dist/charts/ordinal/BarChart.d.ts +119 -0
  197. package/dist/charts/ordinal/BoxPlot.d.ts +125 -0
  198. package/dist/charts/ordinal/DonutChart.d.ts +95 -0
  199. package/dist/charts/ordinal/DotPlot.d.ts +128 -0
  200. package/dist/charts/ordinal/GroupedBarChart.d.ts +113 -0
  201. package/dist/charts/ordinal/PieChart.d.ts +83 -0
  202. package/dist/charts/ordinal/StackedBarChart.d.ts +119 -0
  203. package/dist/charts/ordinal/SwarmPlot.d.ts +137 -0
  204. package/dist/charts/realtime/RealtimeBarChart.d.ts +102 -0
  205. package/dist/charts/realtime/RealtimeLineChart.d.ts +78 -0
  206. package/dist/charts/realtime/RealtimeSwarmChart.d.ts +88 -0
  207. package/dist/charts/realtime/RealtimeWaterfallChart.d.ts +85 -0
  208. package/dist/charts/shared/ChartError.d.ts +19 -0
  209. package/dist/charts/shared/colorUtils.d.ts +62 -0
  210. package/dist/charts/shared/formatUtils.d.ts +82 -0
  211. package/dist/charts/shared/hooks.d.ts +20 -0
  212. package/dist/charts/shared/legendUtils.d.ts +32 -0
  213. package/dist/charts/shared/types.d.ts +58 -0
  214. package/dist/charts/shared/validateChartData.d.ts +41 -0
  215. package/dist/charts/shared/validateProps.d.ts +18 -0
  216. package/dist/charts/xy/AreaChart.d.ts +127 -0
  217. package/dist/charts/xy/BubbleChart.d.ts +157 -0
  218. package/dist/charts/xy/Heatmap.d.ts +153 -0
  219. package/dist/charts/xy/LineChart.d.ts +193 -0
  220. package/dist/charts/xy/Scatterplot.d.ts +50 -0
  221. package/dist/charts/xy/StackedAreaChart.d.ts +131 -0
  222. package/dist/constants/frame_props.d.ts +9 -0
  223. package/dist/constants/jsx.d.ts +2 -2
  224. package/dist/data/dataFunctions.d.ts +11 -12
  225. package/dist/data/networkPipelineCache.d.ts +27 -0
  226. package/dist/data/ordinalPipelineCache.d.ts +33 -0
  227. package/dist/data/xyPipelineCache.d.ts +35 -0
  228. package/dist/index.d.ts +70 -62
  229. package/dist/interactionLayerBehavior/InteractionCanvas.d.ts +1 -1
  230. package/dist/network.js +8520 -0
  231. package/dist/network.js.map +1 -0
  232. package/dist/network.min.js +1 -0
  233. package/dist/network.module.js +8484 -0
  234. package/dist/network.module.js.map +1 -0
  235. package/dist/network.module.min.js +1 -0
  236. package/dist/ordinal.js +9276 -0
  237. package/dist/ordinal.js.map +1 -0
  238. package/dist/ordinal.min.js +1 -0
  239. package/dist/ordinal.module.js +9242 -0
  240. package/dist/ordinal.module.js.map +1 -0
  241. package/dist/ordinal.module.min.js +1 -0
  242. package/dist/processing/InteractionItems.d.ts +5 -4
  243. package/dist/processing/hierarchyUtils.d.ts +16 -0
  244. package/dist/processing/layouts/chordLayout.d.ts +2 -0
  245. package/dist/processing/layouts/forceLayout.d.ts +3 -0
  246. package/dist/processing/layouts/hierarchyLayout.d.ts +10 -0
  247. package/dist/processing/layouts/index.d.ts +8 -0
  248. package/dist/processing/layouts/sankeyLayout.d.ts +8 -0
  249. package/dist/processing/layouts/simpleLayouts.d.ts +7 -0
  250. package/dist/processing/layouts/types.d.ts +17 -0
  251. package/dist/processing/network.d.ts +25 -28
  252. package/dist/processing/networkDefaults.d.ts +36 -0
  253. package/dist/processing/networkLayoutHelpers.d.ts +54 -0
  254. package/dist/processing/ordinal.d.ts +43 -43
  255. package/dist/processing/ordinalConstants.d.ts +33 -0
  256. package/dist/processing/ordinalOverlays.d.ts +33 -0
  257. package/dist/processing/ordinalRenderPipeline.d.ts +148 -0
  258. package/dist/processing/xyDrawing.d.ts +46 -41
  259. package/dist/realtime/BinAccumulator.d.ts +8 -0
  260. package/dist/realtime/IncrementalExtent.d.ts +13 -0
  261. package/dist/realtime/RealtimeFrame.d.ts +4 -0
  262. package/dist/realtime/RingBuffer.d.ts +19 -0
  263. package/dist/realtime/renderers/barRenderer.d.ts +2 -0
  264. package/dist/realtime/renderers/candlestickRenderer.d.ts +2 -0
  265. package/dist/realtime/renderers/lineRenderer.d.ts +2 -0
  266. package/dist/realtime/renderers/swarmRenderer.d.ts +2 -0
  267. package/dist/realtime/renderers/types.d.ts +9 -0
  268. package/dist/realtime/renderers/waterfallRenderer.d.ts +3 -0
  269. package/dist/realtime/types.d.ts +113 -0
  270. package/dist/realtime.js +1598 -0
  271. package/dist/realtime.js.map +1 -0
  272. package/dist/realtime.min.js +1 -0
  273. package/dist/realtime.module.js +1566 -0
  274. package/dist/realtime.module.js.map +1 -0
  275. package/dist/realtime.module.min.js +1 -0
  276. package/dist/semiotic-ai.d.ts +28 -0
  277. package/dist/semiotic-ai.js +18722 -0
  278. package/dist/semiotic-ai.js.map +1 -0
  279. package/dist/semiotic-ai.min.js +1 -0
  280. package/dist/semiotic-ai.module.js +18668 -0
  281. package/dist/semiotic-ai.module.js.map +1 -0
  282. package/dist/semiotic-ai.module.min.js +1 -0
  283. package/dist/semiotic-network.d.ts +19 -0
  284. package/dist/semiotic-ordinal.d.ts +18 -0
  285. package/dist/semiotic-realtime.d.ts +23 -0
  286. package/dist/semiotic-server.d.ts +1 -0
  287. package/dist/semiotic-xy.d.ts +24 -0
  288. package/dist/semiotic.d.ts +19 -3
  289. package/dist/semiotic.js +18707 -12983
  290. package/dist/semiotic.js.map +1 -0
  291. package/dist/semiotic.min.js +1 -0
  292. package/dist/semiotic.module.js +18651 -12953
  293. package/dist/semiotic.module.js.map +1 -0
  294. package/dist/semiotic.module.min.js +1 -0
  295. package/dist/server/renderToStaticSVG.d.ts +9 -0
  296. package/dist/server.js +8360 -0
  297. package/dist/server.js.map +1 -0
  298. package/dist/server.min.js +1 -0
  299. package/dist/server.module.js +8331 -0
  300. package/dist/server.module.js.map +1 -0
  301. package/dist/server.module.min.js +1 -0
  302. package/dist/svg/SvgHelper.d.ts +1 -5
  303. package/dist/svg/areaDrawing.d.ts +3 -13
  304. package/dist/svg/boxplotRenderer.d.ts +15 -0
  305. package/dist/svg/bucketizedRenderer.d.ts +16 -0
  306. package/dist/svg/ckbinsRenderer.d.ts +20 -0
  307. package/dist/svg/contourLayout.d.ts +6 -0
  308. package/dist/svg/contourRenderer.d.ts +12 -0
  309. package/dist/svg/edgeGenerators.d.ts +51 -0
  310. package/dist/svg/frameFunctions.d.ts +17 -28
  311. package/dist/svg/graphAlgorithms.d.ts +14 -0
  312. package/dist/svg/hexbinLayout.d.ts +7 -0
  313. package/dist/svg/lineDrawing.d.ts +8 -8
  314. package/dist/svg/networkDrawing.d.ts +5 -123
  315. package/dist/svg/nodeGenerators.d.ts +58 -0
  316. package/dist/svg/pieceDrawing.d.ts +1 -2
  317. package/dist/svg/pieceLayouts.d.ts +5 -23
  318. package/dist/svg/sankeyLinks.d.ts +3 -0
  319. package/dist/svg/summaryAxis.d.ts +6 -0
  320. package/dist/svg/summaryLayouts.d.ts +36 -57
  321. package/dist/svg/swarmLayout.d.ts +13 -0
  322. package/dist/types/annotationTypes.d.ts +13 -18
  323. package/dist/types/canvasTypes.d.ts +1 -1
  324. package/dist/types/generalTypes.d.ts +37 -35
  325. package/dist/types/interactionTypes.d.ts +7 -9
  326. package/dist/types/legendTypes.d.ts +2 -2
  327. package/dist/types/networkTypes.d.ts +40 -30
  328. package/dist/types/ordinalTypes.d.ts +27 -18
  329. package/dist/types/xyTypes.d.ts +13 -16
  330. package/dist/useLegacyUnmountCallback.d.ts +2 -1
  331. package/dist/visualizationLayerBehavior/axis.d.ts +3 -5
  332. package/dist/visualizationLayerBehavior/general.d.ts +8 -12
  333. package/dist/xy.js +7944 -0
  334. package/dist/xy.js.map +1 -0
  335. package/dist/xy.min.js +1 -0
  336. package/dist/xy.module.js +7903 -0
  337. package/dist/xy.module.js.map +1 -0
  338. package/dist/xy.module.min.js +1 -0
  339. package/package.json +116 -66
  340. package/dist/AnnotationLayer/helpers.d.ts +0 -6
  341. package/dist/AnnotationLayer/index.d.ts +0 -2
  342. package/dist/Mark/Mark.d.ts +0 -3
  343. package/dist/Mark/Mark.types.d.ts +0 -10
  344. package/dist/Mark/constants/markTransition.d.ts +0 -10
  345. package/dist/Mark/markBehavior/drawing.d.ts +0 -13
  346. package/dist/SpanOrDiv.d.ts +0 -10
  347. package/dist/components/Annotation.d.ts +0 -3
  348. package/dist/components/AnnotationLayer/AnnotationLayer.d.ts +0 -26
  349. package/dist/components/Axis/Axis.d.ts +0 -7
  350. package/dist/components/Axis/axisTitle.d.ts +0 -10
  351. package/dist/components/Axis/index.d.ts +0 -2
  352. package/dist/components/Axis/summaryGraphic.d.ts +0 -17
  353. package/dist/components/Brush.d.ts +0 -12
  354. package/dist/components/DividedLine.d.ts +0 -16
  355. package/dist/components/FacetController.d.ts +0 -12
  356. package/dist/components/Frame.d.ts +0 -2
  357. package/dist/components/InteractionLayer.d.ts +0 -3
  358. package/dist/components/Legend.d.ts +0 -3
  359. package/dist/components/Mark/Mark.d.ts +0 -3
  360. package/dist/components/Mark/Mark.types.d.ts +0 -10
  361. package/dist/components/Mark/markBehavior/drawing.d.ts +0 -13
  362. package/dist/components/MiniMap.d.ts +0 -14
  363. package/dist/components/MinimapXYFrame.d.ts +0 -10
  364. package/dist/components/NetworkFrame.d.ts +0 -4
  365. package/dist/components/OrdinalFrame.d.ts +0 -4
  366. package/dist/components/ResponsiveFrame.d.ts +0 -22
  367. package/dist/components/ResponsiveMinimapXYFrame.d.ts +0 -6
  368. package/dist/components/ResponsiveNetworkFrame.d.ts +0 -6
  369. package/dist/components/ResponsiveOrdinalFrame.d.ts +0 -6
  370. package/dist/components/ResponsiveXYFrame.d.ts +0 -6
  371. package/dist/components/SpanOrDiv.d.ts +0 -10
  372. package/dist/components/SparkFrame.d.ts +0 -14
  373. package/dist/components/SparkNetworkFrame.d.ts +0 -5
  374. package/dist/components/SparkOrdinalFrame.d.ts +0 -5
  375. package/dist/components/SparkXYFrame.d.ts +0 -5
  376. package/dist/components/TooltipPositioner/index.d.ts +0 -7
  377. package/dist/components/VisualizationLayer.d.ts +0 -33
  378. package/dist/components/XYFrame.d.ts +0 -4
  379. package/dist/components/annotationLayerBehavior/annotationHandling.d.ts +0 -19
  380. package/dist/components/annotationLayerBehavior/d3labeler.d.ts +0 -9
  381. package/dist/components/annotationRules/baseRules.d.ts +0 -25
  382. package/dist/components/annotationRules/networkframeRules.d.ts +0 -48
  383. package/dist/components/annotationRules/orframeRules.d.ts +0 -105
  384. package/dist/components/annotationRules/xyframeRules.d.ts +0 -117
  385. package/dist/components/batchWork.d.ts +0 -6
  386. package/dist/components/constants/coordinateNames.d.ts +0 -8
  387. package/dist/components/constants/frame_props.d.ts +0 -4
  388. package/dist/components/constants/jsx.d.ts +0 -19
  389. package/dist/components/data/dataFunctions.d.ts +0 -46
  390. package/dist/components/data/multiAccessorUtils.d.ts +0 -1
  391. package/dist/components/data/unflowedFunctions.d.ts +0 -1
  392. package/dist/components/generic_utilities/functions.d.ts +0 -1
  393. package/dist/components/index.d.ts +0 -125
  394. package/dist/components/interactionLayerBehavior/InteractionCanvas.d.ts +0 -20
  395. package/dist/components/processing/InteractionItems.d.ts +0 -12
  396. package/dist/components/processing/network.d.ts +0 -114
  397. package/dist/components/processing/ordinal.d.ts +0 -102
  398. package/dist/components/processing/xyDrawing.d.ts +0 -135
  399. package/dist/components/semiotic.d.ts +0 -35
  400. package/dist/components/store/TooltipStore.d.ts +0 -2
  401. package/dist/components/store/createStore.d.ts +0 -1
  402. package/dist/components/svg/SvgHelper.d.ts +0 -37
  403. package/dist/components/svg/areaDrawing.d.ts +0 -31
  404. package/dist/components/svg/ckmeans.d.ts +0 -69
  405. package/dist/components/svg/frameFunctions.d.ts +0 -119
  406. package/dist/components/svg/lineDrawing.d.ts +0 -99
  407. package/dist/components/svg/networkDrawing.d.ts +0 -134
  408. package/dist/components/svg/pieceDrawing.d.ts +0 -13
  409. package/dist/components/svg/pieceLayouts.d.ts +0 -71
  410. package/dist/components/svg/summaryLayouts.d.ts +0 -74
  411. package/dist/components/types/annotationTypes.d.ts +0 -140
  412. package/dist/components/types/canvasTypes.d.ts +0 -9
  413. package/dist/components/types/generalTypes.d.ts +0 -236
  414. package/dist/components/types/interactionTypes.d.ts +0 -74
  415. package/dist/components/types/legendTypes.d.ts +0 -20
  416. package/dist/components/types/networkTypes.d.ts +0 -165
  417. package/dist/components/types/ordinalTypes.d.ts +0 -103
  418. package/dist/components/types/xyTypes.d.ts +0 -118
  419. package/dist/components/useBoundingRect.d.ts +0 -2
  420. package/dist/components/useDerivedStateFromProps.d.ts +0 -1
  421. package/dist/components/useLegacyUnmountCallback.d.ts +0 -1
  422. package/dist/components/visualizationLayerBehavior/axis.d.ts +0 -38
  423. package/dist/components/visualizationLayerBehavior/general.d.ts +0 -84
  424. package/dist/setupTests.d.ts +0 -1
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react"),t=require("d3-shape"),n=require("d3-scale"),a=require("labella"),o=require("d3-brush"),r=require("d3-selection"),s=require("d3-array"),i=require("d3-delaunay"),c=require("d3-contour"),l=require("regression"),d=require("d3-hierarchy"),u=require("d3-polygon"),p=require("polygon-offset"),y=require("d3-hexbin"),m=require("memoize-one"),h=require("d3-scale-chromatic"),g=require("svg-path-bounding-box"),f=require("d3-force"),b=require("d3-glyphedge"),x=require("d3-path-arrows"),v=require("d3-interpolate"),k=require("d3-chord"),j=require("d3-sankey-circular");function A(e){return e&&e.__esModule?e:{default:e}}function S(e){if(e&&e.__esModule)return e;const t=Object.create(null);if(e)for(const n in e)if("default"!==n){const a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,a.get?a:{enumerable:!0,get:function(){return e[n]}})}return t.default=e,Object.freeze(t)}const E=S(e),O=A(a),M=A(l),w=A(p),C=A(m),P=A(g),z=(e,t,n,a)=>{const o=(e.note.label||e.note.title).length;return[Math.min(e.note.wrap||120,o*t)+2*a,Math.ceil(o*t/120)*n+2*a]};const N={fill:e=>E.createElement("rect",{style:e,width:20,height:20}),line:e=>E.createElement("line",{style:e,x1:0,y1:0,x2:20,y2:20})};function $(e,t,n,a){let o;return o="function"==typeof n?n(e):(0,N[n])(a(e,t)),o}function D(e){const{legendGroups:t,customClickBehavior:n,title:a="Legend",width:o=100,height:r=20,orientation:s="vertical"}=e,i="vertical"===s?(({legendGroups:e,width:t,customClickBehavior:n})=>{let a=30;const o=[];return e.forEach((e,r)=>{a+=5,o.push(E.createElement("line",{key:"legend-top-line legend-symbol-"+r,stroke:"gray",x1:0,y1:a,x2:t,y2:a})),a+=10,e.label&&(a+=20,o.push(E.createElement("text",{key:"legend-text-"+r,y:a,className:"legend-group-label"},e.label)),a+=10),o.push(E.createElement("g",{key:"legend-group-"+r,className:"legend-item",transform:`translate(0,${a})`},((e,t)=>{const{type:n="fill",styleFn:a,items:o}=e,r=[];let s=0;return o.forEach((e,o)=>{const i=$(e,o,n,a);r.push(E.createElement("g",{key:"legend-item-"+o,transform:`translate(0,${s})`,onClick:t?()=>t(e):void 0,style:{cursor:t?"pointer":"default"}},i,E.createElement("text",{y:15,x:30},e.label))),s+=25}),r})(e,n))),a+=25*e.items.length+10}),o})({legendGroups:t,width:o,customClickBehavior:n}):(({legendGroups:e,title:t,height:n,customClickBehavior:a})=>{let o=0;const r=[],s=!1===t?10:40;return e.forEach((t,i)=>{t.label&&(r.push(E.createElement("text",{key:"legend-text-"+i,transform:`translate(${o},${s}) rotate(90)`,textAnchor:"start",className:"legend-group-label"},t.label)),o+=20);const c=((e,t)=>{const{type:n="fill",styleFn:a,items:o}=e,r=[];let s=0;return o.forEach((e,o)=>{const i=$(e,o,n,a);r.push(E.createElement("g",{key:"legend-item-"+o,transform:`translate(${s},0)`,onClick:t?()=>t(e):void 0,style:{cursor:t?"pointer":"default"}},i,E.createElement("text",{y:15,x:25},e.label))),s+=35,s+=8*e.label.length}),{items:r,offset:s}})(t,a);r.push(E.createElement("g",{key:"legend-group-"+i,className:"legend-item",transform:`translate(${o},${s})`},c.items)),o+=c.offset+5,e[i+1]&&r.push(E.createElement("line",{key:"legend-top-line legend-symbol-"+i,stroke:"gray",x1:o,y1:s-10,x2:o,y2:n+s+10})),o+=15}),E.createElement("g",null,!1!==t&&E.createElement("line",{x1:0,x2:o+10,y1:s-10,y2:s-10,stroke:"gray",className:"title-neatline"}),r)})({legendGroups:t,title:a,height:r,customClickBehavior:n});return E.createElement("g",null,void 0!==a&&E.createElement("text",{className:"legend-title",y:20,x:"horizontal"===s?0:o/2,textAnchor:"horizontal"===s?"start":"middle"},a),i)}function F(e,t=120,n=8){if(!e)return[];const a=Math.max(1,Math.floor(t/n)),o=e.split(/\s+/),r=[];let s="";for(const e of o)s&&s.length+1+e.length>a?(r.push(s),s=e):s=s?`${s} ${e}`:e;return s&&r.push(s),r}function T(e,t,n,a){return"curly"===e?a?`M0,0 C${.6*n},0 ${.4*n},${t/2} ${n},${t/2} C${.4*n},${t/2} ${.6*n},${t} 0,${t}`:`M0,0 C0,${.6*n} ${t/2},${.4*n} ${t/2},${n} C${t/2},${.4*n} ${t},${.6*n} ${t},0`:a?`M0,0 L${n},0 L${n},${t} L0,${t}`:`M0,0 L0,${n} L${t},${n} L${t},0`}function L(e){const{x:t=0,y:n=0,dx:a,dy:o,nx:r,ny:s,note:i,connector:c,subject:l,type:d,color:u,className:p,disable:y,events:m={},"data-testid":h}=e,g=new Set(Array.isArray(y)?y:[]);let f=a||0,b=o||0;null!=r&&(f=r-t),null!=s&&(b=s-n);const x="string"==typeof d?d:"label";if("bracket"===x&&l&&0===f&&0===b)if(void 0!==l.width){f=l.width/2;const e=l.depth||30;b=e+(0>e?-5:5)}else if(void 0!==l.height){const e=l.depth||30;f=e+(0>e?-5:5),b=l.height/2}return E.createElement("g",Object.assign({className:("annotation "+(p||"")).trim(),transform:`translate(${t},${n})`,"data-testid":h},m),!g.has("connector")&&function(e,t,n,a,o,r){const s=[];let i=0,c=0;if("callout-circle"!==o&&"label"!==o||!(null==r?void 0:r.radius)){if("callout-rect"===o&&r){const n=r.width||0,a=r.height||0;if(n>0||a>0){const o=n/2,r=a/2,s=e-o,l=t-r;if(0!==s||0!==l){const e=Math.abs(s),t=Math.abs(l),d=n/2,u=a/2,p=e*u>t*d?d/e:u/t;i=o+s*p,c=r+l*p}}}else if("bracket"===o&&r){const e=r.width,t=r.height,n=r.depth||30;void 0!==e?(i=e/2,c=n):void 0!==t&&(i=n,c=t/2)}}else{const n=(r.radius||0)+(r.radiusPadding||0);if(n>0&&(0!==e||0!==t)){const a=Math.atan2(t,e);i=Math.cos(a)*n,c=Math.sin(a)*n}}if(Math.sqrt(Math.pow(e-i,2)+Math.pow(t-c,2))>.5&&(s.push(E.createElement("line",{key:"connector-line",x1:i,y1:c,x2:e,y2:t,stroke:a||"currentColor"})),"arrow"===(null==n?void 0:n.end))){const n=10,o=16/180*Math.PI,r=Math.atan2(t-c,e-i);s.push(E.createElement("path",{key:"connector-arrow",d:`M${i},${c}L${i+n*Math.cos(r+o)},${c+n*Math.sin(r+o)}L${i+n*Math.cos(r-o)},${c+n*Math.sin(r-o)}Z`,fill:a||"currentColor",stroke:"none"}))}return E.createElement("g",{className:"annotation-connector"},s)}(f,b,c,u,x,l),!g.has("subject")&&function(e,t,n,a,o){var r;const s=[];switch(e){case"callout-circle":{const e=((null==t?void 0:t.radius)||0)+((null==t?void 0:t.radiusPadding)||0);e>0&&s.push(E.createElement("circle",{key:"subject-circle",r:e,fill:"none",stroke:n||"currentColor"}));break}case"callout-rect":{const e=(null==t?void 0:t.width)||0,a=(null==t?void 0:t.height)||0;(e>0||a>0)&&s.push(E.createElement("rect",{key:"subject-rect",width:e,height:a,fill:"none",stroke:n||"currentColor"}));break}case"callout-custom":(null==t?void 0:t.custom)&&s.push(...Array.isArray(t.custom)?t.custom:[t.custom]);break;case"xy-threshold":{const e=a||0,r=o||0;if(void 0!==(null==t?void 0:t.x)){const a=(t.x||0)-e;s.push(E.createElement("line",{key:"threshold-line",x1:a,y1:(t.y1||0)-r,x2:a,y2:(t.y2||0)-r,stroke:n||"currentColor",strokeDasharray:"5,5"}))}else if(void 0!==(null==t?void 0:t.y)){const a=(t.y||0)-r;s.push(E.createElement("line",{key:"threshold-line",x1:(t.x1||0)-e,y1:a,x2:(t.x2||0)-e,y2:a,stroke:n||"currentColor",strokeDasharray:"5,5"}))}else void 0!==(null==t?void 0:t.x1)||void 0!==(null==t?void 0:t.x2)?s.push(E.createElement("line",{key:"threshold-line",x1:(t.x1||0)-e,y1:0,x2:(t.x2||0)-e,y2:0,stroke:n||"currentColor",strokeDasharray:"5,5"})):void 0===(null==t?void 0:t.y1)&&void 0===(null==t?void 0:t.y2)||s.push(E.createElement("line",{key:"threshold-line",x1:0,y1:(t.y1||0)-r,x2:0,y2:(t.y2||0)-r,stroke:n||"currentColor",strokeDasharray:"5,5"}));break}case"bracket":{const e=null!==(r=null==t?void 0:t.width)&&void 0!==r?r:null==t?void 0:t.height;void 0!==e&&s.push(E.createElement("path",{key:"bracket-path",d:T((null==t?void 0:t.type)||"curly",e,(null==t?void 0:t.depth)||30,void 0===(null==t?void 0:t.width)),fill:"none",stroke:n||"currentColor"}));break}}return E.createElement("g",{className:"annotation-subject"},s)}(x,l,u,t,n),!g.has("note")&&function(e,t,n,a){if(!e)return E.createElement("g",{className:"annotation-note"});const{label:o,title:r,orientation:s,align:i,wrap:c=120,noWrap:l}=e;if(!o&&!r)return E.createElement("g",{className:"annotation-note"});let d=s;d||(d=Math.abs(t)>Math.abs(n)?"leftRight":"topBottom");let u=i;u&&"dynamic"!==u||(u="topBottom"===d?0>t?"right":"left":0>n?"bottom":"top");let p="start";"topBottom"===d?"right"===u?p="end":"middle"===u&&(p="middle"):p=0>t?"end":"start";const y=16,m=r?l?[r]:F(r,c):[],h=o?l?[o]:F(o,c):[],g="leftRight"===d?"end"===p?-4:4:0;let f=0;const b=[];m.length>0&&(b.push(E.createElement("text",{key:"annotation-note-title",className:"annotation-note-title",fill:a||void 0,textAnchor:p,fontWeight:"bold"},m.map((e,t)=>E.createElement("tspan",{key:t,x:g,dy:0===t?0:y},e)))),f=m.length*y),h.length>0&&b.push(E.createElement("text",{key:"annotation-note-label",className:"annotation-note-label",fill:a||void 0,textAnchor:p,y:f},h.map((e,t)=>E.createElement("tspan",{key:t,x:g,dy:y},e))));let x=null;if((r||o)&&(0!==t||0!==n))if("topBottom"===d){const e=Math.min(c,120);let t=0,n=e;"end"===p?(t=-e,n=0):"middle"===p&&(t=-e/2,n=e/2),x=E.createElement("line",{className:"note-line",x1:t,x2:n,y1:0,y2:0,stroke:a||"currentColor"})}else{const e=(m.length+h.length)*y+(h.length>0?y:0);let t=0,n=e;"bottom"===u?(t=-e,n=0):"middle"===u&&(t=-e/2,n=e/2),x=E.createElement("line",{className:"note-line",x1:0,x2:0,y1:t,y2:n,stroke:a||"currentColor"})}const v=(m.length+h.length)*y+(h.length>0?y:0);let k=0;return"topBottom"===d?0>n&&(k=-v):"leftRight"===d&&("middle"===u?k=-v/2:("bottom"===u||0>n)&&(k=-v)),E.createElement("g",{className:"annotation-note",transform:`translate(${t},${n})`},E.createElement("g",{className:"annotation-note-content",transform:0!==k?`translate(0,${k})`:void 0},b),x)}(i,f,b,u))}function R(e){const{noteData:t}=e,{screenCoordinates:n}=t,a="string"==typeof t.type?t.type:"label",o=t.eventListeners||t.events||{};if(t.coordinates&&n){const e=t.nx||n[0][0]+t.dx,o=t.ny||n[0][1]+t.dy,r=n.map((n,r)=>{const s=Object.assign({},t,{note:0===r?t.note:{label:""},x:n[0],y:n[1],nx:e,ny:o});return E.createElement(L,Object.assign({"data-testid":"semiotic-annotation",key:"multi-annotation-"+r},s,{type:a}))});return E.createElement("g",null,r)}const r=t.note||{title:"none",label:t.label};return E.createElement(L,Object.assign({"data-testid":"semiotic-annotation",key:`${r.label}-${r.title}-${t.i}`,events:o},t,{type:a}))}let[B,V]=function(t){let n=e.createContext(null);return[function({children:a}){let o=e.useMemo(()=>function(e){let t=new EventTarget,n=e(function e(a){n=Object.assign(n,a(e)),t.dispatchEvent(new CustomEvent("update"))});return{getState:()=>n,subscribe:function(e){return t.addEventListener("update",e),()=>t.removeEventListener("update",e)}}}(t),[]);return E.createElement(n.Provider,{value:o,children:a})},t=>{let a=e.useContext(n);return function(t,n){const[a,o]=e.useState(n);return e.useLayoutEffect(()=>t(()=>o(n)),[t]),a}(null==a?void 0:a.subscribe,()=>t(a.getState()))}]}(e=>({tooltip:null,changeTooltip(t){e(()=>({tooltip:t}))}}));function I(e,t,n){return"number"==typeof n?n:t&&t.find(t=>t.props.orient===e)?50:10}const W=(e,t,n)=>`${e.map(G).join(",")}${JSON.stringify(t)}${n.join(",")}`;function G(e){if(!e||!e.props||!e.props.noteData)return"";const{note:t={}}=e.props.noteData,{label:n,title:a}=t;return`${e.props.noteData.id||`${e.props.noteData.x}-${e.props.noteData.y}`}-${n}=${a}`}function _(e,t=8,n){const{noteWidth:a=n}=e;let o=a;"number"==typeof a&&(o=()=>a);const r=e.note&&e.note.wrap||120,s=e.note.label||e.note.label||"";return a&&o(e)||(E.default.isValidElement(e.note)?100:Math.min(r,s.length*t))}function H(e,t=8,n=20,a){const{noteHeight:o=a}=e;let r=o;"number"==typeof o&&(r=()=>o);const s=e.note&&e.note.wrap||120,i=e.note.label||e.note.title||"";return o&&r(e)||(E.default.isValidElement(e.note)?30:Math.ceil(i.length*t/s)*n+(e.note.label&&e.note.title?n:0))}const q=(e,t)=>t.map((t,n)=>e.svgAnnotationRule(t,n,e)).filter(e=>null!=e),Y=(e,t)=>{let n=t.adjustedAnnotations,a=t.adjustedAnnotationsKey,o=t.adjustableAnnotations,r=t.fixedAnnotations,s=[],i=[];const c=t.adjustedAnnotationsKey,l=t.adjustedAnnotationsDataVersion,{annotations:d,annotationHandling:u=!1,size:p,svgAnnotationRule:y,htmlAnnotationRule:m}=e,h="object"==typeof u?u:{layout:{type:u},dataVersion:""},{dataVersion:g=""}=h;if(y){const t=q(e,d);a=W(t,h,p),!1===u&&(n=o),n=n.length!==o.length||c!==a||l!==g?((e,t,n)=>{const{layout:a={type:!1,noteHeight:void 0,noteWidth:void 0}}=t;if(!1===a.type)return e;const{noteWidth:o,noteHeight:r}=a;let{margin:s={top:0,bottom:0,left:0,right:0}}=n;const{size:i,axes:c=[]}=n;if(s="number"==typeof s?{top:s,left:s,right:s,bottom:s}:s,"bump"===a.type)return function(e,t,n,a,o){const{padding:r=1,characterWidth:s=8,lineHeight:i=20,iterations:c=500,pointSizeFunction:l=a,labelSizeFunction:d=o||z}=t,u=e.map((e,t)=>{const n=(e.props.noteData.x[0]||e.props.noteData.x)+(void 0!==e.props.noteData.dx?e.props.noteData.dx:-10*(t%3-1)),a=(e.props.noteData.y[0]||e.props.noteData.y)+(void 0!==e.props.noteData.dy?e.props.noteData.dy:10*(t%3-1)),[o,c]=d(e.props.noteData,s,i,r);return{x:n,y:a,above:e.props.noteData.y>a,left:e.props.noteData.x>n,width:o,height:c,type:"label",name:"",originalNote:e}}),p=e.map(e=>({x:e.props.noteData.x,y:e.props.noteData.y,fx:e.props.noteData.x,fy:e.props.noteData.y,r:l&&l(e.props.noteData)||5,type:"point",originalNote:e})),y=function(){let e,t=[],n=[],a=1,o=1,r={start:e=>{},width:e=>{},height:e=>{},label:e=>{},anchor:e=>{},alt_energy:e=>{},alt_schedule:e=>{}},s=!1;const i=function(e){let a=t.length,o=0,r=t[e].x-n[e].x,s=n[e].y-t[e].y,i=Math.sqrt(r*r+s*s);i>0&&(o+=.2*i),r/=i,s/=i,o+=r>0&&s>0?0:0>r&&s>0?3:0>r&&0>s?6:9;let c,l,u,p,y,m,h,g=t[e].x,f=t[e].y-t[e].height+2,b=t[e].x+t[e].width,x=t[e].y+2;for(let r=0;a>r;r++)r!==e&&(d(n[e].x,t[e].x,n[r].x,t[r].x,n[e].y,t[e].y,n[r].y,t[r].y)&&(o+=1),c=t[r].x,u=t[r].y-t[r].height+2,l=t[r].x+t[r].width,p=t[r].y+2,y=Math.max(0,Math.min(l,b)-Math.max(c,g)),m=Math.max(0,Math.min(p,x)-Math.max(u,f)),h=y*m,o+=30*h),c=n[r].x-n[r].r,u=n[r].y-n[r].r,l=n[r].x+n[r].r,p=n[r].y+n[r].r,y=Math.max(0,Math.min(l,b)-Math.max(c,g)),m=Math.max(0,Math.min(p,x)-Math.max(u,f)),h=y*m,o+=30*h;return o},c=function(r){let c,l,d=Math.floor(Math.random()*t.length),u=t[d].x,p=t[d].y;c=s?e(d,t,n):i(d),t[d].x+=5*(Math.random()-.5),t[d].y+=5*(Math.random()-.5),t[d].x>a&&(t[d].x=u),0>t[d].x&&(t[d].x=u),t[d].y>o&&(t[d].y=p),0>t[d].y&&(t[d].y=p),l=s?e(d,t,n):i(d);let y=l-c;Math.random()<Math.exp(-y/r)||(t[d].x=u,t[d].y=p)},l=function(r){let c,l=Math.floor(Math.random()*t.length),d=t[l].x,u=t[l].y;c=s?e(l,t,n):i(l);let p=.5*(Math.random()-.5),y=Math.sin(p),m=Math.cos(p);t[l].x-=n[l].x,t[l].y-=n[l].y;let h,g=t[l].x*y+t[l].y*m;t[l].x=t[l].x*m-t[l].y*y+n[l].x,t[l].y=g+n[l].y,t[l].x>a&&(t[l].x=d),0>t[l].x&&(t[l].x=d),t[l].y>o&&(t[l].y=u),0>t[l].y&&(t[l].y=u),h=s?e(l,t,n):i(l);let f=h-c;Math.random()<Math.exp(-f/r)||(t[l].x=d,t[l].y=u)},d=function(e,t,n,a,o,r,s,i){let c,l,d,u,p;return d=(i-s)*(t-e)-(a-n)*(r-o),u=(a-n)*(o-s)-(i-s)*(e-n),p=(t-e)*(o-s)-(r-o)*(e-n),c=u/d,l=p/d,!(0>c||c>1||0>l||l>1)},u=function(e,t,n){return e-t/n};return r.start=function(e){let n=t.length,a=1;for(let t=0;e>t;t++){for(let e=0;n>e;e++).5>Math.random()?c(a):l(a);a=u(a,1,e)}},r.width=function(e){return arguments.length?(a=e,r):a},r.height=function(e){return arguments.length?(o=e,r):o},r.label=function(e){return arguments.length?(t=e,r):t},r.anchor=function(e){return arguments.length?(n=e,r):n},r.alt_energy=function(t){return arguments.length?(e=t,s=!0,r):i},r.alt_schedule=function(e){return arguments.length?r:u},r}();return y.label(u),y.anchor(p),y.width(n[0]),y.height(n[1]),y.start(c),u.forEach(e=>{if("label"===e.type){const t=function(e,t,n){return e.y>t.y?[t.x+t.width/2+n/2,t.y-t.height+n/2]:[t.x+t.width/2,t.y]}(e.originalNote.props.noteData,e,r);e.originalNote.props.noteData.nx=t[0],e.originalNote.props.noteData.ny=t[1]}}),e}(e,a,i,n.pointSizeFunction,n.labelSizeFunction);if("marginalia"===a.type){const{marginOffset:t,orient:n="nearest",characterWidth:l=8,lineHeight:d=20,padding:u=2,axisMarginOverride:p={}}=a,y="nearest"===n?["left","right","top","bottom"]:Array.isArray(n)?n:[n],m=y.find(e=>"left"===e),h=y.find(e=>"right"===e),g=y.find(e=>"top"===e),f=y.find(e=>"bottom"===e),b=[],x=[],v=[],k=[];for(const t of e){const e=t.props.noteData,n=e.x[0]||e.x,a=e.y[0]||e.y,o=m?n:1/0,r=h?i[0]-n:1/0,s=g?a:1/0,c=Math.min(o,r,s,f?i[1]-a:1/0);o===c?b.push(t):r===c?x.push(t):s===c?v.push(t):k.push(t)}const j=new O.default.Force({minPos:void 0!==p.top?0+p.top:0-s.top,maxPos:void 0!==p.bottom?i[1]-p.bottom:f?i[1]:i[1]+s.bottom}).nodes(b.map(e=>new O.default.Node(e.props.noteData.y[0]||e.props.noteData.y,H(e.props.noteData,l,d,o)+u))).compute(),A=new O.default.Force({minPos:void 0!==p.top?0+p.top:g?0:0-s.top,maxPos:void 0!==p.bottom?i[1]-p.bottom:i[1]+s.bottom}).nodes(x.map(e=>new O.default.Node(e.props.noteData.y[0]||e.props.noteData.y,H(e.props.noteData,l,d,o)+u))).compute(),S=new O.default.Force({minPos:void 0!==p.left?0+p.left:m?0:0-s.left,maxPos:void 0!==p.right?i[0]-p.right:i[0]+s.right}).nodes(v.map(e=>new O.default.Node(e.props.noteData.x[0]||e.props.noteData.x,_(e.props.noteData,l,r)+u))).compute(),M=new O.default.Force({minPos:void 0!==p.left?0+p.left:0-s.left,maxPos:void 0!==p.right?i[0]-p.right:h?i[0]:i[0]+s.right}).nodes(k.map(e=>new O.default.Node(e.props.noteData.x[0]||e.props.noteData.x,_(e.props.noteData,l,r)+u))).compute(),w=Math.max(...k.map(e=>H(e.props.noteData,l,d,o)+u)),C=Math.max(...v.map(e=>H(e.props.noteData,l,d,o)+u)),P=Math.max(...b.map(e=>_(e.props.noteData,l,r)+u)),z=Math.max(...x.map(e=>_(e.props.noteData,l,r)+u)),N=j.nodes(),$=A.nodes(),D=S.nodes(),F=M.nodes();return b.forEach((e,n)=>{const a=0-N[n].layerIndex*P-I("left",c,t),o=N[n].currentPos;e.props.noteData.nx=a,e.props.noteData.ny=o,e.props.noteData.note&&!E.isValidElement(e)&&(e.props.noteData.note.orientation=e.props.noteData.note.orientation||"leftRight",e.props.noteData.note.align=e.props.noteData.note.align||"right")}),x.forEach((e,n)=>{const a=i[0]+$[n].layerIndex*z+I("right",c,t),o=$[n].currentPos;e.props.noteData.nx=a,e.props.noteData.ny=o,e.props.noteData.note&&!E.isValidElement(e)&&(e.props.noteData.note.orientation=e.props.noteData.note.orientation||"leftRight",e.props.noteData.note.align=e.props.noteData.note.align||"left")}),v.forEach((e,n)=>{const a=D[n].currentPos,o=0-D[n].layerIndex*C-I("top",c,t);e.props.noteData.nx=a,e.props.noteData.ny=o}),k.forEach((e,n)=>{const a=F[n].currentPos,o=i[1]+F[n].layerIndex*w+I("bottom",c,t);e.props.noteData.nx=a,e.props.noteData.ny=o}),e}return e})(o,h,e):o.map((e,t)=>{const a=Object.assign(Object.assign({},n[t].props.noteData),e.props.noteData);return E.createElement(R,{key:e.key,noteData:a})}),s=[...n,...r]}return m&&(i=((e,t)=>t.map((t,n)=>e.htmlAnnotationRule(t,n,e)).filter(e=>null!=e))(e,d)),{svgAnnotations:s,htmlAnnotations:i,adjustedAnnotations:n,adjustedAnnotationsKey:a,adjustedAnnotationsDataVersion:g}};function X(t){const{legendSettings:n,margin:a,size:o,annotations:r,annotationHandling:s}=t,i=V(e=>e.tooltip);let c=null!=i?r.concat(i):r,l=V(e=>e.changeTooltip);const d=Object.assign(Object.assign({},t),{annotations:c,voronoiHover:e=>{l(e)}}),u="object"==typeof s?s:{layout:{type:s},dataVersion:""},{dataVersion:p=""}=u,[y,m]=e.useState([]),[h,g]=e.useState([]),[f,b]=e.useState([]),[x,v]=e.useState(""),[k,j]=e.useState(p),A=q(d,c),S=A.filter(e=>e.props&&e.props.noteData&&!e.props.noteData.fixedPosition),O=W(S,u,o);let M;if(e.useEffect(()=>{const e=A.filter(e=>!e.props||!e.props.noteData||e.props.noteData.fixedPosition),t=Y(d,{adjustedAnnotations:y,adjustedAnnotationsKey:x,adjustedAnnotationsDataVersion:k,adjustableAnnotations:S,fixedAnnotations:e});m(t.adjustedAnnotations),v(t.adjustedAnnotationsKey),j(t.adjustedAnnotationsDataVersion),g(t.svgAnnotations),b(t.htmlAnnotations)},[O,p,c.length,c.map(e=>function(e){const t=new Set;return JSON.stringify(e,(e,n)=>t.has(n)?"...":"object"==typeof n?(t.add(n),"note"===e?`${n.label}-${n.title}`:"connector"===e?`${n.end}-${n.type}`:"subject"===e?""+n.radius:"object"==typeof n.column?`${n.column.x}-${n.column.y}-${n.column.name}`:n.voronoiX||n.voronoiY||n.x||n.y||n.dx||n.dy||n.label||n.type||n.key||n.hierarchicalID||n.id||n.name?`${n.voronoiX}-${n.voronoiY}-${n.dx}-${n.dy}-${n.x}-${n.y}-${n.label}-${n.type}-${n.key}-${n.hierarchicalID}-${n.id}-${n.name}`:"..."):n)}(e)).join("-")]),n){const e={left:[15,15],right:[o[0]+15,15]},{position:t="right",title:a="Legend"}=n;M=E.createElement("g",{transform:`translate(${e[t].join(",")})`},E.createElement(D,Object.assign({},n,{title:a,position:t})))}return 0!==c.length||n?E.createElement("div",{className:"annotation-layer",style:{position:"absolute",pointerEvents:"none",background:"none"}},E.createElement("svg",{className:"annotation-layer-svg",height:o[1],width:o[0],style:{background:"none",pointerEvents:"none",position:"absolute",left:a.left+"px",top:a.top+"px",overflow:"visible"}},E.createElement("g",null,M,h)),E.createElement("div",{className:"annotation-layer-html",style:{background:"none",pointerEvents:"none",position:"absolute",height:o[1]+"px",width:o[0]+"px",left:a.left+"px",top:a.top+"px"}},f)):null}const K=e=>e.reduce((e,t)=>e.concat(Array.isArray(t)?K(t.slice().sort((e,t)=>e-t)):t),[]);function Z(e=[]){if(!Array.isArray(e))return"not-array";let t=e.slice();return Array.isArray(t[0])||(t=t.slice().sort((e,t)=>e-t)),""+K(t).map(e=>e instanceof Date&&""+e||void 0!==e&&e.toFixed&&e.toFixed(2)||"empty")}function Q(t){const{extent:n,selectedExtent:a}=t,o=e.useRef(null),s=Z(n),i=Z(a);e.useEffect(()=>{(null==o?void 0:o.current)&&((e,t)=>{const{svgBrush:n,selectedExtent:a}=t;if(r.select(e).call(n),a){let t=a;if(Array.isArray(a[0])){const e=[t[0][1],t[1][1]].sort((e,t)=>e-t);t=[[t[0][0],e[0]],[t[1][0],e[1]]]}r.select(e).call(n.move,t)}})(o.current,t)},[s,i,o]);const{position:c=[0,0]}=t;return E.createElement("g",{transform:`translate(${c})`,ref:o,className:"xybrush"})}function U(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(a=Object.getOwnPropertySymbols(e);a.length>o;o++)0>t.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]])}return n}"function"==typeof SuppressedError&&SuppressedError;const J="x",ee="y",te="yMiddle",ne="yTop",ae="yBottom",oe="xMiddle",re="xTop",se="xBottom",ie=(e,t)=>void 0===e?e:Object.assign(e&&e.data?Object.assign({points:t},e.data):{points:t},e),ce=(e,t,n,a,o,r)=>{const s=ie(t,o);if(a&&a(s),t){if(!0===n){const t=Object.assign({},s);t.type="column-hover"===t.type?"column-hover":"frame-hover",e(t,r)}else if(n){const t=(Array.isArray(n)?n:[n]).map(e=>{const t="function"==typeof e?e(s):e;if(t)return Object.assign({},s,t)}).filter(e=>e);e(t,r)}}else e(null)},le=(e,t,n,a)=>{const o=ie(e,n);t&&t(o,a)},de=(e,t,n,a)=>{const o=ie(e,n);t&&t(o,a)},ue=(e,t,n,a,o)=>{o&&o.start&&o.start(e,t,n,a)},pe=(e,t,n,a,o)=>{o&&o.during&&o.during(e,t,n,a)},ye=(e,t,n,a,o)=>{o&&o.end&&o.end(e,t,n,a)},me=()=>({}),he=2*Math.PI,ge=(e=1)=>(t,n)=>{const a=t[t.length-1];return a&&Math.round(a.x/e)===Math.round(n.x/e)&&Math.round(a.y/e)===Math.round(n.y/e)||t.push(n),t},fe=({x1:e,x2:t,y1:n,y2:a,sizeX1:o,sizeY1:r,sizeX2:s,sizeY2:i})=>`M${e},${n}L${t},${a}L${t+s},${a+i}L${e+o},${n+r}Z`;function be(){const e=t.line();let n=function(e){return e.x},a=function(e){return e.y},o=function(e){return e.r},r=t.curveLinearClosed;function s(t){if(t.multiple){const s=o,i=t.multiple.reduce((e,t)=>e+t.weight,0);o=()=>i;let l=c(t.points).filter(e=>"forward"===e.direction).reduce(ge(),[]);const d=[];return t.multiple.forEach((e,n)=>{o=()=>e.weight;const a=c(l);d.push(a);const r=t.multiple[n+1];if(r){const e=a.reverse().filter(e=>"back"===e.direction).reduce(ge(),[]);o=()=>r.weight;const t=c(e);l=t.reverse().filter(e=>"back"===e.direction).reduce(ge(),[])}}),o=s,d.map(t=>e.x(n).y(a).curve(r)(t))}const s=c(t).reduce(ge(),[]);return e.x(n).y(a).curve(r)(s)}return s.x=function(e){return arguments.length?(n=e,s):n},s.y=function(e){return arguments.length?(a=e,s):a},s.r=function(e){return arguments.length?(o=e,s):o},s.interpolate=function(e){return arguments.length?(r=e,s):r},s;function i(e){const t=a(e.target)-a(e.source),r=n(e.target)-n(e.source),s=Math.atan2(r,t)+Math.PI/2,i=s+.5*Math.PI,c=s+.5*Math.PI;return{x1:n(e.source)+o(e.source)*Math.cos(i),y1:a(e.source)-o(e.source)*Math.sin(i),x2:n(e.target)+o(e.target)*Math.cos(c),y2:a(e.target)-o(e.target)*Math.sin(c)}}function c(e){const t=[];let n=0,a={x1:0,y1:0,x2:0,y2:0};for(;e.length>n;){if(n!==e.length-1&&(a=i({source:e[n],target:e[n+1]}),t.push({x:a.x1,y:a.y1,direction:"forward"},{x:a.x2,y:a.y2,direction:"forward"}),t.length>3)){const e=t.length-1,n={a:t[e-3],b:t[e-2]},a={a:t[e-1],b:t[e]},o=l(n.a.x,n.a.y,n.b.x,n.b.y,a.a.x,a.a.y,a.b.x,a.b.y);!0===o.found&&(n.b.x=o.x,n.b.y=o.y,a.a.x=o.x,a.a.y=o.y)}n++}for(n--;n>=0;){if(0!==n&&(a=i({source:e[n],target:e[n-1]}),t.push({x:a.x1,y:a.y1,direction:"back"},{x:a.x2,y:a.y2,direction:"back"}),t.length>3)){const e=t.length-1,n={a:t[e-3],b:t[e-2]},a={a:t[e-1],b:t[e]},o=l(n.a.x,n.a.y,n.b.x,n.b.y,a.a.x,a.a.y,a.b.x,a.b.y);!0===o.found&&(n.b.x=o.x,n.b.y=o.y,a.a.x=o.x,a.a.y=o.y)}n--}return t}function l(e,t,n,a,o,r,s,i){let c,l;const d={x:null,y:null,found:!1},u=(i-r)*(n-e)-(s-o)*(a-t);if(0===u)return d;c=t-r,l=e-o;const p=(n-e)*c-(a-t)*l;return c=((s-o)*c-(i-r)*l)/u,l=p/u,d.x=e+c*(n-e),d.y=t+c*(a-t),c>0&&1>c&&l>0&&1>l&&(d.found=!0),d}}const xe=({xy:e,orient:t,i:n,className:a="",jaggedBase:o})=>{let r=`M${e.x1},${e.y1}L${e.x2},${e.y2}`;return o&&0===n&&(r=((e,t)=>{let n="";const{x1:a,x2:o,y1:r,y2:s}=t;if("left"===e||"right"===e){const t=Math.abs(o-a);n=((e,t,n,a)=>{const o=e/t;let r=0,s="M0,"+n;const i="right"===a?-1:1;for(;e>=r;)s+=`L${r},${n}`,e>r&&(s+=`L${r+o/2},${n+10*i}`),r+=o;return s})(t,Math.ceil(t/40),"right"===e?0:r,e)}else{const t=Math.abs(s-r);n=((e,t,n,a)=>{const o=e/t;let r=0,s=`M${n},0`;const i="bottom"===a?-1:1;for(;e>=r;)s+=`L${n},${r}`,e>r&&(s+=`L${n+10*i},${r+o/2}`),r+=o;return s})(t,Math.ceil(t/40),a,e)}return n})(t,e)),E.createElement("path",{key:n,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:r,className:`tick-line tick ${t} ${a}`})};function ve(e,t,n){const a=Math.abs(n.range()[1]-n.range()[0]);return e||(t||(t=Math.max(1,Math.floor(a/40))),e=n.ticks&&n.ticks(t)||n.domain()),e}function ke({renderMode:e=()=>{},padding:t=5,scale:n,ticks:a,tickValues:o=ve(void 0,a,n),orient:r="left",size:s,footer:i=!1,tickSize:c=(i?-10:["top","bottom"].find(e=>e===r)?s?s[1]:0:s?s[0]:0),jaggedBase:l}){let d,u,p,y,m,h,g=[],f=0,b=0,x="middle";switch(r){case"top":d="x1",u="x2",p="y1",y="y2",g=[0,c],m="tx",h="ty",f-=20-t;break;case"bottom":d="x1",u="x2",p="y2",y="y1",g=s?[s[1],s[1]-c]:[0,-c],m="tx",h="ty",f+=20+t;break;case"right":d="y2",u="y1",p="x2",y="x1",g=s?[s[0],s[0]-c]:[0,-c],m="ty",h="tx",f+=5+t,b+=5,x="start";break;default:d="y1",u="y2",p="x1",y="x2",g=[0,c],m="ty",h="tx",f-=5+t,b+=5,x="end"}let v=o instanceof Function?o({orient:r}):o;return l&&void 0===v.find(e=>e===n.domain()[0])&&(v=[n.domain()[0],...v]),v.map((t,a)=>{const o=n(t);return{[d]:o,[u]:o,[p]:g[0],[y]:g[1],[m]:o+b,[h]:g[0]+f,defaultAnchor:x,renderMode:e(t,a),value:t}})}const je=(e,t,n)=>{const a={left:{x:0,y:0,width:0,height:t?t[1]:0},right:{x:t?t[0]:0,y:0,width:0,height:t?t[1]:0},top:{x:0,y:0,width:t?t[0]:0,height:0},bottom:{x:0,y:t?t[1]:0,width:t?t[0]:0,height:0}}[e];return E.createElement("line",{key:"baseline",className:"axis-baseline "+n,stroke:"currentColor",strokeLinecap:"square",x1:a.x,x2:a.x+a.width,y1:a.y,y2:a.y+a.height})},Ae=({axisParts:e,orient:t,tickLineGenerator:n=xe,className:a,jaggedBase:o,scale:r,showOutboundTickLines:s=!1})=>{const i=e.map((e,s)=>n({xy:e,orient:t,i:s,className:a,jaggedBase:o,scale:r})),c=s?e.map((e,n)=>(({xy:e,orient:t,i:n,className:a=""})=>{let o=`M-4,${e.y1}L${e.x1},${e.y2}`;return"left"===t?o=`M${e.x1-8},${e.y1}L${e.x1},${e.y2}`:"right"===t?o=`M${e.x2},${e.y1}L${e.x2+8},${e.y2}`:"top"===t?o=`M${e.x1},${e.y1-8}L${e.x1},${e.y1}`:"bottom"===t&&(o=`M${e.x1},${e.y2}L${e.x1},${e.y2+8}`),E.createElement("path",{key:n,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:o,className:`outbound-tick-line tick ${t} ${a}`})})({xy:e,orient:t,i:n,className:a})):[];return[...i,c]};function Se({t:e,o:t,w:n}){return"contour"!==e&&"boxplot"!==e||"left"!==t&&"right"!==t?0:n/2}function Ee({t:e,o:t,w:n}){return"contour"!==e&&"boxplot"!==e||"top"!==t&&"bottom"!==t?0:n/2}function Oe(e){const{translation:t,orient:n,decoratedSummaryType:a,summaryWidth:o,renderedSummary:r,points:s}=e;return E.default.createElement("g",{className:"marginal-graphics",transform:`translate(${t[n]})`},E.default.createElement("g",{transform:`translate(${Se({t:a.type,o:n,w:o})},${Ee({t:a.type,o:n,w:o})})`},r),s)}function Me(e){const{className:t,translation:n,position:a,rotation:o,labelName:r,anchorMod:s}=e;return E.default.createElement("g",{className:"axis-title "+t,transform:`translate(${[n[0]+a[0],n[1]+a[1]]}) rotate(${o})`},E.default.isValidElement(r)?r:E.default.createElement("text",{textAnchor:s},r))}function we(e,t,n){const a=Math.PI*(t+.75)*2;return[e[0]+n*Math.cos(a),e[1]+n*Math.sin(a)]}const Ce=({data:e,shouldRender:t,canvasRender:n,canvasDrawing:a,styleFn:o,classFn:r,renderKeyFn:s,ariaLabel:i,axis:c})=>{const l=c&&c[0]&&c[0].tickFormat;if(!t)return null;const d=[];return e.forEach((e,t)=>{if(n&&!0===n(e))a.push({baseClass:"orframe-piece",tx:e.tx||0,ty:e.ty||0,d:e.piece,i:t,markProps:e.renderElement||e,styleFn:o,renderFn:()=>e.renderValue,classFn:r});else if(E.isValidElement(e.renderElement||e))d.push(e.renderElement||e);else{const n=i?`${e.o} ${i.items} value ${l&&l(e.piece.value)||e.piece.value}`:"",a=s?s(e.piece):e.renderKey||"piece-render-"+t,o=e.renderElement||e,{markType:r,style:c={}}=o,u=U(o,["markType","style"]),p=Object.assign(Object.assign({},u),{key:a,"aria-label":n});void 0!==c.fill&&(p.fill=c.fill),void 0!==c.stroke&&(p.stroke=c.stroke),void 0!==c.strokeWidth&&(p.strokeWidth=c.strokeWidth),void 0!==c.opacity&&(p.opacity=c.opacity),void 0!==c.fillOpacity&&(p.fillOpacity=c.fillOpacity),void 0!==c.strokeOpacity&&(p.strokeOpacity=c.strokeOpacity);const y=Object.assign({},c);delete y.fill,delete y.stroke,delete y.strokeWidth,delete y.opacity,delete y.fillOpacity,delete y.strokeOpacity,Object.keys(y).length>0&&(p.style=y),r&&d.push(E.createElement(r,p))}}),d},Pe=()=>({});function ze(e,t){for(var n=[],a=0;e>a;a++){for(var o=[],r=0;t>r;r++)o.push(0);n.push(o)}return n}function Ne(e,t,n,a){var o;if(e>0){var r=(n[t]-n[e-1])/(t-e+1);o=a[t]-a[e-1]-(t-e+1)*r*r}else o=a[t]-n[t]*n[t]/(t+1);return 0>o?0:o}function $e(e,t,n,a,o,r,s){if(t>=e){var i=Math.floor((e+t)/2);a[n][i]=a[n-1][i-1],o[n][i]=i;var c=n;e>n&&(c=Math.max(c,o[n][e-1]||0)),c=Math.max(c,o[n-1][i]||0);var l,d,u,p,y=i-1;a[0].length-1>t&&(y=Math.min(y,o[n][t+1]||0));for(var m=y;m>=c&&(l=Ne(m,i,r,s))+a[n-1][c-1]<a[n][i];--m)d=Ne(c,i,r,s),a[n][i]>(u=d+a[n-1][c-1])&&(a[n][i]=u,o[n][i]=c),c++,a[n][i]>(p=l+a[n-1][m-1])&&(a[n][i]=p,o[n][i]=m);$e(e,i-1,n,a,o,r,s),$e(i+1,t,n,a,o,r,s)}}function De({summaryType:e,data:t,finalXExtent:a,finalYExtent:o}){let r=[];e.type||(e={type:e});const{resolution:s=500,thresholds:i=10,bandwidth:l=20,neighborhood:d}=e,u=n.scaleLinear().domain(a).rangeRound([0,s]).nice(),p=n.scaleLinear().domain(o).rangeRound([s,0]).nice();return t.forEach(e=>{let t=c.contourDensity().size([s,s]).x(e=>u(e[0])).y(e=>p(e[1])).thresholds(i).bandwidth(l)(e._xyfCoordinates);d&&(t=[t[0]]);const n=Math.max(...t.map(e=>e.value));t.forEach(t=>{t.parentSummary=e,t.bounds=[],t.percent=t.value/n,t.coordinates.forEach(e=>{e.forEach((n,a)=>{e[a]=n.map(e=>[u.invert(e[0]),p.invert(e[1])]),0===a&&t.bounds.push(function(e){let t=[1/0,0],n=[-1/0,0],a=[0,1/0],o=[0,-1/0];return e.forEach(e=>{t=t[0]>e[0]?e:t,n=e[0]>n[0]?e:n,o=e[1]>o[1]?e:o,a=a[1]>e[1]?e:a}),{center:[(t[0]+n[0])/2,(a[1]+o[1])/2],top:a,left:t,right:n,bottom:o}}(e[a]))})})}),r=[...r,...t]}),r}const Fe=(e,t,n,a)=>[...e.map((e,a)=>[e[0],e[1]+n(t[a])]),...e.map((e,n)=>[e[0],e[1]-a(t[n])]).reverse()];function Te(e){let t=[1/0,0],n=[-1/0,0],a=[0,1/0],o=[0,-1/0];return e.forEach(e=>{t=t[0]>e[0]?e:t,n=e[0]>n[0]?e:n,o=e[1]>o[1]?e:o,a=a[1]>e[1]?e:a}),{center:[(t[0]+n[0])/2,(a[1]+o[1])/2],top:a,left:t,right:n,bottom:o}}const Le=e=>[e.xy.x,e.xy.y],Re={step:t.curveStep,stepbefore:t.curveStepBefore,stepafter:t.curveStepAfter,cardinal:t.curveCardinal,basis:t.curveBasis,linear:t.curveLinear,catmullrom:t.curveCatmullRom,monotone:t.curveMonotoneY,monotonex:t.curveMonotoneX,monotoney:t.curveMonotoneY,natural:t.curveNatural};function Be({generator:e,projectedCoordinateNames:t,defined:n,xScale:a,yScale:o,interpolator:r,simpleLine:s}){const{x:i,y:c,yTop:l,yBottom:d,xBottom:u,xTop:p}=t;e.x(e=>a(e[i])).curve(r),s?e.y(e=>o(e[c])):(e.y0(e=>o(e[d])).y1(e=>o(e[l])),e.x0(e=>a(e[u])).x1(e=>a(e[p]))),e.defined(n?(e,t)=>n(e,t):e=>!e._xyFrameUndefined)}function Ve({xScale:e,yScale:t,canvasDrawing:n,data:a,projectedCoordinateNames:o,customMark:r,canvasRender:s,styleFn:i,classFn:c,renderKeyFn:l,renderMode:d,showLinePoints:u}){const{y:p,x:y,xMiddle:m,yMiddle:h,yTop:g,yBottom:f}=o,b={top:g,bottom:f}[!0===u?void 0:u],x=[];return a.forEach((a,o)=>{const u=e(void 0!==a[m]?a[m]:a[y]),g=t(void 0!==a[b]?a[b]:void 0!==a[h]?a[h]:a[p]),f=`Point at x ${a.x} and y ${a.y}`,v=r?E.isValidElement(r)?r:r({d:a.data,xy:a,i:o,xScale:e,yScale:t}):void 0,k=r?Object.assign(Object.assign({},v.props),{"aria-label":f}):{key:"piece-"+o,markType:"circle",r:2,"aria-label":f};!v||!v.props||v.props.markType||s&&!0===s(a.data,o)?s&&!0===s(a.data,o)?n.push({type:"point",baseClass:"frame-piece",tx:u,ty:g,d:a,i:o,markProps:k,styleFn:i,renderFn:d,classFn:c}):(Array.isArray(a[p])?a[p].map(e=>t(e)):[g]).forEach((t,n)=>{(Array.isArray(a[y])?a[y].map(t=>e(t)):[u]).forEach((e,r)=>{x.push(Ge({baseClass:"frame-piece",tx:e,ty:t,d:a.data&&Object.assign(Object.assign({},a),a.data)||a,i:0===n&&0===r?o:`${o}-${n}-${r}`,markProps:k,styleFn:i,renderKeyFn:l,classFn:c,yi:n}))})}):x.push(E.createElement("g",{transform:`translate(${u},${g})`,key:l?l(a.data,o):"custom-point-mark-"+o,style:i?i(a.data,o):{},className:c?c(a.data,o):""},v))}),x}function Ie({xScale:e,yScale:n,canvasDrawing:a,data:o,projectedCoordinateNames:r,customMark:s,canvasRender:i,styleFn:c,classFn:l,renderMode:d,renderKeyFn:u,type:p,defined:y,ariaLabel:m,axesData:h=[]}){const g=h.find(e=>"bottom"===e.orient||"top"===e.orient),f=h.find(e=>"left"===e.orient||"right"===e.orient),b=g&&g.tickFormat||(e=>e),x=f&&f.tickFormat||(e=>e),v="object"==typeof p?p:{type:p},k="string"==typeof v.interpolator?Re[v.interpolator]:v.interpolator||t.curveLinear,j=v.simpleLine?t.line():t.area();Be({projectedCoordinateNames:r,defined:y,interpolator:k,generator:j,xScale:e,yScale:n,simpleLine:v.simpleLine});const A=k.dynamicInterpolator&&((a,o)=>{const s=t.area();return Be({projectedCoordinateNames:r,defined:y,interpolator:k.dynamicInterpolator(a,o),generator:s,xScale:e,yScale:n,simpleLine:v.simpleLine}),s})||(()=>j),S=[];if(o.forEach((o,p)=>{const h=o.data.map(e=>Object.assign(Object.assign({},e.data),e));if(s&&"function"==typeof s){const t=Object.assign(Object.assign({},o),{data:h});S.push(s({d:t,i:p,xScale:e,yScale:n,canvasDrawing:a}))}else{const s={};v.simpleLine&&(s.fill="none",s.stroke="black");const g=A(o,p)(h),f=Object.assign(Object.assign({},s),{markType:"path",d:g,"aria-label":o.data&&o.data.length>0&&m&&`${o.data.length} point ${m.items} starting value ${x(o.data[0].y)} at ${b(o.data[0].x)} ending value ${x(o.data[o.data.length-1].y)} at ${b(o.data[o.data.length-1].x)}`});if(i&&!0===i(o,p))a.push({type:"line",baseClass:"xyframe-line",tx:0,ty:0,d:o,i:p,markProps:f,styleFn:c,renderFn:d,classFn:l});else{let a=c;if("area"===v.type&&!0!==v.enclosed&&(a=(e,t)=>Object.assign(Object.assign({},c(e,t)),{stroke:"none"})),S.push(Ge({baseClass:"xyframe-line",d:o,i:p,markProps:f,styleFn:a,renderKeyFn:u,classFn:l})),"area"===v.type&&!0!==v.enclosed){const a=(e,t)=>Object.assign(Object.assign({},c(e,t)),{fill:"none"}),s=t.line();Be({projectedCoordinateNames:r,defined:y,interpolator:k,generator:s,xScale:e,yScale:n,simpleLine:!0});const i=Object.assign(Object.assign({},f),{d:s(h)}),d=u?(e,t,n)=>u(e,t,n)+"-top":void 0;S.push(Ge({baseClass:"xyframe-line-top",d:o,i:p,markProps:i,styleFn:a,renderKeyFn:d,classFn:l}))}}}}),"difference"===v.type&&2===o.length){const a=o[0].data.map((e,t)=>{const n=e.yTop>o[1].data[t].yTop?e.yTop:e.yBottom;return{x:e.x,y:n,yBottom:n,yTop:n}}),s=o[0].data.map((e,t)=>{const n=o[1].data[t].yTop>e.yTop?o[1].data[t].yTop:o[1].data[t].yBottom;return{x:e.x,y:n,yBottom:n,yTop:n}}),i=l?"xyframe-line "+l(a):"xyframe-line",c=t.line();Be({projectedCoordinateNames:r,defined:y,interpolator:k,generator:c,xScale:e,yScale:n,simpleLine:!0});const d=E.createElement("path",{key:"xyline-diff-a",className:i+" difference-overlay-a",d:c(a),style:{fill:"none",pointerEvents:"none"}});S.push(d);const u=E.createElement("path",{key:"xyline-diff-b",className:i+" difference-overlay-b",d:c(s),style:{fill:"none",pointerEvents:"none"}});S.push(u)}return S}function We({xScale:e,yScale:n,canvasDrawing:a,data:o,canvasRender:r,styleFn:s,classFn:i,renderKeyFn:c,renderMode:l,customMark:d}){const u=i||(()=>""),p=s||(()=>({})),y=l;Array.isArray(o)||(o=[o]);const m=[];return o.forEach((o,s)=>{let i="xyframe-summary";u&&(i="xyframe-summary "+u(o));let l="",h=!1;if("string"==typeof o.customMark||E.isValidElement(o.customMark))l=o.customMark,h=!0;else if("MultiPolygon"===o.type)o.coordinates.forEach(t=>{t.forEach(t=>{l+=`M${t.map(t=>`${e(t[0])},${n(t[1])}`).join("L")}Z `})});else if(d){const t=o._xyfCoordinates.map(t=>[e(t[0]),n(t[1])]);l=d({d:o,i:s,classFn:u,styleFn:p,renderFn:y,projectedCoordinates:t,xScale:e,yScale:n,bounds:Te(t)}),h=!0}else{const a=o._xyfCoordinates;if(o.curve){const r=t.line().x(t=>e(t[0])).y(e=>n(e[1])).curve(o.curve);l=r(a)}else l=`M${a.map(t=>`${e(t[0])},${n(t[1])}`).join("L")}Z`}const g=c?c(o,s):"summary-"+s;h&&E.isValidElement(l)?m.push(l):r&&!0===r(o,s)?a.push({type:"summary",baseClass:"xyframe-summary",tx:0,ty:0,d:o,i:s,markProps:{markType:"path",d:l},styleFn:p,renderFn:y,classFn:()=>i}):m.push(E.createElement("path",{"data-testid":"xyframe-summary",key:g,className:i,d:l,style:p(o,s)}))}),m}function Ge({tx:e,ty:t,d:n,i:a,markProps:o,styleFn:r,classFn:s,renderKeyFn:i,baseClass:c,yi:l}){if(o.style=r?r(n,a,l):{},o.className=c,o.key=i?i(n,a,l):`${c}-${void 0===n.key?a:n.key}`,(e||t)&&(o.transform=`translate(${e||0},${t||0})`),s&&(o.className=`${c} ${s(n,a,l)}`),o.style.r&&(o.r=o.style.r),o["data-testid"]=c,!o.markType)return E.createElement(o);const{markType:d}=o,u=U(o,["markType"]);return E.createElement(d,u)}const _e=(e,t)=>e.xy.y-t.xy.y,He=(e,t)=>t.xy.x-e.xy.x,qe=()=>({});function Ye({summary:e,summaryI:t,axisSettings:a,axisCreator:o,projection:r,actualMax:s,adjustedSize:i,columnWidth:c}){let l=`translate(${e.x},0)`,d=[0,s];"horizontal"===r?(l=`translate(0,${e.x})`,d=[s,0]):"radial"===r&&(l="translate(0, 0)"),a.size=["horizontal"===r?i[0]:c,"vertical"===r?i[1]:c];const u=o(a,t,n.scaleLinear().domain(d).range([0,c]));return E.createElement("g",{className:"summary-axis",key:"summaryPiece-axis-"+t,transform:l},u)}function Xe({data:e,type:n,eventListenersGenerator:a,styleFn:o,classFn:r,projection:i,adjustedSize:c,chartSize:l,axisCreator:d}){const u=[],p=[],y=n.bins||25,m=!!n.relative&&{},h=n.binValue||(e=>e.length),g=n.elementStyleFn||qe;let f;n.axis&&(n.axis.orient="horizontal"===i&&-1===["left","right"].indexOf(n.axis.orient)?"left":n.axis.orient,n.axis.orient="vertical"===i&&-1===["bottom","top"].indexOf(n.axis.orient)?"bottom":n.axis.orient,f=d,"radial"===i&&(console.error("Summary axes cannot be drawn for radial histograms"),f=()=>null));let b=l/y;const x=Object.keys(e);let v=0;const k=s.histogram(),j=[0,l],A=[];for(let e=0;y>e;e++)A.push(j[0]+e/y*l);const S="vertical"===i?e=>e.piece.scaledVerticalValue:e=>e.piece.scaledValue,E=k.domain(j).thresholds(A).value(S),O=x.map((t,a)=>{const o=e[t],r=o.xyData,c=r.sort("vertical"===i?_e:He);let d;if(!1===n.useBins){const e=c.map(e=>S(e));d=c.map((t,n)=>{const a=[];return a.x0=e[n]-1,a.x1=e[n]+1,a.push(t),a}).sort((e,t)=>e.x0-t.x0),b=l/d.length}else d=E(c);d=d.map(e=>({y:e.x0,y1:e.x1-e.x0,pieces:e,value:h(e.map(e=>e.piece.data))})),"histogram"!==n.type&&"heatmap"!==n.type||(d=d.filter(e=>0!==e.value));const u=0===d.length?0:s.max(d.map(e=>e.value));return m&&(m[t]=u),v=Math.max(v,u),{bins:d,summary:o,summaryI:a,thisSummaryData:r}}),M=n.horizon?v/n.horizon:n.numHorizons||4,w=n.horizon||v/M;return O.forEach(({bins:e,summary:l,summaryI:d,thisSummaryData:y})=>{const x=a(l,d),k=l.width;let j=y[0]?o(y[0].piece.data,d):{},A=y[0]?r(y[0].piece.data,d):"",S=[l.middle,0];"horizontal"===i?S=[b,l.middle]:"radial"===i&&(S=[c[0]/2,c[1]/2]);const E=m&&m[l.name]||v;if("heatmap"===n.type||"histogram"===n.type){const a=(({bins:e,binMax:n,relativeBuckets:a,columnWidth:o,projection:r,adjustedSize:s,summaryI:i,summary:c,summaryStyle:l,type:d})=>{const u=[],p=[],y=a&&a[c.name]||n,m=d.elementStyleFn||me,h=d.padding||0;return e.forEach((e,n)=>{const a=e.value/y,g=m(e.value,a,e.pieces),f=Object.assign("heatmap"===d.type?{opacity:a,fill:l.fill}:Object.assign({},l),g),b=Math.max(1,e.y1-2*h),x="heatmap"===d.type?o:o*a;let v=e.y+h,k="heatmap"===d.type||d.flip?-o/2:o/2-x,j=b,A=x,S="heatmap"===d.type?x/2:x,E=e.y1/2;if("horizontal"===r)v="heatmap"===d.type||d.flip?-o/2:o/2-x,k=e.y-e.y1+h,j=x,A=b,E="heatmap"===d.type?x/2:x,S=e.y1/2;else if("radial"===r){const o=t.arc().innerRadius(e.y/2).outerRadius((e.y+e.y1)/2),r=c.pct-c.pct_padding;let l=c.pct_middle-c.pct_padding,y="heatmap"===d.type?l+r:l+r*a;l*=he,y*=he;const m=s[0]/2,h=s[1]/2,g=`translate(${m},${h})`,b=o.centroid({startAngle:l,endAngle:y});p.push({key:c.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:b[0]+m,y:b[1]+h}),u.push({markType:"path",transform:g,key:`groupIcon-${i}-${n}`,d:o({startAngle:l,endAngle:y}),style:f})}"radial"!==r&&(p.push({key:c.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:k+S,y:v+E}),u.push({markType:"rect",key:`groupIcon-${i}-${n}`,x:k,y:v,height:j,width:A,style:f}))}),{marks:u,points:p}})({bins:e,binMax:v,relativeBuckets:m,columnWidth:k,projection:i,adjustedSize:c,summaryI:d,summary:l,summaryStyle:j,type:n}),o=a.marks;"radial"===i&&(S=[0,0]),n.axis&&"histogram"===n.type&&u.push({type:"svg-only-mark",Mark:Ye({summary:l,summaryI:d,axisSettings:n.axis,axisCreator:f,projection:i,actualMax:E,adjustedSize:c,columnWidth:k})}),a.points.forEach(e=>{e.x+=S[0],e.y+=S[1]}),p.push(...a.points),u.push({containerProps:Object.assign(Object.assign({},x),{transform:`translate(${S})`,className:A,key:"summaryPiece-"+d,role:"img",tabIndex:-1,"data-o":l.name,"aria-label":`${l.name} ${n.type}`}),elements:o})}else if("violin"===n.type){const{iqr:a}=n,c=n.subsets||[!1],m=[];e[0].y=e[0].y-b/2,e[e.length-1].y=e[e.length-1].y+b/2,c.forEach((c,u)=>{let f=e;c&&(j=y[0]?o(y[0].piece.data,d,u):{},A=y[0]?r(y[0].piece.data,d,u):"",f=e.map(e=>{const t=e.pieces.filter((e,t)=>c(e.piece,t)).map(e=>e),n=h(t);return Object.assign(Object.assign({},e),{pieces:t,value:n})}));let v=t.area().curve(n.curve||t.curveCatmullRom),O=[];if("horizontal"===i)f.forEach(e=>{const t=e.y-b/2,n=e.value/E*k/2;O.push({x:t,y0:-n,y1:n}),p.push({key:l.name,x:t+S[0],y:n+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value})}),v.x(e=>e.x).y0(e=>e.y0).y1(e=>e.y1).defined((e,t)=>0!==e.y0||O[t-1]&&0!==O[t-1].y0||O[t+1]&&0!==O[t+1].y0);else if("vertical"===i)f.forEach(e=>{const t=e.y+b/2,n=e.value/E*k/2;O.push({y:t,x0:-n,x1:n}),p.push({key:l.name,x:n+S[0],y:t+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value})}),v.y(e=>e.y).x0(e=>e.x0).x1(e=>e.x1).defined((e,t)=>0!==e.x0||O[t-1]&&0!==O[t-1].x0||O[t+1]&&0!==O[t+1].x0);else if("radial"===i){const e=l.pct-l.pct_padding/2,t=l.pct_middle;O=f,v=n=>{const a=[],o=[];return n.forEach(n=>{const r=we([0,0],t+e*n.value/E/2,(n.y+n.y1-b/2)/2),s=we([0,0],t-e*n.value/E/2,(n.y+n.y1-b/2)/2);p.push({key:l.name,x:s[0]+S[0],y:s[1]+S[1],pieces:n.pieces.map(e=>e.piece),value:n.value}),p.push({key:l.name,x:r[0]+S[0],y:r[1]+S[1],pieces:n.pieces.map(e=>e.piece),value:n.value}),a.push(r),o.push(s)}),`M${a.map(e=>e.join(",")).join("L")}L${o.reverse().map(e=>e.join(",")).join("L")}Z`}}if(m.push(Object.assign(Object.assign({},x),{transform:`translate(${S})`,key:`summaryPiece-${d}-${u}`,markType:"path",className:A,style:j,d:v(O),role:"img",tabIndex:-1,"data-o":l.name,"aria-label":l.name+" distribution"})),a){let e=[];f.forEach(t=>{e.push(...t.pieces)}),e=e.map(e=>"vertical"===i?e.piece.scaledVerticalValue:e.piece.scaledValue).sort((e,t)=>e-t);const t=[s.quantile(e,.25),s.quantile(e,.5),s.quantile(e,.75)],n="vertical"===i?(e,t,n)=>`M${n[0]},${e}L${n[0]},${t}`:(e,t,n)=>`M${e},${n[1]}L${t},${n[1]}`;m.push(Object.assign(Object.assign({},x),{key:`summaryPiece-${d}-${u}-iqr-line`,markType:"path",className:A,style:Object.assign(Object.assign({stroke:"black",strokeWidth:"2px"},j),g("iqr")),d:n(t[0],t[2],S),role:"img",tabIndex:-1,"data-o":l.name,"aria-label":l.name+" distribution"})),m.push(Object.assign(Object.assign({},x),{key:`summaryPiece-${d}-${u}-iqr-median`,markType:"circle",className:A,style:Object.assign(Object.assign({stroke:"black",fill:"black",strokeWidth:"1px",r:"3px"},j),g("median")),cx:"vertical"===i?S[0]:t[1],cy:"vertical"===i?t[1]:S[1],role:"img",tabIndex:-1,"data-o":l.name,"aria-label":l.name+" distribution"}))}}),u.push({elements:m})}else if("ridgeline"===n.type){const a=Object.assign({},e[0],{value:0}),o=Object.assign({},e[e.length-1],{value:0});a.y=a.y-b/2,o.y=o.y+b/2;const r=[a,...e,o];let s=[];const y=n.curve||n.interpolator,m="string"==typeof y?Re[y]:y;let h=t.line().curve(m||t.curveCatmullRom).x(e=>e.x).y(e=>e.y);const g=n.amplitude||0;if(n.axis&&"histogram"===n.type&&u.push({type:"svg-only-mark",Mark:Ye({summary:l,summaryI:d,axisSettings:Object.assign({baseline:!1},n.axis),axisCreator:f,projection:i,actualMax:E,adjustedSize:c,columnWidth:k})}),"horizontal"===i)r.forEach((e,t)=>{const a=e.y-b/2,o=n.flip?e.value/E*(k+g)-k/2:-e.value/E*(k+g)+k/2;s.push({y:o,x:a}),0!==t&&t!==r.length-1&&p.push({key:l.name,x:a+S[0],y:o+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("vertical"===i)r.forEach(e=>{const t=e.y+b/2,a=!0===n.flip?e.value/E*(k+g)-k/2:-e.value/E*(k+g)+k/2;s.push({y:t,x:a}),p.push({key:l.name,x:a+S[0],y:t+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("radial"===i){const e=l.pct-l.pct_padding/2,t=l.pct_start+l.pct_padding/2;S=[0,0],s=r,h=n=>{const a=[];return n.forEach(n=>{const o=we([c[0]/2,c[1]/2],t+e*n.value/E,(n.y+n.y1-b/2)/2);p.push({key:l.name,x:o[0]+S[0],y:o[1]+S[1],pieces:n.pieces.map(e=>e.piece),value:n.value}),a.push(o)}),`M${a.map(e=>e.join(",")).join("L")}Z`}}n.axis&&u.push({type:"svg-only-mark",Mark:Ye({summary:l,summaryI:d,axisSettings:n.axis,axisCreator:f,projection:i,actualMax:E,adjustedSize:c,columnWidth:k})}),u.push({elements:[Object.assign(Object.assign({},x),{transform:`translate(${S})`,key:"summaryPiece-"+d,markType:"path",className:A,style:j,d:h(s),role:"img",tabIndex:-1,"data-o":l.name,"aria-label":l.name+" distribution"})]})}else if("horizon"===n.type){const a=Object.assign({},e[0],{value:0}),o=Object.assign({},e[e.length-1],{value:0});a.y=a.y-b/2,o.y=o.y+b/2;const r=[a,...e,o];let y=[],m=!0,h=0;for(;!0===m;){const e=r.map(e=>Object.assign(Object.assign({},e),{value:Math.max(0,Math.min(e.value-h,w))}));y.push(e.map(e=>Object.assign(Object.assign({},e),{value:e.value*M}))),h+=w,s.max(e.map(e=>e.value))<w&&(m=!1)}y=y.filter(e=>s.sum(e,e=>e.value)>0),r.forEach((e,t)=>{0!==t&&t!==r.length-1&&("horizontal"===i?p.push({key:l.name,x:e.y-b/2+S[0],y:-e.value/E*k+k/2+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value}):"vertical"===i&&p.push({key:l.name,x:(!0===n.flip?e.value/E*k-k/2:-e.value/E*k+k/2)+S[0],y:e.y+b/2+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value}))});const v=y.map((e,a)=>{let o=[];const r=n.curve||n.interpolator,s="string"==typeof r?Re[r]:r;let u=t.line().curve(s||t.curveLinear).x(e=>e.x).y(e=>e.y);if("horizontal"===i)e.forEach(e=>{o.push({y:-e.value/E*k+k/2,x:e.y-b/2})});else if("vertical"===i)e.forEach(e=>{o.push({y:e.y+b/2,x:!0===n.flip?e.value/E*k-k/2:-e.value/E*k+k/2})});else if("radial"===i){const t=l.pct-l.pct_padding/2,n=l.pct_start+l.pct_padding/2;S=[0,0],o=e,u=e=>{const a=[];return e.forEach(e=>{const o=we([c[0]/2,c[1]/2],n+t*e.value/E,(e.y+e.y1-b/2)/2);a.push(o)}),`M${a.map(e=>e.join(",")).join("L")}Z`}}return Object.assign(Object.assign({},x),{transform:`translate(${S})`,key:`summaryPiece-${d}-${a}`,markType:"path",className:A,style:Object.assign(Object.assign({},j),g(e,a)),d:u(o),role:"img",tabIndex:-1,"data-o":l.name,"aria-label":l.name+" distribution"})});n.axis&&u.push({type:"svg-only-mark",Mark:Ye({summary:l,summaryI:d,axisSettings:n.axis,axisCreator:f,projection:i,actualMax:E,adjustedSize:c,columnWidth:k})}),u.push({elements:v})}}),{marks:u,xyPoints:p,thresholds:A}}const Ke={contour:function({data:e,type:t,eventListenersGenerator:n,styleFn:a,classFn:o,adjustedSize:r}){const s=[],i=[];return Object.keys(e).forEach((c,l)=>{const d=e[c];t.thresholds=t.thresholds||8,t.bandwidth=t.bandwidth||12,t.resolution=t.resolution||1e3;const u=[{id:d,_xyfCoordinates:d.xyData.map(Le)}],p=De({summaryType:t,data:u,finalXExtent:[0,r[0]],finalYExtent:[0,r[1]]}),y=[];p.forEach((e,t)=>{e.coordinates.forEach((r,s)=>{const i=n(e,t);y.push(Object.assign(Object.assign({},i),{key:`${t}-${s}`,style:a(d.pieceData[0].data,l),className:o(d.pieceData[0].data,l),markType:"path",d:`M${e.coordinates[0].map(e=>e.join(",")).join("L")}Z`}))})}),s.push({containerProps:{key:"contour-container-"+l,role:"img",tabIndex:-1,"data-o":c,"aria-label":`${c} boxplot showing ${i.filter(e=>e.key===c).map(e=>`${e.label} ${e.value}`)}`},elements:y})}),{marks:s,xyPoints:i}},boxplot:function({data:e,type:n,eventListenersGenerator:a,styleFn:o,classFn:r,projection:i,adjustedSize:c}){const l=n.elementStyleFn||Pe,{outliers:d,fixedInput:u}=n,p=[],y=[];return Object.keys(e).forEach((n,m)=>{const h=e[n],g=a(h,m),f=h.width,b=h.pieceData,x=o(b[0].data,m),v=r(b[0].data,m);let k,j,A,S,E,O,M,w,C,P,z,N,$,D,F,T,L,R,B,V,I,W,G,_,H,q,Y,X,K,Z,Q;j=b.map(e=>e.value).sort((e,t)=>e-t),!0===u&&5===j.length||(j=[s.quantile(j,0),s.quantile(j,.25),s.quantile(j,.5),s.quantile(j,.75),s.quantile(j,1)]);const U=j[3]-j[1];let J,ee;d&&(J=j[1]-1.5*U,ee=j[3]+1.5*U,j[0]=Math.max(j[0],J),j[4]=Math.min(j[4],ee));const te="vertical"===i?e=>e.scaledVerticalValue:e=>e.scaledValue,ne=[...b].sort((e,t)=>e.value-t.value),ae=ne[0].value,oe=ne[ne.length-1].value,re=te(ne[0]),se=te(ne[ne.length-1]);if(k=j.map(e=>oe===ae?(re+se)/2:re+(e-ae)/(oe-ae)*(se-re)),"vertical"===i){A=`translate(${h.x+h.width/2},0)`,S=0,E=0,O=k[0],M=k[4],w=-f/2,C=f/2,P=-f/2,z=f/2,N=-f/2,$=f/2,R=f,B=k[1]-k[2],V=k[2],I=-f/2,D=f,F=k[2]-k[3],W=f,G=k[1]-k[3],_=k[3],H=-f/2,T=k[3],L=-f/2,q=k[0],Y=k[0],X=k[4],K=k[4],Z=k[2],Q=k[2];const e=h.x+h.width/2;y.push({label:"Maximum",key:n,summaryPieceName:"max",x:e,y:k[4],value:j[4]},{label:"3rd Quartile",key:n,summaryPieceName:"q3area",x:e,y:k[3],value:j[3]},{label:"Median",key:n,summaryPieceName:"median",x:e,y:k[2],value:j[2]},{label:"1st Quartile",key:n,summaryPieceName:"q1area",x:e,y:k[1],value:j[1]},{label:"Minimum",key:n,summaryPieceName:"min",x:e,y:k[0],value:j[0]})}else if("horizontal"===i){const e=h.x+h.width/2;A=`translate(0,${e})`,O=0,M=0,S=k[0],E=k[4],q=-f/2,Y=f/2,Z=-f/2,Q=f/2,X=-f/2,K=f/2,F=f,D=k[3]-k[2],L=k[2],T=-f/2,B=f,R=k[2]-k[1],I=k[1],V=-f/2,G=f,W=k[3]-k[1],H=k[1],_=-f/2,w=k[0],C=k[0],N=k[4],$=k[4],P=k[2],z=k[2],y.push({label:"Maximum",key:n,summaryPieceName:"max",x:k[4],y:e,value:j[4]},{label:"3rd Quartile",key:n,summaryPieceName:"q3area",x:k[3],y:e,value:j[3]},{label:"Median",key:n,summaryPieceName:"median",x:k[2],y:e,value:j[2]},{label:"1st Quartile",key:n,summaryPieceName:"q1area",x:k[1],y:e,value:j[1]},{label:"Minimum",key:n,summaryPieceName:"min",x:k[0],y:e,value:j[0]})}if("radial"===i){S=0,E=0,O=k[0],M=k[4],w=-f/2,C=f/2,P=-f/2,z=f/2,N=-f/2,$=f/2,D=f,F=k[1]-k[3],T=k[3],L=-f/2,R=f,B=k[1]-k[3],V=k[3],I=-f/2,q=k[0],Y=k[0],X=k[4],K=k[4],Z=k[2],Q=k[2];const e=2*Math.PI,a=t.arc().innerRadius(X/2).outerRadius(X/2),o=t.arc().innerRadius(q/2).outerRadius(q/2),r=t.arc().innerRadius(Z/2).outerRadius(Z/2),s=t.arc().innerRadius(k[1]/2).outerRadius(Z/2),i=t.arc().innerRadius(Z/2).outerRadius(k[3]/2),d=t.arc().innerRadius(k[1]/2).outerRadius(k[3]/2);let u=h.pct_start+h.pct_padding/2,W=h.pct+h.pct_start-h.pct_padding/2;const G=h.pct/2+h.pct_start;u*=e,W*=e;const _=c[0]/2,H=c[1]/2,U=we([0,0],G,k[4]/2),J=we([0,0],G,k[0]/2),ee=we([0,0],G,k[3]/2),te=we([0,0],G,k[2]/2),ne=we([0,0],G,k[1]/2);y.push({label:"Minimum",key:n,summaryPieceName:"min",x:J[0]+_,y:J[1]+H,value:j[0]},{label:"1st Quartile",key:n,summaryPieceName:"q3area",x:ne[0]+_,y:ne[1]+H,value:j[1]},{label:"Median",key:n,summaryPieceName:"median",x:te[0]+_,y:te[1]+H,value:j[2]},{label:"3rd Quartile",key:n,summaryPieceName:"q1area",x:ee[0]+_,y:ee[1]+H,value:j[3]},{label:"Maximum",key:n,summaryPieceName:"max",x:U[0]+_,y:U[1]+H,value:j[4]}),A=`translate(${_},${H})`,p.push({containerProps:Object.assign(Object.assign({},g),{className:v,transform:A,key:"summaryPiece-"+m,role:"img",tabIndex:-1,"data-o":n,"aria-label":`${n} boxplot showing ${y.filter(e=>e.key===n).map(e=>`${e.label} ${e.value}`)}`}),elements:[{markType:"line",x1:U[0],x2:J[0],y1:U[1],y2:J[1],style:Object.assign({strokeWidth:2},x,l("whisker",b))},{markType:"path",d:o({startAngle:u,endAngle:W}),style:Object.assign({strokeWidth:4},x,{fill:"none"},l("max",b))},{markType:"path",d:r({startAngle:u,endAngle:W}),style:Object.assign({strokeWidth:4},x,{fill:"none"},l("median",b))},{markType:"path",d:a({startAngle:u,endAngle:W}),style:Object.assign({strokeWidth:4},x,{fill:"none"},l("min",b))},{markType:"path",d:d({startAngle:u,endAngle:W}),style:Object.assign({strokeWidth:4},x,l("iqrarea",b))},{markType:"path",d:s({startAngle:u,endAngle:W}),style:Object.assign({},x,{fill:"none",stroke:"none"},l("q3area",b))},{markType:"path",d:i({startAngle:u,endAngle:W}),style:Object.assign({},x,{fill:"none",stroke:"none"},l("q1area",b))}]})}else{const e=[{markType:"line",x1:S,x2:E,y1:O,y2:M,style:Object.assign({strokeWidth:2},x,l("whisker",b))},{markType:"line",x1:w,x2:C,y1:q,y2:Y,style:Object.assign({strokeWidth:2},x,l("min",b))},{markType:"line",x1:N,x2:$,y1:X,y2:K,style:Object.assign({strokeWidth:2},x,l("max",b))},{markType:"rect",x:H,width:W,y:_,height:G,style:Object.assign({strokeWidth:1},x,l("iqrarea",b))},{markType:"rect",x:L,width:D,y:T,height:F,style:Object.assign({},x,{fill:"none",stroke:"none"},l("q3area",b))},{markType:"rect",x:I,width:R,y:V,height:B,style:Object.assign({},x,{fill:"none",stroke:"none"},l("q1area",b))},{markType:"line",x1:P,x2:z,y1:Z,y2:Q,style:Object.assign({strokeWidth:2},x,l("median",b))}],t=[];d&&b.filter(e=>e.value>ee||J>e.value).forEach(e=>{t.push({markType:"circle",cx:"horizontal"===i?e.scaledValue:0,cy:"vertical"===i?e.scaledVerticalValue:0,style:Object.assign({strokeWidth:"1px",stroke:"black",fill:"none",r:2},x,l("outlier",b))})}),p.push({containerProps:Object.assign(Object.assign({},g),{className:v,transform:A,key:"summaryPiece-"+m,role:"img",tabIndex:-1,"data-o":n,"aria-label":`${n} boxplot showing ${y.filter(e=>e.key===n).map(e=>`${e.label} ${e.value}`)}`}),elements:[...e,...t]})}}),{marks:p,xyPoints:y}},violin:Xe,heatmap:Xe,ridgeline:Xe,histogram:Xe,horizon:Xe,ckbins:function(e){const{data:t,eventListenersGenerator:a,styleFn:o,classFn:r}=e,s=[];let i=0;const c=[];return Object.keys(t).forEach((e,s)=>{const l=t[e];a(l,s);const d=l.pieceData.sort((e,t)=>e.value-t.value),u=d[0],p=d[d.length-1],y=n.scaleLinear().domain([u.value,p.value]).range([u.scaledValue,p.scaledValue]),m=o(d[0].data,s),h=r(d[0].data,s),g=function(e,t){if(t>e.length)throw Error("Cannot generate more classes than there are data values");var n=e.length,a=e.slice().sort(function(e,t){return e-t}),o=function(e){for(var t,n=0,a=0;e.length>a;a++)0!==a&&e[a]===t||(t=e[a],n++);return n}(a);if(1===o)return[a[0]];var r=ze(t=Math.min(o,t),n),s=ze(t,n);!function(e,t,n){for(var a=t[0].length,o=Array(a),r=Array(a),s=e[Math.floor(a/2)],i=0;a>i;++i)0===i?(o[0]=e[0]-s,r[0]=(e[0]-s)*(e[0]-s)):(o[i]=o[i-1]+e[i]-s,r[i]=r[i-1]+(e[i]-s)*(e[i]-s)),t[0][i]=Ne(0,i,o,r),n[0][i]=0;for(var c=1;t.length>c;++c)$e(t.length-1>c?c:a-1,a-1,c,t,n,o,r)}(a,r,s);for(var i=[],c=s[0].length-1,l=s.length-1;l>=0;l--){var d=s[l][c];i[l]=a[d],l>0&&(c=d-1)}return i}(d.map(e=>e.value),5);let f=[];g.forEach((t,n)=>{var a;const o=null!==(a=g[n+1])&&void 0!==a?a:p.value;f.push({start:t,end:o,key:e,summary:l,calculatedSummaryStyle:m,calculatedSummaryClass:h,scaledStart:y(t),scaledEnd:y(o),values:[]})}),c.push(f);let b=0;for(const e of d)f[b].end>e.value||f[b+1]&&b++,f[b].values.push(e);f.forEach(e=>{i=Math.max(e.values.length,i)})}),c.forEach((e,t)=>{const a=e.map(e=>{const{calculatedSummaryStyle:t}=e,{fill:a="black",stroke:o="black"}=t,r=n.scaleLinear().domain([1,i]).range(["white",a]);return{markType:"rect",x:e.scaledStart,width:e.scaledEnd-e.scaledStart,y:e.summary.x,height:e.summary.width,style:Object.assign({strokeWidth:2},t,{fill:r(e.values.length),strokeWidth:1,stroke:o})}});s.push({containerProps:{transform:"",key:"summaryPiece-"+t,role:"img",tabIndex:-1},elements:a})}),{marks:s,xyPoints:[]}}},Ze=({data:e,type:t,renderMode:n,eventListenersGenerator:a,styleFn:o,classFn:r,projection:s,adjustedSize:i,margin:c,axisCreator:l})=>{if(t&&t.type)return function({data:e,type:t,renderMode:n,eventListenersGenerator:a,styleFn:o,classFn:r,projection:s,adjustedSize:i,chartSize:c,margin:l,axisCreator:d}){let u;if("function"==typeof t.type)u=t.type;else{if(!Ke[t.type])return console.error(`Invalid summary type: ${t.type} - Must be a function or one of the following strings: ${Object.keys(Ke).join(", ")}`),{};u=Ke[t.type]}return u({data:e,type:t,renderMode:n,eventListenersGenerator:a,styleFn:o,classFn:r,projection:s,adjustedSize:i,chartSize:c,margin:l,axisCreator:d})}({data:e,type:t="string"==typeof t?{type:t}:t,renderMode:n,eventListenersGenerator:a,styleFn:o,classFn:r,projection:s,adjustedSize:i,chartSize:"vertical"===s?i[1]:i[0],margin:c,axisCreator:l})};function Qe(e){const t=[];for(const n of e){const e=[],{elements:a,containerProps:o}=n;if(n.Mark)t.push(n.Mark);else{for(let t=0;a.length>t;t++){const n=a[t],{markType:o,style:r={}}=n,s=U(n,["markType","style"]),i=Object.assign({},s);void 0!==r.fill&&(i.fill=r.fill),void 0!==r.stroke&&(i.stroke=r.stroke),void 0!==r.strokeWidth&&(i.strokeWidth=r.strokeWidth),void 0!==r.opacity&&(i.opacity=r.opacity),void 0!==r.fillOpacity&&(i.fillOpacity=r.fillOpacity),void 0!==r.strokeOpacity&&(i.strokeOpacity=r.strokeOpacity);const c=Object.assign({},r);delete c.fill,delete c.stroke,delete c.strokeWidth,delete c.opacity,delete c.fillOpacity,delete c.strokeOpacity,Object.keys(c).length>0&&(i.style=c),i.key=n.key||t,o&&e.push(E.createElement(o,i))}o?t.push(E.createElement("g",Object.assign({},o),e)):t.push(...e)}}return t}const Ue=({data:e,canvasRender:t,canvasDrawing:n})=>{var a;if(t())for(const t of e)if("svg-only-mark"!==t.type){const{transform:e="translate(0,0)"}=null!==(a=null==t?void 0:t.containerProps)&&void 0!==a?a:{transform:"translate(0,0)"},[o,r]=e.replace("translate(","").replace(")","").split(",");for(const e of t.elements){const{transform:t="translate(0,0)"}=e,[a,s]=t.replace("translate(","").replace(")","").split(",");n.push({baseClass:"frame-piece",tx:parseInt(a)+parseInt(o),ty:parseInt(s)+parseInt(r),d:{},i:0,markProps:e,styleFn:()=>e.style,renderFn:e.renderMode,classFn:()=>""})}}return Qe(e.filter(e=>!t()||"svg-only-mark"===e.type))};function Je(t){const{rotate:n,label:a,dynamicLabelPosition:o,orient:r="left",marginalSummaryType:s,tickFormat:i=(s?()=>"":e=>e),size:c,width:l=c&&c[0]||0,height:d=c&&c[1]||0,className:u,padding:p,tickValues:y,scale:m,ticks:h,footer:g,tickSize:f,tickLineGenerator:b,baseline:x=!0,margin:v={top:0,bottom:0,left:0,right:0},center:k=!1,annotationFunction:j,glyphFunction:A,xyPoints:S}=t,[O,M]=e.useState(0),[w,C]=e.useState(void 0),P=e.useRef(null);e.useEffect(()=>{if(!(null==a?void 0:a.position)&&o){const e=((e,t)=>{const n=e.current;if(!n)return 30;const a="left"===t||"right"===t?"width":"height";return Math.max(...[...n.querySelectorAll(".axis-label")].map(e=>e.getBBox&&e.getBBox()||{height:30,width:30}).map(e=>e[a]))+25})(P,r);e!==w&&C(e)}},[a,o]);let z,{axisParts:N,position:$=[0,0]}=t;if(N||(N=ke({padding:p,tickValues:y,scale:m,ticks:h,orient:r,size:[l,d],footer:g,tickSize:f}),z=E.createElement("g",{className:"axis "+u},Ae({axisParts:N,orient:r,tickLineGenerator:b,className:u,scale:m}))),0===N.length)return null;let D,F,T,L,R=50,B=d,V=-50,I=0,W=0,G=0,_=0,H=d,q=25,Y=-25,X=18,K=l+25,Z=0,Q=O,U=0,J="y";switch(r){case"right":$=[$[0],$[1]],V=l,_=W=l,U=v.top,K=-l-25,Y=5,D=e=>{M(e.nativeEvent.offsetY-U)},!0===k&&(_=W=l/2);break;case"top":$=[$[0],0],R=l,B=50,I=-50,V=0,U=v.left,J="x",_=l,H=0,!0===k&&(H=G=d/2),D=e=>{M(e.nativeEvent.offsetX-U)},q=O,Q=25,Y=0,X=-10,K=0,Z=d+25;break;case"bottom":$=[$[0],0],R=l,B=50,G=H=I=d,W=V=0,_=l,U=v.left,D=e=>{M(e.nativeEvent.offsetX-U)},q=O,Q=25,Y=0,X=15,K=0,Z=-d-25,J="x",!0===k&&(H=G=d/2);break;default:$=[$[0],$[1]],U=v.top,!0===k&&(_=W=l/2),D=e=>{M(e.nativeEvent.offsetY-U)}}if(j){const e=function(e,t){return t.tickFormat?t.tickFormat(e):e.toString?""+e:e}(m.invert(O),t),n=A?A({lineHeight:Z,lineWidth:K,value:m.invert(O)}):E.createElement("g",null,E.isValidElement(e)?E.createElement("g",{transform:`translate(${Y},${X})`},e):E.createElement("text",{x:Y,y:X},e),E.createElement("circle",{r:5}),E.createElement("line",{x1:K,y1:Z,style:{stroke:"black"}})),a=O?E.createElement("g",{style:{pointerEvents:"none"},transform:`translate(${q},${Q})`},n):null;F=E.createElement("g",{className:"annotation-brush",transform:`translate(${V},${I})`},E.createElement("rect",{style:{fillOpacity:0},height:B,width:R,onMouseMove:D,onClick:e=>j({className:"dynamic-axis-annotation",type:J,value:m.invert(O),e:e}),onMouseOut:()=>{M(void 0)}}),a)}if(s&&S){const e=Math.max(v[r]-6,5),t="string"==typeof s?{type:s}:s;void 0!==t.flip||"bottom"!==r&&"right"!==r||(t.flip=!0);const n=t.summaryStyle?()=>t.summaryStyle:()=>({fill:"black",fillOpacity:.5,stroke:"black",strokeDasharray:"0"}),a=t.renderMode?()=>t.renderMode:()=>{},o=t.summaryClass?()=>t.summaryClass:()=>"",i=t.filter||(()=>!0),l=S.filter(e=>void 0!==e.x&&void 0!==e.y&&i(e.data)).map(e=>Object.assign(Object.assign({},e),{xy:{x:"top"===r||"bottom"===r?m(e.x):0,y:"left"===r||"right"===r?m(e.y):0},piece:{scaledVerticalValue:m(e.y),scaledValue:m(e.x)},value:m("top"===r||"bottom"===r?e.y:e.x),scaledValue:m(e.x),scaledVerticalValue:m(e.y)})),d=Qe(Ze({data:{column:{middle:e/2,pieceData:l,width:e,xyData:l}},type:t,renderMode:a,eventListenersGenerator:t.eventListenersGenerator||(()=>({})),styleFn:n,classFn:o,projection:"top"===r||"bottom"===r?"horizontal":"vertical",adjustedSize:c,margin:{top:0,bottom:0,left:0,right:0}}).marks);let u;if(!0===t.showPoints){const n=((e,t,n)=>{const a="left"===e||"right"===e?t/2:0,o="bottom"===e||"top"===e?t/2:0;return n.map(e=>[e.xy.x+a,e.xy.y+o])})(r,e,l);u=n.map((e,n)=>E.createElement("circle",{key:"axis-summary-point-"+n,cx:e[0],cy:e[1],r:t.r||3,style:t.pointStyle||{fill:"black",fillOpacity:.1}}))}T=E.createElement(Oe,{translation:{left:[2-v.left,0],right:[c[0]+2,0],top:[0,2-v.top],bottom:[0,c[1]+2]},orient:r,decoratedSummaryType:t,summaryWidth:e,renderedSummary:d,points:u})}const ee=(({axisParts:e,tickFormat:t,rotate:n=0,center:a=!1,orient:o})=>e.map((e,r)=>{let s=t(e.value,r);("object"!=typeof s||s instanceof Date)&&(s=E.createElement("text",{textAnchor:e.defaultAnchor,className:"axis-label"},s.toString?""+s:s));let i=e.tx,c=e.ty;if(a)switch(o){case"right":i-=(e.x2-e.x1)/2;break;case"left":i+=(e.x2-e.x1)/2;break;case"top":c+=(e.y2-e.y1)/2;break;case"bottom":c-=(e.y2-e.y1)/2}return E.createElement("g",{key:r,pointerEvents:"none",transform:`translate(${i},${c}) rotate(${n})`,className:"axis-label"},s)}))({tickFormat:i,axisParts:N,orient:r,rotate:n,center:k});if(a){const e=a.name||a,t=a.position||{};let n=t.anchor||"middle";const o=a.locationDistance||w,s=t.rotation||{left:-90,right:90,top:0,bottom:0}[r],i={left:{start:[0,c[1]],middle:[0,c[1]/2],end:[0,0],inside:[o||15,0],outside:[-(o||45),0]},right:{start:[c[0]+0,c[1]],middle:[c[0]+0,c[1]/2],end:[c[0]+0,0],inside:[-(o||15),0],outside:[o||45,0]},top:{start:[0,0],middle:[0+c[0]/2,0],end:[0+c[0],0],inside:[0,o||15],outside:[0,-(o||40)]},bottom:{start:[0,c[1]],middle:[0+c[0]/2,c[1]],end:[0+c[0],c[1]],inside:[0,-(o||5)],outside:[0,o||50]}},l=i[r][n],d=i[r][t.location||"outside"];l[0]=l[0]+d[0],l[1]=l[1]+d[1],"start"===n&&"right"===r?n="end":"end"===n&&"right"===r&&(n="start"),L=E.createElement(Me,{className:u,translation:l,position:$,rotation:s,labelName:e,anchorMod:n})}const te=`${r} axis ${N&&N.length>0&&`from ${i(N[0].value,0)} to ${i(N[N.length-1].value,N.length-1)}`||"without ticks"}`;return E.createElement("g",{className:u,"aria-label":te,ref:P},F,ee,z,!0===x?E.createElement("line",{key:"baseline",className:"axis-baseline "+u,stroke:"black",strokeLinecap:"square",x1:W,x2:_,y1:G,y2:H}):null,L,T)}const et=e=>{let t=null,n="top";return"string"==typeof e?t=e:"title"in e?(t=e.title,n=e.orient||"top"):t=e,{orient:n,title:t}};function tt(e){return Math.round(10*e)/10}const nt=({margin:e,size:t,inset:n=0})=>{const a=[t[0]-n,t[1]-n];return`M0,0 h${t[0]} v${t[1]} h-${t[0]}Z M${e.left-n},${e.top-n} v${t[1]+2*n-e.top-e.bottom} h${a[0]+3*n-e.left-e.right} v-${a[1]+3*n-e.top-e.bottom}Z`},at=({margin:e,axes:t,title:n,oLabel:a,projection:o,size:r})=>{if(void 0!==e){if("function"==typeof e&&(e=e({size:r})),"object"!=typeof e)return{top:e,bottom:e,left:e,right:e};if("object"==typeof e)return Object.assign({top:0,bottom:0,left:0,right:0},e)}const s={top:0,bottom:0,left:0,right:0};let i="left";t&&"radial"!==o&&t.forEach(e=>{i=e.orient,s[i]=e.label?60:50});const{title:c,orient:l}=et(n);return!c||"string"==typeof c&&0===c.length||(s[l]+=40),a&&"radial"!==o&&("bottom"===i||"top"===i?s.left+=50:s.bottom+=50),s};function ot(e){return e instanceof Function||"string"==typeof e?{type:e}:void 0===e?{}:e}function rt({data:e,renderKey:t=(e,t)=>t,oAccessor:a,rAccessor:o,originalRAccessor:r,originalOAccessor:s,multiAxis:i=!1}){let c,l;if(i&&o.length>1){let t=1/0;l=o.map(n=>{const a=e.map(n).reduce((e,t)=>[Math.min(t,e[0]),Math.max(t,e[1])],[1/0,-1/0]);return t=Math.min(a[0]/a[1],t),a});const a=l.map(e=>{let a=[0,1],o=e;return 0>e[0]&&e[1]>0?(a[0]=t,o[0]=o[1]*t):0>e[0]&&0>e[1]?(o[1]=0,a=[-1,0]):o[0]=0,n.scaleLinear().domain(e).range(a)});c=a.map((e,t)=>n=>e(o[t](n)))}else c=o;const d=[];return a.forEach((n,a)=>{c.forEach((o,i)=>{(e||[]).forEach(e=>{const c=t(e,d.length),l=void 0!==c&&c.toString&&""+c||c,u=r[i],p=s[a],y="string"==typeof u?u:"function-"+i,m="string"==typeof p?p:"function-"+a;if("object"!=typeof e){const t={value:e,renderKey:l},n=o(t);d.push({data:t,value:n,rIndex:i,rName:y,oIndex:a,oName:m,column:l,renderKey:l})}else{const t=o(e),r=n(e);d.push({renderKey:l,data:e,rIndex:i,rName:y,oIndex:a,oName:m,value:t,column:r&&r.toString?""+r:r})}})})}),{allData:d,multiExtents:l}}function st({size:e=[500,500],position:t=[0,0],margin:n,projection:a}){const o=[t[0],t[1]];let r=[e[0]-(n.left+n.right),e[1]-(n.top+n.bottom)];if("radial"===a){const e=Math.min(r[0],r[1]);r=[e,e]}return{adjustedPosition:o,adjustedSize:r}}function it({type:e,data:t,renderMode:n,eventListenersGenerator:a,styleFn:o,classFn:r,projection:s,canvasRender:i,canvasDrawing:c,pieceType:l}){if(!e.type)return null;const d=[],u=new Map,{keyedData:p,oExtent:y}=t;if("function"==typeof e.type){const t=e.type,m=y;if(y.forEach((e,y)=>{const h=p[e],g=p[m[y+1]];if(g){const e=g.map((e,n)=>t(Object.assign(Object.assign({},e.piece),e.piece.data),n));h.forEach((p,y)=>{const m=t(Object.assign(Object.assign({},p.piece),p.piece.data),y),h=t(Object.assign(Object.assign({},p.piece),p.piece.data),y),f=void 0!==h&&!1!==h&&e.indexOf(h);if(null!=m&&!1!==f&&-1!==f){const e=g[f];let t;if("radial"===s&&"point"===l.type){u.get(p)||u.set(p,[p]);const t=u.get(p);t&&(t.push(e),u.set(e,t),u.delete(p))}else{const{xy:l}=p,{xy:u}=e,{x:m,y:h,height:g=1,width:f=1}=l,{x:b,y:x,height:v=1,width:k=1}=u;if("vertical"===s)t=fe({x1:m+f,x2:b,y1:h,y2:x,sizeX1:0,sizeX2:0,sizeY1:g,sizeY2:v});else if("horizontal"===s){const{value:n}=p.piece,{value:a}=e.piece;t=fe({x1:0>n?p.piece.bottom-f:m-f,x2:0>a?e.piece.bottom-k:b-k,y1:h+g,y2:x,sizeX1:f,sizeX2:k,sizeY1:0,sizeY2:0})}else"radial"===s&&(t=fe({x1:m,x2:b,y1:h+g,y2:x,sizeX1:f,sizeX2:k,sizeY1:0,sizeY2:0}));n&&n(p.piece,y);const j=Object.assign(Object.assign({},p.piece.data),p.piece.data),A=Object.assign(Object.assign({},e.piece),e.piece.data),S=o({source:j,target:A}),O=a({source:j,target:A},y);i&&!0===i(p.piece)?c.push({baseClass:"xyframe-line",tx:0,ty:0,d:{source:j,target:A},markProps:{d:t,markType:"path"},styleFn:o,renderFn:n,classFn:r}):d.push(E.createElement("path",Object.assign({},O,{d:t,className:r?r(p.piece.data,y):"",key:"connector"+p.piece.renderKey},S,{style:S})))}}})}}),u.size>0)for(const e of u.values()){const t=Object.assign(Object.assign({},e[0].piece),e[0].piece.data),a=`M${e.map(e=>`${e.xy.x},${e.xy.y}`).join("L")}Z`;if(i&&i(t))c.push({baseClass:"ordinal-radar",tx:0,ty:0,d:{source:t},markProps:{d:a,markType:"path"},styleFn:o,renderFn:n,classFn:r});else{const e=o({source:t});d.push(E.createElement("path",Object.assign({d:a,className:r?r(t):"",key:"ordinal-ring-"+t.renderKey},e,{style:e})))}}}else e.type&&console.error("Invalid connectorType - Must be a function that takes a data point and determines if it is connected to a data point in the next column");return d}const ct=(e,t,n,a)=>{const o=e.getContext("2d",{willReadFrequently:!0}),r=o.getImageData(a.offsetX,a.offsetY,1,1);let s=t[n.get(`rgba(${r.data[0]},${r.data[1]},${r.data[2]},255)`)];if(!s){const e=o.getImageData(a.offsetX-2,a.offsetY-2,5,5);let r=0;for(;!s&&100>r;)s=t[n.get(`rgba(${e.data[r]},${e.data[r+1]},${e.data[r+2]},255)`)],r+=4}return s},lt=E.memo(function({width:t,height:n,overlayRegions:a,margin:o,voronoiHover:r}){let s=e.useRef();return e.useLayoutEffect(()=>{dt(s.current,r,n,t,a,o)},[t,n,a]),E.createElement("canvas",{className:"frame-canvas-interaction",ref:e=>{null!=e&&s.current!==e&&(s.current=e,dt(e,r,n,t,a,o))},style:{position:"absolute",left:"0px",top:"0px",imageRendering:"pixelated",pointerEvents:"all",opacity:0},width:t,height:n})});function dt(e,t,n,a,o,r){const s=new Map;if(null===e||!o)return;const i=ct.bind(null,e,o,s);e.onmousemove=e=>{var n,a,o,r;const s=i(e);(null===(n=null==s?void 0:s.props)||void 0===n?void 0:n.onMouseEnter)?null===(a=null==s?void 0:s.props)||void 0===a||a.onMouseEnter():(null===(r=null===(o=null==s?void 0:s.props)||void 0===o?void 0:o.children)||void 0===r?void 0:r[0])?s.props.children[0].props.onMouseEnter():t(null)},e.onmouseout=()=>{t(null)},e.onclick=e=>{var t,n,a,o;const r=i(e);(null===(t=null==r?void 0:r.props)||void 0===t?void 0:t.onClick)?null===(n=null==r?void 0:r.props)||void 0===n||n.onClick():(null===(o=null===(a=null==r?void 0:r.props)||void 0===a?void 0:a.children)||void 0===o?void 0:o[0])&&r.props.children[0].props.onClick(e)},e.ondblclick=e=>{var t,n,a,o;const r=i(e);(null===(t=null==r?void 0:r.props)||void 0===t?void 0:t.onDoubleClick)?null===(n=null==r?void 0:r.props)||void 0===n||n.onDoubleClick():(null===(o=null===(a=null==r?void 0:r.props)||void 0===a?void 0:a.children)||void 0===o?void 0:o[0])&&r.props.children[0].props.onDoubleClick(e)};const c=e.getContext("2d",{willReadFrequently:!0});c.imageSmoothingEnabled=!1,c.setTransform(1,0,0,1,r.left,r.top),c.clearRect(-r.left,-r.top,a,n),c.lineWidth=1,o.forEach((e,t)=>{var n,a,o,r,i,l;const d=`rgba(${Math.floor(255*Math.random())},${Math.floor(255*Math.random())},${Math.floor(255*Math.random())},255)`;s.set(d,t);const u=e.props;if(c.fillStyle=d,c.strokeStyle=d,u.d||(null===(o=null===(a=null===(n=u.children)||void 0===n?void 0:n[0])||void 0===a?void 0:a.props)||void 0===o?void 0:o.d)){const e=u.d||u.children[0].props.d,t=u.transform||(null===(l=null===(i=null===(r=u.children)||void 0===r?void 0:r[0])||void 0===i?void 0:i.props)||void 0===l?void 0:l.transform)||"translate(0,0)",[n,a]=t.replace("translate(","").replace(")","").split(",").map(Number);c.translate(n,a);const o=new Path2D(e);c.stroke(o),c.fill(o),c.translate(-n,-a)}else"rect"===u.markType&&(c.fillRect(u.x,u.y,u.width,u.height),c.strokeRect(u.x,u.y,u.width,u.height))})}function ut(t){let n=null;const{interaction:a,svgSize:c=[500,500],margin:l={left:0,right:0,top:0,bottom:0},overlay:d,points:u,xScale:p,yScale:y,hoverAnnotation:m,customClickBehavior:h,customDoubleClickBehavior:g,customHoverBehavior:f,disableCanvasInteraction:b,canvasRendering:x}=t;let{enabled:v}=t,k=V(e=>e.changeTooltip);const j=e=>{k(e)},[A,S]=e.useState([]),[O,M]=e.useState(null);return e.useEffect(()=>{let e,n;b||!A?(e=null,n=null):(e=((e,t)=>{let n=[];const{xScale:a,yScale:o,points:r,projectedX:c,showLinePoints:l,size:d,overlay:u,interactionOverflow:p={top:0,bottom:0,left:0,right:0},customClickBehavior:y,customDoubleClickBehavior:m,customHoverBehavior:h,hoverAnnotation:g,margin:f,advancedSettings:b={}}=e,x={top:ne,bottom:ae},v=y||m?{cursor:"pointer"}:{};if(r&&g&&!u){const{voronoiFilter:e=()=>!0}=b,u=[],k=new Map;for(const t of r)if(e(Object.assign(Object.assign({},t),t.data))){const e=Math.floor(a(t[c])),n=Math.floor(o(l&&void 0!==t[x[l]]?t[x[l]]:void 0!==t[te]?t[te]:t[ee]));if(!(0-f.left>e||e>d[0]+f.right||0-f.top>n||n>d[1]+f.bottom||void 0===e||void 0===n||!1!==isNaN(e)||!1!==isNaN(n))){const a=`${e},${n}`;if(k.has(a))k.get(a).coincidentPoints.push(t);else{const o=Object.assign(Object.assign({},t),{coincidentPoints:[t],voronoiX:e,voronoiY:n});u.push(o),k.set(a,o)}}}let j=s.extent(u.map(e=>e.voronoiX)),A=s.extent(u.map(e=>e.voronoiY));null!=j[0]&&null!=A||(j=[0,0],A=[0,0]);const S=[Math.min(j[0]-5,-p.left),Math.min(A[0]-5,-p.top),Math.max(j[1]+5,d[0]+p.right),Math.max(A[1]+5,d[1]+p.bottom)],O=i.Delaunay.from(u,e=>e.voronoiX,e=>e.voronoiY).voronoi(S);return n=u.map((e,n)=>{let a=null;return b.voronoiClipping&&(a=E.createElement("clipPath",{id:"voronoi-"+n},E.createElement("circle",{r:!0===b.voronoiClipping?50:b.voronoiClipping,cx:e.voronoiX,cy:e.voronoiY}))),E.createElement("g",{key:"voronoi-"+n},E.createElement("path",{onClick:e=>{le(u[n],y,r,e)},onDoubleClick:e=>{de(u[n],m,r,e)},onMouseEnter:e=>{ce(t,u[n],g,h,r,e)},onMouseLeave:e=>{ce(t,void 0,void 0,h,void 0,e)},key:"interactionVoronoi"+n,d:O.renderCell(n),style:Object.assign({fillOpacity:0},v),clipPath:`url(#voronoi-${n})`}),a)},window),n}if(u)return u.map((n,a)=>{const{overlayData:o}=n,s=U(n,["overlayData"]),i={key:"overlay-"+a,onMouseEnter:n=>{ce(t,o,e.hoverAnnotation,h,r,n)},onMouseLeave:e=>{ce(t,void 0,void 0,h,void 0,e)},onClick:e=>{le(o,y,r,e)},onDoubleClick:e=>{de(o,m,r,e)},style:Object.assign({opacity:0},v)};if(E.isValidElement(n.renderElement))return E.cloneElement(n.renderElement,i);{const e=s,{markType:t}=e,n=U(e,["markType"]);return E.createElement(t||"path",Object.assign(Object.assign(Object.assign({},n),{key:"overlay-"+a}),i))}})})(t,j),x&&(n=E.createElement(lt,{height:c[1],width:c[0],overlayRegions:e,margin:l,voronoiHover:j}))),S(e),M(n)},[d,u,p,y,!!m,!!h,!!g,!!f]),a&&a.brush&&(v=!0,n=((e,t)=>{let n,a,s,i;const{xScale:c,yScale:l,size:d,renderPipeline:u}=t,p={};Object.entries(u).forEach(([e,t])=>{t.data&&t.data.length>0&&(p[e]=t.data)});const{projection:y,projectedColumns:m}=e,h="oBrush"===e.brush?"horizontal"===y?"yBrush":"xBrush":e.brush;let{extent:g}=e;if(g||(g="xyBrush"===h?[[c.invert(0),l.invert(0)],[c.invert(d[0]),l.invert(d[1])]]:"xBrush"===h?[c.invert(0),c.invert(d[0])]:[l.invert(0),l.invert(d[1])]),g.indexOf&&-1!==g.indexOf(void 0))return E.createElement("g",null);if("xBrush"===h){const e=[...g];a=e=>e?[c.invert(e[0]),c.invert(e[1])]:null,n=o.brushX(),s=e.map(e=>c(e)),i=a}else if("yBrush"===h){const e=[...g];a=e=>e?[l.invert(e[0]),l.invert(e[1])].sort((e,t)=>e-t):null,n=o.brushY(),s=e.map(e=>l(e)).sort((e,t)=>e-t),i=a}else{const e=[...g.map(e=>[...e])];if(-1!==e.indexOf(void 0)||-1!==e[0].indexOf(void 0)||-1!==e[1].indexOf(void 0))return E.createElement("g",null);n=o.brush(),a=e=>{if(!e)return null;const t=[l.invert(e[0][1]),l.invert(e[1][1])].sort((e,t)=>e-t);return[[c.invert(e[0][0]),t[0]],[c.invert(e[1][0]),t[1]]]};const t=[l(g[0][1]),l(g[1][1])].sort((e,t)=>e-t);s=e.map((e,n)=>[c(e[0]),t[n]]),i=a}if("oBrush"===e.brush){if(s=null,e.extent){const[t,n]=e.extent;"string"!=typeof t&&"number"!=typeof t||"string"!=typeof n&&"number"!=typeof n||(s=[m[t].x,m[n].x+m[n].width])}a=(e=>t=>t?Object.values(e).filter(e=>t[1]>=e.x&&e.x+e.width>=t[0]):null)(m),i=(e=>(t,n)=>{if(t&&n.sourceEvent&&n.sourceEvent.path&&n.sourceEvent.path[1]&&n.sourceEvent.path[1].classList.contains("xybrush")&&n.target.move){const a=Object.values(e).filter(e=>t[1]>=e.x&&e.x+e.width>=t[0]),o=a[0]||{x:0,width:0},s=a[a.length-1]||{x:0,width:0},i=[o.x+Math.min(5,o.width/10),s.x+s.width-Math.min(5,s.width/10)];return r.select(n.sourceEvent.path[1]).transition(750).call(n.target.move,i),a}return null})(m)}return n.extent([[0,0],[d[0],d[1]]]).on("start",t=>{ue(a(t.selection),void 0,p,void 0,e)}).on("brush",t=>{pe(a(t.selection),void 0,p,void 0,e)}).on("end",t=>{ye(i(t.selection,t),void 0,p,void 0,e)}),E.createElement("g",{className:"brush"},E.createElement(Q,{selectedExtent:s,extent:g,svgBrush:n}))})(a,t)),a&&a.columnsBrush&&(v=!0,n=((e,t)=>{const{projection:n,rScale:a,oColumns:r,renderPipeline:s}=t;if(!n||!a||!r)return;const i={};let c,l;Object.entries(s).forEach(([e,t])=>{t.data&&t.data.length>0&&(i[e]=t.data)});const d=a.copy().domain(a.domain()).range(a.domain().reverse());l=n&&"horizontal"===n?e=>e?[a.invert(e[0]),a.invert(e[1])]:null:e=>e?[d(a.invert(e[1])),d(a.invert(e[0]))]:null;const u=a.range(),p=r;let y,m;return Object.keys(p).map(t=>(n&&"horizontal"===n?(m=e.extent[t]?e.extent[t].map(e=>a(e)):e.startEmpty?null:u,y=[0,p[t].x],c=o.brushX(),c.extent([[u[0],0],[u[1],p[t].width]]).on("start",n=>{ue(l(n.selection),t,i,p[t],e)}).on("brush",n=>{pe(l(n.selection),t,i,p[t],e)}).on("end",n=>{ye(l(n.selection),t,i,p[t],e)})):(m=e.extent[t]?e.extent[t].map(e=>u[1]-a(e)).reverse():e.startEmpty?null:u,y=[p[t].x,0],c=o.brushY(),c.extent([[0,u[0]],[p[t].width,u[1]]]).on("start",n=>{ue(l(n.selection),t,i,p[t],e)}).on("brush",n=>{pe(l(n.selection),t,i,p[t],e)}).on("end",n=>{ye(l(n.selection),t,i,p[t],e)})),E.createElement("g",{key:"column-brush-"+t,className:"brush"},E.createElement(Q,{key:"orbrush"+t,selectedExtent:m,svgBrush:c,position:y}))))})(a,t)),A||n?E.createElement("div",{className:"interaction-layer","data-testid":"interaction-layer",style:{position:"absolute",background:"none",pointerEvents:"none",height:"100%",width:"100%",overflow:"hidden"}},O||E.createElement("svg",{height:c[1],width:c[0],style:{background:"none",pointerEvents:"none"}},E.createElement("g",{className:"interaction-overlay",transform:`translate(${l.left},${l.top})`,style:{pointerEvents:v?"all":"none"}},E.createElement("g",{className:"interaction-regions"},A),n))):null}function pt(t){const{matte:n,matteClip:a,axes:o,frameKey:r="",margin:s={left:0,right:0,bottom:0,top:0},title:i,ariaTitle:c,axesTickLines:l,frameRenderOrder:d,additionalVizElements:u,transition:p}=t;let y=V(e=>e.changeTooltip);const m=e.useCallback(e=>{y(e)},[y]),[h,g]=e.useState(null),[f,b]=e.useState(null),x=e.useMemo(()=>(({focusedPieceIndex:e,changeFocusedPieceIndex:t,changeFocusedVisualizationGroup:n})=>({e:{keyCode:a},vizgroup:o,props:r,piecesGroup:s})=>{const{renderPipeline:i,voronoiHover:c}=r,l=a;if(37!==l&&39!==l&&13!==l)return;let d=0;const u={};null===e||13===l?u.focusedVisualizationGroup=o:37===l?d=e-1:39===l&&(d=e+1),d=0>d?s[o].length+d:d%s[o].length,c(i[o].accessibleTransform(i[o].data,d,s[o][d])),t(d),n(u.focusedVisualizationGroup)})({focusedPieceIndex:h,changeFocusedPieceIndex:g,changeFocusedVisualizationGroup:b}),[h,g,b]),v=((e,t,n)=>{const{xScale:a,yScale:o,dataVersion:r,projectedCoordinateNames:s,renderPipeline:i={},renderOrder:c=[],transition:l}=e,d=[],u={},p=[];return c.concat(Object.keys(i).filter(e=>-1===c.indexOf(e))).forEach(r=>{const c=i[r];if(c&&(c.data&&"object"==typeof c.data&&!Array.isArray(c.data)||c.data&&c.data.length>0)){const i=c.behavior(Object.assign({xScale:a,yScale:o,canvasDrawing:d,projectedCoordinateNames:s},c));i&&i.length>0&&p.push(E.createElement("g",Object.assign({key:r,className:r,"data-testid":r,role:"group",tabIndex:0},l?{"data-semiotic-transition":""}:void 0,{"aria-label":c.ariaLabel&&`${i.length} ${c.ariaLabel.items}s in a ${c.ariaLabel.chart}`||r,onKeyDown:n=>t({e:n,k:r,props:e,piecesGroup:u}),onBlur:()=>{n(void 0)},ref:e=>e&&(u[r]=e.childNodes)}),i))}}),{renderedElements:p,dataVersion:r,canvasDrawing:d,piecesGroup:u}})(t,x,m),{renderedElements:k}=v;e.useEffect(()=>{var e,n;const a=null===(e=t.canvasContext)||void 0===e?void 0:e.current;let o=new AbortController;if(t.disableContext||!a)return;const{sketchyRenderingEngine:r,width:s,height:i,margin:c,disableProgressiveRendering:l=!1}=t,d=[s+c.left+c.right,i+c.top+c.bottom];a.width=d[0],a.height=d[1],a.style.width=d[0],a.style.height=d[1];const u=a.getContext("2d");u.scale(devicePixelRatio,devicePixelRatio),u.setTransform(1,0,0,1,c.left,c.top),u.clearRect(-c.left,-c.top,d[0],d[1]);const p=function(e,t,n,a,o,r){const s={fill:"black",stroke:"black",opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1},{position:i=[0,0]}=a;return a=>{var c,l,d;const u=Object.assign(Object.assign({},a.d),a.d.data),p=a.styleFn&&a.styleFn(u,a.i)||s,y=p.fill?p.fill:"black",m=p.stroke?p.stroke:"black";t.setTransform(1,0,0,1,n.left,n.top),t.translate(i[0],i[1]),t.translate(a.tx,a.ty),t.fillStyle=y,t.strokeStyle=m,t.lineWidth=p.strokeWidth?p.strokeWidth:0;let h={};const g=a.renderFn&&a.renderFn(u,a.i);let f=g&&g.renderMode||g;if(f)if(o){const n=o.canvas;n?(r=r||n(e),h=Object.assign({fill:y,stroke:m,strokeWidth:t.lineWidth},"object"==typeof g&&g||{})):console.error("The sketchyRenderingEngine you specify does not expose a prop `RoughCanvas` and so cannot render sketchy HTML5 Canvas graphics")}else console.error("You cannot render sketchy graphics without specifying a Rough.js-like library as the sketchyRenderingEngine prop of your frame"),f=void 0;if("circle"===a.markProps.markType||"rect"===a.markProps.markType&&a.markProps.rx>0){let e=null!==(c=a.markProps.cx)&&void 0!==c?c:0,n=null!==(l=a.markProps.cy)&&void 0!==l?l:0,o=null!==(d=p.r)&&void 0!==d?d:a.markProps.r;if(a.markProps.width){const t=a.markProps.width/2;e=a.markProps.x+t,n=a.markProps.y+t,o=t}"sketchy"===f?0!==t.globalAlpha&&r.circle(e,n,o,h):(t.beginPath(),t.arc(e,n,o,0,2*Math.PI),t.globalAlpha=p.fillOpacity||p.opacity||1,p.fill&&"none"!==p.fill&&0!==t.globalAlpha&&t.fill(),t.globalAlpha=p.strokeOpacity||p.opacity||1,p.stroke&&"none"!==p.stroke&&0!==t.globalAlpha&&t.stroke())}else if("rect"===a.markProps.markType)"sketchy"===f?(t.globalAlpha=p.opacity||1,0!==t.globalAlpha&&r.rectangle(a.markProps.x,a.markProps.y,a.markProps.width,a.markProps.height,h)):(t.globalAlpha=p.fillOpacity||p.opacity||1,p.fill&&"none"!==p.fill&&0!==t.globalAlpha&&t.fillRect(a.markProps.x,a.markProps.y,a.markProps.width,a.markProps.height),t.globalAlpha=p.strokeOpacity||p.opacity||1,p.stroke&&"none"!==p.stroke&&0!==t.globalAlpha&&t.strokeRect(a.markProps.x,a.markProps.y,a.markProps.width,a.markProps.height));else if("path"===a.markProps.markType)if("sketchy"===f)t.globalAlpha=p.opacity||1,r.path(a.markProps.d,h);else{const e=new Path2D(a.markProps.d);t.globalAlpha=p.strokeOpacity||p.opacity||1,p.stroke&&"none"!==p.stroke&&0!==t.globalAlpha&&t.stroke(e),t.globalAlpha=p.fillOpacity||p.opacity||1,p.fill&&"none"!==p.fill&&0!==t.globalAlpha&&t.fill(e)}else"line"===a.markProps.markType?"sketchy"===f?(t.globalAlpha=p.opacity||1,r.line(a.markProps.x1,a.markProps.y1,a.markProps.x2,a.markProps.y2,h)):(t.globalAlpha=p.strokeOpacity||p.opacity||1,t.beginPath(),t.moveTo(a.markProps.x1,a.markProps.y1),t.lineTo(a.markProps.x2,a.markProps.y2),p.stroke&&"none"!==p.stroke&&0!==t.globalAlpha&&t.stroke()):console.error("CURRENTLY UNSUPPORTED MARKTYPE FOR CANVAS RENDERING")}}(a,u,c,t,r,void 0);if(u.clearRect(-c.left,-c.top,d[0],d[1]),l)for(const e of v.canvasDrawing)p(e);else o=new AbortController,function(e,t,n){let a=0;!function(e){var t,n,a,o;t=this,n=arguments,o=function*(e,{signal:t,timeFrameMs:n=30}={}){return new Promise((a,o)=>{requestAnimationFrame(function r(){let s=performance.now(),i=0,c=!1,l=null!=t&&t.aborted;try{if(l)return a();do{c=e(),i=performance.now()-s,l=null!=t&&t.aborted}while(!l&&c&&n>i);!l&&c?requestAnimationFrame(r):a()}catch(e){o(e)}})})},new((a=void 0)||(a=Promise))(function(e,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function i(e){try{c(o.throw(e))}catch(e){r(e)}}function c(t){var n;t.done?e(t.value):(n=t.value,n instanceof a?n:new a(function(e){e(n)})).then(s,i)}c((o=o.apply(t,n||[])).next())})}(()=>{let n=Math.min(a+1e3,t.length);for(let o=a;n>o;o++)e(t[o]);return a+=1e3,t.length>a},n)}(p,v.canvasDrawing,{signal:o.signal});if(u.setTransform(1,0,0,1,0,0),u.globalAlpha=1,t.canvasPostProcess&&t.canvasPostProcess(null===(n=t.canvasContext)||void 0===n?void 0:n.current,u,d),null!==f&&v.piecesGroup[f]&&null!==h){const e=v.piecesGroup[f][h],t=e&&[...e.childNodes].find(e=>e.getAttribute("aria-label"))||e;t&&t.focus&&t.focus()}return function(){o.abort()}},[n,a,o,r,s,c,l,d,u]);const j=function(e){if(!e)return null;const t="object"==typeof e&&null!=e.ease?e.ease:"ease",n=("object"==typeof e&&null!=e.duration?e.duration:300)+"ms";return E.createElement("style",{key:"semiotic-transition-style"},`\n@keyframes semiotic-enter {\n from { opacity: 0; }\n to { opacity: 1; }\n}\ng[data-semiotic-transition] > rect,\ng[data-semiotic-transition] > circle,\ng[data-semiotic-transition] > path,\ng[data-semiotic-transition] > line,\ng[data-semiotic-transition] > g > rect,\ng[data-semiotic-transition] > g > circle,\ng[data-semiotic-transition] > g > path,\ng[data-semiotic-transition] > g > line {\n transition: fill ${n} ${t},\n stroke ${n} ${t},\n opacity ${n} ${t},\n transform ${n} ${t};\n animation: semiotic-enter ${n} ${t};\n}\n`)}(p),A=Object.assign({"axes-tick-lines":l&&E.createElement("g",{key:"visualization-tick-lines",className:"axis axis-tick-lines","aria-hidden":!0},l),"axes-labels":o&&E.createElement("g",{key:"visualization-axis-labels",className:"axis axis-labels"},o),matte:n,"viz-layer":k&&k.length>0?E.createElement(E.Fragment,{key:"viz-layer"},j,k):null},u);let S="";S=`Visualization ${i&&c||i?"string"!=typeof i&&i.props&&"string"==typeof i.props.children?"titled "+i.props.children:"with a complex title":"with no title"}. Use arrow keys to navigate elements.`;const O=[];return d.forEach(e=>{A[e]&&O.push(A[e])}),O.length>0&&E.createElement("g",{className:"data-visualization","data-testid":"data-visualization",key:"visualization-clip-path","aria-label":S,role:"group",clipPath:a&&n?`url(#matte-clip${r})`:void 0,transform:`translate(${s.left},${s.top})`},O)||null}const yt=[],mt={},ht=[0,0],gt={x:"x",y:"y"},ft=["axes-tick-lines","viz-layer","matte","axes-labels","labels"],bt={top:0,bottom:0,left:0,right:0};function xt(t){const{axes:n,axesTickLines:a,className:o="",name:r="",frameKey:s,projectedCoordinateNames:i=gt,renderPipeline:c,size:l,adjustedSize:d=l,title:u,xScale:p,yScale:y,dataVersion:m,annotations:h,projectedYMiddle:g,interaction:f,customClickBehavior:b,customHoverBehavior:x,customDoubleClickBehavior:v,points:k,margin:j=bt,backgroundGraphics:A,foregroundGraphics:S,beforeElements:O,afterElements:M,defaultSVGRule:w,defaultHTMLRule:C,adjustedPosition:P=ht,legendSettings:z,annotationSettings:N=mt,overlay:$,columns:D,rScale:F,projection:T,interactionOverflow:L,canvasPostProcess:R,canvasRendering:V,renderOrder:I=yt,showLinePoints:W,disableCanvasInteraction:G=!1,sketchyRenderingEngine:_,disableContext:H,frameRenderOrder:q=ft,additionalVizElements:Y=mt,interactionSettings:K,disableProgressiveRendering:Z,additionalDefs:Q,transition:U}=t;let{hoverAnnotation:J}=t;const ee=e.useRef(null),[te,ne]=e.useState(null),[ae,oe]=e.useState(null);e.useEffect(()=>{const e=(({matte:e,size:t,margin:n,frameKey:a,additionalDefs:o,name:r})=>{let s;"function"==typeof e?s=e({size:t,margin:n}):E.isValidElement(e)?s=e:!0===e&&(s=E.createElement("path",{fill:"white",transform:`translate(${-n.left},${-n.top})`,d:nt({margin:n,size:t,inset:0}),className:r+"-matte"}));const i=(({matte:e,key:t,additionalDefs:n})=>E.createElement("defs",null,E.createElement("filter",{id:"paintyFilterHeavy"},E.createElement("feGaussianBlur",{id:"gaussblurrer",in:"SourceGraphic",stdDeviation:4,colorInterpolationFilters:"sRGB",result:"blur"}),E.createElement("feColorMatrix",{in:"blur",mode:"matrix",values:"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 34 -7",result:"gooey"})),E.createElement("filter",{id:"paintyFilterLight"},E.createElement("feGaussianBlur",{id:"gaussblurrer",in:"SourceGraphic",stdDeviation:2,colorInterpolationFilters:"sRGB",result:"blur"}),E.createElement("feColorMatrix",{in:"blur",mode:"matrix",values:"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 34 -7",result:"gooey"})),E.createElement("clipPath",{id:"matte-clip-"+t},e),n))({matte:s,key:e&&(a||r),additionalDefs:o});return{defs:i,matte:s}})({matte:ae,size:l,margin:j,frameKey:s,additionalDefs:Q,name:r});ne(e.defs),oe(e.matte)},[l[0],l[1],j.top,j.bottom,j.right,j.left,j.top,ae,Q]),!J&&(b||x||v)&&(J=yt);const re=[],se=h?[...h,...re]:re,ie=e.useRef(w);ie.current=w;const ce=e.useRef(C);ce.current=C;const le=e.useRef(c);le.current=c;const de=e.useCallback((e,t,n)=>ie.current(Object.assign({d:e,i:t,annotationLayer:n},le.current)),[]),ue=e.useCallback((e,t,n)=>ce.current(Object.assign({d:e,i:t,annotationLayer:n},le.current)),[]),pe=E.createElement(X,{legendSettings:z,margin:j,axes:n,annotationHandling:N,pointSizeFunction:N.layout&&N.layout.pointSizeFunction,labelSizeFunction:N.layout&&N.layout.labelSizeFunction,annotations:se,svgAnnotationRule:de,htmlAnnotationRule:ue,size:d,position:[P[0]+j.left,P[1]+j.top]}),ye=function({title:e={title:"",orient:"top"},size:t}){let n=null;const{title:a,orient:o}=et(e);let r,s=0,i=0;switch(o){case"top":s=t[0]/2,i=25;break;case"bottom":s=t[0]/2,i=t[1]-25;break;case"left":s=25,i=t[1]/2,r="rotate(-90)";break;case"right":s=t[0]-25,i=t[1]/2,r="rotate(90)"}const c=`translate(${s},${i})`;return"string"==typeof a&&a.length>0?n=E.createElement("g",{transform:c},E.createElement("text",{className:"frame-title",transform:r,style:{textAnchor:"middle",pointerEvents:"none"}},a)):a&&(n=E.createElement("g",{transform:c},a)),n}({title:u,size:l}),me="function"==typeof A?A({size:l,margin:j}):A,he="function"==typeof S?S({size:l,margin:j}):S;return E.createElement("div",{className:`${o} frame ${r}`,style:{background:"none"}},O&&E.createElement("div",{className:r+" frame-before-elements"},O),E.createElement("div",{className:"frame-elements",style:{height:l[1]+"px",width:l[0]+"px"}},E.createElement(B,null,E.createElement("div",{className:"visualization-layer",style:{position:"absolute"}},A&&E.createElement("svg",{className:"background-graphics",style:{position:"absolute"},width:l[0],height:l[1]},A&&E.createElement("g",{"aria-hidden":!0,className:"background-graphics"},me)),E.createElement("svg",{className:"visualization-layer",style:{position:"absolute"},width:l[0],height:l[1]},te,E.createElement(pt,{disableContext:H,renderPipeline:c,position:P,width:d[0],height:d[1],projectedCoordinateNames:i,xScale:p,yScale:y,axes:n,title:ye,frameKey:s,canvasContext:ee,dataVersion:m,matte:ae,margin:j,canvasPostProcess:R,renderOrder:I,sketchyRenderingEngine:_,axesTickLines:a,additionalVizElements:Y,frameRenderOrder:q,disableProgressiveRendering:Z,transition:U}),ye&&E.createElement("g",{className:"frame-title"},ye),S&&E.createElement("g",{"aria-hidden":!0,className:"foreground-graphics"},he))),V&&E.createElement("canvas",{className:"frame-canvas",ref:ee,style:{pointerEvents:"none",position:"absolute"},width:l[0]/2,height:l[1]/2}),E.createElement(ut,{hoverAnnotation:J,projectedX:i.x,projectedY:i.y,projectedYMiddle:g,interaction:f,customClickBehavior:b,customHoverBehavior:x,customDoubleClickBehavior:v,points:k,showLinePoints:W,canvasRendering:V,position:P,margin:j,size:d,svgSize:l,xScale:p,yScale:y,enabled:!0,overlay:$,oColumns:D,rScale:F,projection:T,interactionOverflow:L,disableCanvasInteraction:G,renderPipeline:c,advancedSettings:K}),pe)),M&&E.createElement("div",{className:r+" frame-after-elements"},M))}const vt=({tooltipRef:e,changeTooltipContentArgsCurrent:t,changeTooltipContainerInitialDimensions:n,changeCollision:a})=>{const o=null==e?void 0:e.getBoundingClientRect();if(!o)return;const{left:r,top:s,width:i,height:c}=o;let l={left:!1,right:!1,top:!1,bottom:!1};r+i>window.innerWidth&&(l.right=!0),0>r-i&&(l.left=!0),s+c>window.innerHeight&&(l.bottom=!0),0>s-c&&(l.top=!0),t(),n(o),a(l)};function kt(t){const{tooltipContent:n,tooltipContentArgs:a}=t,[o,r]=e.useState(null),[s,i]=e.useState(null),[c,l]=e.useState(null),[d,u]=e.useState(null),p=e.useCallback(e=>{u(e),vt({tooltipRef:e,tooltipContentArgs:a,changeTooltipContentArgsCurrent:l,changeTooltipContainerInitialDimensions:i,changeCollision:r})},[]);e.useEffect(()=>{r(null),i(null)},[JSON.stringify(a)]),e.useEffect(()=>{d&&!o&&vt({tooltipRef:d,tooltipContentArgs:a,changeTooltipContentArgsCurrent:l,changeTooltipContainerInitialDimensions:i,changeCollision:r})},[d,o]);const y={overflow:"hidden",opacity:o&&c===a?1:0},m=o?["tooltip-container","tooltip-collision-evaluated",o&&o.top&&"collision-top",o&&o.bottom&&"collision-bottom",o&&o.right&&"collision-right",o&&o.left&&"collision-left"].filter(e=>e).join(" "):"tooltip-container",h={offset:{x:0,y:0},tooltipContainerInitialDimensions:s};return E.createElement("div",{ref:p,style:y,className:m,"data-testid":"TooltipPositioner"},n(Object.assign(Object.assign({},a),{tooltipContainerAttributes:h})))}const jt=({d:e,i:t,circle:n})=>{const{padding:a=2,radiusPadding:o=a,label:r}=e,s=Object.assign({dx:0,dy:0,note:{label:r},connector:{end:"arrow"}},e,{coordinates:void 0,x:n.x,y:n.y,type:"callout-circle",subject:{radius:n.r,radiusPadding:o},i:t});if(s.rp)switch(s.rp){case"top":s.dx=0,s.dy=-n.r-s.rd;break;case"bottom":s.dx=0,s.dy=n.r+s.rd;break;case"left":s.dx=-n.r-s.rd,s.dy=0;break;default:s.dx=n.r+s.rd,s.dy=0}return E.createElement(R,{key:e.key||"annotation-"+t,noteData:s})},At=({bboxNodes:e,d:t,i:n})=>{const{padding:a=0,dx:o=-25,dy:r=-25,label:s}=t,i=[[Math.min(...e.map(e=>e.x0))-a,Math.min(...e.map(e=>e.y0))-a],[Math.max(...e.map(e=>e.x1))+a,Math.max(...e.map(e=>e.y1))+a]],c=Object.assign({dx:o,dy:r,note:{label:s},connector:{end:"arrow"}},t,{type:"callout-rect",x:i[0][0],y:i[0][1],subject:{width:i[1][0]-i[0][0],height:i[1][1]-i[0][1]}});return E.createElement(R,{key:t.key||"annotation-"+n,noteData:c})},St=({points:e,d:t,i:n})=>{const{color:a="currentColor",dx:o=-25,dy:r=-25,label:s,padding:i=10,buffer:c=i,strokeWidth:l=10}=t,d=u.polygonHull(e),p=(new w.default).data([...d,d[0]]).margin(c)[0],y=`M${p.map(e=>e.join(",")).join("L")}Z`,m=p[0],{nx:h=m[0]+o,ny:g=m[1]+r}=t,f=p.reduce((e,t)=>(Math.hypot(h-e[0],g-e[1])>Math.hypot(h-t[0],g-t[1])&&(e=t),e),m),b=Object.assign({dx:o,dy:r,note:{label:s},connector:{end:"arrow"}},t,{type:"callout-custom",x:f[0],y:f[1],subject:{custom:[E.createElement("path",{key:"hull-drawing",d:y,strokeWidth:l,strokeMiterlimit:"10",strokeLinejoin:"miter",strokeLinecap:"butt",fill:"none",stroke:a,transform:`translate(${-f[0]},${-f[1]})`})],customID:"hull-annotation"}});return E.createElement(R,{key:t.key||"annotation-"+n,noteData:b})},Et=({style:e={fill:"white",fillOpacity:.5},size:t,i:n,key:a})=>E.createElement("rect",{"data-testid":"desaturation-layer",key:a||"desaturation-"+n,x:-5,y:-5,width:t[0]+10,height:t[1]+10,style:e}),Ot=(e,t)=>{for(let n=0;e.length>n;n++){const a=e[n](t);if(void 0!==a&&!Number.isNaN(a)&&null!==a)return a}},Mt=e=>({d:t,lines:n,points:a,xScale:o,yScale:r,pointStyle:s})=>{const i="x"===e?o:r;if(e="yTop"===e&&t.yMiddle?"yMiddle":e,t&&t[e]){const{threshold:c=1,r:l=()=>4,styleFn:d=s}=t,u=[],p=c/2;if(n&&n.length>0&&n.forEach(n=>{const a=n.data.filter(n=>{const a=i(n[e]),o=i(t[e]);return o+p>=a&&a>=o-p});u.push(...a)}),a&&a.length>0){const n=a.filter(n=>{const a=i(n[e]),o=i(t[e]);return o+p>=a&&a>=o-p});u.push(...n)}return u.map((e,t)=>E.createElement("circle",{key:"found-circle-"+t,r:l(e,t),style:d(e,t),cx:o(e.xMiddle||e.x),cy:r(e.yMiddle||e.yTop)}))}return null},wt=Mt("yTop"),Ct=Mt("x"),Pt=e=>e instanceof Date?e.getTime():e,zt=({type:e="stackedarea",data:t,xProp:n,yProp:a,yPropMiddle:o,sort:r,yPropTop:i,yPropBottom:c})=>{const l=new Map,d=t.map(()=>0);let u=0;for(const e of t){e.__lineIndex=u;for(const t of e.data){const e=Pt(t[n]);d[u]+=t[a],l.has(e)||l.set(e,[]),l.get(e)[u]=t}u++}let p=(e,t)=>d[t.key]-d[e.key];"stackedpercent-invert"!==e&&"stackedarea-invert"!==e||(p=(e,t)=>d[e.key]-d[t.key]),null!==(r=void 0===r?p:r)&&(t=t.sort(r));const y=t.map(e=>e.__lineIndex);for(const[,t]of l){let n=0,r=0;const l=s.sum(t,e=>(null==e?void 0:e[a])>0?e[a]:0),d=s.sum(t,e=>0>(null==e?void 0:e[a])?e[a]:0);for(const s of y){const u=t[s];if(u)if(0>u[a]){if("linepercent"===e||"stackedpercent"===e||"stackedpercent-invert"===e){const t=u[a]/d;if(u.percent=t,"linepercent"===e)u[c]=u[c]=u[i]=u[o]=t;else{const e=0>d?t:0;u[c]=0===d?0:-n/d,u[i]=u[c]-e,u[o]=u[c]-e/2}}else u[c]=n,u[i]=n+u[a],u[o]=n+u[a]/2;n+=u[a]}else{if("linepercent"===e||"stackedpercent"===e||"stackedpercent-invert"===e){const t=u[a]/l;if(u.percent=t,"linepercent"===e)u[c]=u[i]=u[o]=t;else{const e=l>0?t:0;u[c]=0===l?0:r/l,u[i]=u[c]+e,u[o]=u[c]+e/2}}else u[c]=r,u[i]=r+u[a],u[o]=r+u[a]/2;r+=u[a]}}}return t},Nt=({data:e,y1:t,x1:n,yPropTop:a,yPropMiddle:o,yPropBottom:r,xPropTop:s,xPropMiddle:i,xPropBottom:c})=>{if(t)for(const n of e)for(const e of n.data)e[r]=t(e),e[o]=e[a];if(n)for(const t of e)for(const e of t.data)e[c]=n(e),e[i]=(e[c]+e[s])/2;return e},$t=({data:e,y1:t,yPropTop:n,yPropMiddle:a,yPropBottom:o,type:r="cumulative"})=>{for(const s of e){let e=0;const i="cumulative-reverse"===r?s.data.reverse():s.data;for(const r of i)e+=r[n],r[o]=r[n]=r[a]=e,t&&(r[o]=t(r),r[a]=r[o]+r[n]/2)}return e},Dt=({type:e="bumpline",data:t,xProp:n,yProp:a,yPropMiddle:o,yPropTop:r,yPropBottom:s})=>{const i=new Map;for(const e of t)for(const t of e.data){const e=Pt(t[n]);i.has(e)||i.set(e,[]),i.get(e).push(t)}let c=(e,t)=>e[a]>t[a]?1:-1;"bumparea-invert"!==e&&"bumpline-invert"!==e||(c=(e,t)=>t[a]>e[a]?1:-1);for(const[,t]of i){let n=0,i=0;t.sort(c);let l=1;for(const c of t)"bumparea"===e||"bumparea-invert"===e?0>c[a]?(c[r]=n+c[a],c[o]=n+c[a]/2,c[s]=n,n+=c[a]):(c[r]=i+c[a],c[o]=i+c[a]/2,c[s]=i,i+=c[a]):(c[a]=l,c[r]=l,c[s]=l),l++}return t},Ft={bottom:"yBottom",top:"yTop"};function Tt({point:e,projectedY:t,yAccessor:n,yScale:a,showLinePoints:o}){const r=e&&(o&&!0!==o&&void 0!==e[Ft[o]]?e[Ft[o]]:void 0!==e.yMiddle?e.yMiddle:void 0!==e[t]?e[t]:Ot(n,e));return Array.isArray(r)?r.map(e=>a(e)):void 0!==r?a(r):0}function Lt({point:e,projectedXMiddle:t,projectedX:n,xAccessor:a,xScale:o}){const r=e&&(void 0!==e[t]?e[t]:void 0!==e[n]?e[n]:Ot(a,e));return Array.isArray(r)?r.map(e=>o(e)):void 0!==r?o(r):0}function Rt({point:e,idAccessor:t,lines:n,xScale:a,projectedX:o,xAccessor:r}){const s=t(e.parentLine||e);if(s){const i=n.data.find(e=>t(e)===s);if(!i)return null;const c=a(Ot(r,e)),l=i.data.find(e=>a(e[o])===c);if(!l)return null;const d=Object.assign(Object.assign(Object.assign(Object.assign({},e),l),l.data),{parentLine:i});return["type","label","note","connector","disabled","color","subject"].forEach(t=>{e[t]&&(d[t]=e[t])}),d}return e}const Bt=e=>e&&e.extent||Array.isArray(e)&&e||[],Vt=()=>!0,It={top:ne,bottom:ae,orphan:ee},Wt={top:re,bottom:se,orphan:J},Gt={stackedarea:zt,"stackedarea-invert":zt,stackedpercent:zt,"stackedpercent-invert":zt,linepercent:zt,difference:({data:e,yProp:t,yPropTop:n,yPropBottom:a})=>(e.forEach((o,r)=>{o.data.forEach((o,s)=>{const i=0===r?1:0;o[t]>e[i].data[s][t]?(o[a]=e[i].data[s][t],o[n]=o[t]):(o[n]=o[t],o[a]=o[t])})}),e),bumparea:Dt,bumpline:Dt,"bumparea-invert":Dt,line:Nt,area:Nt,cumulative:$t,"cumulative-reverse":$t};function _t(e,t,n){if(!e&&t)return t;if("object"==typeof e)return()=>e;if(e instanceof Function)return e;if(!0===n){const t=e;return()=>t}return"string"==typeof e?t=>t?t[e]:void 0:()=>{}}function Ht(e,t,n){if(void 0===e)return[_t(void 0,t,n)];let a=[];return a=Array.isArray(e)?e:[e],a.map(e=>_t(e,t,n))}function qt(e,t){const n=[];for(const e of t)n.push(Object.assign({},e));for(const t of e)t.parentSummary||n.push(t);return n}const Yt=(e,t)=>!Gt[e]||"difference"===e&&2!==t.length?"line":e,Xt=({xExtent:e,yExtent:t,adjustedSize:n,xScaleType:a,yScaleType:o})=>{const r=[0,n[0]],s=[n[1],0],i=a,c=o;return a.domain&&a.domain(e),o.domain&&o.domain(t),a.range(r),o.range(s),{xScale:i,yScale:c}},Kt={line:{items:"line",chart:"line chart"},area:{items:"summary",chart:"summary chart"},summary:{items:"summary",chart:"summary chart"},cumulative:{items:"line",chart:"cumulative chart"},"cumulative-reverse":{items:"line",chart:"cumulative chart"},linepercent:{items:"line",chart:"line chart"},stackedarea:{items:"stacked area",chart:"stacked area chart"},"stackedarea-invert":{items:"stacked area",chart:"stacked area chart"},stackedpercent:{items:"stacked area",chart:"stacked area chart"},"stackedpercent-invert":{items:"stacked area",chart:"stacked area chart"},bumparea:{items:"ranked area",chart:"ranked area chart"},"bumparea-invert":{items:"ranked area",chart:"ranked area chart"},bumpline:{items:"ranked line",chart:"ranked line chart"},difference:{items:"line",chart:"difference chart"}},Zt=(e,a,o,r)=>{const{legend:s,lines:i,lineClass:c,pointStyle:l,pointRenderMode:d,pointClass:u,summaryClass:p,canvasLines:m,canvasPoints:h,canvasSummaries:g,defined:f,size:b,renderKey:x,lineType:v,summaryType:k,customLineMark:j,customPointMark:A,customSummaryMark:S,summaryStyle:O,summaryRenderMode:w,lineStyle:C,lineRenderMode:P,xExtent:z,yExtent:N,title:$,xScaleType:D=n.scaleLinear(),yScaleType:F=n.scaleLinear(),lineIDAccessor:T,invertX:L,invertY:R,showLinePoints:B,showSummaryPoints:V,points:I,lineDataAccessor:W,summaryDataAccessor:G,yAccessor:_,xAccessor:H,useSummariesAsInteractionLayer:q,filterRenderedLines:Y,filterRenderedSummaries:X,filterRenderedPoints:K,annotations:Z}=e;let{projectedLines:Q,projectedPoints:U,projectedSummaries:ie,summaries:ce,fullDataset:le}=e;k&&I&&!ce?ce=[{coordinates:I}]:k&&"linebounds"===k.type&&i&&!ce&&(ce=i);const de=D.domain?D:D(),ue=F.domain?F:F(),pe=r.annotatedSettings(H,_,G,W,x,v,k,T),ye=Object.assign(Object.assign({},pe),{lineType:ot(v),summaryType:ot(k),summaries:!ce||Array.isArray(ce)&&0===ce.length?void 0:Array.isArray(ce)?G||ce[0].coordinates?ce:[{coordinates:ce}]:[ce],lines:!i||Array.isArray(i)&&0===i.length?void 0:Array.isArray(i)?W||i[0].coordinates?i:[{coordinates:i}]:[i],title:"object"!=typeof $||E.isValidElement($)||null===$?{title:$,orient:"top"}:$,xExtent:Array.isArray(z)?z:z?z.extent:void 0,yExtent:Array.isArray(N)?N:N?N.extent:void 0});"area"===ye.lineType.type&&(ye.lineType.y1=()=>0,ye.lineType.simpleLine=!1);const{summaryStyleFn:me,summaryClassFn:he,summaryRenderModeFn:ge}=r.summaryStyleFns(O,p,w),fe=e.axes&&e.axes.map(t=>"function"==typeof t?t({size:e.size}):t),{margin:be,adjustedPosition:xe,adjustedSize:ve}=r.marginCalc(e.margin,fe,ye.title,e.size);let Se,Ee,Oe,Me,we,Ce,Pe,ze,Ne=[],$e=[];Oe="object"==typeof z?z:{extent:z},Me="object"==typeof N?N:{extent:N},o||e.dataVersion&&e.dataVersion!==a.dataVersion?(Ee&&Se&&le&&(Q||U||ie)||({xExtent:Ee,yExtent:Se,projectedLines:Q,projectedPoints:U,projectedSummaries:ie,fullDataset:le,calculatedXExtent:Ne,calculatedYExtent:$e}=(({lineDataAccessor:e,xAccessor:a,yAccessor:o,summaries:r,points:s,lines:i,lineType:c,showLinePoints:l,showSummaryPoints:d,xExtent:u,yExtent:p,invertX:m,invertY:h,summaryDataAccessor:g,summaryType:f,adjustedSize:b,margin:x,summaryStyleFn:v,summaryClassFn:k,summaryRenderModeFn:j,chartSize:A,filterRenderedLines:S,filterRenderedSummaries:O,filterRenderedPoints:w,defined:C=Vt,annotations:P=[]})=>{let z=[],N=[],$=[],D=[],F=[];if(s){a.forEach((e,t)=>{o.forEach((n,a)=>{let o=0;for(const r of s){const s=e(r,o),i=n(r,o),c={x:s,y:i,data:r,xIndex:t,yIndex:a};Array.isArray(i)&&(c[ae]=Math.min(...i),c[ne]=Math.max(...i),c[te]=(c[ae]+c[ne])/2),Array.isArray(s)&&(c[se]=Math.min(...s),c[re]=Math.max(...s),c[oe]=(c[se]+c[re])/2),$.push(c),o++}})});for(const e of $)z.push(Object.assign(Object.assign({},e),{[J]:e[re]||e[se]||e.x,[ee]:e[ne]||e[ae]||e.y}))}if(i){N=(({data:e,lineDataAccessor:t,xProp:n,xPropTop:a,xPropBottom:o,yProp:r,yPropTop:s,yPropBottom:i,xAccessor:c,yAccessor:l})=>{Array.isArray(e)||(e=[e]);const d=[];return t.forEach((t,u)=>{c.forEach((c,p)=>{l.forEach((l,y)=>{e.forEach(e=>{const m=Object.assign(Object.assign({},e),{xIndex:p,yIndex:y,lineIndex:u});m.data=t(e).map((e,t)=>{const d={data:e};return d[n]=c(e,t),d[a]=d[n],d[o]=d[n],d[r]=l(e,t),d[s]=d[r],d[i]=d[r],d}),m.key=m.key||d.length,d.push(m)})})})}),d})({data:i,lineDataAccessor:e,xProp:J,xPropTop:re,xPropBottom:se,yProp:ee,yPropTop:ne,yPropBottom:ae,xAccessor:a,yAccessor:o}),D=function(e,t){return n=>Gt[Yt(e.type,n)](Object.assign(Object.assign(Object.assign({},e),t),{data:n}))}(c,{xProp:J,yProp:ee,yPropMiddle:te,yPropTop:ne,yPropBottom:ae,xPropMiddle:oe,xPropTop:re,xPropBottom:se})(N);for(const e of D)for(let t=0;e.data.length>t;t++){const n=e.data[t];if(!C(Object.assign({},n.data,n),t))continue;const a={parentLine:e,y:n.y,x:n.x,xTop:n.xTop,xMiddle:n.xMiddle,xBottom:n.xBottom,yTop:n.yTop,yMiddle:n.yMiddle,yBottom:n.yBottom,data:n.data};n.percent&&(a.percent=n.percent),z.push(a)}if(l){const e=!0===l?oe:Wt[l],t=!0===l?te:It[l];D.forEach(n=>{n.data.filter((e,t)=>{if(C(Object.assign({},e.data,e))){if("orphan"===l){const e=n.data[t-1],a=n.data[t+1];return!(e&&C(Object.assign({},e.data,e))||a&&C(Object.assign({},a.data,a)))}return!0}return!1}).forEach(a=>{$.push(Object.assign(Object.assign({},a),{parentLine:n,[ee]:void 0!==a[t]?a[t]:void 0!==a[te]?a[te]:void 0!==a[ae]?a[ae]:a.y,[J]:void 0!==a[e]?a[e]:void 0!==a[oe]?a[oe]:void 0!==a[se]?a[se]:a.y}))})})}}r&&(F=(({data:e,summaryDataAccessor:t,xAccessor:n,yAccessor:a})=>{const o=[];return t.forEach(t=>{n.forEach(n=>{a.forEach(a=>{const r=e=>t(e).map((e,t)=>[n(e,t),a(e,t)]);e.forEach(e=>{o.push(Object.assign(Object.assign({},e),{_baseData:t(e),_xyfCoordinates:r(e)}))})})})}),o})({data:r,summaryDataAccessor:g,xAccessor:a,yAccessor:o}),F.forEach(e=>{const t=e._baseData;e._xyfCoordinates.length>0&&e._xyfCoordinates[0][0][0]?e._xyfCoordinates[0].forEach(n=>{Array.isArray(n)&&n.map((n,a)=>Object.assign({parentSummary:e},t[a],{[J]:n[0],[ee]:n[1]})).forEach(e=>{d&&$.push(Object.assign(Object.assign({x:0},e),{[ee]:e[ne]||e[ae]||e[ee]})),z.push(Object.assign({x:0,y:0},e))})}):e._xyfCoordinates.length>0&&Array.isArray(e._xyfCoordinates)&&e._xyfCoordinates.map((n,a)=>Object.assign(Object.assign({parentSummary:e},t[a]),{[J]:n[0],[ee]:n[1]})).forEach(e=>{d&&$.push(Object.assign(Object.assign({x:0},e),{[ee]:e[ne]||e[ae]||e[ee]})),z.push(Object.assign({x:0,y:0},e))})}));let T,L,R,B,V=[],I=[];u&&!Array.isArray(u)&&!0===u.includeAnnotations&&a.forEach(e=>{P.forEach((t,n)=>{const a=e(t,n);isFinite(a)&&V.push({[J]:a})})}),p&&!Array.isArray(p)&&!0===p.includeAnnotations&&o.forEach(e=>{P.forEach((t,n)=>{const a=e(t,n);isFinite(a)&&I.push({[ee]:a})})});for(const e of z){const t=void 0===e[se]?e[J]:Math.min(e[re],e[se]),n=void 0===e[re]?e[J]:Math.max(e[se],e[re]),a=void 0===e[ae]?e[ee]:Math.min(e[ne],e[ae]),o=void 0===e[ne]?e[ee]:Math.max(e[ae],e[ne]);void 0===t||void 0!==T&&t>=T||(T=t),void 0===n||void 0!==L&&L>=n||(L=n),void 0===a||void 0!==R&&a>=R||(R=a),void 0===o||void 0!==B&&B>=o||(B=o)}for(const e of V){const t=e[J];void 0===t||void 0!==T&&t>=T||(T=t),void 0===t||void 0!==L&&L>=t||(L=t)}for(const e of I){const t=e[ee];void 0===t||void 0!==R&&t>=R||(R=t),void 0===t||void 0!==B&&B>=t||(B=t)}const W=[T,L],G=[R,B],_=Bt(u),H=Bt(p);let q=[H&&void 0!==H[0]?H[0]:G[0],H&&void 0!==H[1]?H[1]:G[1]],Y=[_&&void 0!==_[0]?_[0]:W[0],_&&void 0!==_[1]?_[1]:W[1]];return!m||_&&2===_.length||(Y=[Y[1],Y[0]]),"bumpline"!==c.type&&!h||H&&2===H.length||(q=[q[1],q[0]]),f.type&&"contour"===f.type?F=De({summaryType:f,data:F,finalXExtent:Y,finalYExtent:q}):f.type&&"linebounds"===f.type?F=function({summaryType:e,data:t,defined:n}){let a=[];e.type||(e={type:e});const{boundingAccessor:o,topBoundingAccessor:r=o,bottomBoundingAccessor:s=o}=e;return t.forEach(e=>{const t=e._baseData.map(n);let o=[],i=[];const c=[{xyf:i,base:o}];t.forEach((n,a)=>{!0===n?(o.push(e._baseData[a]),i.push(e._xyfCoordinates[a])):t[a+1]&&(o=[],i=[],c.push({xyf:i,base:o}))}),c.forEach(({xyf:t,base:n})=>{const o={data:e,parentSummary:e,_xyfCoordinates:Fe(t,n,r,s)};a=[...a,o]})}),a}({summaryType:f,data:F,defined:C}):f.type&&"hexbin"===f.type?(F=function({preprocess:e=!0,processedData:t=!1,summaryType:a,data:o,finalXExtent:r,finalYExtent:s,size:i,xScaleType:c=n.scaleLinear(),yScaleType:l=n.scaleLinear(),margin:d,styleFn:u,classFn:p,renderFn:m,chartSize:h}){let g=r,f=s;if(!g){const e=o.coordinates.map(e=>e.x);g=[Math.min(...e),Math.max(...e)]}if(!f){const e=o.coordinates.map(e=>e.y);f=[Math.min(...e),Math.max(...e)]}if(t&&o)return o.coordinates;let b,x=[];b=a.type?a:{type:b};const{bins:v=.05,cellPx:k,binValue:j=e=>e.length,binMax:A,customMark:S}=b;o.coordinates&&!o._xyfCoordinates&&(o._xyfCoordinates=o.coordinates.map(e=>[e.x,e.y]));const O=Array.isArray(o)?o:[o],M=c.domain(g).range([0,i[0]]),w=l.domain(f).range([0,i[1]]),C=k&&k/2||(v>1?1/v:v)*i[0]/2,P=y.hexbin().x(e=>M(e._xyfPoint[0])).y(e=>w(e._xyfPoint[1])).radius(C).size(i);let z;const N=P.centers();return O.forEach(e=>{z=0;const t=P(e._xyfCoordinates.map((t,n)=>Object.assign({_xyfPoint:t},e.coordinates[n]))),n={};t.forEach(e=>{n[`${parseInt(e.x)}-${parseInt(e.y)}`]=!0}),N.forEach(e=>{if(!n[`${parseInt(e[0])}-${parseInt(e[1])}`]){const n=[];n.x=e[0],n.y=e[1],t.push(n)}}),z=Math.max(...t.map(e=>j(e))),A&&A(z);const a=[[0,-1],[.866,-.5],[.866,.5],[0,1],[-.866,.5],[-.866,-.5]],o=M.invert(C)-g[0],r=w.invert(C)-f[0],s=a.map(e=>[e[0]*o,e[1]*r]),c=t.map(t=>{const n=j(t),o=t.x,r=t.y;t.x=M.invert(t.x),t.y=w.invert(t.y);const c=n/z;return{customMark:S&&E.createElement("g",{transform:`translate(${o},${i[1]-r})`},S({d:Object.assign(Object.assign({},t),{binItems:t,percent:c,value:n,radius:C,hexCoordinates:a.map(e=>[e[0]*C,e[1]*C])}),margin:d,styleFn:u,classFn:p,renderFn:m,chartSize:h,adjustedSize:i})),_xyfCoordinates:s.map(e=>[e[0]+t.x,e[1]+t.y]),value:n,percent:c,data:t,parentSummary:e,centroid:!0}});x=[...x,...c]}),e?(x.forEach(e=>{e.x=e.data.x,e.y=e.data.y}),{type:"hexbin",processedData:!0,coordinates:x,binMax:z}):x}({summaryType:f,data:F[0],processedData:r&&!!r[0].processedData,preprocess:!1,finalXExtent:Y,finalYExtent:q,size:b,margin:x,styleFn:v,classFn:k,renderFn:j,chartSize:A}),z=qt(z,F)):f.type&&"heatmap"===f.type?(F=function({preprocess:e=!0,processedData:t=!1,summaryType:a,data:o,finalXExtent:r=[Math.min(...o.coordinates.map(e=>e.x)),Math.max(...o.coordinates.map(e=>e.x))],finalYExtent:s=[Math.min(...o.coordinates.map(e=>e.y)),Math.max(...o.coordinates.map(e=>e.y))],size:i,xScaleType:c=n.scaleLinear(),yScaleType:l=n.scaleLinear(),margin:d,styleFn:u,classFn:p,renderFn:y,chartSize:m}){if(t&&o)return o.coordinates;o.coordinates&&!o._xyfCoordinates&&(o._xyfCoordinates=o.coordinates.map(e=>[e.x,e.y]));const h=Array.isArray(o)?o:[o];let g,f=[];g=a.type?a:{type:g};const{binValue:b=e=>e.length,xBins:x=g.yBins||.05,yBins:v=x,xCellPx:k=!g.xBins&&g.xCellPx,yCellPx:j=!g.yBins&&g.yCellPx,customMark:A,binMax:S}=g,O=1>x?x:1/x,M=1>v?v:1/v,w=c.domain(r).range([0,i[0]]),C=l.domain(s).range([i[1],0]),P=[Math.ceil((k&&k/i[0]||O)*i[0]*10)/10,Math.ceil((j&&j/i[1]||M)*i[1]*10)/10];let z=-1/0;return h.forEach(e=>{const t=[],n=[];let a,o;for(let r=0;i[0]>Math.ceil(r);r+=P[0]){const s=w.invert(r),c=w.invert(r+P[0]);o=[],t.push(o);for(let t=0;i[1]>Math.ceil(t);t+=P[1]){const i=C.invert(t),l=C.invert(t+P[1]);a={gx:r,gy:t,gw:P[0],gh:P[1],x:(s+c)/2,y:(i+l)/2,binItems:[],value:0,_xyfCoordinates:[[s,i],[c,i],[c,l],[s,l]],parentSummary:e},o.push(a),n.push(a)}o.push(a)}t.push(o),e._xyfCoordinates.forEach((n,a)=>{const o=w(n[0]),r=C(n[1]),s=Math.floor(o/P[0]),i=Math.floor(r/P[1]);t[s][i]&&t[s][i].binItems.push(e.coordinates[a])}),n.forEach(e=>{e.value=b(e.binItems),z=Math.max(z,e.value)}),n.forEach(e=>{e.percent=e.value/z,e.customMark=A&&E.createElement("g",{transform:`translate(${e.gx},${e.gy})`},A({d:e,margin:d,styleFn:u,classFn:p,renderFn:y,chartSize:m,adjustedSize:i}))}),f=[...f,...n]}),S&&S(z),e?{type:"heatmap",processedData:!0,_baseData:[],_xyfCoordinates:[],data:[],bounds:[],x:0,y:0,coordinates:f,binMax:z}:f}({summaryType:f,data:F[0],processedData:r&&!!r[0].processedData,preprocess:!1,finalXExtent:Y,finalYExtent:q,size:b,margin:x,styleFn:v,classFn:k,renderFn:j,chartSize:A}),z=qt(z,F)):f.type&&"trendline"===f.type&&(F=function({preprocess:e=!1,summaryType:a,data:o,finalXExtent:r=[Math.min(...o.coordinates.map(e=>e.x)),Math.max(...o.coordinates.map(e=>e.x))],xScaleType:s=n.scaleLinear()}){if(e)return o[0].coordinates;let i,c=[];i=a.type?a:{type:i};const{regressionType:l="linear",order:d=2,precision:u=4,controlPoints:p=20,curve:y=t.curveCardinal}=i;let m=l;r[0]>=0||"logarithmic"!==l&&"power"!==l&&"exponential"!==l||(console.error(`Cannot use this ${l} regressionType type with value range that goes below 0, defaulting to linear`),m="linear"),o.coordinates&&!o._xyfCoordinates&&(o._xyfCoordinates=o.coordinates.map(e=>[e.x,e.y]));const h=Array.isArray(o)?o:[o],g=s.domain([0,1]).range(r);return c=[],h.forEach(e=>{const t=M.default[m](e._xyfCoordinates.map(e=>{let t=e[0],n=e[1];return"number"!=typeof t&&(t=t.getTime()),"number"!=typeof n&&(n=n.getTime()),[t,n]}),{order:d,precision:u}),n=1/p;let a=[0,1];if("linear"!==m){a=[];for(let e=0;1+n>e;e+=n)a.push(e)}const o=[];a.forEach(e=>{o.push(t.predict(g(e)))}),c.push({centroid:!1,customMark:void 0,data:e,parentSummary:e,value:t.string,r2:t.r2,curve:y,_xyfCoordinates:o})}),c}({summaryType:f,data:F[0],preprocess:r&&!!r[0].processedData,finalXExtent:Y}),z=qt(z,F)),S&&(D=D.filter(S),z=z.filter((e,t)=>!e.parentLine||S(e.parentLine,t,[]))),w&&(z=z.filter(w)),O&&(F=F.filter(O),z=z.filter((e,t)=>!e.parentSummary||O(e.parentSummary,t,[]))),{xExtent:Y,yExtent:q,projectedLines:D,projectedPoints:$,projectedSummaries:F,fullDataset:z,calculatedXExtent:W,calculatedYExtent:G}})({lineDataAccessor:ye.lineDataAccessor,summaryDataAccessor:ye.summaryDataAccessor,xAccessor:ye.xAccessor,yAccessor:ye.yAccessor,lineType:ye.lineType,summaryType:ye.summaryType,summaries:ye.summaries,points:I,lines:ye.lines,showLinePoints:B,showSummaryPoints:V,xExtent:z,yExtent:N,invertX:L,invertY:R,adjustedSize:ve,margin:be,summaryStyleFn:me,summaryClassFn:he,summaryRenderModeFn:ge,chartSize:b,defined:f,filterRenderedLines:Y,filterRenderedSummaries:X,filterRenderedPoints:K,annotations:Z})),({xScale:we,yScale:Ce}=Xt({xExtent:Ee,yExtent:Se,adjustedSize:ve,xScaleType:de.copy(),yScaleType:ue.copy()}))):(({xExtent:Ee,yExtent:Se,projectedLines:Q,projectedPoints:U,projectedSummaries:ie,fullDataset:le,calculatedXExtent:Ne,calculatedYExtent:$e}=a),ve[0]===a.adjustedSize[0]&&ve[1]===a.adjustedSize[1]?(we=a.xScale,Ce=a.yScale):({xScale:we,yScale:Ce}=Xt({xExtent:Ee,yExtent:Se,adjustedSize:ve,xScaleType:de,yScaleType:ue}))),Ee=Array.isArray(Oe.extent)&&2===Oe.extent.length?Oe.extent:Ee,Se=Array.isArray(Me.extent)&&2===Me.extent.length?Me.extent:Se;const Te={};let Le;if(fe&&(ze=[],Pe=fe.map((t,n)=>{let a=t.className||"";a+=" axis";let o,r=Ce;Te[t.orient]&&(t.baseline=t.baseline||!1),Te[t.orient]=!0,"top"===t.orient||"bottom"===t.orient?(a+=" x",r=we):a+=" y",a+=" "+t.orient,t.tickValues&&Array.isArray(t.tickValues)?o=t.tickValues:t.tickValues instanceof Function&&(o=t.tickValues(le,e.size,r));const s=[ve[0],ve[1]],i=ke({padding:t.padding,tickValues:o,scale:r,ticks:t.ticks,orient:t.orient,size:s,footer:t.footer,tickSize:t.tickSize,jaggedBase:t.jaggedBase}),c=E.createElement("g",{key:"axes-tick-lines-"+n,className:"axis "+a},Ae({axisParts:i,orient:t.orient,tickLineGenerator:t.tickLineGenerator,className:a,jaggedBase:t.jaggedBase,scale:r,showOutboundTickLines:t.showOutboundTickLines}),"under"===t.baseline&&je(t.orient,ve,t.className));return ze.push(c),E.createElement(Je,Object.assign({},t,{key:t.key||"axis-"+n,annotationFunction:t.axisAnnotationFunction,axisParts:i,size:s,margin:be,tickValues:o,scale:r,className:a,xyPoints:le}))})),s&&(Le=!0===s?{}:s,Q&&!Le.legendGroups)){const t=ye.lineType.type,n=[{styleFn:e.lineStyle,type:"string"==typeof t&&-1===["stackedarea","stackedpercent","bumparea"].indexOf(t)?"line":"fill",items:Q.map(e=>Object.assign({label:ye.lineIDAccessor(e)},e))}];Le.legendGroups=n}const Re=[];if(ye.summaryType.label&&ie)ie.forEach((e,t)=>{e.bounds&&(Array.isArray(e.bounds)?e.bounds:[e.bounds]).forEach(n=>{const a="function"==typeof ye.summaryType.label?ye.summaryType.label(e):ye.summaryType.label;if(a&&null!==a){const o=a.position||"center",r=[we(n[o][0]),Ce(n[o][1])],s=a.content||(e=>e.value||e.id||t);Re.push({x:r[0],y:r[1],dx:a.dx,dy:a.dy,className:a.className,type:a.type||"callout",note:a.note||{title:s(e)},subject:a.subject||{text:s(e)},connector:a.connector})}})});else if(ye.summaryType.showSlope&&ie&&ie[0]){const e=ie[0],t=e._xyfCoordinates[0],n=e._xyfCoordinates[e._xyfCoordinates.length-1];Re.push({x:t[0],y:t[1],x1:n[0],x2:n[1],type:"trendline-annotation",value:e.value,r2:e.r2})}const Be=void 0!==ye.lineType.type&&"string"==typeof ye.lineType.type&&Kt[ye.lineType.type],Ge={lines:Object.assign(Object.assign({accessibleTransform:(e,t)=>Object.assign(Object.assign({},e[t].data[e[t].data.length-1]),{type:"frame-hover"}),data:Q},r.lineStyleFns(C,c,P,m)),{customMark:j,type:ye.lineType,defined:f,renderKeyFn:ye.renderKeyFn,ariaLabel:Be,axesData:fe,behavior:Ie}),summaries:{accessibleTransform:(e,t)=>Object.assign(Object.assign({},e[t]),{type:"frame-hover"}),data:ie,styleFn:me,classFn:he,renderMode:ge,canvasRender:r.summaryCanvasRender(g),customMark:S,type:ye.summaryType,renderKeyFn:ye.renderKeyFn,behavior:We},points:Object.assign(Object.assign({accessibleTransform:(e,t)=>Object.assign({type:"frame-hover"},e[t].data||e[t]),data:U},r.pointStyleFns(l,u,d,h)),{customMark:A,renderKeyFn:ye.renderKeyFn,showLinePoints:B,behavior:Ve})};let _e;return Oe.onChange&&a.calculatedXExtent.join(",")!==Ne.join(",")&&Oe.onChange(Ne),Me.onChange&&a.calculatedYExtent.join(",")!==$e.join(",")&&Me.onChange($e),q&&ie&&(_e=We({xScale:we,yScale:Ce,data:ie}).map((e,t)=>Object.assign(Object.assign({},e.props),{style:{fillOpacity:0},overlayData:ie&&ie[t]}))),{lineData:e.lines,pointData:e.points,summaryData:e.summaries,dataVersion:e.dataVersion,projectedLines:Q,projectedPoints:U,projectedSummaries:ie,canvasDrawing:[],fullDataset:le,adjustedPosition:xe,adjustedSize:ve,backgroundGraphics:e.backgroundGraphics,foregroundGraphics:e.foregroundGraphics,axesData:fe,axes:Pe,axesTickLines:ze,renderNumber:a.renderNumber+1,xScale:we,yScale:Ce,xAccessor:ye.xAccessor,yAccessor:ye.yAccessor,xExtent:[void 0===Ee[0]?Ne[0]:Ee[0],void 0===Ee[1]?Ne[1]:Ee[1]],yExtent:[void 0===Se[0]?$e[0]:Se[0],void 0===Se[1]?$e[1]:Se[1]],calculatedXExtent:Ne,calculatedYExtent:$e,margin:be,legendSettings:Le,areaAnnotations:Re,xyFrameRender:Ge,size:b,annotatedSettings:ye,overlay:_e,props:e}},Qt=()=>({}),Ut=()=>"",Jt=["lines","points","summaries","xAccessor","yAccessor","lineDataAccessor","areaDataAccessor","summaryDataAccessor","lineIDAccessor","lineType","summaryType","showLinePoints","showSummaryPoints","defined","xExtent","yExtent","xScaleType","yScaleType","invertX","invertY","filterRenderedLines","filterRenderedPoints","filterRenderedSummaries"],en=["size","margin","title","axes",...Jt],tn=["data","oAccessor","rAccessor","dataAccessor","type","summaryType","connectorType","projection","orient","oScaleType","rScaleType","oExtent","rExtent","invertO","invertR","oPadding","oSort","dynamicColumnWidth","rBaseline","summaryPosition","renderFn"],nn=["size","margin","title","axes","oLabel",...tn],an=["graph","nodes","edges","nodeIDAccessor","sourceAccessor","targetAccessor","nodeSizeAccessor","edgeWidthAccessor","networkType","edgeType","filterRenderedNodes","renderFn"],on=["size","margin","title","nodeLabels",...an];function rn(t,n,a){let o=e.useRef(a),r=e.useMemo(()=>{let e=o.current,a=t(n,e);return null!=a?Object.assign(Object.assign({},e),a):e},[n]);return o.current=r,r}function sn(t,n){let a=e.useRef();a.current=[t,n],e.useEffect(()=>()=>{const[e,t]=a.current,n=e.onUnmount;n&&n(e,t)},[])}let cn="";for(let e=32;e>0;--e)cn+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];const ln={y:ee,x:J,yMiddle:te,yTop:ne,yBottom:ae,xMiddle:oe,xTop:re,xBottom:se},dn={annotations:[],foregroundGraphics:void 0,size:[500,500],className:"",lineType:"line",name:"xyframe",dataVersion:void 0};function un(a){const o=Object.assign(Object.assign({},dn),a),r=e.useRef({annotatedSettings:C.default((e,t,n,a,o,r,s,i)=>({xAccessor:Ht(e,e=>e[0]),yAccessor:Ht(t,e=>e[1]),summaryDataAccessor:Ht(n,e=>Array.isArray(e)?e:e.coordinates),lineDataAccessor:Ht(a,e=>Array.isArray(e)?e:e.coordinates),renderKeyFn:_t(o,(e,t)=>"line-"+t,!0),lineIDAccessor:_t(i,e=>e.semioticLineID)})),marginCalc:C.default((e,t,n,a)=>{const o=at({margin:e,axes:t,title:n,size:a}),{adjustedPosition:r,adjustedSize:s}=st({size:a,margin:o});return{margin:o,adjustedPosition:r,adjustedSize:s}}),summaryStyleFns:C.default((e,t,n)=>({summaryStyleFn:_t(e,Qt,!0),summaryClassFn:_t(t,Ut,!0),summaryRenderModeFn:_t(n,void 0,!0)})),lineStyleFns:C.default((e,t,n,a)=>({styleFn:_t(e,Qt,!0),classFn:_t(t,Ut,!0),renderMode:_t(n,void 0,!0),canvasRender:_t(a,void 0,!0)})),pointStyleFns:C.default((e,t,n,a)=>({styleFn:_t(e,Qt,!0),classFn:_t(t,Ut,!0),renderMode:_t(n,void 0,!0),canvasRender:_t(a,void 0,!0)})),summaryCanvasRender:C.default(e=>_t(e,void 0,!0))}),i={size:[500,500],dataVersion:void 0,lineData:void 0,pointData:void 0,summaryData:void 0,projectedLines:void 0,projectedPoints:void 0,projectedSummaries:void 0,fullDataset:[],adjustedPosition:[0,0],adjustedSize:[500,500],backgroundGraphics:null,foregroundGraphics:null,axesData:void 0,axes:void 0,axesTickLines:void 0,renderNumber:0,margin:{top:0,bottom:0,left:0,right:0},calculatedXExtent:[0,0],calculatedYExtent:[0,0],xAccessor:[e=>e.x],yAccessor:[e=>e.y],xExtent:[0,0],yExtent:[0,0],areaAnnotations:[],xScale:n.scaleLinear(),yScale:n.scaleLinear(),title:null,legendSettings:void 0,xyFrameRender:{},canvasDrawing:[],annotatedSettings:{xAccessor:void 0,yAccessor:void 0,summaryDataAccessor:void 0,lineDataAccessor:void 0,renderKeyFn:void 0,lineType:void 0,summaryType:void 0,lineIDAccessor:void 0,summaries:void 0,lines:void 0,title:void 0,xExtent:void 0,yExtent:void 0},overlay:void 0,props:o},c=e.useMemo(()=>Object.assign(Object.assign({},i),Zt(o,i,!0,r.current)),[]),l=rn((e,t)=>function(e,t,n){const{props:a}=t,{xExtent:o=[],yExtent:r=[],size:s,dataVersion:i,lineData:c,summaryData:l,pointData:d}=t,{xExtent:u,yExtent:p,size:y,dataVersion:m,lines:h,summaries:g,points:f}=e,b=Bt(u),x=Bt(p),v=o[0]!==b[0]&&void 0!==b[0]||r[0]!==x[0]&&void 0!==x[0]||o[1]!==b[1]&&void 0!==b[1]||r[1]!==x[1]&&void 0!==x[1],k=c!==h,j=l!==g,A=d!==f,S=!i&&Jt.some(t=>a[t]!==e[t]),E=!i&&en.some(t=>a[t]!==e[t]),O=s[0]!==y[0]||s[1]!==y[1];return i&&i!==m||!t.fullDataset||k||j||A||v||S?Zt(e,t,!0,n):O||E?Zt(e,t,!1,n):null}(e,t,r.current),o,c),{size:u,className:p,annotationSettings:y,annotations:m,additionalDefs:h,hoverAnnotation:g,interaction:f,customClickBehavior:b,customHoverBehavior:x,customDoubleClickBehavior:v,canvasPostProcess:k,canvasSummaries:j,canvasPoints:A,canvasLines:S,afterElements:O,beforeElements:M,renderOrder:w,matte:P,frameKey:z,showLinePoints:N,sketchyRenderingEngine:$,disableContext:D,frameRenderOrder:F,disableCanvasInteraction:T,interactionSettings:L,disableProgressiveRendering:B,transition:V}=o,{backgroundGraphics:I,foregroundGraphics:W,adjustedPosition:G,adjustedSize:_,margin:H,axes:q,axesTickLines:Y,xScale:X,yScale:K,fullDataset:Z,dataVersion:Q,areaAnnotations:U,legendSettings:ne,xyFrameRender:ae,annotatedSettings:re,overlay:se}=l;sn(o,l);const ie=e.useRef(o);ie.current=o;const ce=e.useRef(l);ce.current=l;const le=e.useCallback(e=>function(e,n,{d:a,i:o,lines:r,summaries:i,points:c,annotationLayer:l}){const{showLinePoints:u,defined:p,margin:y,size:m,svgAnnotationRules:h}=e,{xyFrameRender:g,xScale:f,yScale:b,xAccessor:x,yAccessor:v,axesData:k,annotatedSettings:j}=n;let A=[];const S=j.lineIDAccessor;if("highlight"===a.type)return(({d:e,i:n,points:a={data:[]},lines:o={data:[],type:{}},summaries:r={data:[]},idAccessor:s,xScale:i,yScale:c,xyFrameRender:l,defined:d})=>{let u;const p=s(Object.assign(Object.assign({},e),e.data),n);void 0!==p?u=p:e.parentLine&&void 0!==s(e.parentLine,n)?u=s(e.parentLine,n):e.parentSummary&&void 0!==s(e.parentSummary,n)&&(u=s(e.parentSummary,n));const y=a.data.filter((e,t)=>s(Object.assign(Object.assign({},e),e.data),t)===u).map((t,n)=>{const a=l.points.styleFn(Object.assign(Object.assign({},t),t.data)),o="function"==typeof e.style?e.style(Object.assign(Object.assign({},t),t.data),n):e.style||{};return E.createElement("circle",{key:"highlight-point-"+n,cx:i(t.x),cy:c(t.y),r:5,fill:"none",stroke:"currentColor",strokeWidth:2,style:Object.assign(Object.assign({},a),o),className:"highlight-annotation "+(e.class&&"function"==typeof e.class&&e.class(Object.assign(Object.assign({},t),t.data),n)||e.class&&e.class||"")})}),m=t.area().x(e=>i(e.x)).y0(e=>c(e.yBottom)).y1(e=>c(e.yTop)),h=o.type.interpolator||o.type.curve,g="string"==typeof h?Re[h]:h;g&&m.curve(g),d&&m.defined((e,t)=>d(e.data,t));const f=o.data.filter((e,t)=>s(e,t)===u).map((t,n)=>{const a=l.lines.styleFn(t,n),o="function"==typeof e.style?e.style(t,n):e.style||{};return E.createElement("path",{className:"highlight-annotation "+(e.class&&"function"==typeof e.class&&e.class(t,n)||e.class&&e.class||""),key:"highlight-summary-"+n,d:m(t.data),fill:"none",stroke:"currentColor",strokeWidth:1,style:Object.assign(Object.assign({},a),o)})});return[...r.data.filter((e,t)=>s(e,t)===u).map((t,n)=>{const a=l.summaries.styleFn(t,n),o="function"==typeof e.style?e.style(t,n):e.style||{};return E.createElement("path",{className:"highlight-annotation "+(e.class&&"function"==typeof e.class&&e.class(t,n)||e.class&&e.class||""),key:"highlight-summary-"+n,d:"M"+t.coordinates.join("L"),fill:"none",stroke:"currentColor",strokeWidth:1,style:Object.assign(Object.assign({},a),o)})}),...f,...y]})({d:a,i:o,idAccessor:S,lines:r,summaries:i,points:c,xScale:f,yScale:b,xyFrameRender:g,defined:p});const O=a.coordinates?a:Rt({point:a,idAccessor:S,lines:r,xScale:f,projectedX:J,xAccessor:x});if(!O)return null;const M=at({margin:y,axes:k,title:j.title,size:m}),{adjustedPosition:w,adjustedSize:C}=st({size:m,margin:M});O.coordinates||O.bounds?O.bounds||(A=O.coordinates.reduce((e,t)=>{const n=Lt({point:t,projectedXMiddle:oe,projectedX:J,xAccessor:x,xScale:f}),a=Tt({point:t,projectedY:ee,yAccessor:v,yScale:b});return Array.isArray(a)?[...e,[n,Math.min(...a)],[n,Math.max(...a)]]:Array.isArray(n)?[...e,[Math.min(...n),a],[Math.max(...n),a]]:[...e,[n,a]]},[])):A=[Lt({point:O,projectedXMiddle:oe,projectedX:J,xAccessor:x,xScale:f})||0,Tt({point:O,projectedY:ee,yAccessor:v,yScale:b,showLinePoints:u})||0];const{voronoiHover:P}=l,z=h&&h({d:O,i:o,screenCoordinates:A,xScale:f,yScale:b,xAccessor:x,yAccessor:v,xyFrameProps:e,xyFrameState:n,summaries:i,points:c,lines:r,voronoiHover:P,adjustedPosition:w,adjustedSize:C,annotationLayer:l});return void 0!==h&&null!==z?z:"desaturation-layer"===O.type?Et({style:O.style instanceof Function?O.style(O,o):O.style,size:C,i:o,key:O.key}):"xy"===O.type||"frame-hover"===O.type?(({screenCoordinates:e,i:t,d:n})=>{let a;n.color&&(a={fill:n.color});const o=E.createElement("circle",{className:`annotation ${n.type} ${n.className||""} `,key:"annotationpoint"+t,cx:e[0],cy:e[1],style:a,fill:"none",stroke:"currentColor",r:5});let r;return"xy"===n.type&&(r=E.createElement("text",{key:`${n.label}annotationtext${t}`,x:e[0],y:10+e[1],"data-testid":"annotation-xy-label",className:`annotation annotation-xy-label ${n.className||""} `},n.label)),[o,r]})({d:O,i:o,screenCoordinates:A}):"function"==typeof O.type||pn.has(O.type)?(({screenCoordinates:e,d:t,i:n})=>{const a=Object.assign({dx:0,dy:0,note:{label:t.label,orientation:t.orientation,align:t.align},connector:{end:"arrow"}},t,{type:t.type,screenCoordinates:e,i:n});return a.x=a.fixedX?a.fixedX:e[0],a.y=a.fixedY?a.fixedY:e[1],E.createElement(R,{key:t.key||"annotation-"+n,noteData:a})})({d:O,screenCoordinates:A,i:o}):"enclose"===O.type?(({screenCoordinates:e,d:t,i:n})=>{const a=d.packEnclose(e.map(e=>({x:e[0],y:e[1],r:2})));return jt({d:t,circle:a,i:n})})({d:O,screenCoordinates:A,i:o}):"enclose-rect"===O.type?(({d:e,i:t,screenCoordinates:n})=>{const a=n.map(e=>({x0:e.x0=e[0],x1:e.x1=e[0],y0:e.y0=e[1],y1:e.y1=e[1]}));return At({bboxNodes:a,d:e,i:t})})({d:O,screenCoordinates:A,i:o}):"enclose-hull"===O.type?(({screenCoordinates:e,d:t,i:n})=>St({points:e,d:t,i:n}))({d:O,screenCoordinates:A,i:o}):"x"===O.type?(({screenCoordinates:e,d:t,i:n,adjustedSize:a})=>{const o=Object.assign({dx:50,dy:20,y:0,note:{label:t.label},connector:{end:"arrow"}},t,{type:"xy-threshold",x:e[0],subject:{x:e[0],y1:0,y2:a[1]},i:n});return E.createElement(R,{key:t.key||"annotation-"+n,noteData:o})})({d:O,screenCoordinates:A,i:o,adjustedSize:C}):"y"===O.type?(({screenCoordinates:e,d:t,i:n,adjustedSize:a,adjustedPosition:o})=>{const r=Object.assign({dx:50,dy:-20,x:25*n,note:{label:t.label},connector:{end:"arrow"}},t,{type:"xy-threshold",y:e[1],subject:{y:e[1],x1:0,x2:a[0]+o[0]},i:n});return E.createElement(R,{key:t.key||"annotation-"+n,noteData:r})})({d:O,screenCoordinates:A,i:o,adjustedSize:C,adjustedPosition:w}):"bounds"===O.type?(({d:e,i:t,adjustedSize:n,xAccessor:a,yAccessor:o,xScale:r,yScale:s})=>{const i=Ot(a,e.bounds[0]),c=Ot(o,e.bounds[0]),l=Ot(a,e.bounds[1]),d=Ot(o,e.bounds[1]),u=i?r(i):0,p=c?s(c):n[1],y=l?r(l):n[0],m=d?s(d):0,h=Object.assign({dx:250,dy:-20,note:{label:e.label},connector:{end:"arrow"}},e,{type:"callout-rect",x:Math.min(u,y),y:Math.min(p,m),subject:{width:Math.abs(y-u),height:Math.abs(p-m)},i:t});return E.createElement(R,{key:e.key||"annotation-"+t,noteData:h})})({d:O,i:o,adjustedSize:C,xAccessor:x,yAccessor:v,xScale:f,yScale:b}):"line"===O.type?(({d:e,i:n,screenCoordinates:a})=>{const o=t.line().x(e=>e[0]).y(e=>e[1])(a);return[E.createElement("path",{key:`${e.label}annotationline${n}`,d:o,className:`annotation annotation-line ${e.className||""} `}),E.createElement("text",{key:`${e.label}annotationlinetext${n}`,x:(a[0][0]+a[1][0])/2,y:(a[0][1]+a[1][1])/2,className:`annotation annotation-line-label ${e.className||""} `},e.label)]})({d:O,i:o,screenCoordinates:A}):"area"===O.type?(({d:e,i:t,xScale:n,xAccessor:a,yScale:o,yAccessor:r,annotationLayer:i})=>{const c=`M${e.coordinates.map(e=>[n(Ot(a,e)),o(Ot(r,e))]).join("L")}Z`,l=s.extent(e.coordinates.map(e=>n(Ot(a,e)))),d=s.extent(e.coordinates.map(e=>o(Ot(r,e)))),u=(l[0]+l[1])/2,p=(d[0]+d[1])/2;return[E.createElement("path",{key:`${e.label}-annotation-area-${t}`,d:c,className:`annotation annotation-area ${e.className||""} `}),E.createElement("text",{key:`${e.label}-annotationtext-${t}`,x:u,y:p,transform:`translate(${i.position})`,className:`annotation annotation-area-label ${e.className||""} `,style:{textAnchor:"middle"}},e.label)]})({d:O,i:o,xScale:f,xAccessor:x,yScale:b,yAccessor:v,annotationLayer:l}):"horizontal-points"===O.type?wt({d:O,lines:r.data,points:c.data,xScale:f,yScale:b,pointStyle:c.styleFn}):"vertical-points"===O.type?Ct({d:O,lines:r.data,points:c.data,xScale:f,yScale:b,pointStyle:c.styleFn}):null}(ie.current,ce.current,e),[]),de=e.useCallback(e=>function(e,t,{d:n,i:a,lines:o,summaries:r,points:s,annotationLayer:i}){const{xAccessor:c,yAccessor:l,xScale:d,yScale:u,annotatedSettings:p,axesData:y}=t,{voronoiHover:m}=i;let h=[];const{tooltipContent:g,optimizeCustomTooltipPosition:f,htmlAnnotationRules:b,size:x,showLinePoints:v,margin:k}=e,j=p.lineIDAccessor,A=Rt({point:n,idAccessor:j,lines:o,xScale:d,projectedX:J,xAccessor:c});if(!A)return null;const S=A[oe]||A[J]||Ot(c,A),O=A[te]||A[ee]||Ot(l,A),M=S&&S.toString?""+S:S,w=O&&O.toString?""+O:O,C=at({margin:k,axes:y,title:p.title,size:x}),{adjustedPosition:P,adjustedSize:z}=st({size:x,margin:C});h=A.coordinates?A.coordinates.map(e=>{const t=Rt({point:Object.assign({x:0,y:0},e),idAccessor:j,lines:o,xScale:d,projectedX:J,xAccessor:c});return[(d(Ot(c,A))||0)+P[0],(Tt({point:t,projectedY:ee,yAccessor:l,yScale:u})||0)+P[1]]}):[d(S)||0,Tt({point:A,projectedY:ee,showLinePoints:v,yAccessor:l,yScale:u})||0];const N=b&&b({d:A,i:a,screenCoordinates:h,xScale:d,yScale:u,xAccessor:c,yAccessor:l,xyFrameProps:e,xyFrameState:t,summaries:r,points:s,lines:o,voronoiHover:m,adjustedPosition:P,adjustedSize:z,annotationLayer:i});if(b&&null!==N)return N;if("frame-hover"===A.type){let e=E.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},E.createElement("p",{key:"html-annotation-content-1"},M),E.createElement("p",{key:"html-annotation-content-2"},w),A.percent?E.createElement("p",{key:"html-annotation-content-3"},Math.floor(1e3*A.percent)/10,"%"):null);return"frame-hover"===A.type&&g&&(e=f?E.createElement(kt,{tooltipContent:g,tooltipContentArgs:A}):g(A)),(({content:e,screenCoordinates:t,i:n,d:a,adjustedSize:o})=>{const r={position:"absolute",top:t[1]+"px"};return o&&t[0]>o[0]/2?r.right=o[0]-t[0]+"px":r.left=t[0]+"px",E.createElement("div",{key:"xylabel-"+n,className:`annotation annotation-xy-label ${a.className||""} `,style:r},e)})({content:e,screenCoordinates:h,i:a,d:A,adjustedSize:z})}return null}(ie.current,ce.current,e),[]),ue=e.useMemo(()=>U.length>0?[...m,...U]:m,[m,U]),pe=e.useMemo(()=>"string"==typeof N?N:void 0,[N]),ye=e.useMemo(()=>!!(j||A||S),[j,A,S]);return E.createElement(xt,{name:"xyframe",renderPipeline:ae,adjustedPosition:G,size:u,projectedCoordinateNames:ln,xScale:X,yScale:K,axes:q,axesTickLines:Y,title:re.title,dataVersion:Q,matte:P,className:p,adjustedSize:_,frameKey:z||cn,additionalDefs:h,hoverAnnotation:g,defaultSVGRule:le,defaultHTMLRule:de,annotations:ue,annotationSettings:y,legendSettings:ne,projectedYMiddle:te,interaction:f,customClickBehavior:b,customHoverBehavior:x,customDoubleClickBehavior:v,points:Z,showLinePoints:pe,margin:H,backgroundGraphics:I,foregroundGraphics:W,beforeElements:M,afterElements:O,disableContext:D,canvasPostProcess:k,canvasRendering:ye,renderOrder:w,overlay:se,sketchyRenderingEngine:$,frameRenderOrder:F,disableCanvasInteraction:T,interactionSettings:L,disableProgressiveRendering:B,transition:V})}const pn=new Set(["label","callout","callout-circle","callout-rect","callout-custom","xy-threshold","bracket"]);un.displayName="XYFrame";const yn=E.memo(un),mn={category10:h.schemeCategory10,tableau10:h.schemeTableau10,set3:h.schemeSet3,blues:h.interpolateBlues,reds:h.interpolateReds,greens:h.interpolateGreens,oranges:h.interpolateOranges,purples:h.interpolatePurples,viridis:h.interpolateViridis,plasma:h.interpolatePlasma},hn=h.schemeCategory10;function gn(e,t,n){if("function"==typeof t)return t(e);const a=e[t];return n?n(a):hn[Math.abs(function(e){let t=0;for(let n=0;e.length>n;n++)t=(t<<5)-t+e.charCodeAt(n),t&=t;return Math.abs(t)}(a+""))%hn.length]}function fn(e,t,a="category10"){const o=Array.from(new Set(e.map(e=>e[t]))),r=o.every(e=>"number"==typeof e||!isNaN(Number(e)));if(Array.isArray(a))return n.scaleOrdinal().domain(o).range(a).unknown("#999");const s=mn[a]||mn.category10;if(r&&"function"==typeof s)return e=>s(Number(e)/Math.max(...o.map(Number)));{const e=Array.isArray(s)?s:hn;return n.scaleOrdinal().domain(o).range(e).unknown("#999")}}function bn(e,t,n=[3,20],a){let o;if(o="function"==typeof t?t(e):e[t],!a)return o;const[r,s]=a,[i,c]=n;return s===r?(i+c)/2:i+(o-r)/(s-r)*(c-i)}const xn="#007bff";function vn(e){return"function"==typeof e?e:t=>t[e]}function kn(t,n,a="category10"){return e.useMemo(()=>{if(n&&"function"!=typeof n)return fn(t,n,a)},[t,n,a])}function jn(t,n,a){return e.useMemo(()=>{if(!n)return t;const e=[...t];if("function"==typeof n)return e.sort(n);const o=vn(a);return e.sort("asc"===n?(e,t)=>o(e)-o(t):(e,t)=>o(t)-o(e))},[t,n,a])}function An({data:e,colorBy:t,colorScale:n,getColor:a,strokeColor:o,strokeWidth:r}){return{legendGroups:[{styleFn:e=>{const t={fill:e.color,stroke:e.color};return void 0!==o&&(t.stroke=o),void 0!==r&&(t.strokeWidth=r),t},type:"fill",items:Array.from(new Set(e.map(e=>"function"==typeof t?t(e):e[t]))).map(o=>{const r=e.find("function"==typeof t?e=>t(e)===o:e=>e[t]===o),s=r?a(r,t,n):n?n(o):"#000000";return{label:o+"",color:s}}),label:""}]}}const Sn={background:"rgba(0, 0, 0, 0.85)",color:"white",padding:"8px 12px",borderRadius:"4px",fontSize:"14px",lineHeight:"1.5",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)",pointerEvents:"none",maxWidth:"300px",wordWrap:"break-word"};function En(e,t){return"function"==typeof t?t(e):e[t]}function On(e,t){return t?t(e):null==e?"":"number"==typeof e?e.toLocaleString():e instanceof Date?e.toLocaleDateString():"object"==typeof e&&null!==e?void 0!==e.id?e.id+"":void 0!==e.name?e.name+"":JSON.stringify(e):e+""}function Mn(e){return!0===e||("function"==typeof e||!1!==e&&void 0!==e)&&e}function wn({componentName:e,message:t,width:n,height:a}){return E.createElement("div",{role:"alert",style:{width:n,height:Math.max(a,120),display:"flex",alignItems:"center",justifyContent:"center",border:"1px dashed rgba(128, 128, 128, 0.4)",borderRadius:8,background:"rgba(128, 128, 128, 0.04)",padding:24,boxSizing:"border-box"}},E.createElement("div",{style:{textAlign:"center",maxWidth:400}},E.createElement("div",{style:{fontSize:13,fontWeight:600,color:"rgba(128, 128, 128, 0.7)",marginBottom:6,fontFamily:"monospace"}},e),E.createElement("div",{style:{fontSize:14,color:"rgba(128, 128, 128, 0.9)",lineHeight:1.5}},t)))}function Cn({data:e,accessors:t,requiredProps:n}){if(n)for(const[e,t]of Object.entries(n))if(null==t)return e+" is required. Provide a field name or function.";if(!e||!Array.isArray(e)||0===e.length)return"No data provided. Pass a non-empty array to the data prop.";if(t){const n=e[0];if(n&&"object"==typeof n)for(const[e,a]of Object.entries(t))if(a&&"string"==typeof a&&!(a in n))return`${e} "${a}" not found in data. Available fields: ${Object.keys(n).join(", ")}.`}return null}function Pn({data:e,dataLabel:t="data"}){return null==e?`No ${t} provided. Pass a hierarchical data object to the ${t} prop.`:null}function zn({nodes:e,edges:t,nodesRequired:n=!1,edgesRequired:a=!0,accessors:o}){if(a&&(!t||!Array.isArray(t)||0===t.length))return"No edges provided. Pass a non-empty array to the edges prop.";if(n&&(!e||!Array.isArray(e)||0===e.length))return"No nodes provided. Pass a non-empty array to the nodes prop.";if(o&&e&&e.length>0){const t=e[0];if(t&&"object"==typeof t)for(const[e,n]of Object.entries(o))if(n&&"string"==typeof n&&!(n in t))return`${e} "${n}" not found in node data. Available fields: ${Object.keys(t).join(", ")}.`}return null}const Nn={linear:t.curveLinear,monotoneX:t.curveMonotoneX,monotoneY:t.curveMonotoneY,step:t.curveStep,stepAfter:t.curveStepAfter,stepBefore:t.curveStepBefore,basis:t.curveBasis,cardinal:t.curveCardinal,catmullRom:t.curveCatmullRom},$n={linear:t.curveLinear,monotoneX:t.curveMonotoneX,monotoneY:t.curveMonotoneY,step:t.curveStep,stepAfter:t.curveStepAfter,stepBefore:t.curveStepBefore,basis:t.curveBasis,cardinal:t.curveCardinal,catmullRom:t.curveCatmullRom},Dn={linear:t.curveLinear,monotoneX:t.curveMonotoneX,monotoneY:t.curveMonotoneY,step:t.curveStep,stepAfter:t.curveStepAfter,stepBefore:t.curveStepBefore,basis:t.curveBasis,cardinal:t.curveCardinal,catmullRom:t.curveCatmullRom},Fn=(e,t)=>{const n=e(t);return n&&n.toString&&""+n||n};function Tn(e,t,n,a){const o=(a-90)*Math.PI/180;return{x:e+n*Math.cos(o),y:t+n*Math.sin(o)}}function Ln({column:e}){return E.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},E.createElement("p",{key:"or-annotation-1"},e.name),E.createElement("p",{key:"or-annotation-2"},(100*e.pct).toFixed(0)+"%"))}const Rn=({d:e,projectedColumns:t,oAccessor:n,summaryType:a,type:o,projection:r,adjustedPosition:i,adjustedSize:c})=>{const l="object"==typeof e.column?e.column:t[e.facetColumn]||t[Ot(n,e)];if(!l)return{coordinates:[0,0],pieces:void 0,column:void 0};const d=l.pieceData||l.pieces,u=a.type&&"none"!==a.type||["swarm","point","clusterbar","timeline"].find(e=>e===o.type)?s.max(d.map(e=>e.scaledValue)):"horizontal"===r?s.max(d.map(e=>0>e.value?e.bottom:e.scaledValue+e.bottom)):s.min(d.map(e=>0>e.value?e.bottom:e.bottom-e.scaledValue));let p=l.middle+i[0],y=a.type&&"none"!==a.type||["swarm","point","clusterbar","timeline"].find(e=>e===o.type)?c[1]-u:u;if(y+=10,"horizontal"===r)y=l.middle,p=u+i[0];else if("radial"===r){const{pieArc:e}=l,{translate:t,outerPoint:n,centroid:a}=e;p=(a[0]+n[0])/2+t[0],y=(a[1]+n[1])/2+t[1]}return{coordinates:[p,y],pieces:d,column:l}},Bn=(e,t,n)=>{const a=e(n),o=""===a&&n.rName?n.rName:a,r=t&&t.pieceData.filter(t=>t.rName===o||e(t.data)===o);if(""===o||void 0===r||!1===r||1!==r.length)return n;const s=r[0];return s&&["type","label","note","connector","disabled","color","subject"].forEach(e=>{n[e]&&(s[e]=n[e])}),s},Vn=({p:e,adjustedSize:t,rScale:n,oColumn:a,rAccessor:o,idPiece:r,projection:s,rScaleType:i})=>{const c=Ot(o,e)||e.value,l=Array.isArray(c)?Math.max(...c):c;let d;if(d=a?a.middle:0,a&&"radial"===s)return we([t[0]/2,t[1]/2],a.pct_middle,r&&(void 0===r.x?r.scaledValue:r.x)?r.x/2||(r.bottom+r.scaledValue/2)/2:l/2);if("horizontal"===s)return[r&&r.scaledEndValue?r.scaledEndValue:r&&r.scaledValue?0>r.value?r.bottom:r.bottom+r.scaledValue:n(l),d];const u=i.copy().domain(n.domain()).range(n.range().reverse());return[d,r&&(void 0===r.x?r.scaledValue:r.x)?void 0===r.y?0>r.value?r.bottom:r.bottom-r.scaledValue:r.y:u(l)]};function In(e,t,n){return E.createElement(Je,{label:e.label,key:e.key||"orframe-summary-axis-"+t,orient:e.orient,size:e.size,ticks:e.ticks,tickSize:e.tickSize,tickFormat:e.tickFormat,tickValues:e.tickValues,rotate:e.rotate,scale:n,className:e.className})}const Wn=2*Math.PI,Gn=({type:e,ordset:a,adjustedSize:o,piece:r,i:s})=>{let{innerRadius:i}=e;const{offsetAngle:c=0,angleRange:l=[0,360]}=e,d=c/360,u=l.map(e=>e/360),p=u[1]-u[0],y=1>p?n.scaleLinear().domain([0,1]).range(u):e=>e;let m="clusterbar"===e.type?0:"timeline"===e.type?r.scaledValue/2:r.bottom/2,h="clusterbar"===e.type?r.scaledValue/2:"timeline"===e.type?r.scaledEndValue/2:r.scaledValue/2+r.bottom/2;if(i){i=parseInt(i,10);const e=o[0]/2,t=(e-i)/e;m=m*t+i,h=h*t+i}const g=t.arc().innerRadius(m).outerRadius(h),f=("clusterbar"===e.type?(a.pct-a.pct_padding)/a.pieceData.length:a.pct)*p,b=y("clusterbar"===e.type?a.pct_start+s/a.pieceData.length*(a.pct-a.pct_padding):1===a.pct?0:a.pct_start+d),x=1===a.pct?u[1]:Math.max(b,b+f-a.pct_padding/2),v=b*Wn,k=x*Wn,j=g({startAngle:v,endAngle:k}),A=g.centroid({startAngle:v,endAngle:k}),S=o[0]/2,E=o[1]/2,O=A[0]+S,M=A[1]+E,w=we([0,0],(b+x)/2,r.scaledValue/2),C=`translate(${S},${E})`;return{xPosition:O,yPosition:M,xy:{arcGenerator:g,startAngle:v,endAngle:k,dx:w[0],dy:w[1]},translate:C,tx:S,ty:E,markProps:{markType:"path",d:j,transform:C}}},_n=({type:e,projection:t,finalHeight:n,finalWidth:a,styleFn:o,classFn:r})=>(s,i,c)=>{const l="string"==typeof e.icon?e.icon:e.icon(s.data,i),{iconPadding:d=1,resize:u="auto"}=e,p=P.default(l),y=[0-p.x1+d,0-p.y1+d];p.height+=2*d,p.width+=2*d;const m=[];let h=p.height,g=1,f=1;const b="horizontal"===t?n:a,x="horizontal"===t?p.height:p.width,v="horizontal"===t?p.width:p.height,k="horizontal"===t?c.width:c.height,j="horizontal"===t?c.height:c.width;"auto"===u?(h=b/x,1>h?f=h:(g=Math.floor(h),f=1+(h-g)/g)):"fixed"===u&&(f=b/x);const A=p.height*f,S=v*f,O=x*f;y[0]=y[0]*f,y[1]=y[1]*f;const M=`iso-clip-${i}-${Math.random()}`,w=`url(#${M})`;if(c.width>0){m.push(E.createElement("clipPath",{key:M,id:M},E.createElement("rect",{x:0,y:0,width:c.width,height:c.height})));const e=[],n="horizontal"===t?S:-S,a="horizontal"===t?(e,t)=>t>e:(e,t,n)=>e>0+n;for(let d="horizontal"===t?0:c.height-A;a(d,k,n);d+=n)for(let n=0;j>n;n+=O)e.push(E.createElement("path",{key:`icon-${d}-${n}`,transform:`translate(${("horizontal"===t?d:n)+y[0]},${("horizontal"===t?n:d)+y[1]}) scale(${f})`,vectorEffect:"non-scaling-stroke",d:l,style:o(Object.assign(Object.assign({},s),s.data),i),className:r(Object.assign(Object.assign({},s),s.data),i)}));m.push(E.createElement("g",{key:"clipped-region-"+i,clipPath:w},e))}return m},Hn=e=>()=>e,qn={clusterbar:function({type:e,data:t,renderMode:n,eventListenersGenerator:a,styleFn:o,projection:r,classFn:s,adjustedSize:i,chartSize:c,margin:l,rScale:d}){let u=[];return Object.keys(t).forEach((p,y)=>{const m=t[p],h=Math.max(m.width,1)/m.pieceData.length;let g=0,f=0;const b=m.pieceData.map((t,u)=>{const b=n&&n(t.data,u);let x=t.x,v=t.base,k=h,j=t.scaledValue,A={x:0,y:0};t.negative||(v-=t.scaledValue),"horizontal"===r&&(v=t.x,x=t.base,j=h,k=t.scaledValue,A.x=t.scaledValue,t.negative&&(x-=t.scaledValue,A.x=x));let S={},O=0,M=0;if("radial"===r){let n,a;({xPosition:x,yPosition:v,markProps:S,xy:A,tx:n,ty:a}=Gn({type:e,ordset:m,adjustedSize:i,piece:t,i:u})),O=n,M=a,A.x=x}else x+=g,v+=f,S={markType:"rect",x:x,y:v,width:Math.max(0,k),height:Math.max(0,j),rx:0,ry:0},"vertical"===r&&(A.x=x);const w=a(t,u);A.y=v,A.middle=h/2,A.height=j,A.width=k,e.icon&&"radial"!==r?e.customMark=_n({type:e,projection:r,finalHeight:j,finalWidth:k,styleFn:o,renderValue:b,classFn:s}):e.icon&&"radial"===r&&console.error("Icons are currently unsupported on radial charts");const C=e.customMark?E.createElement("g",{key:"piece-"+t.renderKey,transform:`translate(${x},${v})`},e.customMark(Object.assign(Object.assign(Object.assign({},t.data),t),{x:x,y:v}),u,Object.assign(Object.assign({},A),{renderMode:n,styleFn:o,classFn:s,adjustedSize:i,chartSize:c,margin:l,rScale:d}))):Object.assign(Object.assign({className:s(Object.assign(Object.assign({},t),t.data),u),key:"piece-"+t.renderKey,transform:void 0,style:o(Object.assign(Object.assign({},t),t.data),y)},S),w);return"horizontal"===r?f+=j:g+=k,{o:p,xy:A,piece:t,tx:O,ty:M,renderValue:b,renderElement:C}});u=[...u,...b]}),u},bar:function({type:e,data:t,renderMode:n,eventListenersGenerator:a,styleFn:o,projection:r,classFn:s,adjustedSize:i,chartSize:c,margin:l,rScale:d}){let u=[];return Object.keys(t).forEach((p,y)=>{const m=t[p],h=Math.max(m.width,1);m.pieceData.forEach((t,g)=>{const f=t.scaledValue,b=n&&n(t.data,g);let x=t.x,v=t.bottom,k=h,j=f,A={};t.negative||(v-=t.scaledValue),"vertical"===r?A={x:x,y:v,middle:h/2,height:j,width:k}:"horizontal"===r&&(v=t.x,x=t.bottom,j=h,k=f,A={x:x+t.scaledValue,y:v,middle:h/2,height:j,width:k},t.negative&&(x=t.bottom-t.scaledValue));let S,O=0,M=0;if("radial"===r){let n,a;({markProps:S,xPosition:x,yPosition:v,tx:n,ty:a}=Gn({type:e,ordset:m,adjustedSize:i,piece:t,i:g})),O=n,M=a,j=void 0,k=void 0,A={x:x,y:v,middle:h/2,height:j,width:k}}else S={markType:"rect",x:x,y:v,width:Math.max(0,k),height:Math.max(0,j),rx:0,ry:0};const w=a(t,g);e.icon&&"radial"!==r?e.customMark=_n({type:e,projection:r,finalHeight:j,finalWidth:k,styleFn:o,renderValue:b,classFn:s}):e.icon&&"horizontal"!==r&&console.error("Icons are currently unsupported in radial charts");const C=e.customMark?E.createElement("g",{key:"piece-"+t.renderKey,transform:`translate(${x},${v})`,role:"img",tabIndex:-1},e.customMark(Object.assign(Object.assign(Object.assign({},t.data),t),{x:x,y:v}),g,Object.assign(Object.assign({},A),{renderMode:n,styleFn:o,classFn:s,adjustedSize:i,chartSize:c,margin:l,rScale:d}))):Object.assign(Object.assign({className:s(Object.assign(Object.assign({},t),t.data),g),key:"piece-"+t.renderKey,style:o(Object.assign(Object.assign({},t),t.data),y)},w),S);u.push({o:p,xy:A,piece:t,tx:O,ty:M,renderValue:b,renderElement:C})})}),u},point:function({type:e,data:t,renderMode:n,eventListenersGenerator:a,styleFn:o,projection:r,classFn:s,adjustedSize:i,chartSize:c,margin:l,rScale:d}){const u=e.r||3;let p=[];return Object.keys(t).forEach((y,m)=>{const h=t[y],g=[];h.pieceData.forEach((t,p)=>{const f=n&&n(t.data,p);let b=h.middle,x=t.scaledVerticalValue;if("horizontal"===r)x=h.middle,b=t.scaledValue;else if("radial"===r){const e=we([i[0]/2,i[1]/2],h.pct_middle,t.scaledValue/2);b=e[0],x=e[1]}const v="function"==typeof u?u(t,p):u,k=a(t,p),j=e.customMark?E.createElement("g",{key:"piece-"+t.renderKey,transform:`translate(${b},${x})`},e.customMark(Object.assign(Object.assign(Object.assign({},t.data),t),{x:b,y:x,width:h.width}),p,{r:u,x:b,y:x,renderMode:n,styleFn:o,classFn:s,adjustedSize:i,chartSize:c,margin:l,rScale:d})):Object.assign({className:s(Object.assign(Object.assign({},t),t.data),p),markType:"rect",key:"piece-"+t.renderKey,height:2*v,width:2*v,x:b-v,y:x-v,rx:v,ry:v,style:o(Object.assign(Object.assign({},t),t.data),m)},k);g.push({o:y,xy:{x:b,y:x},piece:t,renderValue:f,renderElement:j})}),p=[...p,...g]}),p},swarm:function({type:e,data:t,renderMode:n,eventListenersGenerator:a,styleFn:o,projection:r,classFn:s,adjustedSize:i,chartSize:c,margin:l,rScale:d}){let u=[];const p=Object.keys(t),y=p.reduce((e,n)=>{var a;return e+((null===(a=t[n].pieceData)||void 0===a?void 0:a.length)||0)},0),m=void 0!==e.iterations?e.iterations:Math.max(30,Math.min(120,Math.floor(120-(y-100)/20)));return p.forEach((y,h)=>{const g=t[y],b=1/p.length,x=g.pieceData,v=g.width,k=e.r||Math.max(2,Math.min(5,4*v/x.length)),j=f.forceSimulation(x).force("y",f.forceY(e=>e.scaledValue).strength(e.strength||2)).force("x",f.forceX(g.middle)).force("collide",f.forceCollide(k)).stop();"vertical"===r&&j.force("y",f.forceY(e=>e.scaledVerticalValue).strength(e.strength||2));for(let e=0;m>e;++e)j.tick();const A=x.map((t,u)=>{const p=n&&n(t.data,u);let m=t.x,f=t.y;if("horizontal"===r)f=t.x,m=t.y;else if("radial"===r){m=(t.x-g.middle)/v*b;const e=we([i[0]/2,i[1]/2],g.pct_middle+m,t.scaledValue/2);m=e[0],f=e[1]}const x="function"==typeof k?k(t,u):k,j=a(t,u),A=e.customMark?E.createElement("g",{key:"piece-"+t.renderKey,transform:`translate(${m},${f})`},e.customMark(Object.assign(Object.assign(Object.assign({},t.data),t),{x:m,y:f}),u,{x:m,y:f,r:k,renderMode:n,styleFn:o,classFn:s,adjustedSize:i,chartSize:c,margin:l,rScale:d})):Object.assign({className:s(Object.assign(Object.assign({},t),t.data),u),markType:"rect",key:"piece-"+t.renderKey,height:2*x,width:2*x,x:m-x,y:f-x,rx:x,ry:x,style:o(Object.assign(Object.assign({},t),t.data),h)},j);return{o:y,xy:{x:m,y:f},piece:t,renderValue:p,renderElement:A}});u=[...u,...A]}),u},timeline:function({type:e,data:t,renderMode:n,eventListenersGenerator:a,styleFn:o,projection:r,classFn:s,adjustedSize:i,chartSize:c,margin:l,rScale:d}){let u=[];return Object.keys(t).forEach((p,y)=>{const m=t[p],h=[];m.pieceData.forEach((t,u)=>{let g,f,b=0,x=0;const v=n&&n(t.data,u);let k=m.x,j=t.scaledEndValue-t.scaledValue,A=t.scaledVerticalValue-j,S=m.width,O={markType:"rect",height:0>j?-j:j,width:S,x:k,y:0>j?A+j:A};if("horizontal"===r)A=m.x,k=t.scaledValue,g=t.scaledEndValue-t.scaledValue,f=t.scaledBottom,S=t.scaledEndValue-t.scaledValue,j=m.width,O={markType:"rect",height:j,width:0>S?-S:S,x:0>S?k+S:k,y:A};else if("radial"===r){let n,a;({markProps:O,tx:n,ty:a}=Gn({piece:t,type:e,ordset:m,adjustedSize:i,i:u})),b=n,x=a}const M=a(t,u),w={x:k,y:A,scaledValue:g,scaledBottom:f,height:j},C=e.customMark?E.createElement("g",{key:"piece-"+t.renderKey,transform:`translate(${k},${A+j})`},e.customMark(Object.assign(Object.assign(Object.assign({},t.data),t),{x:k,y:A}),u,Object.assign(Object.assign({},w),{renderMode:n,styleFn:o,classFn:s,adjustedSize:i,chartSize:c,margin:l,rScale:d}))):Object.assign(Object.assign({className:s(Object.assign(Object.assign({},t),t.data),u),key:"piece-"+t.renderKey,style:o(Object.assign(Object.assign({},t),t.data),y)},O),M);h.push({o:p,xy:w,piece:t,tx:b,ty:x,renderValue:v,renderElement:C})}),u=[...u,...h]}),u}},Yn=e=>e.middle?e.middle:0,Xn=Hn(0),Kn=2*Math.PI,Zn={bar:{items:"bar",chart:"bar chart"},clusterbar:{items:"bar",chart:"grouped bar chart"},swarm:{items:"point",chart:"swarm plot"},point:{items:"point",chart:"point plot"},timeline:{items:"bar",chart:"timeline"}},Qn=(e,a,o)=>{let r;const i={},{oPadding:c=0,summaryType:l,type:d,connectorType:u,oAccessor:p,rAccessor:y,connectorStyle:m,style:h,rExtent:g,oSort:f,pieceClass:b,summaryStyle:x,summaryClass:v,dynamicColumnWidth:k,projection:j,customHoverBehavior:A,customClickBehavior:S,customDoubleClickBehavior:O,size:M,pixelColumnWidth:w,title:C,oLabel:P,hoverAnnotation:z,pieceHoverAnnotation:N,summaryHoverAnnotation:$,backgroundGraphics:D,foregroundGraphics:F,oScaleType:T,rScaleType:L,legend:R,renderKey:B,data:V,margin:I,oExtent:W,axes:G,pieceIDAccessor:_,multiAxis:H,annotations:q}=e,Y="radial"===j?0:c,X=ot(l),K=ot(d),Z=ot(u),Q=o.accessorConversions(p,y,B,_),U=Q.oAccessor,J=Q.rAccessor,ee=Q.renderKey,te=()=>({}),{connectorStyle:ne,summaryStyle:ae,pieceStyle:oe,pieceClass:re,summaryClass:se,connectorClass:ie,pieceRenderMode:ce,summaryRenderMode:le,connectorRenderMode:de,pieceCanvasRender:ue,summaryCanvasRender:pe,connectorCanvasRender:ye}=o.styleFns(m,x,h,b,v,e.connectorClass,e.renderMode,e.summaryRenderMode,e.connectorRenderMode,e.canvasPieces,e.canvasSummaries,e.canvasConnectors),me="object"!=typeof C||E.isValidElement(C)||null===C?{title:C,orient:"top"}:C,he=Q.pieceIDAccessor,ge=Array.isArray(y)?y:[y],fe=Array.isArray(p)?p:[p];let be=J,xe=k;if("radial"===j){if(!xe){const e=J;xe=t=>s.sum(t,t=>{let n=0;for(const a of e)n+=a(t)||0;return n})}be=[()=>1]}const{allData:ve,multiExtents:Se}=rt({data:V,renderKey:ee,oAccessor:U,rAccessor:be,originalRAccessor:ge,originalOAccessor:fe,multiAxis:H});let Ee;const Oe=a.props,Me=e.data!==Oe.data||e.size[0]!==Oe.size[0]||e.size[1]!==Oe.size[1]||e.margin!==Oe.margin||!a.columnOverlays||0===a.columnOverlays.length||e.customClickBehavior!==Oe.customClickBehavior||e.customDoubleClickBehavior!==Oe.customDoubleClickBehavior||e.customHoverBehavior!==Oe.customHoverBehavior;let Pe;Array.isArray(G)?Pe=G.map(t=>"function"==typeof t?t({size:e.size}):t):G&&(Pe=[G].map(t=>"function"==typeof t?t({size:e.size}):t)),Se&&G&&Pe.forEach((e,t)=>{e.extentOverride=Se[t]});const{margin:ze,adjustedPosition:Ne,adjustedSize:$e}=o.marginCalc(I,Pe,me,P,j,M),De=void 0===W||Array.isArray(W)?{extent:W}:W,Fe=ve.reduce((e,t)=>{const n=t.column,a=void 0!==n?n+"":n;return-1===e.indexOf(a)&&e.push(a),e},[]);let Te=De.extent||Fe;if("barpercent"===K.type){const e=Te.map(e=>ve.filter(t=>t.column+""===e).reduce((e,t)=>e+t.value,0)).reduce((e,t,n)=>(e[Te[n]]=t,e),{});ve.forEach(t=>{t.value=e[t.column]&&t.value/e[t.column]||0}),K.type="bar"}w&&("radial"===j?console.error("pixelColumnWidth is not honored in radial mode"):"vertical"===j?$e[0]=Te.length*w:$e[1]=Te.length*w);const Le="vertical"===j&&[0,$e[0]]||[0,$e[1]],Re=Te.reduce((e,t)=>(e[t]=1/Te.length*Le[1],e.total+=e[t],e),{total:0}),Be=T,Ve=xe?n.scaleOrdinal():(null==Be?void 0:Be.domain)?Be:Be();let Ie;Ve.domain(Te);const We=void 0===g||Array.isArray(g)?{extent:g,onChange:void 0,includeAnnotations:!1}:g;let Ge=We.extent,_e=[0,0];"bar"===K.type&&X.type&&"none"!==X.type&&(K.type="none");const He=[];if(We.includeAnnotations&&q&&J.forEach(e=>{q.forEach((t,n)=>{const a=e(t,n);isFinite(a)&&He.push(a)})}),"timeline"===K.type){const e=ve.map(e=>e.value),t=s.extent(e.map(e=>e[0])),n=s.extent(e.map(e=>e[1]));Ge=s.extent([...t,...n,...He])}else if("bar"!==K.type)Ge=s.extent([...ve.map(e=>e.value),...He]);else{const e=[],t=[],n={},a={};for(const o of ve)0>o.value?(a[o.column]||(a[o.column]={column:o.column,value:0},t.push(a[o.column])),a[o.column].value+=o.value):(n[o.column]||(n[o.column]={column:o.column,value:0},e.push(n[o.column])),n[o.column].value+=o.value);const o=He.filter(e=>e>0);Ge=[0,0===e.length&&0===o.length?0:Math.max(s.max([...e.map(e=>e.value),...o]),0)];const r=He.filter(e=>0>e);_e=[0,0===t.length?0:Math.min(s.min([...t.map(e=>e.value),...r]),0)],Ge=[_e[1],Ge[1]]}("clusterbar"===K.type||H)&&Ge[0]>0&&(Ge[0]=0);const qe=Ge;We.extent&&void 0!==We.extent[0]&&void 0!==We.extent[1]?Ge=We.extent:(We.extent&&void 0!==We.extent[1]&&void 0===We.extent[0]&&(Ge[1]=We.extent[1]),We.extent&&void 0!==We.extent[0]&&void 0===We.extent[1]&&(Ge[0]=We.extent[0])),(e.invertR||We.extent&&We.extent[0]>We.extent[1])&&(Ge=[Ge[1],Ge[0]]);const Ye={};for(const e of ve)Ye[e.column]||(Ye[e.column]=[]),Ye[e.column].push(e);if(void 0!==f)Te=Te.sort((e,t)=>f(e,t,Ye[e].map(e=>e.data),Ye[t].map(e=>e.data))),Ve.domain(Te);else{const e={};for(const t of Te)e[t]=s.sum(Ye[t],e=>e.value);let t;if(xe){let e;t={},e="string"==typeof xe?e=>s.sum(e,e=>e.data[xe]):e=>xe(e.map(e=>e.data));for(const n of Te)t[n]=e(Ye[n])}Te=Te.sort((n,a)=>{const o=e[a]-e[n];return 0!==o?o:t?t[a]-t[n]:0}),Ve.domain(Te)}if(xe){let e;e="string"==typeof xe?e=>s.sum(e,e=>e.data[xe]):e=>xe(e.map(e=>e.data));const t=[0],n=[];Ie=0,Te.forEach(t=>{const a=ve.filter(e=>e.column===t),o=e(a);n.push(o),Ie+=o}),Re.total=0,Te.forEach((e,a)=>{const o=n[a]/Ie*(Le[1]-Le[0]);Re[e]=o,Re.total+=o,a!==Te.length-1&&t.push(o+t[a])}),Ve.range(t)}else Ve.range(Le);const Xe="vertical"===j&&[0,$e[1]]||[0,$e[0]],Ke=L.domain?L:L(),Qe=Ke(0);We.extent&&void 0!==We.extent[0]&&(isNaN(Qe)||Qe===-1/0||Qe===1/0)&&(Ge[0]=We.extent[0]);const et=Ke.copy().domain(Ge).range(Xe),nt=n.scaleLinear().domain(Xe).range(Xe.reverse()),at=Ke.copy().domain(Ge).range(Xe),st=Re?0:Ve.bandwidth();let ct=[],lt=$e[1];"vertical"===j&&(lt=$e[0]);const dt=((e,t,n)=>{const a=e.domain(),o={};return a.forEach((r,s)=>{const i=e(r)-n,c=a[s+1]?e(a[s+1]):t;o[r]=i+(c-i)/2}),o})(Ve,lt,Y);ct=Te.map(e=>Ye[e]?Ye[e]:[]);let ut="vertical"===j?nt(et(0)):et(0);!isNaN(ut)&&ut!==-1/0&&ut!==1/0||!We.extent||void 0===We.extent[0]||Qe!==-1/0&&Qe!==1/0||(ut="vertical"===j?nt(et(We.extent[0])):et(We.extent[0])),Te.forEach((t,n)=>{i[t]={name:t,padding:Y,pieceData:ct[n],pieces:ct[n]},i[t].x=Ve(t)+Y/2,i[t].y=0,i[t].middle=dt[t]+Y/2;let a=ut,o=ut,r=0;i[t].pieceData.forEach(e=>{let n;"timeline"===K.type?(e.scaledValue=et(e.value[0]),e.scaledEndValue=et(e.value[1]),e.scaledVerticalValue=at(e.value[0])):"bar"!==K.type&&"clusterbar"!==K.type?(e.scaledValue=et(e.value),e.scaledVerticalValue=at(e.value)):"clusterbar"===K.type&&(n="vertical"===j?nt(et(e.value)):et(e.value),e.scaledValue=Math.abs(ut-n)),e.x=i[t].x,0>e.value?("bar"===K.type&&(e.scaledValue=Math.abs("vertical"===j?et(e.value)-et(0):et(e.value)-ut)),e.base=ut,e.bottom="bar"===K.type?a:0,e.middle=a-e.scaledValue/2,a="vertical"===j?a+e.scaledValue:a-e.scaledValue,e.negative=!0):("bar"===K.type&&(e.scaledValue="vertical"===j?o-nt(et(r+e.value)):et(r+e.value)-o,r+=e.value),e.base=ut,e.bottom="bar"===K.type?o:0,e.middle=e.scaledValue/2+o,o="vertical"===j?o-e.scaledValue:o+e.scaledValue,e.negative=!1)}),Re?(i[t].width=Re[t]-Y,"center"===e.ordinalAlign&&(0===n?(i[t].x=i[t].x-i[t].width/2,i[t].middle=i[t].middle-i[t].width/2):(i[t].x=i[Te[n-1]].x+i[Te[n-1]].width,i[t].middle=i[t].x+i[t].width/2)),i[t].pct=Re[t]/Re.total,i[t].pct_start=(i[t].x-Le[0])/Re.total,i[t].pct_padding=Y/Re.total,i[t].pct_middle=(i[t].middle-Le[0])/Re.total):(i[t].width=st-Y,"center"===e.ordinalAlign&&(i[t].x=i[t].x-i[t].width/2,i[t].middle=i[t].middle-i[t].width/2),i[t].pct=st/$e[1],i[t].pct_start=(i[t].x-Le[0])/$e[1],i[t].pct_padding=Y/$e[1],i[t].pct_middle=(i[t].middle-Le[0])/$e[1])});const pt=[],yt=[],mt="object"==typeof P?Object.assign({label:!0,padding:5},P):{orient:"default",label:P,padding:5};if(P||z){const e=K.offsetAngle&&K.offsetAngle/360||0,a=K.angleRange&&K.angleRange.map(e=>e/360)||[0,1],o=a[1]-a[0],r=1>o?n.scaleLinear().domain([0,1]).range(a):e=>e;Te.forEach(n=>{const a=t.arc().innerRadius(0).outerRadius(et.range()[1]/2),s=i[n].pct*o,c=r(i[n].pct_start+e),l=c+s,d=c+s/2,u=a({startAngle:c*Kn,endAngle:l*Kn}),p=[$e[0]/2,$e[1]/2],y=a.centroid({startAngle:c*Kn,endAngle:l*Kn}),m=0>=y[1]||mt.orient&&"default"!==mt.orient&&"edge"!==mt.orient?0:8,h={startAngle:c,endAngle:l,midAngle:d,markD:u,translate:p,centroid:y,outerPoint:we([0,0],d,et.range()[1]/2+mt.padding+m)};i[n].pieArc=h,yt.push(h)})}if(e.oLabel){let e;if("function"==typeof mt.label)e=mt.label;else{const t={textAnchor:"middle"};"horizontal"===j&&"right"===mt.orient?t.textAnchor="start":"horizontal"===j&&(t.textAnchor="end"),e=(e,n,a)=>{const o={};let r;if("radial"===j&&"stem"===mt.orient)r=`rotate(${0>yt[a].outerPoint[0]?360*yt[a].midAngle+90:360*yt[a].midAngle-90})`;else{if("radial"===j&&"annotation"===mt.orient){const{centroid:t}=yt[a],n=15*yt.filter((e,n)=>a>n&&0>t[0]==0>yt[n].centroid[0]&&0>t[1]==0>yt[n].centroid[1]).length;let o=7*e.length,r="start",s={dx:0,dy:0};return 0>t[0]?(r="end",o=-o,s.dx=-35):s.dx=35,s.dy=0>t[1]?-35-n:35+n,E.createElement("g",null,E.createElement("path",{fill:"none",stroke:"black",strokeWidth:2,d:`M0,0L${s.dx},${s.dy}L${s.dx+o},${s.dy}`}),E.createElement("text",{textAnchor:r,x:s.dx,y:s.dy-2},e))}"radial"===j&&"center"!==mt.orient&&(r=`rotate(${0>yt[a].outerPoint[1]?360*yt[a].midAngle:360*yt[a].midAngle+180})`)}return"radial"===j&&"stem"===mt.orient&&(yt[a].outerPoint[0]>0&&0>mt.padding||0>yt[a].outerPoint[0]&&mt.padding>=0)?o.textAnchor="end":"radial"===j&&"stem"===mt.orient&&(o.textAnchor="start"),E.createElement("text",Object.assign({},t,o,{transform:r}),e)}}if(Te.forEach((t,n)=>{let a=i[t].middle,o=0;"horizontal"===j?(o=i[t].middle,a="right"===mt.orient?$e[0]+3:-3):"radial"===j&&("annotation"===mt.orient?(a=.25*yt[n].centroid[0]+.75*yt[n].outerPoint[0]+yt[n].translate[0],o=.25*yt[n].centroid[1]+.75*yt[n].outerPoint[1]+yt[n].translate[1]):"center"===mt.orient?(a=yt[n].centroid[0]+yt[n].translate[0],o=yt[n].centroid[1]+yt[n].translate[1]):(a=yt[n].outerPoint[0]+yt[n].translate[0],o=yt[n].outerPoint[1]+yt[n].translate[1]));const r=mt.labelFormatter?mt.labelFormatter(t):t,s=e(r,i[t].pieceData.map(e=>e.data),n,i[t]);pt.push(E.createElement("g",{key:"olabel-"+n,transform:`translate(${a},${o})`},s))}),"vertical"===j){let e;e="top"===mt.orient?-15:15+et.range()[1],r=E.createElement("g",{key:"ordinalframe-labels-container",className:"ordinal-labels",transform:`translate(0,${e})`},pt)}else("horizontal"===j||"radial"===j)&&(r=E.createElement("g",{key:"ordinalframe-labels-container",className:"ordinal-labels"},pt))}const ht=(e.hoverAnnotation||e.pieceHoverAnnotation)&&-1!==["bar","clusterbar","timeline"].indexOf(K.type);let gt;ht||e.summaryHoverAnnotation||!(e.hoverAnnotation||e.customClickBehavior||e.customDoubleClickBehavior||e.customHoverBehavior)||(Ee=Me?function({oExtent:e,projectedColumns:t,rScale:n,pieArcs:a,padding:o,projection:r,customDoubleClickBehavior:s,customClickBehavior:i,customHoverBehavior:c}){return e.map((e,l)=>{const d=t[e].width;let u=t[e].x,p=0,y=n.range()[1],m=d+o;if("horizontal"===r&&(p=t[e].x,u=0,m=n.range()[1],y=d),"radial"===r){const{markD:o,centroid:r,translate:d,midAngle:u}=a[l],p={type:"column-hover",column:t[e],pieces:t[e].pieceData,summary:t[e].pieceData,arcAngles:{centroid:r,translate:d,midAngle:u,length:n.range()[1]/2}};return{markType:"path",key:"hover"+e,d:o,transform:`translate(${d.join(",")})`,style:{opacity:0},overlayData:p,onDoubleClick:s&&(e=>{s(p,e)}),onClick:i&&(e=>{i(p,e)}),onMouseEnter:c&&(e=>{c(p,e)}),onMouseLeave:c&&(e=>{c(e)})}}const h={type:"column-hover",column:t[e],pieces:t[e].pieceData,summary:t[e].pieceData};return{markType:"rect",key:"hover-"+e,x:u,y:p,height:y,width:m,style:{opacity:0},onDoubleClick:s&&(e=>{s(h,e)}),onClick:i&&(e=>{i(h,e)}),onMouseEnter:c&&(e=>{c(h,e)}),onMouseLeave:e=>{c(void 0,e)},overlayData:h}})}({oExtent:Te,projectedColumns:i,rScale:et,pieArcs:yt,padding:Y,projection:j,customDoubleClickBehavior:O,customClickBehavior:S,customHoverBehavior:A}):a.columnOverlays);const ft=K.type&&"none"!==K.type?K.type:"point",bt=("function"==typeof ft?ft:qn[ft])({type:K,data:i,renderMode:ce,eventListenersGenerator:te,styleFn:oe,projection:j,classFn:re,adjustedSize:$e,chartSize:M,margin:ze,rScale:et}),xt=bt.reduce((e,t)=>(t.o&&(e[t.o]||(e[t.o]=[]),e[t.o].push(t)),e),{});Object.keys(i).forEach(e=>{i[e].xyData=xt[e]||[]});let vt={};X.type&&"none"!==X.type&&(vt=Ze({data:i,type:X,renderMode:le,styleFn:ae,classFn:se,projection:j,eventListenersGenerator:te,adjustedSize:$e,margin:ze,axisCreator:In}),vt.originalData=i);const kt="horizontal"===j?Yn:Xn,jt="vertical"===j?Yn:Xn,At=bt.map(e=>e.piece&&e.xy?Object.assign(Object.assign({},e.piece),{type:"frame-hover",x:e.xy.x+jt(e.xy),y:e.xy.y+kt(e.xy)}):null).filter(e=>e);((z||N)&&-1===["bar","clusterbar","timeline"].indexOf(K.type)||$)&&($&&vt.xyPoints?gt=vt.xyPoints.map(e=>Object.assign({},e,{type:"frame-hover",isSummaryData:!0,x:e.x,y:e.y})):(z||N)&&bt&&(gt=At));const{axis:St,axesTickLines:Et}=(({projection:e,axis:t,adjustedSize:n,size:a,rScale:o,rScaleType:r,pieceType:s,rExtent:i,data:c,maxColumnValues:l=1,xyData:d,margin:u,thresholds:p})=>{if(!t)return{axis:void 0,axesTickLines:void 0};let y,m;if("radial"!==e&&t){m=[];const s=[0,0];y=t.map((t,i)=>{let y,h=t.className||"";const g=t.extentOverride?t.extentOverride:o.domain(),f=["left","right"],b=-1===f.indexOf(t.orient)&&"vertical"!==e||-1!==f.indexOf(t.orient)&&"horizontal"!==e?r.domain(g):r.domain([0,l]),x=t.orient,v=-1===f.indexOf(t.orient)&&"vertical"!==e||-1!==f.indexOf(t.orient)&&"horizontal"!==e?o.range():[0,"vertical"===e?n[0]:n[1]];"right"===x?(b.range(v.reverse()),h+=" right y"):"left"===x?(h+=" left y",b.range(v.reverse())):"top"===x?(h+=" top x",b.range(v)):"bottom"===x&&(h+=" bottom x",b.range(v)),t.tickValues&&Array.isArray(t.tickValues)?y=t.tickValues:t.tickValues instanceof Function?y=t.tickValues(c,a,o):!t.tickValues&&p&&(y=p.map(e=>o.invert(e)));const k=ke({padding:t.padding,tickValues:y,scale:b,ticks:t.ticks,orient:x,size:n,footer:t.footer,tickSize:t.tickSize,jaggedBase:t.jaggedBase}),j=Ae({className:t.className,axisParts:k,orient:x,tickLineGenerator:t.tickLineGenerator,jaggedBase:t.jaggedBase,scale:b});return m.push(j),"under"===t.baseline&&m.push(je(t.orient,n,t.className)),E.createElement(Je,Object.assign({},t,{key:t.key||"orframe-axis-"+i,axisParts:k,orient:x,size:n,position:s,tickValues:y,scale:b,className:h,marginalSummaryType:"string"==typeof t.marginalSummaryType?{type:t.marginalSummaryType}:t.marginalSummaryType,margin:u,xyPoints:d.map(t=>({x:"vertical"===e?0:t.value,y:"vertical"===e?t.value:0,data:t.data}))}))})}else if("radial"===e&&t){const{innerRadius:e=0}=s,a=[];t.forEach(t=>{const{tickValues:s=o.ticks(Math.max(2,(n[0]/2-e)/50)),label:c,tickFormat:l=e=>e}=t,d=r.domain(i).range([e,n[0]/2]),u=s instanceof Function?s({orient:t.orient}):s;u.forEach((t,n)=>{const o=d(t);if(0!==e||0!==t){let e,s="";if(c&&n===u.length-1){const t="string"==typeof c?{locationDistance:15}:c,{locationDistance:n=15}=t;s=Math.random()+" ",e=E.createElement("g",{className:"axis-label radial",transform:`translate(0,${n})`},E.createElement("text",{textAnchor:"middle"},E.createElement("textPath",{startOffset:o*Math.PI*.5,xlinkHref:"#"+s},c.name)))}a.push(E.createElement("g",{key:"orframe-radial-axis-element-"+t,className:"axis axis-label axis-tick radial",transform:"translate(0,0)"},E.createElement("path",{id:s,d:(r=o,["M",tt(0-r),tt(0),"a",r,r,0,1,0,2*r,0,"a",r,r,0,1,0,-2*r,0].join(" ")+"Z"),r:o,stroke:"gray",fill:"none"}),E.createElement("text",{y:5-o,textAnchor:"middle"},l(t)),e))}var r})}),y=[E.createElement("g",{key:t[0].key||"orframe-radial-axis-container",className:"axis-labels",transform:`translate(${n[0]/2},${n[1]/2})`},a)]}return{axis:y,axesTickLines:m}})({axis:Pe,data:ve,projection:j,adjustedSize:$e,size:M,rScale:et,rScaleType:Ke.copy(),pieceType:K,rExtent:Ge,maxColumnValues:Ie,xyData:At,margin:ze,thresholds:vt.thresholds});return Object.assign({pieceDataXY:gt,oAccessor:U,rAccessor:J,summaryType:X,type:K},function(e){const{usesPieceOverlays:t,shouldRecalculateOverlay:n,calculatedPieceData:a,projection:o,customClickBehavior:r,customDoubleClickBehavior:s,customHoverBehavior:i,currentState:c,connectorStyle:l,connectorClass:d,connectorRenderMode:u,connectorCanvasRender:p,summaryCanvasRender:y,pieceCanvasRender:m,connectorType:h,eventListenersGenerator:g,pieceType:f,summaryStyle:b,summaryClass:x,pieceStyle:v,pieceClass:k,keyedData:j,oExtent:A,projectedColumns:S,calculatedSummaries:O,oAccessor:M,rScale:w,calculatedRExtent:C,calculatedOExtent:P,rExtentSettings:z,oExtentSettings:N,adjustedPosition:$,adjustedSize:D,margin:F,backgroundGraphics:T,foregroundGraphics:L,arrayWrappedAxis:R,axis:B,axesTickLines:V,oLabels:I,title:W,oScaleType:G,instantiatedRScaleType:_,oScale:H,rExtent:q,legend:Y,pieceIDAccessor:X,currentProps:K}=e;let{columnOverlays:Z}=e;if(t){const e="horizontal"===o?Yn:Xn,t="vertical"===o?Yn:Xn;Z=n?a.map((n,a)=>{const o=Object.assign(Object.assign({},n.piece),{x:n.xy.x+t(n.xy),y:n.xy.y+e(n.xy)});return E.isValidElement(n.renderElement)?{renderElement:n.renderElement,overlayData:o}:Object.assign(Object.assign({},n.renderElement),{key:"hover-"+a,style:{opacity:0},overlayData:o,onClick:r&&(e=>{r(o.data,e)}),onDoubleClick:s&&(e=>{s(o.data,e)}),onMouseEnter:i&&(e=>{i(o.data,e)}),onMouseLeave:i&&(e=>{i(void 0,e)})})}):c.columnOverlays}const Q={connectors:{accessibleTransform:(e,t)=>e[t],projection:o,data:{keyedData:j,oExtent:A},styleFn:l,classFn:d,renderMode:u,canvasRender:p,behavior:it,type:h,eventListenersGenerator:g,pieceType:f},summaries:{accessibleTransform:(e,t)=>{const n=A[t];return{type:"column-hover",column:S[n],pieces:S[n].pieceData,summary:S[n].pieceData,oAccessor:M}},data:O.marks,behavior:Ue,canvasRender:y,styleFn:b,classFn:x},pieces:{accessibleTransform:(e,t)=>Object.assign(Object.assign({},e[t].piece?Object.assign(Object.assign({},e[t].piece),e[t].xy):e[t]),{type:"frame-hover"}),shouldRender:f.type&&"none"!==f.type,data:a,behavior:Ce,canvasRender:m,styleFn:v,classFn:k,axis:R,ariaLabel:void 0!==f.type&&"function"!=typeof f.type&&Zn[f.type]||{items:"piece",chart:"ordinal chart"}}};let U;if(z.onChange&&(c.calculatedRExtent||[]).join(",")!==(C||[]).join(",")&&z.onChange(C),N.onChange&&(c.calculatedOExtent||[]).join(",")!==(P||[]).join(",")&&N.onChange(P),Y&&(U=!0===Y?{}:Object.assign({},Y),U.legendGroups)){const e=new Map(A.map((e,t)=>[e,t]));U.legendGroups=U.legendGroups.map(t=>Object.assign(Object.assign({},t),{items:[...t.items].sort((t,n)=>(e.has(t.label)?e.get(t.label):1/0)-(e.has(n.label)?e.get(n.label):1/0))}))}return{adjustedPosition:$,adjustedSize:D,backgroundGraphics:T,foregroundGraphics:L,axisData:R,axes:B,axesTickLines:V,oLabels:{labels:I},title:W,columnOverlays:Z,renderNumber:c.renderNumber+1,oScaleType:G,rScaleType:_,oExtent:A,rExtent:q,oScale:H,rScale:w,calculatedOExtent:P,calculatedRExtent:C,projectedColumns:S,margin:F,legendSettings:U,orFrameRender:Q,pieceIDAccessor:X,props:K}}({usesPieceOverlays:ht,shouldRecalculateOverlay:Me,calculatedPieceData:bt,projection:j,customClickBehavior:S,customDoubleClickBehavior:O,customHoverBehavior:A,currentState:a,connectorStyle:ne,connectorClass:ie,connectorRenderMode:de,connectorCanvasRender:ye,summaryCanvasRender:pe,pieceCanvasRender:ue,connectorType:Z,eventListenersGenerator:te,pieceType:K,summaryStyle:ae,summaryClass:se,pieceStyle:oe,pieceClass:re,keyedData:xt,oExtent:Te,projectedColumns:i,calculatedSummaries:vt,oAccessor:U,rScale:et,calculatedRExtent:qe,calculatedOExtent:Fe,rExtentSettings:We,oExtentSettings:De,adjustedPosition:Ne,adjustedSize:$e,margin:ze,backgroundGraphics:D,foregroundGraphics:F,arrayWrappedAxis:Pe,axis:St,axesTickLines:Et,oLabels:r,title:me,columnOverlays:Ee,oScaleType:T,instantiatedRScaleType:Ke,oScale:Ve,rExtent:Ge,legend:R,pieceIDAccessor:he,currentProps:e}))},Un=n.scaleLinear(),Jn=n.scaleLinear(),ea={y:"y",x:"x"},ta={top:0,bottom:0,left:0,right:0},na={annotations:[],foregroundGraphics:[],projection:"vertical",size:[500,500],className:"",data:[],oScaleType:n.scaleBand(),rScaleType:n.scaleLinear,type:"none",optimizeCustomTooltipPosition:!1};function aa(a){const o=Object.assign(Object.assign({},na),a),r=e.useRef({marginCalc:C.default((e,t,n,a,o,r)=>{const s=at({margin:e,axes:t,title:n,oLabel:a,projection:o,size:r}),{adjustedPosition:i,adjustedSize:c}=st({size:r,margin:s,projection:o});return{margin:s,adjustedPosition:i,adjustedSize:c}}),structureData:C.default((e,t,n,a,o,r,s)=>rt({data:e,renderKey:t,oAccessor:n,rAccessor:a,originalRAccessor:o,originalOAccessor:r,multiAxis:s})),accessorConversions:C.default((e,t,n,a)=>({oAccessor:Ht(e,e=>e.renderKey),rAccessor:Ht(t,e=>e.value||1),renderKey:_t(n,(e,t)=>t),pieceIDAccessor:_t(a,()=>"")})),styleFns:C.default((e,t,n,a,o,r,s,i,c,l,d,u)=>({connectorStyle:_t(e,()=>({}),!0),summaryStyle:_t(t,()=>({}),!0),pieceStyle:_t(n,()=>({}),!0),pieceClass:_t(a,()=>"",!0),summaryClass:_t(o,()=>"",!0),connectorClass:_t(r,()=>"",!0),pieceRenderMode:_t(s,void 0,!0),summaryRenderMode:_t(i,void 0,!0),connectorRenderMode:_t(c,void 0,!0),pieceCanvasRender:_t(l,void 0,!0),summaryCanvasRender:_t(d,void 0,!0),connectorCanvasRender:_t(u,void 0,!0)}))}),i={adjustedPosition:[],adjustedSize:[],backgroundGraphics:void 0,foregroundGraphics:void 0,axisData:void 0,renderNumber:0,oLabels:{labels:[]},oAccessor:Ht("renderKey"),rAccessor:Ht("value"),oScale:n.scaleBand(),rScale:n.scaleLinear(),axes:void 0,calculatedOExtent:[],calculatedRExtent:[0,1],columnOverlays:[],dataVersion:void 0,legendSettings:void 0,margin:{top:0,bottom:0,left:0,right:0},oExtent:[],oScaleType:n.scaleBand(),orFrameRender:{},pieceDataXY:[],pieceIDAccessor:_t("semioticPieceID"),projectedColumns:{},rExtent:[],rScaleType:n.scaleLinear(),summaryType:{type:"none"},title:{},type:{type:"none"},props:o},c=e.useMemo(()=>Object.assign(Object.assign({},i),Qn(o,i,r.current)),[]),l=rn((e,t)=>function(e,t,n){const{props:a}=t,o=!t.dataVersion&&tn.some(t=>a[t]!==e[t]),r=!t.dataVersion&&nn.some(t=>a[t]!==e[t]);return t.dataVersion&&t.dataVersion!==e.dataVersion||!t.projectedColumns||o||a.size[0]!==e.size[0]||a.size[1]!==e.size[1]||r?Object.assign(Object.assign({},Qn(e,t,n)),{props:e}):{props:e}}(e,t,r.current),o,c);sn(o,l);const u=e.useRef(o);u.current=o;const p=e.useRef(l);p.current=l;const y=e.useCallback(e=>function(e,n,{d:a,i:o,annotationLayer:r}){const{projection:i,svgAnnotationRules:c}=e,{adjustedPosition:l,adjustedSize:u,oAccessor:p,rAccessor:y,oScale:m,rScale:h,projectedColumns:g,orFrameRender:f,pieceIDAccessor:b,rScaleType:x,summaryType:v,type:k}=n;let j=[0,0];if(a.isColumnAnnotation){const{coordinates:[e,t]}=Rn({d:a,projectedColumns:g,oAccessor:p,summaryType:v,type:k,projection:i,adjustedPosition:l,adjustedSize:u});j=[e,t]}else if(a.coordinates||"enclose"===a.type&&a.neighbors)j=(a.coordinates||a.neighbors).map(e=>{const t=Ot(p,e)||e.column,n=g[t],a=Bn(b,n,e);return Vn({p:e,adjustedSize:u,rScale:h,rAccessor:y,idPiece:a,projection:i,oColumn:n,rScaleType:x})});else{const e=Ot(p,a)||a.column,t=g[e],n=Bn(b,t,a);j=Vn({p:a,adjustedSize:u,rScale:h,rAccessor:y,idPiece:n,projection:i,oColumn:t,rScaleType:x})}const{voronoiHover:A}=r,S=c&&c({d:a,i:o,oScale:m,rScale:h,oAccessor:p,rAccessor:y,orFrameProps:e,orFrameState:n,screenCoordinates:j,adjustedPosition:l,adjustedSize:u,annotationLayer:r,categories:g,voronoiHover:A});return c&&null!==S?S:"desaturation-layer"===a.type?Et({style:a.style instanceof Function?a.style(a,o):a.style,size:u,i:o,key:a.key}):"ordinal-line"===a.type?(({screenCoordinates:e,d:n,voronoiHover:a})=>{const o=t.line().x(e=>e[0]).y(e=>e[1]);n.curve&&o.curve(Re[n.curve]||n.curve);const r="function"==typeof n.lineStyle?n.lineStyle(n):n.lineStyle||{};return E.createElement("g",{key:"ordinal-line-annotation"},E.createElement("path",{stroke:"currentColor",fill:"none",style:r,d:o(e)}),(n.points||n.interactive)&&e.map((e,t)=>{const o="function"==typeof n.pointStyle?n.pointStyle(n.coordinates[t],t):n.pointStyle||{};return E.createElement("g",{transform:`translate(${e[0]},${e[1]})`,key:"ordinal-line-point-"+t},n.points&&E.createElement("circle",{style:o,r:n.radius||5,fill:"currentColor"}),n.interactive&&E.createElement("circle",{style:{pointerEvents:"all"},r:n.hoverRadius||15,opacity:0,onMouseEnter:()=>a(Object.assign(Object.assign({type:"frame-hover"},n.coordinates[t]),{data:n.coordinates[t]})),onMouseOut:()=>a()}))}))})({d:a,screenCoordinates:j,voronoiHover:A}):"or"===a.type?(({d:e,i:t,screenCoordinates:n,projection:a})=>E.createElement("text",{key:`${e.label}annotationtext${t}`,x:parseInt(n[0]+("horizontal"===a?10:0)),y:parseInt(n[1]+("vertical"===a?10:0)),className:"annotation annotation-or-label "+(e.className||""),"data-testid":"annotation-or-label",textAnchor:"middle"},e.label))({d:a,i:o,screenCoordinates:j,projection:i}):"highlight"===a.type?(({d:e,pieceIDAccessor:t,orFrameRender:n,oAccessor:a})=>{const o=t(e),r=Ot(a,e),{pieces:s}=n,{styleFn:i}=s;return[...s&&s.data.filter(e=>!(void 0!==o&&t(Object.assign(Object.assign({},e.piece),e.piece.data))!==o||void 0!==r&&Ot(a,e.piece.data)!==r)).map((t,n)=>{let a={style:i(Object.assign(Object.assign({},t.piece),t.piece.data))};e.style&&"function"==typeof e.style?a={style:Object.assign(Object.assign({},a),e.style(Object.assign(Object.assign({},t.piece),t.piece.data)))}:e.style&&(a={style:Object.assign(Object.assign({},a),e.style)});const o=Object.assign(Object.assign({},t.renderElement),a),r="highlight-annotation "+(e.class&&"function"==typeof e.class&&e.class(t.piece.data,n)||e.class&&e.class||"");if(E.isValidElement(t.renderElement))return E.cloneElement(t.renderElement,Object.assign(Object.assign({},a),{className:r}));const{markType:s}=o,c=U(o,["markType"]);return E.createElement(s||"path",Object.assign(Object.assign({fill:"none",stroke:"currentColor",strokeWidth:"2px",key:"highlight-piece-"+n},c),{className:r}))})||[]]})({d:a,pieceIDAccessor:b,orFrameRender:f,oAccessor:p}):"function"==typeof a.type||oa.has(a.type)?(({d:e,i:t,screenCoordinates:n})=>{const a=Object.assign({dx:0,dy:0,note:{label:e.label,orientation:e.orientation,align:e.align},connector:{end:"arrow"}},e,{x:n[0],y:n[1],type:"function"==typeof e.type?e.type:void 0,screenCoordinates:n});return e.fixedX&&(a.x=e.fixedX),e.fixedY&&(a.y=e.fixedY),E.createElement(R,{key:e.key||"annotation-"+t,noteData:a})})({d:a,i:o,screenCoordinates:j}):"enclose"===a.type?(({d:e,i:t,screenCoordinates:n})=>{const a=d.packEnclose(n.map(e=>({x:e[0],y:e[1],r:2})));return jt({d:e,i:t,circle:a})})({d:a,i:o,screenCoordinates:j}):"enclose-rect"===a.type?(({d:e,i:t,screenCoordinates:n})=>{const a=n.map(e=>({x0:e.x0=e[0],x1:e.x1=e[0],y0:e.y0=e[1],y1:e.y1=e[1]}));return At({bboxNodes:a,d:e,i:t})})({d:a,screenCoordinates:j,i:o}):"r"===a.type?(({d:e,i:t,screenCoordinates:n,rScale:a,rAccessor:o,adjustedSize:r,adjustedPosition:s,projection:i})=>{let c,l,d,u,p,y,m;if("radial"===i)return E.createElement(R,{key:e.key||"annotation-"+t,noteData:Object.assign({dx:50,dy:50,note:{label:e.label},connector:{end:"arrow"}},e,{type:"callout-circle",subject:{radius:a(Ot(o,e))/2,radiusPadding:0},x:r[0]/2,y:r[1]/2})});"horizontal"===i?(y=50,m=50,u=e.offset||25*t,c=n[0],l=u,p={x:c,y1:0,y2:r[1]+s[1]}):(y=50,m=-20,d=e.offset||25*t,l=n[1],c=d,p={y:l,x1:0,x2:r[0]+s[0]});const h=Object.assign({dx:y,dy:m,note:{label:e.label},connector:{end:"arrow"}},e,{type:"xy-threshold",x:c,y:l,subject:p});return E.createElement(R,{key:e.key||"annotation-"+t,noteData:h})})({d:a,i:o,screenCoordinates:j,rScale:h,rAccessor:y,projection:i,adjustedSize:u,adjustedPosition:l}):"category"===a.type?(({projection:e,d:t,i:n,categories:a,adjustedSize:o})=>{const{bracketType:r="curly",position:i=("vertical"===e?"top":"left"),depth:c=30,offset:l=0,padding:d=0}=t,u=(Array.isArray(t.categories)?t.categories:[t.categories]).map(e=>a[e]);if("radial"===e){const e=d/o[1],a=s.min(u.map(t=>t.pct_start+t.pct_padding/2+e/2)),i=s.max(u.map(t=>t.pct_start+t.pct-t.pct_padding/2-e/2)),p=Math.min(o[0],o[1])/2,y=o[0]/2,m=o[1]/2,{arcPath:h,textArcPath:g}=function({x:e,y:t,radius:n,startAngle:a,endAngle:o,inset:r,outset:s,curly:i=!0}){const c=Tn(e,t,n+s,o),l=Tn(e,t,n+s,a),d=Tn(e,t,n+s-r,o),u=Tn(e,t,n+s-r,a),p=o-a,y=p>180?"1":"0";let m;if(i){const r=Math.min(10,p/4),i=Tn(e,t,n+s,(a+o)/2+r),y=Tn(e,t,n+s+10,(a+o)/2),h=Tn(e,t,n+s,(a+o)/2-r);m=["M",d.x,d.y,"L",c.x,c.y,"A",n+s,n+s,0,0,0,i.x,i.y,"A",n+s,n+s,1,0,1,y.x,y.y,"A",n+s,n+s,1,0,1,h.x,h.y,"A",n+s,n+s,0,0,0,l.x,l.y,"L",u.x,u.y].join(" ")}else m=["M",d.x,d.y,"L",c.x,c.y,"A",n+s,n+s,0,y,0,l.x,l.y,"L",u.x,u.y].join(" ");const h=(a+o)/2;let g,f,b,x,v;const k=h>90&&270>h;k?(g=12,f=o-a>180?"1":"0",v=0):(f=o-a>180?"1":"0",g=5,v=1),g+=i?10:0;const j=Tn(e,t,n+s+g,o),A=Tn(e,t,n+s+g,a);return k?(x=j,b=A):(x=A,b=j),{arcPath:m,textArcPath:["M",x.x,x.y,"A",n+s+g,n+s+g,v,f,v,b.x,b.y].join(" ")}}({x:0,y:0,radius:p,startAngle:360*a,endAngle:360*i,inset:c,outset:l,curly:"curly"===r}),f=`text-path-${n}-${Math.random()}`;return E.createElement("g",{className:"category-annotation annotation",transform:`translate(${y},${m})`},E.createElement("path",{d:h,fill:"none",stroke:"currentColor"}),E.createElement("path",{id:f,d:g,style:{display:"none"}}),E.createElement("text",{"font-size":"12.5"},E.createElement("textPath",{startOffset:"50%",textAnchor:"middle",xlinkHref:"#"+f},t.label)))}{const a=s.min(u.map(e=>e.x)),p=s.max(u.map(e=>e.x+e.width));if("vertical"===e){let e="top"===i?0:o[1];return e+="top"===i?-l:l,E.createElement(R,{key:t.key||"annotation-"+n,noteData:{type:"bracket",y:e,x:a-d,note:{title:t.title||t.label,label:t.title?t.label:void 0},subject:{type:r,width:p-a+2*d,depth:"top"===i?-c:c}}})}if("horizontal"===e){let e="left"===i?0:o[0];return e+="left"===i?-l:l,E.createElement(R,{key:t.key||"annotation-"+n,noteData:{type:"bracket",x:e,y:a-d,note:{title:t.title||t.label,label:t.title?t.label:void 0},subject:{type:r,height:p-a+2*d,depth:"left"===i?-c:c}}})}}})({projection:i,d:a,i:o,categories:n.projectedColumns,adjustedSize:u}):null}(u.current,p.current,e),[]),m=e.useCallback(e=>function(e,t,{d:n,i:a,annotationLayer:o}){const{adjustedPosition:r,adjustedSize:i,oAccessor:c,rAccessor:l,oScale:d,rScale:u,projectedColumns:p,summaryType:y,type:m,pieceIDAccessor:h,rScaleType:g}=t,{htmlAnnotationRules:f,tooltipContent:b,optimizeCustomTooltipPosition:x,projection:v}=e;let k=[0,0];const{voronoiHover:j}=o;if(n.coordinates||"enclose"===n.type&&n.neighbors)k=(n.coordinates||n.neighbors).map(e=>{const t=Ot(c,e)||e.column,n=p[t],a=Bn(h,n,e);return Vn({p:e,adjustedSize:i,rScale:u,rAccessor:l,idPiece:a,projection:v,oColumn:n,rScaleType:g})});else if("column-hover"===n.type){const{coordinates:[e,t]}=Rn({d:n,projectedColumns:p,oAccessor:c,summaryType:y,type:m,projection:v,adjustedPosition:r,adjustedSize:i});k=[e,t]}else{const e=Ot(c,n)||n.column,t=p[e],a=Bn(h,t,n);k=Vn({p:n,adjustedSize:i,rScale:u,rAccessor:l,idPiece:a,projection:v,oColumn:t,rScaleType:g})}const A="vertical"===v?g.domain(u.domain()).range(u.range().reverse()):u,S=f&&f({d:n,i:a,oScale:d,rScale:A,oAccessor:c,rAccessor:l,orFrameProps:e,screenCoordinates:k,adjustedPosition:r,adjustedSize:i,annotationLayer:o,orFrameState:t,categories:t.projectedColumns,voronoiHover:j});return f&&null!==S?S:"frame-hover"===n.type?(({d:e,i:t,rAccessor:n,oAccessor:a,projection:o,tooltipContent:r,optimizeCustomTooltipPosition:i,pieceIDAccessor:c,projectedColumns:l,adjustedSize:d,rScale:u,type:p,rScaleType:y})=>{let m;r="pie"===r?()=>Ln({column:e.column}):r;const h=l[Ot(a,e)||e.column],g=Bn(c,h,e);if(!g)return null;const f=("clusterbar"===p.type||"point"===p.type||"swarm"===p.type)&&void 0!==e.x&&void 0!==e.y||e.isSummaryData?[e.x,e.y]:Vn({p:e,adjustedSize:d,rScale:u,oColumn:h,rAccessor:n,idPiece:g,projection:o,rScaleType:y});if(e.isSummaryData){let t=e.label;e.pieces&&0!==e.pieces.length&&(1===e.pieces.length?(t=[],n.forEach(n=>{t.push(n(e.pieces[0].data))})):(t=[],n.forEach(n=>{const a=s.extent(e.pieces.map(e=>e.data).map(n));t.push(`From ${a[0]} to ${a[1]}`)})));const a=E.createElement("p",{key:"html-annotation-content-2"},t);m=[E.createElement("p",{key:"html-annotation-content-1"},e.key),a,E.createElement("p",{key:"html-annotation-content-3"},e.value)]}else e.data?(m=[],a.forEach((e,t)=>{if(g.data){const n=Fn(e,g.data);m.push(E.createElement("p",{key:"html-annotation-content-o-"+t},n))}}),n.forEach((e,t)=>{if(g.data){const n=Fn(e,g.data);m.push(E.createElement("p",{key:"html-annotation-content-r-"+t},n))}})):e.label&&(m=e.label);let b=E.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},m);if("frame-hover"===e.type&&r&&g){const e=Object.assign(Object.assign(Object.assign({},g),g.data),{column:h,pieces:h?h.pieceData.map(e=>e.data):[]});b=i?E.createElement(kt,{tooltipContent:r,tooltipContentArgs:e}):r(e)}const x=parseInt(f[0]),v=d&&x>d[0]/2,k={position:"absolute",top:parseInt(f[1])+"px"};return v?k.right=d[0]-x+"px":k.left=x+"px",E.createElement("div",{key:"xylabel-"+t,className:`annotation annotation-or-label ${o} ${e.className||""}`,"data-testid":"annotation-or-label",style:k},b)})({d:n,i:a,rAccessor:l,oAccessor:c,projection:v,tooltipContent:b,optimizeCustomTooltipPosition:x,projectedColumns:p,pieceIDAccessor:h,adjustedSize:i,rScale:u,type:m,rScaleType:g}):"column-hover"===n.type?(({d:e,i:t,summaryType:n,oAccessor:a,type:o,adjustedPosition:r,adjustedSize:i,projection:c,tooltipContent:l,optimizeCustomTooltipPosition:d,projectedColumns:u})=>{const{coordinates:[p,y],pieces:m,column:h}=Rn({d:e,projectedColumns:u,oAccessor:a,summaryType:n,type:o,projection:c,adjustedPosition:r,adjustedSize:i});if(void 0===h)return null;const g=[];a.forEach((e,t)=>{if(m[0].data){const n=Fn(e,m[0].data);g.push(E.createElement("p",{key:"or-annotation-o-"+t},n))}});let f=E.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},g,E.createElement("p",{key:"or-annotation-2"},s.sum(m.map(e=>e.value).filter(e=>e>0))));if("column-hover"===e.type&&l){"pie"===l&&(l=Ln);const t=Object.assign(Object.assign({},e),{pieces:m.map(e=>e.data),column:h,oAccessor:a});f=d?E.createElement(kt,{tooltipContent:l,tooltipContentArgs:t}):l(t)}else e.label&&(f=E.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},e.label));const b=parseInt(p),x=i&&b>i[0]/2,v={position:"absolute",top:parseInt(y)+"px"};return x?v.right=i[0]-b+"px":v.left=b+"px",E.createElement("div",{key:"orlabel-"+t,className:`annotation annotation-or-label ${c} ${e.className||""}`,"data-testid":"annotation-or-label",style:v},f)})({d:n,i:a,summaryType:y,oAccessor:c,projectedColumns:p,type:m,adjustedPosition:r,adjustedSize:i,projection:v,tooltipContent:b,optimizeCustomTooltipPosition:x}):null}(u.current,p.current,e),[]),{className:h,annotationSettings:g,annotations:f,matte:b,renderKey:x,interaction:v,customClickBehavior:k,customHoverBehavior:j,customDoubleClickBehavior:A,projection:S,backgroundGraphics:O,foregroundGraphics:M,afterElements:w,beforeElements:P,disableContext:z,summaryType:N,summaryHoverAnnotation:$,pieceHoverAnnotation:D,hoverAnnotation:F,canvasPostProcess:T,canvasPieces:L,canvasSummaries:B,canvasConnectors:V,renderOrder:I,additionalDefs:W,sketchyRenderingEngine:G,frameRenderOrder:_,disableCanvasInteraction:H,disableProgressiveRendering:q,transition:Y}=o,{orFrameRender:X,projectedColumns:K,adjustedPosition:Z,adjustedSize:Q,legendSettings:J,columnOverlays:ee,axesTickLines:te,axes:ne,margin:ae,pieceDataXY:oe,oLabels:re,title:se}=l,ie=[Q[0]+ae.left+ae.right,Q[1]+ae.top+ae.bottom];let ce;N&&N.amplitude&&(ce="horizontal"===S?{top:N.amplitude,bottom:0,left:0,right:0}:"radial"===S?ta:{top:0,bottom:0,left:N.amplitude,right:0});const le=e.useMemo(()=>"function"==typeof M?M({size:ie,margin:ae}):M,[M,ie,ae]),de=e.useMemo(()=>`${h} ${S}`,[h,S]),ue=e.useMemo(()=>$||F||D,[$,D,F]),pe=e.useMemo(()=>v&&Object.assign(Object.assign({},v),{brush:!0!==v.columnsBrush&&"oBrush",projection:S,projectedColumns:K}),[v,S,K]),ye=e.useMemo(()=>!!(L||B||V),[L,B,V]);return E.createElement(xt,{name:"ordinalframe",renderPipeline:X,adjustedPosition:Z,adjustedSize:Q,size:ie,xScale:Un,yScale:Jn,axes:ne,axesTickLines:te,title:se,matte:b,additionalDefs:W,className:de,frameKey:"none",renderFn:x,projectedCoordinateNames:ea,defaultSVGRule:y,defaultHTMLRule:m,hoverAnnotation:ue,annotations:f,annotationSettings:g,legendSettings:J,interaction:pe,customClickBehavior:k,customHoverBehavior:j,customDoubleClickBehavior:A,points:oe,margin:ae,columns:K,backgroundGraphics:O,foregroundGraphics:le,beforeElements:P,afterElements:w,overlay:ee,rScale:l.rScale,projection:S,disableContext:z,interactionOverflow:ce,canvasPostProcess:T,canvasRendering:ye,renderOrder:I,disableCanvasInteraction:H,sketchyRenderingEngine:G,frameRenderOrder:_,additionalVizElements:re,disableProgressiveRendering:q,transition:Y})}const oa=new Set(["label","callout","callout-circle","callout-rect","callout-custom","xy-threshold","bracket"]);aa.displayName="OrdinalFrame";const ra=E.memo(aa),sa=({d:e,i:t,styleFn:n,key:a,className:o,transform:r})=>{const s=n(e,t);return E.createElement("rect",Object.assign({key:a,transform:r,width:2*e.nodeSize,height:2*e.nodeSize,ry:2*e.nodeSize,rx:2*e.nodeSize,x:-e.nodeSize,y:-e.nodeSize},s,{style:s,className:o,"aria-label":"Node "+e.id,tabIndex:-1}))},ia=e=>({x:-e/2,y:-e/2,width:e,height:e}),ca=({d:e,styleFn:t,key:n,className:a,transform:o})=>{const r="down"!==e.direction?e.height:e.width,s="down"!==e.direction?e.width:e.height;return e?E.createElement("rect",{key:n,className:a,transform:o,height:r,width:s,x:-s/2,y:-r/2,rx:0,ry:0,style:t(e),"aria-label":"Node "+e.id,tabIndex:-1}):E.createElement("g",null)},la=({d:e,i:t,styleFn:n,key:a,className:o})=>e?E.createElement("rect",{key:a,transform:"translate(0,0)",width:e.x1-e.x0,height:e.y1-e.y0,x:e.x0,y:e.y0,rx:0,ry:0,style:n(e,t),className:o,"aria-label":"Node "+e.id,tabIndex:-1}):E.createElement("g",null),da=t.line().curve(t.curveMonotoneX).x(e=>e.x).y(e=>e.y),ua=t.line().curve(t.curveMonotoneY).x(e=>e.x).y(e=>e.y);function pa(e,t,n){if(e.circular&&!t.circular)return-1;if(t.circular&&!e.circular)return 1;const a="down"===n?"y":"x",o="down"===n?"x":"y";return e.source[a]===t.source[a]?e.sankeyWidth===t.sankeyWidth?e.source[o]-t.source[o]:t.sankeyWidth-e.sankeyWidth:e.source[a]-t.source[a]}const ya={horizontal:t.linkHorizontal().x(e=>e.x).y(e=>e.y),vertical:t.linkVertical().x(e=>e.x).y(e=>e.y),radial:b.d.lineArc},ma={curve:(e,t="vertical")=>ya[t](e),linearc:e=>b.d.lineArc(e),ribbon:e=>b.d.ribbon(e,e.width),arrowhead:e=>b.d.arrowHead(e,e.target.nodeSize,e.width,1.5*e.width),halfarrow:e=>b.d.halfArrow(e,e.target.nodeSize,e.width,1.5*e.width),nail:e=>b.d.nail(e,e.source.nodeSize),comet:e=>b.d.comet(e,e.target.nodeSize),taffy:e=>b.d.taffy(e,e.source.nodeSize/2,e.target.nodeSize/2,(e.source.nodeSize+e.target.nodeSize)/4)},ha=e=>`M${e.source.x},${e.source.y}L${e.target.x},${e.target.y}`,ga=t=>{const{d:n,width:a,edgeLength:o,circular:s}=t,i=e.useRef(null);return e.useEffect(()=>{if(null==i?void 0:i.current){const e=Math.max(Math.min(a,s?a:o)/5,2);let t=x.pathArrows().arrowLength(2.5*e).gapLength(100).arrowHeadSize(e).path(n);r.select(i.current).selectAll("*").remove(),r.select(i.current).call(t),r.select(i.current).selectAll(":not(.arrow-head)").style("fill","none").style("stroke-width",e/4).style("stroke","white"),r.select(i.current).selectAll(".arrow-head").style("fill","white")}},[n]),E.createElement("g",{ref:i})},fa=e=>{const{d:t,i:n,styleFn:a,key:o,className:r,generatedPath:s}=e,{showArrows:i}=t;let c="";if(t.circular){const{circularPathData:e}=t,{sourceX:n,sourceY:a,leftFullExtent:o,rightFullExtent:r,verticalFullExtent:s,targetX:i,targetY:l}=e;c=`M${n},${a}L${o},${a}L${o},${s}L${r},${s}L${r},${l}L${i},${l}`}else{let e=t.source.x1,n=t.target.x0,a=v.interpolateNumber(e,n),o=a(.5),r=a(.5),s=t.y0,i=t.y1;c=`M${e},${s}C${o},${s} ${r},${i} ${n},${i}`}return E.createElement(E.Fragment,{key:o},E.createElement("path",{className:r,d:s,style:a(t,n),"aria-label":`Connection from ${t.source.id} to ${t.target.id}`,tabIndex:-1}),i&&E.createElement(ga,{d:c,width:t.sankeyWidth,edgeLength:Math.abs(t.target.x-t.source.x),circular:t.circular}))},ba=(e,t,n,a)=>{if(e.children)for(const o of e.children){const e=t.filter(e=>e[1]===o.id);for(const t of e){const e=a.find(e=>n(e)===t[0])||{},r=Object.assign(Object.assign({id:t[0]},e),{children:[],childMap:{}});o.childMap.set(t[0],r),o.children.push(r)}o.children.length>0&&ba(o,t,n,a)}},xa=({data:e,renderKeyFn:t,customMark:n,styleFn:a,classFn:o,renderMode:r,canvasDrawing:s,canvasRenderFn:i,networkSettings:c})=>{const l=n,d=[];if("matrix"!==c.type||!i){if(c){let n=0;for(const c of e){const e=l({d:c,i:n,renderKeyFn:t,styleFn:a,classFn:o,renderMode:r,key:t?t(c,n):c.id||"node-"+n,className:"node "+o(c,n),transform:`translate(${c.x},${c.y})`});if(i&&!0===i(c,n)){const{transform:t="translate(0,0)"}=e.props,[i,l]=t.replace("translate(","").replace(")","").split(","),d={baseClass:"frame-piece",tx:i,ty:l,d:c,i:n,markProps:Object.assign({markType:"string"==typeof e.type?e.type:e.props.markType},e.props),styleFn:a,renderFn:r,classFn:o};s.push(d)}else d.push(e);n++}}return d}},va=e=>{const{data:t,renderKeyFn:n,customMark:a,styleFn:o,classFn:r,renderMode:s,canvasRenderFn:i,canvasDrawing:c,type:l,networkSettings:d,projection:u,numberOfNodes:p,size:y}=e,{type:m,direction:h,edgeSort:g=pa}=d,f="sankey"===m?t.sort((e,t)=>g(e,t,h)):t;let b=ha;const x=[];if(i&&"matrix"===d.type){let e=0;const t=Math.floor(Math.min(...y)/p);for(const n of f){const a={baseClass:"frame-piece",tx:n.source.y,ty:n.target.y,d:n,i:e,markProps:Object.assign({markType:"rect"},ia(t)),styleFn:o,renderFn:s,classFn:r};c.push(a),e++}}else if(a){l&&("function"==typeof l?b=l:ma[l]&&(b=e=>ma[l](e,u)));let e=0;for(const t of f){const i=a({d:t,i:e,renderKeyFn:n,styleFn:o,classFn:r,renderMode:s,key:n?n(t,e):"edge-"+e,className:r(t,e)+" edge",transform:`translate(${t.x},${t.y})`,generatedPath:b(t)});i&&i.props&&("path"!==i.props.markType||i.props.d)&&x.push(i),e++}}else{l&&("function"==typeof l?b=l:ma[l]&&(b=e=>ma[l](e,u)));let e=0;for(const t of f){const a=b(t);a&&i&&!0===i(t,e)?c.push({baseClass:"frame-piece",tx:t.x,ty:t.y,d:t,i:e,markProps:{markType:"path",d:a},styleFn:o,renderFn:s,classFn:r}):a&&x.push(E.createElement("path",{key:n?n(t,e):"edge-"+e,className:r(t)+" edge",d:a,style:o(t,e),tabIndex:-1,role:"img","aria-label":`connection from ${t.source.id} to ${t.target.id}`}))}}return x},ka=[],ja={id:void 0,degree:0,inDegree:0,outDegree:0,x:0,y:0,x1:0,x0:0,y1:0,y0:0,height:0,width:0,radius:0,r:0,direction:void 0,textHeight:0,textWidth:0,fontSize:0,scale:1,nodeSize:0,component:-99,shapeNode:!1},Aa={hierarchicalNetwork:!1},Sa={nodeHash:new Map,edgeHash:new Map,nodes:[],edges:[],hierarchicalNetwork:!1,type:"force"},Ea={dendrogram:d.tree,tree:d.tree,circlepack:d.pack,cluster:d.cluster,treemap:d.treemap,partition:d.partition},Oa=({projectedNodes:e,projectedEdges:t})=>(e.forEach(e=>{e.x=void 0===e.x?(e.x0+e.x1)/2:e.x,e.y=void 0===e.y?e.y0:e.y}),{projectedNodes:e,projectedEdges:t}),Ma={tree:Oa,dendrogram:Oa,cluster:Oa,treemap:Oa,circlepack:Oa,partition:Oa},wa={left:j.sankeyLeft,right:j.sankeyRight,center:j.sankeyCenter,justify:j.sankeyJustify},Ca=({projectedNodes:e,projectedEdges:t,networkSettings:n,adjustedSize:a,nodeIDAccessor:o})=>{const{orient:r="center",iterations:s=100,nodePadding:i,nodePaddingRatio:c=(i?void 0:.5),nodeWidth:l=("flowchart"===n.type?2:24),customSankey:d,direction:u="right",showArrows:p=!1}=n,y=wa[r],m=d||j.sankeyCircular;let h=[[0,0],a];"up"!==n.direction&&"down"!==n.direction||(h=[[0,0],[a[1],a[0]]]);let g=t;const f=e.some(e=>!e.createdByFrame&&e.value>0);if(f){const n=new Map;for(const e of t)n.has(e.source.id)||n.set(e.source.id,{source:0,target:0}),n.has(e.target.id)||n.set(e.target.id,{source:0,target:0}),n.get(e.source.id).source+=e.value,n.get(e.target.id).target+=e.value;for(const a of e)if(!a.createdByFrame){let e=0;n.has(a.id)&&(e=Math.max(n.get(a.id).source,n.get(a.id).target)),a.value>e&&t.push({source:a,target:a,value:a.value-e,ephemeral:!0})}}const b=m().extent(h).links(t).nodes(e).nodeAlign(y).nodeId(o).nodeWidth(l).iterations(s);f&&(g=t.filter(e=>!e.ephemeral)),b.nodePaddingRatio&&c?b.nodePaddingRatio(c):i&&b.nodePadding(i),b(),e.forEach(e=>{e.height=e.y1-e.y0,e.width=e.x1-e.x0,e.x=e.x0+e.width/2,e.y=e.y0+e.height/2,e.radius=e.height/2,e.direction=u});const x=f?g:t;return x.forEach(e=>{e.showArrows=p,e.sankeyWidth=e.width,e.direction=u,e.width=void 0}),{projectedNodes:e,projectedEdges:x}};function Pa(e,a,o,r){if(e)return e;const s=[o[0]/2,o[1]/2];switch(a.type){case"sankey":return ca;case"partition":case"treemap":return"radial"===a.projection?((e,a,o)=>{const r=t.arc(),{angleRange:s=[0,360]}=o,i=s.map(e=>e/360),c=1>i[1]-i[0]?n.scaleLinear().domain([0,1]).range(i):e=>e;return({d:t,i:n,styleFn:o,key:s,className:i})=>t?(r.innerRadius(t.y0/2).outerRadius(t.y1/2),E.createElement("path",{key:s,transform:`translate(${a})`,d:r({startAngle:c(t.x0/e[0])*Math.PI*2,endAngle:c(t.x1/e[0])*Math.PI*2}),style:o(t,n),className:i,"aria-label":"Node "+t.id,tabIndex:-1})):E.createElement("g",null)})(o,s,a):la;case"circlepack":return sa;case"chord":return(e=>({d:t,i:n,styleFn:a,key:o,className:r})=>t?E.createElement("path",{key:o,className:r,transform:`translate(${e[0]/2},${e[1]/2})`,d:t.d,style:a(t,n),"aria-label":"Node "+t.id,tabIndex:-1}):E.createElement("g",null))(o);case"dagre":return la;case"matrix":return((e,t)=>{const n=Math.min(...e),a=n/(t.length+1);return({d:e,i:o,styleFn:r,renderMode:s,key:i,className:c})=>{if(!e)return E.createElement("g",null);const l=a>6,d=a>3,u=a>.5,p={textAnchor:"end",fontSize:a/2+"px"},y=r(e,o);return s&&s(e,o),E.createElement("g",{key:i,className:c},u&&E.createElement("rect",{x:a/2,y:e.y-a/2,width:n-a,height:a,style:Object.assign(Object.assign({},y),{stroke:"none"})}),u&&E.createElement("rect",{y:a/2,x:e.y-a/2,height:n-a,width:a,style:Object.assign(Object.assign({},y),{stroke:"none"})}),d&&E.createElement("line",{stroke:"black",x1:0,x2:n-a/2,y1:e.y-a/2,y2:e.y-a/2,style:y}),d&&E.createElement("line",{stroke:"black",y1:0,y2:n-a/2,x1:e.y-a/2,x2:e.y-a/2,style:y}),d&&o===t.length-1&&E.createElement("line",{stroke:"black",x1:0,x2:n-a/2,y1:e.y+a/2,y2:e.y+a/2,style:y}),d&&o===t.length-1&&E.createElement("line",{stroke:"black",y1:0,y2:n-a/2,x1:e.y+a/2,x2:e.y+a/2,style:y}),l&&E.createElement("text",Object.assign({x:0,y:e.y+a/5},p),e.id),l&&E.createElement("text",Object.assign({transform:`translate(${e.y}) rotate(90) translate(0,${a/5})`},p,{y:0}),e.id))}})(o,r)}return sa}const za=e=>({edge:e,x:(e.source.x+e.target.x)/2,y:(e.source.y+e.target.y)/2}),Na={sankey:e=>({edge:e,x:(e.source.x1+e.target.x0)/2,y:e.circularPathData?e.circularPathData.verticalFullExtent:((e.y0+e.y1)/2+(e.y0+e.y1)/2)/2}),force:za,tree:za,cluster:za,matrix:e=>({edge:e,x:e.source.y,y:e.target.y})},$a={partition:!0,cluster:!0,tree:!0,dendrogram:!0},Da={partition:!0,cluster:!0,tree:!0,dendrogram:!0};function Fa(e,t,n){return t.parent&&(n=`${n}-${Fa(e,Object.assign(Object.assign({},t.parent),t.parent.data),n)}`),`${n}-${e(Object.assign(Object.assign({},t),t.data))}`}const Ta=e=>e.id||e.descendantIndex,La=(e,a,o,r)=>{const{graph:i,nodes:c=(Array.isArray(i)||"function"==typeof i?ka:i&&i.nodes||ka),edges:l=("function"==typeof i?ka:Array.isArray(i)?i:i&&i.edges||ka),networkType:u,size:p,nodeStyle:y,nodeClass:m,canvasNodes:h,edgeStyle:g,edgeClass:f,canvasEdges:b,nodeRenderMode:x,edgeRenderMode:k,nodeLabels:j,title:A,margin:S,hoverAnnotation:O,customNodeIcon:M,customEdgeIcon:w,filterRenderedNodes:C}=e;let P,{edgeType:z}=e;const N={};let $=["type"];"string"==typeof u?P=Object.assign(Object.assign({type:u},Aa),{graphSettings:Sa}):(u&&($=Object.keys(u)),P=Object.assign(Object.assign(Object.assign({type:"force"},Aa),u),{graphSettings:Sa})),"vertical"===P.projection&&"sankey"===P.type&&(P.direction="down"),$.push("height","width");const D="object"!=typeof A||E.isValidElement(A)||null===A?{title:A,orient:"top"}:A,{margin:F,adjustedPosition:T,adjustedSize:L}=o.marginCalc(S,D,p);P.graphSettings.nodes=c,P.graphSettings.edges=l,P.graphSettings.filterRenderedNodes=C;let{edgeHash:R,nodeHash:B}=P.graphSettings;const V="treemap"===P.type||"partition"===P.type||"sankey"===P.type,I=o.accessorConversions(e.nodeIDAccessor,e.sourceAccessor,e.targetAccessor,e.nodeSizeAccessor,e.edgeWidthAccessor),W=I.nodeIDAccessor,G=I.sourceAccessor,_=I.targetAccessor,H=I.nodeSizeAccessor,q=I.edgeWidthAccessor,{nodeStyleFn:Y,nodeClassFn:X,nodeRenderModeFn:K,nodeCanvasRenderFn:Z}=o.nodeStyleFns(y,m,x,h);let{projectedNodes:Q,projectedEdges:U}=a;const J="string"==typeof P.type&&Ea[P.type],ee=!a.projectedNodes||!a.projectedEdges||a.graphSettings.nodes!==c||a.graphSettings.edges!==l||J||a.graphSettings.filterRenderedNodes!==C;if("dagre"===P.type){const e=i,t=new Map;Q=e.nodes().map(n=>{const a=e.node(n),o=Object.assign(Object.assign({},a),{x0:a.x-a.width/2,x1:a.x+a.width/2,y0:a.y-a.height/2,y1:a.y+a.height/2,id:n,shapeNode:!0,sourceLinks:[],targetLinks:[]});return t.set(n,o),o}),U=e.edges().map(n=>{const a=e.edge(n),o=Object.assign(Object.assign({},a),{points:a.points.map(e=>Object.assign({},e))});return o.source=Q.find(e=>e.id===n.v),o.target=Q.find(e=>e.id===n.w),o.points.unshift({x:o.source.x,y:o.source.y}),o.points.push({x:o.target.x,y:o.target.y}),t.get(n.v).targetLinks.push(o),t.get(n.w).sourceLinks.push(o),o})}else if(ee){const e=Q;R=new Map,B=new Map,P.graphSettings.edgeHash=R,P.graphSettings.nodeHash=B,Q=[],U=[];const t="function"==typeof P.fixExistingNodes?P.fixExistingNodes:!!P.fixExistingNodes&&(()=>!0);c.forEach(n=>{const a=Object.assign({},n),o=W(a),r=e.find(e=>e.id===o),s=r||{x:void 0,y:void 0};B.set(o,a),B.set(n,a),Q.push(a),a.id=o,a.inDegree=0,a.outDegree=0,a.degree=0,a.x=s.x,a.y=s.y,r&&t&&t(r)&&(a.fx=r.x,a.fy=r.y)});let n=l,a=l;if(J&&Array.isArray(l)){const e=((e,t,n,a,o)=>{let r={id:"root-generated",children:[],childMap:new Map};const s=new Map,i=new Map;let c=!0,l=!0;for(let t=0;e.length>t;t++){const r=e[t],c=n(r),d=a(r),u="object"==typeof c?o(c):c,p="object"==typeof d?o(d):d;if(i.set(p,u),s.has(u)){l=!1;break}s.set(u,p)}if(l){const e=[];for(const n of s){e.push(n);const a=n[1];if(!s.has(a)){s.set(a,"root-generated");const e=t.find(e=>o(e)===a)||{},n=Object.assign(Object.assign({id:a},e),{children:[],childMap:new Map});r.childMap.set(a,n),r.children.push(n)}}return ba(r,e,o,t),t.forEach(e=>{const t=o(e);s.has(t)||i.has(t)||r.children.push(Object.assign(Object.assign({id:t},e),{children:[],childMap:new Map}))}),1===r.children.length&&(r=r.children[0],c=!1),{hierarchy:r,isHierarchical:!0,hasLogicalRoot:c}}return{hierarchy:{},isHierarchical:!1,hasLogicalRoot:!1}})(l,c,G,_,W);e.isHierarchical?(a=e.hierarchy,Q=[]):(console.error("You've sent an edge list that is not strictly hierarchical (there are nodes with multiple parents) defaulting to force-directed network layout"),P.type="force")}if(!Array.isArray(a)){P.hierarchicalNetwork=!0;const e=d.hierarchy(a,P.hierarchyChildren);if(e.sum(P.hierarchySum||(e=>e.value)),J){const t=(P.layout||J)(),n=Object.keys(P);"dendrogram"!==P.type&&"tree"!==P.type&&"cluster"!==P.type||!t.separation||t.separation((e,t)=>(H(Object.assign(Object.assign({},e),e.data))||1)+(P.nodePadding||0)+(H(Object.assign(Object.assign({},t),t.data))||1)),n.forEach(e=>{t[e]&&t[e](P[e])}),!P.nodeSize&&t.size&&t.size("horizontal"===P.projection&&J?[L[1],L[0]]:L),t(e)}n=((e,t=Ta)=>{var n,a;const o=[],r=[],s=(e.descendants?e:d.hierarchy(e)).descendants();let i=0;for(const e of s)e.descendantIndex=i,i++;for(const e of s){const s=`${null!==(n=t(Object.assign(Object.assign({},e),e.data)))&&void 0!==n?n:Ta(e)}-${e.parent?null!==(a=Fa(t,Object.assign(Object.assign({},e.parent),e.parent.data),""))&&void 0!==a?a:e.parent.name:"root"}`,i=Object.assign(e,e.data||{},{hierarchicalID:s});if(r.push(i),null!==e.parent){const t=Object.assign(e.parent,e.parent.data||{});o.push({source:t,target:i,depth:e.depth,weight:1,value:1,_NWFEdgeKey:s})}}return{edges:o,nodes:r}})(e,W).edges}ja.shapeNode=V,Array.isArray(n)&&n.forEach(e=>{const t=G(e),n=_(e);[t,n].forEach(e=>{if(!B.get(e)){const t=Object.assign(Object.assign({},ja),"object"==typeof e?e:{id:e,createdByFrame:!0}),n=t.id||W(t);N[n]?N[n]+=1:N[n]=1,t.id||(t.id=`${n}${1===N[n]?"":"-"+N[n]}`),B.set(e,t),Q.push(t)}});const a=e.weight||1,o=B.get(t),r=B.get(n);r.inDegree+=a,o.outDegree+=a,r.degree+=a,o.degree+=a;const s=`${W(o)||t}|${W(r)||n}`,i=Object.assign({},e,{source:B.get(t),target:B.get(n)});R.set(s,i),U.push(i),"matrix"===P.type&&U.push(Object.assign(Object.assign({},i),{source:i.target,target:i.source}))})}else R=new Map,P.graphSettings.edgeHash=R,U.forEach(e=>{const t="string"==typeof e.source?e.source:W(e.source),n="string"==typeof e.target?e.target:W(e.target);R.set(`${t}|${n}`,e)});const te=Pa(M,P,L,Q),ne=function({baseCustomEdgeIcon:e,networkSettings:n,size:a,graph:o,nodes:r}){if(e)return e;switch(n.type){case"partition":case"treemap":case"circlepack":return()=>null;case"chord":return(e=>({d:t,i:n,styleFn:a,key:o,className:r})=>E.createElement("path",{key:o,className:r,transform:`translate(${e[0]/2},${e[1]/2})`,d:t.d,style:a(t,n),"aria-label":`Connection from ${t.source.id} to ${t.target.id}`,tabIndex:-1}))(a);case"matrix":return((e,t)=>({d:n,i:a,styleFn:o,key:r,className:s})=>{const i=Math.min(...e)/t.length,c=o(n,a);return E.createElement("g",{key:r},E.createElement("rect",Object.assign({key:r,className:s,transform:`translate(${n.source.y},${n.target.y})`},c,{style:c,"aria-label":`Connection from ${n.source.id} to ${n.target.id}`,tabIndex:-1},ia(i))))})(a,r);case"arc":return(e=>{const n=e[1]/e[0];function a(e){return t.line().curve(t.curveBasis)([[e.source.x,0],[(e.source.x+e.target.x)/2,(e.source.x-e.target.x)*n],[e.target.x,0]])}return({d:t,i:n,styleFn:o,key:r,className:s})=>{const i=o(t,n);return E.createElement("path",Object.assign({key:r,className:s,transform:`translate(0,${e[1]/2})`,d:a(t)},i,{style:i,"aria-label":`Connection from ${t.source.id} to ${t.target.id}`,tabIndex:-1}))}})(a);case"dagre":if(o)return(e=>{const t="LR"===e||"RL"===e?da:ua;return({d:e,i:n,styleFn:a,key:o,className:r})=>{if(e.ribbon||e.parallelEdges){const t=be();if(t.x(e=>e.x),t.y(e=>e.y),t.r(()=>e.weight||1),e.parallelEdges){const s=e.parallelEdges.sort((e,t)=>t.weight-e.weight);return E.createElement("g",{key:""+o},t({points:e.points,multiple:e.parallelEdges}).map((t,i)=>E.createElement("path",{key:`${o}-${i}`,className:r,d:t,style:a(s[i],n),"aria-label":`Connection from ${e.source.id} to ${e.target.id}`,tabIndex:-1})))}return E.createElement("path",{key:o,className:r,d:t(e.points),style:a(e,n),"aria-label":`Connection from ${e.source.id} to ${e.target.id}`,tabIndex:-1})}return E.createElement("path",{key:o,className:r,d:t(e.points),style:a(e,n),"aria-label":`Connection from ${e.source.id} to ${e.target.id}`,tabIndex:-1})}})(o.graph().rankdir);case"sankey":return fa}}({baseCustomEdgeIcon:w,networkSettings:P,size:L,nodes:Q,graph:i});P.width=p[0],P.height=p[1];let ae,oe=!1;if($.forEach(e=>{"edgeType"!==e&&"graphSettings"!==e&&P[e]!==a.graphSettings[e]&&(oe=!0)}),"sankey"===P.type?z=e=>e.circular?function(e){const t=be();return t.x(e=>e.x),t.y(e=>e.y),t.r(()=>e.sankeyWidth/2),t("down"===e.direction?[{x:e.circularPathData.sourceY,y:e.circularPathData.sourceX},{x:e.circularPathData.sourceY,y:e.circularPathData.leftFullExtent},{x:e.circularPathData.verticalFullExtent,y:e.circularPathData.leftFullExtent},{x:e.circularPathData.verticalFullExtent,y:e.circularPathData.rightFullExtent},{x:e.circularPathData.targetY,y:e.circularPathData.rightFullExtent},{x:e.circularPathData.targetY,y:e.circularPathData.targetX}]:[{x:e.circularPathData.sourceX,y:e.circularPathData.sourceY},{x:e.circularPathData.leftFullExtent,y:e.circularPathData.sourceY},{x:e.circularPathData.leftFullExtent,y:e.circularPathData.verticalFullExtent},{x:e.circularPathData.rightFullExtent,y:e.circularPathData.verticalFullExtent},{x:e.circularPathData.rightFullExtent,y:e.circularPathData.targetY},{x:e.circularPathData.targetX,y:e.circularPathData.targetY}])}(e):"angled"===z?(e=>{const t=Math.abs("down"===e.direction?e.target.y-e.source.y:e.source.x-e.target.x),n="down"===e.direction?[{x:e.y0,y:e.source.y},{x:e.y0,y:e.source.y+t/3},{x:e.y1,y:e.target.y-t/3},{x:e.y1,y:e.target.y}]:[{x:e.source.x0,y:e.y0},{x:e.source.x0+t/3,y:e.y0},{x:e.target.x0-t/3,y:e.y1},{x:e.target.x0,y:e.y1}],a=be();return a.x(e=>e.x),a.y(e=>e.y),a.r(()=>e.sankeyWidth/2),a(n)})(e):(e=>{let t,n,a,o,r,s,i,c,l;return"down"===e.direction?(t=e.y0-e.sankeyWidth/2,n=e.y1-e.sankeyWidth/2,a=e.y1+e.sankeyWidth/2,o=e.y0+e.sankeyWidth/2,r=e.source.y1,s=e.target.y0,i=v.interpolateNumber(r,s),c=i(.5),l=i(.5),`M${t},${r}C${t},${c} ${n},${l} ${n},${s}L${a},${s}C${a},${l} ${o},${c} ${o},${r}Z`):(t=e.source.x1,n=e.target.x0,i=v.interpolateNumber(t,n),a=i(.5),o=i(.5),r=e.y0-e.sankeyWidth/2,s=e.y1-e.sankeyWidth/2,c=e.y1+e.sankeyWidth/2,l=e.y0+e.sankeyWidth/2,`M${t},${r}C${a},${r} ${o},${s} ${n},${s}L${n},${c}C${o},${c} ${a},${l} ${t},${l}Z`)})(e):J&&Q.forEach(e=>{if(V&&(e.x=(e.x0+e.x1)/2,e.y=(e.y0+e.y1)/2),"string"==typeof P.type&&$a[P.type]&&"horizontal"===P.projection){const t=e.x;if(e.x=e.y,e.y=t,V){const t=e.x0,n=e.x1;e.x0=e.y0,e.x1=e.y1,e.y0=t,e.y1=n}}else if("string"==typeof P.type&&Da[P.type]&&"radial"===P.projection){const t=0===e.depth?[L[0]/2,L[1]/2]:we([L[0]/2,L[1]/2],e.x/L[0],e.y/2);e.x=t[0],e.y=t[1]}else e.x=e.x,e.y=e.y,V&&(e.x0=e.x0,e.x1=e.x1,e.y0=e.y0,e.y1=e.y1)}),"static"!==P.type&&(ee||oe)){const t=null==r?void 0:r["string"==typeof P.type?P.type:"custom"];if(t){const e=t({projectedNodes:Q,projectedEdges:U,networkSettings:P,adjustedSize:L,edgeHash:R,nodeIDAccessor:W,edgeWidthAccessor:q,nodeSizeAccessor:H,size:p});Q=e.projectedNodes,U=e.projectedEdges}else"function"==typeof P.type?P.type({nodes:Q,edges:U}):Q.forEach(e=>{e.x=void 0===e.x?(e.x0+e.x1)/2:e.x,e.y=void 0===e.y?e.y0:e.y});a.graphSettings.nodes=e.nodes,a.graphSettings.edges=e.edges}if(Q=Q.filter(C),U=U.filter(e=>-1!==Q.indexOf(e.target)&&-1!==Q.indexOf(e.source)),"flip"===P.direction)Q.forEach(e=>{e.x=L[0]-e.x,e.y=L[1]-e.y});else if("up"===P.direction||"down"===P.direction){const e="up"===P.direction?e=>L[1]-e:e=>e;Q.forEach(t=>{const n=t.x,a=t.x0,o=t.x1;t.x=e(t.y),t.x0=e(t.y0),t.x1=e(t.y1),t.y=n,t.y0=a,t.y1=o})}else"left"===P.direction&&Q.forEach(e=>{e.x=L[0]-e.x,e.x0=L[0]-e.x0,e.x1=L[0]-e.x1});if("function"==typeof P.zoom)P.zoom(Q,U,L);else if(!1!==P.zoom&&"matrix"!==P.type&&"chord"!==P.type&&"sankey"!==P.type&&"partition"!==P.type&&"treemap"!==P.type&&"circlepack"!==P.type&&"dagre"!==P.type){const e=s.min(Q.map(e=>e.x-H(e))),t=s.max(Q.map(e=>e.x+H(e))),a=s.min(Q.map(e=>e.y-H(e))),o=s.max(Q.map(e=>e.y+H(e))),r=Math.abs(t-e),i=Math.abs(o-a);let c,l;"stretch"===P.zoom?(c=0,l=0):r/i>L[0]/L[1]?(l=0,c=(L[1]-L[0]/r*i)/2):(c=0,l=(L[0]-L[1]/i*r)/2);const d=n.scaleLinear().domain([e,t]).range([l,L[0]-l]),u=n.scaleLinear().domain([a,o]).range([c,L[1]-c]);Q.forEach(e=>{e.x=d(e.x),e.y=u(e.y)})}else if(!1===P.zoom||"radial"===P.projection||"partition"!==P.type&&"treemap"!==P.type&&"dagre"!==P.type){if(!1!==P.zoom&&"sankey"===P.type&&U.some(e=>e.circular)){const e=U.filter(e=>e.circular),t=s.min(e,e=>e.circularPathData.rightFullExtent-e.sankeyWidth/2)||1/0,a=s.max(e,e=>e.circularPathData.leftFullExtent+e.sankeyWidth/2)||-1/0,o=s.min(e,e=>e.circularPathData.verticalFullExtent-e.sankeyWidth/2)||1/0,r=s.max(e,e=>e.circularPathData.verticalFullExtent+e.sankeyWidth/2)||-1/0,i=s.min(Q,e=>e.y0),c=s.max(Q,e=>e.y1),l=s.min(Q,e=>e.x0),d=s.max(Q,e=>e.x1),u=Math.min(t,l),p=Math.max(a,d),y=Math.min(o,i),m=Math.max(r,c),h=n.scaleLinear().domain([u,p]).range([0,L[0]]),g=n.scaleLinear().domain([y,m]).range([0,L[1]]),f=L[1]/(m-y);for(const e of Q)e.x=h(e.x),e.x0=h(e.x0),e.x1=h(e.x1),e.y=g(e.y),e.y0=g(e.y0),e.y1=g(e.y1),e.width=e.x1-e.x0,e.height=e.y1-e.y0;for(const e of U)e.circular?(e.circularPathData.sourceX=h(e.circularPathData.sourceX),e.circularPathData.sourceY=g(e.circularPathData.sourceY),e.circularPathData.leftFullExtent=h(e.circularPathData.leftFullExtent),e.circularPathData.verticalFullExtent=g(e.circularPathData.verticalFullExtent),e.circularPathData.rightFullExtent=h(e.circularPathData.rightFullExtent),e.circularPathData.targetX=h(e.circularPathData.targetX),e.circularPathData.targetY=g(e.circularPathData.targetY)):(e.y0=g(e.y0),e.y1=g(e.y1)),e.sankeyWidth=e.sankeyWidth*f}}else{const e=s.min(Q.map(e=>e.x0)),t=s.max(Q.map(e=>e.x1)),a=s.min(Q.map(e=>e.y0)),o=s.max(Q.map(e=>e.y1)),r=n.scaleLinear().domain([e,t]).range([F.left,L[0]-F.right]),i=n.scaleLinear().domain([a,o]).range([F.top,L[1]-F.bottom]);Q.forEach(e=>{e.x=r(e.x),e.y=i(e.y),e.x0=r(e.x0),e.y0=i(e.y0),e.x1=r(e.x1),e.y1=i(e.y1),e.zoomedHeight=e.y1-e.y0,e.zoomedWidth=e.x1-e.x0}),U.forEach(e=>{e.points&&e.points.forEach(e=>{e.x=r(e.x),e.y=i(e.y)})})}Q.forEach(e=>{e.nodeSize=H(e)}),U.forEach(e=>{e.width=q(e)}),e.legend&&(ae=e.legend,!ae.legendGroups)&&(ae.legendGroups=[{styleFn:e.nodeStyle,type:"fill",items:[]}]);const re=o.edgeStyleFns(g,f,k,b),se={edges:{accessibleTransform:(e,t)=>{const n=(e[t].source.x+e[t].target.x)/2,a=(e[t].source.y+e[t].target.y)/2;return Object.assign(Object.assign({type:"frame-hover"},e[t]),{x:n,y:a})},data:U,styleFn:re.edgeStyleFn,classFn:re.edgeClassFn,renderMode:re.edgeRenderModeFn,canvasRenderFn:re.edgeCanvasRenderFn,renderKeyFn:e.edgeRenderKey?e.edgeRenderKey:e=>e._NWFEdgeKey||e.key||`${e.source.id}-${e.target.id}`,behavior:va,projection:P.projection,type:z,customMark:ne,networkSettings:P,numberOfNodes:Q.length,size:L},nodes:{accessibleTransform:(e,t)=>Object.assign(Object.assign({type:"frame-hover"},e[t]),e[t].data||{}),data:Q,styleFn:Y,classFn:X,renderMode:K,canvasRenderFn:Z,customMark:te,behavior:xa,renderKeyFn:e.nodeRenderKey,networkSettings:P}},ie=[];let ce;e.nodeLabels&&Q&&Q.forEach((e,t)=>{const n=j&&!0!==j&&j(e);if(!0===j||n){const a="radial"===P.projection&&0!==e.depth?((e,t,n,a)=>{const o=(e.x1+e.x0)/2/a[0],r=n(e,t);return E.createElement("g",{transform:`rotate(${o>.5?360*o+90:360*o-90})`},"string"==typeof r?E.createElement("text",{textAnchor:"middle",y:5},r):r)})(e,t,!0===j?W:j,L):!0===j?W(e,t):n;let o;o=E.isValidElement(a)?{key:"node-label-"+t,type:"basic-node-label",x:e.x,y:e.y,element:a}:{key:"node-label-"+t,className:"node-label",dx:0,dy:0,x:e.x,y:e.y,color:"currentColor",note:{label:a},connector:{end:"none"},type:"label",subject:{radius:H(e)+2}},ie.push(o)}});const le=[];if(O&&["circlepack","treemap","partition","chord"].find(e=>e===P.type)||"area"===O){if("edge"!==O){const e=Q.map((e,t)=>Object.assign({overlayData:e},te({d:e,i:t,transform:`translate(${e.x},${e.y})`,styleFn:()=>({opacity:0})}).props));le.push(...e)}"node"!==O&&U.forEach((e,t)=>{const n=ne({d:e,i:t,transform:`translate(${e.x},${e.y})`,styleFn:()=>({opacity:0})});n&&le.push(Object.assign({overlayData:Object.assign(Object.assign({},e),{x:void 0===e.x?(e.source.x+e.target.x)/2:e.x,y:void 0===e.y?(e.source.y+e.target.y)/2:e.y,edge:!0})},n.props))})}else"edge"===O&&"string"==typeof P.type&&Na[P.type]?ce=U.map(Na[P.type]):Array.isArray(O)||!0===O||"node"===O?(ce=Q,(ee||oe)&&(ce=[...Q])):"all"===O&&"string"==typeof P.type&&(ce=[...U.map(Na[P.type]),...Q]);return{adjustedPosition:T,adjustedSize:L,backgroundGraphics:e.backgroundGraphics,foregroundGraphics:e.foregroundGraphics,title:D,renderNumber:a.renderNumber+1,projectedNodes:Q,projectedEdges:U,projectedXYPoints:ce,overlay:le,nodeIDAccessor:W,sourceAccessor:G,targetAccessor:_,nodeSizeAccessor:H,edgeWidthAccessor:q,margin:F,legendSettings:ae,networkFrameRender:se,nodeLabelAnnotations:ie,graphSettings:Object.assign(Object.assign({},P.graphSettings),P),props:e}},Ra=({projectedNodes:e,projectedEdges:n,networkSettings:a,adjustedSize:o,edgeHash:r,nodeIDAccessor:s,edgeWidthAccessor:i})=>{const c=o[1]/2,{groupWidth:l=20,padAngle:d=.01,sortGroups:u}=a,p=t.arc().innerRadius(c-l).outerRadius(c),y=k.ribbon().radius(c-l),m=(({edgeHash:e,nodes:t,edgeWidthAccessor:n,nodeIDAccessor:a})=>{const o=[];for(const r of t){const s=a(r),i=[];o.push(i);for(const o of t){const t=a(o),r=e.get(`${s}|${t}`);i.push(r?n(r):0)}}return o})({edgeHash:r,nodes:e,edgeWidthAccessor:i,nodeIDAccessor:s}),h=k.chord().padAngle(d);u&&h.sortGroups(u);const g=h(m);return g.groups.forEach(t=>{const n=p.centroid(t),a=p(t),r=e[t.index];r.d=a,r.index=t.index,r.x=n[0]+o[0]/2,r.y=n[1]+o[1]/2}),g.forEach(t=>{const n=y(t),a=s(e[t.source.index]),i=s(e[t.target.index]),c=r.get(`${a}|${i}`)||r.get(`${i}|${a}`);if(c){c.d=n;const e=P.default(n);c.x=o[0]/2+(e.x1+e.x2)/2,c.y=o[1]/2+(e.y1+e.y2)/2}}),{projectedNodes:e,projectedEdges:n}},Ba=({projectedNodes:e,projectedEdges:t,networkSettings:n,adjustedSize:a,nodeSizeAccessor:o})=>{const r=Math.max(50,Math.min(300,Math.floor(300-2*(e.length-30)))),{iterations:s=r,edgeStrength:i=.1,distanceMax:c=1/0,edgeDistance:l,forceManyBody:d=e=>-25*o(e)}=n,u=a[0]/2,p=a[1]/2;e.forEach((e,t)=>{if(null==e.x||null==e.y){const n=10*Math.sqrt(t+.5),a=2.399963229728653*t;e.x=u+n*Math.cos(a),e.y=p+n*Math.sin(a)}});const y=f.forceLink().strength(e=>Math.min(2.5,e.weight?e.weight*i:i));l&&y.distance(l);const m=n.simulation||f.forceSimulation().force("charge",f.forceManyBody().distanceMax(c).strength(d));m.nodes(e);const h=a[1]/a[0];m.force("x")||m.force("x",f.forceX(a[0]/2).strength(.1*h)),m.force("y")||m.force("y",f.forceY(a[1]/2).strength(.1)),0===t.length||m.force("link")||(m.force("link",y),m.force("link").links(t)),.1>m.alpha()&&m.alpha(1),m.stop();for(let e=0;s>e;++e)m.tick();return{projectedNodes:e,projectedEdges:t}},Va={matrix:({projectedNodes:e,projectedEdges:t,networkSettings:n,adjustedSize:a})=>{let o=e;n.sort&&(o=[...e].sort(n.sort));const r=Math.min(...a)/(o.length+1);return o.forEach((e,t)=>{e.x=0,e.y=(t+1)*r}),{projectedNodes:o,projectedEdges:t}},arc:({projectedNodes:e,projectedEdges:t,networkSettings:n,adjustedSize:a})=>{let o=e;n.sort&&(o=[...e].sort(n.sort));const r=a[0]/(o.length+2);return o.forEach((e,t)=>{e.x=(t+1)*r,e.y=a[1]/2}),{projectedNodes:o,projectedEdges:t}}},Ia=Object.assign(Object.assign({chord:Ra,sankey:Ca,flowchart:Ca,force:Ba,motifs:({projectedNodes:e,projectedEdges:t,networkSettings:a,nodeSizeAccessor:o,size:r})=>{const i=new Map;t.forEach(e=>{[e.source,e.target].forEach(e=>{i.get(e)||i.set(e,{node:e,component:-99,connectedNodes:[],edges:[]})}),i.get(e.source).connectedNodes.push(e.target),i.get(e.target).connectedNodes.push(e.source),i.get(e.source).edges.push(e)});const c=function(e,t){const n={0:{componentNodes:[],componentEdges:[]}},a=[n[0]];let o=0;return function e(r,s){for(const i of r){const r=t.get(i);r?-99===r.component&&(!0===s&&(o++,n[o]={componentNodes:[],componentEdges:[]},a.push(n[o])),r.component=o,n[o].componentNodes.push(i),n[o].componentEdges.push(...r.edges),e([...r.connectedNodes],t)):n[0].componentNodes.push(i)}}(e,!0),a.sort((e,t)=>t.componentNodes.length-e.componentNodes.length)}(e,i),l=Math.max(e.length/3,c[0].componentNodes.length),d=r[0]>r[1]?r[1]:r[0],u=r[0]>r[1]?"horizontal":"vertical",p=Math.max(50,Math.min(300,Math.floor(300-2*(e.length-30)))),{iterations:y=p,edgeStrength:m=.1,edgeDistance:h,padding:g=0}=a;let b=g,x=g;return c.forEach(({componentNodes:e,componentEdges:t})=>{const i=f.forceLink().strength(e=>Math.min(2.5,e.weight?e.weight*m:m));h&&i.distance(h);const c=Math.max(e.length/l,.2)*d,p=c+b;"horizontal"===u?c+x>r[1]?(b=c+b+g,x=c+g):x=c+x+g:p>r[0]?(x=c+x+g,b=c+g):b=c+b+g;const v=b-c/2,k=x-c/2,j=f.forceSimulation().force("charge",f.forceManyBody().strength(a.forceManyBody||(e=>-25*o(e)))).force("link",i);j.force("x",f.forceX(v)).force("y",f.forceY(k)).nodes(e),j.force("link").links(t),j.stop();for(let e=0;y>e;++e)j.tick();const A=s.max(e.map(e=>e.x)),S=s.max(e.map(e=>e.y)),E=s.min(e.map(e=>e.x)),O=s.min(e.map(e=>e.y)),M=n.scaleLinear().domain([E,A]).range([b-c,b-20]),w=n.scaleLinear().domain([O,S]).range([x-c,x-20]);e.forEach(e=>{e.x=M(e.x),e.y=w(e.y)})}),{projectedNodes:e,projectedEdges:t,components:c}}},Ma),Va),Wa=[],Ga=["nodes","edges"],_a=["edges","nodes"],Ha={y:"y",x:"x"},qa=n.scaleLinear(),Ya=n.scaleLinear(),Xa={annotations:[],foregroundGraphics:[],size:[500,500],className:"",name:"networkframe",networkType:{type:"force",iterations:500},filterRenderedNodes:e=>"root-generated"!==e.id};function Ka(t){const n=Object.assign(Object.assign({},Xa),t),a=e.useRef({marginCalc:C.default((e,t,n)=>{const a=at({margin:e,title:t,size:n}),{adjustedPosition:o,adjustedSize:r}=st({size:n,margin:a});return{margin:a,adjustedPosition:o,adjustedSize:r}}),accessorConversions:C.default((e,t,n,a,o)=>({nodeIDAccessor:_t(e,e=>e?e.id:void 0),sourceAccessor:_t(t,e=>e.source),targetAccessor:_t(n,e=>e.target),nodeSizeAccessor:"number"==typeof a?Hn(a):_t(a,Hn(5)),edgeWidthAccessor:_t(o,e=>e.weight||1)})),nodeStyleFns:C.default((e,t,n,a)=>({nodeStyleFn:_t(e,()=>({}),!0),nodeClassFn:_t(t,()=>"",!0),nodeRenderModeFn:_t(n,void 0,!0),nodeCanvasRenderFn:a?_t(a,void 0,!0):void 0})),edgeStyleFns:C.default((e,t,n,a)=>({edgeStyleFn:_t(e,()=>({}),!0),edgeClassFn:_t(t,()=>"",!0),edgeRenderModeFn:_t(n,void 0,!0),edgeCanvasRenderFn:a?_t(a,void 0,!0):void 0}))}),o={dataVersion:void 0,nodeData:[],edgeData:[],adjustedPosition:[],adjustedSize:[],backgroundGraphics:null,foregroundGraphics:null,projectedNodes:[],projectedEdges:[],renderNumber:0,nodeLabelAnnotations:[],graphSettings:{type:"empty-start",nodes:[],edges:[],nodeHash:new Map,edgeHash:new Map,hierarchicalNetwork:!1},edgeWidthAccessor:_t("weight"),legendSettings:void 0,margin:{top:0,left:0,right:0,bottom:0},networkFrameRender:{},nodeIDAccessor:_t("id"),nodeSizeAccessor:Hn(5),overlay:[],projectedXYPoints:[],sourceAccessor:_t("source"),targetAccessor:_t("target"),title:{title:void 0},props:n},r=e.useMemo(()=>Object.assign(Object.assign({},o),La(n,o,a.current,n._layoutMap||Ia)),[]),s=rn((e,t)=>function(e,t,n,a){const{props:o}=t,r=!t.dataVersion&&an.some(t=>o[t]!==e[t]),s=!t.dataVersion&&on.some(t=>o[t]!==e[t]);return t.dataVersion&&t.dataVersion!==e.dataVersion||!t.projectedNodes&&!t.projectedEdges||r||o.size[0]!==e.size[0]||o.size[1]!==e.size[1]||s?Object.assign(Object.assign({},La(e,t,n,a)),{props:e}):{props:e}}(e,t,a.current,e._layoutMap||Ia),n,r);sn(n,s);const i=e.useRef(n);i.current=n;const c=e.useRef(s);c.current=s;const l=e.useCallback(e=>function(e,t,{d:n,i:a,annotationLayer:o}){const{projectedNodes:r,projectedEdges:s,nodeIDAccessor:i,nodeSizeAccessor:c,networkFrameRender:l,adjustedSize:u,adjustedPosition:p}=t,{svgAnnotationRules:y}=e,m=n.ids?n:Object.assign(Object.assign({},n.edge?s.find(e=>i(e.source)===i(n.edge.source)&&i(e.target)===i(n.edge.target))||{}:r.find(e=>i(e)===n.id)||{}),n),{voronoiHover:h}=o;if(y){const n=y({d:m,i:a,networkFrameProps:e,networkFrameState:t,nodes:r,edges:s,voronoiHover:h,screenCoordinates:[m.x,m.y],adjustedPosition:p,adjustedSize:u,annotationLayer:o});if(null!==n)return n}return"node"===m.type?(({d:e,i:t,nodeSizeAccessor:n})=>{if(!e)return null;const a=Object.assign({dx:e.dx||-25,dy:e.dy||-25,x:e.x,y:e.y,note:{label:e.label,orientation:e.orientation,align:e.align},connector:{end:"arrow"}},e,{type:"callout-circle",subject:{radius:e.radius||e.radius||n(e)}});return E.createElement(R,{key:e.key||"annotation-"+t,noteData:a})})({d:m,i:a,nodeSizeAccessor:c}):"desaturation-layer"===m.type?Et({style:m.style instanceof Function?m.style(m,a):m.style,size:u,i:a,key:m.key}):"basic-node-label"===m.type?E.createElement("g",{key:m.key||"basic-"+a,transform:`translate(${m.x},${m.y})`},n.element||n.label):"function"==typeof m.type||Za.has(m.type)?(({d:e,i:t,projectedNodes:n,nodeIDAccessor:a})=>{const o=void 0!==e.x&&void 0!==e.y?e:n.find(t=>a(t)===e.id);if(!o)return null;const r=Object.assign({dx:0,dy:0,x:o.x,y:o.y,note:{label:e.label},connector:{end:"arrow"}},e,{type:"function"==typeof e.type?e.type:void 0});return E.createElement(R,{key:e.key||"annotation-"+t,noteData:r})})({d:m,i:a,projectedNodes:r,nodeIDAccessor:i}):"enclose"===m.type?(({d:e,i:t,projectedNodes:n,nodeIDAccessor:a,nodeSizeAccessor:o})=>{const r=n.filter(t=>-1!==e.ids.indexOf(a(t)));if(0===r.length)return null;const s=d.packEnclose(r.map(e=>({x:e.x,y:e.y,r:o(e)})));return jt({circle:s,d:e,i:t})})({d:m,i:a,projectedNodes:r,nodeIDAccessor:i,nodeSizeAccessor:c}):"enclose-rect"===m.type?(({d:e,i:t,projectedNodes:n,nodeIDAccessor:a,nodeSizeAccessor:o})=>{const r=n.filter(t=>-1!==e.ids.indexOf(a(t)));if(0===r.length)return null;const s=r.map(e=>{if(e.shapeNode)return{x0:e.x0,x1:e.x1,y0:e.y0,y1:e.y1};const t=o(e);return{x0:e.x-t,x1:e.x+t,y0:e.y-t,y1:e.y+t}});return At({bboxNodes:s,d:e,i:t})})({d:m,i:a,projectedNodes:r,nodeIDAccessor:i,nodeSizeAccessor:c}):"enclose-hull"===m.type?(({d:e,i:t,projectedNodes:n,nodeIDAccessor:a,nodeSizeAccessor:o})=>{const r=n.filter(t=>-1!==e.ids.indexOf(a(t)));if(0===r.length)return null;const s=[];return r.forEach(e=>{if(e.shapeNode)s.push({x:e.x0,y:e.y0}),s.push({x:e.x0,y:e.y1}),s.push({x:e.x1,y:e.y0}),s.push({x:e.x1,y:e.y1});else{const t=o(e);s.push({x:e.x-t,y:e.y-t}),s.push({x:e.x+t,y:e.y-t}),s.push({x:e.x-t,y:e.y+t}),s.push({x:e.x+t,y:e.y+t})}}),St({points:s.map(e=>[e.x,e.y]),d:e,i:t})})({d:m,i:a,projectedNodes:r,nodeIDAccessor:i,nodeSizeAccessor:c}):"highlight"===m.type?(({d:e,i:t,networkFrameRender:n})=>{const{nodes:a}=n,{customMark:o,styleFn:r}=a;let s=r;return e.style&&"function"==typeof e.style?s=e=>Object.assign(Object.assign({},r(e)),e.style(e)):e.style&&(s=e=>Object.assign(Object.assign({},r(e)),e.style)),o({d:e,styleFn:s,transform:`translate(${e.x},${e.y})`,key:"highlight-"+t})})({d:m,i:a,networkFrameRender:l}):null}(i.current,c.current,e),[]),u=e.useCallback(e=>function(e,t,{d:n,i:a,annotationLayer:o}){const{tooltipContent:r,optimizeCustomTooltipPosition:s,htmlAnnotationRules:i}=e,{projectedNodes:c,projectedEdges:l,nodeIDAccessor:d,adjustedSize:u,adjustedPosition:p}=t,{voronoiHover:y}=o,m=n.ids?n:Object.assign(Object.assign({},n.edge?l.find(e=>d(e.source)===d(n.source)&&d(e.target)===d(n.target))||{}:c.find(e=>d(e)===n.id)||{}),n);if(i){const n=i({d:m,i:a,networkFrameProps:e,networkFrameState:t,nodes:c,edges:l,voronoiHover:y,screenCoordinates:[m.x,m.y],adjustedPosition:p,adjustedSize:u,annotationLayer:o});if(null!==n)return n}return"frame-hover"===m.type?(({d:e,i:t,tooltipContent:n,optimizeCustomTooltipPosition:a,nodes:o,edges:r,nodeIDAccessor:s,adjustedSize:i})=>{const c=void 0!==e.x&&void 0!==e.y?e:e.edge?Object.assign(Object.assign({},r.find(t=>s(t.source)===s(e.source)&&s(t.target)===s(e.target))||{}),e):o.find(t=>s(t)===e.id);if(!c)return null;let l=c.edge?E.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},E.createElement("p",{key:"html-annotation-content-1"},(c.source||c.edge.source).id," to ",(c.target||c.edge.target).id)):E.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},E.createElement("p",{key:"html-annotation-content-1"},c.id),E.createElement("p",{key:"html-annotation-content-2"},"Degree: ",c.degree));"frame-hover"===c.type&&n&&(l=a?E.createElement(kt,{tooltipContent:n,tooltipContentArgs:c}):n(c));const d={position:"absolute",top:c.y+"px"};return i&&c.x>i[0]/2?d.right=i[0]-c.x+"px":d.left=c.x+"px",E.createElement("div",{key:"network-annotation-label-"+t,className:"annotation annotation-network-label "+(c.className||""),"data-testid":"network-tooltip-container",style:d},l)})({d:m,i:a,tooltipContent:r,optimizeCustomTooltipPosition:s,nodes:c,edges:l,nodeIDAccessor:d,adjustedSize:u}):null}(i.current,c.current,e),[]),{annotations:p=[],annotationSettings:y,className:m,customClickBehavior:h,customDoubleClickBehavior:g,customHoverBehavior:f,size:b,matte:x,hoverAnnotation:v,beforeElements:k,afterElements:j,interaction:A,disableContext:S,canvasPostProcess:O,canvasNodes:M,canvasEdges:w,additionalDefs:P,renderOrder:z=(s.graphSettings&&"matrix"===s.graphSettings.type?Ga:_a),sketchyRenderingEngine:N,frameRenderOrder:$,disableCanvasInteraction:D,interactionSettings:F,disableProgressiveRendering:T,transition:L}=n,{backgroundGraphics:B,foregroundGraphics:V,projectedXYPoints:I,margin:W,legendSettings:G,adjustedPosition:_,adjustedSize:H,networkFrameRender:q,nodeLabelAnnotations:Y,overlay:X,title:K}=s,Z=e.useMemo(()=>X&&X.length>0?X:void 0,[X]),Q=e.useMemo(()=>Array.isArray(v)?v:!(h||g||f)||void 0!==v&&!1!==v?!!v:Wa,[v,h,g,f]),U=e.useMemo(()=>[...p,...Y],[p,Y]),J=e.useMemo(()=>!(!M&&!w),[M,w]);return E.createElement(xt,{name:"networkframe",renderPipeline:q,adjustedPosition:_,adjustedSize:H,size:b,xScale:qa,yScale:Ya,title:K,matte:x,className:m,additionalDefs:P,frameKey:"none",projectedCoordinateNames:Ha,defaultSVGRule:l,defaultHTMLRule:u,hoverAnnotation:Q,annotations:U,annotationSettings:y,legendSettings:G,interaction:A,customClickBehavior:h,customHoverBehavior:f,customDoubleClickBehavior:g,points:I,margin:W,overlay:Z,backgroundGraphics:B,foregroundGraphics:V,beforeElements:k,afterElements:j,disableContext:S,canvasPostProcess:O,canvasRendering:J,renderOrder:z,disableCanvasInteraction:D,sketchyRenderingEngine:N,frameRenderOrder:$,interactionSettings:F,disableProgressiveRendering:T,transition:L})}const Za=new Set(["label","callout","callout-circle","callout-rect","callout-custom","xy-threshold","bracket"]);Ka.displayName="NetworkFrame";const Qa=E.memo(Ka);class Ua{constructor(e){if(this._capacity=e,this.head=0,this._size=0,1>e)throw Error("RingBuffer capacity must be at least 1");this.buffer=Array(e)}push(e){let t;return this._size===this._capacity?t=this.buffer[this.head]:this._size++,this.buffer[this.head]=e,this.head=(this.head+1)%this._capacity,t}pushMany(e){const t=[];for(const n of e){const e=this.push(n);void 0!==e&&t.push(e)}return t}get(e){if(e>=0&&this._size>e)return this.buffer[(this.head-this._size+e+this._capacity)%this._capacity]}peek(){if(0!==this._size)return this.buffer[(this.head-1+this._capacity)%this._capacity]}peekOldest(){if(0!==this._size)return this.buffer[(this.head-this._size+this._capacity)%this._capacity]}[Symbol.iterator](){let e=0;const t=this;return{next:()=>t._size>e?{done:!1,value:t.get(e++)}:{done:!0,value:void 0}}}toArray(){const e=[];for(const t of this)e.push(t);return e}resize(e){if(1>e)throw Error("RingBuffer capacity must be at least 1");const t=this.toArray(),n=[];for(;t.length>e;)n.push(t.shift());this._capacity=e,this.buffer=Array(e),this.head=0,this._size=0;for(const e of t)this.push(e);return n}clear(){this.buffer=Array(this._capacity),this.head=0,this._size=0}get size(){return this._size}get capacity(){return this._capacity}get full(){return this._size===this._capacity}}class Ja{constructor(){this._min=1/0,this._max=-1/0,this._dirty=!1}push(e){Number.isNaN(e)||(this._min>e&&(this._min=e),e>this._max&&(this._max=e))}evict(e){e!==this._min&&e!==this._max||(this._dirty=!0)}recalculate(e,t){this._min=1/0,this._max=-1/0;for(const n of e){const e=t?t(n):n;Number.isNaN(e)||(this._min>e&&(this._min=e),e>this._max&&(this._max=e))}this._dirty=!1}clear(){this._min=1/0,this._max=-1/0,this._dirty=!1}get extent(){return[this._min,this._max]}get min(){return this._min}get max(){return this._max}get dirty(){return this._dirty}}function eo(e,t,n){let a=n;for(const n of t)"lesser"===n.thresholdType?n.value>e&&(a=n.color):e>n.value&&(a=n.color);return a}const to=["#007bff","#28a745","#dc3545","#fd7e14","#6f42c1","#20c997","#e83e8c","#17a2b8","#6610f2","#ffc107"];function no(e,t,n){let a=n;for(const n of t)"lesser"===n.thresholdType?n.value>e&&(a=n.color):e>n.value&&(a=n.color);return a}function ao(e,t,n,a,o){const r=new Map;for(const s of e){const e=t(s),i=n(s);if(null==e||null==i||Number.isNaN(e)||Number.isNaN(i))continue;const c=Math.floor(e/a)*a;let l=r.get(c);if(l||(l={start:c,end:c+a,total:0,categories:new Map},r.set(c,l)),l.total+=i,o){const e=o(s);l.categories.set(e,(l.categories.get(e)||0)+i)}}return r}const oo=["#4e79a7","#f28e2b","#e15759","#76b7b2","#59a14f","#edc948","#b07aa1","#ff9da7","#9c755f","#bab0ac"],ro={line:(e,t,n,a,o,r,s)=>{const{time:i,value:c}=n,{timeAxis:l}=a,{time:d,value:u}=r,p=o.stroke||"#007bff",y=s?s.filter(e=>"threshold"===e.type&&e.color).map(e=>({value:e.value,color:e.color,thresholdType:e.thresholdType||"greater"})):null;if(!y||0>=y.length){e.beginPath(),e.strokeStyle=p,e.lineWidth=o.strokeWidth||2,e.setLineDash(o.strokeDasharray?o.strokeDasharray.split(/[\s,]+/).map(Number):[]);let n=!1;for(const a of t){const t=d(a),o=u(a);if(null==t||null==o||Number.isNaN(t)||Number.isNaN(o)){n=!1;continue}const r=i(t),s=c(o),p="x"===l?r:s,y="x"===l?s:r;n?e.lineTo(p,y):(e.moveTo(p,y),n=!0)}return void e.stroke()}e.lineWidth=o.strokeWidth||2,e.setLineDash(o.strokeDasharray?o.strokeDasharray.split(/[\s,]+/).map(Number):[]);let m=null,h=null,g=null,f=null,b=!1;function x(e,t){const n=i(e),a=c(t);return"x"===l?[n,a]:[a,n]}function v(t,n,a){e.beginPath(),e.strokeStyle=t,e.moveTo(n,a),b=!0}function k(){b&&(e.stroke(),b=!1)}for(const n of t){const t=d(n),a=u(n);if(null==t||null==a||Number.isNaN(t)||Number.isNaN(a)){k(),m=null,h=null,g=null,f=null;continue}const[o,r]=x(t,a),s=eo(a,y,p);if(null!==m&&null!==f&&null!==g){if(s===f)e.lineTo(o,r);else{const t=[];for(const e of y){const n=e.value;(g>n||n>a)&&(n>g||a>n)||g===n||a===n||t.push({t:(n-g)/(a-g),color:""})}t.sort((e,t)=>e.t-t.t);for(const n of t){const t=m+(o-m)*n.t,s=h+(r-h)*n.t,i=eo(g+(a-g)*Math.min(n.t+1e-4,1),y,p);e.lineTo(t,s),k(),v(i,t,s)}e.lineTo(o,r)}m=o,h=r,g=a,f=s}else v(s,o,r),m=o,h=r,g=a,f=s}k()},swarm:(e,t,n,a,o,r,s,i)=>{var c,l,d,u,p;const{time:y,value:m}=n,{timeAxis:h}=a,{time:g,value:f,category:b}=r,x=null==i?void 0:i.swarmStyle,v=null==i?void 0:i.barColors,k=null!==(c=null==x?void 0:x.radius)&&void 0!==c?c:3,j=null!==(d=null!==(l=null==x?void 0:x.fill)&&void 0!==l?l:o.stroke)&&void 0!==d?d:"#007bff",A=null!==(u=null==x?void 0:x.opacity)&&void 0!==u?u:.7,S=null!=(null==x?void 0:x.stroke),E=s?s.filter(e=>"threshold"===e.type&&e.color).map(e=>({value:e.value,color:e.color,thresholdType:e.thresholdType||"greater"})):null,O=E&&E.length>0;e.globalAlpha=A;let M=0;const w={};for(const n of t){const t=g(n),a=f(n);if(null==a||Number.isNaN(a))continue;let o,r;"x"===h?(o=y(t),r=m(a)):(o=m(a),r=y(t));let s=j;if(b){const e=b(n);v&&v[e]?s=v[e]:(e in w||(w[e]=to[M%to.length],M++),s=w[e])}O&&(s=no(a,E,s)),e.fillStyle=s,e.beginPath(),e.arc(o,r,k,0,2*Math.PI),e.fill(),S&&(e.strokeStyle=x.stroke,e.lineWidth=null!==(p=null==x?void 0:x.strokeWidth)&&void 0!==p?p:1,e.stroke())}e.globalAlpha=1},candlestick:()=>{throw Error("candlestickRenderer: Not yet implemented")},waterfall:(e,t,n,a,o,r,s,i)=>{var c,l,d,u,p,y,m;const{time:h,value:g}=n,{timeAxis:f,width:b,height:x}=a,{time:v,value:k}=r,j=null==i?void 0:i.waterfallStyle,A=null!==(c=null==j?void 0:j.positiveColor)&&void 0!==c?c:"#28a745",S=null!==(l=null==j?void 0:j.negativeColor)&&void 0!==l?l:"#dc3545",E=null!==(d=null==j?void 0:j.gap)&&void 0!==d?d:1,O=null==j?void 0:j.connectorStroke,M=null!==(u=null==j?void 0:j.connectorWidth)&&void 0!==u?u:1,w=null!=(null==j?void 0:j.stroke);w&&(e.strokeStyle=j.stroke,e.lineWidth=null!==(p=null==j?void 0:j.strokeWidth)&&void 0!==p?p:1);const C=[];for(const e of t){const t=k(e);null==t||Number.isNaN(t)||C.push(e)}if(0===C.length)return;let P=0,z=null,N=null;for(let t=0;C.length>t;t++){const n=C[t],a=v(n),o=k(n),r=P+o;let s;if(s=C.length-1>t?v(C[t+1])-a:t>0?a-v(C[t-1]):0,e.fillStyle=0>o?S:A,"x"===f){let t,n;0!==s?(t=h(a),n=h(a+s)):(t=h(a),n=t+b/10);const o=Math.min(t,n)+E/2,i=Math.max(t,n)-E/2,c=i-o;if(0>=c){P=r,z=i,N=r;continue}const l=g(P),d=g(r),u=Math.min(l,d),p=Math.abs(l-d);if(O&&null!=z&&null!=N){e.save(),e.strokeStyle=O,e.lineWidth=M;const t=g(N);e.beginPath(),e.moveTo(z,t),e.lineTo(o,t),e.stroke(),e.restore(),w&&(e.strokeStyle=j.stroke,e.lineWidth=null!==(y=null==j?void 0:j.strokeWidth)&&void 0!==y?y:1)}e.fillRect(o,u,c,p),w&&e.strokeRect(o,u,c,p),z=i}else{let t,n;0!==s?(t=h(a),n=h(a+s)):(t=h(a),n=t+x/10);const o=Math.min(t,n)+E/2,i=Math.max(t,n)-E/2,c=i-o;if(0>=c){P=r,z=i,N=r;continue}const l=g(P),d=g(r),u=Math.min(l,d),p=Math.abs(d-l);if(O&&null!=z&&null!=N){e.save(),e.strokeStyle=O,e.lineWidth=M;const t=g(N);e.beginPath(),e.moveTo(t,z),e.lineTo(t,o),e.stroke(),e.restore(),w&&(e.strokeStyle=j.stroke,e.lineWidth=null!==(m=null==j?void 0:j.strokeWidth)&&void 0!==m?m:1)}e.fillRect(u,o,p,c),w&&e.strokeRect(u,o,p,c),z=i}P=r,N=r}},bar:(e,t,n,a,o,r,s,i)=>{var c,l;const d=null==i?void 0:i.binSize;if(!d)return;const{time:u,value:p}=n,{timeAxis:y}=a,{time:m,value:h,category:g}=r,f=null==i?void 0:i.barColors,b=null==i?void 0:i.barStyle,x=ao(t,m,h,d,g);if(0===x.size)return;const[v,k]=u.domain(),j=null!==(c=null==b?void 0:b.gap)&&void 0!==c?c:1,A=null!=g;let S=null;if(A){const e=new Set;for(const t of x.values())for(const n of t.categories.keys())e.add(n);const t=f?Object.keys(f):[],n=new Set(t),a=Array.from(e).filter(e=>!n.has(e)).sort();S=[...t.filter(t=>e.has(t)),...a]}const E=null!=(null==b?void 0:b.stroke);E&&(e.strokeStyle=b.stroke,e.lineWidth=null!==(l=null==b?void 0:b.strokeWidth)&&void 0!==l?l:1);for(const t of x.values())if("x"===y){const n=Math.max(t.start,v),a=Math.min(t.end,k);if(n>=a)continue;const r=u(n),s=u(a),i=Math.min(r,s)+j/2,c=Math.max(r,s)-j/2-i;if(0>=c)continue;if(A&&S){let n=0,a=0;for(const o of S){const r=t.categories.get(o)||0;if(0===r)continue;const s=p(n),l=p(n+r),d=Math.min(s,l),u=Math.abs(s-l);e.fillStyle=f&&f[o]||oo[a%oo.length],e.fillRect(i,d,c,u),E&&e.strokeRect(i,d,c,u),n+=r,a++}}else{const n=p(0),a=p(t.total),r=Math.min(n,a),s=Math.abs(n-a);e.fillStyle=(null==b?void 0:b.fill)||o.stroke||"#007bff",e.fillRect(i,r,c,s),E&&e.strokeRect(i,r,c,s)}}else{const n=Math.max(t.start,v),a=Math.min(t.end,k);if(n>=a)continue;const r=u(n),s=u(a),i=Math.min(r,s)+j/2,c=Math.max(r,s)-j/2-i;if(0>=c)continue;if(A&&S){let n=0,a=0;for(const o of S){const r=t.categories.get(o)||0;if(0===r)continue;const s=p(n),l=p(n+r),d=Math.min(s,l),u=Math.abs(l-s);e.fillStyle=f&&f[o]||oo[a%oo.length],e.fillRect(d,i,u,c),E&&e.strokeRect(d,i,u,c),n+=r,a++}}else{const n=p(0),a=p(t.total),r=Math.min(n,a),s=Math.abs(a-n);e.fillStyle=(null==b?void 0:b.fill)||o.stroke||"#007bff",e.fillRect(r,i,s,c),E&&e.strokeRect(r,i,s,c)}}}},so={top:20,right:20,bottom:30,left:40},io={};function co(e,t){if("function"==typeof e)return t=>+e(t);const n=e||t;return e=>+e[n]}function lo(e){return"up"===e||"down"===e?"y":"x"}function uo(e){return Math.round(100*e)/100+""}const po={axisStroke:"#ccc",tickText:"#666",crosshair:"rgba(0, 0, 0, 0.25)",hoverFill:"rgba(255, 255, 255, 0.3)",hoverStroke:"rgba(0, 0, 0, 0.4)",pointRing:"white"},yo={background:"rgba(0, 0, 0, 0.85)",color:"white",padding:"6px 10px",borderRadius:4,fontSize:12,lineHeight:1.5,boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)",pointerEvents:"none",whiteSpace:"nowrap"};function mo({hover:e,formatTime:t}){const n=e=>Number.isInteger(e)?e+"":e.toFixed(2),a=t||n,o=e.data.barColors,r=e.data.hoveredCategory,s=e.data.hoveredCategoryValue;return E.createElement("div",{className:"semiotic-tooltip",style:yo},null!=r&&null!=s?E.createElement(E.Fragment,null,E.createElement("div",{style:{display:"flex",alignItems:"center",gap:5,fontWeight:600,marginBottom:2}},o&&o[r]&&E.createElement("span",{style:{width:8,height:8,borderRadius:"50%",background:o[r],flexShrink:0}}),E.createElement("span",null,r),E.createElement("span",{style:{marginLeft:"auto"}},n(s))),E.createElement("div",{style:{opacity:.6,fontSize:11}},"total ",n(e.value))):E.createElement("div",{style:{fontWeight:600,marginBottom:2}},n(e.value)),E.createElement("div",{style:{opacity:.7,fontSize:11}},a(e.time)))}const ho=e.forwardRef(function(t,a){const{chartType:o="line",arrowOfTime:r="right",windowMode:s="sliding",windowSize:i=200,data:c,timeAccessor:l,valueAccessor:d,timeExtent:u,valueExtent:p,extentPadding:y=.1,size:m=[500,300],margin:h,className:g,lineStyle:f=io,annotations:b,svgAnnotationRules:x,hoverAnnotation:v,tooltipContent:k,customHoverBehavior:j,showAxes:A=!0,background:S,categoryAccessor:O,binSize:M,barColors:w,barStyle:C,waterfallStyle:P,swarmStyle:z,tickFormatTime:N,tickFormatValue:$}=t,D=Object.assign(Object.assign({},so),h),F=m[0]-D.left-D.right,T=m[1]-D.top-D.bottom,L=e.useMemo(()=>co(l,"time"),[l]),R=e.useMemo(()=>co(d,"value"),[d]),B=e.useMemo(()=>O?"function"==typeof O?O:e=>e[O]:void 0,[O]),V=e.useRef(new Ua(i)),I=e.useRef(new Ja),W=e.useRef(new Ja),G=e.useRef(null),_=e.useRef(0),H=e.useRef(!1),q=e.useRef(null),[Y,X]=e.useState(0),K=e.useRef(i),Z=e.useRef(null),[Q,U]=e.useState(null),J=e.useRef(()=>{}),ee=e.useCallback(()=>{_.current||(_.current=requestAnimationFrame(()=>J.current()))},[]),te=e.useCallback(e=>{const t=V.current,n=L(e),a=R(e);"growing"===s&&t.full&&(K.current*=2,t.resize(K.current));const o=t.push(e);I.current.push(n),W.current.push(a),null!=o&&(I.current.evict(L(o)),W.current.evict(R(o))),H.current=!0,ee()},[s,L,R,ee]),ne=e.useCallback(e=>{for(const t of e)te(t)},[te]),ae=e.useCallback(()=>{V.current.clear(),I.current.clear(),W.current.clear(),H.current=!0,ee()},[ee]);e.useImperativeHandle(a,()=>({push:te,pushMany:ne,clear:ae,getData:()=>V.current.toArray()}),[te,ne,ae]),e.useEffect(()=>{if(c){V.current.clear(),I.current.clear(),W.current.clear();for(const e of c)V.current.push(e),I.current.push(L(e)),W.current.push(R(e));H.current=!0,ee()}},[c,L,R,ee]);const oe=e.useRef(()=>{}),re=e.useRef(()=>{});oe.current=e=>{if(!v)return;const t=G.current;if(!t)return;const n=t.getBoundingClientRect(),a=e.clientX-n.left-D.left,s=e.clientY-n.top-D.top;if(0>a||a>F||0>s||s>T)return void(Z.current&&(Z.current=null,U(null),j&&j(null),ee()));const i=q.current;if(!i)return;const c=V.current;if(0===c.size)return;const l=lo(r),d=i.time.invert("x"===l?a:s);let u;if("bar"===o&&M){const e=ao(c,L,R,M,B).get(Math.floor(d/M)*M);if(!e)return;const[t,n]=i.time.domain(),o=Math.max(e.start,t),r=o+(Math.min(e.end,n)-o)/2,p=i.time(r),y=i.value(e.total),m="x"===l?p:y,h="x"===l?y:p;let g,f;if(B&&e.categories.size>0){const t=w?Object.keys(w):[],n=new Set(t),o=Array.from(e.categories.keys()).filter(e=>!n.has(e)).sort(),r=[...t.filter(t=>e.categories.has(t)),...o],c="x"===l?s:a;let d=0;for(const t of r){const n=e.categories.get(t)||0;if(0===n)continue;const a=i.value(d),o=i.value(d+n);if(c>=Math.min(a,o)&&Math.max(a,o)>=c){g=t,f=n;break}d+=n}}u={data:{binStart:e.start,binEnd:e.end,total:e.total,categories:Object.fromEntries(e.categories),barColors:w||{},hoveredCategory:g,hoveredCategoryValue:f},time:r,value:e.total,x:m,y:h}}else{const e=function(e,t,n){if(0===e.size)return-1;let a=0,o=e.size-1;for(;o>a;){const r=a+o>>1;t>n(e.get(r))?a=r+1:o=r}if(a>0){const o=n(e.get(a)),r=n(e.get(a-1));if(Math.abs(o-t)>=Math.abs(r-t))return a-1}return a}(c,d,L);if(0>e)return;const t=c.get(e),n=L(t),a=R(t),o=i.time(n),r=i.value(a);u={data:t,time:n,value:a,x:"x"===l?o:r,y:"x"===l?r:o}}Z.current=u,U(u),j&&j(u),ee()},re.current=()=>{Z.current&&(Z.current=null,U(null),j&&j(null),ee())};const se=e.useCallback(e=>oe.current(e),[]),ie=e.useCallback(()=>re.current(),[]);J.current=()=>{var e;_.current=0;const t=G.current;if(!t)return;const a=t.getContext("2d");if(!a)return;const s=V.current,i=I.current,c=W.current;i.dirty&&i.recalculate(s,L),c.dirty&&c.recalculate(s,R);let l=u||i.extent,d=p||c.extent;if("bar"===o&&M&&!p&&s.size>0){const[,e]=function(e,t,n,a,o){const r=ao(e,t,n,a,o);if(0===r.size)return[0,0];let s=0;for(const e of r.values())e.total>s&&(s=e.total);return[0,s]}(s,L,R,M,B);d=[0,e+e*y]}else if("waterfall"===o&&!p&&s.size>0){const[e,t]=function(e,t){let n=0,a=0,o=0;for(const r of e){const e=t(r);null==e||Number.isNaN(e)||(o+=e,n>o&&(n=o),o>a&&(a=o))}return[n,a]}(s,R),n=t-e,a=n>0?n*y:1;d=[Math.min(0,e-Math.abs(a)),Math.max(0,t+Math.abs(a))]}else if(!p&&d[0]!==1/0){const e=d[1]-d[0],t=e>0?e*y:1;d=[d[0]-t,d[1]+t]}l[0]!==1/0&&l[1]!==-1/0||(l=[0,1]),d[0]!==1/0&&d[1]!==-1/0||(d=[0,1]);const h=function(e,t,a,o,r){let s,i;return"x"===lo(e)?(s="right"===e?[0,o]:[o,0],i=[r,0]):(s="down"===e?[0,r]:[r,0],i=[0,o]),{time:n.scaleLinear().domain(t).range(s),value:n.scaleLinear().domain(a).range(i)}}(r,l,d,F,T);q.current=h;const g="undefined"!=typeof window&&window.devicePixelRatio||1;t.width=m[0]*g,t.height=m[1]*g,t.style.width=m[0]+"px",t.style.height=m[1]+"px",a.scale(g,g),a.translate(D.left,D.top),a.clearRect(-D.left,-D.top,m[0],m[1]);const k=function(e){if(!e)return po;const t=getComputedStyle(e),n=t.getPropertyValue("--text-secondary").trim(),a=t.getPropertyValue("--text-primary").trim(),o=t.getPropertyValue("--surface-3").trim(),r=t.getPropertyValue("--surface-0").trim();return n||a?{axisStroke:o||po.axisStroke,tickText:n||po.tickText,crosshair:n?n+"66":po.crosshair,hoverFill:r?r+"4D":po.hoverFill,hoverStroke:n?n+"99":po.hoverStroke,pointRing:r||po.pointRing}:po}(t);S&&(a.fillStyle=S,a.fillRect(0,0,F,T)),A&&(a.save(),function(e,t,n,a,o,r,s,i,c){const l=lo(t),d=i||uo,u=c||po;if(e.strokeStyle=u.axisStroke,e.lineWidth=1,e.fillStyle=u.tickText,e.font="10px sans-serif",e.textAlign="center",e.textBaseline="top","x"===l){e.beginPath(),e.moveTo(0,r),e.lineTo(o,r),e.stroke(),e.beginPath(),e.moveTo(0,0),e.lineTo(0,r),e.stroke();const t=n.ticks(5);e.textAlign="center",e.textBaseline="top";for(const a of t){const t=n(a);e.beginPath(),e.moveTo(t,r),e.lineTo(t,r+5),e.stroke(),s&&e.fillText(s(a),t,r+7)}e.textAlign="right",e.textBaseline="middle";const i=a.ticks(5);for(const t of i){const n=a(t);e.beginPath(),e.moveTo(-5,n),e.lineTo(0,n),e.stroke(),e.fillText(d(t),-8,n)}}else{e.beginPath(),e.moveTo(0,0),e.lineTo(0,r),e.stroke(),e.beginPath(),e.moveTo(0,"y"===l&&"down"===t?0:r),e.lineTo(o,"y"===l&&"down"===t?0:r),e.stroke(),e.textAlign="center",e.textBaseline="top";const i=a.ticks(5);for(const t of i){const n=a(t);e.beginPath(),e.moveTo(n,r),e.lineTo(n,r+5),e.stroke(),e.fillText(d(t),n,r+7)}e.textAlign="right",e.textBaseline="middle";const c=n.ticks(5);for(const t of c){const a=n(t);e.beginPath(),e.moveTo(-5,a),e.lineTo(0,a),e.stroke(),s&&e.fillText(s(t),-8,a)}}}(a,r,h.time,h.value,F,T,N,$,k),a.restore());const j=ro[o];if(j&&j(a,s,h,{width:F,height:T,timeAxis:lo(r)},f,{time:L,value:R,category:B},b,"bar"===o?{binSize:M,barColors:w,barStyle:C}:"waterfall"===o?{waterfallStyle:P}:"swarm"===o?{swarmStyle:z,barColors:w}:void 0),v&&Z.current&&"bar"===o&&M){const t=Z.current.data;if(null!=t.binStart){const n=null!==(e=null==C?void 0:C.gap)&&void 0!==e?e:1,o=lo(r),s=null!=t.hoveredCategory?(()=>{const e=t.categories||{},n=w?Object.keys(w):[],a=new Set(n),o=Object.keys(e).filter(e=>!a.has(e)).sort(),r=[...n.filter(t=>t in e),...o];let s=0;for(const n of r){if(n===t.hoveredCategory)return s;s+=e[n]||0}return s})():0,i=null!=t.hoveredCategory?s+(t.hoveredCategoryValue||0):t.total,[c,l]=h.time.domain(),d=Math.max(t.binStart,c),u=Math.min(t.binEnd,l);if("x"===o){const e=h.time(d),t=h.time(u),o=Math.min(e,t)+n/2,r=Math.max(e,t)-n/2,c=h.value(s),l=h.value(i),p=Math.min(c,l),y=Math.abs(c-l);a.fillStyle=k.hoverFill,a.fillRect(o,p,r-o,y),a.strokeStyle=k.hoverStroke,a.lineWidth=1,a.setLineDash([]),a.strokeRect(o,p,r-o,y)}else{const e=h.time(d),t=h.time(u),o=Math.min(e,t)+n/2,r=Math.max(e,t)-n/2,c=h.value(s),l=h.value(i),p=Math.min(c,l),y=Math.abs(l-c);a.fillStyle=k.hoverFill,a.fillRect(p,o,y,r-o),a.strokeStyle=k.hoverStroke,a.lineWidth=1,a.setLineDash([]),a.strokeRect(p,o,y,r-o)}}}v&&Z.current&&function(e,t,n,a,o,r,s){if(!1===o.crosshair)return;const i=s||po;e.save();const c="object"==typeof o.crosshair?o.crosshair:{};e.strokeStyle=c.stroke||i.crosshair,e.lineWidth=c.strokeWidth||1,e.setLineDash(c.strokeDasharray?c.strokeDasharray.split(/[\s,]+/).map(Number):[4,4]),e.beginPath(),e.moveTo(t.x,0),e.lineTo(t.x,a),e.stroke(),e.beginPath(),e.moveTo(0,t.y),e.lineTo(n,t.y),e.stroke(),e.restore(),e.beginPath(),e.arc(t.x,t.y,4,0,2*Math.PI),e.fillStyle=r,e.fill(),e.strokeStyle=i.pointRing,e.lineWidth=2,e.stroke()}(a,Z.current,F,T,"object"==typeof v?v:{},f.stroke||"#007bff",k);const E=H.current;H.current=!1,E&&b&&b.length>0&&x&&X(e=>e+1)},e.useEffect(()=>(ee(),()=>{_.current&&cancelAnimationFrame(_.current)}),[ee]),e.useEffect(()=>{H.current=!0,ee()},[r,o,F,T,A,S,f,ee]);const ce=E.useMemo(()=>{if(!b||0===b.length||!x)return null;const e=q.current,t=lo(r);return b.map((n,a)=>x(n,a,{scales:e,timeAxis:t,width:F,height:T})).filter(Boolean)},[b,x,r,F,T,Y]),le=ce&&ce.length>0,de=v&&Q?E.createElement("div",{className:"realtime-frame-tooltip",style:{position:"absolute",left:D.left+Q.x,top:D.top+Q.y,transform:`translate(${Q.x>.7*F?"calc(-100% - 12px)":"12px"}, ${.3*T>Q.y?"4px":"calc(-100% - 4px)"})`,pointerEvents:"none",zIndex:1}},k?k(Q):E.createElement(mo,{hover:Q,formatTime:N})):null;return E.createElement("div",{className:"realtime-frame"+(g?" "+g:""),style:{position:"relative",width:m[0],height:m[1]},onMouseMove:v?se:void 0,onMouseLeave:v?ie:void 0},E.createElement("canvas",{ref:G,style:{position:"absolute",left:0,top:0}}),le&&E.createElement("svg",{width:m[0],height:m[1],style:{position:"absolute",top:0,left:0,pointerEvents:"none"}},E.createElement("g",{transform:`translate(${D.left},${D.top})`},ce)),de)}),go=e.forwardRef(function(t,n){const{size:a=[500,300],margin:o,className:r,arrowOfTime:s="right",windowMode:i="sliding",windowSize:c=200,data:l,timeAccessor:d,valueAccessor:u,timeExtent:p,valueExtent:y,extentPadding:m,stroke:h="#007bff",strokeWidth:g=2,strokeDasharray:f,showAxes:b=!0,background:x,enableHover:v,tooltipContent:k,onHover:j,annotations:A,svgAnnotationRules:S,tickFormatTime:O,tickFormatValue:M}=t,w=e.useRef(null);return e.useImperativeHandle(n,()=>({push:e=>{var t;return null===(t=w.current)||void 0===t?void 0:t.push(e)},pushMany:e=>{var t;return null===(t=w.current)||void 0===t?void 0:t.pushMany(e)},clear:()=>{var e;return null===(e=w.current)||void 0===e?void 0:e.clear()},getData:()=>{var e,t;return null!==(t=null===(e=w.current)||void 0===e?void 0:e.getData())&&void 0!==t?t:[]}})),E.createElement(ho,{ref:w,chartType:"line",size:a,margin:o,className:r,arrowOfTime:s,windowMode:i,windowSize:c,data:l,timeAccessor:d,valueAccessor:u,timeExtent:p,valueExtent:y,extentPadding:m,lineStyle:{stroke:h,strokeWidth:g,strokeDasharray:f},showAxes:b,background:x,hoverAnnotation:v,tooltipContent:k,customHoverBehavior:j,annotations:A,svgAnnotationRules:S,tickFormatTime:O,tickFormatValue:M})}),fo=e.forwardRef(function(t,n){const{binSize:a,size:o=[500,300],margin:r,className:s,arrowOfTime:i="right",windowMode:c="sliding",windowSize:l=200,data:d,timeAccessor:u,valueAccessor:p,timeExtent:y,valueExtent:m,extentPadding:h,categoryAccessor:g,colors:f,fill:b,stroke:x,strokeWidth:v,gap:k,showAxes:j=!0,background:A,enableHover:S,tooltipContent:O,onHover:M,annotations:w,svgAnnotationRules:C,tickFormatTime:P,tickFormatValue:z}=t,N=e.useRef(null);e.useImperativeHandle(n,()=>({push:e=>{var t;return null===(t=N.current)||void 0===t?void 0:t.push(e)},pushMany:e=>{var t;return null===(t=N.current)||void 0===t?void 0:t.pushMany(e)},clear:()=>{var e;return null===(e=N.current)||void 0===e?void 0:e.clear()},getData:()=>{var e,t;return null!==(t=null===(e=N.current)||void 0===e?void 0:e.getData())&&void 0!==t?t:[]}}));const $={};return null!=b&&($.fill=b),null!=x&&($.stroke=x),null!=v&&($.strokeWidth=v),null!=k&&($.gap=k),E.createElement(ho,{ref:N,chartType:"bar",size:o,margin:r,className:s,arrowOfTime:i,windowMode:c,windowSize:l,data:d,timeAccessor:u,valueAccessor:p,timeExtent:y,valueExtent:m,extentPadding:h,binSize:a,categoryAccessor:g,barColors:f,barStyle:$,showAxes:j,background:A,hoverAnnotation:S,tooltipContent:O,customHoverBehavior:M,annotations:w,svgAnnotationRules:C,tickFormatTime:P,tickFormatValue:z})}),bo=e.forwardRef(function(t,n){const{size:a=[500,300],margin:o,className:r,arrowOfTime:s="right",windowMode:i="sliding",windowSize:c=200,data:l,timeAccessor:d,valueAccessor:u,timeExtent:p,valueExtent:y,extentPadding:m,categoryAccessor:h,colors:g,radius:f,fill:b,opacity:x,stroke:v,strokeWidth:k,showAxes:j=!0,background:A,enableHover:S,tooltipContent:O,onHover:M,annotations:w,svgAnnotationRules:C,tickFormatTime:P,tickFormatValue:z}=t,N=e.useRef(null);e.useImperativeHandle(n,()=>({push:e=>{var t;return null===(t=N.current)||void 0===t?void 0:t.push(e)},pushMany:e=>{var t;return null===(t=N.current)||void 0===t?void 0:t.pushMany(e)},clear:()=>{var e;return null===(e=N.current)||void 0===e?void 0:e.clear()},getData:()=>{var e,t;return null!==(t=null===(e=N.current)||void 0===e?void 0:e.getData())&&void 0!==t?t:[]}}));const $={};return null!=f&&($.radius=f),null!=b&&($.fill=b),null!=x&&($.opacity=x),null!=v&&($.stroke=v),null!=k&&($.strokeWidth=k),E.createElement(ho,{ref:N,chartType:"swarm",size:a,margin:o,className:r,arrowOfTime:s,windowMode:i,windowSize:c,data:l,timeAccessor:d,valueAccessor:u,timeExtent:p,valueExtent:y,extentPadding:m,categoryAccessor:h,barColors:g,swarmStyle:$,showAxes:j,background:A,hoverAnnotation:S,tooltipContent:O,customHoverBehavior:M,annotations:w,svgAnnotationRules:C,tickFormatTime:P,tickFormatValue:z})}),xo=e.forwardRef(function(t,n){const{size:a=[500,300],margin:o,className:r,arrowOfTime:s="right",windowMode:i="sliding",windowSize:c=200,data:l,timeAccessor:d,valueAccessor:u,timeExtent:p,valueExtent:y,extentPadding:m,positiveColor:h,negativeColor:g,connectorStroke:f,connectorWidth:b,gap:x,stroke:v,strokeWidth:k,showAxes:j=!0,background:A,enableHover:S,tooltipContent:O,onHover:M,annotations:w,svgAnnotationRules:C,tickFormatTime:P,tickFormatValue:z}=t,N=e.useRef(null);e.useImperativeHandle(n,()=>({push:e=>{var t;return null===(t=N.current)||void 0===t?void 0:t.push(e)},pushMany:e=>{var t;return null===(t=N.current)||void 0===t?void 0:t.pushMany(e)},clear:()=>{var e;return null===(e=N.current)||void 0===e?void 0:e.clear()},getData:()=>{var e,t;return null!==(t=null===(e=N.current)||void 0===e?void 0:e.getData())&&void 0!==t?t:[]}}));const $={};return null!=h&&($.positiveColor=h),null!=g&&($.negativeColor=g),null!=f&&($.connectorStroke=f),null!=b&&($.connectorWidth=b),null!=x&&($.gap=x),null!=v&&($.stroke=v),null!=k&&($.strokeWidth=k),E.createElement(ho,{ref:N,chartType:"waterfall",size:a,margin:o,className:r,arrowOfTime:s,windowMode:i,windowSize:c,data:l,timeAccessor:d,valueAccessor:u,timeExtent:p,valueExtent:y,extentPadding:m,waterfallStyle:$,showAxes:j,background:A,hoverAnnotation:S,tooltipContent:O,customHoverBehavior:M,annotations:w,svgAnnotationRules:C,tickFormatTime:P,tickFormatValue:z})}),vo={width:{type:"number"},height:{type:"number"},margin:{type:"object"},className:{type:"string"},title:{type:"string"},enableHover:{type:"boolean"},showLegend:{type:"boolean"},showGrid:{type:"boolean"},colorBy:{type:["string","function"]},colorScheme:{type:["string","array"]},tooltip:{type:["function","object"]},frameProps:{type:"object"}},ko={xLabel:{type:"string"},yLabel:{type:"string"},xFormat:{type:"function"},yFormat:{type:"function"}},jo={categoryLabel:{type:"string"},valueLabel:{type:"string"},valueFormat:{type:"function"}},Ao=["linear","monotoneX","monotoneY","step","stepAfter","stepBefore","basis","cardinal","catmullRom"],So=["vertical","horizontal"],Eo={LineChart:{required:["data"],dataShape:"array",dataAccessors:["xAccessor","yAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),ko),{data:{type:"array"},xAccessor:{type:["string","function"]},yAccessor:{type:["string","function"]},lineBy:{type:["string","function"]},lineDataAccessor:{type:"string"},curve:{type:"string",enum:Ao},lineWidth:{type:"number"},showPoints:{type:"boolean"},pointRadius:{type:"number"},fillArea:{type:"boolean"},areaOpacity:{type:"number"}})},AreaChart:{required:["data"],dataShape:"array",dataAccessors:["xAccessor","yAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),ko),{data:{type:"array"},xAccessor:{type:["string","function"]},yAccessor:{type:["string","function"]},areaBy:{type:["string","function"]},lineDataAccessor:{type:"string"},curve:{type:"string",enum:Ao},areaOpacity:{type:"number"},showLine:{type:"boolean"},lineWidth:{type:"number"}})},StackedAreaChart:{required:["data"],dataShape:"array",dataAccessors:["xAccessor","yAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),ko),{data:{type:"array"},xAccessor:{type:["string","function"]},yAccessor:{type:["string","function"]},areaBy:{type:["string","function"]},lineDataAccessor:{type:"string"},curve:{type:"string",enum:Ao},areaOpacity:{type:"number"},showLine:{type:"boolean"},lineWidth:{type:"number"},normalize:{type:"boolean"}})},Scatterplot:{required:["data"],dataShape:"array",dataAccessors:["xAccessor","yAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),ko),{data:{type:"array"},xAccessor:{type:["string","function"]},yAccessor:{type:["string","function"]},sizeBy:{type:["string","function"]},sizeRange:{type:"array"},pointRadius:{type:"number"},pointOpacity:{type:"number"}})},BubbleChart:{required:["data","sizeBy"],dataShape:"array",dataAccessors:["xAccessor","yAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),ko),{data:{type:"array"},xAccessor:{type:["string","function"]},yAccessor:{type:["string","function"]},sizeBy:{type:["string","function"]},sizeRange:{type:"array"},bubbleOpacity:{type:"number"},bubbleStrokeWidth:{type:"number"},bubbleStrokeColor:{type:"string"}})},Heatmap:{required:["data"],dataShape:"array",dataAccessors:["xAccessor","yAccessor","valueAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),ko),{data:{type:"array"},xAccessor:{type:["string","function"]},yAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},colorScheme:{type:"string",enum:["blues","reds","greens","viridis","custom"]},customColorScale:{type:["object","function"]},showValues:{type:"boolean"},valueFormat:{type:"function"},cellBorderColor:{type:"string"},cellBorderWidth:{type:"number"}})},BarChart:{required:["data"],dataShape:"array",dataAccessors:["categoryAccessor","valueAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),jo),{data:{type:"array"},categoryAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},orientation:{type:"string",enum:So},sort:{type:["boolean","string","function"]},barPadding:{type:"number"}})},StackedBarChart:{required:["data","stackBy"],dataShape:"array",dataAccessors:["categoryAccessor","valueAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),jo),{data:{type:"array"},categoryAccessor:{type:["string","function"]},stackBy:{type:["string","function"]},valueAccessor:{type:["string","function"]},orientation:{type:"string",enum:So},normalize:{type:"boolean"},barPadding:{type:"number"}})},GroupedBarChart:{required:["data","groupBy"],dataShape:"array",dataAccessors:["categoryAccessor","valueAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),jo),{data:{type:"array"},categoryAccessor:{type:["string","function"]},groupBy:{type:["string","function"]},valueAccessor:{type:["string","function"]},orientation:{type:"string",enum:So},barPadding:{type:"number"}})},SwarmPlot:{required:["data"],dataShape:"array",dataAccessors:["categoryAccessor","valueAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),jo),{data:{type:"array"},categoryAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},orientation:{type:"string",enum:So},sizeBy:{type:["string","function"]},sizeRange:{type:"array"},pointRadius:{type:"number"},pointOpacity:{type:"number"},categoryPadding:{type:"number"}})},BoxPlot:{required:["data"],dataShape:"array",dataAccessors:["categoryAccessor","valueAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),jo),{data:{type:"array"},categoryAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},orientation:{type:"string",enum:So},showOutliers:{type:"boolean"},outlierRadius:{type:"number"},categoryPadding:{type:"number"}})},DotPlot:{required:["data"],dataShape:"array",dataAccessors:["categoryAccessor","valueAccessor"],props:Object.assign(Object.assign(Object.assign({},vo),jo),{data:{type:"array"},categoryAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},orientation:{type:"string",enum:So},sort:{type:["boolean","string","function"]},dotRadius:{type:"number"},categoryPadding:{type:"number"}})},PieChart:{required:["data"],dataShape:"array",dataAccessors:["categoryAccessor","valueAccessor"],props:Object.assign(Object.assign({},vo),{data:{type:"array"},categoryAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},startAngle:{type:"number"},slicePadding:{type:"number"}})},DonutChart:{required:["data"],dataShape:"array",dataAccessors:["categoryAccessor","valueAccessor"],props:Object.assign(Object.assign({},vo),{data:{type:"array"},categoryAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},innerRadius:{type:"number"},centerContent:{type:["object","string","number"]},startAngle:{type:"number"},slicePadding:{type:"number"}})},ForceDirectedGraph:{required:["nodes","edges"],dataShape:"network",dataAccessors:["nodeIDAccessor","sourceAccessor","targetAccessor"],props:Object.assign(Object.assign({},vo),{nodes:{type:"array"},edges:{type:"array"},nodeIDAccessor:{type:["string","function"]},sourceAccessor:{type:["string","function"]},targetAccessor:{type:["string","function"]},nodeLabel:{type:["string","function"]},nodeSize:{type:["number","string","function"]},nodeSizeRange:{type:"array"},edgeWidth:{type:["number","string","function"]},edgeColor:{type:"string"},edgeOpacity:{type:"number"},iterations:{type:"number"},forceStrength:{type:"number"},showLabels:{type:"boolean"}})},SankeyDiagram:{required:["edges"],dataShape:"network",dataAccessors:["sourceAccessor","targetAccessor"],props:Object.assign(Object.assign({},vo),{nodes:{type:"array"},edges:{type:"array"},sourceAccessor:{type:["string","function"]},targetAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},nodeIdAccessor:{type:["string","function"]},edgeColorBy:{type:["string","function"],enum:["source","target","gradient"]},orientation:{type:"string",enum:So},nodeAlign:{type:"string",enum:["justify","left","right","center"]},nodePaddingRatio:{type:"number"},nodeWidth:{type:"number"},nodeLabel:{type:["string","function"]},showLabels:{type:"boolean"},edgeOpacity:{type:"number"},edgeSort:{type:"function"}})},ChordDiagram:{required:["edges"],dataShape:"network",dataAccessors:["sourceAccessor","targetAccessor"],props:Object.assign(Object.assign({},vo),{nodes:{type:"array"},edges:{type:"array"},sourceAccessor:{type:["string","function"]},targetAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},nodeIdAccessor:{type:["string","function"]},edgeColorBy:{type:["string","function"],enum:["source","target"]},padAngle:{type:"number"},groupWidth:{type:"number"},sortGroups:{type:"function"},nodeLabel:{type:["string","function"]},showLabels:{type:"boolean"},edgeOpacity:{type:"number"}})},TreeDiagram:{required:["data"],dataShape:"object",dataAccessors:[],props:Object.assign(Object.assign({},vo),{data:{type:"object"},layout:{type:"string",enum:["tree","cluster","partition","treemap","circlepack"]},orientation:{type:"string",enum:["vertical","horizontal","radial"]},childrenAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},nodeIdAccessor:{type:["string","function"]},colorByDepth:{type:"boolean"},edgeStyle:{type:"string",enum:["line","curve"]},nodeLabel:{type:["string","function"]},showLabels:{type:"boolean"},nodeSize:{type:"number"}})},Treemap:{required:["data"],dataShape:"object",dataAccessors:[],props:Object.assign(Object.assign({},vo),{data:{type:"object"},childrenAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},nodeIdAccessor:{type:["string","function"]},colorByDepth:{type:"boolean"},showLabels:{type:"boolean"},nodeLabel:{type:["string","function"]}})},CirclePack:{required:["data"],dataShape:"object",dataAccessors:[],props:Object.assign(Object.assign({},vo),{data:{type:"object"},childrenAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},nodeIdAccessor:{type:["string","function"]},colorByDepth:{type:"boolean"},showLabels:{type:"boolean"},nodeLabel:{type:["string","function"]},circleOpacity:{type:"number"}})},RealtimeLineChart:{required:[],dataShape:"realtime",dataAccessors:[],props:{size:{type:"array"},margin:{type:"object"},className:{type:"string"},timeAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},windowSize:{type:"number"},windowMode:{type:"string",enum:["sliding","stepping"]},arrowOfTime:{type:"string",enum:["left","right"]},stroke:{type:"string"},strokeWidth:{type:"number"},strokeDasharray:{type:"string"},timeExtent:{type:"array"},valueExtent:{type:"array"},extentPadding:{type:"number"},showAxes:{type:"boolean"},background:{type:"string"},enableHover:{type:["boolean","object"]},tooltipContent:{type:"function"},onHover:{type:"function"},annotations:{type:"array"},svgAnnotationRules:{type:"function"},tickFormatTime:{type:"function"},tickFormatValue:{type:"function"}}},RealtimeBarChart:{required:["binSize"],dataShape:"realtime",dataAccessors:[],props:{binSize:{type:"number"},size:{type:"array"},margin:{type:"object"},className:{type:"string"},timeAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},categoryAccessor:{type:["string","function"]},colors:{type:"object"},windowSize:{type:"number"},windowMode:{type:"string",enum:["sliding","stepping"]},arrowOfTime:{type:"string",enum:["left","right"]},fill:{type:"string"},stroke:{type:"string"},strokeWidth:{type:"number"},gap:{type:"number"},timeExtent:{type:"array"},valueExtent:{type:"array"},extentPadding:{type:"number"},showAxes:{type:"boolean"},background:{type:"string"},enableHover:{type:["boolean","object"]},tooltipContent:{type:"function"},onHover:{type:"function"},annotations:{type:"array"},svgAnnotationRules:{type:"function"},tickFormatTime:{type:"function"},tickFormatValue:{type:"function"}}},RealtimeSwarmChart:{required:[],dataShape:"realtime",dataAccessors:[],props:{size:{type:"array"},margin:{type:"object"},className:{type:"string"},timeAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},categoryAccessor:{type:["string","function"]},colors:{type:"object"},windowSize:{type:"number"},windowMode:{type:"string",enum:["sliding","stepping"]},arrowOfTime:{type:"string",enum:["left","right"]},radius:{type:"number"},fill:{type:"string"},opacity:{type:"number"},stroke:{type:"string"},strokeWidth:{type:"number"},timeExtent:{type:"array"},valueExtent:{type:"array"},extentPadding:{type:"number"},showAxes:{type:"boolean"},background:{type:"string"},enableHover:{type:["boolean","object"]},tooltipContent:{type:"function"},onHover:{type:"function"},annotations:{type:"array"},svgAnnotationRules:{type:"function"},tickFormatTime:{type:"function"},tickFormatValue:{type:"function"}}},RealtimeWaterfallChart:{required:[],dataShape:"realtime",dataAccessors:[],props:{size:{type:"array"},margin:{type:"object"},className:{type:"string"},timeAccessor:{type:["string","function"]},valueAccessor:{type:["string","function"]},windowSize:{type:"number"},windowMode:{type:"string",enum:["sliding","stepping"]},arrowOfTime:{type:"string",enum:["left","right"]},positiveColor:{type:"string"},negativeColor:{type:"string"},connectorStroke:{type:"string"},connectorWidth:{type:"number"},gap:{type:"number"},stroke:{type:"string"},strokeWidth:{type:"number"},timeExtent:{type:"array"},valueExtent:{type:"array"},extentPadding:{type:"number"},showAxes:{type:"boolean"},background:{type:"string"},enableHover:{type:["boolean","object"]},tooltipContent:{type:"function"},onHover:{type:"function"},annotations:{type:"array"},svgAnnotationRules:{type:"function"},tickFormatTime:{type:"function"},tickFormatValue:{type:"function"}}}};function Oo(e,t){return(Array.isArray(t)?t:[t]).includes(Array.isArray(e)?"array":typeof e)}exports.AreaChart=function(n){var a;const{data:o,width:r=600,height:s=400,margin:i,className:c,title:l,xLabel:d,yLabel:u,xFormat:p,yFormat:y,xAccessor:m="x",yAccessor:h="y",areaBy:g,lineDataAccessor:f="coordinates",colorBy:b,colorScheme:x="category10",curve:v="monotoneX",areaOpacity:k=.7,showLine:j=!0,lineWidth:A=2,enableHover:S=!0,showGrid:O=!1,showLegend:M,tooltip:w,frameProps:C={}}=n,P=o||[],z=void 0!==(null===(a=P[0])||void 0===a?void 0:a[f]),N=e.useMemo(()=>{if(z)return P;if(g){const e=P.reduce((e,t)=>{const n="function"==typeof g?g(t):t[g];if(!e[n]){const t={[f]:[]};"string"==typeof g&&(t[g]=n),e[n]=t}return e[n][f].push(t),e},{});return Object.values(e)}return[{[f]:P}]},[P,g,f,z]),$=kn(P,b,x),D=$n[v]||t.curveMonotoneX,F=e.useMemo(()=>e=>{const t={},n=b?gn(e,b,$):xn;return t.fill=n,t.fillOpacity=k,j?(t.stroke=n,t.strokeWidth=A):t.stroke="none",t},[b,$,k,j,A]),T=e.useMemo(()=>{const e=[];return e.push(Object.assign({orient:"left",label:u,tickFormat:y},O&&{tickLineGenerator:()=>null})),e.push(Object.assign({orient:"bottom",label:d,tickFormat:p},O&&{tickLineGenerator:()=>null})),e},[d,u,p,y,O]),L=e.useMemo(()=>({type:"area",interpolator:D}),[D]),R=void 0!==M?M:N.length>1,B=e.useMemo(()=>{if(R&&b)return An({data:N,colorBy:b,colorScale:$,getColor:gn})},[R,b,N,$]),V=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:50,bottom:60,left:70,right:40}),i);return B&&120>e.right&&(e.right=120),e},[i,B]),I=Cn({componentName:"AreaChart",data:P,accessors:{xAccessor:m,yAccessor:h}});if(I)return E.createElement(wn,{componentName:"AreaChart",message:I,width:r,height:s});const W=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[r,s],lines:N,xAccessor:m,yAccessor:h,lineDataAccessor:f,lineType:L,lineStyle:F,axes:T,hoverAnnotation:S,margin:V},B&&{legend:B}),c&&{className:c}),l&&{title:l}),w&&{tooltipContent:Mn(w)}),{transition:!0}),C);return E.createElement(yn,Object.assign({},W))},exports.BarChart=function(t){const{data:n,width:a=600,height:o=400,margin:r,className:s,title:i,categoryAccessor:c="category",valueAccessor:l="value",orientation:d="vertical",categoryLabel:u,valueLabel:p,valueFormat:y,colorBy:m,colorScheme:h="category10",sort:g=!1,barPadding:f=5,enableHover:b=!0,showGrid:x=!1,showLegend:v,tooltip:k,frameProps:j={}}=t,A=n||[],S=jn(A,g,l),O=kn(A,m,h),M=e.useMemo(()=>e=>{const t={};return t.fill=m?gn(e,m,O):xn,t},[m,O]),w=e.useMemo(()=>{const e=[];return"vertical"===d?(e.push(Object.assign({orient:"left",label:p,tickFormat:y},x&&{tickLineGenerator:()=>null})),u&&e.push({orient:"bottom",label:u})):(u&&e.push({orient:"left",label:u}),e.push(Object.assign({orient:"bottom",label:p,tickFormat:y},x&&{tickLineGenerator:()=>null}))),e},[d,u,p,y,x]),C=void 0!==v?v:!!m,P=e.useMemo(()=>{if(C&&m)return An({data:S,colorBy:m,colorScale:O,getColor:gn})},[C,m,S,O]),z=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:50,bottom:60,left:70,right:40}),r);return P&&120>e.right&&(e.right=120),e},[r,P]),N=e.useMemo(()=>e=>{const t="function"==typeof c?c(e):e[c],n="function"==typeof l?l(e):e[l];return E.createElement("div",{className:"semiotic-tooltip",style:Sn},E.createElement("div",{style:{fontWeight:"bold"}},t+""),E.createElement("div",{style:{marginTop:"4px"}},"number"==typeof n?n.toLocaleString():n+""))},[c,l]),$=Cn({componentName:"BarChart",data:A,accessors:{categoryAccessor:c,valueAccessor:l}});if($)return E.createElement(wn,{componentName:"BarChart",message:$,width:a,height:o});const D=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],data:S,oAccessor:c,rAccessor:l,type:"bar",projection:"horizontal"===d?"horizontal":"vertical",style:M,axes:w,hoverAnnotation:b,margin:z,oPadding:f},P&&{legend:P}),s&&{className:s}),i&&{title:i}),{tooltipContent:k?Mn(k):N,transition:!0}),j);return E.createElement(ra,Object.assign({},D))},exports.BoxPlot=function(t){const{data:n,width:a=600,height:o=400,margin:r,className:s,title:i,categoryAccessor:c="category",valueAccessor:l="value",orientation:d="vertical",categoryLabel:u,valueLabel:p,valueFormat:y,colorBy:m,colorScheme:h="category10",showOutliers:g=!0,outlierRadius:f=3,categoryPadding:b=20,enableHover:x=!0,showGrid:v=!1,showLegend:k,tooltip:j,frameProps:A={}}=t,S=n||[],O=kn(S,m,h),M=e.useMemo(()=>e=>{const t=m?gn(e,m,O):xn;return{fill:t,stroke:t,fillOpacity:.8}},[m,O]),w=e.useMemo(()=>{if(g)return e=>{const t={r:f,fillOpacity:.6};return t.fill=m?gn(e,m,O):xn,t}},[g,f,m,O]),C=e.useMemo(()=>{const e=[];return"vertical"===d?(e.push(Object.assign({orient:"left",label:p,tickFormat:y},v&&{tickLineGenerator:()=>null})),u&&e.push({orient:"bottom",label:u})):(u&&e.push({orient:"left",label:u}),e.push(Object.assign({orient:"bottom",label:p,tickFormat:y},v&&{tickLineGenerator:()=>null}))),e},[d,u,p,y,v]),P=void 0!==k?k:!!m,z=e.useMemo(()=>{if(P&&m)return An({data:S,colorBy:m,colorScale:O,getColor:gn})},[P,m,S,O]),N=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:50,bottom:60,left:70,right:40}),r);return z&&120>e.right&&(e.right=120),e},[r,z]),$=e.useMemo(()=>{const e=vn(l);return t=>{const n=(t.pieces||[]).map(t=>Number(e(t))).filter(e=>!isNaN(e)).sort((e,t)=>e-t),a=n.length,o=e=>"number"==typeof e?e.toLocaleString():(null!=e?e:"")+"";let r=[];if(a>=2){const e=e=>{const t=e*(a-1),o=Math.floor(t);return n[o]+(n[Math.ceil(t)]-n[o])*(t-o)};r=[{label:"Max",value:o(n[a-1]),active:"max"===t.summaryPieceName},{label:"Third Quartile",value:o(e(.75)),active:"q3area"===t.summaryPieceName},{label:"Median",value:o(e(.5)),active:"median"===t.summaryPieceName},{label:"First Quartile",value:o(e(.25)),active:"q1area"===t.summaryPieceName},{label:"Min",value:o(n[0]),active:"min"===t.summaryPieceName}]}return E.createElement("div",{className:"semiotic-tooltip",style:Sn},E.createElement("div",{style:{fontWeight:"bold",marginBottom:"4px"}},t.key+""),r.map(e=>E.createElement("div",{key:e.label,style:{display:"flex",justifyContent:"space-between",gap:"12px",fontWeight:e.active?"bold":"normal"}},E.createElement("span",null,e.label),E.createElement("span",null,e.value))),a>0&&E.createElement("div",{style:{marginTop:"4px",opacity:.6,fontSize:"0.9em"}},"n=",a))}},[l]),D=Cn({componentName:"BoxPlot",data:S,accessors:{categoryAccessor:c,valueAccessor:l}});if(D)return E.createElement(wn,{componentName:"BoxPlot",message:D,width:a,height:o});const F=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],data:S,oAccessor:c,rAccessor:l,summaryType:{type:"boxplot",outliers:g},summaryStyle:M,projection:"horizontal"===d?"horizontal":"vertical",axes:C,summaryHoverAnnotation:x,margin:N,oPadding:b},w&&{pointStyle:w}),z&&{legend:z}),s&&{className:s}),i&&{title:i}),{tooltipContent:j?Mn(j):$,transition:!0}),A);return E.createElement(ra,Object.assign({},F))},exports.BubbleChart=function(t){const{data:n,width:a=600,height:o=400,margin:r,className:s,title:i,xLabel:c,yLabel:l,xFormat:d,yFormat:u,xAccessor:p="x",yAccessor:y="y",sizeBy:m,sizeRange:h=[5,40],colorBy:g,colorScheme:f="category10",bubbleOpacity:b=.6,bubbleStrokeWidth:x=1,bubbleStrokeColor:v="white",enableHover:k=!0,showGrid:j=!1,showLegend:A,tooltip:S,frameProps:O={}}=t,M=n||[],w=kn(M,g,f),C=e.useMemo(()=>{const e=M.map(e=>"function"==typeof m?m(e):e[m]);return[Math.min(...e),Math.max(...e)]},[M,m]),P=e.useMemo(()=>e=>{const t={fillOpacity:b,strokeWidth:x,stroke:v};return t.fill=g?gn(e,g,w):xn,t.r=bn(e,m,h,C),t},[g,w,m,h,C,b,x,v]),z=e.useMemo(()=>{const e=[];return e.push(Object.assign({orient:"left",label:l,tickFormat:u},j&&{tickLineGenerator:()=>null})),e.push(Object.assign({orient:"bottom",label:c,tickFormat:d},j&&{tickLineGenerator:()=>null})),e},[c,l,d,u,j]),N=void 0!==A?A:!!g,$=e.useMemo(()=>{if(N&&g)return An({data:M,colorBy:g,colorScale:w,getColor:gn,strokeColor:v,strokeWidth:x})},[N,g,M,w,v,x]),D=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:50,bottom:60,left:70,right:40}),r);return $&&120>e.right&&(e.right=120),e},[r,$]),F=Cn({componentName:"BubbleChart",data:M,accessors:{xAccessor:p,yAccessor:y},requiredProps:{sizeBy:m}});if(F)return E.createElement(wn,{componentName:"BubbleChart",message:F,width:a,height:o});const T=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],points:M,xAccessor:p,yAccessor:y,pointStyle:P,axes:z,hoverAnnotation:k,margin:D},$&&{legend:$}),s&&{className:s}),i&&{title:i}),S&&{tooltipContent:Mn(S)}),{transition:!0}),O);return E.createElement(yn,Object.assign({},T))},exports.ChordDiagram=function(t){const{nodes:n,edges:a,width:o=600,height:r=600,margin:s={top:50,bottom:50,left:50,right:50},className:i,title:c,sourceAccessor:l="source",targetAccessor:d="target",valueAccessor:u="value",nodeIdAccessor:p="id",colorBy:y,colorScheme:m="category10",edgeColorBy:h="source",padAngle:g=.01,groupWidth:f=20,sortGroups:b,nodeLabel:x,showLabels:v=!0,enableHover:k=!0,edgeOpacity:j=.5,tooltip:A,frameProps:S={}}=t,O=a||[],M=e.useMemo(()=>{if(n&&n.length>0)return n;const e=new Set;return O.forEach(t=>{const n="function"==typeof l?l(t):t[l],a="function"==typeof d?d(t):t[d];e.add(n),e.add(a)}),Array.from(e).map(e=>({id:e}))},[n,O,l,d]),w=kn(M,y,m),C=e.useMemo(()=>(e,t)=>{const n={stroke:"black",strokeWidth:1};if(y)n.fill=gn(e,y,w);else{const e=Array.isArray(m)?m:mn[m]||hn,a=Array.isArray(e)?e:hn;n.fill=a[t%a.length]}return n},[y,w,m,M]),P=e.useMemo(()=>e=>{const t={stroke:"black",strokeWidth:.5,fillOpacity:j,strokeOpacity:j};return"function"==typeof h?t.fill=h(e):"source"===h?t.fill=y?gn(e.source,y,w):C(e.source,e.source.index).fill:"target"===h&&(t.fill=y?gn(e.target,y,w):C(e.target,e.target.index).fill),t},[h,y,w,C,j]),z=e.useMemo(()=>{if(!v)return;const e=x||p;return t=>"function"==typeof e?e(t):t[e]},[v,x,p]),N=e.useMemo(()=>{const e={type:"chord",padAngle:g,groupWidth:f};return b&&(e.sortGroups=b),e},[g,f,b]),$=zn({componentName:"ChordDiagram",edges:a,edgesRequired:!0});if($)return E.createElement(wn,{componentName:"ChordDiagram",message:$,width:o,height:r});const D=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[o,r],nodes:M,edges:O,nodeStyle:C,edgeStyle:P,nodeIDAccessor:p,sourceAccessor:l,targetAccessor:d,edgeWidthAccessor:u,networkType:N,hoverAnnotation:k,margin:s,nodeSizeAccessor:()=>5},z&&{nodeLabels:z}),i&&{className:i}),c&&{title:c}),A&&{tooltipContent:Mn(A)}),{transition:!0}),S),{_layoutMap:{chord:Ra}});return E.createElement(Qa,Object.assign({},D))},exports.CirclePack=function(t){const{data:n,width:a=600,height:o=600,margin:r={top:10,bottom:10,left:10,right:10},className:s,title:i,childrenAccessor:c="children",valueAccessor:l="value",nodeIdAccessor:d="name",colorBy:u,colorScheme:p="category10",colorByDepth:y=!1,showLabels:m=!0,nodeLabel:h,circleOpacity:g=.7,enableHover:f=!0,tooltip:b,frameProps:x={}}=t,v=e.useMemo(()=>{if(!n)return[];const e=[],t=n=>{e.push(n);const a="function"==typeof c?c(n):n[c];a&&Array.isArray(a)&&a.forEach(t)};return t(n),e},[n,c]),k=e.useMemo(()=>y?fn(v.map((e,t)=>({depth:t%5})),"depth",p):u&&"function"!=typeof u?fn(v,u,p):void 0,[v,u,y,p]),j=e.useMemo(()=>e=>{const t={stroke:"currentColor",strokeWidth:1,strokeOpacity:.3,fillOpacity:g};return t.fill=y?gn({depth:e.depth||0},"depth",k):u?gn(e,u,k):xn,t},[u,y,k,g]),A=e.useMemo(()=>"function"==typeof c?c:e=>e[c],[c]),S=e.useMemo(()=>"function"==typeof l?l:e=>e[l]||1,[l]),O=e.useMemo(()=>{if(m)return h?"function"==typeof h?h:e=>e[h]:"function"==typeof d?d:e=>e[d]},[m,h,d]),M=Pn({componentName:"CirclePack",data:n});if(M)return E.createElement(wn,{componentName:"CirclePack",message:M,width:a,height:o});const w=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],edges:n,nodeStyle:j,edgeStyle:()=>({fill:"none",stroke:"none"}),nodeIDAccessor:d,networkType:{type:"circlepack"},hoverAnnotation:f,margin:r},A&&{hierarchyChildren:A}),S&&{hierarchySum:S}),O&&{nodeLabels:O}),s&&{className:s}),i&&{title:i}),b&&{tooltipContent:Mn(b)}),{transition:!0}),x),{_layoutMap:{circlepack:Ma.circlepack}});return E.createElement(Qa,Object.assign({},w))},exports.DonutChart=function(t){const{data:n,width:a=400,height:o=400,margin:r,className:s,title:i,categoryAccessor:c="category",valueAccessor:l="value",innerRadius:d=60,centerContent:u,colorBy:p,colorScheme:y="category10",startAngle:m=0,slicePadding:h=2,enableHover:g=!0,showLegend:f=!0,tooltip:b,frameProps:x={}}=t,v=n||[],k=p||c,j=kn(v,k,y),A=e.useMemo(()=>e=>{const t={};return t.fill=k?gn(e,k,j):xn,t},[k,j]),S=e.useMemo(()=>{if(f)return An({data:v,colorBy:k,colorScale:j,getColor:gn})},[f,v,k,j]),O=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:20,bottom:20,left:20,right:20}),r);return S&&120>e.right&&(e.right=120),e},[r,S]),M=e.useMemo(()=>{const e={type:"bar",innerRadius:d};return m&&(e.offsetAngle=m),e},[d,m]),w=e.useMemo(()=>{if(u)return E.createElement("foreignObject",{x:a/2-d,y:o/2-d,width:2*d,height:2*d},E.createElement("div",{style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center"}},u))},[u,a,o,d]),C=e.useMemo(()=>e=>{const t="function"==typeof c?c(e):e[c],n="function"==typeof l?l(e):e[l];return E.createElement("div",{className:"semiotic-tooltip",style:Sn},E.createElement("div",{style:{fontWeight:"bold"}},t+""),E.createElement("div",{style:{marginTop:"4px"}},"number"==typeof n?n.toLocaleString():n+""))},[c,l]),P=Cn({componentName:"DonutChart",data:v,accessors:{categoryAccessor:c,valueAccessor:l}});if(P)return E.createElement(wn,{componentName:"DonutChart",message:P,width:a,height:o});const z=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],data:v,oAccessor:c,rAccessor:l,type:M,projection:"radial",style:A,hoverAnnotation:g,margin:O,oPadding:h},S&&{legend:S}),w&&{foregroundGraphics:w}),s&&{className:s}),i&&{title:i}),{tooltipContent:b?Mn(b):C,transition:!0}),x);return E.createElement(ra,Object.assign({},z))},exports.DotPlot=function(t){const{data:n,width:a=600,height:o=400,margin:r,className:s,title:i,categoryAccessor:c="category",valueAccessor:l="value",orientation:d="horizontal",categoryLabel:u,valueLabel:p,valueFormat:y,colorBy:m,colorScheme:h="category10",sort:g=!0,dotRadius:f=5,categoryPadding:b=10,enableHover:x=!0,showGrid:v=!0,showLegend:k,tooltip:j,frameProps:A={}}=t,S=n||[],O=jn(S,g,l),M=kn(S,m,h),w=e.useMemo(()=>e=>{const t={r:f,fillOpacity:.8};return t.fill=m?gn(e,m,M):xn,t},[m,M,f]),C=e.useMemo(()=>{const e=[];return"horizontal"===d?(u&&e.push({orient:"left",label:u}),e.push(Object.assign({orient:"bottom",label:p,tickFormat:y},v&&{tickLineGenerator:()=>null}))):(e.push(Object.assign({orient:"left",label:p,tickFormat:y},v&&{tickLineGenerator:()=>null})),u&&e.push({orient:"bottom",label:u})),e},[d,u,p,y,v]),P=void 0!==k?k:!!m,z=e.useMemo(()=>{if(P&&m)return An({data:O,colorBy:m,colorScale:M,getColor:gn})},[P,m,O,M]),N=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:50,bottom:60,left:120,right:40}),r);return z&&120>e.right&&(e.right=120),e},[r,z]),$=e.useMemo(()=>e=>{const t="function"==typeof c?c(e):e[c],n="function"==typeof l?l(e):e[l];return E.createElement("div",{className:"semiotic-tooltip",style:Sn},E.createElement("div",{style:{fontWeight:"bold"}},t+""),E.createElement("div",{style:{marginTop:"4px"}},"number"==typeof n?n.toLocaleString():n+""))},[c,l]),D=Cn({componentName:"DotPlot",data:S,accessors:{categoryAccessor:c,valueAccessor:l}});if(D)return E.createElement(wn,{componentName:"DotPlot",message:D,width:a,height:o});const F=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],data:O,oAccessor:c,rAccessor:l,type:"point",projection:"horizontal"===d?"horizontal":"vertical",style:w,axes:C,pieceHoverAnnotation:x,margin:N,oPadding:b},z&&{legend:z}),s&&{className:s}),i&&{title:i}),{tooltipContent:j?Mn(j):$,transition:!0}),A);return E.createElement(ra,Object.assign({},F))},exports.ForceDirectedGraph=function(t){const{nodes:n,edges:a,width:o=600,height:r=600,margin:s,className:i,title:c,nodeIDAccessor:l="id",sourceAccessor:d="source",targetAccessor:u="target",nodeLabel:p,colorBy:y,colorScheme:m="category10",nodeSize:h=8,nodeSizeRange:g=[5,20],edgeWidth:f=1,edgeColor:b="#999",edgeOpacity:x=.6,iterations:v=300,forceStrength:k=.1,showLabels:j=!1,enableHover:A=!0,showLegend:S,tooltip:O,frameProps:M={}}=t,w=n||[],C=a||[],P=kn(w,y,m),z=e.useMemo(()=>{if("number"==typeof h)return;if(!h)return;const e=w.map(e=>"function"==typeof h?h(e):e[h]);return[Math.min(...e),Math.max(...e)]},[w,h]),N=e.useMemo(()=>e=>{const t={};return t.fill=y?gn(e,y,P):xn,t.r="number"==typeof h?h:h?bn(e,h,g,z):8,t},[y,P,h,g,z]),$=e.useMemo(()=>e=>{const t={stroke:b,strokeOpacity:x};return"number"==typeof f?t.strokeWidth=f:"function"==typeof f?t.strokeWidth=f(e):f&&(t.strokeWidth=e[f]),t},[f,b,x]),D=e.useMemo(()=>{if(j&&p)return e=>"function"==typeof p?p(e):e[p]},[j,p]),F=void 0!==S?S:!!y,T=e.useMemo(()=>{if(F&&y)return An({data:w,colorBy:y,colorScale:P,getColor:gn})},[F,y,w,P]),L=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:20,bottom:20,left:20,right:20}),s);return T&&120>e.right&&(e.right=120),e},[s,T]),R=zn({componentName:"ForceDirectedGraph",nodes:n,edges:a,nodesRequired:!0,edgesRequired:!0,accessors:{nodeIDAccessor:l}});if(R)return E.createElement(wn,{componentName:"ForceDirectedGraph",message:R,width:o,height:r});const B=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[o,r],nodes:w,edges:C,nodeIDAccessor:l,sourceAccessor:d,targetAccessor:u,networkType:{type:"force",iterations:v,edgeStrength:k},nodeStyle:N,edgeStyle:$,hoverAnnotation:A,margin:L},T&&{legend:T}),D&&{nodeLabels:D}),i&&{className:i}),c&&{title:c}),O&&{tooltipContent:Mn(O)}),{transition:!0}),M),{_layoutMap:{force:Ba}});return E.createElement(Qa,Object.assign({},B))},exports.GroupedBarChart=function(t){const{data:n,width:a=600,height:o=400,margin:r,className:s,title:i,categoryAccessor:c="category",groupBy:l,valueAccessor:d="value",orientation:u="vertical",categoryLabel:p,valueLabel:y,valueFormat:m,colorBy:h,colorScheme:g="category10",barPadding:f=5,enableHover:b=!0,showGrid:x=!1,showLegend:v=!0,tooltip:k,frameProps:j={}}=t,A=n||[],S=h||l,O=kn(A,S,g),M=e.useMemo(()=>e=>{const t={};return t.fill=S?gn(e,S,O):xn,t},[S,O]),w=e.useMemo(()=>{const e=[];return"vertical"===u?(e.push(Object.assign({orient:"left",label:y,tickFormat:m},x&&{tickLineGenerator:()=>null})),p&&e.push({orient:"bottom",label:p})):(p&&e.push({orient:"left",label:p}),e.push(Object.assign({orient:"bottom",label:y,tickFormat:m},x&&{tickLineGenerator:()=>null}))),e},[u,p,y,m,x]),C=e.useMemo(()=>{if(v)return An({data:A,colorBy:S,colorScale:O,getColor:gn})},[v,A,S,O]),P=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:50,bottom:60,left:70,right:40}),r);return C&&120>e.right&&(e.right=120),e},[r,C]),z=e.useMemo(()=>{const e=vn(l),t=vn(c),n=vn(d);return a=>{const o=e(a)+"",r=t(a)+"",s=Number(n(a));return E.createElement("div",{className:"semiotic-tooltip",style:Sn},E.createElement("div",{style:{fontWeight:"bold"}},o),E.createElement("div",{style:{marginTop:"4px"}},r," · ",s.toLocaleString()))}},[l,c,d]),N=Cn({componentName:"GroupedBarChart",data:A,accessors:{categoryAccessor:c,valueAccessor:d},requiredProps:{groupBy:l}});if(N)return E.createElement(wn,{componentName:"GroupedBarChart",message:N,width:a,height:o});const $=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],data:A,oAccessor:c,rAccessor:d,type:"clusterbar",projection:"horizontal"===u?"horizontal":"vertical",style:M,axes:w,hoverAnnotation:b,margin:P,oPadding:f,pieceIDAccessor:l},C&&{legend:C}),s&&{className:s}),i&&{title:i}),{tooltipContent:k?Mn(k):z,transition:!0}),j);return E.createElement(ra,Object.assign({},$))},exports.Heatmap=function(t){const{data:a,width:o=600,height:r=400,margin:s={top:50,bottom:60,left:70,right:80},className:i,title:c,xAccessor:l="x",yAccessor:d="y",valueAccessor:u="value",xLabel:p,yLabel:y,xFormat:m,yFormat:g,colorScheme:f="blues",customColorScale:b,showValues:x=!1,valueFormat:v,cellBorderColor:k="#fff",cellBorderWidth:j=1,enableHover:A=!0,tooltip:S,frameProps:O={}}=t,M=a||[],w=e.useMemo(()=>"function"==typeof u?e=>u(e):e=>e[u],[u]),C=e.useMemo(()=>{const e=M.map(w);return[Math.min(...e),Math.max(...e)]},[M,w]),P=e.useMemo(()=>"custom"===f&&b?b:n.scaleSequential({blues:h.interpolateBlues,reds:h.interpolateReds,greens:h.interpolateGreens,viridis:h.interpolateViridis}[f]||h.interpolateBlues).domain(C),[f,b,C]),{xBinCount:z,yBinCount:N}=e.useMemo(()=>{const e=vn(l),t=vn(d);return{xBinCount:new Set(M.map(e)).size,yBinCount:new Set(M.map(t)).size}},[M,l,d]),$=e.useMemo(()=>({coordinates:M}),[M]),D=e.useMemo(()=>e=>{const t=w(e);return{fill:P(t),stroke:k,strokeWidth:j}},[w,P,k,j]),F=e.useMemo(()=>{if(!x)return;const e=(C[0]+C[1])/2;return(t,n)=>{const a=w(t),o=v?v(a):a+"";return E.createElement("text",{textAnchor:"middle",dominantBaseline:"middle",fill:w(t)>e?"#fff":"#000",fontSize:"12px"},o)}},[x,w,v,C]),T=e.useMemo(()=>{const e=[];return e.push({orient:"left",label:y,tickFormat:g}),e.push({orient:"bottom",label:p,tickFormat:m}),e},[p,y,m,g]),L=Cn({componentName:"Heatmap",data:M,accessors:{xAccessor:l,yAccessor:d,valueAccessor:u}});if(L)return E.createElement(wn,{componentName:"Heatmap",message:L,width:o,height:r});const R=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[o,r],summaries:$,xAccessor:l,yAccessor:d,summaryType:{type:"heatmap",xBins:z,yBins:N,binValue:e=>0===e.length?0:e.reduce((e,t)=>e+w(t),0)/e.length},summaryStyle:D,axes:T,hoverAnnotation:A,margin:s},F&&{summaryRenderMode:F}),i&&{className:i}),c&&{title:c}),S&&{tooltipContent:Mn(S)}),{transition:!0}),O);return E.createElement(yn,Object.assign({},R))},exports.LineChart=function(n){var a;const{data:o,width:r=600,height:s=400,margin:i,className:c,title:l,xLabel:d,yLabel:u,xFormat:p,yFormat:y,xAccessor:m="x",yAccessor:h="y",lineBy:g,lineDataAccessor:f="coordinates",colorBy:b,colorScheme:x="category10",curve:v="linear",showPoints:k=!1,pointRadius:j=3,fillArea:A=!1,areaOpacity:S=.3,lineWidth:O=2,enableHover:M=!0,showGrid:w=!1,showLegend:C,tooltip:P,frameProps:z={}}=n,N=o||[],$=void 0!==(null===(a=N[0])||void 0===a?void 0:a[f]),D=e.useMemo(()=>{if($)return N;if(g){const e=N.reduce((e,t)=>{const n="function"==typeof g?g(t):t[g];if(!e[n]){const t={[f]:[]};"string"==typeof g&&(t[g]=n),e[n]=t}return e[n][f].push(t),e},{});return Object.values(e)}return[{[f]:N}]},[N,g,f,$]),F=kn(N,b,x),T=Nn[v]||t.curveLinear,L=e.useMemo(()=>e=>{const t={strokeWidth:O};return t.stroke=b?gn(e,b,F):xn,A&&(t.fill=t.stroke,t.fillOpacity=S),t},[b,F,O,A,S]),R=e.useMemo(()=>{if(k)return e=>{const t={r:j,fillOpacity:1};return t.fill=b?gn(e.parentLine||e,b,F):xn,t}},[k,j,b,F]),B=e.useMemo(()=>{const e=[];return e.push(Object.assign({orient:"left",label:u,tickFormat:y},w&&{tickLineGenerator:()=>null})),e.push(Object.assign({orient:"bottom",label:d,tickFormat:p},w&&{tickLineGenerator:()=>null})),e},[d,u,p,y,w]),V=e.useMemo(()=>{const e={type:A?"area":"line",interpolator:T};return A&&(e.simpleLine=!1),e},[A,T]),I=void 0!==C?C:D.length>1,W=e.useMemo(()=>{if(I&&b)return An({data:D,colorBy:b,colorScale:F,getColor:gn})},[I,b,D,F]),G=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:50,bottom:60,left:70,right:40}),i);return W&&120>e.right&&(e.right=120),e},[i,W]),_=Cn({componentName:"LineChart",data:N,accessors:{xAccessor:m,yAccessor:h}});if(_)return E.createElement(wn,{componentName:"LineChart",message:_,width:r,height:s});const H=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[r,s],lines:D,xAccessor:m,yAccessor:h,lineDataAccessor:f,lineType:V,lineStyle:L,axes:B,hoverAnnotation:M,margin:G},k&&{showLinePoints:!0,pointStyle:R}),W&&{legend:W}),c&&{className:c}),l&&{title:l}),P&&{tooltipContent:Mn(P)}),{transition:!0}),z);return E.createElement(yn,Object.assign({},H))},exports.MultiLineTooltip=function(e={}){const{fields:t=[],title:n,format:a,style:o={},className:r="",showLabels:s=!0,separator:i=": "}=e;return e=>{if(!e||"object"!=typeof e)return null;const c=[];if(n){const t=En(e,n);c.push({value:On(t,a)})}t&&Array.isArray(t)&&t.length>0?t.forEach(t=>{let n,o,r;"string"==typeof t?(n=t,o=t,r=a):(n=t.label,o=t.accessor||t.key||"",r=t.format||a);const i=On(En(e,o),r);c.push({label:s?n:void 0,value:i})}):Object.keys(e).filter(e=>!e.startsWith("_")&&"data"!==e).forEach(t=>{c.push({label:s?t:void 0,value:On(e[t],a)})});const l=Object.assign(Object.assign({},Sn),o);return Array.isArray(c)&&0!==c.length?E.createElement("div",{className:("semiotic-tooltip semiotic-tooltip-multiline "+r).trim(),style:l},c.map((e,t)=>E.createElement("div",{key:t,style:{marginBottom:c.length-1>t?"4px":0}},e.label&&E.createElement("strong",null,e.label,i),e.value))):null}},exports.PieChart=function(t){const{data:n,width:a=400,height:o=400,margin:r,className:s,title:i,categoryAccessor:c="category",valueAccessor:l="value",colorBy:d,colorScheme:u="category10",startAngle:p=0,slicePadding:y=2,enableHover:m=!0,showLegend:h=!0,tooltip:g,frameProps:f={}}=t,b=n||[],x=d||c,v=kn(b,x,u),k=e.useMemo(()=>e=>{const t={};return t.fill=x?gn(e,x,v):xn,t},[x,v]),j=e.useMemo(()=>{if(h)return An({data:b,colorBy:x,colorScale:v,getColor:gn})},[h,b,x,v]),A=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:20,bottom:20,left:20,right:20}),r);return j&&120>e.right&&(e.right=120),e},[r,j]),S=e.useMemo(()=>{const e={type:"bar"};return p&&(e.offsetAngle=p),e},[p]),O=e.useMemo(()=>e=>{const t="function"==typeof c?c(e):e[c],n="function"==typeof l?l(e):e[l];return E.createElement("div",{className:"semiotic-tooltip",style:Sn},E.createElement("div",{style:{fontWeight:"bold"}},t+""),E.createElement("div",{style:{marginTop:"4px"}},"number"==typeof n?n.toLocaleString():n+""))},[c,l]),M=Cn({componentName:"PieChart",data:b,accessors:{categoryAccessor:c,valueAccessor:l}});if(M)return E.createElement(wn,{componentName:"PieChart",message:M,width:a,height:o});const w=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],data:b,oAccessor:c,rAccessor:l,type:S,projection:"radial",style:k,hoverAnnotation:m,margin:A,oPadding:y},j&&{legend:j}),s&&{className:s}),i&&{title:i}),{tooltipContent:g?Mn(g):O,transition:!0}),f);return E.createElement(ra,Object.assign({},w))},exports.RealtimeBarChart=fo,exports.RealtimeLineChart=go,exports.RealtimeSwarmChart=bo,exports.RealtimeWaterfallChart=xo,exports.SankeyDiagram=function(t){const{nodes:n,edges:a,width:o=800,height:r=600,margin:s={top:50,bottom:50,left:50,right:50},className:i,title:c,sourceAccessor:l="source",targetAccessor:d="target",valueAccessor:u="value",nodeIdAccessor:p="id",colorBy:y,colorScheme:m="category10",edgeColorBy:h="source",orientation:g="horizontal",nodeAlign:f="justify",nodePaddingRatio:b=.05,nodeWidth:x=15,nodeLabel:v,showLabels:k=!0,enableHover:j=!0,edgeOpacity:A=.5,edgeSort:S,tooltip:O,frameProps:M={}}=t,w=a||[],C=e.useMemo(()=>{if(n&&n.length>0)return n;const e=new Set;return w.forEach(t=>{const n="function"==typeof l?l(t):t[l],a="function"==typeof d?d(t):t[d];e.add(n),e.add(a)}),Array.from(e).map(e=>({id:e}))},[n,w,l,d]),P=kn(C,y,m),z=e.useMemo(()=>e=>{const t={stroke:"black",strokeWidth:1};return t.fill=y?gn(e,y,P):"#4d430c",t},[y,P]),N=e.useMemo(()=>e=>{const t={stroke:"black",strokeWidth:.5,fillOpacity:A,strokeOpacity:.3};return"function"==typeof h?t.fill=h(e):"source"===h?y&&e.source?t.fill=gn(e.source,y,P):e.source&&(t.fill=z(e.source).fill):"target"===h?y&&e.target?t.fill=gn(e.target,y,P):e.target&&(t.fill=z(e.target).fill):"gradient"===h&&(t.fill="#999",t.fillOpacity=.7*A),t},[h,y,P,z,A]),$=e.useMemo(()=>{if(!k)return;const e=v||p;return t=>"function"==typeof e?e(t):t[e]},[k,v,p]),D=e.useMemo(()=>{const e={type:"sankey",orient:f,direction:"horizontal"===g?void 0:"down",nodePaddingRatio:b,nodeWidth:x};return S&&(e.edgeSort=S),e},[f,g,b,x,S]),F=e.useMemo(()=>e=>{var t,n,a,o,r,s,i,c,l,d,u,y;if(e.edge||e.source&&e.target&&!e.degree&&0!==e.degree){const p=null!==(r=null!==(n=null===(t=e.source)||void 0===t?void 0:t.id)&&void 0!==n?n:null===(o=null===(a=e.edge)||void 0===a?void 0:a.source)||void 0===o?void 0:o.id)&&void 0!==r?r:"?",y=null!==(d=null!==(i=null===(s=e.target)||void 0===s?void 0:s.id)&&void 0!==i?i:null===(l=null===(c=e.edge)||void 0===c?void 0:c.target)||void 0===l?void 0:l.id)&&void 0!==d?d:"?",m=null!==(u=e.value)&&void 0!==u?u:e.weight;return E.createElement("div",{className:"semiotic-tooltip",style:Sn},E.createElement("div",{style:{fontWeight:"bold"}},p," → ",y),null!=m&&E.createElement("div",{style:{marginTop:4}},"Value: ","number"==typeof m?m.toLocaleString():m+""))}const m=p,h="function"==typeof m?m(e):null!==(y=e[m])&&void 0!==y?y:e.id,g=e.value;return E.createElement("div",{className:"semiotic-tooltip",style:Sn},E.createElement("div",{style:{fontWeight:"bold"}},h+""),null!=g&&E.createElement("div",{style:{marginTop:4}},"Total: ","number"==typeof g?g.toLocaleString():g+""),null!=e.degree&&E.createElement("div",{style:{marginTop:2}},"Degree: ",e.degree,null!=e.inDegree?` (${e.inDegree} in, ${e.outDegree} out)`:""))},[p]),T="function"==typeof O?O:F,L=e.useMemo(()=>({d:e,i:t,adjustedSize:n})=>{if("frame-hover"!==e.type)return null;const a={position:"absolute",top:e.y+"px"};return n&&e.x>n[0]/2?a.right=n[0]-e.x+"px":a.left=e.x+"px",E.createElement("div",{key:"network-annotation-label-"+t,className:"annotation annotation-network-label "+(e.className||""),style:a},T(e))},[T]),R=zn({componentName:"SankeyDiagram",edges:a,edgesRequired:!0});if(R)return E.createElement(wn,{componentName:"SankeyDiagram",message:R,width:o,height:r});const B=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[o,r],nodes:C,edges:w,nodeStyle:z,edgeStyle:N,nodeIDAccessor:p,sourceAccessor:l,targetAccessor:d,edgeWidthAccessor:u,networkType:D,hoverAnnotation:j,margin:s,nodeSizeAccessor:()=>5},$&&{nodeLabels:$}),i&&{className:i}),c&&{title:c}),{htmlAnnotationRules:L,transition:!0}),M),{_layoutMap:{sankey:Ca,flowchart:Ca}});return E.createElement(Qa,Object.assign({},B))},exports.Scatterplot=function(t){const{data:n,width:a=600,height:o=400,margin:r,className:s,title:i,xLabel:c,yLabel:l,xFormat:d,yFormat:u,xAccessor:p="x",yAccessor:y="y",colorBy:m,colorScheme:h="category10",sizeBy:g,sizeRange:f=[3,15],pointRadius:b=5,pointOpacity:x=.8,enableHover:v=!0,showGrid:k=!1,showLegend:j,tooltip:A,frameProps:S={}}=t,O=n||[],M=kn(O,m,h),w=e.useMemo(()=>{if(!g||0===O.length)return;const e=O.map(e=>"function"==typeof g?g(e):e[g]);return[Math.min(...e),Math.max(...e)]},[O,g]),C=e.useMemo(()=>e=>{const t={fillOpacity:x};return t.fill=m?gn(e,m,M):xn,t.r=g?bn(e,g,f,w):b,t},[m,M,g,f,w,b,x]),P=e.useMemo(()=>[Object.assign({orient:"left",label:l,tickFormat:u},k&&{tickLineGenerator:()=>null}),Object.assign({orient:"bottom",label:c,tickFormat:d},k&&{tickLineGenerator:()=>null})],[c,l,d,u,k]),z=void 0!==j?j:!!m,N=e.useMemo(()=>{if(z&&m)return An({data:O,colorBy:m,colorScale:M,getColor:gn})},[z,m,O,M]),$=e.useMemo(()=>{const e=Object.assign({top:50,bottom:60,left:70,right:40},r);return N&&120>e.right&&(e.right=120),e},[r,N]),D=Cn({componentName:"Scatterplot",data:O,accessors:{xAccessor:p,yAccessor:y}});if(D)return E.createElement(wn,{componentName:"Scatterplot",message:D,width:a,height:o});const F=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],points:O,xAccessor:p,yAccessor:y,pointStyle:C,axes:P,hoverAnnotation:v,margin:$},N&&{legend:N}),s&&{className:s}),i&&{title:i}),A&&{tooltipContent:Mn(A)}),{transition:!0}),S);return E.createElement(yn,Object.assign({},F))},exports.StackedAreaChart=function(n){var a;const{data:o,width:r=600,height:s=400,margin:i,className:c,title:l,xLabel:d,yLabel:u,xFormat:p,yFormat:y,xAccessor:m="x",yAccessor:h="y",areaBy:g,lineDataAccessor:f="coordinates",colorBy:b,colorScheme:x="category10",curve:v="monotoneX",areaOpacity:k=.7,showLine:j=!0,lineWidth:A=2,normalize:S=!1,enableHover:O=!0,showGrid:M=!1,showLegend:w,tooltip:C,frameProps:P={}}=n,z=o||[],N=void 0!==(null===(a=z[0])||void 0===a?void 0:a[f]),$=e.useMemo(()=>{if(N)return z;if(g){const e=z.reduce((e,t)=>{const n="function"==typeof g?g(t):t[g];if(!e[n]){const t={[f]:[]};"string"==typeof g&&(t[g]=n),e[n]=t}return e[n][f].push(t),e},{});return Object.values(e)}return[{[f]:z}]},[z,g,f,N]),D=kn(z,b,x),F=Dn[v]||t.curveMonotoneX,T=e.useMemo(()=>e=>{const t={},n=b?gn(e,b,D):xn;return t.fill=n,t.fillOpacity=k,j?(t.stroke=n,t.strokeWidth=A):t.stroke="none",t},[b,D,k,j,A]),L=e.useMemo(()=>{const e=[];return e.push(Object.assign({orient:"left",label:u,tickFormat:y},M&&{tickLineGenerator:()=>null})),e.push(Object.assign({orient:"bottom",label:d,tickFormat:p},M&&{tickLineGenerator:()=>null})),e},[d,u,p,y,M]),R=e.useMemo(()=>({type:S?"stackedpercent-area":"stackedarea",interpolator:F}),[F,S]),B=void 0!==w?w:$.length>1,V=e.useMemo(()=>{if(B&&b)return An({data:$,colorBy:b,colorScale:D,getColor:gn})},[B,b,$,D]),I=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:50,bottom:60,left:70,right:40}),i);return V&&120>e.right&&(e.right=120),e},[i,V]),W=Cn({componentName:"StackedAreaChart",data:z,accessors:{xAccessor:m,yAccessor:h}});if(W)return E.createElement(wn,{componentName:"StackedAreaChart",message:W,width:r,height:s});const G=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[r,s],lines:$,xAccessor:m,yAccessor:h,lineDataAccessor:f,lineType:R,lineStyle:T,axes:L,hoverAnnotation:O,margin:I},V&&{legend:V}),c&&{className:c}),l&&{title:l}),C&&{tooltipContent:Mn(C)}),{transition:!0}),P);return E.createElement(yn,Object.assign({},G))},exports.StackedBarChart=function(t){const{data:n,width:a=600,height:o=400,margin:r,className:s,title:i,categoryAccessor:c="category",stackBy:l,valueAccessor:d="value",orientation:u="vertical",categoryLabel:p,valueLabel:y,valueFormat:m,colorBy:h,colorScheme:g="category10",normalize:f=!1,barPadding:b=5,enableHover:x=!0,showGrid:v=!1,showLegend:k=!0,tooltip:j,frameProps:A={}}=t,S=n||[],O=h||l;e.useMemo(()=>{const e=vn(l);return Array.from(new Set(S.map(e)))},[S,l]);const M=kn(S,O,g),w=e.useMemo(()=>e=>{const t={};return t.fill=O?gn(e,O,M):xn,t},[O,M]),C=e.useMemo(()=>{const e=[];return"vertical"===u?(e.push(Object.assign({orient:"left",label:y,tickFormat:m},v&&{tickLineGenerator:()=>null})),p&&e.push({orient:"bottom",label:p})):(p&&e.push({orient:"left",label:p}),e.push(Object.assign({orient:"bottom",label:y,tickFormat:m},v&&{tickLineGenerator:()=>null}))),e},[u,p,y,m,v]),P=e.useMemo(()=>{if(k)return An({data:S,colorBy:O,colorScale:M,getColor:gn})},[k,S,O,M]),z=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:50,bottom:60,left:70,right:120}),r);return P&&120>e.right&&(e.right=120),e},[r,P]),N=e.useMemo(()=>{const e=vn(l),t=vn(c),n=vn(d);return a=>{const o=e(a)+"",r=t(a)+"",s=Number(n(a)),i=a.pieces||[],c=i.reduce((e,t)=>e+(Number(n(t))||0),0),l=i.length>1;return E.createElement("div",{className:"semiotic-tooltip",style:Sn},E.createElement("div",{style:{fontWeight:"bold"}},o),E.createElement("div",{style:{marginTop:"4px"}},r," · ",s.toLocaleString()),l&&E.createElement("div",{style:{marginTop:"2px",opacity:.8}},"Total: ",c.toLocaleString()))}},[l,c,d]),$=Cn({componentName:"StackedBarChart",data:S,accessors:{categoryAccessor:c,valueAccessor:d},requiredProps:{stackBy:l}});if($)return E.createElement(wn,{componentName:"StackedBarChart",message:$,width:a,height:o});const D=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],data:S,oAccessor:c,rAccessor:d,type:"bar",projection:"horizontal"===u?"horizontal":"vertical",style:w,axes:C,hoverAnnotation:x,margin:z,oPadding:b,pieceIDAccessor:l},f&&{rExtent:[0,1]}),P&&{legend:P}),s&&{className:s}),i&&{title:i}),{tooltipContent:j?Mn(j):N,transition:!0}),A);return E.createElement(ra,Object.assign({},D))},exports.SwarmPlot=function(t){const{data:n,width:a=600,height:o=400,margin:r,className:s,title:i,categoryAccessor:c="category",valueAccessor:l="value",orientation:d="vertical",categoryLabel:u,valueLabel:p,valueFormat:y,colorBy:m,colorScheme:h="category10",sizeBy:g,sizeRange:f=[3,8],pointRadius:b=4,pointOpacity:x=.7,categoryPadding:v=20,enableHover:k=!0,showGrid:j=!1,showLegend:A,tooltip:S,frameProps:O={}}=t,M=n||[],w=kn(M,m,h),C=e.useMemo(()=>{if(!g)return;const e=M.map(e=>"function"==typeof g?g(e):e[g]);return[Math.min(...e),Math.max(...e)]},[M,g]),P=e.useMemo(()=>e=>{const t={fillOpacity:x};return t.fill=m?gn(e,m,w):xn,t.r=g?bn(e,g,f,C):b,t},[m,w,g,f,C,b,x]),z=e.useMemo(()=>{const e=[];return"vertical"===d?(e.push(Object.assign({orient:"left",label:p,tickFormat:y},j&&{tickLineGenerator:()=>null})),u&&e.push({orient:"bottom",label:u})):(u&&e.push({orient:"left",label:u}),e.push(Object.assign({orient:"bottom",label:p,tickFormat:y},j&&{tickLineGenerator:()=>null}))),e},[d,u,p,y,j]),N=void 0!==A?A:!!m,$=e.useMemo(()=>{if(N&&m)return An({data:M,colorBy:m,colorScale:w,getColor:gn})},[N,m,M,w]),D=e.useMemo(()=>{const e=Object.assign(Object.assign({},{top:50,bottom:60,left:70,right:40}),r);return $&&120>e.right&&(e.right=120),e},[r,$]),F=e.useMemo(()=>{const e=vn(l),t=vn(c);return n=>{const a=t(n),o=e(n),r=n.pieces||[],s=r.length>1;return E.createElement("div",{className:"semiotic-tooltip",style:Sn},E.createElement("div",{style:{fontWeight:"bold"}},a+""),E.createElement("div",{style:{marginTop:"4px"}},"number"==typeof o?o.toLocaleString():o+""),s&&E.createElement("div",{style:{marginTop:"2px",opacity:.8}},r.length," points in group"))}},[c,l]),T=Cn({componentName:"SwarmPlot",data:M,accessors:{categoryAccessor:c,valueAccessor:l}});if(T)return E.createElement(wn,{componentName:"SwarmPlot",message:T,width:a,height:o});const L=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],data:M,oAccessor:c,rAccessor:l,type:"swarm",projection:"horizontal"===d?"horizontal":"vertical",style:P,axes:z,pieceHoverAnnotation:k,margin:D,oPadding:v},$&&{legend:$}),s&&{className:s}),i&&{title:i}),{tooltipContent:S?Mn(S):F,transition:!0}),O);return E.createElement(ra,Object.assign({},L))},exports.TooltipProvider=B,exports.TreeDiagram=function(t){const{data:n,width:a=600,height:o=600,margin:r={top:50,bottom:50,left:50,right:50},className:s,title:i,layout:c="tree",orientation:l="vertical",childrenAccessor:d="children",valueAccessor:u="value",nodeIdAccessor:p="name",colorBy:y,colorScheme:m="category10",colorByDepth:h=!1,nodeSize:g=5,enableHover:f=!0,tooltip:b,frameProps:x={}}=t,v=e.useMemo(()=>{if(!n)return[];const e=[],t=n=>{e.push(n);const a="function"==typeof d?d(n):n[d];a&&Array.isArray(a)&&a.forEach(t)};return t(n),e},[n,d]),k=e.useMemo(()=>h?fn(v.map((e,t)=>({depth:t%5})),"depth",m):y&&"function"!=typeof y?fn(v,y,m):void 0,[v,y,h,m]),j=e.useMemo(()=>e=>{const t={stroke:"black",strokeWidth:1};return t.fill=h?gn({depth:e.depth||0},"depth",k):y?gn(e,y,k):xn,t},[y,h,k]),A=e.useMemo(()=>()=>({stroke:"#999",strokeWidth:1,fill:"none"}),[]),S=e.useMemo(()=>{const e={type:c};return"tree"!==c&&"cluster"!==c||(e.projection=l),"partition"===c&&"radial"===l&&(e.projection="radial"),e},[c,l]),O=e.useMemo(()=>"function"==typeof d?d:e=>e[d],[d]),M=e.useMemo(()=>{if("treemap"===c||"circlepack"===c||"partition"===c)return"function"==typeof u?u:e=>e[u]||1},[c,u]),w=Pn({componentName:"TreeDiagram",data:n});if(w)return E.createElement(wn,{componentName:"TreeDiagram",message:w,width:a,height:o});"treemap"===c?console.info("TreeDiagram: Consider using the standalone <Treemap> component for treemap visualizations."):"circlepack"===c&&console.info("TreeDiagram: Consider using the standalone <CirclePack> component for circle packing visualizations.");const C=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],edges:n,nodeStyle:j,edgeStyle:A,nodeIDAccessor:p,networkType:S,hoverAnnotation:f,margin:r,nodeSizeAccessor:()=>g},O&&{hierarchyChildren:O}),M&&{hierarchySum:M}),s&&{className:s}),i&&{title:i}),b&&{tooltipContent:Mn(b)}),{transition:!0}),x),{_layoutMap:Ma});return E.createElement(Qa,Object.assign({},C))},exports.Treemap=function(t){const{data:n,width:a=600,height:o=600,margin:r={top:10,bottom:10,left:10,right:10},className:s,title:i,childrenAccessor:c="children",valueAccessor:l="value",nodeIdAccessor:d="name",colorBy:u,colorScheme:p="category10",colorByDepth:y=!1,showLabels:m=!0,nodeLabel:h,enableHover:g=!0,tooltip:f,frameProps:b={}}=t,x=e.useMemo(()=>{if(!n)return[];const e=[],t=n=>{e.push(n);const a="function"==typeof c?c(n):n[c];a&&Array.isArray(a)&&a.forEach(t)};return t(n),e},[n,c]),v=e.useMemo(()=>y?fn(x.map((e,t)=>({depth:t%5})),"depth",p):u&&"function"!=typeof u?fn(x,u,p):void 0,[x,u,y,p]),k=e.useMemo(()=>e=>{const t={stroke:"currentColor",strokeWidth:1,strokeOpacity:.3};return t.fill=y?gn({depth:e.depth||0},"depth",v):u?gn(e,u,v):xn,t},[u,y,v]),j=e.useMemo(()=>"function"==typeof c?c:e=>e[c],[c]),A=e.useMemo(()=>"function"==typeof l?l:e=>e[l]||1,[l]),S=e.useMemo(()=>{if(m)return h?"function"==typeof h?h:e=>e[h]:"function"==typeof d?d:e=>e[d]},[m,h,d]),O=Pn({componentName:"Treemap",data:n});if(O)return E.createElement(wn,{componentName:"Treemap",message:O,width:a,height:o});const M=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({size:[a,o],edges:n,nodeStyle:k,edgeStyle:()=>({fill:"none",stroke:"none"}),nodeIDAccessor:d,networkType:{type:"treemap"},hoverAnnotation:g,margin:r},j&&{hierarchyChildren:j}),A&&{hierarchySum:A}),S&&{nodeLabels:S}),s&&{className:s}),i&&{title:i}),f&&{tooltipContent:Mn(f)}),{transition:!0}),b),{_layoutMap:{treemap:Ma.treemap}});return E.createElement(Qa,Object.assign({},M))},exports.validateProps=function(e,t){const n=[],a=Eo[e];if(!a)return{valid:!1,errors:[`Unknown component "${e}". Valid components: ${Object.keys(Eo).join(", ")}`]};for(const o of a.required)null==t[o]&&n.push(`"${o}" is required for ${e}.`);for(const[e,o]of Object.entries(t)){if(null==o)continue;const t=a.props[e];if(t){if(!Oo(o,t.type)){const a=Array.isArray(t.type)?t.type.join(" | "):t.type;n.push(`"${e}" should be ${a}, got ${Array.isArray(o)?"array":typeof o}.`);continue}t.enum&&"string"==typeof o&&!t.enum.includes(o)&&n.push(`"${e}" value "${o}" is not valid. Expected one of: ${t.enum.join(", ")}.`)}}const o=new Set(Object.keys(a.props));for(const a of Object.keys(t))void 0!==t[a]&&(o.has(a)||n.push(`Unknown prop "${a}" for ${e}. Check for typos.`));if("array"===a.dataShape){const o=t.data,r={};for(const e of a.dataAccessors){const n=t[e];"string"==typeof n&&(r[e]=n)}const s=Cn({componentName:e,data:o,accessors:Object.keys(r).length>0?r:void 0});s&&n.push(s)}else if("object"===a.dataShape){const a=Pn({componentName:e,data:t.data});a&&n.push(a)}else if("network"===a.dataShape){const o=zn({componentName:e,nodes:t.nodes,edges:t.edges,nodesRequired:a.required.includes("nodes"),edgesRequired:a.required.includes("edges")});o&&n.push(o)}return{valid:0===n.length,errors:n}};