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,{useState as a,useCallback as n,useEffect as o,createContext as r,useMemo as i,useContext as s,useLayoutEffect as l,useRef as c}from"react";import{scaleLinear as d,scaleOrdinal as p,scaleBand as m}from"d3-scale";import{packEnclose as u}from"d3-hierarchy";import{max as y,min as h,extent as g,sum as f,quantile as x,histogram as v}from"d3-array";import{curveCardinal as b,curveNatural as k,curveMonotoneY as j,curveMonotoneX as E,curveCatmullRom as O,curveLinear as S,curveBasis as M,curveStepAfter as A,curveStepBefore as $,curveStep as P,line as C,arc as z,area as w}from"d3-shape";import D from"labella";import{brushX as T,brushY as N,brush as F}from"d3-brush";import{select as R}from"d3-selection";import{Delaunay as V}from"d3-delaunay";import{contourDensity as L}from"d3-contour";import B from"regression";import{hexbin as I}from"d3-hexbin";import _ from"svg-path-bounding-box";import{forceSimulation as G,forceY as W,forceX as H,forceCollide as K}from"d3-force";import Y from"memoize-one";const X=["data","oAccessor","rAccessor","dataAccessor","type","summaryType","connectorType","projection","orient","oScaleType","rScaleType","oExtent","rExtent","invertO","invertR","oPadding","oSort","dynamicColumnWidth","rBaseline","summaryPosition","renderFn"],q=["size","margin","title","axes","oLabel",...X];function Z(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 Q(e,t=120,a=8){if(!e)return[];const n=Math.max(1,Math.floor(t/a)),o=e.split(/\s+/),r=[];let i="";for(const e of o)i&&i.length+1+e.length>n?(r.push(i),i=e):i=i?`${i} ${e}`:e;return i&&r.push(i),r}function U(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 J(t){const{x:a=0,y:n=0,dx:o,dy:r,nx:i,ny:s,note:l,connector:c,subject:d,type:p,color:m,className:u,disable:y,events:h={},"data-testid":g}=t,f=new Set(Array.isArray(y)?y:[]);let x=o||0,v=r||0;null!=i&&(x=i-a),null!=s&&(v=s-n);const b="string"==typeof p?p:"label";if("bracket"===b&&d&&0===x&&0===v)if(void 0!==d.width){x=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;x=e+(0>e?-5:5),v=d.height/2}return e.createElement("g",Object.assign({className:("annotation "+(u||"")).trim(),transform:`translate(${a},${n})`,"data-testid":g},h),!f.has("connector")&&function(t,a,n,o,r,i){const s=[];let l=0,c=0;if("callout-circle"!==r&&"label"!==r||!(null==i?void 0:i.radius)){if("callout-rect"===r&&i){const e=i.width||0,n=i.height||0;if(e>0||n>0){const o=e/2,r=n/2,i=t-o,s=a-r;if(0!==i||0!==s){const t=Math.abs(i),a=Math.abs(s),d=e/2,p=n/2,m=t*p>a*d?d/t:p/a;l=o+i*m,c=r+s*m}}}else if("bracket"===r&&i){const e=i.width,t=i.height,a=i.depth||30;void 0!==e?(l=e/2,c=a):void 0!==t&&(l=a,c=t/2)}}else{const e=(i.radius||0)+(i.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&&(s.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,i=Math.atan2(a-c,t-l);s.push(e.createElement("path",{key:"connector-arrow",d:`M${l},${c}L${l+n*Math.cos(i+r)},${c+n*Math.sin(i+r)}L${l+n*Math.cos(i-r)},${c+n*Math.sin(i-r)}Z`,fill:o||"currentColor",stroke:"none"}))}return e.createElement("g",{className:"annotation-connector"},s)}(x,v,c,m,b,d),!f.has("subject")&&function(t,a,n,o,r){var i;const s=[];switch(t){case"callout-circle":{const t=((null==a?void 0:a.radius)||0)+((null==a?void 0:a.radiusPadding)||0);t>0&&s.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)&&s.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)&&s.push(...Array.isArray(a.custom)?a.custom:[a.custom]);break;case"xy-threshold":{const t=o||0,i=r||0;if(void 0!==(null==a?void 0:a.x)){const o=(a.x||0)-t;s.push(e.createElement("line",{key:"threshold-line",x1:o,y1:(a.y1||0)-i,x2:o,y2:(a.y2||0)-i,stroke:n||"currentColor",strokeDasharray:"5,5"}))}else if(void 0!==(null==a?void 0:a.y)){const o=(a.y||0)-i;s.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)?s.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)||s.push(e.createElement("line",{key:"threshold-line",x1:0,y1:(a.y1||0)-i,x2:0,y2:(a.y2||0)-i,stroke:n||"currentColor",strokeDasharray:"5,5"}));break}case"bracket":{const t=null!==(i=null==a?void 0:a.width)&&void 0!==i?i:null==a?void 0:a.height;void 0!==t&&s.push(e.createElement("path",{key:"bracket-path",d:U((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"},s)}(b,d,m,a,n),!f.has("note")&&function(t,a,n,o){if(!t)return e.createElement("g",{className:"annotation-note"});const{label:r,title:i,orientation:s,align:l,wrap:c=120,noWrap:d}=t;if(!r&&!i)return e.createElement("g",{className:"annotation-note"});let p=s;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 u="start";"topBottom"===p?"right"===m?u="end":"middle"===m&&(u="middle"):u=0>a?"end":"start";const y=16,h=i?d?[i]:Q(i,c):[],g=r?d?[r]:Q(r,c):[],f="leftRight"===p?"end"===u?-4:4:0;let x=0;const v=[];h.length>0&&(v.push(e.createElement("text",{key:"annotation-note-title",className:"annotation-note-title",fill:o||void 0,textAnchor:u,fontWeight:"bold"},h.map((t,a)=>e.createElement("tspan",{key:a,x:f,dy:0===a?0:y},t)))),x=h.length*y),g.length>0&&v.push(e.createElement("text",{key:"annotation-note-label",className:"annotation-note-label",fill:o||void 0,textAnchor:u,y:x},g.map((t,a)=>e.createElement("tspan",{key:a,x:f,dy:y},t))));let b=null;if((i||r)&&(0!==a||0!==n))if("topBottom"===p){const t=Math.min(c,120);let a=0,n=t;"end"===u?(a=-t,n=0):"middle"===u&&(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+g.length)*y+(g.length>0?y: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+g.length)*y+(g.length>0?y: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,x,v,m))}function ee(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,i=n.map((n,i)=>{const s=Object.assign({},a,{note:0===i?a.note:{label:""},x:n[0],y:n[1],nx:t,ny:r});return e.createElement(J,Object.assign({"data-testid":"semiotic-annotation",key:"multi-annotation-"+i},s,{type:o}))});return e.createElement("g",null,i)}const i=a.note||{title:"none",label:a.label};return e.createElement(J,Object.assign({"data-testid":"semiotic-annotation",key:`${i.label}-${i.title}-${a.i}`,events:r},a,{type:o}))}function te(e,t,a){const n=Math.PI*(t+.75)*2;return[e[0]+a*Math.cos(n),e[1]+a*Math.sin(n)]}"function"==typeof SuppressedError&&SuppressedError;const ae=({data:t,shouldRender:a,canvasRender:n,canvasDrawing:o,styleFn:r,classFn:i,renderKeyFn:s,ariaLabel:l,axis:c})=>{const d=c&&c[0]&&c[0].tickFormat;if(!a)return null;const p=[];return t.forEach((t,a)=>{if(n&&!0===n(t))o.push({baseClass:"orframe-piece",tx:t.tx||0,ty:t.ty||0,d:t.piece,i:a,markProps:t.renderElement||t,styleFn:r,renderFn:()=>t.renderValue,classFn:i});else if(e.isValidElement(t.renderElement||t))p.push(t.renderElement||t);else{const n=l?`${t.o} ${l.items} value ${d&&d(t.piece.value)||t.piece.value}`:"",o=s?s(t.piece):t.renderKey||"piece-render-"+a,r=t.renderElement||t,{markType:i,style:c={}}=r,m=Z(r,["markType","style"]),u=Object.assign(Object.assign({},m),{key:o,"aria-label":n});void 0!==c.fill&&(u.fill=c.fill),void 0!==c.stroke&&(u.stroke=c.stroke),void 0!==c.strokeWidth&&(u.strokeWidth=c.strokeWidth),void 0!==c.opacity&&(u.opacity=c.opacity),void 0!==c.fillOpacity&&(u.fillOpacity=c.fillOpacity),void 0!==c.strokeOpacity&&(u.strokeOpacity=c.strokeOpacity);const y=Object.assign({},c);delete y.fill,delete y.stroke,delete y.strokeWidth,delete y.opacity,delete y.fillOpacity,delete y.strokeOpacity,Object.keys(y).length>0&&(u.style=y),i&&p.push(e.createElement(i,u))}}),p},ne=(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}};function oe({summaryType:e,data:t,finalXExtent:a,finalYExtent:n}){let o=[];e.type||(e={type:e});const{resolution:r=500,thresholds:i=10,bandwidth:s=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=L().size([r,r]).x(e=>c(e[0])).y(e=>p(e[1])).thresholds(i).bandwidth(s)(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}const re=(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()],ie={step:P,stepbefore:$,stepafter:A,cardinal:b,basis:M,linear:S,catmullrom:O,monotone:j,monotonex:E,monotoney:j,natural:k},se=({tooltipRef:e,changeTooltipContentArgsCurrent:t,changeTooltipContainerInitialDimensions:a,changeCollision:n})=>{const o=null==e?void 0:e.getBoundingClientRect();if(!o)return;const{left:r,top:i,width:s,height:l}=o;let c={left:!1,right:!1,top:!1,bottom:!1};r+s>window.innerWidth&&(c.right=!0),0>r-s&&(c.left=!0),i+l>window.innerHeight&&(c.bottom=!0),0>i-l&&(c.top=!0),t(),a(o),n(c)};function le(t){const{tooltipContent:r,tooltipContentArgs:i}=t,[s,l]=a(null),[c,d]=a(null),[p,m]=a(null),[u,y]=a(null),h=n(e=>{y(e),se({tooltipRef:e,tooltipContentArgs:i,changeTooltipContentArgsCurrent:m,changeTooltipContainerInitialDimensions:d,changeCollision:l})},[]);o(()=>{l(null),d(null)},[JSON.stringify(i)]),o(()=>{u&&!s&&se({tooltipRef:u,tooltipContentArgs:i,changeTooltipContentArgsCurrent:m,changeTooltipContainerInitialDimensions:d,changeCollision:l})},[u,s]);const g={overflow:"hidden",opacity:s&&p===i?1:0},f=s?["tooltip-container","tooltip-collision-evaluated",s&&s.top&&"collision-top",s&&s.bottom&&"collision-bottom",s&&s.right&&"collision-right",s&&s.left&&"collision-left"].filter(e=>e).join(" "):"tooltip-container",x={offset:{x:0,y:0},tooltipContainerInitialDimensions:c};return e.createElement("div",{ref:h,style:g,className:f,"data-testid":"TooltipPositioner"},r(Object.assign(Object.assign({},i),{tooltipContainerAttributes:x})))}const ce=(e,t)=>{const a=e(t);return a&&a.toString&&""+a||a};function de(e,t,a,n){const o=(n-90)*Math.PI/180;return{x:e+a*Math.cos(o),y:t+a*Math.sin(o)}}function pe({column:t}){return e.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},e.createElement("p",{key:"or-annotation-1"},t.name),e.createElement("p",{key:"or-annotation-2"},(100*t.pct).toFixed(0)+"%"))}const me=({d:e,projectedColumns:t,oAccessor:a,summaryType:n,type:o,projection:r,adjustedPosition:i,adjustedSize:s})=>{const l="object"==typeof e.column?e.column:t[e.facetColumn]||t[ne(a,e)];if(!l)return{coordinates:[0,0],pieces:void 0,column:void 0};const c=l.pieceData||l.pieces,d=n.type&&"none"!==n.type||["swarm","point","clusterbar","timeline"].find(e=>e===o.type)?y(c.map(e=>e.scaledValue)):"horizontal"===r?y(c.map(e=>0>e.value?e.bottom:e.scaledValue+e.bottom)):h(c.map(e=>0>e.value?e.bottom:e.bottom-e.scaledValue));let p=l.middle+i[0],m=n.type&&"none"!==n.type||["swarm","point","clusterbar","timeline"].find(e=>e===o.type)?s[1]-d:d;if(m+=10,"horizontal"===r)m=l.middle,p=d+i[0];else if("radial"===r){const{pieArc:e}=l,{translate:t,outerPoint:a,centroid:n}=e;p=(n[0]+a[0])/2+t[0],m=(n[1]+a[1])/2+t[1]}return{coordinates:[p,m],pieces:c,column:l}},ue=(e,t,a)=>{const n=e(a),o=""===n&&a.rName?a.rName:n,r=t&&t.pieceData.filter(t=>t.rName===o||e(t.data)===o);if(""===o||void 0===r||!1===r||1!==r.length)return a;const i=r[0];return i&&["type","label","note","connector","disabled","color","subject"].forEach(e=>{a[e]&&(i[e]=a[e])}),i},ye=({p:e,adjustedSize:t,rScale:a,oColumn:n,rAccessor:o,idPiece:r,projection:i,rScaleType:s})=>{const l=ne(o,e)||e.value,c=Array.isArray(l)?Math.max(...l):l;let d;if(d=n?n.middle:0,n&&"radial"===i)return te([t[0]/2,t[1]/2],n.pct_middle,r&&(void 0===r.x?r.scaledValue:r.x)?r.x/2||(r.bottom+r.scaledValue/2)/2:c/2);if("horizontal"===i)return[r&&r.scaledEndValue?r.scaledEndValue:r&&r.scaledValue?0>r.value?r.bottom:r.bottom+r.scaledValue:a(c),d];const p=s.copy().domain(a.domain()).range(a.range().reverse());return[d,r&&(void 0===r.x?r.scaledValue:r.x)?void 0===r.y?0>r.value?r.bottom:r.bottom-r.scaledValue:r.y:p(c)]},he=(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 ge={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 fe(e,t,a,n){let o;return o="function"==typeof a?a(e):(0,ge[a])(n(e,t)),o}function xe(t){const{legendGroups:a,customClickBehavior:n,title:o="Legend",width:r=100,height:i=20,orientation:s="vertical"}=t,l="vertical"===s?(({legendGroups:t,width:a,customClickBehavior:n})=>{let o=30;const r=[];return t.forEach((t,i)=>{o+=5,r.push(e.createElement("line",{key:"legend-top-line legend-symbol-"+i,stroke:"gray",x1:0,y1:o,x2:a,y2:o})),o+=10,t.label&&(o+=20,r.push(e.createElement("text",{key:"legend-text-"+i,y:o,className:"legend-group-label"},t.label)),o+=10),r.push(e.createElement("g",{key:"legend-group-"+i,className:"legend-item",transform:`translate(0,${o})`},((t,a)=>{const{type:n="fill",styleFn:o,items:r}=t,i=[];let s=0;return r.forEach((t,r)=>{const l=fe(t,r,n,o);i.push(e.createElement("g",{key:"legend-item-"+r,transform:`translate(0,${s})`,onClick:a?()=>a(t):void 0,style:{cursor:a?"pointer":"default"}},l,e.createElement("text",{y:15,x:30},t.label))),s+=25}),i})(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 i=[],s=!1===a?10:40;return t.forEach((a,l)=>{a.label&&(i.push(e.createElement("text",{key:"legend-text-"+l,transform:`translate(${r},${s}) 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,i=[];let s=0;return r.forEach((t,r)=>{const l=fe(t,r,n,o);i.push(e.createElement("g",{key:"legend-item-"+r,transform:`translate(${s},0)`,onClick:a?()=>a(t):void 0,style:{cursor:a?"pointer":"default"}},l,e.createElement("text",{y:15,x:25},t.label))),s+=35,s+=8*t.label.length}),{items:i,offset:s}})(a,o);i.push(e.createElement("g",{key:"legend-group-"+l,className:"legend-item",transform:`translate(${r},${s})`},c.items)),r+=c.offset+5,t[l+1]&&i.push(e.createElement("line",{key:"legend-top-line legend-symbol-"+l,stroke:"gray",x1:r,y1:s-10,x2:r,y2:n+s+10})),r+=15}),e.createElement("g",null,!1!==a&&e.createElement("line",{x1:0,x2:r+10,y1:s-10,y2:s-10,stroke:"gray",className:"title-neatline"}),i)})({legendGroups:a,title:o,height:i,customClickBehavior:n});return e.createElement("g",null,void 0!==o&&e.createElement("text",{className:"legend-title",y:20,x:"horizontal"===s?0:r/2,textAnchor:"horizontal"===s?"start":"middle"},o),l)}let[ve,be]=function(t){let n=r(null);return[function({children:a}){let o=i(()=>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(n.Provider,{value:o,children:a})},e=>{let t=s(n);return function(e,t){const[n,o]=a(t);return l(()=>e(()=>o(t)),[e]),n}(null==t?void 0:t.subscribe,()=>e(t.getState()))}]}(e=>({tooltip:null,changeTooltip(t){e(()=>({tooltip:t}))}}));function ke(e,t,a){return"number"==typeof a?a:t&&t.find(t=>t.props.orient===e)?50:10}const je=(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 Oe(e,a=8,n){const{noteWidth:o=n}=e;let r=o;"number"==typeof o&&(r=()=>o);const i=e.note&&e.note.wrap||120,s=e.note.label||e.note.label||"";return o&&r(e)||(t.isValidElement(e.note)?100:Math.min(i,s.length*a))}function Se(e,a=8,n=20,o){const{noteHeight:r=o}=e;let i=r;"number"==typeof r&&(i=()=>r);const s=e.note&&e.note.wrap||120,l=e.note.label||e.note.title||"";return r&&i(e)||(t.isValidElement(e.note)?30:Math.ceil(l.length*a/s)*n+(e.note.label&&e.note.title?n:0))}const Me=(e,t)=>t.map((t,a)=>e.svgAnnotationRule(t,a,e)).filter(e=>null!=e),Ae=(t,a)=>{let n=a.adjustedAnnotations,o=a.adjustedAnnotationsKey,r=a.adjustableAnnotations,i=a.fixedAnnotations,s=[],l=[];const c=a.adjustedAnnotationsKey,d=a.adjustedAnnotationsDataVersion,{annotations:p,annotationHandling:m=!1,size:u,svgAnnotationRule:y,htmlAnnotationRule:h}=t,g="object"==typeof m?m:{layout:{type:m},dataVersion:""},{dataVersion:f=""}=g;if(y){const a=Me(t,p);o=je(a,g,u),!1===m&&(n=r),n=n.length!==r.length||c!==o||d!==f?((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:i}=o;let{margin:s={top:0,bottom:0,left:0,right:0}}=n;const{size:l,axes:c=[]}=n;if(s="number"==typeof s?{top:s,left:s,right:s,bottom:s}:s,"bump"===o.type)return function(e,t,a,n,o){const{padding:r=1,characterWidth:i=8,lineHeight:s=20,iterations:l=500,pointSizeFunction:c=n,labelSizeFunction:d=o||he}=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,i,s,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})),u=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=>{}},i=!1;const s=function(e){let n=t.length,o=0,r=t[e].x-a[e].x,i=a[e].y-t[e].y,s=Math.sqrt(r*r+i*i);s>0&&(o+=.2*s),r/=s,i/=s,o+=r>0&&i>0?0:0>r&&i>0?3:0>r&&0>i?6:9;let l,c,p,m,u,y,h,g=t[e].x,f=t[e].y-t[e].height+2,x=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,u=Math.max(0,Math.min(c,x)-Math.max(l,g)),y=Math.max(0,Math.min(m,v)-Math.max(p,f)),h=u*y,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,u=Math.max(0,Math.min(c,x)-Math.max(l,g)),y=Math.max(0,Math.min(m,v)-Math.max(p,f)),h=u*y,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=i?e(d,t,a):s(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=i?e(d,t,a):s(d);let u=c-l;Math.random()<Math.exp(-u/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=i?e(c,t,a):s(c);let m=.5*(Math.random()-.5),u=Math.sin(m),y=Math.cos(m);t[c].x-=a[c].x,t[c].y-=a[c].y;let h,g=t[c].x*u+t[c].y*y;t[c].x=t[c].x*y-t[c].y*u+a[c].x,t[c].y=g+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=i?e(c,t,a):s(c);let f=h-l;Math.random()<Math.exp(-f/r)||(t[c].x=d,t[c].y=p)},d=function(e,t,a,n,o,r,i,s){let l,c,d,p,m;return d=(s-i)*(t-e)-(n-a)*(r-o),p=(n-a)*(o-i)-(s-i)*(e-a),m=(t-e)*(o-i)-(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,i=!0,r):s},r.alt_schedule=function(e){return arguments.length?r:p},r}();return u.label(p),u.anchor(m),u.width(a[0]),u.height(a[1]),u.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:p=20,padding:m=2,axisMarginOverride:u={}}=o,y="nearest"===n?["left","right","top","bottom"]:Array.isArray(n)?n:[n],h=y.find(e=>"left"===e),g=y.find(e=>"right"===e),f=y.find(e=>"top"===e),x=y.find(e=>"bottom"===e),v=[],b=[],k=[],j=[];for(const e of t){const t=e.props.noteData,a=t.x[0]||t.x,n=t.y[0]||t.y,o=h?a:1/0,r=g?l[0]-a:1/0,i=f?n:1/0,s=Math.min(o,r,i,x?l[1]-n:1/0);o===s?v.push(e):r===s?b.push(e):i===s?k.push(e):j.push(e)}const E=new D.Force({minPos:void 0!==u.top?0+u.top:0-s.top,maxPos:void 0!==u.bottom?l[1]-u.bottom:x?l[1]:l[1]+s.bottom}).nodes(v.map(e=>new D.Node(e.props.noteData.y[0]||e.props.noteData.y,Se(e.props.noteData,d,p,r)+m))).compute(),O=new D.Force({minPos:void 0!==u.top?0+u.top:f?0:0-s.top,maxPos:void 0!==u.bottom?l[1]-u.bottom:l[1]+s.bottom}).nodes(b.map(e=>new D.Node(e.props.noteData.y[0]||e.props.noteData.y,Se(e.props.noteData,d,p,r)+m))).compute(),S=new D.Force({minPos:void 0!==u.left?0+u.left:h?0:0-s.left,maxPos:void 0!==u.right?l[0]-u.right:l[0]+s.right}).nodes(k.map(e=>new D.Node(e.props.noteData.x[0]||e.props.noteData.x,Oe(e.props.noteData,d,i)+m))).compute(),M=new D.Force({minPos:void 0!==u.left?0+u.left:0-s.left,maxPos:void 0!==u.right?l[0]-u.right:g?l[0]:l[0]+s.right}).nodes(j.map(e=>new D.Node(e.props.noteData.x[0]||e.props.noteData.x,Oe(e.props.noteData,d,i)+m))).compute(),A=Math.max(...j.map(e=>Se(e.props.noteData,d,p,r)+m)),$=Math.max(...k.map(e=>Se(e.props.noteData,d,p,r)+m)),P=Math.max(...v.map(e=>Oe(e.props.noteData,d,i)+m)),C=Math.max(...b.map(e=>Oe(e.props.noteData,d,i)+m)),z=E.nodes(),w=O.nodes(),T=S.nodes(),N=M.nodes();return v.forEach((t,n)=>{const o=0-z[n].layerIndex*P-ke("left",c,a),r=z[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")}),b.forEach((t,n)=>{const o=l[0]+w[n].layerIndex*C+ke("right",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||"left")}),k.forEach((e,t)=>{const n=T[t].currentPos,o=0-T[t].layerIndex*$-ke("top",c,a);e.props.noteData.nx=n,e.props.noteData.ny=o}),j.forEach((e,t)=>{const n=N[t].currentPos,o=l[1]+N[t].layerIndex*A+ke("bottom",c,a);e.props.noteData.nx=n,e.props.noteData.ny=o}),t}return t})(r,g,t):r.map((t,a)=>{const o=Object.assign(Object.assign({},n[a].props.noteData),t.props.noteData);return e.createElement(ee,{key:t.key,noteData:o})}),s=[...n,...i]}return h&&(l=((e,t)=>t.map((t,a)=>e.htmlAnnotationRule(t,a,e)).filter(e=>null!=e))(t,p)),{svgAnnotations:s,htmlAnnotations:l,adjustedAnnotations:n,adjustedAnnotationsKey:o,adjustedAnnotationsDataVersion:f}};function $e(t){const{legendSettings:n,margin:r,size:i,annotations:s,annotationHandling:l}=t,c=be(e=>e.tooltip);let d=null!=c?s.concat(c):s,p=be(e=>e.changeTooltip);const m=Object.assign(Object.assign({},t),{annotations:d,voronoiHover:e=>{p(e)}}),u="object"==typeof l?l:{layout:{type:l},dataVersion:""},{dataVersion:y=""}=u,[h,g]=a([]),[f,x]=a([]),[v,b]=a([]),[k,j]=a(""),[E,O]=a(y),S=Me(m,d),M=S.filter(e=>e.props&&e.props.noteData&&!e.props.noteData.fixedPosition),A=je(M,u,i);let $;if(o(()=>{const e=S.filter(e=>!e.props||!e.props.noteData||e.props.noteData.fixedPosition),t=Ae(m,{adjustedAnnotations:h,adjustedAnnotationsKey:k,adjustedAnnotationsDataVersion:E,adjustableAnnotations:M,fixedAnnotations:e});g(t.adjustedAnnotations),j(t.adjustedAnnotationsKey),O(t.adjustedAnnotationsDataVersion),x(t.svgAnnotations),b(t.htmlAnnotations)},[A,y,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("-")]),n){const t={left:[15,15],right:[i[0]+15,15]},{position:a="right",title:o="Legend"}=n;$=e.createElement("g",{transform:`translate(${t[a].join(",")})`},e.createElement(xe,Object.assign({},n,{title:o,position:a})))}return 0!==d.length||n?e.createElement("div",{className:"annotation-layer",style:{position:"absolute",pointerEvents:"none",background:"none"}},e.createElement("svg",{className:"annotation-layer-svg",height:i[1],width:i[0],style:{background:"none",pointerEvents:"none",position:"absolute",left:r.left+"px",top:r.top+"px",overflow:"visible"}},e.createElement("g",null,$,f)),e.createElement("div",{className:"annotation-layer-html",style:{background:"none",pointerEvents:"none",position:"absolute",height:i[1]+"px",width:i[0]+"px",left:r.left+"px",top:r.top+"px"}},v)):null}const Pe=e=>e.reduce((e,t)=>e.concat(Array.isArray(t)?Pe(t.slice().sort((e,t)=>e-t)):t),[]);function Ce(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)),""+Pe(t).map(e=>e instanceof Date&&""+e||void 0!==e&&e.toFixed&&e.toFixed(2)||"empty")}function ze(t){const{extent:a,selectedExtent:n}=t,r=c(null),i=Ce(a),s=Ce(n);o(()=>{(null==r?void 0:r.current)&&((e,t)=>{const{svgBrush:a,selectedExtent:n}=t;if(R(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]]]}R(e).call(a.move,t)}})(r.current,t)},[i,s,r]);const{position:l=[0,0]}=t;return e.createElement("g",{transform:`translate(${l})`,ref:r,className:"xybrush"})}const we="x",De="y",Te="yMiddle",Ne="yTop",Fe="yBottom",Re="xMiddle",Ve="xTop",Le="xBottom",Be=(e,t)=>void 0===e?e:Object.assign(e&&e.data?Object.assign({points:t},e.data):{points:t},e),Ie=(e,t,a,n,o,r)=>{const i=Be(t,o);if(n&&n(i),t){if(!0===a){const t=Object.assign({},i);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(i):e;if(t)return Object.assign({},i,t)}).filter(e=>e);e(t,r)}}else e(null)},_e=(e,t,a,n)=>{const o=Be(e,a);t&&t(o,n)},Ge=(e,t,a,n)=>{const o=Be(e,a);t&&t(o,n)},We=(e,t,a,n,o)=>{o&&o.start&&o.start(e,t,a,n)},He=(e,t,a,n,o)=>{o&&o.during&&o.during(e,t,a,n)},Ke=(e,t,a,n,o)=>{o&&o.end&&o.end(e,t,a,n)},Ye=()=>({}),Xe=2*Math.PI,qe=({x1:e,x2:t,y1:a,y2:n,sizeX1:o,sizeY1:r,sizeX2:i,sizeY2:s})=>`M${e},${a}L${t},${n}L${t+i},${n+s}L${e+o},${a+r}Z`,Ze=({xy:t,orient:a,i:n,className:o="",jaggedBase:r})=>{let i=`M${t.x1},${t.y1}L${t.x2},${t.y2}`;return r&&0===n&&(i=((e,t)=>{let a="";const{x1:n,x2:o,y1:r,y2:i}=t;if("left"===e||"right"===e){const t=Math.abs(o-n);a=((e,t,a,n)=>{const o=e/t;let r=0,i="M0,"+a;const s="right"===n?-1:1;for(;e>=r;)i+=`L${r},${a}`,e>r&&(i+=`L${r+o/2},${a+10*s}`),r+=o;return i})(t,Math.ceil(t/40),"right"===e?0:r,e)}else{const t=Math.abs(i-r);a=((e,t,a,n)=>{const o=e/t;let r=0,i=`M${a},0`;const s="bottom"===n?-1:1;for(;e>=r;)i+=`L${a},${r}`,e>r&&(i+=`L${a+10*s},${r+o/2}`),r+=o;return i})(t,Math.ceil(t/40),n,e)}return a})(a,t)),e.createElement("path",{key:n,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:i,className:`tick-line tick ${a} ${o}`})};function Qe(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 Ue({renderMode:e=()=>{},padding:t=5,scale:a,ticks:n,tickValues:o=Qe(void 0,n,a),orient:r="left",size:i,footer:s=!1,tickSize:l=(s?-10:["top","bottom"].find(e=>e===r)?i?i[1]:0:i?i[0]:0),jaggedBase:c}){let d,p,m,u,y,h,g=[],f=0,x=0,v="middle";switch(r){case"top":d="x1",p="x2",m="y1",u="y2",g=[0,l],y="tx",h="ty",f-=20-t;break;case"bottom":d="x1",p="x2",m="y2",u="y1",g=i?[i[1],i[1]-l]:[0,-l],y="tx",h="ty",f+=20+t;break;case"right":d="y2",p="y1",m="x2",u="x1",g=i?[i[0],i[0]-l]:[0,-l],y="ty",h="tx",f+=5+t,x+=5,v="start";break;default:d="y1",p="y2",m="x1",u="x2",g=[0,l],y="ty",h="tx",f-=5+t,x+=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]:g[0],[u]:g[1],[y]:o+x,[h]:g[0]+f,defaultAnchor:v,renderMode:e(t,n),value:t}})}const Je=({axisParts:t,orient:a,tickLineGenerator:n=Ze,className:o,jaggedBase:r,scale:i,showOutboundTickLines:s=!1})=>{const l=t.map((e,t)=>n({xy:e,orient:a,i:t,className:o,jaggedBase:r,scale:i})),c=s?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 et({t:e,o:t,w:a}){return"contour"!==e&&"boxplot"!==e||"left"!==t&&"right"!==t?0:a/2}function tt({t:e,o:t,w:a}){return"contour"!==e&&"boxplot"!==e||"top"!==t&&"bottom"!==t?0:a/2}function at(e){const{translation:a,orient:n,decoratedSummaryType:o,summaryWidth:r,renderedSummary:i,points:s}=e;return t.createElement("g",{className:"marginal-graphics",transform:`translate(${a[n]})`},t.createElement("g",{transform:`translate(${et({t:o.type,o:n,w:r})},${tt({t:o.type,o:n,w:r})})`},i),s)}function nt(e){const{className:a,translation:n,position:o,rotation:r,labelName:i,anchorMod:s}=e;return t.createElement("g",{className:"axis-title "+a,transform:`translate(${[n[0]+o[0],n[1]+o[1]]}) rotate(${r})`},t.isValidElement(i)?i:t.createElement("text",{textAnchor:s},i))}const ot=()=>({});function rt(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 it(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 st(e,t,a,n,o,r,i){if(t>=e){var s=Math.floor((e+t)/2);n[a][s]=n[a-1][s-1],o[a][s]=s;var l=a;e>a&&(l=Math.max(l,o[a][e-1]||0)),l=Math.max(l,o[a-1][s]||0);var c,d,p,m,u=s-1;n[0].length-1>t&&(u=Math.min(u,o[a][t+1]||0));for(var y=u;y>=l&&(c=it(y,s,r,i))+n[a-1][l-1]<n[a][s];--y)d=it(l,s,r,i),n[a][s]>(p=d+n[a-1][l-1])&&(n[a][s]=p,o[a][s]=l),l++,n[a][s]>(m=c+n[a-1][y-1])&&(n[a][s]=m,o[a][s]=y);st(e,s-1,a,n,o,r,i),st(s+1,t,a,n,o,r,i)}}const lt=e=>[e.xy.x,e.xy.y],ct=(e,t)=>e.xy.y-t.xy.y,dt=(e,t)=>t.xy.x-e.xy.x,pt=()=>({});function mt({summary:t,summaryI:a,axisSettings:n,axisCreator:o,projection:r,actualMax:i,adjustedSize:s,columnWidth:l}){let c=`translate(${t.x},0)`,p=[0,i];"horizontal"===r?(c=`translate(0,${t.x})`,p=[i,0]):"radial"===r&&(c="translate(0, 0)"),n.size=["horizontal"===r?s[0]:l,"vertical"===r?s[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 ut({data:e,type:t,eventListenersGenerator:a,styleFn:n,classFn:o,projection:r,adjustedSize:i,chartSize:s,axisCreator:l}){const c=[],d=[],p=t.bins||25,m=!!t.relative&&{},u=t.binValue||(e=>e.length),h=t.elementStyleFn||pt;let g;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,g=l,"radial"===r&&(console.error("Summary axes cannot be drawn for radial histograms"),g=()=>null));let b=s/p;const k=Object.keys(e);let j=0;const E=v(),M=[0,s],A=[];for(let e=0;p>e;e++)A.push(M[0]+e/p*s);const $="vertical"===r?e=>e.piece.scaledVerticalValue:e=>e.piece.scaledValue,P=E.domain(M).thresholds(A).value($),D=k.map((a,n)=>{const o=e[a],i=o.xyData,l=i.sort("vertical"===r?ct:dt);let c;if(!1===t.useBins){const e=l.map(e=>$(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),b=s/c.length}else c=P(l);c=c.map(e=>({y:e.x0,y1:e.x1-e.x0,pieces:e,value:u(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:y(c.map(e=>e.value));return m&&(m[a]=d),j=Math.max(j,d),{bins:c,summary:o,summaryI:n,thisSummaryData:i}}),T=t.horizon?j/t.horizon:t.numHorizons||4,N=t.horizon||j/T;return D.forEach(({bins:e,summary:s,summaryI:l,thisSummaryData:p})=>{const v=a(s,l),k=s.width;let E=p[0]?n(p[0].piece.data,l):{},M=p[0]?o(p[0].piece.data,l):"",A=[s.middle,0];"horizontal"===r?A=[b,s.middle]:"radial"===r&&(A=[i[0]/2,i[1]/2]);const $=m&&m[s.name]||j;if("heatmap"===t.type||"histogram"===t.type){const a=(({bins:e,binMax:t,relativeBuckets:a,columnWidth:n,projection:o,adjustedSize:r,summaryI:i,summary:s,summaryStyle:l,type:c})=>{const d=[],p=[],m=a&&a[s.name]||t,u=c.elementStyleFn||Ye,y=c.padding||0;return e.forEach((e,t)=>{const a=e.value/m,h=u(e.value,a,e.pieces),g=Object.assign("heatmap"===c.type?{opacity:a,fill:l.fill}:Object.assign({},l),h),f=Math.max(1,e.y1-2*y),x="heatmap"===c.type?n:n*a;let v=e.y+y,b="heatmap"===c.type||c.flip?-n/2:n/2-x,k=f,j=x,E="heatmap"===c.type?x/2:x,O=e.y1/2;if("horizontal"===o)v="heatmap"===c.type||c.flip?-n/2:n/2-x,b=e.y-e.y1+y,k=x,j=f,O="heatmap"===c.type?x/2:x,E=e.y1/2;else if("radial"===o){const n=z().innerRadius(e.y/2).outerRadius((e.y+e.y1)/2),o=s.pct-s.pct_padding;let l=s.pct_middle-s.pct_padding,m="heatmap"===c.type?l+o:l+o*a;l*=Xe,m*=Xe;const u=r[0]/2,y=r[1]/2,h=`translate(${u},${y})`,f=n.centroid({startAngle:l,endAngle:m});p.push({key:s.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:f[0]+u,y:f[1]+y}),d.push({markType:"path",transform:h,key:`groupIcon-${i}-${t}`,d:n({startAngle:l,endAngle:m}),style:g})}"radial"!==o&&(p.push({key:s.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:b+E,y:v+O}),d.push({markType:"rect",key:`groupIcon-${i}-${t}`,x:b,y:v,height:k,width:j,style:g}))}),{marks:d,points:p}})({bins:e,binMax:j,relativeBuckets:m,columnWidth:k,projection:r,adjustedSize:i,summaryI:l,summary:s,summaryStyle:E,type:t}),n=a.marks;"radial"===r&&(A=[0,0]),t.axis&&"histogram"===t.type&&c.push({type:"svg-only-mark",Mark:mt({summary:s,summaryI:l,axisSettings:t.axis,axisCreator:g,projection:r,actualMax:$,adjustedSize:i,columnWidth:k})}),a.points.forEach(e=>{e.x+=A[0],e.y+=A[1]}),d.push(...a.points),c.push({containerProps:Object.assign(Object.assign({},v),{transform:`translate(${A})`,className:M,key:"summaryPiece-"+l,role:"img",tabIndex:-1,"data-o":s.name,"aria-label":`${s.name} ${t.type}`}),elements:n})}else if("violin"===t.type){const{iqr:a}=t,i=t.subsets||[!1],m=[];e[0].y=e[0].y-b/2,e[e.length-1].y=e[e.length-1].y+b/2,i.forEach((i,c)=>{let y=e;i&&(E=p[0]?n(p[0].piece.data,l,c):{},M=p[0]?o(p[0].piece.data,l,c):"",y=e.map(e=>{const t=e.pieces.filter((e,t)=>i(e.piece,t)).map(e=>e),a=u(t);return Object.assign(Object.assign({},e),{pieces:t,value:a})}));let g=w().curve(t.curve||O),f=[];if("horizontal"===r)y.forEach(e=>{const t=e.y-b/2,a=e.value/$*k/2;f.push({x:t,y0:-a,y1:a}),d.push({key:s.name,x:t+A[0],y:a+A[1],pieces:e.pieces.map(e=>e.piece),value:e.value})}),g.x(e=>e.x).y0(e=>e.y0).y1(e=>e.y1).defined((e,t)=>0!==e.y0||f[t-1]&&0!==f[t-1].y0||f[t+1]&&0!==f[t+1].y0);else if("vertical"===r)y.forEach(e=>{const t=e.y+b/2,a=e.value/$*k/2;f.push({y:t,x0:-a,x1:a}),d.push({key:s.name,x:a+A[0],y:t+A[1],pieces:e.pieces.map(e=>e.piece),value:e.value})}),g.y(e=>e.y).x0(e=>e.x0).x1(e=>e.x1).defined((e,t)=>0!==e.x0||f[t-1]&&0!==f[t-1].x0||f[t+1]&&0!==f[t+1].x0);else if("radial"===r){const e=s.pct-s.pct_padding/2,t=s.pct_middle;f=y,g=a=>{const n=[],o=[];return a.forEach(a=>{const r=te([0,0],t+e*a.value/$/2,(a.y+a.y1-b/2)/2),i=te([0,0],t-e*a.value/$/2,(a.y+a.y1-b/2)/2);d.push({key:s.name,x:i[0]+A[0],y:i[1]+A[1],pieces:a.pieces.map(e=>e.piece),value:a.value}),d.push({key:s.name,x:r[0]+A[0],y:r[1]+A[1],pieces:a.pieces.map(e=>e.piece),value:a.value}),n.push(r),o.push(i)}),`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({},v),{transform:`translate(${A})`,key:`summaryPiece-${l}-${c}`,markType:"path",className:M,style:E,d:g(f),role:"img",tabIndex:-1,"data-o":s.name,"aria-label":s.name+" distribution"})),a){let e=[];y.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({},v),{key:`summaryPiece-${l}-${c}-iqr-line`,markType:"path",className:M,style:Object.assign(Object.assign({stroke:"black",strokeWidth:"2px"},E),h("iqr")),d:a(t[0],t[2],A),role:"img",tabIndex:-1,"data-o":s.name,"aria-label":s.name+" distribution"})),m.push(Object.assign(Object.assign({},v),{key:`summaryPiece-${l}-${c}-iqr-median`,markType:"circle",className:M,style:Object.assign(Object.assign({stroke:"black",fill:"black",strokeWidth:"1px",r:"3px"},E),h("median")),cx:"vertical"===r?A[0]:t[1],cy:"vertical"===r?t[1]:A[1],role:"img",tabIndex:-1,"data-o":s.name,"aria-label":s.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-b/2,n.y=n.y+b/2;const o=[a,...e,n];let p=[];const m=t.curve||t.interpolator,u="string"==typeof m?ie[m]:m;let y=C().curve(u||O).x(e=>e.x).y(e=>e.y);const h=t.amplitude||0;if(t.axis&&"histogram"===t.type&&c.push({type:"svg-only-mark",Mark:mt({summary:s,summaryI:l,axisSettings:Object.assign({baseline:!1},t.axis),axisCreator:g,projection:r,actualMax:$,adjustedSize:i,columnWidth:k})}),"horizontal"===r)o.forEach((e,a)=>{const n=e.y-b/2,r=t.flip?e.value/$*(k+h)-k/2:-e.value/$*(k+h)+k/2;p.push({y:r,x:n}),0!==a&&a!==o.length-1&&d.push({key:s.name,x:n+A[0],y:r+A[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("vertical"===r)o.forEach(e=>{const a=e.y+b/2,n=!0===t.flip?e.value/$*(k+h)-k/2:-e.value/$*(k+h)+k/2;p.push({y:a,x:n}),d.push({key:s.name,x:n+A[0],y:a+A[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("radial"===r){const e=s.pct-s.pct_padding/2,t=s.pct_start+s.pct_padding/2;A=[0,0],p=o,y=a=>{const n=[];return a.forEach(a=>{const o=te([i[0]/2,i[1]/2],t+e*a.value/$,(a.y+a.y1-b/2)/2);d.push({key:s.name,x:o[0]+A[0],y:o[1]+A[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:mt({summary:s,summaryI:l,axisSettings:t.axis,axisCreator:g,projection:r,actualMax:$,adjustedSize:i,columnWidth:k})}),c.push({elements:[Object.assign(Object.assign({},v),{transform:`translate(${A})`,key:"summaryPiece-"+l,markType:"path",className:M,style:E,d:y(p),role:"img",tabIndex:-1,"data-o":s.name,"aria-label":s.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-b/2,n.y=n.y+b/2;const o=[a,...e,n];let p=[],m=!0,u=0;for(;!0===m;){const e=o.map(e=>Object.assign(Object.assign({},e),{value:Math.max(0,Math.min(e.value-u,N))}));p.push(e.map(e=>Object.assign(Object.assign({},e),{value:e.value*T}))),u+=N,y(e.map(e=>e.value))<N&&(m=!1)}p=p.filter(e=>f(e,e=>e.value)>0),o.forEach((e,a)=>{0!==a&&a!==o.length-1&&("horizontal"===r?d.push({key:s.name,x:e.y-b/2+A[0],y:-e.value/$*k+k/2+A[1],pieces:e.pieces.map(e=>e.piece),value:e.value}):"vertical"===r&&d.push({key:s.name,x:(!0===t.flip?e.value/$*k-k/2:-e.value/$*k+k/2)+A[0],y:e.y+b/2+A[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?ie[o]:o;let d=C().curve(c||S).x(e=>e.x).y(e=>e.y);if("horizontal"===r)e.forEach(e=>{n.push({y:-e.value/$*k+k/2,x:e.y-b/2})});else if("vertical"===r)e.forEach(e=>{n.push({y:e.y+b/2,x:!0===t.flip?e.value/$*k-k/2:-e.value/$*k+k/2})});else if("radial"===r){const t=s.pct-s.pct_padding/2,a=s.pct_start+s.pct_padding/2;A=[0,0],n=e,d=e=>{const n=[];return e.forEach(e=>{const o=te([i[0]/2,i[1]/2],a+t*e.value/$,(e.y+e.y1-b/2)/2);n.push(o)}),`M${n.map(e=>e.join(",")).join("L")}Z`}}return Object.assign(Object.assign({},v),{transform:`translate(${A})`,key:`summaryPiece-${l}-${a}`,markType:"path",className:M,style:Object.assign(Object.assign({},E),h(e,a)),d:d(n),role:"img",tabIndex:-1,"data-o":s.name,"aria-label":s.name+" distribution"})});t.axis&&c.push({type:"svg-only-mark",Mark:mt({summary:s,summaryI:l,axisSettings:t.axis,axisCreator:g,projection:r,actualMax:$,adjustedSize:i,columnWidth:k})}),c.push({elements:x})}}),{marks:c,xyPoints:d,thresholds:A}}const yt={contour:function({data:e,type:t,eventListenersGenerator:a,styleFn:n,classFn:o,adjustedSize:r}){const i=[],s=[];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(lt)}],m=oe({summaryType:t,data:p,finalXExtent:[0,r[0]],finalYExtent:[0,r[1]]}),u=[];m.forEach((e,t)=>{e.coordinates.forEach((r,i)=>{const s=a(e,t);u.push(Object.assign(Object.assign({},s),{key:`${t}-${i}`,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`}))})}),i.push({containerProps:{key:"contour-container-"+c,role:"img",tabIndex:-1,"data-o":l,"aria-label":`${l} boxplot showing ${s.filter(e=>e.key===l).map(e=>`${e.label} ${e.value}`)}`},elements:u})}),{marks:i,xyPoints:s}},boxplot:function({data:e,type:t,eventListenersGenerator:a,styleFn:n,classFn:o,projection:r,adjustedSize:i}){const s=t.elementStyleFn||ot,{outliers:l,fixedInput:c}=t,d=[],p=[];return Object.keys(e).forEach((t,m)=>{const u=e[t],y=a(u,m),h=u.width,g=u.pieceData,f=n(g[0].data,m),v=o(g[0].data,m);let b,k,j,E,O,S,M,A,$,P,C,w,D,T,N,F,R,V,L,B,I,_,G,W,H,K,Y,X,q,Z,Q;k=g.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 U=k[3]-k[1];let J,ee;l&&(J=k[1]-1.5*U,ee=k[3]+1.5*U,k[0]=Math.max(k[0],J),k[4]=Math.min(k[4],ee));const ae="vertical"===r?e=>e.scaledVerticalValue:e=>e.scaledValue,ne=[...g].sort((e,t)=>e.value-t.value),oe=ne[0].value,re=ne[ne.length-1].value,ie=ae(ne[0]),se=ae(ne[ne.length-1]);if(b=k.map(e=>re===oe?(ie+se)/2:ie+(e-oe)/(re-oe)*(se-ie)),"vertical"===r){j=`translate(${u.x+u.width/2},0)`,E=0,O=0,S=b[0],M=b[4],A=-h/2,$=h/2,P=-h/2,C=h/2,w=-h/2,D=h/2,V=h,L=b[1]-b[2],B=b[2],I=-h/2,T=h,N=b[2]-b[3],_=h,G=b[1]-b[3],W=b[3],H=-h/2,F=b[3],R=-h/2,K=b[0],Y=b[0],X=b[4],q=b[4],Z=b[2],Q=b[2];const e=u.x+u.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=u.x+u.width/2;j=`translate(0,${e})`,S=0,M=0,E=b[0],O=b[4],K=-h/2,Y=h/2,Z=-h/2,Q=h/2,X=-h/2,q=h/2,N=h,T=b[3]-b[2],R=b[2],F=-h/2,L=h,V=b[2]-b[1],I=b[1],B=-h/2,G=h,_=b[3]-b[1],H=b[1],W=-h/2,A=b[0],$=b[0],w=b[4],D=b[4],P=b[2],C=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){E=0,O=0,S=b[0],M=b[4],A=-h/2,$=h/2,P=-h/2,C=h/2,w=-h/2,D=h/2,T=h,N=b[1]-b[3],F=b[3],R=-h/2,V=h,L=b[1]-b[3],B=b[3],I=-h/2,K=b[0],Y=b[0],X=b[4],q=b[4],Z=b[2],Q=b[2];const e=2*Math.PI,a=z().innerRadius(X/2).outerRadius(X/2),n=z().innerRadius(K/2).outerRadius(K/2),o=z().innerRadius(Z/2).outerRadius(Z/2),r=z().innerRadius(b[1]/2).outerRadius(Z/2),l=z().innerRadius(Z/2).outerRadius(b[3]/2),c=z().innerRadius(b[1]/2).outerRadius(b[3]/2);let x=u.pct_start+u.pct_padding/2,_=u.pct+u.pct_start-u.pct_padding/2;const G=u.pct/2+u.pct_start;x*=e,_*=e;const W=i[0]/2,H=i[1]/2,U=te([0,0],G,b[4]/2),J=te([0,0],G,b[0]/2),ee=te([0,0],G,b[3]/2),ae=te([0,0],G,b[2]/2),ne=te([0,0],G,b[1]/2);p.push({label:"Minimum",key:t,summaryPieceName:"min",x:J[0]+W,y:J[1]+H,value:k[0]},{label:"1st Quartile",key:t,summaryPieceName:"q3area",x:ne[0]+W,y:ne[1]+H,value:k[1]},{label:"Median",key:t,summaryPieceName:"median",x:ae[0]+W,y:ae[1]+H,value:k[2]},{label:"3rd Quartile",key:t,summaryPieceName:"q1area",x:ee[0]+W,y:ee[1]+H,value:k[3]},{label:"Maximum",key:t,summaryPieceName:"max",x:U[0]+W,y:U[1]+H,value:k[4]}),j=`translate(${W},${H})`,d.push({containerProps:Object.assign(Object.assign({},y),{className:v,transform:j,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:U[0],x2:J[0],y1:U[1],y2:J[1],style:Object.assign({strokeWidth:2},f,s("whisker",g))},{markType:"path",d:n({startAngle:x,endAngle:_}),style:Object.assign({strokeWidth:4},f,{fill:"none"},s("max",g))},{markType:"path",d:o({startAngle:x,endAngle:_}),style:Object.assign({strokeWidth:4},f,{fill:"none"},s("median",g))},{markType:"path",d:a({startAngle:x,endAngle:_}),style:Object.assign({strokeWidth:4},f,{fill:"none"},s("min",g))},{markType:"path",d:c({startAngle:x,endAngle:_}),style:Object.assign({strokeWidth:4},f,s("iqrarea",g))},{markType:"path",d:r({startAngle:x,endAngle:_}),style:Object.assign({},f,{fill:"none",stroke:"none"},s("q3area",g))},{markType:"path",d:l({startAngle:x,endAngle:_}),style:Object.assign({},f,{fill:"none",stroke:"none"},s("q1area",g))}]})}else{const e=[{markType:"line",x1:E,x2:O,y1:S,y2:M,style:Object.assign({strokeWidth:2},f,s("whisker",g))},{markType:"line",x1:A,x2:$,y1:K,y2:Y,style:Object.assign({strokeWidth:2},f,s("min",g))},{markType:"line",x1:w,x2:D,y1:X,y2:q,style:Object.assign({strokeWidth:2},f,s("max",g))},{markType:"rect",x:H,width:_,y:W,height:G,style:Object.assign({strokeWidth:1},f,s("iqrarea",g))},{markType:"rect",x:R,width:T,y:F,height:N,style:Object.assign({},f,{fill:"none",stroke:"none"},s("q3area",g))},{markType:"rect",x:I,width:V,y:B,height:L,style:Object.assign({},f,{fill:"none",stroke:"none"},s("q1area",g))},{markType:"line",x1:P,x2:C,y1:Z,y2:Q,style:Object.assign({strokeWidth:2},f,s("median",g))}],a=[];l&&g.filter(e=>e.value>ee||J>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},f,s("outlier",g))})}),d.push({containerProps:Object.assign(Object.assign({},y),{className:v,transform:j,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:ut,heatmap:ut,ridgeline:ut,histogram:ut,horizon:ut,ckbins:function(e){const{data:t,eventListenersGenerator:a,styleFn:n,classFn:o}=e,r=[];let i=0;const s=[];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],u=d().domain([p.value,m.value]).range([p.scaledValue,m.scaledValue]),y=n(c[0].data,r),h=o(c[0].data,r),g=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=rt(t=Math.min(o,t),a),i=rt(t,a);!function(e,t,a){for(var n=t[0].length,o=Array(n),r=Array(n),i=e[Math.floor(n/2)],s=0;n>s;++s)0===s?(o[0]=e[0]-i,r[0]=(e[0]-i)*(e[0]-i)):(o[s]=o[s-1]+e[s]-i,r[s]=r[s-1]+(e[s]-i)*(e[s]-i)),t[0][s]=it(0,s,o,r),a[0][s]=0;for(var l=1;t.length>l;++l)st(t.length-1>l?l:n-1,n-1,l,t,a,o,r)}(n,r,i);for(var s=[],l=i[0].length-1,c=i.length-1;c>=0;c--){var d=i[c][l];s[c]=n[d],c>0&&(l=d-1)}return s}(c.map(e=>e.value),5);let f=[];g.forEach((t,a)=>{var n;const o=null!==(n=g[a+1])&&void 0!==n?n:m.value;f.push({start:t,end:o,key:e,summary:l,calculatedSummaryStyle:y,calculatedSummaryClass:h,scaledStart:u(t),scaledEnd:u(o),values:[]})}),s.push(f);let x=0;for(const e of c)f[x].end>e.value||f[x+1]&&x++,f[x].values.push(e);f.forEach(e=>{i=Math.max(e.values.length,i)})}),s.forEach((e,t)=>{const a=e.map(e=>{const{calculatedSummaryStyle:t}=e,{fill:a="black",stroke:n="black"}=t,o=d().domain([1,i]).range(["white",a]);return{markType:"rect",x:e.scaledStart,width:e.scaledEnd-e.scaledStart,y:e.summary.x,height:e.summary.width,style:Object.assign({strokeWidth:2},t,{fill:o(e.values.length),strokeWidth:1,stroke:n})}});r.push({containerProps:{transform:"",key:"summaryPiece-"+t,role:"img",tabIndex:-1},elements:a})}),{marks:r,xyPoints:[]}}},ht=({data:e,type:t,renderMode:a,eventListenersGenerator:n,styleFn:o,classFn:r,projection:i,adjustedSize:s,margin:l,axisCreator:c})=>{if(t&&t.type)return function({data:e,type:t,renderMode:a,eventListenersGenerator:n,styleFn:o,classFn:r,projection:i,adjustedSize:s,chartSize:l,margin:c,axisCreator:d}){let p;if("function"==typeof t.type)p=t.type;else{if(!yt[t.type])return console.error(`Invalid summary type: ${t.type} - Must be a function or one of the following strings: ${Object.keys(yt).join(", ")}`),{};p=yt[t.type]}return p({data:e,type:t,renderMode:a,eventListenersGenerator:n,styleFn:o,classFn:r,projection:i,adjustedSize:s,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:i,adjustedSize:s,chartSize:"vertical"===i?s[1]:s[0],margin:l,axisCreator:c})};function gt(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:i={}}=n,s=Z(n,["markType","style"]),l=Object.assign({},s);void 0!==i.fill&&(l.fill=i.fill),void 0!==i.stroke&&(l.stroke=i.stroke),void 0!==i.strokeWidth&&(l.strokeWidth=i.strokeWidth),void 0!==i.opacity&&(l.opacity=i.opacity),void 0!==i.fillOpacity&&(l.fillOpacity=i.fillOpacity),void 0!==i.strokeOpacity&&(l.strokeOpacity=i.strokeOpacity);const c=Object.assign({},i);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}const ft=({data:e,canvasRender:t,canvasDrawing:a})=>{var n;if(t())for(const t of e)if("svg-only-mark"!==t.type){const{transform:e="translate(0,0)"}=null!==(n=null==t?void 0:t.containerProps)&&void 0!==n?n:{transform:"translate(0,0)"},[o,r]=e.replace("translate(","").replace(")","").split(",");for(const e of t.elements){const{transform:t="translate(0,0)"}=e,[n,i]=t.replace("translate(","").replace(")","").split(",");a.push({baseClass:"frame-piece",tx:parseInt(n)+parseInt(o),ty:parseInt(i)+parseInt(r),d:{},i:0,markProps:e,styleFn:()=>e.style,renderFn:e.renderMode,classFn:()=>""})}}return gt(e.filter(e=>!t()||"svg-only-mark"===e.type))};function xt(t){const{rotate:n,label:r,dynamicLabelPosition:i,orient:s="left",marginalSummaryType:l,tickFormat:d=(l?()=>"":e=>e),size:p,width:m=p&&p[0]||0,height:u=p&&p[1]||0,className:y,padding:h,tickValues:g,scale:f,ticks:x,footer:v,tickSize:b,tickLineGenerator:k,baseline:j=!0,margin:E={top:0,bottom:0,left:0,right:0},center:O=!1,annotationFunction:S,glyphFunction:M,xyPoints:A}=t,[$,P]=a(0),[C,z]=a(void 0),w=c(null);o(()=>{if(!(null==r?void 0:r.position)&&i){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&&z(e)}},[r,i]);let D,{axisParts:T,position:N=[0,0]}=t;if(T||(T=Ue({padding:h,tickValues:g,scale:f,ticks:x,orient:s,size:[m,u],footer:v,tickSize:b}),D=e.createElement("g",{className:"axis "+y},Je({axisParts:T,orient:s,tickLineGenerator:k,className:y,scale:f}))),0===T.length)return null;let F,R,V,L,B=50,I=u,_=-50,G=0,W=0,H=0,K=0,Y=u,X=25,q=-25,Z=18,Q=m+25,U=0,J=$,ee=0,te="y";switch(s){case"right":N=[N[0],N[1]],_=m,K=W=m,ee=E.top,Q=-m-25,q=5,F=e=>{P(e.nativeEvent.offsetY-ee)},!0===O&&(K=W=m/2);break;case"top":N=[N[0],0],B=m,I=50,G=-50,_=0,ee=E.left,te="x",K=m,Y=0,!0===O&&(Y=H=u/2),F=e=>{P(e.nativeEvent.offsetX-ee)},X=$,J=25,q=0,Z=-10,Q=0,U=u+25;break;case"bottom":N=[N[0],0],B=m,I=50,H=Y=G=u,W=_=0,K=m,ee=E.left,F=e=>{P(e.nativeEvent.offsetX-ee)},X=$,J=25,q=0,Z=15,Q=0,U=-u-25,te="x",!0===O&&(Y=H=u/2);break;default:N=[N[0],N[1]],ee=E.top,!0===O&&(K=W=m/2),F=e=>{P(e.nativeEvent.offsetY-ee)}}if(S){const a=function(e,t){return t.tickFormat?t.tickFormat(e):e.toString?""+e:e}(f.invert($),t),n=M?M({lineHeight:U,lineWidth:Q,value:f.invert($)}):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:Q,y1:U,style:{stroke:"black"}})),o=$?e.createElement("g",{style:{pointerEvents:"none"},transform:`translate(${X},${J})`},n):null;R=e.createElement("g",{className:"annotation-brush",transform:`translate(${_},${G})`},e.createElement("rect",{style:{fillOpacity:0},height:I,width:B,onMouseMove:F,onClick:e=>S({className:"dynamic-axis-annotation",type:te,value:f.invert($),e:e}),onMouseOut:()=>{P(void 0)}}),o)}if(l&&A){const t=Math.max(E[s]-6,5),a="string"==typeof l?{type:l}:l;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),c=A.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?f(e.x):0,y:"left"===s||"right"===s?f(e.y):0},piece:{scaledVerticalValue:f(e.y),scaledValue:f(e.x)},value:f("top"===s||"bottom"===s?e.y:e.x),scaledValue:f(e.x),scaledVerticalValue:f(e.y)})),d=gt(ht({data:{column:{middle:t/2,pieceData:c,width:t,xyData:c}},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,c);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}}))}V=e.createElement(at,{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,i)=>{let s=a(t.value,i);("object"!=typeof s||s instanceof Date)&&(s=e.createElement("text",{textAnchor:t.defaultAnchor,className:"axis-label"},s.toString?""+s:s));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:i,pointerEvents:"none",transform:`translate(${l},${c}) rotate(${n})`,className:"axis-label"},s)}))({tickFormat:d,axisParts:T,orient:s,rotate:n,center:O});if(r){const t=r.name||r,a=r.position||{};let n=a.anchor||"middle";const o=r.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:[o||15,0],outside:[-(o||45),0]},right:{start:[p[0]+0,p[1]],middle:[p[0]+0,p[1]/2],end:[p[0]+0,0],inside:[-(o||15),0],outside:[o||45,0]},top:{start:[0,0],middle:[0+p[0]/2,0],end:[0+p[0],0],inside:[0,o||15],outside:[0,-(o||40)]},bottom:{start:[0,p[1]],middle:[0+p[0]/2,p[1]],end:[0+p[0],p[1]],inside:[0,-(o||5)],outside:[0,o||50]}},c=l[s][n],d=l[s][a.location||"outside"];c[0]=c[0]+d[0],c[1]=c[1]+d[1],"start"===n&&"right"===s?n="end":"end"===n&&"right"===s&&(n="start"),L=e.createElement(nt,{className:y,translation:c,position:N,rotation:i,labelName:t,anchorMod:n})}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:y,"aria-label":ne,ref:w},R,ae,D,!0===j?e.createElement("line",{key:"baseline",className:"axis-baseline "+y,stroke:"black",strokeLinecap:"square",x1:W,x2:K,y1:H,y2:Y}):null,L,V)}const vt=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}};function bt(e){return Math.round(10*e)/10}const kt=({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`};function jt(e){return e instanceof Function||"string"==typeof e?{type:e}:void 0===e?{}:e}function Et({data:e,renderKey:t=(e,t)=>t,oAccessor:a,rAccessor:n,originalRAccessor:o,originalOAccessor:r,multiAxis:i=!1}){let s,l;if(i&&n.length>1){let t=1/0;l=n.map(a=>{const n=e.map(a).reduce((e,t)=>[Math.min(t,e[0]),Math.max(t,e[1])],[1/0,-1/0]);return t=Math.min(n[0]/n[1],t),n});const a=l.map(e=>{let a=[0,1],n=e;return 0>e[0]&&e[1]>0?(a[0]=t,n[0]=n[1]*t):0>e[0]&&0>e[1]?(n[1]=0,a=[-1,0]):n[0]=0,d().domain(e).range(a)});s=a.map((e,t)=>a=>e(n[t](a)))}else s=n;const c=[];return a.forEach((a,n)=>{s.forEach((i,s)=>{(e||[]).forEach(e=>{const l=t(e,c.length),d=void 0!==l&&l.toString&&""+l||l,p=o[s],m=r[n],u="string"==typeof p?p:"function-"+s,y="string"==typeof m?m:"function-"+n;if("object"!=typeof e){const t={value:e,renderKey:d},a=i(t);c.push({data:t,value:a,rIndex:s,rName:u,oIndex:n,oName:y,column:d,renderKey:d})}else{const t=i(e),o=a(e);c.push({renderKey:d,data:e,rIndex:s,rName:u,oIndex:n,oName:y,value:t,column:o&&o.toString?""+o:o})}})})}),{allData:c,multiExtents:l}}function Ot({type:t,data:a,renderMode:n,eventListenersGenerator:o,styleFn:r,classFn:i,projection:s,canvasRender:l,canvasDrawing:c,pieceType:d}){if(!t.type)return null;const p=[],m=new Map,{keyedData:u,oExtent:y}=a;if("function"==typeof t.type){const a=t.type,h=y;if(y.forEach((t,y)=>{const g=u[t],f=u[h[y+1]];if(f){const t=f.map((e,t)=>a(Object.assign(Object.assign({},e.piece),e.piece.data),t));g.forEach((u,y)=>{const h=a(Object.assign(Object.assign({},u.piece),u.piece.data),y),g=a(Object.assign(Object.assign({},u.piece),u.piece.data),y),x=void 0!==g&&!1!==g&&t.indexOf(g);if(null!=h&&!1!==x&&-1!==x){const t=f[x];let a;if("radial"===s&&"point"===d.type){m.get(u)||m.set(u,[u]);const e=m.get(u);e&&(e.push(t),m.set(t,e),m.delete(u))}else{const{xy:d}=u,{xy:m}=t,{x:h,y:g,height:f=1,width:x=1}=d,{x:v,y:b,height:k=1,width:j=1}=m;if("vertical"===s)a=qe({x1:h+x,x2:v,y1:g,y2:b,sizeX1:0,sizeX2:0,sizeY1:f,sizeY2:k});else if("horizontal"===s){const{value:e}=u.piece,{value:n}=t.piece;a=qe({x1:0>e?u.piece.bottom-x:h-x,x2:0>n?t.piece.bottom-j:v-j,y1:g+f,y2:b,sizeX1:x,sizeX2:j,sizeY1:0,sizeY2:0})}else"radial"===s&&(a=qe({x1:h,x2:v,y1:g+f,y2:b,sizeX1:x,sizeX2:j,sizeY1:0,sizeY2:0}));n&&n(u.piece,y);const E=Object.assign(Object.assign({},u.piece.data),u.piece.data),O=Object.assign(Object.assign({},t.piece),t.piece.data),S=r({source:E,target:O}),M=o({source:E,target:O},y);l&&!0===l(u.piece)?c.push({baseClass:"xyframe-line",tx:0,ty:0,d:{source:E,target:O},markProps:{d:a,markType:"path"},styleFn:r,renderFn:n,classFn:i}):p.push(e.createElement("path",Object.assign({},M,{d:a,className:i?i(u.piece.data,y):"",key:"connector"+u.piece.renderKey},S,{style:S})))}}})}}),m.size>0)for(const t of m.values()){const a=Object.assign(Object.assign({},t[0].piece),t[0].piece.data),o=`M${t.map(e=>`${e.xy.x},${e.xy.y}`).join("L")}Z`;if(l&&l(a))c.push({baseClass:"ordinal-radar",tx:0,ty:0,d:{source:a},markProps:{d:o,markType:"path"},styleFn:r,renderFn:n,classFn:i});else{const t=r({source:a});p.push(e.createElement("path",Object.assign({d:o,className:i?i(a):"",key:"ordinal-ring-"+a.renderKey},t,{style:t})))}}}else t.type&&console.error("Invalid connectorType - Must be a function that takes a data point and determines if it is connected to a data point in the next column");return p}const St=(e,t,a,n)=>{const o=e.getContext("2d",{willReadFrequently:!0}),r=o.getImageData(n.offsetX,n.offsetY,1,1);let i=t[a.get(`rgba(${r.data[0]},${r.data[1]},${r.data[2]},255)`)];if(!i){const e=o.getImageData(n.offsetX-2,n.offsetY-2,5,5);let r=0;for(;!i&&100>r;)i=t[a.get(`rgba(${e.data[r]},${e.data[r+1]},${e.data[r+2]},255)`)],r+=4}return i},Mt=e.memo(function({width:t,height:a,overlayRegions:n,margin:o,voronoiHover:r}){let i=c();return l(()=>{At(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,At(e,r,a,t,n,o))},style:{position:"absolute",left:"0px",top:"0px",imageRendering:"pixelated",pointerEvents:"all",opacity:0},width:t,height:a})});function At(e,t,a,n,o,r){const i=new Map;if(null===e||!o)return;const s=St.bind(null,e,o,i);e.onmousemove=e=>{var a,n,o,r;const i=s(e);(null===(a=null==i?void 0:i.props)||void 0===a?void 0:a.onMouseEnter)?null===(n=null==i?void 0:i.props)||void 0===n||n.onMouseEnter():(null===(r=null===(o=null==i?void 0:i.props)||void 0===o?void 0:o.children)||void 0===r?void 0:r[0])?i.props.children[0].props.onMouseEnter():t(null)},e.onmouseout=()=>{t(null)},e.onclick=e=>{var t,a,n,o;const r=s(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=s(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,s,c;const d=`rgba(${Math.floor(255*Math.random())},${Math.floor(255*Math.random())},${Math.floor(255*Math.random())},255)`;i.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===(s=null===(r=p.children)||void 0===r?void 0:r[0])||void 0===s?void 0:s.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 $t(t){let n=null;const{interaction:r,svgSize:i=[500,500],margin:s={left:0,right:0,top:0,bottom:0},overlay:l,points:c,xScale:d,yScale:p,hoverAnnotation:m,customClickBehavior:u,customDoubleClickBehavior:y,customHoverBehavior:h,disableCanvasInteraction:f,canvasRendering:x}=t;let{enabled:v}=t,b=be(e=>e.changeTooltip);const k=e=>{b(e)},[j,E]=a([]),[O,S]=a(null);return o(()=>{let a,n;f||!j?(a=null,n=null):(a=((t,a)=>{let n=[];const{xScale:o,yScale:r,points:i,projectedX:s,showLinePoints:l,size:c,overlay:d,interactionOverflow:p={top:0,bottom:0,left:0,right:0},customClickBehavior:m,customDoubleClickBehavior:u,customHoverBehavior:y,hoverAnnotation:h,margin:f,advancedSettings:x={}}=t,v={top:Ne,bottom:Fe},b=m||u?{cursor:"pointer"}:{};if(i&&h&&!d){const{voronoiFilter:t=()=>!0}=x,d=[],k=new Map;for(const e of i)if(t(Object.assign(Object.assign({},e),e.data))){const t=Math.floor(o(e[s])),a=Math.floor(r(l&&void 0!==e[v[l]]?e[v[l]]:void 0!==e[Te]?e[Te]:e[De]));if(!(0-f.left>t||t>c[0]+f.right||0-f.top>a||a>c[1]+f.bottom||void 0===t||void 0===a||!1!==isNaN(t)||!1!==isNaN(a))){const n=`${t},${a}`;if(k.has(n))k.get(n).coincidentPoints.push(e);else{const o=Object.assign(Object.assign({},e),{coincidentPoints:[e],voronoiX:t,voronoiY:a});d.push(o),k.set(n,o)}}}let j=g(d.map(e=>e.voronoiX)),E=g(d.map(e=>e.voronoiY));null!=j[0]&&null!=E||(j=[0,0],E=[0,0]);const O=[Math.min(j[0]-5,-p.left),Math.min(E[0]-5,-p.top),Math.max(j[1]+5,c[0]+p.right),Math.max(E[1]+5,c[1]+p.bottom)],S=V.from(d,e=>e.voronoiX,e=>e.voronoiY).voronoi(O);return n=d.map((t,n)=>{let o=null;return x.voronoiClipping&&(o=e.createElement("clipPath",{id:"voronoi-"+n},e.createElement("circle",{r:!0===x.voronoiClipping?50:x.voronoiClipping,cx:t.voronoiX,cy:t.voronoiY}))),e.createElement("g",{key:"voronoi-"+n},e.createElement("path",{onClick:e=>{_e(d[n],m,i,e)},onDoubleClick:e=>{Ge(d[n],u,i,e)},onMouseEnter:e=>{Ie(a,d[n],h,y,i,e)},onMouseLeave:e=>{Ie(a,void 0,void 0,y,void 0,e)},key:"interactionVoronoi"+n,d:S.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,s=Z(n,["overlayData"]),l={key:"overlay-"+o,onMouseEnter:e=>{Ie(a,r,t.hoverAnnotation,y,i,e)},onMouseLeave:e=>{Ie(a,void 0,void 0,y,void 0,e)},onClick:e=>{_e(r,m,i,e)},onDoubleClick:e=>{Ge(r,u,i,e)},style:Object.assign({opacity:0},b)};if(e.isValidElement(n.renderElement))return e.cloneElement(n.renderElement,l);{const t=s,{markType:a}=t,n=Z(t,["markType"]);return e.createElement(a||"path",Object.assign(Object.assign(Object.assign({},n),{key:"overlay-"+o}),l))}})})(t,k),x&&(n=e.createElement(Mt,{height:i[1],width:i[0],overlayRegions:a,margin:s,voronoiHover:k}))),E(a),S(n)},[l,c,d,p,!!m,!!u,!!y,!!h]),r&&r.brush&&(v=!0,n=((t,a)=>{let n,o,r,i;const{xScale:s,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:m,projectedColumns:u}=t,y="oBrush"===t.brush?"horizontal"===m?"yBrush":"xBrush":t.brush;let{extent:h}=t;if(h||(h="xyBrush"===y?[[s.invert(0),l.invert(0)],[s.invert(c[0]),l.invert(c[1])]]:"xBrush"===y?[s.invert(0),s.invert(c[0])]:[l.invert(0),l.invert(c[1])]),h.indexOf&&-1!==h.indexOf(void 0))return e.createElement("g",null);if("xBrush"===y){const e=[...h];o=e=>e?[s.invert(e[0]),s.invert(e[1])]:null,n=T(),r=e.map(e=>s(e)),i=o}else if("yBrush"===y){const e=[...h];o=e=>e?[l.invert(e[0]),l.invert(e[1])].sort((e,t)=>e-t):null,n=N(),r=e.map(e=>l(e)).sort((e,t)=>e-t),i=o}else{const t=[...h.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=F(),o=e=>{if(!e)return null;const t=[l.invert(e[0][1]),l.invert(e[1][1])].sort((e,t)=>e-t);return[[s.invert(e[0][0]),t[0]],[s.invert(e[1][0]),t[1]]]};const a=[l(h[0][1]),l(h[1][1])].sort((e,t)=>e-t);r=t.map((e,t)=>[s(e[0]),a[t]]),i=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=[u[e].x,u[a].x+u[a].width])}o=(e=>t=>t?Object.values(e).filter(e=>t[1]>=e.x&&e.x+e.width>=t[0]):null)(u),i=(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},i=[o.x+Math.min(5,o.width/10),r.x+r.width-Math.min(5,r.width/10)];return R(a.sourceEvent.path[1]).transition(750).call(a.target.move,i),n}return null})(u)}return n.extent([[0,0],[c[0],c[1]]]).on("start",e=>{We(o(e.selection),void 0,p,void 0,t)}).on("brush",e=>{He(o(e.selection),void 0,p,void 0,t)}).on("end",e=>{Ke(i(e.selection,e),void 0,p,void 0,t)}),e.createElement("g",{className:"brush"},e.createElement(ze,{selectedExtent:r,extent:h,svgBrush:n}))})(r,t)),r&&r.columnsBrush&&(v=!0,n=((t,a)=>{const{projection:n,rScale:o,oColumns:r,renderPipeline:i}=a;if(!n||!o||!r)return;const s={};let l,c;Object.entries(i).forEach(([e,t])=>{t.data&&t.data.length>0&&(s[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(),m=r;let u,y;return Object.keys(m).map(a=>(n&&"horizontal"===n?(y=t.extent[a]?t.extent[a].map(e=>o(e)):t.startEmpty?null:p,u=[0,m[a].x],l=T(),l.extent([[p[0],0],[p[1],m[a].width]]).on("start",e=>{We(c(e.selection),a,s,m[a],t)}).on("brush",e=>{He(c(e.selection),a,s,m[a],t)}).on("end",e=>{Ke(c(e.selection),a,s,m[a],t)})):(y=t.extent[a]?t.extent[a].map(e=>p[1]-o(e)).reverse():t.startEmpty?null:p,u=[m[a].x,0],l=N(),l.extent([[0,p[0]],[m[a].width,p[1]]]).on("start",e=>{We(c(e.selection),a,s,m[a],t)}).on("brush",e=>{He(c(e.selection),a,s,m[a],t)}).on("end",e=>{Ke(c(e.selection),a,s,m[a],t)})),e.createElement("g",{key:"column-brush-"+a,className:"brush"},e.createElement(ze,{key:"orbrush"+a,selectedExtent:y,svgBrush:l,position:u}))))})(r,t)),j||n?e.createElement("div",{className:"interaction-layer","data-testid":"interaction-layer",style:{position:"absolute",background:"none",pointerEvents:"none",height:"100%",width:"100%",overflow:"hidden"}},O||e.createElement("svg",{height:i[1],width:i[0],style:{background:"none",pointerEvents:"none"}},e.createElement("g",{className:"interaction-overlay",transform:`translate(${s.left},${s.top})`,style:{pointerEvents:v?"all":"none"}},e.createElement("g",{className:"interaction-regions"},j),n))):null}function Pt(t){const{matte:r,matteClip:s,axes:l,frameKey:c="",margin:d={left:0,right:0,bottom:0,top:0},title:p,ariaTitle:m,axesTickLines:u,frameRenderOrder:y,additionalVizElements:h,transition:g}=t;let f=be(e=>e.changeTooltip);const x=n(e=>{f(e)},[f]),[v,b]=a(null),[k,j]=a(null),E=i(()=>(({focusedPieceIndex:e,changeFocusedPieceIndex:t,changeFocusedVisualizationGroup:a})=>({e:{keyCode:n},vizgroup:o,props:r,piecesGroup:i})=>{const{renderPipeline:s,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?i[o].length+d:d%i[o].length,l(s[o].accessibleTransform(s[o].data,d,i[o][d])),t(d),a(p.focusedVisualizationGroup)})({focusedPieceIndex:v,changeFocusedPieceIndex:b,changeFocusedVisualizationGroup:j}),[v,b,j]),O=((t,a,n)=>{const{xScale:o,yScale:r,dataVersion:i,projectedCoordinateNames:s,renderPipeline:l={},renderOrder:c=[],transition:d}=t,p=[],m={},u=[];return c.concat(Object.keys(l).filter(e=>-1===c.indexOf(e))).forEach(i=>{const c=l[i];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:s},c));l&&l.length>0&&u.push(e.createElement("g",Object.assign({key:i,className:i,"data-testid":i,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}`||i,onKeyDown:e=>a({e:e,k:i,props:t,piecesGroup:m}),onBlur:()=>{n(void 0)},ref:e=>e&&(m[i]=e.childNodes)}),l))}}),{renderedElements:u,dataVersion:i,canvasDrawing:p,piecesGroup:m}})(t,E,x),{renderedElements:S}=O;o(()=>{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:i,height:s,margin:l,disableProgressiveRendering:c=!1}=t,d=[i+l.left+l.right,s+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 i={fill:"black",stroke:"black",opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1},{position:s=[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)||i,u=m.fill?m.fill:"black",y=m.stroke?m.stroke:"black";t.setTransform(1,0,0,1,a.left,a.top),t.translate(s[0],s[1]),t.translate(n.tx,n.ty),t.fillStyle=u,t.strokeStyle=y,t.lineWidth=m.strokeWidth?m.strokeWidth:0;let h={};const g=n.renderFn&&n.renderFn(p,n.i);let f=g&&g.renderMode||g;if(f)if(o){const a=o.canvas;a?(r=r||a(e),h=Object.assign({fill:u,stroke:y,strokeWidth:t.lineWidth},"object"==typeof g&&g||{})):console.error("The sketchyRenderingEngine you specify does not expose a prop `RoughCanvas` and so cannot render sketchy HTML5 Canvas graphics")}else console.error("You cannot render sketchy graphics without specifying a Rough.js-like library as the sketchyRenderingEngine prop of your frame"),f=void 0;if("circle"===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"===f?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"===f?(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"===f)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"===f?(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 O.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 i=performance.now(),s=0,l=!1,c=null!=t&&t.aborted;try{if(c)return n();do{l=e(),s=performance.now()-i,c=null!=t&&t.aborted}while(!c&&l&&a>s);!c&&l?requestAnimationFrame(r):n()}catch(e){o(e)}})})},new((n=void 0)||(n=Promise))(function(e,r){function i(e){try{l(o.next(e))}catch(e){r(e)}}function s(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(i,s)}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,O.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&&O.piecesGroup[k]&&null!==v){const e=O.piecesGroup[k][v],t=e&&[...e.childNodes].find(e=>e.getAttribute("aria-label"))||e;t&&t.focus&&t.focus()}return function(){o.abort()}},[r,s,l,c,d,m,u,y,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`)}(g),A=Object.assign({"axes-tick-lines":u&&e.createElement("g",{key:"visualization-tick-lines",className:"axis axis-tick-lines","aria-hidden":!0},u),"axes-labels":l&&e.createElement("g",{key:"visualization-axis-labels",className:"axis axis-labels"},l),matte:r,"viz-layer":S&&S.length>0?e.createElement(e.Fragment,{key:"viz-layer"},M,S):null},h);let $="";$=`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 y.forEach(e=>{A[e]&&P.push(A[e])}),P.length>0&&e.createElement("g",{className:"data-visualization","data-testid":"data-visualization",key:"visualization-clip-path","aria-label":$,role:"group",clipPath:s&&r?`url(#matte-clip${c})`:void 0,transform:`translate(${d.left},${d.top})`},P)||null}const Ct=[],zt={},wt=[0,0],Dt={x:"x",y:"y"},Tt=["axes-tick-lines","viz-layer","matte","axes-labels","labels"],Nt={top:0,bottom:0,left:0,right:0};function Ft(t){const{axes:r,axesTickLines:i,className:s="",name:l="",frameKey:d,projectedCoordinateNames:p=Dt,renderPipeline:m,size:u,adjustedSize:y=u,title:h,xScale:g,yScale:f,dataVersion:x,annotations:v,projectedYMiddle:b,interaction:k,customClickBehavior:j,customHoverBehavior:E,customDoubleClickBehavior:O,points:S,margin:M=Nt,backgroundGraphics:A,foregroundGraphics:$,beforeElements:P,afterElements:C,defaultSVGRule:z,defaultHTMLRule:w,adjustedPosition:D=wt,legendSettings:T,annotationSettings:N=zt,overlay:F,columns:R,rScale:V,projection:L,interactionOverflow:B,canvasPostProcess:I,canvasRendering:_,renderOrder:G=Ct,showLinePoints:W,disableCanvasInteraction:H=!1,sketchyRenderingEngine:K,disableContext:Y,frameRenderOrder:X=Tt,additionalVizElements:q=zt,interactionSettings:Z,disableProgressiveRendering:Q,additionalDefs:U,transition:J}=t;let{hoverAnnotation:ee}=t;const te=c(null),[ae,ne]=a(null),[oe,re]=a(null);o(()=>{const t=(({matte:t,size:a,margin:n,frameKey:o,additionalDefs:r,name:i})=>{let s;"function"==typeof t?s=t({size:a,margin:n}):e.isValidElement(t)?s=t:!0===t&&(s=e.createElement("path",{fill:"white",transform:`translate(${-n.left},${-n.top})`,d:kt({margin:n,size:a,inset:0}),className:i+"-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:s,key:t&&(o||i),additionalDefs:r});return{defs:l,matte:s}})({matte:oe,size:u,margin:M,frameKey:d,additionalDefs:U,name:l});ne(t.defs),re(t.matte)},[u[0],u[1],M.top,M.bottom,M.right,M.left,M.top,oe,U]),!ee&&(j||E||O)&&(ee=Ct);const ie=[],se=v?[...v,...ie]:ie,le=c(z);le.current=z;const ce=c(w);ce.current=w;const de=c(m);de.current=m;const pe=n((e,t,a)=>le.current(Object.assign({d:e,i:t,annotationLayer:a},de.current)),[]),me=n((e,t,a)=>ce.current(Object.assign({d:e,i:t,annotationLayer:a},de.current)),[]),ue=e.createElement($e,{legendSettings:T,margin:M,axes:r,annotationHandling:N,pointSizeFunction:N.layout&&N.layout.pointSizeFunction,labelSizeFunction:N.layout&&N.layout.labelSizeFunction,annotations:se,svgAnnotationRule:pe,htmlAnnotationRule:me,size:y,position:[D[0]+M.left,D[1]+M.top]}),ye=function({title:t={title:"",orient:"top"},size:a}){let n=null;const{title:o,orient:r}=vt(t);let i,s=0,l=0;switch(r){case"top":s=a[0]/2,l=25;break;case"bottom":s=a[0]/2,l=a[1]-25;break;case"left":s=25,l=a[1]/2,i="rotate(-90)";break;case"right":s=a[0]-25,l=a[1]/2,i="rotate(90)"}const c=`translate(${s},${l})`;return"string"==typeof o&&o.length>0?n=e.createElement("g",{transform:c},e.createElement("text",{className:"frame-title",transform:i,style:{textAnchor:"middle",pointerEvents:"none"}},o)):o&&(n=e.createElement("g",{transform:c},o)),n}({title:h,size:u}),he="function"==typeof A?A({size:u,margin:M}):A,ge="function"==typeof $?$({size:u,margin:M}):$;return e.createElement("div",{className:`${s} frame ${l}`,style:{background:"none"}},P&&e.createElement("div",{className:l+" frame-before-elements"},P),e.createElement("div",{className:"frame-elements",style:{height:u[1]+"px",width:u[0]+"px"}},e.createElement(ve,null,e.createElement("div",{className:"visualization-layer",style:{position:"absolute"}},A&&e.createElement("svg",{className:"background-graphics",style:{position:"absolute"},width:u[0],height:u[1]},A&&e.createElement("g",{"aria-hidden":!0,className:"background-graphics"},he)),e.createElement("svg",{className:"visualization-layer",style:{position:"absolute"},width:u[0],height:u[1]},ae,e.createElement(Pt,{disableContext:Y,renderPipeline:m,position:D,width:y[0],height:y[1],projectedCoordinateNames:p,xScale:g,yScale:f,axes:r,title:ye,frameKey:d,canvasContext:te,dataVersion:x,matte:oe,margin:M,canvasPostProcess:I,renderOrder:G,sketchyRenderingEngine:K,axesTickLines:i,additionalVizElements:q,frameRenderOrder:X,disableProgressiveRendering:Q,transition:J}),ye&&e.createElement("g",{className:"frame-title"},ye),$&&e.createElement("g",{"aria-hidden":!0,className:"foreground-graphics"},ge))),_&&e.createElement("canvas",{className:"frame-canvas",ref:te,style:{pointerEvents:"none",position:"absolute"},width:u[0]/2,height:u[1]/2}),e.createElement($t,{hoverAnnotation:ee,projectedX:p.x,projectedY:p.y,projectedYMiddle:b,interaction:k,customClickBehavior:j,customHoverBehavior:E,customDoubleClickBehavior:O,points:S,showLinePoints:W,canvasRendering:_,position:D,margin:M,size:y,svgSize:u,xScale:g,yScale:f,enabled:!0,overlay:F,oColumns:R,rScale:V,projection:L,interactionOverflow:B,disableCanvasInteraction:H,renderPipeline:m,advancedSettings:Z}),ue)),C&&e.createElement("div",{className:l+" frame-after-elements"},C))}const Rt=e=>e instanceof Date?e.getTime():e,Vt=({type:e="stackedarea",data:t,xProp:a,yProp:n,yPropMiddle:o,sort:r,yPropTop:i,yPropBottom:s})=>{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=Rt(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=f(t,e=>(null==e?void 0:e[n])>0?e[n]:0),c=f(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[s]=p[s]=p[i]=p[o]=t;else{const e=0>c?t:0;p[s]=0===c?0:-a/c,p[i]=p[s]-e,p[o]=p[s]-e/2}}else p[s]=a,p[i]=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[s]=p[i]=p[o]=t;else{const e=l>0?t:0;p[s]=0===l?0:r/l,p[i]=p[s]+e,p[o]=p[s]+e/2}}else p[s]=r,p[i]=r+p[n],p[o]=r+p[n]/2;r+=p[n]}}}return t},Lt=({data:e,y1:t,x1:a,yPropTop:n,yPropMiddle:o,yPropBottom:r,xPropTop:i,xPropMiddle:s,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[s]=(e[l]+e[i])/2;return e},Bt=({data:e,y1:t,yPropTop:a,yPropMiddle:n,yPropBottom:o,type:r="cumulative"})=>{for(const i of e){let e=0;const s="cumulative-reverse"===r?i.data.reverse():i.data;for(const r of s)e+=r[a],r[o]=r[a]=r[n]=e,t&&(r[o]=t(r),r[n]=r[o]+r[a]/2)}return e},It=({type:e="bumpline",data:t,xProp:a,yProp:n,yPropMiddle:o,yPropTop:r,yPropBottom:i})=>{const s=new Map;for(const e of t)for(const t of e.data){const e=Rt(t[a]);s.has(e)||s.set(e,[]),s.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 s){let a=0,s=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[i]=a,a+=l[n]):(l[r]=s+l[n],l[o]=s+l[n]/2,l[i]=s,s+=l[n]):(l[n]=c,l[r]=c,l[i]=c),c++}return t},_t=e=>e&&e.extent||Array.isArray(e)&&e||[],Gt=()=>!0,Wt={top:Ne,bottom:Fe,orphan:De},Ht={top:Ve,bottom:Le,orphan:we},Kt={stackedarea:Vt,"stackedarea-invert":Vt,stackedpercent:Vt,"stackedpercent-invert":Vt,linepercent:Vt,difference:({data:e,yProp:t,yPropTop:a,yPropBottom:n})=>(e.forEach((o,r)=>{o.data.forEach((o,i)=>{const s=0===r?1:0;o[t]>e[s].data[i][t]?(o[n]=e[s].data[i][t],o[a]=o[t]):(o[a]=o[t],o[n]=o[t])})}),e),bumparea:It,bumpline:It,"bumparea-invert":It,line:Lt,area:Lt,cumulative:Bt,"cumulative-reverse":Bt};function Yt(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 Xt(e,t,a){if(void 0===e)return[Yt(void 0,t,a)];let n=[];return n=Array.isArray(e)?e:[e],n.map(e=>Yt(e,t,a))}function qt(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 Zt=({lineDataAccessor:t,xAccessor:a,yAccessor:n,summaries:o,points:r,lines:i,lineType:s,showLinePoints:l,showSummaryPoints:c,xExtent:p,yExtent:m,invertX:u,invertY:y,summaryDataAccessor:h,summaryType:g,adjustedSize:f,margin:x,summaryStyleFn:v,summaryClassFn:k,summaryRenderModeFn:j,chartSize:E,filterRenderedLines:O,filterRenderedSummaries:S,filterRenderedPoints:M,defined:A=Gt,annotations:$=[]})=>{let P=[],C=[],z=[],w=[],D=[];if(r){a.forEach((e,t)=>{n.forEach((a,n)=>{let o=0;for(const i of r){const r=e(i,o),s=a(i,o),l={x:r,y:s,data:i,xIndex:t,yIndex:n};Array.isArray(s)&&(l[Fe]=Math.min(...s),l[Ne]=Math.max(...s),l[Te]=(l[Fe]+l[Ne])/2),Array.isArray(r)&&(l[Le]=Math.min(...r),l[Ve]=Math.max(...r),l[Re]=(l[Le]+l[Ve])/2),z.push(l),o++}})});for(const e of z)P.push(Object.assign(Object.assign({},e),{[we]:e[Ve]||e[Le]||e.x,[De]:e[Ne]||e[Fe]||e.y}))}if(i){C=(({data:e,lineDataAccessor:t,xProp:a,xPropTop:n,xPropBottom:o,yProp:r,yPropTop:i,yPropBottom:s,xAccessor:l,yAccessor:c})=>{Array.isArray(e)||(e=[e]);const d=[];return t.forEach((t,p)=>{l.forEach((l,m)=>{c.forEach((c,u)=>{e.forEach(e=>{const y=Object.assign(Object.assign({},e),{xIndex:m,yIndex:u,lineIndex:p});y.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[i]=d[r],d[s]=d[r],d}),y.key=y.key||d.length,d.push(y)})})})}),d})({data:i,lineDataAccessor:t,xProp:we,xPropTop:Ve,xPropBottom:Le,yProp:De,yPropTop:Ne,yPropBottom:Fe,xAccessor:a,yAccessor:n}),w=function(e,t){return a=>Kt[Qt(e.type,a)](Object.assign(Object.assign(Object.assign({},e),t),{data:a}))}(s,{xProp:we,yProp:De,yPropMiddle:Te,yPropTop:Ne,yPropBottom:Fe,xPropMiddle:Re,xPropTop:Ve,xPropBottom:Le})(C);for(const e of w)for(let t=0;e.data.length>t;t++){const a=e.data[t];if(!A(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),P.push(n)}if(l){const e=!0===l?Re:Ht[l],t=!0===l?Te:Wt[l];w.forEach(a=>{a.data.filter((e,t)=>{if(A(Object.assign({},e.data,e))){if("orphan"===l){const e=a.data[t-1],n=a.data[t+1];return!(e&&A(Object.assign({},e.data,e))||n&&A(Object.assign({},n.data,n)))}return!0}return!1}).forEach(n=>{z.push(Object.assign(Object.assign({},n),{parentLine:a,[De]:void 0!==n[t]?n[t]:void 0!==n[Te]?n[Te]:void 0!==n[Fe]?n[Fe]:n.y,[we]:void 0!==n[e]?n[e]:void 0!==n[Re]?n[Re]:void 0!==n[Le]?n[Le]:n.y}))})})}}o&&(D=(({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:o,summaryDataAccessor:h,xAccessor:a,yAccessor:n}),D.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],{[we]:a[0],[De]:a[1]})).forEach(e=>{c&&z.push(Object.assign(Object.assign({x:0},e),{[De]:e[Ne]||e[Fe]||e[De]})),P.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]),{[we]:a[0],[De]:a[1]})).forEach(e=>{c&&z.push(Object.assign(Object.assign({x:0},e),{[De]:e[Ne]||e[Fe]||e[De]})),P.push(Object.assign({x:0,y:0},e))})}));let T,N,F,R,V=[],L=[];p&&!Array.isArray(p)&&!0===p.includeAnnotations&&a.forEach(e=>{$.forEach((t,a)=>{const n=e(t,a);isFinite(n)&&V.push({[we]:n})})}),m&&!Array.isArray(m)&&!0===m.includeAnnotations&&n.forEach(e=>{$.forEach((t,a)=>{const n=e(t,a);isFinite(n)&&L.push({[De]:n})})});for(const e of P){const t=void 0===e[Le]?e[we]:Math.min(e[Ve],e[Le]),a=void 0===e[Ve]?e[we]:Math.max(e[Le],e[Ve]),n=void 0===e[Fe]?e[De]:Math.min(e[Ne],e[Fe]),o=void 0===e[Ne]?e[De]:Math.max(e[Fe],e[Ne]);void 0===t||void 0!==T&&t>=T||(T=t),void 0===a||void 0!==N&&N>=a||(N=a),void 0===n||void 0!==F&&n>=F||(F=n),void 0===o||void 0!==R&&R>=o||(R=o)}for(const e of V){const t=e[we];void 0===t||void 0!==T&&t>=T||(T=t),void 0===t||void 0!==N&&N>=t||(N=t)}for(const e of L){const t=e[De];void 0===t||void 0!==F&&t>=F||(F=t),void 0===t||void 0!==R&&R>=t||(R=t)}const _=[T,N],G=[F,R],W=_t(p),H=_t(m);let K=[H&&void 0!==H[0]?H[0]:G[0],H&&void 0!==H[1]?H[1]:G[1]],Y=[W&&void 0!==W[0]?W[0]:_[0],W&&void 0!==W[1]?W[1]:_[1]];return!u||W&&2===W.length||(Y=[Y[1],Y[0]]),"bumpline"!==s.type&&!y||H&&2===H.length||(K=[K[1],K[0]]),g.type&&"contour"===g.type?D=oe({summaryType:g,data:D,finalXExtent:Y,finalYExtent:K}):g.type&&"linebounds"===g.type?D=function({summaryType:e,data:t,defined:a}){let n=[];e.type||(e={type:e});const{boundingAccessor:o,topBoundingAccessor:r=o,bottomBoundingAccessor:i=o}=e;return t.forEach(e=>{const t=e._baseData.map(a);let o=[],s=[];const l=[{xyf:s,base:o}];t.forEach((a,n)=>{!0===a?(o.push(e._baseData[n]),s.push(e._xyfCoordinates[n])):t[n+1]&&(o=[],s=[],l.push({xyf:s,base:o}))}),l.forEach(({xyf:t,base:a})=>{const o={data:e,parentSummary:e,_xyfCoordinates:re(t,a,r,i)};n=[...n,o]})}),n}({summaryType:g,data:D,defined:A}):g.type&&"hexbin"===g.type?(D=function({preprocess:t=!0,processedData:a=!1,summaryType:n,data:o,finalXExtent:r,finalYExtent:i,size:s,xScaleType:l=d(),yScaleType:c=d(),margin:p,styleFn:m,classFn:u,renderFn:y,chartSize:h}){let g=r,f=i;if(!g){const e=o.coordinates.map(e=>e.x);g=[Math.min(...e),Math.max(...e)]}if(!f){const e=o.coordinates.map(e=>e.y);f=[Math.min(...e),Math.max(...e)]}if(a&&o)return o.coordinates;let x,v=[];x=n.type?n:{type:x};const{bins:b=.05,cellPx:k,binValue:j=e=>e.length,binMax:E,customMark:O}=x;o.coordinates&&!o._xyfCoordinates&&(o._xyfCoordinates=o.coordinates.map(e=>[e.x,e.y]));const S=Array.isArray(o)?o:[o],M=l.domain(g).range([0,s[0]]),A=c.domain(f).range([0,s[1]]),$=k&&k/2||(b>1?1/b:b)*s[0]/2,P=I().x(e=>M(e._xyfPoint[0])).y(e=>A(e._xyfPoint[1])).radius($).size(s);let C;const z=P.centers();return S.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}),z.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($)-g[0],i=A.invert($)-f[0],l=o.map(e=>[e[0]*r,e[1]*i]),c=a.map(a=>{const n=j(a),r=a.x,i=a.y;a.x=M.invert(a.x),a.y=A.invert(a.y);const c=n/C;return{customMark:O&&e.createElement("g",{transform:`translate(${r},${s[1]-i})`},O({d:Object.assign(Object.assign({},a),{binItems:a,percent:c,value:n,radius:$,hexCoordinates:o.map(e=>[e[0]*$,e[1]*$])}),margin:p,styleFn:m,classFn:u,renderFn:y,chartSize:h,adjustedSize:s})),_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}({summaryType:g,data:D[0],processedData:o&&!!o[0].processedData,preprocess:!1,finalXExtent:Y,finalYExtent:K,size:f,margin:x,styleFn:v,classFn:k,renderFn:j,chartSize:E}),P=qt(P,D)):g.type&&"heatmap"===g.type?(D=function({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:i=[Math.min(...o.coordinates.map(e=>e.y)),Math.max(...o.coordinates.map(e=>e.y))],size:s,xScaleType:l=d(),yScaleType:c=d(),margin:p,styleFn:m,classFn:u,renderFn:y,chartSize:h}){if(a&&o)return o.coordinates;o.coordinates&&!o._xyfCoordinates&&(o._xyfCoordinates=o.coordinates.map(e=>[e.x,e.y]));const g=Array.isArray(o)?o:[o];let f,x=[];f=n.type?n:{type:f};const{binValue:v=e=>e.length,xBins:b=f.yBins||.05,yBins:k=b,xCellPx:j=!f.xBins&&f.xCellPx,yCellPx:E=!f.yBins&&f.yCellPx,customMark:O,binMax:S}=f,M=1>b?b:1/b,A=1>k?k:1/k,$=l.domain(r).range([0,s[0]]),P=c.domain(i).range([s[1],0]),C=[Math.ceil((j&&j/s[0]||M)*s[0]*10)/10,Math.ceil((E&&E/s[1]||A)*s[1]*10)/10];let z=-1/0;return g.forEach(t=>{const a=[],n=[];let o,r;for(let e=0;s[0]>Math.ceil(e);e+=C[0]){const i=$.invert(e),l=$.invert(e+C[0]);r=[],a.push(r);for(let a=0;s[1]>Math.ceil(a);a+=C[1]){const s=P.invert(a),c=P.invert(a+C[1]);o={gx:e,gy:a,gw:C[0],gh:C[1],x:(i+l)/2,y:(s+c)/2,binItems:[],value:0,_xyfCoordinates:[[i,s],[l,s],[l,c],[i,c]],parentSummary:t},r.push(o),n.push(o)}r.push(o)}a.push(r),t._xyfCoordinates.forEach((e,n)=>{const o=$(e[0]),r=P(e[1]),i=Math.floor(o/C[0]),s=Math.floor(r/C[1]);a[i][s]&&a[i][s].binItems.push(t.coordinates[n])}),n.forEach(e=>{e.value=v(e.binItems),z=Math.max(z,e.value)}),n.forEach(t=>{t.percent=t.value/z,t.customMark=O&&e.createElement("g",{transform:`translate(${t.gx},${t.gy})`},O({d:t,margin:p,styleFn:m,classFn:u,renderFn:y,chartSize:h,adjustedSize:s}))}),x=[...x,...n]}),S&&S(z),t?{type:"heatmap",processedData:!0,_baseData:[],_xyfCoordinates:[],data:[],bounds:[],x:0,y:0,coordinates:x,binMax:z}:x}({summaryType:g,data:D[0],processedData:o&&!!o[0].processedData,preprocess:!1,finalXExtent:Y,finalYExtent:K,size:f,margin:x,styleFn:v,classFn:k,renderFn:j,chartSize:E}),P=qt(P,D)):g.type&&"trendline"===g.type&&(D=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,i=[];r=t.type?t:{type:r};const{regressionType:s="linear",order:l=2,precision:c=4,controlPoints:p=20,curve:m=b}=r;let u=s;n[0]>=0||"logarithmic"!==s&&"power"!==s&&"exponential"!==s||(console.error(`Cannot use this ${s} regressionType type with value range that goes below 0, defaulting to linear`),u="linear"),a.coordinates&&!a._xyfCoordinates&&(a._xyfCoordinates=a.coordinates.map(e=>[e.x,e.y]));const y=Array.isArray(a)?a:[a],h=o.domain([0,1]).range(n);return i=[],y.forEach(e=>{const t=B[u](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"!==u){n=[];for(let e=0;1+a>e;e+=a)n.push(e)}const o=[];n.forEach(e=>{o.push(t.predict(h(e)))}),i.push({centroid:!1,customMark:void 0,data:e,parentSummary:e,value:t.string,r2:t.r2,curve:m,_xyfCoordinates:o})}),i}({summaryType:g,data:D[0],preprocess:o&&!!o[0].processedData,finalXExtent:Y}),P=qt(P,D)),O&&(w=w.filter(O),P=P.filter((e,t)=>!e.parentLine||O(e.parentLine,t,[]))),M&&(P=P.filter(M)),S&&(D=D.filter(S),P=P.filter((e,t)=>!e.parentSummary||S(e.parentSummary,t,[]))),{xExtent:Y,yExtent:K,projectedLines:w,projectedPoints:z,projectedSummaries:D,fullDataset:P,calculatedXExtent:_,calculatedYExtent:G}},Qt=(e,t)=>!Kt[e]||"difference"===e&&2!==t.length?"line":e;function Ut(t,a,n){return e.createElement(xt,{label:t.label,key:t.key||"orframe-summary-axis-"+a,orient:t.orient,size:t.size,ticks:t.ticks,tickSize:t.tickSize,tickFormat:t.tickFormat,tickValues:t.tickValues,rotate:t.rotate,scale:n,className:t.className})}const Jt=2*Math.PI,ea=({type:e,ordset:t,adjustedSize:a,piece:n,i:o})=>{let{innerRadius:r}=e;const{offsetAngle:i=0,angleRange:s=[0,360]}=e,l=i/360,c=s.map(e=>e/360),p=c[1]-c[0],m=1>p?d().domain([0,1]).range(c):e=>e;let u="clusterbar"===e.type?0:"timeline"===e.type?n.scaledValue/2:n.bottom/2,y="clusterbar"===e.type?n.scaledValue/2:"timeline"===e.type?n.scaledEndValue/2:n.scaledValue/2+n.bottom/2;if(r){r=parseInt(r,10);const e=a[0]/2,t=(e-r)/e;u=u*t+r,y=y*t+r}const h=z().innerRadius(u).outerRadius(y),g=("clusterbar"===e.type?(t.pct-t.pct_padding)/t.pieceData.length:t.pct)*p,f=m("clusterbar"===e.type?t.pct_start+o/t.pieceData.length*(t.pct-t.pct_padding):1===t.pct?0:t.pct_start+l),x=1===t.pct?c[1]:Math.max(f,f+g-t.pct_padding/2),v=f*Jt,b=x*Jt,k=h({startAngle:v,endAngle:b}),j=h.centroid({startAngle:v,endAngle:b}),E=a[0]/2,O=a[1]/2,S=j[0]+E,M=j[1]+O,A=te([0,0],(f+x)/2,n.scaledValue/2),$=`translate(${E},${O})`;return{xPosition:S,yPosition:M,xy:{arcGenerator:h,startAngle:v,endAngle:b,dx:A[0],dy:A[1]},translate:$,tx:E,ty:O,markProps:{markType:"path",d:k,transform:$}}},ta=({type:t,projection:a,finalHeight:n,finalWidth:o,styleFn:r,classFn:i})=>(s,l,c)=>{const d="string"==typeof t.icon?t.icon:t.icon(s.data,l),{iconPadding:p=1,resize:m="auto"}=t,u=_(d),y=[0-u.x1+p,0-u.y1+p];u.height+=2*p,u.width+=2*p;const h=[];let g=u.height,f=1,x=1;const v="horizontal"===a?n:o,b="horizontal"===a?u.height:u.width,k="horizontal"===a?u.width:u.height,j="horizontal"===a?c.width:c.height,E="horizontal"===a?c.height:c.width;"auto"===m?(g=v/b,1>g?x=g:(f=Math.floor(g),x=1+(g-f)/f)):"fixed"===m&&(x=v/b);const O=u.height*x,S=k*x,M=b*x;y[0]=y[0]*x,y[1]=y[1]*x;const A=`iso-clip-${l}-${Math.random()}`,$=`url(#${A})`;if(c.width>0){h.push(e.createElement("clipPath",{key:A,id:A},e.createElement("rect",{x:0,y:0,width:c.width,height:c.height})));const t=[],n="horizontal"===a?S:-S,o="horizontal"===a?(e,t)=>t>e:(e,t,a)=>e>0+a;for(let p="horizontal"===a?0:c.height-O;o(p,j,n);p+=n)for(let n=0;E>n;n+=M)t.push(e.createElement("path",{key:`icon-${p}-${n}`,transform:`translate(${("horizontal"===a?p:n)+y[0]},${("horizontal"===a?n:p)+y[1]}) scale(${x})`,vectorEffect:"non-scaling-stroke",d:d,style:r(Object.assign(Object.assign({},s),s.data),l),className:i(Object.assign(Object.assign({},s),s.data),l)}));h.push(e.createElement("g",{key:"clipped-region-"+l,clipPath:$},t))}return h},aa={clusterbar:function({type:t,data:a,renderMode:n,eventListenersGenerator:o,styleFn:r,projection:i,classFn:s,adjustedSize:l,chartSize:c,margin:d,rScale:p}){let m=[];return Object.keys(a).forEach((u,y)=>{const h=a[u],g=Math.max(h.width,1)/h.pieceData.length;let f=0,x=0;const v=h.pieceData.map((a,m)=>{const v=n&&n(a.data,m);let b=a.x,k=a.base,j=g,E=a.scaledValue,O={x:0,y:0};a.negative||(k-=a.scaledValue),"horizontal"===i&&(k=a.x,b=a.base,E=g,j=a.scaledValue,O.x=a.scaledValue,a.negative&&(b-=a.scaledValue,O.x=b));let S={},M=0,A=0;if("radial"===i){let e,n;({xPosition:b,yPosition:k,markProps:S,xy:O,tx:e,ty:n}=ea({type:t,ordset:h,adjustedSize:l,piece:a,i:m})),M=e,A=n,O.x=b}else b+=f,k+=x,S={markType:"rect",x:b,y:k,width:Math.max(0,j),height:Math.max(0,E),rx:0,ry:0},"vertical"===i&&(O.x=b);const $=o(a,m);O.y=k,O.middle=g/2,O.height=E,O.width=j,t.icon&&"radial"!==i?t.customMark=ta({type:t,projection:i,finalHeight:E,finalWidth:j,styleFn:r,renderValue:v,classFn:s}):t.icon&&"radial"===i&&console.error("Icons are currently unsupported on radial charts");const P=t.customMark?e.createElement("g",{key:"piece-"+a.renderKey,transform:`translate(${b},${k})`},t.customMark(Object.assign(Object.assign(Object.assign({},a.data),a),{x:b,y:k}),m,Object.assign(Object.assign({},O),{renderMode:n,styleFn:r,classFn:s,adjustedSize:l,chartSize:c,margin:d,rScale:p}))):Object.assign(Object.assign({className:s(Object.assign(Object.assign({},a),a.data),m),key:"piece-"+a.renderKey,transform:void 0,style:r(Object.assign(Object.assign({},a),a.data),y)},S),$);return"horizontal"===i?x+=E:f+=j,{o:u,xy:O,piece:a,tx:M,ty:A,renderValue:v,renderElement:P}});m=[...m,...v]}),m},bar:function({type:t,data:a,renderMode:n,eventListenersGenerator:o,styleFn:r,projection:i,classFn:s,adjustedSize:l,chartSize:c,margin:d,rScale:p}){let m=[];return Object.keys(a).forEach((u,y)=>{const h=a[u],g=Math.max(h.width,1);h.pieceData.forEach((a,f)=>{const x=a.scaledValue,v=n&&n(a.data,f);let b=a.x,k=a.bottom,j=g,E=x,O={};a.negative||(k-=a.scaledValue),"vertical"===i?O={x:b,y:k,middle:g/2,height:E,width:j}:"horizontal"===i&&(k=a.x,b=a.bottom,E=g,j=x,O={x:b+a.scaledValue,y:k,middle:g/2,height:E,width:j},a.negative&&(b=a.bottom-a.scaledValue));let S,M=0,A=0;if("radial"===i){let e,n;({markProps:S,xPosition:b,yPosition:k,tx:e,ty:n}=ea({type:t,ordset:h,adjustedSize:l,piece:a,i:f})),M=e,A=n,E=void 0,j=void 0,O={x:b,y:k,middle:g/2,height:E,width:j}}else S={markType:"rect",x:b,y:k,width:Math.max(0,j),height:Math.max(0,E),rx:0,ry:0};const $=o(a,f);t.icon&&"radial"!==i?t.customMark=ta({type:t,projection:i,finalHeight:E,finalWidth:j,styleFn:r,renderValue:v,classFn:s}):t.icon&&"horizontal"!==i&&console.error("Icons are currently unsupported in radial charts");const P=t.customMark?e.createElement("g",{key:"piece-"+a.renderKey,transform:`translate(${b},${k})`,role:"img",tabIndex:-1},t.customMark(Object.assign(Object.assign(Object.assign({},a.data),a),{x:b,y:k}),f,Object.assign(Object.assign({},O),{renderMode:n,styleFn:r,classFn:s,adjustedSize:l,chartSize:c,margin:d,rScale:p}))):Object.assign(Object.assign({className:s(Object.assign(Object.assign({},a),a.data),f),key:"piece-"+a.renderKey,style:r(Object.assign(Object.assign({},a),a.data),y)},$),S);m.push({o:u,xy:O,piece:a,tx:M,ty:A,renderValue:v,renderElement:P})})}),m},point:function({type:t,data:a,renderMode:n,eventListenersGenerator:o,styleFn:r,projection:i,classFn:s,adjustedSize:l,chartSize:c,margin:d,rScale:p}){const m=t.r||3;let u=[];return Object.keys(a).forEach((y,h)=>{const g=a[y],f=[];g.pieceData.forEach((a,u)=>{const x=n&&n(a.data,u);let v=g.middle,b=a.scaledVerticalValue;if("horizontal"===i)b=g.middle,v=a.scaledValue;else if("radial"===i){const e=te([l[0]/2,l[1]/2],g.pct_middle,a.scaledValue/2);v=e[0],b=e[1]}const k="function"==typeof m?m(a,u):m,j=o(a,u),E=t.customMark?e.createElement("g",{key:"piece-"+a.renderKey,transform:`translate(${v},${b})`},t.customMark(Object.assign(Object.assign(Object.assign({},a.data),a),{x:v,y:b,width:g.width}),u,{r:m,x:v,y:b,renderMode:n,styleFn:r,classFn:s,adjustedSize:l,chartSize:c,margin:d,rScale:p})):Object.assign({className:s(Object.assign(Object.assign({},a),a.data),u),markType:"rect",key:"piece-"+a.renderKey,height:2*k,width:2*k,x:v-k,y:b-k,rx:k,ry:k,style:r(Object.assign(Object.assign({},a),a.data),h)},j);f.push({o:y,xy:{x:v,y:b},piece:a,renderValue:x,renderElement:E})}),u=[...u,...f]}),u},swarm:function({type:t,data:a,renderMode:n,eventListenersGenerator:o,styleFn:r,projection:i,classFn:s,adjustedSize:l,chartSize:c,margin:d,rScale:p}){let m=[];const u=Object.keys(a),y=u.reduce((e,t)=>{var n;return e+((null===(n=a[t].pieceData)||void 0===n?void 0:n.length)||0)},0),h=void 0!==t.iterations?t.iterations:Math.max(30,Math.min(120,Math.floor(120-(y-100)/20)));return u.forEach((y,g)=>{const f=a[y],x=1/u.length,v=f.pieceData,b=f.width,k=t.r||Math.max(2,Math.min(5,4*b/v.length)),j=G(v).force("y",W(e=>e.scaledValue).strength(t.strength||2)).force("x",H(f.middle)).force("collide",K(k)).stop();"vertical"===i&&j.force("y",W(e=>e.scaledVerticalValue).strength(t.strength||2));for(let e=0;h>e;++e)j.tick();const E=v.map((a,m)=>{const u=n&&n(a.data,m);let h=a.x,v=a.y;if("horizontal"===i)v=a.x,h=a.y;else if("radial"===i){h=(a.x-f.middle)/b*x;const e=te([l[0]/2,l[1]/2],f.pct_middle+h,a.scaledValue/2);h=e[0],v=e[1]}const j="function"==typeof k?k(a,m):k,E=o(a,m),O=t.customMark?e.createElement("g",{key:"piece-"+a.renderKey,transform:`translate(${h},${v})`},t.customMark(Object.assign(Object.assign(Object.assign({},a.data),a),{x:h,y:v}),m,{x:h,y:v,r:k,renderMode:n,styleFn:r,classFn:s,adjustedSize:l,chartSize:c,margin:d,rScale:p})):Object.assign({className:s(Object.assign(Object.assign({},a),a.data),m),markType:"rect",key:"piece-"+a.renderKey,height:2*j,width:2*j,x:h-j,y:v-j,rx:j,ry:j,style:r(Object.assign(Object.assign({},a),a.data),g)},E);return{o:y,xy:{x:h,y:v},piece:a,renderValue:u,renderElement:O}});m=[...m,...E]}),m},timeline:function({type:t,data:a,renderMode:n,eventListenersGenerator:o,styleFn:r,projection:i,classFn:s,adjustedSize:l,chartSize:c,margin:d,rScale:p}){let m=[];return Object.keys(a).forEach((u,y)=>{const h=a[u],g=[];h.pieceData.forEach((a,m)=>{let f,x,v=0,b=0;const k=n&&n(a.data,m);let j=h.x,E=a.scaledEndValue-a.scaledValue,O=a.scaledVerticalValue-E,S=h.width,M={markType:"rect",height:0>E?-E:E,width:S,x:j,y:0>E?O+E:O};if("horizontal"===i)O=h.x,j=a.scaledValue,f=a.scaledEndValue-a.scaledValue,x=a.scaledBottom,S=a.scaledEndValue-a.scaledValue,E=h.width,M={markType:"rect",height:E,width:0>S?-S:S,x:0>S?j+S:j,y:O};else if("radial"===i){let e,n;({markProps:M,tx:e,ty:n}=ea({piece:a,type:t,ordset:h,adjustedSize:l,i:m})),v=e,b=n}const A=o(a,m),$={x:j,y:O,scaledValue:f,scaledBottom:x,height:E},P=t.customMark?e.createElement("g",{key:"piece-"+a.renderKey,transform:`translate(${j},${O+E})`},t.customMark(Object.assign(Object.assign(Object.assign({},a.data),a),{x:j,y:O}),m,Object.assign(Object.assign({},$),{renderMode:n,styleFn:r,classFn:s,adjustedSize:l,chartSize:c,margin:d,rScale:p}))):Object.assign(Object.assign({className:s(Object.assign(Object.assign({},a),a.data),m),key:"piece-"+a.renderKey,style:r(Object.assign(Object.assign({},a),a.data),y)},M),A);g.push({o:u,xy:$,piece:a,tx:v,ty:b,renderValue:k,renderElement:P})}),m=[...m,...g]}),m}},na=e=>e.middle?e.middle:0,oa=()=>0;const ra=2*Math.PI,ia={bar:{items:"bar",chart:"bar chart"},clusterbar:{items:"bar",chart:"grouped bar chart"},swarm:{items:"point",chart:"swarm plot"},point:{items:"point",chart:"point plot"},timeline:{items:"bar",chart:"timeline"}},sa=(t,a,n)=>{let o;const r={},{oPadding:i=0,summaryType:s,type:l,connectorType:c,oAccessor:m,rAccessor:u,connectorStyle:x,style:v,rExtent:b,oSort:k,pieceClass:j,summaryStyle:E,summaryClass:O,dynamicColumnWidth:S,projection:M,customHoverBehavior:A,customClickBehavior:$,customDoubleClickBehavior:P,size:C,pixelColumnWidth:w,title:D,oLabel:T,hoverAnnotation:N,pieceHoverAnnotation:F,summaryHoverAnnotation:R,backgroundGraphics:V,foregroundGraphics:L,oScaleType:B,rScaleType:I,legend:_,renderKey:G,data:W,margin:H,oExtent:K,axes:Y,pieceIDAccessor:X,multiAxis:q,annotations:Z}=t,Q="radial"===M?0:i,U=jt(s),J=jt(l),ee=jt(c),ne=n.accessorConversions(m,u,G,X),oe=ne.oAccessor,re=ne.rAccessor,ie=ne.renderKey,se=()=>({}),{connectorStyle:le,summaryStyle:ce,pieceStyle:de,pieceClass:pe,summaryClass:me,connectorClass:ue,pieceRenderMode:ye,summaryRenderMode:he,connectorRenderMode:ge,pieceCanvasRender:fe,summaryCanvasRender:xe,connectorCanvasRender:ve}=n.styleFns(x,E,v,j,O,t.connectorClass,t.renderMode,t.summaryRenderMode,t.connectorRenderMode,t.canvasPieces,t.canvasSummaries,t.canvasConnectors),be="object"!=typeof D||e.isValidElement(D)||null===D?{title:D,orient:"top"}:D,ke=ne.pieceIDAccessor,je=Array.isArray(u)?u:[u],Ee=Array.isArray(m)?m:[m];let Oe=re,Se=S;if("radial"===M){if(!Se){const e=re;Se=t=>f(t,t=>{let a=0;for(const n of e)a+=n(t)||0;return a})}Oe=[()=>1]}const{allData:Me,multiExtents:Ae}=Et({data:W,renderKey:ie,oAccessor:oe,rAccessor:Oe,originalRAccessor:je,originalOAccessor:Ee,multiAxis:q});let $e;const Pe=a.props,Ce=t.data!==Pe.data||t.size[0]!==Pe.size[0]||t.size[1]!==Pe.size[1]||t.margin!==Pe.margin||!a.columnOverlays||0===a.columnOverlays.length||t.customClickBehavior!==Pe.customClickBehavior||t.customDoubleClickBehavior!==Pe.customDoubleClickBehavior||t.customHoverBehavior!==Pe.customHoverBehavior;let ze;Array.isArray(Y)?ze=Y.map(e=>"function"==typeof e?e({size:t.size}):e):Y&&(ze=[Y].map(e=>"function"==typeof e?e({size:t.size}):e)),Ae&&Y&&ze.forEach((e,t)=>{e.extentOverride=Ae[t]});const{margin:we,adjustedPosition:De,adjustedSize:Te}=n.marginCalc(H,ze,be,T,M,C),Ne=void 0===K||Array.isArray(K)?{extent:K}:K,Fe=Me.reduce((e,t)=>{const a=t.column,n=void 0!==a?a+"":a;return-1===e.indexOf(n)&&e.push(n),e},[]);let Re=Ne.extent||Fe;if("barpercent"===J.type){const e=Re.map(e=>Me.filter(t=>t.column+""===e).reduce((e,t)=>e+t.value,0)).reduce((e,t,a)=>(e[Re[a]]=t,e),{});Me.forEach(t=>{t.value=e[t.column]&&t.value/e[t.column]||0}),J.type="bar"}w&&("radial"===M?console.error("pixelColumnWidth is not honored in radial mode"):"vertical"===M?Te[0]=Re.length*w:Te[1]=Re.length*w);const Ve="vertical"===M&&[0,Te[0]]||[0,Te[1]],Le=Re.reduce((e,t)=>(e[t]=1/Re.length*Ve[1],e.total+=e[t],e),{total:0}),Be=B,Ie=Se?p():(null==Be?void 0:Be.domain)?Be:Be();let _e;Ie.domain(Re);const Ge=void 0===b||Array.isArray(b)?{extent:b,onChange:void 0,includeAnnotations:!1}:b;let We=Ge.extent,He=[0,0];"bar"===J.type&&U.type&&"none"!==U.type&&(J.type="none");const Ke=[];if(Ge.includeAnnotations&&Z&&re.forEach(e=>{Z.forEach((t,a)=>{const n=e(t,a);isFinite(n)&&Ke.push(n)})}),"timeline"===J.type){const e=Me.map(e=>e.value),t=g(e.map(e=>e[0])),a=g(e.map(e=>e[1]));We=g([...t,...a,...Ke])}else if("bar"!==J.type)We=g([...Me.map(e=>e.value),...Ke]);else{const e=[],t=[],a={},n={};for(const o of Me)0>o.value?(n[o.column]||(n[o.column]={column:o.column,value:0},t.push(n[o.column])),n[o.column].value+=o.value):(a[o.column]||(a[o.column]={column:o.column,value:0},e.push(a[o.column])),a[o.column].value+=o.value);const o=Ke.filter(e=>e>0);We=[0,0===e.length&&0===o.length?0:Math.max(y([...e.map(e=>e.value),...o]),0)];const r=Ke.filter(e=>0>e);He=[0,0===t.length?0:Math.min(h([...t.map(e=>e.value),...r]),0)],We=[He[1],We[1]]}("clusterbar"===J.type||q)&&We[0]>0&&(We[0]=0);const Ye=We;Ge.extent&&void 0!==Ge.extent[0]&&void 0!==Ge.extent[1]?We=Ge.extent:(Ge.extent&&void 0!==Ge.extent[1]&&void 0===Ge.extent[0]&&(We[1]=Ge.extent[1]),Ge.extent&&void 0!==Ge.extent[0]&&void 0===Ge.extent[1]&&(We[0]=Ge.extent[0])),(t.invertR||Ge.extent&&Ge.extent[0]>Ge.extent[1])&&(We=[We[1],We[0]]);const Xe={};for(const e of Me)Xe[e.column]||(Xe[e.column]=[]),Xe[e.column].push(e);if(void 0!==k)Re=Re.sort((e,t)=>k(e,t,Xe[e].map(e=>e.data),Xe[t].map(e=>e.data))),Ie.domain(Re);else{const e={};for(const t of Re)e[t]=f(Xe[t],e=>e.value);let t;if(Se){let e;t={},e="string"==typeof Se?e=>f(e,e=>e.data[Se]):e=>Se(e.map(e=>e.data));for(const a of Re)t[a]=e(Xe[a])}Re=Re.sort((a,n)=>{const o=e[n]-e[a];return 0!==o?o:t?t[n]-t[a]:0}),Ie.domain(Re)}if(Se){let e;e="string"==typeof Se?e=>f(e,e=>e.data[Se]):e=>Se(e.map(e=>e.data));const t=[0],a=[];_e=0,Re.forEach(t=>{const n=Me.filter(e=>e.column===t),o=e(n);a.push(o),_e+=o}),Le.total=0,Re.forEach((e,n)=>{const o=a[n]/_e*(Ve[1]-Ve[0]);Le[e]=o,Le.total+=o,n!==Re.length-1&&t.push(o+t[n])}),Ie.range(t)}else Ie.range(Ve);const qe="vertical"===M&&[0,Te[1]]||[0,Te[0]],Ze=I.domain?I:I(),Qe=Ze(0);Ge.extent&&void 0!==Ge.extent[0]&&(isNaN(Qe)||Qe===-1/0||Qe===1/0)&&(We[0]=Ge.extent[0]);const et=Ze.copy().domain(We).range(qe),tt=d().domain(qe).range(qe.reverse()),at=Ze.copy().domain(We).range(qe),nt=Le?0:Ie.bandwidth();let ot=[],rt=Te[1];"vertical"===M&&(rt=Te[0]);const it=((e,t,a)=>{const n=e.domain(),o={};return n.forEach((r,i)=>{const s=e(r)-a,l=n[i+1]?e(n[i+1]):t;o[r]=s+(l-s)/2}),o})(Ie,rt,Q);ot=Re.map(e=>Xe[e]?Xe[e]:[]);let st="vertical"===M?tt(et(0)):et(0);!isNaN(st)&&st!==-1/0&&st!==1/0||!Ge.extent||void 0===Ge.extent[0]||Qe!==-1/0&&Qe!==1/0||(st="vertical"===M?tt(et(Ge.extent[0])):et(Ge.extent[0])),Re.forEach((e,a)=>{r[e]={name:e,padding:Q,pieceData:ot[a],pieces:ot[a]},r[e].x=Ie(e)+Q/2,r[e].y=0,r[e].middle=it[e]+Q/2;let n=st,o=st,i=0;r[e].pieceData.forEach(t=>{let a;"timeline"===J.type?(t.scaledValue=et(t.value[0]),t.scaledEndValue=et(t.value[1]),t.scaledVerticalValue=at(t.value[0])):"bar"!==J.type&&"clusterbar"!==J.type?(t.scaledValue=et(t.value),t.scaledVerticalValue=at(t.value)):"clusterbar"===J.type&&(a="vertical"===M?tt(et(t.value)):et(t.value),t.scaledValue=Math.abs(st-a)),t.x=r[e].x,0>t.value?("bar"===J.type&&(t.scaledValue=Math.abs("vertical"===M?et(t.value)-et(0):et(t.value)-st)),t.base=st,t.bottom="bar"===J.type?n:0,t.middle=n-t.scaledValue/2,n="vertical"===M?n+t.scaledValue:n-t.scaledValue,t.negative=!0):("bar"===J.type&&(t.scaledValue="vertical"===M?o-tt(et(i+t.value)):et(i+t.value)-o,i+=t.value),t.base=st,t.bottom="bar"===J.type?o:0,t.middle=t.scaledValue/2+o,o="vertical"===M?o-t.scaledValue:o+t.scaledValue,t.negative=!1)}),Le?(r[e].width=Le[e]-Q,"center"===t.ordinalAlign&&(0===a?(r[e].x=r[e].x-r[e].width/2,r[e].middle=r[e].middle-r[e].width/2):(r[e].x=r[Re[a-1]].x+r[Re[a-1]].width,r[e].middle=r[e].x+r[e].width/2)),r[e].pct=Le[e]/Le.total,r[e].pct_start=(r[e].x-Ve[0])/Le.total,r[e].pct_padding=Q/Le.total,r[e].pct_middle=(r[e].middle-Ve[0])/Le.total):(r[e].width=nt-Q,"center"===t.ordinalAlign&&(r[e].x=r[e].x-r[e].width/2,r[e].middle=r[e].middle-r[e].width/2),r[e].pct=nt/Te[1],r[e].pct_start=(r[e].x-Ve[0])/Te[1],r[e].pct_padding=Q/Te[1],r[e].pct_middle=(r[e].middle-Ve[0])/Te[1])});const lt=[],ct=[],dt="object"==typeof T?Object.assign({label:!0,padding:5},T):{orient:"default",label:T,padding:5};if(T||N){const e=J.offsetAngle&&J.offsetAngle/360||0,t=J.angleRange&&J.angleRange.map(e=>e/360)||[0,1],a=t[1]-t[0],n=1>a?d().domain([0,1]).range(t):e=>e;Re.forEach(t=>{const o=z().innerRadius(0).outerRadius(et.range()[1]/2),i=r[t].pct*a,s=n(r[t].pct_start+e),l=s+i,c=s+i/2,d=o({startAngle:s*ra,endAngle:l*ra}),p=[Te[0]/2,Te[1]/2],m=o.centroid({startAngle:s*ra,endAngle:l*ra}),u=0>=m[1]||dt.orient&&"default"!==dt.orient&&"edge"!==dt.orient?0:8,y={startAngle:s,endAngle:l,midAngle:c,markD:d,translate:p,centroid:m,outerPoint:te([0,0],c,et.range()[1]/2+dt.padding+u)};r[t].pieArc=y,ct.push(y)})}if(t.oLabel){let t;if("function"==typeof dt.label)t=dt.label;else{const a={textAnchor:"middle"};"horizontal"===M&&"right"===dt.orient?a.textAnchor="start":"horizontal"===M&&(a.textAnchor="end"),t=(t,n,o)=>{const r={};let i;if("radial"===M&&"stem"===dt.orient)i=`rotate(${0>ct[o].outerPoint[0]?360*ct[o].midAngle+90:360*ct[o].midAngle-90})`;else{if("radial"===M&&"annotation"===dt.orient){const{centroid:a}=ct[o],n=15*ct.filter((e,t)=>o>t&&0>a[0]==0>ct[t].centroid[0]&&0>a[1]==0>ct[t].centroid[1]).length;let r=7*t.length,i="start",s={dx:0,dy:0};return 0>a[0]?(i="end",r=-r,s.dx=-35):s.dx=35,s.dy=0>a[1]?-35-n:35+n,e.createElement("g",null,e.createElement("path",{fill:"none",stroke:"black",strokeWidth:2,d:`M0,0L${s.dx},${s.dy}L${s.dx+r},${s.dy}`}),e.createElement("text",{textAnchor:i,x:s.dx,y:s.dy-2},t))}"radial"===M&&"center"!==dt.orient&&(i=`rotate(${0>ct[o].outerPoint[1]?360*ct[o].midAngle:360*ct[o].midAngle+180})`)}return"radial"===M&&"stem"===dt.orient&&(ct[o].outerPoint[0]>0&&0>dt.padding||0>ct[o].outerPoint[0]&&dt.padding>=0)?r.textAnchor="end":"radial"===M&&"stem"===dt.orient&&(r.textAnchor="start"),e.createElement("text",Object.assign({},a,r,{transform:i}),t)}}if(Re.forEach((a,n)=>{let o=r[a].middle,i=0;"horizontal"===M?(i=r[a].middle,o="right"===dt.orient?Te[0]+3:-3):"radial"===M&&("annotation"===dt.orient?(o=.25*ct[n].centroid[0]+.75*ct[n].outerPoint[0]+ct[n].translate[0],i=.25*ct[n].centroid[1]+.75*ct[n].outerPoint[1]+ct[n].translate[1]):"center"===dt.orient?(o=ct[n].centroid[0]+ct[n].translate[0],i=ct[n].centroid[1]+ct[n].translate[1]):(o=ct[n].outerPoint[0]+ct[n].translate[0],i=ct[n].outerPoint[1]+ct[n].translate[1]));const s=dt.labelFormatter?dt.labelFormatter(a):a,l=t(s,r[a].pieceData.map(e=>e.data),n,r[a]);lt.push(e.createElement("g",{key:"olabel-"+n,transform:`translate(${o},${i})`},l))}),"vertical"===M){let t;t="top"===dt.orient?-15:15+et.range()[1],o=e.createElement("g",{key:"ordinalframe-labels-container",className:"ordinal-labels",transform:`translate(0,${t})`},lt)}else("horizontal"===M||"radial"===M)&&(o=e.createElement("g",{key:"ordinalframe-labels-container",className:"ordinal-labels"},lt))}const pt=(t.hoverAnnotation||t.pieceHoverAnnotation)&&-1!==["bar","clusterbar","timeline"].indexOf(J.type);let mt;pt||t.summaryHoverAnnotation||!(t.hoverAnnotation||t.customClickBehavior||t.customDoubleClickBehavior||t.customHoverBehavior)||($e=Ce?function({oExtent:e,projectedColumns:t,rScale:a,pieArcs:n,padding:o,projection:r,customDoubleClickBehavior:i,customClickBehavior:s,customHoverBehavior:l}){return e.map((e,c)=>{const d=t[e].width;let p=t[e].x,m=0,u=a.range()[1],y=d+o;if("horizontal"===r&&(m=t[e].x,p=0,y=a.range()[1],u=d),"radial"===r){const{markD:o,centroid:r,translate:d,midAngle:p}=n[c],m={type:"column-hover",column:t[e],pieces:t[e].pieceData,summary:t[e].pieceData,arcAngles:{centroid:r,translate:d,midAngle:p,length:a.range()[1]/2}};return{markType:"path",key:"hover"+e,d:o,transform:`translate(${d.join(",")})`,style:{opacity:0},overlayData:m,onDoubleClick:i&&(e=>{i(m,e)}),onClick:s&&(e=>{s(m,e)}),onMouseEnter:l&&(e=>{l(m,e)}),onMouseLeave:l&&(e=>{l(e)})}}const h={type:"column-hover",column:t[e],pieces:t[e].pieceData,summary:t[e].pieceData};return{markType:"rect",key:"hover-"+e,x:p,y:m,height:u,width:y,style:{opacity:0},onDoubleClick:i&&(e=>{i(h,e)}),onClick:s&&(e=>{s(h,e)}),onMouseEnter:l&&(e=>{l(h,e)}),onMouseLeave:e=>{l(void 0,e)},overlayData:h}})}({oExtent:Re,projectedColumns:r,rScale:et,pieArcs:ct,padding:Q,projection:M,customDoubleClickBehavior:P,customClickBehavior:$,customHoverBehavior:A}):a.columnOverlays);const ut=J.type&&"none"!==J.type?J.type:"point",yt=("function"==typeof ut?ut:aa[ut])({type:J,data:r,renderMode:ye,eventListenersGenerator:se,styleFn:de,projection:M,classFn:pe,adjustedSize:Te,chartSize:C,margin:we,rScale:et}),gt=yt.reduce((e,t)=>(t.o&&(e[t.o]||(e[t.o]=[]),e[t.o].push(t)),e),{});Object.keys(r).forEach(e=>{r[e].xyData=gt[e]||[]});let vt={};U.type&&"none"!==U.type&&(vt=ht({data:r,type:U,renderMode:he,styleFn:ce,classFn:me,projection:M,eventListenersGenerator:se,adjustedSize:Te,margin:we,axisCreator:Ut}),vt.originalData=r);const kt="horizontal"===M?na:oa,St="vertical"===M?na:oa,Mt=yt.map(e=>e.piece&&e.xy?Object.assign(Object.assign({},e.piece),{type:"frame-hover",x:e.xy.x+St(e.xy),y:e.xy.y+kt(e.xy)}):null).filter(e=>e);((N||F)&&-1===["bar","clusterbar","timeline"].indexOf(J.type)||R)&&(R&&vt.xyPoints?mt=vt.xyPoints.map(e=>Object.assign({},e,{type:"frame-hover",isSummaryData:!0,x:e.x,y:e.y})):(N||F)&&yt&&(mt=Mt));const{axis:At,axesTickLines:$t}=(({projection:t,axis:a,adjustedSize:n,size:o,rScale:r,rScaleType:i,pieceType:s,rExtent:l,data:c,maxColumnValues:d=1,xyData:p,margin:m,thresholds:u})=>{if(!a)return{axis:void 0,axesTickLines:void 0};let y,h;if("radial"!==t&&a){h=[];const s=[0,0];y=a.map((a,l)=>{let y,g=a.className||"";const f=a.extentOverride?a.extentOverride:r.domain(),x=["left","right"],v=-1===x.indexOf(a.orient)&&"vertical"!==t||-1!==x.indexOf(a.orient)&&"horizontal"!==t?i.domain(f):i.domain([0,d]),b=a.orient,k=-1===x.indexOf(a.orient)&&"vertical"!==t||-1!==x.indexOf(a.orient)&&"horizontal"!==t?r.range():[0,"vertical"===t?n[0]:n[1]];"right"===b?(v.range(k.reverse()),g+=" right y"):"left"===b?(g+=" left y",v.range(k.reverse())):"top"===b?(g+=" top x",v.range(k)):"bottom"===b&&(g+=" bottom x",v.range(k)),a.tickValues&&Array.isArray(a.tickValues)?y=a.tickValues:a.tickValues instanceof Function?y=a.tickValues(c,o,r):!a.tickValues&&u&&(y=u.map(e=>r.invert(e)));const j=Ue({padding:a.padding,tickValues:y,scale:v,ticks:a.ticks,orient:b,size:n,footer:a.footer,tickSize:a.tickSize,jaggedBase:a.jaggedBase}),E=Je({className:a.className,axisParts:j,orient:b,tickLineGenerator:a.tickLineGenerator,jaggedBase:a.jaggedBase,scale:v});return h.push(E),"under"===a.baseline&&h.push(((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,n,a.className)),e.createElement(xt,Object.assign({},a,{key:a.key||"orframe-axis-"+l,axisParts:j,orient:b,size:n,position:s,tickValues:y,scale:v,className:g,marginalSummaryType:"string"==typeof a.marginalSummaryType?{type:a.marginalSummaryType}:a.marginalSummaryType,margin:m,xyPoints:p.map(e=>({x:"vertical"===t?0:e.value,y:"vertical"===t?e.value:0,data:e.data}))}))})}else if("radial"===t&&a){const{innerRadius:t=0}=s,o=[];a.forEach(a=>{const{tickValues:s=r.ticks(Math.max(2,(n[0]/2-t)/50)),label:c,tickFormat:d=e=>e}=a,p=i.domain(l).range([t,n[0]/2]),m=s instanceof Function?s({orient:a.orient}):s;m.forEach((a,n)=>{const r=p(a);if(0!==t||0!==a){let t,s="";if(c&&n===m.length-1){const a="string"==typeof c?{locationDistance:15}:c,{locationDistance:n=15}=a;s=Math.random()+" ",t=e.createElement("g",{className:"axis-label radial",transform:`translate(0,${n})`},e.createElement("text",{textAnchor:"middle"},e.createElement("textPath",{startOffset:r*Math.PI*.5,xlinkHref:"#"+s},c.name)))}o.push(e.createElement("g",{key:"orframe-radial-axis-element-"+a,className:"axis axis-label axis-tick radial",transform:"translate(0,0)"},e.createElement("path",{id:s,d:(i=r,["M",bt(0-i),bt(0),"a",i,i,0,1,0,2*i,0,"a",i,i,0,1,0,-2*i,0].join(" ")+"Z"),r:r,stroke:"gray",fill:"none"}),e.createElement("text",{y:5-r,textAnchor:"middle"},d(a)),t))}var i})}),y=[e.createElement("g",{key:a[0].key||"orframe-radial-axis-container",className:"axis-labels",transform:`translate(${n[0]/2},${n[1]/2})`},o)]}return{axis:y,axesTickLines:h}})({axis:ze,data:Me,projection:M,adjustedSize:Te,size:C,rScale:et,rScaleType:Ze.copy(),pieceType:J,rExtent:We,maxColumnValues:_e,xyData:Mt,margin:we,thresholds:vt.thresholds});return Object.assign({pieceDataXY:mt,oAccessor:oe,rAccessor:re,summaryType:U,type:J},function(t){const{usesPieceOverlays:a,shouldRecalculateOverlay:n,calculatedPieceData:o,projection:r,customClickBehavior:i,customDoubleClickBehavior:s,customHoverBehavior:l,currentState:c,connectorStyle:d,connectorClass:p,connectorRenderMode:m,connectorCanvasRender:u,summaryCanvasRender:y,pieceCanvasRender:h,connectorType:g,eventListenersGenerator:f,pieceType:x,summaryStyle:v,summaryClass:b,pieceStyle:k,pieceClass:j,keyedData:E,oExtent:O,projectedColumns:S,calculatedSummaries:M,oAccessor:A,rScale:$,calculatedRExtent:P,calculatedOExtent:C,rExtentSettings:z,oExtentSettings:w,adjustedPosition:D,adjustedSize:T,margin:N,backgroundGraphics:F,foregroundGraphics:R,arrayWrappedAxis:V,axis:L,axesTickLines:B,oLabels:I,title:_,oScaleType:G,instantiatedRScaleType:W,oScale:H,rExtent:K,legend:Y,pieceIDAccessor:X,currentProps:q}=t;let{columnOverlays:Z}=t;if(a){const t="horizontal"===r?na:oa,a="vertical"===r?na:oa;Z=n?o.map((n,o)=>{const r=Object.assign(Object.assign({},n.piece),{x:n.xy.x+a(n.xy),y:n.xy.y+t(n.xy)});return e.isValidElement(n.renderElement)?{renderElement:n.renderElement,overlayData:r}:Object.assign(Object.assign({},n.renderElement),{key:"hover-"+o,style:{opacity:0},overlayData:r,onClick:i&&(e=>{i(r.data,e)}),onDoubleClick:s&&(e=>{s(r.data,e)}),onMouseEnter:l&&(e=>{l(r.data,e)}),onMouseLeave:l&&(e=>{l(void 0,e)})})}):c.columnOverlays}const Q={connectors:{accessibleTransform:(e,t)=>e[t],projection:r,data:{keyedData:E,oExtent:O},styleFn:d,classFn:p,renderMode:m,canvasRender:u,behavior:Ot,type:g,eventListenersGenerator:f,pieceType:x},summaries:{accessibleTransform:(e,t)=>{const a=O[t];return{type:"column-hover",column:S[a],pieces:S[a].pieceData,summary:S[a].pieceData,oAccessor:A}},data:M.marks,behavior:ft,canvasRender:y,styleFn:v,classFn:b},pieces:{accessibleTransform:(e,t)=>Object.assign(Object.assign({},e[t].piece?Object.assign(Object.assign({},e[t].piece),e[t].xy):e[t]),{type:"frame-hover"}),shouldRender:x.type&&"none"!==x.type,data:o,behavior:ae,canvasRender:h,styleFn:k,classFn:j,axis:V,ariaLabel:void 0!==x.type&&"function"!=typeof x.type&&ia[x.type]||{items:"piece",chart:"ordinal chart"}}};let U;if(z.onChange&&(c.calculatedRExtent||[]).join(",")!==(P||[]).join(",")&&z.onChange(P),w.onChange&&(c.calculatedOExtent||[]).join(",")!==(C||[]).join(",")&&w.onChange(C),Y&&(U=!0===Y?{}:Object.assign({},Y),U.legendGroups)){const e=new Map(O.map((e,t)=>[e,t]));U.legendGroups=U.legendGroups.map(t=>Object.assign(Object.assign({},t),{items:[...t.items].sort((t,a)=>(e.has(t.label)?e.get(t.label):1/0)-(e.has(a.label)?e.get(a.label):1/0))}))}return{adjustedPosition:D,adjustedSize:T,backgroundGraphics:F,foregroundGraphics:R,axisData:V,axes:L,axesTickLines:B,oLabels:{labels:I},title:_,columnOverlays:Z,renderNumber:c.renderNumber+1,oScaleType:G,rScaleType:W,oExtent:O,rExtent:K,oScale:H,rScale:$,calculatedOExtent:C,calculatedRExtent:P,projectedColumns:S,margin:N,legendSettings:U,orFrameRender:Q,pieceIDAccessor:X,props:q}}({usesPieceOverlays:pt,shouldRecalculateOverlay:Ce,calculatedPieceData:yt,projection:M,customClickBehavior:$,customDoubleClickBehavior:P,customHoverBehavior:A,currentState:a,connectorStyle:le,connectorClass:ue,connectorRenderMode:ge,connectorCanvasRender:ve,summaryCanvasRender:xe,pieceCanvasRender:fe,connectorType:ee,eventListenersGenerator:se,pieceType:J,summaryStyle:ce,summaryClass:me,pieceStyle:de,pieceClass:pe,keyedData:gt,oExtent:Re,projectedColumns:r,calculatedSummaries:vt,oAccessor:oe,rScale:et,calculatedRExtent:Ye,calculatedOExtent:Fe,rExtentSettings:Ge,oExtentSettings:Ne,adjustedPosition:De,adjustedSize:Te,margin:we,backgroundGraphics:V,foregroundGraphics:L,arrayWrappedAxis:ze,axis:At,axesTickLines:$t,oLabels:o,title:be,columnOverlays:$e,oScaleType:B,instantiatedRScaleType:Ze,oScale:Ie,rExtent:We,legend:_,pieceIDAccessor:ke,currentProps:t}))};const la=d(),ca=d(),da={y:"y",x:"x"},pa={top:0,bottom:0,left:0,right:0},ma={annotations:[],foregroundGraphics:[],projection:"vertical",size:[500,500],className:"",data:[],oScaleType:m(),rScaleType:d,type:"none",optimizeCustomTooltipPosition:!1};function ua(t){const a=Object.assign(Object.assign({},ma),t),r=c({marginCalc:Y((e,t,a,n,o,r)=>{const i=(({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 i={top:0,bottom:0,left:0,right:0};let s="left";t&&"radial"!==o&&t.forEach(e=>{s=e.orient,i[s]=e.label?60:50});const{title:l,orient:c}=vt(a);return!l||"string"==typeof l&&0===l.length||(i[c]+=40),n&&"radial"!==o&&("bottom"===s||"top"===s?i.left+=50:i.bottom+=50),i})({margin:e,axes:t,title:a,oLabel:n,projection:o,size:r}),{adjustedPosition:s,adjustedSize:l}=function({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}}({size:r,margin:i,projection:o});return{margin:i,adjustedPosition:s,adjustedSize:l}}),structureData:Y((e,t,a,n,o,r,i)=>Et({data:e,renderKey:t,oAccessor:a,rAccessor:n,originalRAccessor:o,originalOAccessor:r,multiAxis:i})),accessorConversions:Y((e,t,a,n)=>({oAccessor:Xt(e,e=>e.renderKey),rAccessor:Xt(t,e=>e.value||1),renderKey:Yt(a,(e,t)=>t),pieceIDAccessor:Yt(n,()=>"")})),styleFns:Y((e,t,a,n,o,r,i,s,l,c,d,p)=>({connectorStyle:Yt(e,()=>({}),!0),summaryStyle:Yt(t,()=>({}),!0),pieceStyle:Yt(a,()=>({}),!0),pieceClass:Yt(n,()=>"",!0),summaryClass:Yt(o,()=>"",!0),connectorClass:Yt(r,()=>"",!0),pieceRenderMode:Yt(i,void 0,!0),summaryRenderMode:Yt(s,void 0,!0),connectorRenderMode:Yt(l,void 0,!0),pieceCanvasRender:Yt(c,void 0,!0),summaryCanvasRender:Yt(d,void 0,!0),connectorCanvasRender:Yt(p,void 0,!0)}))}),s={adjustedPosition:[],adjustedSize:[],backgroundGraphics:void 0,foregroundGraphics:void 0,axisData:void 0,renderNumber:0,oLabels:{labels:[]},oAccessor:Xt("renderKey"),rAccessor:Xt("value"),oScale:m(),rScale:d(),axes:void 0,calculatedOExtent:[],calculatedRExtent:[0,1],columnOverlays:[],dataVersion:void 0,legendSettings:void 0,margin:{top:0,bottom:0,left:0,right:0},oExtent:[],oScaleType:m(),orFrameRender:{},pieceDataXY:[],pieceIDAccessor:Yt("semioticPieceID"),projectedColumns:{},rExtent:[],rScaleType:d(),summaryType:{type:"none"},title:{},type:{type:"none"},props:a},l=i(()=>Object.assign(Object.assign({},s),sa(a,s,r.current)),[]),p=function(e,t,a){let n=c(a),o=i(()=>{let e=n.current,a=function(e,t,a){const{props:n}=t,o=!t.dataVersion&&X.some(t=>n[t]!==e[t]),r=!t.dataVersion&&q.some(t=>n[t]!==e[t]);return t.dataVersion&&t.dataVersion!==e.dataVersion||!t.projectedColumns||o||n.size[0]!==e.size[0]||n.size[1]!==e.size[1]||r?Object.assign(Object.assign({},sa(e,t,a)),{props:e}):{props:e}}(t,e,r.current);return null!=a?Object.assign(Object.assign({},e),a):e},[t]);return n.current=o,o}(0,a,l);!function(e,t){let a=c();a.current=[e,t],o(()=>()=>{const[e,t]=a.current,n=e.onUnmount;n&&n(e,t)},[])}(a,p);const x=c(a);x.current=a;const v=c(p);v.current=p;const b=n(t=>function(t,a,{d:n,i:o,annotationLayer:r}){const{projection:i,svgAnnotationRules:s}=t,{adjustedPosition:l,adjustedSize:c,oAccessor:d,rAccessor:p,oScale:m,rScale:g,projectedColumns:f,orFrameRender:x,pieceIDAccessor:v,rScaleType:b,summaryType:k,type:j}=a;let E=[0,0];if(n.isColumnAnnotation){const{coordinates:[e,t]}=me({d:n,projectedColumns:f,oAccessor:d,summaryType:k,type:j,projection:i,adjustedPosition:l,adjustedSize:c});E=[e,t]}else if(n.coordinates||"enclose"===n.type&&n.neighbors)E=(n.coordinates||n.neighbors).map(e=>{const t=ne(d,e)||e.column,a=f[t],n=ue(v,a,e);return ye({p:e,adjustedSize:c,rScale:g,rAccessor:p,idPiece:n,projection:i,oColumn:a,rScaleType:b})});else{const e=ne(d,n)||n.column,t=f[e],a=ue(v,t,n);E=ye({p:n,adjustedSize:c,rScale:g,rAccessor:p,idPiece:a,projection:i,oColumn:t,rScaleType:b})}const{voronoiHover:O}=r,S=s&&s({d:n,i:o,oScale:m,rScale:g,oAccessor:d,rAccessor:p,orFrameProps:t,orFrameState:a,screenCoordinates:E,adjustedPosition:l,adjustedSize:c,annotationLayer:r,categories:f,voronoiHover:O});return s&&null!==S?S:"desaturation-layer"===n.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:n.style instanceof Function?n.style(n,o):n.style,size:c,i:o,key:n.key}):"ordinal-line"===n.type?(({screenCoordinates:t,d:a,voronoiHover:n})=>{const o=C().x(e=>e[0]).y(e=>e[1]);a.curve&&o.curve(ie[a.curve]||a.curve);const r="function"==typeof a.lineStyle?a.lineStyle(a):a.lineStyle||{};return e.createElement("g",{key:"ordinal-line-annotation"},e.createElement("path",{stroke:"currentColor",fill:"none",style:r,d:o(t)}),(a.points||a.interactive)&&t.map((t,o)=>{const r="function"==typeof a.pointStyle?a.pointStyle(a.coordinates[o],o):a.pointStyle||{};return e.createElement("g",{transform:`translate(${t[0]},${t[1]})`,key:"ordinal-line-point-"+o},a.points&&e.createElement("circle",{style:r,r:a.radius||5,fill:"currentColor"}),a.interactive&&e.createElement("circle",{style:{pointerEvents:"all"},r:a.hoverRadius||15,opacity:0,onMouseEnter:()=>n(Object.assign(Object.assign({type:"frame-hover"},a.coordinates[o]),{data:a.coordinates[o]})),onMouseOut:()=>n()}))}))})({d:n,screenCoordinates:E,voronoiHover:O}):"or"===n.type?(({d:t,i:a,screenCoordinates:n,projection:o})=>e.createElement("text",{key:`${t.label}annotationtext${a}`,x:parseInt(n[0]+("horizontal"===o?10:0)),y:parseInt(n[1]+("vertical"===o?10:0)),className:"annotation annotation-or-label "+(t.className||""),"data-testid":"annotation-or-label",textAnchor:"middle"},t.label))({d:n,i:o,screenCoordinates:E,projection:i}):"highlight"===n.type?(({d:t,pieceIDAccessor:a,orFrameRender:n,oAccessor:o})=>{const r=a(t),i=ne(o,t),{pieces:s}=n,{styleFn:l}=s;return[...s&&s.data.filter(e=>!(void 0!==r&&a(Object.assign(Object.assign({},e.piece),e.piece.data))!==r||void 0!==i&&ne(o,e.piece.data)!==i)).map((a,n)=>{let o={style:l(Object.assign(Object.assign({},a.piece),a.piece.data))};t.style&&"function"==typeof t.style?o={style:Object.assign(Object.assign({},o),t.style(Object.assign(Object.assign({},a.piece),a.piece.data)))}:t.style&&(o={style:Object.assign(Object.assign({},o),t.style)});const r=Object.assign(Object.assign({},a.renderElement),o),i="highlight-annotation "+(t.class&&"function"==typeof t.class&&t.class(a.piece.data,n)||t.class&&t.class||"");if(e.isValidElement(a.renderElement))return e.cloneElement(a.renderElement,Object.assign(Object.assign({},o),{className:i}));const{markType:s}=r,c=Z(r,["markType"]);return e.createElement(s||"path",Object.assign(Object.assign({fill:"none",stroke:"currentColor",strokeWidth:"2px",key:"highlight-piece-"+n},c),{className:i}))})||[]]})({d:n,pieceIDAccessor:v,orFrameRender:x,oAccessor:d}):"function"==typeof n.type||ya.has(n.type)?(({d:t,i:a,screenCoordinates:n})=>{const o=Object.assign({dx:0,dy:0,note:{label:t.label,orientation:t.orientation,align:t.align},connector:{end:"arrow"}},t,{x:n[0],y:n[1],type:"function"==typeof t.type?t.type:void 0,screenCoordinates:n});return t.fixedX&&(o.x=t.fixedX),t.fixedY&&(o.y=t.fixedY),e.createElement(ee,{key:t.key||"annotation-"+a,noteData:o})})({d:n,i:o,screenCoordinates:E}):"enclose"===n.type?(({d:t,i:a,screenCoordinates:n})=>(({d:t,i:a,circle:n})=>{const{padding:o=2,radiusPadding:r=o,label:i}=t,s=Object.assign({dx:0,dy:0,note:{label:i},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(s.rp)switch(s.rp){case"top":s.dx=0,s.dy=-n.r-s.rd;break;case"bottom":s.dx=0,s.dy=n.r+s.rd;break;case"left":s.dx=-n.r-s.rd,s.dy=0;break;default:s.dx=n.r+s.rd,s.dy=0}return e.createElement(ee,{key:t.key||"annotation-"+a,noteData:s})})({d:t,i:a,circle:u(n.map(e=>({x:e[0],y:e[1],r:2})))}))({d:n,i:o,screenCoordinates:E}):"enclose-rect"===n.type?(({d:t,i:a,screenCoordinates:n})=>(({bboxNodes:t,d:a,i:n})=>{const{padding:o=0,dx:r=-25,dy:i=-25,label:s}=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:i,note:{label:s},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(ee,{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:n,screenCoordinates:E,i:o}):"r"===n.type?(({d:t,i:a,screenCoordinates:n,rScale:o,rAccessor:r,adjustedSize:i,adjustedPosition:s,projection:l})=>{let c,d,p,m,u,y,h;if("radial"===l)return e.createElement(ee,{key:t.key||"annotation-"+a,noteData:Object.assign({dx:50,dy:50,note:{label:t.label},connector:{end:"arrow"}},t,{type:"callout-circle",subject:{radius:o(ne(r,t))/2,radiusPadding:0},x:i[0]/2,y:i[1]/2})});"horizontal"===l?(y=50,h=50,m=t.offset||25*a,c=n[0],d=m,u={x:c,y1:0,y2:i[1]+s[1]}):(y=50,h=-20,p=t.offset||25*a,d=n[1],c=p,u={y:d,x1:0,x2:i[0]+s[0]});const g=Object.assign({dx:y,dy:h,note:{label:t.label},connector:{end:"arrow"}},t,{type:"xy-threshold",x:c,y:d,subject:u});return e.createElement(ee,{key:t.key||"annotation-"+a,noteData:g})})({d:n,i:o,screenCoordinates:E,rScale:g,rAccessor:p,projection:i,adjustedSize:c,adjustedPosition:l}):"category"===n.type?(({projection:t,d:a,i:n,categories:o,adjustedSize:r})=>{const{bracketType:i="curly",position:s=("vertical"===t?"top":"left"),depth:l=30,offset:c=0,padding:d=0}=a,p=(Array.isArray(a.categories)?a.categories:[a.categories]).map(e=>o[e]);if("radial"===t){const t=d/r[1],o=h(p.map(e=>e.pct_start+e.pct_padding/2+t/2)),s=y(p.map(e=>e.pct_start+e.pct-e.pct_padding/2-t/2)),m=Math.min(r[0],r[1])/2,u=r[0]/2,g=r[1]/2,{arcPath:f,textArcPath:x}=function({x:e,y:t,radius:a,startAngle:n,endAngle:o,inset:r,outset:i,curly:s=!0}){const l=de(e,t,a+i,o),c=de(e,t,a+i,n),d=de(e,t,a+i-r,o),p=de(e,t,a+i-r,n),m=o-n,u=m>180?"1":"0";let y;if(s){const r=Math.min(10,m/4),s=de(e,t,a+i,(n+o)/2+r),u=de(e,t,a+i+10,(n+o)/2),h=de(e,t,a+i,(n+o)/2-r);y=["M",d.x,d.y,"L",l.x,l.y,"A",a+i,a+i,0,0,0,s.x,s.y,"A",a+i,a+i,1,0,1,u.x,u.y,"A",a+i,a+i,1,0,1,h.x,h.y,"A",a+i,a+i,0,0,0,c.x,c.y,"L",p.x,p.y].join(" ")}else y=["M",d.x,d.y,"L",l.x,l.y,"A",a+i,a+i,0,u,0,c.x,c.y,"L",p.x,p.y].join(" ");const h=(n+o)/2;let g,f,x,v,b;const k=h>90&&270>h;k?(g=12,f=o-n>180?"1":"0",b=0):(f=o-n>180?"1":"0",g=5,b=1),g+=s?10:0;const j=de(e,t,a+i+g,o),E=de(e,t,a+i+g,n);return k?(v=j,x=E):(v=E,x=j),{arcPath:y,textArcPath:["M",v.x,v.y,"A",a+i+g,a+i+g,b,f,b,x.x,x.y].join(" ")}}({x:0,y:0,radius:m,startAngle:360*o,endAngle:360*s,inset:l,outset:c,curly:"curly"===i}),v=`text-path-${n}-${Math.random()}`;return e.createElement("g",{className:"category-annotation annotation",transform:`translate(${u},${g})`},e.createElement("path",{d:f,fill:"none",stroke:"currentColor"}),e.createElement("path",{id:v,d:x,style:{display:"none"}}),e.createElement("text",{"font-size":"12.5"},e.createElement("textPath",{startOffset:"50%",textAnchor:"middle",xlinkHref:"#"+v},a.label)))}{const o=h(p.map(e=>e.x)),m=y(p.map(e=>e.x+e.width));if("vertical"===t){let t="top"===s?0:r[1];return t+="top"===s?-c:c,e.createElement(ee,{key:a.key||"annotation-"+n,noteData:{type:"bracket",y:t,x:o-d,note:{title:a.title||a.label,label:a.title?a.label:void 0},subject:{type:i,width:m-o+2*d,depth:"top"===s?-l:l}}})}if("horizontal"===t){let t="left"===s?0:r[0];return t+="left"===s?-c:c,e.createElement(ee,{key:a.key||"annotation-"+n,noteData:{type:"bracket",x:t,y:o-d,note:{title:a.title||a.label,label:a.title?a.label:void 0},subject:{type:i,height:m-o+2*d,depth:"left"===s?-l:l}}})}}})({projection:i,d:n,i:o,categories:a.projectedColumns,adjustedSize:c}):null}(x.current,v.current,t),[]),k=n(t=>function(t,a,{d:n,i:o,annotationLayer:r}){const{adjustedPosition:i,adjustedSize:s,oAccessor:l,rAccessor:c,oScale:d,rScale:p,projectedColumns:m,summaryType:u,type:y,pieceIDAccessor:h,rScaleType:x}=a,{htmlAnnotationRules:v,tooltipContent:b,optimizeCustomTooltipPosition:k,projection:j}=t;let E=[0,0];const{voronoiHover:O}=r;if(n.coordinates||"enclose"===n.type&&n.neighbors)E=(n.coordinates||n.neighbors).map(e=>{const t=ne(l,e)||e.column,a=m[t],n=ue(h,a,e);return ye({p:e,adjustedSize:s,rScale:p,rAccessor:c,idPiece:n,projection:j,oColumn:a,rScaleType:x})});else if("column-hover"===n.type){const{coordinates:[e,t]}=me({d:n,projectedColumns:m,oAccessor:l,summaryType:u,type:y,projection:j,adjustedPosition:i,adjustedSize:s});E=[e,t]}else{const e=ne(l,n)||n.column,t=m[e],a=ue(h,t,n);E=ye({p:n,adjustedSize:s,rScale:p,rAccessor:c,idPiece:a,projection:j,oColumn:t,rScaleType:x})}const S="vertical"===j?x.domain(p.domain()).range(p.range().reverse()):p,M=v&&v({d:n,i:o,oScale:d,rScale:S,oAccessor:l,rAccessor:c,orFrameProps:t,screenCoordinates:E,adjustedPosition:i,adjustedSize:s,annotationLayer:r,orFrameState:a,categories:a.projectedColumns,voronoiHover:O});return v&&null!==M?M:"frame-hover"===n.type?(({d:t,i:a,rAccessor:n,oAccessor:o,projection:r,tooltipContent:i,optimizeCustomTooltipPosition:s,pieceIDAccessor:l,projectedColumns:c,adjustedSize:d,rScale:p,type:m,rScaleType:u})=>{let y;i="pie"===i?()=>pe({column:t.column}):i;const h=c[ne(o,t)||t.column],f=ue(l,h,t);if(!f)return null;const x=("clusterbar"===m.type||"point"===m.type||"swarm"===m.type)&&void 0!==t.x&&void 0!==t.y||t.isSummaryData?[t.x,t.y]:ye({p:t,adjustedSize:d,rScale:p,oColumn:h,rAccessor:n,idPiece:f,projection:r,rScaleType:u});if(t.isSummaryData){let a=t.label;t.pieces&&0!==t.pieces.length&&(1===t.pieces.length?(a=[],n.forEach(e=>{a.push(e(t.pieces[0].data))})):(a=[],n.forEach(e=>{const n=g(t.pieces.map(e=>e.data).map(e));a.push(`From ${n[0]} to ${n[1]}`)})));const o=e.createElement("p",{key:"html-annotation-content-2"},a);y=[e.createElement("p",{key:"html-annotation-content-1"},t.key),o,e.createElement("p",{key:"html-annotation-content-3"},t.value)]}else t.data?(y=[],o.forEach((t,a)=>{if(f.data){const n=ce(t,f.data);y.push(e.createElement("p",{key:"html-annotation-content-o-"+a},n))}}),n.forEach((t,a)=>{if(f.data){const n=ce(t,f.data);y.push(e.createElement("p",{key:"html-annotation-content-r-"+a},n))}})):t.label&&(y=t.label);let v=e.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},y);if("frame-hover"===t.type&&i&&f){const t=Object.assign(Object.assign(Object.assign({},f),f.data),{column:h,pieces:h?h.pieceData.map(e=>e.data):[]});v=s?e.createElement(le,{tooltipContent:i,tooltipContentArgs:t}):i(t)}const b=parseInt(x[0]),k=d&&b>d[0]/2,j={position:"absolute",top:parseInt(x[1])+"px"};return k?j.right=d[0]-b+"px":j.left=b+"px",e.createElement("div",{key:"xylabel-"+a,className:`annotation annotation-or-label ${r} ${t.className||""}`,"data-testid":"annotation-or-label",style:j},v)})({d:n,i:o,rAccessor:c,oAccessor:l,projection:j,tooltipContent:b,optimizeCustomTooltipPosition:k,projectedColumns:m,pieceIDAccessor:h,adjustedSize:s,rScale:p,type:y,rScaleType:x}):"column-hover"===n.type?(({d:t,i:a,summaryType:n,oAccessor:o,type:r,adjustedPosition:i,adjustedSize:s,projection:l,tooltipContent:c,optimizeCustomTooltipPosition:d,projectedColumns:p})=>{const{coordinates:[m,u],pieces:y,column:h}=me({d:t,projectedColumns:p,oAccessor:o,summaryType:n,type:r,projection:l,adjustedPosition:i,adjustedSize:s});if(void 0===h)return null;const g=[];o.forEach((t,a)=>{if(y[0].data){const n=ce(t,y[0].data);g.push(e.createElement("p",{key:"or-annotation-o-"+a},n))}});let x=e.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},g,e.createElement("p",{key:"or-annotation-2"},f(y.map(e=>e.value).filter(e=>e>0))));if("column-hover"===t.type&&c){"pie"===c&&(c=pe);const a=Object.assign(Object.assign({},t),{pieces:y.map(e=>e.data),column:h,oAccessor:o});x=d?e.createElement(le,{tooltipContent:c,tooltipContentArgs:a}):c(a)}else t.label&&(x=e.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},t.label));const v=parseInt(m),b=s&&v>s[0]/2,k={position:"absolute",top:parseInt(u)+"px"};return b?k.right=s[0]-v+"px":k.left=v+"px",e.createElement("div",{key:"orlabel-"+a,className:`annotation annotation-or-label ${l} ${t.className||""}`,"data-testid":"annotation-or-label",style:k},x)})({d:n,i:o,summaryType:u,oAccessor:l,projectedColumns:m,type:y,adjustedPosition:i,adjustedSize:s,projection:j,tooltipContent:b,optimizeCustomTooltipPosition:k}):null}(x.current,v.current,t),[]),{className:j,annotationSettings:E,annotations:O,matte:S,renderKey:M,interaction:A,customClickBehavior:$,customHoverBehavior:P,customDoubleClickBehavior:z,projection:w,backgroundGraphics:D,foregroundGraphics:T,afterElements:N,beforeElements:F,disableContext:R,summaryType:V,summaryHoverAnnotation:L,pieceHoverAnnotation:B,hoverAnnotation:I,canvasPostProcess:_,canvasPieces:G,canvasSummaries:W,canvasConnectors:H,renderOrder:K,additionalDefs:Q,sketchyRenderingEngine:U,frameRenderOrder:J,disableCanvasInteraction:te,disableProgressiveRendering:ae,transition:oe}=a,{orFrameRender:re,projectedColumns:se,adjustedPosition:he,adjustedSize:ge,legendSettings:fe,columnOverlays:xe,axesTickLines:ve,axes:be,margin:ke,pieceDataXY:je,oLabels:Ee,title:Oe}=p,Se=[ge[0]+ke.left+ke.right,ge[1]+ke.top+ke.bottom];let Me;V&&V.amplitude&&(Me="horizontal"===w?{top:V.amplitude,bottom:0,left:0,right:0}:"radial"===w?pa:{top:0,bottom:0,left:V.amplitude,right:0});const Ae=i(()=>"function"==typeof T?T({size:Se,margin:ke}):T,[T,Se,ke]),$e=i(()=>`${j} ${w}`,[j,w]),Pe=i(()=>L||I||B,[L,B,I]),Ce=i(()=>A&&Object.assign(Object.assign({},A),{brush:!0!==A.columnsBrush&&"oBrush",projection:w,projectedColumns:se}),[A,w,se]),ze=i(()=>!!(G||W||H),[G,W,H]);return e.createElement(Ft,{name:"ordinalframe",renderPipeline:re,adjustedPosition:he,adjustedSize:ge,size:Se,xScale:la,yScale:ca,axes:be,axesTickLines:ve,title:Oe,matte:S,additionalDefs:Q,className:$e,frameKey:"none",renderFn:M,projectedCoordinateNames:da,defaultSVGRule:b,defaultHTMLRule:k,hoverAnnotation:Pe,annotations:O,annotationSettings:E,legendSettings:fe,interaction:Ce,customClickBehavior:$,customHoverBehavior:P,customDoubleClickBehavior:z,points:je,margin:ke,columns:se,backgroundGraphics:D,foregroundGraphics:Ae,beforeElements:F,afterElements:N,overlay:xe,rScale:p.rScale,projection:w,disableContext:R,interactionOverflow:Me,canvasPostProcess:_,canvasRendering:ze,renderOrder:K,disableCanvasInteraction:te,sketchyRenderingEngine:U,frameRenderOrder:J,additionalVizElements:Ee,disableProgressiveRendering:ae,transition:oe})}const ya=new Set(["label","callout","callout-circle","callout-rect","callout-custom","xy-threshold","bracket"]);ua.displayName="OrdinalFrame";const ha=e.memo(ua),ga=(t=>{function n(n){const{responsiveWidth:o,responsiveHeight:r,size:i=[500,500],dataVersion:s,debounce:d=200,gridDisplay:p}=n,m=Z(n,["responsiveWidth","responsiveHeight","size","dataVersion","debounce","gridDisplay"]),u=[...i];let y=!1,h=c(),g=function(e){const[t,n]=a(null);return l(()=>{const t=e.current;if(null!=t){n(t.getBoundingClientRect());const e=new ResizeObserver(e=>{e.length>0&&n(e[0].contentRect)});return e.observe(t),()=>e.disconnect()}},[]),t}(h);return o&&(null==g?y=!0:u[0]=g.width),r&&(null==g?y=!0:u[1]=g.height),e.createElement("div",{"data-testid":"responsive-container",className:"responsive-container",style:p?{minWidth:"0px",minHeight:"0px"}:{height:"100%",width:"100%"},ref:h},!y&&e.createElement(t,Object.assign({},m,{size:u,dataVersion:s?s+""+u+d:void 0})))}return n.isResizing=setTimeout(()=>{}),n.displayName="Responsive"+t.displayName,n})(ha),fa={margin:0},xa={tickFormat:()=>"",baseline:!1};function va(t,o,r){return r=>{const{size:i=[],sparkStyle:s={}}=r,[l,c]=a(30),d=[];d[0]="number"==typeof i?i:i[0]?i[0]:l,d[1]=l;const p=n(e=>{if(e){const t=+window.getComputedStyle(e).lineHeight.split("px")[0]-5;c(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({},o(r),{size:d})))}}const ba=va(ha,e=>Object.assign(Object.assign(Object.assign({},fa),e),{hoverAnnotation:e.hoverAnnotation,axes:e.axes?e.axes.map(e=>Object.assign(Object.assign({},xa),e)):e.axes}));export{ee as Annotation,$e as AnnotationLayer,xt as Axis,xe as Legend,ha as OrdinalFrame,ga as ResponsiveOrdinalFrame,ba as SparkOrdinalFrame,Zt as calculateDataExtent};
@@ -1,11 +1,12 @@
1
+ import * as React from "react";
1
2
  import { CustomHoverType } from "../types/annotationTypes";
2
3
  import { InteractionLayerProps } from "../types/interactionTypes";
3
4
  export declare const changeVoronoi: (voronoiHover: Function, d: {
4
5
  type?: string;
5
- data?: object[];
6
- }, customHoverTypes: CustomHoverType, customHoverBehavior: Function, points: Object[], e: any) => void;
7
- export declare const clickVoronoi: (d: Object, customClickBehavior: Function, points: Object[], e: any) => void;
8
- export declare const doubleclickVoronoi: (d: Object, customDoubleClickBehavior: Function, points: Object[], e: any) => void;
6
+ data?: Record<string, any> | object[];
7
+ }, customHoverTypes: CustomHoverType, customHoverBehavior: Function, points: Object[], e: React.MouseEvent) => void;
8
+ export declare const clickVoronoi: (d: Object, customClickBehavior: Function, points: Object[], e: React.MouseEvent) => void;
9
+ export declare const doubleclickVoronoi: (d: Object, customDoubleClickBehavior: Function, points: Object[], e: React.MouseEvent) => void;
9
10
  export declare const brushStart: (e?: number[] | number[][], columnName?: string, data?: object, columnData?: object, interaction?: any) => void;
10
11
  export declare const brushing: (e?: number[] | number[][], columnName?: string, data?: object, columnData?: object, interaction?: any) => void;
11
12
  export declare const brushEnd: (e?: number[] | number[][], columnName?: string, data?: object, columnData?: object, interaction?: any) => void;
@@ -0,0 +1,16 @@
1
+ export declare function recursiveIDAccessor(idAccessor: any, node: any, accessorString: any): string;
2
+ export declare const defaultHierarchicalIDAccessor: (d: any) => any;
3
+ export declare const nodesEdgesFromHierarchy: (baseRootNode: any, idAccessor?: (d: any) => any) => {
4
+ edges: any[];
5
+ nodes: any[];
6
+ };
7
+ export declare function breadthFirstCompontents(baseNodes: any, hash: any): {
8
+ componentNodes: any[];
9
+ componentEdges: any[];
10
+ }[];
11
+ export declare const matrixify: ({ edgeHash, nodes, edgeWidthAccessor, nodeIDAccessor }: {
12
+ edgeHash: any;
13
+ nodes: any;
14
+ edgeWidthAccessor: any;
15
+ nodeIDAccessor: any;
16
+ }) => any[];
@@ -0,0 +1,2 @@
1
+ import { NetworkLayoutHandler } from "./types";
2
+ export declare const chordLayout: NetworkLayoutHandler;
@@ -0,0 +1,3 @@
1
+ import { NetworkLayoutHandler } from "./types";
2
+ export declare const forceLayout: NetworkLayoutHandler;
3
+ export declare const motifsLayout: NetworkLayoutHandler;
@@ -0,0 +1,10 @@
1
+ import { NetworkLayoutMap } from "./types";
2
+ export declare const hierarchicalTypeHash: {
3
+ dendrogram: any;
4
+ tree: any;
5
+ circlepack: any;
6
+ cluster: any;
7
+ treemap: any;
8
+ partition: any;
9
+ };
10
+ export declare const hierarchyLayouts: NetworkLayoutMap;
@@ -0,0 +1,8 @@
1
+ import { NetworkLayoutMap } from "./types";
2
+ export { NetworkLayoutHandler, NetworkLayoutMap } from "./types";
3
+ export { chordLayout } from "./chordLayout";
4
+ export { sankeyLayout, sankeyOrientHash } from "./sankeyLayout";
5
+ export { forceLayout, motifsLayout } from "./forceLayout";
6
+ export { hierarchyLayouts, hierarchicalTypeHash } from "./hierarchyLayout";
7
+ export { simpleLayouts, matrixLayout, arcLayout } from "./simpleLayouts";
8
+ export declare const allNetworkLayouts: NetworkLayoutMap;
@@ -0,0 +1,8 @@
1
+ import { NetworkLayoutHandler } from "./types";
2
+ export declare const sankeyOrientHash: {
3
+ left: any;
4
+ right: any;
5
+ center: any;
6
+ justify: any;
7
+ };
8
+ export declare const sankeyLayout: NetworkLayoutHandler;
@@ -0,0 +1,7 @@
1
+ import { NetworkLayoutHandler } from "./types";
2
+ export declare const matrixLayout: NetworkLayoutHandler;
3
+ export declare const arcLayout: NetworkLayoutHandler;
4
+ export declare const simpleLayouts: {
5
+ matrix: NetworkLayoutHandler;
6
+ arc: NetworkLayoutHandler;
7
+ };
@@ -0,0 +1,17 @@
1
+ import { NodeType, NetworkSettingsType } from "../../types/networkTypes";
2
+ export type NetworkLayoutHandler = (args: {
3
+ projectedNodes: NodeType[];
4
+ projectedEdges: any[];
5
+ networkSettings: NetworkSettingsType;
6
+ adjustedSize: number[];
7
+ edgeHash: Map<string, any>;
8
+ nodeIDAccessor: Function;
9
+ edgeWidthAccessor: Function;
10
+ nodeSizeAccessor: Function;
11
+ size: number[];
12
+ }) => {
13
+ projectedNodes: NodeType[];
14
+ projectedEdges: any[];
15
+ components?: any[];
16
+ };
17
+ export type NetworkLayoutMap = Record<string, NetworkLayoutHandler>;