@neo4j-nvl/base 0.3.1 → 0.3.2
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/README.md +6 -4
- package/dist/base.mjs +1 -1
- package/dist/types/index.d.ts +21 -15
- package/dist/types/layouts/animatedlayout/AnimatedLayout.test.d.ts +1 -0
- package/dist/types/layouts/animatedlayout/animationUtils.test.d.ts +1 -0
- package/dist/types/layouts/d3forcelayout/constants.d.ts +2 -1
- package/dist/types/layouts/d3forcelayout/d3ForceLayout.d.ts +4 -0
- package/dist/types/layouts/forcedirectedlayout/ForceCytoLayout.d.ts +12 -14
- package/dist/types/layouts/forcedirectedlayout/cosebilkentlayout/CoseBilkentLayout.d.ts +1 -1
- package/dist/types/layouts/forcedirectedlayout/physlayout/PhysLayout.d.ts +103 -113
- package/dist/types/layouts/forcedirectedlayout/physlayout/PhysLayout.test.d.ts +1 -0
- package/dist/types/layouts/forcedirectedlayout/physlayout/glwrapper.d.ts +2 -2
- package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/multilevel-fragment-verlet.d.ts +2 -0
- package/dist/types/layouts/forcedirectedlayout/physlayout/shaders/multilevel-repulsive-fragment-verlet.d.ts +2 -0
- package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/SolarMerger.test.d.ts +1 -0
- package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/solar-placer.d.ts +2 -4
- package/dist/types/layouts/forcedirectedlayout/physlayout/solarmerger/solar-placer.test.d.ts +1 -0
- package/dist/types/layouts/hierarchicallayout/HierarchicalLayout.d.ts +2 -2
- package/dist/types/modules/CallbackHelper.d.ts +6 -6
- package/dist/types/modules/ExternalCallbackHandler.d.ts +2 -0
- package/dist/types/modules/NvlController.d.ts +89 -93
- package/dist/types/modules/Shader.d.ts +14 -14
- package/dist/types/modules/ZoomTransitionHandler.d.ts +1 -1
- package/dist/types/modules/ZoomTransitionHandler.test.d.ts +1 -0
- package/dist/types/modules/dataset.test.d.ts +1 -0
- package/dist/types/modules/logging.d.ts +7 -4
- package/dist/types/modules/state.d.ts +38 -11
- package/dist/types/modules/state.test.d.ts +1 -0
- package/dist/types/renderers/canvasrenderer/Animation.test.d.ts +1 -0
- package/dist/types/renderers/canvasrenderer/CanvasRenderer.test.d.ts +1 -0
- package/dist/types/renderers/canvasrenderer/ImageCache.d.ts +6 -6
- package/dist/types/renderers/canvasrenderer/ImageCache.test.d.ts +1 -0
- package/dist/types/renderers/canvasrenderer/arrows/ArrowBundle.test.d.ts +1 -0
- package/dist/types/renderers/canvasrenderer/arrows/ArrowBundler.test.d.ts +1 -0
- package/dist/types/renderers/canvasrenderer/arrows/arrows.d.ts +5 -3
- package/dist/types/renderers/canvasrenderer/arrows/arrows.test.d.ts +1 -0
- package/dist/types/renderers/canvasrenderer/arrows/constants.d.ts +0 -13
- package/dist/types/renderers/canvasrenderer/nodes/nodes.d.ts +4 -4
- package/dist/types/renderers/canvasrenderer/nodes/nodes.test.d.ts +1 -0
- package/dist/types/renderers/canvasrenderer/util.test.d.ts +1 -0
- package/dist/types/renderers/canvasrenderer/wordwrap.test.d.ts +1 -0
- package/dist/types/renderers/webglrenderer/Controller.d.ts +2 -2
- package/dist/types/renderers/webglrenderer/Controller.test.d.ts +1 -0
- package/dist/types/renderers/webglrenderer/Renderer.d.ts +3 -7
- package/dist/types/types/graph-element.d.ts +35 -3
- package/dist/types/types/nvl-window-functions.d.ts +16 -0
- package/dist/types/types/utils.d.ts +1 -0
- package/dist/types/utils/canvasManagement.d.ts +1 -1
- package/dist/types/utils/canvasManagement.test.d.ts +1 -0
- package/dist/types/utils/constants.d.ts +2 -0
- package/dist/types/utils/errors.test.d.ts +1 -0
- package/dist/types/utils/geometry.d.ts +3 -3
- package/dist/types/utils/geometry.test.d.ts +1 -0
- package/dist/types/utils/graphObjectUtils.d.ts +21 -7
- package/dist/types/utils/graphObjectUtils.test.d.ts +1 -0
- package/dist/types/utils/hittest.test.d.ts +1 -0
- package/dist/types/utils/mouseUtils.test.d.ts +1 -0
- package/dist/types/utils/segmentAnalytics.d.ts +51 -0
- package/dist/types/utils/zoomFunctions.d.ts +3 -3
- package/dist/types/utils/zoomFunctions.test.d.ts +1 -0
- package/package.json +23 -5
|
@@ -4,6 +4,7 @@ export declare const MaxIndexBuffer = 65536;
|
|
|
4
4
|
export declare const MinRelLength = 100;
|
|
5
5
|
export declare const Gravity = 100;
|
|
6
6
|
export declare const SimulationStopVelocity = 100;
|
|
7
|
+
export declare const VerletSimulationStopVelocity = 0.1;
|
|
7
8
|
export declare const MappingEnd = 999999;
|
|
8
9
|
export declare const ActiveAnimDuration = 1000;
|
|
9
10
|
export declare const DefaultNodeSize = 25;
|
|
@@ -28,3 +29,4 @@ export declare const GlAdjust: number;
|
|
|
28
29
|
*/
|
|
29
30
|
export declare const getDevicePixelRatio: () => number;
|
|
30
31
|
export declare const HtmlCaptionMinWidthThreshold = 5;
|
|
32
|
+
export declare const allowedWrappers: string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -10,11 +10,11 @@ export interface Point {
|
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* This function checks if the coordinates are defined.
|
|
13
|
-
* @param {Point} from - The node the edge starts from.
|
|
14
|
-
* @param {Point} to - The node the edge ends at.
|
|
13
|
+
* @param {Point | Node} from - The node the edge starts from.
|
|
14
|
+
* @param {Point | Node} to - The node the edge ends at.
|
|
15
15
|
* @returns {boolean} True if the coordinates are defined.
|
|
16
16
|
*/
|
|
17
|
-
export declare const areCoordinateDefined: (from: Point, to: Point) => boolean;
|
|
17
|
+
export declare const areCoordinateDefined: (from: Point | Node, to: Point | Node) => boolean;
|
|
18
18
|
/**
|
|
19
19
|
* Returns true if the two points are within PointDelta pixels of each other
|
|
20
20
|
* This function is used to determine if a new point is close enough to an
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type { DataSet } from '../modules/dataset';
|
|
2
|
+
import type { Node, Relationship } from '../types/graph-element';
|
|
3
|
+
export type FlatRel = Omit<Relationship & {
|
|
4
|
+
bundledRels: Omit<Relationship, 'from' | 'to'>[];
|
|
5
|
+
key: string;
|
|
6
|
+
}, 'id'>;
|
|
7
|
+
/**
|
|
8
|
+
* Flattens a list of relationships so only one relationship remains between two nodes.
|
|
9
|
+
* Falls back to default rel color when relationships between two nodes have varying colors.
|
|
10
|
+
* Sums widths of relationships when more than one relationship exists between two nodes.
|
|
11
|
+
* @param {Relationship[]} relItems List of all relationships and their connected ids.
|
|
12
|
+
* @return {FlatRel[]} A flattened list of relationships.
|
|
13
|
+
*/
|
|
14
|
+
export declare const relItemsToFlatList: (relItems: Relationship[]) => FlatRel[];
|
|
15
|
+
export declare const getAdjNodesMapAndRelMap: (rels: Relationship[]) => {
|
|
16
|
+
adjNodesMap: Record<string, Set<string>>;
|
|
17
|
+
relMap: Record<string, Relationship[]>;
|
|
5
18
|
};
|
|
6
|
-
export
|
|
7
|
-
connectedNodes:
|
|
8
|
-
connectedRels:
|
|
19
|
+
export declare const getConnectedNodesAndRels: (addedNodes: Set<Node['id']>, addedRels: Set<Relationship['id']>, nodes: DataSet<Node>, rels: DataSet<Relationship>) => {
|
|
20
|
+
connectedNodes: Record<string, Node>;
|
|
21
|
+
connectedRels: Record<string, Relationship>;
|
|
9
22
|
};
|
|
23
|
+
export declare const hasSizeChanged: (graphObjectUpdates?: Node[]) => boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as SegmentJS from '@segment/analytics-next';
|
|
2
|
+
type AnalyticsTrackPayload = {
|
|
3
|
+
eventPrefix: string;
|
|
4
|
+
event: string;
|
|
5
|
+
properties?: Record<string, unknown>;
|
|
6
|
+
};
|
|
7
|
+
export declare abstract class AnalyticsFunction {
|
|
8
|
+
/**
|
|
9
|
+
* Perform asynchronous bootstrapping
|
|
10
|
+
*/
|
|
11
|
+
abstract init(apiKey: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Associate session with known user identifier
|
|
14
|
+
*/
|
|
15
|
+
abstract identify(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Load unique segment Id in the localstorage
|
|
18
|
+
*/
|
|
19
|
+
abstract loadSavedSegmentId(): string;
|
|
20
|
+
/**
|
|
21
|
+
* save unique segment Id in the localstorage
|
|
22
|
+
*/
|
|
23
|
+
abstract saveTrackingId(segmentId: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* get/fetch unique segment Id from the localstorage
|
|
26
|
+
*/
|
|
27
|
+
abstract getSegmentTrackingId(): Record<string, unknown>;
|
|
28
|
+
/**
|
|
29
|
+
* Track arbitrary event
|
|
30
|
+
*/
|
|
31
|
+
abstract trackEvent(payload: AnalyticsTrackPayload): void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Analytics adapter for Segment Analytics.js
|
|
35
|
+
*/
|
|
36
|
+
export declare class SegmentAnalytics implements AnalyticsFunction {
|
|
37
|
+
private analytics;
|
|
38
|
+
constructor();
|
|
39
|
+
init(apiKey: string): void;
|
|
40
|
+
trackEvent(payload: {
|
|
41
|
+
eventPrefix: string;
|
|
42
|
+
event: string;
|
|
43
|
+
properties: SegmentJS.EventProperties;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
identify(): void;
|
|
46
|
+
loadSavedSegmentId(): string;
|
|
47
|
+
getSegmentTrackingId(): any;
|
|
48
|
+
saveTrackingId(segmentId: string): void;
|
|
49
|
+
private ready;
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Node } from '../index';
|
|
2
2
|
import type { Point } from './geometry';
|
|
3
|
-
declare const getExtremeLimits: (nodePositions: Point[]
|
|
3
|
+
declare const getExtremeLimits: (nodePositions: Point[]) => Point[];
|
|
4
4
|
declare const getMaxDistance: (extremeLimits?: Point[]) => number;
|
|
5
5
|
declare const getPositionBoundaries: (nodePositions?: Point[] | Node[], maxNodeRadius?: number) => {
|
|
6
6
|
centerX: number;
|
|
@@ -13,8 +13,8 @@ declare const getZoomLevel: (viewWidth: number, viewHeight: number, sceneWidth:
|
|
|
13
13
|
zoomY: number;
|
|
14
14
|
};
|
|
15
15
|
declare const createZoomTarget: (zoomX: number, zoomY: number, minZoom?: number, maxZoom?: number) => number;
|
|
16
|
-
declare const getFlexibleZoomLimit: (nodePositions: Point[]
|
|
16
|
+
declare const getFlexibleZoomLimit: (nodePositions: Point[], rect: HTMLCanvasElement, maxNodeRadius: number) => number;
|
|
17
17
|
declare const getNewZoomWithinLimits: (newZoom: number, oldZoom: number, minZoom: number, maxZoom: number) => number;
|
|
18
18
|
declare const isZoomOutAtLimit: (newZoom: number, oldZoom: number, zoomOutLimit: number) => boolean;
|
|
19
|
-
declare const getDynamicZoom: (nodePositions: Point[]
|
|
19
|
+
declare const getDynamicZoom: (nodePositions: Point[] & Node[], minZoom: number, maxZoom: number, rect: HTMLCanvasElement, newZoom: number, currentZoom: number) => number;
|
|
20
20
|
export { getFlexibleZoomLimit, isZoomOutAtLimit, getNewZoomWithinLimits, getExtremeLimits, getMaxDistance, getPositionBoundaries, getZoomLevel, createZoomTarget, getDynamicZoom };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neo4j-nvl/base",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"license": "SEE LICENSE IN 'LICENSE.txt'",
|
|
5
|
+
"homepage": "https://neo4j.com/docs/nvl/current/",
|
|
6
|
+
"description": "Base library for the Neo4j Visualization Library",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"neo4j",
|
|
9
|
+
"visualization",
|
|
10
|
+
"graph"
|
|
11
|
+
],
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://community.neo4j.com/c/neo4j-graph-platform/neo4j-bloom"
|
|
14
|
+
},
|
|
5
15
|
"main": "dist/base.mjs",
|
|
6
16
|
"types": "dist/types/index.d.ts",
|
|
7
17
|
"files": [
|
|
@@ -9,8 +19,10 @@
|
|
|
9
19
|
"dist"
|
|
10
20
|
],
|
|
11
21
|
"scripts": {
|
|
12
|
-
"build": "
|
|
22
|
+
"build": "tsc && webpack",
|
|
23
|
+
"watch": "concurrently 'tsc -w' 'webpack -w' -k -n 'tsc,webpack' -c 'cyan,magenta'",
|
|
13
24
|
"test": "jest",
|
|
25
|
+
"eslint": "eslint ./src/ --plugin only-warn",
|
|
14
26
|
"coverage": "yarn test --coverage --silent",
|
|
15
27
|
"prepack": "cp ../../LICENSE.txt ./",
|
|
16
28
|
"postpack": "rm LICENSE.txt"
|
|
@@ -22,9 +34,8 @@
|
|
|
22
34
|
"tsconfig": "./tsconfig.json"
|
|
23
35
|
},
|
|
24
36
|
"dependencies": {
|
|
25
|
-
"@neo4j-nvl/layout-workers": "^0.3.
|
|
37
|
+
"@neo4j-nvl/layout-workers": "^0.3.2",
|
|
26
38
|
"color-string": "^1.9.1",
|
|
27
|
-
"contrast": "1.0.1",
|
|
28
39
|
"d3-force": "^3.0.0",
|
|
29
40
|
"gl-matrix": "^3.3.0",
|
|
30
41
|
"glsl-inject-defines": "^1.0.3",
|
|
@@ -32,14 +43,20 @@
|
|
|
32
43
|
"loglevel": "^1.8.0",
|
|
33
44
|
"mobx": "^3.2.2",
|
|
34
45
|
"node-pid-controller": "^1.0.1",
|
|
35
|
-
"resizelistener": "^1.1.0"
|
|
46
|
+
"resizelistener": "^1.1.0",
|
|
47
|
+
"tinycolor2": "1.6.0",
|
|
48
|
+
"uuid": "^8.3.2"
|
|
36
49
|
},
|
|
37
50
|
"devDependencies": {
|
|
51
|
+
"@segment/analytics-next": "^1.70.0",
|
|
38
52
|
"@types/color-string": "^1.5.5",
|
|
39
53
|
"@types/d3-force": "^3.0.3",
|
|
40
54
|
"@types/lodash": "4.14.202",
|
|
55
|
+
"@types/segment-analytics": "0.0.38",
|
|
56
|
+
"@types/tinycolor2": "^1.4.6",
|
|
41
57
|
"babel-loader": "^8.2.5",
|
|
42
58
|
"copy-webpack-plugin": "^11.0.0",
|
|
59
|
+
"eslint": "^8.38.0",
|
|
43
60
|
"jest": "^29.7.0",
|
|
44
61
|
"typedoc": "^0.23.15",
|
|
45
62
|
"typescript": "^5.4.5",
|
|
@@ -47,6 +64,7 @@
|
|
|
47
64
|
"webpack-cli": "^5.0.0"
|
|
48
65
|
},
|
|
49
66
|
"peerDependencies": {
|
|
67
|
+
"eslint": "*",
|
|
50
68
|
"jest": "*",
|
|
51
69
|
"typescript": "*"
|
|
52
70
|
}
|