@neo4j-nvl/base 1.2.2 → 2.0.0-1e695738

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 (235) hide show
  1. package/CHANGELOG.md +54 -1
  2. package/README.md +8 -0
  3. package/dist/base.mjs +35891 -2
  4. package/dist/types/index.d.ts +382 -386
  5. package/dist/types/layouts/animatedlayout/AnimatedLayout.d.ts +23 -23
  6. package/dist/types/layouts/animatedlayout/animationUtils.d.ts +3 -3
  7. package/dist/types/layouts/circularLayout/CircularLayout.d.ts +14 -14
  8. package/dist/types/layouts/d3forcelayout/circularLayout.d.ts +4 -4
  9. package/dist/types/layouts/d3forcelayout/constants.d.ts +3 -4
  10. package/dist/types/layouts/d3forcelayout/d3ForceLayout.d.ts +31 -31
  11. package/dist/types/layouts/d3forcelayout/types.d.ts +7 -7
  12. package/dist/types/layouts/forcedirectedlayout/PhysLayout.d.ts +275 -0
  13. package/dist/types/layouts/forcedirectedlayout/clustering/ClusterByMerger.d.ts +62 -0
  14. package/dist/types/layouts/forcedirectedlayout/clustering/SolarMerger.d.ts +56 -0
  15. package/dist/types/layouts/forcedirectedlayout/clustering/clustering-utils.d.ts +143 -0
  16. package/dist/types/layouts/forcedirectedlayout/clustering/types.d.ts +59 -0
  17. package/dist/types/layouts/forcedirectedlayout/glwrapper.d.ts +4 -0
  18. package/dist/types/layouts/forcedirectedlayout/shaders/multilevel-fragment.d.ts +2 -0
  19. package/dist/types/layouts/forcedirectedlayout/shaders/multilevel-repulsive-fragment.d.ts +2 -0
  20. package/dist/types/layouts/forcedirectedlayout/shaders/multilevel-update-fragment.d.ts +2 -0
  21. package/dist/types/layouts/forcedirectedlayout/shaders/sim-vertex.d.ts +2 -0
  22. package/dist/types/layouts/freeLayout/FreeLayout.d.ts +23 -25
  23. package/dist/types/layouts/gridLayout/GridLayout.d.ts +26 -30
  24. package/dist/types/layouts/hierarchicallayout/HierarchicalLayout.d.ts +28 -23
  25. package/dist/types/layouts/hierarchicallayout/constants.d.ts +2 -2
  26. package/dist/types/modules/CallbackHelper.d.ts +23 -23
  27. package/dist/types/modules/ExternalCallbackHandler.d.ts +33 -39
  28. package/dist/types/modules/NvlController.d.ts +212 -129
  29. package/dist/types/modules/Shader.d.ts +17 -17
  30. package/dist/types/modules/ZoomTransitionHandler.d.ts +24 -24
  31. package/dist/types/modules/dataset.d.ts +26 -24
  32. package/dist/types/modules/logging.d.ts +4 -4
  33. package/dist/types/modules/state/constants.d.ts +2 -2
  34. package/dist/types/modules/state/state.d.ts +2 -2
  35. package/dist/types/modules/state/types.d.ts +338 -228
  36. package/dist/types/modules/state/utils.d.ts +36 -36
  37. package/dist/types/renderers/ClusterOverlay.d.ts +73 -0
  38. package/dist/types/renderers/domrenderer/BaseRenderer.d.ts +69 -69
  39. package/dist/types/renderers/domrenderer/canvasrenderer/Animation.d.ts +57 -57
  40. package/dist/types/renderers/domrenderer/canvasrenderer/AnimationHandler.d.ts +65 -65
  41. package/dist/types/renderers/domrenderer/canvasrenderer/CanvasRenderer.d.ts +84 -85
  42. package/dist/types/renderers/domrenderer/canvasrenderer/arrowDrawing.d.ts +31 -31
  43. package/dist/types/renderers/domrenderer/canvasrenderer/nodeDrawing.d.ts +32 -32
  44. package/dist/types/renderers/domrenderer/shared/ImageCache.d.ts +16 -15
  45. package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundle.d.ts +89 -89
  46. package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundler.d.ts +42 -42
  47. package/dist/types/renderers/domrenderer/shared/arrows/arrows.d.ts +49 -49
  48. package/dist/types/renderers/domrenderer/shared/arrows/constants.d.ts +4 -4
  49. package/dist/types/renderers/domrenderer/shared/nodes/nodes.d.ts +21 -21
  50. package/dist/types/renderers/domrenderer/shared/types.d.ts +29 -30
  51. package/dist/types/renderers/domrenderer/shared/util.d.ts +4 -4
  52. package/dist/types/renderers/domrenderer/shared/vectorUtils.d.ts +10 -10
  53. package/dist/types/renderers/domrenderer/shared/wordwrap.d.ts +10 -10
  54. package/dist/types/renderers/domrenderer/svgrenderer/SvgRenderer.d.ts +18 -19
  55. package/dist/types/renderers/domrenderer/svgrenderer/arrowDrawing.d.ts +15 -15
  56. package/dist/types/renderers/domrenderer/svgrenderer/nodeDrawing.d.ts +4 -4
  57. package/dist/types/renderers/domrenderer/svgrenderer/svgUtils.d.ts +21 -21
  58. package/dist/types/renderers/webglrenderer/Controller.d.ts +83 -61
  59. package/dist/types/renderers/webglrenderer/IconLayerRegistry.d.ts +14 -0
  60. package/dist/types/renderers/webglrenderer/Renderer.d.ts +91 -51
  61. package/dist/types/renderers/webglrenderer/node-animation-fragment.d.ts +2 -2
  62. package/dist/types/renderers/webglrenderer/node-animation-vertex.d.ts +2 -2
  63. package/dist/types/renderers/webglrenderer/node-fragment-point.d.ts +2 -2
  64. package/dist/types/renderers/webglrenderer/node-vertex-point.d.ts +2 -2
  65. package/dist/types/renderers/webglrenderer/rel-fragment-line.d.ts +2 -2
  66. package/dist/types/renderers/webglrenderer/rel-glsl-utils.d.ts +1 -0
  67. package/dist/types/renderers/webglrenderer/rel-vertex-arrow.d.ts +2 -0
  68. package/dist/types/renderers/webglrenderer/rel-vertex-line.d.ts +2 -2
  69. package/dist/types/renderers/webglrenderer/viewport-box-fragment.d.ts +2 -2
  70. package/dist/types/renderers/webglrenderer/viewport-box-vertex.d.ts +2 -2
  71. package/dist/types/types/graph-element.d.ts +109 -101
  72. package/dist/types/types/nvl-window-functions.d.ts +12 -13
  73. package/dist/types/types/utils.d.ts +1 -1
  74. package/dist/types/utils/ariaUtils.d.ts +2 -2
  75. package/dist/types/utils/canvasManagement.d.ts +8 -2
  76. package/dist/types/utils/circularUtils.d.ts +2 -2
  77. package/dist/types/utils/clusterGeometry.d.ts +14 -0
  78. package/dist/types/utils/clusterHitRegions.d.ts +42 -0
  79. package/dist/types/utils/colorUtils.d.ts +2 -2
  80. package/dist/types/utils/constants.d.ts +12 -6
  81. package/dist/types/utils/errors.d.ts +6 -6
  82. package/dist/types/utils/geometry.d.ts +91 -48
  83. package/dist/types/utils/graphObjectUtils.d.ts +9 -9
  84. package/dist/types/utils/hitTest.d.ts +84 -0
  85. package/dist/types/utils/jsDriverResultTransformer.d.ts +27 -25
  86. package/dist/types/utils/layoutSeeding.d.ts +7 -0
  87. package/dist/types/utils/mouseUtils.d.ts +5 -5
  88. package/dist/types/utils/segmentAnalytics.d.ts +42 -42
  89. package/dist/types/utils/webWorkerUtils.d.ts +2 -2
  90. package/dist/types/utils/zoomFunctions.d.ts +24 -16
  91. package/package.json +15 -15
  92. package/skills/neo4j-nvl-skill/README.md +39 -0
  93. package/skills/neo4j-nvl-skill/SKILL.md +296 -0
  94. package/skills/neo4j-nvl-skill/references/api/base/classes/NVL.md +977 -0
  95. package/skills/neo4j-nvl-skill/references/api/base/functions/getZoomTargetForNodePositions.md +37 -0
  96. package/skills/neo4j-nvl-skill/references/api/base/index.md +71 -0
  97. package/skills/neo4j-nvl-skill/references/api/base/interfaces/CircularOptions.md +11 -0
  98. package/skills/neo4j-nvl-skill/references/api/base/interfaces/ClusteringOptions.md +14 -0
  99. package/skills/neo4j-nvl-skill/references/api/base/interfaces/ExternalCallbacks.md +18 -0
  100. package/skills/neo4j-nvl-skill/references/api/base/interfaces/ForceDirectedOptions.md +12 -0
  101. package/skills/neo4j-nvl-skill/references/api/base/interfaces/HierarchicalOptions.md +13 -0
  102. package/skills/neo4j-nvl-skill/references/api/base/interfaces/HitTargetCluster.md +13 -0
  103. package/skills/neo4j-nvl-skill/references/api/base/interfaces/HitTargetNode.md +16 -0
  104. package/skills/neo4j-nvl-skill/references/api/base/interfaces/HitTargetRelationship.md +15 -0
  105. package/skills/neo4j-nvl-skill/references/api/base/interfaces/Node.md +32 -0
  106. package/skills/neo4j-nvl-skill/references/api/base/interfaces/NvlMouseEvent.md +16 -0
  107. package/skills/neo4j-nvl-skill/references/api/base/interfaces/NvlOptions.md +38 -0
  108. package/skills/neo4j-nvl-skill/references/api/base/interfaces/Point.md +12 -0
  109. package/skills/neo4j-nvl-skill/references/api/base/interfaces/Relationship.md +32 -0
  110. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/CanvasRendererType.md +14 -0
  111. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/Cluster.md +20 -0
  112. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/ClusterByFn.md +20 -0
  113. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/ClusterId.md +10 -0
  114. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/HitTargets.md +22 -0
  115. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/HitTestTarget.md +7 -0
  116. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/Layout.md +15 -0
  117. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/LayoutOptions.md +12 -0
  118. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/NodeWithClientPosition.md +18 -0
  119. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/PartialNode.md +17 -0
  120. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/PartialRelationship.md +17 -0
  121. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/Renderer.md +9 -0
  122. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/StyledCaption.md +21 -0
  123. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/WebGLRendererType.md +14 -0
  124. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/ZoomOptions.md +25 -0
  125. package/skills/neo4j-nvl-skill/references/api/base/variables/CircularLayoutType.md +11 -0
  126. package/skills/neo4j-nvl-skill/references/api/base/variables/ForceDirectedLayoutType.md +9 -0
  127. package/skills/neo4j-nvl-skill/references/api/base/variables/FreeLayoutType.md +9 -0
  128. package/skills/neo4j-nvl-skill/references/api/base/variables/GridLayoutType.md +9 -0
  129. package/skills/neo4j-nvl-skill/references/api/base/variables/HierarchicalLayoutType.md +9 -0
  130. package/skills/neo4j-nvl-skill/references/api/base/variables/d3ForceLayoutType.md +9 -0
  131. package/skills/neo4j-nvl-skill/references/api/base/variables/nvlResultTransformer.md +38 -0
  132. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/BoxSelectInteraction.md +163 -0
  133. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/ClickInteraction.md +163 -0
  134. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/DragNodeInteraction.md +164 -0
  135. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/HoverInteraction.md +160 -0
  136. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/KeyboardInteraction.md +185 -0
  137. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/LassoInteraction.md +163 -0
  138. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/PanInteraction.md +196 -0
  139. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/ZoomInteraction.md +164 -0
  140. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/index.md +37 -0
  141. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/BoxSelectInteractionCallbacks.md +19 -0
  142. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/BoxSelectInteractionOptions.md +17 -0
  143. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ClickInteractionCallbacks.md +39 -0
  144. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ClickInteractionOptions.md +17 -0
  145. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/DragNodeInteractionCallbacks.md +21 -0
  146. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/DrawInteractionOptions.md +22 -0
  147. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/HoverInteractionCallbacks.md +17 -0
  148. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/HoverInteractionOptions.md +17 -0
  149. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/KeyboardInteractionCallbacks.md +35 -0
  150. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/KeyboardInteractionOptions.md +55 -0
  151. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/LassoInteractionCallbacks.md +19 -0
  152. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/LassoInteractionOptions.md +17 -0
  153. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/PanInteractionCallbacks.md +17 -0
  154. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/PanInteractionOptions.md +19 -0
  155. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ZoomInteractionCallbacks.md +17 -0
  156. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ZoomInteractionOptions.md +17 -0
  157. package/skills/neo4j-nvl-skill/references/api/react/functions/StaticPictureWrapper.md +35 -0
  158. package/skills/neo4j-nvl-skill/references/api/react/index.md +34 -0
  159. package/skills/neo4j-nvl-skill/references/api/react/interfaces/BasicReactWrapperProps.md +24 -0
  160. package/skills/neo4j-nvl-skill/references/api/react/interfaces/InteractiveNvlWrapperProps.md +27 -0
  161. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/InteractionOptions.md +10 -0
  162. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/KeyboardEvent.md +7 -0
  163. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/KeyboardEventCallbacks.md +10 -0
  164. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/MouseEvent.md +10 -0
  165. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/MouseEventCallbacks.md +10 -0
  166. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/StaticPictureWrapperProps.md +27 -0
  167. package/skills/neo4j-nvl-skill/references/api/react/variables/BasicNvlWrapper.md +50 -0
  168. package/skills/neo4j-nvl-skill/references/api/react/variables/InteractiveNvlWrapper.md +17 -0
  169. package/skills/neo4j-nvl-skill/references/clustering.md +87 -0
  170. package/skills/neo4j-nvl-skill/references/data-from-neo4j.md +67 -0
  171. package/skills/neo4j-nvl-skill/references/labels-and-overlays.md +76 -0
  172. package/skills/neo4j-nvl-skill/references/layouts-and-positions.md +65 -0
  173. package/skills/neo4j-nvl-skill/references/lifecycle-and-updates.md +65 -0
  174. package/skills/neo4j-nvl-skill/references/migrating-1x-to-2.md +50 -0
  175. package/skills/neo4j-nvl-skill/references/react-wrappers.md +88 -0
  176. package/skills/neo4j-nvl-skill/references/verifying-nvl-apps.md +52 -0
  177. package/skills/neo4j-nvl-skill/references/vite-and-bundlers.md +62 -0
  178. package/dist/base.mjs.LICENSE.txt +0 -21
  179. package/dist/types/layouts/animatedlayout/AnimatedLayout.test.d.ts +0 -1
  180. package/dist/types/layouts/animatedlayout/animationUtils.test.d.ts +0 -1
  181. package/dist/types/layouts/d3forcelayout/__mocks__/d3ForceLayout.d.ts +0 -10
  182. package/dist/types/layouts/d3forcelayout/circularLayout.test.d.ts +0 -1
  183. package/dist/types/layouts/d3forcelayout/d3ForceLayout.test.d.ts +0 -1
  184. package/dist/types/layouts/forcedirectedlayout/ForceCytoLayout.d.ts +0 -22
  185. package/dist/types/layouts/forcedirectedlayout/cosebilkentlayout/CoseBilkentLayout.d.ts +0 -33
  186. package/dist/types/layouts/forcedirectedlayout/physlayout/PhysLayout.d.ts +0 -174
  187. package/dist/types/layouts/forcedirectedlayout/physlayout/PhysLayout.test.d.ts +0 -1
  188. package/dist/types/layouts/forcedirectedlayout/physlayout/glwrapper.d.ts +0 -4
  189. package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/multilevel-fragment.d.ts +0 -2
  190. package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/multilevel-repulsive-fragment.d.ts +0 -2
  191. package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/multilevel-update-fragment.d.ts +0 -2
  192. package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/sim-vertex.d.ts +0 -2
  193. package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/workaround-fragment.d.ts +0 -2
  194. package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/SolarMerger.bench.d.ts +0 -1
  195. package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/SolarMerger.d.ts +0 -21
  196. package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/SolarMerger.test.d.ts +0 -1
  197. package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/solar-placer.d.ts +0 -2
  198. package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/solar-placer.test.d.ts +0 -1
  199. package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/types.d.ts +0 -49
  200. package/dist/types/modules/NvlController.test.d.ts +0 -1
  201. package/dist/types/modules/ZoomTransitionHandler.test.d.ts +0 -1
  202. package/dist/types/modules/dataset.test.d.ts +0 -1
  203. package/dist/types/modules/state/state.test.d.ts +0 -1
  204. package/dist/types/modules/state/utils.test.d.ts +0 -1
  205. package/dist/types/renderers/domrenderer/BaseRenderer.test.d.ts +0 -1
  206. package/dist/types/renderers/domrenderer/canvasrenderer/Animation.test.d.ts +0 -1
  207. package/dist/types/renderers/domrenderer/canvasrenderer/CanvasRenderer.test.d.ts +0 -1
  208. package/dist/types/renderers/domrenderer/canvasrenderer/arrowDrawing.test.d.ts +0 -1
  209. package/dist/types/renderers/domrenderer/canvasrenderer/nodeDrawing.test.d.ts +0 -1
  210. package/dist/types/renderers/domrenderer/shared/ImageCache.test.d.ts +0 -1
  211. package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundle.test.d.ts +0 -1
  212. package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundler.test.d.ts +0 -1
  213. package/dist/types/renderers/domrenderer/shared/arrows/arrows.test.d.ts +0 -1
  214. package/dist/types/renderers/domrenderer/shared/nodes/nodes.test.d.ts +0 -1
  215. package/dist/types/renderers/domrenderer/shared/util.test.d.ts +0 -1
  216. package/dist/types/renderers/domrenderer/shared/wordwrap.test.d.ts +0 -1
  217. package/dist/types/renderers/domrenderer/svgrenderer/SvgRenderer.test.d.ts +0 -1
  218. package/dist/types/renderers/domrenderer/svgrenderer/arrowDrawing.test.d.ts +0 -1
  219. package/dist/types/renderers/domrenderer/svgrenderer/nodeDrawing.test.d.ts +0 -1
  220. package/dist/types/renderers/domrenderer/svgrenderer/svgUtils.test.d.ts +0 -1
  221. package/dist/types/renderers/webglrenderer/Controller.test.d.ts +0 -1
  222. package/dist/types/renderers/webglrenderer/Renderer.test.d.ts +0 -1
  223. package/dist/types/utils/ariaUtils.test.d.ts +0 -1
  224. package/dist/types/utils/canvasManagement.test.d.ts +0 -1
  225. package/dist/types/utils/circularUtils.test.d.ts +0 -1
  226. package/dist/types/utils/colorUtils.test.d.ts +0 -1
  227. package/dist/types/utils/errors.test.d.ts +0 -1
  228. package/dist/types/utils/geometry.test.d.ts +0 -1
  229. package/dist/types/utils/graphObjectUtils.test.d.ts +0 -1
  230. package/dist/types/utils/hittest.d.ts +0 -58
  231. package/dist/types/utils/hittest.test.d.ts +0 -1
  232. package/dist/types/utils/jsDriverResultTransformer.test.d.ts +0 -1
  233. package/dist/types/utils/mouseUtils.test.d.ts +0 -1
  234. package/dist/types/utils/webWorkerUtils.test.d.ts +0 -1
  235. package/dist/types/utils/zoomFunctions.test.d.ts +0 -1
