@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,11 +1,14 @@
1
- import { type Node, type PartialNode, type PartialRelationship, type Relationship } from '../types/graph-element';
2
- import '../types/nvl-window-functions';
3
- import type { Point } from '../utils/geometry';
4
- import type { ExternalCallbacks } from './ExternalCallbackHandler';
5
- import type { Layout, LayoutOptions, NvlOptions, NvlState, ZoomOptions } from './state/types';
1
+ import { Point } from "../utils/geometry.js";
2
+ import { Node, NodeWithClientPosition, PartialNode, PartialRelationship, Relationship } from "../types/graph-element.js";
3
+ import { ExternalCallbacks } from "./ExternalCallbackHandler.js";
4
+ import { Layout, LayoutOptions, NvlOptions, NvlState, ZoomOptions } from "./state/types.js";
5
+ import { ClusterHitRegion } from "../utils/clusterHitRegions.js";
6
+ import { HitTargetNode, HitTargetRelationship } from "../utils/hitTest.js";
7
+ import "../index.js";
8
+ import "../types/nvl-window-functions.js";
6
9
  type SaveToFileOptions = {
7
- filename?: string;
8
- backgroundColor?: string;
10
+ filename?: string;
11
+ backgroundColor?: string;
9
12
  };
10
13
  export declare const EVENT_ERROR = "onError";
11
14
  export declare const EVENT_ZOOM_TRANSITION_DONE = "onZoomTransitionDone";
@@ -14,126 +17,206 @@ export declare const EVENT_LAYOUT_STEP = "onLayoutStep";
14
17
  export declare const EVENT_LAYOUT_COMPUTING = "onLayoutComputing";
15
18
  export declare const EVENT_WEBGL_CONTEXT_LOST = "onWebGLContextLost";
