semiotic 2.0.3 → 3.0.0-beta.2

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 (508) hide show
  1. package/CLAUDE.md +828 -0
  2. package/README.md +215 -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 +374 -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/ChartErrorBoundary.js +91 -0
  15. package/ai/dist/src/components/DividedLine.js +65 -0
  16. package/ai/dist/src/components/Legend.js +140 -0
  17. package/ai/dist/src/components/LinkedCharts.js +95 -0
  18. package/ai/dist/src/components/ThemeProvider.js +79 -0
  19. package/ai/dist/src/components/Tooltip/Tooltip.js +309 -0
  20. package/ai/dist/src/components/TooltipPositioner/index.js +132 -0
  21. package/ai/dist/src/components/annotationLayerBehavior/annotationHandling.js +73 -0
  22. package/ai/dist/src/components/annotationLayerBehavior/d3labeler.js +254 -0
  23. package/ai/dist/src/components/annotationRules/baseRules.js +150 -0
  24. package/ai/dist/src/components/annotationRules/networkframeRules.js +196 -0
  25. package/ai/dist/src/components/annotationRules/xyframeRules.js +297 -0
  26. package/ai/dist/src/components/batchWork.js +35 -0
  27. package/ai/dist/src/components/charts/index.js +109 -0
  28. package/ai/dist/src/components/charts/network/ChordDiagram.js +142 -0
  29. package/ai/dist/src/components/charts/network/CirclePack.js +108 -0
  30. package/ai/dist/src/components/charts/network/ForceDirectedGraph.js +121 -0
  31. package/ai/dist/src/components/charts/network/SankeyDiagram.js +155 -0
  32. package/ai/dist/src/components/charts/network/TreeDiagram.js +110 -0
  33. package/ai/dist/src/components/charts/network/Treemap.js +106 -0
  34. package/ai/dist/src/components/charts/ordinal/BarChart.js +156 -0
  35. package/ai/dist/src/components/charts/ordinal/BoxPlot.js +139 -0
  36. package/ai/dist/src/components/charts/ordinal/DonutChart.js +130 -0
  37. package/ai/dist/src/components/charts/ordinal/DotPlot.js +126 -0
  38. package/ai/dist/src/components/charts/ordinal/GroupedBarChart.js +129 -0
  39. package/ai/dist/src/components/charts/ordinal/Histogram.js +132 -0
  40. package/ai/dist/src/components/charts/ordinal/PieChart.js +128 -0
  41. package/ai/dist/src/components/charts/ordinal/RidgelinePlot.js +130 -0
  42. package/ai/dist/src/components/charts/ordinal/StackedBarChart.js +130 -0
  43. package/ai/dist/src/components/charts/ordinal/SwarmPlot.js +147 -0
  44. package/ai/dist/src/components/charts/ordinal/ViolinPlot.js +138 -0
  45. package/ai/dist/src/components/charts/realtime/RealtimeHeatmap.js +79 -0
  46. package/ai/dist/src/components/charts/realtime/RealtimeHistogram.js +114 -0
  47. package/ai/dist/src/components/charts/realtime/RealtimeLineChart.js +93 -0
  48. package/ai/dist/src/components/charts/realtime/RealtimeSwarmChart.js +105 -0
  49. package/ai/dist/src/components/charts/realtime/RealtimeWaterfallChart.js +106 -0
  50. package/ai/dist/src/components/charts/shared/ChartError.js +72 -0
  51. package/ai/dist/src/components/charts/shared/colorUtils.js +138 -0
  52. package/ai/dist/src/components/charts/shared/formatUtils.js +213 -0
  53. package/ai/dist/src/components/charts/shared/hooks.js +49 -0
  54. package/ai/dist/src/components/charts/shared/legendUtils.js +57 -0
  55. package/ai/dist/src/components/charts/shared/selectionUtils.js +67 -0
  56. package/ai/dist/src/components/charts/shared/tooltipUtils.js +79 -0
  57. package/ai/dist/src/components/charts/shared/types.js +2 -0
  58. package/ai/dist/src/components/charts/shared/validateChartData.js +82 -0
  59. package/ai/dist/src/components/charts/shared/validateProps.js +736 -0
  60. package/ai/dist/src/components/charts/xy/AreaChart.js +230 -0
  61. package/ai/dist/src/components/charts/xy/BubbleChart.js +251 -0
  62. package/ai/dist/src/components/charts/xy/Heatmap.js +235 -0
  63. package/ai/dist/src/components/charts/xy/LineChart.js +307 -0
  64. package/ai/dist/src/components/charts/xy/MinimapChart.js +298 -0
  65. package/ai/dist/src/components/charts/xy/Scatterplot.js +172 -0
  66. package/ai/dist/src/components/charts/xy/ScatterplotMatrix.js +426 -0
  67. package/ai/dist/src/components/charts/xy/StackedAreaChart.js +231 -0
  68. package/ai/dist/src/components/constants/coordinateNames.js +11 -0
  69. package/ai/dist/src/components/constants/frame_props.js +251 -0
  70. package/ai/dist/src/components/data/dataFunctions.js +487 -0
  71. package/ai/dist/src/components/data/multiAccessorUtils.js +14 -0
  72. package/ai/dist/src/components/data/transforms.js +143 -0
  73. package/ai/dist/src/components/data/unflowedFunctions.js +5 -0
  74. package/ai/dist/src/components/export/exportChart.js +121 -0
  75. package/ai/dist/src/components/generic_utilities/functions.js +5 -0
  76. package/ai/dist/src/components/geometry/areaDrawing.js +312 -0
  77. package/ai/dist/src/components/geometry/contourLayout.js +73 -0
  78. package/ai/dist/src/components/geometry/hexbinLayout.js +163 -0
  79. package/ai/dist/src/components/geometry/lineDrawing.js +356 -0
  80. package/ai/dist/src/components/geometry/sankeyLinks.js +331 -0
  81. package/ai/dist/src/components/geometry/summaryLayouts.js +136 -0
  82. package/ai/dist/src/components/index.js +18 -0
  83. package/ai/dist/src/components/processing/InteractionItems.js +223 -0
  84. package/ai/dist/src/components/processing/hierarchyUtils.js +104 -0
  85. package/ai/dist/src/components/processing/layouts/chordLayout.js +58 -0
  86. package/ai/dist/src/components/processing/layouts/forceLayout.js +142 -0
  87. package/ai/dist/src/components/processing/layouts/hierarchyLayout.js +31 -0
  88. package/ai/dist/src/components/processing/layouts/index.js +32 -0
  89. package/ai/dist/src/components/processing/layouts/sankeyLayout.js +96 -0
  90. package/ai/dist/src/components/processing/layouts/simpleLayouts.js +34 -0
  91. package/ai/dist/src/components/processing/layouts/types.js +2 -0
  92. package/ai/dist/src/components/processing/networkDefaults.js +39 -0
  93. package/ai/dist/src/components/realtime/BinAccumulator.js +36 -0
  94. package/ai/dist/src/components/realtime/IncrementalExtent.js +55 -0
  95. package/ai/dist/src/components/realtime/RingBuffer.js +104 -0
  96. package/ai/dist/src/components/realtime/renderers/barRenderer.js +133 -0
  97. package/ai/dist/src/components/realtime/renderers/candlestickRenderer.js +7 -0
  98. package/ai/dist/src/components/realtime/renderers/lineRenderer.js +164 -0
  99. package/ai/dist/src/components/realtime/renderers/swarmRenderer.js +91 -0
  100. package/ai/dist/src/components/realtime/renderers/types.js +2 -0
  101. package/ai/dist/src/components/realtime/renderers/waterfallRenderer.js +163 -0
  102. package/ai/dist/src/components/realtime/types.js +2 -0
  103. package/ai/dist/src/components/semiotic-ai.js +89 -0
  104. package/ai/dist/src/components/semiotic-data.js +12 -0
  105. package/ai/dist/src/components/semiotic-network.js +38 -0
  106. package/ai/dist/src/components/semiotic-ordinal.js +28 -0
  107. package/ai/dist/src/components/semiotic-realtime.js +30 -0
  108. package/ai/dist/src/components/semiotic-server.js +8 -0
  109. package/ai/dist/src/components/semiotic-xy.js +35 -0
  110. package/ai/dist/src/components/semiotic.js +109 -0
  111. package/ai/dist/src/components/server/renderToStaticSVG.js +594 -0
  112. package/ai/dist/src/components/store/SelectionStore.js +91 -0
  113. package/ai/dist/src/components/store/ThemeStore.js +78 -0
  114. package/ai/dist/src/components/store/TooltipStore.js +13 -0
  115. package/ai/dist/src/components/store/createStore.js +81 -0
  116. package/ai/dist/src/components/store/useSelection.js +133 -0
  117. package/ai/dist/src/components/stream/CanvasHitTester.js +164 -0
  118. package/ai/dist/src/components/stream/DataSourceAdapter.js +99 -0
  119. package/ai/dist/src/components/stream/MarginalGraphics.js +266 -0
  120. package/ai/dist/src/components/stream/NetworkCanvasHitTester.js +228 -0
  121. package/ai/dist/src/components/stream/NetworkPipelineStore.js +498 -0
  122. package/ai/dist/src/components/stream/NetworkSVGOverlay.js +70 -0
  123. package/ai/dist/src/components/stream/NetworkSceneGraph.js +38 -0
  124. package/ai/dist/src/components/stream/OrdinalCanvasHitTester.js +146 -0
  125. package/ai/dist/src/components/stream/OrdinalPipelineStore.js +786 -0
  126. package/ai/dist/src/components/stream/OrdinalSVGOverlay.js +130 -0
  127. package/ai/dist/src/components/stream/ParticlePool.js +174 -0
  128. package/ai/dist/src/components/stream/PipelineStore.js +1243 -0
  129. package/ai/dist/src/components/stream/SVGOverlay.js +129 -0
  130. package/ai/dist/src/components/stream/SceneGraph.js +132 -0
  131. package/ai/dist/src/components/stream/StreamNetworkFrame.js +561 -0
  132. package/ai/dist/src/components/stream/StreamOrdinalFrame.js +492 -0
  133. package/ai/dist/src/components/stream/StreamXYFrame.js +590 -0
  134. package/ai/dist/src/components/stream/accessorUtils.js +20 -0
  135. package/ai/dist/src/components/stream/index.js +32 -0
  136. package/ai/dist/src/components/stream/layouts/chordLayoutPlugin.js +352 -0
  137. package/ai/dist/src/components/stream/layouts/forceLayoutPlugin.js +230 -0
  138. package/ai/dist/src/components/stream/layouts/hierarchyLayoutPlugin.js +568 -0
  139. package/ai/dist/src/components/stream/layouts/index.js +28 -0
  140. package/ai/dist/src/components/stream/layouts/sankeyLayoutPlugin.js +245 -0
  141. package/ai/dist/src/components/stream/networkTypes.js +17 -0
  142. package/ai/dist/src/components/stream/ordinalSceneBuilders/barScene.js +126 -0
  143. package/ai/dist/src/components/stream/ordinalSceneBuilders/connectorScene.js +62 -0
  144. package/ai/dist/src/components/stream/ordinalSceneBuilders/pieScene.js +33 -0
  145. package/ai/dist/src/components/stream/ordinalSceneBuilders/pointScene.js +63 -0
  146. package/ai/dist/src/components/stream/ordinalSceneBuilders/statisticalScene.js +278 -0
  147. package/ai/dist/src/components/stream/ordinalSceneBuilders/timelineScene.js +30 -0
  148. package/ai/dist/src/components/stream/ordinalSceneBuilders/types.js +2 -0
  149. package/ai/dist/src/components/stream/ordinalTypes.js +2 -0
  150. package/ai/dist/src/components/stream/renderers/areaCanvasRenderer.js +48 -0
  151. package/ai/dist/src/components/stream/renderers/barCanvasRenderer.js +70 -0
  152. package/ai/dist/src/components/stream/renderers/boxplotCanvasRenderer.js +75 -0
  153. package/ai/dist/src/components/stream/renderers/candlestickCanvasRenderer.js +28 -0
  154. package/ai/dist/src/components/stream/renderers/connectorCanvasRenderer.js +47 -0
  155. package/ai/dist/src/components/stream/renderers/heatmapCanvasRenderer.js +31 -0
  156. package/ai/dist/src/components/stream/renderers/lineCanvasRenderer.js +140 -0
  157. package/ai/dist/src/components/stream/renderers/networkArcRenderer.js +38 -0
  158. package/ai/dist/src/components/stream/renderers/networkCircleRenderer.js +37 -0
  159. package/ai/dist/src/components/stream/renderers/networkEdgeRenderer.js +102 -0
  160. package/ai/dist/src/components/stream/renderers/networkParticleRenderer.js +63 -0
  161. package/ai/dist/src/components/stream/renderers/networkRectRenderer.js +35 -0
  162. package/ai/dist/src/components/stream/renderers/pointCanvasRenderer.js +38 -0
  163. package/ai/dist/src/components/stream/renderers/swarmCanvasRenderer.js +10 -0
  164. package/ai/dist/src/components/stream/renderers/types.js +2 -0
  165. package/ai/dist/src/components/stream/renderers/violinCanvasRenderer.js +47 -0
  166. package/ai/dist/src/components/stream/renderers/waterfallCanvasRenderer.js +38 -0
  167. package/ai/dist/src/components/stream/renderers/wedgeCanvasRenderer.js +33 -0
  168. package/ai/dist/src/components/stream/types.js +2 -0
  169. package/ai/dist/src/components/types/annotationTypes.js +2 -0
  170. package/ai/dist/src/components/types/canvasTypes.js +2 -0
  171. package/ai/dist/src/components/types/generalTypes.js +2 -0
  172. package/ai/dist/src/components/types/interactionTypes.js +2 -0
  173. package/ai/dist/src/components/types/legendTypes.js +2 -0
  174. package/ai/dist/src/components/types/networkTypes.js +2 -0
  175. package/ai/dist/src/components/types/ordinalTypes.js +2 -0
  176. package/ai/dist/src/components/types/xyTypes.js +2 -0
  177. package/ai/dist/src/components/useBoundingRect.js +24 -0
  178. package/ai/dist/src/components/visualizationLayerBehavior/axis.js +301 -0
  179. package/ai/dist/src/components/visualizationLayerBehavior/general.js +435 -0
  180. package/ai/dist/src/setupTests.js +4 -0
  181. package/ai/examples.md +489 -0
  182. package/ai/schema.json +1338 -0
  183. package/ai/system-prompt.md +41 -0
  184. package/dist/AnnotationLayer/AnnotationLayer.d.ts +0 -1
  185. package/dist/Axis/axisTitle.d.ts +3 -3
  186. package/dist/Axis/summaryGraphic.d.ts +1 -1
  187. package/dist/ChartErrorBoundary.d.ts +39 -0
  188. package/dist/LinkedCharts.d.ts +42 -0
  189. package/dist/ThemeProvider.d.ts +12 -0
  190. package/dist/Tooltip/Tooltip.d.ts +141 -0
  191. package/dist/TooltipPositioner/index.d.ts +1 -1
  192. package/dist/annotationLayerBehavior/annotationHandling.d.ts +2 -2
  193. package/dist/annotationRules/networkframeRules.d.ts +2 -2
  194. package/dist/annotationRules/xyframeRules.d.ts +2 -2
  195. package/dist/batchWork.d.ts +1 -1
  196. package/dist/charts/index.d.ts +74 -0
  197. package/dist/charts/network/ChordDiagram.d.ts +36 -0
  198. package/dist/charts/network/CirclePack.d.ts +32 -0
  199. package/dist/charts/network/ForceDirectedGraph.d.ts +38 -0
  200. package/dist/charts/network/SankeyDiagram.d.ts +38 -0
  201. package/dist/charts/network/TreeDiagram.d.ts +34 -0
  202. package/dist/charts/network/Treemap.d.ts +33 -0
  203. package/dist/charts/ordinal/BarChart.d.ts +32 -0
  204. package/dist/charts/ordinal/BoxPlot.d.ts +27 -0
  205. package/dist/charts/ordinal/DonutChart.d.ts +23 -0
  206. package/dist/charts/ordinal/DotPlot.d.ts +27 -0
  207. package/dist/charts/ordinal/GroupedBarChart.d.ts +26 -0
  208. package/dist/charts/ordinal/Histogram.d.ts +26 -0
  209. package/dist/charts/ordinal/PieChart.d.ts +21 -0
  210. package/dist/charts/ordinal/RidgelinePlot.d.ts +34 -0
  211. package/dist/charts/ordinal/StackedBarChart.d.ts +27 -0
  212. package/dist/charts/ordinal/SwarmPlot.d.ts +29 -0
  213. package/dist/charts/ordinal/ViolinPlot.d.ts +28 -0
  214. package/dist/charts/realtime/RealtimeHeatmap.d.ts +95 -0
  215. package/dist/charts/realtime/RealtimeHistogram.d.ts +119 -0
  216. package/dist/charts/realtime/RealtimeLineChart.d.ts +98 -0
  217. package/dist/charts/realtime/RealtimeSwarmChart.d.ts +100 -0
  218. package/dist/charts/realtime/RealtimeWaterfallChart.d.ts +97 -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 +94 -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/selectionUtils.d.ts +51 -0
  225. package/dist/charts/shared/tooltipUtils.d.ts +18 -0
  226. package/dist/charts/shared/types.d.ts +97 -0
  227. package/dist/charts/shared/validateChartData.d.ts +41 -0
  228. package/dist/charts/shared/validateProps.d.ts +18 -0
  229. package/dist/charts/xy/AreaChart.d.ts +130 -0
  230. package/dist/charts/xy/BubbleChart.d.ts +164 -0
  231. package/dist/charts/xy/Heatmap.d.ts +156 -0
  232. package/dist/charts/xy/LineChart.d.ts +196 -0
  233. package/dist/charts/xy/MinimapChart.d.ts +73 -0
  234. package/dist/charts/xy/Scatterplot.d.ts +55 -0
  235. package/dist/charts/xy/ScatterplotMatrix.d.ts +71 -0
  236. package/dist/charts/xy/StackedAreaChart.d.ts +134 -0
  237. package/dist/constants/frame_props.d.ts +9 -0
  238. package/dist/data/dataFunctions.d.ts +10 -11
  239. package/dist/data/transforms.d.ts +45 -0
  240. package/dist/export/exportChart.d.ts +16 -0
  241. package/dist/{svg → geometry}/areaDrawing.d.ts +3 -13
  242. package/dist/geometry/contourLayout.d.ts +6 -0
  243. package/dist/geometry/hexbinLayout.d.ts +7 -0
  244. package/dist/{svg → geometry}/lineDrawing.d.ts +7 -35
  245. package/dist/geometry/sankeyLinks.d.ts +2 -0
  246. package/dist/geometry/summaryLayouts.d.ts +45 -0
  247. package/dist/index.d.ts +1 -125
  248. package/dist/network.js +7495 -0
  249. package/dist/network.js.map +1 -0
  250. package/dist/network.min.js +1 -0
  251. package/dist/network.module.js +7458 -0
  252. package/dist/network.module.js.map +1 -0
  253. package/dist/network.module.min.js +1 -0
  254. package/dist/ordinal.js +6497 -0
  255. package/dist/ordinal.js.map +1 -0
  256. package/dist/ordinal.min.js +1 -0
  257. package/dist/ordinal.module.js +6465 -0
  258. package/dist/ordinal.module.js.map +1 -0
  259. package/dist/ordinal.module.min.js +1 -0
  260. package/dist/processing/InteractionItems.d.ts +5 -4
  261. package/dist/processing/hierarchyUtils.d.ts +16 -0
  262. package/dist/processing/layouts/chordLayout.d.ts +2 -0
  263. package/dist/processing/layouts/forceLayout.d.ts +3 -0
  264. package/dist/processing/layouts/hierarchyLayout.d.ts +10 -0
  265. package/dist/processing/layouts/index.d.ts +8 -0
  266. package/dist/processing/layouts/sankeyLayout.d.ts +8 -0
  267. package/dist/processing/layouts/simpleLayouts.d.ts +7 -0
  268. package/dist/processing/layouts/types.d.ts +17 -0
  269. package/dist/processing/networkDefaults.d.ts +36 -0
  270. package/dist/realtime/BinAccumulator.d.ts +8 -0
  271. package/dist/realtime/IncrementalExtent.d.ts +13 -0
  272. package/dist/realtime/RingBuffer.d.ts +19 -0
  273. package/dist/realtime/renderers/barRenderer.d.ts +2 -0
  274. package/dist/realtime/renderers/candlestickRenderer.d.ts +2 -0
  275. package/dist/realtime/renderers/lineRenderer.d.ts +2 -0
  276. package/dist/realtime/renderers/swarmRenderer.d.ts +2 -0
  277. package/dist/realtime/renderers/types.d.ts +9 -0
  278. package/dist/realtime/renderers/waterfallRenderer.d.ts +3 -0
  279. package/dist/realtime/types.d.ts +113 -0
  280. package/dist/realtime.js +7072 -0
  281. package/dist/realtime.js.map +1 -0
  282. package/dist/realtime.min.js +1 -0
  283. package/dist/realtime.module.js +7043 -0
  284. package/dist/realtime.module.js.map +1 -0
  285. package/dist/realtime.module.min.js +1 -0
  286. package/dist/semiotic-ai.d.ts +36 -0
  287. package/dist/semiotic-ai.js +13323 -0
  288. package/dist/semiotic-ai.js.map +1 -0
  289. package/dist/semiotic-ai.min.js +1 -0
  290. package/dist/semiotic-ai.module.js +13264 -0
  291. package/dist/semiotic-ai.module.js.map +1 -0
  292. package/dist/semiotic-ai.module.min.js +1 -0
  293. package/dist/semiotic-data.d.ts +5 -0
  294. package/dist/semiotic-data.js +141 -0
  295. package/dist/semiotic-data.js.map +1 -0
  296. package/dist/semiotic-data.min.js +1 -0
  297. package/dist/semiotic-data.module.js +136 -0
  298. package/dist/semiotic-data.module.js.map +1 -0
  299. package/dist/semiotic-data.module.min.js +1 -0
  300. package/dist/semiotic-network.d.ts +23 -0
  301. package/dist/semiotic-ordinal.d.ts +19 -0
  302. package/dist/semiotic-realtime.d.ts +22 -0
  303. package/dist/semiotic-server.d.ts +1 -0
  304. package/dist/semiotic-xy.d.ts +21 -0
  305. package/dist/semiotic.d.ts +41 -28
  306. package/dist/semiotic.js +16257 -13130
  307. package/dist/semiotic.js.map +1 -0
  308. package/dist/semiotic.min.js +1 -0
  309. package/dist/semiotic.module.js +16198 -13100
  310. package/dist/semiotic.module.js.map +1 -0
  311. package/dist/semiotic.module.min.js +1 -0
  312. package/dist/server/renderToStaticSVG.d.ts +9 -0
  313. package/dist/server.js +5191 -0
  314. package/dist/server.js.map +1 -0
  315. package/dist/server.min.js +1 -0
  316. package/dist/server.module.js +5166 -0
  317. package/dist/server.module.js.map +1 -0
  318. package/dist/server.module.min.js +1 -0
  319. package/dist/store/SelectionStore.d.ts +29 -0
  320. package/dist/store/ThemeStore.d.ts +26 -0
  321. package/dist/store/useSelection.d.ts +66 -0
  322. package/dist/stream/CanvasHitTester.d.ts +18 -0
  323. package/dist/stream/DataSourceAdapter.d.ts +32 -0
  324. package/dist/stream/MarginalGraphics.d.ts +19 -0
  325. package/dist/stream/NetworkCanvasHitTester.d.ts +14 -0
  326. package/dist/stream/NetworkPipelineStore.d.ts +74 -0
  327. package/dist/stream/NetworkSVGOverlay.d.ts +40 -0
  328. package/dist/stream/NetworkSceneGraph.d.ts +14 -0
  329. package/dist/stream/OrdinalCanvasHitTester.d.ts +9 -0
  330. package/dist/stream/OrdinalPipelineStore.d.ts +65 -0
  331. package/dist/stream/OrdinalSVGOverlay.d.ts +34 -0
  332. package/dist/stream/ParticlePool.d.ts +28 -0
  333. package/dist/stream/PipelineStore.d.ts +161 -0
  334. package/dist/stream/SVGOverlay.d.ts +37 -0
  335. package/dist/stream/SceneGraph.d.ts +16 -0
  336. package/dist/stream/StreamNetworkFrame.d.ts +4 -0
  337. package/dist/stream/StreamOrdinalFrame.d.ts +4 -0
  338. package/dist/stream/StreamXYFrame.d.ts +4 -0
  339. package/dist/stream/accessorUtils.d.ts +2 -0
  340. package/dist/stream/index.d.ts +16 -0
  341. package/dist/stream/layouts/chordLayoutPlugin.d.ts +8 -0
  342. package/dist/stream/layouts/forceLayoutPlugin.d.ts +9 -0
  343. package/dist/stream/layouts/hierarchyLayoutPlugin.d.ts +17 -0
  344. package/dist/stream/layouts/index.d.ts +11 -0
  345. package/dist/stream/layouts/sankeyLayoutPlugin.d.ts +8 -0
  346. package/dist/stream/networkTypes.d.ts +346 -0
  347. package/dist/stream/ordinalSceneBuilders/barScene.d.ts +4 -0
  348. package/dist/stream/ordinalSceneBuilders/connectorScene.d.ts +3 -0
  349. package/dist/stream/ordinalSceneBuilders/pieScene.d.ts +3 -0
  350. package/dist/stream/ordinalSceneBuilders/pointScene.d.ts +4 -0
  351. package/dist/stream/ordinalSceneBuilders/statisticalScene.d.ts +6 -0
  352. package/dist/stream/ordinalSceneBuilders/timelineScene.d.ts +3 -0
  353. package/dist/stream/ordinalSceneBuilders/types.d.ts +21 -0
  354. package/dist/stream/ordinalTypes.d.ts +225 -0
  355. package/dist/stream/renderers/areaCanvasRenderer.d.ts +7 -0
  356. package/dist/stream/renderers/barCanvasRenderer.d.ts +7 -0
  357. package/dist/stream/renderers/boxplotCanvasRenderer.d.ts +2 -0
  358. package/dist/stream/renderers/candlestickCanvasRenderer.d.ts +2 -0
  359. package/dist/stream/renderers/connectorCanvasRenderer.d.ts +2 -0
  360. package/dist/stream/renderers/heatmapCanvasRenderer.d.ts +6 -0
  361. package/dist/stream/renderers/lineCanvasRenderer.d.ts +8 -0
  362. package/dist/stream/renderers/networkArcRenderer.d.ts +5 -0
  363. package/dist/stream/renderers/networkCircleRenderer.d.ts +5 -0
  364. package/dist/stream/renderers/networkEdgeRenderer.d.ts +10 -0
  365. package/dist/stream/renderers/networkParticleRenderer.d.ts +11 -0
  366. package/dist/stream/renderers/networkRectRenderer.d.ts +5 -0
  367. package/dist/stream/renderers/pointCanvasRenderer.d.ts +7 -0
  368. package/dist/stream/renderers/swarmCanvasRenderer.d.ts +7 -0
  369. package/dist/stream/renderers/types.d.ts +7 -0
  370. package/dist/stream/renderers/violinCanvasRenderer.d.ts +2 -0
  371. package/dist/stream/renderers/waterfallCanvasRenderer.d.ts +8 -0
  372. package/dist/stream/renderers/wedgeCanvasRenderer.d.ts +2 -0
  373. package/dist/stream/types.d.ts +307 -0
  374. package/dist/types/annotationTypes.d.ts +13 -18
  375. package/dist/types/canvasTypes.d.ts +1 -1
  376. package/dist/types/generalTypes.d.ts +41 -36
  377. package/dist/types/interactionTypes.d.ts +7 -9
  378. package/dist/types/legendTypes.d.ts +2 -2
  379. package/dist/types/networkTypes.d.ts +40 -30
  380. package/dist/types/ordinalTypes.d.ts +27 -18
  381. package/dist/types/xyTypes.d.ts +1 -95
  382. package/dist/visualizationLayerBehavior/axis.d.ts +3 -5
  383. package/dist/visualizationLayerBehavior/general.d.ts +8 -12
  384. package/dist/xy.js +6993 -0
  385. package/dist/xy.js.map +1 -0
  386. package/dist/xy.min.js +1 -0
  387. package/dist/xy.module.js +6957 -0
  388. package/dist/xy.module.js.map +1 -0
  389. package/dist/xy.module.min.js +1 -0
  390. package/package.json +123 -67
  391. package/dist/AnnotationLayer/helpers.d.ts +0 -6
  392. package/dist/AnnotationLayer/index.d.ts +0 -2
  393. package/dist/FacetController.d.ts +0 -12
  394. package/dist/Frame.d.ts +0 -2
  395. package/dist/InteractionLayer.d.ts +0 -3
  396. package/dist/Mark/Mark.d.ts +0 -3
  397. package/dist/Mark/Mark.types.d.ts +0 -10
  398. package/dist/Mark/constants/markTransition.d.ts +0 -10
  399. package/dist/Mark/markBehavior/drawing.d.ts +0 -13
  400. package/dist/MiniMap.d.ts +0 -14
  401. package/dist/MinimapXYFrame.d.ts +0 -10
  402. package/dist/NetworkFrame.d.ts +0 -4
  403. package/dist/OrdinalFrame.d.ts +0 -4
  404. package/dist/ResponsiveFrame.d.ts +0 -22
  405. package/dist/ResponsiveMinimapXYFrame.d.ts +0 -6
  406. package/dist/ResponsiveNetworkFrame.d.ts +0 -6
  407. package/dist/ResponsiveOrdinalFrame.d.ts +0 -6
  408. package/dist/ResponsiveXYFrame.d.ts +0 -6
  409. package/dist/SpanOrDiv.d.ts +0 -10
  410. package/dist/SparkFrame.d.ts +0 -14
  411. package/dist/SparkNetworkFrame.d.ts +0 -5
  412. package/dist/SparkOrdinalFrame.d.ts +0 -5
  413. package/dist/SparkXYFrame.d.ts +0 -5
  414. package/dist/VisualizationLayer.d.ts +0 -33
  415. package/dist/XYFrame.d.ts +0 -4
  416. package/dist/annotationRules/orframeRules.d.ts +0 -105
  417. package/dist/components/Annotation.d.ts +0 -3
  418. package/dist/components/AnnotationLayer/AnnotationLayer.d.ts +0 -26
  419. package/dist/components/Axis/Axis.d.ts +0 -7
  420. package/dist/components/Axis/axisTitle.d.ts +0 -10
  421. package/dist/components/Axis/index.d.ts +0 -2
  422. package/dist/components/Axis/summaryGraphic.d.ts +0 -17
  423. package/dist/components/Brush.d.ts +0 -12
  424. package/dist/components/DividedLine.d.ts +0 -16
  425. package/dist/components/FacetController.d.ts +0 -12
  426. package/dist/components/Frame.d.ts +0 -2
  427. package/dist/components/InteractionLayer.d.ts +0 -3
  428. package/dist/components/Legend.d.ts +0 -3
  429. package/dist/components/Mark/Mark.d.ts +0 -3
  430. package/dist/components/Mark/Mark.types.d.ts +0 -10
  431. package/dist/components/Mark/markBehavior/drawing.d.ts +0 -13
  432. package/dist/components/MiniMap.d.ts +0 -14
  433. package/dist/components/MinimapXYFrame.d.ts +0 -10
  434. package/dist/components/NetworkFrame.d.ts +0 -4
  435. package/dist/components/OrdinalFrame.d.ts +0 -4
  436. package/dist/components/ResponsiveFrame.d.ts +0 -22
  437. package/dist/components/ResponsiveMinimapXYFrame.d.ts +0 -6
  438. package/dist/components/ResponsiveNetworkFrame.d.ts +0 -6
  439. package/dist/components/ResponsiveOrdinalFrame.d.ts +0 -6
  440. package/dist/components/ResponsiveXYFrame.d.ts +0 -6
  441. package/dist/components/SpanOrDiv.d.ts +0 -10
  442. package/dist/components/SparkFrame.d.ts +0 -14
  443. package/dist/components/SparkNetworkFrame.d.ts +0 -5
  444. package/dist/components/SparkOrdinalFrame.d.ts +0 -5
  445. package/dist/components/SparkXYFrame.d.ts +0 -5
  446. package/dist/components/TooltipPositioner/index.d.ts +0 -7
  447. package/dist/components/VisualizationLayer.d.ts +0 -33
  448. package/dist/components/XYFrame.d.ts +0 -4
  449. package/dist/components/annotationLayerBehavior/annotationHandling.d.ts +0 -19
  450. package/dist/components/annotationLayerBehavior/d3labeler.d.ts +0 -9
  451. package/dist/components/annotationRules/baseRules.d.ts +0 -25
  452. package/dist/components/annotationRules/networkframeRules.d.ts +0 -48
  453. package/dist/components/annotationRules/orframeRules.d.ts +0 -105
  454. package/dist/components/annotationRules/xyframeRules.d.ts +0 -117
  455. package/dist/components/batchWork.d.ts +0 -6
  456. package/dist/components/constants/coordinateNames.d.ts +0 -8
  457. package/dist/components/constants/frame_props.d.ts +0 -4
  458. package/dist/components/constants/jsx.d.ts +0 -19
  459. package/dist/components/data/dataFunctions.d.ts +0 -46
  460. package/dist/components/data/multiAccessorUtils.d.ts +0 -1
  461. package/dist/components/data/unflowedFunctions.d.ts +0 -1
  462. package/dist/components/generic_utilities/functions.d.ts +0 -1
  463. package/dist/components/index.d.ts +0 -125
  464. package/dist/components/interactionLayerBehavior/InteractionCanvas.d.ts +0 -20
  465. package/dist/components/processing/InteractionItems.d.ts +0 -12
  466. package/dist/components/processing/network.d.ts +0 -114
  467. package/dist/components/processing/ordinal.d.ts +0 -102
  468. package/dist/components/processing/xyDrawing.d.ts +0 -135
  469. package/dist/components/semiotic.d.ts +0 -35
  470. package/dist/components/store/TooltipStore.d.ts +0 -2
  471. package/dist/components/store/createStore.d.ts +0 -1
  472. package/dist/components/svg/SvgHelper.d.ts +0 -37
  473. package/dist/components/svg/areaDrawing.d.ts +0 -31
  474. package/dist/components/svg/ckmeans.d.ts +0 -69
  475. package/dist/components/svg/frameFunctions.d.ts +0 -119
  476. package/dist/components/svg/lineDrawing.d.ts +0 -99
  477. package/dist/components/svg/networkDrawing.d.ts +0 -134
  478. package/dist/components/svg/pieceDrawing.d.ts +0 -13
  479. package/dist/components/svg/pieceLayouts.d.ts +0 -71
  480. package/dist/components/svg/summaryLayouts.d.ts +0 -74
  481. package/dist/components/types/annotationTypes.d.ts +0 -140
  482. package/dist/components/types/canvasTypes.d.ts +0 -9
  483. package/dist/components/types/generalTypes.d.ts +0 -236
  484. package/dist/components/types/interactionTypes.d.ts +0 -74
  485. package/dist/components/types/legendTypes.d.ts +0 -20
  486. package/dist/components/types/networkTypes.d.ts +0 -165
  487. package/dist/components/types/ordinalTypes.d.ts +0 -103
  488. package/dist/components/types/xyTypes.d.ts +0 -118
  489. package/dist/components/useBoundingRect.d.ts +0 -2
  490. package/dist/components/useDerivedStateFromProps.d.ts +0 -1
  491. package/dist/components/useLegacyUnmountCallback.d.ts +0 -1
  492. package/dist/components/visualizationLayerBehavior/axis.d.ts +0 -38
  493. package/dist/components/visualizationLayerBehavior/general.d.ts +0 -84
  494. package/dist/constants/jsx.d.ts +0 -19
  495. package/dist/interactionLayerBehavior/InteractionCanvas.d.ts +0 -20
  496. package/dist/processing/network.d.ts +0 -114
  497. package/dist/processing/ordinal.d.ts +0 -102
  498. package/dist/processing/xyDrawing.d.ts +0 -135
  499. package/dist/setupTests.d.ts +0 -1
  500. package/dist/svg/SvgHelper.d.ts +0 -37
  501. package/dist/svg/ckmeans.d.ts +0 -69
  502. package/dist/svg/frameFunctions.d.ts +0 -119
  503. package/dist/svg/networkDrawing.d.ts +0 -134
  504. package/dist/svg/pieceDrawing.d.ts +0 -13
  505. package/dist/svg/pieceLayouts.d.ts +0 -71
  506. package/dist/svg/summaryLayouts.d.ts +0 -74
  507. package/dist/useDerivedStateFromProps.d.ts +0 -1
  508. package/dist/useLegacyUnmountCallback.d.ts +0 -1