@@ -1,4 +1,5 @@
1
- import type { StyledCaption } from '../renderers/domrenderer/shared/types';
1
+ import { Point } from "../utils/geometry.js";
2
+ import { StyledCaption } from "../renderers/domrenderer/shared/types.js";
2
3
  /**
3
4
  * The base type for graph elements.
4
5
  * @private
@@ -6,130 +7,137 @@ import type { StyledCaption } from '../renderers/domrenderer/shared/types';
6
7
  * @hidden
7
8
  */
8
9
  interface GraphElement {
10
+ /**
11
+ * The id of the current node or relationship.
12
+ * Ids need to be unique across all nodes and relationships.
13
+ * Ids need to be strings and cannot be empty.
14
+ */
15
+ readonly id: string;
16
+ /** The color of the graph element.*/
17
+ color?: string;
18
+ /** Whether or not the current node or relationship is selected.*/
19
+ selected?: boolean;
20
+ /**
21
+ * The text to display inside on node or relationship.
22
+ * @note: If both caption and captions are provided, captions takes precedence.
23
+ * @note: To provide multiple captions with custom styles, use the {@link captions} property.
24
+ * @note: Captions are only visible when using the 'canvas' renderer.
25
+ */
26
+ caption?: string;
27
+ /** Whether or not the current node or relationship is disabled.*/
28
+ disabled?: boolean;
29
+ /** Whether or not the current node or relationship is hovered.*/
30
+ hovered?: boolean;
31
+ /** The caption text size.*/
32
+ captionSize?: number;
33
+ /**
34
+ * The caption align.
35
+ * Has no affect on self-referring relationships.
36
+ */
37
+ captionAlign?: 'top' | 'bottom' | 'center';
38
+ /**
39
+ * The caption text and font styles.
40
+ * @note: To provide a single caption without custom styles, you can also use the {@link caption} property.
41
+ * @note: Captions are only visible when using the 'canvas' renderer.
42
+ */
43
+ captions?: StyledCaption[];
44
+ /**
45
+ * An icon to be displayed anywhere on top of the graph element.
46
+ * Icons are expected to be square.
47
+ */
48
+ overlayIcon?: {
49
+ /** The url to the icon.*/
50
+ url: string;
9
51
  /**
10
- * The id of the current node or relationship.
11
- * Ids need to be unique across all nodes and relationships.
12
- * Ids need to be strings and cannot be empty.
52
+ * The position of the icon relative to the node or relationship.
53
+ * The position is a percentage of the node or relationship size.
54
+ * `[1, 1]` is the bottom right corner of the node or relationship.
55
+ * `[-1, -1]` is the top left corner of the node or relationship.
56
+ * @defaultValue `[0, 0]`, the center of the node or relationship.
13
57
  */
14
- readonly id: string;
15
- /** The color of the graph element.*/
16
- color?: string;
17
- /** Whether or not the current node or relationship is selected.*/
18
- selected?: boolean;
58
+ position?: number[];
19
59
  /**
20
- * The text to display inside on node or relationship.
21
- * @note: If both caption and captions are provided, captions takes precedence.
22
- * @note: To provide multiple captions with custom styles, use the {@link captions} property.
23
- * @note: Captions are only visible when using the 'canvas' renderer.
60
+ * The size of the icon relative to the node size or relationship caption size.
61
+ * The size is a percentage of the node size or relationship caption size.
62
+ * @defaultValue `1`, the same size as the node size or relationship caption size.
24
63
  */
25
- caption?: string;
26
- /** Whether or not the current node or relationship is disabled.*/
27
- disabled?: boolean;
28
- /** Whether or not the current node or relationship is hovered.*/
29
- hovered?: boolean;
30
- /** The caption text size.*/
31
- captionSize?: number;
32
- /**
33
- * The caption align.
34
- * Has no affect on self-referring relationships.
35
- */
36
- captionAlign?: 'top' | 'bottom' | 'center';
37
- /**
38
- * The caption text and font styles.
39
- * @note: To provide a single caption without custom styles, you can also use the {@link caption} property.
40
- * @note: Captions are only visible when using the 'canvas' renderer.
41
- */
42
- captions?: StyledCaption[];
43
- /**
44
- * An icon to be displayed anywhere on top of the graph element.
45
- * Icons are expected to be square.
46
- */
47
- overlayIcon?: {
48
- /** The url to the icon.*/
49
- url: string;
50
- /**
51
- * The position of the icon relative to the node or relationship.
52
- * The position is a percentage of the node or relationship size.
53
- * `[1, 1]` is the bottom right corner of the node or relationship.
54
- * `[-1, -1]` is the top left corner of the node or relationship.
55
- * @defaultValue `[0, 0]`, the center of the node or relationship.
56
- */
57
- position?: number[];
58
- /**
59
- * The size of the icon relative to the node size or relationship caption size.
60
- * The size is a percentage of the node size or relationship caption size.
61
- * @defaultValue `1`, the same size as the node size or relationship caption size.
62
- */
63
- size?: number;
64
- };
64
+ size?: number;
65
+ };
65
66
  }
