@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,86 +1,85 @@
1
- import type { NvlState } from '../../../modules/state/types';
2
- import type { Node } from '../../../types/graph-element';
3
- import type { Point } from '../../../utils/geometry';
4
- import type { HitTargetNode, HitTargetRelationship } from '../../../utils/hittest';
5
- import type { RendererOptions } from '../BaseRenderer';
6
- import BaseRenderer from '../BaseRenderer';
1
+ import { Point } from "../../../utils/geometry.js";
2
+ import { Node } from "../../../types/graph-element.js";
3
+ import { NvlState } from "../../../modules/state/types.js";
4
+ import { HitTargetNode, HitTargetRelationship } from "../../../utils/hitTest.js";
5
+ import BaseRenderer, { RendererOptions } from "../BaseRenderer.js";
7
6
  export default class CanvasRenderer extends BaseRenderer {
8
- private canvas;
9
- private context;
10
- private animationHandler;
11
- private ellipsisWidth;
12
- private disableArrowShadow;
13
- /**
14
- * Creates a new CanvasRenderer.
15
- * @param canvas {HTMLCanvasElement} - The canvas to render on.
16
- * @param context {CanvasRenderingContext2D} - The canvas context.
17
- * @param state {NvlState} - The state.
18
- * @param options {RendererOptions} - The visualization options.
19
- */
20
- constructor(canvas: HTMLCanvasElement, context: CanvasRenderingContext2D | null, state: NvlState, options?: RendererOptions);
21
- /**
22
- * Checks if the renderer needs to run.
23
- * @returns Whether the renderer needs to run.
24
- */
25
- needsToRun(): boolean;
26
- /**
27
- * Override processUpdates to add Canvas-specific shadow handling
28
- */
29
- processUpdates(): void;
30
- /**
31
- * Draws a single node on the canvas with all its visual elements (circle, icons, captions, etc.)
32
- * @param ctx - The canvas rendering context
33
- * @param node - The node to draw
34
- */
35
- private drawNode;
36
- /**
37
- * Helper method to enable shadow on canvas context
38
- */
39
- private enableShadow;
40
- /**
41
- * Helper method to disable shadow on canvas context
42
- */
43
- private disableShadow;
44
- /**
45
- * Renders a waypoint arrow (relationship between two different nodes)
46
- */
47
- private renderWaypointArrow;
48
- /**
49
- * Renders a self-referencing arrow (relationship from node to itself)
50
- */
51
- private renderSelfArrow;
52
- /**
53
- * Draws the nodes and relationships to their positions on the canvas.
54
- * @param positionArray {Node[]} - The array of nodes to draw
55
- * @param options {any} - The options for the render
56
- */
57
- render(positionArray: Node[], options?: {
58
- canvas?: HTMLCanvasElement;
59
- context?: CanvasRenderingContext2D;
60
- backgroundColor?: string;
61
- ignoreAnimations?: boolean;
62
- showCaptions?: boolean;
63
- }): void;
64
- private renderNodes;
65
- private renderRelationships;
66
- /**
67
- * Returns the nodes at the pointer position
68
- * @param pointer - The position of the pointer.
69
- * @returns The nodes at the pointer position.
70
- * @todo Sort nodes by distance descending
71
- */
72
- getNodesAt(pointer: Point, hitNodeMarginWidth?: number): HitTargetNode[];
73
- /**
74
- * Returns the relationships at the pointer position
75
- * @param pointer - The position of the pointer.
76
- * @returns The relationships at the pointer position.
77
- * @todo: sort relationships by distance descending
78
- */
79
- getRelsAt(pointer: Point): HitTargetRelationship[];
80
- /**
81
- * Handles zoom and pan on the canvas.
82
- * @param context {CanvasRenderingContext2D} - The canvas context
83
- * @param canvas {HTMLCanvasElement} - The canvas
84
- */
85
- private zoomAndPan;
86
- }
7
+ private canvas;
8
+ private context;
9
+ private animationHandler;
10
+ private ellipsisWidth;
11
+ private disableArrowShadow;
12
+ /**
13
+ * Creates a new CanvasRenderer.
14
+ * @param canvas {HTMLCanvasElement} - The canvas to render on.
15
+ * @param context {CanvasRenderingContext2D} - The canvas context.
16
+ * @param state {NvlState} - The state.
17
+ * @param options {RendererOptions} - The visualization options.
18
+ */
19
+ constructor(canvas: HTMLCanvasElement, context: CanvasRenderingContext2D | null, state: NvlState, options?: RendererOptions);
20
+ /**
21
+ * Checks if the renderer needs to run.
22
+ * @returns Whether the renderer needs to run.
23
+ */
24
+ needsToRun(): boolean;
25
+ /**
26
+ * Override processUpdates to add Canvas-specific shadow handling
27
+ */
28
+ processUpdates(): void;
29
+ /**
30
+ * Draws a single node on the canvas with all its visual elements (circle, icons, captions, etc.)
31
+ * @param ctx - The canvas rendering context
32
+ * @param node - The node to draw
33
+ */
34
+ private drawNode;
35
+ /**
36
+ * Helper method to enable shadow on canvas context
37
+ */
38
+ private enableShadow;
39
+ /**
40
+ * Helper method to disable shadow on canvas context
41
+ */
42
+ private disableShadow;
43
+ /**
44
+ * Renders a waypoint arrow (relationship between two different nodes)
45
+ */
46
+ private renderWaypointArrow;
47
+ /**
48
+ * Renders a self-referencing arrow (relationship from node to itself)
49
+ */
50
+ private renderSelfArrow;
51
+ /**
52
+ * Draws the nodes and relationships to their positions on the canvas.
53
+ * @param positionArray {Node[]} - The array of nodes to draw
54
+ * @param options {any} - The options for the render
55
+ */
56
+ render(positionArray: Node[], options?: {
57
+ canvas?: HTMLCanvasElement;
58
+ context?: CanvasRenderingContext2D;
59
+ backgroundColor?: string;
60
+ ignoreAnimations?: boolean;
61
+ showCaptions?: boolean;
62
+ }): void;
63
+ private renderNodes;
64
+ private renderRelationships;
65
+ /**
66
+ * Returns the nodes at the pointer position
67
+ * @param pointer - The position of the pointer.
68
+ * @returns The nodes at the pointer position.
69
+ * @todo Sort nodes by distance descending
70
+ */
71
+ getNodesAt(pointer: Point, hitNodeMarginWidth?: number): HitTargetNode[];
72
+ /**
73
+ * Returns the relationships at the pointer position
74
+ * @param pointer - The position of the pointer.
75
+ * @returns The relationships at the pointer position.
76
+ * @todo: sort relationships by distance descending
77
+ */
78
+ getRelsAt(pointer: Point): HitTargetRelationship[];
79
+ /**
80
+ * Handles zoom and pan on the canvas.
81
+ * @param context {CanvasRenderingContext2D} - The canvas context
82
+ * @param canvas {HTMLCanvasElement} - The canvas
83
+ */
84
+ private zoomAndPan;
85
+ }
@@ -1,7 +1,7 @@
1
- import type { BorderStyle, DisabledItemStyles } from '../../../modules/state/types';
2
- import type { Relationship } from '../../../types/graph-element';
3
- import type { Point } from '../../../utils/geometry';
4
- import type ArrowBundle from '../shared/arrows/ArrowBundle';
1
+ import { Point } from "../../../utils/geometry.js";
2
+ import { Relationship } from "../../../types/graph-element.js";
3
+ import { BorderStyle, DisabledItemStyles } from "../../../modules/state/types.js";
4
+ import ArrowBundle from "../shared/arrows/ArrowBundle.js";
5
5
  /**
6
6
  * Calculate label dimensions including font size, font weight, and truncated text.
7
7
  *
@@ -15,8 +15,8 @@ import type ArrowBundle from '../shared/arrows/ArrowBundle';
15
15
  * @returns LabelDimensions with calculated font metrics and label text
16
16
  */
