semiotic 3.0.0-beta.2 → 3.0.0-beta.4

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 (342) hide show
  1. package/CLAUDE.md +93 -753
  2. package/README.md +92 -7
  3. package/ai/dist/componentRegistry.js +26 -0
  4. package/ai/dist/{ai/mcp-server.js → mcp-server.js} +1 -1
  5. package/ai/dist/{ai/renderHOCToSVG.js → renderHOCToSVG.js} +2 -2
  6. package/dist/ChartContainer.d.ts +60 -0
  7. package/dist/DetailsPanel.d.ts +37 -0
  8. package/dist/LinkedCharts.d.ts +2 -0
  9. package/dist/Tooltip/Tooltip.d.ts +2 -2
  10. package/dist/charts/index.d.ts +1 -1
  11. package/dist/charts/ordinal/BarChart.d.ts +1 -0
  12. package/dist/charts/ordinal/BoxPlot.d.ts +1 -0
  13. package/dist/charts/ordinal/DonutChart.d.ts +1 -0
  14. package/dist/charts/ordinal/DotPlot.d.ts +1 -0
  15. package/dist/charts/ordinal/GroupedBarChart.d.ts +1 -0
  16. package/dist/charts/ordinal/Histogram.d.ts +1 -0
  17. package/dist/charts/ordinal/PieChart.d.ts +1 -0
  18. package/dist/charts/ordinal/RidgelinePlot.d.ts +1 -0
  19. package/dist/charts/ordinal/StackedBarChart.d.ts +1 -0
  20. package/dist/charts/ordinal/SwarmPlot.d.ts +1 -0
  21. package/dist/charts/ordinal/ViolinPlot.d.ts +1 -0
  22. package/dist/charts/realtime/RealtimeHeatmap.d.ts +11 -0
  23. package/dist/charts/realtime/RealtimeHistogram.d.ts +15 -1
  24. package/dist/charts/realtime/RealtimeLineChart.d.ts +6 -0
  25. package/dist/charts/realtime/RealtimeSwarmChart.d.ts +6 -0
  26. package/dist/charts/realtime/RealtimeWaterfallChart.d.ts +6 -0
  27. package/dist/charts/shared/annotationRules.d.ts +3 -0
  28. package/dist/charts/shared/colorUtils.d.ts +17 -11
  29. package/dist/charts/shared/hooks.d.ts +96 -1
  30. package/dist/charts/shared/loess.d.ts +13 -0
  31. package/dist/charts/shared/networkUtils.d.ts +31 -0
  32. package/dist/charts/shared/tooltipUtils.d.ts +16 -0
  33. package/dist/charts/shared/types.d.ts +17 -2
  34. package/dist/charts/shared/validateChartData.d.ts +2 -3
  35. package/dist/charts/shared/validateProps.d.ts +18 -0
  36. package/dist/charts/xy/AreaChart.d.ts +4 -0
  37. package/dist/charts/xy/BubbleChart.d.ts +6 -0
  38. package/dist/charts/xy/Heatmap.d.ts +4 -0
  39. package/dist/charts/xy/LineChart.d.ts +6 -0
  40. package/dist/charts/xy/Scatterplot.d.ts +4 -0
  41. package/dist/charts/xy/StackedAreaChart.d.ts +4 -0
  42. package/dist/data/fromVegaLite.d.ts +48 -0
  43. package/dist/export/chartConfig.d.ts +29 -0
  44. package/dist/export/selectionSerializer.d.ts +20 -0
  45. package/dist/geometry/sankeyLinks.d.ts +1 -1
  46. package/dist/network.min.js +1 -1
  47. package/dist/network.module.min.js +1 -1
  48. package/dist/ordinal.min.js +1 -1
  49. package/dist/ordinal.module.min.js +1 -1
  50. package/dist/realtime/types.d.ts +20 -6
  51. package/dist/realtime.min.js +1 -1
  52. package/dist/realtime.module.min.js +1 -1
  53. package/dist/semiotic-ai.d.ts +14 -0
  54. package/dist/semiotic-ai.min.js +1 -1
  55. package/dist/semiotic-ai.module.min.js +1 -1
  56. package/dist/semiotic-data.d.ts +2 -0
  57. package/dist/semiotic-data.min.js +1 -1
  58. package/dist/semiotic-data.module.min.js +1 -1
  59. package/dist/semiotic-network.d.ts +9 -19
  60. package/dist/semiotic-ordinal.d.ts +12 -14
  61. package/dist/semiotic-xy.d.ts +12 -18
  62. package/dist/semiotic.d.ts +16 -13
  63. package/dist/semiotic.min.js +1 -1
  64. package/dist/semiotic.module.min.js +1 -1
  65. package/dist/server.min.js +1 -1
  66. package/dist/server.module.min.js +1 -1
  67. package/dist/store/ObservationStore.d.ts +61 -0
  68. package/dist/store/SelectionStore.d.ts +9 -1
  69. package/dist/store/ThemeStore.d.ts +6 -1
  70. package/dist/store/TooltipStore.d.ts +3 -1
  71. package/dist/store/createStore.d.ts +4 -1
  72. package/dist/store/useObservation.d.ts +18 -0
  73. package/dist/stream/MarginalGraphics.d.ts +1 -1
  74. package/dist/stream/NetworkPipelineStore.d.ts +44 -0
  75. package/dist/stream/OrdinalCanvasHitTester.d.ts +1 -0
  76. package/dist/stream/OrdinalSVGOverlay.d.ts +6 -2
  77. package/dist/stream/ParticlePool.d.ts +2 -1
  78. package/dist/stream/PipelineStore.d.ts +11 -0
  79. package/dist/stream/SVGOverlay.d.ts +21 -2
  80. package/dist/stream/SceneGraph.d.ts +1 -1
  81. package/dist/stream/networkTypes.d.ts +58 -1
  82. package/dist/stream/ordinalTypes.d.ts +13 -0
  83. package/dist/stream/types.d.ts +14 -0
  84. package/dist/types/annotationTypes.d.ts +10 -0
  85. package/dist/types/networkTypes.d.ts +1 -2
  86. package/dist/xy.min.js +1 -1
  87. package/dist/xy.module.min.js +1 -1
  88. package/package.json +30 -42
  89. package/ai/dist/ai/componentRegistry.js +0 -45
  90. package/ai/dist/src/components/Annotation.js +0 -358
  91. package/ai/dist/src/components/AnnotationLayer/AnnotationLayer.js +0 -369
  92. package/ai/dist/src/components/Axis/Axis.js +0 -374
  93. package/ai/dist/src/components/Axis/axisTitle.js +0 -14
  94. package/ai/dist/src/components/Axis/index.js +0 -7
  95. package/ai/dist/src/components/Axis/summaryGraphic.js +0 -37
  96. package/ai/dist/src/components/Brush.js +0 -84
  97. package/ai/dist/src/components/ChartErrorBoundary.js +0 -91
  98. package/ai/dist/src/components/DividedLine.js +0 -65
  99. package/ai/dist/src/components/Legend.js +0 -140
  100. package/ai/dist/src/components/LinkedCharts.js +0 -95
  101. package/ai/dist/src/components/ThemeProvider.js +0 -79
  102. package/ai/dist/src/components/Tooltip/Tooltip.js +0 -309
  103. package/ai/dist/src/components/TooltipPositioner/index.js +0 -132
  104. package/ai/dist/src/components/annotationLayerBehavior/annotationHandling.js +0 -73
  105. package/ai/dist/src/components/annotationLayerBehavior/d3labeler.js +0 -254
  106. package/ai/dist/src/components/annotationRules/baseRules.js +0 -150
  107. package/ai/dist/src/components/annotationRules/networkframeRules.js +0 -196
  108. package/ai/dist/src/components/annotationRules/xyframeRules.js +0 -297
  109. package/ai/dist/src/components/batchWork.js +0 -35
  110. package/ai/dist/src/components/charts/index.js +0 -109
  111. package/ai/dist/src/components/charts/network/ChordDiagram.js +0 -142
  112. package/ai/dist/src/components/charts/network/CirclePack.js +0 -108
  113. package/ai/dist/src/components/charts/network/ForceDirectedGraph.js +0 -121
  114. package/ai/dist/src/components/charts/network/SankeyDiagram.js +0 -155
  115. package/ai/dist/src/components/charts/network/TreeDiagram.js +0 -110
  116. package/ai/dist/src/components/charts/network/Treemap.js +0 -106
  117. package/ai/dist/src/components/charts/ordinal/BarChart.js +0 -156
  118. package/ai/dist/src/components/charts/ordinal/BoxPlot.js +0 -139
  119. package/ai/dist/src/components/charts/ordinal/DonutChart.js +0 -130
  120. package/ai/dist/src/components/charts/ordinal/DotPlot.js +0 -126
  121. package/ai/dist/src/components/charts/ordinal/GroupedBarChart.js +0 -129
  122. package/ai/dist/src/components/charts/ordinal/Histogram.js +0 -132
  123. package/ai/dist/src/components/charts/ordinal/PieChart.js +0 -128
  124. package/ai/dist/src/components/charts/ordinal/RidgelinePlot.js +0 -130
  125. package/ai/dist/src/components/charts/ordinal/StackedBarChart.js +0 -130
  126. package/ai/dist/src/components/charts/ordinal/SwarmPlot.js +0 -147
  127. package/ai/dist/src/components/charts/ordinal/ViolinPlot.js +0 -138
  128. package/ai/dist/src/components/charts/realtime/RealtimeHeatmap.js +0 -79
  129. package/ai/dist/src/components/charts/realtime/RealtimeHistogram.js +0 -114
  130. package/ai/dist/src/components/charts/realtime/RealtimeLineChart.js +0 -93
  131. package/ai/dist/src/components/charts/realtime/RealtimeSwarmChart.js +0 -105
  132. package/ai/dist/src/components/charts/realtime/RealtimeWaterfallChart.js +0 -106
  133. package/ai/dist/src/components/charts/shared/ChartError.js +0 -72
  134. package/ai/dist/src/components/charts/shared/colorUtils.js +0 -138
  135. package/ai/dist/src/components/charts/shared/formatUtils.js +0 -213
  136. package/ai/dist/src/components/charts/shared/hooks.js +0 -49
  137. package/ai/dist/src/components/charts/shared/legendUtils.js +0 -57
  138. package/ai/dist/src/components/charts/shared/selectionUtils.js +0 -67
  139. package/ai/dist/src/components/charts/shared/tooltipUtils.js +0 -79
  140. package/ai/dist/src/components/charts/shared/types.js +0 -2
  141. package/ai/dist/src/components/charts/shared/validateChartData.js +0 -82
  142. package/ai/dist/src/components/charts/shared/validateProps.js +0 -736
  143. package/ai/dist/src/components/charts/xy/AreaChart.js +0 -230
  144. package/ai/dist/src/components/charts/xy/BubbleChart.js +0 -251
  145. package/ai/dist/src/components/charts/xy/Heatmap.js +0 -235
  146. package/ai/dist/src/components/charts/xy/LineChart.js +0 -307
  147. package/ai/dist/src/components/charts/xy/MinimapChart.js +0 -298
  148. package/ai/dist/src/components/charts/xy/Scatterplot.js +0 -172
  149. package/ai/dist/src/components/charts/xy/ScatterplotMatrix.js +0 -426
  150. package/ai/dist/src/components/charts/xy/StackedAreaChart.js +0 -231
  151. package/ai/dist/src/components/constants/coordinateNames.js +0 -11
  152. package/ai/dist/src/components/constants/frame_props.js +0 -251
  153. package/ai/dist/src/components/data/dataFunctions.js +0 -487
  154. package/ai/dist/src/components/data/multiAccessorUtils.js +0 -14
  155. package/ai/dist/src/components/data/transforms.js +0 -143
  156. package/ai/dist/src/components/data/unflowedFunctions.js +0 -5
  157. package/ai/dist/src/components/export/exportChart.js +0 -121
  158. package/ai/dist/src/components/generic_utilities/functions.js +0 -5
  159. package/ai/dist/src/components/geometry/areaDrawing.js +0 -312
  160. package/ai/dist/src/components/geometry/contourLayout.js +0 -73
  161. package/ai/dist/src/components/geometry/hexbinLayout.js +0 -163
  162. package/ai/dist/src/components/geometry/lineDrawing.js +0 -356
  163. package/ai/dist/src/components/geometry/sankeyLinks.js +0 -331
  164. package/ai/dist/src/components/geometry/summaryLayouts.js +0 -136
  165. package/ai/dist/src/components/index.js +0 -18
  166. package/ai/dist/src/components/processing/InteractionItems.js +0 -223
  167. package/ai/dist/src/components/processing/hierarchyUtils.js +0 -104
  168. package/ai/dist/src/components/processing/layouts/chordLayout.js +0 -58
  169. package/ai/dist/src/components/processing/layouts/forceLayout.js +0 -142
  170. package/ai/dist/src/components/processing/layouts/hierarchyLayout.js +0 -31
  171. package/ai/dist/src/components/processing/layouts/index.js +0 -32
  172. package/ai/dist/src/components/processing/layouts/sankeyLayout.js +0 -96
  173. package/ai/dist/src/components/processing/layouts/simpleLayouts.js +0 -34
  174. package/ai/dist/src/components/processing/layouts/types.js +0 -2
  175. package/ai/dist/src/components/processing/networkDefaults.js +0 -39
  176. package/ai/dist/src/components/realtime/BinAccumulator.js +0 -36
  177. package/ai/dist/src/components/realtime/IncrementalExtent.js +0 -55
  178. package/ai/dist/src/components/realtime/RingBuffer.js +0 -104
  179. package/ai/dist/src/components/realtime/renderers/barRenderer.js +0 -133
  180. package/ai/dist/src/components/realtime/renderers/candlestickRenderer.js +0 -7
  181. package/ai/dist/src/components/realtime/renderers/lineRenderer.js +0 -164
  182. package/ai/dist/src/components/realtime/renderers/swarmRenderer.js +0 -91
  183. package/ai/dist/src/components/realtime/renderers/types.js +0 -2
  184. package/ai/dist/src/components/realtime/renderers/waterfallRenderer.js +0 -163
  185. package/ai/dist/src/components/realtime/types.js +0 -2
  186. package/ai/dist/src/components/semiotic-ai.js +0 -89
  187. package/ai/dist/src/components/semiotic-data.js +0 -12
  188. package/ai/dist/src/components/semiotic-network.js +0 -38
  189. package/ai/dist/src/components/semiotic-ordinal.js +0 -28
  190. package/ai/dist/src/components/semiotic-realtime.js +0 -30
  191. package/ai/dist/src/components/semiotic-server.js +0 -8
  192. package/ai/dist/src/components/semiotic-xy.js +0 -35
  193. package/ai/dist/src/components/semiotic.js +0 -109
  194. package/ai/dist/src/components/server/renderToStaticSVG.js +0 -594
  195. package/ai/dist/src/components/store/SelectionStore.js +0 -91
  196. package/ai/dist/src/components/store/ThemeStore.js +0 -78
  197. package/ai/dist/src/components/store/TooltipStore.js +0 -13
  198. package/ai/dist/src/components/store/createStore.js +0 -81
  199. package/ai/dist/src/components/store/useSelection.js +0 -133
  200. package/ai/dist/src/components/stream/CanvasHitTester.js +0 -164
  201. package/ai/dist/src/components/stream/DataSourceAdapter.js +0 -99
  202. package/ai/dist/src/components/stream/MarginalGraphics.js +0 -266
  203. package/ai/dist/src/components/stream/NetworkCanvasHitTester.js +0 -228
  204. package/ai/dist/src/components/stream/NetworkPipelineStore.js +0 -498
  205. package/ai/dist/src/components/stream/NetworkSVGOverlay.js +0 -70
  206. package/ai/dist/src/components/stream/NetworkSceneGraph.js +0 -38
  207. package/ai/dist/src/components/stream/OrdinalCanvasHitTester.js +0 -146
  208. package/ai/dist/src/components/stream/OrdinalPipelineStore.js +0 -786
  209. package/ai/dist/src/components/stream/OrdinalSVGOverlay.js +0 -130
  210. package/ai/dist/src/components/stream/ParticlePool.js +0 -174
  211. package/ai/dist/src/components/stream/PipelineStore.js +0 -1243
  212. package/ai/dist/src/components/stream/SVGOverlay.js +0 -129
  213. package/ai/dist/src/components/stream/SceneGraph.js +0 -132
  214. package/ai/dist/src/components/stream/StreamNetworkFrame.js +0 -561
  215. package/ai/dist/src/components/stream/StreamOrdinalFrame.js +0 -492
  216. package/ai/dist/src/components/stream/StreamXYFrame.js +0 -590
  217. package/ai/dist/src/components/stream/accessorUtils.js +0 -20
  218. package/ai/dist/src/components/stream/index.js +0 -32
  219. package/ai/dist/src/components/stream/layouts/chordLayoutPlugin.js +0 -352
  220. package/ai/dist/src/components/stream/layouts/forceLayoutPlugin.js +0 -230
  221. package/ai/dist/src/components/stream/layouts/hierarchyLayoutPlugin.js +0 -568
  222. package/ai/dist/src/components/stream/layouts/index.js +0 -28
  223. package/ai/dist/src/components/stream/layouts/sankeyLayoutPlugin.js +0 -245
  224. package/ai/dist/src/components/stream/networkTypes.js +0 -17
  225. package/ai/dist/src/components/stream/ordinalSceneBuilders/barScene.js +0 -126
  226. package/ai/dist/src/components/stream/ordinalSceneBuilders/connectorScene.js +0 -62
  227. package/ai/dist/src/components/stream/ordinalSceneBuilders/pieScene.js +0 -33
  228. package/ai/dist/src/components/stream/ordinalSceneBuilders/pointScene.js +0 -63
  229. package/ai/dist/src/components/stream/ordinalSceneBuilders/statisticalScene.js +0 -278
  230. package/ai/dist/src/components/stream/ordinalSceneBuilders/timelineScene.js +0 -30
  231. package/ai/dist/src/components/stream/ordinalSceneBuilders/types.js +0 -2
  232. package/ai/dist/src/components/stream/ordinalTypes.js +0 -2
  233. package/ai/dist/src/components/stream/renderers/areaCanvasRenderer.js +0 -48
  234. package/ai/dist/src/components/stream/renderers/barCanvasRenderer.js +0 -70
  235. package/ai/dist/src/components/stream/renderers/boxplotCanvasRenderer.js +0 -75
  236. package/ai/dist/src/components/stream/renderers/candlestickCanvasRenderer.js +0 -28
  237. package/ai/dist/src/components/stream/renderers/connectorCanvasRenderer.js +0 -47
  238. package/ai/dist/src/components/stream/renderers/heatmapCanvasRenderer.js +0 -31
  239. package/ai/dist/src/components/stream/renderers/lineCanvasRenderer.js +0 -140
  240. package/ai/dist/src/components/stream/renderers/networkArcRenderer.js +0 -38
  241. package/ai/dist/src/components/stream/renderers/networkCircleRenderer.js +0 -37
  242. package/ai/dist/src/components/stream/renderers/networkEdgeRenderer.js +0 -102
  243. package/ai/dist/src/components/stream/renderers/networkParticleRenderer.js +0 -63
  244. package/ai/dist/src/components/stream/renderers/networkRectRenderer.js +0 -35
  245. package/ai/dist/src/components/stream/renderers/pointCanvasRenderer.js +0 -38
  246. package/ai/dist/src/components/stream/renderers/swarmCanvasRenderer.js +0 -10
  247. package/ai/dist/src/components/stream/renderers/types.js +0 -2
  248. package/ai/dist/src/components/stream/renderers/violinCanvasRenderer.js +0 -47
  249. package/ai/dist/src/components/stream/renderers/waterfallCanvasRenderer.js +0 -38
  250. package/ai/dist/src/components/stream/renderers/wedgeCanvasRenderer.js +0 -33
  251. package/ai/dist/src/components/stream/types.js +0 -2
  252. package/ai/dist/src/components/types/annotationTypes.js +0 -2
  253. package/ai/dist/src/components/types/canvasTypes.js +0 -2
  254. package/ai/dist/src/components/types/generalTypes.js +0 -2
  255. package/ai/dist/src/components/types/interactionTypes.js +0 -2
  256. package/ai/dist/src/components/types/legendTypes.js +0 -2
  257. package/ai/dist/src/components/types/networkTypes.js +0 -2
  258. package/ai/dist/src/components/types/ordinalTypes.js +0 -2
  259. package/ai/dist/src/components/types/xyTypes.js +0 -2
  260. package/ai/dist/src/components/useBoundingRect.js +0 -24
  261. package/ai/dist/src/components/visualizationLayerBehavior/axis.js +0 -301
  262. package/ai/dist/src/components/visualizationLayerBehavior/general.js +0 -435
  263. package/ai/dist/src/setupTests.js +0 -4
  264. package/dist/AnnotationLayer/AnnotationLayer.d.ts +0 -25
  265. package/dist/Axis/Axis.d.ts +0 -7
  266. package/dist/Axis/axisTitle.d.ts +0 -10
  267. package/dist/Axis/index.d.ts +0 -2
  268. package/dist/Axis/summaryGraphic.d.ts +0 -17
  269. package/dist/Brush.d.ts +0 -12
  270. package/dist/DividedLine.d.ts +0 -16
  271. package/dist/TooltipPositioner/index.d.ts +0 -7
  272. package/dist/annotationLayerBehavior/annotationHandling.d.ts +0 -19
  273. package/dist/annotationLayerBehavior/d3labeler.d.ts +0 -9
  274. package/dist/annotationRules/baseRules.d.ts +0 -25
  275. package/dist/annotationRules/networkframeRules.d.ts +0 -48
  276. package/dist/annotationRules/xyframeRules.d.ts +0 -117
  277. package/dist/batchWork.d.ts +0 -6
  278. package/dist/constants/coordinateNames.d.ts +0 -8
  279. package/dist/constants/frame_props.d.ts +0 -13
  280. package/dist/data/dataFunctions.d.ts +0 -45
  281. package/dist/data/multiAccessorUtils.d.ts +0 -1
  282. package/dist/data/unflowedFunctions.d.ts +0 -1
  283. package/dist/generic_utilities/functions.d.ts +0 -1
  284. package/dist/geometry/areaDrawing.d.ts +0 -21
  285. package/dist/geometry/contourLayout.d.ts +0 -6
  286. package/dist/geometry/hexbinLayout.d.ts +0 -7
  287. package/dist/geometry/lineDrawing.d.ts +0 -71
  288. package/dist/geometry/summaryLayouts.d.ts +0 -45
  289. package/dist/index.d.ts +0 -1
  290. package/dist/network.js +0 -7495
  291. package/dist/network.js.map +0 -1
  292. package/dist/network.module.js +0 -7458
  293. package/dist/network.module.js.map +0 -1
  294. package/dist/ordinal.js +0 -6497
  295. package/dist/ordinal.js.map +0 -1
  296. package/dist/ordinal.module.js +0 -6465
  297. package/dist/ordinal.module.js.map +0 -1
  298. package/dist/processing/InteractionItems.d.ts +0 -13
  299. package/dist/processing/hierarchyUtils.d.ts +0 -16
  300. package/dist/processing/layouts/chordLayout.d.ts +0 -2
  301. package/dist/processing/layouts/forceLayout.d.ts +0 -3
  302. package/dist/processing/layouts/hierarchyLayout.d.ts +0 -10
  303. package/dist/processing/layouts/index.d.ts +0 -8
  304. package/dist/processing/layouts/sankeyLayout.d.ts +0 -8
  305. package/dist/processing/layouts/simpleLayouts.d.ts +0 -7
  306. package/dist/processing/layouts/types.d.ts +0 -17
  307. package/dist/processing/networkDefaults.d.ts +0 -36
  308. package/dist/realtime/renderers/barRenderer.d.ts +0 -2
  309. package/dist/realtime/renderers/candlestickRenderer.d.ts +0 -2
  310. package/dist/realtime/renderers/lineRenderer.d.ts +0 -2
  311. package/dist/realtime/renderers/swarmRenderer.d.ts +0 -2
  312. package/dist/realtime.js +0 -7072
  313. package/dist/realtime.js.map +0 -1
  314. package/dist/realtime.module.js +0 -7043
  315. package/dist/realtime.module.js.map +0 -1
  316. package/dist/semiotic-ai.js +0 -13323
  317. package/dist/semiotic-ai.js.map +0 -1
  318. package/dist/semiotic-ai.module.js +0 -13264
  319. package/dist/semiotic-ai.module.js.map +0 -1
  320. package/dist/semiotic-data.js +0 -141
  321. package/dist/semiotic-data.js.map +0 -1
  322. package/dist/semiotic-data.module.js +0 -136
  323. package/dist/semiotic-data.module.js.map +0 -1
  324. package/dist/semiotic.js +0 -16351
  325. package/dist/semiotic.js.map +0 -1
  326. package/dist/semiotic.module.js +0 -16265
  327. package/dist/semiotic.module.js.map +0 -1
  328. package/dist/server.js +0 -5191
  329. package/dist/server.js.map +0 -1
  330. package/dist/server.module.js +0 -5166
  331. package/dist/server.module.js.map +0 -1
  332. package/dist/stream/NetworkSceneGraph.d.ts +0 -14
  333. package/dist/stream/index.d.ts +0 -16
  334. package/dist/types/canvasTypes.d.ts +0 -9
  335. package/dist/types/xyTypes.d.ts +0 -24
  336. package/dist/useBoundingRect.d.ts +0 -2
  337. package/dist/visualizationLayerBehavior/axis.d.ts +0 -36
  338. package/dist/visualizationLayerBehavior/general.d.ts +0 -80
  339. package/dist/xy.js +0 -6993
  340. package/dist/xy.js.map +0 -1
  341. package/dist/xy.module.js +0 -6957
  342. package/dist/xy.module.js.map +0 -1