66
67
  export declare const isValidNode: (node: unknown) => node is Node;
67
68
  /**
68
69
  * A node inside the graph visualization.
69
70
  */
70
71
  interface Node extends GraphElement {
71
- /** The size of the node.*/
72
- size?: number;
73
- /** Whether or not the current node is pinned.*/
74
- pinned?: boolean;
75
- /**
76
- * @ignore
77
- * The x-coordinate for the position of the node.
78
- */
79
- x?: number;
80
- /**
81
- * @ignore
82
- * The y-coordinate for the position of the node.
83
- */
84
- y?: number;
85
- /** Whether or not the current node is activated.*/
86
- activated?: boolean;
87
- /**
88
- * The url to an icon to display inside the node.
89
- * Icons are expected to be black. If the node's background color is dark,
90
- * the icon will be inverted to white.
91
- * Icons are expected to be square.
92
- */
93
- icon?: string;
94
- /**
95
- * The DOM element to display on top of a node.
96
- * @experimental
97
- */
98
- html?: HTMLElement;
72
+ /** The size of the node.*/
73
+ size?: number;
74
+ /** Whether or not the current node is pinned.*/
75
+ pinned?: boolean;
76
+ /**
77
+ * @ignore
78
+ * The x-coordinate for the position of the node.
79
+ */
80
+ x?: number;
81
+ /**
82
+ * @ignore
83
+ * The y-coordinate for the position of the node.
84
+ */
85
+ y?: number;
86
+ /** Whether or not the current node is activated.*/
87
+ activated?: boolean;
88
+ /**
89
+ * The url to an icon to display inside the node.
90
+ * Icons are expected to be black. If the node's background color is dark,
91
+ * the icon will be inverted to white.
92
+ * Icons are expected to be square.
93
+ */
94
+ icon?: string;
95
+ /**
96
+ * The DOM element to display on top of a node.
97
+ * @experimental
98
+ */
99
+ html?: HTMLElement;
99
100
  }