17
17
  export declare const calculateLabelDimensions: (fullCaption: string, measureWidth: (text: string) => number, maxWidth: number) => {
18
- label: string;
19
- width: number;
18
+ label: string;
19
+ width: number;
20
20
  };
21
21
  /**
22
22
  * Calculate vertical alignment offset for label based on caption alignment.
@@ -42,13 +42,13 @@ export declare const calculateLabelHeightAlign: (captionAlign: string, fontSize:
42
42
  * @returns object with position, rotation, width, and height for hit detection
43
43
  */
44
44
  export declare const calculateLabelGeometry: (point: Point, angle: number, maxWidth: number, fontSize: number, heightAlign: number, padding: number, pixelRatio: number) => {
45
- position: {
46
- x: number;
47
- y: number;
48
- };
49
- rotation: number;
50
- width: number;
51
- height: number;
45
+ position: {
46
+ x: number;
47
+ y: number;
48
+ };
49
+ rotation: number;
50
+ width: number;
51
+ height: number;
52
52
  };
53
53
  /**
54
54
  * Determines the rendering state flags for a relationship.
@@ -59,11 +59,11 @@ export declare const calculateLabelGeometry: (point: Point, angle: number, maxWi
59
59
  * @returns Object containing rendering state flags
60
60
  */
