semiotic 2.0.2 → 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 (359) 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/Annotation.d.ts +3 -0
  165. package/dist/AnnotationLayer/AnnotationLayer.d.ts +25 -0
  166. package/dist/Axis/Axis.d.ts +7 -0
  167. package/dist/Axis/axisTitle.d.ts +10 -0
  168. package/dist/Axis/index.d.ts +2 -0
  169. package/dist/Axis/summaryGraphic.d.ts +17 -0
  170. package/dist/Brush.d.ts +12 -0
  171. package/dist/DividedLine.d.ts +16 -0
  172. package/dist/FacetController.d.ts +12 -0
  173. package/dist/Frame.d.ts +2 -0
  174. package/dist/InteractionLayer.d.ts +3 -0
  175. package/dist/Legend.d.ts +3 -0
  176. package/dist/MiniMap.d.ts +14 -0
  177. package/dist/MinimapXYFrame.d.ts +10 -0
  178. package/dist/NetworkFrame.d.ts +8 -0
  179. package/dist/OrdinalFrame.d.ts +8 -0
  180. package/dist/ResponsiveFrame.d.ts +22 -0
  181. package/dist/ResponsiveMinimapXYFrame.d.ts +3 -0
  182. package/dist/ResponsiveNetworkFrame.d.ts +3 -0
  183. package/dist/ResponsiveOrdinalFrame.d.ts +3 -0
  184. package/dist/ResponsiveXYFrame.d.ts +3 -0
  185. package/dist/SparkFrame.d.ts +14 -0
  186. package/dist/SparkNetworkFrame.d.ts +5 -0
  187. package/dist/SparkOrdinalFrame.d.ts +5 -0
  188. package/dist/SparkXYFrame.d.ts +5 -0
  189. package/dist/Tooltip/Tooltip.d.ts +141 -0
  190. package/dist/TooltipPositioner/index.d.ts +7 -0
  191. package/dist/VisualizationLayer.d.ts +33 -0
  192. package/dist/XYFrame.d.ts +8 -0
  193. package/dist/annotationLayerBehavior/annotationHandling.d.ts +19 -0
  194. package/dist/annotationLayerBehavior/d3labeler.d.ts +9 -0
  195. package/dist/annotationRules/baseRules.d.ts +25 -0
  196. package/dist/annotationRules/networkframeRules.d.ts +48 -0
  197. package/dist/annotationRules/orframeRules.d.ts +103 -0
  198. package/dist/annotationRules/xyframeRules.d.ts +117 -0
  199. package/dist/batchWork.d.ts +6 -0
  200. package/dist/charts/index.d.ts +62 -0
  201. package/dist/charts/network/ChordDiagram.d.ts +181 -0
  202. package/dist/charts/network/CirclePack.d.ts +103 -0
  203. package/dist/charts/network/ForceDirectedGraph.d.ts +192 -0
  204. package/dist/charts/network/SankeyDiagram.d.ts +195 -0
  205. package/dist/charts/network/TreeDiagram.d.ts +200 -0
  206. package/dist/charts/network/Treemap.d.ts +98 -0
  207. package/dist/charts/ordinal/BarChart.d.ts +119 -0
  208. package/dist/charts/ordinal/BoxPlot.d.ts +125 -0
  209. package/dist/charts/ordinal/DonutChart.d.ts +95 -0
  210. package/dist/charts/ordinal/DotPlot.d.ts +128 -0
  211. package/dist/charts/ordinal/GroupedBarChart.d.ts +113 -0
  212. package/dist/charts/ordinal/PieChart.d.ts +83 -0
  213. package/dist/charts/ordinal/StackedBarChart.d.ts +119 -0
  214. package/dist/charts/ordinal/SwarmPlot.d.ts +137 -0
  215. package/dist/charts/realtime/RealtimeBarChart.d.ts +102 -0
  216. package/dist/charts/realtime/RealtimeLineChart.d.ts +78 -0
  217. package/dist/charts/realtime/RealtimeSwarmChart.d.ts +88 -0
  218. package/dist/charts/realtime/RealtimeWaterfallChart.d.ts +85 -0
  219. package/dist/charts/shared/ChartError.d.ts +19 -0
  220. package/dist/charts/shared/colorUtils.d.ts +62 -0
  221. package/dist/charts/shared/formatUtils.d.ts +82 -0
  222. package/dist/charts/shared/hooks.d.ts +20 -0
  223. package/dist/charts/shared/legendUtils.d.ts +32 -0
  224. package/dist/charts/shared/types.d.ts +58 -0
  225. package/dist/charts/shared/validateChartData.d.ts +41 -0
  226. package/dist/charts/shared/validateProps.d.ts +18 -0
  227. package/dist/charts/xy/AreaChart.d.ts +127 -0
  228. package/dist/charts/xy/BubbleChart.d.ts +157 -0
  229. package/dist/charts/xy/Heatmap.d.ts +153 -0
  230. package/dist/charts/xy/LineChart.d.ts +193 -0
  231. package/dist/charts/xy/Scatterplot.d.ts +50 -0
  232. package/dist/charts/xy/StackedAreaChart.d.ts +131 -0
  233. package/dist/constants/coordinateNames.d.ts +8 -0
  234. package/dist/constants/frame_props.d.ts +13 -0
  235. package/dist/constants/jsx.d.ts +19 -0
  236. package/dist/data/dataFunctions.d.ts +45 -0
  237. package/dist/data/multiAccessorUtils.d.ts +1 -0
  238. package/dist/data/networkPipelineCache.d.ts +27 -0
  239. package/dist/data/ordinalPipelineCache.d.ts +33 -0
  240. package/dist/data/unflowedFunctions.d.ts +1 -0
  241. package/dist/data/xyPipelineCache.d.ts +35 -0
  242. package/dist/generic_utilities/functions.d.ts +1 -0
  243. package/dist/index.d.ts +133 -0
  244. package/dist/interactionLayerBehavior/InteractionCanvas.d.ts +20 -0
  245. package/dist/network.js +8520 -0
  246. package/dist/network.js.map +1 -0
  247. package/dist/network.min.js +1 -0
  248. package/dist/network.module.js +8484 -0
  249. package/dist/network.module.js.map +1 -0
  250. package/dist/network.module.min.js +1 -0
  251. package/dist/ordinal.js +9276 -0
  252. package/dist/ordinal.js.map +1 -0
  253. package/dist/ordinal.min.js +1 -0
  254. package/dist/ordinal.module.js +9242 -0
  255. package/dist/ordinal.module.js.map +1 -0
  256. package/dist/ordinal.module.min.js +1 -0
  257. package/dist/processing/InteractionItems.d.ts +13 -0
  258. package/dist/processing/hierarchyUtils.d.ts +16 -0
  259. package/dist/processing/layouts/chordLayout.d.ts +2 -0
  260. package/dist/processing/layouts/forceLayout.d.ts +3 -0
  261. package/dist/processing/layouts/hierarchyLayout.d.ts +10 -0
  262. package/dist/processing/layouts/index.d.ts +8 -0
  263. package/dist/processing/layouts/sankeyLayout.d.ts +8 -0
  264. package/dist/processing/layouts/simpleLayouts.d.ts +7 -0
  265. package/dist/processing/layouts/types.d.ts +17 -0
  266. package/dist/processing/network.d.ts +111 -0
  267. package/dist/processing/networkDefaults.d.ts +36 -0
  268. package/dist/processing/networkLayoutHelpers.d.ts +54 -0
  269. package/dist/processing/ordinal.d.ts +102 -0
  270. package/dist/processing/ordinalConstants.d.ts +33 -0
  271. package/dist/processing/ordinalOverlays.d.ts +33 -0
  272. package/dist/processing/ordinalRenderPipeline.d.ts +148 -0
  273. package/dist/processing/xyDrawing.d.ts +140 -0
  274. package/dist/realtime/BinAccumulator.d.ts +8 -0
  275. package/dist/realtime/IncrementalExtent.d.ts +13 -0
  276. package/dist/realtime/RealtimeFrame.d.ts +4 -0
  277. package/dist/realtime/RingBuffer.d.ts +19 -0
  278. package/dist/realtime/renderers/barRenderer.d.ts +2 -0
  279. package/dist/realtime/renderers/candlestickRenderer.d.ts +2 -0
  280. package/dist/realtime/renderers/lineRenderer.d.ts +2 -0
  281. package/dist/realtime/renderers/swarmRenderer.d.ts +2 -0
  282. package/dist/realtime/renderers/types.d.ts +9 -0
  283. package/dist/realtime/renderers/waterfallRenderer.d.ts +3 -0
  284. package/dist/realtime/types.d.ts +113 -0
  285. package/dist/realtime.js +1598 -0
  286. package/dist/realtime.js.map +1 -0
  287. package/dist/realtime.min.js +1 -0
  288. package/dist/realtime.module.js +1566 -0
  289. package/dist/realtime.module.js.map +1 -0
  290. package/dist/realtime.module.min.js +1 -0
  291. package/dist/semiotic-ai.d.ts +28 -0
  292. package/dist/semiotic-ai.js +18722 -0
  293. package/dist/semiotic-ai.js.map +1 -0
  294. package/dist/semiotic-ai.min.js +1 -0
  295. package/dist/semiotic-ai.module.js +18668 -0
  296. package/dist/semiotic-ai.module.js.map +1 -0
  297. package/dist/semiotic-ai.module.min.js +1 -0
  298. package/dist/semiotic-network.d.ts +19 -0
  299. package/dist/semiotic-ordinal.d.ts +18 -0
  300. package/dist/semiotic-realtime.d.ts +23 -0
  301. package/dist/semiotic-server.d.ts +1 -0
  302. package/dist/semiotic-xy.d.ts +24 -0
  303. package/dist/semiotic.d.ts +51 -0
  304. package/dist/semiotic.js +18723 -12996
  305. package/dist/semiotic.js.map +1 -0
  306. package/dist/semiotic.min.js +1 -0
  307. package/dist/semiotic.module.js +18666 -12965
  308. package/dist/semiotic.module.js.map +1 -0
  309. package/dist/semiotic.module.min.js +1 -0
  310. package/dist/server/renderToStaticSVG.d.ts +9 -0
  311. package/dist/server.js +8360 -0
  312. package/dist/server.js.map +1 -0
  313. package/dist/server.min.js +1 -0
  314. package/dist/server.module.js +8331 -0
  315. package/dist/server.module.js.map +1 -0
  316. package/dist/server.module.min.js +1 -0
  317. package/dist/store/TooltipStore.d.ts +2 -0
  318. package/dist/store/createStore.d.ts +1 -0
  319. package/dist/svg/SvgHelper.d.ts +33 -0
  320. package/dist/svg/areaDrawing.d.ts +21 -0
  321. package/dist/svg/boxplotRenderer.d.ts +15 -0
  322. package/dist/svg/bucketizedRenderer.d.ts +16 -0
  323. package/dist/svg/ckbinsRenderer.d.ts +20 -0
  324. package/dist/svg/ckmeans.d.ts +69 -0
  325. package/dist/svg/contourLayout.d.ts +6 -0
  326. package/dist/svg/contourRenderer.d.ts +12 -0
  327. package/dist/svg/edgeGenerators.d.ts +51 -0
  328. package/dist/svg/frameFunctions.d.ts +108 -0
  329. package/dist/svg/graphAlgorithms.d.ts +14 -0
  330. package/dist/svg/hexbinLayout.d.ts +7 -0
  331. package/dist/svg/lineDrawing.d.ts +99 -0
  332. package/dist/svg/networkDrawing.d.ts +16 -0
  333. package/dist/svg/nodeGenerators.d.ts +58 -0
  334. package/dist/svg/pieceDrawing.d.ts +12 -0
  335. package/dist/svg/pieceLayouts.d.ts +53 -0
  336. package/dist/svg/sankeyLinks.d.ts +3 -0
  337. package/dist/svg/summaryAxis.d.ts +6 -0
  338. package/dist/svg/summaryLayouts.d.ts +53 -0
  339. package/dist/svg/swarmLayout.d.ts +13 -0
  340. package/dist/types/annotationTypes.d.ts +135 -0
  341. package/dist/types/canvasTypes.d.ts +9 -0
  342. package/dist/types/generalTypes.d.ts +238 -0
  343. package/dist/types/interactionTypes.d.ts +72 -0
  344. package/dist/types/legendTypes.d.ts +20 -0
  345. package/dist/types/networkTypes.d.ts +175 -0
  346. package/dist/types/ordinalTypes.d.ts +112 -0
  347. package/dist/types/xyTypes.d.ts +115 -0
  348. package/dist/useBoundingRect.d.ts +2 -0
  349. package/dist/useDerivedStateFromProps.d.ts +1 -0
  350. package/dist/useLegacyUnmountCallback.d.ts +2 -0
  351. package/dist/visualizationLayerBehavior/axis.d.ts +36 -0
  352. package/dist/visualizationLayerBehavior/general.d.ts +80 -0
  353. package/dist/xy.js +7944 -0
  354. package/dist/xy.js.map +1 -0
  355. package/dist/xy.min.js +1 -0
  356. package/dist/xy.module.js +7903 -0
  357. package/dist/xy.module.js.map +1 -0
  358. package/dist/xy.module.min.js +1 -0
  359. package/package.json +116 -65
