@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.
- package/CHANGELOG.md +54 -1
- package/README.md +8 -0
- package/dist/base.mjs +35891 -2
- package/dist/types/index.d.ts +382 -386
- package/dist/types/layouts/animatedlayout/AnimatedLayout.d.ts +23 -23
- package/dist/types/layouts/animatedlayout/animationUtils.d.ts +3 -3
- package/dist/types/layouts/circularLayout/CircularLayout.d.ts +14 -14
- package/dist/types/layouts/d3forcelayout/circularLayout.d.ts +4 -4
- package/dist/types/layouts/d3forcelayout/constants.d.ts +3 -4
- package/dist/types/layouts/d3forcelayout/d3ForceLayout.d.ts +31 -31
- package/dist/types/layouts/d3forcelayout/types.d.ts +7 -7
- package/dist/types/layouts/forcedirectedlayout/PhysLayout.d.ts +275 -0
- package/dist/types/layouts/forcedirectedlayout/clustering/ClusterByMerger.d.ts +62 -0
- package/dist/types/layouts/forcedirectedlayout/clustering/SolarMerger.d.ts +56 -0
- package/dist/types/layouts/forcedirectedlayout/clustering/clustering-utils.d.ts +143 -0
- package/dist/types/layouts/forcedirectedlayout/clustering/types.d.ts +59 -0
- package/dist/types/layouts/forcedirectedlayout/glwrapper.d.ts +4 -0
- package/dist/types/layouts/forcedirectedlayout/shaders/multilevel-fragment.d.ts +2 -0
- package/dist/types/layouts/forcedirectedlayout/shaders/multilevel-repulsive-fragment.d.ts +2 -0
- package/dist/types/layouts/forcedirectedlayout/shaders/multilevel-update-fragment.d.ts +2 -0
- package/dist/types/layouts/forcedirectedlayout/shaders/sim-vertex.d.ts +2 -0
- package/dist/types/layouts/freeLayout/FreeLayout.d.ts +23 -25
- package/dist/types/layouts/gridLayout/GridLayout.d.ts +26 -30
- package/dist/types/layouts/hierarchicallayout/HierarchicalLayout.d.ts +28 -23
- package/dist/types/layouts/hierarchicallayout/constants.d.ts +2 -2
- package/dist/types/modules/CallbackHelper.d.ts +23 -23
- package/dist/types/modules/ExternalCallbackHandler.d.ts +33 -39
- package/dist/types/modules/NvlController.d.ts +212 -129
- package/dist/types/modules/Shader.d.ts +17 -17
- package/dist/types/modules/ZoomTransitionHandler.d.ts +24 -24
- package/dist/types/modules/dataset.d.ts +26 -24
- package/dist/types/modules/logging.d.ts +4 -4
- package/dist/types/modules/state/constants.d.ts +2 -2
- package/dist/types/modules/state/state.d.ts +2 -2
- package/dist/types/modules/state/types.d.ts +338 -228
- package/dist/types/modules/state/utils.d.ts +36 -36
- package/dist/types/renderers/ClusterOverlay.d.ts +73 -0
- package/dist/types/renderers/domrenderer/BaseRenderer.d.ts +69 -69
- package/dist/types/renderers/domrenderer/canvasrenderer/Animation.d.ts +57 -57
- package/dist/types/renderers/domrenderer/canvasrenderer/AnimationHandler.d.ts +65 -65
- package/dist/types/renderers/domrenderer/canvasrenderer/CanvasRenderer.d.ts +84 -85
- package/dist/types/renderers/domrenderer/canvasrenderer/arrowDrawing.d.ts +31 -31
- package/dist/types/renderers/domrenderer/canvasrenderer/nodeDrawing.d.ts +32 -32
- package/dist/types/renderers/domrenderer/shared/ImageCache.d.ts +16 -15
- package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundle.d.ts +89 -89
- package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundler.d.ts +42 -42
- package/dist/types/renderers/domrenderer/shared/arrows/arrows.d.ts +49 -49
- package/dist/types/renderers/domrenderer/shared/arrows/constants.d.ts +4 -4
- package/dist/types/renderers/domrenderer/shared/nodes/nodes.d.ts +21 -21
- package/dist/types/renderers/domrenderer/shared/types.d.ts +29 -30
- package/dist/types/renderers/domrenderer/shared/util.d.ts +4 -4
- package/dist/types/renderers/domrenderer/shared/vectorUtils.d.ts +10 -10
- package/dist/types/renderers/domrenderer/shared/wordwrap.d.ts +10 -10
- package/dist/types/renderers/domrenderer/svgrenderer/SvgRenderer.d.ts +18 -19
- package/dist/types/renderers/domrenderer/svgrenderer/arrowDrawing.d.ts +15 -15
- package/dist/types/renderers/domrenderer/svgrenderer/nodeDrawing.d.ts +4 -4
- package/dist/types/renderers/domrenderer/svgrenderer/svgUtils.d.ts +21 -21
- package/dist/types/renderers/webglrenderer/Controller.d.ts +83 -61
- package/dist/types/renderers/webglrenderer/IconLayerRegistry.d.ts +14 -0
- package/dist/types/renderers/webglrenderer/Renderer.d.ts +91 -51
- package/dist/types/renderers/webglrenderer/node-animation-fragment.d.ts +2 -2
- package/dist/types/renderers/webglrenderer/node-animation-vertex.d.ts +2 -2
- package/dist/types/renderers/webglrenderer/node-fragment-point.d.ts +2 -2
- package/dist/types/renderers/webglrenderer/node-vertex-point.d.ts +2 -2
- package/dist/types/renderers/webglrenderer/rel-fragment-line.d.ts +2 -2
- package/dist/types/renderers/webglrenderer/rel-glsl-utils.d.ts +1 -0
- package/dist/types/renderers/webglrenderer/rel-vertex-arrow.d.ts +2 -0
- package/dist/types/renderers/webglrenderer/rel-vertex-line.d.ts +2 -2
- package/dist/types/renderers/webglrenderer/viewport-box-fragment.d.ts +2 -2
- package/dist/types/renderers/webglrenderer/viewport-box-vertex.d.ts +2 -2
- package/dist/types/types/graph-element.d.ts +109 -101
- package/dist/types/types/nvl-window-functions.d.ts +12 -13
- package/dist/types/types/utils.d.ts +1 -1
- package/dist/types/utils/ariaUtils.d.ts +2 -2
- package/dist/types/utils/canvasManagement.d.ts +8 -2
- package/dist/types/utils/circularUtils.d.ts +2 -2
- package/dist/types/utils/clusterGeometry.d.ts +14 -0
- package/dist/types/utils/clusterHitRegions.d.ts +42 -0
- package/dist/types/utils/colorUtils.d.ts +2 -2
- package/dist/types/utils/constants.d.ts +12 -6
- package/dist/types/utils/errors.d.ts +6 -6
- package/dist/types/utils/geometry.d.ts +91 -48
- package/dist/types/utils/graphObjectUtils.d.ts +9 -9
- package/dist/types/utils/hitTest.d.ts +84 -0
- package/dist/types/utils/jsDriverResultTransformer.d.ts +27 -25
- package/dist/types/utils/layoutSeeding.d.ts +7 -0
- package/dist/types/utils/mouseUtils.d.ts +5 -5
- package/dist/types/utils/segmentAnalytics.d.ts +42 -42
- package/dist/types/utils/webWorkerUtils.d.ts +2 -2
- package/dist/types/utils/zoomFunctions.d.ts +24 -16
- package/package.json +15 -15
- package/skills/neo4j-nvl-skill/README.md +39 -0
- package/skills/neo4j-nvl-skill/SKILL.md +296 -0
- package/skills/neo4j-nvl-skill/references/api/base/classes/NVL.md +977 -0
- package/skills/neo4j-nvl-skill/references/api/base/functions/getZoomTargetForNodePositions.md +37 -0
- package/skills/neo4j-nvl-skill/references/api/base/index.md +71 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/CircularOptions.md +11 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/ClusteringOptions.md +14 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/ExternalCallbacks.md +18 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/ForceDirectedOptions.md +12 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/HierarchicalOptions.md +13 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/HitTargetCluster.md +13 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/HitTargetNode.md +16 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/HitTargetRelationship.md +15 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/Node.md +32 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/NvlMouseEvent.md +16 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/NvlOptions.md +38 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/Point.md +12 -0
- package/skills/neo4j-nvl-skill/references/api/base/interfaces/Relationship.md +32 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/CanvasRendererType.md +14 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/Cluster.md +20 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/ClusterByFn.md +20 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/ClusterId.md +10 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/HitTargets.md +22 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/HitTestTarget.md +7 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/Layout.md +15 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/LayoutOptions.md +12 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/NodeWithClientPosition.md +18 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/PartialNode.md +17 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/PartialRelationship.md +17 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/Renderer.md +9 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/StyledCaption.md +21 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/WebGLRendererType.md +14 -0
- package/skills/neo4j-nvl-skill/references/api/base/type-aliases/ZoomOptions.md +25 -0
- package/skills/neo4j-nvl-skill/references/api/base/variables/CircularLayoutType.md +11 -0
- package/skills/neo4j-nvl-skill/references/api/base/variables/ForceDirectedLayoutType.md +9 -0
- package/skills/neo4j-nvl-skill/references/api/base/variables/FreeLayoutType.md +9 -0
- package/skills/neo4j-nvl-skill/references/api/base/variables/GridLayoutType.md +9 -0
- package/skills/neo4j-nvl-skill/references/api/base/variables/HierarchicalLayoutType.md +9 -0
- package/skills/neo4j-nvl-skill/references/api/base/variables/d3ForceLayoutType.md +9 -0
- package/skills/neo4j-nvl-skill/references/api/base/variables/nvlResultTransformer.md +38 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/BoxSelectInteraction.md +163 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/ClickInteraction.md +163 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/DragNodeInteraction.md +164 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/HoverInteraction.md +160 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/KeyboardInteraction.md +185 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/LassoInteraction.md +163 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/PanInteraction.md +196 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/classes/ZoomInteraction.md +164 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/index.md +37 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/BoxSelectInteractionCallbacks.md +19 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/BoxSelectInteractionOptions.md +17 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ClickInteractionCallbacks.md +39 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ClickInteractionOptions.md +17 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/DragNodeInteractionCallbacks.md +21 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/DrawInteractionOptions.md +22 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/HoverInteractionCallbacks.md +17 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/HoverInteractionOptions.md +17 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/KeyboardInteractionCallbacks.md +35 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/KeyboardInteractionOptions.md +55 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/LassoInteractionCallbacks.md +19 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/LassoInteractionOptions.md +17 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/PanInteractionCallbacks.md +17 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/PanInteractionOptions.md +19 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ZoomInteractionCallbacks.md +17 -0
- package/skills/neo4j-nvl-skill/references/api/interaction-handlers/type-aliases/ZoomInteractionOptions.md +17 -0
- package/skills/neo4j-nvl-skill/references/api/react/functions/StaticPictureWrapper.md +35 -0
- package/skills/neo4j-nvl-skill/references/api/react/index.md +34 -0
- package/skills/neo4j-nvl-skill/references/api/react/interfaces/BasicReactWrapperProps.md +24 -0
- package/skills/neo4j-nvl-skill/references/api/react/interfaces/InteractiveNvlWrapperProps.md +27 -0
- package/skills/neo4j-nvl-skill/references/api/react/type-aliases/InteractionOptions.md +10 -0
- package/skills/neo4j-nvl-skill/references/api/react/type-aliases/KeyboardEvent.md +7 -0
- package/skills/neo4j-nvl-skill/references/api/react/type-aliases/KeyboardEventCallbacks.md +10 -0
- package/skills/neo4j-nvl-skill/references/api/react/type-aliases/MouseEvent.md +10 -0
- package/skills/neo4j-nvl-skill/references/api/react/type-aliases/MouseEventCallbacks.md +10 -0
- package/skills/neo4j-nvl-skill/references/api/react/type-aliases/StaticPictureWrapperProps.md +27 -0
- package/skills/neo4j-nvl-skill/references/api/react/variables/BasicNvlWrapper.md +50 -0
- package/skills/neo4j-nvl-skill/references/api/react/variables/InteractiveNvlWrapper.md +17 -0
- package/skills/neo4j-nvl-skill/references/clustering.md +87 -0
- package/skills/neo4j-nvl-skill/references/data-from-neo4j.md +67 -0
- package/skills/neo4j-nvl-skill/references/labels-and-overlays.md +76 -0
- package/skills/neo4j-nvl-skill/references/layouts-and-positions.md +65 -0
- package/skills/neo4j-nvl-skill/references/lifecycle-and-updates.md +65 -0
- package/skills/neo4j-nvl-skill/references/migrating-1x-to-2.md +50 -0
- package/skills/neo4j-nvl-skill/references/react-wrappers.md +88 -0
- package/skills/neo4j-nvl-skill/references/verifying-nvl-apps.md +52 -0
- package/skills/neo4j-nvl-skill/references/vite-and-bundlers.md +62 -0
- package/dist/base.mjs.LICENSE.txt +0 -21
- package/dist/types/layouts/animatedlayout/AnimatedLayout.test.d.ts +0 -1
- package/dist/types/layouts/animatedlayout/animationUtils.test.d.ts +0 -1
- package/dist/types/layouts/d3forcelayout/__mocks__/d3ForceLayout.d.ts +0 -10
- package/dist/types/layouts/d3forcelayout/circularLayout.test.d.ts +0 -1
- package/dist/types/layouts/d3forcelayout/d3ForceLayout.test.d.ts +0 -1
- package/dist/types/layouts/forcedirectedlayout/ForceCytoLayout.d.ts +0 -22
- package/dist/types/layouts/forcedirectedlayout/cosebilkentlayout/CoseBilkentLayout.d.ts +0 -33
- package/dist/types/layouts/forcedirectedlayout/physlayout/PhysLayout.d.ts +0 -174
- package/dist/types/layouts/forcedirectedlayout/physlayout/PhysLayout.test.d.ts +0 -1
- package/dist/types/layouts/forcedirectedlayout/physlayout/glwrapper.d.ts +0 -4
- package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/multilevel-fragment.d.ts +0 -2
- package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/multilevel-repulsive-fragment.d.ts +0 -2
- package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/multilevel-update-fragment.d.ts +0 -2
- package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/sim-vertex.d.ts +0 -2
- package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/workaround-fragment.d.ts +0 -2
- package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/SolarMerger.bench.d.ts +0 -1
- package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/SolarMerger.d.ts +0 -21
- package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/SolarMerger.test.d.ts +0 -1
- package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/solar-placer.d.ts +0 -2
- package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/solar-placer.test.d.ts +0 -1
- package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/types.d.ts +0 -49
- package/dist/types/modules/NvlController.test.d.ts +0 -1
- package/dist/types/modules/ZoomTransitionHandler.test.d.ts +0 -1
- package/dist/types/modules/dataset.test.d.ts +0 -1
- package/dist/types/modules/state/state.test.d.ts +0 -1
- package/dist/types/modules/state/utils.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/BaseRenderer.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/canvasrenderer/Animation.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/canvasrenderer/CanvasRenderer.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/canvasrenderer/arrowDrawing.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/canvasrenderer/nodeDrawing.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/shared/ImageCache.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundle.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/shared/arrows/ArrowBundler.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/shared/arrows/arrows.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/shared/nodes/nodes.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/shared/util.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/shared/wordwrap.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/svgrenderer/SvgRenderer.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/svgrenderer/arrowDrawing.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/svgrenderer/nodeDrawing.test.d.ts +0 -1
- package/dist/types/renderers/domrenderer/svgrenderer/svgUtils.test.d.ts +0 -1
- package/dist/types/renderers/webglrenderer/Controller.test.d.ts +0 -1
- package/dist/types/renderers/webglrenderer/Renderer.test.d.ts +0 -1
- package/dist/types/utils/ariaUtils.test.d.ts +0 -1
- package/dist/types/utils/canvasManagement.test.d.ts +0 -1
- package/dist/types/utils/circularUtils.test.d.ts +0 -1
- package/dist/types/utils/colorUtils.test.d.ts +0 -1
- package/dist/types/utils/errors.test.d.ts +0 -1
- package/dist/types/utils/geometry.test.d.ts +0 -1
- package/dist/types/utils/graphObjectUtils.test.d.ts +0 -1
- package/dist/types/utils/hittest.d.ts +0 -58
- package/dist/types/utils/hittest.test.d.ts +0 -1
- package/dist/types/utils/jsDriverResultTransformer.test.d.ts +0 -1
- package/dist/types/utils/mouseUtils.test.d.ts +0 -1
- package/dist/types/utils/webWorkerUtils.test.d.ts +0 -1
- package/dist/types/utils/zoomFunctions.test.d.ts +0 -1
|
@@ -1,86 +1,85 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
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
|
-
|
|
19
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
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
|
-
|
|
17
|
-
|
|
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
|
-
|
|
50
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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
|
|
1
|
+
import { Cache } from "./types.js";
|
|
2
2
|
declare class ImageCache {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
|
18
|
+
export { ImageCache as default };
|
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|
+
}
|