61
61
  export declare const determineArrowRenderingState: (rel: Relationship, disableArrowShadow: boolean, showLabel: boolean) => {
62
- isSelected: boolean;
63
- isDisabled: boolean;
64
- showOverlayIcon: boolean;
65
- shouldRenderShadow: boolean;
66
- shouldShowHoverEffect: boolean;
62
+ isSelected: boolean;
63
+ isDisabled: boolean;
64
+ showOverlayIcon: boolean;
65
+ shouldRenderShadow: boolean;
66
+ shouldShowHoverEffect: boolean;
67
67
  };
68
68
  /**
69
69
  * Selects relationship colors based on rendering state.
@@ -75,10 +75,10 @@ export declare const determineArrowRenderingState: (rel: Relationship, disableAr
75
75
  * @returns Object containing colors for different rendering layers
76
76
  */
77
77
  export declare const selectArrowColors: (rel: Relationship, selectedBorderStyle: BorderStyle, disabledItemStyles: DisabledItemStyles, defaultColor: string) => {
78
- mainColor: string;
79
- selectedColor1: string;
80
- selectedColor2: string;
81
- hoverColor: string;
78
+ mainColor: string;
79
+ selectedColor1: string;
80
+ selectedColor2: string;
81
+ hoverColor: string;
82
82
  };
83
83
  /**
84
84
  * Calculates arrowhead adjustment for last segment truncation.
@@ -92,19 +92,19 @@ export declare const selectArrowColors: (rel: Relationship, selectedBorderStyle:
92
92
  * @returns Object containing adjusted parameters and truncation flag
93
93
  */
94
94
  export declare const calculateArrowheadAdjustment: (lastSegmentDistance: number, headHeight: number, headPositionOffset: number, headSelectedAdjustment: number, headChinHeight: number, isSelected: boolean) => {
95
- adjustedHeadPositionOffset: number;
96
- adjustedHeadSelectedAdjustment: number;
97
- shouldTruncateLastSegment: boolean;
95
+ adjustedHeadPositionOffset: number;
96
+ adjustedHeadSelectedAdjustment: number;
97
+ shouldTruncateLastSegment: boolean;
98
98
  };
99
99
  /**
100
100
  * The parameters for drawing an arrowhead.
101
101
  */
102
102
  type ArrowHeadParameters = {
103
- headPosition: Point;
104
- headAngle: number;
105
- headHeight: number;
106
- headChinHeight: number;
107
- headWidth: number;
103
+ headPosition: Point;
104
+ headAngle: number;
105
+ headHeight: number;
106
+ headChinHeight: number;
107
+ headWidth: number;
108
108
  };
109
109
  /**
110
110
  * Creates an arrowhead shape using a polygon.
@@ -151,4 +151,4 @@ export declare const drawLoop: (ctx: CanvasRenderingContext2D, fromPoint: Point,
151
151
  * @param flip - Whether to flip the label orientation (default false)
152
152
  */
153
153
  export declare const drawLabel: (ctx: CanvasRenderingContext2D, point: Point, angle: number, maxWidth: number, rel: Relationship, bundle: ArrowBundle, disabledItemStyles: DisabledItemStyles, fontColor: string) => void;
