@deck.gl-community/graph-layers 9.2.0-beta.2 → 9.2.0-beta.3
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/dist/core/graph-engine.d.ts +63 -21
- package/dist/core/graph-engine.d.ts.map +1 -1
- package/dist/core/graph-engine.js +155 -75
- package/dist/core/graph-engine.js.map +1 -1
- package/dist/core/graph-layout.d.ts +22 -18
- package/dist/core/graph-layout.d.ts.map +1 -1
- package/dist/core/graph-layout.js +33 -18
- package/dist/core/graph-layout.js.map +1 -1
- package/dist/core/interaction-manager.d.ts +2 -2
- package/dist/core/interaction-manager.d.ts.map +1 -1
- package/dist/core/interaction-manager.js +7 -5
- package/dist/core/interaction-manager.js.map +1 -1
- package/dist/graph/arrow-graph.d.ts +69 -0
- package/dist/graph/arrow-graph.d.ts.map +1 -0
- package/dist/graph/arrow-graph.js +513 -0
- package/dist/graph/arrow-graph.js.map +1 -0
- package/dist/graph/classic-graph.d.ts +169 -0
- package/dist/graph/classic-graph.d.ts.map +1 -0
- package/dist/graph/classic-graph.js +390 -0
- package/dist/graph/classic-graph.js.map +1 -0
- package/dist/graph/edge.d.ts +6 -6
- package/dist/graph/edge.d.ts.map +1 -1
- package/dist/graph/edge.js.map +1 -1
- package/dist/graph/functions/arrow-utils.d.ts +6 -0
- package/dist/graph/functions/arrow-utils.d.ts.map +1 -0
- package/dist/graph/functions/arrow-utils.js +67 -0
- package/dist/graph/functions/arrow-utils.js.map +1 -0
- package/dist/graph/functions/create-graph-from-data.d.ts +3 -0
- package/dist/graph/functions/create-graph-from-data.d.ts.map +1 -0
- package/dist/graph/functions/create-graph-from-data.js +12 -0
- package/dist/graph/functions/create-graph-from-data.js.map +1 -0
- package/dist/graph/graph-normalization.d.ts +10 -0
- package/dist/graph/graph-normalization.d.ts.map +1 -0
- package/dist/graph/graph-normalization.js +65 -0
- package/dist/graph/graph-normalization.js.map +1 -0
- package/dist/graph/graph.d.ts +62 -155
- package/dist/graph/graph.d.ts.map +1 -1
- package/dist/graph/graph.js +11 -300
- package/dist/graph/graph.js.map +1 -1
- package/dist/graph/node.d.ts +6 -6
- package/dist/graph/node.d.ts.map +1 -1
- package/dist/graph/node.js +2 -2
- package/dist/graph/node.js.map +1 -1
- package/dist/graph-data/arrow-graph-data-builder.d.ts +21 -0
- package/dist/graph-data/arrow-graph-data-builder.d.ts.map +1 -0
- package/dist/graph-data/arrow-graph-data-builder.js +105 -0
- package/dist/graph-data/arrow-graph-data-builder.js.map +1 -0
- package/dist/graph-data/graph-data-builder.d.ts +6 -0
- package/dist/graph-data/graph-data-builder.d.ts.map +1 -0
- package/dist/graph-data/graph-data-builder.js +1 -0
- package/dist/graph-data/graph-data-builder.js.map +1 -0
- package/dist/graph-data/graph-data.d.ts +40 -0
- package/dist/graph-data/graph-data.d.ts.map +1 -0
- package/dist/graph-data/graph-data.js +11 -0
- package/dist/graph-data/graph-data.js.map +1 -0
- package/dist/graph-data/plain-graph-data-builder.d.ts +20 -0
- package/dist/graph-data/plain-graph-data-builder.d.ts.map +1 -0
- package/dist/graph-data/plain-graph-data-builder.js +105 -0
- package/dist/graph-data/plain-graph-data-builder.js.map +1 -0
- package/dist/graph-style-schema.cdn.js +1 -1
- package/dist/graph-style-schema.json +1 -1
- package/dist/index.cjs +6905 -4576
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +14 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -11
- package/dist/index.js.map +1 -1
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer.d.ts.map +1 -1
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer.js +1 -2
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer.js.map +1 -1
- package/dist/layers/common-layers/grid-layer/grid-layer.d.ts +83 -0
- package/dist/layers/common-layers/grid-layer/grid-layer.d.ts.map +1 -0
- package/dist/layers/common-layers/grid-layer/grid-layer.js +133 -0
- package/dist/layers/common-layers/grid-layer/grid-layer.js.map +1 -0
- package/dist/layers/edge-attachment-helper.d.ts.map +1 -1
- package/dist/layers/edge-attachment-helper.js +1 -2
- package/dist/layers/edge-attachment-helper.js.map +1 -1
- package/dist/layers/graph-layer.d.ts +68 -11
- package/dist/layers/graph-layer.d.ts.map +1 -1
- package/dist/layers/graph-layer.js +435 -50
- package/dist/layers/graph-layer.js.map +1 -1
- package/dist/layouts/d3-dag/collapsable-d3-dag-layout.d.ts +24 -0
- package/dist/layouts/d3-dag/collapsable-d3-dag-layout.d.ts.map +1 -0
- package/dist/layouts/d3-dag/collapsable-d3-dag-layout.js +251 -0
- package/dist/layouts/d3-dag/collapsable-d3-dag-layout.js.map +1 -0
- package/dist/layouts/d3-dag/d3-dag-layout.d.ts +46 -61
- package/dist/layouts/d3-dag/d3-dag-layout.d.ts.map +1 -1
- package/dist/layouts/d3-dag/d3-dag-layout.js +85 -270
- package/dist/layouts/d3-dag/d3-dag-layout.js.map +1 -1
- package/dist/layouts/d3-force/d3-force-layout.d.ts +20 -8
- package/dist/layouts/d3-force/d3-force-layout.d.ts.map +1 -1
- package/dist/layouts/d3-force/d3-force-layout.js +39 -20
- package/dist/layouts/d3-force/d3-force-layout.js.map +1 -1
- package/dist/layouts/experimental/force-multi-graph-layout.d.ts +19 -15
- package/dist/layouts/experimental/force-multi-graph-layout.d.ts.map +1 -1
- package/dist/layouts/experimental/force-multi-graph-layout.js +47 -38
- package/dist/layouts/experimental/force-multi-graph-layout.js.map +1 -1
- package/dist/layouts/experimental/hive-plot-layout.d.ts +18 -15
- package/dist/layouts/experimental/hive-plot-layout.d.ts.map +1 -1
- package/dist/layouts/experimental/hive-plot-layout.js +33 -34
- package/dist/layouts/experimental/hive-plot-layout.js.map +1 -1
- package/dist/layouts/experimental/radial-layout.d.ts +12 -7
- package/dist/layouts/experimental/radial-layout.d.ts.map +1 -1
- package/dist/layouts/experimental/radial-layout.js +31 -14
- package/dist/layouts/experimental/radial-layout.js.map +1 -1
- package/dist/layouts/gpu-force/gpu-force-layout.d.ts +11 -8
- package/dist/layouts/gpu-force/gpu-force-layout.d.ts.map +1 -1
- package/dist/layouts/gpu-force/gpu-force-layout.js +59 -56
- package/dist/layouts/gpu-force/gpu-force-layout.js.map +1 -1
- package/dist/layouts/simple-layout.d.ts +8 -25
- package/dist/layouts/simple-layout.d.ts.map +1 -1
- package/dist/layouts/simple-layout.js +13 -17
- package/dist/layouts/simple-layout.js.map +1 -1
- package/dist/loaders/dot-graph-loader.d.ts +25 -0
- package/dist/loaders/dot-graph-loader.d.ts.map +1 -0
- package/dist/loaders/dot-graph-loader.js +668 -0
- package/dist/loaders/dot-graph-loader.js.map +1 -0
- package/dist/loaders/json-graph-loader.d.ts +6 -0
- package/dist/loaders/json-graph-loader.d.ts.map +1 -0
- package/dist/loaders/json-graph-loader.js +31 -0
- package/dist/loaders/json-graph-loader.js.map +1 -0
- package/dist/loaders/{edge-parsers.d.ts → parsers/edge-parsers.d.ts} +1 -1
- package/dist/loaders/parsers/edge-parsers.d.ts.map +1 -0
- package/dist/loaders/{edge-parsers.js → parsers/edge-parsers.js} +1 -1
- package/dist/loaders/parsers/edge-parsers.js.map +1 -0
- package/dist/loaders/{node-parsers.d.ts → parsers/node-parsers.d.ts} +1 -1
- package/dist/loaders/parsers/node-parsers.d.ts.map +1 -0
- package/dist/loaders/{node-parsers.js → parsers/node-parsers.js} +1 -1
- package/dist/loaders/parsers/node-parsers.js.map +1 -0
- package/dist/loaders/parsers/parse-json-graph.d.ts +29 -0
- package/dist/loaders/parsers/parse-json-graph.d.ts.map +1 -0
- package/dist/loaders/parsers/parse-json-graph.js +78 -0
- package/dist/loaders/parsers/parse-json-graph.js.map +1 -0
- package/dist/style/graph-style-engine.d.ts +4 -2
- package/dist/style/graph-style-engine.d.ts.map +1 -1
- package/dist/style/graph-style-engine.js +3 -2
- package/dist/style/graph-style-engine.js.map +1 -1
- package/dist/style/{style-engine.d.ts → stylesheet-engine.d.ts} +3 -3
- package/dist/style/stylesheet-engine.d.ts.map +1 -0
- package/dist/style/{style-engine.js → stylesheet-engine.js} +1 -1
- package/dist/style/stylesheet-engine.js.map +1 -0
- package/dist/utils/collapsed-chains.d.ts +8 -8
- package/dist/utils/collapsed-chains.d.ts.map +1 -1
- package/dist/utils/collapsed-chains.js +1 -6
- package/dist/utils/collapsed-chains.js.map +1 -1
- package/dist/utils/rank-grid.d.ts +30 -0
- package/dist/utils/rank-grid.d.ts.map +1 -0
- package/dist/utils/rank-grid.js +306 -0
- package/dist/utils/rank-grid.js.map +1 -0
- package/package.json +4 -8
- package/src/_disabled/arrow-graph-data.ts.disabled +18 -0
- package/src/_disabled/columnar-graph-data-builder.ts.disabled +250 -0
- package/src/_disabled/graph-runtime-layout.ts.disabled +29 -0
- package/src/core/graph-engine.ts +201 -84
- package/src/core/graph-layout.ts +52 -29
- package/src/core/interaction-manager.ts +20 -20
- package/src/graph/arrow-graph.ts +648 -0
- package/src/graph/classic-graph.ts +447 -0
- package/src/graph/edge.ts +7 -7
- package/src/graph/functions/arrow-utils.ts +72 -0
- package/src/graph/functions/convert-arrow-graph-to-classic-graph.ts.disabled +47 -0
- package/src/graph/functions/convert-plain-graph-to-arrow-graph.ts.disabled +119 -0
- package/src/graph/functions/create-graph-from-data.ts +16 -0
- package/src/graph/functions/create-plain-graph-from-data.ts.disabled +176 -0
- package/src/graph/graph-normalization.ts +87 -0
- package/src/graph/graph.ts +68 -339
- package/src/graph/node.ts +9 -9
- package/src/graph/tabular-graph.ts.disabled +761 -0
- package/src/graph-data/arrow-graph-data-builder.ts +165 -0
- package/src/graph-data/graph-data-builder.ts +7 -0
- package/src/graph-data/graph-data.ts +57 -0
- package/src/graph-data/plain-graph-data-builder.ts +132 -0
- package/src/index.ts +53 -13
- package/src/layers/common-layers/flow-path-layer/flow-path-layer.ts +1 -2
- package/src/layers/common-layers/grid-layer/grid-layer.ts +237 -0
- package/src/layers/edge-attachment-helper.ts +22 -16
- package/src/layers/graph-layer.ts +642 -62
- package/src/layouts/d3-dag/collapsable-d3-dag-layout.ts +330 -0
- package/src/layouts/d3-dag/d3-dag-layout.ts +166 -396
- package/src/layouts/d3-force/d3-force-layout.ts +52 -30
- package/src/layouts/experimental/force-multi-graph-layout.ts +55 -49
- package/src/layouts/experimental/hive-plot-layout.ts +41 -42
- package/src/layouts/experimental/radial-layout.ts +39 -20
- package/src/layouts/gpu-force/gpu-force-layout.ts +72 -70
- package/src/layouts/simple-layout.ts +20 -44
- package/src/loaders/{create-graph.ts → deprecated/create-graph.ts.disabled} +6 -6
- package/src/loaders/deprecated/json-classic-graph-loader.ts.disabled +33 -0
- package/src/loaders/{simple-json-graph-loader.ts → deprecated/simple-json-graph-loader.ts.disabled} +3 -3
- package/src/loaders/{table-graph-loader.ts → deprecated/table-graph-loader.ts.disabled} +8 -8
- package/src/loaders/dot-graph-loader.ts +860 -0
- package/src/loaders/json-graph-loader.ts +48 -0
- package/src/loaders/parsers/create-graph-data.ts.disabled +45 -0
- package/src/loaders/{edge-parsers.ts → parsers/edge-parsers.ts} +2 -2
- package/src/loaders/{node-parsers.ts → parsers/node-parsers.ts} +2 -2
- package/src/loaders/parsers/parse-json-graph.ts +134 -0
- package/src/style/graph-style-engine.ts +5 -2
- package/src/style/{style-engine.ts → stylesheet-engine.ts} +3 -3
- package/src/utils/collapsed-chains.ts +11 -17
- package/src/utils/rank-grid.ts +426 -0
- package/dist/loaders/create-graph.d.ts +0 -12
- package/dist/loaders/create-graph.d.ts.map +0 -1
- package/dist/loaders/create-graph.js +0 -38
- package/dist/loaders/create-graph.js.map +0 -1
- package/dist/loaders/edge-parsers.d.ts.map +0 -1
- package/dist/loaders/edge-parsers.js.map +0 -1
- package/dist/loaders/json-loader.d.ts +0 -7
- package/dist/loaders/json-loader.d.ts.map +0 -1
- package/dist/loaders/json-loader.js +0 -16
- package/dist/loaders/json-loader.js.map +0 -1
- package/dist/loaders/node-parsers.d.ts.map +0 -1
- package/dist/loaders/node-parsers.js.map +0 -1
- package/dist/loaders/simple-json-graph-loader.d.ts +0 -11
- package/dist/loaders/simple-json-graph-loader.d.ts.map +0 -1
- package/dist/loaders/simple-json-graph-loader.js +0 -20
- package/dist/loaders/simple-json-graph-loader.js.map +0 -1
- package/dist/loaders/table-graph-loader.d.ts +0 -16
- package/dist/loaders/table-graph-loader.d.ts.map +0 -1
- package/dist/loaders/table-graph-loader.js +0 -91
- package/dist/loaders/table-graph-loader.js.map +0 -1
- package/dist/style/style-engine.d.ts.map +0 -1
- package/dist/style/style-engine.js.map +0 -1
- package/dist/widgets/long-press-button.d.ts +0 -12
- package/dist/widgets/long-press-button.d.ts.map +0 -1
- package/dist/widgets/long-press-button.js +0 -31
- package/dist/widgets/long-press-button.js.map +0 -1
- package/dist/widgets/view-control-widget.d.ts +0 -77
- package/dist/widgets/view-control-widget.d.ts.map +0 -1
- package/dist/widgets/view-control-widget.js +0 -197
- package/dist/widgets/view-control-widget.js.map +0 -1
- package/src/loaders/json-loader.ts +0 -19
- package/src/widgets/long-press-button.tsx +0 -50
- package/src/widgets/view-control-widget.tsx +0 -339
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import type {EdgeState, NodeState} from './constants';
|
|
6
|
-
import {Edge} from '../graph/edge';
|
|
7
|
-
import {Node} from '../graph/node';
|
|
8
6
|
import {GraphEngine} from './graph-engine';
|
|
7
|
+
import type {EdgeInterface, NodeInterface} from '../graph/graph';
|
|
9
8
|
import {log} from '../utils/log';
|
|
10
9
|
import {
|
|
11
10
|
resolveChainInteractionSource,
|
|
@@ -32,13 +31,13 @@ const NODE_TO_EDGE_STATE_MAP: Record<NodeState, EdgeState> = {
|
|
|
32
31
|
selected: 'selected'
|
|
33
32
|
};
|
|
34
33
|
|
|
35
|
-
function shouldEdgeBeSelected(edge:
|
|
34
|
+
function shouldEdgeBeSelected(edge: EdgeInterface): boolean {
|
|
36
35
|
return edge
|
|
37
36
|
.getConnectedNodes()
|
|
38
37
|
.some((node) => node.getState() === 'selected' && node.shouldHighlightConnectedEdges());
|
|
39
38
|
}
|
|
40
39
|
|
|
41
|
-
function setNodeState(node:
|
|
40
|
+
function setNodeState(node: NodeInterface, state: NodeState) {
|
|
42
41
|
node.setState(state);
|
|
43
42
|
if (node.shouldHighlightConnectedEdges()) {
|
|
44
43
|
node.getConnectedEdges().forEach((edge) => {
|
|
@@ -55,7 +54,7 @@ interface EventMap {
|
|
|
55
54
|
onClick?: (info: unknown, event: Event) => void;
|
|
56
55
|
onHover?: (info: unknown) => void;
|
|
57
56
|
onMouseEnter?: (info: unknown) => void;
|
|
58
|
-
onMouseLeave?: (node:
|
|
57
|
+
onMouseLeave?: (node: NodeInterface) => void;
|
|
59
58
|
onDragStart?: (info: unknown) => void;
|
|
60
59
|
onDrag?: (info: unknown) => void;
|
|
61
60
|
onDragEnd?: (info: unknown) => void;
|
|
@@ -72,8 +71,8 @@ export interface InteractionManagerProps {
|
|
|
72
71
|
export class InteractionManager {
|
|
73
72
|
public notifyCallback: Function;
|
|
74
73
|
private _lastInteraction = 0;
|
|
75
|
-
private _lastHoveredNode:
|
|
76
|
-
private _lastSelectedNode:
|
|
74
|
+
private _lastHoveredNode: NodeInterface | null = null;
|
|
75
|
+
private _lastSelectedNode: NodeInterface | null = null;
|
|
77
76
|
|
|
78
77
|
public nodeEvents: EventMap = undefined!;
|
|
79
78
|
public edgeEvents: EventMap = undefined!;
|
|
@@ -118,7 +117,7 @@ export class InteractionManager {
|
|
|
118
117
|
}
|
|
119
118
|
|
|
120
119
|
if (object.isNode) {
|
|
121
|
-
const node = object as
|
|
120
|
+
const node = object as NodeInterface;
|
|
122
121
|
const chainId = node.getPropertyValue('collapsedChainId');
|
|
123
122
|
const collapsedNodeIds = node.getPropertyValue('collapsedNodeIds');
|
|
124
123
|
const representativeId = node.getPropertyValue('collapsedChainRepresentativeId');
|
|
@@ -161,7 +160,7 @@ export class InteractionManager {
|
|
|
161
160
|
}
|
|
162
161
|
}
|
|
163
162
|
|
|
164
|
-
if (
|
|
163
|
+
if (node.isSelectable()) {
|
|
165
164
|
if (this._lastSelectedNode) {
|
|
166
165
|
setNodeState(this._lastSelectedNode, 'default');
|
|
167
166
|
}
|
|
@@ -176,7 +175,7 @@ export class InteractionManager {
|
|
|
176
175
|
}
|
|
177
176
|
}
|
|
178
177
|
|
|
179
|
-
if (object.isEdge && this.edgeEvents.onClick) {
|
|
178
|
+
if ((object as EdgeInterface).isEdge && this.edgeEvents.onClick) {
|
|
180
179
|
this.edgeEvents.onClick(info, event);
|
|
181
180
|
}
|
|
182
181
|
}
|
|
@@ -186,10 +185,9 @@ export class InteractionManager {
|
|
|
186
185
|
|
|
187
186
|
if (!(lastHoveredNode.isSelectable() && lastHoveredNode.getState() === 'selected')) {
|
|
188
187
|
// reset the last hovered node's state
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
: 'default';
|
|
188
|
+
const lastSelectedId = this._lastSelectedNode?.getId();
|
|
189
|
+
const lastHoveredId = this._lastHoveredNode?.getId();
|
|
190
|
+
const newState = lastSelectedId !== undefined && lastSelectedId === lastHoveredId ? 'selected' : 'default';
|
|
193
191
|
setNodeState(lastHoveredNode, newState);
|
|
194
192
|
}
|
|
195
193
|
// trigger the callback if exists
|
|
@@ -200,7 +198,7 @@ export class InteractionManager {
|
|
|
200
198
|
|
|
201
199
|
_mouseEnterNode(info): void {
|
|
202
200
|
// set the node's state to hover
|
|
203
|
-
setNodeState(info.object as
|
|
201
|
+
setNodeState(info.object as NodeInterface, 'hover');
|
|
204
202
|
// trigger the callback if exists
|
|
205
203
|
if (this.nodeEvents.onMouseEnter) {
|
|
206
204
|
this.nodeEvents.onMouseEnter(info);
|
|
@@ -223,7 +221,9 @@ export class InteractionManager {
|
|
|
223
221
|
|
|
224
222
|
// hover over on a node
|
|
225
223
|
if (info.object.isNode) {
|
|
226
|
-
const
|
|
224
|
+
const lastHoveredId = this._lastHoveredNode?.getId();
|
|
225
|
+
const currentId = (info.object as NodeInterface).getId();
|
|
226
|
+
const isSameNode = lastHoveredId !== undefined && lastHoveredId === currentId;
|
|
227
227
|
// stay in the same node
|
|
228
228
|
if (isSameNode) {
|
|
229
229
|
return;
|
|
@@ -262,9 +262,9 @@ export class InteractionManager {
|
|
|
262
262
|
const bounds = info.layer.context.viewport.getBounds(); // [minX, minY, maxX, maxY]
|
|
263
263
|
const x = Math.min(Math.max(coordinates[0], bounds[0]), bounds[2]);
|
|
264
264
|
const y = Math.min(Math.max(coordinates[1], bounds[1]), bounds[3]);
|
|
265
|
-
this.engine.lockNodePosition(info.object, x, y);
|
|
265
|
+
this.engine.lockNodePosition(info.object as NodeInterface, x, y);
|
|
266
266
|
|
|
267
|
-
setNodeState(info.object, 'dragging');
|
|
267
|
+
setNodeState(info.object as NodeInterface, 'dragging');
|
|
268
268
|
this._lastInteraction = Date.now();
|
|
269
269
|
this.notifyCallback();
|
|
270
270
|
if (this.nodeEvents.onDrag) {
|
|
@@ -279,7 +279,7 @@ export class InteractionManager {
|
|
|
279
279
|
if (this.resumeLayoutAfterDragging) {
|
|
280
280
|
this.engine.resume();
|
|
281
281
|
}
|
|
282
|
-
setNodeState(info.object, 'default');
|
|
283
|
-
this.engine.unlockNodePosition(info.object);
|
|
282
|
+
setNodeState(info.object as NodeInterface, 'default');
|
|
283
|
+
this.engine.unlockNodePosition(info.object as NodeInterface);
|
|
284
284
|
}
|
|
285
285
|
}
|