@@ -0,0 +1 @@
1
+ import*as t from"react";import e,{useMemo as n,forwardRef as o,useRef as a,useState as i,useCallback as r,useEffect as s,useImperativeHandle as l,createContext as c,useContext as u,useLayoutEffect as d,useId as h}from"react";import{scaleBand as p,scaleLinear as f,scaleOrdinal as m}from"d3-scale";import{quantile as y,sum as g}from"d3-array";import x from"labella";import v from"regression";import{curveCardinal as b}from"d3-shape";import{contourDensity as E}from"d3-contour";import{hexbin as k}from"d3-hexbin";import{schemeCategory10 as M,interpolatePlasma as w,interpolateViridis as A,interpolatePurples as S,interpolateOranges as P,interpolateGreens as $,interpolateReds as j,interpolateBlues as _,schemeSet3 as O,schemeTableau10 as D}from"d3-scale-chromatic";const N=5e3;class T{constructor(t){this.lastBoundedData=null,this.chunkTimer=0,this.callback=t}setBoundedData(t){if(t===this.lastBoundedData)return;if(this.lastBoundedData=t,this.chunkTimer&&(cancelAnimationFrame(this.chunkTimer),this.chunkTimer=0),5e3>=t.length)return void this.callback({inserts:t,bounded:!0});this.callback({inserts:t.slice(0,N),bounded:!0,totalSize:t.length});let e=N;const n=()=>{if(e>=t.length)return;if(t!==this.lastBoundedData)return;const o=Math.min(e+N,t.length);this.callback({inserts:t.slice(e,o),bounded:!1}),e=o,this.chunkTimer=t.length>e?requestAnimationFrame(n):0};this.chunkTimer=requestAnimationFrame(n)}push(t){this.callback({inserts:[t],bounded:!1})}pushMany(t){0!==t.length&&this.callback({inserts:t,bounded:!1})}clear(){this.chunkTimer&&(cancelAnimationFrame(this.chunkTimer),this.chunkTimer=0),this.lastBoundedData=null}}class C{constructor(t){if(this._capacity=t,this.head=0,this._size=0,1>t)throw Error("RingBuffer capacity must be at least 1");this.buffer=Array(t)}push(t){let e;return this._size===this._capacity?e=this.buffer[this.head]:this._size++,this.buffer[this.head]=t,this.head=(this.head+1)%this._capacity,e}pushMany(t){const e=[];for(const n of t){const t=this.push(n);void 0!==t&&e.push(t)}return e}get(t){if(t>=0&&this._size>t)return this.buffer[(this.head-this._size+t+this._capacity)%this._capacity]}peek(){if(0!==this._size)return this.buffer[(this.head-1+this._capacity)%this._capacity]}peekOldest(){if(0!==this._size)return this.buffer[(this.head-this._size+this._capacity)%this._capacity]}[Symbol.iterator](){let t=0;const e=this;return{next:()=>e._size>t?{done:!1,value:e.get(t++)}:{done:!0,value:void 0}}}toArray(){const t=[];for(const e of this)t.push(e);return t}resize(t){if(1>t)throw Error("RingBuffer capacity must be at least 1");const e=this.toArray(),n=[];for(;e.length>t;)n.push(e.shift());this._capacity=t,this.buffer=Array(t),this.head=0,this._size=0;for(const t of e)this.push(t);return n}clear(){this.buffer=Array(this._capacity),this.head=0,this._size=0}get size(){return this._size}get capacity(){return this._capacity}get full(){return this._size===this._capacity}}class z{constructor(){this._min=1/0,this._max=-1/0,this._dirty=!1}push(t){Number.isNaN(t)||(this._min>t&&(this._min=t),t>this._max&&(this._max=t))}evict(t){t!==this._min&&t!==this._max||(this._dirty=!0)}recalculate(t,e){this._min=1/0,this._max=-1/0;for(const n of t){const t=e?e(n):n;Number.isNaN(t)||(this._min>t&&(this._min=t),t>this._max&&(this._max=t))}this._dirty=!1}clear(){this._min=1/0,this._max=-1/0,this._dirty=!1}get extent(){return[this._min,this._max]}get min(){return this._min}get max(){return this._max}get dirty(){return this._dirty}}function R(t,e){if("function"==typeof t)return e=>+t(e);const n=t||e;return t=>+t[n]}function B(t,e){return"function"==typeof t?t:t?e=>e[t]+"":e?t=>t[e]+"":void 0}function F(t,e,n,o,a,i,r){return{type:"rect",x:t,y:e,w:n,h:o,style:a,datum:i,group:r}}function L(t,e){const{columns:n,config:o,resolvePieceStyle:a}=t,i=[],r=Math.min(e.width,e.height)/2-4,s="donut"===o.chartType?o.innerRadius||60:0,l=-Math.PI/2+(o.startAngle||0)*Math.PI/180,c=2*Math.PI;for(const t of Object.values(n)){const e=l+t.pctStart*c,n=l+(t.pctStart+t.pct)*c,o=a(t.pieceData[0],t.name);i.push({type:"wedge",cx:0,cy:0,innerRadius:s,outerRadius:r,startAngle:e,endAngle:n,style:o,datum:t.pieceData,category:t.name})}return i}const I={bar:function(t,e){const{scales:n,columns:o,config:a,getR:i,getStack:r,resolvePieceStyle:s}=t,{r:l,projection:c}=n,u=[],d="vertical"===c,h="horizontal"===c,p=a.normalize;for(const t of Object.values(o)){const e=new Map;for(const n of t.pieceData){const t=r?r(n):"_default";e.has(t)||e.set(t,{total:0,pieces:[]});const o=e.get(t);o.total+=i(n),o.pieces.push(n)}let n=0;if(p)for(const t of e.values())n+=Math.abs(t.total);let o=0,a=0;for(const[i,c]of e){let e=c.total;p&&n>0&&(e/=n);const f=s(c.pieces[0],r?i:t.name),m=Object.assign(Object.assign({},c.pieces[0]),{__aggregateValue:c.total,__pieceCount:c.pieces.length,category:t.name});if(d){const n=l(0>e?a:o+e),r=0>e?l(a+e)-l(a):l(o)-l(o+e);u.push(F(t.x,n,t.width,Math.abs(r),f,m,i)),0>e?a+=e:o+=e}else if(h){const n=l(0>e?a+e:o),r=0>e?l(a)-l(a+e):l(o+e)-l(o);u.push(F(n,t.x,Math.abs(r),t.width,f,m,i)),0>e?a+=e:o+=e}}}return u},clusterbar:function(t,e){const{scales:n,columns:o,getR:a,getGroup:i,resolvePieceStyle:r}=t,{r:s,projection:l}=n,c=[],u="vertical"===l,d=[],h=new Set;for(const t of Object.values(o))for(const e of t.pieceData){const t=i?i(e):"_default";h.has(t)||(h.add(t),d.push(t))}const p=d.length||1;for(const t of Object.values(o)){const e=t.width/p,n=new Map;for(const e of t.pieceData){const t=i?i(e):"_default";n.has(t)||n.set(t,[]),n.get(t).push(e)}for(let o=0;d.length>o;o++){const i=n.get(d[o])||[];for(const n of i){const i=a(n),l=r(n,t.name);if(u){const a=t.x+o*e,r=s(0),u=s(i);c.push(F(a,Math.min(r,u),e,Math.abs(r-u),l,n,d[o]))}else{const a=t.x+o*e,r=s(0),u=s(i);c.push(F(Math.min(r,u),a,Math.abs(u-r),e,l,n,d[o]))}}}}return c},point:function(t,e){var n,o;const{scales:a,columns:i,getR:r,multiScales:s,resolvePieceStyle:l}=t,{r:c,projection:u}=a,d=[],h="vertical"===u,p="radial"===u,f=s.length>0,m=2*Math.PI,y=-Math.PI/2;for(const t of Object.values(i))for(const e of t.pieceData){const a=null!==(n=e.__rIndex)&&void 0!==n?n:0,i=null!==(o=e.__rValue)&&void 0!==o?o:r(e),u=f&&s[a]||c,g=l(e,t.name),x=g.r||5;let v,b;if(p){const e=y+(t.pctStart+t.pct/2)*m,n=u(i);v=Math.cos(e)*n,b=Math.sin(e)*n}else h?(v=t.middle,b=u(i)):(v=u(i),b=t.middle);d.push({type:"point",x:v,y:b,r:x,style:g,datum:e})}return d},swarm:function(t,e){const{scales:n,columns:o,getR:a,resolvePieceStyle:i}=t,{r:r,projection:s}=n,l=[],c="vertical"===s;for(const t of Object.values(o)){const e=t.width/2;for(let n=0;t.pieceData.length>n;n++){const o=t.pieceData[n],s=a(o),u=i(o,t.name),d=u.r||4,h=(7919*n%100/100-.5)*e*.8,p=c?t.middle+h:r(s),f=c?r(s):t.middle+h;l.push({type:"point",x:p,y:f,r:d,style:u,datum:o})}}return l},pie:L,donut:L,boxplot:function(t,e){var n,o,a,i,r;const{scales:s,columns:l,config:c,getR:u,resolveSummaryStyle:d}=t,{r:h,projection:p}=s,f=[],m="vertical"===p,g=!1!==c.showOutliers;for(const t of Object.values(l)){const e=t.pieceData.map(t=>u(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(0===e.length)continue;const s=e[0],l=e[e.length-1],c=null!==(n=y(e,.25))&&void 0!==n?n:s,p=null!==(o=y(e,.5))&&void 0!==o?o:(s+l)/2,x=null!==(a=y(e,.75))&&void 0!==a?a:l,v=x-c,b=c-1.5*v,E=x+1.5*v,k=null!==(i=e.find(t=>t>=b))&&void 0!==i?i:s,M=null!==(r=[...e].reverse().find(t=>E>=t))&&void 0!==r?r:l,w=d(t.pieceData[0],t.name),A=[];if(g)for(const e of t.pieceData){const n=u(e);if(b>n||n>E){const o=m?t.middle:h(n),a=m?h(n):t.middle;A.push({px:o,py:a,value:n,datum:e})}}if(f.push({type:"boxplot",x:m?t.middle:0,y:m?0:t.middle,projection:m?"vertical":"horizontal",columnWidth:.6*t.width,minPos:h(k),q1Pos:h(c),medianPos:h(p),q3Pos:h(x),maxPos:h(M),stats:{min:k,q1:c,median:p,q3:x,max:M},style:w,datum:t.pieceData,category:t.name,outliers:A}),g)for(const t of A)f.push({type:"point",x:t.px,y:t.py,r:3,style:{fill:w.fill||"#999",opacity:.6},datum:t.datum})}return f},violin:function(t,e){var n,o,a;const{scales:i,columns:r,config:s,getR:l,resolveSummaryStyle:c}=t,{r:u,projection:d}=i,h=[],p="vertical"===d,f=s.bins||20,m=!1!==s.showIQR;for(const t of Object.values(r)){const e=t.pieceData.map(t=>l(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(2>e.length)continue;const i=e[0],r=e[e.length-1],s=(r-i)/f||1,d=Array(f).fill(0);for(const t of e)d[Math.min(Math.floor((t-i)/s),f-1)]++;const g=Math.max(...d,1),x=t.width/2*.9;let v="";if(p){for(let e=0;f>e;e++){const n=u(i+(e+.5)*s),o=d[e]/g*x;v+=0===e?`M ${t.middle+o} ${n}`:` L ${t.middle+o} ${n}`}for(let e=f-1;e>=0;e--){const n=u(i+(e+.5)*s);v+=` L ${t.middle-d[e]/g*x} ${n}`}v+=" Z"}else{for(let e=0;f>e;e++){const n=u(i+(e+.5)*s),o=d[e]/g*x;v+=0===e?`M ${n} ${t.middle-o}`:` L ${n} ${t.middle-o}`}for(let e=f-1;e>=0;e--)v+=` L ${u(i+(e+.5)*s)} ${t.middle+d[e]/g*x}`;v+=" Z"}const b=c(t.pieceData[0],t.name);let E;if(m&&e.length>=4){const t=null!==(n=y(e,.25))&&void 0!==n?n:i,s=null!==(o=y(e,.5))&&void 0!==o?o:(i+r)/2,l=null!==(a=y(e,.75))&&void 0!==a?a:r;E={q1Pos:u(t),medianPos:u(s),q3Pos:u(l)}}const k=p?{x:t.x,y:Math.min(u(r),u(i)),width:t.width,height:Math.abs(u(r)-u(i))}:{x:Math.min(u(i),u(r)),y:t.x,width:Math.abs(u(r)-u(i)),height:t.width};h.push({type:"violin",pathString:v,translateX:0,translateY:0,bounds:k,iqrLine:E,style:b,datum:t.pieceData,category:t.name})}return h},histogram:function(t,e){const{scales:n,columns:o,config:a,getR:i,resolveSummaryStyle:r}=t,{r:s}=n,l=[],c=a.bins||25,u=a.normalize;for(const t of Object.values(o)){const e=t.pieceData.map(t=>i(t)).filter(t=>null!=t&&!isNaN(t));if(0===e.length)continue;const n=Math.min(...e),o=(Math.max(...e)-n)/c||1,a=Array(c).fill(0);for(const t of e)a[Math.min(Math.floor((t-n)/o),c-1)]++;const d=e.length,h=Math.max(...a,1),p=r(t.pieceData[0],t.name);for(let e=0;c>e;e++){if(0===a[e])continue;const i=(u?a[e]/d:a[e]/h)*t.width*.9,r=s(n+e*o),c=s(n+(e+1)*o);l.push(F(Math.min(r,c),t.x+t.width-i,Math.abs(c-r),i,p,{bin:e,count:a[e],range:[n+e*o,n+(e+1)*o],category:t.name},t.name))}}return l},ridgeline:function(t,e){var n;const{scales:o,columns:a,config:i,getR:r,resolveSummaryStyle:s}=t,{r:l,projection:c}=o,u=[],d=i.bins||20,h="horizontal"===c,p=i.amplitude||1.5;for(const t of Object.values(a)){const e=t.pieceData.map(t=>r(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(2>e.length)continue;const o=e[0],a=e[e.length-1],i=(a-o)/d||1,c=Array(d).fill(0);for(const t of e)c[Math.min(Math.floor((t-o)/i),d-1)]++;const f=Math.max(...c,1),m=s(t.pieceData[0],t.name),y=t.width*p;let g="";if(h){const e=t.x+t.width;g=`M ${l(o)} ${e}`;for(let t=0;d>t;t++)g+=` L ${l(o+(t+.5)*i)} ${e-c[t]/f*y}`;g+=` L ${l(a)} ${e} Z`}else{const e=t.x;g=`M ${e} ${l(o)}`;for(let t=0;d>t;t++){const n=l(o+(t+.5)*i);g+=` L ${e+c[t]/f*y} ${n}`}g+=` L ${e} ${l(a)} Z`}const x=h?{x:Math.min(l(o),l(a)),y:t.x,width:Math.abs(l(a)-l(o)),height:t.width}:{x:t.x,y:Math.min(l(a),l(o)),width:t.width,height:Math.abs(l(a)-l(o))};u.push({type:"violin",pathString:g,translateX:0,translateY:0,bounds:x,style:Object.assign(Object.assign({},m),{fillOpacity:null!==(n=m.fillOpacity)&&void 0!==n?n:.5}),datum:t.pieceData,category:t.name})}return u},timeline:function(t,e){const{scales:n,columns:o,getRawRange:a,resolvePieceStyle:i}=t,{r:r,projection:s}=n,l=[],c="horizontal"===s;for(const t of Object.values(o))for(const e of t.pieceData){const n=a(e);if(!n)continue;const[o,s]=n,u=i(e,t.name);if(c){const n=r(Math.min(o,s)),a=r(Math.max(o,s));l.push(F(n,t.x,a-n,t.width,u,e,t.name))}else{const n=r(Math.max(o,s)),a=r(Math.min(o,s));l.push(F(t.x,n,t.width,a-n,u,e,t.name))}}return l}};class W{constructor(t){this.rExtent=new z,this.rExtents=[],this.rAccessors=[],this.categories=new Set,this._colorSchemeMap=null,this._colorSchemeIndex=0,this.timestampBuffer=null,this.activeTransition=null,this.prevPositionMap=new Map,this.lastIngestTime=0,this.scales=null,this.multiScales=[],this.scene=[],this.columns={},this.version=0,this.config=t,this.buffer=new C(t.windowSize),this.getO=B(t.oAccessor||t.categoryAccessor,"category");const e="streaming"===t.runtimeMode,n=t.rAccessor;Array.isArray(n)?(this.rAccessors=n.map(t=>R(t,"value")),this.getR=this.rAccessors[0],this.rExtents=n.map(()=>new z)):(this.getR=R(e&&(t.timeAccessor||t.valueAccessor)&&t.valueAccessor||n,"value"),this.rAccessors=[this.getR],this.rExtents=[this.rExtent]),this.getStack=B(t.stackBy),this.getGroup=B(t.groupBy),this.getColor=B(t.colorAccessor),this.getConnector=B(t.connectorAccessor),t.pulse&&(this.timestampBuffer=new C(t.windowSize))}ingest(t){const e="undefined"!=typeof performance?performance.now():Date.now();if(this.lastIngestTime=e,t.bounded){this.buffer.clear(),this.rExtent.clear(),this.categories.clear(),this.timestampBuffer&&this.timestampBuffer.clear();const n=t.totalSize||t.inserts.length;n>this.buffer.capacity&&(this.buffer.resize(n),this.timestampBuffer&&n>this.timestampBuffer.capacity&&this.timestampBuffer.resize(n));for(const n of t.inserts)this.buffer.push(n),this.timestampBuffer&&this.timestampBuffer.push(e),this.categories.add(this.getO(n)),this.pushValueExtent(n)}else for(const n of t.inserts){const t=this.buffer.push(n);this.timestampBuffer&&this.timestampBuffer.push(e),this.categories.add(this.getO(n)),this.pushValueExtent(n),null!=t&&this.evictValueExtent(t)}return!0}pushValueExtent(t){if("timeline"===this.config.chartType){const e=this.getRawRange(t);e&&(this.rExtent.push(e[0]),this.rExtent.push(e[1]))}else if(this.rAccessors.length>1){for(let e=0;this.rAccessors.length>e;e++)this.rExtents[e].push(this.rAccessors[e](t));this.rExtent.push(this.getR(t))}else this.rExtent.push(this.getR(t))}evictValueExtent(t){if("timeline"===this.config.chartType){const e=this.getRawRange(t);e&&(this.rExtent.evict(e[0]),this.rExtent.evict(e[1]))}else if(this.rAccessors.length>1){for(let e=0;this.rAccessors.length>e;e++)this.rExtents[e].evict(this.rAccessors[e](t));this.rExtent.evict(this.getR(t))}else this.rExtent.evict(this.getR(t))}getRawRange(t){const e=this.config.rAccessor;if(!e)return null;const n="function"==typeof e?e(t):t[e];return Array.isArray(n)&&n.length>=2?[+n[0],+n[1]]:null}computeScene(t){const{config:e,buffer:n}=this;if(0===n.size)return this.scales=null,this.scene=[],this.columns={},void this.version++;this.rExtent.dirty&&this.rExtent.recalculate(n,this.getR);const o=n.toArray(),a=e.projection||"vertical",i=e.oExtent||this.resolveCategories(o),r=this.computeValueDomain(o,i),s="horizontal"===a,l=null!=e.barPadding?e.barPadding/("vertical"===a?t.width:t.height):.1;let c,u;if("radial"===a){c=p().domain(i).range([0,1]).padding(0);const n=Math.min(t.width,t.height)/2,o=e.innerRadius||0;u=f().domain(r).range([o,n])}else s?(c=p().domain(i).range([0,t.height]).padding(l),u=f().domain(r).range([0,t.width])):(c=p().domain(i).range([0,t.width]).padding(l),u=f().domain(r).range([t.height,0]));this.scales={o:c,r:u,projection:a},this.multiScales=this.rAccessors.length>1&&e.multiAxis?this.rAccessors.map((o,a)=>{const i=this.rExtents[a];i.dirty&&i.recalculate(n,o);let[r,l]=i.extent;r===1/0&&(r=0,l=1);const c=l-r,u=c>0?c*(e.extentPadding||.05):1;return r-=u,l+=u,r>0&&(r=0),s?f().domain([r,l]).range([0,t.width]):f().domain([r,l]).range([t.height,0])}):[];let d=o;this.rAccessors.length>1&&(d=o.flatMap(t=>this.rAccessors.map((e,n)=>Object.assign(Object.assign({},t),{__rIndex:n,__rValue:e(t),__rName:this.resolveRAccessorName(n)})))),this.columns=this.buildColumns(d,i,c,a,t),this.config.transition&&this.scene.length>0&&this.snapshotPositions(),this.scene=this.buildSceneNodes(d,t),this.config.decay&&this.applyDecay(this.scene,o),this.config.pulse&&this.applyPulse(this.scene,o),this.config.transition&&this.prevPositionMap.size>0&&this.startTransition(),this.version++}resolveRAccessorName(t){const e=Array.isArray(this.config.rAccessor)?this.config.rAccessor[t]:this.config.rAccessor;return"string"==typeof e?e:"value"+t}resolveCategories(t){const e=Array.from(this.categories),n=this.config.oSort;if("streaming"===this.config.runtimeMode&&void 0===n)return e;if(!1===n)return e;if("function"==typeof n)return e.sort(n);const o=new Map;for(const e of t){const t=this.getO(e);o.set(t,(o.get(t)||0)+Math.abs(this.getR(e)))}return e.sort("asc"===n?(t,e)=>(o.get(t)||0)-(o.get(e)||0):(t,e)=>(o.get(e)||0)-(o.get(t)||0))}computeValueDomain(t,e){var n,o;const a=this.config.chartType,i=this.config.extentPadding||.05;if("radial"===this.config.projection&&("pie"===a||"donut"===a))return[0,1];let r=0,s=0;if("bar"===a&&this.getStack){const e=new Map,n=new Map;for(const o of t){const t=this.getO(o),a=this.getR(o);0>a?n.set(t,(n.get(t)||0)+a):e.set(t,(e.get(t)||0)+a)}for(const t of e.values())t>s&&(s=t);for(const t of n.values())r>t&&(r=t)}else if("bar"===a){const e=new Map;for(const n of t){const t=this.getO(n),o=this.getR(n);e.set(t,(e.get(t)||0)+o)}for(const t of e.values())t>s&&(s=t),r>t&&(r=t)}else if("clusterbar"===a)for(const e of t){const t=this.getR(e);t>s&&(s=t),r>t&&(r=t)}else{const t=this.rExtent.extent[0],e=this.rExtent.extent[1];t!==1/0&&(r=t),e!==-1/0&&(s=e)}this.config.rExtent&&(null!=this.config.rExtent[0]&&(r=this.config.rExtent[0]),null!=this.config.rExtent[1]&&(s=this.config.rExtent[1]));const l=s-r,c=l>0?l*i:1;return(null===(n=this.config.rExtent)||void 0===n?void 0:n[0])||(r-=c),(null===(o=this.config.rExtent)||void 0===o?void 0:o[1])||(s+=c),"bar"!==a&&"clusterbar"!==a||(r>0&&(r=0),0>s&&(s=0)),[r,s]}buildColumns(t,e,n,o,a){var i;const r={},s=new Map;for(const e of t){const t=this.getO(e);s.has(t)||s.set(t,[]),s.get(t).push(e)}let l=0;if("radial"===o)for(const e of t)l+=Math.abs(this.getR(e));const c=this.config.dynamicColumnWidth;let u=null;if(c&&"radial"!==o){u=new Map;let t=0;for(const n of e){const e=s.get(n)||[];let o;o="string"==typeof c?e.reduce((t,e)=>t+(Number(e[c])||0),0):c(e),u.set(n,o),t+=o}const i=("horizontal"===o?a.height:a.width)-n.padding()*n.step()*e.length;if(t>0)for(const[e,n]of u)u.set(e,n/t*i)}let d=0,h=0;for(const t of e){const e=s.get(t)||[],o=e.reduce((t,e)=>t+Math.abs(this.getR(e)),0),a=l>0?o/l:0;let c,p;u?(c=h,p=u.get(t)||n.bandwidth(),h+=p+n.padding()*n.step()):(c=null!==(i=n(t))&&void 0!==i?i:0,p=n.bandwidth()),r[t]={name:t,x:c,y:0,width:p,middle:c+p/2,padding:n.padding()*n.step(),pieceData:e,pct:a,pctStart:d},d+=a}return r}getSceneContext(){return{scales:this.scales,columns:this.columns,config:this.config,getR:this.getR,getStack:this.getStack,getGroup:this.getGroup,getColor:this.getColor,getConnector:this.getConnector,getO:this.getO,multiScales:this.multiScales,rAccessors:this.rAccessors,resolvePieceStyle:(t,e)=>this.resolvePieceStyle(t,e),resolveSummaryStyle:(t,e)=>this.resolveSummaryStyle(t,e),getRawRange:t=>this.getRawRange(t)}}buildSceneNodes(t,e){if(!this.scales)return[];const n=this.getSceneContext(),o=I[this.config.chartType];let a=o?o(n,e):[];if(this.getConnector&&this.scales){const t=function(t,e){const{scales:n,config:o,getConnector:a,getO:i}=t;if(!a||!n)return[];const r=[],{projection:s}=n,l=new Map;for(const t of e){if("point"!==t.type&&"rect"!==t.type)continue;const e=t.datum;if(!e)continue;const n=a(e);if(!n)continue;let o,r;"point"===t.type?(o=t.x,r=t.y):(o=t.x+t.w/2,r=t.y+("vertical"===s?0:t.h/2)),l.has(n)||l.set(n,[]),l.get(n).push({x:o,y:r,datum:e,category:i(e)})}const c=n.o.domain(),u=o.connectorStyle;for(const[t,e]of l)if(e.length>=2){e.sort((t,e)=>c.indexOf(t.category)-c.indexOf(e.category));for(let n=0;e.length-1>n;n++){const o=e[n],a=e[n+1],i="function"==typeof u?u(o.datum):u||{stroke:"#999",strokeWidth:1,opacity:.5};r.push({type:"connector",x1:o.x,y1:o.y,x2:a.x,y2:a.y,style:i,datum:o.datum,group:t})}}return r}(n,a);a=[...t,...a]}return a}resolvePieceStyle(t,e){return"function"==typeof this.config.pieceStyle?this.config.pieceStyle(t,e):this.config.pieceStyle&&"object"==typeof this.config.pieceStyle?this.config.pieceStyle:this.config.barColors&&e?{fill:this.config.barColors[e]||"#007bff"}:e?{fill:this.getColorFromScheme(e)}:{fill:"#007bff"}}getColorFromScheme(t){this._colorSchemeMap||(this._colorSchemeMap=new Map);const e=this._colorSchemeMap.get(t);if(e)return e;const n=Array.isArray(this.config.colorScheme)?this.config.colorScheme:["#4e79a7","#f28e2b","#e15759","#76b7b2","#59a14f","#edc948","#b07aa1","#ff9da7","#9c755f","#bab0ac"],o=n[this._colorSchemeIndex%n.length];return this._colorSchemeIndex++,this._colorSchemeMap.set(t,o),o}resolveSummaryStyle(t,e){return"function"==typeof this.config.summaryStyle?this.config.summaryStyle(t,e):this.config.summaryStyle&&"object"==typeof this.config.summaryStyle?this.config.summaryStyle:{fill:"#007bff",fillOpacity:.6,stroke:"#007bff",strokeWidth:1}}computeDecayOpacity(t,e){var n,o,a;const i=this.config.decay;if(!i||1>=e)return 1;const r=null!==(n=i.minOpacity)&&void 0!==n?n:.1,s=e-1-t;switch(i.type){case"linear":return r+(1-s/(e-1))*(1-r);case"exponential":{const t=null!==(o=i.halfLife)&&void 0!==o?o:e/2;return r+Math.pow(.5,s/t)*(1-r)}case"step":return(null!==(a=i.stepThreshold)&&void 0!==a?a:.5*e)>s?1:r;default:return 1}}applyDecay(t,e){var n,o;if(!this.config.decay)return;const a=e.length;if(1>=a)return;const i=new Map;for(let t=0;e.length>t;t++)i.set(e[t],t);for(const e of t){if("connector"===e.type||"violin"===e.type||"boxplot"===e.type||"wedge"===e.type)continue;const t=i.get(e.datum);if(null==t)continue;const r=this.computeDecayOpacity(t,a),s=null!==(o=null===(n=e.style)||void 0===n?void 0:n.opacity)&&void 0!==o?o:1;e.style=Object.assign(Object.assign({},e.style),{opacity:s*r})}}applyPulse(t,e){var n,o;if(!this.config.pulse||!this.timestampBuffer)return;const a="undefined"!=typeof performance?performance.now():Date.now(),i=null!==(n=this.config.pulse.duration)&&void 0!==n?n:500,r=null!==(o=this.config.pulse.color)&&void 0!==o?o:"rgba(255,255,255,0.6)",s=new Map;for(let t=0;e.length>t;t++)s.set(e[t],t);for(const e of t){if("connector"===e.type||"violin"===e.type||"boxplot"===e.type||"wedge"===e.type)continue;const t=s.get(e.datum);if(null==t)continue;const n=this.timestampBuffer.get(t);if(null==n)continue;const o=a-n;i>o&&(e._pulseIntensity=1-o/i,e._pulseColor=r)}}get hasActivePulses(){var t;if(!this.config.pulse||!this.timestampBuffer||0===this.timestampBuffer.size)return!1;const e="undefined"!=typeof performance?performance.now():Date.now(),n=null!==(t=this.config.pulse.duration)&&void 0!==t?t:500,o=this.timestampBuffer.peek();return null!=o&&n>e-o}snapshotPositions(){var t,e;this.prevPositionMap.clear();for(let n=0;this.scene.length>n;n++){const o=this.scene[n];if("point"===o.type)this.prevPositionMap.set("p:"+n,{x:o.x,y:o.y,r:o.r});else if("rect"===o.type){const a=`r:${o.group||""}:${null!==(e=null===(t=o.datum)||void 0===t?void 0:t.category)&&void 0!==e?e:n}`;this.prevPositionMap.set(a,{x:o.x,y:o.y,w:o.w,h:o.h})}}}startTransition(){var t,e,n,o,a;if(!this.config.transition||0===this.prevPositionMap.size)return;const i=null!==(t=this.config.transition.duration)&&void 0!==t?t:300;let r=!1;for(let t=0;this.scene.length>t;t++){const i=this.scene[t];let s=null;if("point"===i.type?s="p:"+t:"rect"===i.type&&(s=`r:${i.group||""}:${null!==(n=null===(e=i.datum)||void 0===e?void 0:e.category)&&void 0!==n?n:t}`),!s)continue;const l=this.prevPositionMap.get(s);l&&("point"===i.type?l.x===i.x&&l.y===i.y||(i._targetX=i.x,i._targetY=i.y,i.x=l.x,i.y=l.y,r=!0):"rect"===i.type&&(l.x===i.x&&l.y===i.y&&l.w===i.w&&l.h===i.h||(i._targetX=i.x,i._targetY=i.y,i._targetW=i.w,i._targetH=i.h,i.x=l.x,i.y=l.y,i.w=null!==(o=l.w)&&void 0!==o?o:i.w,i.h=null!==(a=l.h)&&void 0!==a?a:i.h,r=!0)))}r&&(this.activeTransition={startTime:"undefined"!=typeof performance?performance.now():Date.now(),duration:i})}advanceTransition(t){var e,n,o;if(!this.activeTransition)return!1;const a=Math.min((t-this.activeTransition.startTime)/this.activeTransition.duration,1),i="linear"===(null===(e=this.config.transition)||void 0===e?void 0:e.easing)?a:1-Math.pow(1-a,3);for(const t of this.scene)if("point"===t.type){if(void 0===t._targetX)continue;const e=this.prevPositionMap.get("p:0");if(!e)continue;t.x=e.x+(t._targetX-e.x)*i,t.y=e.y+(t._targetY-e.y)*i}else if("rect"===t.type){if(void 0===t._targetX)continue;const e=`r:${t.group||""}:${null!==(o=null===(n=t.datum)||void 0===n?void 0:n.category)&&void 0!==o?o:0}`,a=this.prevPositionMap.get(e);if(!a)continue;t.x=a.x+(t._targetX-a.x)*i,t.y=a.y+(t._targetY-a.y)*i,void 0!==a.w&&(t.w=a.w+(t._targetW-a.w)*i,t.h=a.h+(t._targetH-a.h)*i)}if(a>=1){for(const t of this.scene)if("point"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t._targetX=void 0,t._targetY=void 0}else if("rect"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t.w=t._targetW,t.h=t._targetH,t._targetX=void 0,t._targetY=void 0,t._targetW=void 0,t._targetH=void 0}return this.activeTransition=null,!1}return!0}getData(){return this.buffer.toArray()}clear(){this.buffer.clear(),this.rExtent.clear(),this.categories.clear(),this.timestampBuffer&&this.timestampBuffer.clear(),this.prevPositionMap.clear(),this.activeTransition=null,this.lastIngestTime=0,this.scales=null,this.scene=[],this.columns={},this.version++}get size(){return this.buffer.size}getOAccessor(){return this.getO}getRAccessor(){return this.getR}updateConfig(t){t.colorScheme!==this.config.colorScheme&&(this._colorSchemeMap=null,this._colorSchemeIndex=0),Object.assign(this.config,t)}}function V(t,e,n){return t.x>e||e>t.x+t.w||t.y>n||n>t.y+t.h?null:{datum:t.datum,x:t.x+t.w/2,y:t.y,distance:0,category:t.group}}function H(t,e,n){const o=e-t.x,a=n-t.y,i=Math.sqrt(o*o+a*a);return i>Math.max(t.r,5)?null:{datum:t.datum,x:t.x,y:t.y,distance:i}}function q(t,e,n){const o=e-t.cx,a=n-t.cy,i=Math.sqrt(o*o+a*a);if(t.innerRadius>i||i>t.outerRadius)return null;let r=Math.atan2(a,o);0>r&&(r+=2*Math.PI);let s=t.startAngle%(2*Math.PI),l=t.endAngle%(2*Math.PI);if(0>s&&(s+=2*Math.PI),0>l&&(l+=2*Math.PI),!(s>l?r>=s||l>=r:r>=s&&l>=r))return null;const c=(t.startAngle+t.endAngle)/2,u=(t.innerRadius+t.outerRadius)/2;return{datum:t.datum,x:t.cx+Math.cos(c)*u,y:t.cy+Math.sin(c)*u,distance:0,category:t.category}}function G(t,e,n){const o=t.columnWidth/2;if("vertical"===t.projection){if(!(t.x-o>e||e>t.x+o||Math.min(t.minPos,t.maxPos)>n||n>Math.max(t.minPos,t.maxPos)))return{datum:t.datum,x:t.x,y:t.medianPos,distance:0,category:t.category}}else{const a=t.y-o,i=t.y+o;if(!(Math.min(t.minPos,t.maxPos)>e||e>Math.max(t.minPos,t.maxPos)||a>n||n>i))return{datum:t.datum,x:t.medianPos,y:t.y,distance:0,category:t.category}}return null}function X(t,e,n){if(!t.bounds)return null;const{x:o,y:a,width:i,height:r}=t.bounds;return o>e||e>o+i||a>n||n>a+r?null:{datum:t.datum,x:o+i/2,y:a+r/2,distance:0,category:t.category}}const Y={fill:e=>t.createElement("rect",{style:e,width:20,height:20}),line:e=>t.createElement("line",{style:e,x1:0,y1:0,x2:20,y2:20})};function K(t,e,n,o){let a;return a="function"==typeof n?n(t):(0,Y[n])(o(t,e)),a}function Q(e){const{legendGroups:n,customClickBehavior:o,title:a="Legend",width:i=100,height:r=20,orientation:s="vertical"}=e,l="vertical"===s?(({legendGroups:e,width:n,customClickBehavior:o})=>{let a=30;const i=[];return e.forEach((e,r)=>{a+=5,i.push(t.createElement("line",{key:"legend-top-line legend-symbol-"+r,stroke:"gray",x1:0,y1:a,x2:n,y2:a})),a+=10,e.label&&(a+=20,i.push(t.createElement("text",{key:"legend-text-"+r,y:a,className:"legend-group-label"},e.label)),a+=10),i.push(t.createElement("g",{key:"legend-group-"+r,className:"legend-item",transform:`translate(0,${a})`},((e,n)=>{const{type:o="fill",styleFn:a,items:i}=e,r=[];let s=0;return i.forEach((e,i)=>{const l=K(e,i,o,a);r.push(t.createElement("g",{key:"legend-item-"+i,transform:`translate(0,${s})`,onClick:n?()=>n(e):void 0,style:{cursor:n?"pointer":"default"}},l,t.createElement("text",{y:15,x:30},e.label))),s+=25}),r})(e,o))),a+=25*e.items.length+10}),i})({legendGroups:n,width:i,customClickBehavior:o}):(({legendGroups:e,title:n,height:o,customClickBehavior:a})=>{let i=0;const r=[],s=!1===n?10:40;return e.forEach((n,l)=>{n.label&&(r.push(t.createElement("text",{key:"legend-text-"+l,transform:`translate(${i},${s}) rotate(90)`,textAnchor:"start",className:"legend-group-label"},n.label)),i+=20);const c=((e,n)=>{const{type:o="fill",styleFn:a,items:i}=e,r=[];let s=0;return i.forEach((e,i)=>{const l=K(e,i,o,a);r.push(t.createElement("g",{key:"legend-item-"+i,transform:`translate(${s},0)`,onClick:n?()=>n(e):void 0,style:{cursor:n?"pointer":"default"}},l,t.createElement("text",{y:15,x:25},e.label))),s+=35,s+=8*e.label.length}),{items:r,offset:s}})(n,a);r.push(t.createElement("g",{key:"legend-group-"+l,className:"legend-item",transform:`translate(${i},${s})`},c.items)),i+=c.offset+5,e[l+1]&&r.push(t.createElement("line",{key:"legend-top-line legend-symbol-"+l,stroke:"gray",x1:i,y1:s-10,x2:i,y2:o+s+10})),i+=15}),t.createElement("g",null,!1!==n&&t.createElement("line",{x1:0,x2:i+10,y1:s-10,y2:s-10,stroke:"gray",className:"title-neatline"}),r)})({legendGroups:n,title:a,height:r,customClickBehavior:o});return t.createElement("g",null,void 0!==a&&t.createElement("text",{className:"legend-title",y:20,x:"horizontal"===s?0:i/2,textAnchor:"horizontal"===s?"start":"middle"},a),l)}function Z(t){return Math.round(100*t)/100+""}function J(e){const{width:o,height:a,totalWidth:i,totalHeight:r,margin:s,scales:l,showAxes:c,oLabel:u,rLabel:d,oFormat:h,rFormat:p,showGrid:f,title:m,legend:y,foregroundGraphics:g,annotations:x,svgAnnotationRules:v,annotationFrame:b,children:E}=e,k="radial"===(null==l?void 0:l.projection),M="horizontal"===(null==l?void 0:l.projection),w=n(()=>c&&l&&!k?l.o.domain().map(t=>{var e;return{value:t,pixel:(null!==(e=l.o(t))&&void 0!==e?e:0)+l.o.bandwidth()/2,label:h?h(t):t}}):[],[c,l,h,k]),A=n(()=>c&&l&&!k?l.r.ticks(5).map(t=>({value:t,pixel:l.r(t),label:(p||Z)(t)})):[],[c,l,p,k]),S=n(()=>x&&0!==x.length&&v?x.map((t,e)=>v(t,e,{scales:l?{time:l.r,value:l.r}:null,timeAxis:"x",width:o,height:a})).filter(Boolean):null,[x,v,o,a,b]);return c||m||y||g||S&&S.length>0||f||E?t.createElement("svg",{width:i,height:r,style:{position:"absolute",top:0,left:0,pointerEvents:"none"}},t.createElement("g",{transform:`translate(${s.left},${s.top})`},f&&l&&!k&&t.createElement("g",{className:"ordinal-grid"},A.map((e,n)=>t.createElement("line",{key:"grid-"+n,x1:M?e.pixel:0,y1:M?0:e.pixel,x2:M?e.pixel:o,y2:M?a:e.pixel,stroke:"#e0e0e0",strokeWidth:1}))),c&&l&&!k&&t.createElement("g",{className:"ordinal-axes"},M?t.createElement(t.Fragment,null,t.createElement("line",{x1:0,y1:0,x2:0,y2:a,stroke:"#ccc",strokeWidth:1}),w.map((e,n)=>t.createElement("g",{key:"cat-"+n,transform:`translate(0,${e.pixel})`},t.createElement("line",{x2:-5,stroke:"#ccc",strokeWidth:1}),t.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"#666",style:{userSelect:"none"}},e.label))),u&&t.createElement("text",{x:15-s.left,y:a/2,textAnchor:"middle",fontSize:12,fill:"#333",transform:`rotate(-90, ${15-s.left}, ${a/2})`,style:{userSelect:"none"}},u),t.createElement("line",{x1:0,y1:a,x2:o,y2:a,stroke:"#ccc",strokeWidth:1}),A.map((e,n)=>t.createElement("g",{key:"val-"+n,transform:`translate(${e.pixel},${a})`},t.createElement("line",{y2:5,stroke:"#ccc",strokeWidth:1}),t.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"#666",style:{userSelect:"none"}},e.label))),d&&t.createElement("text",{x:o/2,y:a+40,textAnchor:"middle",fontSize:12,fill:"#333",style:{userSelect:"none"}},d)):t.createElement(t.Fragment,null,t.createElement("line",{x1:0,y1:a,x2:o,y2:a,stroke:"#ccc",strokeWidth:1}),w.map((e,n)=>t.createElement("g",{key:"cat-"+n,transform:`translate(${e.pixel},${a})`},t.createElement("line",{y2:5,stroke:"#ccc",strokeWidth:1}),t.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"#666",style:{userSelect:"none"}},e.label))),u&&t.createElement("text",{x:o/2,y:a+40,textAnchor:"middle",fontSize:12,fill:"#333",style:{userSelect:"none"}},u),t.createElement("line",{x1:0,y1:0,x2:0,y2:a,stroke:"#ccc",strokeWidth:1}),A.map((e,n)=>t.createElement("g",{key:"val-"+n,transform:`translate(0,${e.pixel})`},t.createElement("line",{x2:-5,stroke:"#ccc",strokeWidth:1}),t.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"#666",style:{userSelect:"none"}},e.label))),d&&t.createElement("text",{x:15-s.left,y:a/2,textAnchor:"middle",fontSize:12,fill:"#333",transform:`rotate(-90, ${15-s.left}, ${a/2})`,style:{userSelect:"none"}},d))),S,g,E),m&&t.createElement("text",{x:i/2,y:20,textAnchor:"middle",fontSize:14,fontWeight:"bold",fill:"#333",style:{userSelect:"none"}},"string"==typeof m?m:null),y&&t.createElement("g",{transform:`translate(${i-s.right+10}, ${s.top})`},"object"==typeof(P=y)&&null!==P&&!t.isValidElement(P)&&"legendGroups"in P?t.createElement(Q,{legendGroups:y.legendGroups,title:"",width:100}):y)):null;var P}const U=(t,e,n,o)=>{const a=e.filter(t=>"rect"===t.type);for(const e of a)null!=e.style.opacity&&(t.globalAlpha=e.style.opacity),e.style.icon?tt(t,e):(t.fillStyle=e.style.fill||"#007bff",t.fillRect(e.x,e.y,e.w,e.h),e.style.stroke&&(t.strokeStyle=e.style.stroke,t.lineWidth=e.style.strokeWidth||1,t.strokeRect(e.x,e.y,e.w,e.h))),e._pulseIntensity&&e._pulseIntensity>0&&(t.globalAlpha=.3*e._pulseIntensity,t.fillStyle=e._pulseColor||"rgba(255,255,255,0.6)",t.fillRect(e.x,e.y,e.w,e.h)),t.globalAlpha=1};function tt(t,e){const n=e.style.icon,o=e.style.iconPadding||2,a=Math.min(e.w,e.w)-o;if(0>=a)return;const i=e.h>e.w;if(t.save(),t.beginPath(),t.rect(e.x,e.y,e.w,e.h),t.clip(),i){const i=a+o,r=e.x+(e.w-a)/2;for(let o=e.y+e.h-a;o>=e.y-a;o-=i)t.drawImage(n,r,o,a,a)}else{const i=a+o,r=e.y+(e.h-a)/2;for(let o=e.x;e.x+e.w>o;o+=i)t.drawImage(n,o,r,a,a)}t.restore()}const et=(t,e,n,o)=>{var a;const i=e.filter(t=>"point"===t.type);for(const e of i){t.beginPath(),t.arc(e.x,e.y,e.r,0,2*Math.PI);const n=null!==(a=e.style.opacity)&&void 0!==a?a:e.style.fillOpacity;if(null!=n&&(t.globalAlpha=n),t.fillStyle=e.style.fill||"#4e79a7",t.fill(),e.style.stroke&&(t.strokeStyle=e.style.stroke,t.lineWidth=e.style.strokeWidth||1,t.stroke()),e._pulseIntensity&&e._pulseIntensity>0){const n=4;t.beginPath(),t.arc(e.x,e.y,e.r+n*e._pulseIntensity,0,2*Math.PI),t.strokeStyle=e._pulseColor||"rgba(255,255,255,0.6)",t.lineWidth=2*e._pulseIntensity,t.globalAlpha=.5*e._pulseIntensity,t.stroke()}t.globalAlpha=1}},nt=(t,e,n,o)=>{const a=e.filter(t=>"wedge"===t.type);for(const e of a)t.beginPath(),e.innerRadius>0?(t.arc(e.cx,e.cy,e.outerRadius,e.startAngle,e.endAngle),t.arc(e.cx,e.cy,e.innerRadius,e.endAngle,e.startAngle,!0)):(t.moveTo(e.cx,e.cy),t.arc(e.cx,e.cy,e.outerRadius,e.startAngle,e.endAngle)),t.closePath(),null!=e.style.opacity&&(t.globalAlpha=e.style.opacity),null!=e.style.fillOpacity&&(t.globalAlpha=e.style.fillOpacity),t.fillStyle=e.style.fill||"#007bff",t.fill(),e.style.stroke&&"none"!==e.style.stroke&&(t.strokeStyle=e.style.stroke,t.lineWidth=e.style.strokeWidth||1,t.stroke()),t.globalAlpha=1},ot=(t,e,n,o)=>{var a,i;const r=e.filter(t=>"violin"===t.type);for(const e of r){t.save(),(e.translateX||e.translateY)&&t.translate(e.translateX,e.translateY);const n=new Path2D(e.pathString);t.globalAlpha=null!==(i=null!==(a=e.style.fillOpacity)&&void 0!==a?a:e.style.opacity)&&void 0!==i?i:.6,t.fillStyle=e.style.fill||"#007bff",t.fill(n),t.globalAlpha=1,e.style.stroke&&"none"!==e.style.stroke&&(t.strokeStyle=e.style.stroke,t.lineWidth=e.style.strokeWidth||1,t.stroke(n)),e.iqrLine&&(t.strokeStyle="#333",t.lineWidth=2,t.globalAlpha=.8,t.beginPath(),t.moveTo(0,e.iqrLine.q1Pos),t.lineTo(0,e.iqrLine.q3Pos),t.stroke(),t.beginPath(),t.arc(0,e.iqrLine.medianPos,3,0,2*Math.PI),t.fillStyle="#fff",t.fill(),t.strokeStyle="#333",t.lineWidth=1,t.stroke(),t.globalAlpha=1),t.restore()}},at=(t,e,n,o)=>{var a,i,r;const s=e.filter(t=>"connector"===t.type);if(0===s.length)return;const l=new Map;for(const t of s){const e=t.group||"_default";l.has(e)||l.set(e,[]),l.get(e).push(t)}for(const[,e]of l){if(0===e.length)continue;const n=e[0].style;if(n.fill&&"none"!==n.fill){t.beginPath(),t.moveTo(e[0].x1,e[0].y1);for(const n of e)t.lineTo(n.x2,n.y2);t.closePath(),t.globalAlpha=null!==(i=null!==(a=n.fillOpacity)&&void 0!==a?a:n.opacity)&&void 0!==i?i:.3,t.fillStyle=n.fill,t.fill(),t.globalAlpha=1}for(const n of e)t.beginPath(),t.moveTo(n.x1,n.y1),t.lineTo(n.x2,n.y2),t.strokeStyle=n.style.stroke||n.style.fill||"#999",t.lineWidth=n.style.strokeWidth||1,t.globalAlpha=null!==(r=n.style.opacity)&&void 0!==r?r:.5,t.stroke(),t.globalAlpha=1}},it=t=>[at,...t],rt={bar:it([U]),clusterbar:it([U]),point:it([et]),swarm:it([et]),pie:[nt],donut:[nt],boxplot:it([(t,e,n,o)=>{var a,i;const r=e.filter(t=>"boxplot"===t.type);for(const e of r){const n=e.columnWidth/2,o="vertical"===e.projection,r=e.style.fill||"#007bff",s=e.style.stroke||"#333",l=e.style.strokeWidth||1,c=null!==(i=null!==(a=e.style.fillOpacity)&&void 0!==a?a:e.style.opacity)&&void 0!==i?i:.6;if(t.save(),t.strokeStyle=s,t.lineWidth=l,t.beginPath(),o?(t.moveTo(e.x,e.minPos),t.lineTo(e.x,e.maxPos)):(t.moveTo(e.minPos,e.y),t.lineTo(e.maxPos,e.y)),t.stroke(),t.beginPath(),o?(t.moveTo(e.x-.4*n,e.minPos),t.lineTo(e.x+.4*n,e.minPos),t.moveTo(e.x-.4*n,e.maxPos),t.lineTo(e.x+.4*n,e.maxPos)):(t.moveTo(e.minPos,e.y-.4*n),t.lineTo(e.minPos,e.y+.4*n),t.moveTo(e.maxPos,e.y-.4*n),t.lineTo(e.maxPos,e.y+.4*n)),t.stroke(),t.globalAlpha=c,t.fillStyle=r,o){const o=Math.min(e.q1Pos,e.q3Pos),a=Math.abs(e.q3Pos-e.q1Pos);t.fillRect(e.x-n,o,e.columnWidth,a),t.globalAlpha=1,t.strokeRect(e.x-n,o,e.columnWidth,a)}else{const o=Math.min(e.q1Pos,e.q3Pos),a=Math.abs(e.q3Pos-e.q1Pos);t.fillRect(o,e.y-n,a,e.columnWidth),t.globalAlpha=1,t.strokeRect(o,e.y-n,a,e.columnWidth)}t.strokeStyle="#fff",t.lineWidth=2,t.beginPath(),o?(t.moveTo(e.x-n,e.medianPos),t.lineTo(e.x+n,e.medianPos)):(t.moveTo(e.medianPos,e.y-n),t.lineTo(e.medianPos,e.y+n)),t.stroke(),t.restore()}},et]),violin:it([ot]),histogram:it([U]),ridgeline:it([ot]),timeline:it([U])},st={top:50,right:40,bottom:60,left:70},lt={background:"rgba(0, 0, 0, 0.85)",color:"white",padding:"6px 10px",borderRadius:"4px",fontSize:"13px",lineHeight:"1.4",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)",pointerEvents:"none",whiteSpace:"nowrap"};function ct({hover:e}){var n,o,a,i;const r=e.data||{};if(Array.isArray(r)){const e=(null===(n=r[0])||void 0===n?void 0:n.category)||"",o=r.length;return t.createElement("div",{className:"semiotic-tooltip",style:lt},e&&t.createElement("div",{style:{fontWeight:"bold"}},e+""),t.createElement("div",null,o," items"))}if(null!=r.bin&&null!=r.count){const e=r.range||[];return t.createElement("div",{className:"semiotic-tooltip",style:lt},r.category&&t.createElement("div",{style:{fontWeight:"bold"}},r.category+""),t.createElement("div",null,"Count: ",r.count),2===e.length&&t.createElement("div",{style:{opacity:.8}},Number(e[0]).toFixed(1)," – ",Number(e[1]).toFixed(1)))}const s=r.category||r.name||r.group||r.__rName||"",l=null!==(i=null!==(a=null!==(o=r.value)&&void 0!==o?o:r.__rValue)&&void 0!==a?a:r.pct)&&void 0!==i?i:"";if(!s&&""===l){const e=Object.entries(r).filter(([t])=>!t.startsWith("_")&&"data"!==t);return t.createElement("div",{className:"semiotic-tooltip",style:lt},e.map(([e,n])=>t.createElement("div",{key:e},t.createElement("span",{style:{opacity:.7}},e,":")," ","number"==typeof n?n.toLocaleString():n+"")))}return t.createElement("div",{className:"semiotic-tooltip",style:lt},s&&t.createElement("div",{style:{fontWeight:"bold"}},s+""),""!==l&&t.createElement("div",null,"number"==typeof l?l.toLocaleString():l+""))}const ut=o(function(e,o){const{chartType:c,runtimeMode:u,data:d,oAccessor:h="category",rAccessor:p="value",colorAccessor:f,stackBy:m,groupBy:y,multiAxis:g,timeAccessor:x,valueAccessor:v,categoryAccessor:b,projection:E="vertical",size:k=[600,400],margin:M,barPadding:w,innerRadius:A,normalize:S,startAngle:P,dynamicColumnWidth:$,bins:j,showOutliers:_,showIQR:O,amplitude:D,connectorAccessor:N,connectorStyle:C,rExtent:z,oExtent:R,extentPadding:B=.05,oSort:F,windowMode:L="sliding",windowSize:I=200,pieceStyle:Y,summaryStyle:K,colorScheme:Q,barColors:Z,showAxes:U=!0,oLabel:tt,rLabel:et,oFormat:nt,rFormat:ot,enableHover:at=!0,hoverAnnotation:it,tooltipContent:lt,customHoverBehavior:ut,annotations:dt,svgAnnotationRules:ht,showGrid:pt=!1,legend:ft,backgroundGraphics:mt,foregroundGraphics:yt,title:gt,className:xt,background:vt,centerContent:bt,decay:Et,pulse:kt,transition:Mt,staleness:wt}=e,At=n(()=>Object.assign(Object.assign({},st),M),[M]),St=k[0]-At.left-At.right,Pt=k[1]-At.top-At.bottom,$t=a(null),jt=a(!0),_t=a(0),Ot=a(null),Dt=a(()=>{}),[Nt,Tt]=i(null),[Ct,zt]=i(null),[Rt,Bt]=i(0),[Ft,Lt]=i(!1),It=at||it,Wt="streaming"===u,Vt=n(()=>({chartType:c,runtimeMode:Wt?"streaming":"bounded",windowSize:I,windowMode:L,extentPadding:B,projection:E,oAccessor:Wt?void 0:h,rAccessor:Wt?void 0:p,colorAccessor:f,stackBy:m,groupBy:y,multiAxis:g,timeAccessor:Wt?x:void 0,valueAccessor:Wt?v||("string"==typeof p||"function"==typeof p?p:void 0):void 0,categoryAccessor:Wt?b||h:void 0,rExtent:z,oExtent:R,barPadding:w,innerRadius:A,normalize:S,startAngle:P,dynamicColumnWidth:$,bins:j,showOutliers:_,showIQR:O,amplitude:D,connectorAccessor:N,connectorStyle:C,oSort:F,pieceStyle:Y,summaryStyle:K,colorScheme:Q,barColors:Z,decay:Et,pulse:kt,transition:Mt,staleness:wt}),[c,I,L,B,E,h,p,f,m,y,g,x,v,b,z,R,w,A,S,P,$,j,_,O,D,N,C,F,Y,K,Q,Z,Et,kt,Mt,wt,Wt]),Ht=a(null);Ht.current||(Ht.current=new W(Vt));const qt=r(()=>{_t.current||(_t.current=requestAnimationFrame(()=>Dt.current()))},[]);s(()=>{var t;null===(t=Ht.current)||void 0===t||t.updateConfig(Vt),jt.current=!0,qt()},[Vt,qt]);const Gt=a(null);Gt.current||(Gt.current=new T(t=>{const e=Ht.current;e&&e.ingest(t)&&(jt.current=!0,qt())}));const Xt=r(t=>{var e;null===(e=Gt.current)||void 0===e||e.push(t)},[]),Yt=r(t=>{var e;null===(e=Gt.current)||void 0===e||e.pushMany(t)},[]),Kt=r(()=>{var t,e;null===(t=Gt.current)||void 0===t||t.clear(),null===(e=Ht.current)||void 0===e||e.clear(),jt.current=!0,qt()},[qt]);l(o,()=>({push:Xt,pushMany:Yt,clear:Kt,getData:()=>{var t,e;return null!==(e=null===(t=Ht.current)||void 0===t?void 0:t.getData())&&void 0!==e?e:[]},getScales:()=>{var t,e;return null!==(e=null===(t=Ht.current)||void 0===t?void 0:t.scales)&&void 0!==e?e:null}}),[Xt,Yt,Kt]),s(()=>{var t;d&&(null===(t=Gt.current)||void 0===t||t.setBoundedData(d))},[d]);const Qt=a(()=>{}),Zt=a(()=>{});Qt.current=t=>{if(!It)return;const e=$t.current;if(!e)return;const n=e.getBoundingClientRect(),o=t.clientX-n.left-At.left,a=t.clientY-n.top-At.top;if(0>o||o>St||0>a||a>Pt)return void(Ot.current&&(Ot.current=null,Tt(null),ut&&ut(null),qt()));const i=Ht.current;if(!i||0===i.scene.length)return;const r="radial"===E,s=function(t,e,n,o=30){let a=null;for(const i of t){let t=null;switch(i.type){case"rect":t=V(i,e,n);break;case"point":t=H(i,e,n);break;case"wedge":t=q(i,e,n);break;case"boxplot":t=G(i,e,n);break;case"violin":t=X(i,e,n)}t&&o>t.distance&&(a&&t.distance>=a.distance||(a=t))}return a}(i.scene,r?o-St/2:o,r?a-Pt/2:a);if(!s)return void(Ot.current&&(Ot.current=null,Tt(null),ut&&ut(null),qt()));const l={data:s.datum,time:s.x,value:s.y,x:s.x,y:s.y};Ot.current=l,Tt(l),ut&&ut(l),qt()},Zt.current=()=>{Ot.current&&(Ot.current=null,Tt(null),ut&&ut(null),qt())};const Jt=r(t=>Qt.current(t),[]),Ut=r(()=>Zt.current(),[]);Dt.current=()=>{var t,e;_t.current=0;const n=$t.current;if(!n)return;const o=n.getContext("2d");if(!o)return;const a=Ht.current;if(!a)return;const i="undefined"!=typeof performance?performance.now():Date.now(),r=a.advanceTransition(i),s=jt.current;s&&!r&&(a.computeScene({width:St,height:Pt}),jt.current=!1);const l="undefined"!=typeof window&&window.devicePixelRatio||1;n.width=k[0]*l,n.height=k[1]*l,n.style.width=k[0]+"px",n.style.height=k[1]+"px",o.scale(l,l),o.clearRect(0,0,k[0],k[1]);const u=null!==(t=null==wt?void 0:wt.threshold)&&void 0!==t?t:5e3,d=wt&&a.lastIngestTime>0&&i-a.lastIngestTime>u;d&&(o.globalAlpha=null!==(e=null==wt?void 0:wt.dimOpacity)&&void 0!==e?e:.5),vt&&(o.fillStyle=vt,o.fillRect(0,0,k[0],k[1]));const h="radial"===E;h?(o.save(),o.translate(At.left+St/2,At.top+Pt/2)):o.translate(At.left,At.top);const p=rt[c]||[],f={width:St,height:Pt};for(const t of p)t(o,a.scene,a.scales,f);h&&o.restore(),d&&(o.globalAlpha=1),s&&a.scales&&(zt(a.scales),Bt(t=>t+1)),(null==wt?void 0:wt.showBadge)&&Lt(!!d),(r||a.hasActivePulses)&&(_t.current=requestAnimationFrame(()=>Dt.current()))},s(()=>(qt(),()=>{_t.current&&cancelAnimationFrame(_t.current)}),[qt]),s(()=>{jt.current=!0,qt()},[c,St,Pt,U,vt,qt]),s(()=>{if(!wt)return;const t=setInterval(()=>{var t;const e=Ht.current;if(!e||0===e.lastIngestTime)return;const n="undefined"!=typeof performance?performance.now():Date.now(),o=null!==(t=wt.threshold)&&void 0!==t?t:5e3,a=n-e.lastIngestTime>o;a!==Ft&&(Lt(a),jt.current=!0,qt())},1e3);return()=>clearInterval(t)},[wt,Ft,qt]);const te=It&&Nt?lt?lt(Nt):t.createElement(ct,{hover:Nt}):null,ee="radial"===E,ne=Nt?ee?Nt.x+St/2:Nt.x:0,oe=Nt?ee?Nt.y+Pt/2:Nt.y:0,ae=te?t.createElement("div",{className:"stream-ordinal-tooltip",style:{position:"absolute",left:At.left+ne,top:At.top+oe,transform:`translate(${ne>.7*St?"calc(-100% - 12px)":"12px"}, ${.3*Pt>oe?"4px":"calc(-100% - 4px)"})`,pointerEvents:"none",zIndex:1}},te):null;return t.createElement("div",{className:"stream-ordinal-frame"+(xt?" "+xt:""),style:{position:"relative",width:k[0],height:k[1]},onMouseMove:It?Jt:void 0,onMouseLeave:It?Ut:void 0},mt&&t.createElement("svg",{style:{position:"absolute",top:0,left:0,width:k[0],height:k[1],pointerEvents:"none"}},t.createElement("g",{transform:`translate(${At.left},${At.top})`},mt)),t.createElement("canvas",{ref:$t,style:{position:"absolute",top:0,left:0,width:k[0],height:k[1]}}),t.createElement(J,{width:St,height:Pt,totalWidth:k[0],totalHeight:k[1],margin:At,scales:Ct,showAxes:U,oLabel:tt,rLabel:et,oFormat:nt,rFormat:ot,showGrid:pt,title:gt,legend:ft,foregroundGraphics:yt,annotations:dt,svgAnnotationRules:ht,annotationFrame:Rt}),bt&&"radial"===E&&t.createElement("div",{style:{position:"absolute",left:At.left+St/2,top:At.top+Pt/2,transform:"translate(-50%, -50%)",pointerEvents:"none",textAlign:"center"}},bt),(null==wt?void 0:wt.showBadge)&&t.createElement("div",{className:"stream-staleness-badge",style:Object.assign(Object.assign({position:"absolute"},"top-left"===wt.badgePosition?{top:4,left:4}:"bottom-left"===wt.badgePosition?{bottom:4,left:4}:"bottom-right"===wt.badgePosition?{bottom:4,right:4}:{top:4,right:4}),{padding:"2px 8px",borderRadius:4,fontSize:11,fontWeight:600,pointerEvents:"none",background:Ft?"#dc3545":"#28a745",color:"white"})},Ft?"STALE":"LIVE"),ae)});ut.displayName="StreamOrdinalFrame";const dt=({xy:e,orient:n,i:o,className:a="",jaggedBase:i})=>{let r=`M${e.x1},${e.y1}L${e.x2},${e.y2}`;return i&&0===o&&(r=((t,e)=>{let n="";const{x1:o,x2:a,y1:i,y2:r}=e;if("left"===t||"right"===t){const e=Math.abs(a-o);n=((t,e,n,o)=>{const a=t/e;let i=0,r="M0,"+n;const s="right"===o?-1:1;for(;t>=i;)r+=`L${i},${n}`,t>i&&(r+=`L${i+a/2},${n+10*s}`),i+=a;return r})(e,Math.ceil(e/40),"right"===t?0:i,t)}else{const e=Math.abs(r-i);n=((t,e,n,o)=>{const a=t/e;let i=0,r=`M${n},0`;const s="bottom"===o?-1:1;for(;t>=i;)r+=`L${n},${i}`,t>i&&(r+=`L${n+10*s},${i+a/2}`),i+=a;return r})(e,Math.ceil(e/40),o,t)}return n})(n,e)),t.createElement("path",{key:o,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:r,className:`tick-line tick ${n} ${a}`})};function ht(t,e,n){const o=Math.abs(n.range()[1]-n.range()[0]);return t||(e||(e=Math.max(1,Math.floor(o/40))),t=n.ticks&&n.ticks(e)||n.domain()),t}function pt({t:t,o:e,w:n}){return"contour"!==t&&"boxplot"!==t||"left"!==e&&"right"!==e?0:n/2}function ft({t:t,o:e,w:n}){return"contour"!==t&&"boxplot"!==t||"top"!==e&&"bottom"!==e?0:n/2}function mt(t){const{translation:n,orient:o,decoratedSummaryType:a,summaryWidth:i,renderedSummary:r,points:s}=t;return e.createElement("g",{className:"marginal-graphics",transform:`translate(${n[o]})`},e.createElement("g",{transform:`translate(${pt({t:a.type,o:o,w:i})},${ft({t:a.type,o:o,w:i})})`},r),s)}function yt(t){const{className:n,translation:o,position:a,rotation:i,labelName:r,anchorMod:s}=t;return e.createElement("g",{className:"axis-title "+n,transform:`translate(${[o[0]+a[0],o[1]+a[1]]}) rotate(${i})`},e.isValidElement(r)?r:e.createElement("text",{textAnchor:s},r))}function gt(t){if(null==t)return"";if("number"!=typeof t)return t+"";if(!isFinite(t))return t+"";if(0===t)return"0";const e=parseFloat(t.toPrecision(12)),n=Math.abs(e);return 1e9>n?1e6>n?1e4>n?Number.isInteger(e)?e+"":parseFloat(e.toPrecision(6))+"":parseFloat((e/1e3).toPrecision(3))+"K":parseFloat((e/1e6).toPrecision(3))+"M":parseFloat((e/1e9).toPrecision(3))+"B"}function xt(t,e){var n={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&0>e.indexOf(o)&&(n[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(t);o.length>a;a++)0>e.indexOf(o[a])&&Object.prototype.propertyIsEnumerable.call(t,o[a])&&(n[o[a]]=t[o[a]])}return n}"function"==typeof SuppressedError&&SuppressedError;function vt(e){const{rotate:n,label:o,dynamicLabelPosition:r,orient:l="left",marginalSummaryType:c,tickFormat:u=(c?()=>"":gt),size:d,width:h=d&&d[0]||0,height:p=d&&d[1]||0,className:f,padding:m,tickValues:y,scale:g,ticks:x,footer:v,tickSize:b,tickLineGenerator:E,baseline:k=!0,margin:M={top:0,bottom:0,left:0,right:0},center:w=!1,annotationFunction:A,glyphFunction:S,xyPoints:P}=e,[$,j]=i(0),[_,O]=i(void 0),D=a(null);s(()=>{if(!(null==o?void 0:o.position)&&r){const t=((t,e)=>{const n=t.current;if(!n)return 30;const o="left"===e||"right"===e?"width":"height";return Math.max(...[...n.querySelectorAll(".axis-label")].map(t=>t.getBBox&&t.getBBox()||{height:30,width:30}).map(t=>t[o]))+25})(D,l);t!==_&&O(t)}},[o,r]);let N,{axisParts:T,position:C=[0,0]}=e;if(T||(T=function({renderMode:t=()=>{},padding:e=5,scale:n,ticks:o,tickValues:a=ht(void 0,o,n),orient:i="left",size:r,footer:s=!1,tickSize:l=(s?-10:["top","bottom"].find(t=>t===i)?r?r[1]:0:r?r[0]:0),jaggedBase:c}){let u,d,h,p,f,m,y=[],g=0,x=0,v="middle";switch(i){case"top":u="x1",d="x2",h="y1",p="y2",y=[0,l],f="tx",m="ty",g-=20-e;break;case"bottom":u="x1",d="x2",h="y2",p="y1",y=r?[r[1],r[1]-l]:[0,-l],f="tx",m="ty",g+=20+e;break;case"right":u="y2",d="y1",h="x2",p="x1",y=r?[r[0],r[0]-l]:[0,-l],f="ty",m="tx",g+=5+e,x+=5,v="start";break;default:u="y1",d="y2",h="x1",p="x2",y=[0,l],f="ty",m="tx",g-=5+e,x+=5,v="end"}let b=a instanceof Function?a({orient:i}):a;return c&&void 0===b.find(t=>t===n.domain()[0])&&(b=[n.domain()[0],...b]),b.map((e,o)=>{const a=n(e);return{[u]:a,[d]:a,[h]:y[0],[p]:y[1],[f]:a+x,[m]:y[0]+g,defaultAnchor:v,renderMode:t(e,o),value:e}})}({padding:m,tickValues:y,scale:g,ticks:x,orient:l,size:[h,p],footer:v,tickSize:b}),N=t.createElement("g",{className:"axis "+f},(({axisParts:e,orient:n,tickLineGenerator:o=dt,className:a,jaggedBase:i,scale:r,showOutboundTickLines:s=!1})=>{const l=e.map((t,e)=>o({xy:t,orient:n,i:e,className:a,jaggedBase:i,scale:r})),c=s?e.map((e,o)=>(({xy:e,orient:n,i:o,className:a=""})=>{let i=`M-4,${e.y1}L${e.x1},${e.y2}`;return"left"===n?i=`M${e.x1-8},${e.y1}L${e.x1},${e.y2}`:"right"===n?i=`M${e.x2},${e.y1}L${e.x2+8},${e.y2}`:"top"===n?i=`M${e.x1},${e.y1-8}L${e.x1},${e.y1}`:"bottom"===n&&(i=`M${e.x1},${e.y2}L${e.x1},${e.y2+8}`),t.createElement("path",{key:o,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:i,className:`outbound-tick-line tick ${n} ${a}`})})({xy:e,orient:n,i:o,className:a})):[];return[...l,c]})({axisParts:T,orient:l,tickLineGenerator:E,className:f,scale:g}))),0===T.length)return null;let z,R,B,F,L=50,I=p,W=-50,V=0,H=0,q=0,G=0,X=p,Y=25,K=-25,Q=18,Z=h+25,J=0,U=$,tt=0,et="y";switch(l){case"right":C=[C[0],C[1]],W=h,G=H=h,tt=M.top,Z=-h-25,K=5,z=t=>{j(t.nativeEvent.offsetY-tt)},!0===w&&(G=H=h/2);break;case"top":C=[C[0],0],L=h,I=50,V=-50,W=0,tt=M.left,et="x",G=h,X=0,!0===w&&(X=q=p/2),z=t=>{j(t.nativeEvent.offsetX-tt)},Y=$,U=25,K=0,Q=-10,Z=0,J=p+25;break;case"bottom":C=[C[0],0],L=h,I=50,q=X=V=p,H=W=0,G=h,tt=M.left,z=t=>{j(t.nativeEvent.offsetX-tt)},Y=$,U=25,K=0,Q=15,Z=0,J=-p-25,et="x",!0===w&&(X=q=p/2);break;default:C=[C[0],C[1]],tt=M.top,!0===w&&(G=H=h/2),z=t=>{j(t.nativeEvent.offsetY-tt)}}if(A){const n=function(t,e){return e.tickFormat?e.tickFormat(t):t.toString?""+t:t}(g.invert($),e),o=S?S({lineHeight:J,lineWidth:Z,value:g.invert($)}):t.createElement("g",null,t.isValidElement(n)?t.createElement("g",{transform:`translate(${K},${Q})`},n):t.createElement("text",{x:K,y:Q},n),t.createElement("circle",{r:5}),t.createElement("line",{x1:Z,y1:J,style:{stroke:"black"}})),a=$?t.createElement("g",{style:{pointerEvents:"none"},transform:`translate(${Y},${U})`},o):null;R=t.createElement("g",{className:"annotation-brush",transform:`translate(${W},${V})`},t.createElement("rect",{style:{fillOpacity:0},height:I,width:L,onMouseMove:z,onClick:t=>A({className:"dynamic-axis-annotation",type:et,value:g.invert($),e:t}),onMouseOut:()=>{j(void 0)}}),a)}if(c&&P){const e=Math.max(M[l]-6,5),n="string"==typeof c?{type:c}:c;void 0!==n.flip||"bottom"!==l&&"right"!==l||(n.flip=!0);const o=n.summaryStyle?()=>n.summaryStyle:()=>({fill:"black",fillOpacity:.5,stroke:"black",strokeDasharray:"0"}),a=n.renderMode?()=>n.renderMode:()=>{},i=n.summaryClass?()=>n.summaryClass:()=>"",r=n.filter||(()=>!0),s=P.filter(t=>void 0!==t.x&&void 0!==t.y&&r(t.data)).map(t=>Object.assign(Object.assign({},t),{xy:{x:"top"===l||"bottom"===l?g(t.x):0,y:"left"===l||"right"===l?g(t.y):0},piece:{scaledVerticalValue:g(t.y),scaledValue:g(t.x)},value:g("top"===l||"bottom"===l?t.y:t.x),scaledValue:g(t.x),scaledVerticalValue:g(t.y)})),u=function(e){const n=[];for(const o of e){const e=[],{elements:a,containerProps:i}=o;if(o.Mark)n.push(o.Mark);else{for(let n=0;a.length>n;n++){const o=a[n],{markType:i,style:r={}}=o,s=xt(o,["markType","style"]),l=Object.assign({},s);void 0!==r.fill&&(l.fill=r.fill),void 0!==r.stroke&&(l.stroke=r.stroke),void 0!==r.strokeWidth&&(l.strokeWidth=r.strokeWidth),void 0!==r.opacity&&(l.opacity=r.opacity),void 0!==r.fillOpacity&&(l.fillOpacity=r.fillOpacity),void 0!==r.strokeOpacity&&(l.strokeOpacity=r.strokeOpacity);const c=Object.assign({},r);delete c.fill,delete c.stroke,delete c.strokeWidth,delete c.opacity,delete c.fillOpacity,delete c.strokeOpacity,Object.keys(c).length>0&&(l.style=c),l.key=o.key||n,i&&e.push(t.createElement(i,l))}i?n.push(t.createElement("g",Object.assign({},i),e)):n.push(...e)}}return n}((({data:t,type:e,renderMode:n,eventListenersGenerator:o,styleFn:a,classFn:i,projection:r,adjustedSize:s,margin:l,axisCreator:c})=>{if(e&&e.type)return function({data:t,type:e,renderMode:n,eventListenersGenerator:o,styleFn:a,classFn:i,projection:r,adjustedSize:s,chartSize:l,margin:c,axisCreator:u}){return"function"==typeof e.type?e.type({data:t,type:e,renderMode:n,eventListenersGenerator:o,styleFn:a,classFn:i,projection:r,adjustedSize:s,chartSize:l,margin:c,axisCreator:u}):(console.error(`Invalid summary type: ${e.type} - Must be a function`),{})}({data:t,type:e="string"==typeof e?{type:e}:e,renderMode:n,eventListenersGenerator:o,styleFn:a,classFn:i,projection:r,adjustedSize:s,chartSize:"vertical"===r?s[1]:s[0],margin:l,axisCreator:c})})({data:{column:{middle:e/2,pieceData:s,width:e,xyData:s}},type:n,renderMode:a,eventListenersGenerator:n.eventListenersGenerator||(()=>({})),styleFn:o,classFn:i,projection:"top"===l||"bottom"===l?"horizontal":"vertical",adjustedSize:d,margin:{top:0,bottom:0,left:0,right:0}}).marks);let h;if(!0===n.showPoints){const o=((t,e,n)=>{const o="left"===t||"right"===t?e/2:0,a="bottom"===t||"top"===t?e/2:0;return n.map(t=>[t.xy.x+o,t.xy.y+a])})(l,e,s);h=o.map((e,o)=>t.createElement("circle",{key:"axis-summary-point-"+o,cx:e[0],cy:e[1],r:n.r||3,style:n.pointStyle||{fill:"black",fillOpacity:.1}}))}B=t.createElement(mt,{translation:{left:[2-M.left,0],right:[d[0]+2,0],top:[0,2-M.top],bottom:[0,d[1]+2]},orient:l,decoratedSummaryType:n,summaryWidth:e,renderedSummary:u,points:h})}const nt=(({axisParts:e,tickFormat:n,rotate:o=0,center:a=!1,orient:i})=>{const r=e.map((t,e)=>({axisPart:t,i:e,formatted:n(t.value,e)})),s="left"===i||"right"===i;let l=r;if(!o&&r.length>1){const t=8,e=14,n=8,o=t=>"string"==typeof t?t:"number"==typeof t?t+"":null;if("top"===i||"bottom"===i){const e=[...r].sort((t,e)=>t.axisPart.tx-e.axisPart.tx);let a=-1/0;const i=new Set;for(const r of e){const e=o(r.formatted);if(!e){i.add(r.i);continue}const s=e.length*t/2;a+n>r.axisPart.tx-s||(i.add(r.i),a=r.axisPart.tx+s)}l=r.filter(t=>i.has(t.i))}else if(s){const t=[...r].sort((t,e)=>t.axisPart.ty-e.axisPart.ty);let o=-1/0;const a=new Set;for(const i of t)o+e+n>i.axisPart.ty||(a.add(i.i),o=i.axisPart.ty);l=r.filter(t=>a.has(t.i))}}return l.map(({axisPart:e,i:n,formatted:r})=>{("object"!=typeof r||r instanceof Date)&&(r=t.createElement("text",{textAnchor:e.defaultAnchor,className:"axis-label"},r.toString?""+r:r));let s=e.tx,l=e.ty;if(a)switch(i){case"right":s-=(e.x2-e.x1)/2;break;case"left":s+=(e.x2-e.x1)/2;break;case"top":l+=(e.y2-e.y1)/2;break;case"bottom":l-=(e.y2-e.y1)/2}return t.createElement("g",{key:n,pointerEvents:"none",transform:`translate(${s},${l}) rotate(${o})`,className:"axis-label"},r)})})({tickFormat:u,axisParts:T,orient:l,rotate:n,center:w});if(o){const e=o.name||o,n=o.position||{};let a=n.anchor||"middle";const i=o.locationDistance||_,r=n.rotation||{left:-90,right:90,top:0,bottom:0}[l],s={left:{start:[0,d[1]],middle:[0,d[1]/2],end:[0,0],inside:[i||15,0],outside:[-(i||45),0]},right:{start:[d[0]+0,d[1]],middle:[d[0]+0,d[1]/2],end:[d[0]+0,0],inside:[-(i||15),0],outside:[i||45,0]},top:{start:[0,0],middle:[0+d[0]/2,0],end:[0+d[0],0],inside:[0,i||15],outside:[0,-(i||40)]},bottom:{start:[0,d[1]],middle:[0+d[0]/2,d[1]],end:[0+d[0],d[1]],inside:[0,-(i||5)],outside:[0,i||50]}},c=s[l][a],u=s[l][n.location||"outside"];c[0]=c[0]+u[0],c[1]=c[1]+u[1],"start"===a&&"right"===l?a="end":"end"===a&&"right"===l&&(a="start"),F=t.createElement(yt,{className:f,translation:c,position:C,rotation:r,labelName:e,anchorMod:a})}const ot=`${l} axis ${T&&T.length>0&&`from ${u(T[0].value,0)} to ${u(T[T.length-1].value,T.length-1)}`||"without ticks"}`;return t.createElement("g",{className:f,"aria-label":ot,ref:D},R,nt,N,!0===k?t.createElement("line",{key:"baseline",className:"axis-baseline "+f,stroke:"black",strokeLinecap:"square",x1:H,x2:G,y1:q,y2:X}):null,F,B)}function bt(t,e=120,n=8){if(!t)return[];const o=Math.max(1,Math.floor(e/n)),a=t.split(/\s+/),i=[];let r="";for(const t of a)r&&r.length+1+t.length>o?(i.push(r),r=t):r=r?`${r} ${t}`:t;return r&&i.push(r),i}function Et(t,e,n,o){return"curly"===t?o?`M0,0 C${.6*n},0 ${.4*n},${e/2} ${n},${e/2} C${.4*n},${e/2} ${.6*n},${e} 0,${e}`:`M0,0 C0,${.6*n} ${e/2},${.4*n} ${e/2},${n} C${e/2},${.4*n} ${e},${.6*n} ${e},0`:o?`M0,0 L${n},0 L${n},${e} L0,${e}`:`M0,0 L0,${n} L${e},${n} L${e},0`}function kt(e){const{x:n=0,y:o=0,dx:a,dy:i,nx:r,ny:s,note:l,connector:c,subject:u,type:d,color:h,className:p,disable:f,events:m={},"data-testid":y}=e,g=new Set(Array.isArray(f)?f:[]);let x=a||0,v=i||0;null!=r&&(x=r-n),null!=s&&(v=s-o);const b="string"==typeof d?d:"label";if("bracket"===b&&u&&0===x&&0===v)if(void 0!==u.width){x=u.width/2;const t=u.depth||30;v=t+(0>t?-5:5)}else if(void 0!==u.height){const t=u.depth||30;x=t+(0>t?-5:5),v=u.height/2}return t.createElement("g",Object.assign({className:("annotation "+(p||"")).trim(),transform:`translate(${n},${o})`,"data-testid":y},m),!g.has("connector")&&function(e,n,o,a,i,r){const s=[];let l=0,c=0;if("callout-circle"!==i&&"label"!==i||!(null==r?void 0:r.radius)){if("callout-rect"===i&&r){const t=r.width||0,o=r.height||0;if(t>0||o>0){const a=t/2,i=o/2,r=e-a,s=n-i;if(0!==r||0!==s){const e=Math.abs(r),n=Math.abs(s),u=t/2,d=o/2,h=e*d>n*u?u/e:d/n;l=a+r*h,c=i+s*h}}}else if("bracket"===i&&r){const t=r.width,e=r.height,n=r.depth||30;void 0!==t?(l=t/2,c=n):void 0!==e&&(l=n,c=e/2)}}else{const t=(r.radius||0)+(r.radiusPadding||0);if(t>0&&(0!==e||0!==n)){const o=Math.atan2(n,e);l=Math.cos(o)*t,c=Math.sin(o)*t}}if(Math.sqrt(Math.pow(e-l,2)+Math.pow(n-c,2))>.5&&(s.push(t.createElement("line",{key:"connector-line",x1:l,y1:c,x2:e,y2:n,stroke:a||"currentColor"})),"arrow"===(null==o?void 0:o.end))){const o=10,i=16/180*Math.PI,r=Math.atan2(n-c,e-l);s.push(t.createElement("path",{key:"connector-arrow",d:`M${l},${c}L${l+o*Math.cos(r+i)},${c+o*Math.sin(r+i)}L${l+o*Math.cos(r-i)},${c+o*Math.sin(r-i)}Z`,fill:a||"currentColor",stroke:"none"}))}return t.createElement("g",{className:"annotation-connector"},s)}(x,v,c,h,b,u),!g.has("subject")&&function(e,n,o,a,i){var r;const s=[];switch(e){case"callout-circle":{const e=((null==n?void 0:n.radius)||0)+((null==n?void 0:n.radiusPadding)||0);e>0&&s.push(t.createElement("circle",{key:"subject-circle",r:e,fill:"none",stroke:o||"currentColor"}));break}case"callout-rect":{const e=(null==n?void 0:n.width)||0,a=(null==n?void 0:n.height)||0;(e>0||a>0)&&s.push(t.createElement("rect",{key:"subject-rect",width:e,height:a,fill:"none",stroke:o||"currentColor"}));break}case"callout-custom":(null==n?void 0:n.custom)&&s.push(...Array.isArray(n.custom)?n.custom:[n.custom]);break;case"xy-threshold":{const e=a||0,r=i||0;if(void 0!==(null==n?void 0:n.x)){const a=(n.x||0)-e;s.push(t.createElement("line",{key:"threshold-line",x1:a,y1:(n.y1||0)-r,x2:a,y2:(n.y2||0)-r,stroke:o||"currentColor",strokeDasharray:"5,5"}))}else if(void 0!==(null==n?void 0:n.y)){const a=(n.y||0)-r;s.push(t.createElement("line",{key:"threshold-line",x1:(n.x1||0)-e,y1:a,x2:(n.x2||0)-e,y2:a,stroke:o||"currentColor",strokeDasharray:"5,5"}))}else void 0!==(null==n?void 0:n.x1)||void 0!==(null==n?void 0:n.x2)?s.push(t.createElement("line",{key:"threshold-line",x1:(n.x1||0)-e,y1:0,x2:(n.x2||0)-e,y2:0,stroke:o||"currentColor",strokeDasharray:"5,5"})):void 0===(null==n?void 0:n.y1)&&void 0===(null==n?void 0:n.y2)||s.push(t.createElement("line",{key:"threshold-line",x1:0,y1:(n.y1||0)-r,x2:0,y2:(n.y2||0)-r,stroke:o||"currentColor",strokeDasharray:"5,5"}));break}case"bracket":{const e=null!==(r=null==n?void 0:n.width)&&void 0!==r?r:null==n?void 0:n.height;void 0!==e&&s.push(t.createElement("path",{key:"bracket-path",d:Et((null==n?void 0:n.type)||"curly",e,(null==n?void 0:n.depth)||30,void 0===(null==n?void 0:n.width)),fill:"none",stroke:o||"currentColor"}));break}}return t.createElement("g",{className:"annotation-subject"},s)}(b,u,h,n,o),!g.has("note")&&function(e,n,o,a){if(!e)return t.createElement("g",{className:"annotation-note"});const{label:i,title:r,orientation:s,align:l,wrap:c=120,noWrap:u}=e;if(!i&&!r)return t.createElement("g",{className:"annotation-note"});let d=s;d||(d=Math.abs(n)>Math.abs(o)?"leftRight":"topBottom");let h=l;h&&"dynamic"!==h||(h="topBottom"===d?0>n?"right":"left":0>o?"bottom":"top");let p="start";"topBottom"===d?"right"===h?p="end":"middle"===h&&(p="middle"):p=0>n?"end":"start";const f=16,m=r?u?[r]:bt(r,c):[],y=i?u?[i]:bt(i,c):[],g="leftRight"===d?"end"===p?-4:4:0;let x=0;const v=[];m.length>0&&(v.push(t.createElement("text",{key:"annotation-note-title",className:"annotation-note-title",fill:a||void 0,textAnchor:p,fontWeight:"bold"},m.map((e,n)=>t.createElement("tspan",{key:n,x:g,dy:0===n?0:f},e)))),x=m.length*f),y.length>0&&v.push(t.createElement("text",{key:"annotation-note-label",className:"annotation-note-label",fill:a||void 0,textAnchor:p,y:x},y.map((e,n)=>t.createElement("tspan",{key:n,x:g,dy:f},e))));let b=null;if((r||i)&&(0!==n||0!==o))if("topBottom"===d){const e=Math.min(c,120);let n=0,o=e;"end"===p?(n=-e,o=0):"middle"===p&&(n=-e/2,o=e/2),b=t.createElement("line",{className:"note-line",x1:n,x2:o,y1:0,y2:0,stroke:a||"currentColor"})}else{const e=(m.length+y.length)*f+(y.length>0?f:0);let n=0,o=e;"bottom"===h?(n=-e,o=0):"middle"===h&&(n=-e/2,o=e/2),b=t.createElement("line",{className:"note-line",x1:0,x2:0,y1:n,y2:o,stroke:a||"currentColor"})}const E=(m.length+y.length)*f+(y.length>0?f:0);let k=0;return"topBottom"===d?0>o&&(k=-E):"leftRight"===d&&("middle"===h?k=-E/2:("bottom"===h||0>o)&&(k=-E)),t.createElement("g",{className:"annotation-note",transform:`translate(${n},${o})`},t.createElement("g",{className:"annotation-note-content",transform:0!==k?`translate(0,${k})`:void 0},v),b)}(l,x,v,h))}function Mt(e){const{noteData:n}=e,{screenCoordinates:o}=n,a="string"==typeof n.type?n.type:"label",i=n.eventListeners||n.events||{};if(n.coordinates&&o){const e=n.nx||o[0][0]+n.dx,i=n.ny||o[0][1]+n.dy,r=o.map((o,r)=>{const s=Object.assign({},n,{note:0===r?n.note:{label:""},x:o[0],y:o[1],nx:e,ny:i});return t.createElement(kt,Object.assign({"data-testid":"semiotic-annotation",key:"multi-annotation-"+r},s,{type:a}))});return t.createElement("g",null,r)}const r=n.note||{title:"none",label:n.label};return t.createElement(kt,Object.assign({"data-testid":"semiotic-annotation",key:`${r.label}-${r.title}-${n.i}`,events:i},n,{type:a}))}const wt=(t,e,n,o)=>{const a=(t.note.label||t.note.title).length;return[Math.min(t.note.wrap||120,a*e)+2*o,Math.ceil(a*e/120)*n+2*o]};function At(e){let o=c(null),a=St(e);return[function({children:a}){let i=n(()=>St(e),[]);return t.createElement(o.Provider,{value:i,children:a})},t=>{var e;let n=null!==(e=u(o))&&void 0!==e?e:a;return function(t,e){const[n,o]=i(e);return d(()=>t(()=>o(e)),[t]),n}(n.subscribe,()=>t(n.getState()))}]}function St(t){let e=new EventTarget,n=t(function(t){n=Object.assign(n,t(n)),e.dispatchEvent(new CustomEvent("update"))});return{getState:()=>n,subscribe:function(t){return e.addEventListener("update",t),()=>e.removeEventListener("update",t)}}}let[Pt,$t]=At(t=>({tooltip:null,changeTooltip(e){t(()=>({tooltip:e}))}}));function jt(t,e,n){return"number"==typeof n?n:e&&e.find(e=>e.props.orient===t)?50:10}const _t=(t,e,n)=>`${t.map(Ot).join(",")}${JSON.stringify(e)}${n.join(",")}`;function Ot(t){if(!t||!t.props||!t.props.noteData)return"";const{note:e={}}=t.props.noteData,{label:n,title:o}=e;return`${t.props.noteData.id||`${t.props.noteData.x}-${t.props.noteData.y}`}-${n}=${o}`}function Dt(t,n=8,o){const{noteWidth:a=o}=t;let i=a;"number"==typeof a&&(i=()=>a);const r=t.note&&t.note.wrap||120,s=t.note.label||t.note.label||"";return a&&i(t)||(e.isValidElement(t.note)?100:Math.min(r,s.length*n))}function Nt(t,n=8,o=20,a){const{noteHeight:i=a}=t;let r=i;"number"==typeof i&&(r=()=>i);const s=t.note&&t.note.wrap||120,l=t.note.label||t.note.title||"";return i&&r(t)||(e.isValidElement(t.note)?30:Math.ceil(l.length*n/s)*o+(t.note.label&&t.note.title?o:0))}const Tt=(t,e)=>e.map((e,n)=>t.svgAnnotationRule(e,n,t)).filter(t=>null!=t),Ct=(e,n)=>{let o=n.adjustedAnnotations,a=n.adjustedAnnotationsKey,i=n.adjustableAnnotations,r=n.fixedAnnotations,s=[],l=[];const c=n.adjustedAnnotationsKey,u=n.adjustedAnnotationsDataVersion,{annotations:d,annotationHandling:h=!1,size:p,svgAnnotationRule:f,htmlAnnotationRule:m}=e,y="object"==typeof h?h:{layout:{type:h},dataVersion:""},{dataVersion:g=""}=y;if(f){const n=Tt(e,d);a=_t(n,y,p),!1===h&&(o=i),o=o.length!==i.length||c!==a||u!==g?((e,n,o)=>{const{layout:a={type:!1,noteHeight:void 0,noteWidth:void 0}}=n;if(!1===a.type)return e;const{noteWidth:i,noteHeight:r}=a;let{margin:s={top:0,bottom:0,left:0,right:0}}=o;const{size:l,axes:c=[]}=o;if(s="number"==typeof s?{top:s,left:s,right:s,bottom:s}:s,"bump"===a.type)return function(t,e,n,o,a){const{padding:i=1,characterWidth:r=8,lineHeight:s=20,iterations:l=500,pointSizeFunction:c=o,labelSizeFunction:u=a||wt}=e,d=t.map((t,e)=>{const n=(t.props.noteData.x[0]||t.props.noteData.x)+(void 0!==t.props.noteData.dx?t.props.noteData.dx:-10*(e%3-1)),o=(t.props.noteData.y[0]||t.props.noteData.y)+(void 0!==t.props.noteData.dy?t.props.noteData.dy:10*(e%3-1)),[a,l]=u(t.props.noteData,r,s,i);return{x:n,y:o,above:t.props.noteData.y>o,left:t.props.noteData.x>n,width:a,height:l,type:"label",name:"",originalNote:t}}),h=t.map(t=>({x:t.props.noteData.x,y:t.props.noteData.y,fx:t.props.noteData.x,fy:t.props.noteData.y,r:c&&c(t.props.noteData)||5,type:"point",originalNote:t})),p=function(){let t,e=[],n=[],o=1,a=1,i={start:t=>{},width:t=>{},height:t=>{},label:t=>{},anchor:t=>{},alt_energy:t=>{},alt_schedule:t=>{}},r=!1;const s=function(t){let o=e.length,a=0,i=e[t].x-n[t].x,r=n[t].y-e[t].y,s=Math.sqrt(i*i+r*r);s>0&&(a+=.2*s),i/=s,r/=s,a+=i>0&&r>0?0:0>i&&r>0?3:0>i&&0>r?6:9;let l,c,d,h,p,f,m,y=e[t].x,g=e[t].y-e[t].height+2,x=e[t].x+e[t].width,v=e[t].y+2;for(let i=0;o>i;i++)i!==t&&(u(n[t].x,e[t].x,n[i].x,e[i].x,n[t].y,e[t].y,n[i].y,e[i].y)&&(a+=1),l=e[i].x,d=e[i].y-e[i].height+2,c=e[i].x+e[i].width,h=e[i].y+2,p=Math.max(0,Math.min(c,x)-Math.max(l,y)),f=Math.max(0,Math.min(h,v)-Math.max(d,g)),m=p*f,a+=30*m),l=n[i].x-n[i].r,d=n[i].y-n[i].r,c=n[i].x+n[i].r,h=n[i].y+n[i].r,p=Math.max(0,Math.min(c,x)-Math.max(l,y)),f=Math.max(0,Math.min(h,v)-Math.max(d,g)),m=p*f,a+=30*m;return a},l=function(i){let l,c,u=Math.floor(Math.random()*e.length),d=e[u].x,h=e[u].y;l=r?t(u,e,n):s(u),e[u].x+=5*(Math.random()-.5),e[u].y+=5*(Math.random()-.5),e[u].x>o&&(e[u].x=d),0>e[u].x&&(e[u].x=d),e[u].y>a&&(e[u].y=h),0>e[u].y&&(e[u].y=h),c=r?t(u,e,n):s(u);let p=c-l;Math.random()<Math.exp(-p/i)||(e[u].x=d,e[u].y=h)},c=function(i){let l,c=Math.floor(Math.random()*e.length),u=e[c].x,d=e[c].y;l=r?t(c,e,n):s(c);let h=.5*(Math.random()-.5),p=Math.sin(h),f=Math.cos(h);e[c].x-=n[c].x,e[c].y-=n[c].y;let m,y=e[c].x*p+e[c].y*f;e[c].x=e[c].x*f-e[c].y*p+n[c].x,e[c].y=y+n[c].y,e[c].x>o&&(e[c].x=u),0>e[c].x&&(e[c].x=u),e[c].y>a&&(e[c].y=d),0>e[c].y&&(e[c].y=d),m=r?t(c,e,n):s(c);let g=m-l;Math.random()<Math.exp(-g/i)||(e[c].x=u,e[c].y=d)},u=function(t,e,n,o,a,i,r,s){let l,c,u,d,h;return u=(s-r)*(e-t)-(o-n)*(i-a),d=(o-n)*(a-r)-(s-r)*(t-n),h=(e-t)*(a-r)-(i-a)*(t-n),l=d/u,c=h/u,!(0>l||l>1||0>c||c>1)},d=function(t,e,n){return t-e/n};return i.start=function(t){let n=e.length,o=1;for(let e=0;t>e;e++){for(let t=0;n>t;t++).5>Math.random()?l(o):c(o);o=d(o,1,t)}},i.width=function(t){return arguments.length?(o=t,i):o},i.height=function(t){return arguments.length?(a=t,i):a},i.label=function(t){return arguments.length?(e=t,i):e},i.anchor=function(t){return arguments.length?(n=t,i):n},i.alt_energy=function(e){return arguments.length?(t=e,r=!0,i):s},i.alt_schedule=function(t){return arguments.length?i:d},i}();return p.label(d),p.anchor(h),p.width(n[0]),p.height(n[1]),p.start(l),d.forEach(t=>{if("label"===t.type){const e=function(t,e,n){return t.y>e.y?[e.x+e.width/2+n/2,e.y-e.height+n/2]:[e.x+e.width/2,e.y]}(t.originalNote.props.noteData,t,i);t.originalNote.props.noteData.nx=e[0],t.originalNote.props.noteData.ny=e[1]}}),t}(e,a,l,o.pointSizeFunction,o.labelSizeFunction);if("marginalia"===a.type){const{marginOffset:n,orient:o="nearest",characterWidth:u=8,lineHeight:d=20,padding:h=2,axisMarginOverride:p={}}=a,f="nearest"===o?["left","right","top","bottom"]:Array.isArray(o)?o:[o],m=f.find(t=>"left"===t),y=f.find(t=>"right"===t),g=f.find(t=>"top"===t),v=f.find(t=>"bottom"===t),b=[],E=[],k=[],M=[];for(const t of e){const e=t.props.noteData,n=e.x[0]||e.x,o=e.y[0]||e.y,a=m?n:1/0,i=y?l[0]-n:1/0,r=g?o:1/0,s=Math.min(a,i,r,v?l[1]-o:1/0);a===s?b.push(t):i===s?E.push(t):r===s?k.push(t):M.push(t)}const w=new x.Force({minPos:void 0!==p.top?0+p.top:0-s.top,maxPos:void 0!==p.bottom?l[1]-p.bottom:v?l[1]:l[1]+s.bottom}).nodes(b.map(t=>new x.Node(t.props.noteData.y[0]||t.props.noteData.y,Nt(t.props.noteData,u,d,i)+h))).compute(),A=new x.Force({minPos:void 0!==p.top?0+p.top:g?0:0-s.top,maxPos:void 0!==p.bottom?l[1]-p.bottom:l[1]+s.bottom}).nodes(E.map(t=>new x.Node(t.props.noteData.y[0]||t.props.noteData.y,Nt(t.props.noteData,u,d,i)+h))).compute(),S=new x.Force({minPos:void 0!==p.left?0+p.left:m?0:0-s.left,maxPos:void 0!==p.right?l[0]-p.right:l[0]+s.right}).nodes(k.map(t=>new x.Node(t.props.noteData.x[0]||t.props.noteData.x,Dt(t.props.noteData,u,r)+h))).compute(),P=new x.Force({minPos:void 0!==p.left?0+p.left:0-s.left,maxPos:void 0!==p.right?l[0]-p.right:y?l[0]:l[0]+s.right}).nodes(M.map(t=>new x.Node(t.props.noteData.x[0]||t.props.noteData.x,Dt(t.props.noteData,u,r)+h))).compute(),$=Math.max(...M.map(t=>Nt(t.props.noteData,u,d,i)+h)),j=Math.max(...k.map(t=>Nt(t.props.noteData,u,d,i)+h)),_=Math.max(...b.map(t=>Dt(t.props.noteData,u,r)+h)),O=Math.max(...E.map(t=>Dt(t.props.noteData,u,r)+h)),D=w.nodes(),N=A.nodes(),T=S.nodes(),C=P.nodes();return b.forEach((e,o)=>{const a=0-D[o].layerIndex*_-jt("left",c,n),i=D[o].currentPos;e.props.noteData.nx=a,e.props.noteData.ny=i,e.props.noteData.note&&!t.isValidElement(e)&&(e.props.noteData.note.orientation=e.props.noteData.note.orientation||"leftRight",e.props.noteData.note.align=e.props.noteData.note.align||"right")}),E.forEach((e,o)=>{const a=l[0]+N[o].layerIndex*O+jt("right",c,n),i=N[o].currentPos;e.props.noteData.nx=a,e.props.noteData.ny=i,e.props.noteData.note&&!t.isValidElement(e)&&(e.props.noteData.note.orientation=e.props.noteData.note.orientation||"leftRight",e.props.noteData.note.align=e.props.noteData.note.align||"left")}),k.forEach((t,e)=>{const o=T[e].currentPos,a=0-T[e].layerIndex*j-jt("top",c,n);t.props.noteData.nx=o,t.props.noteData.ny=a}),M.forEach((t,e)=>{const o=C[e].currentPos,a=l[1]+C[e].layerIndex*$+jt("bottom",c,n);t.props.noteData.nx=o,t.props.noteData.ny=a}),e}return e})(i,y,e):i.map((e,n)=>{const a=Object.assign(Object.assign({},o[n].props.noteData),e.props.noteData);return t.createElement(Mt,{key:e.key,noteData:a})}),s=[...o,...r]}return m&&(l=((t,e)=>e.map((e,n)=>t.htmlAnnotationRule(e,n,t)).filter(t=>null!=t))(e,d)),{svgAnnotations:s,htmlAnnotations:l,adjustedAnnotations:o,adjustedAnnotationsKey:a,adjustedAnnotationsDataVersion:g}};function zt(e){const{legendSettings:n,margin:o,size:a,annotations:r,annotationHandling:l}=e,c=$t(t=>t.tooltip);let u=null!=c?r.concat(c):r,d=$t(t=>t.changeTooltip);const h=Object.assign(Object.assign({},e),{annotations:u,voronoiHover:t=>{d(t)}}),p="object"==typeof l?l:{layout:{type:l},dataVersion:""},{dataVersion:f=""}=p,[m,y]=i([]),[g,x]=i([]),[v,b]=i([]),[E,k]=i(""),[M,w]=i(f),A=Tt(h,u),S=A.filter(t=>t.props&&t.props.noteData&&!t.props.noteData.fixedPosition),P=_t(S,p,a);let $;if(s(()=>{const t=A.filter(t=>!t.props||!t.props.noteData||t.props.noteData.fixedPosition),e=Ct(h,{adjustedAnnotations:m,adjustedAnnotationsKey:E,adjustedAnnotationsDataVersion:M,adjustableAnnotations:S,fixedAnnotations:t});y(e.adjustedAnnotations),k(e.adjustedAnnotationsKey),w(e.adjustedAnnotationsDataVersion),x(e.svgAnnotations),b(e.htmlAnnotations)},[P,f,u.length,u.map(t=>function(t){const e=new Set;return JSON.stringify(t,(t,n)=>e.has(n)?"...":"object"==typeof n?(e.add(n),"note"===t?`${n.label}-${n.title}`:"connector"===t?`${n.end}-${n.type}`:"subject"===t?""+n.radius:"object"==typeof n.column?`${n.column.x}-${n.column.y}-${n.column.name}`:n.voronoiX||n.voronoiY||n.x||n.y||n.dx||n.dy||n.label||n.type||n.key||n.hierarchicalID||n.id||n.name?`${n.voronoiX}-${n.voronoiY}-${n.dx}-${n.dy}-${n.x}-${n.y}-${n.label}-${n.type}-${n.key}-${n.hierarchicalID}-${n.id}-${n.name}`:"..."):n)}(t)).join("-")]),n){const e={left:[15,15],right:[a[0]+15,15]},{position:o="right",title:i="Legend"}=n;$=t.createElement("g",{transform:`translate(${e[o].join(",")})`},t.createElement(Q,Object.assign({},n,{title:i,position:o})))}return 0!==u.length||n?t.createElement("div",{className:"annotation-layer",style:{position:"absolute",pointerEvents:"none",background:"none"}},t.createElement("svg",{className:"annotation-layer-svg",height:a[1],width:a[0],style:{background:"none",pointerEvents:"none",position:"absolute",left:o.left+"px",top:o.top+"px",overflow:"visible"}},t.createElement("g",null,$,g)),t.createElement("div",{className:"annotation-layer-html",style:{background:"none",pointerEvents:"none",position:"absolute",height:a[1]+"px",width:a[0]+"px",left:o.left+"px",top:o.top+"px"}},v)):null}const Rt=t=>t instanceof Date?t.getTime():t,Bt=({type:t="stackedarea",data:e,xProp:n,yProp:o,yPropMiddle:a,sort:i,yPropTop:r,yPropBottom:s})=>{const l=new Map,c=e.map(()=>0);let u=0;for(const t of e){t.__lineIndex=u;for(const e of t.data){const t=Rt(e[n]);c[u]+=e[o],l.has(t)||l.set(t,[]),l.get(t)[u]=e}u++}let d=(t,e)=>c[e.key]-c[t.key];"stackedpercent-invert"!==t&&"stackedarea-invert"!==t||(d=(t,e)=>c[t.key]-c[e.key]),null!==(i=void 0===i?d:i)&&(e=e.sort(i));const h=e.map(t=>t.__lineIndex);for(const[,e]of l){let n=0,i=0;const l=g(e,t=>(null==t?void 0:t[o])>0?t[o]:0),c=g(e,t=>0>(null==t?void 0:t[o])?t[o]:0);for(const u of h){const d=e[u];if(d)if(0>d[o]){if("linepercent"===t||"stackedpercent"===t||"stackedpercent-invert"===t){const e=d[o]/c;if(d.percent=e,"linepercent"===t)d[s]=d[s]=d[r]=d[a]=e;else{const t=0>c?e:0;d[s]=0===c?0:-n/c,d[r]=d[s]-t,d[a]=d[s]-t/2}}else d[s]=n,d[r]=n+d[o],d[a]=n+d[o]/2;n+=d[o]}else{if("linepercent"===t||"stackedpercent"===t||"stackedpercent-invert"===t){const e=d[o]/l;if(d.percent=e,"linepercent"===t)d[s]=d[r]=d[a]=e;else{const t=l>0?e:0;d[s]=0===l?0:i/l,d[r]=d[s]+t,d[a]=d[s]+t/2}}else d[s]=i,d[r]=i+d[o],d[a]=i+d[o]/2;i+=d[o]}}}return e},Ft=({data:t,y1:e,x1:n,yPropTop:o,yPropMiddle:a,yPropBottom:i,xPropTop:r,xPropMiddle:s,xPropBottom:l})=>{if(e)for(const n of t)for(const t of n.data)t[i]=e(t),t[a]=t[o];if(n)for(const e of t)for(const t of e.data)t[l]=n(t),t[s]=(t[l]+t[r])/2;return t},Lt=({data:t,y1:e,yPropTop:n,yPropMiddle:o,yPropBottom:a,type:i="cumulative"})=>{for(const r of t){let t=0;const s="cumulative-reverse"===i?r.data.reverse():r.data;for(const i of s)t+=i[n],i[a]=i[n]=i[o]=t,e&&(i[a]=e(i),i[o]=i[a]+i[n]/2)}return t},It=({type:t="bumpline",data:e,xProp:n,yProp:o,yPropMiddle:a,yPropTop:i,yPropBottom:r})=>{const s=new Map;for(const t of e)for(const e of t.data){const t=Rt(e[n]);s.has(t)||s.set(t,[]),s.get(t).push(e)}let l=(t,e)=>t[o]>e[o]?1:-1;"bumparea-invert"!==t&&"bumpline-invert"!==t||(l=(t,e)=>e[o]>t[o]?1:-1);for(const[,e]of s){let n=0,s=0;e.sort(l);let c=1;for(const l of e)"bumparea"===t||"bumparea-invert"===t?0>l[o]?(l[i]=n+l[o],l[a]=n+l[o]/2,l[r]=n,n+=l[o]):(l[i]=s+l[o],l[a]=s+l[o]/2,l[r]=s,s+=l[o]):(l[o]=c,l[i]=c,l[r]=c),c++}return e},Wt="x",Vt="y",Ht="yMiddle",qt="yTop",Gt="yBottom",Xt="xMiddle",Yt="xTop",Kt="xBottom",Qt=(t,e,n,o)=>[...t.map((t,o)=>[t[0],t[1]+n(e[o])]),...t.map((t,n)=>[t[0],t[1]-o(e[n])]).reverse()],Zt=t=>t&&t.extent||Array.isArray(t)&&t||[],Jt=()=>!0,Ut={top:qt,bottom:Gt,orphan:Vt},te={top:Yt,bottom:Kt,orphan:Wt},ee={stackedarea:Bt,"stackedarea-invert":Bt,stackedpercent:Bt,"stackedpercent-invert":Bt,linepercent:Bt,difference:({data:t,yProp:e,yPropTop:n,yPropBottom:o})=>(t.forEach((a,i)=>{a.data.forEach((a,r)=>{const s=0===i?1:0;a[e]>t[s].data[r][e]?(a[o]=t[s].data[r][e],a[n]=a[e]):(a[n]=a[e],a[o]=a[e])})}),t),bumparea:It,bumpline:It,"bumparea-invert":It,line:Ft,area:Ft,cumulative:Lt,"cumulative-reverse":Lt};function ne(t,e){const n=[];for(const t of e)n.push(Object.assign({},t));for(const e of t)e.parentSummary||n.push(e);return n}const oe=({lineDataAccessor:e,xAccessor:n,yAccessor:o,summaries:a,points:i,lines:r,lineType:s,showLinePoints:l,showSummaryPoints:c,xExtent:u,yExtent:d,invertX:h,invertY:p,summaryDataAccessor:m,summaryType:y,adjustedSize:g,margin:x,summaryStyleFn:M,summaryClassFn:w,summaryRenderModeFn:A,chartSize:S,filterRenderedLines:P,filterRenderedSummaries:$,filterRenderedPoints:j,defined:_=Jt,annotations:O=[]})=>{let D=[],N=[],T=[],C=[],z=[];if(i){n.forEach((t,e)=>{o.forEach((n,o)=>{let a=0;for(const r of i){const i=t(r,a),s=n(r,a),l={x:i,y:s,data:r,xIndex:e,yIndex:o};Array.isArray(s)&&(l[Gt]=Math.min(...s),l[qt]=Math.max(...s),l[Ht]=(l[Gt]+l[qt])/2),Array.isArray(i)&&(l[Kt]=Math.min(...i),l[Yt]=Math.max(...i),l[Xt]=(l[Kt]+l[Yt])/2),T.push(l),a++}})});for(const t of T)D.push(Object.assign(Object.assign({},t),{[Wt]:t[Yt]||t[Kt]||t.x,[Vt]:t[qt]||t[Gt]||t.y}))}if(r){N=(({data:t,lineDataAccessor:e,xProp:n,xPropTop:o,xPropBottom:a,yProp:i,yPropTop:r,yPropBottom:s,xAccessor:l,yAccessor:c})=>{Array.isArray(t)||(t=[t]);const u=[];return e.forEach((e,d)=>{l.forEach((l,h)=>{c.forEach((c,p)=>{t.forEach(t=>{const f=Object.assign(Object.assign({},t),{xIndex:h,yIndex:p,lineIndex:d});f.data=e(t).map((t,e)=>{const u={data:t};return u[n]=l(t,e),u[o]=u[n],u[a]=u[n],u[i]=c(t,e),u[r]=u[i],u[s]=u[i],u}),f.key=f.key||u.length,u.push(f)})})})}),u})({data:r,lineDataAccessor:e,xProp:Wt,xPropTop:Yt,xPropBottom:Kt,yProp:Vt,yPropTop:qt,yPropBottom:Gt,xAccessor:n,yAccessor:o}),C=function(t,e){return n=>ee[ae(t.type,n)](Object.assign(Object.assign(Object.assign({},t),e),{data:n}))}(s,{xProp:Wt,yProp:Vt,yPropMiddle:Ht,yPropTop:qt,yPropBottom:Gt,xPropMiddle:Xt,xPropTop:Yt,xPropBottom:Kt})(N);for(const t of C)for(let e=0;t.data.length>e;e++){const n=t.data[e];if(!_(Object.assign({},n.data,n),e))continue;const o={parentLine:t,y:n.y,x:n.x,xTop:n.xTop,xMiddle:n.xMiddle,xBottom:n.xBottom,yTop:n.yTop,yMiddle:n.yMiddle,yBottom:n.yBottom,data:n.data};n.percent&&(o.percent=n.percent),D.push(o)}if(l){const t=!0===l?Xt:te[l],e=!0===l?Ht:Ut[l];C.forEach(n=>{n.data.filter((t,e)=>{if(_(Object.assign({},t.data,t))){if("orphan"===l){const t=n.data[e-1],o=n.data[e+1];return!(t&&_(Object.assign({},t.data,t))||o&&_(Object.assign({},o.data,o)))}return!0}return!1}).forEach(o=>{T.push(Object.assign(Object.assign({},o),{parentLine:n,[Vt]:void 0!==o[e]?o[e]:void 0!==o[Ht]?o[Ht]:void 0!==o[Gt]?o[Gt]:o.y,[Wt]:void 0!==o[t]?o[t]:void 0!==o[Xt]?o[Xt]:void 0!==o[Kt]?o[Kt]:o.y}))})})}}a&&(z=(({data:t,summaryDataAccessor:e,xAccessor:n,yAccessor:o})=>{const a=[];return e.forEach(e=>{n.forEach(n=>{o.forEach(o=>{const i=t=>e(t).map((t,e)=>[n(t,e),o(t,e)]);t.forEach(t=>{a.push(Object.assign(Object.assign({},t),{_baseData:e(t),_xyfCoordinates:i(t)}))})})})}),a})({data:a,summaryDataAccessor:m,xAccessor:n,yAccessor:o}),z.forEach(t=>{const e=t._baseData;t._xyfCoordinates.length>0&&t._xyfCoordinates[0][0][0]?t._xyfCoordinates[0].forEach(n=>{Array.isArray(n)&&n.map((n,o)=>Object.assign({parentSummary:t},e[o],{[Wt]:n[0],[Vt]:n[1]})).forEach(t=>{c&&T.push(Object.assign(Object.assign({x:0},t),{[Vt]:t[qt]||t[Gt]||t[Vt]})),D.push(Object.assign({x:0,y:0},t))})}):t._xyfCoordinates.length>0&&Array.isArray(t._xyfCoordinates)&&t._xyfCoordinates.map((n,o)=>Object.assign(Object.assign({parentSummary:t},e[o]),{[Wt]:n[0],[Vt]:n[1]})).forEach(t=>{c&&T.push(Object.assign(Object.assign({x:0},t),{[Vt]:t[qt]||t[Gt]||t[Vt]})),D.push(Object.assign({x:0,y:0},t))})}));let R,B,F,L,I=[],W=[];u&&!Array.isArray(u)&&!0===u.includeAnnotations&&n.forEach(t=>{O.forEach((e,n)=>{const o=t(e,n);isFinite(o)&&I.push({[Wt]:o})})}),d&&!Array.isArray(d)&&!0===d.includeAnnotations&&o.forEach(t=>{O.forEach((e,n)=>{const o=t(e,n);isFinite(o)&&W.push({[Vt]:o})})});for(const t of D){const e=void 0===t[Kt]?t[Wt]:Math.min(t[Yt],t[Kt]),n=void 0===t[Yt]?t[Wt]:Math.max(t[Kt],t[Yt]),o=void 0===t[Gt]?t[Vt]:Math.min(t[qt],t[Gt]),a=void 0===t[qt]?t[Vt]:Math.max(t[Gt],t[qt]);void 0===e||void 0!==R&&e>=R||(R=e),void 0===n||void 0!==B&&B>=n||(B=n),void 0===o||void 0!==F&&o>=F||(F=o),void 0===a||void 0!==L&&L>=a||(L=a)}for(const t of I){const e=t[Wt];void 0===e||void 0!==R&&e>=R||(R=e),void 0===e||void 0!==B&&B>=e||(B=e)}for(const t of W){const e=t[Vt];void 0===e||void 0!==F&&e>=F||(F=e),void 0===e||void 0!==L&&L>=e||(L=e)}const V=[R,B],H=[F,L],q=Zt(u),G=Zt(d);let X=[G&&void 0!==G[0]?G[0]:H[0],G&&void 0!==G[1]?G[1]:H[1]],Y=[q&&void 0!==q[0]?q[0]:V[0],q&&void 0!==q[1]?q[1]:V[1]];if(!h||q&&2===q.length||(Y=[Y[1],Y[0]]),"bumpline"!==s.type&&!p||G&&2===G.length||(X=[X[1],X[0]]),y.type&&"contour"===y.type)z=function({summaryType:t,data:e,finalXExtent:n,finalYExtent:o}){let a=[];t.type||(t={type:t});const{resolution:i=500,thresholds:r=10,bandwidth:s=20,neighborhood:l}=t,c=f().domain(n).rangeRound([0,i]).nice(),u=f().domain(o).rangeRound([i,0]).nice();return e.forEach(t=>{let e=E().size([i,i]).x(t=>c(t[0])).y(t=>u(t[1])).thresholds(r).bandwidth(s)(t._xyfCoordinates);l&&(e=[e[0]]);const n=Math.max(...e.map(t=>t.value));e.forEach(e=>{e.parentSummary=t,e.bounds=[],e.percent=e.value/n,e.coordinates.forEach(t=>{t.forEach((n,o)=>{t[o]=n.map(t=>[c.invert(t[0]),u.invert(t[1])]),0===o&&e.bounds.push(function(t){let e=[1/0,0],n=[-1/0,0],o=[0,1/0],a=[0,-1/0];return t.forEach(t=>{e=e[0]>t[0]?t:e,n=t[0]>n[0]?t:n,a=t[1]>a[1]?t:a,o=o[1]>t[1]?t:o}),{center:[(e[0]+n[0])/2,(o[1]+a[1])/2],top:o,left:e,right:n,bottom:a}}(t[o]))})})}),a=[...a,...e]}),a}({summaryType:y,data:z,finalXExtent:Y,finalYExtent:X});else if(y.type&&"linebounds"===y.type){if(z=function({summaryType:t,data:e,defined:n}){let o=[];t.type||(t={type:t});const{boundingAccessor:a,topBoundingAccessor:i=a,bottomBoundingAccessor:r=a}=t;return e.forEach(t=>{const e=t._baseData.map(n);let a=[],s=[];const l=[{xyf:s,base:a}];e.forEach((n,o)=>{!0===n?(a.push(t._baseData[o]),s.push(t._xyfCoordinates[o])):e[o+1]&&(a=[],s=[],l.push({xyf:s,base:a}))}),l.forEach(({xyf:e,base:n})=>{const a={data:t,parentSummary:t,_xyfCoordinates:Qt(e,n,i,r)};o=[...o,a]})}),o}({summaryType:y,data:z,defined:_}),!G||2!==G.length)for(const t of z)for(const e of t._xyfCoordinates){const t=e[1];void 0!==t&&isFinite(t)&&(X[0]>t&&(X[0]=t),t>X[1]&&(X[1]=t))}}else y.type&&"hexbin"===y.type?(z=function({preprocess:e=!0,processedData:n=!1,summaryType:o,data:a,finalXExtent:i,finalYExtent:r,size:s,xScaleType:l=f(),yScaleType:c=f(),margin:u,styleFn:d,classFn:h,renderFn:p,chartSize:m}){let y=i,g=r;if(!y){const t=a.coordinates.map(t=>t.x);y=[Math.min(...t),Math.max(...t)]}if(!g){const t=a.coordinates.map(t=>t.y);g=[Math.min(...t),Math.max(...t)]}if(n&&a)return a.coordinates;let x,v=[];x=o.type?o:{type:x};const{bins:b=.05,cellPx:E,binValue:M=t=>t.length,binMax:w,customMark:A}=x;a.coordinates&&!a._xyfCoordinates&&(a._xyfCoordinates=a.coordinates.map(t=>[t.x,t.y]));const S=Array.isArray(a)?a:[a],P=l.domain(y).range([0,s[0]]),$=c.domain(g).range([0,s[1]]),j=E&&E/2||(b>1?1/b:b)*s[0]/2,_=k().x(t=>P(t._xyfPoint[0])).y(t=>$(t._xyfPoint[1])).radius(j).size(s);let O;const D=_.centers();return S.forEach(e=>{O=0;const n=_(e._xyfCoordinates.map((t,n)=>Object.assign({_xyfPoint:t},e.coordinates[n]))),o={};n.forEach(t=>{o[`${parseInt(t.x)}-${parseInt(t.y)}`]=!0}),D.forEach(t=>{if(!o[`${parseInt(t[0])}-${parseInt(t[1])}`]){const e=[];e.x=t[0],e.y=t[1],n.push(e)}}),O=Math.max(...n.map(t=>M(t))),w&&w(O);const a=[[0,-1],[.866,-.5],[.866,.5],[0,1],[-.866,.5],[-.866,-.5]],i=P.invert(j)-y[0],r=$.invert(j)-g[0],l=a.map(t=>[t[0]*i,t[1]*r]),c=n.map(n=>{const o=M(n),i=n.x,r=n.y;n.x=P.invert(n.x),n.y=$.invert(n.y);const c=o/O;return{customMark:A&&t.createElement("g",{transform:`translate(${i},${s[1]-r})`},A({d:Object.assign(Object.assign({},n),{binItems:n,percent:c,value:o,radius:j,hexCoordinates:a.map(t=>[t[0]*j,t[1]*j])}),margin:u,styleFn:d,classFn:h,renderFn:p,chartSize:m,adjustedSize:s})),_xyfCoordinates:l.map(t=>[t[0]+n.x,t[1]+n.y]),value:o,percent:c,data:n,parentSummary:e,centroid:!0}});v=[...v,...c]}),e?(v.forEach(t=>{t.x=t.data.x,t.y=t.data.y}),{type:"hexbin",processedData:!0,coordinates:v,binMax:O}):v}({summaryType:y,data:z[0],processedData:a&&!!a[0].processedData,preprocess:!1,finalXExtent:Y,finalYExtent:X,size:g,margin:x,styleFn:M,classFn:w,renderFn:A,chartSize:S}),D=ne(D,z)):y.type&&"heatmap"===y.type?(z=function({preprocess:e=!0,processedData:n=!1,summaryType:o,data:a,finalXExtent:i=[Math.min(...a.coordinates.map(t=>t.x)),Math.max(...a.coordinates.map(t=>t.x))],finalYExtent:r=[Math.min(...a.coordinates.map(t=>t.y)),Math.max(...a.coordinates.map(t=>t.y))],size:s,xScaleType:l=f(),yScaleType:c=f(),margin:u,styleFn:d,classFn:h,renderFn:p,chartSize:m}){if(n&&a)return a.coordinates;a.coordinates&&!a._xyfCoordinates&&(a._xyfCoordinates=a.coordinates.map(t=>[t.x,t.y]));const y=Array.isArray(a)?a:[a];let g,x=[];g=o.type?o:{type:g};const{binValue:v=t=>t.length,xBins:b=g.yBins||.05,yBins:E=b,xCellPx:k=!g.xBins&&g.xCellPx,yCellPx:M=!g.yBins&&g.yCellPx,customMark:w,binMax:A}=g,S=1>b?b:1/b,P=1>E?E:1/E,$=l.domain(i).range([0,s[0]]),j=c.domain(r).range([s[1],0]),_=[Math.ceil((k&&k/s[0]||S)*s[0]*10)/10,Math.ceil((M&&M/s[1]||P)*s[1]*10)/10];let O=-1/0;return y.forEach(e=>{const n=[],o=[];let a,i;for(let t=0;s[0]>Math.ceil(t);t+=_[0]){const r=$.invert(t),l=$.invert(t+_[0]);i=[],n.push(i);for(let n=0;s[1]>Math.ceil(n);n+=_[1]){const s=j.invert(n),c=j.invert(n+_[1]);a={gx:t,gy:n,gw:_[0],gh:_[1],x:(r+l)/2,y:(s+c)/2,binItems:[],value:0,_xyfCoordinates:[[r,s],[l,s],[l,c],[r,c]],parentSummary:e},i.push(a),o.push(a)}i.push(a)}n.push(i),e._xyfCoordinates.forEach((t,o)=>{const a=$(t[0]),i=j(t[1]),r=Math.floor(a/_[0]),s=Math.floor(i/_[1]);n[r][s]&&n[r][s].binItems.push(e.coordinates[o])}),o.forEach(t=>{t.value=v(t.binItems),O=Math.max(O,t.value)}),o.forEach(e=>{e.percent=e.value/O,e.customMark=w&&t.createElement("g",{transform:`translate(${e.gx},${e.gy})`},w({d:e,margin:u,styleFn:d,classFn:h,renderFn:p,chartSize:m,adjustedSize:s}))}),x=[...x,...o]}),A&&A(O),e?{type:"heatmap",processedData:!0,_baseData:[],_xyfCoordinates:[],data:[],bounds:[],x:0,y:0,coordinates:x,binMax:O}:x}({summaryType:y,data:z[0],processedData:a&&!!a[0].processedData,preprocess:!1,finalXExtent:Y,finalYExtent:X,size:g,margin:x,styleFn:M,classFn:w,renderFn:A,chartSize:S}),D=ne(D,z)):y.type&&"trendline"===y.type&&(z=function({preprocess:t=!1,summaryType:e,data:n,finalXExtent:o=[Math.min(...n.coordinates.map(t=>t.x)),Math.max(...n.coordinates.map(t=>t.x))],xScaleType:a=f()}){if(t)return n[0].coordinates;let i,r=[];i=e.type?e:{type:i};const{regressionType:s="linear",order:l=2,precision:c=4,controlPoints:u=20,curve:d=b}=i;let h=s;o[0]>=0||"logarithmic"!==s&&"power"!==s&&"exponential"!==s||(console.error(`Cannot use this ${s} regressionType type with value range that goes below 0, defaulting to linear`),h="linear"),n.coordinates&&!n._xyfCoordinates&&(n._xyfCoordinates=n.coordinates.map(t=>[t.x,t.y]));const p=Array.isArray(n)?n:[n],m=a.domain([0,1]).range(o);return r=[],p.forEach(t=>{const e=v[h](t._xyfCoordinates.map(t=>{let e=t[0],n=t[1];return"number"!=typeof e&&(e=e.getTime()),"number"!=typeof n&&(n=n.getTime()),[e,n]}),{order:l,precision:c}),n=1/u;let o=[0,1];if("linear"!==h){o=[];for(let t=0;1+n>t;t+=n)o.push(t)}const a=[];o.forEach(t=>{a.push(e.predict(m(t)))}),r.push({centroid:!1,customMark:void 0,data:t,parentSummary:t,value:e.string,r2:e.r2,curve:d,_xyfCoordinates:a})}),r}({summaryType:y,data:z[0],preprocess:a&&!!a[0].processedData,finalXExtent:Y}),D=ne(D,z));return P&&(C=C.filter(P),D=D.filter((t,e)=>!t.parentLine||P(t.parentLine,e,[]))),j&&(D=D.filter(j)),$&&(z=z.filter($),D=D.filter((t,e)=>!t.parentSummary||$(t.parentSummary,e,[]))),{xExtent:Y,yExtent:X,projectedLines:C,projectedPoints:T,projectedSummaries:z,fullDataset:D,calculatedXExtent:V,calculatedYExtent:H}},ae=(t,e)=>!ee[t]||"difference"===t&&2!==e.length?"line":t,ie={category10:M,tableau10:D,set3:O,blues:_,reds:j,greens:$,oranges:P,purples:S,viridis:A,plasma:w},re=M;function se(t,e,n){if("function"==typeof e)return e(t);const o=t[e];return n?n(o):re[Math.abs(function(t){let e=0;for(let n=0;t.length>n;n++)e=(e<<5)-e+t.charCodeAt(n),e&=e;return Math.abs(e)}(o+""))%re.length]}const le="#007bff";function ce(t,e,o="category10"){return n(()=>{if(e&&"function"!=typeof e)return function(t,e,n="category10"){const o=Array.from(new Set(t.map(t=>t[e]))),a=o.every(t=>"number"==typeof t||!isNaN(Number(t)));if(Array.isArray(n))return m().domain(o).range(n).unknown("#999");const i=ie[n]||ie.category10;if(a&&"function"==typeof i)return t=>i(Number(t)/Math.max(...o.map(Number)));{const t=Array.isArray(i)?i:re;return m().domain(o).range(t).unknown("#999")}}(t,e,o)},[t,e,o])}function ue({data:t,colorBy:e,colorScale:n,getColor:o,strokeColor:a,strokeWidth:i}){return{legendGroups:[{styleFn:t=>{const e={fill:t.color,stroke:t.color};return void 0!==a&&(e.stroke=a),void 0!==i&&(e.strokeWidth=i),e},type:"fill",items:Array.from(new Set(t.map(t=>"function"==typeof e?e(t):t[e]))).map(a=>{const i=t.find("function"==typeof e?t=>e(t)===a:t=>t[e]===a),r=i?o(i,e,n):n?n(a):"#000000";return{label:a+"",color:r}}),label:""}]}}const de={background:"rgba(0, 0, 0, 0.85)",color:"white",padding:"8px 12px",borderRadius:"4px",fontSize:"14px",lineHeight:"1.5",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)",pointerEvents:"none",maxWidth:"300px",wordWrap:"break-word"};function he(t,e){return"function"==typeof e?e(t):t[e]}function pe(t,e){return e?e(t):null==t?"":"number"==typeof t?t.toLocaleString():t instanceof Date?t.toLocaleDateString():"object"==typeof t&&null!==t?void 0!==t.id?t.id+"":void 0!==t.name?t.name+"":JSON.stringify(t):t+""}function fe(e){return!0===e||("function"==typeof e?e:!1!==e&&void 0!==e&&("object"!=typeof e||null===e||!("fields"in e)&&!("title"in e)||function(e={}){const{fields:n,title:o,format:a,style:i={},className:r=""}=e;return e=>{if(!e||"object"!=typeof e)return null;let s;const l=[];if(o){const t=he(e,o);s=pe(t,a)}if(n&&n.length>0)n.forEach(t=>{let n,o,i;"string"==typeof t?(n=t,o=t,i=a):(n=t.label,o=t.accessor||t.key||"",i=t.format||a);const r=he(e,o);l.push({label:n,value:pe(r,i)})});else if(!o){const t=["value","y","name","id","label"];for(const n of t)if(void 0!==e[n]){s=pe(e[n],a);break}if(!s){const t=Object.keys(e).filter(t=>!t.startsWith("_"));t.length>0&&(s=pe(e[t[0]],a))}}const c=Object.assign(Object.assign({},de),i);return t.createElement("div",{className:("semiotic-tooltip "+r).trim(),style:c},s&&t.createElement("div",{style:{fontWeight:l.length>0?"bold":"normal"}},s),l.map((e,n)=>t.createElement("div",{key:n,style:{marginTop:0===n&&s?"4px":0}},e.label&&t.createElement("span",null,e.label,": "),e.value)))}}(e)))}function me({componentName:e,message:n,width:o,height:a}){return t.createElement("div",{role:"alert",style:{width:o,height:Math.max(a,120),display:"flex",alignItems:"center",justifyContent:"center",border:"1px dashed rgba(128, 128, 128, 0.4)",borderRadius:8,background:"rgba(128, 128, 128, 0.04)",padding:24,boxSizing:"border-box"}},t.createElement("div",{style:{textAlign:"center",maxWidth:400}},t.createElement("div",{style:{fontSize:13,fontWeight:600,color:"rgba(128, 128, 128, 0.7)",marginBottom:6,fontFamily:"monospace"}},e),t.createElement("div",{style:{fontSize:14,color:"rgba(128, 128, 128, 0.9)",lineHeight:1.5}},n)))}function ye({data:t,accessors:e,requiredProps:n}){if(n)for(const[t,e]of Object.entries(n))if(null==e)return t+" is required. Provide a field name or function.";if(!t||!Array.isArray(t)||0===t.length)return"No data provided. Pass a non-empty array to the data prop.";if(e){const n=t[0];if(n&&"object"==typeof n)for(const[t,o]of Object.entries(e))if(o&&"string"==typeof o&&!(o in n))return`${t} "${o}" not found in data. Available fields: ${Object.keys(n).join(", ")}.`}return null}function ge(t,e){return t?!0===t?{name:"hover",fields:e||[]}:"string"==typeof t?{name:t,fields:e||[]}:{name:t.name||"hover",fields:t.fields}:null}function xe(t,e,n){return e?o=>{var a,i;const r=Object.assign({},t(o));return e.isActive&&(e.predicate(o)?(null==n?void 0:n.selectedStyle)&&Object.assign(r,n.selectedStyle):(r.fillOpacity=null!==(a=null==n?void 0:n.unselectedOpacity)&&void 0!==a?a:.2,r.strokeOpacity=null!==(i=null==n?void 0:n.unselectedOpacity)&&void 0!==i?i:.2,(null==n?void 0:n.unselectedStyle)&&Object.assign(r,n.unselectedStyle))),r}:t}function ve(t){const e=[];for(const[n,o]of Object.entries(t.fields))if("point"===o.type)e.push(t=>o.values.has(t[n]));else{const[t,a]=o.range;e.push(e=>{const o=e[n];return o>=t&&a>=o})}return t=>e.every(e=>e(t))}function be(t,e){let n=t.get(e);return n||(n={name:e,resolution:"union",clauses:new Map},t.set(e,n)),n}const[Ee,ke]=At(t=>({selections:new Map,setClause(e,n){t(t=>{const o=new Map(t.selections),a=be(o,e),i=new Map(a.clauses);return i.set(n.clientId,n),o.set(e,Object.assign(Object.assign({},a),{clauses:i})),{selections:o}})},clearClause(e,n){t(t=>{const o=t.selections.get(e);if(!o)return{};const a=new Map(t.selections),i=new Map(o.clauses);return i.delete(n),a.set(e,Object.assign(Object.assign({},o),{clauses:i})),{selections:a}})},setResolution(e,n){t(t=>{const o=new Map(t.selections),a=be(o,e);return o.set(e,Object.assign(Object.assign({},a),{resolution:n})),{selections:o}})},clearSelection(e){t(t=>{const n=new Map(t.selections),o=n.get(e);return o&&n.set(e,Object.assign(Object.assign({},o),{clauses:new Map})),{selections:n}})}}));function Me(t){const e=h(),o=t.clientId||e,{name:a}=t,i=ke(t=>t.selections.get(a)),s=ke(t=>t.setClause),l=ke(t=>t.clearClause),c=n(()=>!!i&&i.clauses.size>0,[i]);return{predicate:n(()=>i&&0!==i.clauses.size?function(t,e){const n=[];for(const[o,a]of t.clauses)"crossfilter"===t.resolution&&o===e||n.push(ve(a));return 0===n.length?()=>!0:"intersect"===t.resolution?t=>n.every(e=>e(t)):t=>n.some(e=>e(t))}(i,o):()=>!0,[i,o]),isActive:c,selectPoints:r(t=>{const e={};for(const[n,o]of Object.entries(t))e[n]={type:"point",values:new Set(o)};s(a,{clientId:o,type:"point",fields:e})},[o,a,s]),selectInterval:r(t=>{const e={};for(const[n,o]of Object.entries(t))e[n]={type:"interval",range:o};s(a,{clientId:o,type:"interval",fields:e})},[o,a,s]),clear:r(()=>{l(a,o)},[l,a,o]),clientId:o}}function we(t){const e=t.name||"hover",{fields:n}=t,{predicate:o,isActive:a,selectPoints:i,clear:s}=Me({name:e});return{onHover:r(t=>{if(!t)return void s();const e={};for(const o of n){const n=t[o];void 0!==n&&(e[o]=[n])}Object.keys(e).length>0&&i(e)},[n,i,s]),predicate:o,isActive:a}}function Ae(e){const{data:o,width:a=600,height:i=400,margin:s,className:l,title:c,categoryAccessor:u="category",valueAccessor:d="value",bins:h=25,relative:p=!1,categoryLabel:f,valueLabel:m,valueFormat:y,colorBy:g,colorScheme:x="category10",categoryPadding:v=20,enableHover:b=!0,showGrid:E=!1,showLegend:k,tooltip:M,frameProps:w={},selection:A,linkedHover:S}=e,P=o||[],$=ge(S,g?["string"==typeof g?g:""]:["string"==typeof u?u:""]),j=Me({name:(null==A?void 0:A.name)||"__unused__"}),_=we({name:(null==$?void 0:$.name)||"hover",fields:(null==$?void 0:$.fields)||[]}),O=A?{isActive:j.isActive,predicate:j.predicate}:null,D=ce(P,g,x),N=n(()=>t=>{const e=g?se(t,g,D):le;return{fill:e,stroke:e,fillOpacity:.8}},[g,D]),T=n(()=>xe(N,O,A),[N,O,A]),C=void 0!==k?k:!!g,z=n(()=>{if(C&&g)return ue({data:P,colorBy:g,colorScale:D,getColor:se})},[C,g,P,D]),R=n(()=>{const t=Object.assign({top:50,bottom:60,left:70,right:40},s);return z&&120>t.right&&(t.right=120),t},[s,z]),B=r(t=>{S&&_.onHover(t)},[S,_]),F=n(()=>e=>{const n=e.data||e,o=n.category||e.category||"",a=n.count,i=n.range;return t.createElement("div",{className:"semiotic-tooltip",style:de},o&&t.createElement("div",{style:{fontWeight:"bold"}},o+""),null!=a&&t.createElement("div",null,"Count: ",a),i&&2===i.length&&t.createElement("div",{style:{opacity:.8}},Number(i[0]).toFixed(1)," – ",Number(i[1]).toFixed(1)))},[]),L=ye({componentName:"Histogram",data:P,accessors:{categoryAccessor:u,valueAccessor:d}});if(L)return t.createElement(me,{componentName:"Histogram",message:L,width:a,height:i});const I=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"histogram",data:P,oAccessor:u,rAccessor:d,projection:"horizontal",summaryStyle:T,bins:h,normalize:p,size:[a,i],margin:R,barPadding:v,enableHover:b,showAxes:!0,oLabel:f,rLabel:m,rFormat:y,showGrid:E},z&&{legend:z}),c&&{title:c}),l&&{className:l}),{tooltipContent:M?fe(M):F}),S&&{customHoverBehavior:B}),w);return t.createElement(ut,Object.assign({},I))}function Se(e){const{data:o,width:a=600,height:i=400,margin:s,className:l,title:c,categoryAccessor:u="category",valueAccessor:d="value",orientation:h="vertical",bins:p=25,showIQR:f=!0,categoryLabel:m,valueLabel:y,valueFormat:g,colorBy:x,colorScheme:v="category10",categoryPadding:b=20,enableHover:E=!0,showGrid:k=!1,showLegend:M,tooltip:w,frameProps:A={},selection:S,linkedHover:P}=e,$=o||[],j=ge(P,x?["string"==typeof x?x:""]:["string"==typeof u?u:""]),_=Me({name:(null==S?void 0:S.name)||"__unused__"}),O=we({name:(null==j?void 0:j.name)||"hover",fields:(null==j?void 0:j.fields)||[]}),D=S?{isActive:_.isActive,predicate:_.predicate}:null,N=ce($,x,v),T=n(()=>t=>{const e=x?se(t,x,N):le;return{fill:e,stroke:e,fillOpacity:.6}},[x,N]),C=n(()=>xe(T,D,S),[T,D,S]),z=void 0!==M?M:!!x,R=n(()=>{if(z&&x)return ue({data:$,colorBy:x,colorScale:N,getColor:se})},[z,x,$,N]),B=n(()=>{const t=Object.assign({top:50,bottom:60,left:70,right:40},s);return R&&120>t.right&&(t.right=120),t},[s,R]),F=r(t=>{P&&O.onHover(t)},[P,O]),L=n(()=>e=>{const n=e.data||e,o=n.category||e.category||"",a=(Array.isArray(n)?n:[]).map(t=>{const e="function"==typeof d?d(t):t[d];return Number(e)}).filter(t=>!isNaN(t)).sort((t,e)=>t-e),i=a.length,r=i>0?a[Math.floor(i/2)]:null;return t.createElement("div",{className:"semiotic-tooltip",style:de},o&&t.createElement("div",{style:{fontWeight:"bold"}},o+""),i>0&&t.createElement("div",null,"n = ",i),null!=r&&t.createElement("div",null,"Median: ",r.toLocaleString()))},[d]),I=ye({componentName:"ViolinPlot",data:$,accessors:{categoryAccessor:u,valueAccessor:d}});if(I)return t.createElement(me,{componentName:"ViolinPlot",message:I,width:a,height:i});const W=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"violin",data:$,oAccessor:u,rAccessor:d,projection:"horizontal"===h?"horizontal":"vertical",summaryStyle:C,bins:p,showIQR:f,size:[a,i],margin:B,barPadding:b,enableHover:E,showAxes:!0,oLabel:m,rLabel:y,rFormat:g,showGrid:k},R&&{legend:R}),c&&{title:c}),l&&{className:l}),{tooltipContent:w?fe(w):L}),P&&{customHoverBehavior:F}),A);return t.createElement(ut,Object.assign({},W))}Ae.displayName="Histogram",Se.displayName="ViolinPlot";export{Mt as Annotation,zt as AnnotationLayer,vt as Axis,Ae as Histogram,Q as Legend,ut as StreamOrdinalFrame,Se as ViolinPlot,oe as calculateDataExtent};
@@ -1,11 +1,12 @@
1
+ import * as React from "react";
1
2
  import { CustomHoverType } from "../types/annotationTypes";
