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
+ import*as e from"react";import t,{createContext as a,useMemo as n,useContext as o,useState as r,useLayoutEffect as s,useEffect as i,useRef as l,useCallback as c}from"react";import{scaleLinear as d}from"d3-scale";import p from"labella";import{brushX as m,brushY as y,brush as u}from"d3-brush";import{select as h}from"d3-selection";import{extent as f,quantile as x,histogram as g,max as v,sum as b}from"d3-array";import{Delaunay as k}from"d3-delaunay";import{arc as j,curveCardinal as E,curveNatural as S,curveMonotoneY as A,curveMonotoneX as M,curveCatmullRom as $,curveLinear as O,curveBasis as P,curveStepAfter as C,curveStepBefore as D,curveStep as w,line as N,area as T}from"d3-shape";import{packEnclose as z}from"d3-hierarchy";import{polygonHull as F}from"d3-polygon";import L from"polygon-offset";import R from"regression";import{contourDensity as B}from"d3-contour";import{hexbin as V}from"d3-hexbin";import I from"memoize-one";const _=(e,t,a,n)=>{const o=(e.note.label||e.note.title).length;return[Math.min(e.note.wrap||120,o*t)+2*n,Math.ceil(o*t/120)*a+2*n]};const W={fill:t=>e.createElement("rect",{style:t,width:20,height:20}),line:t=>e.createElement("line",{style:t,x1:0,y1:0,x2:20,y2:20})};function G(e,t,a,n){let o;return o="function"==typeof a?a(e):(0,W[a])(n(e,t)),o}function X(t){const{legendGroups:a,customClickBehavior:n,title:o="Legend",width:r=100,height:s=20,orientation:i="vertical"}=t,l="vertical"===i?(({legendGroups:t,width:a,customClickBehavior:n})=>{let o=30;const r=[];return t.forEach((t,s)=>{o+=5,r.push(e.createElement("line",{key:"legend-top-line legend-symbol-"+s,stroke:"gray",x1:0,y1:o,x2:a,y2:o})),o+=10,t.label&&(o+=20,r.push(e.createElement("text",{key:"legend-text-"+s,y:o,className:"legend-group-label"},t.label)),o+=10),r.push(e.createElement("g",{key:"legend-group-"+s,className:"legend-item",transform:`translate(0,${o})`},((t,a)=>{const{type:n="fill",styleFn:o,items:r}=t,s=[];let i=0;return r.forEach((t,r)=>{const l=G(t,r,n,o);s.push(e.createElement("g",{key:"legend-item-"+r,transform:`translate(0,${i})`,onClick:a?()=>a(t):void 0,style:{cursor:a?"pointer":"default"}},l,e.createElement("text",{y:15,x:30},t.label))),i+=25}),s})(t,n))),o+=25*t.items.length+10}),r})({legendGroups:a,width:r,customClickBehavior:n}):(({legendGroups:t,title:a,height:n,customClickBehavior:o})=>{let r=0;const s=[],i=!1===a?10:40;return t.forEach((a,l)=>{a.label&&(s.push(e.createElement("text",{key:"legend-text-"+l,transform:`translate(${r},${i}) rotate(90)`,textAnchor:"start",className:"legend-group-label"},a.label)),r+=20);const c=((t,a)=>{const{type:n="fill",styleFn:o,items:r}=t,s=[];let i=0;return r.forEach((t,r)=>{const l=G(t,r,n,o);s.push(e.createElement("g",{key:"legend-item-"+r,transform:`translate(${i},0)`,onClick:a?()=>a(t):void 0,style:{cursor:a?"pointer":"default"}},l,e.createElement("text",{y:15,x:25},t.label))),i+=35,i+=8*t.label.length}),{items:s,offset:i}})(a,o);s.push(e.createElement("g",{key:"legend-group-"+l,className:"legend-item",transform:`translate(${r},${i})`},c.items)),r+=c.offset+5,t[l+1]&&s.push(e.createElement("line",{key:"legend-top-line legend-symbol-"+l,stroke:"gray",x1:r,y1:i-10,x2:r,y2:n+i+10})),r+=15}),e.createElement("g",null,!1!==a&&e.createElement("line",{x1:0,x2:r+10,y1:i-10,y2:i-10,stroke:"gray",className:"title-neatline"}),s)})({legendGroups:a,title:o,height:s,customClickBehavior:n});return e.createElement("g",null,void 0!==o&&e.createElement("text",{className:"legend-title",y:20,x:"horizontal"===i?0:r/2,textAnchor:"horizontal"===i?"start":"middle"},o),l)}function Y(e,t=120,a=8){if(!e)return[];const n=Math.max(1,Math.floor(t/a)),o=e.split(/\s+/),r=[];let s="";for(const e of o)s&&s.length+1+e.length>n?(r.push(s),s=e):s=s?`${s} ${e}`:e;return s&&r.push(s),r}function H(e,t,a,n){return"curly"===e?n?`M0,0 C${.6*a},0 ${.4*a},${t/2} ${a},${t/2} C${.4*a},${t/2} ${.6*a},${t} 0,${t}`:`M0,0 C0,${.6*a} ${t/2},${.4*a} ${t/2},${a} C${t/2},${.4*a} ${t},${.6*a} ${t},0`:n?`M0,0 L${a},0 L${a},${t} L0,${t}`:`M0,0 L0,${a} L${t},${a} L${t},0`}function K(t){const{x:a=0,y:n=0,dx:o,dy:r,nx:s,ny:i,note:l,connector:c,subject:d,type:p,color:m,className:y,disable:u,events:h={},"data-testid":f}=t,x=new Set(Array.isArray(u)?u:[]);let g=o||0,v=r||0;null!=s&&(g=s-a),null!=i&&(v=i-n);const b="string"==typeof p?p:"label";if("bracket"===b&&d&&0===g&&0===v)if(void 0!==d.width){g=d.width/2;const e=d.depth||30;v=e+(0>e?-5:5)}else if(void 0!==d.height){const e=d.depth||30;g=e+(0>e?-5:5),v=d.height/2}return e.createElement("g",Object.assign({className:("annotation "+(y||"")).trim(),transform:`translate(${a},${n})`,"data-testid":f},h),!x.has("connector")&&function(t,a,n,o,r,s){const i=[];let l=0,c=0;if("callout-circle"!==r&&"label"!==r||!(null==s?void 0:s.radius)){if("callout-rect"===r&&s){const e=s.width||0,n=s.height||0;if(e>0||n>0){const o=e/2,r=n/2,s=t-o,i=a-r;if(0!==s||0!==i){const t=Math.abs(s),a=Math.abs(i),d=e/2,p=n/2,m=t*p>a*d?d/t:p/a;l=o+s*m,c=r+i*m}}}else if("bracket"===r&&s){const e=s.width,t=s.height,a=s.depth||30;void 0!==e?(l=e/2,c=a):void 0!==t&&(l=a,c=t/2)}}else{const e=(s.radius||0)+(s.radiusPadding||0);if(e>0&&(0!==t||0!==a)){const n=Math.atan2(a,t);l=Math.cos(n)*e,c=Math.sin(n)*e}}if(Math.sqrt(Math.pow(t-l,2)+Math.pow(a-c,2))>.5&&(i.push(e.createElement("line",{key:"connector-line",x1:l,y1:c,x2:t,y2:a,stroke:o||"currentColor"})),"arrow"===(null==n?void 0:n.end))){const n=10,r=16/180*Math.PI,s=Math.atan2(a-c,t-l);i.push(e.createElement("path",{key:"connector-arrow",d:`M${l},${c}L${l+n*Math.cos(s+r)},${c+n*Math.sin(s+r)}L${l+n*Math.cos(s-r)},${c+n*Math.sin(s-r)}Z`,fill:o||"currentColor",stroke:"none"}))}return e.createElement("g",{className:"annotation-connector"},i)}(g,v,c,m,b,d),!x.has("subject")&&function(t,a,n,o,r){var s;const i=[];switch(t){case"callout-circle":{const t=((null==a?void 0:a.radius)||0)+((null==a?void 0:a.radiusPadding)||0);t>0&&i.push(e.createElement("circle",{key:"subject-circle",r:t,fill:"none",stroke:n||"currentColor"}));break}case"callout-rect":{const t=(null==a?void 0:a.width)||0,o=(null==a?void 0:a.height)||0;(t>0||o>0)&&i.push(e.createElement("rect",{key:"subject-rect",width:t,height:o,fill:"none",stroke:n||"currentColor"}));break}case"callout-custom":(null==a?void 0:a.custom)&&i.push(...Array.isArray(a.custom)?a.custom:[a.custom]);break;case"xy-threshold":{const t=o||0,s=r||0;if(void 0!==(null==a?void 0:a.x)){const o=(a.x||0)-t;i.push(e.createElement("line",{key:"threshold-line",x1:o,y1:(a.y1||0)-s,x2:o,y2:(a.y2||0)-s,stroke:n||"currentColor",strokeDasharray:"5,5"}))}else if(void 0!==(null==a?void 0:a.y)){const o=(a.y||0)-s;i.push(e.createElement("line",{key:"threshold-line",x1:(a.x1||0)-t,y1:o,x2:(a.x2||0)-t,y2:o,stroke:n||"currentColor",strokeDasharray:"5,5"}))}else void 0!==(null==a?void 0:a.x1)||void 0!==(null==a?void 0:a.x2)?i.push(e.createElement("line",{key:"threshold-line",x1:(a.x1||0)-t,y1:0,x2:(a.x2||0)-t,y2:0,stroke:n||"currentColor",strokeDasharray:"5,5"})):void 0===(null==a?void 0:a.y1)&&void 0===(null==a?void 0:a.y2)||i.push(e.createElement("line",{key:"threshold-line",x1:0,y1:(a.y1||0)-s,x2:0,y2:(a.y2||0)-s,stroke:n||"currentColor",strokeDasharray:"5,5"}));break}case"bracket":{const t=null!==(s=null==a?void 0:a.width)&&void 0!==s?s:null==a?void 0:a.height;void 0!==t&&i.push(e.createElement("path",{key:"bracket-path",d:H((null==a?void 0:a.type)||"curly",t,(null==a?void 0:a.depth)||30,void 0===(null==a?void 0:a.width)),fill:"none",stroke:n||"currentColor"}));break}}return e.createElement("g",{className:"annotation-subject"},i)}(b,d,m,a,n),!x.has("note")&&function(t,a,n,o){if(!t)return e.createElement("g",{className:"annotation-note"});const{label:r,title:s,orientation:i,align:l,wrap:c=120,noWrap:d}=t;if(!r&&!s)return e.createElement("g",{className:"annotation-note"});let p=i;p||(p=Math.abs(a)>Math.abs(n)?"leftRight":"topBottom");let m=l;m&&"dynamic"!==m||(m="topBottom"===p?0>a?"right":"left":0>n?"bottom":"top");let y="start";"topBottom"===p?"right"===m?y="end":"middle"===m&&(y="middle"):y=0>a?"end":"start";const u=16,h=s?d?[s]:Y(s,c):[],f=r?d?[r]:Y(r,c):[],x="leftRight"===p?"end"===y?-4:4:0;let g=0;const v=[];h.length>0&&(v.push(e.createElement("text",{key:"annotation-note-title",className:"annotation-note-title",fill:o||void 0,textAnchor:y,fontWeight:"bold"},h.map((t,a)=>e.createElement("tspan",{key:a,x:x,dy:0===a?0:u},t)))),g=h.length*u),f.length>0&&v.push(e.createElement("text",{key:"annotation-note-label",className:"annotation-note-label",fill:o||void 0,textAnchor:y,y:g},f.map((t,a)=>e.createElement("tspan",{key:a,x:x,dy:u},t))));let b=null;if((s||r)&&(0!==a||0!==n))if("topBottom"===p){const t=Math.min(c,120);let a=0,n=t;"end"===y?(a=-t,n=0):"middle"===y&&(a=-t/2,n=t/2),b=e.createElement("line",{className:"note-line",x1:a,x2:n,y1:0,y2:0,stroke:o||"currentColor"})}else{const t=(h.length+f.length)*u+(f.length>0?u:0);let a=0,n=t;"bottom"===m?(a=-t,n=0):"middle"===m&&(a=-t/2,n=t/2),b=e.createElement("line",{className:"note-line",x1:0,x2:0,y1:a,y2:n,stroke:o||"currentColor"})}const k=(h.length+f.length)*u+(f.length>0?u:0);let j=0;return"topBottom"===p?0>n&&(j=-k):"leftRight"===p&&("middle"===m?j=-k/2:("bottom"===m||0>n)&&(j=-k)),e.createElement("g",{className:"annotation-note",transform:`translate(${a},${n})`},e.createElement("g",{className:"annotation-note-content",transform:0!==j?`translate(0,${j})`:void 0},v),b)}(l,g,v,m))}function q(t){const{noteData:a}=t,{screenCoordinates:n}=a,o="string"==typeof a.type?a.type:"label",r=a.eventListeners||a.events||{};if(a.coordinates&&n){const t=a.nx||n[0][0]+a.dx,r=a.ny||n[0][1]+a.dy,s=n.map((n,s)=>{const i=Object.assign({},a,{note:0===s?a.note:{label:""},x:n[0],y:n[1],nx:t,ny:r});return e.createElement(K,Object.assign({"data-testid":"semiotic-annotation",key:"multi-annotation-"+s},i,{type:o}))});return e.createElement("g",null,s)}const s=a.note||{title:"none",label:a.label};return e.createElement(K,Object.assign({"data-testid":"semiotic-annotation",key:`${s.label}-${s.title}-${a.i}`,events:r},a,{type:o}))}let[Z,J]=function(t){let i=a(null);return[function({children:a}){let o=n(()=>function(e){let t=new EventTarget,a=e(function e(n){a=Object.assign(a,n(e)),t.dispatchEvent(new CustomEvent("update"))});return{getState:()=>a,subscribe:function(e){return t.addEventListener("update",e),()=>t.removeEventListener("update",e)}}}(t),[]);return e.createElement(i.Provider,{value:o,children:a})},e=>{let t=o(i);return function(e,t){const[a,n]=r(t);return s(()=>e(()=>n(t)),[e]),a}(null==t?void 0:t.subscribe,()=>e(t.getState()))}]}(e=>({tooltip:null,changeTooltip(t){e(()=>({tooltip:t}))}}));function Q(e,t,a){return"number"==typeof a?a:t&&t.find(t=>t.props.orient===e)?50:10}const U=(e,t,a)=>`${e.map(ee).join(",")}${JSON.stringify(t)}${a.join(",")}`;function ee(e){if(!e||!e.props||!e.props.noteData)return"";const{note:t={}}=e.props.noteData,{label:a,title:n}=t;return`${e.props.noteData.id||`${e.props.noteData.x}-${e.props.noteData.y}`}-${a}=${n}`}function te(e,a=8,n){const{noteWidth:o=n}=e;let r=o;"number"==typeof o&&(r=()=>o);const s=e.note&&e.note.wrap||120,i=e.note.label||e.note.label||"";return o&&r(e)||(t.isValidElement(e.note)?100:Math.min(s,i.length*a))}function ae(e,a=8,n=20,o){const{noteHeight:r=o}=e;let s=r;"number"==typeof r&&(s=()=>r);const i=e.note&&e.note.wrap||120,l=e.note.label||e.note.title||"";return r&&s(e)||(t.isValidElement(e.note)?30:Math.ceil(l.length*a/i)*n+(e.note.label&&e.note.title?n:0))}const ne=(e,t)=>t.map((t,a)=>e.svgAnnotationRule(t,a,e)).filter(e=>null!=e),oe=(t,a)=>{let n=a.adjustedAnnotations,o=a.adjustedAnnotationsKey,r=a.adjustableAnnotations,s=a.fixedAnnotations,i=[],l=[];const c=a.adjustedAnnotationsKey,d=a.adjustedAnnotationsDataVersion,{annotations:m,annotationHandling:y=!1,size:u,svgAnnotationRule:h,htmlAnnotationRule:f}=t,x="object"==typeof y?y:{layout:{type:y},dataVersion:""},{dataVersion:g=""}=x;if(h){const a=ne(t,m);o=U(a,x,u),!1===y&&(n=r),n=n.length!==r.length||c!==o||d!==g?((t,a,n)=>{const{layout:o={type:!1,noteHeight:void 0,noteWidth:void 0}}=a;if(!1===o.type)return t;const{noteWidth:r,noteHeight:s}=o;let{margin:i={top:0,bottom:0,left:0,right:0}}=n;const{size:l,axes:c=[]}=n;if(i="number"==typeof i?{top:i,left:i,right:i,bottom:i}:i,"bump"===o.type)return function(e,t,a,n,o){const{padding:r=1,characterWidth:s=8,lineHeight:i=20,iterations:l=500,pointSizeFunction:c=n,labelSizeFunction:d=o||_}=t,p=e.map((e,t)=>{const a=(e.props.noteData.x[0]||e.props.noteData.x)+(void 0!==e.props.noteData.dx?e.props.noteData.dx:-10*(t%3-1)),n=(e.props.noteData.y[0]||e.props.noteData.y)+(void 0!==e.props.noteData.dy?e.props.noteData.dy:10*(t%3-1)),[o,l]=d(e.props.noteData,s,i,r);return{x:a,y:n,above:e.props.noteData.y>n,left:e.props.noteData.x>a,width:o,height:l,type:"label",name:"",originalNote:e}}),m=e.map(e=>({x:e.props.noteData.x,y:e.props.noteData.y,fx:e.props.noteData.x,fy:e.props.noteData.y,r:c&&c(e.props.noteData)||5,type:"point",originalNote:e})),y=function(){let e,t=[],a=[],n=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 n=t.length,o=0,r=t[e].x-a[e].x,s=a[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 l,c,p,m,y,u,h,f=t[e].x,x=t[e].y-t[e].height+2,g=t[e].x+t[e].width,v=t[e].y+2;for(let r=0;n>r;r++)r!==e&&(d(a[e].x,t[e].x,a[r].x,t[r].x,a[e].y,t[e].y,a[r].y,t[r].y)&&(o+=1),l=t[r].x,p=t[r].y-t[r].height+2,c=t[r].x+t[r].width,m=t[r].y+2,y=Math.max(0,Math.min(c,g)-Math.max(l,f)),u=Math.max(0,Math.min(m,v)-Math.max(p,x)),h=y*u,o+=30*h),l=a[r].x-a[r].r,p=a[r].y-a[r].r,c=a[r].x+a[r].r,m=a[r].y+a[r].r,y=Math.max(0,Math.min(c,g)-Math.max(l,f)),u=Math.max(0,Math.min(m,v)-Math.max(p,x)),h=y*u,o+=30*h;return o},l=function(r){let l,c,d=Math.floor(Math.random()*t.length),p=t[d].x,m=t[d].y;l=s?e(d,t,a):i(d),t[d].x+=5*(Math.random()-.5),t[d].y+=5*(Math.random()-.5),t[d].x>n&&(t[d].x=p),0>t[d].x&&(t[d].x=p),t[d].y>o&&(t[d].y=m),0>t[d].y&&(t[d].y=m),c=s?e(d,t,a):i(d);let y=c-l;Math.random()<Math.exp(-y/r)||(t[d].x=p,t[d].y=m)},c=function(r){let l,c=Math.floor(Math.random()*t.length),d=t[c].x,p=t[c].y;l=s?e(c,t,a):i(c);let m=.5*(Math.random()-.5),y=Math.sin(m),u=Math.cos(m);t[c].x-=a[c].x,t[c].y-=a[c].y;let h,f=t[c].x*y+t[c].y*u;t[c].x=t[c].x*u-t[c].y*y+a[c].x,t[c].y=f+a[c].y,t[c].x>n&&(t[c].x=d),0>t[c].x&&(t[c].x=d),t[c].y>o&&(t[c].y=p),0>t[c].y&&(t[c].y=p),h=s?e(c,t,a):i(c);let x=h-l;Math.random()<Math.exp(-x/r)||(t[c].x=d,t[c].y=p)},d=function(e,t,a,n,o,r,s,i){let l,c,d,p,m;return d=(i-s)*(t-e)-(n-a)*(r-o),p=(n-a)*(o-s)-(i-s)*(e-a),m=(t-e)*(o-s)-(r-o)*(e-a),l=p/d,c=m/d,!(0>l||l>1||0>c||c>1)},p=function(e,t,a){return e-t/a};return r.start=function(e){let a=t.length,n=1;for(let t=0;e>t;t++){for(let e=0;a>e;e++).5>Math.random()?l(n):c(n);n=p(n,1,e)}},r.width=function(e){return arguments.length?(n=e,r):n},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?(a=e,r):a},r.alt_energy=function(t){return arguments.length?(e=t,s=!0,r):i},r.alt_schedule=function(e){return arguments.length?r:p},r}();return y.label(p),y.anchor(m),y.width(a[0]),y.height(a[1]),y.start(l),p.forEach(e=>{if("label"===e.type){const t=function(e,t,a){return e.y>t.y?[t.x+t.width/2+a/2,t.y-t.height+a/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}(t,o,l,n.pointSizeFunction,n.labelSizeFunction);if("marginalia"===o.type){const{marginOffset:a,orient:n="nearest",characterWidth:d=8,lineHeight:m=20,padding:y=2,axisMarginOverride:u={}}=o,h="nearest"===n?["left","right","top","bottom"]:Array.isArray(n)?n:[n],f=h.find(e=>"left"===e),x=h.find(e=>"right"===e),g=h.find(e=>"top"===e),v=h.find(e=>"bottom"===e),b=[],k=[],j=[],E=[];for(const e of t){const t=e.props.noteData,a=t.x[0]||t.x,n=t.y[0]||t.y,o=f?a:1/0,r=x?l[0]-a:1/0,s=g?n:1/0,i=Math.min(o,r,s,v?l[1]-n:1/0);o===i?b.push(e):r===i?k.push(e):s===i?j.push(e):E.push(e)}const S=new p.Force({minPos:void 0!==u.top?0+u.top:0-i.top,maxPos:void 0!==u.bottom?l[1]-u.bottom:v?l[1]:l[1]+i.bottom}).nodes(b.map(e=>new p.Node(e.props.noteData.y[0]||e.props.noteData.y,ae(e.props.noteData,d,m,r)+y))).compute(),A=new p.Force({minPos:void 0!==u.top?0+u.top:g?0:0-i.top,maxPos:void 0!==u.bottom?l[1]-u.bottom:l[1]+i.bottom}).nodes(k.map(e=>new p.Node(e.props.noteData.y[0]||e.props.noteData.y,ae(e.props.noteData,d,m,r)+y))).compute(),M=new p.Force({minPos:void 0!==u.left?0+u.left:f?0:0-i.left,maxPos:void 0!==u.right?l[0]-u.right:l[0]+i.right}).nodes(j.map(e=>new p.Node(e.props.noteData.x[0]||e.props.noteData.x,te(e.props.noteData,d,s)+y))).compute(),$=new p.Force({minPos:void 0!==u.left?0+u.left:0-i.left,maxPos:void 0!==u.right?l[0]-u.right:x?l[0]:l[0]+i.right}).nodes(E.map(e=>new p.Node(e.props.noteData.x[0]||e.props.noteData.x,te(e.props.noteData,d,s)+y))).compute(),O=Math.max(...E.map(e=>ae(e.props.noteData,d,m,r)+y)),P=Math.max(...j.map(e=>ae(e.props.noteData,d,m,r)+y)),C=Math.max(...b.map(e=>te(e.props.noteData,d,s)+y)),D=Math.max(...k.map(e=>te(e.props.noteData,d,s)+y)),w=S.nodes(),N=A.nodes(),T=M.nodes(),z=$.nodes();return b.forEach((t,n)=>{const o=0-w[n].layerIndex*C-Q("left",c,a),r=w[n].currentPos;t.props.noteData.nx=o,t.props.noteData.ny=r,t.props.noteData.note&&!e.isValidElement(t)&&(t.props.noteData.note.orientation=t.props.noteData.note.orientation||"leftRight",t.props.noteData.note.align=t.props.noteData.note.align||"right")}),k.forEach((t,n)=>{const o=l[0]+N[n].layerIndex*D+Q("right",c,a),r=N[n].currentPos;t.props.noteData.nx=o,t.props.noteData.ny=r,t.props.noteData.note&&!e.isValidElement(t)&&(t.props.noteData.note.orientation=t.props.noteData.note.orientation||"leftRight",t.props.noteData.note.align=t.props.noteData.note.align||"left")}),j.forEach((e,t)=>{const n=T[t].currentPos,o=0-T[t].layerIndex*P-Q("top",c,a);e.props.noteData.nx=n,e.props.noteData.ny=o}),E.forEach((e,t)=>{const n=z[t].currentPos,o=l[1]+z[t].layerIndex*O+Q("bottom",c,a);e.props.noteData.nx=n,e.props.noteData.ny=o}),t}return t})(r,x,t):r.map((t,a)=>{const o=Object.assign(Object.assign({},n[a].props.noteData),t.props.noteData);return e.createElement(q,{key:t.key,noteData:o})}),i=[...n,...s]}return f&&(l=((e,t)=>t.map((t,a)=>e.htmlAnnotationRule(t,a,e)).filter(e=>null!=e))(t,m)),{svgAnnotations:i,htmlAnnotations:l,adjustedAnnotations:n,adjustedAnnotationsKey:o,adjustedAnnotationsDataVersion:g}};function re(t){const{legendSettings:a,margin:n,size:o,annotations:s,annotationHandling:l}=t,c=J(e=>e.tooltip);let d=null!=c?s.concat(c):s,p=J(e=>e.changeTooltip);const m=Object.assign(Object.assign({},t),{annotations:d,voronoiHover:e=>{p(e)}}),y="object"==typeof l?l:{layout:{type:l},dataVersion:""},{dataVersion:u=""}=y,[h,f]=r([]),[x,g]=r([]),[v,b]=r([]),[k,j]=r(""),[E,S]=r(u),A=ne(m,d),M=A.filter(e=>e.props&&e.props.noteData&&!e.props.noteData.fixedPosition),$=U(M,y,o);let O;if(i(()=>{const e=A.filter(e=>!e.props||!e.props.noteData||e.props.noteData.fixedPosition),t=oe(m,{adjustedAnnotations:h,adjustedAnnotationsKey:k,adjustedAnnotationsDataVersion:E,adjustableAnnotations:M,fixedAnnotations:e});f(t.adjustedAnnotations),j(t.adjustedAnnotationsKey),S(t.adjustedAnnotationsDataVersion),g(t.svgAnnotations),b(t.htmlAnnotations)},[$,u,d.length,d.map(e=>function(e){const t=new Set;return JSON.stringify(e,(e,a)=>t.has(a)?"...":"object"==typeof a?(t.add(a),"note"===e?`${a.label}-${a.title}`:"connector"===e?`${a.end}-${a.type}`:"subject"===e?""+a.radius:"object"==typeof a.column?`${a.column.x}-${a.column.y}-${a.column.name}`:a.voronoiX||a.voronoiY||a.x||a.y||a.dx||a.dy||a.label||a.type||a.key||a.hierarchicalID||a.id||a.name?`${a.voronoiX}-${a.voronoiY}-${a.dx}-${a.dy}-${a.x}-${a.y}-${a.label}-${a.type}-${a.key}-${a.hierarchicalID}-${a.id}-${a.name}`:"..."):a)}(e)).join("-")]),a){const t={left:[15,15],right:[o[0]+15,15]},{position:n="right",title:r="Legend"}=a;O=e.createElement("g",{transform:`translate(${t[n].join(",")})`},e.createElement(X,Object.assign({},a,{title:r,position:n})))}return 0!==d.length||a?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:n.left+"px",top:n.top+"px",overflow:"visible"}},e.createElement("g",null,O,x)),e.createElement("div",{className:"annotation-layer-html",style:{background:"none",pointerEvents:"none",position:"absolute",height:o[1]+"px",width:o[0]+"px",left:n.left+"px",top:n.top+"px"}},v)):null}const se=e=>e.reduce((e,t)=>e.concat(Array.isArray(t)?se(t.slice().sort((e,t)=>e-t)):t),[]);function ie(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)),""+se(t).map(e=>e instanceof Date&&""+e||void 0!==e&&e.toFixed&&e.toFixed(2)||"empty")}function le(t){const{extent:a,selectedExtent:n}=t,o=l(null),r=ie(a),s=ie(n);i(()=>{(null==o?void 0:o.current)&&((e,t)=>{const{svgBrush:a,selectedExtent:n}=t;if(h(e).call(a),n){let t=n;if(Array.isArray(n[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]]]}h(e).call(a.move,t)}})(o.current,t)},[r,s,o]);const{position:c=[0,0]}=t;return e.createElement("g",{transform:`translate(${c})`,ref:o,className:"xybrush"})}function ce(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);n.length>o;o++)0>t.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(a[n[o]]=e[n[o]])}return a}"function"==typeof SuppressedError&&SuppressedError;const de="x",pe="y",me="yMiddle",ye="yTop",ue="yBottom",he="xMiddle",fe="xTop",xe="xBottom",ge=(e,t)=>void 0===e?e:Object.assign(e&&e.data?Object.assign({points:t},e.data):{points:t},e),ve=(e,t,a,n,o,r)=>{const s=ge(t,o);if(n&&n(s),t){if(!0===a){const t=Object.assign({},s);t.type="column-hover"===t.type?"column-hover":"frame-hover",e(t,r)}else if(a){const t=(Array.isArray(a)?a:[a]).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)},be=(e,t,a,n)=>{const o=ge(e,a);t&&t(o,n)},ke=(e,t,a,n)=>{const o=ge(e,a);t&&t(o,n)},je=(e,t,a,n,o)=>{o&&o.start&&o.start(e,t,a,n)},Ee=(e,t,a,n,o)=>{o&&o.during&&o.during(e,t,a,n)},Se=(e,t,a,n,o)=>{o&&o.end&&o.end(e,t,a,n)},Ae=()=>({}),Me=2*Math.PI,$e=({xy:t,orient:a,i:n,className:o="",jaggedBase:r})=>{let s=`M${t.x1},${t.y1}L${t.x2},${t.y2}`;return r&&0===n&&(s=((e,t)=>{let a="";const{x1:n,x2:o,y1:r,y2:s}=t;if("left"===e||"right"===e){const t=Math.abs(o-n);a=((e,t,a,n)=>{const o=e/t;let r=0,s="M0,"+a;const i="right"===n?-1:1;for(;e>=r;)s+=`L${r},${a}`,e>r&&(s+=`L${r+o/2},${a+10*i}`),r+=o;return s})(t,Math.ceil(t/40),"right"===e?0:r,e)}else{const t=Math.abs(s-r);a=((e,t,a,n)=>{const o=e/t;let r=0,s=`M${a},0`;const i="bottom"===n?-1:1;for(;e>=r;)s+=`L${a},${r}`,e>r&&(s+=`L${a+10*i},${r+o/2}`),r+=o;return s})(t,Math.ceil(t/40),n,e)}return a})(a,t)),e.createElement("path",{key:n,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:s,className:`tick-line tick ${a} ${o}`})};function Oe(e,t,a){const n=Math.abs(a.range()[1]-a.range()[0]);return e||(t||(t=Math.max(1,Math.floor(n/40))),e=a.ticks&&a.ticks(t)||a.domain()),e}function Pe({renderMode:e=()=>{},padding:t=5,scale:a,ticks:n,tickValues:o=Oe(void 0,n,a),orient:r="left",size:s,footer:i=!1,tickSize:l=(i?-10:["top","bottom"].find(e=>e===r)?s?s[1]:0:s?s[0]:0),jaggedBase:c}){let d,p,m,y,u,h,f=[],x=0,g=0,v="middle";switch(r){case"top":d="x1",p="x2",m="y1",y="y2",f=[0,l],u="tx",h="ty",x-=20-t;break;case"bottom":d="x1",p="x2",m="y2",y="y1",f=s?[s[1],s[1]-l]:[0,-l],u="tx",h="ty",x+=20+t;break;case"right":d="y2",p="y1",m="x2",y="x1",f=s?[s[0],s[0]-l]:[0,-l],u="ty",h="tx",x+=5+t,g+=5,v="start";break;default:d="y1",p="y2",m="x1",y="x2",f=[0,l],u="ty",h="tx",x-=5+t,g+=5,v="end"}let b=o instanceof Function?o({orient:r}):o;return c&&void 0===b.find(e=>e===a.domain()[0])&&(b=[a.domain()[0],...b]),b.map((t,n)=>{const o=a(t);return{[d]:o,[p]:o,[m]:f[0],[y]:f[1],[u]:o+g,[h]:f[0]+x,defaultAnchor:v,renderMode:e(t,n),value:t}})}const Ce=({axisParts:t,orient:a,tickLineGenerator:n=$e,className:o,jaggedBase:r,scale:s,showOutboundTickLines:i=!1})=>{const l=t.map((e,t)=>n({xy:e,orient:a,i:t,className:o,jaggedBase:r,scale:s})),c=i?t.map((t,n)=>(({xy:t,orient:a,i:n,className:o=""})=>{let r=`M-4,${t.y1}L${t.x1},${t.y2}`;return"left"===a?r=`M${t.x1-8},${t.y1}L${t.x1},${t.y2}`:"right"===a?r=`M${t.x2},${t.y1}L${t.x2+8},${t.y2}`:"top"===a?r=`M${t.x1},${t.y1-8}L${t.x1},${t.y1}`:"bottom"===a&&(r=`M${t.x1},${t.y2}L${t.x1},${t.y2+8}`),e.createElement("path",{key:n,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:r,className:`outbound-tick-line tick ${a} ${o}`})})({xy:t,orient:a,i:n,className:o})):[];return[...l,c]};function De({t:e,o:t,w:a}){return"contour"!==e&&"boxplot"!==e||"left"!==t&&"right"!==t?0:a/2}function we({t:e,o:t,w:a}){return"contour"!==e&&"boxplot"!==e||"top"!==t&&"bottom"!==t?0:a/2}function Ne(e){const{translation:a,orient:n,decoratedSummaryType:o,summaryWidth:r,renderedSummary:s,points:i}=e;return t.createElement("g",{className:"marginal-graphics",transform:`translate(${a[n]})`},t.createElement("g",{transform:`translate(${De({t:o.type,o:n,w:r})},${we({t:o.type,o:n,w:r})})`},s),i)}function Te(e){const{className:a,translation:n,position:o,rotation:r,labelName:s,anchorMod:i}=e;return t.createElement("g",{className:"axis-title "+a,transform:`translate(${[n[0]+o[0],n[1]+o[1]]}) rotate(${r})`},t.isValidElement(s)?s:t.createElement("text",{textAnchor:i},s))}function ze(e,t,a){const n=Math.PI*(t+.75)*2;return[e[0]+a*Math.cos(n),e[1]+a*Math.sin(n)]}const Fe=()=>({});function Le(e,t){for(var a=[],n=0;e>n;n++){for(var o=[],r=0;t>r;r++)o.push(0);a.push(o)}return a}function Re(e,t,a,n){var o;if(e>0){var r=(a[t]-a[e-1])/(t-e+1);o=n[t]-n[e-1]-(t-e+1)*r*r}else o=n[t]-a[t]*a[t]/(t+1);return 0>o?0:o}function Be(e,t,a,n,o,r,s){if(t>=e){var i=Math.floor((e+t)/2);n[a][i]=n[a-1][i-1],o[a][i]=i;var l=a;e>a&&(l=Math.max(l,o[a][e-1]||0)),l=Math.max(l,o[a-1][i]||0);var c,d,p,m,y=i-1;n[0].length-1>t&&(y=Math.min(y,o[a][t+1]||0));for(var u=y;u>=l&&(c=Re(u,i,r,s))+n[a-1][l-1]<n[a][i];--u)d=Re(l,i,r,s),n[a][i]>(p=d+n[a-1][l-1])&&(n[a][i]=p,o[a][i]=l),l++,n[a][i]>(m=c+n[a-1][u-1])&&(n[a][i]=m,o[a][i]=u);Be(e,i-1,a,n,o,r,s),Be(i+1,t,a,n,o,r,s)}}function Ve({summaryType:e,data:t,finalXExtent:a,finalYExtent:n}){let o=[];e.type||(e={type:e});const{resolution:r=500,thresholds:s=10,bandwidth:i=20,neighborhood:l}=e,c=d().domain(a).rangeRound([0,r]).nice(),p=d().domain(n).rangeRound([r,0]).nice();return t.forEach(e=>{let t=B().size([r,r]).x(e=>c(e[0])).y(e=>p(e[1])).thresholds(s).bandwidth(i)(e._xyfCoordinates);l&&(t=[t[0]]);const a=Math.max(...t.map(e=>e.value));t.forEach(t=>{t.parentSummary=e,t.bounds=[],t.percent=t.value/a,t.coordinates.forEach(e=>{e.forEach((a,n)=>{e[n]=a.map(e=>[c.invert(e[0]),p.invert(e[1])]),0===n&&t.bounds.push(function(e){let t=[1/0,0],a=[-1/0,0],n=[0,1/0],o=[0,-1/0];return e.forEach(e=>{t=t[0]>e[0]?e:t,a=e[0]>a[0]?e:a,o=e[1]>o[1]?e:o,n=n[1]>e[1]?e:n}),{center:[(t[0]+a[0])/2,(n[1]+o[1])/2],top:n,left:t,right:a,bottom:o}}(e[n]))})})}),o=[...o,...t]}),o}function Ie({preprocess:t=!0,processedData:a=!1,summaryType:n,data:o,finalXExtent:r,finalYExtent:s,size:i,xScaleType:l=d(),yScaleType:c=d(),margin:p,styleFn:m,classFn:y,renderFn:u,chartSize:h}){let f=r,x=s;if(!f){const e=o.coordinates.map(e=>e.x);f=[Math.min(...e),Math.max(...e)]}if(!x){const e=o.coordinates.map(e=>e.y);x=[Math.min(...e),Math.max(...e)]}if(a&&o)return o.coordinates;let g,v=[];g=n.type?n:{type:g};const{bins:b=.05,cellPx:k,binValue:j=e=>e.length,binMax:E,customMark:S}=g;o.coordinates&&!o._xyfCoordinates&&(o._xyfCoordinates=o.coordinates.map(e=>[e.x,e.y]));const A=Array.isArray(o)?o:[o],M=l.domain(f).range([0,i[0]]),$=c.domain(x).range([0,i[1]]),O=k&&k/2||(b>1?1/b:b)*i[0]/2,P=V().x(e=>M(e._xyfPoint[0])).y(e=>$(e._xyfPoint[1])).radius(O).size(i);let C;const D=P.centers();return A.forEach(t=>{C=0;const a=P(t._xyfCoordinates.map((e,a)=>Object.assign({_xyfPoint:e},t.coordinates[a]))),n={};a.forEach(e=>{n[`${parseInt(e.x)}-${parseInt(e.y)}`]=!0}),D.forEach(e=>{if(!n[`${parseInt(e[0])}-${parseInt(e[1])}`]){const t=[];t.x=e[0],t.y=e[1],a.push(t)}}),C=Math.max(...a.map(e=>j(e))),E&&E(C);const o=[[0,-1],[.866,-.5],[.866,.5],[0,1],[-.866,.5],[-.866,-.5]],r=M.invert(O)-f[0],s=$.invert(O)-x[0],l=o.map(e=>[e[0]*r,e[1]*s]),c=a.map(a=>{const n=j(a),r=a.x,s=a.y;a.x=M.invert(a.x),a.y=$.invert(a.y);const c=n/C;return{customMark:S&&e.createElement("g",{transform:`translate(${r},${i[1]-s})`},S({d:Object.assign(Object.assign({},a),{binItems:a,percent:c,value:n,radius:O,hexCoordinates:o.map(e=>[e[0]*O,e[1]*O])}),margin:p,styleFn:m,classFn:y,renderFn:u,chartSize:h,adjustedSize:i})),_xyfCoordinates:l.map(e=>[e[0]+a.x,e[1]+a.y]),value:n,percent:c,data:a,parentSummary:t,centroid:!0}});v=[...v,...c]}),t?(v.forEach(e=>{e.x=e.data.x,e.y=e.data.y}),{type:"hexbin",processedData:!0,coordinates:v,binMax:C}):v}const _e=(e,t,a,n)=>[...e.map((e,n)=>[e[0],e[1]+a(t[n])]),...e.map((e,a)=>[e[0],e[1]-n(t[a])]).reverse()];function We({preprocess:t=!0,processedData:a=!1,summaryType:n,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:l=d(),yScaleType:c=d(),margin:p,styleFn:m,classFn:y,renderFn:u,chartSize:h}){if(a&&o)return o.coordinates;o.coordinates&&!o._xyfCoordinates&&(o._xyfCoordinates=o.coordinates.map(e=>[e.x,e.y]));const f=Array.isArray(o)?o:[o];let x,g=[];x=n.type?n:{type:x};const{binValue:v=e=>e.length,xBins:b=x.yBins||.05,yBins:k=b,xCellPx:j=!x.xBins&&x.xCellPx,yCellPx:E=!x.yBins&&x.yCellPx,customMark:S,binMax:A}=x,M=1>b?b:1/b,$=1>k?k:1/k,O=l.domain(r).range([0,i[0]]),P=c.domain(s).range([i[1],0]),C=[Math.ceil((j&&j/i[0]||M)*i[0]*10)/10,Math.ceil((E&&E/i[1]||$)*i[1]*10)/10];let D=-1/0;return f.forEach(t=>{const a=[],n=[];let o,r;for(let e=0;i[0]>Math.ceil(e);e+=C[0]){const s=O.invert(e),l=O.invert(e+C[0]);r=[],a.push(r);for(let a=0;i[1]>Math.ceil(a);a+=C[1]){const i=P.invert(a),c=P.invert(a+C[1]);o={gx:e,gy:a,gw:C[0],gh:C[1],x:(s+l)/2,y:(i+c)/2,binItems:[],value:0,_xyfCoordinates:[[s,i],[l,i],[l,c],[s,c]],parentSummary:t},r.push(o),n.push(o)}r.push(o)}a.push(r),t._xyfCoordinates.forEach((e,n)=>{const o=O(e[0]),r=P(e[1]),s=Math.floor(o/C[0]),i=Math.floor(r/C[1]);a[s][i]&&a[s][i].binItems.push(t.coordinates[n])}),n.forEach(e=>{e.value=v(e.binItems),D=Math.max(D,e.value)}),n.forEach(t=>{t.percent=t.value/D,t.customMark=S&&e.createElement("g",{transform:`translate(${t.gx},${t.gy})`},S({d:t,margin:p,styleFn:m,classFn:y,renderFn:u,chartSize:h,adjustedSize:i}))}),g=[...g,...n]}),A&&A(D),t?{type:"heatmap",processedData:!0,_baseData:[],_xyfCoordinates:[],data:[],bounds:[],x:0,y:0,coordinates:g,binMax:D}:g}function Ge(e){let t=[1/0,0],a=[-1/0,0],n=[0,1/0],o=[0,-1/0];return e.forEach(e=>{t=t[0]>e[0]?e:t,a=e[0]>a[0]?e:a,o=e[1]>o[1]?e:o,n=n[1]>e[1]?e:n}),{center:[(t[0]+a[0])/2,(n[1]+o[1])/2],top:n,left:t,right:a,bottom:o}}const Xe=e=>[e.xy.x,e.xy.y],Ye={step:w,stepbefore:D,stepafter:C,cardinal:E,basis:P,linear:O,catmullrom:$,monotone:A,monotonex:M,monotoney:A,natural:S};function He({generator:e,projectedCoordinateNames:t,defined:a,xScale:n,yScale:o,interpolator:r,simpleLine:s}){const{x:i,y:l,yTop:c,yBottom:d,xBottom:p,xTop:m}=t;e.x(e=>n(e[i])).curve(r),s?e.y(e=>o(e[l])):(e.y0(e=>o(e[d])).y1(e=>o(e[c])),e.x0(e=>n(e[p])).x1(e=>n(e[m]))),e.defined(a?(e,t)=>a(e,t):e=>!e._xyFrameUndefined)}function Ke({xScale:t,yScale:a,canvasDrawing:n,data:o,projectedCoordinateNames:r,customMark:s,canvasRender:i,styleFn:l,classFn:c,renderKeyFn:d,renderMode:p,showLinePoints:m}){const{y:y,x:u,xMiddle:h,yMiddle:f,yTop:x,yBottom:g}=r,v={top:x,bottom:g}[!0===m?void 0:m],b=[];return o.forEach((o,r)=>{const m=t(void 0!==o[h]?o[h]:o[u]),x=a(void 0!==o[v]?o[v]:void 0!==o[f]?o[f]:o[y]),g=`Point at x ${o.x} and y ${o.y}`,k=s?e.isValidElement(s)?s:s({d:o.data,xy:o,i:r,xScale:t,yScale:a}):void 0,j=s?Object.assign(Object.assign({},k.props),{"aria-label":g}):{key:"piece-"+r,markType:"circle",r:2,"aria-label":g};!k||!k.props||k.props.markType||i&&!0===i(o.data,r)?i&&!0===i(o.data,r)?n.push({type:"point",baseClass:"frame-piece",tx:m,ty:x,d:o,i:r,markProps:j,styleFn:l,renderFn:p,classFn:c}):(Array.isArray(o[y])?o[y].map(e=>a(e)):[x]).forEach((e,a)=>{(Array.isArray(o[u])?o[u].map(e=>t(e)):[m]).forEach((t,n)=>{b.push(Je({baseClass:"frame-piece",tx:t,ty:e,d:o.data&&Object.assign(Object.assign({},o),o.data)||o,i:0===a&&0===n?r:`${r}-${a}-${n}`,markProps:j,styleFn:l,renderKeyFn:d,classFn:c,yi:a}))})}):b.push(e.createElement("g",{transform:`translate(${m},${x})`,key:d?d(o.data,r):"custom-point-mark-"+r,style:l?l(o.data,r):{},className:c?c(o.data,r):""},k))}),b}function qe({xScale:t,yScale:a,canvasDrawing:n,data:o,projectedCoordinateNames:r,customMark:s,canvasRender:i,styleFn:l,classFn:c,renderMode:d,renderKeyFn:p,type:m,defined:y,ariaLabel:u,axesData:h=[]}){const f=h.find(e=>"bottom"===e.orient||"top"===e.orient),x=h.find(e=>"left"===e.orient||"right"===e.orient),g=f&&f.tickFormat||(e=>e),v=x&&x.tickFormat||(e=>e),b="object"==typeof m?m:{type:m},k="string"==typeof b.interpolator?Ye[b.interpolator]:b.interpolator||O,j=b.simpleLine?N():T();He({projectedCoordinateNames:r,defined:y,interpolator:k,generator:j,xScale:t,yScale:a,simpleLine:b.simpleLine});const E=k.dynamicInterpolator&&((e,n)=>{const o=T();return He({projectedCoordinateNames:r,defined:y,interpolator:k.dynamicInterpolator(e,n),generator:o,xScale:t,yScale:a,simpleLine:b.simpleLine}),o})||(()=>j),S=[];if(o.forEach((e,o)=>{const m=e.data.map(e=>Object.assign(Object.assign({},e.data),e));if(s&&"function"==typeof s){const r=Object.assign(Object.assign({},e),{data:m});S.push(s({d:r,i:o,xScale:t,yScale:a,canvasDrawing:n}))}else{const s={};b.simpleLine&&(s.fill="none",s.stroke="black");const h=E(e,o)(m),f=Object.assign(Object.assign({},s),{markType:"path",d:h,"aria-label":e.data&&e.data.length>0&&u&&`${e.data.length} point ${u.items} starting value ${v(e.data[0].y)} at ${g(e.data[0].x)} ending value ${v(e.data[e.data.length-1].y)} at ${g(e.data[e.data.length-1].x)}`});if(i&&!0===i(e,o))n.push({type:"line",baseClass:"xyframe-line",tx:0,ty:0,d:e,i:o,markProps:f,styleFn:l,renderFn:d,classFn:c});else{let n=l;if("area"===b.type&&!0!==b.enclosed&&(n=(e,t)=>Object.assign(Object.assign({},l(e,t)),{stroke:"none"})),S.push(Je({baseClass:"xyframe-line",d:e,i:o,markProps:f,styleFn:n,renderKeyFn:p,classFn:c})),"area"===b.type&&!0!==b.enclosed){const n=(e,t)=>Object.assign(Object.assign({},l(e,t)),{fill:"none"}),s=N();He({projectedCoordinateNames:r,defined:y,interpolator:k,generator:s,xScale:t,yScale:a,simpleLine:!0});const i=Object.assign(Object.assign({},f),{d:s(m)}),d=p?(e,t,a)=>p(e,t,a)+"-top":void 0;S.push(Je({baseClass:"xyframe-line-top",d:e,i:o,markProps:i,styleFn:n,renderKeyFn:d,classFn:c}))}}}}),"difference"===b.type&&2===o.length){const n=o[0].data.map((e,t)=>{const a=e.yTop>o[1].data[t].yTop?e.yTop:e.yBottom;return{x:e.x,y:a,yBottom:a,yTop:a}}),s=o[0].data.map((e,t)=>{const a=o[1].data[t].yTop>e.yTop?o[1].data[t].yTop:o[1].data[t].yBottom;return{x:e.x,y:a,yBottom:a,yTop:a}}),i=c?"xyframe-line "+c(n):"xyframe-line",l=N();He({projectedCoordinateNames:r,defined:y,interpolator:k,generator:l,xScale:t,yScale:a,simpleLine:!0});const d=e.createElement("path",{key:"xyline-diff-a",className:i+" difference-overlay-a",d:l(n),style:{fill:"none",pointerEvents:"none"}});S.push(d);const p=e.createElement("path",{key:"xyline-diff-b",className:i+" difference-overlay-b",d:l(s),style:{fill:"none",pointerEvents:"none"}});S.push(p)}return S}function Ze({xScale:t,yScale:a,canvasDrawing:n,data:o,canvasRender:r,styleFn:s,classFn:i,renderKeyFn:l,renderMode:c,customMark:d}){const p=i||(()=>""),m=s||(()=>({})),y=c;Array.isArray(o)||(o=[o]);const u=[];return o.forEach((o,s)=>{let i="xyframe-summary";p&&(i="xyframe-summary "+p(o));let c="",h=!1;if("string"==typeof o.customMark||e.isValidElement(o.customMark))c=o.customMark,h=!0;else if("MultiPolygon"===o.type)o.coordinates.forEach(e=>{e.forEach(e=>{c+=`M${e.map(e=>`${t(e[0])},${a(e[1])}`).join("L")}Z `})});else if(d){const e=o._xyfCoordinates.map(e=>[t(e[0]),a(e[1])]);c=d({d:o,i:s,classFn:p,styleFn:m,renderFn:y,projectedCoordinates:e,xScale:t,yScale:a,bounds:Ge(e)}),h=!0}else{const e=o._xyfCoordinates;if(o.curve){const n=N().x(e=>t(e[0])).y(e=>a(e[1])).curve(o.curve);c=n(e)}else c=`M${e.map(e=>`${t(e[0])},${a(e[1])}`).join("L")}Z`}const f=l?l(o,s):"summary-"+s;h&&e.isValidElement(c)?u.push(c):r&&!0===r(o,s)?n.push({type:"summary",baseClass:"xyframe-summary",tx:0,ty:0,d:o,i:s,markProps:{markType:"path",d:c},styleFn:m,renderFn:y,classFn:()=>i}):u.push(e.createElement("path",{"data-testid":"xyframe-summary",key:f,className:i,d:c,style:m(o,s)}))}),u}function Je({tx:t,ty:a,d:n,i:o,markProps:r,styleFn:s,classFn:i,renderKeyFn:l,baseClass:c,yi:d}){if(r.style=s?s(n,o,d):{},r.className=c,r.key=l?l(n,o,d):`${c}-${void 0===n.key?o:n.key}`,(t||a)&&(r.transform=`translate(${t||0},${a||0})`),i&&(r.className=`${c} ${i(n,o,d)}`),r.style.r&&(r.r=r.style.r),r["data-testid"]=c,!r.markType)return e.createElement(r);const{markType:p}=r,m=ce(r,["markType"]);return e.createElement(p,m)}const Qe=(e,t)=>e.xy.y-t.xy.y,Ue=(e,t)=>t.xy.x-e.xy.x,et=()=>({});function tt({summary:t,summaryI:a,axisSettings:n,axisCreator:o,projection:r,actualMax:s,adjustedSize:i,columnWidth:l}){let c=`translate(${t.x},0)`,p=[0,s];"horizontal"===r?(c=`translate(0,${t.x})`,p=[s,0]):"radial"===r&&(c="translate(0, 0)"),n.size=["horizontal"===r?i[0]:l,"vertical"===r?i[1]:l];const m=o(n,a,d().domain(p).range([0,l]));return e.createElement("g",{className:"summary-axis",key:"summaryPiece-axis-"+a,transform:c},m)}function at({data:e,type:t,eventListenersGenerator:a,styleFn:n,classFn:o,projection:r,adjustedSize:s,chartSize:i,axisCreator:l}){const c=[],d=[],p=t.bins||25,m=!!t.relative&&{},y=t.binValue||(e=>e.length),u=t.elementStyleFn||et;let h;t.axis&&(t.axis.orient="horizontal"===r&&-1===["left","right"].indexOf(t.axis.orient)?"left":t.axis.orient,t.axis.orient="vertical"===r&&-1===["bottom","top"].indexOf(t.axis.orient)?"bottom":t.axis.orient,h=l,"radial"===r&&(console.error("Summary axes cannot be drawn for radial histograms"),h=()=>null));let f=i/p;const k=Object.keys(e);let E=0;const S=g(),A=[0,i],M=[];for(let e=0;p>e;e++)M.push(A[0]+e/p*i);const P="vertical"===r?e=>e.piece.scaledVerticalValue:e=>e.piece.scaledValue,C=S.domain(A).thresholds(M).value(P),D=k.map((a,n)=>{const o=e[a],s=o.xyData,l=s.sort("vertical"===r?Qe:Ue);let c;if(!1===t.useBins){const e=l.map(e=>P(e));c=l.map((t,a)=>{const n=[];return n.x0=e[a]-1,n.x1=e[a]+1,n.push(t),n}).sort((e,t)=>e.x0-t.x0),f=i/c.length}else c=C(l);c=c.map(e=>({y:e.x0,y1:e.x1-e.x0,pieces:e,value:y(e.map(e=>e.piece.data))})),"histogram"!==t.type&&"heatmap"!==t.type||(c=c.filter(e=>0!==e.value));const d=0===c.length?0:v(c.map(e=>e.value));return m&&(m[a]=d),E=Math.max(E,d),{bins:c,summary:o,summaryI:n,thisSummaryData:s}}),w=t.horizon?E/t.horizon:t.numHorizons||4,z=t.horizon||E/w;return D.forEach(({bins:e,summary:i,summaryI:l,thisSummaryData:p})=>{const g=a(i,l),k=i.width;let S=p[0]?n(p[0].piece.data,l):{},A=p[0]?o(p[0].piece.data,l):"",M=[i.middle,0];"horizontal"===r?M=[f,i.middle]:"radial"===r&&(M=[s[0]/2,s[1]/2]);const P=m&&m[i.name]||E;if("heatmap"===t.type||"histogram"===t.type){const a=(({bins:e,binMax:t,relativeBuckets:a,columnWidth:n,projection:o,adjustedSize:r,summaryI:s,summary:i,summaryStyle:l,type:c})=>{const d=[],p=[],m=a&&a[i.name]||t,y=c.elementStyleFn||Ae,u=c.padding||0;return e.forEach((e,t)=>{const a=e.value/m,h=y(e.value,a,e.pieces),f=Object.assign("heatmap"===c.type?{opacity:a,fill:l.fill}:Object.assign({},l),h),x=Math.max(1,e.y1-2*u),g="heatmap"===c.type?n:n*a;let v=e.y+u,b="heatmap"===c.type||c.flip?-n/2:n/2-g,k=x,E=g,S="heatmap"===c.type?g/2:g,A=e.y1/2;if("horizontal"===o)v="heatmap"===c.type||c.flip?-n/2:n/2-g,b=e.y-e.y1+u,k=g,E=x,A="heatmap"===c.type?g/2:g,S=e.y1/2;else if("radial"===o){const n=j().innerRadius(e.y/2).outerRadius((e.y+e.y1)/2),o=i.pct-i.pct_padding;let l=i.pct_middle-i.pct_padding,m="heatmap"===c.type?l+o:l+o*a;l*=Me,m*=Me;const y=r[0]/2,u=r[1]/2,h=`translate(${y},${u})`,x=n.centroid({startAngle:l,endAngle:m});p.push({key:i.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:x[0]+y,y:x[1]+u}),d.push({markType:"path",transform:h,key:`groupIcon-${s}-${t}`,d:n({startAngle:l,endAngle:m}),style:f})}"radial"!==o&&(p.push({key:i.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:b+S,y:v+A}),d.push({markType:"rect",key:`groupIcon-${s}-${t}`,x:b,y:v,height:k,width:E,style:f}))}),{marks:d,points:p}})({bins:e,binMax:E,relativeBuckets:m,columnWidth:k,projection:r,adjustedSize:s,summaryI:l,summary:i,summaryStyle:S,type:t}),n=a.marks;"radial"===r&&(M=[0,0]),t.axis&&"histogram"===t.type&&c.push({type:"svg-only-mark",Mark:tt({summary:i,summaryI:l,axisSettings:t.axis,axisCreator:h,projection:r,actualMax:P,adjustedSize:s,columnWidth:k})}),a.points.forEach(e=>{e.x+=M[0],e.y+=M[1]}),d.push(...a.points),c.push({containerProps:Object.assign(Object.assign({},g),{transform:`translate(${M})`,className:A,key:"summaryPiece-"+l,role:"img",tabIndex:-1,"data-o":i.name,"aria-label":`${i.name} ${t.type}`}),elements:n})}else if("violin"===t.type){const{iqr:a}=t,s=t.subsets||[!1],m=[];e[0].y=e[0].y-f/2,e[e.length-1].y=e[e.length-1].y+f/2,s.forEach((s,c)=>{let h=e;s&&(S=p[0]?n(p[0].piece.data,l,c):{},A=p[0]?o(p[0].piece.data,l,c):"",h=e.map(e=>{const t=e.pieces.filter((e,t)=>s(e.piece,t)).map(e=>e),a=y(t);return Object.assign(Object.assign({},e),{pieces:t,value:a})}));let v=T().curve(t.curve||$),b=[];if("horizontal"===r)h.forEach(e=>{const t=e.y-f/2,a=e.value/P*k/2;b.push({x:t,y0:-a,y1:a}),d.push({key:i.name,x:t+M[0],y:a+M[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||b[t-1]&&0!==b[t-1].y0||b[t+1]&&0!==b[t+1].y0);else if("vertical"===r)h.forEach(e=>{const t=e.y+f/2,a=e.value/P*k/2;b.push({y:t,x0:-a,x1:a}),d.push({key:i.name,x:a+M[0],y:t+M[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||b[t-1]&&0!==b[t-1].x0||b[t+1]&&0!==b[t+1].x0);else if("radial"===r){const e=i.pct-i.pct_padding/2,t=i.pct_middle;b=h,v=a=>{const n=[],o=[];return a.forEach(a=>{const r=ze([0,0],t+e*a.value/P/2,(a.y+a.y1-f/2)/2),s=ze([0,0],t-e*a.value/P/2,(a.y+a.y1-f/2)/2);d.push({key:i.name,x:s[0]+M[0],y:s[1]+M[1],pieces:a.pieces.map(e=>e.piece),value:a.value}),d.push({key:i.name,x:r[0]+M[0],y:r[1]+M[1],pieces:a.pieces.map(e=>e.piece),value:a.value}),n.push(r),o.push(s)}),`M${n.map(e=>e.join(",")).join("L")}L${o.reverse().map(e=>e.join(",")).join("L")}Z`}}if(m.push(Object.assign(Object.assign({},g),{transform:`translate(${M})`,key:`summaryPiece-${l}-${c}`,markType:"path",className:A,style:S,d:v(b),role:"img",tabIndex:-1,"data-o":i.name,"aria-label":i.name+" distribution"})),a){let e=[];h.forEach(t=>{e.push(...t.pieces)}),e=e.map(e=>"vertical"===r?e.piece.scaledVerticalValue:e.piece.scaledValue).sort((e,t)=>e-t);const t=[x(e,.25),x(e,.5),x(e,.75)],a="vertical"===r?(e,t,a)=>`M${a[0]},${e}L${a[0]},${t}`:(e,t,a)=>`M${e},${a[1]}L${t},${a[1]}`;m.push(Object.assign(Object.assign({},g),{key:`summaryPiece-${l}-${c}-iqr-line`,markType:"path",className:A,style:Object.assign(Object.assign({stroke:"black",strokeWidth:"2px"},S),u("iqr")),d:a(t[0],t[2],M),role:"img",tabIndex:-1,"data-o":i.name,"aria-label":i.name+" distribution"})),m.push(Object.assign(Object.assign({},g),{key:`summaryPiece-${l}-${c}-iqr-median`,markType:"circle",className:A,style:Object.assign(Object.assign({stroke:"black",fill:"black",strokeWidth:"1px",r:"3px"},S),u("median")),cx:"vertical"===r?M[0]:t[1],cy:"vertical"===r?t[1]:M[1],role:"img",tabIndex:-1,"data-o":i.name,"aria-label":i.name+" distribution"}))}}),c.push({elements:m})}else if("ridgeline"===t.type){const a=Object.assign({},e[0],{value:0}),n=Object.assign({},e[e.length-1],{value:0});a.y=a.y-f/2,n.y=n.y+f/2;const o=[a,...e,n];let p=[];const m=t.curve||t.interpolator,y="string"==typeof m?Ye[m]:m;let u=N().curve(y||$).x(e=>e.x).y(e=>e.y);const x=t.amplitude||0;if(t.axis&&"histogram"===t.type&&c.push({type:"svg-only-mark",Mark:tt({summary:i,summaryI:l,axisSettings:Object.assign({baseline:!1},t.axis),axisCreator:h,projection:r,actualMax:P,adjustedSize:s,columnWidth:k})}),"horizontal"===r)o.forEach((e,a)=>{const n=e.y-f/2,r=t.flip?e.value/P*(k+x)-k/2:-e.value/P*(k+x)+k/2;p.push({y:r,x:n}),0!==a&&a!==o.length-1&&d.push({key:i.name,x:n+M[0],y:r+M[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("vertical"===r)o.forEach(e=>{const a=e.y+f/2,n=!0===t.flip?e.value/P*(k+x)-k/2:-e.value/P*(k+x)+k/2;p.push({y:a,x:n}),d.push({key:i.name,x:n+M[0],y:a+M[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("radial"===r){const e=i.pct-i.pct_padding/2,t=i.pct_start+i.pct_padding/2;M=[0,0],p=o,u=a=>{const n=[];return a.forEach(a=>{const o=ze([s[0]/2,s[1]/2],t+e*a.value/P,(a.y+a.y1-f/2)/2);d.push({key:i.name,x:o[0]+M[0],y:o[1]+M[1],pieces:a.pieces.map(e=>e.piece),value:a.value}),n.push(o)}),`M${n.map(e=>e.join(",")).join("L")}Z`}}t.axis&&c.push({type:"svg-only-mark",Mark:tt({summary:i,summaryI:l,axisSettings:t.axis,axisCreator:h,projection:r,actualMax:P,adjustedSize:s,columnWidth:k})}),c.push({elements:[Object.assign(Object.assign({},g),{transform:`translate(${M})`,key:"summaryPiece-"+l,markType:"path",className:A,style:S,d:u(p),role:"img",tabIndex:-1,"data-o":i.name,"aria-label":i.name+" distribution"})]})}else if("horizon"===t.type){const a=Object.assign({},e[0],{value:0}),n=Object.assign({},e[e.length-1],{value:0});a.y=a.y-f/2,n.y=n.y+f/2;const o=[a,...e,n];let p=[],m=!0,y=0;for(;!0===m;){const e=o.map(e=>Object.assign(Object.assign({},e),{value:Math.max(0,Math.min(e.value-y,z))}));p.push(e.map(e=>Object.assign(Object.assign({},e),{value:e.value*w}))),y+=z,v(e.map(e=>e.value))<z&&(m=!1)}p=p.filter(e=>b(e,e=>e.value)>0),o.forEach((e,a)=>{0!==a&&a!==o.length-1&&("horizontal"===r?d.push({key:i.name,x:e.y-f/2+M[0],y:-e.value/P*k+k/2+M[1],pieces:e.pieces.map(e=>e.piece),value:e.value}):"vertical"===r&&d.push({key:i.name,x:(!0===t.flip?e.value/P*k-k/2:-e.value/P*k+k/2)+M[0],y:e.y+f/2+M[1],pieces:e.pieces.map(e=>e.piece),value:e.value}))});const x=p.map((e,a)=>{let n=[];const o=t.curve||t.interpolator,c="string"==typeof o?Ye[o]:o;let d=N().curve(c||O).x(e=>e.x).y(e=>e.y);if("horizontal"===r)e.forEach(e=>{n.push({y:-e.value/P*k+k/2,x:e.y-f/2})});else if("vertical"===r)e.forEach(e=>{n.push({y:e.y+f/2,x:!0===t.flip?e.value/P*k-k/2:-e.value/P*k+k/2})});else if("radial"===r){const t=i.pct-i.pct_padding/2,a=i.pct_start+i.pct_padding/2;M=[0,0],n=e,d=e=>{const n=[];return e.forEach(e=>{const o=ze([s[0]/2,s[1]/2],a+t*e.value/P,(e.y+e.y1-f/2)/2);n.push(o)}),`M${n.map(e=>e.join(",")).join("L")}Z`}}return Object.assign(Object.assign({},g),{transform:`translate(${M})`,key:`summaryPiece-${l}-${a}`,markType:"path",className:A,style:Object.assign(Object.assign({},S),u(e,a)),d:d(n),role:"img",tabIndex:-1,"data-o":i.name,"aria-label":i.name+" distribution"})});t.axis&&c.push({type:"svg-only-mark",Mark:tt({summary:i,summaryI:l,axisSettings:t.axis,axisCreator:h,projection:r,actualMax:P,adjustedSize:s,columnWidth:k})}),c.push({elements:x})}}),{marks:c,xyPoints:d,thresholds:M}}const nt={contour:function({data:e,type:t,eventListenersGenerator:a,styleFn:n,classFn:o,adjustedSize:r}){const s=[],i=[];return Object.keys(e).forEach((l,c)=>{const d=e[l];t.thresholds=t.thresholds||8,t.bandwidth=t.bandwidth||12,t.resolution=t.resolution||1e3;const p=[{id:d,_xyfCoordinates:d.xyData.map(Xe)}],m=Ve({summaryType:t,data:p,finalXExtent:[0,r[0]],finalYExtent:[0,r[1]]}),y=[];m.forEach((e,t)=>{e.coordinates.forEach((r,s)=>{const i=a(e,t);y.push(Object.assign(Object.assign({},i),{key:`${t}-${s}`,style:n(d.pieceData[0].data,c),className:o(d.pieceData[0].data,c),markType:"path",d:`M${e.coordinates[0].map(e=>e.join(",")).join("L")}Z`}))})}),s.push({containerProps:{key:"contour-container-"+c,role:"img",tabIndex:-1,"data-o":l,"aria-label":`${l} boxplot showing ${i.filter(e=>e.key===l).map(e=>`${e.label} ${e.value}`)}`},elements:y})}),{marks:s,xyPoints:i}},boxplot:function({data:e,type:t,eventListenersGenerator:a,styleFn:n,classFn:o,projection:r,adjustedSize:s}){const i=t.elementStyleFn||Fe,{outliers:l,fixedInput:c}=t,d=[],p=[];return Object.keys(e).forEach((t,m)=>{const y=e[t],u=a(y,m),h=y.width,f=y.pieceData,g=n(f[0].data,m),v=o(f[0].data,m);let b,k,E,S,A,M,$,O,P,C,D,w,N,T,z,F,L,R,B,V,I,_,W,G,X,Y,H,K,q,Z,J;k=f.map(e=>e.value).sort((e,t)=>e-t),!0===c&&5===k.length||(k=[x(k,0),x(k,.25),x(k,.5),x(k,.75),x(k,1)]);const Q=k[3]-k[1];let U,ee;l&&(U=k[1]-1.5*Q,ee=k[3]+1.5*Q,k[0]=Math.max(k[0],U),k[4]=Math.min(k[4],ee));const te="vertical"===r?e=>e.scaledVerticalValue:e=>e.scaledValue,ae=[...f].sort((e,t)=>e.value-t.value),ne=ae[0].value,oe=ae[ae.length-1].value,re=te(ae[0]),se=te(ae[ae.length-1]);if(b=k.map(e=>oe===ne?(re+se)/2:re+(e-ne)/(oe-ne)*(se-re)),"vertical"===r){E=`translate(${y.x+y.width/2},0)`,S=0,A=0,M=b[0],$=b[4],O=-h/2,P=h/2,C=-h/2,D=h/2,w=-h/2,N=h/2,R=h,B=b[1]-b[2],V=b[2],I=-h/2,T=h,z=b[2]-b[3],_=h,W=b[1]-b[3],G=b[3],X=-h/2,F=b[3],L=-h/2,Y=b[0],H=b[0],K=b[4],q=b[4],Z=b[2],J=b[2];const e=y.x+y.width/2;p.push({label:"Maximum",key:t,summaryPieceName:"max",x:e,y:b[4],value:k[4]},{label:"3rd Quartile",key:t,summaryPieceName:"q3area",x:e,y:b[3],value:k[3]},{label:"Median",key:t,summaryPieceName:"median",x:e,y:b[2],value:k[2]},{label:"1st Quartile",key:t,summaryPieceName:"q1area",x:e,y:b[1],value:k[1]},{label:"Minimum",key:t,summaryPieceName:"min",x:e,y:b[0],value:k[0]})}else if("horizontal"===r){const e=y.x+y.width/2;E=`translate(0,${e})`,M=0,$=0,S=b[0],A=b[4],Y=-h/2,H=h/2,Z=-h/2,J=h/2,K=-h/2,q=h/2,z=h,T=b[3]-b[2],L=b[2],F=-h/2,B=h,R=b[2]-b[1],I=b[1],V=-h/2,W=h,_=b[3]-b[1],X=b[1],G=-h/2,O=b[0],P=b[0],w=b[4],N=b[4],C=b[2],D=b[2],p.push({label:"Maximum",key:t,summaryPieceName:"max",x:b[4],y:e,value:k[4]},{label:"3rd Quartile",key:t,summaryPieceName:"q3area",x:b[3],y:e,value:k[3]},{label:"Median",key:t,summaryPieceName:"median",x:b[2],y:e,value:k[2]},{label:"1st Quartile",key:t,summaryPieceName:"q1area",x:b[1],y:e,value:k[1]},{label:"Minimum",key:t,summaryPieceName:"min",x:b[0],y:e,value:k[0]})}if("radial"===r){S=0,A=0,M=b[0],$=b[4],O=-h/2,P=h/2,C=-h/2,D=h/2,w=-h/2,N=h/2,T=h,z=b[1]-b[3],F=b[3],L=-h/2,R=h,B=b[1]-b[3],V=b[3],I=-h/2,Y=b[0],H=b[0],K=b[4],q=b[4],Z=b[2],J=b[2];const e=2*Math.PI,a=j().innerRadius(K/2).outerRadius(K/2),n=j().innerRadius(Y/2).outerRadius(Y/2),o=j().innerRadius(Z/2).outerRadius(Z/2),r=j().innerRadius(b[1]/2).outerRadius(Z/2),l=j().innerRadius(Z/2).outerRadius(b[3]/2),c=j().innerRadius(b[1]/2).outerRadius(b[3]/2);let x=y.pct_start+y.pct_padding/2,_=y.pct+y.pct_start-y.pct_padding/2;const W=y.pct/2+y.pct_start;x*=e,_*=e;const G=s[0]/2,X=s[1]/2,Q=ze([0,0],W,b[4]/2),U=ze([0,0],W,b[0]/2),ee=ze([0,0],W,b[3]/2),te=ze([0,0],W,b[2]/2),ae=ze([0,0],W,b[1]/2);p.push({label:"Minimum",key:t,summaryPieceName:"min",x:U[0]+G,y:U[1]+X,value:k[0]},{label:"1st Quartile",key:t,summaryPieceName:"q3area",x:ae[0]+G,y:ae[1]+X,value:k[1]},{label:"Median",key:t,summaryPieceName:"median",x:te[0]+G,y:te[1]+X,value:k[2]},{label:"3rd Quartile",key:t,summaryPieceName:"q1area",x:ee[0]+G,y:ee[1]+X,value:k[3]},{label:"Maximum",key:t,summaryPieceName:"max",x:Q[0]+G,y:Q[1]+X,value:k[4]}),E=`translate(${G},${X})`,d.push({containerProps:Object.assign(Object.assign({},u),{className:v,transform:E,key:"summaryPiece-"+m,role:"img",tabIndex:-1,"data-o":t,"aria-label":`${t} boxplot showing ${p.filter(e=>e.key===t).map(e=>`${e.label} ${e.value}`)}`}),elements:[{markType:"line",x1:Q[0],x2:U[0],y1:Q[1],y2:U[1],style:Object.assign({strokeWidth:2},g,i("whisker",f))},{markType:"path",d:n({startAngle:x,endAngle:_}),style:Object.assign({strokeWidth:4},g,{fill:"none"},i("max",f))},{markType:"path",d:o({startAngle:x,endAngle:_}),style:Object.assign({strokeWidth:4},g,{fill:"none"},i("median",f))},{markType:"path",d:a({startAngle:x,endAngle:_}),style:Object.assign({strokeWidth:4},g,{fill:"none"},i("min",f))},{markType:"path",d:c({startAngle:x,endAngle:_}),style:Object.assign({strokeWidth:4},g,i("iqrarea",f))},{markType:"path",d:r({startAngle:x,endAngle:_}),style:Object.assign({},g,{fill:"none",stroke:"none"},i("q3area",f))},{markType:"path",d:l({startAngle:x,endAngle:_}),style:Object.assign({},g,{fill:"none",stroke:"none"},i("q1area",f))}]})}else{const e=[{markType:"line",x1:S,x2:A,y1:M,y2:$,style:Object.assign({strokeWidth:2},g,i("whisker",f))},{markType:"line",x1:O,x2:P,y1:Y,y2:H,style:Object.assign({strokeWidth:2},g,i("min",f))},{markType:"line",x1:w,x2:N,y1:K,y2:q,style:Object.assign({strokeWidth:2},g,i("max",f))},{markType:"rect",x:X,width:_,y:G,height:W,style:Object.assign({strokeWidth:1},g,i("iqrarea",f))},{markType:"rect",x:L,width:T,y:F,height:z,style:Object.assign({},g,{fill:"none",stroke:"none"},i("q3area",f))},{markType:"rect",x:I,width:R,y:V,height:B,style:Object.assign({},g,{fill:"none",stroke:"none"},i("q1area",f))},{markType:"line",x1:C,x2:D,y1:Z,y2:J,style:Object.assign({strokeWidth:2},g,i("median",f))}],a=[];l&&f.filter(e=>e.value>ee||U>e.value).forEach(e=>{a.push({markType:"circle",cx:"horizontal"===r?e.scaledValue:0,cy:"vertical"===r?e.scaledVerticalValue:0,style:Object.assign({strokeWidth:"1px",stroke:"black",fill:"none",r:2},g,i("outlier",f))})}),d.push({containerProps:Object.assign(Object.assign({},u),{className:v,transform:E,key:"summaryPiece-"+m,role:"img",tabIndex:-1,"data-o":t,"aria-label":`${t} boxplot showing ${p.filter(e=>e.key===t).map(e=>`${e.label} ${e.value}`)}`}),elements:[...e,...a]})}}),{marks:d,xyPoints:p}},violin:at,heatmap:at,ridgeline:at,histogram:at,horizon:at,ckbins:function(e){const{data:t,eventListenersGenerator:a,styleFn:n,classFn:o}=e,r=[];let s=0;const i=[];return Object.keys(t).forEach((e,r)=>{const l=t[e];a(l,r);const c=l.pieceData.sort((e,t)=>e.value-t.value),p=c[0],m=c[c.length-1],y=d().domain([p.value,m.value]).range([p.scaledValue,m.scaledValue]),u=n(c[0].data,r),h=o(c[0].data,r),f=function(e,t){if(t>e.length)throw Error("Cannot generate more classes than there are data values");var a=e.length,n=e.slice().sort(function(e,t){return e-t}),o=function(e){for(var t,a=0,n=0;e.length>n;n++)0!==n&&e[n]===t||(t=e[n],a++);return a}(n);if(1===o)return[n[0]];var r=Le(t=Math.min(o,t),a),s=Le(t,a);!function(e,t,a){for(var n=t[0].length,o=Array(n),r=Array(n),s=e[Math.floor(n/2)],i=0;n>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]=Re(0,i,o,r),a[0][i]=0;for(var l=1;t.length>l;++l)Be(t.length-1>l?l:n-1,n-1,l,t,a,o,r)}(n,r,s);for(var i=[],l=s[0].length-1,c=s.length-1;c>=0;c--){var d=s[c][l];i[c]=n[d],c>0&&(l=d-1)}return i}(c.map(e=>e.value),5);let x=[];f.forEach((t,a)=>{var n;const o=null!==(n=f[a+1])&&void 0!==n?n:m.value;x.push({start:t,end:o,key:e,summary:l,calculatedSummaryStyle:u,calculatedSummaryClass:h,scaledStart:y(t),scaledEnd:y(o),values:[]})}),i.push(x);let g=0;for(const e of c)x[g].end>e.value||x[g+1]&&g++,x[g].values.push(e);x.forEach(e=>{s=Math.max(e.values.length,s)})}),i.forEach((e,t)=>{const a=e.map(e=>{const{calculatedSummaryStyle:t}=e,{fill:a="black",stroke:n="black"}=t,o=d().domain([1,s]).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:o(e.values.length),strokeWidth:1,stroke:n})}});r.push({containerProps:{transform:"",key:"summaryPiece-"+t,role:"img",tabIndex:-1},elements:a})}),{marks:r,xyPoints:[]}}};function ot(t){const{rotate:a,label:n,dynamicLabelPosition:o,orient:s="left",marginalSummaryType:c,tickFormat:d=(c?()=>"":e=>e),size:p,width:m=p&&p[0]||0,height:y=p&&p[1]||0,className:u,padding:h,tickValues:f,scale:x,ticks:g,footer:v,tickSize:b,tickLineGenerator:k,baseline:j=!0,margin:E={top:0,bottom:0,left:0,right:0},center:S=!1,annotationFunction:A,glyphFunction:M,xyPoints:$}=t,[O,P]=r(0),[C,D]=r(void 0),w=l(null);i(()=>{if(!(null==n?void 0:n.position)&&o){const e=((e,t)=>{const a=e.current;if(!a)return 30;const n="left"===t||"right"===t?"width":"height";return Math.max(...[...a.querySelectorAll(".axis-label")].map(e=>e.getBBox&&e.getBBox()||{height:30,width:30}).map(e=>e[n]))+25})(w,s);e!==C&&D(e)}},[n,o]);let N,{axisParts:T,position:z=[0,0]}=t;if(T||(T=Pe({padding:h,tickValues:f,scale:x,ticks:g,orient:s,size:[m,y],footer:v,tickSize:b}),N=e.createElement("g",{className:"axis "+u},Ce({axisParts:T,orient:s,tickLineGenerator:k,className:u,scale:x}))),0===T.length)return null;let F,L,R,B,V=50,I=y,_=-50,W=0,G=0,X=0,Y=0,H=y,K=25,q=-25,Z=18,J=m+25,Q=0,U=O,ee=0,te="y";switch(s){case"right":z=[z[0],z[1]],_=m,Y=G=m,ee=E.top,J=-m-25,q=5,F=e=>{P(e.nativeEvent.offsetY-ee)},!0===S&&(Y=G=m/2);break;case"top":z=[z[0],0],V=m,I=50,W=-50,_=0,ee=E.left,te="x",Y=m,H=0,!0===S&&(H=X=y/2),F=e=>{P(e.nativeEvent.offsetX-ee)},K=O,U=25,q=0,Z=-10,J=0,Q=y+25;break;case"bottom":z=[z[0],0],V=m,I=50,X=H=W=y,G=_=0,Y=m,ee=E.left,F=e=>{P(e.nativeEvent.offsetX-ee)},K=O,U=25,q=0,Z=15,J=0,Q=-y-25,te="x",!0===S&&(H=X=y/2);break;default:z=[z[0],z[1]],ee=E.top,!0===S&&(Y=G=m/2),F=e=>{P(e.nativeEvent.offsetY-ee)}}if(A){const a=function(e,t){return t.tickFormat?t.tickFormat(e):e.toString?""+e:e}(x.invert(O),t),n=M?M({lineHeight:Q,lineWidth:J,value:x.invert(O)}):e.createElement("g",null,e.isValidElement(a)?e.createElement("g",{transform:`translate(${q},${Z})`},a):e.createElement("text",{x:q,y:Z},a),e.createElement("circle",{r:5}),e.createElement("line",{x1:J,y1:Q,style:{stroke:"black"}})),o=O?e.createElement("g",{style:{pointerEvents:"none"},transform:`translate(${K},${U})`},n):null;L=e.createElement("g",{className:"annotation-brush",transform:`translate(${_},${W})`},e.createElement("rect",{style:{fillOpacity:0},height:I,width:V,onMouseMove:F,onClick:e=>A({className:"dynamic-axis-annotation",type:te,value:x.invert(O),e:e}),onMouseOut:()=>{P(void 0)}}),o)}if(c&&$){const t=Math.max(E[s]-6,5),a="string"==typeof c?{type:c}:c;void 0!==a.flip||"bottom"!==s&&"right"!==s||(a.flip=!0);const n=a.summaryStyle?()=>a.summaryStyle:()=>({fill:"black",fillOpacity:.5,stroke:"black",strokeDasharray:"0"}),o=a.renderMode?()=>a.renderMode:()=>{},r=a.summaryClass?()=>a.summaryClass:()=>"",i=a.filter||(()=>!0),l=$.filter(e=>void 0!==e.x&&void 0!==e.y&&i(e.data)).map(e=>Object.assign(Object.assign({},e),{xy:{x:"top"===s||"bottom"===s?x(e.x):0,y:"left"===s||"right"===s?x(e.y):0},piece:{scaledVerticalValue:x(e.y),scaledValue:x(e.x)},value:x("top"===s||"bottom"===s?e.y:e.x),scaledValue:x(e.x),scaledVerticalValue:x(e.y)})),d=function(t){const a=[];for(const n of t){const t=[],{elements:o,containerProps:r}=n;if(n.Mark)a.push(n.Mark);else{for(let a=0;o.length>a;a++){const n=o[a],{markType:r,style:s={}}=n,i=ce(n,["markType","style"]),l=Object.assign({},i);void 0!==s.fill&&(l.fill=s.fill),void 0!==s.stroke&&(l.stroke=s.stroke),void 0!==s.strokeWidth&&(l.strokeWidth=s.strokeWidth),void 0!==s.opacity&&(l.opacity=s.opacity),void 0!==s.fillOpacity&&(l.fillOpacity=s.fillOpacity),void 0!==s.strokeOpacity&&(l.strokeOpacity=s.strokeOpacity);const c=Object.assign({},s);delete c.fill,delete c.stroke,delete c.strokeWidth,delete c.opacity,delete c.fillOpacity,delete c.strokeOpacity,Object.keys(c).length>0&&(l.style=c),l.key=n.key||a,r&&t.push(e.createElement(r,l))}r?a.push(e.createElement("g",Object.assign({},r),t)):a.push(...t)}}return a}((({data:e,type:t,renderMode:a,eventListenersGenerator:n,styleFn:o,classFn:r,projection:s,adjustedSize:i,margin:l,axisCreator:c})=>{if(t&&t.type)return function({data:e,type:t,renderMode:a,eventListenersGenerator:n,styleFn:o,classFn:r,projection:s,adjustedSize:i,chartSize:l,margin:c,axisCreator:d}){let p;if("function"==typeof t.type)p=t.type;else{if(!nt[t.type])return console.error(`Invalid summary type: ${t.type} - Must be a function or one of the following strings: ${Object.keys(nt).join(", ")}`),{};p=nt[t.type]}return p({data:e,type:t,renderMode:a,eventListenersGenerator:n,styleFn:o,classFn:r,projection:s,adjustedSize:i,chartSize:l,margin:c,axisCreator:d})}({data:e,type:t="string"==typeof t?{type:t}:t,renderMode:a,eventListenersGenerator:n,styleFn:o,classFn:r,projection:s,adjustedSize:i,chartSize:"vertical"===s?i[1]:i[0],margin:l,axisCreator:c})})({data:{column:{middle:t/2,pieceData:l,width:t,xyData:l}},type:a,renderMode:o,eventListenersGenerator:a.eventListenersGenerator||(()=>({})),styleFn:n,classFn:r,projection:"top"===s||"bottom"===s?"horizontal":"vertical",adjustedSize:p,margin:{top:0,bottom:0,left:0,right:0}}).marks);let m;if(!0===a.showPoints){const n=((e,t,a)=>{const n="left"===e||"right"===e?t/2:0,o="bottom"===e||"top"===e?t/2:0;return a.map(e=>[e.xy.x+n,e.xy.y+o])})(s,t,l);m=n.map((t,n)=>e.createElement("circle",{key:"axis-summary-point-"+n,cx:t[0],cy:t[1],r:a.r||3,style:a.pointStyle||{fill:"black",fillOpacity:.1}}))}R=e.createElement(Ne,{translation:{left:[2-E.left,0],right:[p[0]+2,0],top:[0,2-E.top],bottom:[0,p[1]+2]},orient:s,decoratedSummaryType:a,summaryWidth:t,renderedSummary:d,points:m})}const ae=(({axisParts:t,tickFormat:a,rotate:n=0,center:o=!1,orient:r})=>t.map((t,s)=>{let i=a(t.value,s);("object"!=typeof i||i instanceof Date)&&(i=e.createElement("text",{textAnchor:t.defaultAnchor,className:"axis-label"},i.toString?""+i:i));let l=t.tx,c=t.ty;if(o)switch(r){case"right":l-=(t.x2-t.x1)/2;break;case"left":l+=(t.x2-t.x1)/2;break;case"top":c+=(t.y2-t.y1)/2;break;case"bottom":c-=(t.y2-t.y1)/2}return e.createElement("g",{key:s,pointerEvents:"none",transform:`translate(${l},${c}) rotate(${n})`,className:"axis-label"},i)}))({tickFormat:d,axisParts:T,orient:s,rotate:a,center:S});if(n){const t=n.name||n,a=n.position||{};let o=a.anchor||"middle";const r=n.locationDistance||C,i=a.rotation||{left:-90,right:90,top:0,bottom:0}[s],l={left:{start:[0,p[1]],middle:[0,p[1]/2],end:[0,0],inside:[r||15,0],outside:[-(r||45),0]},right:{start:[p[0]+0,p[1]],middle:[p[0]+0,p[1]/2],end:[p[0]+0,0],inside:[-(r||15),0],outside:[r||45,0]},top:{start:[0,0],middle:[0+p[0]/2,0],end:[0+p[0],0],inside:[0,r||15],outside:[0,-(r||40)]},bottom:{start:[0,p[1]],middle:[0+p[0]/2,p[1]],end:[0+p[0],p[1]],inside:[0,-(r||5)],outside:[0,r||50]}},c=l[s][o],d=l[s][a.location||"outside"];c[0]=c[0]+d[0],c[1]=c[1]+d[1],"start"===o&&"right"===s?o="end":"end"===o&&"right"===s&&(o="start"),B=e.createElement(Te,{className:u,translation:c,position:z,rotation:i,labelName:t,anchorMod:o})}const ne=`${s} axis ${T&&T.length>0&&`from ${d(T[0].value,0)} to ${d(T[T.length-1].value,T.length-1)}`||"without ticks"}`;return e.createElement("g",{className:u,"aria-label":ne,ref:w},L,ae,N,!0===j?e.createElement("line",{key:"baseline",className:"axis-baseline "+u,stroke:"black",strokeLinecap:"square",x1:G,x2:Y,y1:X,y2:H}):null,B,R)}const rt=e=>{let t=null,a="top";return"string"==typeof e?t=e:"title"in e?(t=e.title,a=e.orient||"top"):t=e,{orient:a,title:t}},st=({margin:e,size:t,inset:a=0})=>{const n=[t[0]-a,t[1]-a];return`M0,0 h${t[0]} v${t[1]} h-${t[0]}Z M${e.left-a},${e.top-a} v${t[1]+2*a-e.top-e.bottom} h${n[0]+3*a-e.left-e.right} v-${n[1]+3*a-e.top-e.bottom}Z`},it=({margin:e,axes:t,title:a,oLabel:n,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:l,orient:c}=rt(a);return!l||"string"==typeof l&&0===l.length||(s[c]+=40),n&&"radial"!==o&&("bottom"===i||"top"===i?s.left+=50:s.bottom+=50),s};function lt(e){return e instanceof Function||"string"==typeof e?{type:e}:void 0===e?{}:e}function ct({size:e=[500,500],position:t=[0,0],margin:a,projection:n}){const o=[t[0],t[1]];let r=[e[0]-(a.left+a.right),e[1]-(a.top+a.bottom)];if("radial"===n){const e=Math.min(r[0],r[1]);r=[e,e]}return{adjustedPosition:o,adjustedSize:r}}const dt=(e,t,a,n)=>{const o=e.getContext("2d",{willReadFrequently:!0}),r=o.getImageData(n.offsetX,n.offsetY,1,1);let s=t[a.get(`rgba(${r.data[0]},${r.data[1]},${r.data[2]},255)`)];if(!s){const e=o.getImageData(n.offsetX-2,n.offsetY-2,5,5);let r=0;for(;!s&&100>r;)s=t[a.get(`rgba(${e.data[r]},${e.data[r+1]},${e.data[r+2]},255)`)],r+=4}return s},pt=e.memo(function({width:t,height:a,overlayRegions:n,margin:o,voronoiHover:r}){let i=l();return s(()=>{mt(i.current,r,a,t,n,o)},[t,a,n]),e.createElement("canvas",{className:"frame-canvas-interaction",ref:e=>{null!=e&&i.current!==e&&(i.current=e,mt(e,r,a,t,n,o))},style:{position:"absolute",left:"0px",top:"0px",imageRendering:"pixelated",pointerEvents:"all",opacity:0},width:t,height:a})});function mt(e,t,a,n,o,r){const s=new Map;if(null===e||!o)return;const i=dt.bind(null,e,o,s);e.onmousemove=e=>{var a,n,o,r;const s=i(e);(null===(a=null==s?void 0:s.props)||void 0===a?void 0:a.onMouseEnter)?null===(n=null==s?void 0:s.props)||void 0===n||n.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,a,n,o;const r=i(e);(null===(t=null==r?void 0:r.props)||void 0===t?void 0:t.onClick)?null===(a=null==r?void 0:r.props)||void 0===a||a.onClick():(null===(o=null===(n=null==r?void 0:r.props)||void 0===n?void 0:n.children)||void 0===o?void 0:o[0])&&r.props.children[0].props.onClick(e)},e.ondblclick=e=>{var t,a,n,o;const r=i(e);(null===(t=null==r?void 0:r.props)||void 0===t?void 0:t.onDoubleClick)?null===(a=null==r?void 0:r.props)||void 0===a||a.onDoubleClick():(null===(o=null===(n=null==r?void 0:r.props)||void 0===n?void 0:n.children)||void 0===o?void 0:o[0])&&r.props.children[0].props.onDoubleClick(e)};const l=e.getContext("2d",{willReadFrequently:!0});l.imageSmoothingEnabled=!1,l.setTransform(1,0,0,1,r.left,r.top),l.clearRect(-r.left,-r.top,n,a),l.lineWidth=1,o.forEach((e,t)=>{var a,n,o,r,i,c;const d=`rgba(${Math.floor(255*Math.random())},${Math.floor(255*Math.random())},${Math.floor(255*Math.random())},255)`;s.set(d,t);const p=e.props;if(l.fillStyle=d,l.strokeStyle=d,p.d||(null===(o=null===(n=null===(a=p.children)||void 0===a?void 0:a[0])||void 0===n?void 0:n.props)||void 0===o?void 0:o.d)){const e=p.d||p.children[0].props.d,t=p.transform||(null===(c=null===(i=null===(r=p.children)||void 0===r?void 0:r[0])||void 0===i?void 0:i.props)||void 0===c?void 0:c.transform)||"translate(0,0)",[a,n]=t.replace("translate(","").replace(")","").split(",").map(Number);l.translate(a,n);const o=new Path2D(e);l.stroke(o),l.fill(o),l.translate(-a,-n)}else"rect"===p.markType&&(l.fillRect(p.x,p.y,p.width,p.height),l.strokeRect(p.x,p.y,p.width,p.height))})}function yt(t){let a=null;const{interaction:n,svgSize:o=[500,500],margin:s={left:0,right:0,top:0,bottom:0},overlay:l,points:c,xScale:d,yScale:p,hoverAnnotation:x,customClickBehavior:g,customDoubleClickBehavior:v,customHoverBehavior:b,disableCanvasInteraction:j,canvasRendering:E}=t;let{enabled:S}=t,A=J(e=>e.changeTooltip);const M=e=>{A(e)},[$,O]=r([]),[P,C]=r(null);return i(()=>{let a,n;j||!$?(a=null,n=null):(a=((t,a)=>{let n=[];const{xScale:o,yScale:r,points:s,projectedX:i,showLinePoints:l,size:c,overlay:d,interactionOverflow:p={top:0,bottom:0,left:0,right:0},customClickBehavior:m,customDoubleClickBehavior:y,customHoverBehavior:u,hoverAnnotation:h,margin:x,advancedSettings:g={}}=t,v={top:ye,bottom:ue},b=m||y?{cursor:"pointer"}:{};if(s&&h&&!d){const{voronoiFilter:t=()=>!0}=g,d=[],j=new Map;for(const e of s)if(t(Object.assign(Object.assign({},e),e.data))){const t=Math.floor(o(e[i])),a=Math.floor(r(l&&void 0!==e[v[l]]?e[v[l]]:void 0!==e[me]?e[me]:e[pe]));if(!(0-x.left>t||t>c[0]+x.right||0-x.top>a||a>c[1]+x.bottom||void 0===t||void 0===a||!1!==isNaN(t)||!1!==isNaN(a))){const n=`${t},${a}`;if(j.has(n))j.get(n).coincidentPoints.push(e);else{const o=Object.assign(Object.assign({},e),{coincidentPoints:[e],voronoiX:t,voronoiY:a});d.push(o),j.set(n,o)}}}let E=f(d.map(e=>e.voronoiX)),S=f(d.map(e=>e.voronoiY));null!=E[0]&&null!=S||(E=[0,0],S=[0,0]);const A=[Math.min(E[0]-5,-p.left),Math.min(S[0]-5,-p.top),Math.max(E[1]+5,c[0]+p.right),Math.max(S[1]+5,c[1]+p.bottom)],M=k.from(d,e=>e.voronoiX,e=>e.voronoiY).voronoi(A);return n=d.map((t,n)=>{let o=null;return g.voronoiClipping&&(o=e.createElement("clipPath",{id:"voronoi-"+n},e.createElement("circle",{r:!0===g.voronoiClipping?50:g.voronoiClipping,cx:t.voronoiX,cy:t.voronoiY}))),e.createElement("g",{key:"voronoi-"+n},e.createElement("path",{onClick:e=>{be(d[n],m,s,e)},onDoubleClick:e=>{ke(d[n],y,s,e)},onMouseEnter:e=>{ve(a,d[n],h,u,s,e)},onMouseLeave:e=>{ve(a,void 0,void 0,u,void 0,e)},key:"interactionVoronoi"+n,d:M.renderCell(n),style:Object.assign({fillOpacity:0},b),clipPath:`url(#voronoi-${n})`}),o)},window),n}if(d)return d.map((n,o)=>{const{overlayData:r}=n,i=ce(n,["overlayData"]),l={key:"overlay-"+o,onMouseEnter:e=>{ve(a,r,t.hoverAnnotation,u,s,e)},onMouseLeave:e=>{ve(a,void 0,void 0,u,void 0,e)},onClick:e=>{be(r,m,s,e)},onDoubleClick:e=>{ke(r,y,s,e)},style:Object.assign({opacity:0},b)};if(e.isValidElement(n.renderElement))return e.cloneElement(n.renderElement,l);{const t=i,{markType:a}=t,n=ce(t,["markType"]);return e.createElement(a||"path",Object.assign(Object.assign(Object.assign({},n),{key:"overlay-"+o}),l))}})})(t,M),E&&(n=e.createElement(pt,{height:o[1],width:o[0],overlayRegions:a,margin:s,voronoiHover:M}))),O(a),C(n)},[l,c,d,p,!!x,!!g,!!v,!!b]),n&&n.brush&&(S=!0,a=((t,a)=>{let n,o,r,s;const{xScale:i,yScale:l,size:c,renderPipeline:d}=a,p={};Object.entries(d).forEach(([e,t])=>{t.data&&t.data.length>0&&(p[e]=t.data)});const{projection:f,projectedColumns:x}=t,g="oBrush"===t.brush?"horizontal"===f?"yBrush":"xBrush":t.brush;let{extent:v}=t;if(v||(v="xyBrush"===g?[[i.invert(0),l.invert(0)],[i.invert(c[0]),l.invert(c[1])]]:"xBrush"===g?[i.invert(0),i.invert(c[0])]:[l.invert(0),l.invert(c[1])]),v.indexOf&&-1!==v.indexOf(void 0))return e.createElement("g",null);if("xBrush"===g){const e=[...v];o=e=>e?[i.invert(e[0]),i.invert(e[1])]:null,n=m(),r=e.map(e=>i(e)),s=o}else if("yBrush"===g){const e=[...v];o=e=>e?[l.invert(e[0]),l.invert(e[1])].sort((e,t)=>e-t):null,n=y(),r=e.map(e=>l(e)).sort((e,t)=>e-t),s=o}else{const t=[...v.map(e=>[...e])];if(-1!==t.indexOf(void 0)||-1!==t[0].indexOf(void 0)||-1!==t[1].indexOf(void 0))return e.createElement("g",null);n=u(),o=e=>{if(!e)return null;const t=[l.invert(e[0][1]),l.invert(e[1][1])].sort((e,t)=>e-t);return[[i.invert(e[0][0]),t[0]],[i.invert(e[1][0]),t[1]]]};const a=[l(v[0][1]),l(v[1][1])].sort((e,t)=>e-t);r=t.map((e,t)=>[i(e[0]),a[t]]),s=o}if("oBrush"===t.brush){if(r=null,t.extent){const[e,a]=t.extent;"string"!=typeof e&&"number"!=typeof e||"string"!=typeof a&&"number"!=typeof a||(r=[x[e].x,x[a].x+x[a].width])}o=(e=>t=>t?Object.values(e).filter(e=>t[1]>=e.x&&e.x+e.width>=t[0]):null)(x),s=(e=>(t,a)=>{if(t&&a.sourceEvent&&a.sourceEvent.path&&a.sourceEvent.path[1]&&a.sourceEvent.path[1].classList.contains("xybrush")&&a.target.move){const n=Object.values(e).filter(e=>t[1]>=e.x&&e.x+e.width>=t[0]),o=n[0]||{x:0,width:0},r=n[n.length-1]||{x:0,width:0},s=[o.x+Math.min(5,o.width/10),r.x+r.width-Math.min(5,r.width/10)];return h(a.sourceEvent.path[1]).transition(750).call(a.target.move,s),n}return null})(x)}return n.extent([[0,0],[c[0],c[1]]]).on("start",e=>{je(o(e.selection),void 0,p,void 0,t)}).on("brush",e=>{Ee(o(e.selection),void 0,p,void 0,t)}).on("end",e=>{Se(s(e.selection,e),void 0,p,void 0,t)}),e.createElement("g",{className:"brush"},e.createElement(le,{selectedExtent:r,extent:v,svgBrush:n}))})(n,t)),n&&n.columnsBrush&&(S=!0,a=((t,a)=>{const{projection:n,rScale:o,oColumns:r,renderPipeline:s}=a;if(!n||!o||!r)return;const i={};let l,c;Object.entries(s).forEach(([e,t])=>{t.data&&t.data.length>0&&(i[e]=t.data)});const d=o.copy().domain(o.domain()).range(o.domain().reverse());c=n&&"horizontal"===n?e=>e?[o.invert(e[0]),o.invert(e[1])]:null:e=>e?[d(o.invert(e[1])),d(o.invert(e[0]))]:null;const p=o.range(),u=r;let h,f;return Object.keys(u).map(a=>(n&&"horizontal"===n?(f=t.extent[a]?t.extent[a].map(e=>o(e)):t.startEmpty?null:p,h=[0,u[a].x],l=m(),l.extent([[p[0],0],[p[1],u[a].width]]).on("start",e=>{je(c(e.selection),a,i,u[a],t)}).on("brush",e=>{Ee(c(e.selection),a,i,u[a],t)}).on("end",e=>{Se(c(e.selection),a,i,u[a],t)})):(f=t.extent[a]?t.extent[a].map(e=>p[1]-o(e)).reverse():t.startEmpty?null:p,h=[u[a].x,0],l=y(),l.extent([[0,p[0]],[u[a].width,p[1]]]).on("start",e=>{je(c(e.selection),a,i,u[a],t)}).on("brush",e=>{Ee(c(e.selection),a,i,u[a],t)}).on("end",e=>{Se(c(e.selection),a,i,u[a],t)})),e.createElement("g",{key:"column-brush-"+a,className:"brush"},e.createElement(le,{key:"orbrush"+a,selectedExtent:f,svgBrush:l,position:h}))))})(n,t)),$||a?e.createElement("div",{className:"interaction-layer","data-testid":"interaction-layer",style:{position:"absolute",background:"none",pointerEvents:"none",height:"100%",width:"100%",overflow:"hidden"}},P||e.createElement("svg",{height:o[1],width:o[0],style:{background:"none",pointerEvents:"none"}},e.createElement("g",{className:"interaction-overlay",transform:`translate(${s.left},${s.top})`,style:{pointerEvents:S?"all":"none"}},e.createElement("g",{className:"interaction-regions"},$),a))):null}function ut(t){const{matte:a,matteClip:o,axes:s,frameKey:l="",margin:d={left:0,right:0,bottom:0,top:0},title:p,ariaTitle:m,axesTickLines:y,frameRenderOrder:u,additionalVizElements:h,transition:f}=t;let x=J(e=>e.changeTooltip);const g=c(e=>{x(e)},[x]),[v,b]=r(null),[k,j]=r(null),E=n(()=>(({focusedPieceIndex:e,changeFocusedPieceIndex:t,changeFocusedVisualizationGroup:a})=>({e:{keyCode:n},vizgroup:o,props:r,piecesGroup:s})=>{const{renderPipeline:i,voronoiHover:l}=r,c=n;if(37!==c&&39!==c&&13!==c)return;let d=0;const p={};null===e||13===c?p.focusedVisualizationGroup=o:37===c?d=e-1:39===c&&(d=e+1),d=0>d?s[o].length+d:d%s[o].length,l(i[o].accessibleTransform(i[o].data,d,s[o][d])),t(d),a(p.focusedVisualizationGroup)})({focusedPieceIndex:v,changeFocusedPieceIndex:b,changeFocusedVisualizationGroup:j}),[v,b,j]),S=((t,a,n)=>{const{xScale:o,yScale:r,dataVersion:s,projectedCoordinateNames:i,renderPipeline:l={},renderOrder:c=[],transition:d}=t,p=[],m={},y=[];return c.concat(Object.keys(l).filter(e=>-1===c.indexOf(e))).forEach(s=>{const c=l[s];if(c&&(c.data&&"object"==typeof c.data&&!Array.isArray(c.data)||c.data&&c.data.length>0)){const l=c.behavior(Object.assign({xScale:o,yScale:r,canvasDrawing:p,projectedCoordinateNames:i},c));l&&l.length>0&&y.push(e.createElement("g",Object.assign({key:s,className:s,"data-testid":s,role:"group",tabIndex:0},d?{"data-semiotic-transition":""}:void 0,{"aria-label":c.ariaLabel&&`${l.length} ${c.ariaLabel.items}s in a ${c.ariaLabel.chart}`||s,onKeyDown:e=>a({e:e,k:s,props:t,piecesGroup:m}),onBlur:()=>{n(void 0)},ref:e=>e&&(m[s]=e.childNodes)}),l))}}),{renderedElements:y,dataVersion:s,canvasDrawing:p,piecesGroup:m}})(t,E,g),{renderedElements:A}=S;i(()=>{var e,a;const n=null===(e=t.canvasContext)||void 0===e?void 0:e.current;let o=new AbortController;if(t.disableContext||!n)return;const{sketchyRenderingEngine:r,width:s,height:i,margin:l,disableProgressiveRendering:c=!1}=t,d=[s+l.left+l.right,i+l.top+l.bottom];n.width=d[0],n.height=d[1],n.style.width=d[0],n.style.height=d[1];const p=n.getContext("2d");p.scale(devicePixelRatio,devicePixelRatio),p.setTransform(1,0,0,1,l.left,l.top),p.clearRect(-l.left,-l.top,d[0],d[1]);const m=function(e,t,a,n,o,r){const s={fill:"black",stroke:"black",opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1},{position:i=[0,0]}=n;return n=>{var l,c,d;const p=Object.assign(Object.assign({},n.d),n.d.data),m=n.styleFn&&n.styleFn(p,n.i)||s,y=m.fill?m.fill:"black",u=m.stroke?m.stroke:"black";t.setTransform(1,0,0,1,a.left,a.top),t.translate(i[0],i[1]),t.translate(n.tx,n.ty),t.fillStyle=y,t.strokeStyle=u,t.lineWidth=m.strokeWidth?m.strokeWidth:0;let h={};const f=n.renderFn&&n.renderFn(p,n.i);let x=f&&f.renderMode||f;if(x)if(o){const a=o.canvas;a?(r=r||a(e),h=Object.assign({fill:y,stroke:u,strokeWidth:t.lineWidth},"object"==typeof f&&f||{})):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"),x=void 0;if("circle"===n.markProps.markType||"rect"===n.markProps.markType&&n.markProps.rx>0){let e=null!==(l=n.markProps.cx)&&void 0!==l?l:0,a=null!==(c=n.markProps.cy)&&void 0!==c?c:0,o=null!==(d=m.r)&&void 0!==d?d:n.markProps.r;if(n.markProps.width){const t=n.markProps.width/2;e=n.markProps.x+t,a=n.markProps.y+t,o=t}"sketchy"===x?0!==t.globalAlpha&&r.circle(e,a,o,h):(t.beginPath(),t.arc(e,a,o,0,2*Math.PI),t.globalAlpha=m.fillOpacity||m.opacity||1,m.fill&&"none"!==m.fill&&0!==t.globalAlpha&&t.fill(),t.globalAlpha=m.strokeOpacity||m.opacity||1,m.stroke&&"none"!==m.stroke&&0!==t.globalAlpha&&t.stroke())}else if("rect"===n.markProps.markType)"sketchy"===x?(t.globalAlpha=m.opacity||1,0!==t.globalAlpha&&r.rectangle(n.markProps.x,n.markProps.y,n.markProps.width,n.markProps.height,h)):(t.globalAlpha=m.fillOpacity||m.opacity||1,m.fill&&"none"!==m.fill&&0!==t.globalAlpha&&t.fillRect(n.markProps.x,n.markProps.y,n.markProps.width,n.markProps.height),t.globalAlpha=m.strokeOpacity||m.opacity||1,m.stroke&&"none"!==m.stroke&&0!==t.globalAlpha&&t.strokeRect(n.markProps.x,n.markProps.y,n.markProps.width,n.markProps.height));else if("path"===n.markProps.markType)if("sketchy"===x)t.globalAlpha=m.opacity||1,r.path(n.markProps.d,h);else{const e=new Path2D(n.markProps.d);t.globalAlpha=m.strokeOpacity||m.opacity||1,m.stroke&&"none"!==m.stroke&&0!==t.globalAlpha&&t.stroke(e),t.globalAlpha=m.fillOpacity||m.opacity||1,m.fill&&"none"!==m.fill&&0!==t.globalAlpha&&t.fill(e)}else"line"===n.markProps.markType?"sketchy"===x?(t.globalAlpha=m.opacity||1,r.line(n.markProps.x1,n.markProps.y1,n.markProps.x2,n.markProps.y2,h)):(t.globalAlpha=m.strokeOpacity||m.opacity||1,t.beginPath(),t.moveTo(n.markProps.x1,n.markProps.y1),t.lineTo(n.markProps.x2,n.markProps.y2),m.stroke&&"none"!==m.stroke&&0!==t.globalAlpha&&t.stroke()):console.error("CURRENTLY UNSUPPORTED MARKTYPE FOR CANVAS RENDERING")}}(n,p,l,t,r,void 0);if(p.clearRect(-l.left,-l.top,d[0],d[1]),c)for(const e of S.canvasDrawing)m(e);else o=new AbortController,function(e,t,a){let n=0;!function(e){var t,a,n,o;t=this,a=arguments,o=function*(e,{signal:t,timeFrameMs:a=30}={}){return new Promise((n,o)=>{requestAnimationFrame(function r(){let s=performance.now(),i=0,l=!1,c=null!=t&&t.aborted;try{if(c)return n();do{l=e(),i=performance.now()-s,c=null!=t&&t.aborted}while(!c&&l&&a>i);!c&&l?requestAnimationFrame(r):n()}catch(e){o(e)}})})},new((n=void 0)||(n=Promise))(function(e,r){function s(e){try{l(o.next(e))}catch(e){r(e)}}function i(e){try{l(o.throw(e))}catch(e){r(e)}}function l(t){var a;t.done?e(t.value):(a=t.value,a instanceof n?a:new n(function(e){e(a)})).then(s,i)}l((o=o.apply(t,a||[])).next())})}(()=>{let a=Math.min(n+1e3,t.length);for(let o=n;a>o;o++)e(t[o]);return n+=1e3,t.length>n},a)}(m,S.canvasDrawing,{signal:o.signal});if(p.setTransform(1,0,0,1,0,0),p.globalAlpha=1,t.canvasPostProcess&&t.canvasPostProcess(null===(a=t.canvasContext)||void 0===a?void 0:a.current,p,d),null!==k&&S.piecesGroup[k]&&null!==v){const e=S.piecesGroup[k][v],t=e&&[...e.childNodes].find(e=>e.getAttribute("aria-label"))||e;t&&t.focus&&t.focus()}return function(){o.abort()}},[a,o,s,l,d,m,y,u,h]);const M=function(t){if(!t)return null;const a="object"==typeof t&&null!=t.ease?t.ease:"ease",n=("object"==typeof t&&null!=t.duration?t.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} ${a},\n stroke ${n} ${a},\n opacity ${n} ${a},\n transform ${n} ${a};\n animation: semiotic-enter ${n} ${a};\n}\n`)}(f),$=Object.assign({"axes-tick-lines":y&&e.createElement("g",{key:"visualization-tick-lines",className:"axis axis-tick-lines","aria-hidden":!0},y),"axes-labels":s&&e.createElement("g",{key:"visualization-axis-labels",className:"axis axis-labels"},s),matte:a,"viz-layer":A&&A.length>0?e.createElement(e.Fragment,{key:"viz-layer"},M,A):null},h);let O="";O=`Visualization ${p&&m||p?"string"!=typeof p&&p.props&&"string"==typeof p.props.children?"titled "+p.props.children:"with a complex title":"with no title"}. Use arrow keys to navigate elements.`;const P=[];return u.forEach(e=>{$[e]&&P.push($[e])}),P.length>0&&e.createElement("g",{className:"data-visualization","data-testid":"data-visualization",key:"visualization-clip-path","aria-label":O,role:"group",clipPath:o&&a?`url(#matte-clip${l})`:void 0,transform:`translate(${d.left},${d.top})`},P)||null}const ht=[],ft={},xt=[0,0],gt={x:"x",y:"y"},vt=["axes-tick-lines","viz-layer","matte","axes-labels","labels"],bt={top:0,bottom:0,left:0,right:0};function kt(t){const{axes:a,axesTickLines:n,className:o="",name:s="",frameKey:d,projectedCoordinateNames:p=gt,renderPipeline:m,size:y,adjustedSize:u=y,title:h,xScale:f,yScale:x,dataVersion:g,annotations:v,projectedYMiddle:b,interaction:k,customClickBehavior:j,customHoverBehavior:E,customDoubleClickBehavior:S,points:A,margin:M=bt,backgroundGraphics:$,foregroundGraphics:O,beforeElements:P,afterElements:C,defaultSVGRule:D,defaultHTMLRule:w,adjustedPosition:N=xt,legendSettings:T,annotationSettings:z=ft,overlay:F,columns:L,rScale:R,projection:B,interactionOverflow:V,canvasPostProcess:I,canvasRendering:_,renderOrder:W=ht,showLinePoints:G,disableCanvasInteraction:X=!1,sketchyRenderingEngine:Y,disableContext:H,frameRenderOrder:K=vt,additionalVizElements:q=ft,interactionSettings:J,disableProgressiveRendering:Q,additionalDefs:U,transition:ee}=t;let{hoverAnnotation:te}=t;const ae=l(null),[ne,oe]=r(null),[se,ie]=r(null);i(()=>{const t=(({matte:t,size:a,margin:n,frameKey:o,additionalDefs:r,name:s})=>{let i;"function"==typeof t?i=t({size:a,margin:n}):e.isValidElement(t)?i=t:!0===t&&(i=e.createElement("path",{fill:"white",transform:`translate(${-n.left},${-n.top})`,d:st({margin:n,size:a,inset:0}),className:s+"-matte"}));const l=(({matte:t,key:a,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-"+a},t),n))({matte:i,key:t&&(o||s),additionalDefs:r});return{defs:l,matte:i}})({matte:se,size:y,margin:M,frameKey:d,additionalDefs:U,name:s});oe(t.defs),ie(t.matte)},[y[0],y[1],M.top,M.bottom,M.right,M.left,M.top,se,U]),!te&&(j||E||S)&&(te=ht);const le=[],ce=v?[...v,...le]:le,de=l(D);de.current=D;const pe=l(w);pe.current=w;const me=l(m);me.current=m;const ye=c((e,t,a)=>de.current(Object.assign({d:e,i:t,annotationLayer:a},me.current)),[]),ue=c((e,t,a)=>pe.current(Object.assign({d:e,i:t,annotationLayer:a},me.current)),[]),he=e.createElement(re,{legendSettings:T,margin:M,axes:a,annotationHandling:z,pointSizeFunction:z.layout&&z.layout.pointSizeFunction,labelSizeFunction:z.layout&&z.layout.labelSizeFunction,annotations:ce,svgAnnotationRule:ye,htmlAnnotationRule:ue,size:u,position:[N[0]+M.left,N[1]+M.top]}),fe=function({title:t={title:"",orient:"top"},size:a}){let n=null;const{title:o,orient:r}=rt(t);let s,i=0,l=0;switch(r){case"top":i=a[0]/2,l=25;break;case"bottom":i=a[0]/2,l=a[1]-25;break;case"left":i=25,l=a[1]/2,s="rotate(-90)";break;case"right":i=a[0]-25,l=a[1]/2,s="rotate(90)"}const c=`translate(${i},${l})`;return"string"==typeof o&&o.length>0?n=e.createElement("g",{transform:c},e.createElement("text",{className:"frame-title",transform:s,style:{textAnchor:"middle",pointerEvents:"none"}},o)):o&&(n=e.createElement("g",{transform:c},o)),n}({title:h,size:y}),xe="function"==typeof $?$({size:y,margin:M}):$,ge="function"==typeof O?O({size:y,margin:M}):O;return e.createElement("div",{className:`${o} frame ${s}`,style:{background:"none"}},P&&e.createElement("div",{className:s+" frame-before-elements"},P),e.createElement("div",{className:"frame-elements",style:{height:y[1]+"px",width:y[0]+"px"}},e.createElement(Z,null,e.createElement("div",{className:"visualization-layer",style:{position:"absolute"}},$&&e.createElement("svg",{className:"background-graphics",style:{position:"absolute"},width:y[0],height:y[1]},$&&e.createElement("g",{"aria-hidden":!0,className:"background-graphics"},xe)),e.createElement("svg",{className:"visualization-layer",style:{position:"absolute"},width:y[0],height:y[1]},ne,e.createElement(ut,{disableContext:H,renderPipeline:m,position:N,width:u[0],height:u[1],projectedCoordinateNames:p,xScale:f,yScale:x,axes:a,title:fe,frameKey:d,canvasContext:ae,dataVersion:g,matte:se,margin:M,canvasPostProcess:I,renderOrder:W,sketchyRenderingEngine:Y,axesTickLines:n,additionalVizElements:q,frameRenderOrder:K,disableProgressiveRendering:Q,transition:ee}),fe&&e.createElement("g",{className:"frame-title"},fe),O&&e.createElement("g",{"aria-hidden":!0,className:"foreground-graphics"},ge))),_&&e.createElement("canvas",{className:"frame-canvas",ref:ae,style:{pointerEvents:"none",position:"absolute"},width:y[0]/2,height:y[1]/2}),e.createElement(yt,{hoverAnnotation:te,projectedX:p.x,projectedY:p.y,projectedYMiddle:b,interaction:k,customClickBehavior:j,customHoverBehavior:E,customDoubleClickBehavior:S,points:A,showLinePoints:G,canvasRendering:_,position:N,margin:M,size:u,svgSize:y,xScale:f,yScale:x,enabled:!0,overlay:F,oColumns:L,rScale:R,projection:B,interactionOverflow:V,disableCanvasInteraction:X,renderPipeline:m,advancedSettings:J}),he)),C&&e.createElement("div",{className:s+" frame-after-elements"},C))}const jt=({tooltipRef:e,changeTooltipContentArgsCurrent:t,changeTooltipContainerInitialDimensions:a,changeCollision:n})=>{const o=null==e?void 0:e.getBoundingClientRect();if(!o)return;const{left:r,top:s,width:i,height:l}=o;let c={left:!1,right:!1,top:!1,bottom:!1};r+i>window.innerWidth&&(c.right=!0),0>r-i&&(c.left=!0),s+l>window.innerHeight&&(c.bottom=!0),0>s-l&&(c.top=!0),t(),a(o),n(c)};function Et(t){const{tooltipContent:a,tooltipContentArgs:n}=t,[o,s]=r(null),[l,d]=r(null),[p,m]=r(null),[y,u]=r(null),h=c(e=>{u(e),jt({tooltipRef:e,tooltipContentArgs:n,changeTooltipContentArgsCurrent:m,changeTooltipContainerInitialDimensions:d,changeCollision:s})},[]);i(()=>{s(null),d(null)},[JSON.stringify(n)]),i(()=>{y&&!o&&jt({tooltipRef:y,tooltipContentArgs:n,changeTooltipContentArgsCurrent:m,changeTooltipContainerInitialDimensions:d,changeCollision:s})},[y,o]);const f={overflow:"hidden",opacity:o&&p===n?1:0},x=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",g={offset:{x:0,y:0},tooltipContainerInitialDimensions:l};return e.createElement("div",{ref:h,style:f,className:x,"data-testid":"TooltipPositioner"},a(Object.assign(Object.assign({},n),{tooltipContainerAttributes:g})))}const St=(e,t)=>{for(let a=0;e.length>a;a++){const n=e[a](t);if(void 0!==n&&!Number.isNaN(n)&&null!==n)return n}},At=t=>({d:a,lines:n,points:o,xScale:r,yScale:s,pointStyle:i})=>{const l="x"===t?r:s;if(t="yTop"===t&&a.yMiddle?"yMiddle":t,a&&a[t]){const{threshold:c=1,r:d=()=>4,styleFn:p=i}=a,m=[],y=c/2;if(n&&n.length>0&&n.forEach(e=>{const n=e.data.filter(e=>{const n=l(e[t]),o=l(a[t]);return o+y>=n&&n>=o-y});m.push(...n)}),o&&o.length>0){const e=o.filter(e=>{const n=l(e[t]),o=l(a[t]);return o+y>=n&&n>=o-y});m.push(...e)}return m.map((t,a)=>e.createElement("circle",{key:"found-circle-"+a,r:d(t,a),style:p(t,a),cx:r(t.xMiddle||t.x),cy:s(t.yMiddle||t.yTop)}))}return null},Mt=At("yTop"),$t=At("x"),Ot=e=>e instanceof Date?e.getTime():e,Pt=({data:e,lineDataAccessor:t,xProp:a,xPropTop:n,xPropBottom:o,yProp:r,yPropTop:s,yPropBottom:i,xAccessor:l,yAccessor:c})=>{Array.isArray(e)||(e=[e]);const d=[];return t.forEach((t,p)=>{l.forEach((l,m)=>{c.forEach((c,y)=>{e.forEach(e=>{const u=Object.assign(Object.assign({},e),{xIndex:m,yIndex:y,lineIndex:p});u.data=t(e).map((e,t)=>{const d={data:e};return d[a]=l(e,t),d[n]=d[a],d[o]=d[a],d[r]=c(e,t),d[s]=d[r],d[i]=d[r],d}),u.key=u.key||d.length,d.push(u)})})})}),d},Ct=({type:e="stackedarea",data:t,xProp:a,yProp:n,yPropMiddle:o,sort:r,yPropTop:s,yPropBottom:i})=>{const l=new Map,c=t.map(()=>0);let d=0;for(const e of t){e.__lineIndex=d;for(const t of e.data){const e=Ot(t[a]);c[d]+=t[n],l.has(e)||l.set(e,[]),l.get(e)[d]=t}d++}let p=(e,t)=>c[t.key]-c[e.key];"stackedpercent-invert"!==e&&"stackedarea-invert"!==e||(p=(e,t)=>c[e.key]-c[t.key]),null!==(r=void 0===r?p:r)&&(t=t.sort(r));const m=t.map(e=>e.__lineIndex);for(const[,t]of l){let a=0,r=0;const l=b(t,e=>(null==e?void 0:e[n])>0?e[n]:0),c=b(t,e=>0>(null==e?void 0:e[n])?e[n]:0);for(const d of m){const p=t[d];if(p)if(0>p[n]){if("linepercent"===e||"stackedpercent"===e||"stackedpercent-invert"===e){const t=p[n]/c;if(p.percent=t,"linepercent"===e)p[i]=p[i]=p[s]=p[o]=t;else{const e=0>c?t:0;p[i]=0===c?0:-a/c,p[s]=p[i]-e,p[o]=p[i]-e/2}}else p[i]=a,p[s]=a+p[n],p[o]=a+p[n]/2;a+=p[n]}else{if("linepercent"===e||"stackedpercent"===e||"stackedpercent-invert"===e){const t=p[n]/l;if(p.percent=t,"linepercent"===e)p[i]=p[s]=p[o]=t;else{const e=l>0?t:0;p[i]=0===l?0:r/l,p[s]=p[i]+e,p[o]=p[i]+e/2}}else p[i]=r,p[s]=r+p[n],p[o]=r+p[n]/2;r+=p[n]}}}return t},Dt=({data:e,y1:t,x1:a,yPropTop:n,yPropMiddle:o,yPropBottom:r,xPropTop:s,xPropMiddle:i,xPropBottom:l})=>{if(t)for(const a of e)for(const e of a.data)e[r]=t(e),e[o]=e[n];if(a)for(const t of e)for(const e of t.data)e[l]=a(e),e[i]=(e[l]+e[s])/2;return e},wt=({data:e,y1:t,yPropTop:a,yPropMiddle:n,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[a],r[o]=r[a]=r[n]=e,t&&(r[o]=t(r),r[n]=r[o]+r[a]/2)}return e},Nt=({type:e="bumpline",data:t,xProp:a,yProp:n,yPropMiddle:o,yPropTop:r,yPropBottom:s})=>{const i=new Map;for(const e of t)for(const t of e.data){const e=Ot(t[a]);i.has(e)||i.set(e,[]),i.get(e).push(t)}let l=(e,t)=>e[n]>t[n]?1:-1;"bumparea-invert"!==e&&"bumpline-invert"!==e||(l=(e,t)=>t[n]>e[n]?1:-1);for(const[,t]of i){let a=0,i=0;t.sort(l);let c=1;for(const l of t)"bumparea"===e||"bumparea-invert"===e?0>l[n]?(l[r]=a+l[n],l[o]=a+l[n]/2,l[s]=a,a+=l[n]):(l[r]=i+l[n],l[o]=i+l[n]/2,l[s]=i,i+=l[n]):(l[n]=c,l[r]=c,l[s]=c),c++}return t};function Tt({pointA:e,pointB:t,currentParameters:a,parameters:n,keys:o}){const r={};return o.forEach(a=>{r[a]="number"==typeof e[a]?(e[a]+t[a])/2:void 0}),JSON.stringify(n(r))===JSON.stringify(a)?[r,t]:[e,r]}function zt({data:e,steps:t,key:a}){const n=[];return Array.isArray(e)||(e=[e]),t||(t=e.map(e=>Object.keys(e)).reduce((e,t)=>e.concat(t),[])),e.forEach((e,o)=>{const r=a?e[a]:o;t.forEach(t=>{const a={funnelKey:r,stepName:"",stepValue:0};a.stepName=t,a.stepValue=e[t]?e[t]:0,n.push(a)})}),n}const Ft={bottom:"yBottom",top:"yTop"};function Lt({point:e,projectedY:t,yAccessor:a,yScale:n,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]:St(a,e));return Array.isArray(r)?r.map(e=>n(e)):void 0!==r?n(r):0}function Rt({point:e,projectedXMiddle:t,projectedX:a,xAccessor:n,xScale:o}){const r=e&&(void 0!==e[t]?e[t]:void 0!==e[a]?e[a]:St(n,e));return Array.isArray(r)?r.map(e=>o(e)):void 0!==r?o(r):0}function Bt({point:e,idAccessor:t,lines:a,xScale:n,projectedX:o,xAccessor:r}){const s=t(e.parentLine||e);if(s){const i=a.data.find(e=>t(e)===s);if(!i)return null;const l=n(St(r,e)),c=i.data.find(e=>n(e[o])===l);if(!c)return null;const d=Object.assign(Object.assign(Object.assign(Object.assign({},e),c),c.data),{parentLine:i});return["type","label","note","connector","disabled","color","subject"].forEach(t=>{e[t]&&(d[t]=e[t])}),d}return e}const Vt=e=>e&&e.extent||Array.isArray(e)&&e||[],It=()=>!0,_t={top:ye,bottom:ue,orphan:pe},Wt={top:fe,bottom:xe,orphan:de},Gt={stackedarea:Ct,"stackedarea-invert":Ct,stackedpercent:Ct,"stackedpercent-invert":Ct,linepercent:Ct,difference:({data:e,yProp:t,yPropTop:a,yPropBottom:n})=>(e.forEach((o,r)=>{o.data.forEach((o,s)=>{const i=0===r?1:0;o[t]>e[i].data[s][t]?(o[n]=e[i].data[s][t],o[a]=o[t]):(o[a]=o[t],o[n]=o[t])})}),e),bumparea:Nt,bumpline:Nt,"bumparea-invert":Nt,line:Dt,area:Dt,cumulative:wt,"cumulative-reverse":wt};function Xt(e,t,a){if(!e&&t)return t;if("object"==typeof e)return()=>e;if(e instanceof Function)return e;if(!0===a){const t=e;return()=>t}return"string"==typeof e?t=>t?t[e]:void 0:()=>{}}function Yt(e,t,a){if(void 0===e)return[Xt(void 0,t,a)];let n=[];return n=Array.isArray(e)?e:[e],n.map(e=>Xt(e,t,a))}function Ht(e,t){const a=[];for(const e of t)a.push(Object.assign({},e));for(const t of e)t.parentSummary||a.push(t);return a}const Kt=({lineDataAccessor:e,xAccessor:t,yAccessor:a,summaries:n,points:o,lines:r,lineType:s,showLinePoints:i,showSummaryPoints:l,xExtent:c,yExtent:p,invertX:m,invertY:y,summaryDataAccessor:u,summaryType:h,adjustedSize:f,margin:x,summaryStyleFn:g,summaryClassFn:v,summaryRenderModeFn:b,chartSize:k,filterRenderedLines:j,filterRenderedSummaries:S,filterRenderedPoints:A,defined:M=It,annotations:$=[]})=>{let O=[],P=[],C=[],D=[],w=[];if(o){t.forEach((e,t)=>{a.forEach((a,n)=>{let r=0;for(const s of o){const o=e(s,r),i=a(s,r),l={x:o,y:i,data:s,xIndex:t,yIndex:n};Array.isArray(i)&&(l[ue]=Math.min(...i),l[ye]=Math.max(...i),l[me]=(l[ue]+l[ye])/2),Array.isArray(o)&&(l[xe]=Math.min(...o),l[fe]=Math.max(...o),l[he]=(l[xe]+l[fe])/2),C.push(l),r++}})});for(const e of C)O.push(Object.assign(Object.assign({},e),{[de]:e[fe]||e[xe]||e.x,[pe]:e[ye]||e[ue]||e.y}))}if(r){P=Pt({data:r,lineDataAccessor:e,xProp:de,xPropTop:fe,xPropBottom:xe,yProp:pe,yPropTop:ye,yPropBottom:ue,xAccessor:t,yAccessor:a}),D=function(e,t){return a=>Gt[qt(e.type,a)](Object.assign(Object.assign(Object.assign({},e),t),{data:a}))}(s,{xProp:de,yProp:pe,yPropMiddle:me,yPropTop:ye,yPropBottom:ue,xPropMiddle:he,xPropTop:fe,xPropBottom:xe})(P);for(const e of D)for(let t=0;e.data.length>t;t++){const a=e.data[t];if(!M(Object.assign({},a.data,a),t))continue;const n={parentLine:e,y:a.y,x:a.x,xTop:a.xTop,xMiddle:a.xMiddle,xBottom:a.xBottom,yTop:a.yTop,yMiddle:a.yMiddle,yBottom:a.yBottom,data:a.data};a.percent&&(n.percent=a.percent),O.push(n)}if(i){const e=!0===i?he:Wt[i],t=!0===i?me:_t[i];D.forEach(a=>{a.data.filter((e,t)=>{if(M(Object.assign({},e.data,e))){if("orphan"===i){const e=a.data[t-1],n=a.data[t+1];return!(e&&M(Object.assign({},e.data,e))||n&&M(Object.assign({},n.data,n)))}return!0}return!1}).forEach(n=>{C.push(Object.assign(Object.assign({},n),{parentLine:a,[pe]:void 0!==n[t]?n[t]:void 0!==n[me]?n[me]:void 0!==n[ue]?n[ue]:n.y,[de]:void 0!==n[e]?n[e]:void 0!==n[he]?n[he]:void 0!==n[xe]?n[xe]:n.y}))})})}}n&&(w=(({data:e,summaryDataAccessor:t,xAccessor:a,yAccessor:n})=>{const o=[];return t.forEach(t=>{a.forEach(a=>{n.forEach(n=>{const r=e=>t(e).map((e,t)=>[a(e,t),n(e,t)]);e.forEach(e=>{o.push(Object.assign(Object.assign({},e),{_baseData:t(e),_xyfCoordinates:r(e)}))})})})}),o})({data:n,summaryDataAccessor:u,xAccessor:t,yAccessor:a}),w.forEach(e=>{const t=e._baseData;e._xyfCoordinates.length>0&&e._xyfCoordinates[0][0][0]?e._xyfCoordinates[0].forEach(a=>{Array.isArray(a)&&a.map((a,n)=>Object.assign({parentSummary:e},t[n],{[de]:a[0],[pe]:a[1]})).forEach(e=>{l&&C.push(Object.assign(Object.assign({x:0},e),{[pe]:e[ye]||e[ue]||e[pe]})),O.push(Object.assign({x:0,y:0},e))})}):e._xyfCoordinates.length>0&&Array.isArray(e._xyfCoordinates)&&e._xyfCoordinates.map((a,n)=>Object.assign(Object.assign({parentSummary:e},t[n]),{[de]:a[0],[pe]:a[1]})).forEach(e=>{l&&C.push(Object.assign(Object.assign({x:0},e),{[pe]:e[ye]||e[ue]||e[pe]})),O.push(Object.assign({x:0,y:0},e))})}));let N,T,z,F,L=[],B=[];c&&!Array.isArray(c)&&!0===c.includeAnnotations&&t.forEach(e=>{$.forEach((t,a)=>{const n=e(t,a);isFinite(n)&&L.push({[de]:n})})}),p&&!Array.isArray(p)&&!0===p.includeAnnotations&&a.forEach(e=>{$.forEach((t,a)=>{const n=e(t,a);isFinite(n)&&B.push({[pe]:n})})});for(const e of O){const t=void 0===e[xe]?e[de]:Math.min(e[fe],e[xe]),a=void 0===e[fe]?e[de]:Math.max(e[xe],e[fe]),n=void 0===e[ue]?e[pe]:Math.min(e[ye],e[ue]),o=void 0===e[ye]?e[pe]:Math.max(e[ue],e[ye]);void 0===t||void 0!==N&&t>=N||(N=t),void 0===a||void 0!==T&&T>=a||(T=a),void 0===n||void 0!==z&&n>=z||(z=n),void 0===o||void 0!==F&&F>=o||(F=o)}for(const e of L){const t=e[de];void 0===t||void 0!==N&&t>=N||(N=t),void 0===t||void 0!==T&&T>=t||(T=t)}for(const e of B){const t=e[pe];void 0===t||void 0!==z&&t>=z||(z=t),void 0===t||void 0!==F&&F>=t||(F=t)}const V=[N,T],I=[z,F],_=Vt(c),W=Vt(p);let G=[W&&void 0!==W[0]?W[0]:I[0],W&&void 0!==W[1]?W[1]:I[1]],X=[_&&void 0!==_[0]?_[0]:V[0],_&&void 0!==_[1]?_[1]:V[1]];return!m||_&&2===_.length||(X=[X[1],X[0]]),"bumpline"!==s.type&&!y||W&&2===W.length||(G=[G[1],G[0]]),h.type&&"contour"===h.type?w=Ve({summaryType:h,data:w,finalXExtent:X,finalYExtent:G}):h.type&&"linebounds"===h.type?w=function({summaryType:e,data:t,defined:a}){let n=[];e.type||(e={type:e});const{boundingAccessor:o,topBoundingAccessor:r=o,bottomBoundingAccessor:s=o}=e;return t.forEach(e=>{const t=e._baseData.map(a);let o=[],i=[];const l=[{xyf:i,base:o}];t.forEach((a,n)=>{!0===a?(o.push(e._baseData[n]),i.push(e._xyfCoordinates[n])):t[n+1]&&(o=[],i=[],l.push({xyf:i,base:o}))}),l.forEach(({xyf:t,base:a})=>{const o={data:e,parentSummary:e,_xyfCoordinates:_e(t,a,r,s)};n=[...n,o]})}),n}({summaryType:h,data:w,defined:M}):h.type&&"hexbin"===h.type?(w=Ie({summaryType:h,data:w[0],processedData:n&&!!n[0].processedData,preprocess:!1,finalXExtent:X,finalYExtent:G,size:f,margin:x,styleFn:g,classFn:v,renderFn:b,chartSize:k}),O=Ht(O,w)):h.type&&"heatmap"===h.type?(w=We({summaryType:h,data:w[0],processedData:n&&!!n[0].processedData,preprocess:!1,finalXExtent:X,finalYExtent:G,size:f,margin:x,styleFn:g,classFn:v,renderFn:b,chartSize:k}),O=Ht(O,w)):h.type&&"trendline"===h.type&&(w=function({preprocess:e=!1,summaryType:t,data:a,finalXExtent:n=[Math.min(...a.coordinates.map(e=>e.x)),Math.max(...a.coordinates.map(e=>e.x))],xScaleType:o=d()}){if(e)return a[0].coordinates;let r,s=[];r=t.type?t:{type:r};const{regressionType:i="linear",order:l=2,precision:c=4,controlPoints:p=20,curve:m=E}=r;let y=i;n[0]>=0||"logarithmic"!==i&&"power"!==i&&"exponential"!==i||(console.error(`Cannot use this ${i} regressionType type with value range that goes below 0, defaulting to linear`),y="linear"),a.coordinates&&!a._xyfCoordinates&&(a._xyfCoordinates=a.coordinates.map(e=>[e.x,e.y]));const u=Array.isArray(a)?a:[a],h=o.domain([0,1]).range(n);return s=[],u.forEach(e=>{const t=R[y](e._xyfCoordinates.map(e=>{let t=e[0],a=e[1];return"number"!=typeof t&&(t=t.getTime()),"number"!=typeof a&&(a=a.getTime()),[t,a]}),{order:l,precision:c}),a=1/p;let n=[0,1];if("linear"!==y){n=[];for(let e=0;1+a>e;e+=a)n.push(e)}const o=[];n.forEach(e=>{o.push(t.predict(h(e)))}),s.push({centroid:!1,customMark:void 0,data:e,parentSummary:e,value:t.string,r2:t.r2,curve:m,_xyfCoordinates:o})}),s}({summaryType:h,data:w[0],preprocess:n&&!!n[0].processedData,finalXExtent:X}),O=Ht(O,w)),j&&(D=D.filter(j),O=O.filter((e,t)=>!e.parentLine||j(e.parentLine,t,[]))),A&&(O=O.filter(A)),S&&(w=w.filter(S),O=O.filter((e,t)=>!e.parentSummary||S(e.parentSummary,t,[]))),{xExtent:X,yExtent:G,projectedLines:D,projectedPoints:C,projectedSummaries:w,fullDataset:O,calculatedXExtent:V,calculatedYExtent:I}},qt=(e,t)=>!Gt[e]||"difference"===e&&2!==t.length?"line":e,Zt=({xExtent:e,yExtent:t,adjustedSize:a,xScaleType:n,yScaleType:o})=>{const r=[0,a[0]],s=[a[1],0],i=n,l=o;return n.domain&&n.domain(e),o.domain&&o.domain(t),n.range(r),o.range(s),{xScale:i,yScale:l}},Jt={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"}},Qt=(t,a,n,o)=>{const{legend:r,lines:s,lineClass:i,pointStyle:l,pointRenderMode:c,pointClass:p,summaryClass:m,canvasLines:y,canvasPoints:u,canvasSummaries:h,defined:f,size:x,renderKey:g,lineType:v,summaryType:b,customLineMark:k,customPointMark:j,customSummaryMark:E,summaryStyle:S,summaryRenderMode:A,lineStyle:M,lineRenderMode:$,xExtent:O,yExtent:P,title:C,xScaleType:D=d(),yScaleType:w=d(),lineIDAccessor:N,invertX:T,invertY:z,showLinePoints:F,showSummaryPoints:L,points:R,lineDataAccessor:B,summaryDataAccessor:V,yAccessor:I,xAccessor:_,useSummariesAsInteractionLayer:W,filterRenderedLines:G,filterRenderedSummaries:X,filterRenderedPoints:Y,annotations:H}=t;let{projectedLines:K,projectedPoints:q,projectedSummaries:Z,summaries:J,fullDataset:Q}=t;b&&R&&!J?J=[{coordinates:R}]:b&&"linebounds"===b.type&&s&&!J&&(J=s);const U=D.domain?D:D(),ee=w.domain?w:w(),te=o.annotatedSettings(_,I,V,B,g,v,b,N),ae=Object.assign(Object.assign({},te),{lineType:lt(v),summaryType:lt(b),summaries:!J||Array.isArray(J)&&0===J.length?void 0:Array.isArray(J)?V||J[0].coordinates?J:[{coordinates:J}]:[J],lines:!s||Array.isArray(s)&&0===s.length?void 0:Array.isArray(s)?B||s[0].coordinates?s:[{coordinates:s}]:[s],title:"object"!=typeof C||e.isValidElement(C)||null===C?{title:C,orient:"top"}:C,xExtent:Array.isArray(O)?O:O?O.extent:void 0,yExtent:Array.isArray(P)?P:P?P.extent:void 0});"area"===ae.lineType.type&&(ae.lineType.y1=()=>0,ae.lineType.simpleLine=!1);const{summaryStyleFn:ne,summaryClassFn:oe,summaryRenderModeFn:re}=o.summaryStyleFns(S,m,A),se=t.axes&&t.axes.map(e=>"function"==typeof e?e({size:t.size}):e),{margin:ie,adjustedPosition:le,adjustedSize:ce}=o.marginCalc(t.margin,se,ae.title,t.size);let de,pe,me,ye,ue,he,fe,xe,ge=[],ve=[];me="object"==typeof O?O:{extent:O},ye="object"==typeof P?P:{extent:P},n||t.dataVersion&&t.dataVersion!==a.dataVersion?(pe&&de&&Q&&(K||q||Z)||({xExtent:pe,yExtent:de,projectedLines:K,projectedPoints:q,projectedSummaries:Z,fullDataset:Q,calculatedXExtent:ge,calculatedYExtent:ve}=Kt({lineDataAccessor:ae.lineDataAccessor,summaryDataAccessor:ae.summaryDataAccessor,xAccessor:ae.xAccessor,yAccessor:ae.yAccessor,lineType:ae.lineType,summaryType:ae.summaryType,summaries:ae.summaries,points:R,lines:ae.lines,showLinePoints:F,showSummaryPoints:L,xExtent:O,yExtent:P,invertX:T,invertY:z,adjustedSize:ce,margin:ie,summaryStyleFn:ne,summaryClassFn:oe,summaryRenderModeFn:re,chartSize:x,defined:f,filterRenderedLines:G,filterRenderedSummaries:X,filterRenderedPoints:Y,annotations:H})),({xScale:ue,yScale:he}=Zt({xExtent:pe,yExtent:de,adjustedSize:ce,xScaleType:U.copy(),yScaleType:ee.copy()}))):(({xExtent:pe,yExtent:de,projectedLines:K,projectedPoints:q,projectedSummaries:Z,fullDataset:Q,calculatedXExtent:ge,calculatedYExtent:ve}=a),ce[0]===a.adjustedSize[0]&&ce[1]===a.adjustedSize[1]?(ue=a.xScale,he=a.yScale):({xScale:ue,yScale:he}=Zt({xExtent:pe,yExtent:de,adjustedSize:ce,xScaleType:U,yScaleType:ee}))),pe=Array.isArray(me.extent)&&2===me.extent.length?me.extent:pe,de=Array.isArray(ye.extent)&&2===ye.extent.length?ye.extent:de;const be={};let ke;if(se&&(xe=[],fe=se.map((a,n)=>{let o=a.className||"";o+=" axis";let r,s=he;be[a.orient]&&(a.baseline=a.baseline||!1),be[a.orient]=!0,"top"===a.orient||"bottom"===a.orient?(o+=" x",s=ue):o+=" y",o+=" "+a.orient,a.tickValues&&Array.isArray(a.tickValues)?r=a.tickValues:a.tickValues instanceof Function&&(r=a.tickValues(Q,t.size,s));const i=[ce[0],ce[1]],l=Pe({padding:a.padding,tickValues:r,scale:s,ticks:a.ticks,orient:a.orient,size:i,footer:a.footer,tickSize:a.tickSize,jaggedBase:a.jaggedBase}),c=e.createElement("g",{key:"axes-tick-lines-"+n,className:"axis "+o},Ce({axisParts:l,orient:a.orient,tickLineGenerator:a.tickLineGenerator,className:o,jaggedBase:a.jaggedBase,scale:s,showOutboundTickLines:a.showOutboundTickLines}),"under"===a.baseline&&((t,a,n)=>{const o={left:{x:0,y:0,width:0,height:a?a[1]:0},right:{x:a?a[0]:0,y:0,width:0,height:a?a[1]:0},top:{x:0,y:0,width:a?a[0]:0,height:0},bottom:{x:0,y:a?a[1]:0,width:a?a[0]:0,height:0}}[t];return e.createElement("line",{key:"baseline",className:"axis-baseline "+n,stroke:"currentColor",strokeLinecap:"square",x1:o.x,x2:o.x+o.width,y1:o.y,y2:o.y+o.height})})(a.orient,ce,a.className));return xe.push(c),e.createElement(ot,Object.assign({},a,{key:a.key||"axis-"+n,annotationFunction:a.axisAnnotationFunction,axisParts:l,size:i,margin:ie,tickValues:r,scale:s,className:o,xyPoints:Q}))})),r&&(ke=!0===r?{}:r,K&&!ke.legendGroups)){const e=ae.lineType.type,a=[{styleFn:t.lineStyle,type:"string"==typeof e&&-1===["stackedarea","stackedpercent","bumparea"].indexOf(e)?"line":"fill",items:K.map(e=>Object.assign({label:ae.lineIDAccessor(e)},e))}];ke.legendGroups=a}const je=[];if(ae.summaryType.label&&Z)Z.forEach((e,t)=>{e.bounds&&(Array.isArray(e.bounds)?e.bounds:[e.bounds]).forEach(a=>{const n="function"==typeof ae.summaryType.label?ae.summaryType.label(e):ae.summaryType.label;if(n&&null!==n){const o=n.position||"center",r=[ue(a[o][0]),he(a[o][1])],s=n.content||(e=>e.value||e.id||t);je.push({x:r[0],y:r[1],dx:n.dx,dy:n.dy,className:n.className,type:n.type||"callout",note:n.note||{title:s(e)},subject:n.subject||{text:s(e)},connector:n.connector})}})});else if(ae.summaryType.showSlope&&Z&&Z[0]){const e=Z[0],t=e._xyfCoordinates[0],a=e._xyfCoordinates[e._xyfCoordinates.length-1];je.push({x:t[0],y:t[1],x1:a[0],x2:a[1],type:"trendline-annotation",value:e.value,r2:e.r2})}const Ee=void 0!==ae.lineType.type&&"string"==typeof ae.lineType.type&&Jt[ae.lineType.type],Se={lines:Object.assign(Object.assign({accessibleTransform:(e,t)=>Object.assign(Object.assign({},e[t].data[e[t].data.length-1]),{type:"frame-hover"}),data:K},o.lineStyleFns(M,i,$,y)),{customMark:k,type:ae.lineType,defined:f,renderKeyFn:ae.renderKeyFn,ariaLabel:Ee,axesData:se,behavior:qe}),summaries:{accessibleTransform:(e,t)=>Object.assign(Object.assign({},e[t]),{type:"frame-hover"}),data:Z,styleFn:ne,classFn:oe,renderMode:re,canvasRender:o.summaryCanvasRender(h),customMark:E,type:ae.summaryType,renderKeyFn:ae.renderKeyFn,behavior:Ze},points:Object.assign(Object.assign({accessibleTransform:(e,t)=>Object.assign({type:"frame-hover"},e[t].data||e[t]),data:q},o.pointStyleFns(l,p,c,u)),{customMark:j,renderKeyFn:ae.renderKeyFn,showLinePoints:F,behavior:Ke})};let Ae;return me.onChange&&a.calculatedXExtent.join(",")!==ge.join(",")&&me.onChange(ge),ye.onChange&&a.calculatedYExtent.join(",")!==ve.join(",")&&ye.onChange(ve),W&&Z&&(Ae=Ze({xScale:ue,yScale:he,data:Z}).map((e,t)=>Object.assign(Object.assign({},e.props),{style:{fillOpacity:0},overlayData:Z&&Z[t]}))),{lineData:t.lines,pointData:t.points,summaryData:t.summaries,dataVersion:t.dataVersion,projectedLines:K,projectedPoints:q,projectedSummaries:Z,canvasDrawing:[],fullDataset:Q,adjustedPosition:le,adjustedSize:ce,backgroundGraphics:t.backgroundGraphics,foregroundGraphics:t.foregroundGraphics,axesData:se,axes:fe,axesTickLines:xe,renderNumber:a.renderNumber+1,xScale:ue,yScale:he,xAccessor:ae.xAccessor,yAccessor:ae.yAccessor,xExtent:[void 0===pe[0]?ge[0]:pe[0],void 0===pe[1]?ge[1]:pe[1]],yExtent:[void 0===de[0]?ve[0]:de[0],void 0===de[1]?ve[1]:de[1]],calculatedXExtent:ge,calculatedYExtent:ve,margin:ie,legendSettings:ke,areaAnnotations:je,xyFrameRender:Se,size:x,annotatedSettings:ae,overlay:Ae,props:t}},Ut=()=>({}),ea=()=>"",ta=["lines","points","summaries","xAccessor","yAccessor","lineDataAccessor","areaDataAccessor","summaryDataAccessor","lineIDAccessor","lineType","summaryType","showLinePoints","showSummaryPoints","defined","xExtent","yExtent","xScaleType","yScaleType","invertX","invertY","filterRenderedLines","filterRenderedPoints","filterRenderedSummaries"],aa=["size","margin","title","axes",...ta];let na="";for(let e=32;e>0;--e)na+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];const oa={y:pe,x:de,yMiddle:me,yTop:ye,yBottom:ue,xMiddle:he,xTop:fe,xBottom:xe},ra={annotations:[],foregroundGraphics:void 0,size:[500,500],className:"",lineType:"line",name:"xyframe",dataVersion:void 0};function sa(t){const a=Object.assign(Object.assign({},ra),t),o=l({annotatedSettings:I((e,t,a,n,o,r,s,i)=>({xAccessor:Yt(e,e=>e[0]),yAccessor:Yt(t,e=>e[1]),summaryDataAccessor:Yt(a,e=>Array.isArray(e)?e:e.coordinates),lineDataAccessor:Yt(n,e=>Array.isArray(e)?e:e.coordinates),renderKeyFn:Xt(o,(e,t)=>"line-"+t,!0),lineIDAccessor:Xt(i,e=>e.semioticLineID)})),marginCalc:I((e,t,a,n)=>{const o=it({margin:e,axes:t,title:a,size:n}),{adjustedPosition:r,adjustedSize:s}=ct({size:n,margin:o});return{margin:o,adjustedPosition:r,adjustedSize:s}}),summaryStyleFns:I((e,t,a)=>({summaryStyleFn:Xt(e,Ut,!0),summaryClassFn:Xt(t,ea,!0),summaryRenderModeFn:Xt(a,void 0,!0)})),lineStyleFns:I((e,t,a,n)=>({styleFn:Xt(e,Ut,!0),classFn:Xt(t,ea,!0),renderMode:Xt(a,void 0,!0),canvasRender:Xt(n,void 0,!0)})),pointStyleFns:I((e,t,a,n)=>({styleFn:Xt(e,Ut,!0),classFn:Xt(t,ea,!0),renderMode:Xt(a,void 0,!0),canvasRender:Xt(n,void 0,!0)})),summaryCanvasRender:I(e=>Xt(e,void 0,!0))}),r={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:d(),yScale:d(),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:a},s=n(()=>Object.assign(Object.assign({},r),Qt(a,r,!0,o.current)),[]),p=function(e,t,a){let r=l(a),s=n(()=>{let e=r.current,a=function(e,t,a){const{props:n}=t,{xExtent:o=[],yExtent:r=[],size:s,dataVersion:i,lineData:l,summaryData:c,pointData:d}=t,{xExtent:p,yExtent:m,size:y,dataVersion:u,lines:h,summaries:f,points:x}=e,g=Vt(p),v=Vt(m),b=o[0]!==g[0]&&void 0!==g[0]||r[0]!==v[0]&&void 0!==v[0]||o[1]!==g[1]&&void 0!==g[1]||r[1]!==v[1]&&void 0!==v[1],k=l!==h,j=c!==f,E=d!==x,S=!i&&ta.some(t=>n[t]!==e[t]),A=!i&&aa.some(t=>n[t]!==e[t]),M=s[0]!==y[0]||s[1]!==y[1];return i&&i!==u||!t.fullDataset||k||j||E||b||S?Qt(e,t,!0,a):M||A?Qt(e,t,!1,a):null}(t,e,o.current);return null!=a?Object.assign(Object.assign({},e),a):e},[t]);return r.current=s,s}(0,a,s),{size:m,className:y,annotationSettings:u,annotations:h,additionalDefs:x,hoverAnnotation:g,interaction:v,customClickBehavior:b,customHoverBehavior:k,customDoubleClickBehavior:j,canvasPostProcess:E,canvasSummaries:S,canvasPoints:A,canvasLines:M,afterElements:$,beforeElements:O,renderOrder:P,matte:C,frameKey:D,showLinePoints:w,sketchyRenderingEngine:R,disableContext:B,frameRenderOrder:V,disableCanvasInteraction:_,interactionSettings:W,disableProgressiveRendering:G,transition:X}=a,{backgroundGraphics:Y,foregroundGraphics:H,adjustedPosition:K,adjustedSize:Z,margin:J,axes:Q,axesTickLines:U,xScale:ee,yScale:te,fullDataset:ae,dataVersion:ne,areaAnnotations:oe,legendSettings:re,xyFrameRender:se,annotatedSettings:ie,overlay:le}=p;!function(e,t){let a=l();a.current=[e,t],i(()=>()=>{const[e,t]=a.current,n=e.onUnmount;n&&n(e,t)},[])}(a,p);const ce=l(a);ce.current=a;const ye=l(p);ye.current=p;const ue=c(t=>function(t,a,{d:n,i:o,lines:r,summaries:s,points:i,annotationLayer:l}){const{showLinePoints:c,defined:d,margin:p,size:m,svgAnnotationRules:y}=t,{xyFrameRender:u,xScale:h,yScale:x,xAccessor:g,yAccessor:v,axesData:b,annotatedSettings:k}=a;let j=[];const E=k.lineIDAccessor;if("highlight"===n.type)return(({d:t,i:a,points:n={data:[]},lines:o={data:[],type:{}},summaries:r={data:[]},idAccessor:s,xScale:i,yScale:l,xyFrameRender:c,defined:d})=>{let p;const m=s(Object.assign(Object.assign({},t),t.data),a);void 0!==m?p=m:t.parentLine&&void 0!==s(t.parentLine,a)?p=s(t.parentLine,a):t.parentSummary&&void 0!==s(t.parentSummary,a)&&(p=s(t.parentSummary,a));const y=n.data.filter((e,t)=>s(Object.assign(Object.assign({},e),e.data),t)===p).map((a,n)=>{const o=c.points.styleFn(Object.assign(Object.assign({},a),a.data)),r="function"==typeof t.style?t.style(Object.assign(Object.assign({},a),a.data),n):t.style||{};return e.createElement("circle",{key:"highlight-point-"+n,cx:i(a.x),cy:l(a.y),r:5,fill:"none",stroke:"currentColor",strokeWidth:2,style:Object.assign(Object.assign({},o),r),className:"highlight-annotation "+(t.class&&"function"==typeof t.class&&t.class(Object.assign(Object.assign({},a),a.data),n)||t.class&&t.class||"")})}),u=T().x(e=>i(e.x)).y0(e=>l(e.yBottom)).y1(e=>l(e.yTop)),h=o.type.interpolator||o.type.curve,f="string"==typeof h?Ye[h]:h;f&&u.curve(f),d&&u.defined((e,t)=>d(e.data,t));const x=o.data.filter((e,t)=>s(e,t)===p).map((a,n)=>{const o=c.lines.styleFn(a,n),r="function"==typeof t.style?t.style(a,n):t.style||{};return e.createElement("path",{className:"highlight-annotation "+(t.class&&"function"==typeof t.class&&t.class(a,n)||t.class&&t.class||""),key:"highlight-summary-"+n,d:u(a.data),fill:"none",stroke:"currentColor",strokeWidth:1,style:Object.assign(Object.assign({},o),r)})});return[...r.data.filter((e,t)=>s(e,t)===p).map((a,n)=>{const o=c.summaries.styleFn(a,n),r="function"==typeof t.style?t.style(a,n):t.style||{};return e.createElement("path",{className:"highlight-annotation "+(t.class&&"function"==typeof t.class&&t.class(a,n)||t.class&&t.class||""),key:"highlight-summary-"+n,d:"M"+a.coordinates.join("L"),fill:"none",stroke:"currentColor",strokeWidth:1,style:Object.assign(Object.assign({},o),r)})}),...x,...y]})({d:n,i:o,idAccessor:E,lines:r,summaries:s,points:i,xScale:h,yScale:x,xyFrameRender:u,defined:d});const S=n.coordinates?n:Bt({point:n,idAccessor:E,lines:r,xScale:h,projectedX:de,xAccessor:g});if(!S)return null;const A=it({margin:p,axes:b,title:k.title,size:m}),{adjustedPosition:M,adjustedSize:$}=ct({size:m,margin:A});S.coordinates||S.bounds?S.bounds||(j=S.coordinates.reduce((e,t)=>{const a=Rt({point:t,projectedXMiddle:he,projectedX:de,xAccessor:g,xScale:h}),n=Lt({point:t,projectedY:pe,yAccessor:v,yScale:x});return Array.isArray(n)?[...e,[a,Math.min(...n)],[a,Math.max(...n)]]:Array.isArray(a)?[...e,[Math.min(...a),n],[Math.max(...a),n]]:[...e,[a,n]]},[])):j=[Rt({point:S,projectedXMiddle:he,projectedX:de,xAccessor:g,xScale:h})||0,Lt({point:S,projectedY:pe,yAccessor:v,yScale:x,showLinePoints:c})||0];const{voronoiHover:O}=l,P=y&&y({d:S,i:o,screenCoordinates:j,xScale:h,yScale:x,xAccessor:g,yAccessor:v,xyFrameProps:t,xyFrameState:a,summaries:s,points:i,lines:r,voronoiHover:O,adjustedPosition:M,adjustedSize:$,annotationLayer:l});return void 0!==y&&null!==P?P:"desaturation-layer"===S.type?(({style:t={fill:"white",fillOpacity:.5},size:a,i:n,key:o})=>e.createElement("rect",{"data-testid":"desaturation-layer",key:o||"desaturation-"+n,x:-5,y:-5,width:a[0]+10,height:a[1]+10,style:t}))({style:S.style instanceof Function?S.style(S,o):S.style,size:$,i:o,key:S.key}):"xy"===S.type||"frame-hover"===S.type?(({screenCoordinates:t,i:a,d:n})=>{let o;n.color&&(o={fill:n.color});const r=e.createElement("circle",{className:`annotation ${n.type} ${n.className||""} `,key:"annotationpoint"+a,cx:t[0],cy:t[1],style:o,fill:"none",stroke:"currentColor",r:5});let s;return"xy"===n.type&&(s=e.createElement("text",{key:`${n.label}annotationtext${a}`,x:t[0],y:10+t[1],"data-testid":"annotation-xy-label",className:`annotation annotation-xy-label ${n.className||""} `},n.label)),[r,s]})({d:S,i:o,screenCoordinates:j}):"function"==typeof S.type||ia.has(S.type)?(({screenCoordinates:t,d:a,i:n})=>{const o=Object.assign({dx:0,dy:0,note:{label:a.label,orientation:a.orientation,align:a.align},connector:{end:"arrow"}},a,{type:a.type,screenCoordinates:t,i:n});return o.x=o.fixedX?o.fixedX:t[0],o.y=o.fixedY?o.fixedY:t[1],e.createElement(q,{key:a.key||"annotation-"+n,noteData:o})})({d:S,screenCoordinates:j,i:o}):"enclose"===S.type?(({screenCoordinates:t,d:a,i:n})=>(({d:t,i:a,circle:n})=>{const{padding:o=2,radiusPadding:r=o,label:s}=t,i=Object.assign({dx:0,dy:0,note:{label:s},connector:{end:"arrow"}},t,{coordinates:void 0,x:n.x,y:n.y,type:"callout-circle",subject:{radius:n.r,radiusPadding:r},i:a});if(i.rp)switch(i.rp){case"top":i.dx=0,i.dy=-n.r-i.rd;break;case"bottom":i.dx=0,i.dy=n.r+i.rd;break;case"left":i.dx=-n.r-i.rd,i.dy=0;break;default:i.dx=n.r+i.rd,i.dy=0}return e.createElement(q,{key:t.key||"annotation-"+a,noteData:i})})({d:a,circle:z(t.map(e=>({x:e[0],y:e[1],r:2}))),i:n}))({d:S,screenCoordinates:j,i:o}):"enclose-rect"===S.type?(({d:t,i:a,screenCoordinates:n})=>(({bboxNodes:t,d:a,i:n})=>{const{padding:o=0,dx:r=-25,dy:s=-25,label:i}=a,l=[[Math.min(...t.map(e=>e.x0))-o,Math.min(...t.map(e=>e.y0))-o],[Math.max(...t.map(e=>e.x1))+o,Math.max(...t.map(e=>e.y1))+o]],c=Object.assign({dx:r,dy:s,note:{label:i},connector:{end:"arrow"}},a,{type:"callout-rect",x:l[0][0],y:l[0][1],subject:{width:l[1][0]-l[0][0],height:l[1][1]-l[0][1]}});return e.createElement(q,{key:a.key||"annotation-"+n,noteData:c})})({bboxNodes:n.map(e=>({x0:e.x0=e[0],x1:e.x1=e[0],y0:e.y0=e[1],y1:e.y1=e[1]})),d:t,i:a}))({d:S,screenCoordinates:j,i:o}):"enclose-hull"===S.type?(({screenCoordinates:t,d:a,i:n})=>(({points:t,d:a,i:n})=>{const{color:o="currentColor",dx:r=-25,dy:s=-25,label:i,padding:l=10,buffer:c=l,strokeWidth:d=10}=a,p=F(t),m=(new L).data([...p,p[0]]).margin(c)[0],y=`M${m.map(e=>e.join(",")).join("L")}Z`,u=m[0],{nx:h=u[0]+r,ny:f=u[1]+s}=a,x=m.reduce((e,t)=>(Math.hypot(h-e[0],f-e[1])>Math.hypot(h-t[0],f-t[1])&&(e=t),e),u),g=Object.assign({dx:r,dy:s,note:{label:i},connector:{end:"arrow"}},a,{type:"callout-custom",x:x[0],y:x[1],subject:{custom:[e.createElement("path",{key:"hull-drawing",d:y,strokeWidth:d,strokeMiterlimit:"10",strokeLinejoin:"miter",strokeLinecap:"butt",fill:"none",stroke:o,transform:`translate(${-x[0]},${-x[1]})`})],customID:"hull-annotation"}});return e.createElement(q,{key:a.key||"annotation-"+n,noteData:g})})({points:t,d:a,i:n}))({d:S,screenCoordinates:j,i:o}):"x"===S.type?(({screenCoordinates:t,d:a,i:n,adjustedSize:o})=>{const r=Object.assign({dx:50,dy:20,y:0,note:{label:a.label},connector:{end:"arrow"}},a,{type:"xy-threshold",x:t[0],subject:{x:t[0],y1:0,y2:o[1]},i:n});return e.createElement(q,{key:a.key||"annotation-"+n,noteData:r})})({d:S,screenCoordinates:j,i:o,adjustedSize:$}):"y"===S.type?(({screenCoordinates:t,d:a,i:n,adjustedSize:o,adjustedPosition:r})=>{const s=Object.assign({dx:50,dy:-20,x:25*n,note:{label:a.label},connector:{end:"arrow"}},a,{type:"xy-threshold",y:t[1],subject:{y:t[1],x1:0,x2:o[0]+r[0]},i:n});return e.createElement(q,{key:a.key||"annotation-"+n,noteData:s})})({d:S,screenCoordinates:j,i:o,adjustedSize:$,adjustedPosition:M}):"bounds"===S.type?(({d:t,i:a,adjustedSize:n,xAccessor:o,yAccessor:r,xScale:s,yScale:i})=>{const l=St(o,t.bounds[0]),c=St(r,t.bounds[0]),d=St(o,t.bounds[1]),p=St(r,t.bounds[1]),m=l?s(l):0,y=c?i(c):n[1],u=d?s(d):n[0],h=p?i(p):0,f=Object.assign({dx:250,dy:-20,note:{label:t.label},connector:{end:"arrow"}},t,{type:"callout-rect",x:Math.min(m,u),y:Math.min(y,h),subject:{width:Math.abs(u-m),height:Math.abs(y-h)},i:a});return e.createElement(q,{key:t.key||"annotation-"+a,noteData:f})})({d:S,i:o,adjustedSize:$,xAccessor:g,yAccessor:v,xScale:h,yScale:x}):"line"===S.type?(({d:t,i:a,screenCoordinates:n})=>{const o=N().x(e=>e[0]).y(e=>e[1])(n);return[e.createElement("path",{key:`${t.label}annotationline${a}`,d:o,className:`annotation annotation-line ${t.className||""} `}),e.createElement("text",{key:`${t.label}annotationlinetext${a}`,x:(n[0][0]+n[1][0])/2,y:(n[0][1]+n[1][1])/2,className:`annotation annotation-line-label ${t.className||""} `},t.label)]})({d:S,i:o,screenCoordinates:j}):"area"===S.type?(({d:t,i:a,xScale:n,xAccessor:o,yScale:r,yAccessor:s,annotationLayer:i})=>{const l=`M${t.coordinates.map(e=>[n(St(o,e)),r(St(s,e))]).join("L")}Z`,c=f(t.coordinates.map(e=>n(St(o,e)))),d=f(t.coordinates.map(e=>r(St(s,e)))),p=(c[0]+c[1])/2,m=(d[0]+d[1])/2;return[e.createElement("path",{key:`${t.label}-annotation-area-${a}`,d:l,className:`annotation annotation-area ${t.className||""} `}),e.createElement("text",{key:`${t.label}-annotationtext-${a}`,x:p,y:m,transform:`translate(${i.position})`,className:`annotation annotation-area-label ${t.className||""} `,style:{textAnchor:"middle"}},t.label)]})({d:S,i:o,xScale:h,xAccessor:g,yScale:x,yAccessor:v,annotationLayer:l}):"horizontal-points"===S.type?Mt({d:S,lines:r.data,points:i.data,xScale:h,yScale:x,pointStyle:i.styleFn}):"vertical-points"===S.type?$t({d:S,lines:r.data,points:i.data,xScale:h,yScale:x,pointStyle:i.styleFn}):null}(ce.current,ye.current,t),[]),fe=c(t=>function(t,a,{d:n,i:o,lines:r,summaries:s,points:i,annotationLayer:l}){const{xAccessor:c,yAccessor:d,xScale:p,yScale:m,annotatedSettings:y,axesData:u}=a,{voronoiHover:h}=l;let f=[];const{tooltipContent:x,optimizeCustomTooltipPosition:g,htmlAnnotationRules:v,size:b,showLinePoints:k,margin:j}=t,E=y.lineIDAccessor,S=Bt({point:n,idAccessor:E,lines:r,xScale:p,projectedX:de,xAccessor:c});if(!S)return null;const A=S[he]||S[de]||St(c,S),M=S[me]||S[pe]||St(d,S),$=A&&A.toString?""+A:A,O=M&&M.toString?""+M:M,P=it({margin:j,axes:u,title:y.title,size:b}),{adjustedPosition:C,adjustedSize:D}=ct({size:b,margin:P});f=S.coordinates?S.coordinates.map(e=>{const t=Bt({point:Object.assign({x:0,y:0},e),idAccessor:E,lines:r,xScale:p,projectedX:de,xAccessor:c});return[(p(St(c,S))||0)+C[0],(Lt({point:t,projectedY:pe,yAccessor:d,yScale:m})||0)+C[1]]}):[p(A)||0,Lt({point:S,projectedY:pe,showLinePoints:k,yAccessor:d,yScale:m})||0];const w=v&&v({d:S,i:o,screenCoordinates:f,xScale:p,yScale:m,xAccessor:c,yAccessor:d,xyFrameProps:t,xyFrameState:a,summaries:s,points:i,lines:r,voronoiHover:h,adjustedPosition:C,adjustedSize:D,annotationLayer:l});if(v&&null!==w)return w;if("frame-hover"===S.type){let t=e.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},e.createElement("p",{key:"html-annotation-content-1"},$),e.createElement("p",{key:"html-annotation-content-2"},O),S.percent?e.createElement("p",{key:"html-annotation-content-3"},Math.floor(1e3*S.percent)/10,"%"):null);return"frame-hover"===S.type&&x&&(t=g?e.createElement(Et,{tooltipContent:x,tooltipContentArgs:S}):x(S)),(({content:t,screenCoordinates:a,i:n,d:o,adjustedSize:r})=>{const s={position:"absolute",top:a[1]+"px"};return r&&a[0]>r[0]/2?s.right=r[0]-a[0]+"px":s.left=a[0]+"px",e.createElement("div",{key:"xylabel-"+n,className:`annotation annotation-xy-label ${o.className||""} `,style:s},t)})({content:t,screenCoordinates:f,i:o,d:S,adjustedSize:D})}return null}(ce.current,ye.current,t),[]),xe=n(()=>oe.length>0?[...h,...oe]:h,[h,oe]),ge=n(()=>"string"==typeof w?w:void 0,[w]),ve=n(()=>!!(S||A||M),[S,A,M]);return e.createElement(kt,{name:"xyframe",renderPipeline:se,adjustedPosition:K,size:m,projectedCoordinateNames:oa,xScale:ee,yScale:te,axes:Q,axesTickLines:U,title:ie.title,dataVersion:ne,matte:C,className:y,adjustedSize:Z,frameKey:D||na,additionalDefs:x,hoverAnnotation:g,defaultSVGRule:ue,defaultHTMLRule:fe,annotations:xe,annotationSettings:u,legendSettings:re,projectedYMiddle:me,interaction:v,customClickBehavior:b,customHoverBehavior:k,customDoubleClickBehavior:j,points:ae,showLinePoints:ge,margin:J,backgroundGraphics:Y,foregroundGraphics:H,beforeElements:O,afterElements:$,disableContext:B,canvasPostProcess:E,canvasRendering:ve,renderOrder:P,overlay:le,sketchyRenderingEngine:R,frameRenderOrder:V,disableCanvasInteraction:_,interactionSettings:W,disableProgressiveRendering:G,transition:X})}const ia=new Set(["label","callout","callout-circle","callout-rect","callout-custom","xy-threshold","bracket"]);sa.displayName="XYFrame";const la=e.memo(sa),ca=t=>{const{brushStart:a,brush:n,brushEnd:o,xBrushable:r,yBrushable:s,yBrushExtent:i,xBrushExtent:l}=t,c=ce(t,["brushStart","brush","brushEnd","xBrushable","yBrushable","yBrushExtent","xBrushExtent"]),d={start:a,during:n,end:o};return r&&s?(d.brush="xyBrush",(l||i)&&(d.extent=[[0,0],[...t.size]]),l&&(d.extent[0]=l),i&&(d.extent[1]=i)):r?(d.brush="xBrush",l&&(d.extent=l)):s&&(d.brush="yBrush",i&&(d.extent=i)),e.createElement(la,Object.assign({},c,{interaction:d}))};function da(t){const a=(t=>{const{xAccessor:a,yAccessor:n,points:o,lines:r,minimap:s,summaries:i,size:l,lineDataAccessor:c,lineType:d,lineStyle:p,summaryStyle:m,pointStyle:y,lineClass:u,summaryClass:h,pointClass:f,lineRenderMode:x,pointRenderMode:g,summaryRenderMode:v,canvasLines:b,canvasPoints:k,canvasSummaries:j,axes:E,margin:S,name:A,annotations:M,summaryType:$,interactionSettings:O}=t,P=Object.assign(Object.assign(Object.assign({},{position:[0,0],size:[l[0],.25*l[1]],xAccessor:a,yAccessor:n,points:o,lines:r,summaries:i,lineDataAccessor:c,xBrushable:!0,yBrushable:!0,brushStart:()=>{},brush:()=>{},brushEnd:()=>{},lineType:d,lineStyle:p,summaryStyle:m,pointStyle:y,lineClass:u,summaryClass:h,pointClass:f,lineRenderMode:x,pointRenderMode:g,summaryRenderMode:v,canvasLines:b,canvasPoints:k,canvasSummaries:j,axes:E,margin:S,name:A,annotations:M,summaryType:$,interactionSettings:O}),s),{hoverAnnotation:!1});return e.createElement(ca,Object.assign({},P))})(t),n={},{renderBefore:o}=t,r=ce(t,["minimap","renderBefore"]);return o?n.beforeElements=a:n.afterElements=a,e.createElement(la,Object.assign({},r,n))}const pa=(t=>{function a(a){const{responsiveWidth:n,responsiveHeight:o,size:i=[500,500],dataVersion:c,debounce:d=200,gridDisplay:p}=a,m=ce(a,["responsiveWidth","responsiveHeight","size","dataVersion","debounce","gridDisplay"]),y=[...i];let u=!1,h=l(),f=function(e){const[t,a]=r(null);return s(()=>{const t=e.current;if(null!=t){a(t.getBoundingClientRect());const e=new ResizeObserver(e=>{e.length>0&&a(e[0].contentRect)});return e.observe(t),()=>e.disconnect()}},[]),t}(h);return n&&(null==f?u=!0:y[0]=f.width),o&&(null==f?u=!0:y[1]=f.height),e.createElement("div",{"data-testid":"responsive-container",className:"responsive-container",style:p?{minWidth:"0px",minHeight:"0px"}:{height:"100%",width:"100%"},ref:h},!u&&e.createElement(t,Object.assign({},m,{size:y,dataVersion:c?c+""+y+d:void 0})))}return a.isResizing=setTimeout(()=>{}),a.displayName="Responsive"+t.displayName,a})(la),ma={margin:0},ya={tickFormat:()=>"",baseline:!1};function ua(t,a,n){return n=>{const{size:o=[],sparkStyle:s={}}=n,[i,l]=r(30),d=[];d[0]="number"==typeof o?o:o[0]?o[0]:i,d[1]=i;const p=c(e=>{if(e){const t=+window.getComputedStyle(e).lineHeight.split("px")[0]-5;l(isNaN(t)?e.offsetHeight:t)}},[]);return e.createElement("div",{style:Object.assign({width:d[0]+"px",height:d[1]+"px",display:"inline-block",marginLeft:"5px",marginRight:"5px"},s),ref:p},e.createElement(t,Object.assign({},a(n),{size:d})))}}const ha=ua(la,e=>Object.assign(Object.assign(Object.assign({},ma),e),{hoverAnnotation:e.hoverAnnotation,axes:e.axes?e.axes.map(e=>Object.assign(Object.assign({},ya),e)):e.axes}));function fa(t){const a=(t=>{const{parameters:a,className:n,interpolate:o=O,customAccessors:r,lineDataAccessor:s,data:i,searchIterations:l}=t,c=ce(t,["parameters","className","interpolate","customAccessors","lineDataAccessor","data","searchIterations"]),{x:d,y:p}=r,m=Pt({data:i,lineDataAccessor:[s],xProp:"x",yProp:"y",xAccessor:[d],yAccessor:[p]});for(const e of m)e.data=e.data.map(e=>Object.assign(Object.assign({},e.data),e));const y=((e,t,a=10)=>{let n=e(t[0],0),o=[];const r=[{key:n,points:o}];return t.forEach((t,s)=>{const i=e(t,s);let l=i===n;const c=JSON.stringify(i),d=JSON.stringify(n);if("object"==typeof n&&(l=c===d),l)o.push(t);else{let s=o[o.length-1],l=t,d=c,p=0;for(;a>p&&c===d;){const t=Tt({pointA:s,pointB:l,currentParameters:n,parameters:e,keys:Object.keys(s)});s=t[0],l=t[1],d=JSON.stringify(e(l)),p++}o.push(l),o=[l,t],r.push({key:i,points:o}),n=i}}),r})(a,m[0].data,l),u=N().curve(o).x(e=>e.x).y(e=>e.y);return y.map((t,a)=>e.createElement("path",Object.assign({},c,{className:n,key:"DividedLine-"+a,style:t.key,d:u(t.points)})))})(t);return e.createElement("g",null,a)}export{q as Annotation,re as AnnotationLayer,ot as Axis,le as Brush,fa as DividedLine,X as Legend,ca as MiniMap,da as MinimapXYFrame,pa as ResponsiveXYFrame,ha as SparkXYFrame,la as XYFrame,Kt as calculateDataExtent,zt as funnelize,We as heatmapping,Ie as hexbinning};