16
19
  export default class NvlController {
17
- private destroyed;
18
- private readonly state;
19
- private readonly callbacks;
20
- private readonly instanceId;
21
- private readonly glController;
22
- private readonly webGLContext;
23
- private readonly webGLMinimapContext;
24
- private readonly htmlOverlay;
25
- private hasResized;
26
- private readonly hierarchicalLayout;
27
- private readonly gridLayout;
28
- private readonly freeLayout;
29
- private readonly d3ForceLayout;
30
- private readonly circularLayout;
31
- private readonly forceLayout;
32
- private readonly canvasRenderer;
33
- private readonly svgRenderer;
34
- private readonly glCanvas;
35
- private canvasRect;
36
- private readonly glMinimapCanvas;
37
- private readonly c2dCanvas;
38
- private readonly svg;
39
- private isInRenderSwitchAnimation;
40
- private previousRenderer;
41
- private justSwitchedLayout;
42
- private layoutUpdating;
43
- private layoutComputing;
44
- private isRenderingDisabled;
45
- private readonly setRenderSwitchAnimation;
46
- private readonly stateDisposers;
47
- private readonly zoomTransitionHandler;
48
- private currentLayout;
49
- private readonly layoutTimeLimit;
50
- private pixelRatio;
51
- private readonly removeResizeListener;
52
- private readonly removeMinimapResizeListener;
53
- private pendingZoom;
54
- private pendingPan;
55
- private pendingViewportOverride;
56
- private layoutRunner;
57
- private animationRequestId;
58
- private layoutDoneCallback;
59
- private layoutComputingCallback;
60
- private currentLayoutType;
61
- private descriptionElement;
62
- constructor(state: NvlState, frame: HTMLElement, options: NvlOptions);
63
- private onWebGLContextLost;
64
- private updateMinimapZoom;
65
- private startMainLoop;
66
- updateHtmlOverlay(): void;
67
- dumpNodes(): Node[];
68
- dumpRelationships(): Relationship[];
69
- /**
70
- * Map a relative Canvas space to the DOM position
71
- * @param canvasX - X position in the canvas space.
72
- * @param canvasY - Y position position in the canvas space.
73
- */
74
- mapCanvasSpaceToRelativePosition(canvasX: number, canvasY: number): {
75
- x: number;
76
- y: number;
77
- };
78
- /**
79
- * Map a relative DOM position to the Canvas space
80
- * @param clientX - Relative X position from the top left [0..rect.width].
81
- * @param clientY - Relative Y position from the top left [0..rect.height].
82
- */
83
- mapRelativePositionToCanvasSpace(clientX: number, clientY: number): {
84
- x: number;
85
- y: number;
86
- };
87
- getNodePositions(): (Node & Point)[];
88
- setNodePositions(data: Node[], updateLayout?: boolean): void;
89
- isLayoutMoving(): boolean;
90
- getNodesOnScreen(): {
91
- nodes: Node[];
92
- rels: Relationship[];
93
- };
94
- registerDoneCallback(cb: NvlController['layoutDoneCallback']): void;
95
- registerComputingCallback(cb: NvlController['layoutComputingCallback']): void;
96
- getPosition(nodeId: string): Node;
97
- getScale(): number;
98
- getPan(): {
99
- x: number;
100
- y: number;
101
- };
102
- setZoomLevel(_newLevel: number): void;
103
- setPanCoordinates(panX: number, panY: number): void;
104
- setZoomAndPan(zoom: number, panX: number, panY: number): void;
105
- fit(nodeIds: string[], zoomOptions?: ZoomOptions): void;
106
- resetZoom(): void;
107
- setRenderer(renderer: string): void;
108
- on(name: keyof ExternalCallbacks, callback: (args: unknown) => void): void;
109
- isDestroyed(): boolean;
110
- destroy(): void;
111
- callIfRegistered(...args: any[]): void;
112
- getCanvasRelsAt(point: Point): import("..").HitTargetRelationship[];
113
- getCanvasNodesAt(point: Point, hitNodeMarginWidth?: number): import("..").HitTargetNode[];
114
- private getLayout;
115
- setLayout(layoutType: Layout): void;
116
- setLayoutOptions(options: LayoutOptions): void;
117
- private getDataUrlForCanvas;
118
- private initiateFileDownload;
119
- private updateLayoutAndPositions;
120
- saveToFile(options: SaveToFileOptions): void;
121
- private createSvgString;
122
- saveToSvg(options?: SaveToFileOptions): Promise<void>;
123
- getImageDataURL(options: SaveToFileOptions): string;
124
- getSvgDataUrl(options?: SaveToFileOptions): Promise<string>;
125
- private prepareLargeFileForDownload;
126
- private createCanvasAndRenderImage;
127
- saveFullGraphToLargeFile(options: SaveToFileOptions): Promise<void>;
128
- addAndUpdateElementsInGraph(nodes?: Node[] | PartialNode[], relationships?: Relationship[] | PartialRelationship[]): void;
129
- updateElementsInGraph(nodes: Node[] | PartialNode[], relationships: Relationship[] | PartialRelationship[]): void;
130
- /**
131
- * Adds nodes and relationships in the current scene.
132
- * @param {Node[]} nodes The nodes to be added.
133
- * @param {Relationship[]} relationships The relationships to be added.
134
- */
135
- addElementsToGraph(nodes: Node[], relationships: Relationship[]): void;
136
- private validateNodes;
137
- private validateRelationships;
20
+ private destroyed;
21
+ private readonly state;
22
+ private readonly callbacks;
23
+ private readonly instanceId;
24
+ private readonly glController;
25
+ private readonly webGLContext;
26
+ private readonly webGLMinimapContext;
27
+ private readonly htmlOverlay;
28
+ private hasResized;
29
+ private readonly hierarchicalLayout;
30
+ private readonly gridLayout;
31
+ private readonly freeLayout;
32
+ private readonly d3ForceLayout;
33
+ private readonly circularLayout;
34
+ private readonly forceLayout;
35
+ private readonly canvasRenderer;
36
+ private readonly svgRenderer;
37
+ private clusterOverlay;
38
+ private readonly glCanvas;
39
+ private canvasRect;
40
+ private readonly glMinimapCanvas;
41
+ private readonly c2dCanvas;
42
+ private clusterOverlayCanvas;
43
+ private readonly canvasParent;
44
+ private readonly svg;
45
+ private isInRenderSwitchAnimation;
46
+ private previousRenderer;
47
+ private justSwitchedLayout;
48
+ private layoutUpdating;
49
+ private layoutComputing;
50
+ private isRenderingDisabled;
51
+ private readonly setRenderSwitchAnimation;
52
+ private readonly stateDisposers;
53
+ private readonly zoomTransitionHandler;
54
+ private currentLayout;
55
+ private lastTimestamp;
56
+ private accumulator;
57
+ private readonly layoutTimeLimit;
58
+ private readonly smoothFrameBudgetMs;
59
+ private pixelRatio;
60
+ private readonly resizeObserver;
61
+ private readonly minimapResizeObserver;
62
+ private pendingZoom;
63
+ private pendingPan;
64
+ private pendingViewportOverride;
65
+ private animationRequestId;
66
+ private layoutDoneCallback;
67
+ private layoutComputingCallback;
68
+ private currentLayoutType;
69
+ private descriptionElement;
70
+ /** True when a minimap container was provided at construction. */
71
+ private readonly hasMinimap;
72
+ private lastMinimapPositions;
73
+ private lastMinimapCacheVersion;
74
+ constructor(state: NvlState, frame: HTMLElement, options: NvlOptions);
75
+ private onWebGLContextLost;
76
+ private fpsToFrameBudgetMs;
77
+ private getLayoutNeedsToUpdate;
78
+ private isWithinBudget;
79
+ /**
80
+ * Add elapsed frame time to the layout-step accumulator, capped at `layoutTimeLimit`.
81
+ * Prevents a slow frame (e.g. blocked GPU readback) from inflating catch-up debt and
82
+ * scheduling ever more work in a feedback loop; the layout falls behind gracefully instead.
83
+ */
84
+ private accumulateLayoutElapsedTime;
85
+ /**
86
+ * Whether the GPU force-directed layout is active.
87
+ * @returns `true` when PhysLayout is the current layout.
88
+ */
89
+ private usesGpuSimulation;
90
+ /**
91
+ * Whether the GPU-texture fast path can be taken this frame.
92
+ * Requires the WebGL renderer, GPU layout active, and no CPU-position consumers
93
+ * (layout-step callback, HTML overlays). A provided minimap no longer blocks this path;
94
+ * the minimap and cluster overlay are updated from the lagged async position cache instead.
95
+ * @returns `true` when rendering directly from the GPU position texture is safe.
96
+ */
97
+ private canRenderFromGpuTexture;
98
+ /**
99
+ * Uploads lagged PhysLayout cache positions to the minimap when the cache version changed.
100
+ * @returns `true` when positions were refreshed this call.
101
+ */
102
+ private refreshMinimapFromCacheIfStale;
103
+ /**
104
+ * Fits, renders, and caches minimap positions (and PhysLayout cache version when applicable).
105
+ */
106
+ private syncMinimap;
107
+ /** Whether either cluster decoration is enabled in the current layout options. */
108
+ private hasClusterDecorations;
109
+ /**
110
+ * Creates the decoration canvas and its overlay.
111
+ * @returns The overlay to draw with.
112
+ */
113
+ private createClusterOverlay;
114
+ /**
115
+ * Resolves the overlay to draw into, allocating it on first use and tearing it down again
116
+ * while cluster decorations are off.
117
+ * @returns The overlay to draw with, or null when decorations are disabled.
118
+ */
119
+ private ensureClusterOverlay;
120
+ /** Tears the overlay and its canvas back down once decorations are switched off. */
121
+ private destroyClusterOverlay;
122
+ /**
123
+ * Draws (or clears) cluster decorations on the Canvas2D overlay from explicit positions.
124
+ * @param positions - CPU node positions for this frame, or null to clear.
125
+ */
126
+ private renderClusterOverlay;
127
+ /**
128
+ * Draws cluster decorations from PhysLayout's lagged async PBO cache without a sync dump.
129
+ * @param forceLayout - The PhysLayout instance to render the cluster overlay from.
130
+ */
131
+ private renderClusterOverlayFromCache;
132
+ /** Syncs idToPosition from the GPU layout on demand; no-op for CPU layouts. */
133
+ syncPositionsFromLayout(): void;
134
+ /**
135
+ * Fitted {@link ClusteringOptions.clusterBy} hull regions for the current layout, or [].
136
+ * @returns Cluster hit regions for picking.
137
+ */
138
+ getClusterByHitRegions(): ClusterHitRegion[];
139
+ private updateMinimapZoom;
140
+ private startMainLoop;
141
+ private renderNodeHtmlOverlays;
142
+ private renderRelationshipHtmlOverlays;
143
+ updateHtmlOverlay(): void;
144
+ dumpNodes(): NodeWithClientPosition[];
145
+ dumpRelationships(): Relationship[];
146
+ /**
147
+ * Map a relative Canvas space to the DOM position
148
+ * @param canvasX - X position in the canvas space.
149
+ * @param canvasY - Y position position in the canvas space.
150
+ */
151
+ mapCanvasSpaceToRelativePosition(canvasX: number, canvasY: number): {
152
+ x: number;
153
+ y: number;
154
+ };
155
+ /**
156
+ * Map a relative DOM position to the Canvas space
157
+ * @param clientX - Relative X position from the top left [0..rect.width].
158
+ * @param clientY - Relative Y position from the top left [0..rect.height].
159
+ */
160
+ mapRelativePositionToCanvasSpace(clientX: number, clientY: number): {
161
+ x: number;
162
+ y: number;
163
+ };
164
+ getNodePositions(): (Node & Point)[];
165
+ setNodePositions(data: Node[], updateLayout?: boolean): void;
166
+ isLayoutMoving(): boolean;
167
+ getNodesOnScreen(): {
168
+ nodes: Node[];
169
+ rels: Relationship[];
170
+ };
171
+ registerDoneCallback(cb: NvlController['layoutDoneCallback']): void;
172
+ registerComputingCallback(cb: NvlController['layoutComputingCallback']): void;
173
+ getPosition(nodeId: string): Node & Point;
174
+ getScale(): number;
175
+ getPan(): {
176
+ x: number;
177
+ y: number;
178
+ };
179
+ setZoomLevel(_newLevel: number): void;
180
+ setPanCoordinates(panX: number, panY: number): void;
181
+ setZoomAndPan(zoom: number, panX: number, panY: number): void;
182
+ fit(nodeIds: string[], zoomOptions?: ZoomOptions): void;
183
+ resetZoom(): void;
184
+ setRenderer(renderer: string): void;
185
+ on(name: keyof ExternalCallbacks, callback: (args: unknown) => void): void;
186
+ isDestroyed(): boolean;
187
+ destroy(): void;
188
+ callIfRegistered(...args: any[]): void;
189
+ getCanvasRelsAt(point: Point): HitTargetRelationship[];
190
+ getCanvasNodesAt(point: Point, hitNodeMarginWidth?: number): HitTargetNode[];
191
+ private getLayout;
192
+ setLayout(layoutType: Layout): void;
193
+ setLayoutOptions(options?: LayoutOptions): void;
194
+ /**
195
+ * Syncs positions if needed and redraws (or clears) the cluster overlay from current state.
196
+ */
197
+ private refreshClusterOverlay;
198
+ private getDataUrlForCanvas;
199
+ private initiateFileDownload;
200
+ private updateLayoutAndPositions;
201
+ private getAndUpdatePositions;
202
+ private getLayoutPositions;
203
+ saveToFile(options: SaveToFileOptions): void;
204
+ private createSvgString;
205
+ saveToSvg(options?: SaveToFileOptions): Promise<void>;
206
+ getImageDataURL(options: SaveToFileOptions): string;
207
+ getSvgDataUrl(options?: SaveToFileOptions): Promise<string>;
208
+ private prepareLargeFileForDownload;
209
+ private createCanvasAndRenderImage;
210
+ saveFullGraphToLargeFile(options: SaveToFileOptions): Promise<void>;
211
+ addAndUpdateElementsInGraph(nodes?: Node[] | PartialNode[], relationships?: Relationship[] | PartialRelationship[]): void;
212
+ updateElementsInGraph(nodes: Node[] | PartialNode[], relationships: Relationship[] | PartialRelationship[]): void;
213
+ /**
214
+ * Adds nodes and relationships in the current scene.
215
+ * @param {Node[]} nodes The nodes to be added.
216
+ * @param {Relationship[]} relationships The relationships to be added.
217
+ */
218
+ addElementsToGraph(nodes: Node[], relationships: Relationship[]): void;
219
+ private validateNodes;
220
+ private validateRelationships;
138
221
  }