2
3
  import { InteractionLayerProps } from "../types/interactionTypes";
3
4
  export declare const changeVoronoi: (voronoiHover: Function, d: {
4
5
  type?: string;
5
- data?: object[];
6
- }, customHoverTypes: CustomHoverType, customHoverBehavior: Function, points: Object[], e: any) => void;
7
- export declare const clickVoronoi: (d: Object, customClickBehavior: Function, points: Object[], e: any) => void;
8
- export declare const doubleclickVoronoi: (d: Object, customDoubleClickBehavior: Function, points: Object[], e: any) => void;
6
+ data?: Record<string, any> | object[];
7
+ }, customHoverTypes: CustomHoverType, customHoverBehavior: Function, points: Object[], e: React.MouseEvent) => void;
8
+ export declare const clickVoronoi: (d: Object, customClickBehavior: Function, points: Object[], e: React.MouseEvent) => void;
9
+ export declare const doubleclickVoronoi: (d: Object, customDoubleClickBehavior: Function, points: Object[], e: React.MouseEvent) => void;
9
10
  export declare const brushStart: (e?: number[] | number[][], columnName?: string, data?: object, columnData?: object, interaction?: any) => void;
10
11
  export declare const brushing: (e?: number[] | number[][], columnName?: string, data?: object, columnData?: object, interaction?: any) => void;