@@ -0,0 +1 @@
1
+ import*as e from"react";import t,{useState as a,useRef as r,useEffect as n}from"react";import{scaleLinear as s,scaleOrdinal as i,scaleBand as o}from"d3-scale";import{quantile as c,histogram as l,max as d,sum as y,extent as m,min as u}from"d3-array";import{arc as p,curveCardinal as h,line as g,curveLinearClosed as x,area as f,curveNatural as b,curveMonotoneY as v,curveMonotoneX as k,curveCatmullRom as j,curveLinear as E,curveBasis as O,curveStepAfter as S,curveStepBefore as M,curveStep as $,linkVertical as F,linkHorizontal as A}from"d3-shape";import{contourDensity as z}from"d3-contour";import P from"regression";import{hexbin as w}from"d3-hexbin";import D from"memoize-one";import T from"svg-path-bounding-box";import{forceSimulation as C,forceY as N,forceX as L,forceCollide as R}from"d3-force";import{select as V}from"d3-selection";import{d as I}from"d3-glyphedge";import{pathArrows as B}from"d3-path-arrows";import{interpolateNumber as W}from"d3-interpolate";import{partition as _,treemap as G,cluster as K,pack as Y,tree as X,hierarchy as H}from"d3-hierarchy";const q=({xy:t,orient:a,i:r,className:n="",jaggedBase:s})=>{let i=`M${t.x1},${t.y1}L${t.x2},${t.y2}`;return s&&0===r&&(i=((e,t)=>{let a="";const{x1:r,x2:n,y1:s,y2:i}=t;if("left"===e||"right"===e){const t=Math.abs(n-r);a=((e,t,a,r)=>{const n=e/t;let s=0,i="M0,"+a;const o="right"===r?-1:1;for(;e>=s;)i+=`L${s},${a}`,e>s&&(i+=`L${s+n/2},${a+10*o}`),s+=n;return i})(t,Math.ceil(t/40),"right"===e?0:s,e)}else{const t=Math.abs(i-s);a=((e,t,a,r)=>{const n=e/t;let s=0,i=`M${a},0`;const o="bottom"===r?-1:1;for(;e>=s;)i+=`L${a},${s}`,e>s&&(i+=`L${a+10*o},${s+n/2}`),s+=n;return i})(t,Math.ceil(t/40),r,e)}return a})(a,t)),e.createElement("path",{key:r,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:i,className:`tick-line tick ${a} ${n}`})};function Z(e,t,a){const r=Math.abs(a.range()[1]-a.range()[0]);return e||(t||(t=Math.max(1,Math.floor(r/40))),e=a.ticks&&a.ticks(t)||a.domain()),e}function Q({renderMode:e=()=>{},padding:t=5,scale:a,ticks:r,tickValues:n=Z(void 0,r,a),orient:s="left",size:i,footer:o=!1,tickSize:c=(o?-10:["top","bottom"].find(e=>e===s)?i?i[1]:0:i?i[0]:0),jaggedBase:l}){let d,y,m,u,p,h,g=[],x=0,f=0,b="middle";switch(s){case"top":d="x1",y="x2",m="y1",u="y2",g=[0,c],p="tx",h="ty",x-=20-t;break;case"bottom":d="x1",y="x2",m="y2",u="y1",g=i?[i[1],i[1]-c]:[0,-c],p="tx",h="ty",x+=20+t;break;case"right":d="y2",y="y1",m="x2",u="x1",g=i?[i[0],i[0]-c]:[0,-c],p="ty",h="tx",x+=5+t,f+=5,b="start";break;default:d="y1",y="y2",m="x1",u="x2",g=[0,c],p="ty",h="tx",x-=5+t,f+=5,b="end"}let v=n instanceof Function?n({orient:s}):n;return l&&void 0===v.find(e=>e===a.domain()[0])&&(v=[a.domain()[0],...v]),v.map((t,r)=>{const n=a(t);return{[d]:n,[y]:n,[m]:g[0],[u]:g[1],[p]:n+f,[h]:g[0]+x,defaultAnchor:b,renderMode:e(t,r),value:t}})}const U=(t,a,r)=>{const n={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 "+r,stroke:"currentColor",strokeLinecap:"square",x1:n.x,x2:n.x+n.width,y1:n.y,y2:n.y+n.height})},J=({axisParts:t,orient:a,tickLineGenerator:r=q,className:n,jaggedBase:s,scale:i,showOutboundTickLines:o=!1})=>{const c=t.map((e,t)=>r({xy:e,orient:a,i:t,className:n,jaggedBase:s,scale:i})),l=o?t.map((t,r)=>(({xy:t,orient:a,i:r,className:n=""})=>{let s=`M-4,${t.y1}L${t.x1},${t.y2}`;return"left"===a?s=`M${t.x1-8},${t.y1}L${t.x1},${t.y2}`:"right"===a?s=`M${t.x2},${t.y1}L${t.x2+8},${t.y2}`:"top"===a?s=`M${t.x1},${t.y1-8}L${t.x1},${t.y1}`:"bottom"===a&&(s=`M${t.x1},${t.y2}L${t.x1},${t.y2+8}`),e.createElement("path",{key:r,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:s,className:`outbound-tick-line tick ${a} ${n}`})})({xy:t,orient:a,i:r,className:n})):[];return[...c,l]};function ee({t:e,o:t,w:a}){return"contour"!==e&&"boxplot"!==e||"left"!==t&&"right"!==t?0:a/2}function te({t:e,o:t,w:a}){return"contour"!==e&&"boxplot"!==e||"top"!==t&&"bottom"!==t?0:a/2}function ae(e){const{translation:a,orient:r,decoratedSummaryType:n,summaryWidth:s,renderedSummary:i,points:o}=e;return t.createElement("g",{className:"marginal-graphics",transform:`translate(${a[r]})`},t.createElement("g",{transform:`translate(${ee({t:n.type,o:r,w:s})},${te({t:n.type,o:r,w:s})})`},i),o)}function re(e){const{className:a,translation:r,position:n,rotation:s,labelName:i,anchorMod:o}=e;return t.createElement("g",{className:"axis-title "+a,transform:`translate(${[r[0]+n[0],r[1]+n[1]]}) rotate(${s})`},t.isValidElement(i)?i:t.createElement("text",{textAnchor:o},i))}function ne(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);r.length>n;n++)0>t.indexOf(r[n])&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(a[r[n]]=e[r[n]])}return a}function se(e,t,a){const r=Math.PI*(t+.75)*2;return[e[0]+a*Math.cos(r),e[1]+a*Math.sin(r)]}"function"==typeof SuppressedError&&SuppressedError;const ie=({data:t,shouldRender:a,canvasRender:r,canvasDrawing:n,styleFn:s,classFn:i,renderKeyFn:o,ariaLabel:c,axis:l})=>{const d=l&&l[0]&&l[0].tickFormat;if(!a)return null;const y=[];return t.forEach((t,a)=>{if(r&&!0===r(t))n.push({baseClass:"orframe-piece",tx:t.tx||0,ty:t.ty||0,d:t.piece,i:a,markProps:t.renderElement||t,styleFn:s,renderFn:()=>t.renderValue,classFn:i});else if(e.isValidElement(t.renderElement||t))y.push(t.renderElement||t);else{const r=c?`${t.o} ${c.items} value ${d&&d(t.piece.value)||t.piece.value}`:"",n=o?o(t.piece):t.renderKey||"piece-render-"+a,s=t.renderElement||t,{markType:i,style:l={}}=s,m=ne(s,["markType","style"]),u=Object.assign(Object.assign({},m),{key:n,"aria-label":r});void 0!==l.fill&&(u.fill=l.fill),void 0!==l.stroke&&(u.stroke=l.stroke),void 0!==l.strokeWidth&&(u.strokeWidth=l.strokeWidth),void 0!==l.opacity&&(u.opacity=l.opacity),void 0!==l.fillOpacity&&(u.fillOpacity=l.fillOpacity),void 0!==l.strokeOpacity&&(u.strokeOpacity=l.strokeOpacity);const p=Object.assign({},l);delete p.fill,delete p.stroke,delete p.strokeWidth,delete p.opacity,delete p.fillOpacity,delete p.strokeOpacity,Object.keys(p).length>0&&(u.style=p),i&&y.push(e.createElement(i,u))}}),y},oe=()=>({});function ce(e,t){for(var a=[],r=0;e>r;r++){for(var n=[],s=0;t>s;s++)n.push(0);a.push(n)}return a}function le(e,t,a,r){var n;if(e>0){var s=(a[t]-a[e-1])/(t-e+1);n=r[t]-r[e-1]-(t-e+1)*s*s}else n=r[t]-a[t]*a[t]/(t+1);return 0>n?0:n}function de(e,t,a,r,n,s,i){if(t>=e){var o=Math.floor((e+t)/2);r[a][o]=r[a-1][o-1],n[a][o]=o;var c=a;e>a&&(c=Math.max(c,n[a][e-1]||0)),c=Math.max(c,n[a-1][o]||0);var l,d,y,m,u=o-1;r[0].length-1>t&&(u=Math.min(u,n[a][t+1]||0));for(var p=u;p>=c&&(l=le(p,o,s,i))+r[a-1][c-1]<r[a][o];--p)d=le(c,o,s,i),r[a][o]>(y=d+r[a-1][c-1])&&(r[a][o]=y,n[a][o]=c),c++,r[a][o]>(m=l+r[a-1][p-1])&&(r[a][o]=m,n[a][o]=p);de(e,o-1,a,r,n,s,i),de(o+1,t,a,r,n,s,i)}}function ye({summaryType:e,data:t,finalXExtent:a,finalYExtent:r}){let n=[];e.type||(e={type:e});const{resolution:i=500,thresholds:o=10,bandwidth:c=20,neighborhood:l}=e,d=s().domain(a).rangeRound([0,i]).nice(),y=s().domain(r).rangeRound([i,0]).nice();return t.forEach(e=>{let t=z().size([i,i]).x(e=>d(e[0])).y(e=>y(e[1])).thresholds(o).bandwidth(c)(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,r)=>{e[r]=a.map(e=>[d.invert(e[0]),y.invert(e[1])]),0===r&&t.bounds.push(function(e){let t=[1/0,0],a=[-1/0,0],r=[0,1/0],n=[0,-1/0];return e.forEach(e=>{t=t[0]>e[0]?e:t,a=e[0]>a[0]?e:a,n=e[1]>n[1]?e:n,r=r[1]>e[1]?e:r}),{center:[(t[0]+a[0])/2,(r[1]+n[1])/2],top:r,left:t,right:a,bottom:n}}(e[r]))})})}),n=[...n,...t]}),n}const me=(e,t,a,r)=>{const n=e.map((e,r)=>[e[0],e[1]+a(t[r])]),s=e.map((e,a)=>[e[0],e[1]-r(t[a])]);return[...n,...s.reverse()]};function ue(e){let t=[1/0,0],a=[-1/0,0],r=[0,1/0],n=[0,-1/0];return e.forEach(e=>{t=t[0]>e[0]?e:t,a=e[0]>a[0]?e:a,n=e[1]>n[1]?e:n,r=r[1]>e[1]?e:r}),{center:[(t[0]+a[0])/2,(r[1]+n[1])/2],top:r,left:t,right:a,bottom:n}}const pe=e=>[e.xy.x,e.xy.y],he=()=>({}),ge=2*Math.PI,xe=(e=1)=>(t,a)=>{const r=t[t.length-1];return r&&Math.round(r.x/e)===Math.round(a.x/e)&&Math.round(r.y/e)===Math.round(a.y/e)||t.push(a),t},fe=({x1:e,x2:t,y1:a,y2:r,sizeX1:n,sizeY1:s,sizeX2:i,sizeY2:o})=>`M${e},${a}L${t},${r}L${t+i},${r+o}L${e+n},${a+s}Z`;function be(){const e=g();let t=function(e){return e.x},a=function(e){return e.y},r=function(e){return e.r},n=x;function s(s){if(s.multiple){const i=r,c=s.multiple.reduce((e,t)=>e+t.weight,0);r=()=>c;let l=o(s.points).filter(e=>"forward"===e.direction).reduce(xe(),[]);const d=[];return s.multiple.forEach((e,t)=>{r=()=>e.weight;const a=o(l);d.push(a);const n=s.multiple[t+1];if(n){const e=a.reverse().filter(e=>"back"===e.direction).reduce(xe(),[]);r=()=>n.weight;const t=o(e);l=t.reverse().filter(e=>"back"===e.direction).reduce(xe(),[])}}),r=i,d.map(r=>e.x(t).y(a).curve(n)(r))}const i=o(s).reduce(xe(),[]);return e.x(t).y(a).curve(n)(i)}return s.x=function(e){return arguments.length?(t=e,s):t},s.y=function(e){return arguments.length?(a=e,s):a},s.r=function(e){return arguments.length?(r=e,s):r},s.interpolate=function(e){return arguments.length?(n=e,s):n},s;function i(e){const n=a(e.target)-a(e.source),s=t(e.target)-t(e.source),i=Math.atan2(s,n)+Math.PI/2,o=i+.5*Math.PI,c=i+.5*Math.PI;return{x1:t(e.source)+r(e.source)*Math.cos(o),y1:a(e.source)-r(e.source)*Math.sin(o),x2:t(e.target)+r(e.target)*Math.cos(c),y2:a(e.target)-r(e.target)*Math.sin(c)}}function o(e){const t=[];let a=0,r={x1:0,y1:0,x2:0,y2:0};for(;e.length>a;){if(a!==e.length-1&&(r=i({source:e[a],target:e[a+1]}),t.push({x:r.x1,y:r.y1,direction:"forward"},{x:r.x2,y:r.y2,direction:"forward"}),t.length>3)){const e=t.length-1,a={a:t[e-3],b:t[e-2]},r={a:t[e-1],b:t[e]},n=c(a.a.x,a.a.y,a.b.x,a.b.y,r.a.x,r.a.y,r.b.x,r.b.y);!0===n.found&&(a.b.x=n.x,a.b.y=n.y,r.a.x=n.x,r.a.y=n.y)}a++}for(a--;a>=0;){if(0!==a&&(r=i({source:e[a],target:e[a-1]}),t.push({x:r.x1,y:r.y1,direction:"back"},{x:r.x2,y:r.y2,direction:"back"}),t.length>3)){const e=t.length-1,a={a:t[e-3],b:t[e-2]},r={a:t[e-1],b:t[e]},n=c(a.a.x,a.a.y,a.b.x,a.b.y,r.a.x,r.a.y,r.b.x,r.b.y);!0===n.found&&(a.b.x=n.x,a.b.y=n.y,r.a.x=n.x,r.a.y=n.y)}a--}return t}function c(e,t,a,r,n,s,i,o){let c,l;const d={x:null,y:null,found:!1},y=(o-s)*(a-e)-(i-n)*(r-t);if(0===y)return d;c=t-s,l=e-n;const m=(a-e)*c-(r-t)*l;return c=((i-n)*c-(o-s)*l)/y,l=m/y,d.x=e+c*(a-e),d.y=t+c*(r-t),c>0&&1>c&&l>0&&1>l&&(d.found=!0),d}}const ve={step:$,stepbefore:M,stepafter:S,cardinal:h,basis:O,linear:E,catmullrom:j,monotone:v,monotonex:k,monotoney:v,natural:b};function ke({generator:e,projectedCoordinateNames:t,defined:a,xScale:r,yScale:n,interpolator:s,simpleLine:i}){const{x:o,y:c,yTop:l,yBottom:d,xBottom:y,xTop:m}=t;e.x(e=>r(e[o])).curve(s),i?e.y(e=>n(e[c])):(e.y0(e=>n(e[d])).y1(e=>n(e[l])),e.x0(e=>r(e[y])).x1(e=>r(e[m]))),e.defined(a?(e,t)=>a(e,t):e=>!e._xyFrameUndefined)}function je({xScale:t,yScale:a,canvasDrawing:r,data:n,projectedCoordinateNames:s,customMark:i,canvasRender:o,styleFn:c,classFn:l,renderKeyFn:d,renderMode:y,showLinePoints:m}){const{y:u,x:p,xMiddle:h,yMiddle:g,yTop:x,yBottom:f}=s,b={top:x,bottom:f}[!0===m?void 0:m],v=[];return n.forEach((n,s)=>{const m=t(void 0!==n[h]?n[h]:n[p]),x=a(void 0!==n[b]?n[b]:void 0!==n[g]?n[g]:n[u]),f=`Point at x ${n.x} and y ${n.y}`,k=i?e.isValidElement(i)?i:i({d:n.data,xy:n,i:s,xScale:t,yScale:a}):void 0,j=i?Object.assign(Object.assign({},k.props),{"aria-label":f}):{key:"piece-"+s,markType:"circle",r:2,"aria-label":f};!k||!k.props||k.props.markType||o&&!0===o(n.data,s)?o&&!0===o(n.data,s)?r.push({type:"point",baseClass:"frame-piece",tx:m,ty:x,d:n,i:s,markProps:j,styleFn:c,renderFn:y,classFn:l}):(Array.isArray(n[u])?n[u].map(e=>a(e)):[x]).forEach((e,a)=>{(Array.isArray(n[p])?n[p].map(e=>t(e)):[m]).forEach((t,r)=>{v.push(Se({baseClass:"frame-piece",tx:t,ty:e,d:n.data&&Object.assign(Object.assign({},n),n.data)||n,i:0===a&&0===r?s:`${s}-${a}-${r}`,markProps:j,styleFn:c,renderKeyFn:d,classFn:l,yi:a}))})}):v.push(e.createElement("g",{transform:`translate(${m},${x})`,key:d?d(n.data,s):"custom-point-mark-"+s,style:c?c(n.data,s):{},className:l?l(n.data,s):""},k))}),v}function Ee({xScale:t,yScale:a,canvasDrawing:r,data:n,projectedCoordinateNames:s,customMark:i,canvasRender:o,styleFn:c,classFn:l,renderMode:d,renderKeyFn:y,type:m,defined:u,ariaLabel:p,axesData:h=[]}){const x=h.find(e=>"bottom"===e.orient||"top"===e.orient),b=h.find(e=>"left"===e.orient||"right"===e.orient),v=x&&x.tickFormat||(e=>e),k=b&&b.tickFormat||(e=>e),j="object"==typeof m?m:{type:m},O="string"==typeof j.interpolator?ve[j.interpolator]:j.interpolator||E,S=j.simpleLine?g():f();ke({projectedCoordinateNames:s,defined:u,interpolator:O,generator:S,xScale:t,yScale:a,simpleLine:j.simpleLine});const M=O.dynamicInterpolator&&((e,r)=>{const n=f();return ke({projectedCoordinateNames:s,defined:u,interpolator:O.dynamicInterpolator(e,r),generator:n,xScale:t,yScale:a,simpleLine:j.simpleLine}),n})||(()=>S),$=[];if(n.forEach((e,n)=>{const m=e.data.map(e=>Object.assign(Object.assign({},e.data),e));if(i&&"function"==typeof i){const s=Object.assign(Object.assign({},e),{data:m});$.push(i({d:s,i:n,xScale:t,yScale:a,canvasDrawing:r}))}else{const i={};j.simpleLine&&(i.fill="none",i.stroke="black");const h=M(e,n)(m),x=Object.assign(Object.assign({},i),{markType:"path",d:h,"aria-label":e.data&&e.data.length>0&&p&&`${e.data.length} point ${p.items} starting value ${k(e.data[0].y)} at ${v(e.data[0].x)} ending value ${k(e.data[e.data.length-1].y)} at ${v(e.data[e.data.length-1].x)}`});if(o&&!0===o(e,n))r.push({type:"line",baseClass:"xyframe-line",tx:0,ty:0,d:e,i:n,markProps:x,styleFn:c,renderFn:d,classFn:l});else{let r=c;if("area"===j.type&&!0!==j.enclosed&&(r=(e,t)=>Object.assign(Object.assign({},c(e,t)),{stroke:"none"})),$.push(Se({baseClass:"xyframe-line",d:e,i:n,markProps:x,styleFn:r,renderKeyFn:y,classFn:l})),"area"===j.type&&!0!==j.enclosed){const r=(e,t)=>Object.assign(Object.assign({},c(e,t)),{fill:"none"}),i=g();ke({projectedCoordinateNames:s,defined:u,interpolator:O,generator:i,xScale:t,yScale:a,simpleLine:!0});const o=Object.assign(Object.assign({},x),{d:i(m)}),d=y?(e,t,a)=>y(e,t,a)+"-top":void 0;$.push(Se({baseClass:"xyframe-line-top",d:e,i:n,markProps:o,styleFn:r,renderKeyFn:d,classFn:l}))}}}}),"difference"===j.type&&2===n.length){const r=n[0].data.map((e,t)=>{const a=e.yTop>n[1].data[t].yTop?e.yTop:e.yBottom;return{x:e.x,y:a,yBottom:a,yTop:a}}),i=n[0].data.map((e,t)=>{const a=n[1].data[t].yTop>e.yTop?n[1].data[t].yTop:n[1].data[t].yBottom;return{x:e.x,y:a,yBottom:a,yTop:a}}),o=l?"xyframe-line "+l(r):"xyframe-line",c=g();ke({projectedCoordinateNames:s,defined:u,interpolator:O,generator:c,xScale:t,yScale:a,simpleLine:!0});const d=e.createElement("path",{key:"xyline-diff-a",className:o+" difference-overlay-a",d:c(r),style:{fill:"none",pointerEvents:"none"}});$.push(d);const y=e.createElement("path",{key:"xyline-diff-b",className:o+" difference-overlay-b",d:c(i),style:{fill:"none",pointerEvents:"none"}});$.push(y)}return $}function Oe({xScale:t,yScale:a,canvasDrawing:r,data:n,canvasRender:s,styleFn:i,classFn:o,renderKeyFn:c,renderMode:l,customMark:d}){const y=o||(()=>""),m=i||(()=>({})),u=l;Array.isArray(n)||(n=[n]);const p=[];return n.forEach((n,i)=>{let o="xyframe-summary";y&&(o="xyframe-summary "+y(n));let l="",h=!1;if("string"==typeof n.customMark||e.isValidElement(n.customMark))l=n.customMark,h=!0;else if("MultiPolygon"===n.type)n.coordinates.forEach(e=>{e.forEach(e=>{l+=`M${e.map(e=>`${t(e[0])},${a(e[1])}`).join("L")}Z `})});else if(d){const e=n._xyfCoordinates.map(e=>[t(e[0]),a(e[1])]);l=d({d:n,i:i,classFn:y,styleFn:m,renderFn:u,projectedCoordinates:e,xScale:t,yScale:a,bounds:ue(e)}),h=!0}else{const e=n._xyfCoordinates;if(n.curve){const r=g().x(e=>t(e[0])).y(e=>a(e[1])).curve(n.curve);l=r(e)}else l=`M${e.map(e=>`${t(e[0])},${a(e[1])}`).join("L")}Z`}const x=c?c(n,i):"summary-"+i;h&&e.isValidElement(l)?p.push(l):s&&!0===s(n,i)?r.push({type:"summary",baseClass:"xyframe-summary",tx:0,ty:0,d:n,i:i,markProps:{markType:"path",d:l},styleFn:m,renderFn:u,classFn:()=>o}):p.push(e.createElement("path",{"data-testid":"xyframe-summary",key:x,className:o,d:l,style:m(n,i)}))}),p}function Se({tx:t,ty:a,d:r,i:n,markProps:s,styleFn:i,classFn:o,renderKeyFn:c,baseClass:l,yi:d}){if(s.style=i?i(r,n,d):{},s.className=l,s.key=c?c(r,n,d):`${l}-${void 0===r.key?n:r.key}`,(t||a)&&(s.transform=`translate(${t||0},${a||0})`),o&&(s.className=`${l} ${o(r,n,d)}`),s.style.r&&(s.r=s.style.r),s["data-testid"]=l,!s.markType)return e.createElement(s);const{markType:y}=s,m=ne(s,["markType"]);return e.createElement(y,m)}const Me=(e,t)=>e.xy.y-t.xy.y,$e=(e,t)=>t.xy.x-e.xy.x,Fe=()=>({});function Ae({summary:t,summaryI:a,axisSettings:r,axisCreator:n,projection:i,actualMax:o,adjustedSize:c,columnWidth:l}){let d=`translate(${t.x},0)`,y=[0,o];"horizontal"===i?(d=`translate(0,${t.x})`,y=[o,0]):"radial"===i&&(d="translate(0, 0)"),r.size=["horizontal"===i?c[0]:l,"vertical"===i?c[1]:l];const m=n(r,a,s().domain(y).range([0,l]));return e.createElement("g",{className:"summary-axis",key:"summaryPiece-axis-"+a,transform:d},m)}function ze({data:e,type:t,eventListenersGenerator:a,styleFn:r,classFn:n,projection:s,adjustedSize:i,chartSize:o,axisCreator:m}){const u=[],h=[],x=t.bins||25,b=!!t.relative&&{},v=t.binValue||(e=>e.length),k=t.elementStyleFn||Fe;let O;t.axis&&(t.axis.orient="horizontal"===s&&-1===["left","right"].indexOf(t.axis.orient)?"left":t.axis.orient,t.axis.orient="vertical"===s&&-1===["bottom","top"].indexOf(t.axis.orient)?"bottom":t.axis.orient,O=m,"radial"===s&&(console.error("Summary axes cannot be drawn for radial histograms"),O=()=>null));let S=o/x;const M=Object.keys(e);let $=0;const F=l(),A=[0,o],z=[];for(let e=0;x>e;e++)z.push(A[0]+e/x*o);const P="vertical"===s?e=>e.piece.scaledVerticalValue:e=>e.piece.scaledValue,w=F.domain(A).thresholds(z).value(P),D=M.map((a,r)=>{const n=e[a],i=n.xyData,c=i.sort("vertical"===s?Me:$e);let l;if(!1===t.useBins){const e=c.map(e=>P(e));l=c.map((t,a)=>{const r=[];return r.x0=e[a]-1,r.x1=e[a]+1,r.push(t),r}).sort((e,t)=>e.x0-t.x0),S=o/l.length}else l=w(c);l=l.map(e=>({y:e.x0,y1:e.x1-e.x0,pieces:e,value:v(e.map(e=>e.piece.data))})),"histogram"!==t.type&&"heatmap"!==t.type||(l=l.filter(e=>0!==e.value));const y=0===l.length?0:d(l.map(e=>e.value));return b&&(b[a]=y),$=Math.max($,y),{bins:l,summary:n,summaryI:r,thisSummaryData:i}}),T=t.horizon?$/t.horizon:t.numHorizons||4,C=t.horizon||$/T;return D.forEach(({bins:e,summary:o,summaryI:l,thisSummaryData:m})=>{const x=a(o,l),M=o.width;let F=m[0]?r(m[0].piece.data,l):{},A=m[0]?n(m[0].piece.data,l):"",z=[o.middle,0];"horizontal"===s?z=[S,o.middle]:"radial"===s&&(z=[i[0]/2,i[1]/2]);const P=b&&b[o.name]||$;if("heatmap"===t.type||"histogram"===t.type){const a=(({bins:e,binMax:t,relativeBuckets:a,columnWidth:r,projection:n,adjustedSize:s,summaryI:i,summary:o,summaryStyle:c,type:l})=>{const d=[],y=[],m=a&&a[o.name]||t,u=l.elementStyleFn||he,h=l.padding||0;return e.forEach((e,t)=>{const a=e.value/m,g=u(e.value,a,e.pieces),x=Object.assign("heatmap"===l.type?{opacity:a,fill:c.fill}:Object.assign({},c),g),f=Math.max(1,e.y1-2*h),b="heatmap"===l.type?r:r*a;let v=e.y+h,k="heatmap"===l.type||l.flip?-r/2:r/2-b,j=f,E=b,O="heatmap"===l.type?b/2:b,S=e.y1/2;if("horizontal"===n)v="heatmap"===l.type||l.flip?-r/2:r/2-b,k=e.y-e.y1+h,j=b,E=f,S="heatmap"===l.type?b/2:b,O=e.y1/2;else if("radial"===n){const r=p().innerRadius(e.y/2).outerRadius((e.y+e.y1)/2),n=o.pct-o.pct_padding;let c=o.pct_middle-o.pct_padding,m="heatmap"===l.type?c+n:c+n*a;c*=ge,m*=ge;const u=s[0]/2,h=s[1]/2,g=`translate(${u},${h})`,f=r.centroid({startAngle:c,endAngle:m});y.push({key:o.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:f[0]+u,y:f[1]+h}),d.push({markType:"path",transform:g,key:`groupIcon-${i}-${t}`,d:r({startAngle:c,endAngle:m}),style:x})}"radial"!==n&&(y.push({key:o.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:k+O,y:v+S}),d.push({markType:"rect",key:`groupIcon-${i}-${t}`,x:k,y:v,height:j,width:E,style:x}))}),{marks:d,points:y}})({bins:e,binMax:$,relativeBuckets:b,columnWidth:M,projection:s,adjustedSize:i,summaryI:l,summary:o,summaryStyle:F,type:t}),r=a.marks;"radial"===s&&(z=[0,0]),t.axis&&"histogram"===t.type&&u.push({type:"svg-only-mark",Mark:Ae({summary:o,summaryI:l,axisSettings:t.axis,axisCreator:O,projection:s,actualMax:P,adjustedSize:i,columnWidth:M})}),a.points.forEach(e=>{e.x+=z[0],e.y+=z[1]}),h.push(...a.points),u.push({containerProps:Object.assign(Object.assign({},x),{transform:`translate(${z})`,className:A,key:"summaryPiece-"+l,role:"img",tabIndex:-1,"data-o":o.name,"aria-label":`${o.name} ${t.type}`}),elements:r})}else if("violin"===t.type){const{iqr:a}=t,i=t.subsets||[!1],d=[];e[0].y=e[0].y-S/2,e[e.length-1].y=e[e.length-1].y+S/2,i.forEach((i,y)=>{let u=e;i&&(F=m[0]?r(m[0].piece.data,l,y):{},A=m[0]?n(m[0].piece.data,l,y):"",u=e.map(e=>{const t=e.pieces.filter((e,t)=>i(e.piece,t)).map(e=>e),a=v(t);return Object.assign(Object.assign({},e),{pieces:t,value:a})}));let p=f().curve(t.curve||j),g=[];if("horizontal"===s)u.forEach(e=>{const t=e.y-S/2,a=e.value/P*M/2;g.push({x:t,y0:-a,y1:a}),h.push({key:o.name,x:t+z[0],y:a+z[1],pieces:e.pieces.map(e=>e.piece),value:e.value})}),p.x(e=>e.x).y0(e=>e.y0).y1(e=>e.y1).defined((e,t)=>0!==e.y0||g[t-1]&&0!==g[t-1].y0||g[t+1]&&0!==g[t+1].y0);else if("vertical"===s)u.forEach(e=>{const t=e.y+S/2,a=e.value/P*M/2;g.push({y:t,x0:-a,x1:a}),h.push({key:o.name,x:a+z[0],y:t+z[1],pieces:e.pieces.map(e=>e.piece),value:e.value})}),p.y(e=>e.y).x0(e=>e.x0).x1(e=>e.x1).defined((e,t)=>0!==e.x0||g[t-1]&&0!==g[t-1].x0||g[t+1]&&0!==g[t+1].x0);else if("radial"===s){const e=o.pct-o.pct_padding/2,t=o.pct_middle;g=u,p=a=>{const r=[],n=[];return a.forEach(a=>{const s=se([0,0],t+e*a.value/P/2,(a.y+a.y1-S/2)/2),i=se([0,0],t-e*a.value/P/2,(a.y+a.y1-S/2)/2);h.push({key:o.name,x:i[0]+z[0],y:i[1]+z[1],pieces:a.pieces.map(e=>e.piece),value:a.value}),h.push({key:o.name,x:s[0]+z[0],y:s[1]+z[1],pieces:a.pieces.map(e=>e.piece),value:a.value}),r.push(s),n.push(i)}),`M${r.map(e=>e.join(",")).join("L")}L${n.reverse().map(e=>e.join(",")).join("L")}Z`}}if(d.push(Object.assign(Object.assign({},x),{transform:`translate(${z})`,key:`summaryPiece-${l}-${y}`,markType:"path",className:A,style:F,d:p(g),role:"img",tabIndex:-1,"data-o":o.name,"aria-label":o.name+" distribution"})),a){let e=[];u.forEach(t=>{e.push(...t.pieces)}),e=e.map(e=>"vertical"===s?e.piece.scaledVerticalValue:e.piece.scaledValue).sort((e,t)=>e-t);const t=[c(e,.25),c(e,.5),c(e,.75)],a="vertical"===s?(e,t,a)=>`M${a[0]},${e}L${a[0]},${t}`:(e,t,a)=>`M${e},${a[1]}L${t},${a[1]}`;d.push(Object.assign(Object.assign({},x),{key:`summaryPiece-${l}-${y}-iqr-line`,markType:"path",className:A,style:Object.assign(Object.assign({stroke:"black",strokeWidth:"2px"},F),k("iqr")),d:a(t[0],t[2],z),role:"img",tabIndex:-1,"data-o":o.name,"aria-label":o.name+" distribution"})),d.push(Object.assign(Object.assign({},x),{key:`summaryPiece-${l}-${y}-iqr-median`,markType:"circle",className:A,style:Object.assign(Object.assign({stroke:"black",fill:"black",strokeWidth:"1px",r:"3px"},F),k("median")),cx:"vertical"===s?z[0]:t[1],cy:"vertical"===s?t[1]:z[1],role:"img",tabIndex:-1,"data-o":o.name,"aria-label":o.name+" distribution"}))}}),u.push({elements:d})}else if("ridgeline"===t.type){const a=Object.assign({},e[0],{value:0}),r=Object.assign({},e[e.length-1],{value:0});a.y=a.y-S/2,r.y=r.y+S/2;const n=[a,...e,r];let c=[];const d=t.curve||t.interpolator,y="string"==typeof d?ve[d]:d;let m=g().curve(y||j).x(e=>e.x).y(e=>e.y);const p=t.amplitude||0;if(t.axis&&"histogram"===t.type&&u.push({type:"svg-only-mark",Mark:Ae({summary:o,summaryI:l,axisSettings:Object.assign({baseline:!1},t.axis),axisCreator:O,projection:s,actualMax:P,adjustedSize:i,columnWidth:M})}),"horizontal"===s)n.forEach((e,a)=>{const r=e.y-S/2,s=t.flip?e.value/P*(M+p)-M/2:-e.value/P*(M+p)+M/2;c.push({y:s,x:r}),0!==a&&a!==n.length-1&&h.push({key:o.name,x:r+z[0],y:s+z[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("vertical"===s)n.forEach(e=>{const a=e.y+S/2,r=!0===t.flip?e.value/P*(M+p)-M/2:-e.value/P*(M+p)+M/2;c.push({y:a,x:r}),h.push({key:o.name,x:r+z[0],y:a+z[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("radial"===s){const e=o.pct-o.pct_padding/2,t=o.pct_start+o.pct_padding/2;z=[0,0],c=n,m=a=>{const r=[];return a.forEach(a=>{const n=se([i[0]/2,i[1]/2],t+e*a.value/P,(a.y+a.y1-S/2)/2);h.push({key:o.name,x:n[0]+z[0],y:n[1]+z[1],pieces:a.pieces.map(e=>e.piece),value:a.value}),r.push(n)}),`M${r.map(e=>e.join(",")).join("L")}Z`}}t.axis&&u.push({type:"svg-only-mark",Mark:Ae({summary:o,summaryI:l,axisSettings:t.axis,axisCreator:O,projection:s,actualMax:P,adjustedSize:i,columnWidth:M})}),u.push({elements:[Object.assign(Object.assign({},x),{transform:`translate(${z})`,key:"summaryPiece-"+l,markType:"path",className:A,style:F,d:m(c),role:"img",tabIndex:-1,"data-o":o.name,"aria-label":o.name+" distribution"})]})}else if("horizon"===t.type){const a=Object.assign({},e[0],{value:0}),r=Object.assign({},e[e.length-1],{value:0});a.y=a.y-S/2,r.y=r.y+S/2;const n=[a,...e,r];let c=[],m=!0,p=0;for(;!0===m;){const e=n.map(e=>Object.assign(Object.assign({},e),{value:Math.max(0,Math.min(e.value-p,C))}));c.push(e.map(e=>Object.assign(Object.assign({},e),{value:e.value*T}))),p+=C,d(e.map(e=>e.value))<C&&(m=!1)}c=c.filter(e=>y(e,e=>e.value)>0),n.forEach((e,a)=>{0!==a&&a!==n.length-1&&("horizontal"===s?h.push({key:o.name,x:e.y-S/2+z[0],y:-e.value/P*M+M/2+z[1],pieces:e.pieces.map(e=>e.piece),value:e.value}):"vertical"===s&&h.push({key:o.name,x:(!0===t.flip?e.value/P*M-M/2:-e.value/P*M+M/2)+z[0],y:e.y+S/2+z[1],pieces:e.pieces.map(e=>e.piece),value:e.value}))});const f=c.map((e,a)=>{let r=[];const n=t.curve||t.interpolator,c="string"==typeof n?ve[n]:n;let d=g().curve(c||E).x(e=>e.x).y(e=>e.y);if("horizontal"===s)e.forEach(e=>{r.push({y:-e.value/P*M+M/2,x:e.y-S/2})});else if("vertical"===s)e.forEach(e=>{r.push({y:e.y+S/2,x:!0===t.flip?e.value/P*M-M/2:-e.value/P*M+M/2})});else if("radial"===s){const t=o.pct-o.pct_padding/2,a=o.pct_start+o.pct_padding/2;z=[0,0],r=e,d=e=>{const r=[];return e.forEach(e=>{const n=se([i[0]/2,i[1]/2],a+t*e.value/P,(e.y+e.y1-S/2)/2);r.push(n)}),`M${r.map(e=>e.join(",")).join("L")}Z`}}return Object.assign(Object.assign({},x),{transform:`translate(${z})`,key:`summaryPiece-${l}-${a}`,markType:"path",className:A,style:Object.assign(Object.assign({},F),k(e,a)),d:d(r),role:"img",tabIndex:-1,"data-o":o.name,"aria-label":o.name+" distribution"})});t.axis&&u.push({type:"svg-only-mark",Mark:Ae({summary:o,summaryI:l,axisSettings:t.axis,axisCreator:O,projection:s,actualMax:P,adjustedSize:i,columnWidth:M})}),u.push({elements:f})}}),{marks:u,xyPoints:h,thresholds:z}}const Pe={contour:function({data:e,type:t,eventListenersGenerator:a,styleFn:r,classFn:n,adjustedSize:s}){const i=[],o=[];return Object.keys(e).forEach((c,l)=>{const d=e[c];t.thresholds=t.thresholds||8,t.bandwidth=t.bandwidth||12,t.resolution=t.resolution||1e3;const y=[{id:d,_xyfCoordinates:d.xyData.map(pe)}],m=ye({summaryType:t,data:y,finalXExtent:[0,s[0]],finalYExtent:[0,s[1]]}),u=[];m.forEach((e,t)=>{e.coordinates.forEach((s,i)=>{const o=a(e,t);u.push(Object.assign(Object.assign({},o),{key:`${t}-${i}`,style:r(d.pieceData[0].data,l),className:n(d.pieceData[0].data,l),markType:"path",d:`M${e.coordinates[0].map(e=>e.join(",")).join("L")}Z`}))})}),i.push({containerProps:{key:"contour-container-"+l,role:"img",tabIndex:-1,"data-o":c,"aria-label":`${c} boxplot showing ${o.filter(e=>e.key===c).map(e=>`${e.label} ${e.value}`)}`},elements:u})}),{marks:i,xyPoints:o}},boxplot:function({data:e,type:t,eventListenersGenerator:a,styleFn:r,classFn:n,projection:s,adjustedSize:i}){const o=t.elementStyleFn||oe,{outliers:l,fixedInput:d}=t,y=[],m=[];return Object.keys(e).forEach((t,u)=>{const h=e[t],g=a(h,u),x=h.width,f=h.pieceData,b=r(f[0].data,u),v=n(f[0].data,u);let k,j,E,O,S,M,$,F,A,z,P,w,D,T,C,N,L,R,V,I,B,W,_,G,K,Y,X,H,q,Z,Q;j=f.map(e=>e.value).sort((e,t)=>e-t),!0===d&&5===j.length||(j=[c(j,0),c(j,.25),c(j,.5),c(j,.75),c(j,1)]);const U=j[3]-j[1];let J,ee;l&&(J=j[1]-1.5*U,ee=j[3]+1.5*U,j[0]=Math.max(j[0],J),j[4]=Math.min(j[4],ee));const te="vertical"===s?e=>e.scaledVerticalValue:e=>e.scaledValue,ae=[...f].sort((e,t)=>e.value-t.value),re=ae[0].value,ne=ae[ae.length-1].value,ie=te(ae[0]),oe=te(ae[ae.length-1]);if(k=j.map(e=>ne===re?(ie+oe)/2:ie+(e-re)/(ne-re)*(oe-ie)),"vertical"===s){E=`translate(${h.x+h.width/2},0)`,O=0,S=0,M=k[0],$=k[4],F=-x/2,A=x/2,z=-x/2,P=x/2,w=-x/2,D=x/2,R=x,V=k[1]-k[2],I=k[2],B=-x/2,T=x,C=k[2]-k[3],W=x,_=k[1]-k[3],G=k[3],K=-x/2,N=k[3],L=-x/2,Y=k[0],X=k[0],H=k[4],q=k[4],Z=k[2],Q=k[2];const e=h.x+h.width/2;m.push({label:"Maximum",key:t,summaryPieceName:"max",x:e,y:k[4],value:j[4]},{label:"3rd Quartile",key:t,summaryPieceName:"q3area",x:e,y:k[3],value:j[3]},{label:"Median",key:t,summaryPieceName:"median",x:e,y:k[2],value:j[2]},{label:"1st Quartile",key:t,summaryPieceName:"q1area",x:e,y:k[1],value:j[1]},{label:"Minimum",key:t,summaryPieceName:"min",x:e,y:k[0],value:j[0]})}else if("horizontal"===s){const e=h.x+h.width/2;E=`translate(0,${e})`,M=0,$=0,O=k[0],S=k[4],Y=-x/2,X=x/2,Z=-x/2,Q=x/2,H=-x/2,q=x/2,C=x,T=k[3]-k[2],L=k[2],N=-x/2,V=x,R=k[2]-k[1],B=k[1],I=-x/2,_=x,W=k[3]-k[1],K=k[1],G=-x/2,F=k[0],A=k[0],w=k[4],D=k[4],z=k[2],P=k[2],m.push({label:"Maximum",key:t,summaryPieceName:"max",x:k[4],y:e,value:j[4]},{label:"3rd Quartile",key:t,summaryPieceName:"q3area",x:k[3],y:e,value:j[3]},{label:"Median",key:t,summaryPieceName:"median",x:k[2],y:e,value:j[2]},{label:"1st Quartile",key:t,summaryPieceName:"q1area",x:k[1],y:e,value:j[1]},{label:"Minimum",key:t,summaryPieceName:"min",x:k[0],y:e,value:j[0]})}if("radial"===s){O=0,S=0,M=k[0],$=k[4],F=-x/2,A=x/2,z=-x/2,P=x/2,w=-x/2,D=x/2,T=x,C=k[1]-k[3],N=k[3],L=-x/2,R=x,V=k[1]-k[3],I=k[3],B=-x/2,Y=k[0],X=k[0],H=k[4],q=k[4],Z=k[2],Q=k[2];const e=2*Math.PI,a=p().innerRadius(H/2).outerRadius(H/2),r=p().innerRadius(Y/2).outerRadius(Y/2),n=p().innerRadius(Z/2).outerRadius(Z/2),s=p().innerRadius(k[1]/2).outerRadius(Z/2),c=p().innerRadius(Z/2).outerRadius(k[3]/2),l=p().innerRadius(k[1]/2).outerRadius(k[3]/2);let d=h.pct_start+h.pct_padding/2,W=h.pct+h.pct_start-h.pct_padding/2;const _=h.pct/2+h.pct_start;d*=e,W*=e;const G=i[0]/2,K=i[1]/2,U=se([0,0],_,k[4]/2),J=se([0,0],_,k[0]/2),ee=se([0,0],_,k[3]/2),te=se([0,0],_,k[2]/2),ae=se([0,0],_,k[1]/2);m.push({label:"Minimum",key:t,summaryPieceName:"min",x:J[0]+G,y:J[1]+K,value:j[0]},{label:"1st Quartile",key:t,summaryPieceName:"q3area",x:ae[0]+G,y:ae[1]+K,value:j[1]},{label:"Median",key:t,summaryPieceName:"median",x:te[0]+G,y:te[1]+K,value:j[2]},{label:"3rd Quartile",key:t,summaryPieceName:"q1area",x:ee[0]+G,y:ee[1]+K,value:j[3]},{label:"Maximum",key:t,summaryPieceName:"max",x:U[0]+G,y:U[1]+K,value:j[4]}),E=`translate(${G},${K})`,y.push({containerProps:Object.assign(Object.assign({},g),{className:v,transform:E,key:"summaryPiece-"+u,role:"img",tabIndex:-1,"data-o":t,"aria-label":`${t} boxplot showing ${m.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},b,o("whisker",f))},{markType:"path",d:r({startAngle:d,endAngle:W}),style:Object.assign({strokeWidth:4},b,{fill:"none"},o("max",f))},{markType:"path",d:n({startAngle:d,endAngle:W}),style:Object.assign({strokeWidth:4},b,{fill:"none"},o("median",f))},{markType:"path",d:a({startAngle:d,endAngle:W}),style:Object.assign({strokeWidth:4},b,{fill:"none"},o("min",f))},{markType:"path",d:l({startAngle:d,endAngle:W}),style:Object.assign({strokeWidth:4},b,o("iqrarea",f))},{markType:"path",d:s({startAngle:d,endAngle:W}),style:Object.assign({},b,{fill:"none",stroke:"none"},o("q3area",f))},{markType:"path",d:c({startAngle:d,endAngle:W}),style:Object.assign({},b,{fill:"none",stroke:"none"},o("q1area",f))}]})}else{const e=[{markType:"line",x1:O,x2:S,y1:M,y2:$,style:Object.assign({strokeWidth:2},b,o("whisker",f))},{markType:"line",x1:F,x2:A,y1:Y,y2:X,style:Object.assign({strokeWidth:2},b,o("min",f))},{markType:"line",x1:w,x2:D,y1:H,y2:q,style:Object.assign({strokeWidth:2},b,o("max",f))},{markType:"rect",x:K,width:W,y:G,height:_,style:Object.assign({strokeWidth:1},b,o("iqrarea",f))},{markType:"rect",x:L,width:T,y:N,height:C,style:Object.assign({},b,{fill:"none",stroke:"none"},o("q3area",f))},{markType:"rect",x:B,width:R,y:I,height:V,style:Object.assign({},b,{fill:"none",stroke:"none"},o("q1area",f))},{markType:"line",x1:z,x2:P,y1:Z,y2:Q,style:Object.assign({strokeWidth:2},b,o("median",f))}],a=[];if(l){const e=f.filter(e=>e.value>ee||J>e.value);e.forEach(e=>{a.push({markType:"circle",cx:"horizontal"===s?e.scaledValue:0,cy:"vertical"===s?e.scaledVerticalValue:0,style:Object.assign({strokeWidth:"1px",stroke:"black",fill:"none",r:2},b,o("outlier",f))})})}y.push({containerProps:Object.assign(Object.assign({},g),{className:v,transform:E,key:"summaryPiece-"+u,role:"img",tabIndex:-1,"data-o":t,"aria-label":`${t} boxplot showing ${m.filter(e=>e.key===t).map(e=>`${e.label} ${e.value}`)}`}),elements:[...e,...a]})}}),{marks:y,xyPoints:m}},violin:ze,heatmap:ze,ridgeline:ze,histogram:ze,horizon:ze,ckbins:function(e){const{data:t,eventListenersGenerator:a,styleFn:r,classFn:n}=e,i=[];let o=0;const c=[];return Object.keys(t).forEach((e,i)=>{const l=t[e];a(l,i);const d=l.pieceData.sort((e,t)=>e.value-t.value),y=d[0],m=d[d.length-1],u=s().domain([y.value,m.value]).range([y.scaledValue,m.scaledValue]),p=r(d[0].data,i),h=n(d[0].data,i),g=d.map(e=>e.value),x=function(e,t){if(t>e.length)throw Error("Cannot generate more classes than there are data values");var a=e.length,r=e.slice().sort(function(e,t){return e-t}),n=function(e){for(var t,a=0,r=0;e.length>r;r++)0!==r&&e[r]===t||(t=e[r],a++);return a}(r);if(1===n)return[r[0]];var s=ce(t=Math.min(n,t),a),i=ce(t,a);!function(e,t,a){for(var r=t[0].length,n=Array(r),s=Array(r),i=e[Math.floor(r/2)],o=0;r>o;++o)0===o?(n[0]=e[0]-i,s[0]=(e[0]-i)*(e[0]-i)):(n[o]=n[o-1]+e[o]-i,s[o]=s[o-1]+(e[o]-i)*(e[o]-i)),t[0][o]=le(0,o,n,s),a[0][o]=0;for(var c=1;t.length>c;++c)de(t.length-1>c?c:r-1,r-1,c,t,a,n,s)}(r,s,i);for(var o=[],c=i[0].length-1,l=i.length-1;l>=0;l--){var d=i[l][c];o[l]=r[d],l>0&&(c=d-1)}return o}(g,5);let f=[];x.forEach((t,a)=>{var r;const n=null!==(r=x[a+1])&&void 0!==r?r:m.value;f.push({start:t,end:n,key:e,summary:l,calculatedSummaryStyle:p,calculatedSummaryClass:h,scaledStart:u(t),scaledEnd:u(n),values:[]})}),c.push(f);let b=0;for(const e of d)f[b].end>e.value||f[b+1]&&b++,f[b].values.push(e);f.forEach(e=>{o=Math.max(e.values.length,o)})}),c.forEach((e,t)=>{const a=e.map(e=>{const{calculatedSummaryStyle:t}=e,{fill:a="black",stroke:r="black"}=t,n=s().domain([1,o]).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:n(e.values.length),strokeWidth:1,stroke:r})}});i.push({containerProps:{transform:"",key:"summaryPiece-"+t,role:"img",tabIndex:-1},elements:a})}),{marks:i,xyPoints:[]}}},we=({data:e,type:t,renderMode:a,eventListenersGenerator:r,styleFn:n,classFn:s,projection:i,adjustedSize:o,margin:c,axisCreator:l})=>{if(t&&t.type)return function({data:e,type:t,renderMode:a,eventListenersGenerator:r,styleFn:n,classFn:s,projection:i,adjustedSize:o,chartSize:c,margin:l,axisCreator:d}){let y;if("function"==typeof t.type)y=t.type;else{if(!Pe[t.type])return console.error(`Invalid summary type: ${t.type} - Must be a function or one of the following strings: ${Object.keys(Pe).join(", ")}`),{};y=Pe[t.type]}return y({data:e,type:t,renderMode:a,eventListenersGenerator:r,styleFn:n,classFn:s,projection:i,adjustedSize:o,chartSize:c,margin:l,axisCreator:d})}({data:e,type:t="string"==typeof t?{type:t}:t,renderMode:a,eventListenersGenerator:r,styleFn:n,classFn:s,projection:i,adjustedSize:o,chartSize:"vertical"===i?o[1]:o[0],margin:c,axisCreator:l})};function De(t){const a=[];for(const r of t){const t=[],{elements:n,containerProps:s}=r;if(r.Mark)a.push(r.Mark);else{for(let a=0;n.length>a;a++){const r=n[a],{markType:s,style:i={}}=r,o=ne(r,["markType","style"]),c=Object.assign({},o);void 0!==i.fill&&(c.fill=i.fill),void 0!==i.stroke&&(c.stroke=i.stroke),void 0!==i.strokeWidth&&(c.strokeWidth=i.strokeWidth),void 0!==i.opacity&&(c.opacity=i.opacity),void 0!==i.fillOpacity&&(c.fillOpacity=i.fillOpacity),void 0!==i.strokeOpacity&&(c.strokeOpacity=i.strokeOpacity);const l=Object.assign({},i);delete l.fill,delete l.stroke,delete l.strokeWidth,delete l.opacity,delete l.fillOpacity,delete l.strokeOpacity,Object.keys(l).length>0&&(c.style=l),c.key=r.key||a,s&&t.push(e.createElement(s,c))}s?a.push(e.createElement("g",Object.assign({},s),t)):a.push(...t)}}return a}const Te=({data:e,canvasRender:t,canvasDrawing:a})=>{var r;if(t())for(const t of e)if("svg-only-mark"!==t.type){const{transform:e="translate(0,0)"}=null!==(r=null==t?void 0:t.containerProps)&&void 0!==r?r:{transform:"translate(0,0)"},[n,s]=e.replace("translate(","").replace(")","").split(",");for(const e of t.elements){const{transform:t="translate(0,0)"}=e,[r,i]=t.replace("translate(","").replace(")","").split(",");a.push({baseClass:"frame-piece",tx:parseInt(r)+parseInt(n),ty:parseInt(i)+parseInt(s),d:{},i:0,markProps:e,styleFn:()=>e.style,renderFn:e.renderMode,classFn:()=>""})}}return De(e.filter(e=>!t()||"svg-only-mark"===e.type))};function Ce(t){const{rotate:s,label:i,dynamicLabelPosition:o,orient:c="left",marginalSummaryType:l,tickFormat:d=(l?()=>"":e=>e),size:y,width:m=y&&y[0]||0,height:u=y&&y[1]||0,className:p,padding:h,tickValues:g,scale:x,ticks:f,footer:b,tickSize:v,tickLineGenerator:k,baseline:j=!0,margin:E={top:0,bottom:0,left:0,right:0},center:O=!1,annotationFunction:S,glyphFunction:M,xyPoints:$}=t,[F,A]=a(0),[z,P]=a(void 0),w=r(null);n(()=>{if(!(null==i?void 0:i.position)&&o){const e=((e,t)=>{const a=e.current;if(!a)return 30;const r="left"===t||"right"===t?"width":"height",n=Math.max(...[...a.querySelectorAll(".axis-label")].map(e=>e.getBBox&&e.getBBox()||{height:30,width:30}).map(e=>e[r]))+25;return n})(w,c);e!==z&&P(e)}},[i,o]);let D,{axisParts:T,position:C=[0,0]}=t;if(T||(T=Q({padding:h,tickValues:g,scale:x,ticks:f,orient:c,size:[m,u],footer:b,tickSize:v}),D=e.createElement("g",{className:"axis "+p},J({axisParts:T,orient:c,tickLineGenerator:k,className:p,scale:x}))),0===T.length)return null;let N,L,R,V,I=50,B=u,W=-50,_=0,G=0,K=0,Y=0,X=u,H=25,q=-25,Z=18,U=m+25,ee=0,te=F,ne=0,se="y";switch(c){case"right":C=[C[0],C[1]],W=m,Y=G=m,ne=E.top,U=-m-25,q=5,N=e=>{A(e.nativeEvent.offsetY-ne)},!0===O&&(Y=G=m/2);break;case"top":C=[C[0],0],I=m,B=50,_=-50,W=0,ne=E.left,se="x",Y=m,X=0,!0===O&&(X=K=u/2),N=e=>{A(e.nativeEvent.offsetX-ne)},H=F,te=25,q=0,Z=-10,U=0,ee=u+25;break;case"bottom":C=[C[0],0],I=m,B=50,K=X=_=u,G=W=0,Y=m,ne=E.left,N=e=>{A(e.nativeEvent.offsetX-ne)},H=F,te=25,q=0,Z=15,U=0,ee=-u-25,se="x",!0===O&&(X=K=u/2);break;default:C=[C[0],C[1]],ne=E.top,!0===O&&(Y=G=m/2),N=e=>{A(e.nativeEvent.offsetY-ne)}}if(S){const a=function(e,t){return t.tickFormat?t.tickFormat(e):e.toString?""+e:e}(x.invert(F),t),r=M?M({lineHeight:ee,lineWidth:U,value:x.invert(F)}):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:U,y1:ee,style:{stroke:"black"}})),n=F?e.createElement("g",{style:{pointerEvents:"none"},transform:`translate(${H},${te})`},r):null;L=e.createElement("g",{className:"annotation-brush",transform:`translate(${W},${_})`},e.createElement("rect",{style:{fillOpacity:0},height:B,width:I,onMouseMove:N,onClick:e=>S({className:"dynamic-axis-annotation",type:se,value:x.invert(F),e:e}),onMouseOut:()=>{A(void 0)}}),n)}if(l&&$){const t=Math.max(E[c]-6,5),a="string"==typeof l?{type:l}:l;void 0!==a.flip||"bottom"!==c&&"right"!==c||(a.flip=!0);const r=a.summaryStyle?()=>a.summaryStyle:()=>({fill:"black",fillOpacity:.5,stroke:"black",strokeDasharray:"0"}),n=a.renderMode?()=>a.renderMode:()=>{},s=a.summaryClass?()=>a.summaryClass:()=>"",i=a.filter||(()=>!0),o=$.filter(e=>void 0!==e.x&&void 0!==e.y&&i(e.data)).map(e=>Object.assign(Object.assign({},e),{xy:{x:"top"===c||"bottom"===c?x(e.x):0,y:"left"===c||"right"===c?x(e.y):0},piece:{scaledVerticalValue:x(e.y),scaledValue:x(e.x)},value:x("top"===c||"bottom"===c?e.y:e.x),scaledValue:x(e.x),scaledVerticalValue:x(e.y)})),d=De(we({data:{column:{middle:t/2,pieceData:o,width:t,xyData:o}},type:a,renderMode:n,eventListenersGenerator:a.eventListenersGenerator||(()=>({})),styleFn:r,classFn:s,projection:"top"===c||"bottom"===c?"horizontal":"vertical",adjustedSize:y,margin:{top:0,bottom:0,left:0,right:0}}).marks);let m;if(!0===a.showPoints){const r=((e,t,a)=>{const r="left"===e||"right"===e?t/2:0,n="bottom"===e||"top"===e?t/2:0;return a.map(e=>[e.xy.x+r,e.xy.y+n])})(c,t,o);m=r.map((t,r)=>e.createElement("circle",{key:"axis-summary-point-"+r,cx:t[0],cy:t[1],r:a.r||3,style:a.pointStyle||{fill:"black",fillOpacity:.1}}))}R=e.createElement(ae,{translation:{left:[2-E.left,0],right:[y[0]+2,0],top:[0,2-E.top],bottom:[0,y[1]+2]},orient:c,decoratedSummaryType:a,summaryWidth:t,renderedSummary:d,points:m})}const ie=(({axisParts:t,tickFormat:a,rotate:r=0,center:n=!1,orient:s})=>t.map((t,i)=>{let o=a(t.value,i);("object"!=typeof o||o instanceof Date)&&(o=e.createElement("text",{textAnchor:t.defaultAnchor,className:"axis-label"},o.toString?""+o:o));let c=t.tx,l=t.ty;if(n)switch(s){case"right":c-=(t.x2-t.x1)/2;break;case"left":c+=(t.x2-t.x1)/2;break;case"top":l+=(t.y2-t.y1)/2;break;case"bottom":l-=(t.y2-t.y1)/2}return e.createElement("g",{key:i,pointerEvents:"none",transform:`translate(${c},${l}) rotate(${r})`,className:"axis-label"},o)}))({tickFormat:d,axisParts:T,orient:c,rotate:s,center:O});if(i){const t=i.name||i,a=i.position||{};let r=a.anchor||"middle";const n=i.locationDistance||z,s=a.rotation||{left:-90,right:90,top:0,bottom:0}[c],o={left:{start:[0,y[1]],middle:[0,y[1]/2],end:[0,0],inside:[n||15,0],outside:[-(n||45),0]},right:{start:[y[0]+0,y[1]],middle:[y[0]+0,y[1]/2],end:[y[0]+0,0],inside:[-(n||15),0],outside:[n||45,0]},top:{start:[0,0],middle:[0+y[0]/2,0],end:[0+y[0],0],inside:[0,n||15],outside:[0,-(n||40)]},bottom:{start:[0,y[1]],middle:[0+y[0]/2,y[1]],end:[0+y[0],y[1]],inside:[0,-(n||5)],outside:[0,n||50]}},l=o[c][r],d=o[c][a.location||"outside"];l[0]=l[0]+d[0],l[1]=l[1]+d[1],"start"===r&&"right"===c?r="end":"end"===r&&"right"===c&&(r="start"),V=e.createElement(re,{className:p,translation:l,position:C,rotation:s,labelName:t,anchorMod:r})}const oe=`${c} 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:p,"aria-label":oe,ref:w},L,ie,D,!0===j?e.createElement("line",{key:"baseline",className:"axis-baseline "+p,stroke:"black",strokeLinecap:"square",x1:G,x2:Y,y1:K,y2:X}):null,V,R)}const Ne=e=>e instanceof Date?e.getTime():e,Le=({type:e="stackedarea",data:t,xProp:a,yProp:r,yPropMiddle:n,sort:s,yPropTop:i,yPropBottom:o})=>{const c=new Map,l=t.map(()=>0);let d=0;for(const e of t){e.__lineIndex=d;for(const t of e.data){const e=Ne(t[a]);l[d]+=t[r],c.has(e)||c.set(e,[]),c.get(e)[d]=t}d++}let m=(e,t)=>l[t.key]-l[e.key];"stackedpercent-invert"!==e&&"stackedarea-invert"!==e||(m=(e,t)=>l[e.key]-l[t.key]),null!==(s=void 0===s?m:s)&&(t=t.sort(s));const u=t.map(e=>e.__lineIndex);for(const[,t]of c){let a=0,s=0;const c=y(t,e=>(null==e?void 0:e[r])>0?e[r]:0),l=y(t,e=>0>(null==e?void 0:e[r])?e[r]:0);for(const d of u){const y=t[d];if(y)if(0>y[r]){if("linepercent"===e||"stackedpercent"===e||"stackedpercent-invert"===e){const t=y[r]/l;if(y.percent=t,"linepercent"===e)y[o]=y[o]=y[i]=y[n]=t;else{const e=0>l?t:0;y[o]=0===l?0:-a/l,y[i]=y[o]-e,y[n]=y[o]-e/2}}else y[o]=a,y[i]=a+y[r],y[n]=a+y[r]/2;a+=y[r]}else{if("linepercent"===e||"stackedpercent"===e||"stackedpercent-invert"===e){const t=y[r]/c;if(y.percent=t,"linepercent"===e)y[o]=y[i]=y[n]=t;else{const e=c>0?t:0;y[o]=0===c?0:s/c,y[i]=y[o]+e,y[n]=y[o]+e/2}}else y[o]=s,y[i]=s+y[r],y[n]=s+y[r]/2;s+=y[r]}}}return t},Re=({data:e,y1:t,x1:a,yPropTop:r,yPropMiddle:n,yPropBottom:s,xPropTop:i,xPropMiddle:o,xPropBottom:c})=>{if(t)for(const a of e)for(const e of a.data)e[s]=t(e),e[n]=e[r];if(a)for(const t of e)for(const e of t.data)e[c]=a(e),e[o]=(e[c]+e[i])/2;return e},Ve=({data:e,y1:t,yPropTop:a,yPropMiddle:r,yPropBottom:n,type:s="cumulative"})=>{for(const i of e){let e=0;const o="cumulative-reverse"===s?i.data.reverse():i.data;for(const s of o)e+=s[a],s[n]=s[a]=s[r]=e,t&&(s[n]=t(s),s[r]=s[n]+s[a]/2)}return e},Ie=({type:e="bumpline",data:t,xProp:a,yProp:r,yPropMiddle:n,yPropTop:s,yPropBottom:i})=>{const o=new Map;for(const e of t)for(const t of e.data){const e=Ne(t[a]);o.has(e)||o.set(e,[]),o.get(e).push(t)}let c=(e,t)=>e[r]>t[r]?1:-1;"bumparea-invert"!==e&&"bumpline-invert"!==e||(c=(e,t)=>t[r]>e[r]?1:-1);for(const[,t]of o){let a=0,o=0;t.sort(c);let l=1;for(const c of t)"bumparea"===e||"bumparea-invert"===e?0>c[r]?(c[s]=a+c[r],c[n]=a+c[r]/2,c[i]=a,a+=c[r]):(c[s]=o+c[r],c[n]=o+c[r]/2,c[i]=o,o+=c[r]):(c[r]=l,c[s]=l,c[i]=l),l++}return t},Be="x",We="y",_e="yMiddle",Ge="yTop",Ke="yBottom",Ye="xMiddle",Xe="xTop",He="xBottom",qe=e=>e&&e.extent||Array.isArray(e)&&e||[],Ze=()=>!0,Qe={top:Ge,bottom:Ke,orphan:We},Ue={top:Xe,bottom:He,orphan:Be},Je={stackedarea:Le,"stackedarea-invert":Le,stackedpercent:Le,"stackedpercent-invert":Le,linepercent:Le,difference:({data:e,yProp:t,yPropTop:a,yPropBottom:r})=>(e.forEach((n,s)=>{n.data.forEach((n,i)=>{const o=0===s?1:0;n[t]>e[o].data[i][t]?(n[r]=e[o].data[i][t],n[a]=n[t]):(n[a]=n[t],n[r]=n[t])})}),e),bumparea:Ie,bumpline:Ie,"bumparea-invert":Ie,line:Re,area:Re,cumulative:Ve,"cumulative-reverse":Ve};function et(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 tt(e,t,a){if(void 0===e)return[et(void 0,t,a)];let r=[];return r=Array.isArray(e)?e:[e],r.map(e=>et(e,t,a))}function at(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 rt=(e,t)=>!Je[e]||"difference"===e&&2!==t.length?"line":e,nt=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 st(e){return Math.round(10*e)/10}const it=({margin:e,axes:t,title:a,oLabel:r,projection:n,size:s})=>{if(void 0!==e){if("function"==typeof e&&(e=e({size:s})),"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 o="left";t&&"radial"!==n&&t.forEach(e=>{o=e.orient,i[o]=e.label?60:50});const{title:c,orient:l}=nt(a);return!c||"string"==typeof c&&0===c.length||(i[l]+=40),r&&"radial"!==n&&("bottom"===o||"top"===o?i.left+=50:i.bottom+=50),i};function ot(e){return e instanceof Function||"string"==typeof e?{type:e}:void 0===e?{}:e}function ct({data:e,renderKey:t=(e,t)=>t,oAccessor:a,rAccessor:r,originalRAccessor:n,originalOAccessor:i,multiAxis:o=!1}){let c,l;if(o&&r.length>1){let t=1/0;l=r.map(a=>{const r=e.map(a).reduce((e,t)=>[Math.min(t,e[0]),Math.max(t,e[1])],[1/0,-1/0]);return t=Math.min(r[0]/r[1],t),r});const a=l.map(e=>{let a=[0,1],r=e;return 0>e[0]&&e[1]>0?(a[0]=t,r[0]=r[1]*t):0>e[0]&&0>e[1]?(r[1]=0,a=[-1,0]):r[0]=0,s().domain(e).range(a)});c=a.map((e,t)=>a=>e(r[t](a)))}else c=r;const d=[];return a.forEach((a,r)=>{c.forEach((s,o)=>{(e||[]).forEach(e=>{const c=t(e,d.length),l=void 0!==c&&c.toString&&""+c||c,y=n[o],m=i[r],u="string"==typeof y?y:"function-"+o,p="string"==typeof m?m:"function-"+r;if("object"!=typeof e){const t={value:e,renderKey:l},a=s(t);d.push({data:t,value:a,rIndex:o,rName:u,oIndex:r,oName:p,column:l,renderKey:l})}else{const t=s(e),n=a(e);d.push({renderKey:l,data:e,rIndex:o,rName:u,oIndex:r,oName:p,value:t,column:n&&n.toString?""+n:n})}})})}),{allData:d,multiExtents:l}}function lt({size:e=[500,500],position:t=[0,0],margin:a,projection:r}){const n=[t[0],t[1]];let s=[e[0]-(a.left+a.right),e[1]-(a.top+a.bottom)];if("radial"===r){const e=Math.min(s[0],s[1]);s=[e,e]}return{adjustedPosition:n,adjustedSize:s}}function dt({type:t,data:a,renderMode:r,eventListenersGenerator:n,styleFn:s,classFn:i,projection:o,canvasRender:c,canvasDrawing:l,pieceType:d}){if(!t.type)return null;const y=[],m=new Map,{keyedData:u,oExtent:p}=a;if("function"==typeof t.type){const a=t.type,h=p;if(p.forEach((t,p)=>{const g=u[t],x=u[h[p+1]];if(x){const t=x.map((e,t)=>a(Object.assign(Object.assign({},e.piece),e.piece.data),t));g.forEach((u,p)=>{const h=a(Object.assign(Object.assign({},u.piece),u.piece.data),p),g=a(Object.assign(Object.assign({},u.piece),u.piece.data),p),f=void 0!==g&&!1!==g&&t.indexOf(g);if(null!=h&&!1!==f&&-1!==f){const t=x[f];let a;if("radial"===o&&"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:x=1,width:f=1}=d,{x:b,y:v,height:k=1,width:j=1}=m;if("vertical"===o)a=fe({x1:h+f,x2:b,y1:g,y2:v,sizeX1:0,sizeX2:0,sizeY1:x,sizeY2:k});else if("horizontal"===o){const{value:e}=u.piece,{value:r}=t.piece;a=fe({x1:0>e?u.piece.bottom-f:h-f,x2:0>r?t.piece.bottom-j:b-j,y1:g+x,y2:v,sizeX1:f,sizeX2:j,sizeY1:0,sizeY2:0})}else"radial"===o&&(a=fe({x1:h,x2:b,y1:g+x,y2:v,sizeX1:f,sizeX2:j,sizeY1:0,sizeY2:0}));r&&r(u.piece,p);const E=Object.assign(Object.assign({},u.piece.data),u.piece.data),O=Object.assign(Object.assign({},t.piece),t.piece.data),S=s({source:E,target:O}),M=n({source:E,target:O},p);c&&!0===c(u.piece)?l.push({baseClass:"xyframe-line",tx:0,ty:0,d:{source:E,target:O},markProps:{d:a,markType:"path"},styleFn:s,renderFn:r,classFn:i}):y.push(e.createElement("path",Object.assign({},M,{d:a,className:i?i(u.piece.data,p):"",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),n=`M${t.map(e=>`${e.xy.x},${e.xy.y}`).join("L")}Z`;if(c&&c(a))l.push({baseClass:"ordinal-radar",tx:0,ty:0,d:{source:a},markProps:{d:n,markType:"path"},styleFn:s,renderFn:r,classFn:i});else{const t=s({source:a});y.push(e.createElement("path",Object.assign({d:n,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 y}const yt={line:{items:"line",chart:"line chart"},area:{items:"summary",chart:"summary chart"},summary:{items:"summary",chart:"summary chart"},cumulative:{items:"line",chart:"cumulative chart"},"cumulative-reverse":{items:"line",chart:"cumulative chart"},linepercent:{items:"line",chart:"line chart"},stackedarea:{items:"stacked area",chart:"stacked area chart"},"stackedarea-invert":{items:"stacked area",chart:"stacked area chart"},stackedpercent:{items:"stacked area",chart:"stacked area chart"},"stackedpercent-invert":{items:"stacked area",chart:"stacked area chart"},bumparea:{items:"ranked area",chart:"ranked area chart"},"bumparea-invert":{items:"ranked area",chart:"ranked area chart"},bumpline:{items:"ranked line",chart:"ranked line chart"},difference:{items:"line",chart:"difference chart"}},mt=()=>({}),ut=()=>"";function pt(t,a,r){return e.createElement(Ce,{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:r,className:t.className})}const ht=2*Math.PI,gt=({type:e,ordset:t,adjustedSize:a,piece:r,i:n})=>{let{innerRadius:i}=e;const{offsetAngle:o=0,angleRange:c=[0,360]}=e,l=o/360,d=c.map(e=>e/360),y=d[1]-d[0],m=1>y?s().domain([0,1]).range(d):e=>e;let u="clusterbar"===e.type?0:"timeline"===e.type?r.scaledValue/2:r.bottom/2,h="clusterbar"===e.type?r.scaledValue/2:"timeline"===e.type?r.scaledEndValue/2:r.scaledValue/2+r.bottom/2;if(i){i=parseInt(i,10);const e=a[0]/2,t=(e-i)/e;u=u*t+i,h=h*t+i}const g=p().innerRadius(u).outerRadius(h),x=("clusterbar"===e.type?(t.pct-t.pct_padding)/t.pieceData.length:t.pct)*y,f=m("clusterbar"===e.type?t.pct_start+n/t.pieceData.length*(t.pct-t.pct_padding):1===t.pct?0:t.pct_start+l),b=1===t.pct?d[1]:Math.max(f,f+x-t.pct_padding/2),v=f*ht,k=b*ht,j=g({startAngle:v,endAngle:k}),E=g.centroid({startAngle:v,endAngle:k}),O=a[0]/2,S=a[1]/2,M=E[0]+O,$=E[1]+S,F=se([0,0],(f+b)/2,r.scaledValue/2),A=`translate(${O},${S})`;return{xPosition:M,yPosition:$,xy:{arcGenerator:g,startAngle:v,endAngle:k,dx:F[0],dy:F[1]},translate:A,tx:O,ty:S,markProps:{markType:"path",d:j,transform:A}}},xt=({type:t,projection:a,finalHeight:r,finalWidth:n,styleFn:s,classFn:i})=>(o,c,l)=>{const d="string"==typeof t.icon?t.icon:t.icon(o.data,c),{iconPadding:y=1,resize:m="auto"}=t,u=T(d),p=[0-u.x1+y,0-u.y1+y];u.height+=2*y,u.width+=2*y;const h=[];let g=u.height,x=1,f=1;const b="horizontal"===a?r:n,v="horizontal"===a?u.height:u.width,k="horizontal"===a?u.width:u.height,j="horizontal"===a?l.width:l.height,E="horizontal"===a?l.height:l.width;"auto"===m?(g=b/v,1>g?f=g:(x=Math.floor(g),f=1+(g-x)/x)):"fixed"===m&&(f=b/v);const O=u.height*f,S=k*f,M=v*f;p[0]=p[0]*f,p[1]=p[1]*f;const $=`iso-clip-${c}-${Math.random()}`,F=`url(#${$})`;if(l.width>0){h.push(e.createElement("clipPath",{key:$,id:$},e.createElement("rect",{x:0,y:0,width:l.width,height:l.height})));const t=[],r="horizontal"===a?S:-S,n="horizontal"===a?(e,t)=>t>e:(e,t,a)=>e>0+a;for(let y="horizontal"===a?0:l.height-O;n(y,j,r);y+=r)for(let r=0;E>r;r+=M)t.push(e.createElement("path",{key:`icon-${y}-${r}`,transform:`translate(${("horizontal"===a?y:r)+p[0]},${("horizontal"===a?r:y)+p[1]}) scale(${f})`,vectorEffect:"non-scaling-stroke",d:d,style:s(Object.assign(Object.assign({},o),o.data),c),className:i(Object.assign(Object.assign({},o),o.data),c)}));h.push(e.createElement("g",{key:"clipped-region-"+c,clipPath:F},t))}return h},ft=e=>()=>e,bt={clusterbar:function({type:t,data:a,renderMode:r,eventListenersGenerator:n,styleFn:s,projection:i,classFn:o,adjustedSize:c,chartSize:l,margin:d,rScale:y}){let m=[];return Object.keys(a).forEach((u,p)=>{const h=a[u],g=Math.max(h.width,1)/h.pieceData.length;let x=0,f=0;const b=h.pieceData.map((a,m)=>{const b=r&&r(a.data,m);let v=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,v=a.base,E=g,j=a.scaledValue,O.x=a.scaledValue,a.negative&&(v-=a.scaledValue,O.x=v));let S={},M=0,$=0;if("radial"===i){let e,r;({xPosition:v,yPosition:k,markProps:S,xy:O,tx:e,ty:r}=gt({type:t,ordset:h,adjustedSize:c,piece:a,i:m})),M=e,$=r,O.x=v}else v+=x,k+=f,S={markType:"rect",x:v,y:k,width:Math.max(0,j),height:Math.max(0,E),rx:0,ry:0},"vertical"===i&&(O.x=v);const F=n(a,m);O.y=k,O.middle=g/2,O.height=E,O.width=j,t.icon&&"radial"!==i?t.customMark=xt({type:t,projection:i,finalHeight:E,finalWidth:j,styleFn:s,renderValue:b,classFn:o}):t.icon&&"radial"===i&&console.error("Icons are currently unsupported on radial charts");const A=t.customMark?e.createElement("g",{key:"piece-"+a.renderKey,transform:`translate(${v},${k})`},t.customMark(Object.assign(Object.assign(Object.assign({},a.data),a),{x:v,y:k}),m,Object.assign(Object.assign({},O),{renderMode:r,styleFn:s,classFn:o,adjustedSize:c,chartSize:l,margin:d,rScale:y}))):Object.assign(Object.assign({className:o(Object.assign(Object.assign({},a),a.data),m),key:"piece-"+a.renderKey,transform:void 0,style:s(Object.assign(Object.assign({},a),a.data),p)},S),F);return"horizontal"===i?f+=E:x+=j,{o:u,xy:O,piece:a,tx:M,ty:$,renderValue:b,renderElement:A}});m=[...m,...b]}),m},bar:function({type:t,data:a,renderMode:r,eventListenersGenerator:n,styleFn:s,projection:i,classFn:o,adjustedSize:c,chartSize:l,margin:d,rScale:y}){let m=[];return Object.keys(a).forEach((u,p)=>{const h=a[u],g=Math.max(h.width,1);h.pieceData.forEach((a,x)=>{const f=a.scaledValue,b=r&&r(a.data,x);let v=a.x,k=a.bottom,j=g,E=f,O={};a.negative||(k-=a.scaledValue),"vertical"===i?O={x:v,y:k,middle:g/2,height:E,width:j}:"horizontal"===i&&(k=a.x,v=a.bottom,E=g,j=f,O={x:v+a.scaledValue,y:k,middle:g/2,height:E,width:j},a.negative&&(v=a.bottom-a.scaledValue));let S,M=0,$=0;if("radial"===i){let e,r;({markProps:S,xPosition:v,yPosition:k,tx:e,ty:r}=gt({type:t,ordset:h,adjustedSize:c,piece:a,i:x})),M=e,$=r,E=void 0,j=void 0,O={x:v,y:k,middle:g/2,height:E,width:j}}else S={markType:"rect",x:v,y:k,width:Math.max(0,j),height:Math.max(0,E),rx:0,ry:0};const F=n(a,x);t.icon&&"radial"!==i?t.customMark=xt({type:t,projection:i,finalHeight:E,finalWidth:j,styleFn:s,renderValue:b,classFn:o}):t.icon&&"horizontal"!==i&&console.error("Icons are currently unsupported in radial charts");const A=t.customMark?e.createElement("g",{key:"piece-"+a.renderKey,transform:`translate(${v},${k})`,role:"img",tabIndex:-1},t.customMark(Object.assign(Object.assign(Object.assign({},a.data),a),{x:v,y:k}),x,Object.assign(Object.assign({},O),{renderMode:r,styleFn:s,classFn:o,adjustedSize:c,chartSize:l,margin:d,rScale:y}))):Object.assign(Object.assign({className:o(Object.assign(Object.assign({},a),a.data),x),key:"piece-"+a.renderKey,style:s(Object.assign(Object.assign({},a),a.data),p)},F),S);m.push({o:u,xy:O,piece:a,tx:M,ty:$,renderValue:b,renderElement:A})})}),m},point:function({type:t,data:a,renderMode:r,eventListenersGenerator:n,styleFn:s,projection:i,classFn:o,adjustedSize:c,chartSize:l,margin:d,rScale:y}){const m=t.r||3;let u=[];return Object.keys(a).forEach((p,h)=>{const g=a[p],x=[];g.pieceData.forEach((a,u)=>{const f=r&&r(a.data,u);let b=g.middle,v=a.scaledVerticalValue;if("horizontal"===i)v=g.middle,b=a.scaledValue;else if("radial"===i){const e=se([c[0]/2,c[1]/2],g.pct_middle,a.scaledValue/2);b=e[0],v=e[1]}const k="function"==typeof m?m(a,u):m,j=n(a,u),E=t.customMark?e.createElement("g",{key:"piece-"+a.renderKey,transform:`translate(${b},${v})`},t.customMark(Object.assign(Object.assign(Object.assign({},a.data),a),{x:b,y:v,width:g.width}),u,{r:m,x:b,y:v,renderMode:r,styleFn:s,classFn:o,adjustedSize:c,chartSize:l,margin:d,rScale:y})):Object.assign({className:o(Object.assign(Object.assign({},a),a.data),u),markType:"rect",key:"piece-"+a.renderKey,height:2*k,width:2*k,x:b-k,y:v-k,rx:k,ry:k,style:s(Object.assign(Object.assign({},a),a.data),h)},j);x.push({o:p,xy:{x:b,y:v},piece:a,renderValue:f,renderElement:E})}),u=[...u,...x]}),u},swarm:function({type:t,data:a,renderMode:r,eventListenersGenerator:n,styleFn:s,projection:i,classFn:o,adjustedSize:c,chartSize:l,margin:d,rScale:y}){let m=[];const u=Object.keys(a),p=u.reduce((e,t)=>{var r;return e+((null===(r=a[t].pieceData)||void 0===r?void 0:r.length)||0)},0),h=void 0!==t.iterations?t.iterations:Math.max(30,Math.min(120,Math.floor(120-(p-100)/20)));return u.forEach((p,g)=>{const x=a[p],f=1/u.length,b=x.pieceData,v=x.width,k=t.r||Math.max(2,Math.min(5,4*v/b.length)),j=C(b).force("y",N(e=>e.scaledValue).strength(t.strength||2)).force("x",L(x.middle)).force("collide",R(k)).stop();"vertical"===i&&j.force("y",N(e=>e.scaledVerticalValue).strength(t.strength||2));for(let e=0;h>e;++e)j.tick();const E=b.map((a,m)=>{const u=r&&r(a.data,m);let h=a.x,b=a.y;if("horizontal"===i)b=a.x,h=a.y;else if("radial"===i){h=(a.x-x.middle)/v*f;const e=se([c[0]/2,c[1]/2],x.pct_middle+h,a.scaledValue/2);h=e[0],b=e[1]}const j="function"==typeof k?k(a,m):k,E=n(a,m),O=t.customMark?e.createElement("g",{key:"piece-"+a.renderKey,transform:`translate(${h},${b})`},t.customMark(Object.assign(Object.assign(Object.assign({},a.data),a),{x:h,y:b}),m,{x:h,y:b,r:k,renderMode:r,styleFn:s,classFn:o,adjustedSize:c,chartSize:l,margin:d,rScale:y})):Object.assign({className:o(Object.assign(Object.assign({},a),a.data),m),markType:"rect",key:"piece-"+a.renderKey,height:2*j,width:2*j,x:h-j,y:b-j,rx:j,ry:j,style:s(Object.assign(Object.assign({},a),a.data),g)},E);return{o:p,xy:{x:h,y:b},piece:a,renderValue:u,renderElement:O}});m=[...m,...E]}),m},timeline:function({type:t,data:a,renderMode:r,eventListenersGenerator:n,styleFn:s,projection:i,classFn:o,adjustedSize:c,chartSize:l,margin:d,rScale:y}){let m=[];return Object.keys(a).forEach((u,p)=>{const h=a[u],g=[];h.pieceData.forEach((a,m)=>{let x,f,b=0,v=0;const k=r&&r(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,x=a.scaledEndValue-a.scaledValue,f=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,r;({markProps:M,tx:e,ty:r}=gt({piece:a,type:t,ordset:h,adjustedSize:c,i:m})),b=e,v=r}const $=n(a,m),F={x:j,y:O,scaledValue:x,scaledBottom:f,height:E},A=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({},F),{renderMode:r,styleFn:s,classFn:o,adjustedSize:c,chartSize:l,margin:d,rScale:y}))):Object.assign(Object.assign({className:o(Object.assign(Object.assign({},a),a.data),m),key:"piece-"+a.renderKey,style:s(Object.assign(Object.assign({},a),a.data),p)},M),$);g.push({o:u,xy:F,piece:a,tx:b,ty:v,renderValue:k,renderElement:A})}),m=[...m,...g]}),m}},vt=e=>e.middle?e.middle:0,kt=ft(0),jt=2*Math.PI,Et={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"}},Ot=({d:t,i:a,styleFn:r,key:n,className:s,transform:i})=>{const o=r(t,a);return e.createElement("rect",Object.assign({key:n,transform:i,width:2*t.nodeSize,height:2*t.nodeSize,ry:2*t.nodeSize,rx:2*t.nodeSize,x:-t.nodeSize,y:-t.nodeSize},o,{style:o,className:s,"aria-label":"Node "+t.id,tabIndex:-1}))},St=e=>({x:-e/2,y:-e/2,width:e,height:e}),Mt=({d:t,styleFn:a,key:r,className:n,transform:s})=>{const i="down"!==t.direction?t.height:t.width,o="down"!==t.direction?t.width:t.height;return t?e.createElement("rect",{key:r,className:n,transform:s,height:i,width:o,x:-o/2,y:-i/2,rx:0,ry:0,style:a(t),"aria-label":"Node "+t.id,tabIndex:-1}):e.createElement("g",null)},$t=({d:t,i:a,styleFn:r,key:n,className:s})=>t?e.createElement("rect",{key:n,transform:"translate(0,0)",width:t.x1-t.x0,height:t.y1-t.y0,x:t.x0,y:t.y0,rx:0,ry:0,style:r(t,a),className:s,"aria-label":"Node "+t.id,tabIndex:-1}):e.createElement("g",null),Ft=g().curve(k).x(e=>e.x).y(e=>e.y),At=g().curve(v).x(e=>e.x).y(e=>e.y);function zt(e,t,a){if(e.circular&&!t.circular)return-1;if(t.circular&&!e.circular)return 1;const r="down"===a?"y":"x",n="down"===a?"x":"y";return e.source[r]===t.source[r]?e.sankeyWidth===t.sankeyWidth?e.source[n]-t.source[n]:t.sankeyWidth-e.sankeyWidth:e.source[r]-t.source[r]}const Pt={horizontal:A().x(e=>e.x).y(e=>e.y),vertical:F().x(e=>e.x).y(e=>e.y),radial:I.lineArc},wt={curve:(e,t="vertical")=>Pt[t](e),linearc:e=>I.lineArc(e),ribbon:e=>I.ribbon(e,e.width),arrowhead:e=>I.arrowHead(e,e.target.nodeSize,e.width,1.5*e.width),halfarrow:e=>I.halfArrow(e,e.target.nodeSize,e.width,1.5*e.width),nail:e=>I.nail(e,e.source.nodeSize),comet:e=>I.comet(e,e.target.nodeSize),taffy:e=>I.taffy(e,e.source.nodeSize/2,e.target.nodeSize/2,(e.source.nodeSize+e.target.nodeSize)/4)},Dt=e=>`M${e.source.x},${e.source.y}L${e.target.x},${e.target.y}`,Tt=t=>{const{d:a,width:s,edgeLength:i,circular:o}=t,c=r(null);return n(()=>{if(null==c?void 0:c.current){const e=Math.max(Math.min(s,o?s:i)/5,2);let t=B().arrowLength(2.5*e).gapLength(100).arrowHeadSize(e).path(a);V(c.current).selectAll("*").remove(),V(c.current).call(t),V(c.current).selectAll(":not(.arrow-head)").style("fill","none").style("stroke-width",e/4).style("stroke","white"),V(c.current).selectAll(".arrow-head").style("fill","white")}},[a]),e.createElement("g",{ref:c})},Ct=t=>{const{d:a,i:r,styleFn:n,key:s,className:i,generatedPath:o}=t,{showArrows:c}=a;let l="";if(a.circular){const{circularPathData:e}=a,{sourceX:t,sourceY:r,leftFullExtent:n,rightFullExtent:s,verticalFullExtent:i,targetX:o,targetY:c}=e;l=`M${t},${r}L${n},${r}L${n},${i}L${s},${i}L${s},${c}L${o},${c}`}else{let e=a.source.x1,t=a.target.x0,r=W(e,t),n=r(.5),s=r(.5),i=a.y0,o=a.y1;l=`M${e},${i}C${n},${i} ${s},${o} ${t},${o}`}return e.createElement(e.Fragment,{key:s},e.createElement("path",{className:i,d:o,style:n(a,r),"aria-label":`Connection from ${a.source.id} to ${a.target.id}`,tabIndex:-1}),c&&e.createElement(Tt,{d:l,width:a.sankeyWidth,edgeLength:Math.abs(a.target.x-a.source.x),circular:a.circular}))},Nt=(e,t,a,r)=>{if(e.children)for(const n of e.children){const e=t.filter(e=>e[1]===n.id);for(const t of e){const e=r.find(e=>a(e)===t[0])||{},s=Object.assign(Object.assign({id:t[0]},e),{children:[],childMap:{}});n.childMap.set(t[0],s),n.children.push(s)}n.children.length>0&&Nt(n,t,a,r)}},Lt=({data:e,renderKeyFn:t,customMark:a,styleFn:r,classFn:n,renderMode:s,canvasDrawing:i,canvasRenderFn:o,networkSettings:c})=>{const l=a,d=[];if("matrix"!==c.type||!o){if(c){let a=0;for(const c of e){const e=l({d:c,i:a,renderKeyFn:t,styleFn:r,classFn:n,renderMode:s,key:t?t(c,a):c.id||"node-"+a,className:"node "+n(c,a),transform:`translate(${c.x},${c.y})`});if(o&&!0===o(c,a)){const{transform:t="translate(0,0)"}=e.props,[o,l]=t.replace("translate(","").replace(")","").split(","),d={baseClass:"frame-piece",tx:o,ty:l,d:c,i:a,markProps:Object.assign({markType:"string"==typeof e.type?e.type:e.props.markType},e.props),styleFn:r,renderFn:s,classFn:n};i.push(d)}else d.push(e);a++}}return d}},Rt=t=>{const{data:a,renderKeyFn:r,customMark:n,styleFn:s,classFn:i,renderMode:o,canvasRenderFn:c,canvasDrawing:l,type:d,networkSettings:y,projection:m,numberOfNodes:u,size:p}=t,{type:h,direction:g,edgeSort:x=zt}=y,f="sankey"===h?a.sort((e,t)=>x(e,t,g)):a;let b=Dt;const v=[];if(c&&"matrix"===y.type){let e=0;const t=Math.floor(Math.min(...p)/u);for(const a of f){const r={baseClass:"frame-piece",tx:a.source.y,ty:a.target.y,d:a,i:e,markProps:Object.assign({markType:"rect"},St(t)),styleFn:s,renderFn:o,classFn:i};l.push(r),e++}}else if(n){d&&("function"==typeof d?b=d:wt[d]&&(b=e=>wt[d](e,m)));let e=0;for(const t of f){const a=n({d:t,i:e,renderKeyFn:r,styleFn:s,classFn:i,renderMode:o,key:r?r(t,e):"edge-"+e,className:i(t,e)+" edge",transform:`translate(${t.x},${t.y})`,generatedPath:b(t)});a&&a.props&&("path"!==a.props.markType||a.props.d)&&v.push(a),e++}}else{d&&("function"==typeof d?b=d:wt[d]&&(b=e=>wt[d](e,m)));let t=0;for(const a of f){const n=b(a);n&&c&&!0===c(a,t)?l.push({baseClass:"frame-piece",tx:a.x,ty:a.y,d:a,i:t,markProps:{markType:"path",d:n},styleFn:s,renderFn:o,classFn:i}):n&&v.push(e.createElement("path",{key:r?r(a,t):"edge-"+t,className:i(a)+" edge",d:n,style:s(a,t),tabIndex:-1,role:"img","aria-label":`connection from ${a.source.id} to ${a.target.id}`}))}}return v},Vt=[],It={id:void 0,degree:0,inDegree:0,outDegree:0,x:0,y:0,x1:0,x0:0,y1:0,y0:0,height:0,width:0,radius:0,r:0,direction:void 0,textHeight:0,textWidth:0,fontSize:0,scale:1,nodeSize:0,component:-99,shapeNode:!1},Bt={hierarchicalNetwork:!1},Wt={nodeHash:new Map,edgeHash:new Map,nodes:[],edges:[],hierarchicalNetwork:!1,type:"force"},_t={dendrogram:X,tree:X,circlepack:Y,cluster:K,treemap:G,partition:_};function Gt(t,a,r,n){if(t)return t;const i=[r[0]/2,r[1]/2];switch(a.type){case"sankey":return Mt;case"partition":case"treemap":return"radial"===a.projection?((t,a,r)=>{const n=p(),{angleRange:i=[0,360]}=r,o=i.map(e=>e/360),c=1>o[1]-o[0]?s().domain([0,1]).range(o):e=>e;return({d:r,i:s,styleFn:i,key:o,className:l})=>r?(n.innerRadius(r.y0/2).outerRadius(r.y1/2),e.createElement("path",{key:o,transform:`translate(${a})`,d:n({startAngle:c(r.x0/t[0])*Math.PI*2,endAngle:c(r.x1/t[0])*Math.PI*2}),style:i(r,s),className:l,"aria-label":"Node "+r.id,tabIndex:-1})):e.createElement("g",null)})(r,i,a):$t;case"circlepack":return Ot;case"chord":return(t=>({d:a,i:r,styleFn:n,key:s,className:i})=>a?e.createElement("path",{key:s,className:i,transform:`translate(${t[0]/2},${t[1]/2})`,d:a.d,style:n(a,r),"aria-label":"Node "+a.id,tabIndex:-1}):e.createElement("g",null))(r);case"dagre":return $t;case"matrix":return((t,a)=>{const r=Math.min(...t),n=r/(a.length+1);return({d:t,i:s,styleFn:i,renderMode:o,key:c,className:l})=>{if(!t)return e.createElement("g",null);const d=n>6,y=n>3,m=n>.5,u={textAnchor:"end",fontSize:n/2+"px"},p=i(t,s);return o&&o(t,s),e.createElement("g",{key:c,className:l},m&&e.createElement("rect",{x:n/2,y:t.y-n/2,width:r-n,height:n,style:Object.assign(Object.assign({},p),{stroke:"none"})}),m&&e.createElement("rect",{y:n/2,x:t.y-n/2,height:r-n,width:n,style:Object.assign(Object.assign({},p),{stroke:"none"})}),y&&e.createElement("line",{stroke:"black",x1:0,x2:r-n/2,y1:t.y-n/2,y2:t.y-n/2,style:p}),y&&e.createElement("line",{stroke:"black",y1:0,y2:r-n/2,x1:t.y-n/2,x2:t.y-n/2,style:p}),y&&s===a.length-1&&e.createElement("line",{stroke:"black",x1:0,x2:r-n/2,y1:t.y+n/2,y2:t.y+n/2,style:p}),y&&s===a.length-1&&e.createElement("line",{stroke:"black",y1:0,y2:r-n/2,x1:t.y+n/2,x2:t.y+n/2,style:p}),d&&e.createElement("text",Object.assign({x:0,y:t.y+n/5},u),t.id),d&&e.createElement("text",Object.assign({transform:`translate(${t.y}) rotate(90) translate(0,${n/5})`},u,{y:0}),t.id))}})(r,n)}return Ot}const Kt=e=>({edge:e,x:(e.source.x+e.target.x)/2,y:(e.source.y+e.target.y)/2}),Yt={sankey:e=>({edge:e,x:(e.source.x1+e.target.x0)/2,y:e.circularPathData?e.circularPathData.verticalFullExtent:((e.y0+e.y1)/2+(e.y0+e.y1)/2)/2}),force:Kt,tree:Kt,cluster:Kt,matrix:e=>({edge:e,x:e.source.y,y:e.target.y})},Xt={partition:!0,cluster:!0,tree:!0,dendrogram:!0},Ht={partition:!0,cluster:!0,tree:!0,dendrogram:!0};function qt(e,t,a){return t.parent&&(a=`${a}-${qt(e,Object.assign(Object.assign({},t.parent),t.parent.data),a)}`),`${a}-${e(Object.assign(Object.assign({},t),t.data))}`}const Zt=e=>e.id||e.descendantIndex,Qt=(t,a,r,n)=>{const{graph:i,nodes:o=(Array.isArray(i)||"function"==typeof i?Vt:i&&i.nodes||Vt),edges:c=("function"==typeof i?Vt:Array.isArray(i)?i:i&&i.edges||Vt),networkType:l,size:y,nodeStyle:m,nodeClass:p,canvasNodes:h,edgeStyle:x,edgeClass:f,canvasEdges:b,nodeRenderMode:v,edgeRenderMode:k,nodeLabels:j,title:E,margin:S,hoverAnnotation:M,customNodeIcon:$,customEdgeIcon:F,filterRenderedNodes:A}=t;let z,{edgeType:P}=t;const w={};let D=["type"];"string"==typeof l?z=Object.assign(Object.assign({type:l},Bt),{graphSettings:Wt}):(l&&(D=Object.keys(l)),z=Object.assign(Object.assign(Object.assign({type:"force"},Bt),l),{graphSettings:Wt})),"vertical"===z.projection&&"sankey"===z.type&&(z.direction="down"),D.push("height","width");const T="object"!=typeof E||e.isValidElement(E)||null===E?{title:E,orient:"top"}:E,{margin:C,adjustedPosition:N,adjustedSize:L}=r.marginCalc(S,T,y);z.graphSettings.nodes=o,z.graphSettings.edges=c,z.graphSettings.filterRenderedNodes=A;let{edgeHash:R,nodeHash:V}=z.graphSettings;const I="treemap"===z.type||"partition"===z.type||"sankey"===z.type,B=r.accessorConversions(t.nodeIDAccessor,t.sourceAccessor,t.targetAccessor,t.nodeSizeAccessor,t.edgeWidthAccessor),_=B.nodeIDAccessor,G=B.sourceAccessor,K=B.targetAccessor,Y=B.nodeSizeAccessor,X=B.edgeWidthAccessor,{nodeStyleFn:q,nodeClassFn:Z,nodeRenderModeFn:Q,nodeCanvasRenderFn:U}=r.nodeStyleFns(m,p,v,h);let{projectedNodes:J,projectedEdges:ee}=a;const te="string"==typeof z.type&&_t[z.type],ae=!a.projectedNodes||!a.projectedEdges||a.graphSettings.nodes!==o||a.graphSettings.edges!==c||te||a.graphSettings.filterRenderedNodes!==A;if("dagre"===z.type){const e=i,t=new Map;J=e.nodes().map(a=>{const r=e.node(a),n=Object.assign(Object.assign({},r),{x0:r.x-r.width/2,x1:r.x+r.width/2,y0:r.y-r.height/2,y1:r.y+r.height/2,id:a,shapeNode:!0,sourceLinks:[],targetLinks:[]});return t.set(a,n),n}),ee=e.edges().map(a=>{const r=e.edge(a),n=Object.assign(Object.assign({},r),{points:r.points.map(e=>Object.assign({},e))});return n.source=J.find(e=>e.id===a.v),n.target=J.find(e=>e.id===a.w),n.points.unshift({x:n.source.x,y:n.source.y}),n.points.push({x:n.target.x,y:n.target.y}),t.get(a.v).targetLinks.push(n),t.get(a.w).sourceLinks.push(n),n})}else if(ae){const e=J;R=new Map,V=new Map,z.graphSettings.edgeHash=R,z.graphSettings.nodeHash=V,J=[],ee=[];const t="function"==typeof z.fixExistingNodes?z.fixExistingNodes:!!z.fixExistingNodes&&(()=>!0);o.forEach(a=>{const r=Object.assign({},a),n=_(r),s=e.find(e=>e.id===n),i=s||{x:void 0,y:void 0};V.set(n,r),V.set(a,r),J.push(r),r.id=n,r.inDegree=0,r.outDegree=0,r.degree=0,r.x=i.x,r.y=i.y,s&&t&&t(s)&&(r.fx=s.x,r.fy=s.y)});let a=c,r=c;if(te&&Array.isArray(c)){const e=((e,t,a,r,n)=>{let s={id:"root-generated",children:[],childMap:new Map};const i=new Map,o=new Map;let c=!0,l=!0;for(let t=0;e.length>t;t++){const s=e[t],c=a(s),d=r(s),y="object"==typeof c?n(c):c,m="object"==typeof d?n(d):d;if(o.set(m,y),i.has(y)){l=!1;break}i.set(y,m)}if(l){const e=[];for(const a of i){e.push(a);const r=a[1];if(!i.has(r)){i.set(r,"root-generated");const e=t.find(e=>n(e)===r)||{},a=Object.assign(Object.assign({id:r},e),{children:[],childMap:new Map});s.childMap.set(r,a),s.children.push(a)}}return Nt(s,e,n,t),t.forEach(e=>{const t=n(e);i.has(t)||o.has(t)||s.children.push(Object.assign(Object.assign({id:t},e),{children:[],childMap:new Map}))}),1===s.children.length&&(s=s.children[0],c=!1),{hierarchy:s,isHierarchical:!0,hasLogicalRoot:c}}return{hierarchy:{},isHierarchical:!1,hasLogicalRoot:!1}})(c,o,G,K,_);e.isHierarchical?(r=e.hierarchy,J=[]):(console.error("You've sent an edge list that is not strictly hierarchical (there are nodes with multiple parents) defaulting to force-directed network layout"),z.type="force")}if(!Array.isArray(r)){z.hierarchicalNetwork=!0;const e=H(r,z.hierarchyChildren);if(e.sum(z.hierarchySum||(e=>e.value)),te){const t=(z.layout||te)(),a=Object.keys(z);"dendrogram"!==z.type&&"tree"!==z.type&&"cluster"!==z.type||!t.separation||t.separation((e,t)=>(Y(Object.assign(Object.assign({},e),e.data))||1)+(z.nodePadding||0)+(Y(Object.assign(Object.assign({},t),t.data))||1)),a.forEach(e=>{t[e]&&t[e](z[e])}),!z.nodeSize&&t.size&&t.size("horizontal"===z.projection&&te?[L[1],L[0]]:L),t(e)}a=((e,t=Zt)=>{var a,r;const n=[],s=[],i=(e.descendants?e:H(e)).descendants();let o=0;for(const e of i)e.descendantIndex=o,o++;for(const e of i){const i=`${null!==(a=t(Object.assign(Object.assign({},e),e.data)))&&void 0!==a?a:Zt(e)}-${e.parent?null!==(r=qt(t,Object.assign(Object.assign({},e.parent),e.parent.data),""))&&void 0!==r?r:e.parent.name:"root"}`,o=Object.assign(e,e.data||{},{hierarchicalID:i});if(s.push(o),null!==e.parent){const t=Object.assign(e.parent,e.parent.data||{});n.push({source:t,target:o,depth:e.depth,weight:1,value:1,_NWFEdgeKey:i})}}return{edges:n,nodes:s}})(e,_).edges}It.shapeNode=I,Array.isArray(a)&&a.forEach(e=>{const t=G(e),a=K(e);[t,a].forEach(e=>{if(!V.get(e)){const t=Object.assign(Object.assign({},It),"object"==typeof e?e:{id:e,createdByFrame:!0}),a=t.id||_(t);w[a]?w[a]+=1:w[a]=1,t.id||(t.id=`${a}${1===w[a]?"":"-"+w[a]}`),V.set(e,t),J.push(t)}});const r=e.weight||1,n=V.get(t),s=V.get(a);s.inDegree+=r,n.outDegree+=r,s.degree+=r,n.degree+=r;const i=`${_(n)||t}|${_(s)||a}`,o=Object.assign({},e,{source:V.get(t),target:V.get(a)});R.set(i,o),ee.push(o),"matrix"===z.type&&ee.push(Object.assign(Object.assign({},o),{source:o.target,target:o.source}))})}else R=new Map,z.graphSettings.edgeHash=R,ee.forEach(e=>{const t="string"==typeof e.source?e.source:_(e.source),a="string"==typeof e.target?e.target:_(e.target);R.set(`${t}|${a}`,e)});const re=Gt($,z,L,J),ne=function({baseCustomEdgeIcon:t,networkSettings:a,size:r,graph:n,nodes:s}){if(t)return t;switch(a.type){case"partition":case"treemap":case"circlepack":return()=>null;case"chord":return(t=>({d:a,i:r,styleFn:n,key:s,className:i})=>e.createElement("path",{key:s,className:i,transform:`translate(${t[0]/2},${t[1]/2})`,d:a.d,style:n(a,r),"aria-label":`Connection from ${a.source.id} to ${a.target.id}`,tabIndex:-1}))(r);case"matrix":return((t,a)=>({d:r,i:n,styleFn:s,key:i,className:o})=>{const c=Math.min(...t)/a.length,l=s(r,n);return e.createElement("g",{key:i},e.createElement("rect",Object.assign({key:i,className:o,transform:`translate(${r.source.y},${r.target.y})`},l,{style:l,"aria-label":`Connection from ${r.source.id} to ${r.target.id}`,tabIndex:-1},St(c))))})(r,s);case"arc":return(t=>{const a=t[1]/t[0];function r(e){return g().curve(O)([[e.source.x,0],[(e.source.x+e.target.x)/2,(e.source.x-e.target.x)*a],[e.target.x,0]])}return({d:a,i:n,styleFn:s,key:i,className:o})=>{const c=s(a,n);return e.createElement("path",Object.assign({key:i,className:o,transform:`translate(0,${t[1]/2})`,d:r(a)},c,{style:c,"aria-label":`Connection from ${a.source.id} to ${a.target.id}`,tabIndex:-1}))}})(r);case"dagre":if(n)return(t=>{const a="LR"===t||"RL"===t?Ft:At;return({d:t,i:r,styleFn:n,key:s,className:i})=>{if(t.ribbon||t.parallelEdges){const a=be();if(a.x(e=>e.x),a.y(e=>e.y),a.r(()=>t.weight||1),t.parallelEdges){const o=t.parallelEdges.sort((e,t)=>t.weight-e.weight);return e.createElement("g",{key:""+s},a({points:t.points,multiple:t.parallelEdges}).map((a,c)=>e.createElement("path",{key:`${s}-${c}`,className:i,d:a,style:n(o[c],r),"aria-label":`Connection from ${t.source.id} to ${t.target.id}`,tabIndex:-1})))}return e.createElement("path",{key:s,className:i,d:a(t.points),style:n(t,r),"aria-label":`Connection from ${t.source.id} to ${t.target.id}`,tabIndex:-1})}return e.createElement("path",{key:s,className:i,d:a(t.points),style:n(t,r),"aria-label":`Connection from ${t.source.id} to ${t.target.id}`,tabIndex:-1})}})(n.graph().rankdir);case"sankey":return Ct}}({baseCustomEdgeIcon:F,networkSettings:z,size:L,nodes:J,graph:i});z.width=y[0],z.height=y[1];let ie,oe=!1;if(D.forEach(e=>{"edgeType"!==e&&"graphSettings"!==e&&z[e]!==a.graphSettings[e]&&(oe=!0)}),"sankey"===z.type?P=e=>e.circular?function(e){const t=be();return t.x(e=>e.x),t.y(e=>e.y),t.r(()=>e.sankeyWidth/2),t("down"===e.direction?[{x:e.circularPathData.sourceY,y:e.circularPathData.sourceX},{x:e.circularPathData.sourceY,y:e.circularPathData.leftFullExtent},{x:e.circularPathData.verticalFullExtent,y:e.circularPathData.leftFullExtent},{x:e.circularPathData.verticalFullExtent,y:e.circularPathData.rightFullExtent},{x:e.circularPathData.targetY,y:e.circularPathData.rightFullExtent},{x:e.circularPathData.targetY,y:e.circularPathData.targetX}]:[{x:e.circularPathData.sourceX,y:e.circularPathData.sourceY},{x:e.circularPathData.leftFullExtent,y:e.circularPathData.sourceY},{x:e.circularPathData.leftFullExtent,y:e.circularPathData.verticalFullExtent},{x:e.circularPathData.rightFullExtent,y:e.circularPathData.verticalFullExtent},{x:e.circularPathData.rightFullExtent,y:e.circularPathData.targetY},{x:e.circularPathData.targetX,y:e.circularPathData.targetY}])}(e):"angled"===P?(e=>{const t=Math.abs("down"===e.direction?e.target.y-e.source.y:e.source.x-e.target.x),a="down"===e.direction?[{x:e.y0,y:e.source.y},{x:e.y0,y:e.source.y+t/3},{x:e.y1,y:e.target.y-t/3},{x:e.y1,y:e.target.y}]:[{x:e.source.x0,y:e.y0},{x:e.source.x0+t/3,y:e.y0},{x:e.target.x0-t/3,y:e.y1},{x:e.target.x0,y:e.y1}],r=be();return r.x(e=>e.x),r.y(e=>e.y),r.r(()=>e.sankeyWidth/2),r(a)})(e):(e=>{let t,a,r,n,s,i,o,c,l;return"down"===e.direction?(t=e.y0-e.sankeyWidth/2,a=e.y1-e.sankeyWidth/2,r=e.y1+e.sankeyWidth/2,n=e.y0+e.sankeyWidth/2,s=e.source.y1,i=e.target.y0,o=W(s,i),c=o(.5),l=o(.5),`M${t},${s}C${t},${c} ${a},${l} ${a},${i}L${r},${i}C${r},${l} ${n},${c} ${n},${s}Z`):(t=e.source.x1,a=e.target.x0,o=W(t,a),r=o(.5),n=o(.5),s=e.y0-e.sankeyWidth/2,i=e.y1-e.sankeyWidth/2,c=e.y1+e.sankeyWidth/2,l=e.y0+e.sankeyWidth/2,`M${t},${s}C${r},${s} ${n},${i} ${a},${i}L${a},${c}C${n},${c} ${r},${l} ${t},${l}Z`)})(e):te&&J.forEach(e=>{if(I&&(e.x=(e.x0+e.x1)/2,e.y=(e.y0+e.y1)/2),"string"==typeof z.type&&Xt[z.type]&&"horizontal"===z.projection){const t=e.x;if(e.x=e.y,e.y=t,I){const t=e.x0,a=e.x1;e.x0=e.y0,e.x1=e.y1,e.y0=t,e.y1=a}}else if("string"==typeof z.type&&Ht[z.type]&&"radial"===z.projection){const t=0===e.depth?[L[0]/2,L[1]/2]:se([L[0]/2,L[1]/2],e.x/L[0],e.y/2);e.x=t[0],e.y=t[1]}else e.x=e.x,e.y=e.y,I&&(e.x0=e.x0,e.x1=e.x1,e.y0=e.y0,e.y1=e.y1)}),"static"!==z.type&&(ae||oe)&&("function"==typeof z.type?z.type({nodes:J,edges:ee}):J.forEach(e=>{e.x=void 0===e.x?(e.x0+e.x1)/2:e.x,e.y=void 0===e.y?e.y0:e.y}),a.graphSettings.nodes=t.nodes,a.graphSettings.edges=t.edges),J=J.filter(A),ee=ee.filter(e=>-1!==J.indexOf(e.target)&&-1!==J.indexOf(e.source)),"flip"===z.direction)J.forEach(e=>{e.x=L[0]-e.x,e.y=L[1]-e.y});else if("up"===z.direction||"down"===z.direction){const e="up"===z.direction?e=>L[1]-e:e=>e;J.forEach(t=>{const a=t.x,r=t.x0,n=t.x1;t.x=e(t.y),t.x0=e(t.y0),t.x1=e(t.y1),t.y=a,t.y0=r,t.y1=n})}else"left"===z.direction&&J.forEach(e=>{e.x=L[0]-e.x,e.x0=L[0]-e.x0,e.x1=L[0]-e.x1});if("function"==typeof z.zoom)z.zoom(J,ee,L);else if(!1!==z.zoom&&"matrix"!==z.type&&"chord"!==z.type&&"sankey"!==z.type&&"partition"!==z.type&&"treemap"!==z.type&&"circlepack"!==z.type&&"dagre"!==z.type){const e=u(J.map(e=>e.x-Y(e))),t=d(J.map(e=>e.x+Y(e))),a=u(J.map(e=>e.y-Y(e))),r=d(J.map(e=>e.y+Y(e))),n=Math.abs(t-e),i=Math.abs(r-a);let o,c;"stretch"===z.zoom?(o=0,c=0):n/i>L[0]/L[1]?(c=0,o=(L[1]-L[0]/n*i)/2):(o=0,c=(L[0]-L[1]/i*n)/2);const l=s().domain([e,t]).range([c,L[0]-c]),y=s().domain([a,r]).range([o,L[1]-o]);J.forEach(e=>{e.x=l(e.x),e.y=y(e.y)})}else if(!1===z.zoom||"radial"===z.projection||"partition"!==z.type&&"treemap"!==z.type&&"dagre"!==z.type){if(!1!==z.zoom&&"sankey"===z.type&&ee.some(e=>e.circular)){const e=ee.filter(e=>e.circular),t=u(e,e=>e.circularPathData.rightFullExtent-e.sankeyWidth/2)||1/0,a=d(e,e=>e.circularPathData.leftFullExtent+e.sankeyWidth/2)||-1/0,r=u(e,e=>e.circularPathData.verticalFullExtent-e.sankeyWidth/2)||1/0,n=d(e,e=>e.circularPathData.verticalFullExtent+e.sankeyWidth/2)||-1/0,i=u(J,e=>e.y0),o=d(J,e=>e.y1),c=u(J,e=>e.x0),l=d(J,e=>e.x1),y=Math.min(t,c),m=Math.max(a,l),p=Math.min(r,i),h=Math.max(n,o),g=s().domain([y,m]).range([0,L[0]]),x=s().domain([p,h]).range([0,L[1]]),f=L[1]/(h-p);for(const e of J)e.x=g(e.x),e.x0=g(e.x0),e.x1=g(e.x1),e.y=x(e.y),e.y0=x(e.y0),e.y1=x(e.y1),e.width=e.x1-e.x0,e.height=e.y1-e.y0;for(const e of ee)e.circular?(e.circularPathData.sourceX=g(e.circularPathData.sourceX),e.circularPathData.sourceY=x(e.circularPathData.sourceY),e.circularPathData.leftFullExtent=g(e.circularPathData.leftFullExtent),e.circularPathData.verticalFullExtent=x(e.circularPathData.verticalFullExtent),e.circularPathData.rightFullExtent=g(e.circularPathData.rightFullExtent),e.circularPathData.targetX=g(e.circularPathData.targetX),e.circularPathData.targetY=x(e.circularPathData.targetY)):(e.y0=x(e.y0),e.y1=x(e.y1)),e.sankeyWidth=e.sankeyWidth*f}}else{const e=u(J.map(e=>e.x0)),t=d(J.map(e=>e.x1)),a=u(J.map(e=>e.y0)),r=d(J.map(e=>e.y1)),n=s().domain([e,t]).range([C.left,L[0]-C.right]),i=s().domain([a,r]).range([C.top,L[1]-C.bottom]);J.forEach(e=>{e.x=n(e.x),e.y=i(e.y),e.x0=n(e.x0),e.y0=i(e.y0),e.x1=n(e.x1),e.y1=i(e.y1),e.zoomedHeight=e.y1-e.y0,e.zoomedWidth=e.x1-e.x0}),ee.forEach(e=>{e.points&&e.points.forEach(e=>{e.x=n(e.x),e.y=i(e.y)})})}J.forEach(e=>{e.nodeSize=Y(e)}),ee.forEach(e=>{e.width=X(e)}),t.legend&&(ie=t.legend,!ie.legendGroups)&&(ie.legendGroups=[{styleFn:t.nodeStyle,type:"fill",items:[]}]);const ce=r.edgeStyleFns(x,f,k,b),le={edges:{accessibleTransform:(e,t)=>{const a=(e[t].source.x+e[t].target.x)/2,r=(e[t].source.y+e[t].target.y)/2;return Object.assign(Object.assign({type:"frame-hover"},e[t]),{x:a,y:r})},data:ee,styleFn:ce.edgeStyleFn,classFn:ce.edgeClassFn,renderMode:ce.edgeRenderModeFn,canvasRenderFn:ce.edgeCanvasRenderFn,renderKeyFn:t.edgeRenderKey?t.edgeRenderKey:e=>e._NWFEdgeKey||e.key||`${e.source.id}-${e.target.id}`,behavior:Rt,projection:z.projection,type:P,customMark:ne,networkSettings:z,numberOfNodes:J.length,size:L},nodes:{accessibleTransform:(e,t)=>Object.assign(Object.assign({type:"frame-hover"},e[t]),e[t].data||{}),data:J,styleFn:q,classFn:Z,renderMode:Q,canvasRenderFn:U,customMark:re,behavior:Lt,renderKeyFn:t.nodeRenderKey,networkSettings:z}},de=[];let ye;t.nodeLabels&&J&&J.forEach((t,a)=>{const r=j&&!0!==j&&j(t);if(!0===j||r){const n="radial"===z.projection&&0!==t.depth?((t,a,r,n)=>{const s=(t.x1+t.x0)/2/n[0],i=r(t,a);return e.createElement("g",{transform:`rotate(${s>.5?360*s+90:360*s-90})`},"string"==typeof i?e.createElement("text",{textAnchor:"middle",y:5},i):i)})(t,a,!0===j?_:j,L):!0===j?_(t,a):r;let s;s=e.isValidElement(n)?{key:"node-label-"+a,type:"basic-node-label",x:t.x,y:t.y,element:n}:{key:"node-label-"+a,className:"node-label",dx:0,dy:0,x:t.x,y:t.y,color:"currentColor",note:{label:n},connector:{end:"none"},type:"label",subject:{radius:Y(t)+2}},de.push(s)}});const me=[];if(M&&["circlepack","treemap","partition","chord"].find(e=>e===z.type)||"area"===M){if("edge"!==M){const e=J.map((e,t)=>Object.assign({overlayData:e},re({d:e,i:t,transform:`translate(${e.x},${e.y})`,styleFn:()=>({opacity:0})}).props));me.push(...e)}"node"!==M&&ee.forEach((e,t)=>{const a=ne({d:e,i:t,transform:`translate(${e.x},${e.y})`,styleFn:()=>({opacity:0})});a&&me.push(Object.assign({overlayData:Object.assign(Object.assign({},e),{x:void 0===e.x?(e.source.x+e.target.x)/2:e.x,y:void 0===e.y?(e.source.y+e.target.y)/2:e.y,edge:!0})},a.props))})}else"edge"===M&&"string"==typeof z.type&&Yt[z.type]?ye=ee.map(Yt[z.type]):Array.isArray(M)||!0===M||"node"===M?(ye=J,(ae||oe)&&(ye=[...J])):"all"===M&&"string"==typeof z.type&&(ye=[...ee.map(Yt[z.type]),...J]);return{adjustedPosition:N,adjustedSize:L,backgroundGraphics:t.backgroundGraphics,foregroundGraphics:t.foregroundGraphics,title:T,renderNumber:a.renderNumber+1,projectedNodes:J,projectedEdges:ee,projectedXYPoints:ye,overlay:me,nodeIDAccessor:_,sourceAccessor:G,targetAccessor:K,nodeSizeAccessor:Y,edgeWidthAccessor:X,margin:C,legendSettings:ie,networkFrameRender:le,nodeLabelAnnotations:de,graphSettings:Object.assign(Object.assign({},z.graphSettings),z),props:t}},Ut={y:We,x:Be,yMiddle:_e,yTop:Ge,yBottom:Ke,xMiddle:Ye,xTop:Xe,xBottom:He},Jt={y:"y",x:"x"},ea={y:"y",x:"x"},ta=["axes-tick-lines","viz-layer","matte","axes-labels","labels"];function aa(t,a,r,n,s){const i=[],o=Object.keys(t),c=[...a,...o.filter(e=>-1===a.indexOf(e))];return c.forEach(a=>{const o=t[a];if(o&&(o.data&&"object"==typeof o.data&&!Array.isArray(o.data)||o.data&&o.data.length>0)){const t=o.behavior(Object.assign({xScale:r,yScale:n,canvasDrawing:[],projectedCoordinateNames:s},o));t&&t.length>0&&i.push(e.createElement("g",{key:a,className:a,role:"group"},t))}}),i}function ra(t){const a=Object.assign(Object.assign({},{annotations:[],foregroundGraphics:void 0,size:[500,500],className:"",lineType:"line",name:"xyframe",dataVersion:void 0}),t),r={annotatedSettings:D((e,t,a,r,n,s,i,o)=>({xAccessor:tt(e,e=>e[0]),yAccessor:tt(t,e=>e[1]),summaryDataAccessor:tt(a,e=>Array.isArray(e)?e:e.coordinates),lineDataAccessor:tt(r,e=>Array.isArray(e)?e:e.coordinates),renderKeyFn:et(n,(e,t)=>"line-"+t,!0),lineIDAccessor:et(o,e=>e.semioticLineID)})),marginCalc:D((e,t,a,r)=>{const n=it({margin:e,axes:t,title:a,size:r}),{adjustedPosition:s,adjustedSize:i}=lt({size:r,margin:n});return{margin:n,adjustedPosition:s,adjustedSize:i}}),summaryStyleFns:D((e,t,a)=>({summaryStyleFn:et(e,mt,!0),summaryClassFn:et(t,ut,!0),summaryRenderModeFn:et(a,void 0,!0)})),lineStyleFns:D((e,t,a,r)=>({styleFn:et(e,mt,!0),classFn:et(t,ut,!0),renderMode:et(a,void 0,!0),canvasRender:et(r,void 0,!0)})),pointStyleFns:D((e,t,a,r)=>({styleFn:et(e,mt,!0),classFn:et(t,ut,!0),renderMode:et(a,void 0,!0),canvasRender:et(r,void 0,!0)})),summaryCanvasRender:D(e=>et(e,void 0,!0))},n=function(e){return{size:[500,500],dataVersion:void 0,lineData:void 0,pointData:void 0,summaryData:void 0,projectedLines:void 0,projectedPoints:void 0,projectedSummaries:void 0,fullDataset:[],adjustedPosition:[0,0],adjustedSize:[500,500],backgroundGraphics:null,foregroundGraphics:null,axesData:void 0,axes:void 0,axesTickLines:void 0,renderNumber:0,margin:{top:0,bottom:0,left:0,right:0},calculatedXExtent:[0,0],calculatedYExtent:[0,0],xAccessor:[e=>e.x],yAccessor:[e=>e.y],xExtent:[0,0],yExtent:[0,0],areaAnnotations:[],xScale:s(),yScale:s(),title:null,legendSettings:void 0,xyFrameRender:{},canvasDrawing:[],annotatedSettings:{xAccessor:void 0,yAccessor:void 0,summaryDataAccessor:void 0,lineDataAccessor:void 0,renderKeyFn:void 0,lineType:void 0,summaryType:void 0,lineIDAccessor:void 0,summaries:void 0,lines:void 0,title:void 0,xExtent:void 0,yExtent:void 0},overlay:void 0,props:e}}(a),i=Object.assign(Object.assign({},n),((t,a,r,n)=>{const{legend:i,lines:o,lineClass:c,pointStyle:l,pointRenderMode:d,pointClass:y,summaryClass:m,canvasLines:u,canvasPoints:p,canvasSummaries:g,defined:x,size:f,renderKey:b,lineType:v,summaryType:k,customLineMark:j,customPointMark:E,customSummaryMark:O,summaryStyle:S,summaryRenderMode:M,lineStyle:$,lineRenderMode:F,xExtent:A,yExtent:z,title:D,xScaleType:T=s(),yScaleType:C=s(),lineIDAccessor:N,invertX:L,invertY:R,showLinePoints:V,showSummaryPoints:I,points:B,lineDataAccessor:W,summaryDataAccessor:_,yAccessor:G,xAccessor:K,useSummariesAsInteractionLayer:Y,filterRenderedLines:X,filterRenderedSummaries:H,filterRenderedPoints:q,annotations:Z}=t;let{projectedLines:ee,projectedPoints:te,projectedSummaries:ae,summaries:re,fullDataset:ne}=t;k&&B&&!re?re=[{coordinates:B}]:k&&"linebounds"===k.type&&o&&!re&&(re=o);const se=T.domain?T:T(),ie=C.domain?C:C(),oe=n.annotatedSettings(K,G,_,W,b,v,k,N),ce=Object.assign(Object.assign({},oe),{lineType:ot(v),summaryType:ot(k),summaries:!re||Array.isArray(re)&&0===re.length?void 0:Array.isArray(re)?_||re[0].coordinates?re:[{coordinates:re}]:[re],lines:!o||Array.isArray(o)&&0===o.length?void 0:Array.isArray(o)?W||o[0].coordinates?o:[{coordinates:o}]:[o],title:"object"!=typeof D||e.isValidElement(D)||null===D?{title:D,orient:"top"}:D,xExtent:Array.isArray(A)?A:A?A.extent:void 0,yExtent:Array.isArray(z)?z:z?z.extent:void 0});"area"===ce.lineType.type&&(ce.lineType.y1=()=>0,ce.lineType.simpleLine=!1);const{summaryStyleFn:le,summaryClassFn:de,summaryRenderModeFn:ue}=n.summaryStyleFns(S,m,M),pe=t.axes&&t.axes.map(e=>"function"==typeof e?e({size:t.size}):e),{margin:he,adjustedPosition:ge,adjustedSize:xe}=n.marginCalc(t.margin,pe,ce.title,t.size);let fe,be,ve,ke,Se,Me,$e,Fe,Ae=[],ze=[];ve="object"==typeof A?A:{extent:A},ke="object"==typeof z?z:{extent:z},be&&fe&&ne&&(ee||te||ae)||({xExtent:be,yExtent:fe,projectedLines:ee,projectedPoints:te,projectedSummaries:ae,fullDataset:ne,calculatedXExtent:Ae,calculatedYExtent:ze}=(({lineDataAccessor:t,xAccessor:a,yAccessor:r,summaries:n,points:i,lines:o,lineType:c,showLinePoints:l,showSummaryPoints:d,xExtent:y,yExtent:m,invertX:u,invertY:p,summaryDataAccessor:g,summaryType:x,adjustedSize:f,margin:b,summaryStyleFn:v,summaryClassFn:k,summaryRenderModeFn:j,chartSize:E,filterRenderedLines:O,filterRenderedSummaries:S,filterRenderedPoints:M,defined:$=Ze,annotations:F=[]})=>{let A=[],z=[],D=[],T=[],C=[];if(i){a.forEach((e,t)=>{r.forEach((a,r)=>{let n=0;for(const s of i){const i=e(s,n),o=a(s,n),c={x:i,y:o,data:s,xIndex:t,yIndex:r};Array.isArray(o)&&(c[Ke]=Math.min(...o),c[Ge]=Math.max(...o),c[_e]=(c[Ke]+c[Ge])/2),Array.isArray(i)&&(c[He]=Math.min(...i),c[Xe]=Math.max(...i),c[Ye]=(c[He]+c[Xe])/2),D.push(c),n++}})});for(const e of D)A.push(Object.assign(Object.assign({},e),{[Be]:e[Xe]||e[He]||e.x,[We]:e[Ge]||e[Ke]||e.y}))}if(o){z=(({data:e,lineDataAccessor:t,xProp:a,xPropTop:r,xPropBottom:n,yProp:s,yPropTop:i,yPropBottom:o,xAccessor:c,yAccessor:l})=>{Array.isArray(e)||(e=[e]);const d=[];return t.forEach((t,y)=>{c.forEach((c,m)=>{l.forEach((l,u)=>{e.forEach(e=>{const p=Object.assign(Object.assign({},e),{xIndex:m,yIndex:u,lineIndex:y});p.data=t(e).map((e,t)=>{const d={data:e};return d[a]=c(e,t),d[r]=d[a],d[n]=d[a],d[s]=l(e,t),d[i]=d[s],d[o]=d[s],d}),p.key=p.key||d.length,d.push(p)})})})}),d})({data:o,lineDataAccessor:t,xProp:Be,xPropTop:Xe,xPropBottom:He,yProp:We,yPropTop:Ge,yPropBottom:Ke,xAccessor:a,yAccessor:r}),T=function(e,t){return a=>Je[rt(e.type,a)](Object.assign(Object.assign(Object.assign({},e),t),{data:a}))}(c,{xProp:Be,yProp:We,yPropMiddle:_e,yPropTop:Ge,yPropBottom:Ke,xPropMiddle:Ye,xPropTop:Xe,xPropBottom:He})(z);for(const e of T)for(let t=0;e.data.length>t;t++){const a=e.data[t];if(!$(Object.assign({},a.data,a),t))continue;const r={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&&(r.percent=a.percent),A.push(r)}if(l){const e=!0===l?Ye:Ue[l],t=!0===l?_e:Qe[l];T.forEach(a=>{a.data.filter((e,t)=>{if($(Object.assign({},e.data,e))){if("orphan"===l){const e=a.data[t-1],r=a.data[t+1];return!(e&&$(Object.assign({},e.data,e))||r&&$(Object.assign({},r.data,r)))}return!0}return!1}).forEach(r=>{D.push(Object.assign(Object.assign({},r),{parentLine:a,[We]:void 0!==r[t]?r[t]:void 0!==r[_e]?r[_e]:void 0!==r[Ke]?r[Ke]:r.y,[Be]:void 0!==r[e]?r[e]:void 0!==r[Ye]?r[Ye]:void 0!==r[He]?r[He]:r.y}))})})}}n&&(C=(({data:e,summaryDataAccessor:t,xAccessor:a,yAccessor:r})=>{const n=[];return t.forEach(t=>{a.forEach(a=>{r.forEach(r=>{const s=e=>t(e).map((e,t)=>[a(e,t),r(e,t)]);e.forEach(e=>{n.push(Object.assign(Object.assign({},e),{_baseData:t(e),_xyfCoordinates:s(e)}))})})})}),n})({data:n,summaryDataAccessor:g,xAccessor:a,yAccessor:r}),C.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,r)=>Object.assign({parentSummary:e},t[r],{[Be]:a[0],[We]:a[1]})).forEach(e=>{d&&D.push(Object.assign(Object.assign({x:0},e),{[We]:e[Ge]||e[Ke]||e[We]})),A.push(Object.assign({x:0,y:0},e))})}):e._xyfCoordinates.length>0&&Array.isArray(e._xyfCoordinates)&&e._xyfCoordinates.map((a,r)=>Object.assign(Object.assign({parentSummary:e},t[r]),{[Be]:a[0],[We]:a[1]})).forEach(e=>{d&&D.push(Object.assign(Object.assign({x:0},e),{[We]:e[Ge]||e[Ke]||e[We]})),A.push(Object.assign({x:0,y:0},e))})}));let N,L,R,V,I=[],B=[];y&&!Array.isArray(y)&&!0===y.includeAnnotations&&a.forEach(e=>{F.forEach((t,a)=>{const r=e(t,a);isFinite(r)&&I.push({[Be]:r})})}),m&&!Array.isArray(m)&&!0===m.includeAnnotations&&r.forEach(e=>{F.forEach((t,a)=>{const r=e(t,a);isFinite(r)&&B.push({[We]:r})})});for(const e of A){const t=void 0===e[He]?e[Be]:Math.min(e[Xe],e[He]),a=void 0===e[Xe]?e[Be]:Math.max(e[He],e[Xe]),r=void 0===e[Ke]?e[We]:Math.min(e[Ge],e[Ke]),n=void 0===e[Ge]?e[We]:Math.max(e[Ke],e[Ge]);void 0===t||void 0!==N&&t>=N||(N=t),void 0===a||void 0!==L&&L>=a||(L=a),void 0===r||void 0!==R&&r>=R||(R=r),void 0===n||void 0!==V&&V>=n||(V=n)}for(const e of I){const t=e[Be];void 0===t||void 0!==N&&t>=N||(N=t),void 0===t||void 0!==L&&L>=t||(L=t)}for(const e of B){const t=e[We];void 0===t||void 0!==R&&t>=R||(R=t),void 0===t||void 0!==V&&V>=t||(V=t)}const W=[N,L],_=[R,V],G=qe(y),K=qe(m);let Y=[K&&void 0!==K[0]?K[0]:_[0],K&&void 0!==K[1]?K[1]:_[1]],X=[G&&void 0!==G[0]?G[0]:W[0],G&&void 0!==G[1]?G[1]:W[1]];return!u||G&&2===G.length||(X=[X[1],X[0]]),"bumpline"!==c.type&&!p||K&&2===K.length||(Y=[Y[1],Y[0]]),x.type&&"contour"===x.type?C=ye({summaryType:x,data:C,finalXExtent:X,finalYExtent:Y}):x.type&&"linebounds"===x.type?C=function({summaryType:e,data:t,defined:a}){let r=[];e.type||(e={type:e});const{boundingAccessor:n,topBoundingAccessor:s=n,bottomBoundingAccessor:i=n}=e;return t.forEach(e=>{const t=e._baseData.map(a);let n=[],o=[];const c=[{xyf:o,base:n}];t.forEach((a,r)=>{!0===a?(n.push(e._baseData[r]),o.push(e._xyfCoordinates[r])):t[r+1]&&(n=[],o=[],c.push({xyf:o,base:n}))}),c.forEach(({xyf:t,base:a})=>{const n={data:e,parentSummary:e,_xyfCoordinates:me(t,a,s,i)};r=[...r,n]})}),r}({summaryType:x,data:C,defined:$}):x.type&&"hexbin"===x.type?(C=function({preprocess:t=!0,processedData:a=!1,summaryType:r,data:n,finalXExtent:i,finalYExtent:o,size:c,xScaleType:l=s(),yScaleType:d=s(),margin:y,styleFn:m,classFn:u,renderFn:p,chartSize:h}){let g=i,x=o;if(!g){const e=n.coordinates.map(e=>e.x);g=[Math.min(...e),Math.max(...e)]}if(!x){const e=n.coordinates.map(e=>e.y);x=[Math.min(...e),Math.max(...e)]}if(a&&n)return n.coordinates;let f,b=[];f=r.type?r:{type:f};const{bins:v=.05,cellPx:k,binValue:j=e=>e.length,binMax:E,customMark:O}=f;n.coordinates&&!n._xyfCoordinates&&(n._xyfCoordinates=n.coordinates.map(e=>[e.x,e.y]));const S=Array.isArray(n)?n:[n],M=l.domain(g).range([0,c[0]]),$=d.domain(x).range([0,c[1]]),F=k&&k/2||(v>1?1/v:v)*c[0]/2,A=w().x(e=>M(e._xyfPoint[0])).y(e=>$(e._xyfPoint[1])).radius(F).size(c);let z;const P=A.centers();return S.forEach(t=>{z=0;const a=A(t._xyfCoordinates.map((e,a)=>Object.assign({_xyfPoint:e},t.coordinates[a]))),r={};a.forEach(e=>{r[`${parseInt(e.x)}-${parseInt(e.y)}`]=!0}),P.forEach(e=>{if(!r[`${parseInt(e[0])}-${parseInt(e[1])}`]){const t=[];t.x=e[0],t.y=e[1],a.push(t)}}),z=Math.max(...a.map(e=>j(e))),E&&E(z);const n=[[0,-1],[.866,-.5],[.866,.5],[0,1],[-.866,.5],[-.866,-.5]],s=M.invert(F)-g[0],i=$.invert(F)-x[0],o=n.map(e=>[e[0]*s,e[1]*i]),l=a.map(a=>{const r=j(a),s=a.x,i=a.y;a.x=M.invert(a.x),a.y=$.invert(a.y);const l=r/z;return{customMark:O&&e.createElement("g",{transform:`translate(${s},${c[1]-i})`},O({d:Object.assign(Object.assign({},a),{binItems:a,percent:l,value:r,radius:F,hexCoordinates:n.map(e=>[e[0]*F,e[1]*F])}),margin:y,styleFn:m,classFn:u,renderFn:p,chartSize:h,adjustedSize:c})),_xyfCoordinates:o.map(e=>[e[0]+a.x,e[1]+a.y]),value:r,percent:l,data:a,parentSummary:t,centroid:!0}});b=[...b,...l]}),t?(b.forEach(e=>{e.x=e.data.x,e.y=e.data.y}),{type:"hexbin",processedData:!0,coordinates:b,binMax:z}):b}({summaryType:x,data:C[0],processedData:n&&!!n[0].processedData,preprocess:!1,finalXExtent:X,finalYExtent:Y,size:f,margin:b,styleFn:v,classFn:k,renderFn:j,chartSize:E}),A=at(A,C)):x.type&&"heatmap"===x.type?(C=function({preprocess:t=!0,processedData:a=!1,summaryType:r,data:n,finalXExtent:i=[Math.min(...n.coordinates.map(e=>e.x)),Math.max(...n.coordinates.map(e=>e.x))],finalYExtent:o=[Math.min(...n.coordinates.map(e=>e.y)),Math.max(...n.coordinates.map(e=>e.y))],size:c,xScaleType:l=s(),yScaleType:d=s(),margin:y,styleFn:m,classFn:u,renderFn:p,chartSize:h}){if(a&&n)return n.coordinates;n.coordinates&&!n._xyfCoordinates&&(n._xyfCoordinates=n.coordinates.map(e=>[e.x,e.y]));const g=Array.isArray(n)?n:[n];let x,f=[];x=r.type?r:{type:x};const{binValue:b=e=>e.length,xBins:v=x.yBins||.05,yBins:k=v,xCellPx:j=!x.xBins&&x.xCellPx,yCellPx:E=!x.yBins&&x.yCellPx,customMark:O,binMax:S}=x,M=1>v?v:1/v,$=1>k?k:1/k,F=l.domain(i).range([0,c[0]]),A=d.domain(o).range([c[1],0]),z=[Math.ceil((j&&j/c[0]||M)*c[0]*10)/10,Math.ceil((E&&E/c[1]||$)*c[1]*10)/10];let P=-1/0;return g.forEach(t=>{const a=[],r=[];let n,s;for(let e=0;c[0]>Math.ceil(e);e+=z[0]){const i=F.invert(e),o=F.invert(e+z[0]);s=[],a.push(s);for(let a=0;c[1]>Math.ceil(a);a+=z[1]){const c=A.invert(a),l=A.invert(a+z[1]);n={gx:e,gy:a,gw:z[0],gh:z[1],x:(i+o)/2,y:(c+l)/2,binItems:[],value:0,_xyfCoordinates:[[i,c],[o,c],[o,l],[i,l]],parentSummary:t},s.push(n),r.push(n)}s.push(n)}a.push(s),t._xyfCoordinates.forEach((e,r)=>{const n=F(e[0]),s=A(e[1]),i=Math.floor(n/z[0]),o=Math.floor(s/z[1]);a[i][o]&&a[i][o].binItems.push(t.coordinates[r])}),r.forEach(e=>{e.value=b(e.binItems),P=Math.max(P,e.value)}),r.forEach(t=>{t.percent=t.value/P,t.customMark=O&&e.createElement("g",{transform:`translate(${t.gx},${t.gy})`},O({d:t,margin:y,styleFn:m,classFn:u,renderFn:p,chartSize:h,adjustedSize:c}))}),f=[...f,...r]}),S&&S(P),t?{type:"heatmap",processedData:!0,_baseData:[],_xyfCoordinates:[],data:[],bounds:[],x:0,y:0,coordinates:f,binMax:P}:f}({summaryType:x,data:C[0],processedData:n&&!!n[0].processedData,preprocess:!1,finalXExtent:X,finalYExtent:Y,size:f,margin:b,styleFn:v,classFn:k,renderFn:j,chartSize:E}),A=at(A,C)):x.type&&"trendline"===x.type&&(C=function({preprocess:e=!1,summaryType:t,data:a,finalXExtent:r=[Math.min(...a.coordinates.map(e=>e.x)),Math.max(...a.coordinates.map(e=>e.x))],xScaleType:n=s()}){if(e)return a[0].coordinates;let i,o=[];i=t.type?t:{type:i};const{regressionType:c="linear",order:l=2,precision:d=4,controlPoints:y=20,curve:m=h}=i;let u=c;r[0]>=0||"logarithmic"!==c&&"power"!==c&&"exponential"!==c||(console.error(`Cannot use this ${c} 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 p=Array.isArray(a)?a:[a],g=n.domain([0,1]).range(r);return o=[],p.forEach(e=>{const t=P[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:d}),a=1/y;let r=[0,1];if("linear"!==u){r=[];for(let e=0;1+a>e;e+=a)r.push(e)}const n=[];r.forEach(e=>{n.push(t.predict(g(e)))}),o.push({centroid:!1,customMark:void 0,data:e,parentSummary:e,value:t.string,r2:t.r2,curve:m,_xyfCoordinates:n})}),o}({summaryType:x,data:C[0],preprocess:n&&!!n[0].processedData,finalXExtent:X}),A=at(A,C)),O&&(T=T.filter(O),A=A.filter((e,t)=>!e.parentLine||O(e.parentLine,t,[]))),M&&(A=A.filter(M)),S&&(C=C.filter(S),A=A.filter((e,t)=>!e.parentSummary||S(e.parentSummary,t,[]))),{xExtent:X,yExtent:Y,projectedLines:T,projectedPoints:D,projectedSummaries:C,fullDataset:A,calculatedXExtent:W,calculatedYExtent:_}})({lineDataAccessor:ce.lineDataAccessor,summaryDataAccessor:ce.summaryDataAccessor,xAccessor:ce.xAccessor,yAccessor:ce.yAccessor,lineType:ce.lineType,summaryType:ce.summaryType,summaries:ce.summaries,points:B,lines:ce.lines,showLinePoints:V,showSummaryPoints:I,xExtent:A,yExtent:z,invertX:L,invertY:R,adjustedSize:xe,margin:he,summaryStyleFn:le,summaryClassFn:de,summaryRenderModeFn:ue,chartSize:f,defined:x,filterRenderedLines:X,filterRenderedSummaries:H,filterRenderedPoints:q,annotations:Z})),({xScale:Se,yScale:Me}=(({xExtent:e,yExtent:t,adjustedSize:a,xScaleType:r,yScaleType:n})=>{const s=[0,a[0]],i=[a[1],0],o=r,c=n;return r.domain&&r.domain(e),n.domain&&n.domain(t),r.range(s),n.range(i),{xScale:o,yScale:c}})({xExtent:be,yExtent:fe,adjustedSize:xe,xScaleType:se.copy(),yScaleType:ie.copy()})),be=Array.isArray(ve.extent)&&2===ve.extent.length?ve.extent:be,fe=Array.isArray(ke.extent)&&2===ke.extent.length?ke.extent:fe;const Pe={};let we;if(pe&&(Fe=[],$e=pe.map((a,r)=>{let n=a.className||"";n+=" axis";let s,i=Me;Pe[a.orient]&&(a.baseline=a.baseline||!1),Pe[a.orient]=!0,"top"===a.orient||"bottom"===a.orient?(n+=" x",i=Se):n+=" y",n+=" "+a.orient,a.tickValues&&Array.isArray(a.tickValues)?s=a.tickValues:a.tickValues instanceof Function&&(s=a.tickValues(ne,t.size,i));const o=[xe[0],xe[1]],c=Q({padding:a.padding,tickValues:s,scale:i,ticks:a.ticks,orient:a.orient,size:o,footer:a.footer,tickSize:a.tickSize,jaggedBase:a.jaggedBase}),l=e.createElement("g",{key:"axes-tick-lines-"+r,className:"axis "+n},J({axisParts:c,orient:a.orient,tickLineGenerator:a.tickLineGenerator,className:n,jaggedBase:a.jaggedBase,scale:i,showOutboundTickLines:a.showOutboundTickLines}),"under"===a.baseline&&U(a.orient,xe,a.className));return Fe.push(l),e.createElement(Ce,Object.assign({},a,{key:a.key||"axis-"+r,annotationFunction:a.axisAnnotationFunction,axisParts:c,size:o,margin:he,tickValues:s,scale:i,className:n,xyPoints:ne}))})),i&&(we=!0===i?{}:i,ee&&!we.legendGroups)){const e=ce.lineType.type,a=[{styleFn:t.lineStyle,type:"string"==typeof e&&-1===["stackedarea","stackedpercent","bumparea"].indexOf(e)?"line":"fill",items:ee.map(e=>Object.assign({label:ce.lineIDAccessor(e)},e))}];we.legendGroups=a}const De=[];if(ce.summaryType.label&&ae)ae.forEach((e,t)=>{e.bounds&&(Array.isArray(e.bounds)?e.bounds:[e.bounds]).forEach(a=>{const r="function"==typeof ce.summaryType.label?ce.summaryType.label(e):ce.summaryType.label;if(r&&null!==r){const n=r.position||"center",s=[Se(a[n][0]),Me(a[n][1])],i=r.content||(e=>e.value||e.id||t);De.push({x:s[0],y:s[1],dx:r.dx,dy:r.dy,className:r.className,type:r.type||"callout",note:r.note||{title:i(e)},subject:r.subject||{text:i(e)},connector:r.connector})}})});else if(ce.summaryType.showSlope&&ae&&ae[0]){const e=ae[0],t=e._xyfCoordinates[0],a=e._xyfCoordinates[e._xyfCoordinates.length-1];De.push({x:t[0],y:t[1],x1:a[0],x2:a[1],type:"trendline-annotation",value:e.value,r2:e.r2})}const Te=void 0!==ce.lineType.type&&"string"==typeof ce.lineType.type&&yt[ce.lineType.type],Ne={lines:Object.assign(Object.assign({accessibleTransform:(e,t)=>Object.assign(Object.assign({},e[t].data[e[t].data.length-1]),{type:"frame-hover"}),data:ee},n.lineStyleFns($,c,F,u)),{customMark:j,type:ce.lineType,defined:x,renderKeyFn:ce.renderKeyFn,ariaLabel:Te,axesData:pe,behavior:Ee}),summaries:{accessibleTransform:(e,t)=>Object.assign(Object.assign({},e[t]),{type:"frame-hover"}),data:ae,styleFn:le,classFn:de,renderMode:ue,canvasRender:n.summaryCanvasRender(g),customMark:O,type:ce.summaryType,renderKeyFn:ce.renderKeyFn,behavior:Oe},points:Object.assign(Object.assign({accessibleTransform:(e,t)=>Object.assign({type:"frame-hover"},e[t].data||e[t]),data:te},n.pointStyleFns(l,y,d,p)),{customMark:E,renderKeyFn:ce.renderKeyFn,showLinePoints:V,behavior:je})};let Le;return ve.onChange&&a.calculatedXExtent.join(",")!==Ae.join(",")&&ve.onChange(Ae),ke.onChange&&a.calculatedYExtent.join(",")!==ze.join(",")&&ke.onChange(ze),Y&&ae&&(Le=Oe({xScale:Se,yScale:Me,data:ae}).map((e,t)=>Object.assign(Object.assign({},e.props),{style:{fillOpacity:0},overlayData:ae&&ae[t]}))),{lineData:t.lines,pointData:t.points,summaryData:t.summaries,dataVersion:t.dataVersion,projectedLines:ee,projectedPoints:te,projectedSummaries:ae,canvasDrawing:[],fullDataset:ne,adjustedPosition:ge,adjustedSize:xe,backgroundGraphics:t.backgroundGraphics,foregroundGraphics:t.foregroundGraphics,axesData:pe,axes:$e,axesTickLines:Fe,renderNumber:a.renderNumber+1,xScale:Se,yScale:Me,xAccessor:ce.xAccessor,yAccessor:ce.yAccessor,xExtent:[void 0===be[0]?Ae[0]:be[0],void 0===be[1]?Ae[1]:be[1]],yExtent:[void 0===fe[0]?ze[0]:fe[0],void 0===fe[1]?ze[1]:fe[1]],calculatedXExtent:Ae,calculatedYExtent:ze,margin:he,legendSettings:we,areaAnnotations:De,xyFrameRender:Ne,size:f,annotatedSettings:ce,overlay:Le,props:t}})(a,n,0,r)),{margin:o,xyFrameRender:c,xScale:l,yScale:d,axes:y,axesTickLines:m,annotatedSettings:u}=i,p=a.frameRenderOrder||ta;return ia({size:a.size||[500,500],margin:o,renderedElements:aa(c,a.renderOrder||[],l,d,Ut),axes:y,axesTickLines:m,title:u.title,frameRenderOrder:p,additionalDefs:a.additionalDefs,name:"xyframe",matte:a.matte,frameKey:a.frameKey||"static"})}function na(t){const a=Object.assign(Object.assign({},{annotations:[],foregroundGraphics:[],projection:"vertical",size:[500,500],className:"",data:[],type:"none"}),t),r={marginCalc:D((e,t,a,r,n,s)=>{const i=it({margin:e,axes:t,title:a,oLabel:r,projection:n,size:s}),{adjustedPosition:o,adjustedSize:c}=lt({size:s,margin:i,projection:n});return{margin:i,adjustedPosition:o,adjustedSize:c}}),structureData:D((e,t,a,r,n,s,i)=>ct({data:e,renderKey:t,oAccessor:a,rAccessor:r,originalRAccessor:n,originalOAccessor:s,multiAxis:i})),accessorConversions:D((e,t,a,r)=>({oAccessor:tt(e,e=>e.renderKey),rAccessor:tt(t,e=>e.value||1),renderKey:et(a,(e,t)=>t),pieceIDAccessor:et(r,()=>"")})),styleFns:D((e,t,a,r,n,s,i,o,c,l,d,y)=>({connectorStyle:et(e,()=>({}),!0),summaryStyle:et(t,()=>({}),!0),pieceStyle:et(a,()=>({}),!0),pieceClass:et(r,()=>"",!0),summaryClass:et(n,()=>"",!0),connectorClass:et(s,()=>"",!0),pieceRenderMode:et(i,void 0,!0),summaryRenderMode:et(o,void 0,!0),connectorRenderMode:et(c,void 0,!0),pieceCanvasRender:et(l,void 0,!0),summaryCanvasRender:et(d,void 0,!0),connectorCanvasRender:et(y,void 0,!0)}))},n=function(e){return{adjustedPosition:[],adjustedSize:[],backgroundGraphics:void 0,foregroundGraphics:void 0,axisData:void 0,renderNumber:0,oLabels:{labels:[]},oAccessor:tt("renderKey"),rAccessor:tt("value"),oScale:o(),rScale:s(),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:o(),orFrameRender:{},pieceDataXY:[],pieceIDAccessor:et("semioticPieceID"),projectedColumns:{},rExtent:[],rScaleType:s(),summaryType:{type:"none"},title:{},type:{type:"none"},props:e}}(a),c=Object.assign(Object.assign({},n),((t,a,r)=>{let n;const o={},{oPadding:c=0,summaryType:l,type:h,connectorType:g,oAccessor:x,rAccessor:f,connectorStyle:b,style:v,rExtent:k,oSort:j,pieceClass:E,summaryStyle:O,summaryClass:S,dynamicColumnWidth:M,projection:$,customHoverBehavior:F,customClickBehavior:A,customDoubleClickBehavior:z,size:P,pixelColumnWidth:w,title:D,oLabel:T,hoverAnnotation:C,pieceHoverAnnotation:N,summaryHoverAnnotation:L,backgroundGraphics:R,foregroundGraphics:V,oScaleType:I,rScaleType:B,legend:W,renderKey:_,data:G,margin:K,oExtent:Y,axes:X,pieceIDAccessor:H,multiAxis:q,annotations:Z}=t,ee="radial"===$?0:c,te=ot(l),ae=ot(h),re=ot(g),ne=r.accessorConversions(x,f,_,H),oe=ne.oAccessor,ce=ne.rAccessor,le=ne.renderKey,de=()=>({}),{connectorStyle:ye,summaryStyle:me,pieceStyle:ue,pieceClass:pe,summaryClass:he,connectorClass:ge,pieceRenderMode:xe,summaryRenderMode:fe,connectorRenderMode:be,pieceCanvasRender:ve,summaryCanvasRender:ke,connectorCanvasRender:je}=r.styleFns(b,O,v,E,S,t.connectorClass,t.renderMode,t.summaryRenderMode,t.connectorRenderMode,t.canvasPieces,t.canvasSummaries,t.canvasConnectors),Ee="object"!=typeof D||e.isValidElement(D)||null===D?{title:D,orient:"top"}:D,Oe=ne.pieceIDAccessor,Se=Array.isArray(f)?f:[f],Me=Array.isArray(x)?x:[x];let $e=ce,Fe=M;if("radial"===$){if(!Fe){const e=ce;Fe=t=>y(t,t=>{let a=0;for(const r of e)a+=r(t)||0;return a})}$e=[()=>1]}const{allData:Ae,multiExtents:ze}=ct({data:G,renderKey:le,oAccessor:oe,rAccessor:$e,originalRAccessor:Se,originalOAccessor:Me,multiAxis:q});let Pe;const De=a.props,Ne=t.data!==De.data||t.size[0]!==De.size[0]||t.size[1]!==De.size[1]||t.margin!==De.margin||!a.columnOverlays||0===a.columnOverlays.length||t.customClickBehavior!==De.customClickBehavior||t.customDoubleClickBehavior!==De.customDoubleClickBehavior||t.customHoverBehavior!==De.customHoverBehavior;let Le;Array.isArray(X)?Le=X.map(e=>"function"==typeof e?e({size:t.size}):e):X&&(Le=[X].map(e=>"function"==typeof e?e({size:t.size}):e)),ze&&X&&Le.forEach((e,t)=>{e.extentOverride=ze[t]});const{margin:Re,adjustedPosition:Ve,adjustedSize:Ie}=r.marginCalc(K,Le,Ee,T,$,P),Be=void 0===Y||Array.isArray(Y)?{extent:Y}:Y,We=Ae.reduce((e,t)=>{const a=t.column,r=void 0!==a?a+"":a;return-1===e.indexOf(r)&&e.push(r),e},[]);let _e=Be.extent||We;if("barpercent"===ae.type){const e=_e.map(e=>Ae.filter(t=>t.column+""===e).reduce((e,t)=>e+t.value,0)).reduce((e,t,a)=>(e[_e[a]]=t,e),{});Ae.forEach(t=>{t.value=e[t.column]&&t.value/e[t.column]||0}),ae.type="bar"}w&&("radial"===$?console.error("pixelColumnWidth is not honored in radial mode"):"vertical"===$?Ie[0]=_e.length*w:Ie[1]=_e.length*w);const Ge="vertical"===$&&[0,Ie[0]]||[0,Ie[1]],Ke=_e.reduce((e,t)=>(e[t]=1/_e.length*Ge[1],e.total+=e[t],e),{total:0}),Ye=I,Xe=Fe?i():(null==Ye?void 0:Ye.domain)?Ye:Ye();let He;Xe.domain(_e);const qe=void 0===k||Array.isArray(k)?{extent:k,onChange:void 0,includeAnnotations:!1}:k;let Ze=qe.extent,Qe=[0,0];"bar"===ae.type&&te.type&&"none"!==te.type&&(ae.type="none");const Ue=[];if(qe.includeAnnotations&&Z&&ce.forEach(e=>{Z.forEach((t,a)=>{const r=e(t,a);isFinite(r)&&Ue.push(r)})}),"timeline"===ae.type){const e=Ae.map(e=>e.value),t=m(e.map(e=>e[0])),a=m(e.map(e=>e[1]));Ze=m([...t,...a,...Ue])}else if("bar"!==ae.type)Ze=m([...Ae.map(e=>e.value),...Ue]);else{const e=[],t=[],a={},r={};for(const n of Ae)0>n.value?(r[n.column]||(r[n.column]={column:n.column,value:0},t.push(r[n.column])),r[n.column].value+=n.value):(a[n.column]||(a[n.column]={column:n.column,value:0},e.push(a[n.column])),a[n.column].value+=n.value);const n=Ue.filter(e=>e>0);Ze=[0,0===e.length&&0===n.length?0:Math.max(d([...e.map(e=>e.value),...n]),0)];const s=Ue.filter(e=>0>e);Qe=[0,0===t.length?0:Math.min(u([...t.map(e=>e.value),...s]),0)],Ze=[Qe[1],Ze[1]]}("clusterbar"===ae.type||q)&&Ze[0]>0&&(Ze[0]=0);const Je=Ze;qe.extent&&void 0!==qe.extent[0]&&void 0!==qe.extent[1]?Ze=qe.extent:(qe.extent&&void 0!==qe.extent[1]&&void 0===qe.extent[0]&&(Ze[1]=qe.extent[1]),qe.extent&&void 0!==qe.extent[0]&&void 0===qe.extent[1]&&(Ze[0]=qe.extent[0])),(t.invertR||qe.extent&&qe.extent[0]>qe.extent[1])&&(Ze=[Ze[1],Ze[0]]);const et={};for(const e of Ae)et[e.column]||(et[e.column]=[]),et[e.column].push(e);if(void 0!==j)_e=_e.sort((e,t)=>j(e,t,et[e].map(e=>e.data),et[t].map(e=>e.data))),Xe.domain(_e);else{const e={};for(const t of _e)e[t]=y(et[t],e=>e.value);let t;if(Fe){let e;t={},e="string"==typeof Fe?e=>y(e,e=>e.data[Fe]):e=>Fe(e.map(e=>e.data));for(const a of _e)t[a]=e(et[a])}_e=_e.sort((a,r)=>{const n=e[r]-e[a];return 0!==n?n:t?t[r]-t[a]:0}),Xe.domain(_e)}if(Fe){let e;e="string"==typeof Fe?e=>y(e,e=>e.data[Fe]):e=>Fe(e.map(e=>e.data));const t=[0],a=[];He=0,_e.forEach(t=>{const r=Ae.filter(e=>e.column===t),n=e(r);a.push(n),He+=n}),Ke.total=0,_e.forEach((e,r)=>{const n=a[r]/He*(Ge[1]-Ge[0]);Ke[e]=n,Ke.total+=n,r!==_e.length-1&&t.push(n+t[r])}),Xe.range(t)}else Xe.range(Ge);const tt="vertical"===$&&[0,Ie[1]]||[0,Ie[0]],at=B.domain?B:B(),rt=at(0);qe.extent&&void 0!==qe.extent[0]&&(isNaN(rt)||rt===-1/0||rt===1/0)&&(Ze[0]=qe.extent[0]);const nt=at.copy().domain(Ze).range(tt),it=s().domain(tt).range(tt.reverse()),lt=at.copy().domain(Ze).range(tt),yt=Ke?0:Xe.bandwidth();let mt=[],ut=Ie[1];"vertical"===$&&(ut=Ie[0]);const ht=((e,t,a)=>{const r=e.domain(),n={};return r.forEach((s,i)=>{const o=e(s)-a,c=r[i+1]?e(r[i+1]):t;n[s]=o+(c-o)/2}),n})(Xe,ut,ee);mt=_e.map(e=>et[e]?et[e]:[]);let gt="vertical"===$?it(nt(0)):nt(0);!isNaN(gt)&&gt!==-1/0&&gt!==1/0||!qe.extent||void 0===qe.extent[0]||rt!==-1/0&&rt!==1/0||(gt="vertical"===$?it(nt(qe.extent[0])):nt(qe.extent[0])),_e.forEach((e,a)=>{o[e]={name:e,padding:ee,pieceData:mt[a],pieces:mt[a]},o[e].x=Xe(e)+ee/2,o[e].y=0,o[e].middle=ht[e]+ee/2;let r=gt,n=gt,s=0;o[e].pieceData.forEach(t=>{let a;"timeline"===ae.type?(t.scaledValue=nt(t.value[0]),t.scaledEndValue=nt(t.value[1]),t.scaledVerticalValue=lt(t.value[0])):"bar"!==ae.type&&"clusterbar"!==ae.type?(t.scaledValue=nt(t.value),t.scaledVerticalValue=lt(t.value)):"clusterbar"===ae.type&&(a="vertical"===$?it(nt(t.value)):nt(t.value),t.scaledValue=Math.abs(gt-a)),t.x=o[e].x,0>t.value?("bar"===ae.type&&(t.scaledValue=Math.abs("vertical"===$?nt(t.value)-nt(0):nt(t.value)-gt)),t.base=gt,t.bottom="bar"===ae.type?r:0,t.middle=r-t.scaledValue/2,r="vertical"===$?r+t.scaledValue:r-t.scaledValue,t.negative=!0):("bar"===ae.type&&(t.scaledValue="vertical"===$?n-it(nt(s+t.value)):nt(s+t.value)-n,s+=t.value),t.base=gt,t.bottom="bar"===ae.type?n:0,t.middle=t.scaledValue/2+n,n="vertical"===$?n-t.scaledValue:n+t.scaledValue,t.negative=!1)}),Ke?(o[e].width=Ke[e]-ee,"center"===t.ordinalAlign&&(0===a?(o[e].x=o[e].x-o[e].width/2,o[e].middle=o[e].middle-o[e].width/2):(o[e].x=o[_e[a-1]].x+o[_e[a-1]].width,o[e].middle=o[e].x+o[e].width/2)),o[e].pct=Ke[e]/Ke.total,o[e].pct_start=(o[e].x-Ge[0])/Ke.total,o[e].pct_padding=ee/Ke.total,o[e].pct_middle=(o[e].middle-Ge[0])/Ke.total):(o[e].width=yt-ee,"center"===t.ordinalAlign&&(o[e].x=o[e].x-o[e].width/2,o[e].middle=o[e].middle-o[e].width/2),o[e].pct=yt/Ie[1],o[e].pct_start=(o[e].x-Ge[0])/Ie[1],o[e].pct_padding=ee/Ie[1],o[e].pct_middle=(o[e].middle-Ge[0])/Ie[1])});const xt=[],ft=[],Ot="object"==typeof T?Object.assign({label:!0,padding:5},T):{orient:"default",label:T,padding:5};if(T||C){const e=ae.offsetAngle&&ae.offsetAngle/360||0,t=ae.angleRange&&ae.angleRange.map(e=>e/360)||[0,1],a=t[1]-t[0],r=1>a?s().domain([0,1]).range(t):e=>e;_e.forEach(t=>{const n=p().innerRadius(0).outerRadius(nt.range()[1]/2),s=o[t].pct*a,i=r(o[t].pct_start+e),c=i+s,l=i+s/2,d=n({startAngle:i*jt,endAngle:c*jt}),y=[Ie[0]/2,Ie[1]/2],m=n.centroid({startAngle:i*jt,endAngle:c*jt}),u=0>=m[1]||Ot.orient&&"default"!==Ot.orient&&"edge"!==Ot.orient?0:8,h={startAngle:i,endAngle:c,midAngle:l,markD:d,translate:y,centroid:m,outerPoint:se([0,0],l,nt.range()[1]/2+Ot.padding+u)};o[t].pieArc=h,ft.push(h)})}if(t.oLabel){let t;if("function"==typeof Ot.label)t=Ot.label;else{const a={textAnchor:"middle"};"horizontal"===$&&"right"===Ot.orient?a.textAnchor="start":"horizontal"===$&&(a.textAnchor="end"),t=(t,r,n)=>{const s={};let i;if("radial"===$&&"stem"===Ot.orient)i=`rotate(${0>ft[n].outerPoint[0]?360*ft[n].midAngle+90:360*ft[n].midAngle-90})`;else{if("radial"===$&&"annotation"===Ot.orient){const{centroid:a}=ft[n],r=15*ft.filter((e,t)=>n>t&&0>a[0]==0>ft[t].centroid[0]&&0>a[1]==0>ft[t].centroid[1]).length;let s=7*t.length,i="start",o={dx:0,dy:0};return 0>a[0]?(i="end",s=-s,o.dx=-35):o.dx=35,o.dy=0>a[1]?-35-r:35+r,e.createElement("g",null,e.createElement("path",{fill:"none",stroke:"black",strokeWidth:2,d:`M0,0L${o.dx},${o.dy}L${o.dx+s},${o.dy}`}),e.createElement("text",{textAnchor:i,x:o.dx,y:o.dy-2},t))}"radial"===$&&"center"!==Ot.orient&&(i=`rotate(${0>ft[n].outerPoint[1]?360*ft[n].midAngle:360*ft[n].midAngle+180})`)}return"radial"===$&&"stem"===Ot.orient&&(ft[n].outerPoint[0]>0&&0>Ot.padding||0>ft[n].outerPoint[0]&&Ot.padding>=0)?s.textAnchor="end":"radial"===$&&"stem"===Ot.orient&&(s.textAnchor="start"),e.createElement("text",Object.assign({},a,s,{transform:i}),t)}}if(_e.forEach((a,r)=>{let n=o[a].middle,s=0;"horizontal"===$?(s=o[a].middle,n="right"===Ot.orient?Ie[0]+3:-3):"radial"===$&&("annotation"===Ot.orient?(n=.25*ft[r].centroid[0]+.75*ft[r].outerPoint[0]+ft[r].translate[0],s=.25*ft[r].centroid[1]+.75*ft[r].outerPoint[1]+ft[r].translate[1]):"center"===Ot.orient?(n=ft[r].centroid[0]+ft[r].translate[0],s=ft[r].centroid[1]+ft[r].translate[1]):(n=ft[r].outerPoint[0]+ft[r].translate[0],s=ft[r].outerPoint[1]+ft[r].translate[1]));const i=Ot.labelFormatter?Ot.labelFormatter(a):a,c=t(i,o[a].pieceData.map(e=>e.data),r,o[a]);xt.push(e.createElement("g",{key:"olabel-"+r,transform:`translate(${n},${s})`},c))}),"vertical"===$){let t;t="top"===Ot.orient?-15:15+nt.range()[1],n=e.createElement("g",{key:"ordinalframe-labels-container",className:"ordinal-labels",transform:`translate(0,${t})`},xt)}else("horizontal"===$||"radial"===$)&&(n=e.createElement("g",{key:"ordinalframe-labels-container",className:"ordinal-labels"},xt))}const St=(t.hoverAnnotation||t.pieceHoverAnnotation)&&-1!==["bar","clusterbar","timeline"].indexOf(ae.type);let Mt;St||t.summaryHoverAnnotation||!(t.hoverAnnotation||t.customClickBehavior||t.customDoubleClickBehavior||t.customHoverBehavior)||(Pe=Ne?function({oExtent:e,projectedColumns:t,rScale:a,pieArcs:r,padding:n,projection:s,customDoubleClickBehavior:i,customClickBehavior:o,customHoverBehavior:c}){return e.map((e,l)=>{const d=t[e].width;let y=t[e].x,m=0,u=a.range()[1],p=d+n;if("horizontal"===s&&(m=t[e].x,y=0,p=a.range()[1],u=d),"radial"===s){const{markD:n,centroid:s,translate:d,midAngle:y}=r[l],m={type:"column-hover",column:t[e],pieces:t[e].pieceData,summary:t[e].pieceData,arcAngles:{centroid:s,translate:d,midAngle:y,length:a.range()[1]/2}};return{markType:"path",key:"hover"+e,d:n,transform:`translate(${d.join(",")})`,style:{opacity:0},overlayData:m,onDoubleClick:i&&(e=>{i(m,e)}),onClick:o&&(e=>{o(m,e)}),onMouseEnter:c&&(e=>{c(m,e)}),onMouseLeave:c&&(e=>{c(e)})}}const h={type:"column-hover",column:t[e],pieces:t[e].pieceData,summary:t[e].pieceData};return{markType:"rect",key:"hover-"+e,x:y,y:m,height:u,width:p,style:{opacity:0},onDoubleClick:i&&(e=>{i(h,e)}),onClick:o&&(e=>{o(h,e)}),onMouseEnter:c&&(e=>{c(h,e)}),onMouseLeave:e=>{c(void 0,e)},overlayData:h}})}({oExtent:_e,projectedColumns:o,rScale:nt,pieArcs:ft,padding:ee,projection:$,customDoubleClickBehavior:z,customClickBehavior:A,customHoverBehavior:F}):a.columnOverlays);const $t=ae.type&&"none"!==ae.type?ae.type:"point",Ft=("function"==typeof $t?$t:bt[$t])({type:ae,data:o,renderMode:xe,eventListenersGenerator:de,styleFn:ue,projection:$,classFn:pe,adjustedSize:Ie,chartSize:P,margin:Re,rScale:nt}),At=Ft.reduce((e,t)=>(t.o&&(e[t.o]||(e[t.o]=[]),e[t.o].push(t)),e),{});Object.keys(o).forEach(e=>{o[e].xyData=At[e]||[]});let zt={};te.type&&"none"!==te.type&&(zt=we({data:o,type:te,renderMode:fe,styleFn:me,classFn:he,projection:$,eventListenersGenerator:de,adjustedSize:Ie,margin:Re,axisCreator:pt}),zt.originalData=o);const Pt="horizontal"===$?vt:kt,wt="vertical"===$?vt:kt,Dt=Ft.map(e=>e.piece&&e.xy?Object.assign(Object.assign({},e.piece),{type:"frame-hover",x:e.xy.x+wt(e.xy),y:e.xy.y+Pt(e.xy)}):null).filter(e=>e);((C||N)&&-1===["bar","clusterbar","timeline"].indexOf(ae.type)||L)&&(L&&zt.xyPoints?Mt=zt.xyPoints.map(e=>Object.assign({},e,{type:"frame-hover",isSummaryData:!0,x:e.x,y:e.y})):(C||N)&&Ft&&(Mt=Dt));const{axis:Tt,axesTickLines:Ct}=(({projection:t,axis:a,adjustedSize:r,size:n,rScale:s,rScaleType:i,pieceType:o,rExtent:c,data:l,maxColumnValues:d=1,xyData:y,margin:m,thresholds:u})=>{if(!a)return{axis:void 0,axesTickLines:void 0};let p,h;if("radial"!==t&&a){h=[];const o=[0,0];p=a.map((a,c)=>{let p,g=a.className||"";const x=a.extentOverride?a.extentOverride:s.domain(),f=["left","right"],b=-1===f.indexOf(a.orient)&&"vertical"!==t||-1!==f.indexOf(a.orient)&&"horizontal"!==t?i.domain(x):i.domain([0,d]),v=a.orient,k=-1===f.indexOf(a.orient)&&"vertical"!==t||-1!==f.indexOf(a.orient)&&"horizontal"!==t?s.range():[0,"vertical"===t?r[0]:r[1]];"right"===v?(b.range(k.reverse()),g+=" right y"):"left"===v?(g+=" left y",b.range(k.reverse())):"top"===v?(g+=" top x",b.range(k)):"bottom"===v&&(g+=" bottom x",b.range(k)),a.tickValues&&Array.isArray(a.tickValues)?p=a.tickValues:a.tickValues instanceof Function?p=a.tickValues(l,n,s):!a.tickValues&&u&&(p=u.map(e=>s.invert(e)));const j=Q({padding:a.padding,tickValues:p,scale:b,ticks:a.ticks,orient:v,size:r,footer:a.footer,tickSize:a.tickSize,jaggedBase:a.jaggedBase}),E=J({className:a.className,axisParts:j,orient:v,tickLineGenerator:a.tickLineGenerator,jaggedBase:a.jaggedBase,scale:b});return h.push(E),"under"===a.baseline&&h.push(U(a.orient,r,a.className)),e.createElement(Ce,Object.assign({},a,{key:a.key||"orframe-axis-"+c,axisParts:j,orient:v,size:r,position:o,tickValues:p,scale:b,className:g,marginalSummaryType:"string"==typeof a.marginalSummaryType?{type:a.marginalSummaryType}:a.marginalSummaryType,margin:m,xyPoints:y.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}=o,n=[];a.forEach(a=>{const{tickValues:o=s.ticks(Math.max(2,(r[0]/2-t)/50)),label:l,tickFormat:d=e=>e}=a,y=i.domain(c).range([t,r[0]/2]),m=o instanceof Function?o({orient:a.orient}):o;m.forEach((a,r)=>{const s=y(a);if(0!==t||0!==a){let t,o="";if(l&&r===m.length-1){const a="string"==typeof l?{locationDistance:15}:l,{locationDistance:r=15}=a;o=Math.random()+" ",t=e.createElement("g",{className:"axis-label radial",transform:`translate(0,${r})`},e.createElement("text",{textAnchor:"middle"},e.createElement("textPath",{startOffset:s*Math.PI*.5,xlinkHref:"#"+o},l.name)))}n.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:o,d:(i=s,["M",st(0-i),st(0),"a",i,i,0,1,0,2*i,0,"a",i,i,0,1,0,-2*i,0].join(" ")+"Z"),r:s,stroke:"gray",fill:"none"}),e.createElement("text",{y:5-s,textAnchor:"middle"},d(a)),t))}var i})}),p=[e.createElement("g",{key:a[0].key||"orframe-radial-axis-container",className:"axis-labels",transform:`translate(${r[0]/2},${r[1]/2})`},n)]}return{axis:p,axesTickLines:h}})({axis:Le,data:Ae,projection:$,adjustedSize:Ie,size:P,rScale:nt,rScaleType:at.copy(),pieceType:ae,rExtent:Ze,maxColumnValues:He,xyData:Dt,margin:Re,thresholds:zt.thresholds});return Object.assign({pieceDataXY:Mt,oAccessor:oe,rAccessor:ce,summaryType:te,type:ae},function(t){const{usesPieceOverlays:a,shouldRecalculateOverlay:r,calculatedPieceData:n,projection:s,customClickBehavior:i,customDoubleClickBehavior:o,customHoverBehavior:c,currentState:l,connectorStyle:d,connectorClass:y,connectorRenderMode:m,connectorCanvasRender:u,summaryCanvasRender:p,pieceCanvasRender:h,connectorType:g,eventListenersGenerator:x,pieceType:f,summaryStyle:b,summaryClass:v,pieceStyle:k,pieceClass:j,keyedData:E,oExtent:O,projectedColumns:S,calculatedSummaries:M,oAccessor:$,rScale:F,calculatedRExtent:A,calculatedOExtent:z,rExtentSettings:P,oExtentSettings:w,adjustedPosition:D,adjustedSize:T,margin:C,backgroundGraphics:N,foregroundGraphics:L,arrayWrappedAxis:R,axis:V,axesTickLines:I,oLabels:B,title:W,oScaleType:_,instantiatedRScaleType:G,oScale:K,rExtent:Y,legend:X,pieceIDAccessor:H,currentProps:q}=t;let{columnOverlays:Z}=t;if(a){const t="horizontal"===s?vt:kt,a="vertical"===s?vt:kt;Z=r?n.map((r,n)=>{const s=Object.assign(Object.assign({},r.piece),{x:r.xy.x+a(r.xy),y:r.xy.y+t(r.xy)});return e.isValidElement(r.renderElement)?{renderElement:r.renderElement,overlayData:s}:Object.assign(Object.assign({},r.renderElement),{key:"hover-"+n,style:{opacity:0},overlayData:s,onClick:i&&(e=>{i(s.data,e)}),onDoubleClick:o&&(e=>{o(s.data,e)}),onMouseEnter:c&&(e=>{c(s.data,e)}),onMouseLeave:c&&(e=>{c(void 0,e)})})}):l.columnOverlays}const Q={connectors:{accessibleTransform:(e,t)=>e[t],projection:s,data:{keyedData:E,oExtent:O},styleFn:d,classFn:y,renderMode:m,canvasRender:u,behavior:dt,type:g,eventListenersGenerator:x,pieceType:f},summaries:{accessibleTransform:(e,t)=>{const a=O[t];return{type:"column-hover",column:S[a],pieces:S[a].pieceData,summary:S[a].pieceData,oAccessor:$}},data:M.marks,behavior:Te,canvasRender:p,styleFn:b,classFn:v},pieces:{accessibleTransform:(e,t)=>Object.assign(Object.assign({},e[t].piece?Object.assign(Object.assign({},e[t].piece),e[t].xy):e[t]),{type:"frame-hover"}),shouldRender:f.type&&"none"!==f.type,data:n,behavior:ie,canvasRender:h,styleFn:k,classFn:j,axis:R,ariaLabel:void 0!==f.type&&"function"!=typeof f.type&&Et[f.type]||{items:"piece",chart:"ordinal chart"}}};let U;if(P.onChange&&(l.calculatedRExtent||[]).join(",")!==(A||[]).join(",")&&P.onChange(A),w.onChange&&(l.calculatedOExtent||[]).join(",")!==(z||[]).join(",")&&w.onChange(z),X&&(U=!0===X?{}:Object.assign({},X),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:N,foregroundGraphics:L,axisData:R,axes:V,axesTickLines:I,oLabels:{labels:B},title:W,columnOverlays:Z,renderNumber:l.renderNumber+1,oScaleType:_,rScaleType:G,oExtent:O,rExtent:Y,oScale:K,rScale:F,calculatedOExtent:z,calculatedRExtent:A,projectedColumns:S,margin:C,legendSettings:U,orFrameRender:Q,pieceIDAccessor:H,props:q}}({usesPieceOverlays:St,shouldRecalculateOverlay:Ne,calculatedPieceData:Ft,projection:$,customClickBehavior:A,customDoubleClickBehavior:z,customHoverBehavior:F,currentState:a,connectorStyle:ye,connectorClass:ge,connectorRenderMode:be,connectorCanvasRender:je,summaryCanvasRender:ke,pieceCanvasRender:ve,connectorType:re,eventListenersGenerator:de,pieceType:ae,summaryStyle:me,summaryClass:he,pieceStyle:ue,pieceClass:pe,keyedData:At,oExtent:_e,projectedColumns:o,calculatedSummaries:zt,oAccessor:oe,rScale:nt,calculatedRExtent:Je,calculatedOExtent:We,rExtentSettings:qe,oExtentSettings:Be,adjustedPosition:Ve,adjustedSize:Ie,margin:Re,backgroundGraphics:R,foregroundGraphics:V,arrayWrappedAxis:Le,axis:Tt,axesTickLines:Ct,oLabels:n,title:Ee,columnOverlays:Pe,oScaleType:I,instantiatedRScaleType:at,oScale:Xe,rExtent:Ze,legend:W,pieceIDAccessor:Oe,currentProps:t}))})(a,n,r)),{margin:l,adjustedSize:h,orFrameRender:g,axes:x,axesTickLines:f,title:b}=c,v=[h[0]+l.left+l.right,h[1]+l.top+l.bottom],k=s(),j=s(),E=a.frameRenderOrder||ta;return ia({size:v,margin:l,renderedElements:aa(g,a.renderOrder||[],k,j,Jt),axes:x,axesTickLines:f,title:b,frameRenderOrder:E,additionalDefs:a.additionalDefs,name:"ordinalframe",matte:a.matte,frameKey:"static"})}function sa(e){const t=Object.assign(Object.assign({},{annotations:[],foregroundGraphics:[],size:[500,500],className:"",name:"networkframe",networkType:{type:"force",iterations:500}}),e),a={marginCalc:D((e,t,a)=>{const r=it({margin:e,title:t,size:a}),{adjustedPosition:n,adjustedSize:s}=lt({size:a,margin:r});return{margin:r,adjustedPosition:n,adjustedSize:s}}),accessorConversions:D((e,t,a,r,n)=>({nodeIDAccessor:et(e,e=>e?e.id:void 0),sourceAccessor:et(t,e=>e.source),targetAccessor:et(a,e=>e.target),nodeSizeAccessor:"number"==typeof r?ft(r):et(r,ft(5)),edgeWidthAccessor:et(n,e=>e.weight||1)})),nodeStyleFns:D((e,t,a,r)=>({nodeStyleFn:et(e,()=>({}),!0),nodeClassFn:et(t,()=>"",!0),nodeRenderModeFn:et(a,void 0,!0),nodeCanvasRenderFn:r?et(r,void 0,!0):void 0})),edgeStyleFns:D((e,t,a,r)=>({edgeStyleFn:et(e,()=>({}),!0),edgeClassFn:et(t,()=>"",!0),edgeRenderModeFn:et(a,void 0,!0),edgeCanvasRenderFn:r?et(r,void 0,!0):void 0}))},r=function(e){return{dataVersion:void 0,nodeData:[],edgeData:[],adjustedPosition:[],adjustedSize:[],backgroundGraphics:null,foregroundGraphics:null,projectedNodes:[],projectedEdges:[],renderNumber:0,nodeLabelAnnotations:[],graphSettings:{type:"empty-start",nodes:[],edges:[],nodeHash:new Map,edgeHash:new Map,hierarchicalNetwork:!1},edgeWidthAccessor:et("weight"),legendSettings:void 0,margin:{top:0,left:0,right:0,bottom:0},networkFrameRender:{},nodeIDAccessor:et("id"),nodeSizeAccessor:ft(5),overlay:[],projectedXYPoints:[],sourceAccessor:et("source"),targetAccessor:et("target"),title:{title:void 0},props:e}}(t),n=Object.assign(Object.assign({},r),Qt(t,r,a)),{margin:i,networkFrameRender:o,title:c,graphSettings:l}=n,d=t.size||[500,500],y=s(),m=s(),u=t.frameRenderOrder||ta;return ia({size:d,margin:i,renderedElements:aa(o,t.renderOrder||(l&&"matrix"===l.type?["nodes","edges"]:["edges","nodes"]),y,m,ea),title:c,frameRenderOrder:u,additionalDefs:t.additionalDefs,name:"networkframe",matte:t.matte,frameKey:"static"})}function ia({size:t,margin:a,renderedElements:r,axes:n,axesTickLines:s,title:i,frameRenderOrder:o,additionalDefs:c,name:l,frameKey:d}){const y={"axes-tick-lines":s?e.createElement("g",{key:"visualization-tick-lines",className:"axis axis-tick-lines","aria-hidden":!0},s):null,"axes-labels":n?e.createElement("g",{key:"visualization-axis-labels",className:"axis axis-labels"},n):null,"viz-layer":r&&r.length>0?r:null},m=[];o.forEach(e=>{y[e]&&m.push(y[e])});const u=function({title:t={title:"",orient:"top"},size:a}){let r=null;const{title:n,orient:s}=nt(t);let i,o=0,c=0;switch(s){case"top":o=a[0]/2,c=25;break;case"bottom":o=a[0]/2,c=a[1]-25;break;case"left":o=25,c=a[1]/2,i="rotate(-90)";break;case"right":o=a[0]-25,c=a[1]/2,i="rotate(90)"}const l=`translate(${o},${c})`;return"string"==typeof n&&n.length>0?r=e.createElement("g",{transform:l},e.createElement("text",{className:"frame-title",transform:i,style:{textAnchor:"middle",pointerEvents:"none"}},n)):n&&(r=e.createElement("g",{transform:l},n)),r}({title:i||{title:void 0},size:t}),{defs:p}=(({matte:t,additionalDefs:a})=>{let r;e.isValidElement(t)&&(r=t);const n=(({matte:t,key:a,additionalDefs:r})=>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),r))({matte:r,key:t,additionalDefs:a});return{defs:n,matte:r}})({matte:null,size:t,margin:a,frameKey:d,additionalDefs:c,name:l});return(void 0)(e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:l+" frame",width:t[0],height:t[1]},p,m.length>0&&e.createElement("g",{className:"data-visualization",key:"visualization-clip-path",role:"group",transform:`translate(${a.left},${a.top})`},m),u&&e.createElement("g",{className:"frame-title"},u)))}function oa(e,t){switch(e){case"xy":return ra(t);case"ordinal":return na(t);case"network":return sa(t);default:throw Error(`Unknown frame type: ${e}. Must be "xy", "ordinal", or "network".`)}}function ca(e){return ra(e)}function la(e){return na(e)}function da(e){return sa(e)}export{da as renderNetworkToStaticSVG,la as renderOrdinalToStaticSVG,oa as renderToStaticSVG,ca as renderXYToStaticSVG};
@@ -0,0 +1,2 @@
1
+ declare let TooltipProvider: (selector: any) => any, useTooltip: (selector: any) => any;
2
+ export { TooltipProvider, useTooltip };
@@ -0,0 +1 @@
1
+ export declare function createStore(fn: any): ((selector: any) => any)[];
@@ -0,0 +1,33 @@
1
+ export declare const arcTweener: (oldProps: any, newProps: any) => (t: any) => any;
2
+ export declare const drawAreaConnector: ({ x1, x2, y1, y2, sizeX1, sizeY1, sizeX2, sizeY2 }: {
3
+ x1: any;
4
+ x2: any;
5
+ y1: any;
6
+ y2: any;
7
+ sizeX1: any;
8
+ sizeY1: any;
9
+ sizeX2: any;
10
+ sizeY2: any;
11
+ }) => string;
12
+ export declare const groupBarMark: ({ bins, binMax, relativeBuckets, columnWidth, projection, adjustedSize, summaryI, summary, summaryStyle, type }: {
13
+ bins: any;
14
+ binMax: any;
15
+ relativeBuckets: any;
16
+ columnWidth: any;
17
+ projection: any;
18
+ adjustedSize: any;
19
+ summaryI: any;
20
+ summary: any;
21
+ summaryStyle: any;
22
+ type: any;
23
+ }) => {
24
+ marks: any[];
25
+ points: any[];
26
+ };
27
+ export declare function linearRibbon(): {
28
+ (pathData: any): any;
29
+ x(_value: any): (d: any) => any;
30
+ y(_value: any): (d: any) => any;
31
+ r(_value: any): (d: any) => any;
32
+ interpolate(_value: any): any;
33
+ };
@@ -0,0 +1,21 @@
1
+ import { SummaryLayoutType } from "../types/xyTypes";
2
+ import { ProjectedSummary } from "../types/generalTypes";
3
+ export { contouring } from "./contourLayout";
4
+ export { hexbinning } from "./hexbinLayout";
5
+ export declare function lineBounding({ summaryType, data, defined }: {
6
+ summaryType: any;
7
+ data: any;
8
+ defined: any;
9
+ }): any[];
10
+ export declare function heatmapping({ preprocess, processedData, summaryType: baseSummaryType, data: baseData, finalXExtent, finalYExtent, size, xScaleType, yScaleType, margin, styleFn, classFn, renderFn, chartSize }: SummaryLayoutType): ProjectedSummary | {
11
+ x: number;
12
+ y: number;
13
+ }[];
14
+ export declare function trendlining({ preprocess, summaryType: baseSummaryType, data: baseData, finalXExtent, xScaleType }: SummaryLayoutType): any;
15
+ export declare function shapeBounds(coordinates: any): {
16
+ center: number[];
17
+ top: number[];
18
+ left: number[];
19
+ right: number[];
20
+ bottom: number[];
21
+ };
@@ -0,0 +1,15 @@
1
+ type BoxplotFnType = {
2
+ data: Record<string, any>[];
3
+ type: Record<string, any>;
4
+ renderMode: Function;
5
+ eventListenersGenerator: Function;
6
+ styleFn: Function;
7
+ classFn: Function;
8
+ projection: "horizontal" | "vertical" | "radial";
9
+ adjustedSize: number[];
10
+ };
11
+ export declare function boxplotRenderFn({ data, type, renderMode, eventListenersGenerator, styleFn, classFn, projection, adjustedSize, }: BoxplotFnType): {
12
+ marks: any[];
13
+ xyPoints: any[];
14
+ };
15
+ export {};
@@ -0,0 +1,16 @@
1
+ export declare function bucketizedRenderingFn({ data, type, renderMode, eventListenersGenerator, styleFn, classFn, projection, adjustedSize, chartSize, axisCreator: axisCreatorParam }: {
2
+ data: any;
3
+ type: any;
4
+ renderMode: any;
5
+ eventListenersGenerator: any;
6
+ styleFn: any;
7
+ classFn: any;
8
+ projection: any;
9
+ adjustedSize: any;
10
+ chartSize: any;
11
+ axisCreator: any;
12
+ }): {
13
+ marks: any[];
14
+ xyPoints: any[];
15
+ thresholds: any[];
16
+ };
@@ -0,0 +1,20 @@
1
+ type BoxplotFnType = {
2
+ data: Record<string, any>[];
3
+ type: Record<string, any>;
4
+ renderMode: Function;
5
+ eventListenersGenerator: Function;
6
+ styleFn: Function;
7
+ classFn: Function;
8
+ projection: "horizontal" | "vertical" | "radial";
9
+ adjustedSize: number[];
10
+ };
11
+ interface summaryInstruction {
12
+ Mark?: JSX.Element;
13
+ containerProps?: object;
14
+ elements: object[];
15
+ }
16
+ export declare function ckBinsRenderFn(props: BoxplotFnType): {
17
+ marks: summaryInstruction[];
18
+ xyPoints: any[];
19
+ };
20
+ export {};
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Ckmeans algorithm from d3-scale-cluster
3
+ *
4
+ * Much of the code that lies within was taken from the simple-statistics library,
5
+ * which offers a javascript implementation of the ckmeans algorithm originally
6
+ * designed by Haizhou Wang and Mingzhou Song
7
+ *
8
+ * https://cran.r-project.org/web/packages/Ckmeans.1d.dp/
9
+ * https://github.com/simple-statistics/simple-statistics
10
+ *
11
+ * The simple-statistics software license is included below
12
+ *
13
+ * --
14
+ *
15
+ * ISC License
16
+ *
17
+ * Copyright (c) 2014, Tom MacWright
18
+ *
19
+ * Permission to use, copy, modify, and/or distribute this software for any
20
+ * purpose with or without fee is hereby granted, provided that the above
21
+ * copyright notice and this permission notice appear in all copies.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
24
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
25
+ * FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
26
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
27
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
28
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
29
+ * PERFORMANCE OF THIS SOFTWARE.
30
+ */
31
+ /**
32
+ * Ckmeans clustering is an improvement on heuristic-based clustering
33
+ * approaches like Jenks. The algorithm was developed in
34
+ * [Haizhou Wang and Mingzhou Song](http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Wang+Song.pdf)
35
+ * as a [dynamic programming](https://en.wikipedia.org/wiki/Dynamic_programming) approach
36
+ * to the problem of clustering numeric data into groups with the least
37
+ * within-group sum-of-squared-deviations.
38
+ *
39
+ * Minimizing the difference within groups - what Wang & Song refer to as
40
+ * `withinss`, or within sum-of-squares, means that groups are optimally
41
+ * homogenous within and the data is split into representative groups.
42
+ * This is very useful for visualization, where you may want to represent
43
+ * a continuous variable in discrete color or style groups. This function
44
+ * can provide groups that emphasize differences between data.
45
+ *
46
+ * Being a dynamic approach, this algorithm is based on two matrices that
47
+ * store incrementally-computed values for squared deviations and backtracking
48
+ * indexes.
49
+ *
50
+ * Unlike the [original implementation](https://cran.r-project.org/web/packages/Ckmeans.1d.dp/index.html),
51
+ * this implementation does not include any code to automatically determine
52
+ * the optimal number of clusters: this information needs to be explicitly
53
+ * provided.
54
+ *
55
+ * ### References
56
+ * _Ckmeans.1d.dp: Optimal k-means Clustering in One Dimension by Dynamic
57
+ * Programming_ Haizhou Wang and Mingzhou Song ISSN 2073-4859
58
+ *
59
+ * from The R Journal Vol. 3/2, December 2011
60
+ * @param {Array<number>} data input data, as an array of number values
61
+ * @param {number} nClusters number of desired classes. This cannot be
62
+ * greater than the number of values in the data array.
63
+ * @returns {Array<Array<number>>} clustered input
64
+ * @example
65
+ * ckmeans([-1, 2, -1, 2, 4, 5, 6, -1, 2, -1], 3);
66
+ * // The input, clustered into groups of similar numbers.
67
+ * //= [[-1, -1, -1, -1], [2, 2, 2], [4, 5, 6]]);
68
+ */
69
+ export declare function ckmeans(data: any, nClusters: any): any[];
@@ -0,0 +1,6 @@
1
+ export declare function contouring({ summaryType, data, finalXExtent, finalYExtent }: {
2
+ summaryType: any;
3
+ data: any;
4
+ finalXExtent: any;
5
+ finalYExtent: any;
6
+ }): any[];
@@ -0,0 +1,12 @@
1
+ export declare function contourRenderFn({ data, type, renderMode, eventListenersGenerator, styleFn, classFn, adjustedSize }: {
2
+ data: any;
3
+ type: any;
4
+ renderMode: any;
5
+ eventListenersGenerator: any;
6
+ styleFn: any;
7
+ classFn: any;
8
+ adjustedSize: any;
9
+ }): {
10
+ marks: any[];
11
+ xyPoints: any[];
12
+ };
@@ -0,0 +1,51 @@
1
+ import * as React from "react";
2
+ export declare function sankeyEdgeSort(a: any, b: any, direction: any): number;
3
+ export declare const sigmoidLinks: {
4
+ horizontal: any;
5
+ vertical: any;
6
+ radial: any;
7
+ };
8
+ export declare const customEdgeHashD: {
9
+ curve: (d: any, projection?: string) => any;
10
+ linearc: (d: any) => any;
11
+ ribbon: (d: any) => any;
12
+ arrowhead: (d: any) => any;
13
+ halfarrow: (d: any) => any;
14
+ nail: (d: any) => any;
15
+ comet: (d: any) => any;
16
+ taffy: (d: any) => any;
17
+ };
18
+ export declare const genericLineGenerator: (d: any) => string;
19
+ export declare const matrixEdgeGenerator: (size: any, nodes: any) => ({ d, i, styleFn, renderMode, key, className }: {
20
+ d: any;
21
+ i: any;
22
+ styleFn: any;
23
+ renderMode: any;
24
+ key: any;
25
+ className: any;
26
+ }) => React.JSX.Element;
27
+ export declare const arcEdgeGenerator: (size: any) => ({ d, i, styleFn, renderMode, key, className }: {
28
+ d: any;
29
+ i: any;
30
+ styleFn: any;
31
+ renderMode: any;
32
+ key: any;
33
+ className: any;
34
+ }) => React.JSX.Element;
35
+ export declare const sankeyArrowGenerator: (props: any) => React.JSX.Element;
36
+ export declare const chordEdgeGenerator: (size: any) => ({ d, i, styleFn, renderMode, key, className }: {
37
+ d: any;
38
+ i: any;
39
+ styleFn: any;
40
+ renderMode: any;
41
+ key: any;
42
+ className: any;
43
+ }) => React.JSX.Element;
44
+ export declare const dagreEdgeGenerator: (direction: any) => ({ d, i, styleFn, renderMode, key, className }: {
45
+ d: any;
46
+ i: any;
47
+ styleFn: any;
48
+ renderMode: any;
49
+ key: any;
50
+ className: any;
51
+ }) => React.JSX.Element;