139
- export {};
222
+ export {};
@@ -1,18 +1,18 @@
1
1
  export default class Shader {
2
- private readonly shaderProgram;
3
- private readonly gl;
4
- private curTexture;
5
- private attributeInfo;
6
- private uniformInfo;
7
- constructor(gl: WebGLRenderingContext, vsSource: string, fsSource: string, defines?: {});
8
- setUniform(name: string, value: any): void;
9
- setAttributePointer(name: string, size: number, start: number, stride: number): void;
10
- setAttributePointerFloat(name: string, size: number, start: number, stride: number): void;
11
- setAttributePointerUShort(name: string | number, size: number, start: number, stride: number): void;
12
- setAttributePointerByteNorm(name: string, size: number, start: number, stride: number): void;
13
- setAttributePointerByte(name: string, size: number, start: number, stride: number): void;
14
- use(): void;
15
- remove(): void;
16
- private scanAttributes;
17
- private scanUniforms;
18
- }
2
+ private readonly shaderProgram;
3
+ private readonly gl;
4
+ private curTexture;
5
+ private attributeInfo;
6
+ private uniformInfo;
7
+ constructor(gl: WebGL2RenderingContext, vsSource: string, fsSource: string, defines?: {});
8
+ setUniform(name: string, value: any): void;
9
+ setAttributePointer(name: string, size: number, start: number, stride: number): void;
10
+ setAttributePointerFloat(name: string, size: number, start: number, stride: number): void;
11
+ setAttributePointerUShort(name: string | number, size: number, start: number, stride: number): void;
12
+ setAttributePointerByteNorm(name: string, size: number, start: number, stride: number): void;
13
+ setAttributePointerByte(name: string, size: number, start: number, stride: number): void;
14
+ use(): void;
15
+ remove(): void;
16
+ private scanAttributes;
17
+ private scanUniforms;
18
+ }
@@ -1,25 +1,25 @@
1
- import PIDController from 'node-pid-controller';
2
- import type { Node } from '../types/graph-element';
3
- import type { NvlState } from './state/types';
1
+ import { Node } from "../types/graph-element.js";
2
+ import { NvlState } from "./state/types.js";
3
+ import PIDController from "node-pid-controller";
4
4
  export default class ZoomTransitionHandler {
5
- xCtrl: PIDController;
6
- yCtrl: PIDController;
7
- zoomCtrl: PIDController;
8
- private getNodePositions;
9
- private firstUpdate;
10
- private readonly state;
11
- private readonly canvas;
12
- private readonly stateDisposers;
13
- constructor({ state, getNodePositions, canvas }: {
14
- state: NvlState;
15
- getNodePositions: (data: Node[]) => Node[];
16
- canvas: HTMLCanvasElement;
17
- });
18
- needsToRun(): boolean;
19
- update(layoutActive: boolean, onTransitionCompleted?: () => void): void;
20
- destroy(): void;
21
- private recalculateTarget;
22
- private allNodesAreVisible;
23
- private reset;
24
- private fitNodes;
25
- }
5
+ xCtrl: PIDController;
6
+ yCtrl: PIDController;
7
+ zoomCtrl: PIDController;
8
+ private getNodePositions;
9
+ private firstUpdate;
10
+ private readonly state;
11
+ private readonly canvas;
12
+ private readonly stateDisposers;
13
+ constructor({ state, getNodePositions, canvas }: {
14
+ state: NvlState;
15
+ getNodePositions: (data: Node[]) => Node[];
16
+ canvas: HTMLCanvasElement;
17
+ });
18
+ needsToRun(): boolean;
19
+ update(layoutActive: boolean, onTransitionCompleted?: () => void): void;
20
+ destroy(): void;
21
+ private recalculateTarget;
22
+ private allNodesAreVisible;
23
+ private reset;
24
+ private fitNodes;
25
+ }
@@ -1,37 +1,39 @@
1
- import type { Node, Relationship } from '../types/graph-element';
2
- import type { Point } from '../utils/geometry';
1
+ import { Point } from "../utils/geometry.js";
2
+ import { Node, Relationship } from "../types/graph-element.js";
3
3
  /** A graph stored with mobx. */
