@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,43 +1,43 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import ArrowBundle from
|
|
1
|
+
import { WaypointPath } from "../types.js";
|
|
2
|
+
import { Node, Relationship } from "../../../../types/graph-element.js";
|
|
3
|
+
import ArrowBundle from "./ArrowBundle.js";
|
|
4
4
|
export default class ArrowBundler {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
}
|
|
5
|
+
bundles: Record<string, ArrowBundle>;
|
|
6
|
+
nodeToBundles: Record<string, ArrowBundle[]>;
|
|
7
|
+
relToBundleKey: Map<string, string>;
|
|
8
|
+
constructor(rels: Relationship[], waypoints: Record<string, WaypointPath>);
|
|
9
|
+
/**
|
|
10
|
+
* Get the arrow bundle for a given relation
|
|
11
|
+
* @param rel - The relationship.
|
|
12
|
+
* @returns The arrow bundle.
|
|
13
|
+
*/
|
|
14
|
+
getBundle(rel: Relationship): ArrowBundle;
|
|
15
|
+
/**
|
|
16
|
+
* Update the data
|
|
17
|
+
* @param addedRels - The added relations.
|
|
18
|
+
* @param removedRels - The removed relations.
|
|
19
|
+
* @param waypoints - The waypoints.
|
|
20
|
+
*/
|
|
21
|
+
updateData(addedRels: Record<string, Relationship>, removedRels: Record<string, Relationship>, updatedRels: Record<string, Relationship>, waypoints: Record<string, WaypointPath>): void;
|
|
22
|
+
/**
|
|
23
|
+
* Updates the positions of the arrow bundles based on the provided `positionMap`.
|
|
24
|
+
* @param positionMap A map of node IDs to positions.
|
|
25
|
+
*/
|
|
26
|
+
updatePositions(positionMap: Record<string, Node>): void;
|
|
27
|
+
/**
|
|
28
|
+
* Remove a bundle reference from the node→bundles index for one node id.
|
|
29
|
+
*/
|
|
30
|
+
private removeNodeFromMap;
|
|
31
|
+
/**
|
|
32
|
+
* Remove a relationship from a bundle.
|
|
33
|
+
* If the bundle is now empty, remove it from `bundles` and the node index.
|
|
34
|
+
*/
|
|
35
|
+
private removeRelFromBundle;
|
|
36
|
+
/**
|
|
37
|
+
* Get a unique ID for a pair of IDs
|
|
38
|
+
* @param id1 - The first ID.
|
|
39
|
+
* @param id2 - The second ID.
|
|
40
|
+
* @returns A unique ID for the pair of IDs.
|
|
41
|
+
*/
|
|
42
|
+
private generatePairId;
|
|
43
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
1
|
+
import { Point } from "../../../../utils/geometry.js";
|
|
2
|
+
import { Node, Relationship } from "../../../../types/graph-element.js";
|
|
3
|
+
import { BorderStyle } from "../../../../modules/state/types.js";
|
|
4
|
+
import ArrowBundle from "./ArrowBundle.js";
|
|
5
5
|
/**
|
|
6
6
|
* This function calculates the difference in radius between two nodes.
|
|
7
7
|
* @param toArrowGap - The gap between the node and the arrow on the to side.
|
|
@@ -19,37 +19,37 @@ export declare const getRadiusDifference: (toArrowGap: number, fromArrowGap: num
|
|
|
19
19
|
* @returns Object containing angles and coordinate points for the self-loop
|
|
20
20
|
*/
|
|
21
21
|
export declare const getSelfArrowControlPoints: (rel: Relationship, node: Node, bundle: ArrowBundle) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
22
|
+
angle: number;
|
|
23
|
+
startAngle: number;
|
|
24
|
+
endAngle: number;
|
|
25
|
+
startPoint: {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
};
|
|
29
|
+
endPoint: {
|
|
30
|
+
x: number;
|
|
31
|
+
y: number;
|
|
32
|
+
};
|
|
33
|
+
apexPoint: {
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
};
|
|
37
|
+
control1Point: {
|
|
38
|
+
x: number;
|
|
39
|
+
y: number;
|
|
40
|
+
};
|
|
41
|
+
control2Point: {
|
|
42
|
+
x: number;
|
|
43
|
+
y: number;
|
|
44
|
+
};
|
|
45
|
+
nodeGap: number;
|
|
46
46
|
};
|
|
47
47
|
/** Calculates anchor position and readable rotation for a self-referencing relationship label. */
|
|
48
48
|
export declare const getSelfArrowLabelPosition: (apexPoint: Point, angle: number, endPoint: Point, control2Point: Point, isSelected: boolean, selectionRings: BorderStyle["rings"], relWidth?: number, captionSize?: number) => {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
x: number;
|
|
50
|
+
y: number;
|
|
51
|
+
angle: number;
|
|
52
|
+
flip: boolean;
|
|
53
53
|
};
|
|
54
54
|
/**
|
|
55
55
|
* Calculates the padding for selected relationships based on border style
|
|
@@ -71,9 +71,9 @@ export declare const getSelectionPadding: (selectedBorderRings?: BorderStyle["ri
|
|
|
71
71
|
* @returns Object containing x, y position and angle for the label
|
|
72
72
|
*/
|
|
73
73
|
export declare const getRelationshipLabelPosition: (points: Point[], fromNode: Node, toNode: Node, drawCurves: boolean, isSelected: boolean, selectedBorderRings: BorderStyle["rings"], captionAlign?: "top" | "bottom") => {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
x: number;
|
|
75
|
+
y: number;
|
|
76
|
+
angle: number;
|
|
77
77
|
};
|
|
78
78
|
/**
|
|
79
79
|
* This function calculates the coordinates of the via point
|
|
@@ -120,7 +120,7 @@ export declare const getRelationshipWidth: (rel: Relationship, defaultWidth: num
|
|
|
120
120
|
* @returns Object with adjusted points and the tail offset applied (for label positioning)
|
|
121
121
|
*/
|
|
122
122
|
export declare const adjustPointsForGaps: (points: Point[], isSelected: boolean, headHeight: number, headSelectedAdjustment: number, selectedBorderRings: BorderStyle["rings"]) => {
|
|
123
|
-
|
|
123
|
+
tailOffset: Point | null;
|
|
124
124
|
};
|
|
125
125
|
/**
|
|
126
126
|
* Calculates arrowhead scaling and dimensions for rendering.
|
|
@@ -131,12 +131,12 @@ export declare const adjustPointsForGaps: (points: Point[], isSelected: boolean,
|
|
|
131
131
|
* @returns Object containing all calculated arrowhead dimensions and adjustments
|
|
132
132
|
*/
|
|
133
133
|
export declare const calculateArrowheadScaling: (width: number, isSelected: boolean, selectedBorderRings: BorderStyle["rings"]) => {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
134
|
+
headFactor: number;
|
|
135
|
+
headHeight: number;
|
|
136
|
+
headChinHeight: number;
|
|
137
|
+
headWidth: number;
|
|
138
|
+
headSelectedAdjustment: number;
|
|
139
|
+
headPositionOffset: number;
|
|
140
140
|
};
|
|
141
141
|
/**
|
|
142
142
|
* Calculates the dimensions of an arrowhead
|
|
@@ -147,10 +147,10 @@ export declare const calculateArrowheadScaling: (width: number, isSelected: bool
|
|
|
147
147
|
* @returns Object containing headHeight, headChinHeight, headWidth, and headSelectedAdjustment
|
|
148
148
|
*/
|
|
149
149
|
export declare const getArrowheadDimensions: (relWidth: number, defaultRelWidth: number, isSelected: boolean, selectedBorderRings: BorderStyle["rings"]) => {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
150
|
+
headHeight: number;
|
|
151
|
+
headChinHeight: number;
|
|
152
|
+
headWidth: number;
|
|
153
|
+
headSelectedAdjustment: number;
|
|
154
154
|
};
|
|
155
155
|
/**
|
|
156
156
|
* Calculates the size of an overlay icon on a relationship
|
|
@@ -166,8 +166,8 @@ export declare const getOverlayIconSize: (iconSizeFactor: number) => number;
|
|
|
166
166
|
* @returns Object with widthAlign and heightAlign offsets
|
|
167
167
|
*/
|
|
168
168
|
export declare const getOverlayIconAlignment: (position: [number, number], width: number, height: number) => {
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
widthAlign: number;
|
|
170
|
+
heightAlign: number;
|
|
171
171
|
};
|
|
172
172
|
/** Vertical offset for a self-loop caption; `top`/`bottom` mean outside/inside the loop. */
|
|
173
|
-
export declare const getSelfLoopHeightAlign: (captionAlign: string, fontSize: number, lineWidth: number, padding: number, flip: 1 | -1) => number;
|
|
173
|
+
export declare const getSelfLoopHeightAlign: (captionAlign: string, fontSize: number, lineWidth: number, padding: number, flip: 1 | -1) => number;
|
|
@@ -30,7 +30,7 @@ export declare const SelfRefLabelMaxWidth = 40;
|
|
|
30
30
|
export declare const SelectedWidthFactor = 1.5;
|
|
31
31
|
/** The font styles for relationship captions. */
|
|
32
32
|
export declare const Font: {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
};
|
|
33
|
+
size: number;
|
|
34
|
+
color: string;
|
|
35
|
+
face: string;
|
|
36
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
1
|
+
import { TextSegment } from "../types.js";
|
|
2
|
+
import { Node } from "../../../../types/graph-element.js";
|
|
3
|
+
import { BorderStyles } from "../../../../modules/state/types.js";
|
|
4
|
+
import AnimationHandler from "../../canvasrenderer/AnimationHandler.js";
|
|
5
5
|
/**
|
|
6
6
|
* Returns the effective node size, which is either the provided size
|
|
7
7
|
* if it's a positive and finite number, or the default node size otherwise.
|
|
@@ -35,8 +35,8 @@ export declare const getNodeIconSize: (mainFaceRadius: number, hasCaption: boole
|
|
|
35
35
|
* @returns Object with iconXPos and iconYPos
|
|
36
36
|
*/
|
|
37
37
|
export declare const getNodeIconPosition: (iconSize: number, hasCaption: boolean, captionAlign: string, iconInfoLevel: number, nodeInfoLevel: number) => {
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
iconXPos: number;
|
|
39
|
+
iconYPos: number;
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* Calculates the size of a node overlay icon
|
|
@@ -53,8 +53,8 @@ export declare const getNodeOverlayIconSize: (mainFaceDiameter: number, overlayI
|
|
|
53
53
|
* @returns Object with iconXPos and iconYPos
|
|
54
54
|
*/
|
|
55
55
|
export declare const getNodeOverlayIconPosition: (iconSize: number, mainFaceRadius: number, position: [number, number]) => {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
iconXPos: number;
|
|
57
|
+
iconYPos: number;
|
|
58
58
|
};
|
|
59
59
|
/**
|
|
60
60
|
* Returns the caption font size that should be used
|
|
@@ -74,7 +74,7 @@ export declare const infoLevelToFontSize: (infoLevel: number, nodeRadius?: numbe
|
|
|
74
74
|
* @returns The radius in pixels
|
|
75
75
|
*/
|
|
76
76
|
export declare const getNodeRadius: (node: {
|
|
77
|
-
|
|
77
|
+
size?: number;
|
|
78
78
|
}) => number;
|
|
79
79
|
/**
|
|
80
80
|
* Prepares node caption data for rendering (works for both Canvas and SVG)
|
|
@@ -84,15 +84,15 @@ export declare const getNodeRadius: (node: {
|
|
|
84
84
|
* @returns Caption rendering data including lines, styles, positioning, and font info
|
|
85
85
|
*/
|
|
86
86
|
export declare const prepareNodeCaptionData: (node: Node, zoomLevel: number, ctx?: CanvasRenderingContext2D) => {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
87
|
+
lines: TextSegment[];
|
|
88
|
+
stylesPerChar: string[][];
|
|
89
|
+
fullCaption: string;
|
|
90
|
+
fontSize: number;
|
|
91
|
+
fontFace: string;
|
|
92
|
+
fontColor: string;
|
|
93
|
+
yPos: number;
|
|
94
|
+
maxNoLines: number;
|
|
95
|
+
hasContent: boolean;
|
|
96
96
|
};
|
|
97
97
|
/**
|
|
98
98
|
* Returns an array of styles for the rings of a node.
|
|
@@ -105,6 +105,6 @@ export declare const prepareNodeCaptionData: (node: Node, zoomLevel: number, ctx
|
|
|
105
105
|
* @returns An array of ring styles with computed widths.
|
|
106
106
|
*/
|
|
107
107
|
export declare const getRingStyles: (node: Node, nodeBorderStyles: BorderStyles, animationHandler?: AnimationHandler) => {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}[];
|
|
108
|
+
width: number;
|
|
109
|
+
color: string;
|
|
110
|
+
}[];
|
|
@@ -1,49 +1,48 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { Point } from "../../../utils/geometry.js";
|
|
2
|
+
import { Node, Relationship } from "../../../types/graph-element.js";
|
|
3
3
|
export type TextSegment = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
hasEllipsisChar?: boolean;
|
|
5
|
+
hasHyphenChar?: boolean;
|
|
6
|
+
text: string;
|
|
7
|
+
overflowed?: boolean;
|
|
8
8
|
};
|
|
9
9
|
/**
|
|
10
10
|
* The caption text and its text style.
|
|
11
11
|
*/
|
|
12
12
|
export type StyledCaption = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
key?: string;
|
|
13
|
+
/**
|
|
14
|
+
* The font styles as an array of style keywords, e.g. `['bold', 'italic']`.
|
|
15
|
+
*/
|
|
16
|
+
styles?: string[];
|
|
17
|
+
/** The text value for the caption. */
|
|
18
|
+
value?: string;
|
|
19
|
+
/** The identifier key for the caption. */
|
|
20
|
+
key?: string;
|
|
22
21
|
};
|
|
23
22
|
export type StyledCaptionWithChars = StyledCaption & {
|
|
24
|
-
|
|
23
|
+
chars?: string[][];
|
|
25
24
|
};
|
|
26
25
|
export type CacheItem = {
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
image?: CacheInfo;
|
|
27
|
+
inverted?: CacheInfo;
|
|
29
28
|
};
|
|
30
29
|
export type CacheInfo = {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
canvas: HTMLCanvasElement;
|
|
31
|
+
image: HTMLImageElement;
|
|
32
|
+
drawn: boolean;
|
|
34
33
|
};
|
|
35
34
|
export type Cache = Record<string, CacheItem>;
|
|
36
35
|
export interface RelationshipToRender extends Relationship {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
fromNode: Node;
|
|
37
|
+
toNode: Node;
|
|
38
|
+
showLabel: boolean;
|
|
40
39
|
}
|
|
41
40
|
export interface WaypointPath {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
points: Point[];
|
|
42
|
+
from: Point;
|
|
43
|
+
to: Point;
|
|
45
44
|
}
|
|
46
45
|
export interface ArrowBundleGap {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
46
|
+
size: number;
|
|
47
|
+
start: number;
|
|
48
|
+
}
|
|
@@ -5,12 +5,12 @@ export declare const fontThresholds: [number, number][];
|
|
|
5
5
|
*/
|
|
6
6
|
export declare const overrideOpacity: (color: string, opacity: number) => string;
|
|
7
7
|
export declare const getIndividualInfoLevels: (r: number, zoomLevel: number) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
nodeInfoLevel: number;
|
|
9
|
+
fontInfoLevel: number;
|
|
10
|
+
iconInfoLevel: number;
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
13
|
* On-screen size for a node icon drawn at `iconDrawSize` in graph space
|
|
14
14
|
* under a uniform `scale(zoom)` viewport transform.
|
|
15
15
|
*/
|
|
16
|
-
export declare const getNodeIconScreenPx: (iconDrawSize: number, zoom: number) => number;
|
|
16
|
+
export declare const getNodeIconScreenPx: (iconDrawSize: number, zoom: number) => number;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Point } from "../../../utils/geometry.js";
|
|
2
2
|
export declare const add: (v1: Point, v2: Point) => {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
5
|
};
|
|
6
6
|
export declare const sub: (v1: Point, v2: Point) => {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
9
|
};
|
|
10
10
|
export declare const scale: (v: Point, s: number) => {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
13
|
};
|
|
14
14
|
export declare const dot: (v1: Point, v2: Point) => number;
|
|
15
15
|
export declare const getModule: (v1: Point) => number;
|
|
16
16
|
export declare const distance: (v1: Point, v2: Point) => number;
|
|
17
17
|
export declare const angle: (v1: Point, v2: Point) => number;
|
|
18
18
|
export declare const coordFromPolar: (polarAngle: number, polarModule: number) => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
};
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare const hyphenChar = "
|
|
3
|
-
export declare const ellipsisChar = "
|
|
1
|
+
import { StyledCaption, TextSegment } from "./types.js";
|
|
2
|
+
export declare const hyphenChar = "‐";
|
|
3
|
+
export declare const ellipsisChar = "…";
|
|
4
4
|
/**
|
|
5
5
|
* Calculates the maximum width for a relationship caption based on the distance
|
|
6
6
|
* between the two center waypoints. Uses Euclidean distance.
|
|
@@ -8,8 +8,8 @@ export declare const ellipsisChar = "\u2026";
|
|
|
8
8
|
* @returns The maximum width for the caption
|
|
9
9
|
*/
|
|
10
10
|
export declare const getRelationshipCaptionMaxWidth: (points: {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
13
|
}[]) => number;
|
|
14
14
|
/**
|
|
15
15
|
* This is the main function that tries to fit a text on one or more lines
|
|
@@ -49,8 +49,8 @@ export declare const getLines: (ctx: CanvasRenderingContext2D, text: string, fon
|
|
|
49
49
|
* @returns An array of objects, each containing a text span and its associated style string.
|
|
50
50
|
*/
|
|
51
51
|
export declare const getGroupedTextSpans: (lineText: string, stylesPerChar: string[][], startCharIndex: number) => {
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
text: string;
|
|
53
|
+
style: string;
|
|
54
54
|
}[];
|
|
55
55
|
/**
|
|
56
56
|
* Returns the styles by char for a group of property values.
|
|
@@ -58,6 +58,6 @@ export declare const getGroupedTextSpans: (lineText: string, stylesPerChar: stri
|
|
|
58
58
|
* @return array of list of styles by char
|
|
59
59
|
*/
|
|
60
60
|
export declare const getStylesByChar: (captions?: StyledCaption[]) => {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
};
|
|
61
|
+
stylesPerChar: string[][];
|
|
62
|
+
fullCaption: string;
|
|
63
|
+
};
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import BaseRenderer from '../BaseRenderer';
|
|
1
|
+
import { Node } from "../../../types/graph-element.js";
|
|
2
|
+
import { NvlState } from "../../../modules/state/types.js";
|
|
3
|
+
import BaseRenderer, { RendererOptions } from "../BaseRenderer.js";
|
|
5
4
|
export default class SvgRenderer extends BaseRenderer {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
5
|
+
private svg;
|
|
6
|
+
private measurementContext;
|
|
7
|
+
constructor(svg: SVGSVGElement, state: NvlState, options?: RendererOptions);
|
|
8
|
+
clear(): void;
|
|
9
|
+
render(positionArray: Node[], positionBoundaries?: {
|
|
10
|
+
centerX: number;
|
|
11
|
+
centerY: number;
|
|
12
|
+
nodesWidth: number;
|
|
13
|
+
nodesHeight: number;
|
|
14
|
+
}, options?: {
|
|
15
|
+
svg?: SVGSVGElement;
|
|
16
|
+
backgroundColor?: string;
|
|
17
|
+
showCaptions?: boolean;
|
|
18
|
+
}): void;
|
|
19
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
import { Point } from "../../../utils/geometry.js";
|
|
2
|
+
import { RelationshipToRender } from "../shared/types.js";
|
|
3
|
+
import { BorderStyles, DisabledItemStyles } from "../../../modules/state/types.js";
|
|
4
|
+
import ImageCache from "../shared/ImageCache.js";
|
|
5
|
+
import ArrowBundler from "../shared/arrows/ArrowBundler.js";
|
|
6
6
|
/**
|
|
7
7
|
* Builds an SVG path string for a self-referencing loop using quadratic curves
|
|
8
8
|
*/
|
|
@@ -19,26 +19,26 @@ export declare const pointsToPolylineString: (points: Point[]) => string;
|
|
|
19
19
|
* Creates an SVG arrowhead polygon element with selection rings
|
|
20
20
|
*/
|
|
21
21
|
export declare const createArrowHeadWithRings: (arrowHead: {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
tip: Point;
|
|
23
|
+
base1: Point;
|
|
24
|
+
base2: Point;
|
|
25
25
|
}, fillColor: string, rings: {
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
color: string;
|
|
27
|
+
width: number;
|
|
28
28
|
}[]) => SVGPolygonElement[];
|
|
29
29
|
/**
|
|
30
30
|
* Creates an SVG path element with selection rings
|
|
31
31
|
*/
|
|
32
32
|
export declare const createPathWithRings: (pathData: string, strokeColor: string, strokeWidth: number, rings: {
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
color: string;
|
|
34
|
+
width: number;
|
|
35
35
|
}[]) => SVGPathElement[];
|
|
36
36
|
/**
|
|
37
37
|
* Creates an SVG polyline element with selection rings
|
|
38
38
|
*/
|
|
39
39
|
export declare const createPolylineWithRings: (points: string, strokeColor: string, strokeWidth: number, rings: {
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
color: string;
|
|
41
|
+
width: number;
|
|
42
42
|
}[]) => SVGPolylineElement[];
|
|
43
43
|
/**
|
|
44
44
|
* Calculates the proper angle for relationship labels to prevent upside-down text (SVG-specific)
|
|
@@ -56,4 +56,4 @@ export declare const getCorrectLabelAngle: (angle: number) => number;
|
|
|
56
56
|
* @param relationshipBorderStyles - Border/ring styles for relationships
|
|
57
57
|
* @param measurementContext - Canvas 2D context for text measurement
|
|
58
58
|
*/
|
|
59
|
-
export declare const renderSvgRelationships: (relationshipsToRender: RelationshipToRender[], svg: SVGElement, drawCurves: boolean, arrowBundler: ArrowBundler, disabledItemStyles: DisabledItemStyles, defaultRelationshipColor: string, relationshipBorderStyles: BorderStyles, measurementContext: CanvasRenderingContext2D, imageCache: ImageCache) => void;
|
|
59
|
+
export declare const renderSvgRelationships: (relationshipsToRender: RelationshipToRender[], svg: SVGElement, drawCurves: boolean, arrowBundler: ArrowBundler, disabledItemStyles: DisabledItemStyles, defaultRelationshipColor: string, relationshipBorderStyles: BorderStyles, measurementContext: CanvasRenderingContext2D, imageCache: ImageCache) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { Node } from "../../../types/graph-element.js";
|
|
2
|
+
import { BorderStyles, DisabledItemStyles } from "../../../modules/state/types.js";
|
|
3
|
+
import ImageCache from "../shared/ImageCache.js";
|
|
4
4
|
/**
|
|
5
5
|
* Renders an array of nodes to an SVG element.
|
|
6
6
|
*
|
|
@@ -13,4 +13,4 @@ import type ImageCache from '../shared/ImageCache';
|
|
|
13
13
|
* @param nodeBorderStyles - Border/ring styles for nodes
|
|
14
14
|
* @param imageCache - Image cache for node icons
|
|
15
15
|
*/
|
|
16
|
-
export declare const renderSvgNodes: (nodesToRender: Node[], svg: SVGElement, zoom: number, idToItem: Record<string, Node>, disabledItemStyles: DisabledItemStyles, defaultNodeColor: string, nodeBorderStyles: BorderStyles, imageCache: ImageCache) => void;
|
|
16
|
+
export declare const renderSvgNodes: (nodesToRender: Node[], svg: SVGElement, zoom: number, idToItem: Record<string, Node>, disabledItemStyles: DisabledItemStyles, defaultNodeColor: string, nodeBorderStyles: BorderStyles, imageCache: ImageCache) => void;
|