@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,11 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
import { Point } from "../utils/geometry.js";
|
|
2
|
+
import { Node, NodeWithClientPosition, PartialNode, PartialRelationship, Relationship } from "../types/graph-element.js";
|
|
3
|
+
import { ExternalCallbacks } from "./ExternalCallbackHandler.js";
|
|
4
|
+
import { Layout, LayoutOptions, NvlOptions, NvlState, ZoomOptions } from "./state/types.js";
|
|
5
|
+
import { ClusterHitRegion } from "../utils/clusterHitRegions.js";
|
|
6
|
+
import { HitTargetNode, HitTargetRelationship } from "../utils/hitTest.js";
|
|
7
|
+
import "../index.js";
|
|
8
|
+
import "../types/nvl-window-functions.js";
|
|
6
9
|
type SaveToFileOptions = {
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
filename?: string;
|
|
11
|
+
backgroundColor?: string;
|
|
9
12
|
};
|
|
10
13
|
export declare const EVENT_ERROR = "onError";
|
|
11
14
|
export declare const EVENT_ZOOM_TRANSITION_DONE = "onZoomTransitionDone";
|
|
@@ -14,126 +17,206 @@ export declare const EVENT_LAYOUT_STEP = "onLayoutStep";
|
|
|
14
17
|
export declare const EVENT_LAYOUT_COMPUTING = "onLayoutComputing";
|
|
15
18
|
export declare const EVENT_WEBGL_CONTEXT_LOST = "onWebGLContextLost";
|
|
16
19
|
export default class NvlController {
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
20
|
+
private destroyed;
|
|
21
|
+
private readonly state;
|
|
22
|
+
private readonly callbacks;
|
|
23
|
+
private readonly instanceId;
|
|
24
|
+
private readonly glController;
|
|
25
|
+
private readonly webGLContext;
|
|
26
|
+
private readonly webGLMinimapContext;
|
|
27
|
+
private readonly htmlOverlay;
|
|
28
|
+
private hasResized;
|
|
29
|
+
private readonly hierarchicalLayout;
|
|
30
|
+
private readonly gridLayout;
|
|
31
|
+
private readonly freeLayout;
|
|
32
|
+
private readonly d3ForceLayout;
|
|
33
|
+
private readonly circularLayout;
|
|
34
|
+
private readonly forceLayout;
|
|
35
|
+
private readonly canvasRenderer;
|
|
36
|
+
private readonly svgRenderer;
|
|
37
|
+
private clusterOverlay;
|
|
38
|
+
private readonly glCanvas;
|
|
39
|
+
private canvasRect;
|
|
40
|
+
private readonly glMinimapCanvas;
|
|
41
|
+
private readonly c2dCanvas;
|
|
42
|
+
private clusterOverlayCanvas;
|
|
43
|
+
private readonly canvasParent;
|
|
44
|
+
private readonly svg;
|
|
45
|
+
private isInRenderSwitchAnimation;
|
|
46
|
+
private previousRenderer;
|
|
47
|
+
private justSwitchedLayout;
|
|
48
|
+
private layoutUpdating;
|
|
49
|
+
private layoutComputing;
|
|
50
|
+
private isRenderingDisabled;
|
|
51
|
+
private readonly setRenderSwitchAnimation;
|
|
52
|
+
private readonly stateDisposers;
|
|
53
|
+
private readonly zoomTransitionHandler;
|
|
54
|
+
private currentLayout;
|
|
55
|
+
private lastTimestamp;
|
|
56
|
+
private accumulator;
|
|
57
|
+
private readonly layoutTimeLimit;
|
|
58
|
+
private readonly smoothFrameBudgetMs;
|
|
59
|
+
private pixelRatio;
|
|
60
|
+
private readonly resizeObserver;
|
|
61
|
+
private readonly minimapResizeObserver;
|
|
62
|
+
private pendingZoom;
|
|
63
|
+
private pendingPan;
|
|
64
|
+
private pendingViewportOverride;
|
|
65
|
+
private animationRequestId;
|
|
66
|
+
private layoutDoneCallback;
|
|
67
|
+
private layoutComputingCallback;
|
|
68
|
+
private currentLayoutType;
|
|
69
|
+
private descriptionElement;
|
|
70
|
+
/** True when a minimap container was provided at construction. */
|
|
71
|
+
private readonly hasMinimap;
|
|
72
|
+
private lastMinimapPositions;
|
|
73
|
+
private lastMinimapCacheVersion;
|
|
74
|
+
constructor(state: NvlState, frame: HTMLElement, options: NvlOptions);
|
|
75
|
+
private onWebGLContextLost;
|
|
76
|
+
private fpsToFrameBudgetMs;
|
|
77
|
+
private getLayoutNeedsToUpdate;
|
|
78
|
+
private isWithinBudget;
|
|
79
|
+
/**
|
|
80
|
+
* Add elapsed frame time to the layout-step accumulator, capped at `layoutTimeLimit`.
|
|
81
|
+
* Prevents a slow frame (e.g. blocked GPU readback) from inflating catch-up debt and
|
|
82
|
+
* scheduling ever more work in a feedback loop; the layout falls behind gracefully instead.
|
|
83
|
+
*/
|
|
84
|
+
private accumulateLayoutElapsedTime;
|
|
85
|
+
/**
|
|
86
|
+
* Whether the GPU force-directed layout is active.
|
|
87
|
+
* @returns `true` when PhysLayout is the current layout.
|
|
88
|
+
*/
|
|
89
|
+
private usesGpuSimulation;
|
|
90
|
+
/**
|
|
91
|
+
* Whether the GPU-texture fast path can be taken this frame.
|
|
92
|
+
* Requires the WebGL renderer, GPU layout active, and no CPU-position consumers
|
|
93
|
+
* (layout-step callback, HTML overlays). A provided minimap no longer blocks this path;
|
|
94
|
+
* the minimap and cluster overlay are updated from the lagged async position cache instead.
|
|
95
|
+
* @returns `true` when rendering directly from the GPU position texture is safe.
|
|
96
|
+
*/
|
|
97
|
+
private canRenderFromGpuTexture;
|
|
98
|
+
/**
|
|
99
|
+
* Uploads lagged PhysLayout cache positions to the minimap when the cache version changed.
|
|
100
|
+
* @returns `true` when positions were refreshed this call.
|
|
101
|
+
*/
|
|
102
|
+
private refreshMinimapFromCacheIfStale;
|
|
103
|
+
/**
|
|
104
|
+
* Fits, renders, and caches minimap positions (and PhysLayout cache version when applicable).
|
|
105
|
+
*/
|
|
106
|
+
private syncMinimap;
|
|
107
|
+
/** Whether either cluster decoration is enabled in the current layout options. */
|
|
108
|
+
private hasClusterDecorations;
|
|
109
|
+
/**
|
|
110
|
+
* Creates the decoration canvas and its overlay.
|
|
111
|
+
* @returns The overlay to draw with.
|
|
112
|
+
*/
|
|
113
|
+
private createClusterOverlay;
|
|
114
|
+
/**
|
|
115
|
+
* Resolves the overlay to draw into, allocating it on first use and tearing it down again
|
|
116
|
+
* while cluster decorations are off.
|
|
117
|
+
* @returns The overlay to draw with, or null when decorations are disabled.
|
|
118
|
+
*/
|
|
119
|
+
private ensureClusterOverlay;
|
|
120
|
+
/** Tears the overlay and its canvas back down once decorations are switched off. */
|
|
121
|
+
private destroyClusterOverlay;
|
|
122
|
+
/**
|
|
123
|
+
* Draws (or clears) cluster decorations on the Canvas2D overlay from explicit positions.
|
|
124
|
+
* @param positions - CPU node positions for this frame, or null to clear.
|
|
125
|
+
*/
|
|
126
|
+
private renderClusterOverlay;
|
|
127
|
+
/**
|
|
128
|
+
* Draws cluster decorations from PhysLayout's lagged async PBO cache without a sync dump.
|
|
129
|
+
* @param forceLayout - The PhysLayout instance to render the cluster overlay from.
|
|
130
|
+
*/
|
|
131
|
+
private renderClusterOverlayFromCache;
|
|
132
|
+
/** Syncs idToPosition from the GPU layout on demand; no-op for CPU layouts. */
|
|
133
|
+
syncPositionsFromLayout(): void;
|
|
134
|
+
/**
|
|
135
|
+
* Fitted {@link ClusteringOptions.clusterBy} hull regions for the current layout, or [].
|
|
136
|
+
* @returns Cluster hit regions for picking.
|
|
137
|
+
*/
|
|
138
|
+
getClusterByHitRegions(): ClusterHitRegion[];
|
|
139
|
+
private updateMinimapZoom;
|
|
140
|
+
private startMainLoop;
|
|
141
|
+
private renderNodeHtmlOverlays;
|
|
142
|
+
private renderRelationshipHtmlOverlays;
|
|
143
|
+
updateHtmlOverlay(): void;
|
|
144
|
+
dumpNodes(): NodeWithClientPosition[];
|
|
145
|
+
dumpRelationships(): Relationship[];
|
|
146
|
+
/**
|
|
147
|
+
* Map a relative Canvas space to the DOM position
|
|
148
|
+
* @param canvasX - X position in the canvas space.
|
|
149
|
+
* @param canvasY - Y position position in the canvas space.
|
|
150
|
+
*/
|
|
151
|
+
mapCanvasSpaceToRelativePosition(canvasX: number, canvasY: number): {
|
|
152
|
+
x: number;
|
|
153
|
+
y: number;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Map a relative DOM position to the Canvas space
|
|
157
|
+
* @param clientX - Relative X position from the top left [0..rect.width].
|
|
158
|
+
* @param clientY - Relative Y position from the top left [0..rect.height].
|
|
159
|
+
*/
|
|
160
|
+
mapRelativePositionToCanvasSpace(clientX: number, clientY: number): {
|
|
161
|
+
x: number;
|
|
162
|
+
y: number;
|
|
163
|
+
};
|
|
164
|
+
getNodePositions(): (Node & Point)[];
|
|
165
|
+
setNodePositions(data: Node[], updateLayout?: boolean): void;
|
|
166
|
+
isLayoutMoving(): boolean;
|
|
167
|
+
getNodesOnScreen(): {
|
|
168
|
+
nodes: Node[];
|
|
169
|
+
rels: Relationship[];
|
|
170
|
+
};
|
|
171
|
+
registerDoneCallback(cb: NvlController['layoutDoneCallback']): void;
|
|
172
|
+
registerComputingCallback(cb: NvlController['layoutComputingCallback']): void;
|
|
173
|
+
getPosition(nodeId: string): Node & Point;
|
|
174
|
+
getScale(): number;
|
|
175
|
+
getPan(): {
|
|
176
|
+
x: number;
|
|
177
|
+
y: number;
|
|
178
|
+
};
|
|
179
|
+
setZoomLevel(_newLevel: number): void;
|
|
180
|
+
setPanCoordinates(panX: number, panY: number): void;
|
|
181
|
+
setZoomAndPan(zoom: number, panX: number, panY: number): void;
|
|
182
|
+
fit(nodeIds: string[], zoomOptions?: ZoomOptions): void;
|
|
183
|
+
resetZoom(): void;
|
|
184
|
+
setRenderer(renderer: string): void;
|
|
185
|
+
on(name: keyof ExternalCallbacks, callback: (args: unknown) => void): void;
|
|
186
|
+
isDestroyed(): boolean;
|
|
187
|
+
destroy(): void;
|
|
188
|
+
callIfRegistered(...args: any[]): void;
|
|
189
|
+
getCanvasRelsAt(point: Point): HitTargetRelationship[];
|
|
190
|
+
getCanvasNodesAt(point: Point, hitNodeMarginWidth?: number): HitTargetNode[];
|
|
191
|
+
private getLayout;
|
|
192
|
+
setLayout(layoutType: Layout): void;
|
|
193
|
+
setLayoutOptions(options?: LayoutOptions): void;
|
|
194
|
+
/**
|
|
195
|
+
* Syncs positions if needed and redraws (or clears) the cluster overlay from current state.
|
|
196
|
+
*/
|
|
197
|
+
private refreshClusterOverlay;
|
|
198
|
+
private getDataUrlForCanvas;
|
|
199
|
+
private initiateFileDownload;
|
|
200
|
+
private updateLayoutAndPositions;
|
|
201
|
+
private getAndUpdatePositions;
|
|
202
|
+
private getLayoutPositions;
|
|
203
|
+
saveToFile(options: SaveToFileOptions): void;
|
|
204
|
+
private createSvgString;
|
|
205
|
+
saveToSvg(options?: SaveToFileOptions): Promise<void>;
|
|
206
|
+
getImageDataURL(options: SaveToFileOptions): string;
|
|
207
|
+
getSvgDataUrl(options?: SaveToFileOptions): Promise<string>;
|
|
208
|
+
private prepareLargeFileForDownload;
|
|
209
|
+
private createCanvasAndRenderImage;
|
|
210
|
+
saveFullGraphToLargeFile(options: SaveToFileOptions): Promise<void>;
|
|
211
|
+
addAndUpdateElementsInGraph(nodes?: Node[] | PartialNode[], relationships?: Relationship[] | PartialRelationship[]): void;
|
|
212
|
+
updateElementsInGraph(nodes: Node[] | PartialNode[], relationships: Relationship[] | PartialRelationship[]): void;
|
|
213
|
+
/**
|
|
214
|
+
* Adds nodes and relationships in the current scene.
|
|
215
|
+
* @param {Node[]} nodes The nodes to be added.
|
|
216
|
+
* @param {Relationship[]} relationships The relationships to be added.
|
|
217
|
+
*/
|
|
218
|
+
addElementsToGraph(nodes: Node[], relationships: Relationship[]): void;
|
|
219
|
+
private validateNodes;
|
|
220
|
+
private validateRelationships;
|
|
138
221
|
}
|
|
139
|
-
export {};
|
|
222
|
+
export {};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
export default class Shader {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
2
|
+
private readonly shaderProgram;
|
|
3
|
+
private readonly gl;
|
|
4
|
+
private curTexture;
|
|
5
|
+
private attributeInfo;
|
|
6
|
+
private uniformInfo;
|
|
7
|
+
constructor(gl: WebGL2RenderingContext, vsSource: string, fsSource: string, defines?: {});
|
|
8
|
+
setUniform(name: string, value: any): void;
|
|
9
|
+
setAttributePointer(name: string, size: number, start: number, stride: number): void;
|
|
10
|
+
setAttributePointerFloat(name: string, size: number, start: number, stride: number): void;
|
|
11
|
+
setAttributePointerUShort(name: string | number, size: number, start: number, stride: number): void;
|
|
12
|
+
setAttributePointerByteNorm(name: string, size: number, start: number, stride: number): void;
|
|
13
|
+
setAttributePointerByte(name: string, size: number, start: number, stride: number): void;
|
|
14
|
+
use(): void;
|
|
15
|
+
remove(): void;
|
|
16
|
+
private scanAttributes;
|
|
17
|
+
private scanUniforms;
|
|
18
|
+
}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { Node } from "../types/graph-element.js";
|
|
2
|
+
import { NvlState } from "./state/types.js";
|
|
3
|
+
import PIDController from "node-pid-controller";
|
|
4
4
|
export default class ZoomTransitionHandler {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
5
|
+
xCtrl: PIDController;
|
|
6
|
+
yCtrl: PIDController;
|
|
7
|
+
zoomCtrl: PIDController;
|
|
8
|
+
private getNodePositions;
|
|
9
|
+
private firstUpdate;
|
|
10
|
+
private readonly state;
|
|
11
|
+
private readonly canvas;
|
|
12
|
+
private readonly stateDisposers;
|
|
13
|
+
constructor({ state, getNodePositions, canvas }: {
|
|
14
|
+
state: NvlState;
|
|
15
|
+
getNodePositions: (data: Node[]) => Node[];
|
|
16
|
+
canvas: HTMLCanvasElement;
|
|
17
|
+
});
|
|
18
|
+
needsToRun(): boolean;
|
|
19
|
+
update(layoutActive: boolean, onTransitionCompleted?: () => void): void;
|
|
20
|
+
destroy(): void;
|
|
21
|
+
private recalculateTarget;
|
|
22
|
+
private allNodesAreVisible;
|
|
23
|
+
private reset;
|
|
24
|
+
private fitNodes;
|
|
25
|
+
}
|
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { Point } from "../utils/geometry.js";
|
|
2
|
+
import { Node, Relationship } from "../types/graph-element.js";
|
|
3
3
|
/** A graph stored with mobx. */
|
|
4
4
|
export interface DataSet<T> {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
5
|
+
items: T[];
|
|
6
|
+
idToItem: Record<string, T>;
|
|
7
|
+
channels: Record<string, Channel<T>>;
|
|
8
|
+
idToPosition: Record<string, Node & Point>;
|
|
9
|
+
idToHtmlOverlay?: Record<string, HTMLElement>;
|
|
10
|
+
version: number;
|
|
11
|
+
maxDimension: number;
|
|
12
|
+
addChannel: (this: DataSet<T>, channelName: string) => void;
|
|
13
|
+
removeChannel: (this: DataSet<T>, channelName: string) => void;
|
|
14
|
+
clearChannel: (this: DataSet<T>, channelName: string) => void;
|
|
15
|
+
add: (data: T[], result: ActionResult) => void;
|
|
16
|
+
update: (data: Partial<T>[], result: ActionResult) => void;
|
|
17
|
+
remove: (ids: string[], result: ActionResult) => void;
|
|
18
|
+
updatePositions: (data: Node[]) => void;
|
|
19
|
+
updateHtmlOverlay: (overlay: HTMLElement) => void;
|
|
19
20
|
}
|
|
20
21
|
export type NodeDataSet = DataSet<Node>;
|
|
21
22
|
export type RelationshipDataSet = DataSet<Relationship>;
|
|
22
23
|
export interface ActionResult {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
added?: boolean;
|
|
25
|
+
removed?: boolean;
|
|
26
|
+
updated?: boolean;
|
|
26
27
|
}
|
|
27
28
|
export interface Channel<T> {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
adds: Record<string, T>;
|
|
30
|
+
updates: Record<string, T>;
|
|
31
|
+
removes: Record<string, T>;
|
|
31
32
|
}
|
|
32
|
-
export declare const
|
|
33
|
+
export declare const getHtmlKey: (item: Node | Relationship) => "html" | "captionHtml";
|
|
34
|
+
export declare const getHtmlProperty: (item: Node | Relationship) => HTMLElement | undefined;
|
|
33
35
|
/**
|
|
34
36
|
* Creates an empty dataset in which a graph be stored and updated using mobx actions.
|
|
35
37
|
* @returns A new and empty {@link DataSet}.
|
|
36
38
|
*/
|
|
37
|
-
export declare const createDataSet: <T extends Node | Relationship>() => DataSet<T>;
|
|
39
|
+
export declare const createDataSet: <T extends Node | Relationship>() => DataSet<T>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { LogLevelDesc, Logger } from "loglevel";
|
|
2
2
|
declare const nvlLog: Logger;
|
|
3
3
|
export declare const setLogLevel: (level: LogLevelDesc) => void;
|
|
4
4
|
export declare const setupLogging: (logger: Logger, logging: {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
level: LogLevelDesc;
|
|
6
|
+
logger?: (methodName: string, args: unknown) => void;
|
|
7
7
|
}) => void;
|
|
8
|
-
export { nvlLog as log };
|
|
8
|
+
export { nvlLog as log };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { BorderStyles, NvlState } from "./types.js";
|
|
2
2
|
export declare const NodeBorderStyles: BorderStyles;
|
|
3
3
|
export declare const RelationshipBorderStyles: BorderStyles;
|
|
4
4
|
export declare const DefaultZoomLevel = 0.75;
|
|
@@ -6,4 +6,4 @@ export declare const DefaultMaxZoom = 10;
|
|
|
6
6
|
export declare const DefaultMinZoom = 0.075;
|
|
7
7
|
export declare const DefaultMinimapMaxZoom = 0.2;
|
|
8
8
|
export declare const DefaultMinimapMinZoom = 0;
|
|
9
|
-
export declare const DefaultZoomOptions: NvlState['zoomOptions'];
|
|
9
|
+
export declare const DefaultZoomOptions: NvlState['zoomOptions'];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { NvlOptions, NvlState } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Create a new NVL state
|
|
4
4
|
*
|
|
5
5
|
* @param options - The options for the new state.
|
|
6
6
|
* @returns The state object.
|
|
7
7
|
*/
|
|
8
|
-
export declare const createState: (options: NvlOptions) => NvlState;
|
|
8
|
+
export declare const createState: (options: NvlOptions) => NvlState;
|