101
+ /**
102
+ * A node returned by {@link NVL.getNodes} with layout coordinates and screen position.
103
+ * `x` and `y` are canvas/layout space; `clientPosition` is relative to the canvas element.
104
+ */
105
+ type NodeWithClientPosition = Node & Point & {
106
+ clientPosition: Point;
107
+ };
100
108
  /**
101
109
  * A node with only a subset of its properties.
102
110
  */
103
111
  type PartialNode = Partial<Node> & {
104
- /** The id of the node. */
105
- id: string;
112
+ /** The id of the node. */
113
+ id: string;
106
114
  };
107
115
  export declare const isValidRelationship: (relationship: unknown) => relationship is Relationship;
108
116
  /**
109
117
  * A relationship inside the graph visualization.
110
118
  */
111
119
  interface Relationship extends GraphElement {
112
- /** Node id where the relationship starts from.*/
113
- from: string;
114
- /** Node id where the relationship points to.*/
115
- to: string;
116
- /** The relationship type.*/
117
- type?: string;
118
- /** The width of the relationship.*/
119
- width?: number;
120
- /**
121
- * The DOM element to display on top of a relationship caption.
122
- * @experimental
123
- * The {@link captionSize} and {@link captionAlign} properties
124
- * will affect the position and height of the html container element.
125
- */
126
- captionHtml?: HTMLElement;
120
+ /** Node id where the relationship starts from.*/
121
+ from: string;
122
+ /** Node id where the relationship points to.*/
123
+ to: string;
124
+ /** The relationship type.*/
125
+ type?: string;
126
+ /** The width of the relationship.*/
127
+ width?: number;
128
+ /**
129
+ * The DOM element to display on top of a relationship caption.
130
+ * @experimental
131
+ * The {@link captionSize} and {@link captionAlign} properties
132
+ * will affect the position and height of the html container element.
133
+ */
134
+ captionHtml?: HTMLElement;
127
135
  }