154
- export {};
154
+ export {};
@@ -1,7 +1,7 @@
1
- import type { BorderStyle, DisabledItemStyles, ShadowStyle } from '../../../modules/state/types';
2
- import type { Node } from '../../../types/graph-element';
3
- import type { TextSegment } from '../shared/types';
4
- import type AnimationHandler from './AnimationHandler';
1
+ import { TextSegment } from "../shared/types.js";
2
+ import { Node } from "../../../types/graph-element.js";
3
+ import { BorderStyle, DisabledItemStyles, ShadowStyle } from "../../../modules/state/types.js";
4
+ import AnimationHandler from "./AnimationHandler.js";
5
5
  /**
6
6
  * Draws borders around a node with a given array of border styles
7
7
  * @param ctx - The canvas context.
@@ -13,8 +13,8 @@ import type AnimationHandler from './AnimationHandler';
13
13
  * @hidden
14
14
  */
15
15
  export declare const drawCircleBand: (ctx: CanvasRenderingContext2D, x: number, y: number, innerRadius: number, borderStyles: {
16
- width: number;
17
- color: string;
16
+ width: number;
17
+ color: string;
18
18
  }[]) => void;
19
19
  /**
20
20
  * Fill a circle band with a gradient from a certain color to transparent
@@ -46,8 +46,8 @@ export declare const drawNodeCaption: (ctx: CanvasRenderingContext2D, lines: Tex
46
46
  * @returns The calculated pulse radius
47
47
  */
48
48
  export declare const calculatePulseAnimation: (mainFaceRadius: number) => {
49
- pulseRadius: number;
50
- pulseVisibility: number;
49
+ pulseRadius: number;
50
+ pulseVisibility: number;
51
51
  };
52
52
  /**
53
53
  * Calculate shadow animation parameters based on node state.
@@ -61,9 +61,9 @@ export declare const calculatePulseAnimation: (mainFaceRadius: number) => {
61
61
  * @returns Object with shadowWidth, shadowFade, and shadowColor, or null if no shadow needed
62
62
  */
63
63
  export declare const calculateShadowAnimation: (nodeId: string, animationHandler: AnimationHandler, selected: boolean, hovered: boolean, shadowStyle: ShadowStyle) => {
64
- shadowWidth: number;
65
- shadowColor: string;
66
- shadowFade: number;
64
+ shadowWidth: number;
65
+ shadowColor: string;
66
+ shadowFade: number;
67
67
  };
68
68
  /**
69
69
  * Returns an array of styles for the rings of a node.
@@ -77,13 +77,13 @@ export declare const calculateShadowAnimation: (nodeId: string, animationHandler
77
77
  * @returns An array of ring styles with computed widths.
78
78
  */
79
79
  export type NodeRenderParamsInput = {
80
- node: Node;
81
- mainFaceRadius: number;
82
- disabled: boolean;
83
- disabledItemStyles: DisabledItemStyles;
84
- selectedBorderStyle: BorderStyle;
85
- animationHandler: AnimationHandler;
86
- defaultNodeColor: string;
80
+ node: Node;
81
+ mainFaceRadius: number;
82
+ disabled: boolean;
83
+ disabledItemStyles: DisabledItemStyles;
84
+ selectedBorderStyle: BorderStyle;
85
+ animationHandler: AnimationHandler;
86
+ defaultNodeColor: string;
87
87
  };
88
88
  /**
89
89
  * Calculate all node render parameters at once.
@@ -93,17 +93,17 @@ export type NodeRenderParamsInput = {
93
93
  * @returns object with node render parameters
94
94
  */
