@deck.gl-community/graph-layers 9.1.0-beta.8 → 9.2.0-beta.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/LICENSE +1 -1
- package/dist/_deprecated/old-constants.d.ts +107 -0
- package/dist/_deprecated/old-constants.d.ts.map +1 -0
- package/dist/_deprecated/old-constants.js +111 -0
- package/dist/_deprecated/old-constants.js.map +1 -0
- package/dist/core/cache.d.ts +0 -1
- package/dist/core/cache.js +0 -1
- package/dist/core/constants.d.ts +12 -100
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +3 -44
- package/dist/core/constants.js.map +1 -1
- package/dist/core/graph-engine.d.ts +12 -11
- package/dist/core/graph-engine.d.ts.map +1 -1
- package/dist/core/graph-engine.js +22 -11
- package/dist/core/graph-engine.js.map +1 -1
- package/dist/core/graph-layout.d.ts +48 -21
- package/dist/core/graph-layout.d.ts.map +1 -1
- package/dist/core/graph-layout.js +91 -24
- package/dist/core/graph-layout.js.map +1 -1
- package/dist/core/interaction-manager.d.ts +6 -4
- package/dist/core/interaction-manager.d.ts.map +1 -1
- package/dist/core/interaction-manager.js +59 -17
- package/dist/core/interaction-manager.js.map +1 -1
- package/dist/graph/edge.d.ts +7 -7
- package/dist/graph/edge.d.ts.map +1 -1
- package/dist/graph/edge.js +3 -6
- package/dist/graph/edge.js.map +1 -1
- package/dist/graph/graph.d.ts +2 -3
- package/dist/graph/graph.js +8 -9
- package/dist/graph/graph.js.map +1 -1
- package/dist/graph/node.d.ts +7 -8
- package/dist/graph/node.d.ts.map +1 -1
- package/dist/graph/node.js +3 -5
- package/dist/graph/node.js.map +1 -1
- package/dist/graph-style-schema.cdn.d.ts +2 -0
- package/dist/graph-style-schema.cdn.js +2 -0
- package/dist/graph-style-schema.json +12 -0
- package/dist/index.cjs +2821 -549
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +28 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -21
- package/dist/index.js.map +1 -1
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.d.ts +0 -1
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.js +0 -1
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.d.ts +0 -1
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.js +0 -1
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.d.ts +0 -1
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.js +0 -1
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer.d.ts +0 -1
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer.js +0 -1
- package/dist/layers/common-layers/marker-layer/atlas-data-url.d.ts +0 -1
- package/dist/layers/common-layers/marker-layer/atlas-data-url.js +0 -1
- package/dist/layers/common-layers/marker-layer/marker-layer.d.ts +0 -1
- package/dist/layers/common-layers/marker-layer/marker-layer.js +2 -3
- package/dist/layers/common-layers/marker-layer/marker-list.d.ts +2 -63
- package/dist/layers/common-layers/marker-layer/marker-list.d.ts.map +1 -1
- package/dist/layers/common-layers/marker-layer/marker-list.js +1 -65
- package/dist/layers/common-layers/marker-layer/marker-list.js.map +1 -1
- package/dist/layers/common-layers/marker-layer/marker-mapping.d.ts +0 -1
- package/dist/layers/common-layers/marker-layer/marker-mapping.js +0 -1
- package/dist/layers/common-layers/spline-layer/spline-layer.d.ts +0 -1
- package/dist/layers/common-layers/spline-layer/spline-layer.js +0 -1
- package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.d.ts +0 -1
- package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.js +0 -1
- package/dist/layers/edge-attachment-helper.d.ts +15 -0
- package/dist/layers/edge-attachment-helper.d.ts.map +1 -0
- package/dist/layers/edge-attachment-helper.js +230 -0
- package/dist/layers/edge-attachment-helper.js.map +1 -0
- package/dist/layers/edge-layer.d.ts +1 -5
- package/dist/layers/edge-layer.d.ts.map +1 -1
- package/dist/layers/edge-layer.js +9 -11
- package/dist/layers/edge-layer.js.map +1 -1
- package/dist/layers/edge-layers/arrow-2d-geometry.d.ts +4 -0
- package/dist/layers/edge-layers/arrow-2d-geometry.d.ts.map +1 -0
- package/dist/layers/edge-layers/arrow-2d-geometry.js +42 -0
- package/dist/layers/edge-layers/arrow-2d-geometry.js.map +1 -0
- package/dist/layers/edge-layers/curved-edge-layer.d.ts +1 -2
- package/dist/layers/edge-layers/curved-edge-layer.js +1 -2
- package/dist/layers/edge-layers/edge-arrow-layer.d.ts +21 -0
- package/dist/layers/edge-layers/edge-arrow-layer.d.ts.map +1 -0
- package/dist/layers/edge-layers/edge-arrow-layer.js +131 -0
- package/dist/layers/edge-layers/edge-arrow-layer.js.map +1 -0
- package/dist/layers/edge-layers/edge-label-layer.d.ts +1 -2
- package/dist/layers/edge-layers/edge-label-layer.js +1 -2
- package/dist/layers/edge-layers/flow-layer.d.ts +1 -2
- package/dist/layers/edge-layers/flow-layer.js +1 -2
- package/dist/layers/edge-layers/path-edge-layer.d.ts +0 -1
- package/dist/layers/edge-layers/path-edge-layer.js +0 -1
- package/dist/layers/edge-layers/straight-line-edge-layer.d.ts +0 -1
- package/dist/layers/edge-layers/straight-line-edge-layer.js +0 -1
- package/dist/layers/graph-layer.d.ts +22 -23
- package/dist/layers/graph-layer.d.ts.map +1 -1
- package/dist/layers/graph-layer.js +218 -62
- package/dist/layers/graph-layer.js.map +1 -1
- package/dist/layers/node-layers/circle-layer.d.ts +0 -1
- package/dist/layers/node-layers/circle-layer.js +0 -1
- package/dist/layers/node-layers/image-layer.d.ts +0 -1
- package/dist/layers/node-layers/image-layer.js +0 -1
- package/dist/layers/node-layers/label-layer.d.ts +1 -2
- package/dist/layers/node-layers/label-layer.js +1 -2
- package/dist/layers/node-layers/path-rounded-rectangle-layer.d.ts +0 -1
- package/dist/layers/node-layers/path-rounded-rectangle-layer.js +1 -2
- package/dist/layers/node-layers/rectangle-layer.d.ts +0 -1
- package/dist/layers/node-layers/rectangle-layer.js +0 -1
- package/dist/layers/node-layers/rounded-rectangle-layer-fragment.d.ts +0 -1
- package/dist/layers/node-layers/rounded-rectangle-layer-fragment.js +0 -1
- package/dist/layers/node-layers/rounded-rectangle-layer.d.ts +1 -2
- package/dist/layers/node-layers/rounded-rectangle-layer.js +2 -3
- package/dist/layers/node-layers/zoomable-marker-layer.d.ts +1 -2
- package/dist/layers/node-layers/zoomable-marker-layer.js +1 -2
- package/dist/layouts/d3-dag/d3-dag-layout.d.ts +117 -0
- package/dist/layouts/d3-dag/d3-dag-layout.d.ts.map +1 -0
- package/dist/layouts/d3-dag/d3-dag-layout.js +716 -0
- package/dist/layouts/d3-dag/d3-dag-layout.js.map +1 -0
- package/dist/layouts/d3-force/d3-force-layout.d.ts +4 -4
- package/dist/layouts/d3-force/d3-force-layout.d.ts.map +1 -1
- package/dist/layouts/d3-force/d3-force-layout.js +25 -10
- package/dist/layouts/d3-force/d3-force-layout.js.map +1 -1
- package/dist/layouts/d3-force/worker.d.ts +0 -1
- package/dist/layouts/d3-force/worker.js +0 -1
- package/dist/layouts/experimental/force-multi-graph-layout.d.ts +9 -8
- package/dist/layouts/experimental/force-multi-graph-layout.d.ts.map +1 -1
- package/dist/layouts/experimental/force-multi-graph-layout.js +15 -11
- package/dist/layouts/experimental/force-multi-graph-layout.js.map +1 -1
- package/dist/layouts/experimental/hive-plot-layout.d.ts +11 -8
- package/dist/layouts/experimental/hive-plot-layout.d.ts.map +1 -1
- package/dist/layouts/experimental/hive-plot-layout.js +12 -7
- package/dist/layouts/experimental/hive-plot-layout.js.map +1 -1
- package/dist/layouts/experimental/radial-layout.d.ts +10 -7
- package/dist/layouts/experimental/radial-layout.d.ts.map +1 -1
- package/dist/layouts/experimental/radial-layout.js +11 -6
- package/dist/layouts/experimental/radial-layout.js.map +1 -1
- package/dist/layouts/gpu-force/gpu-force-layout.d.ts +4 -4
- package/dist/layouts/gpu-force/gpu-force-layout.d.ts.map +1 -1
- package/dist/layouts/gpu-force/gpu-force-layout.js +18 -9
- package/dist/layouts/gpu-force/gpu-force-layout.js.map +1 -1
- package/dist/layouts/gpu-force/worker.d.ts +0 -1
- package/dist/layouts/gpu-force/worker.js +0 -1
- package/dist/layouts/simple-layout.d.ts +19 -12
- package/dist/layouts/simple-layout.d.ts.map +1 -1
- package/dist/layouts/simple-layout.js +26 -15
- package/dist/layouts/simple-layout.js.map +1 -1
- package/dist/loaders/create-graph.d.ts +1 -2
- package/dist/loaders/create-graph.js +3 -4
- package/dist/loaders/edge-parsers.d.ts +1 -2
- package/dist/loaders/edge-parsers.js +2 -3
- package/dist/loaders/edge-parsers.js.map +1 -1
- package/dist/loaders/json-loader.d.ts +2 -3
- package/dist/loaders/json-loader.d.ts.map +1 -1
- package/dist/loaders/json-loader.js +5 -6
- package/dist/loaders/json-loader.js.map +1 -1
- package/dist/loaders/node-parsers.d.ts +1 -2
- package/dist/loaders/node-parsers.js +2 -3
- package/dist/loaders/node-parsers.js.map +1 -1
- package/dist/loaders/simple-json-graph-loader.d.ts +0 -1
- package/dist/loaders/simple-json-graph-loader.d.ts.map +1 -1
- package/dist/loaders/simple-json-graph-loader.js +5 -6
- package/dist/loaders/simple-json-graph-loader.js.map +1 -1
- package/dist/loaders/table-graph-loader.d.ts +3 -4
- package/dist/loaders/table-graph-loader.js +5 -6
- package/dist/loaders/table-graph-loader.js.map +1 -1
- package/dist/style/graph-layer-stylesheet.d.ts +34 -0
- package/dist/style/graph-layer-stylesheet.d.ts.map +1 -0
- package/dist/style/graph-layer-stylesheet.js +39 -0
- package/dist/style/graph-layer-stylesheet.js.map +1 -0
- package/dist/style/graph-style-accessor-map.d.ts +93 -0
- package/dist/style/graph-style-accessor-map.d.ts.map +1 -0
- package/dist/style/graph-style-accessor-map.js +93 -0
- package/dist/style/graph-style-accessor-map.js.map +1 -0
- package/dist/style/graph-style-engine.d.ts +10 -0
- package/dist/style/graph-style-engine.d.ts.map +1 -0
- package/dist/style/graph-style-engine.js +163 -0
- package/dist/style/graph-style-engine.js.map +1 -0
- package/dist/style/graph-stylesheet.schema.d.ts +310 -0
- package/dist/style/graph-stylesheet.schema.d.ts.map +1 -0
- package/dist/style/graph-stylesheet.schema.js +237 -0
- package/dist/style/graph-stylesheet.schema.js.map +1 -0
- package/dist/style/style-engine.d.ts +33 -0
- package/dist/style/style-engine.d.ts.map +1 -0
- package/dist/style/style-engine.js +121 -0
- package/dist/style/style-engine.js.map +1 -0
- package/dist/style/style-property.d.ts +2 -3
- package/dist/style/style-property.d.ts.map +1 -1
- package/dist/style/style-property.js +224 -48
- package/dist/style/style-property.js.map +1 -1
- package/dist/utils/collapsed-chains.d.ts +17 -0
- package/dist/utils/collapsed-chains.d.ts.map +1 -0
- package/dist/utils/collapsed-chains.js +197 -0
- package/dist/utils/collapsed-chains.js.map +1 -0
- package/dist/utils/layer-utils.d.ts +0 -1
- package/dist/utils/layer-utils.d.ts.map +1 -1
- package/dist/utils/layer-utils.js +0 -1
- package/dist/utils/log.d.ts +2 -1
- package/dist/utils/log.d.ts.map +1 -1
- package/dist/utils/log.js +12 -2
- package/dist/utils/log.js.map +1 -1
- package/dist/utils/node-boundary.d.ts +10 -0
- package/dist/utils/node-boundary.d.ts.map +1 -0
- package/dist/utils/node-boundary.js +130 -0
- package/dist/utils/node-boundary.js.map +1 -0
- package/dist/utils/polygon-calculations.d.ts +0 -1
- package/dist/utils/polygon-calculations.js +0 -1
- package/dist/widgets/long-press-button.d.ts +0 -1
- package/dist/widgets/long-press-button.js +0 -1
- package/dist/widgets/view-control-widget.d.ts +4 -5
- package/dist/widgets/view-control-widget.d.ts.map +1 -1
- package/dist/widgets/view-control-widget.js +10 -8
- package/dist/widgets/view-control-widget.js.map +1 -1
- package/package.json +23 -7
- package/src/_deprecated/old-constants.ts +122 -0
- package/src/core/constants.ts +21 -43
- package/src/core/graph-engine.ts +24 -9
- package/src/core/graph-layout.ts +133 -28
- package/src/core/interaction-manager.ts +80 -20
- package/src/graph/edge.ts +6 -6
- package/src/graph/graph.ts +7 -7
- package/src/graph/node.ts +6 -6
- package/src/index.ts +31 -6
- package/src/layers/common-layers/marker-layer/marker-list.ts +62 -64
- package/src/layers/edge-attachment-helper.ts +355 -0
- package/src/layers/edge-layer.ts +6 -7
- package/src/layers/edge-layers/arrow-2d-geometry.ts +51 -0
- package/src/layers/edge-layers/edge-arrow-layer.ts +171 -0
- package/src/layers/graph-layer.ts +304 -86
- package/src/layouts/d3-dag/d3-dag-layout.ts +969 -0
- package/src/layouts/d3-force/d3-force-layout.ts +33 -11
- package/src/layouts/experimental/force-multi-graph-layout.ts +22 -13
- package/src/layouts/experimental/hive-plot-layout.ts +22 -10
- package/src/layouts/experimental/radial-layout.ts +20 -8
- package/src/layouts/gpu-force/gpu-force-layout.ts +22 -10
- package/src/layouts/simple-layout.ts +48 -25
- package/src/loaders/edge-parsers.ts +2 -2
- package/src/loaders/json-loader.ts +2 -2
- package/src/loaders/node-parsers.ts +2 -2
- package/src/loaders/simple-json-graph-loader.ts +2 -2
- package/src/loaders/table-graph-loader.ts +2 -2
- package/src/style/graph-layer-stylesheet.ts +99 -0
- package/src/style/graph-style-accessor-map.ts +103 -0
- package/src/style/graph-style-engine.ts +229 -0
- package/src/style/graph-stylesheet.schema.ts +344 -0
- package/src/style/style-engine.ts +168 -0
- package/src/style/style-property.ts +314 -51
- package/src/utils/collapsed-chains.ts +261 -0
- package/src/utils/log.ts +15 -1
- package/src/utils/node-boundary.ts +238 -0
- package/src/widgets/view-control-widget.tsx +15 -13
- package/dist/style/style-sheet.d.ts +0 -11
- package/dist/style/style-sheet.d.ts.map +0 -1
- package/dist/style/style-sheet.js +0 -253
- package/dist/style/style-sheet.js.map +0 -1
- package/src/style/style-sheet.ts +0 -277
|
@@ -1,14 +1,25 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
export type
|
|
1
|
+
import type { Bounds2D } from '@math.gl/types';
|
|
2
|
+
import type { Graph } from '../graph/graph';
|
|
3
|
+
import type { Node } from '../graph/node';
|
|
4
|
+
import type { Edge } from '../graph/edge';
|
|
5
|
+
export type GraphLayoutState = 'init' | 'start' | 'calculating' | 'done' | 'error';
|
|
6
|
+
export type GraphLayoutEventDetail = {
|
|
7
|
+
bounds: Bounds2D | null;
|
|
8
|
+
};
|
|
9
|
+
export type GraphLayoutProps = {};
|
|
6
10
|
/** All the layout classes are extended from this base layout class. */
|
|
7
|
-
export declare class GraphLayout<OptionsT extends
|
|
11
|
+
export declare abstract class GraphLayout<OptionsT extends GraphLayoutProps = GraphLayoutProps> extends EventTarget {
|
|
8
12
|
/** Name of the layout. */
|
|
9
13
|
protected readonly _name: string;
|
|
10
14
|
/** Extra configuration options of the layout. */
|
|
11
15
|
protected _options: OptionsT;
|
|
16
|
+
/**
|
|
17
|
+
* Last computed layout bounds in local layout coordinates.
|
|
18
|
+
*
|
|
19
|
+
* Subclasses should update this value by overriding {@link _updateBounds}
|
|
20
|
+
* so it reflects the latest geometry before layout lifecycle events fire.
|
|
21
|
+
*/
|
|
22
|
+
protected _bounds: Bounds2D | null;
|
|
12
23
|
version: number;
|
|
13
24
|
state: GraphLayoutState;
|
|
14
25
|
/**
|
|
@@ -22,19 +33,6 @@ export declare class GraphLayout<OptionsT extends GraphLayoutOptions = GraphLayo
|
|
|
22
33
|
* @return - True if the layout is the same as itself.
|
|
23
34
|
*/
|
|
24
35
|
equals(layout: GraphLayout): boolean;
|
|
25
|
-
/** virtual functions: will be implemented in the child class */
|
|
26
|
-
/** first time to pass the graph data into this layout */
|
|
27
|
-
initializeGraph(graph: Graph): void;
|
|
28
|
-
/** update the existing graph */
|
|
29
|
-
updateGraph(graph: Graph): void;
|
|
30
|
-
/** start the layout calculation */
|
|
31
|
-
start(): void;
|
|
32
|
-
/** update the layout calculation */
|
|
33
|
-
update(): void;
|
|
34
|
-
/** resume the layout calculation */
|
|
35
|
-
resume(): void;
|
|
36
|
-
/** stop the layout calculation */
|
|
37
|
-
stop(): void;
|
|
38
36
|
/** access the position of the node in the layout */
|
|
39
37
|
getNodePosition(node: Node): [number, number];
|
|
40
38
|
/** access the layout information of the edge */
|
|
@@ -56,7 +54,37 @@ export declare class GraphLayout<OptionsT extends GraphLayoutOptions = GraphLayo
|
|
|
56
54
|
* @param {Object} node Node to be unlocked
|
|
57
55
|
*/
|
|
58
56
|
unlockNodePosition(node: Node): void;
|
|
59
|
-
|
|
57
|
+
/** Returns the last computed layout bounds, if available. */
|
|
58
|
+
getBounds(): Bounds2D | null;
|
|
59
|
+
/** virtual functions: will be implemented in the child class */
|
|
60
|
+
/** first time to pass the graph data into this layout */
|
|
61
|
+
abstract initializeGraph(graph: Graph): any;
|
|
62
|
+
/** update the existing graph */
|
|
63
|
+
abstract updateGraph(graph: Graph): any;
|
|
64
|
+
/** start the layout calculation */
|
|
65
|
+
abstract start(): any;
|
|
66
|
+
/** update the layout calculation */
|
|
67
|
+
abstract update(): any;
|
|
68
|
+
/** resume the layout calculation */
|
|
69
|
+
abstract resume(): any;
|
|
70
|
+
/** stop the layout calculation */
|
|
71
|
+
abstract stop(): any;
|
|
72
|
+
/** Hook for subclasses to update bounds prior to emitting events. */
|
|
73
|
+
protected _updateBounds(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Utility for subclasses to derive layout bounds from an iterable of [x, y] positions.
|
|
76
|
+
* @param positions Iterable of node positions.
|
|
77
|
+
* @returns Layout bounds for the supplied positions or `null` if none are finite.
|
|
78
|
+
*/
|
|
79
|
+
protected _calculateBounds(positions: Iterable<Readonly<[number, number]> | null | undefined>): Bounds2D | null;
|
|
80
|
+
/**
|
|
81
|
+
* Attempt to coerce an arbitrary value into a finite 2D point.
|
|
82
|
+
* @param value Candidate value that may represent a position.
|
|
83
|
+
* @returns Finite [x, y] tuple or null if the value cannot be interpreted.
|
|
84
|
+
*/
|
|
85
|
+
protected _normalizePosition(value: unknown): [number, number] | null;
|
|
86
|
+
private _isFiniteNumber;
|
|
87
|
+
protected _updateState(state: GraphLayoutState): void;
|
|
60
88
|
/** @fires GraphLayout#onLayoutStart */
|
|
61
89
|
protected _onLayoutStart: () => void;
|
|
62
90
|
/** @fires GraphLayout#onLayoutChange */
|
|
@@ -66,4 +94,3 @@ export declare class GraphLayout<OptionsT extends GraphLayoutOptions = GraphLayo
|
|
|
66
94
|
/** @fires GraphLayout#onLayoutError */
|
|
67
95
|
protected _onLayoutError: () => void;
|
|
68
96
|
}
|
|
69
|
-
//# sourceMappingURL=graph-layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-layout.d.ts","sourceRoot":"","sources":["../../src/core/graph-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,KAAK,EAAC,0BAAuB;AAC1C,OAAO,KAAK,EAAC,IAAI,EAAC,yBAAsB;AACxC,OAAO,KAAK,EAAC,IAAI,EAAC,yBAAsB;AAMxC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnF,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"graph-layout.d.ts","sourceRoot":"","sources":["../../src/core/graph-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAC,KAAK,EAAC,0BAAuB;AAC1C,OAAO,KAAK,EAAC,IAAI,EAAC,yBAAsB;AACxC,OAAO,KAAK,EAAC,IAAI,EAAC,yBAAsB;AAMxC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAElC,uEAAuE;AACvE,8BAAsB,WAAW,CAC/B,QAAQ,SAAS,gBAAgB,GAAG,gBAAgB,CACpD,SAAQ,WAAW;IACnB,0BAA0B;IAC1B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAiB;IACjD,iDAAiD;IACjD,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE7B;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAEnC,OAAO,SAAK;IACZ,KAAK,EAAE,gBAAgB,CAAU;IAExC;;;OAGG;gBACS,OAAO,EAAE,QAAQ;IAK7B;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IASpC,oDAAoD;IACpD,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAI7C,gDAAgD;IAChD,eAAe,CAAC,IAAI,EAAE,IAAI;;;;;;IAS1B;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAEjD;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,IAAI;IAE7B,6DAA6D;IAC7D,SAAS,IAAI,QAAQ,GAAG,IAAI;IAI1B,gEAAgE;IAElE,yDAAyD;IACzD,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK;IACrC,gCAAgC;IAChC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK;IACjC,mCAAmC;IACnC,QAAQ,CAAC,KAAK;IACd,oCAAoC;IACpC,QAAQ,CAAC,MAAM;IACf,oCAAoC;IACpC,QAAQ,CAAC,MAAM;IACf,kCAAkC;IAClC,QAAQ,CAAC,IAAI;IAKb,qEAAqE;IAErE,SAAS,CAAC,aAAa,IAAI,IAAI;IAE/B;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CACxB,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GACjE,QAAQ,GAAG,IAAI;IAiClB;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAmBrE,OAAO,CAAC,eAAe;IAIvB,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,gBAAgB;IAK9C,uCAAuC;IACvC,SAAS,CAAC,cAAc,QAAO,IAAI,CAYjC;IAEF,wCAAwC;IACxC,SAAS,CAAC,eAAe,QAAO,IAAI,CAYlC;IAEF,sCAAsC;IACtC,SAAS,CAAC,aAAa,QAAO,IAAI,CAYhC;IAEF,uCAAuC;IACvC,SAAS,CAAC,cAAc,QAAO,IAAI,CASjC;CACH"}
|
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import isEqual from 'lodash.isequal';
|
|
5
|
-
import {
|
|
5
|
+
import { log } from '../utils/log';
|
|
6
6
|
/** All the layout classes are extended from this base layout class. */
|
|
7
7
|
export class GraphLayout extends EventTarget {
|
|
8
8
|
/** Name of the layout. */
|
|
9
9
|
_name = 'GraphLayout';
|
|
10
10
|
/** Extra configuration options of the layout. */
|
|
11
11
|
_options;
|
|
12
|
+
/**
|
|
13
|
+
* Last computed layout bounds in local layout coordinates.
|
|
14
|
+
*
|
|
15
|
+
* Subclasses should update this value by overriding {@link _updateBounds}
|
|
16
|
+
* so it reflects the latest geometry before layout lifecycle events fire.
|
|
17
|
+
*/
|
|
18
|
+
_bounds = null;
|
|
12
19
|
version = 0;
|
|
13
|
-
state = '
|
|
20
|
+
state = 'init';
|
|
14
21
|
/**
|
|
15
22
|
* Constructor of GraphLayout
|
|
16
23
|
* @param options extra configuration options of the layout
|
|
@@ -30,19 +37,7 @@ export class GraphLayout extends EventTarget {
|
|
|
30
37
|
}
|
|
31
38
|
return this._name === layout._name && isEqual(this._options, layout._options);
|
|
32
39
|
}
|
|
33
|
-
|
|
34
|
-
/** first time to pass the graph data into this layout */
|
|
35
|
-
initializeGraph(graph) { }
|
|
36
|
-
/** update the existing graph */
|
|
37
|
-
updateGraph(graph) { }
|
|
38
|
-
/** start the layout calculation */
|
|
39
|
-
start() { }
|
|
40
|
-
/** update the layout calculation */
|
|
41
|
-
update() { }
|
|
42
|
-
/** resume the layout calculation */
|
|
43
|
-
resume() { }
|
|
44
|
-
/** stop the layout calculation */
|
|
45
|
-
stop() { }
|
|
40
|
+
// Accessors
|
|
46
41
|
/** access the position of the node in the layout */
|
|
47
42
|
getNodePosition(node) {
|
|
48
43
|
return [0, 0];
|
|
@@ -50,7 +45,7 @@ export class GraphLayout extends EventTarget {
|
|
|
50
45
|
/** access the layout information of the edge */
|
|
51
46
|
getEdgePosition(edge) {
|
|
52
47
|
return {
|
|
53
|
-
type:
|
|
48
|
+
type: 'line',
|
|
54
49
|
sourcePosition: [0, 0],
|
|
55
50
|
targetPosition: [0, 0],
|
|
56
51
|
controlPoints: []
|
|
@@ -68,44 +63,117 @@ export class GraphLayout extends EventTarget {
|
|
|
68
63
|
* @param {Object} node Node to be unlocked
|
|
69
64
|
*/
|
|
70
65
|
unlockNodePosition(node) { }
|
|
66
|
+
/** Returns the last computed layout bounds, if available. */
|
|
67
|
+
getBounds() {
|
|
68
|
+
return this._bounds;
|
|
69
|
+
}
|
|
71
70
|
// INTERNAL METHODS
|
|
71
|
+
/** Hook for subclasses to update bounds prior to emitting events. */
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
73
|
+
_updateBounds() { }
|
|
74
|
+
/**
|
|
75
|
+
* Utility for subclasses to derive layout bounds from an iterable of [x, y] positions.
|
|
76
|
+
* @param positions Iterable of node positions.
|
|
77
|
+
* @returns Layout bounds for the supplied positions or `null` if none are finite.
|
|
78
|
+
*/
|
|
79
|
+
_calculateBounds(positions) {
|
|
80
|
+
let minX = Number.POSITIVE_INFINITY;
|
|
81
|
+
let maxX = Number.NEGATIVE_INFINITY;
|
|
82
|
+
let minY = Number.POSITIVE_INFINITY;
|
|
83
|
+
let maxY = Number.NEGATIVE_INFINITY;
|
|
84
|
+
for (const position of positions) {
|
|
85
|
+
if (!position) {
|
|
86
|
+
// eslint-disable-next-line no-continue
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const [x, y] = position;
|
|
90
|
+
if (!Number.isFinite(x) || !Number.isFinite(y)) {
|
|
91
|
+
// eslint-disable-next-line no-continue
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
minX = Math.min(minX, x);
|
|
95
|
+
maxX = Math.max(maxX, x);
|
|
96
|
+
minY = Math.min(minY, y);
|
|
97
|
+
maxY = Math.max(maxY, y);
|
|
98
|
+
}
|
|
99
|
+
if (minX === Number.POSITIVE_INFINITY) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
return [
|
|
103
|
+
[minX, minY],
|
|
104
|
+
[maxX, maxY]
|
|
105
|
+
];
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Attempt to coerce an arbitrary value into a finite 2D point.
|
|
109
|
+
* @param value Candidate value that may represent a position.
|
|
110
|
+
* @returns Finite [x, y] tuple or null if the value cannot be interpreted.
|
|
111
|
+
*/
|
|
112
|
+
_normalizePosition(value) {
|
|
113
|
+
if (Array.isArray(value) && value.length >= 2) {
|
|
114
|
+
const [x, y] = value;
|
|
115
|
+
if (this._isFiniteNumber(x) && this._isFiniteNumber(y)) {
|
|
116
|
+
return [x, y];
|
|
117
|
+
}
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
if (value && typeof value === 'object') {
|
|
121
|
+
const { x, y } = value;
|
|
122
|
+
if (this._isFiniteNumber(x) && this._isFiniteNumber(y)) {
|
|
123
|
+
return [x, y];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
_isFiniteNumber(value) {
|
|
129
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
130
|
+
}
|
|
72
131
|
_updateState(state) {
|
|
73
132
|
this.state = state;
|
|
74
133
|
this.version += 1;
|
|
75
134
|
}
|
|
76
135
|
/** @fires GraphLayout#onLayoutStart */
|
|
77
136
|
_onLayoutStart = () => {
|
|
78
|
-
this.
|
|
137
|
+
log.log(0, `GraphLayout(${this._name}): start`)();
|
|
138
|
+
this._updateBounds();
|
|
139
|
+
this._updateState('calculating');
|
|
79
140
|
/**
|
|
80
141
|
* Layout calculation start.
|
|
81
142
|
* @event GraphLayout#onLayoutChange
|
|
82
143
|
* @type {CustomEvent}
|
|
83
144
|
*/
|
|
84
|
-
this.
|
|
145
|
+
const detail = { bounds: this._bounds };
|
|
146
|
+
this.dispatchEvent(new CustomEvent('onLayoutStart', { detail }));
|
|
85
147
|
};
|
|
86
148
|
/** @fires GraphLayout#onLayoutChange */
|
|
87
149
|
_onLayoutChange = () => {
|
|
88
|
-
this.
|
|
150
|
+
log.log(0, `GraphLayout(${this._name}): update`)();
|
|
151
|
+
this._updateBounds();
|
|
152
|
+
this._updateState('calculating');
|
|
89
153
|
/**
|
|
90
154
|
* Layout calculation iteration.
|
|
91
155
|
* @event GraphLayout#onLayoutChange
|
|
92
156
|
* @type {CustomEvent}
|
|
93
157
|
*/
|
|
94
|
-
this.
|
|
158
|
+
const detail = { bounds: this._bounds };
|
|
159
|
+
this.dispatchEvent(new CustomEvent('onLayoutChange', { detail }));
|
|
95
160
|
};
|
|
96
161
|
/** @fires GraphLayout#onLayoutDone */
|
|
97
162
|
_onLayoutDone = () => {
|
|
98
|
-
this.
|
|
163
|
+
log.log(0, `GraphLayout(${this._name}): end`)();
|
|
164
|
+
this._updateBounds();
|
|
165
|
+
this._updateState('done');
|
|
99
166
|
/**
|
|
100
167
|
* Layout calculation is done.
|
|
101
168
|
* @event GraphLayout#onLayoutDone
|
|
102
169
|
* @type {CustomEvent}
|
|
103
170
|
*/
|
|
104
|
-
this.
|
|
171
|
+
const detail = { bounds: this._bounds };
|
|
172
|
+
this.dispatchEvent(new CustomEvent('onLayoutDone', { detail }));
|
|
105
173
|
};
|
|
106
174
|
/** @fires GraphLayout#onLayoutError */
|
|
107
175
|
_onLayoutError = () => {
|
|
108
|
-
this._updateState('
|
|
176
|
+
this._updateState('error');
|
|
109
177
|
/**
|
|
110
178
|
* Layout calculation went wrong.
|
|
111
179
|
* @event GraphLayout#onLayoutError
|
|
@@ -114,4 +182,3 @@ export class GraphLayout extends EventTarget {
|
|
|
114
182
|
this.dispatchEvent(new CustomEvent('onLayoutError'));
|
|
115
183
|
};
|
|
116
184
|
}
|
|
117
|
-
//# sourceMappingURL=graph-layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-layout.js","sourceRoot":"","sources":["../../src/core/graph-layout.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"graph-layout.js","sourceRoot":"","sources":["../../src/core/graph-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import { Node } from
|
|
2
|
-
import { GraphEngine } from
|
|
1
|
+
import { Node } from '../graph/node';
|
|
2
|
+
import { GraphEngine } from './graph-engine';
|
|
3
|
+
import { resolveChainInteractionSource, type ChainInteractionSource } from '../utils/collapsed-chains';
|
|
4
|
+
export { resolveChainInteractionSource };
|
|
5
|
+
export type { ChainInteractionSource };
|
|
6
|
+
export declare function shouldToggleCollapsedChain(isCollapsed: boolean, source: ChainInteractionSource): boolean;
|
|
3
7
|
interface EventMap {
|
|
4
8
|
onClick?: (info: unknown, event: Event) => void;
|
|
5
9
|
onHover?: (info: unknown) => void;
|
|
@@ -37,5 +41,3 @@ export declare class InteractionManager {
|
|
|
37
41
|
onDrag(info: any, event: any): void;
|
|
38
42
|
onDragEnd(info: any, event: any): void;
|
|
39
43
|
}
|
|
40
|
-
export {};
|
|
41
|
-
//# sourceMappingURL=interaction-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction-manager.d.ts","sourceRoot":"","sources":["../../src/core/interaction-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,IAAI,EAAC,yBAAsB;AACnC,OAAO,EAAC,WAAW,EAAC,0BAAuB;
|
|
1
|
+
{"version":3,"file":"interaction-manager.d.ts","sourceRoot":"","sources":["../../src/core/interaction-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,IAAI,EAAC,yBAAsB;AACnC,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAE3C,OAAO,EACL,6BAA6B,EAC7B,KAAK,sBAAsB,EAC5B,qCAAkC;AAEnC,OAAO,EAAC,6BAA6B,EAAC,CAAC;AACvC,YAAY,EAAC,sBAAsB,EAAC,CAAC;AAErC,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAKT;AA4BD,UAAU,QAAQ;IAChB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,yBAAyB,EAAE,OAAO,CAAC;CACpC;AAED,qBAAa,kBAAkB;IACtB,cAAc,EAAE,QAAQ,CAAC;IAChC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,iBAAiB,CAAqB;IAEvC,UAAU,EAAE,QAAQ,CAAc;IAClC,UAAU,EAAE,QAAQ,CAAc;IAClC,MAAM,EAAE,WAAW,CAAc;IACjC,cAAc,EAAE,OAAO,CAAc;IACrC,yBAAyB,EAAE,OAAO,CAAc;gBAE3C,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,QAAQ;IAUpE,WAAW,CAAC,EACV,UAAe,EACf,UAAe,EACf,MAAM,EACN,cAAc,EACd,yBAAyB,EAC1B,EAAE,uBAAuB,GAAG,IAAI;IAQjC,kBAAkB,IAAI,MAAM;IAK5B,OAAO,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA,GAAG,IAAI;IAuE1B,eAAe,IAAI,IAAI;IAiBvB,eAAe,CAAC,IAAI,KAAA,GAAG,IAAI;IAY3B,OAAO,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAiCnB,WAAW,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAMvB,MAAM,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAuBlB,SAAS,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;CAUtB"}
|
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
// deck.gl-community
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import {
|
|
4
|
+
import { log } from '../utils/log';
|
|
5
|
+
import { resolveChainInteractionSource } from '../utils/collapsed-chains';
|
|
6
|
+
export { resolveChainInteractionSource };
|
|
7
|
+
export function shouldToggleCollapsedChain(isCollapsed, source) {
|
|
8
|
+
if (isCollapsed) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
return source === 'expanded-marker' || source === 'expanded-outline';
|
|
12
|
+
}
|
|
5
13
|
const NODE_TO_EDGE_STATE_MAP = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
14
|
+
default: 'default',
|
|
15
|
+
hover: 'hover',
|
|
16
|
+
dragging: 'dragging',
|
|
17
|
+
selected: 'selected'
|
|
10
18
|
};
|
|
11
19
|
function shouldEdgeBeSelected(edge) {
|
|
12
20
|
return edge
|
|
13
21
|
.getConnectedNodes()
|
|
14
|
-
.some((node) => node.getState() ===
|
|
22
|
+
.some((node) => node.getState() === 'selected' && node.shouldHighlightConnectedEdges());
|
|
15
23
|
}
|
|
16
24
|
function setNodeState(node, state) {
|
|
17
25
|
node.setState(state);
|
|
@@ -19,7 +27,7 @@ function setNodeState(node, state) {
|
|
|
19
27
|
node.getConnectedEdges().forEach((edge) => {
|
|
20
28
|
let newEdgeState = NODE_TO_EDGE_STATE_MAP[state];
|
|
21
29
|
if (shouldEdgeBeSelected(edge)) {
|
|
22
|
-
newEdgeState =
|
|
30
|
+
newEdgeState = 'selected';
|
|
23
31
|
}
|
|
24
32
|
edge.setState(newEdgeState);
|
|
25
33
|
});
|
|
@@ -53,18 +61,53 @@ export class InteractionManager {
|
|
|
53
61
|
getLastInteraction() {
|
|
54
62
|
return this._lastInteraction;
|
|
55
63
|
}
|
|
64
|
+
// eslint-disable-next-line max-statements, complexity
|
|
56
65
|
onClick(info, event) {
|
|
57
66
|
const { object } = info;
|
|
58
67
|
if (!object) {
|
|
59
68
|
return;
|
|
60
69
|
}
|
|
61
70
|
if (object.isNode) {
|
|
71
|
+
const node = object;
|
|
72
|
+
const chainId = node.getPropertyValue('collapsedChainId');
|
|
73
|
+
const collapsedNodeIds = node.getPropertyValue('collapsedNodeIds');
|
|
74
|
+
const representativeId = node.getPropertyValue('collapsedChainRepresentativeId');
|
|
75
|
+
const isCollapsed = Boolean(node.getPropertyValue('isCollapsedChain'));
|
|
76
|
+
const hasChainMetadata = chainId !== null &&
|
|
77
|
+
chainId !== undefined &&
|
|
78
|
+
Array.isArray(collapsedNodeIds) &&
|
|
79
|
+
collapsedNodeIds.length > 1 &&
|
|
80
|
+
representativeId !== null &&
|
|
81
|
+
representativeId !== undefined;
|
|
82
|
+
const isRepresentative = hasChainMetadata && representativeId === node.getId();
|
|
83
|
+
if (hasChainMetadata && isRepresentative) {
|
|
84
|
+
const layout = this.engine?.props?.layout;
|
|
85
|
+
if (layout && typeof layout.toggleCollapsedChain === 'function') {
|
|
86
|
+
const interactionSource = resolveChainInteractionSource(info ?? null);
|
|
87
|
+
// eslint-disable-next-line max-depth
|
|
88
|
+
if (shouldToggleCollapsedChain(isCollapsed, interactionSource)) {
|
|
89
|
+
const action = isCollapsed ? 'expand' : 'collapse';
|
|
90
|
+
const chainIdStr = String(chainId);
|
|
91
|
+
log.log(0, `InteractionManager: ${action} chain ${chainIdStr} via ${interactionSource}`);
|
|
92
|
+
// eslint-disable-next-line no-console
|
|
93
|
+
console.log(`InteractionManager: ${action} chain ${chainIdStr} via ${interactionSource}`);
|
|
94
|
+
layout.toggleCollapsedChain(chainIdStr);
|
|
95
|
+
this._lastInteraction = Date.now();
|
|
96
|
+
this.notifyCallback();
|
|
97
|
+
// eslint-disable-next-line max-depth
|
|
98
|
+
if (this.nodeEvents.onClick) {
|
|
99
|
+
this.nodeEvents.onClick(info, event);
|
|
100
|
+
}
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
62
105
|
if (object.isSelectable()) {
|
|
63
106
|
if (this._lastSelectedNode) {
|
|
64
|
-
setNodeState(this._lastSelectedNode,
|
|
107
|
+
setNodeState(this._lastSelectedNode, 'default');
|
|
65
108
|
}
|
|
66
|
-
setNodeState(
|
|
67
|
-
this._lastSelectedNode =
|
|
109
|
+
setNodeState(node, 'selected');
|
|
110
|
+
this._lastSelectedNode = node;
|
|
68
111
|
this._lastInteraction = Date.now();
|
|
69
112
|
this.notifyCallback();
|
|
70
113
|
}
|
|
@@ -78,11 +121,11 @@ export class InteractionManager {
|
|
|
78
121
|
}
|
|
79
122
|
_mouseLeaveNode() {
|
|
80
123
|
const lastHoveredNode = this._lastHoveredNode;
|
|
81
|
-
if (!(lastHoveredNode.isSelectable() && lastHoveredNode.getState() ===
|
|
124
|
+
if (!(lastHoveredNode.isSelectable() && lastHoveredNode.getState() === 'selected')) {
|
|
82
125
|
// reset the last hovered node's state
|
|
83
126
|
const newState = this._lastSelectedNode !== null && this._lastSelectedNode.id === this._lastHoveredNode?.id
|
|
84
|
-
?
|
|
85
|
-
:
|
|
127
|
+
? 'selected'
|
|
128
|
+
: 'default';
|
|
86
129
|
setNodeState(lastHoveredNode, newState);
|
|
87
130
|
}
|
|
88
131
|
// trigger the callback if exists
|
|
@@ -92,7 +135,7 @@ export class InteractionManager {
|
|
|
92
135
|
}
|
|
93
136
|
_mouseEnterNode(info) {
|
|
94
137
|
// set the node's state to hover
|
|
95
|
-
setNodeState(info.object,
|
|
138
|
+
setNodeState(info.object, 'hover');
|
|
96
139
|
// trigger the callback if exists
|
|
97
140
|
if (this.nodeEvents.onMouseEnter) {
|
|
98
141
|
this.nodeEvents.onMouseEnter(info);
|
|
@@ -149,7 +192,7 @@ export class InteractionManager {
|
|
|
149
192
|
const x = Math.min(Math.max(coordinates[0], bounds[0]), bounds[2]);
|
|
150
193
|
const y = Math.min(Math.max(coordinates[1], bounds[1]), bounds[3]);
|
|
151
194
|
this.engine.lockNodePosition(info.object, x, y);
|
|
152
|
-
setNodeState(info.object,
|
|
195
|
+
setNodeState(info.object, 'dragging');
|
|
153
196
|
this._lastInteraction = Date.now();
|
|
154
197
|
this.notifyCallback();
|
|
155
198
|
if (this.nodeEvents.onDrag) {
|
|
@@ -163,8 +206,7 @@ export class InteractionManager {
|
|
|
163
206
|
if (this.resumeLayoutAfterDragging) {
|
|
164
207
|
this.engine.resume();
|
|
165
208
|
}
|
|
166
|
-
setNodeState(info.object,
|
|
209
|
+
setNodeState(info.object, 'default');
|
|
167
210
|
this.engine.unlockNodePosition(info.object);
|
|
168
211
|
}
|
|
169
212
|
}
|
|
170
|
-
//# sourceMappingURL=interaction-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction-manager.js","sourceRoot":"","sources":["../../src/core/interaction-manager.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"interaction-manager.js","sourceRoot":"","sources":["../../src/core/interaction-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/edge.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { EdgeState } from '../core/constants';
|
|
2
|
+
import { Node } from './node';
|
|
2
3
|
export interface EdgeOptions {
|
|
3
4
|
/** the unique ID of the edge */
|
|
4
5
|
id: string | number;
|
|
@@ -28,7 +29,7 @@ export declare class Edge {
|
|
|
28
29
|
/** Nodes at either end of this edge. */
|
|
29
30
|
private readonly _connectedNodes;
|
|
30
31
|
/** Edge state. */
|
|
31
|
-
state:
|
|
32
|
+
state: EdgeState;
|
|
32
33
|
/**
|
|
33
34
|
* The constructor
|
|
34
35
|
* @param options.id - information about the edge
|
|
@@ -73,16 +74,15 @@ export declare class Edge {
|
|
|
73
74
|
setDataProperty(key: string, value: unknown): void;
|
|
74
75
|
/**
|
|
75
76
|
* Set edge state
|
|
76
|
-
* @param state -
|
|
77
|
+
* @param state - the new interaction state for the edge
|
|
77
78
|
*/
|
|
78
|
-
setState(state:
|
|
79
|
+
setState(state: EdgeState): void;
|
|
79
80
|
/**
|
|
80
81
|
* Get edge state
|
|
81
|
-
* @returns state -
|
|
82
|
+
* @returns state - the current interaction state for the edge
|
|
82
83
|
*/
|
|
83
|
-
getState():
|
|
84
|
+
getState(): EdgeState;
|
|
84
85
|
addNode(node: Node): void;
|
|
85
86
|
removeNode(node: Node): void;
|
|
86
87
|
getConnectedNodes(): Node[];
|
|
87
88
|
}
|
|
88
|
-
//# sourceMappingURL=edge.d.ts.map
|
package/dist/graph/edge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/graph/edge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/graph/edge.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,6BAA0B;AACjD,OAAO,EAAC,IAAI,EAAC,kBAAe;AAE5B,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,gCAAgC;IAChC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,gCAAgC;AAChC,qBAAa,IAAI;IACf,+BAA+B;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,6BAA6B;IAC7B,OAAO,CAAC,SAAS,CAAkB;IACnC,6BAA6B;IAC7B,OAAO,CAAC,SAAS,CAAkB;IACnC,2CAA2C;IAC3C,OAAO,CAAC,SAAS,CAAU;IAC3B,yCAAyC;IACzC,OAAO,CAAC,KAAK,CAA0B;IACvC,gEAAgE;IAChE,SAAgB,MAAM,QAAQ;IAC9B,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAC5D,kBAAkB;IACX,KAAK,EAAE,SAAS,CAAa;IAEpC;;;OAGG;gBACS,EAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAgB,EAAC,EAAE,WAAW;IAQzE;;;OAGG;IACH,KAAK,IAAI,MAAM,GAAG,MAAM;IAIxB;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACH,eAAe,IAAI,MAAM,GAAG,MAAM;IAIlC;;;OAGG;IACH,eAAe,IAAI,MAAM,GAAG,MAAM;IAIlC;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAatC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5C;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAIlD;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIhC;;;OAGG;IACH,QAAQ,IAAI,SAAS;IAIrB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI5B,iBAAiB,IAAI,IAAI,EAAE;CAG5B"}
|
package/dist/graph/edge.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
// deck.gl-community
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
// Basic data structure of an edge
|
|
5
|
-
import { EDGE_STATE } from "../core/constants.js";
|
|
6
4
|
/** Basic edge data structure */
|
|
7
5
|
export class Edge {
|
|
8
6
|
/** Unique uuid of the edge. */
|
|
@@ -20,7 +18,7 @@ export class Edge {
|
|
|
20
18
|
/** Nodes at either end of this edge. */
|
|
21
19
|
_connectedNodes = {};
|
|
22
20
|
/** Edge state. */
|
|
23
|
-
state =
|
|
21
|
+
state = 'default';
|
|
24
22
|
/**
|
|
25
23
|
* The constructor
|
|
26
24
|
* @param options.id - information about the edge
|
|
@@ -94,14 +92,14 @@ export class Edge {
|
|
|
94
92
|
}
|
|
95
93
|
/**
|
|
96
94
|
* Set edge state
|
|
97
|
-
* @param state -
|
|
95
|
+
* @param state - the new interaction state for the edge
|
|
98
96
|
*/
|
|
99
97
|
setState(state) {
|
|
100
98
|
this.state = state;
|
|
101
99
|
}
|
|
102
100
|
/**
|
|
103
101
|
* Get edge state
|
|
104
|
-
* @returns state -
|
|
102
|
+
* @returns state - the current interaction state for the edge
|
|
105
103
|
*/
|
|
106
104
|
getState() {
|
|
107
105
|
return this.state;
|
|
@@ -116,4 +114,3 @@ export class Edge {
|
|
|
116
114
|
return Object.values(this._connectedNodes);
|
|
117
115
|
}
|
|
118
116
|
}
|
|
119
|
-
//# sourceMappingURL=edge.js.map
|
package/dist/graph/edge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge.js","sourceRoot":"","sources":["../../src/graph/edge.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"edge.js","sourceRoot":"","sources":["../../src/graph/edge.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAmBpC,gCAAgC;AAChC,MAAM,OAAO,IAAI;IACf,+BAA+B;IACxB,EAAE,CAAkB;IAC3B,6BAA6B;IACrB,SAAS,CAAkB;IACnC,6BAA6B;IACrB,SAAS,CAAkB;IACnC,2CAA2C;IACnC,SAAS,CAAU;IAC3B,yCAAyC;IACjC,KAAK,CAA0B;IACvC,gEAAgE;IAChD,MAAM,GAAG,IAAI,CAAC;IAC9B,wCAAwC;IACvB,eAAe,GAAyB,EAAE,CAAC;IAC5D,kBAAkB;IACX,KAAK,GAAc,SAAS,CAAC;IAEpC;;;OAGG;IACH,YAAY,EAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAc;QACvE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,GAAW;QAC1B,2CAA2C;QAC3C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,uDAAuD;aAClD,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,uBAAuB;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,IAA6B;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,GAAW,EAAE,KAAc;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAgB;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,IAAU;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,IAAU;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,iBAAiB;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
package/dist/graph/graph.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Edge } from
|
|
2
|
-
import { Node } from
|
|
1
|
+
import { Edge } from './edge';
|
|
2
|
+
import { Node } from './node';
|
|
3
3
|
export type GraphProps = {
|
|
4
4
|
name?: string;
|
|
5
5
|
nodes?: Node[];
|
|
@@ -156,4 +156,3 @@ export declare class Graph extends EventTarget {
|
|
|
156
156
|
_bumpVersion(): void;
|
|
157
157
|
_updateCache(key: 'nodes' | 'edges', updateValue: unknown): void;
|
|
158
158
|
}
|
|
159
|
-
//# sourceMappingURL=graph.d.ts.map
|