128
136
  /**
129
137
  * A relationship with only a subset of its properties.
130
138
  */
131
139
  type PartialRelationship = Partial<Relationship> & {
132
- /** The id of the relationship. */
133
- id: string;
140
+ /** The id of the relationship. */
141
+ id: string;
134
142
  };
135
- export type { Node, Relationship, PartialNode, PartialRelationship };
143
+ export type { Node, NodeWithClientPosition, PartialNode, PartialRelationship, Relationship };
@@ -1,16 +1,15 @@
1
- import type { Node, Relationship } from './graph-element';
1
+ import { Node, NodeWithClientPosition, Relationship } from "./graph-element.js";
2
2
  export interface NvlWindow {
3
- __Nvl_dumpNodes: (instanceId?: string) => Node[];
4
- __Nvl_dumpRelationships: (instanceId?: string) => Relationship[];
5
- __Nvl_getNodesOnScreen: (instanceId?: string) => {
6
- nodes: Node[];
7
- rels: Relationship[];
8
- };
9
- __Nvl_registerDoneCallback: (cb: () => void, instanceId: string) => void;
10
- __Nvl_getZoomLevel: (instanceId?: string) => number;
3
+ __Nvl_dumpNodes: (instanceId?: string) => NodeWithClientPosition[];
4
+ __Nvl_dumpRelationships: (instanceId?: string) => Relationship[];
5
+ __Nvl_getNodesOnScreen: (instanceId?: string) => {
6
+ nodes: Node[];
7
+ rels: Relationship[];
8
+ };
9
+ __Nvl_registerDoneCallback: (cb: () => void, instanceId: string) => void;
10
+ __Nvl_getZoomLevel: (instanceId?: string) => number;
11
11
  }
12
12
  declare global {
13
- interface Window extends NvlWindow {
14
- }
15
- const SEGMENT_WRITE_KEY: string;
16
- }
13
+ interface Window extends NvlWindow {}
14
+ const SEGMENT_WRITE_KEY: string;
15
+ }
@@ -1 +1 @@
1
- export declare const typedObjectEntries: <T>(obj: T) => [keyof T, T[keyof T]][];
1
+ export declare const typedObjectEntries: <T>(obj: T) => [keyof T, T[keyof T]][];
@@ -1,3 +1,3 @@
1
- import type { NvlState } from '../modules/state/types';
1
+ import { NvlState } from "../modules/state/types.js";
2
2
  export declare const enrichWithAria: (canvasParent: HTMLElement, instanceId: string) => HTMLDivElement;
