@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,46 +1,46 @@
1
- import type { StyledCaption } from '../../renderers/domrenderer/shared/types';
2
- import type { Node, Relationship } from '../../types/graph-element';
3
- import type { NvlOptions } from './types';
1
+ import { StyledCaption } from "../../renderers/domrenderer/shared/types.js";
2
+ import { Node, Relationship } from "../../types/graph-element.js";
3
+ import { BorderStyle, NvlOptions, ShadowStyle } from "./types.js";
4
4
  /**
5
5
  * Converts a {@link Node.caption} string to {@link Node.captions} array format.
6
6
  * If both caption and captions are provided, captions takes precedence.
7
7
  */
8
8
  export declare const processCaptions: (item: Partial<Node | Relationship>) => StyledCaption[];
9
9
  export declare const processColorStyles: (styling?: NvlOptions["styling"]) => {
10
- nodeBorderStyles: {
11
- default: {
12
- rings?: {
13
- width?: number;
14
- widthFactor?: number;
15
- color: string;
16
- }[];
17
- shadow?: import("./types").ShadowStyle;
18
- };
19
- selected: {
20
- rings?: {
21
- width?: number;
22
- widthFactor?: number;
23
- color: string;
24
- }[];
25
- shadow?: import("./types").ShadowStyle;
26
- };
10
+ nodeBorderStyles: {
11
+ default: {
12
+ rings?: {
13
+ width?: number;
14
+ widthFactor?: number;
15
+ color: string;
16
+ }[];
17
+ shadow?: ShadowStyle;
27
18
  };
28
- relationshipBorderStyles: {
29
- default: import("./types").BorderStyle;
30
- selected: {
31
- rings?: {
32
- width?: number;
33
- widthFactor?: number;
34
- color: string;
35
- }[];
36
- shadow?: import("./types").ShadowStyle;
37
- };
19
+ selected: {
20
+ rings?: {
21
+ width?: number;
22
+ widthFactor?: number;
23
+ color: string;
24
+ }[];
25
+ shadow?: ShadowStyle;
38
26
  };
39
- disabledItemStyles: {
27
+ };
28
+ relationshipBorderStyles: {
29
+ default: BorderStyle;
30
+ selected: {
31
+ rings?: {
32
+ width?: number;
33
+ widthFactor?: number;
40
34
  color: string;
41
- fontColor: string;
35
+ }[];
36
+ shadow?: ShadowStyle;
42
37
  };
43
- defaultNodeColor: string;
44
- defaultRelationshipColor: string;
45
- overlayLineColor: string;
46
- };
38
+ };
39
+ disabledItemStyles: {
40
+ color: string;
41
+ fontColor: string;
42
+ };
43
+ defaultNodeColor: string;
44
+ defaultRelationshipColor: string;
45
+ overlayLineColor: string;
46
+ };
@@ -0,0 +1,73 @@
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 { CoarsenedGraph } from "../layouts/forcedirectedlayout/clustering/types.js";
5
+ type ClusterPositions = Readonly<Record<string, Point>> | (() => (Node & Point)[]);
6
+ /**
7
+ * Canvas2D overlay for cluster decorations.
8
+ */
9
+ export default class ClusterOverlay {
10
+ private readonly canvas;
11
+ private readonly context;
12
+ private readonly state;
13
+ private readonly stateDisposers;
14
+ private readonly clusterColors;
15
+ private clusterColorsDirty;
16
+ private cachedFirstSubGraphLevel;
17
+ private cachedIdToPosition;
18
+ private cachedPositionListVersion;
19
+ private readonly clusterGeometry;
20
+ private geometryPositionsVersion;
21
+ constructor(canvas: HTMLCanvasElement, context: CanvasRenderingContext2D, state: NvlState);
22
+ /** Clears the overlay. */
23
+ clear(): void;
24
+ /**
25
+ * Draws cluster decorations for a given multi-member first-level sun system and positions.
26
+ * @param subGraphs - Layout coarsening hierarchy (`subGraphs[1]` = first-level suns).
27
+ * @param positions - Node id to position map, or a getter for a lagged position list.
28
+ * @param cacheVersion - PhysLayout positions-cache version.
29
+ */
30
+ render(subGraphs: CoarsenedGraph[], positions: ClusterPositions, cacheVersion: number): void;
31
+ destroy(): void;
32
+ private resetClusterColorCache;
33
+ private resetGeometryCache;
34
+ private syncGeometryCacheVersion;
35
+ private resetPositionCache;
36
+ /**
37
+ * Returns an id to position map. Records are used as-is. Getters are converted once per `cacheVersion`.
38
+ * @param positions - Node id to position map, or a getter for a lagged position list.
39
+ * @param cacheVersion - PhysLayout positions-cache version; ignored for maps.
40
+ * @returns An id to position map.
41
+ */
42
+ private resolveIdToPosition;
43
+ /**
44
+ * Rebuilds {@link clusterColors} for every multi-member first-level sun.
45
+ * @param firstSubGraphLevel - `subGraphs[1]` from the current layout coarsening hierarchy.
46
+ */
47
+ private rebuildClusterColors;
48
+ /**
49
+ * Returns fitted world-space hull for a cluster, reusing the last fit while the
50
+ * positions cache version is unchanged (e.g. pan/zoom-only frames while layout is stable).
51
+ * @param sunId - Original id of the sun the hull belongs to.
52
+ * @param collectMembers - Builds the member disks to fit; only called on a cache miss.
53
+ * @returns The fitted hull, or null when the cluster cannot be fitted.
54
+ */
55
+ private getCachedHull;
56
+ private fillHalo;
57
+ private strokeOutline;
58
+ /**
59
+ * Traces a closed rounded path along the given points.
60
+ * @param points - The points to trace the path along.
61
+ */
62
+ private traceSmoothClosedPath;
63
+ private applyZoomAndPan;
64
+ /**
65
+ * Returns the shared member color when color is consistent; otherwise null.
66
+ * @param nodeIds - The IDs of the nodes in the cluster.
67
+ * @param idToItem - The map of node IDs to items.
68
+ * @param defaultNodeColor - The default node color.
69
+ * @returns The shared member color when color is consistent; otherwise null.
70
+ */
71
+ private resolveUnanimousClusterColor;
72
+ }
73
+ export {};
@@ -1,75 +1,75 @@
1
- import type { Channel, DataSet } from '../../modules/dataset';
2
- import type { NvlState } from '../../modules/state/types';
3
- import type { Node } from '../../types/graph-element';
4
- import ImageCache from './shared/ImageCache';
5
- import ArrowBundler from './shared/arrows/ArrowBundler';
6
- import type { RelationshipToRender } from './shared/types';
1
+ import { RelationshipToRender } from "./shared/types.js";
2
+ import { Node } from "../../types/graph-element.js";
3
+ import { Channel, DataSet } from "../../modules/dataset.js";
4
+ import { NvlState } from "../../modules/state/types.js";
5
+ import ImageCache from "./shared/ImageCache.js";
6
+ import ArrowBundler from "./shared/arrows/ArrowBundler.js";
7
7
  export type RendererOptions = {
8
- relationshipThreshold?: number;
8
+ relationshipThreshold?: number;
9
9
  };
10
10
  /**
11
11
  * Base class for renderers (Canvas and SVG) that provides common functionality
12
12
  */
13
13
  export default abstract class BaseRenderer {
14
- arrowBundler: ArrowBundler;
15
- protected state: NvlState;
16
- protected relationshipThreshold: number;
17
- protected stateDisposers: NvlState['reaction'][];
18
- protected needsRun: boolean;
19
- protected imageCache: ImageCache;
20
- protected nodeVersion: number;
21
- protected relVersion: number;
22
- protected waypointVersion: number;
23
- protected channelId: string;
24
- protected activeNodes: Set<string>;
25
- constructor(state: NvlState, channelId: string, options?: RendererOptions);
26
- /**
27
- * Gets relationships to render, sorted by their rendering order
28
- * @param showCaptions - Whether to show relationship captions
29
- * @param zoom - Current zoom level (optional, used for threshold checking)
30
- * @param clientWidth - Width of the rendering area
31
- * @param clientHeight - Height of the rendering area
32
- * @returns Array of relationships to render, sorted (disabled, normal, selected)
33
- */
34
- protected getRelationshipsToRender(showCaptions?: boolean, zoom?: number, clientWidth?: number, clientHeight?: number): RelationshipToRender[];
35
- /**
36
- * Gets nodes to render, sorted by their rendering order
37
- * @param positionArray - Array of nodes with positions
38
- * @param clientWidth - Width of the rendering area
39
- * @param clientHeight - Height of the rendering area
40
- * @returns Array of nodes to render, sorted (disabled, normal, selected)
41
- */
42
- protected getNodesToRender(positionArray: Node[], clientWidth?: number, clientHeight?: number): Node[];
43
- /**
44
- * Processes updates in nodes and relationships.
45
- */
46
- processUpdates(): void;
47
- /**
48
- * Processes node channel updates to track activated nodes.
49
- * Adds or removes node IDs from the activeNodes set based on their activated state.
50
- * @param channel - The node channel with adds, removes, and updates
51
- * @param fullData - The full node dataset
52
- */
53
- protected processNodeChannelUpdates(channel: Channel<Node>, fullData: DataSet<Node>): void;
54
- /**
55
- * Checks if a bounding box is off screen
56
- * @param boundingBox - The bounding box to check
57
- * @param clientWidth - Width of the rendering area
58
- * @param clientHeight - Height of the rendering area
59
- * @returns Whether the bounding box is off screen
60
- */
61
- protected isBoundingBoxOffScreen(boundingBox: DOMRect, clientWidth: number, clientHeight: number): boolean;
62
- /**
63
- * Checks if the renderer needs to run.
64
- * @returns Whether the renderer needs to run.
65
- */
66
- needsToRun(): boolean;
67
- /**
68
- * Returns a promise that resolves when all images in the cache have finished loading.
69
- */
70
- waitForImages(): Promise<void>;
71
- /**
72
- * Cleans up the renderer by disposing state reactions and removing channels.
73
- */
74
- destroy(): void;
75
- }
14
+ arrowBundler: ArrowBundler;
15
+ protected state: NvlState;
16
+ protected relationshipThreshold: number;
17
+ protected stateDisposers: NvlState['reaction'][];
18
+ protected needsRun: boolean;
19
+ protected imageCache: ImageCache;
20
+ protected nodeVersion: number;
21
+ protected relVersion: number;
22
+ protected waypointVersion: number;
23
+ protected channelId: string;
24
+ protected activeNodes: Set<string>;
25
+ constructor(state: NvlState, channelId: string, options?: RendererOptions);
26
+ /**
27
+ * Gets relationships to render, sorted by their rendering order
28
+ * @param showCaptions - Whether to show relationship captions
29
+ * @param zoom - Current zoom level (optional, used for threshold checking)
30
+ * @param clientWidth - Width of the rendering area
31
+ * @param clientHeight - Height of the rendering area
32
+ * @returns Array of relationships to render, sorted (disabled, normal, selected)
33
+ */
34
+ protected getRelationshipsToRender(showCaptions?: boolean, zoom?: number, clientWidth?: number, clientHeight?: number): RelationshipToRender[];
35
+ /**
36
+ * Gets nodes to render, sorted by their rendering order
37
+ * @param positionArray - Array of nodes with positions
38
+ * @param clientWidth - Width of the rendering area
39
+ * @param clientHeight - Height of the rendering area
40
+ * @returns Array of nodes to render, sorted (disabled, normal, selected)
41
+ */
42
+ protected getNodesToRender(positionArray: Node[], clientWidth?: number, clientHeight?: number): Node[];
43
+ /**
44
+ * Processes updates in nodes and relationships.
45
+ */
46
+ processUpdates(): void;
47
+ /**
48
+ * Processes node channel updates to track activated nodes.
49
+ * Adds or removes node IDs from the activeNodes set based on their activated state.
50
+ * @param channel - The node channel with adds, removes, and updates
51
+ * @param fullData - The full node dataset
52
+ */
53
+ protected processNodeChannelUpdates(channel: Channel<Node>, fullData: DataSet<Node>): void;
54
+ /**
55
+ * Checks if a bounding box is off screen
56
+ * @param boundingBox - The bounding box to check
57
+ * @param clientWidth - Width of the rendering area
58
+ * @param clientHeight - Height of the rendering area
59
+ * @returns Whether the bounding box is off screen
60
+ */
61
+ protected isBoundingBoxOffScreen(boundingBox: DOMRect, clientWidth: number, clientHeight: number): boolean;
62
+ /**
63
+ * Checks if the renderer needs to run.
64
+ * @returns Whether the renderer needs to run.
65
+ */
66
+ needsToRun(): boolean;
67
+ /**
68
+ * Returns a promise that resolves when all images in the cache have finished loading.
69
+ */
70
+ waitForImages(): Promise<void>;
71
+ /**
72
+ * Cleans up the renderer by disposing state reactions and removing channels.
73
+ */
74
+ destroy(): void;
75
+ }
@@ -2,60 +2,60 @@
2
2
  * Animation class to animate a value from a start value to an end value
3
3
  */
4
4
  export declare class Animation {
5
- /** The id of the element to animate */
6
- readonly elementId: string;
7
- /** The current value of the animation */
8
- currentValue: number;
9
- /** The start value of the animation */
10
- private startValue;
11
- /** The current time of the animation */
12
- private currentTime;
13
- /** The duration of the animation */
14
- private duration;
15
- /** The status of the animation */
16
- private status;
17
- /** The end value of the animation */
18
- private endValue;
19
- /** The start time of the animation */
20
- private startTime;
21
- /** The end time of the animation */
22
- private endTime;
23
- /** Flag to indicate if there is a next animation */
24
- private hasNextAnimation;
25
- /**
26
- * Constructor
27
- * @param elementId - The id of the element to animate.
28
- * @param startValue - The start value of the animation.
29
- */
30
- constructor(elementId: string, startValue: number);
31
- /**
32
- * Sets the duration of the animation.
33
- * @param duration - The duration of the animation.
34
- * @public
35
- */
36
- setDuration(duration: number): void;
37
- /**
38
- * Returns the status of the animation
39
- * @returns The status of the animation.
40
- * @public
41
- */
42
- getStatus(): number;
43
- /**
44
- * Advances the animation to the next frame
45
- * @returns True if there is a next animation, false otherwise.
46
- * @public
47
- */
48
- advance(): boolean;
49
- /**
50
- * Sets the end value of the animation
51
- * @param targetValue - The end value of the animation.
52
- * @public
53
- */
54
- setEndValue(targetValue: number): void;
55
- /**
56
- * Sets the end time of the animation
57
- * @param newEndTime - The end time of the animation.
58
- * @private
59
- */
60
- private setEndTime;
61
- }
5
+ /** The id of the element to animate */
6
+ readonly elementId: string;
7
+ /** The current value of the animation */
8
+ currentValue: number;
9
+ /** The start value of the animation */
10
+ private startValue;
11
+ /** The current time of the animation */
12
+ private currentTime;
13
+ /** The duration of the animation */
14
+ private duration;
15
+ /** The status of the animation */
16
+ private status;
17
+ /** The end value of the animation */
18
+ private endValue;
19
+ /** The start time of the animation */
20
+ private startTime;
21
+ /** The end time of the animation */
22
+ private endTime;
23
+ /** Flag to indicate if there is a next animation */
24
+ private hasNextAnimation;
25
+ /**
26
+ * Constructor
27
+ * @param elementId - The id of the element to animate.
28
+ * @param startValue - The start value of the animation.
29
+ */
30
+ constructor(elementId: string, startValue: number);
31
+ /**
32
+ * Sets the duration of the animation.
33
+ * @param duration - The duration of the animation.
34
+ * @public
35
+ */
36
+ setDuration(duration: number): void;
37
+ /**
38
+ * Returns the status of the animation
39
+ * @returns The status of the animation.
40
+ * @public
41
+ */
42
+ getStatus(): number;
43
+ /**
44
+ * Advances the animation to the next frame
45
+ * @returns True if there is a next animation, false otherwise.
46
+ * @public
47
+ */
48
+ advance(): boolean;
49
+ /**
50
+ * Sets the end value of the animation
51
+ * @param targetValue - The end value of the animation.
52
+ * @public
53
+ */
54
+ setEndValue(targetValue: number): void;
55
+ /**
56
+ * Sets the end time of the animation
57
+ * @param newEndTime - The end time of the animation.
58
+ * @private
59
+ */
60
+ private setEndTime;
61
+ }
@@ -1,71 +1,71 @@
1
- import { Animation } from './Animation';
1
+ import { Animation } from "./Animation.js";
2
2
  /**
3
3
  * A small animation running engine that lets elements do any transitions and
4
4
  * ask the rendered to redraw as long as needed.
5
5
  * The object is owned by the canvas renderer
6
6
  */