95
95
  export declare const calculateNodeRenderParams: (input: NodeRenderParamsInput) => {
96
- nodeColor: string;
97
- fontColor: string;
98
- shouldRenderPulse: boolean;
99
- pulseAnimation: {
100
- pulseColor: string;
101
- pulseRadius: number;
102
- };
103
- shouldRenderShadow: boolean;
104
- shadowAnimation: {
105
- shadowWidth: number;
106
- shadowFade: number;
107
- shadowColor: string;
108
- };
109
- };
96
+ nodeColor: string;
97
+ fontColor: string;
98
+ shouldRenderPulse: boolean;
99
+ pulseAnimation: {
100
+ pulseColor: string;
101
+ pulseRadius: number;
102
+ };
103
+ shouldRenderShadow: boolean;
104
+ shadowAnimation: {
105
+ shadowWidth: number;
106
+ shadowFade: number;
107
+ shadowColor: string;
108
+ };
109
+ };
@@ -1,17 +1,18 @@
1
- import type { Cache } from '../shared/types';
1
+ import { Cache } from "./types.js";
2
2
  declare class ImageCache {
3
- readonly cache: Cache;
4
- private readonly onImageLoadedCb?;
5
- constructor(onImageLoaded?: () => void);
6
- getImage(src: string, inverted?: boolean): HTMLCanvasElement;
7
- private getOrCreateEntry;
8
- private invertCanvas;
9
- private loadImage;
10
- private drawIfNeeded;
11
- /**
12
- * Returns a promise that resolves when all images currently in the cache have finished loading.
13
- * Useful before export operations to ensure all icons are available.
14
- */
15
- waitForImages(): Promise<void>;
3
+ readonly cache: Cache;
4
+ private readonly onImageLoadedCb?;
5
+ constructor(onImageLoaded?: () => void);
6
+ getImage(src: string, inverted?: boolean): HTMLCanvasElement;
7
+ isDrawn(src: string, inverted?: boolean): boolean;
8
+ private getOrCreateEntry;
9
+ private invertCanvas;
10
+ private loadImage;
11
+ private drawIfNeeded;
12
+ /**
13
+ * Returns a promise that resolves when all images currently in the cache have finished loading.
14
+ * Useful before export operations to ensure all icons are available.
15
+ */
16
+ waitForImages(): Promise<void>;
16
17
  }
17
- export default ImageCache;
18
+ export { ImageCache as default };
@@ -1,95 +1,95 @@
1
- import type { Relationship } from '../../../../types/graph-element';
2
- import type { Point } from '../../../../utils/geometry';
3
- import type { WaypointPath } from '../types';
1
+ import { Point } from "../../../../utils/geometry.js";
2
+ import { WaypointPath } from "../types.js";
3
+ import { Relationship } from "../../../../types/graph-element.js";
4
4
  export interface LabelGeometry {
5
- position: Point;
6
- rotation: number;
7
- width: number;
8
- height: number;
5
+ position: Point;
6
+ rotation: number;
7
+ width: number;
8
+ height: number;
9
9
  }
10
10
  /**
11
11
  * Class representing a bundle of arrows
12
12
  */