3
- export declare const updateAriaDescription: (state: NvlState, descriptionElement: HTMLDivElement) => void;
3
+ export declare const updateAriaDescription: (state: NvlState, descriptionElement: HTMLDivElement) => void;
@@ -8,12 +8,18 @@
8
8
  * it will use the width and height from the style properties.
9
9
  */
10
10
  export declare const fitCanvasSizeToParent: (canvas: HTMLCanvasElement) => void;
11
+ /**
12
+ * Calls `callback` whenever the size of `element` changes, using `ResizeObserver`.
13
+ *
14
+ * @returns The observer so the caller can `disconnect()` it.
15
+ */
16
+ export declare const observeResize: (element: HTMLElement, callback: () => void) => ResizeObserver;
11
17
  export declare const addWebGLContextLostListener: (canvas: HTMLCanvasElement, contextLostCallback?: (e: WebGLContextEvent) => void) => void;
12
18
  export declare const createCanvasForScreenshot: (fullWidth: number, fullHeight: number) => HTMLCanvasElement;
13
19
  export declare const createCanvasForRenderer: (parent?: HTMLElement, onContextLostCallback?: (e: WebGLContextEvent) => void) => HTMLCanvasElement;
14
20
  export declare const removeCanvas: (canvas: HTMLCanvasElement) => void;
15
21
  export declare const getCanvas2DContext: (canvas: HTMLCanvasElement) => CanvasRenderingContext2D;
16
- export declare const getWebGLContext: (canvas: HTMLCanvasElement) => WebGLRenderingContext;
22
+ export declare const getWebGLContext: (canvas: HTMLCanvasElement) => WebGL2RenderingContext | null;
17
23
  export declare const removeWebGLContext: (webGLCtx: WebGLRenderingContext) => void;
18
24
  export declare const checkWebGLAvailability: (canvas?: HTMLCanvasElement) => boolean;
19
25
  /**
@@ -30,4 +36,4 @@ export declare const measureTextCached: (ctx: CanvasRenderingContext2D, text: st
30
36
  /**
31
37
  * Clears the text measurement cache.
32
38
  */
33
- export declare const clearTextMeasurementCache: () => void;
39
+ export declare const clearTextMeasurementCache: () => void;
@@ -1,3 +1,3 @@
1
- import type { Node } from '../types/graph-element';
1
+ import { Node } from "../types/graph-element.js";
2
2
  export declare const MIN_RADIUS = 250;
3
- export declare const getPositionsOnCircle: (nodes: Node[]) => Record<string, Node>;
3
+ export declare const getPositionsOnCircle: (nodes: Node[]) => Record<string, Node>;
@@ -0,0 +1,14 @@
1
+ import { Point } from "./geometry.js";
2
+ /** Extra world-space padding around each member disk before taking the cluster hull. */
3
+ export declare const ClusterHullPadding = 14;
4
+ /** Circumference samples per member disk before taking the convex hull. */
5
+ export declare const DiskSampleCount = 8;
6
+ export type ClusterMemberDisk = Point & {
7
+ radius: number;
8
+ };
9
+ /**
10
+ * Fits a convex hull around the given disks by sampling each member circumference.
11
+ * @param members - The cluster member disks to fit the hull around.
12
+ * @returns The fitted hull, or null if fewer than two members have a usable position/radius.
13
+ */
14
+ export declare const fitClusterHull: (members: ClusterMemberDisk[]) => Point[] | null;
@@ -0,0 +1,42 @@
1
+ import { Point } from "./geometry.js";
2
+ import { Node } from "../types/graph-element.js";
3
+ import { Cluster, ClusterId } from "../modules/state/types.js";
4
+ import { CoarsenedGraph, Sun } from "../layouts/forcedirectedlayout/clustering/types.js";
5
+ import { ClusterMemberDisk } from "./clusterGeometry.js";
6
+ /**
7
+ * A fitted cluster hull region used for decoration and hit-testing.
8
+ */
9
+ export type ClusterHitRegion = Cluster & {
10
+ /** Convex hull used for picking / decoration. */
11
+ hull: Point[];
12
+ /** Layout sun original id (e.g. `synth-sun:${id}`). */
13
+ sunOriginalId: string;
14
+ };
15
+ export type MultiMemberCluster = {
16
+ sun: Sun;
17
+ nodeIds: string[];
18
+ };
19
+ /**
20
+ * Returns each multi-member first-level sun system in a coarsening hierarchy.
21
+ * @param firstSubGraphLevel - `subGraphs[1]` from the current layout coarsening hierarchy.
22
+ * @returns Suns paired with their original member node ids.
23
+ */
24
+ export declare const getMultiMemberClusters: (firstSubGraphLevel: CoarsenedGraph) => MultiMemberCluster[];
25
+ /**
26
+ * Collects member disks with usable positions for hull fitting.
27
+ * @param nodeIds - Member node ids.
28
+ * @param idToPosition - Node id to position map.
29
+ * @param idToItem - Node id to graph node map.
30
+ * @returns Member disks for {@link fitClusterHull}.
31
+ */
32
+ export declare const collectMemberDisks: (nodeIds: string[], idToPosition: Readonly<Record<string, Point>>, idToItem: Record<string, Node>) => ClusterMemberDisk[];
33
+ /**
34
+ * Builds hit regions for {@link ClusteringOptions.clusterBy} multi-member clusters.
35
+ * Structural {@link SolarMerger} suns are skipped, as they have no entry in `clusterIdsBySun`.
36
+ * @param subGraphs - Layout coarsening hierarchy.
37
+ * @param idToPosition - Node id to position map.
38
+ * @param idToItem - Node id to graph node map.
39
+ * @param clusterIdsBySun - Cluster id per synthetic cluster sun, keyed by sun `originalId`.
40
+ * @returns Fitted cluster hit regions.
41
+ */
42
+ export declare const buildClusterByHitRegions: (subGraphs: CoarsenedGraph[], idToPosition: Readonly<Record<string, Point>>, idToItem: Record<string, Node>, clusterIdsBySun: ReadonlyMap<string, ClusterId>) => ClusterHitRegion[];
@@ -1,4 +1,4 @@
1
- import colorString from 'color-string';
1
+ import colorString from "color-string";
2
2
  /**
3
3
  * Determines whether a black or white font color is more readable for a given background color.
4
4
  * @param color - The background color.
@@ -11,4 +11,4 @@ export declare const rgbaToVec4: (rgba: number[]) => number[];
11
11
  export declare const rgbToVec3: (rgb: number[]) => number[];
12
12
  export declare const colorToUIntArray: (color: string) => number;
13
13
  export declare const colorToVec3: (color: string) => number[];
14
- export declare const colorToVec4: (color: string) => number[];
14
+ export declare const colorToVec4: (color: string) => number[];
@@ -5,6 +5,12 @@ export declare const MinRelLength = 100;
5
5
  export declare const Gravity = 25;
6
6
  export declare const SimulationStopVelocity = 0.25;
7
7
  export declare const MappingEnd = 999999;
8
+ export declare const LayoutStepIntervalMs = 13;
9
+ export declare const MaxLayoutStepsPerFrame = 20;
10
+ export declare const DefaultMaxFps = 30;
11
+ export declare const DefaultMinFps = 3;
12
+ export declare const MinAllowedFps = 1;
13
+ export declare const MaxAllowedFps = 120;
8
14
  export declare const ActiveAnimDuration = 1000;
9
15
  export declare const DefaultNodeSize = 25;
10
16
  export declare const DefaultNodeColor = "#FFDF81";
@@ -22,11 +28,11 @@ export declare const TextColorInverse = "#FFFFFF";
22
28
  export declare const MaxArrowCountWithShadows = 500;
23
29
  export declare const DefaultFontFace = "\"Open Sans\", sans-serif";
24
30
  export declare const absFillStyle: {
25
- position: string;
26
- top: number;
27
- bottom: number;
28
- left: number;
29
- right: number;
31
+ position: string;
32
+ top: number;
33
+ bottom: number;
34
+ left: number;
35
+ right: number;
30
36
  };
31
37
  /**
32
38
  * Factor to make nodes same size in WebGL renderer and Canvas.
@@ -41,4 +47,4 @@ export declare const getDevicePixelRatio: () => number;
41
47
  export declare const HtmlCaptionMinWidthThreshold = 5;
42
48
  /** Min on-screen icon size (px) before we skip drawing; avoids unreadable bitmaps when zoomed out. */