4
4
  export interface DataSet<T> {
5
- items: T[];
6
- idToItem: Record<string, T>;
7
- channels: Record<string, Channel<T>>;
8
- idToPosition: Record<string, Node & Point>;
9
- idToHtmlOverlay?: Record<string, HTMLElement>;
10
- version: number;
11
- addChannel: (this: DataSet<T>, channelName: string) => void;
12
- removeChannel: (this: DataSet<T>, channelName: string) => void;
13
- clearChannel: (this: DataSet<T>, channelName: string) => void;
14
- add: (data: T[], result: ActionResult) => void;
15
- update: (data: Partial<T>[], result: ActionResult) => void;
16
- remove: (ids: string[], result: ActionResult) => void;
17
- updatePositions: (data: Node[]) => void;
18
- updateHtmlOverlay: (overlay: HTMLElement) => void;
5
+ items: T[];
6
+ idToItem: Record<string, T>;
7
+ channels: Record<string, Channel<T>>;
8
+ idToPosition: Record<string, Node & Point>;
9
+ idToHtmlOverlay?: Record<string, HTMLElement>;
10
+ version: number;
11
+ maxDimension: number;
12
+ addChannel: (this: DataSet<T>, channelName: string) => void;
13
+ removeChannel: (this: DataSet<T>, channelName: string) => void;
14
+ clearChannel: (this: DataSet<T>, channelName: string) => void;
15
+ add: (data: T[], result: ActionResult) => void;
16
+ update: (data: Partial<T>[], result: ActionResult) => void;
17
+ remove: (ids: string[], result: ActionResult) => void;
18
+ updatePositions: (data: Node[]) => void;
19
+ updateHtmlOverlay: (overlay: HTMLElement) => void;
19
20
  }
