@neo4j-nvl/base 2.0.0-d21c8bbe → 2.0.0-ec6fdba7

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 (227) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/base.mjs +1062 -1058
  3. package/dist/types/index.d.ts +382 -385
  4. package/dist/types/layouts/animatedlayout/AnimatedLayout.d.ts +23 -23
  5. package/dist/types/layouts/animatedlayout/animationUtils.d.ts +3 -3
  6. package/dist/types/layouts/circularLayout/CircularLayout.d.ts +14 -14
  7. package/dist/types/layouts/d3forcelayout/circularLayout.d.ts +4 -4
  8. package/dist/types/layouts/d3forcelayout/constants.d.ts +3 -3
  9. package/dist/types/layouts/d3forcelayout/d3ForceLayout.d.ts +31 -31
  10. package/dist/types/layouts/d3forcelayout/types.d.ts +7 -7
  11. package/dist/types/layouts/forcedirectedlayout/PhysLayout.d.ts +261 -261
  12. package/dist/types/layouts/forcedirectedlayout/clustering/ClusterByMerger.d.ts +52 -52
  13. package/dist/types/layouts/forcedirectedlayout/clustering/SolarMerger.d.ts +49 -49
  14. package/dist/types/layouts/forcedirectedlayout/clustering/clustering-utils.d.ts +35 -35
  15. package/dist/types/layouts/forcedirectedlayout/clustering/types.d.ts +39 -39
  16. package/dist/types/layouts/forcedirectedlayout/glwrapper.d.ts +3 -3
  17. package/dist/types/layouts/forcedirectedlayout/shaders/multilevel-fragment.d.ts +1 -1
  18. package/dist/types/layouts/forcedirectedlayout/shaders/multilevel-repulsive-fragment.d.ts +1 -1
  19. package/dist/types/layouts/forcedirectedlayout/shaders/multilevel-update-fragment.d.ts +1 -1
  20. package/dist/types/layouts/forcedirectedlayout/shaders/sim-vertex.d.ts +1 -1
  21. package/dist/types/layouts/freeLayout/FreeLayout.d.ts +23 -23
  22. package/dist/types/layouts/gridLayout/GridLayout.d.ts +26 -26
  23. package/dist/types/layouts/hierarchicallayout/HierarchicalLayout.d.ts +28 -28
  24. package/dist/types/layouts/hierarchicallayout/constants.d.ts +2 -2
  25. package/dist/types/modules/CallbackHelper.d.ts +23 -23
  26. package/dist/types/modules/ExternalCallbackHandler.d.ts +33 -33
  27. package/dist/types/modules/NvlController.d.ts +212 -209
  28. package/dist/types/modules/Shader.d.ts +17 -17
  29. package/dist/types/modules/ZoomTransitionHandler.d.ts +24 -24
  30. package/dist/types/modules/dataset.d.ts +24 -24
  31. package/dist/types/modules/logging.d.ts +4 -4
  32. package/dist/types/modules/state/constants.d.ts +2 -2
  33. package/dist/types/modules/state/state.d.ts +2 -2
  34. package/dist/types/modules/state/types.d.ts +296 -288
  35. package/dist/types/modules/state/utils.d.ts +36 -36
  36. package/dist/types/renderers/ClusterOverlay.d.ts +67 -67
  37. package/dist/types/renderers/domrenderer/BaseRenderer.d.ts +69 -69
  38. package/dist/types/renderers/domrenderer/canvasrenderer/Animation.d.ts +57 -57
  39. package/dist/types/renderers/domrenderer/canvasrenderer/AnimationHandler.d.ts +65 -65
  40. package/dist/types/renderers/domrenderer/canvasrenderer/CanvasRenderer.d.ts +84 -85
  41. package/dist/types/renderers/domrenderer/canvasrenderer/arrowDrawing.d.ts +31 -31
  42. package/dist/types/renderers/domrenderer/canvasrenderer/nodeDrawing.d.ts +32 -32
  43. package/dist/types/renderers/domrenderer/shared/ImageCache.d.ts +16 -16
  44. package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundle.d.ts +89 -89
  45. package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundler.d.ts +42 -42
  46. package/dist/types/renderers/domrenderer/shared/arrows/arrows.d.ts +49 -49
  47. package/dist/types/renderers/domrenderer/shared/arrows/constants.d.ts +4 -4
  48. package/dist/types/renderers/domrenderer/shared/nodes/nodes.d.ts +21 -21
  49. package/dist/types/renderers/domrenderer/shared/types.d.ts +29 -29
  50. package/dist/types/renderers/domrenderer/shared/util.d.ts +4 -4
  51. package/dist/types/renderers/domrenderer/shared/vectorUtils.d.ts +10 -10
  52. package/dist/types/renderers/domrenderer/shared/wordwrap.d.ts +10 -10
  53. package/dist/types/renderers/domrenderer/svgrenderer/SvgRenderer.d.ts +18 -19
  54. package/dist/types/renderers/domrenderer/svgrenderer/arrowDrawing.d.ts +15 -15
  55. package/dist/types/renderers/domrenderer/svgrenderer/nodeDrawing.d.ts +4 -4
  56. package/dist/types/renderers/domrenderer/svgrenderer/svgUtils.d.ts +21 -21
  57. package/dist/types/renderers/webglrenderer/Controller.d.ts +83 -82
  58. package/dist/types/renderers/webglrenderer/IconLayerRegistry.d.ts +8 -8
  59. package/dist/types/renderers/webglrenderer/Renderer.d.ts +89 -89
  60. package/dist/types/renderers/webglrenderer/node-animation-fragment.d.ts +1 -1
  61. package/dist/types/renderers/webglrenderer/node-animation-vertex.d.ts +1 -1
  62. package/dist/types/renderers/webglrenderer/node-fragment-point.d.ts +1 -1
  63. package/dist/types/renderers/webglrenderer/node-vertex-point.d.ts +1 -1
  64. package/dist/types/renderers/webglrenderer/rel-fragment-line.d.ts +1 -1
  65. package/dist/types/renderers/webglrenderer/rel-glsl-utils.d.ts +1 -1
  66. package/dist/types/renderers/webglrenderer/rel-vertex-arrow.d.ts +1 -1
  67. package/dist/types/renderers/webglrenderer/rel-vertex-line.d.ts +1 -1
  68. package/dist/types/renderers/webglrenderer/viewport-box-fragment.d.ts +1 -1
  69. package/dist/types/renderers/webglrenderer/viewport-box-vertex.d.ts +1 -1
  70. package/dist/types/types/graph-element.d.ts +103 -103
  71. package/dist/types/types/nvl-window-functions.d.ts +12 -13
  72. package/dist/types/types/utils.d.ts +1 -1
  73. package/dist/types/utils/ariaUtils.d.ts +2 -2
  74. package/dist/types/utils/canvasManagement.d.ts +1 -1
  75. package/dist/types/utils/circularUtils.d.ts +2 -2
  76. package/dist/types/utils/clusterGeometry.d.ts +3 -3
  77. package/dist/types/utils/clusterHitRegions.d.ts +12 -12
  78. package/dist/types/utils/colorUtils.d.ts +2 -2
  79. package/dist/types/utils/constants.d.ts +6 -6
  80. package/dist/types/utils/errors.d.ts +6 -6
  81. package/dist/types/utils/geometry.d.ts +48 -48
  82. package/dist/types/utils/graphObjectUtils.d.ts +9 -9
  83. package/dist/types/utils/hitTest.d.ts +47 -47
  84. package/dist/types/utils/jsDriverResultTransformer.d.ts +16 -16
  85. package/dist/types/utils/layoutSeeding.d.ts +2 -2
  86. package/dist/types/utils/mouseUtils.d.ts +5 -5
  87. package/dist/types/utils/segmentAnalytics.d.ts +42 -42
  88. package/dist/types/utils/webWorkerUtils.d.ts +1 -1
  89. package/dist/types/utils/zoomFunctions.d.ts +16 -15
  90. package/package.json +11 -9
  91. package/skills/neo4j-nvl-skill/SKILL.md +238 -398
  92. package/skills/neo4j-nvl-skill/references/api/base/classes/NVL.md +977 -0
  93. package/skills/neo4j-nvl-skill/references/api/base/functions/getZoomTargetForNodePositions.md +37 -0
  94. package/skills/neo4j-nvl-skill/references/api/base/index.md +71 -0
  95. package/skills/neo4j-nvl-skill/references/api/base/interfaces/CircularOptions.md +11 -0
  96. package/skills/neo4j-nvl-skill/references/api/base/interfaces/ClusteringOptions.md +14 -0
  97. package/skills/neo4j-nvl-skill/references/api/base/interfaces/ExternalCallbacks.md +18 -0
  98. package/skills/neo4j-nvl-skill/references/api/base/interfaces/ForceDirectedOptions.md +12 -0
  99. package/skills/neo4j-nvl-skill/references/api/base/interfaces/HierarchicalOptions.md +13 -0
  100. package/skills/neo4j-nvl-skill/references/api/base/interfaces/HitTargetCluster.md +13 -0
  101. package/skills/neo4j-nvl-skill/references/api/base/interfaces/HitTargetNode.md +16 -0
  102. package/skills/neo4j-nvl-skill/references/api/base/interfaces/HitTargetRelationship.md +15 -0
  103. package/skills/neo4j-nvl-skill/references/api/base/interfaces/Node.md +32 -0
  104. package/skills/neo4j-nvl-skill/references/api/base/interfaces/NvlMouseEvent.md +16 -0
  105. package/skills/neo4j-nvl-skill/references/api/base/interfaces/NvlOptions.md +38 -0
  106. package/skills/neo4j-nvl-skill/references/api/base/interfaces/Point.md +12 -0
  107. package/skills/neo4j-nvl-skill/references/api/base/interfaces/Relationship.md +32 -0
  108. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/CanvasRendererType.md +14 -0
  109. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/Cluster.md +20 -0
  110. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/ClusterByFn.md +20 -0
  111. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/ClusterId.md +10 -0
  112. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/HitTargets.md +22 -0
  113. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/HitTestTarget.md +7 -0
  114. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/Layout.md +15 -0
  115. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/LayoutOptions.md +12 -0
  116. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/NodeWithClientPosition.md +18 -0
  117. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/PartialNode.md +17 -0
  118. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/PartialRelationship.md +17 -0
  119. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/Renderer.md +9 -0
  120. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/StyledCaption.md +21 -0
  121. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/WebGLRendererType.md +14 -0
  122. package/skills/neo4j-nvl-skill/references/api/base/type-aliases/ZoomOptions.md +25 -0
  123. package/skills/neo4j-nvl-skill/references/api/base/variables/CircularLayoutType.md +11 -0
  124. package/skills/neo4j-nvl-skill/references/api/base/variables/ForceDirectedLayoutType.md +9 -0
  125. package/skills/neo4j-nvl-skill/references/api/base/variables/FreeLayoutType.md +9 -0
  126. package/skills/neo4j-nvl-skill/references/api/base/variables/GridLayoutType.md +9 -0
  127. package/skills/neo4j-nvl-skill/references/api/base/variables/HierarchicalLayoutType.md +9 -0
  128. package/skills/neo4j-nvl-skill/references/api/base/variables/d3ForceLayoutType.md +9 -0
  129. package/skills/neo4j-nvl-skill/references/api/base/variables/nvlResultTransformer.md +38 -0
  130. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/BoxSelectInteraction.md +163 -0
  131. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/ClickInteraction.md +163 -0
  132. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/DragNodeInteraction.md +164 -0
  133. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/HoverInteraction.md +160 -0
  134. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/KeyboardInteraction.md +185 -0
  135. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/LassoInteraction.md +163 -0
  136. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/PanInteraction.md +196 -0
  137. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/ZoomInteraction.md +164 -0
  138. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/index.md +37 -0
  139. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/BoxSelectInteractionCallbacks.md +19 -0
  140. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/BoxSelectInteractionOptions.md +17 -0
  141. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ClickInteractionCallbacks.md +39 -0
  142. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ClickInteractionOptions.md +17 -0
  143. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/DragNodeInteractionCallbacks.md +21 -0
  144. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/DrawInteractionOptions.md +22 -0
  145. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/HoverInteractionCallbacks.md +17 -0
  146. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/HoverInteractionOptions.md +17 -0
  147. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/KeyboardInteractionCallbacks.md +35 -0
  148. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/KeyboardInteractionOptions.md +55 -0
  149. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/LassoInteractionCallbacks.md +19 -0
  150. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/LassoInteractionOptions.md +17 -0
  151. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/PanInteractionCallbacks.md +17 -0
  152. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/PanInteractionOptions.md +19 -0
  153. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ZoomInteractionCallbacks.md +17 -0
  154. package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ZoomInteractionOptions.md +17 -0
  155. package/skills/neo4j-nvl-skill/references/api/react/functions/StaticPictureWrapper.md +35 -0
  156. package/skills/neo4j-nvl-skill/references/api/react/index.md +34 -0
  157. package/skills/neo4j-nvl-skill/references/api/react/interfaces/BasicReactWrapperProps.md +24 -0
  158. package/skills/neo4j-nvl-skill/references/api/react/interfaces/InteractiveNvlWrapperProps.md +27 -0
  159. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/InteractionOptions.md +10 -0
  160. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/KeyboardEvent.md +7 -0
  161. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/KeyboardEventCallbacks.md +10 -0
  162. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/MouseEvent.md +10 -0
  163. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/MouseEventCallbacks.md +10 -0
  164. package/skills/neo4j-nvl-skill/references/api/react/type-aliases/StaticPictureWrapperProps.md +27 -0
  165. package/skills/neo4j-nvl-skill/references/api/react/variables/BasicNvlWrapper.md +50 -0
  166. package/skills/neo4j-nvl-skill/references/api/react/variables/InteractiveNvlWrapper.md +17 -0
  167. package/skills/neo4j-nvl-skill/references/clustering.md +87 -0
  168. package/skills/neo4j-nvl-skill/references/data-from-neo4j.md +67 -0
  169. package/skills/neo4j-nvl-skill/references/labels-and-overlays.md +76 -0
  170. package/skills/neo4j-nvl-skill/references/layouts-and-positions.md +65 -0
  171. package/skills/neo4j-nvl-skill/references/lifecycle-and-updates.md +65 -0
  172. package/skills/neo4j-nvl-skill/references/migrating-1x-to-2.md +50 -0
  173. package/skills/neo4j-nvl-skill/references/react-wrappers.md +88 -0
  174. package/skills/neo4j-nvl-skill/references/verifying-nvl-apps.md +52 -0
  175. package/skills/neo4j-nvl-skill/references/vite-and-bundlers.md +62 -0
  176. package/dist/types/layouts/animatedlayout/AnimatedLayout.test.d.ts +0 -1
  177. package/dist/types/layouts/animatedlayout/animationUtils.test.d.ts +0 -1
  178. package/dist/types/layouts/d3forcelayout/__mocks__/d3ForceLayout.d.ts +0 -10
  179. package/dist/types/layouts/d3forcelayout/circularLayout.test.d.ts +0 -1
  180. package/dist/types/layouts/d3forcelayout/d3ForceLayout.test.d.ts +0 -1
  181. package/dist/types/layouts/forcedirectedlayout/PhysLayout.test.d.ts +0 -1
  182. package/dist/types/layouts/forcedirectedlayout/clustering/ClusterByMerger.test.d.ts +0 -1
  183. package/dist/types/layouts/forcedirectedlayout/clustering/SolarMerger.bench.d.ts +0 -1
  184. package/dist/types/layouts/forcedirectedlayout/clustering/SolarMerger.test.d.ts +0 -1
  185. package/dist/types/layouts/forcedirectedlayout/clustering/clustering-utils.test.d.ts +0 -1
  186. package/dist/types/modules/NvlController.test.d.ts +0 -1
  187. package/dist/types/modules/ZoomTransitionHandler.test.d.ts +0 -1
  188. package/dist/types/modules/dataset.test.d.ts +0 -1
  189. package/dist/types/modules/state/state.test.d.ts +0 -1
  190. package/dist/types/modules/state/utils.test.d.ts +0 -1
  191. package/dist/types/renderers/ClusterOverlay.test.d.ts +0 -1
  192. package/dist/types/renderers/domrenderer/BaseRenderer.test.d.ts +0 -1
  193. package/dist/types/renderers/domrenderer/canvasrenderer/Animation.test.d.ts +0 -1
  194. package/dist/types/renderers/domrenderer/canvasrenderer/CanvasRenderer.test.d.ts +0 -1
  195. package/dist/types/renderers/domrenderer/canvasrenderer/arrowDrawing.test.d.ts +0 -1
  196. package/dist/types/renderers/domrenderer/canvasrenderer/nodeDrawing.test.d.ts +0 -1
  197. package/dist/types/renderers/domrenderer/shared/ImageCache.test.d.ts +0 -1
  198. package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundle.test.d.ts +0 -1
  199. package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundler.test.d.ts +0 -1
  200. package/dist/types/renderers/domrenderer/shared/arrows/arrows.test.d.ts +0 -1
  201. package/dist/types/renderers/domrenderer/shared/nodes/nodes.test.d.ts +0 -1
  202. package/dist/types/renderers/domrenderer/shared/util.test.d.ts +0 -1
  203. package/dist/types/renderers/domrenderer/shared/wordwrap.test.d.ts +0 -1
  204. package/dist/types/renderers/domrenderer/svgrenderer/SvgRenderer.test.d.ts +0 -1
  205. package/dist/types/renderers/domrenderer/svgrenderer/arrowDrawing.test.d.ts +0 -1
  206. package/dist/types/renderers/domrenderer/svgrenderer/nodeDrawing.test.d.ts +0 -1
  207. package/dist/types/renderers/domrenderer/svgrenderer/svgUtils.test.d.ts +0 -1
  208. package/dist/types/renderers/webglrenderer/Controller.test.d.ts +0 -1
  209. package/dist/types/renderers/webglrenderer/IconLayerRegistry.test.d.ts +0 -1
  210. package/dist/types/renderers/webglrenderer/Renderer.test.d.ts +0 -1
  211. package/dist/types/utils/ariaUtils.test.d.ts +0 -1
  212. package/dist/types/utils/canvasManagement.test.d.ts +0 -1
  213. package/dist/types/utils/circularUtils.test.d.ts +0 -1
  214. package/dist/types/utils/clusterGeometry.test.d.ts +0 -1
  215. package/dist/types/utils/clusterHitRegions.test.d.ts +0 -1
  216. package/dist/types/utils/colorUtils.test.d.ts +0 -1
  217. package/dist/types/utils/errors.test.d.ts +0 -1
  218. package/dist/types/utils/geometry.test.d.ts +0 -1
  219. package/dist/types/utils/graphObjectUtils.test.d.ts +0 -1
  220. package/dist/types/utils/hitTest.test.d.ts +0 -1
  221. package/dist/types/utils/jsDriverResultTransformer.test.d.ts +0 -1
  222. package/dist/types/utils/layoutSeeding.test.d.ts +0 -1
  223. package/dist/types/utils/mouseUtils.test.d.ts +0 -1
  224. package/dist/types/utils/webWorkerUtils.test.d.ts +0 -1
  225. package/dist/types/utils/zoomFunctions.test.d.ts +0 -1
  226. package/skills/neo4j-nvl-skill/references/api-surface.md +0 -596
  227. package/skills/neo4j-nvl-skill/references/troubleshooting.md +0 -317