43
49
  export declare const MinNodeIconScreenPx = 10;
44
- export declare const allowedWrappers: string[];
50
+ export declare const allowedWrappers: string[];
@@ -4,9 +4,9 @@
4
4
  * @hidden
5
5
  */
6
6
  export declare class CompatibilityError extends Error {
7
- /**
8
- * Returns the error message of the compatibility error.
9
- * @returns The error message.
10
- */
11
- toString(): string;
12
- }
7
+ /**
8
+ * Returns the error message of the compatibility error.
9
+ * @returns The error message.
10
+ */
11
+ toString(): string;
12
+ }
@@ -1,18 +1,18 @@
1
- import type { Node } from '../types/graph-element';
1
+ import { Node } from "../types/graph-element.js";
2
2
  /**
3
3
  * An object representing a point in 2D space.
4
4
  */
5
5
  export interface Point {
6
- /** The x coordinate of the point. */
7
- x: number;
8
- /** The y coordinate of the point. */
9
- y: number;
6
+ /** The x coordinate of the point. */
7
+ x: number;
8
+ /** The y coordinate of the point. */
9
+ y: number;
10
10
  }
11
- export declare const isPointDefined: (point: Point | Node) => boolean;
12
11
  /**
13
12
  * Returns true when value is a finite number (not NaN or Infinity).
14
13
  */
15
14
  export declare const isValidFiniteNumber: (value: unknown) => value is number;
15
+ export declare const isPointDefined: (point: Point | Node | null | undefined) => point is Point;
16
16
  /**
17
17
  * This function checks if the coordinates are defined.
18
18
  * @param from - The {@link Node} the edge starts from.
@@ -35,48 +35,48 @@ export declare const pointEqual: (p1: Node | Point, p2: Node | Point) => boolean
35
35
  * @param p2 - The second point of the segment.
36
36
  */
37
37
  export declare class Segment {
38
- /** The first point of the segment. */
39
- readonly p1: Point;
40
- /** The second point of the segment. */
41
- readonly p2: Point;
42
- /** The unit vector of the segment. */
43
- readonly unit: Point;
44
- /** The unit normal vector of the segment. */
45
- readonly norm: Point;
46
- /** The length of the segment. */
47
- readonly length: number;
48
- /** The vector between the two points of the segment. */
49
- readonly vector: Point;
50
- constructor(p1: Point, p2: Point);
51
- /**
52
- * Get the vector between the two points of the segment.
53
- * @returns The vector between the two points of the segment.
54
- * @private
55
- * @see {@link https://en.wikipedia.org/wiki/Vector_(spatial)}
56
- */
57
- private getVector;
58
- /**
59
- * Get the length of the vector between the two points of the segment.
60
- * @returns The length of the segment.
61
- * @private
62
- * @see {@link https://en.wikipedia.org/wiki/Vector_(spatial)#Length}
63
- */
64
- private getLength;
65
- /**
66
- * Get the unit vector of the two points of the segment.
67
- * @returns The unit vector of the segment.
68
- * @private
69
- * @see {@link https://en.wikipedia.org/wiki/Euclidean_vector#Unit_vector}
70
- * @see {@link https://en.wikipedia.org/wiki/Unit_vector}
71
- */
72
- private getUnitVector;
73
- /**
74
- * Get the unit normal vector of the two points of the segment.
75
- * @returns The unit normal vector of the segment.
76
- * @private
77
- * @see {@link https://en.wikipedia.org/wiki/Normal_(geometry)}
78
- */
79
- private getUnitNormalVector;
38
+ /** The first point of the segment. */
39
+ readonly p1: Point;
40
+ /** The second point of the segment. */
41
+ readonly p2: Point;
42
+ /** The unit vector of the segment. */
43
+ readonly unit: Point;
44
+ /** The unit normal vector of the segment. */
45
+ readonly norm: Point;
46
+ /** The length of the segment. */
47
+ readonly length: number;
48
+ /** The vector between the two points of the segment. */
49
+ readonly vector: Point;
50
+ constructor(p1: Point, p2: Point);
51
+ /**
52
+ * Get the vector between the two points of the segment.
53
+ * @returns The vector between the two points of the segment.
54
+ * @private
55
+ * @see {@link https://en.wikipedia.org/wiki/Vector_(spatial)}
56
+ */
57
+ private getVector;
58
+ /**
59
+ * Get the length of the vector between the two points of the segment.
60
+ * @returns The length of the segment.
61
+ * @private
62
+ * @see {@link https://en.wikipedia.org/wiki/Vector_(spatial)#Length}
63
+ */
64
+ private getLength;
65
+ /**
66
+ * Get the unit vector of the two points of the segment.
67
+ * @returns The unit vector of the segment.
68
+ * @private
69
+ * @see {@link https://en.wikipedia.org/wiki/Euclidean_vector#Unit_vector}
70
+ * @see {@link https://en.wikipedia.org/wiki/Unit_vector}
71
+ */
72
+ private getUnitVector;
73
+ /**
74
+ * Get the unit normal vector of the two points of the segment.
75
+ * @returns The unit normal vector of the segment.
76
+ * @private
77
+ * @see {@link https://en.wikipedia.org/wiki/Normal_(geometry)}
78
+ */
79
+ private getUnitNormalVector;
80
80
  }