20
21
  export type NodeDataSet = DataSet<Node>;
21
22
  export type RelationshipDataSet = DataSet<Relationship>;
22
23
  export interface ActionResult {
23
- added?: boolean;
24
- removed?: boolean;
25
- updated?: boolean;
24
+ added?: boolean;
25
+ removed?: boolean;
26
+ updated?: boolean;
26
27
  }
27
28
  export interface Channel<T> {
28
- adds: Record<string, T>;
29
- updates: Record<string, T>;
30
- removes: Record<string, T>;
29
+ adds: Record<string, T>;
30
+ updates: Record<string, T>;
31
+ removes: Record<string, T>;
31
32
  }
32
- export declare const getHtmlProperty: (item: Partial<Node | Relationship>) => HTMLElement | undefined;
33
+ export declare const getHtmlKey: (item: Node | Relationship) => "html" | "captionHtml";
34
+ export declare const getHtmlProperty: (item: Node | Relationship) => HTMLElement | undefined;
33
35
  /**
34
36
  * Creates an empty dataset in which a graph be stored and updated using mobx actions.
35
37
  * @returns A new and empty {@link DataSet}.
36
38
  */
37
- export declare const createDataSet: <T extends Node | Relationship>() => DataSet<T>;
39
+ export declare const createDataSet: <T extends Node | Relationship>() => DataSet<T>;
@@ -1,8 +1,8 @@
1
- import type { LogLevelDesc, Logger } from 'loglevel';
1
+ import { LogLevelDesc, Logger } from "loglevel";
2
2
  declare const nvlLog: Logger;