@@ -1,40 +1,40 @@
1
- import type { NodeWithClientPosition } from '../types/graph-element';
1
+ import { NodeWithClientPosition } from "../types/graph-element.js";
2
2
  /**
3
3
  * An object specifying the required callback functions for certain actions
4
4
  */
5
5
  export interface ExternalCallbacks {
6
- /** Triggered when a layout is done moving. */
7
- onLayoutDone?: () => void;
8
- /** Triggered on each step of a layout. */
9
- onLayoutStep?: (p: NodeWithClientPosition[]) => void;
10
- /** Triggered when NVL throws an error after initialization. */
11
- onError?: (error: Error) => void;
12
- /** Triggered when NVL is initialized. */
13
- onInitialization?: () => void;
14
- /** Triggered when a asynchronous layout calculation starts/stops. */
15
- onLayoutComputing?: (isComputing: boolean) => void;
16
- /**
17
- * Triggered when the WebGL context is lost.
18
- * {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/webglcontextlost_event}
19
- */
20
- onWebGLContextLost?: (webGLContextEvent: WebGLContextEvent) => void;
21
- /** Triggered when a zoom transition (e.g. {@link NVL.fit} or {@link NVL.resetZoom}) function is done. */
22
- onZoomTransitionDone?: () => void;
23
- /**
24
- * Triggered when NVL is restarted.
25
- */
26
- restart?: () => void;
6
+ /** Triggered when a layout is done moving. */
7
+ onLayoutDone?: () => void;
8
+ /** Triggered on each step of a layout. */
9
+ onLayoutStep?: (p: NodeWithClientPosition[]) => void;
10
+ /** Triggered when NVL throws an error after initialization. */
11
+ onError?: (error: Error) => void;
12
+ /** Triggered when NVL is initialized. */
13
+ onInitialization?: () => void;
14
+ /** Triggered when a asynchronous layout calculation starts/stops. */
15
+ onLayoutComputing?: (isComputing: boolean) => void;
16
+ /**
17
+ * Triggered when the WebGL context is lost.
18
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/webglcontextlost_event}
19
+ */
20
+ onWebGLContextLost?: (webGLContextEvent: WebGLContextEvent) => void;
21
+ /** Triggered when a zoom transition (e.g. {@link NVL.fit} or {@link NVL.resetZoom}) function is done. */
22
+ onZoomTransitionDone?: () => void;
23
+ /**
24
+ * Triggered when NVL is restarted.
25
+ */
26
+ restart?: () => void;
27
27
  }