11
12
  export declare const brushEnd: (e?: number[] | number[][], columnName?: string, data?: object, columnData?: object, interaction?: any) => void;
@@ -0,0 +1,16 @@
1
+ export declare function recursiveIDAccessor(idAccessor: any, node: any, accessorString: any): string;
2
+ export declare const defaultHierarchicalIDAccessor: (d: any) => any;
3
+ export declare const nodesEdgesFromHierarchy: (baseRootNode: any, idAccessor?: (d: any) => any) => {
4
+ edges: any[];
5
+ nodes: any[];
6
+ };
7
+ export declare function breadthFirstCompontents(baseNodes: any, hash: any): {
8
+ componentNodes: any[];
9
+ componentEdges: any[];
10
+ }[];
11
+ export declare const matrixify: ({ edgeHash, nodes, edgeWidthAccessor, nodeIDAccessor }: {
12
+ edgeHash: any;
13
+ nodes: any;
14
+ edgeWidthAccessor: any;
15
+ nodeIDAccessor: any;
16
+ }) => any[];
@@ -0,0 +1,2 @@
1
+ import { NetworkLayoutHandler } from "./types";
2
+ export declare const chordLayout: NetworkLayoutHandler;
@@ -0,0 +1,3 @@
1
+ import { NetworkLayoutHandler } from "./types";
2
+ export declare const forceLayout: NetworkLayoutHandler;
3
+ export declare const motifsLayout: NetworkLayoutHandler;
@@ -0,0 +1,10 @@
1
+ import { NetworkLayoutMap } from "./types";
2
+ export declare const hierarchicalTypeHash: {
3
+ dendrogram: any;
4
+ tree: any;
5
+ circlepack: any;
6
+ cluster: any;
7
+ treemap: any;
8
+ partition: any;
9
+ };
10
+ export declare const hierarchyLayouts: NetworkLayoutMap;
@@ -0,0 +1,8 @@
1
+ import { NetworkLayoutMap } from "./types";
2
+ export { NetworkLayoutHandler, NetworkLayoutMap } from "./types";
3
+ export { chordLayout } from "./chordLayout";
4
+ export { sankeyLayout, sankeyOrientHash } from "./sankeyLayout";
5
+ export { forceLayout, motifsLayout } from "./forceLayout";
6
+ export { hierarchyLayouts, hierarchicalTypeHash } from "./hierarchyLayout";
7
+ export { simpleLayouts, matrixLayout, arcLayout } from "./simpleLayouts";
8
+ export declare const allNetworkLayouts: NetworkLayoutMap;
@@ -0,0 +1,8 @@
1
+ import { NetworkLayoutHandler } from "./types";
2
+ export declare const sankeyOrientHash: {
3
+ left: any;
4
+ right: any;
5
+ center: any;
6
+ justify: any;
7
+ };
8
+ export declare const sankeyLayout: NetworkLayoutHandler;
@@ -0,0 +1,7 @@
1
+ import { NetworkLayoutHandler } from "./types";
2
+ export declare const matrixLayout: NetworkLayoutHandler;
3
+ export declare const arcLayout: NetworkLayoutHandler;
4
+ export declare const simpleLayouts: {
5
+ matrix: NetworkLayoutHandler;
6
+ arc: NetworkLayoutHandler;
7
+ };
@@ -0,0 +1,17 @@
1
+ import { NodeType, NetworkSettingsType } from "../../types/networkTypes";
2
+ export type NetworkLayoutHandler = (args: {
3
+ projectedNodes: NodeType[];
4
+ projectedEdges: any[];
5
+ networkSettings: NetworkSettingsType;
6
+ adjustedSize: number[];
7
+ edgeHash: Map<string, any>;
8
+ nodeIDAccessor: Function;
9
+ edgeWidthAccessor: Function;
10
+ nodeSizeAccessor: Function;
11
+ size: number[];
12
+ }) => {
13
+ projectedNodes: NodeType[];
14
+ projectedEdges: any[];
15
+ components?: any[];
16
+ };
17
+ export type NetworkLayoutMap = Record<string, NetworkLayoutHandler>;
@@ -0,0 +1,36 @@
1
+ export declare const emptyArray: any[];
2
+ export declare const baseNodeProps: {
3
+ id: any;
4
+ degree: number;
5
+ inDegree: number;
6
+ outDegree: number;
7
+ x: number;
8
+ y: number;
9
+ x1: number;
10
+ x0: number;
11
+ y1: number;
12
+ y0: number;
13
+ height: number;
14
+ width: number;
15
+ radius: number;
16
+ r: number;
17
+ direction: any;
18
+ textHeight: number;
19
+ textWidth: number;
20
+ fontSize: number;
21
+ scale: number;
22
+ nodeSize: number;
23
+ component: number;
24
+ shapeNode: boolean;
25
+ };
26
+ export declare const baseNetworkSettings: {
27
+ hierarchicalNetwork: boolean;
28
+ };
29
+ export declare const baseGraphSettings: {
30
+ nodeHash: Map<any, any>;
31
+ edgeHash: Map<any, any>;
32
+ nodes: any[];
33
+ edges: any[];
34
+ hierarchicalNetwork: boolean;
35
+ type: string;
36
+ };
@@ -0,0 +1,8 @@
1
+ export interface Bin {
2
+ start: number;
3
+ end: number;
4
+ total: number;
5
+ categories: Map<string, number>;
6
+ }
7
+ export declare function computeBins(data: Iterable<Record<string, any>>, getTime: (d: Record<string, any>) => number, getValue: (d: Record<string, any>) => number, binSize: number, getCategory?: (d: Record<string, any>) => string): Map<number, Bin>;
8
+ export declare function computeBinExtent(data: Iterable<Record<string, any>>, getTime: (d: Record<string, any>) => number, getValue: (d: Record<string, any>) => number, binSize: number, getCategory?: (d: Record<string, any>) => string): [number, number];
@@ -0,0 +1,13 @@
1
+ export declare class IncrementalExtent {
2
+ private _min;
3
+ private _max;
4
+ private _dirty;
5
+ push(value: number): void;
6
+ evict(value: number): void;
7
+ recalculate<T>(values: Iterable<T>, accessor?: (v: T) => number): void;
8
+ clear(): void;
9
+ get extent(): [number, number];
10
+ get min(): number;
11
+ get max(): number;
12
+ get dirty(): boolean;
13
+ }
@@ -0,0 +1,19 @@
1
+ export declare class RingBuffer<T> {
2
+ private _capacity;
3
+ private buffer;
4
+ private head;
5
+ private _size;
6
+ constructor(_capacity: number);
7
+ push(value: T): T | undefined;
8
+ pushMany(values: T[]): T[];
9
+ get(index: number): T | undefined;
10
+ peek(): T | undefined;
11
+ peekOldest(): T | undefined;
12
+ [Symbol.iterator](): Iterator<T>;
13
+ toArray(): T[];
14
+ resize(newCapacity: number): T[];
15
+ clear(): void;
16
+ get size(): number;
17
+ get capacity(): number;
18
+ get full(): boolean;
19
+ }
@@ -0,0 +1,2 @@
1
+ import type { RendererFn } from "./types";
2
+ export declare const barRenderer: RendererFn;
@@ -0,0 +1,2 @@
1
+ import type { RendererFn } from "./types";
2
+ export declare const candlestickRenderer: RendererFn;
@@ -0,0 +1,2 @@
1
+ import type { RendererFn } from "./types";
2
+ export declare const lineRenderer: RendererFn;
@@ -0,0 +1,2 @@
1
+ import type { RendererFn } from "./types";
2
+ export declare const swarmRenderer: RendererFn;
@@ -0,0 +1,9 @@
1
+ import type { RealtimeScales, RealtimeLayout, LineStyle, RealtimeAccessors, BarStyle, WaterfallStyle, SwarmStyle } from "../types";
2
+ export interface RendererOptions {
3
+ binSize?: number;
4
+ barColors?: Record<string, string>;
5
+ barStyle?: BarStyle;
6
+ waterfallStyle?: WaterfallStyle;
7
+ swarmStyle?: SwarmStyle;
8
+ }
9
+ export type RendererFn = (ctx: CanvasRenderingContext2D, data: Iterable<Record<string, any>>, scales: RealtimeScales, layout: RealtimeLayout, style: LineStyle, accessors: RealtimeAccessors, annotations?: Record<string, any>[], options?: RendererOptions) => void;
@@ -0,0 +1,3 @@
1
+ import type { RendererFn } from "./types";
2
+ export declare function computeWaterfallExtent(data: Iterable<Record<string, any>>, getValue: (d: Record<string, any>) => number): [number, number];
3
+ export declare const waterfallRenderer: RendererFn;
@@ -0,0 +1,113 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ScaleLinear } from "d3-scale";
3
+ export type ArrowOfTime = "up" | "down" | "left" | "right";
4
+ export type WindowMode = "sliding" | "growing";
5
+ export type ThresholdType = "greater" | "lesser";
6
+ export interface LineStyle {
7
+ stroke?: string;
8
+ strokeWidth?: number;
9
+ strokeDasharray?: string;
10
+ }
11
+ export interface AnnotationContext {
12
+ scales: {
13
+ time: ScaleLinear<number, number>;
14
+ value: ScaleLinear<number, number>;
15
+ } | null;
16
+ timeAxis: "x" | "y";
17
+ width: number;
18
+ height: number;
19
+ }
20
+ export interface CrosshairStyle {
21
+ stroke?: string;
22
+ strokeWidth?: number;
23
+ strokeDasharray?: string;
24
+ }
25
+ export interface HoverAnnotationConfig {
26
+ crosshair?: boolean | CrosshairStyle;
27
+ snapToPoint?: boolean;
28
+ }
29
+ export interface HoverData {
30
+ data: Record<string, any>;
31
+ time: number;
32
+ value: number;
33
+ x: number;
34
+ y: number;
35
+ }
36
+ export interface BarStyle {
37
+ fill?: string;
38
+ stroke?: string;
39
+ strokeWidth?: number;
40
+ gap?: number;
41
+ }
42
+ export interface WaterfallStyle {
43
+ positiveColor?: string;
44
+ negativeColor?: string;
45
+ connectorStroke?: string;
46
+ connectorWidth?: number;
47
+ gap?: number;
48
+ stroke?: string;
49
+ strokeWidth?: number;
50
+ }
51
+ export interface SwarmStyle {
52
+ radius?: number;
53
+ fill?: string;
54
+ opacity?: number;
55
+ stroke?: string;
56
+ strokeWidth?: number;
57
+ }
58
+ export interface RealtimeFrameProps {
59
+ chartType?: "line" | "swarm" | "candlestick" | "waterfall" | "bar";
60
+ arrowOfTime?: ArrowOfTime;
61
+ windowMode?: WindowMode;
62
+ windowSize?: number;
63
+ data?: Record<string, any>[];
64
+ timeAccessor?: string | ((d: Record<string, any>) => number);
65
+ valueAccessor?: string | ((d: Record<string, any>) => number);
66
+ timeExtent?: [number, number];
67
+ valueExtent?: [number, number];
68
+ extentPadding?: number;
69
+ size?: [number, number];
70
+ margin?: {
71
+ top?: number;
72
+ right?: number;
73
+ bottom?: number;
74
+ left?: number;
75
+ };
76
+ className?: string;
77
+ lineStyle?: LineStyle;
78
+ annotations?: Record<string, any>[];
79
+ svgAnnotationRules?: (annotation: Record<string, any>, index: number, context: AnnotationContext) => ReactNode;
80
+ hoverAnnotation?: boolean | HoverAnnotationConfig;
81
+ tooltipContent?: (d: HoverData) => ReactNode;
82
+ customHoverBehavior?: (d: HoverData | null) => void;
83
+ showAxes?: boolean;
84
+ background?: string;
85
+ categoryAccessor?: string | ((d: Record<string, any>) => string);
86
+ binSize?: number;
87
+ barColors?: Record<string, string>;
88
+ barStyle?: BarStyle;
89
+ waterfallStyle?: WaterfallStyle;
90
+ swarmStyle?: SwarmStyle;
91
+ tickFormatTime?: (value: number) => string;
92
+ tickFormatValue?: (value: number) => string;
93
+ }
94
+ export interface RealtimeFrameHandle {
95
+ push(point: Record<string, any>): void;
96
+ pushMany(points: Record<string, any>[]): void;
97
+ clear(): void;
98
+ getData(): Record<string, any>[];
99
+ }
100
+ export interface RealtimeScales {
101
+ time: ScaleLinear<number, number>;
102
+ value: ScaleLinear<number, number>;
103
+ }
104
+ export interface RealtimeLayout {
105
+ width: number;
106
+ height: number;
107
+ timeAxis: "x" | "y";
108
+ }
109
+ export interface RealtimeAccessors {
110
+ time: (d: Record<string, any>) => number;
111
+ value: (d: Record<string, any>) => number;
112
+ category?: (d: Record<string, any>) => string;
113
+ }