13
13
  export default class ArrowBundle {
14
- key: string;
15
- rels: Map<string, Relationship>;
16
- waypointPath: WaypointPath;
17
- readonly selfReferring: boolean;
18
- fromId: string;
19
- toId: string;
20
- angles: number[];
21
- labelInfo: Record<string, LabelGeometry>;
22
- relIndexCache: Map<string, number>;
23
- relDirectionCache: Map<string, boolean>;
24
- private cachedMaxFontSize;
25
- /**
26
- * @param key - The key of the arrow bundle.
27
- * @param fromId - The source node of the arrow bundle.
28
- * @param toId - The target node of the arrow bundle.
29
- */
30
- constructor(key: string, fromId: string, toId: string);
31
- /**
32
- * Recalculate and cache the maximum font size
33
- */
34
- updateMaxFontSize(): void;
35
- /**
36
- * Updates the relationship direction cache with a given relationship
37
- * @param rel - The relationship to update the direction for.
38
- */
39
- updateRelDirection(rel: Relationship): void;
40
- /**
41
- * Regenerates index cache for rel ids in bundle
42
- */
43
- updateIndexCache(): void;
44
- /**
45
- * Insert a new arrow to the bundle
46
- * @param rel - The relationship to insert.
47
- */
48
- insert(rel: Relationship): void;
49
- setLabelInfo(relId: string, labelInfo: LabelGeometry): void;
50
- has({ id }: Relationship): boolean;
51
- /**
52
- * Remove an arrow from the bundle
53
- * @param rel - The arrow to remove.
54
- */
55
- remove({ id }: Relationship): void;
56
- /**
57
- * Get the size of the arrow bundle
58
- * @returns The size of the arrow bundle.
59
- */
60
- size(): number;
61
- relArray(): Relationship[];
62
- /**
63
- * Get the maximum font size of the arrows in the bundle
64
- * @returns The maximum font size of the arrows in the bundle.
65
- */
66
- maxFontSize(): number;
67
- /**
68
- * Check if relationship is in opposite direction to the bundle.
69
- * @param rel - The relationship to check.
70
- * @returns True if the relationship is in opposite direction to the bundle.
71
- */
72
- relIsOppositeDirection({ id }: Relationship): boolean;
73
- /**
74
- * Get the index of a given arrow in the bundle
75
- * @param rel - The arrow to look for.
76
- * @returns The index of the arrow in the bundle, or -1 if not found.
77
- */
78
- indexOf({ id }: Relationship): number;
79
- /**
80
- * Get the arrow at a given index in the bundle
81
- * @param index - The index of the arrow to get.
82
- * @returns The arrow at the given index.
83
- */
84
- getRel(index: number): Relationship;
85
- /**
86
- * Set the waypoints for the arrow bundle
87
- * @param waypoints - The waypoints for the arrow bundle.
88
- */
89
- setWaypoints(waypoints: WaypointPath): void;
90
- /**
91
- * Set the angles for the arrow bundle
92
- * @param angles - The angles for the arrow bundle.
93
- */
94
- setAngles(angles: number[]): void;
95
- }
14
+ key: string;
15
+ rels: Map<string, Relationship>;
16
+ waypointPath: WaypointPath;
17
+ readonly selfReferring: boolean;
18
+ fromId: string;
19
+ toId: string;
20
+ angles: number[];
21
+ labelInfo: Record<string, LabelGeometry>;
22
+ relIndexCache: Map<string, number>;
23
+ relDirectionCache: Map<string, boolean>;
24
+ private cachedMaxFontSize;
25
+ /**
26
+ * @param key - The key of the arrow bundle.
27
+ * @param fromId - The source node of the arrow bundle.
28
+ * @param toId - The target node of the arrow bundle.
29
+ */
30
+ constructor(key: string, fromId: string, toId: string);
31
+ /**
32
+ * Recalculate and cache the maximum font size
33
+ */
34
+ updateMaxFontSize(): void;
35
+ /**
36
+ * Updates the relationship direction cache with a given relationship
37
+ * @param rel - The relationship to update the direction for.
38
+ */
39
+ updateRelDirection(rel: Relationship): void;
40
+ /**
41
+ * Regenerates index cache for rel ids in bundle
42
+ */
43
+ updateIndexCache(): void;
44
+ /**
45
+ * Insert a new arrow to the bundle
46
+ * @param rel - The relationship to insert.
47
+ */
48
+ insert(rel: Relationship): void;
49
+ setLabelInfo(relId: string, labelInfo: LabelGeometry): void;
50
+ has({ id }: Relationship): boolean;
51
+ /**
52
+ * Remove an arrow from the bundle
53
+ * @param rel - The arrow to remove.
54
+ */
55
+ remove({ id }: Relationship): void;
56
+ /**
57
+ * Get the size of the arrow bundle
58
+ * @returns The size of the arrow bundle.
59
+ */
60
+ size(): number;
61
+ relArray(): Relationship[];
62
+ /**
63
+ * Get the maximum font size of the arrows in the bundle
64
+ * @returns The maximum font size of the arrows in the bundle.
65
+ */
66
+ maxFontSize(): number;
67
+ /**
68
+ * Check if relationship is in opposite direction to the bundle.
69
+ * @param rel - The relationship to check.
70
+ * @returns True if the relationship is in opposite direction to the bundle.
71
+ */
72
+ relIsOppositeDirection({ id }: Relationship): boolean;
73
+ /**
74
+ * Get the index of a given arrow in the bundle
75
+ * @param rel - The arrow to look for.
76
+ * @returns The index of the arrow in the bundle, or -1 if not found.
77
+ */
78
+ indexOf({ id }: Relationship): number;
79
+ /**
80
+ * Get the arrow at a given index in the bundle
81
+ * @param index - The index of the arrow to get.
82
+ * @returns The arrow at the given index.
83
+ */
84
+ getRel(index: number): Relationship;
85
+ /**
86
+ * Set the waypoints for the arrow bundle
87
+ * @param waypoints - The waypoints for the arrow bundle.
88
+ */
89
+ setWaypoints(waypoints: WaypointPath): void;
90
+ /**
91
+ * Set the angles for the arrow bundle
92
+ * @param angles - The angles for the arrow bundle.
93
+ */
94
+ setAngles(angles: number[]): void;
95
+ }