28
28
  export declare const isExternalCallback: (callback: unknown) => callback is keyof ExternalCallbacks;
29
29
  export default class ExternalCallbackHandler {
30
- callbacks: ExternalCallbacks;
31
- constructor(externalCallbacks?: ExternalCallbacks);
32
- onInitialization(): void;
33
- onZoomTransitionDone(): void;
34
- onLayoutDone(): void;
35
- onLayoutStep(p: NodeWithClientPosition[]): void;
36
- onLayoutComputing(isComputing: boolean): void;
37
- onError(error: Error): void;
38
- onWebGLContextLost(webGLContextEvent: WebGLContextEvent): void;
39
- private isValidFunction;
40
- }
30
+ callbacks: ExternalCallbacks;
31
+ constructor(externalCallbacks?: ExternalCallbacks);
32
+ onInitialization(): void;
33
+ onZoomTransitionDone(): void;
34
+ onLayoutDone(): void;
35
+ onLayoutStep(p: NodeWithClientPosition[]): void;
36
+ onLayoutComputing(isComputing: boolean): void;
37
+ onError(error: Error): void;
38
+ onWebGLContextLost(webGLContextEvent: WebGLContextEvent): void;
39
+ private isValidFunction;
40
+ }
@@ -1,11 +1,14 @@
1
- import { type Node, type NodeWithClientPosition, 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,206 +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 clusterOverlay;
35
- private readonly glCanvas;
36
- private canvasRect;
37
- private readonly glMinimapCanvas;
38
- private readonly c2dCanvas;
39
- private clusterOverlayCanvas;
40
- private readonly canvasParent;
41
- private readonly svg;
42
- private isInRenderSwitchAnimation;
43
- private previousRenderer;
44
- private justSwitchedLayout;
45
- private layoutUpdating;
46
- private layoutComputing;
47
- private isRenderingDisabled;
48
- private readonly setRenderSwitchAnimation;
49
- private readonly stateDisposers;
50
- private readonly zoomTransitionHandler;
51
- private currentLayout;
52
- private lastTimestamp;
53
- private accumulator;
54
- private readonly layoutTimeLimit;
55
- private readonly smoothFrameBudgetMs;
56
- private pixelRatio;
57
- private readonly resizeObserver;
58
- private readonly minimapResizeObserver;
59
- private pendingZoom;
60
- private pendingPan;
61
- private pendingViewportOverride;
62
- private animationRequestId;
63
- private layoutDoneCallback;
64
- private layoutComputingCallback;
65
- private currentLayoutType;
66
- private descriptionElement;
67
- /** True when a minimap container was provided at construction. */
68
- private readonly hasMinimap;
69
- private lastMinimapPositions;
70
- private lastMinimapCacheVersion;
71
- constructor(state: NvlState, frame: HTMLElement, options: NvlOptions);
72
- private onWebGLContextLost;
73
- private fpsToFrameBudgetMs;
74
- private getLayoutNeedsToUpdate;
75
- private isWithinBudget;
76
- /**
77
- * Add elapsed frame time to the layout-step accumulator, capped at `layoutTimeLimit`.
78
- * Prevents a slow frame (e.g. blocked GPU readback) from inflating catch-up debt and
79
- * scheduling ever more work in a feedback loop; the layout falls behind gracefully instead.
80
- */
81
- private accumulateLayoutElapsedTime;
82
- /**
83
- * Whether the GPU force-directed layout is active.
84
- * @returns `true` when PhysLayout is the current layout.
85
- */
86
- private usesGpuSimulation;
87
- /**
88
- * Whether the GPU-texture fast path can be taken this frame.
89
- * Requires the WebGL renderer, GPU layout active, and no CPU-position consumers
90
- * (layout-step callback, HTML overlays). A provided minimap no longer blocks this path;
91
- * the minimap and cluster overlay are updated from the lagged async position cache instead.
92
- * @returns `true` when rendering directly from the GPU position texture is safe.
93
- */
94
- private canRenderFromGpuTexture;
95
- /**
96
- * Uploads lagged PhysLayout cache positions to the minimap when the cache version changed.
97
- * @returns `true` when positions were refreshed this call.
98
- */
99
- private refreshMinimapFromCacheIfStale;
100
- /**
101
- * Fits, renders, and caches minimap positions (and PhysLayout cache version when applicable).
102
- */
103
- private syncMinimap;
104
- /** Whether either cluster decoration is enabled in the current layout options. */
105
- private hasClusterDecorations;
106
- /**
107
- * Creates the decoration canvas and its overlay.
108
- * @returns The overlay to draw with.
109
- */
110
- private createClusterOverlay;
111
- /**
112
- * Resolves the overlay to draw into, allocating it on first use and tearing it down again
113
- * while cluster decorations are off.
114
- * @returns The overlay to draw with, or null when decorations are disabled.
115
- */
116
- private ensureClusterOverlay;
117
- /** Tears the overlay and its canvas back down once decorations are switched off. */
118
- private destroyClusterOverlay;
119
- /**
120
- * Draws (or clears) cluster decorations on the Canvas2D overlay from explicit positions.
121
- * @param positions - CPU node positions for this frame, or null to clear.
122
- */
123
- private renderClusterOverlay;
124
- /**
125
- * Draws cluster decorations from PhysLayout's lagged async PBO cache without a sync dump.
126
- * @param forceLayout - The PhysLayout instance to render the cluster overlay from.
127
- */
128
- private renderClusterOverlayFromCache;
129
- /** Syncs idToPosition from the GPU layout on demand; no-op for CPU layouts. */
130
- syncPositionsFromLayout(): void;
131
- /**
132
- * Fitted {@link ClusteringOptions.clusterBy} hull regions for the current layout, or [].
133
- * @returns Cluster hit regions for picking.
134
- */
135
- getClusterByHitRegions(): import("../utils/clusterHitRegions").ClusterHitRegion[];
136
- private updateMinimapZoom;
137
- private startMainLoop;
138
- private renderNodeHtmlOverlays;
139
- private renderRelationshipHtmlOverlays;
140
- updateHtmlOverlay(): void;
141
- dumpNodes(): NodeWithClientPosition[];
142
- dumpRelationships(): Relationship[];
143
- /**
144
- * Map a relative Canvas space to the DOM position
145
- * @param canvasX - X position in the canvas space.
146
- * @param canvasY - Y position position in the canvas space.
147
- */
148
- mapCanvasSpaceToRelativePosition(canvasX: number, canvasY: number): {
149
- x: number;
150
- y: number;
151
- };
152
- /**
153
- * Map a relative DOM position to the Canvas space
154
- * @param clientX - Relative X position from the top left [0..rect.width].
155
- * @param clientY - Relative Y position from the top left [0..rect.height].
156
- */
157
- mapRelativePositionToCanvasSpace(clientX: number, clientY: number): {
158
- x: number;
159
- y: number;
160
- };
161
- getNodePositions(): (Node & Point)[];
162
- setNodePositions(data: Node[], updateLayout?: boolean): void;
163
- isLayoutMoving(): boolean;
164
- getNodesOnScreen(): {
165
- nodes: Node[];
166
- rels: Relationship[];
167
- };
168
- registerDoneCallback(cb: NvlController['layoutDoneCallback']): void;
169
- registerComputingCallback(cb: NvlController['layoutComputingCallback']): void;
170
- getPosition(nodeId: string): Node & Point;
171
- getScale(): number;
172
- getPan(): {
173
- x: number;
174
- y: number;
175
- };
176
- setZoomLevel(_newLevel: number): void;
177
- setPanCoordinates(panX: number, panY: number): void;
178
- setZoomAndPan(zoom: number, panX: number, panY: number): void;
179
- fit(nodeIds: string[], zoomOptions?: ZoomOptions): void;
180
- resetZoom(): void;
181
- setRenderer(renderer: string): void;
182
- on(name: keyof ExternalCallbacks, callback: (args: unknown) => void): void;
183
- isDestroyed(): boolean;
184
- destroy(): void;
185
- callIfRegistered(...args: any[]): void;
186
- getCanvasRelsAt(point: Point): import("..").HitTargetRelationship[];
187
- getCanvasNodesAt(point: Point, hitNodeMarginWidth?: number): import("..").HitTargetNode[];
188
- private getLayout;
189
- setLayout(layoutType: Layout): void;
190
- setLayoutOptions(options?: LayoutOptions): void;
191
- /**
192
- * Syncs positions if needed and redraws (or clears) the cluster overlay from current state.
193
- */
194
- private refreshClusterOverlay;
195
- private getDataUrlForCanvas;
196
- private initiateFileDownload;
197
- private updateLayoutAndPositions;
198
- private getAndUpdatePositions;
199
- private getLayoutPositions;
200
- saveToFile(options: SaveToFileOptions): void;
201
- private createSvgString;
202
- saveToSvg(options?: SaveToFileOptions): Promise<void>;
203
- getImageDataURL(options: SaveToFileOptions): string;
204
- getSvgDataUrl(options?: SaveToFileOptions): Promise<string>;
205
- private prepareLargeFileForDownload;
206
- private createCanvasAndRenderImage;
207
- saveFullGraphToLargeFile(options: SaveToFileOptions): Promise<void>;
208
- addAndUpdateElementsInGraph(nodes?: Node[] | PartialNode[], relationships?: Relationship[] | PartialRelationship[]): void;
209
- updateElementsInGraph(nodes: Node[] | PartialNode[], relationships: Relationship[] | PartialRelationship[]): void;
210
- /**
211
- * Adds nodes and relationships in the current scene.
212
- * @param {Node[]} nodes The nodes to be added.
213
- * @param {Relationship[]} relationships The relationships to be added.
214
- */
215
- addElementsToGraph(nodes: Node[], relationships: Relationship[]): void;
216
- private validateNodes;
217
- 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;
218
221
  }
219
- 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: 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
- }
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
+ }