@@ -1,132 +0,0 @@
1
- "use client";
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.default = TooltipPositioner;
38
- const React = __importStar(require("react"));
39
- const react_1 = require("react");
40
- const // simple heuristics to check if the tooltip container exceeds the viewport
41
- // if so, capture the suggested offset
42
- checkPosition = ({ tooltipRef, tooltipContentArgs, changeTooltipContentArgsCurrent, changeTooltipContainerInitialDimensions, changeCollision }) => {
43
- const tooltipContainerInitialDimensions = tooltipRef?.getBoundingClientRect();
44
- if (!tooltipContainerInitialDimensions) {
45
- return;
46
- }
47
- const { right, left, top, bottom, width, height } = tooltipContainerInitialDimensions;
48
- // flags to indicate whether the data point + tooltip dimension collides with the viewport
49
- // on each of the 4 directions/sides
50
- let collision = {
51
- left: false,
52
- right: false,
53
- top: false,
54
- bottom: false
55
- };
56
- if (left + width > window.innerWidth) {
57
- collision.right = true;
58
- }
59
- if (left - width < 0) {
60
- collision.left = true;
61
- }
62
- if (top + height > window.innerHeight) {
63
- collision.bottom = true;
64
- }
65
- if (top - height < 0) {
66
- collision.top = true;
67
- }
68
- changeTooltipContentArgsCurrent();
69
- changeTooltipContainerInitialDimensions(tooltipContainerInitialDimensions);
70
- changeCollision(collision);
71
- };
72
- function TooltipPositioner(props) {
73
- const { tooltipContent, tooltipContentArgs } = props;
74
- const [collision, changeCollision] = (0, react_1.useState)(null);
75
- const [tooltipContainerInitialDimensions, changeTooltipContainerInitialDimensions] = (0, react_1.useState)(null);
76
- const [tooltipContentArgsCurrent, changeTooltipContentArgsCurrent] = (0, react_1.useState)(null);
77
- const [tooltipNode, setTooltipNode] = (0, react_1.useState)(null);
78
- const tooltipNodeRef = (0, react_1.useCallback)((node) => {
79
- setTooltipNode(node);
80
- checkPosition({
81
- tooltipRef: node,
82
- tooltipContentArgs,
83
- changeTooltipContentArgsCurrent,
84
- changeTooltipContainerInitialDimensions,
85
- changeCollision
86
- });
87
- }, []);
88
- (0, react_1.useEffect)(() => {
89
- // if new args, reset collision state
90
- changeCollision(null);
91
- changeTooltipContainerInitialDimensions(null);
92
- }, [JSON.stringify(tooltipContentArgs)]);
93
- (0, react_1.useEffect)(() => {
94
- if (tooltipNode && !collision) {
95
- checkPosition({
96
- tooltipRef: tooltipNode,
97
- tooltipContentArgs,
98
- changeTooltipContentArgsCurrent,
99
- changeTooltipContainerInitialDimensions,
100
- changeCollision
101
- });
102
- }
103
- }, [tooltipNode, collision]);
104
- const containerStyle = {
105
- //to handle issue when the tooltip content has margins set by client,
106
- // which results in the tooltip container having smaller height,
107
- // which in turn causes the css transform to be inaccurate
108
- // (ref: https://www.w3.org/TR/css-box-3/#collapsing-margins)
109
- overflow: "hidden",
110
- opacity: collision && tooltipContentArgsCurrent === tooltipContentArgs ? 1 : 0
111
- };
112
- const tooltipContainerClasses = collision
113
- ? [
114
- "tooltip-container",
115
- "tooltip-collision-evaluated",
116
- collision && collision.top && "collision-top",
117
- collision && collision.bottom && "collision-bottom",
118
- collision && collision.right && "collision-right",
119
- collision && collision.left && "collision-left"
120
- ]
121
- .filter((el) => el)
122
- .join(" ")
123
- : "tooltip-container";
124
- const tooltipContainerAttributes = {
125
- offset: { x: 0, y: 0 },
126
- tooltipContainerInitialDimensions
127
- };
128
- return (React.createElement("div", { ref: tooltipNodeRef, style: containerStyle, className: tooltipContainerClasses, "data-testid": "TooltipPositioner" }, tooltipContent({
129
- ...tooltipContentArgs,
130
- tooltipContainerAttributes
131
- })));
132
- }
@@ -1,73 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.bumpAnnotations = bumpAnnotations;
7
- const d3labeler_1 = __importDefault(require("./d3labeler"));
8
- const basicLabelSizeFunction = (noteData, characterWidth, lineHeight, padding) => {
9
- const text = noteData.note.label || noteData.note.title;
10
- const textLength = text.length;
11
- const wrap = noteData.note.wrap || 120;
12
- const width = Math.min(wrap, textLength * characterWidth) + padding * 2;
13
- const height = Math.ceil((textLength * characterWidth) / 120) * lineHeight + padding * 2;
14
- return [width, height];
15
- };
16
- function bumpAnnotations(adjustableNotes, processor, size, propsPointSizeFunction, propsLabelSizeFunction) {
17
- const { padding = 1, characterWidth = 8, lineHeight = 20, iterations = 500, pointSizeFunction = propsPointSizeFunction, labelSizeFunction = propsLabelSizeFunction || basicLabelSizeFunction } = processor;
18
- const labels = adjustableNotes.map((d, i) => {
19
- const anchorX = (d.props.noteData.x[0] || d.props.noteData.x) +
20
- (d.props.noteData.dx !== undefined
21
- ? d.props.noteData.dx
22
- : ((i % 3) - 1) * -10);
23
- const anchorY = (d.props.noteData.y[0] || d.props.noteData.y) +
24
- (d.props.noteData.dy !== undefined
25
- ? d.props.noteData.dy
26
- : ((i % 3) - 1) * 10);
27
- const [labelWidth, labelHeight] = labelSizeFunction(d.props.noteData, characterWidth, lineHeight, padding);
28
- return {
29
- x: anchorX,
30
- y: anchorY,
31
- above: anchorY < d.props.noteData.y,
32
- left: anchorX < d.props.noteData.x,
33
- width: labelWidth,
34
- height: labelHeight,
35
- type: "label",
36
- name: "",
37
- originalNote: d
38
- };
39
- });
40
- const points = adjustableNotes.map(d => ({
41
- x: d.props.noteData.x,
42
- y: d.props.noteData.y,
43
- fx: d.props.noteData.x,
44
- fy: d.props.noteData.y,
45
- r: (pointSizeFunction && pointSizeFunction(d.props.noteData)) || 5,
46
- type: "point",
47
- originalNote: d
48
- }));
49
- const instantiatedLabeler = (0, d3labeler_1.default)();
50
- instantiatedLabeler.label(labels);
51
- instantiatedLabeler.anchor(points);
52
- instantiatedLabeler.width(size[0]);
53
- instantiatedLabeler.height(size[1]);
54
- instantiatedLabeler.start(iterations);
55
- labels.forEach(d => {
56
- if (d.type === "label") {
57
- const adjusted = adjustedXY(d.originalNote.props.noteData, d, padding);
58
- d.originalNote.props.noteData.nx = adjusted[0];
59
- d.originalNote.props.noteData.ny = adjusted[1];
60
- }
61
- });
62
- return adjustableNotes;
63
- }
64
- function adjustedXY(note, calculated, padding) {
65
- if (note.y > calculated.y) {
66
- //below
67
- return [
68
- calculated.x + calculated.width / 2 + padding / 2,
69
- calculated.y - calculated.height + padding / 2
70
- ];
71
- }
72
- return [calculated.x + calculated.width / 2, calculated.y];
73
- }
@@ -1,254 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = default_1;
4
- // from Evan Wang's https://github.com/tinker10/D3-Labeler
5
- function default_1() {
6
- let lab = [], anc = [], w = 1, // box width
7
- h = 1, // box width
8
- labeler = {
9
- start: x => { },
10
- width: x => { },
11
- height: x => { },
12
- label: x => { },
13
- anchor: x => { },
14
- alt_energy: x => { },
15
- alt_schedule: x => { }
16
- };
17
- let max_move = 5.0, max_angle = 0.5;
18
- // weights
19
- let w_len = 0.2, // leader line length
20
- w_inter = 1.0, // leader line intersection
21
- w_lab2 = 30.0, // label-label overlap
22
- w_lab_anc = 30.0, // label-anchor overlap
23
- w_orient = 3.0; // orientation bias
24
- // booleans for user defined functions
25
- let user_energy = false, user_schedule = false;
26
- let user_defined_energy, user_defined_schedule;
27
- const energy = function (index) {
28
- // energy function, tailored for label placement
29
- let m = lab.length, ener = 0, dx = lab[index].x - anc[index].x, dy = anc[index].y - lab[index].y, dist = Math.sqrt(dx * dx + dy * dy), overlap = true, amount = 0, theta = 0;
30
- // penalty for length of leader line
31
- if (dist > 0)
32
- ener += dist * w_len;
33
- // label orientation bias
34
- dx /= dist;
35
- dy /= dist;
36
- if (dx > 0 && dy > 0) {
37
- ener += 0 * w_orient;
38
- }
39
- else if (dx < 0 && dy > 0) {
40
- ener += 1 * w_orient;
41
- }
42
- else if (dx < 0 && dy < 0) {
43
- ener += 2 * w_orient;
44
- }
45
- else {
46
- ener += 3 * w_orient;
47
- }
48
- let x21 = lab[index].x, y21 = lab[index].y - lab[index].height + 2.0, x22 = lab[index].x + lab[index].width, y22 = lab[index].y + 2.0;
49
- let x11, x12, y11, y12, x_overlap, y_overlap, overlap_area;
50
- for (let i = 0; i < m; i++) {
51
- if (i !== index) {
52
- // penalty for intersection of leader lines
53
- const overlap = intersect(anc[index].x, lab[index].x, anc[i].x, lab[i].x, anc[index].y, lab[index].y, anc[i].y, lab[i].y);
54
- if (overlap)
55
- ener += w_inter;
56
- // penalty for label-label overlap
57
- x11 = lab[i].x;
58
- y11 = lab[i].y - lab[i].height + 2.0;
59
- x12 = lab[i].x + lab[i].width;
60
- y12 = lab[i].y + 2.0;
61
- x_overlap = Math.max(0, Math.min(x12, x22) - Math.max(x11, x21));
62
- y_overlap = Math.max(0, Math.min(y12, y22) - Math.max(y11, y21));
63
- overlap_area = x_overlap * y_overlap;
64
- ener += overlap_area * w_lab2;
65
- }
66
- // penalty for label-anchor overlap
67
- x11 = anc[i].x - anc[i].r;
68
- y11 = anc[i].y - anc[i].r;
69
- x12 = anc[i].x + anc[i].r;
70
- y12 = anc[i].y + anc[i].r;
71
- x_overlap = Math.max(0, Math.min(x12, x22) - Math.max(x11, x21));
72
- y_overlap = Math.max(0, Math.min(y12, y22) - Math.max(y11, y21));
73
- overlap_area = x_overlap * y_overlap;
74
- ener += overlap_area * w_lab_anc;
75
- }
76
- return ener;
77
- };
78
- const mcmove = function (currT) {
79
- // Monte Carlo translation move
80
- // select a random label
81
- let i = Math.floor(Math.random() * lab.length);
82
- // save old coordinates
83
- let x_old = lab[i].x;
84
- let y_old = lab[i].y;
85
- // old energy
86
- let old_energy;
87
- if (user_energy) {
88
- old_energy = user_defined_energy(i, lab, anc);
89
- }
90
- else {
91
- old_energy = energy(i);
92
- }
93
- // random translation
94
- lab[i].x += (Math.random() - 0.5) * max_move;
95
- lab[i].y += (Math.random() - 0.5) * max_move;
96
- // hard wall boundaries
97
- if (lab[i].x > w)
98
- lab[i].x = x_old;
99
- if (lab[i].x < 0)
100
- lab[i].x = x_old;
101
- if (lab[i].y > h)
102
- lab[i].y = y_old;
103
- if (lab[i].y < 0)
104
- lab[i].y = y_old;
105
- // new energy
106
- let new_energy;
107
- if (user_energy) {
108
- new_energy = user_defined_energy(i, lab, anc);
109
- }
110
- else {
111
- new_energy = energy(i);
112
- }
113
- // delta E
114
- let delta_energy = new_energy - old_energy;
115
- if (!(Math.random() < Math.exp(-delta_energy / currT))) {
116
- // move back to old coordinates
117
- lab[i].x = x_old;
118
- lab[i].y = y_old;
119
- }
120
- };
121
- const mcrotate = function (currT) {
122
- // Monte Carlo rotation move
123
- // select a random label
124
- let i = Math.floor(Math.random() * lab.length);
125
- // save old coordinates
126
- let x_old = lab[i].x;
127
- let y_old = lab[i].y;
128
- // old energy
129
- let old_energy;
130
- if (user_energy) {
131
- old_energy = user_defined_energy(i, lab, anc);
132
- }
133
- else {
134
- old_energy = energy(i);
135
- }
136
- // random angle
137
- let angle = (Math.random() - 0.5) * max_angle;
138
- let s = Math.sin(angle);
139
- let c = Math.cos(angle);
140
- // translate label (relative to anchor at origin):
141
- lab[i].x -= anc[i].x;
142
- lab[i].y -= anc[i].y;
143
- // rotate label
144
- let x_new = lab[i].x * c - lab[i].y * s, y_new = lab[i].x * s + lab[i].y * c;
145
- // translate label back
146
- lab[i].x = x_new + anc[i].x;
147
- lab[i].y = y_new + anc[i].y;
148
- // hard wall boundaries
149
- if (lab[i].x > w)
150
- lab[i].x = x_old;
151
- if (lab[i].x < 0)
152
- lab[i].x = x_old;
153
- if (lab[i].y > h)
154
- lab[i].y = y_old;
155
- if (lab[i].y < 0)
156
- lab[i].y = y_old;
157
- // new energy
158
- let new_energy;
159
- if (user_energy) {
160
- new_energy = user_defined_energy(i, lab, anc);
161
- }
162
- else {
163
- new_energy = energy(i);
164
- }
165
- // delta E
166
- let delta_energy = new_energy - old_energy;
167
- if (!(Math.random() < Math.exp(-delta_energy / currT))) {
168
- // move back to old coordinates
169
- lab[i].x = x_old;
170
- lab[i].y = y_old;
171
- }
172
- };
173
- const intersect = function (x1, x2, x3, x4, y1, y2, y3, y4) {
174
- // returns true if two lines intersect, else false
175
- // from http://paulbourke.net/geometry/lineline2d/
176
- let mua, mub;
177
- let denom, numera, numerb;
178
- denom = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);
179
- numera = (x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3);
180
- numerb = (x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3);
181
- /* Is the intersection along the the segments */
182
- mua = numera / denom;
183
- mub = numerb / denom;
184
- if (!(mua < 0 || mua > 1 || mub < 0 || mub > 1)) {
185
- return true;
186
- }
187
- return false;
188
- };
189
- const cooling_schedule = function (currT, initialT, nsweeps) {
190
- // linear cooling
191
- return currT - initialT / nsweeps;
192
- };
193
- labeler.start = function (nsweeps) {
194
- // main simulated annealing function
195
- let m = lab.length, currT = 1.0, initialT = 1.0;
196
- for (let i = 0; i < nsweeps; i++) {
197
- for (let j = 0; j < m; j++) {
198
- if (Math.random() < 0.5) {
199
- mcmove(currT);
200
- }
201
- else {
202
- mcrotate(currT);
203
- }
204
- }
205
- currT = cooling_schedule(currT, initialT, nsweeps);
206
- }
207
- };
208
- labeler.width = function (x) {
209
- // users insert graph width
210
- if (!arguments.length)
211
- return w;
212
- w = x;
213
- return labeler;
214
- };
215
- labeler.height = function (x) {
216
- // users insert graph height
217
- if (!arguments.length)
218
- return h;
219
- h = x;
220
- return labeler;
221
- };
222
- labeler.label = function (x) {
223
- // users insert label positions
224
- if (!arguments.length)
225
- return lab;
226
- lab = x;
227
- return labeler;
228
- };
229
- labeler.anchor = function (x) {
230
- // users insert anchor positions
231
- if (!arguments.length)
232
- return anc;
233
- anc = x;
234
- return labeler;
235
- };
236
- labeler.alt_energy = function (x) {
237
- // user defined energy
238
- if (!arguments.length)
239
- return energy;
240
- user_defined_energy = x;
241
- user_energy = true;
242
- return labeler;
243
- };
244
- labeler.alt_schedule = function (x) {
245
- // user defined cooling_schedule
246
- if (!arguments.length)
247
- return cooling_schedule;
248
- user_defined_schedule = x;
249
- user_schedule = true;
250
- return labeler;
251
- };
252
- return labeler;
253
- }
254
- /*eslint-enable */
@@ -1,150 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.desaturationLayer = exports.hullEnclosure = exports.rectangleEnclosure = exports.circleEnclosure = void 0;
40
- const React = __importStar(require("react"));
41
- const Annotation_1 = __importDefault(require("../Annotation"));
42
- const d3_polygon_1 = require("d3-polygon");
43
- const polygon_offset_1 = __importDefault(require("polygon-offset"));
44
- const circleEnclosure = ({ d, i, circle }) => {
45
- const { padding = 2, radiusPadding = padding, label } = d;
46
- const noteData = Object.assign({
47
- dx: 0,
48
- dy: 0,
49
- note: { label },
50
- connector: { end: "arrow" }
51
- }, d, {
52
- coordinates: undefined,
53
- x: circle.x,
54
- y: circle.y,
55
- type: "callout-circle",
56
- subject: {
57
- radius: circle.r,
58
- radiusPadding
59
- },
60
- i
61
- });
62
- if (noteData.rp) {
63
- switch (noteData.rp) {
64
- case "top":
65
- noteData.dx = 0;
66
- noteData.dy = -circle.r - noteData.rd;
67
- break;
68
- case "bottom":
69
- noteData.dx = 0;
70
- noteData.dy = circle.r + noteData.rd;
71
- break;
72
- case "left":
73
- noteData.dx = -circle.r - noteData.rd;
74
- noteData.dy = 0;
75
- break;
76
- default:
77
- noteData.dx = circle.r + noteData.rd;
78
- noteData.dy = 0;
79
- }
80
- }
81
- //TODO: Support .ra (setting angle)
82
- return React.createElement(Annotation_1.default, { key: d.key || `annotation-${i}`, noteData: noteData });
83
- };
84
- exports.circleEnclosure = circleEnclosure;
85
- const rectangleEnclosure = ({ bboxNodes, d, i }) => {
86
- const { padding = 0, dx = -25, dy = -25, label } = d;
87
- const bbox = [
88
- [
89
- Math.min(...bboxNodes.map((p) => p.x0)) - padding,
90
- Math.min(...bboxNodes.map((p) => p.y0)) - padding
91
- ],
92
- [
93
- Math.max(...bboxNodes.map((p) => p.x1)) + padding,
94
- Math.max(...bboxNodes.map((p) => p.y1)) + padding
95
- ]
96
- ];
97
- const noteData = Object.assign({
98
- dx: dx,
99
- dy: dy,
100
- note: { label },
101
- connector: { end: "arrow" }
102
- }, d, {
103
- type: "callout-rect",
104
- x: bbox[0][0],
105
- y: bbox[0][1],
106
- subject: {
107
- width: bbox[1][0] - bbox[0][0],
108
- height: bbox[1][1] - bbox[0][1]
109
- }
110
- });
111
- return React.createElement(Annotation_1.default, { key: d.key || `annotation-${i}`, noteData: noteData });
112
- };
113
- exports.rectangleEnclosure = rectangleEnclosure;
114
- const hullEnclosure = ({ points, d, i }) => {
115
- const { color = "currentColor", dx = -25, dy = -25, label, padding = 10, buffer = padding, strokeWidth = 10 } = d;
116
- const hullPoints = (0, d3_polygon_1.polygonHull)(points);
117
- const offset = new polygon_offset_1.default();
118
- const bufferedHull = offset
119
- .data([...hullPoints, hullPoints[0]])
120
- .margin(buffer)[0];
121
- const hullD = `M${bufferedHull.map((d) => d.join(",")).join("L")}Z`;
122
- const firstCoord = bufferedHull[0];
123
- const { nx = firstCoord[0] + dx, ny = firstCoord[1] + dy } = d;
124
- const closestCoordinates = bufferedHull.reduce((p, c) => {
125
- if (Math.hypot(nx - p[0], ny - p[1]) > Math.hypot(nx - c[0], ny - c[1])) {
126
- p = c;
127
- }
128
- return p;
129
- }, firstCoord);
130
- const noteData = Object.assign({
131
- dx: dx,
132
- dy: dy,
133
- note: { label },
134
- connector: { end: "arrow" }
135
- }, d, {
136
- type: "callout-custom",
137
- x: closestCoordinates[0],
138
- y: closestCoordinates[1],
139
- subject: {
140
- custom: [
141
- React.createElement("path", { key: "hull-drawing", d: hullD, strokeWidth: strokeWidth, strokeMiterlimit: "10", strokeLinejoin: "miter", strokeLinecap: "butt", fill: "none", stroke: color, transform: `translate(${-closestCoordinates[0]},${-closestCoordinates[1]})` })
142
- ],
143
- customID: "hull-annotation"
144
- }
145
- });
146
- return React.createElement(Annotation_1.default, { key: d.key || `annotation-${i}`, noteData: noteData });
147
- };
148
- exports.hullEnclosure = hullEnclosure;
149
- const desaturationLayer = ({ style = { fill: "white", fillOpacity: 0.5 }, size, i, key }) => (React.createElement("rect", { "data-testid": "desaturation-layer", key: key || `desaturation-${i}`, x: -5, y: -5, width: size[0] + 10, height: size[1] + 10, style: style }));
150
- exports.desaturationLayer = desaturationLayer;