3
3
  export declare const setLogLevel: (level: LogLevelDesc) => void;
4
4
  export declare const setupLogging: (logger: Logger, logging: {
5
- level: LogLevelDesc;
6
- logger?: (methodName: string, args: unknown) => void;
5
+ level: LogLevelDesc;
6
+ logger?: (methodName: string, args: unknown) => void;
7
7
  }) => void;
8
- export { nvlLog as log };
8
+ export { nvlLog as log };
@@ -1,4 +1,4 @@
1
- import type { BorderStyles, NvlState } from './types';
1
+ import { BorderStyles, NvlState } from "./types.js";
2
2
  export declare const NodeBorderStyles: BorderStyles;
3
3
  export declare const RelationshipBorderStyles: BorderStyles;
4
4
  export declare const DefaultZoomLevel = 0.75;
@@ -6,4 +6,4 @@ export declare const DefaultMaxZoom = 10;
6
6
  export declare const DefaultMinZoom = 0.075;
7
7
  export declare const DefaultMinimapMaxZoom = 0.2;
8
8
  export declare const DefaultMinimapMinZoom = 0;
9
- export declare const DefaultZoomOptions: NvlState['zoomOptions'];
9
+ export declare const DefaultZoomOptions: NvlState['zoomOptions'];
@@ -1,8 +1,8 @@
1
- import type { NvlOptions, NvlState } from './types';
1
+ import { NvlOptions, NvlState } from "./types.js";
2
2
  /**
3
3
  * Create a new NVL state
4
4
  *
5
5
  * @param options - The options for the new state.
6
6
  * @returns The state object.
7
7
  */
8
- export declare const createState: (options: NvlOptions) => NvlState;
8
+ export declare const createState: (options: NvlOptions) => NvlState;