@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,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Point } from "../utils/geometry.js";
|
|
2
|
+
import { StyledCaption } from "../renderers/domrenderer/shared/types.js";
|
|
2
3
|
/**
|
|
3
4
|
* The base type for graph elements.
|
|
4
5
|
* @private
|
|
@@ -6,130 +7,137 @@ import type { StyledCaption } from '../renderers/domrenderer/shared/types';
|
|
|
6
7
|
* @hidden
|
|
7
8
|
*/
|
|
8
9
|
interface GraphElement {
|
|
10
|
+
/**
|
|
11
|
+
* The id of the current node or relationship.
|
|
12
|
+
* Ids need to be unique across all nodes and relationships.
|
|
13
|
+
* Ids need to be strings and cannot be empty.
|
|
14
|
+
*/
|
|
15
|
+
readonly id: string;
|
|
16
|
+
/** The color of the graph element.*/
|
|
17
|
+
color?: string;
|
|
18
|
+
/** Whether or not the current node or relationship is selected.*/
|
|
19
|
+
selected?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The text to display inside on node or relationship.
|
|
22
|
+
* @note: If both caption and captions are provided, captions takes precedence.
|
|
23
|
+
* @note: To provide multiple captions with custom styles, use the {@link captions} property.
|
|
24
|
+
* @note: Captions are only visible when using the 'canvas' renderer.
|
|
25
|
+
*/
|
|
26
|
+
caption?: string;
|
|
27
|
+
/** Whether or not the current node or relationship is disabled.*/
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Whether or not the current node or relationship is hovered.*/
|
|
30
|
+
hovered?: boolean;
|
|
31
|
+
/** The caption text size.*/
|
|
32
|
+
captionSize?: number;
|
|
33
|
+
/**
|
|
34
|
+
* The caption align.
|
|
35
|
+
* Has no affect on self-referring relationships.
|
|
36
|
+
*/
|
|
37
|
+
captionAlign?: 'top' | 'bottom' | 'center';
|
|
38
|
+
/**
|
|
39
|
+
* The caption text and font styles.
|
|
40
|
+
* @note: To provide a single caption without custom styles, you can also use the {@link caption} property.
|
|
41
|
+
* @note: Captions are only visible when using the 'canvas' renderer.
|
|
42
|
+
*/
|
|
43
|
+
captions?: StyledCaption[];
|
|
44
|
+
/**
|
|
45
|
+
* An icon to be displayed anywhere on top of the graph element.
|
|
46
|
+
* Icons are expected to be square.
|
|
47
|
+
*/
|
|
48
|
+
overlayIcon?: {
|
|
49
|
+
/** The url to the icon.*/
|
|
50
|
+
url: string;
|
|
9
51
|
/**
|
|
10
|
-
* The
|
|
11
|
-
*
|
|
12
|
-
*
|
|
52
|
+
* The position of the icon relative to the node or relationship.
|
|
53
|
+
* The position is a percentage of the node or relationship size.
|
|
54
|
+
* `[1, 1]` is the bottom right corner of the node or relationship.
|
|
55
|
+
* `[-1, -1]` is the top left corner of the node or relationship.
|
|
56
|
+
* @defaultValue `[0, 0]`, the center of the node or relationship.
|
|
13
57
|
*/
|
|
14
|
-
|
|
15
|
-
/** The color of the graph element.*/
|
|
16
|
-
color?: string;
|
|
17
|
-
/** Whether or not the current node or relationship is selected.*/
|
|
18
|
-
selected?: boolean;
|
|
58
|
+
position?: number[];
|
|
19
59
|
/**
|
|
20
|
-
* The
|
|
21
|
-
*
|
|
22
|
-
* @
|
|
23
|
-
* @note: Captions are only visible when using the 'canvas' renderer.
|
|
60
|
+
* The size of the icon relative to the node size or relationship caption size.
|
|
61
|
+
* The size is a percentage of the node size or relationship caption size.
|
|
62
|
+
* @defaultValue `1`, the same size as the node size or relationship caption size.
|
|
24
63
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
disabled?: boolean;
|
|
28
|
-
/** Whether or not the current node or relationship is hovered.*/
|
|
29
|
-
hovered?: boolean;
|
|
30
|
-
/** The caption text size.*/
|
|
31
|
-
captionSize?: number;
|
|
32
|
-
/**
|
|
33
|
-
* The caption align.
|
|
34
|
-
* Has no affect on self-referring relationships.
|
|
35
|
-
*/
|
|
36
|
-
captionAlign?: 'top' | 'bottom' | 'center';
|
|
37
|
-
/**
|
|
38
|
-
* The caption text and font styles.
|
|
39
|
-
* @note: To provide a single caption without custom styles, you can also use the {@link caption} property.
|
|
40
|
-
* @note: Captions are only visible when using the 'canvas' renderer.
|
|
41
|
-
*/
|
|
42
|
-
captions?: StyledCaption[];
|
|
43
|
-
/**
|
|
44
|
-
* An icon to be displayed anywhere on top of the graph element.
|
|
45
|
-
* Icons are expected to be square.
|
|
46
|
-
*/
|
|
47
|
-
overlayIcon?: {
|
|
48
|
-
/** The url to the icon.*/
|
|
49
|
-
url: string;
|
|
50
|
-
/**
|
|
51
|
-
* The position of the icon relative to the node or relationship.
|
|
52
|
-
* The position is a percentage of the node or relationship size.
|
|
53
|
-
* `[1, 1]` is the bottom right corner of the node or relationship.
|
|
54
|
-
* `[-1, -1]` is the top left corner of the node or relationship.
|
|
55
|
-
* @defaultValue `[0, 0]`, the center of the node or relationship.
|
|
56
|
-
*/
|
|
57
|
-
position?: number[];
|
|
58
|
-
/**
|
|
59
|
-
* The size of the icon relative to the node size or relationship caption size.
|
|
60
|
-
* The size is a percentage of the node size or relationship caption size.
|
|
61
|
-
* @defaultValue `1`, the same size as the node size or relationship caption size.
|
|
62
|
-
*/
|
|
63
|
-
size?: number;
|
|
64
|
-
};
|
|
64
|
+
size?: number;
|
|
65
|
+
};
|
|
65
66
|
}
|
|
66
67
|
export declare const isValidNode: (node: unknown) => node is Node;
|
|
67
68
|
/**
|
|
68
69
|
* A node inside the graph visualization.
|
|
69
70
|
*/
|
|
70
71
|
interface Node extends GraphElement {
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
72
|
+
/** The size of the node.*/
|
|
73
|
+
size?: number;
|
|
74
|
+
/** Whether or not the current node is pinned.*/
|
|
75
|
+
pinned?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* @ignore
|
|
78
|
+
* The x-coordinate for the position of the node.
|
|
79
|
+
*/
|
|
80
|
+
x?: number;
|
|
81
|
+
/**
|
|
82
|
+
* @ignore
|
|
83
|
+
* The y-coordinate for the position of the node.
|
|
84
|
+
*/
|
|
85
|
+
y?: number;
|
|
86
|
+
/** Whether or not the current node is activated.*/
|
|
87
|
+
activated?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* The url to an icon to display inside the node.
|
|
90
|
+
* Icons are expected to be black. If the node's background color is dark,
|
|
91
|
+
* the icon will be inverted to white.
|
|
92
|
+
* Icons are expected to be square.
|
|
93
|
+
*/
|
|
94
|
+
icon?: string;
|
|
95
|
+
/**
|
|
96
|
+
* The DOM element to display on top of a node.
|
|
97
|
+
* @experimental
|
|
98
|
+
*/
|
|
99
|
+
html?: HTMLElement;
|
|
99
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* A node returned by {@link NVL.getNodes} with layout coordinates and screen position.
|
|
103
|
+
* `x` and `y` are canvas/layout space; `clientPosition` is relative to the canvas element.
|
|
104
|
+
*/
|
|
105
|
+
type NodeWithClientPosition = Node & Point & {
|
|
106
|
+
clientPosition: Point;
|
|
107
|
+
};
|
|
100
108
|
/**
|
|
101
109
|
* A node with only a subset of its properties.
|
|
102
110
|
*/
|
|
103
111
|
type PartialNode = Partial<Node> & {
|
|
104
|
-
|
|
105
|
-
|
|
112
|
+
/** The id of the node. */
|
|
113
|
+
id: string;
|
|
106
114
|
};
|
|
107
115
|
export declare const isValidRelationship: (relationship: unknown) => relationship is Relationship;
|
|
108
116
|
/**
|
|
109
117
|
* A relationship inside the graph visualization.
|
|
110
118
|
*/
|
|
111
119
|
interface Relationship extends GraphElement {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
120
|
+
/** Node id where the relationship starts from.*/
|
|
121
|
+
from: string;
|
|
122
|
+
/** Node id where the relationship points to.*/
|
|
123
|
+
to: string;
|
|
124
|
+
/** The relationship type.*/
|
|
125
|
+
type?: string;
|
|
126
|
+
/** The width of the relationship.*/
|
|
127
|
+
width?: number;
|
|
128
|
+
/**
|
|
129
|
+
* The DOM element to display on top of a relationship caption.
|
|
130
|
+
* @experimental
|
|
131
|
+
* The {@link captionSize} and {@link captionAlign} properties
|
|
132
|
+
* will affect the position and height of the html container element.
|
|
133
|
+
*/
|
|
134
|
+
captionHtml?: HTMLElement;
|
|
127
135
|
}
|
|
128
136
|
/**
|
|
129
137
|
* A relationship with only a subset of its properties.
|
|
130
138
|
*/
|
|
131
139
|
type PartialRelationship = Partial<Relationship> & {
|
|
132
|
-
|
|
133
|
-
|
|
140
|
+
/** The id of the relationship. */
|
|
141
|
+
id: string;
|
|
134
142
|
};
|
|
135
|
-
export type { Node,
|
|
143
|
+
export type { Node, NodeWithClientPosition, PartialNode, PartialRelationship, Relationship };
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Node, NodeWithClientPosition, Relationship } from "./graph-element.js";
|
|
2
2
|
export interface NvlWindow {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
__Nvl_dumpNodes: (instanceId?: string) => NodeWithClientPosition[];
|
|
4
|
+
__Nvl_dumpRelationships: (instanceId?: string) => Relationship[];
|
|
5
|
+
__Nvl_getNodesOnScreen: (instanceId?: string) => {
|
|
6
|
+
nodes: Node[];
|
|
7
|
+
rels: Relationship[];
|
|
8
|
+
};
|
|
9
|
+
__Nvl_registerDoneCallback: (cb: () => void, instanceId: string) => void;
|
|
10
|
+
__Nvl_getZoomLevel: (instanceId?: string) => number;
|
|
11
11
|
}
|
|
12
12
|
declare global {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
13
|
+
interface Window extends NvlWindow {}
|
|
14
|
+
const SEGMENT_WRITE_KEY: string;
|
|
15
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const typedObjectEntries: <T>(obj: T) => [keyof T, T[keyof T]][];
|
|
1
|
+
export declare const typedObjectEntries: <T>(obj: T) => [keyof T, T[keyof T]][];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { NvlState } from "../modules/state/types.js";
|
|
2
2
|
export declare const enrichWithAria: (canvasParent: HTMLElement, instanceId: string) => HTMLDivElement;
|
|
3
|
-
export declare const updateAriaDescription: (state: NvlState, descriptionElement: HTMLDivElement) => void;
|
|
3
|
+
export declare const updateAriaDescription: (state: NvlState, descriptionElement: HTMLDivElement) => void;
|
|
@@ -8,12 +8,18 @@
|
|
|
8
8
|
* it will use the width and height from the style properties.
|
|
9
9
|
*/
|
|
10
10
|
export declare const fitCanvasSizeToParent: (canvas: HTMLCanvasElement) => void;
|
|
11
|
+
/**
|
|
12
|
+
* Calls `callback` whenever the size of `element` changes, using `ResizeObserver`.
|
|
13
|
+
*
|
|
14
|
+
* @returns The observer so the caller can `disconnect()` it.
|
|
15
|
+
*/
|
|
16
|
+
export declare const observeResize: (element: HTMLElement, callback: () => void) => ResizeObserver;
|
|
11
17
|
export declare const addWebGLContextLostListener: (canvas: HTMLCanvasElement, contextLostCallback?: (e: WebGLContextEvent) => void) => void;
|
|
12
18
|
export declare const createCanvasForScreenshot: (fullWidth: number, fullHeight: number) => HTMLCanvasElement;
|
|
13
19
|
export declare const createCanvasForRenderer: (parent?: HTMLElement, onContextLostCallback?: (e: WebGLContextEvent) => void) => HTMLCanvasElement;
|
|
14
20
|
export declare const removeCanvas: (canvas: HTMLCanvasElement) => void;
|
|
15
21
|
export declare const getCanvas2DContext: (canvas: HTMLCanvasElement) => CanvasRenderingContext2D;
|
|
16
|
-
export declare const getWebGLContext: (canvas: HTMLCanvasElement) =>
|
|
22
|
+
export declare const getWebGLContext: (canvas: HTMLCanvasElement) => WebGL2RenderingContext | null;
|
|
17
23
|
export declare const removeWebGLContext: (webGLCtx: WebGLRenderingContext) => void;
|
|
18
24
|
export declare const checkWebGLAvailability: (canvas?: HTMLCanvasElement) => boolean;
|
|
19
25
|
/**
|
|
@@ -30,4 +36,4 @@ export declare const measureTextCached: (ctx: CanvasRenderingContext2D, text: st
|
|
|
30
36
|
/**
|
|
31
37
|
* Clears the text measurement cache.
|
|
32
38
|
*/
|
|
33
|
-
export declare const clearTextMeasurementCache: () => void;
|
|
39
|
+
export declare const clearTextMeasurementCache: () => void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Node } from "../types/graph-element.js";
|
|
2
2
|
export declare const MIN_RADIUS = 250;
|
|
3
|
-
export declare const getPositionsOnCircle: (nodes: Node[]) => Record<string, Node>;
|
|
3
|
+
export declare const getPositionsOnCircle: (nodes: Node[]) => Record<string, Node>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Point } from "./geometry.js";
|
|
2
|
+
/** Extra world-space padding around each member disk before taking the cluster hull. */
|
|
3
|
+
export declare const ClusterHullPadding = 14;
|
|
4
|
+
/** Circumference samples per member disk before taking the convex hull. */
|
|
5
|
+
export declare const DiskSampleCount = 8;
|
|
6
|
+
export type ClusterMemberDisk = Point & {
|
|
7
|
+
radius: number;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Fits a convex hull around the given disks by sampling each member circumference.
|
|
11
|
+
* @param members - The cluster member disks to fit the hull around.
|
|
12
|
+
* @returns The fitted hull, or null if fewer than two members have a usable position/radius.
|
|
13
|
+
*/
|
|
14
|
+
export declare const fitClusterHull: (members: ClusterMemberDisk[]) => Point[] | null;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Point } from "./geometry.js";
|
|
2
|
+
import { Node } from "../types/graph-element.js";
|
|
3
|
+
import { Cluster, ClusterId } from "../modules/state/types.js";
|
|
4
|
+
import { CoarsenedGraph, Sun } from "../layouts/forcedirectedlayout/clustering/types.js";
|
|
5
|
+
import { ClusterMemberDisk } from "./clusterGeometry.js";
|
|
6
|
+
/**
|
|
7
|
+
* A fitted cluster hull region used for decoration and hit-testing.
|
|
8
|
+
*/
|
|
9
|
+
export type ClusterHitRegion = Cluster & {
|
|
10
|
+
/** Convex hull used for picking / decoration. */
|
|
11
|
+
hull: Point[];
|
|
12
|
+
/** Layout sun original id (e.g. `synth-sun:${id}`). */
|
|
13
|
+
sunOriginalId: string;
|
|
14
|
+
};
|
|
15
|
+
export type MultiMemberCluster = {
|
|
16
|
+
sun: Sun;
|
|
17
|
+
nodeIds: string[];
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Returns each multi-member first-level sun system in a coarsening hierarchy.
|
|
21
|
+
* @param firstSubGraphLevel - `subGraphs[1]` from the current layout coarsening hierarchy.
|
|
22
|
+
* @returns Suns paired with their original member node ids.
|
|
23
|
+
*/
|
|
24
|
+
export declare const getMultiMemberClusters: (firstSubGraphLevel: CoarsenedGraph) => MultiMemberCluster[];
|
|
25
|
+
/**
|
|
26
|
+
* Collects member disks with usable positions for hull fitting.
|
|
27
|
+
* @param nodeIds - Member node ids.
|
|
28
|
+
* @param idToPosition - Node id to position map.
|
|
29
|
+
* @param idToItem - Node id to graph node map.
|
|
30
|
+
* @returns Member disks for {@link fitClusterHull}.
|
|
31
|
+
*/
|
|
32
|
+
export declare const collectMemberDisks: (nodeIds: string[], idToPosition: Readonly<Record<string, Point>>, idToItem: Record<string, Node>) => ClusterMemberDisk[];
|
|
33
|
+
/**
|
|
34
|
+
* Builds hit regions for {@link ClusteringOptions.clusterBy} multi-member clusters.
|
|
35
|
+
* Structural {@link SolarMerger} suns are skipped, as they have no entry in `clusterIdsBySun`.
|
|
36
|
+
* @param subGraphs - Layout coarsening hierarchy.
|
|
37
|
+
* @param idToPosition - Node id to position map.
|
|
38
|
+
* @param idToItem - Node id to graph node map.
|
|
39
|
+
* @param clusterIdsBySun - Cluster id per synthetic cluster sun, keyed by sun `originalId`.
|
|
40
|
+
* @returns Fitted cluster hit regions.
|
|
41
|
+
*/
|
|
42
|
+
export declare const buildClusterByHitRegions: (subGraphs: CoarsenedGraph[], idToPosition: Readonly<Record<string, Point>>, idToItem: Record<string, Node>, clusterIdsBySun: ReadonlyMap<string, ClusterId>) => ClusterHitRegion[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import colorString from
|
|
1
|
+
import colorString from "color-string";
|
|
2
2
|
/**
|
|
3
3
|
* Determines whether a black or white font color is more readable for a given background color.
|
|
4
4
|
* @param color - The background color.
|
|
@@ -11,4 +11,4 @@ export declare const rgbaToVec4: (rgba: number[]) => number[];
|
|
|
11
11
|
export declare const rgbToVec3: (rgb: number[]) => number[];
|
|
12
12
|
export declare const colorToUIntArray: (color: string) => number;
|
|
13
13
|
export declare const colorToVec3: (color: string) => number[];
|
|
14
|
-
export declare const colorToVec4: (color: string) => number[];
|
|
14
|
+
export declare const colorToVec4: (color: string) => number[];
|
|
@@ -5,6 +5,12 @@ export declare const MinRelLength = 100;
|
|
|
5
5
|
export declare const Gravity = 25;
|
|
6
6
|
export declare const SimulationStopVelocity = 0.25;
|
|
7
7
|
export declare const MappingEnd = 999999;
|
|
8
|
+
export declare const LayoutStepIntervalMs = 13;
|
|
9
|
+
export declare const MaxLayoutStepsPerFrame = 20;
|
|
10
|
+
export declare const DefaultMaxFps = 30;
|
|
11
|
+
export declare const DefaultMinFps = 3;
|
|
12
|
+
export declare const MinAllowedFps = 1;
|
|
13
|
+
export declare const MaxAllowedFps = 120;
|
|
8
14
|
export declare const ActiveAnimDuration = 1000;
|
|
9
15
|
export declare const DefaultNodeSize = 25;
|
|
10
16
|
export declare const DefaultNodeColor = "#FFDF81";
|
|
@@ -22,11 +28,11 @@ export declare const TextColorInverse = "#FFFFFF";
|
|
|
22
28
|
export declare const MaxArrowCountWithShadows = 500;
|
|
23
29
|
export declare const DefaultFontFace = "\"Open Sans\", sans-serif";
|
|
24
30
|
export declare const absFillStyle: {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
position: string;
|
|
32
|
+
top: number;
|
|
33
|
+
bottom: number;
|
|
34
|
+
left: number;
|
|
35
|
+
right: number;
|
|
30
36
|
};
|
|
31
37
|
/**
|
|
32
38
|
* Factor to make nodes same size in WebGL renderer and Canvas.
|
|
@@ -41,4 +47,4 @@ export declare const getDevicePixelRatio: () => number;
|
|
|
41
47
|
export declare const HtmlCaptionMinWidthThreshold = 5;
|
|
42
48
|
/** Min on-screen icon size (px) before we skip drawing; avoids unreadable bitmaps when zoomed out. */
|
|
43
49
|
export declare const MinNodeIconScreenPx = 10;
|
|
44
|
-
export declare const allowedWrappers: string[];
|
|
50
|
+
export declare const allowedWrappers: string[];
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* @hidden
|
|
5
5
|
*/
|
|
6
6
|
export declare class CompatibilityError extends Error {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
7
|
+
/**
|
|
8
|
+
* Returns the error message of the compatibility error.
|
|
9
|
+
* @returns The error message.
|
|
10
|
+
*/
|
|
11
|
+
toString(): string;
|
|
12
|
+
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Node } from "../types/graph-element.js";
|
|
2
2
|
/**
|
|
3
3
|
* An object representing a point in 2D space.
|
|
4
4
|
*/
|
|
5
5
|
export interface Point {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
/** The x coordinate of the point. */
|
|
7
|
+
x: number;
|
|
8
|
+
/** The y coordinate of the point. */
|
|
9
|
+
y: number;
|
|
10
10
|
}
|
|
11
|
-
export declare const isPointDefined: (point: Point | Node) => boolean;
|
|
12
11
|
/**
|
|
13
12
|
* Returns true when value is a finite number (not NaN or Infinity).
|
|
14
13
|
*/
|
|
15
14
|
export declare const isValidFiniteNumber: (value: unknown) => value is number;
|
|
15
|
+
export declare const isPointDefined: (point: Point | Node | null | undefined) => point is Point;
|
|
16
16
|
/**
|
|
17
17
|
* This function checks if the coordinates are defined.
|
|
18
18
|
* @param from - The {@link Node} the edge starts from.
|
|
@@ -35,48 +35,48 @@ export declare const pointEqual: (p1: Node | Point, p2: Node | Point) => boolean
|
|
|
35
35
|
* @param p2 - The second point of the segment.
|
|
36
36
|
*/
|
|
37
37
|
export declare class Segment {
|
|
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
|
-
|
|
38
|
+
/** The first point of the segment. */
|
|
39
|
+
readonly p1: Point;
|
|
40
|
+
/** The second point of the segment. */
|
|
41
|
+
readonly p2: Point;
|
|
42
|
+
/** The unit vector of the segment. */
|
|
43
|
+
readonly unit: Point;
|
|
44
|
+
/** The unit normal vector of the segment. */
|
|
45
|
+
readonly norm: Point;
|
|
46
|
+
/** The length of the segment. */
|
|
47
|
+
readonly length: number;
|
|
48
|
+
/** The vector between the two points of the segment. */
|
|
49
|
+
readonly vector: Point;
|
|
50
|
+
constructor(p1: Point, p2: Point);
|
|
51
|
+
/**
|
|
52
|
+
* Get the vector between the two points of the segment.
|
|
53
|
+
* @returns The vector between the two points of the segment.
|
|
54
|
+
* @private
|
|
55
|
+
* @see {@link https://en.wikipedia.org/wiki/Vector_(spatial)}
|
|
56
|
+
*/
|
|
57
|
+
private getVector;
|
|
58
|
+
/**
|
|
59
|
+
* Get the length of the vector between the two points of the segment.
|
|
60
|
+
* @returns The length of the segment.
|
|
61
|
+
* @private
|
|
62
|
+
* @see {@link https://en.wikipedia.org/wiki/Vector_(spatial)#Length}
|
|
63
|
+
*/
|
|
64
|
+
private getLength;
|
|
65
|
+
/**
|
|
66
|
+
* Get the unit vector of the two points of the segment.
|
|
67
|
+
* @returns The unit vector of the segment.
|
|
68
|
+
* @private
|
|
69
|
+
* @see {@link https://en.wikipedia.org/wiki/Euclidean_vector#Unit_vector}
|
|
70
|
+
* @see {@link https://en.wikipedia.org/wiki/Unit_vector}
|
|
71
|
+
*/
|
|
72
|
+
private getUnitVector;
|
|
73
|
+
/**
|
|
74
|
+
* Get the unit normal vector of the two points of the segment.
|
|
75
|
+
* @returns The unit normal vector of the segment.
|
|
76
|
+
* @private
|
|
77
|
+
* @see {@link https://en.wikipedia.org/wiki/Normal_(geometry)}
|
|
78
|
+
*/
|
|
79
|
+
private getUnitNormalVector;
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
82
|
* Calculates the projection ratio between two vectors.
|
|
@@ -126,3 +126,46 @@ export declare const getIntersection: (p0: Point, p1: Point, p2: Point, p3: Poin
|
|
|
126
126
|
* @returns The distance between the point and the curve.
|
|
127
127
|
*/
|
|
128
128
|
export declare const getDistanceToQuadratic: (fromCoordinates: Point, toCoordinates: Point, control: Point, point: Point) => number;
|
|
129
|
+
/**
|
|
130
|
+
* Converts a polar coordinate (radius + angle around a centre) to a cartesian point.
|
|
131
|
+
* @param centre - The centre of the circle.
|
|
132
|
+
* @param radius - The radius of the circle.
|
|
133
|
+
* @param angle - The angle around the circle, in radians.
|
|
134
|
+
* @returns The point at that angle and radius from the centre.
|
|
135
|
+
*/
|
|
136
|
+
export declare const pointOnCircle: (centre: Point, radius: number, angle: number) => Point;
|
|
137
|
+
/**
|
|
138
|
+
* Returns the point halfway between two points.
|
|
139
|
+
* @param a - The first point.
|
|
140
|
+
* @param b - The second point.
|
|
141
|
+
* @returns The midpoint of the segment from a to b.
|
|
142
|
+
*/
|
|
143
|
+
export declare const getMidPoint: (a: Point, b: Point) => Point;
|
|
144
|
+
/**
|
|
145
|
+
* Places child points evenly spaced around a circle centred on a point.
|
|
146
|
+
* @param centre - The centre of the circle.
|
|
147
|
+
* @param radius - The radius of the circle.
|
|
148
|
+
* @param noOfChildren - The number of points to place around the circle.
|
|
149
|
+
* @returns The evenly spaced points.
|
|
150
|
+
*/
|
|
151
|
+
export declare const calculateCirclePositions: (centre: Point, radius: number, noOfChildren: number) => Point[];
|
|
152
|
+
/**
|
|
153
|
+
* Andrew's monotone-chain convex hull.
|
|
154
|
+
* @param points - The points to get the convex hull of.
|
|
155
|
+
* @returns The convex hull of the points.
|
|
156
|
+
*/
|
|
157
|
+
export declare const getConvexHull: (points: Point[]) => Point[];
|
|
158
|
+
/**
|
|
159
|
+
* Returns true when the point lies inside or on the boundary of a convex polygon.
|
|
160
|
+
* Works for both clockwise and counter-clockwise vertex order.
|
|
161
|
+
* @param point - The point to test.
|
|
162
|
+
* @param polygon - Convex polygon vertices in order around the boundary.
|
|
163
|
+
* @returns True when the point is inside or on the polygon.
|
|
164
|
+
*/
|
|
165
|
+
export declare const isPointInConvexPolygon: (point: Point, polygon: Point[]) => boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Absolute area of a simple polygon via the shoelace formula.
|
|
168
|
+
* @param polygon - Polygon vertices in order around the boundary.
|
|
169
|
+
* @returns The absolute area of the polygon.
|
|
170
|
+
*/
|
|
171
|
+
export declare const getPolygonArea: (polygon: Point[]) => number;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { Node, Relationship } from "../types/graph-element.js";
|
|
2
|
+
import { DataSet } from "../modules/dataset.js";
|
|
3
3
|
export type FlatRel = Omit<Relationship & {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
bundledRels: Omit<Relationship, 'from' | 'to'>[];
|
|
5
|
+
key: string;
|
|
6
6
|
}, 'id'>;
|
|
7
7
|
export declare const getRelItemKey: (from: Node["id"], to: Node["id"]) => string;
|
|
8
8
|
export declare const relItemsToFlatKeySet: (relItems: Relationship[]) => Set<string>;
|
|
@@ -16,11 +16,11 @@ export declare const relItemsToFlatKeySet: (relItems: Relationship[]) => Set<str
|
|
|
16
16
|
*/
|
|
17
17
|
export declare const relItemsToFlatList: (relItems: Relationship[], disabledItemColor?: string) => FlatRel[];
|
|
18
18
|
export declare const getAdjNodesMapAndRelMap: (rels: Relationship[]) => {
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
adjNodesMap: Record<string, Set<string>>;
|
|
20
|
+
relMap: Record<string, Relationship[]>;
|
|
21
21
|
};
|
|
22
22
|
export declare const getConnectedNodesAndRels: (addedNodes: Set<Node["id"]>, addedRels: Set<Relationship["id"]>, nodes: DataSet<Node>, rels: DataSet<Relationship>) => {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
connectedNodes: Record<string, Node>;
|
|
24
|
+
connectedRels: Record<string, Relationship>;
|
|
25
25
|
};
|
|
26
|
-
export declare const hasSizeChanged: (graphObjectUpdates?: Node[]) => boolean;
|
|
26
|
+
export declare const hasSizeChanged: (graphObjectUpdates?: Node[]) => boolean;
|