7
7
  export default class AnimationHandler {
8
- /** A map of all animations */
9
- private readonly animations;
10
- /** A map of all durations */
11
- private readonly durations;
12
- /** The default duration */
13
- private readonly defaultDuration;
14
- /** Flag to indicate if a rerun is needed */
15
- private hasNextAnimation;
16
- /** Flag to indicate if animations should be ignored */
17
- private ignoreAnimationsFlag;
18
- constructor();
19
- /**
20
- * Main function run once per frame to advance all animations
21
- * @returns True if any animation is still running.
22
- */
23
- advance(): boolean;
24
- /**
25
- * Sets a flag if animations should be ignored.
26
- * If set to true all animations always return their end value.
27
- * @param shouldIgnore - Whether animations should be ignored.
28
- */
29
- ignoreAnimations(shouldIgnore: boolean): void;
30
- /**
31
- * Sets the duration for all animations
32
- * @param options - An object containing animation durations for fade and size.
33
- */
34
- setOptions(options: {
35
- fadeDuration: number;
36
- sizeDuration: number;
37
- }): void;
38
- /**
39
- * Returns whether any animation is running
40
- * @returns */
41
- needsToRun(): boolean;
42
- /**
43
- * Returns the current value of an animation
44
- * @param elementId - The id of the element the animation is running on.
45
- * @param name - The name of the animation.
46
- * @returns The current value of the animation.
47
- */
48
- getValueForAnimationName(elementId: string, name: string, target: number, type?: number): number;
49
- private createAnimation;
50
- getById(id: string): Record<string, Animation> | undefined;
51
- /**
52
- * Creates a new size animation for the given element and name.
53
- * If an animation already exists for the given element and name, it will be returned.
54
- * If not, a new animation will be created.
55
- * @param currentValue - The current value of the animation.
56
- * @param elementId - The id of the element to animate.
57
- * @param name - The name of the animation.
58
- * @returns The animation.
59
- */
60
- private createFadeAnimation;
61
- /**
62
- * Creates a new fade animation for the given element and name.
63
- * If an animation already exists for the given element and name, it will be returned.
64
- * If not, a new animation will be created.
65
- * @param currentValue - The current value of the animation.
66
- * @param elementId - The id of the element to animate.
67
- * @param name - The name of the animation.
68
- * @returns The animation.
69
- */
70
- private createSizeAnimation;
71
- }
8
+ /** A map of all animations */
9
+ private readonly animations;
10
+ /** A map of all durations */
11
+ private readonly durations;
12
+ /** The default duration */
13
+ private readonly defaultDuration;
14
+ /** Flag to indicate if a rerun is needed */
15
+ private hasNextAnimation;
16
+ /** Flag to indicate if animations should be ignored */
17
+ private ignoreAnimationsFlag;
18
+ constructor();
19
+ /**
20
+ * Main function run once per frame to advance all animations
21
+ * @returns True if any animation is still running.
22
+ */
23
+ advance(): boolean;
24
+ /**
25
+ * Sets a flag if animations should be ignored.
26
+ * If set to true all animations always return their end value.
27
+ * @param shouldIgnore - Whether animations should be ignored.
28
+ */
29
+ ignoreAnimations(shouldIgnore: boolean): void;
30
+ /**
31
+ * Sets the duration for all animations
32
+ * @param options - An object containing animation durations for fade and size.
33
+ */
34
+ setOptions(options: {
35
+ fadeDuration: number;
36
+ sizeDuration: number;
37
+ }): void;
38
+ /**
39
+ * Returns whether any animation is running
40
+ * @returns */
41
+ needsToRun(): boolean;
42
+ /**
43
+ * Returns the current value of an animation
44
+ * @param elementId - The id of the element the animation is running on.
45
+ * @param name - The name of the animation.
46
+ * @returns The current value of the animation.
47
+ */
48
+ getValueForAnimationName(elementId: string, name: string, target: number, type?: number): number;
49
+ private createAnimation;
50
+ getById(id: string): Record<string, Animation> | undefined;
51
+ /**
52
+ * Creates a new size animation for the given element and name.
53
+ * If an animation already exists for the given element and name, it will be returned.
54
+ * If not, a new animation will be created.
55
+ * @param currentValue - The current value of the animation.
56
+ * @param elementId - The id of the element to animate.
57
+ * @param name - The name of the animation.
58
+ * @returns The animation.
59
+ */
60
+ private createFadeAnimation;
61
+ /**
62
+ * Creates a new fade animation for the given element and name.
63
+ * If an animation already exists for the given element and name, it will be returned.
64
+ * If not, a new animation will be created.
65
+ * @param currentValue - The current value of the animation.
66
+ * @param elementId - The id of the element to animate.
67
+ * @param name - The name of the animation.
68
+ * @returns The animation.
69
+ */
70
+ private createSizeAnimation;
71
+ }