81
81
  /**
82
82
  * Calculates the projection ratio between two vectors.
@@ -126,3 +126,46 @@ export declare const getIntersection: (p0: Point, p1: Point, p2: Point, p3: Poin
126
126
  * @returns The distance between the point and the curve.
127
127
  */
128
128
  export declare const getDistanceToQuadratic: (fromCoordinates: Point, toCoordinates: Point, control: Point, point: Point) => number;
129
+ /**
130
+ * Converts a polar coordinate (radius + angle around a centre) to a cartesian point.
131
+ * @param centre - The centre of the circle.
132
+ * @param radius - The radius of the circle.
133
+ * @param angle - The angle around the circle, in radians.
134
+ * @returns The point at that angle and radius from the centre.
135
+ */
136
+ export declare const pointOnCircle: (centre: Point, radius: number, angle: number) => Point;
137
+ /**
138
+ * Returns the point halfway between two points.
139
+ * @param a - The first point.
140
+ * @param b - The second point.
141
+ * @returns The midpoint of the segment from a to b.
142
+ */
143
+ export declare const getMidPoint: (a: Point, b: Point) => Point;
144
+ /**
145
+ * Places child points evenly spaced around a circle centred on a point.
146
+ * @param centre - The centre of the circle.
147
+ * @param radius - The radius of the circle.
148
+ * @param noOfChildren - The number of points to place around the circle.
149
+ * @returns The evenly spaced points.
150
+ */
151
+ export declare const calculateCirclePositions: (centre: Point, radius: number, noOfChildren: number) => Point[];
152
+ /**
153
+ * Andrew's monotone-chain convex hull.
154
+ * @param points - The points to get the convex hull of.
155
+ * @returns The convex hull of the points.
156
+ */
157
+ export declare const getConvexHull: (points: Point[]) => Point[];
158
+ /**
159
+ * Returns true when the point lies inside or on the boundary of a convex polygon.
160
+ * Works for both clockwise and counter-clockwise vertex order.
161
+ * @param point - The point to test.
162
+ * @param polygon - Convex polygon vertices in order around the boundary.
163
+ * @returns True when the point is inside or on the polygon.
164
+ */
165
+ export declare const isPointInConvexPolygon: (point: Point, polygon: Point[]) => boolean;
166
+ /**
167
+ * Absolute area of a simple polygon via the shoelace formula.
168
+ * @param polygon - Polygon vertices in order around the boundary.
169
+ * @returns The absolute area of the polygon.
170
+ */
171
+ export declare const getPolygonArea: (polygon: Point[]) => number;
@@ -1,8 +1,8 @@
1
- import type { DataSet } from '../modules/dataset';
2
- import type { Node, Relationship } from '../types/graph-element';
1
+ import { Node, Relationship } from "../types/graph-element.js";
2
+ import { DataSet } from "../modules/dataset.js";
3
3
  export type FlatRel = Omit<Relationship & {
4
- bundledRels: Omit<Relationship, 'from' | 'to'>[];
5
- key: string;
4
+ bundledRels: Omit<Relationship, 'from' | 'to'>[];
5
+ key: string;
6
6
  }, 'id'>;
7
7
  export declare const getRelItemKey: (from: Node["id"], to: Node["id"]) => string;
8
8
  export declare const relItemsToFlatKeySet: (relItems: Relationship[]) => Set<string>;
@@ -16,11 +16,11 @@ export declare const relItemsToFlatKeySet: (relItems: Relationship[]) => Set<str
16
16
  */
17
17
  export declare const relItemsToFlatList: (relItems: Relationship[], disabledItemColor?: string) => FlatRel[];
18
18
  export declare const getAdjNodesMapAndRelMap: (rels: Relationship[]) => {
19
- adjNodesMap: Record<string, Set<string>>;
20
- relMap: Record<string, Relationship[]>;
19
+ adjNodesMap: Record<string, Set<string>>;
20
+ relMap: Record<string, Relationship[]>;
21
21
  };
22
22
  export declare const getConnectedNodesAndRels: (addedNodes: Set<Node["id"]>, addedRels: Set<Relationship["id"]>, nodes: DataSet<Node>, rels: DataSet<Relationship>) => {
23
- connectedNodes: Record<string, Node>;
24
- connectedRels: Record<string, Relationship>;
23
+ connectedNodes: Record<string, Node>;
24
+ connectedRels: Record<string, Relationship>;
25
25
  };
26
- export declare const hasSizeChanged: (graphObjectUpdates?: Node[]) => boolean;
26
+ export declare const hasSizeChanged: (graphObjectUpdates?: Node[]) => boolean;