@deck.gl-community/graph-layers 9.2.0-beta.2 → 9.2.0-beta.4
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/_deprecated/old-constants.d.ts +1 -0
- package/dist/_deprecated/old-constants.js +1 -0
- package/dist/core/cache.d.ts +1 -0
- package/dist/core/cache.js +1 -0
- package/dist/core/constants.d.ts +2 -1
- package/dist/core/constants.js +1 -0
- package/dist/core/graph-engine.d.ts +64 -21
- package/dist/core/graph-engine.d.ts.map +1 -1
- package/dist/core/graph-engine.js +158 -77
- package/dist/core/graph-engine.js.map +1 -1
- package/dist/core/graph-layout.d.ts +23 -18
- package/dist/core/graph-layout.d.ts.map +1 -1
- package/dist/core/graph-layout.js +35 -19
- package/dist/core/graph-layout.js.map +1 -1
- package/dist/core/interaction-manager.d.ts +5 -4
- package/dist/core/interaction-manager.d.ts.map +1 -1
- package/dist/core/interaction-manager.js +10 -7
- package/dist/core/interaction-manager.js.map +1 -1
- package/dist/graph/arrow-graph.d.ts +70 -0
- package/dist/graph/arrow-graph.d.ts.map +1 -0
- package/dist/graph/arrow-graph.js +514 -0
- package/dist/graph/arrow-graph.js.map +1 -0
- package/dist/graph/classic-graph.d.ts +170 -0
- package/dist/graph/classic-graph.d.ts.map +1 -0
- package/dist/graph/classic-graph.js +391 -0
- package/dist/graph/classic-graph.js.map +1 -0
- package/dist/graph/edge.d.ts +8 -7
- package/dist/graph/edge.d.ts.map +1 -1
- package/dist/graph/edge.js +1 -0
- package/dist/graph/edge.js.map +1 -1
- package/dist/graph/functions/arrow-utils.d.ts +7 -0
- package/dist/graph/functions/arrow-utils.d.ts.map +1 -0
- package/dist/graph/functions/arrow-utils.js +68 -0
- package/dist/graph/functions/arrow-utils.js.map +1 -0
- package/dist/graph/functions/create-graph-from-data.d.ts +4 -0
- package/dist/graph/functions/create-graph-from-data.d.ts.map +1 -0
- package/dist/graph/functions/create-graph-from-data.js +13 -0
- package/dist/graph/functions/create-graph-from-data.js.map +1 -0
- package/dist/graph/graph-normalization.d.ts +11 -0
- package/dist/graph/graph-normalization.d.ts.map +1 -0
- package/dist/graph/graph-normalization.js +66 -0
- package/dist/graph/graph-normalization.js.map +1 -0
- package/dist/graph/graph.d.ts +63 -155
- package/dist/graph/graph.d.ts.map +1 -1
- package/dist/graph/graph.js +12 -300
- package/dist/graph/graph.js.map +1 -1
- package/dist/graph/node.d.ts +8 -7
- package/dist/graph/node.d.ts.map +1 -1
- package/dist/graph/node.js +3 -2
- package/dist/graph/node.js.map +1 -1
- package/dist/graph-data/arrow-graph-data-builder.d.ts +22 -0
- package/dist/graph-data/arrow-graph-data-builder.d.ts.map +1 -0
- package/dist/graph-data/arrow-graph-data-builder.js +106 -0
- package/dist/graph-data/arrow-graph-data-builder.js.map +1 -0
- package/dist/graph-data/graph-data-builder.d.ts +7 -0
- package/dist/graph-data/graph-data-builder.d.ts.map +1 -0
- package/dist/graph-data/graph-data-builder.js +2 -0
- package/dist/graph-data/graph-data-builder.js.map +1 -0
- package/dist/graph-data/graph-data.d.ts +41 -0
- package/dist/graph-data/graph-data.d.ts.map +1 -0
- package/dist/graph-data/graph-data.js +12 -0
- package/dist/graph-data/graph-data.js.map +1 -0
- package/dist/graph-data/plain-graph-data-builder.d.ts +21 -0
- package/dist/graph-data/plain-graph-data-builder.d.ts.map +1 -0
- package/dist/graph-data/plain-graph-data-builder.js +106 -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 +36 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -29
- package/dist/index.js.map +1 -1
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.d.ts +1 -0
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.js +1 -0
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.d.ts +1 -0
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.js +1 -0
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.d.ts +1 -0
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.js +1 -0
- package/dist/layers/common-layers/flow-path-layer/flow-path-layer.d.ts +1 -0
- 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 +2 -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 +84 -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 +134 -0
- package/dist/layers/common-layers/grid-layer/grid-layer.js.map +1 -0
- package/dist/layers/common-layers/marker-layer/atlas-data-url.d.ts +1 -0
- package/dist/layers/common-layers/marker-layer/atlas-data-url.js +1 -0
- package/dist/layers/common-layers/marker-layer/marker-layer.d.ts +1 -0
- package/dist/layers/common-layers/marker-layer/marker-layer.js +3 -2
- package/dist/layers/common-layers/marker-layer/marker-list.d.ts +1 -0
- package/dist/layers/common-layers/marker-layer/marker-list.js +1 -0
- package/dist/layers/common-layers/marker-layer/marker-mapping.d.ts +1 -0
- package/dist/layers/common-layers/marker-layer/marker-mapping.js +1 -0
- package/dist/layers/common-layers/spline-layer/spline-layer.d.ts +1 -0
- package/dist/layers/common-layers/spline-layer/spline-layer.js +1 -0
- package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.d.ts +1 -0
- package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.js +1 -0
- package/dist/layers/edge-attachment-helper.d.ts +4 -3
- package/dist/layers/edge-attachment-helper.d.ts.map +1 -1
- package/dist/layers/edge-attachment-helper.js +4 -4
- package/dist/layers/edge-attachment-helper.js.map +1 -1
- package/dist/layers/edge-layer.d.ts +1 -0
- package/dist/layers/edge-layer.js +4 -3
- package/dist/layers/edge-layers/arrow-2d-geometry.d.ts +1 -0
- package/dist/layers/edge-layers/arrow-2d-geometry.js +1 -0
- package/dist/layers/edge-layers/curved-edge-layer.d.ts +2 -1
- package/dist/layers/edge-layers/curved-edge-layer.js +2 -1
- package/dist/layers/edge-layers/edge-arrow-layer.d.ts +1 -0
- package/dist/layers/edge-layers/edge-arrow-layer.js +2 -1
- package/dist/layers/edge-layers/edge-label-layer.d.ts +2 -1
- package/dist/layers/edge-layers/edge-label-layer.js +2 -1
- package/dist/layers/edge-layers/flow-layer.d.ts +2 -1
- package/dist/layers/edge-layers/flow-layer.js +2 -1
- package/dist/layers/edge-layers/path-edge-layer.d.ts +1 -0
- package/dist/layers/edge-layers/path-edge-layer.js +1 -0
- package/dist/layers/edge-layers/straight-line-edge-layer.d.ts +1 -0
- package/dist/layers/edge-layers/straight-line-edge-layer.js +1 -0
- package/dist/layers/graph-layer.d.ts +75 -17
- package/dist/layers/graph-layer.d.ts.map +1 -1
- package/dist/layers/graph-layer.js +450 -64
- package/dist/layers/graph-layer.js.map +1 -1
- package/dist/layers/node-layers/circle-layer.d.ts +1 -0
- package/dist/layers/node-layers/circle-layer.js +1 -0
- package/dist/layers/node-layers/image-layer.d.ts +1 -0
- package/dist/layers/node-layers/image-layer.js +1 -0
- package/dist/layers/node-layers/label-layer.d.ts +2 -1
- package/dist/layers/node-layers/label-layer.js +2 -1
- package/dist/layers/node-layers/path-rounded-rectangle-layer.d.ts +1 -0
- package/dist/layers/node-layers/path-rounded-rectangle-layer.js +2 -1
- package/dist/layers/node-layers/rectangle-layer.d.ts +1 -0
- package/dist/layers/node-layers/rectangle-layer.js +1 -0
- package/dist/layers/node-layers/rounded-rectangle-layer-fragment.d.ts +1 -0
- package/dist/layers/node-layers/rounded-rectangle-layer-fragment.js +1 -0
- package/dist/layers/node-layers/rounded-rectangle-layer.d.ts +2 -1
- package/dist/layers/node-layers/rounded-rectangle-layer.js +3 -2
- package/dist/layers/node-layers/zoomable-marker-layer.d.ts +2 -1
- package/dist/layers/node-layers/zoomable-marker-layer.js +2 -1
- package/dist/layouts/d3-dag/collapsable-d3-dag-layout.d.ts +25 -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 +252 -0
- package/dist/layouts/d3-dag/collapsable-d3-dag-layout.js.map +1 -0
- package/dist/layouts/d3-dag/d3-dag-layout.d.ts +48 -62
- package/dist/layouts/d3-dag/d3-dag-layout.d.ts.map +1 -1
- package/dist/layouts/d3-dag/d3-dag-layout.js +89 -273
- package/dist/layouts/d3-dag/d3-dag-layout.js.map +1 -1
- package/dist/layouts/d3-force/d3-force-layout.d.ts +22 -9
- package/dist/layouts/d3-force/d3-force-layout.d.ts.map +1 -1
- package/dist/layouts/d3-force/d3-force-layout.js +42 -22
- package/dist/layouts/d3-force/d3-force-layout.js.map +1 -1
- package/dist/layouts/d3-force/worker.d.ts +1 -0
- package/dist/layouts/d3-force/worker.js +1 -0
- package/dist/layouts/experimental/force-multi-graph-layout.d.ts +21 -16
- package/dist/layouts/experimental/force-multi-graph-layout.d.ts.map +1 -1
- package/dist/layouts/experimental/force-multi-graph-layout.js +49 -39
- package/dist/layouts/experimental/force-multi-graph-layout.js.map +1 -1
- package/dist/layouts/experimental/hive-plot-layout.d.ts +20 -16
- package/dist/layouts/experimental/hive-plot-layout.d.ts.map +1 -1
- package/dist/layouts/experimental/hive-plot-layout.js +35 -35
- package/dist/layouts/experimental/hive-plot-layout.js.map +1 -1
- package/dist/layouts/experimental/radial-layout.d.ts +14 -8
- package/dist/layouts/experimental/radial-layout.d.ts.map +1 -1
- package/dist/layouts/experimental/radial-layout.js +33 -15
- package/dist/layouts/experimental/radial-layout.js.map +1 -1
- package/dist/layouts/gpu-force/gpu-force-layout.d.ts +13 -9
- package/dist/layouts/gpu-force/gpu-force-layout.d.ts.map +1 -1
- package/dist/layouts/gpu-force/gpu-force-layout.js +61 -57
- package/dist/layouts/gpu-force/gpu-force-layout.js.map +1 -1
- package/dist/layouts/gpu-force/worker.d.ts +1 -0
- package/dist/layouts/gpu-force/worker.js +1 -0
- package/dist/layouts/simple-layout.d.ts +10 -26
- package/dist/layouts/simple-layout.d.ts.map +1 -1
- package/dist/layouts/simple-layout.js +15 -18
- package/dist/layouts/simple-layout.js.map +1 -1
- package/dist/loaders/dot-graph-loader.d.ts +26 -0
- package/dist/loaders/dot-graph-loader.d.ts.map +1 -0
- package/dist/loaders/dot-graph-loader.js +669 -0
- package/dist/loaders/dot-graph-loader.js.map +1 -0
- package/dist/loaders/json-graph-loader.d.ts +7 -0
- package/dist/loaders/json-graph-loader.d.ts.map +1 -0
- package/dist/loaders/json-graph-loader.js +32 -0
- package/dist/loaders/json-graph-loader.js.map +1 -0
- package/dist/loaders/parsers/edge-parsers.d.ts +3 -0
- package/dist/loaders/parsers/edge-parsers.d.ts.map +1 -0
- package/dist/loaders/{edge-parsers.js → parsers/edge-parsers.js} +2 -1
- package/dist/loaders/parsers/edge-parsers.js.map +1 -0
- package/dist/loaders/parsers/node-parsers.d.ts +3 -0
- package/dist/loaders/parsers/node-parsers.d.ts.map +1 -0
- package/dist/loaders/{node-parsers.js → parsers/node-parsers.js} +2 -1
- package/dist/loaders/parsers/node-parsers.js.map +1 -0
- package/dist/loaders/parsers/parse-json-graph.d.ts +30 -0
- package/dist/loaders/parsers/parse-json-graph.d.ts.map +1 -0
- package/dist/loaders/parsers/parse-json-graph.js +79 -0
- package/dist/loaders/parsers/parse-json-graph.js.map +1 -0
- package/dist/style/graph-layer-stylesheet.d.ts +3 -2
- package/dist/style/graph-layer-stylesheet.js +1 -0
- package/dist/style/graph-style-accessor-map.d.ts +1 -0
- package/dist/style/graph-style-accessor-map.js +1 -0
- package/dist/style/graph-style-engine.d.ts +6 -3
- package/dist/style/graph-style-engine.d.ts.map +1 -1
- package/dist/style/graph-style-engine.js +7 -5
- package/dist/style/graph-style-engine.js.map +1 -1
- package/dist/style/graph-stylesheet.schema.d.ts +1 -0
- package/dist/style/graph-stylesheet.schema.js +1 -0
- package/dist/style/style-property.d.ts +1 -0
- package/dist/style/style-property.js +2 -1
- package/dist/style/{style-engine.d.ts → stylesheet-engine.d.ts} +5 -4
- package/dist/style/stylesheet-engine.d.ts.map +1 -0
- package/dist/style/{style-engine.js → stylesheet-engine.js} +4 -3
- package/dist/style/stylesheet-engine.js.map +1 -0
- package/dist/utils/collapsed-chains.d.ts +10 -9
- package/dist/utils/collapsed-chains.d.ts.map +1 -1
- package/dist/utils/collapsed-chains.js +2 -6
- package/dist/utils/collapsed-chains.js.map +1 -1
- package/dist/utils/layer-utils.d.ts +1 -0
- package/dist/utils/layer-utils.js +1 -0
- package/dist/utils/log.d.ts +1 -0
- package/dist/utils/log.js +1 -0
- package/dist/utils/node-boundary.d.ts +1 -0
- package/dist/utils/node-boundary.js +1 -0
- package/dist/utils/polygon-calculations.d.ts +1 -0
- package/dist/utils/polygon-calculations.js +1 -0
- package/dist/utils/rank-grid.d.ts +31 -0
- package/dist/utils/rank-grid.d.ts.map +1 -0
- package/dist/utils/rank-grid.js +307 -0
- package/dist/utils/rank-grid.js.map +1 -0
- package/package.json +7 -11
- 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 +0 -2
- 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 +0 -2
- 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
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { Edge } from "./edge.js";
|
|
2
|
+
import { Node } from "./node.js";
|
|
3
|
+
import type { EdgeInterface, NodeInterface, GraphProps } from "./graph.js";
|
|
4
|
+
import { Graph } from "./graph.js";
|
|
5
|
+
import type { PlainGraphData } from "../graph-data/graph-data.js";
|
|
6
|
+
export type ClassicGraphProps = GraphProps & {
|
|
7
|
+
data: PlainGraphData;
|
|
8
|
+
};
|
|
9
|
+
/** Basic graph data structure */
|
|
10
|
+
export declare class ClassicGraph extends Graph {
|
|
11
|
+
/** List object of nodes. */
|
|
12
|
+
private _nodeMap;
|
|
13
|
+
/** List of object edges. */
|
|
14
|
+
private _edgeMap;
|
|
15
|
+
/**
|
|
16
|
+
* Identifies whether performing dirty check when streaming new data. If
|
|
17
|
+
* the name of the graph is not specified, will fall back to current time stamp.
|
|
18
|
+
*/
|
|
19
|
+
private _name;
|
|
20
|
+
/** Version the graph. A version is a number that is incremented every time the graph is updated. */
|
|
21
|
+
version: number;
|
|
22
|
+
/** Cached data: create array data from maps. */
|
|
23
|
+
private _cache;
|
|
24
|
+
private _suspendVersionUpdates;
|
|
25
|
+
/**
|
|
26
|
+
* The constructor of the graph class.
|
|
27
|
+
* @param props -
|
|
28
|
+
*/
|
|
29
|
+
constructor(props: ClassicGraphProps);
|
|
30
|
+
/**
|
|
31
|
+
* Set graph name
|
|
32
|
+
* @param name
|
|
33
|
+
*/
|
|
34
|
+
setGraphName(name: string): void;
|
|
35
|
+
/** Get the name of the graph. Default value is the time stamp when creating this graph.
|
|
36
|
+
* @return graph name.
|
|
37
|
+
*/
|
|
38
|
+
getGraphName(): string;
|
|
39
|
+
/**
|
|
40
|
+
* Perform a batch of operations defined by cb before indicating graph is updated
|
|
41
|
+
* @param {function} cb - a callback function containing the operations to perform
|
|
42
|
+
*/
|
|
43
|
+
transaction<T>(cb: (...args: unknown[]) => T): T;
|
|
44
|
+
/**
|
|
45
|
+
* Add a new node to the graph.
|
|
46
|
+
* @paramnode - expect a Node object to be added to the graph.
|
|
47
|
+
*/
|
|
48
|
+
addNode(node: Node): void;
|
|
49
|
+
/**
|
|
50
|
+
* Batch add nodes to the graph.
|
|
51
|
+
* @param nodes - a list of nodes to be added.
|
|
52
|
+
*/
|
|
53
|
+
batchAddNodes(nodes: Node[]): void;
|
|
54
|
+
/**
|
|
55
|
+
* Get all the nodes of the graph.
|
|
56
|
+
* @return {Node[]} - get all the nodes in the graph.
|
|
57
|
+
*/
|
|
58
|
+
getNodes(): NodeInterface[];
|
|
59
|
+
/**
|
|
60
|
+
* Get the node map of the graph. The key of the map is the ID of the nodes.
|
|
61
|
+
* @return - a map of nodes keyed by node IDs.
|
|
62
|
+
*/
|
|
63
|
+
getNodeMap(): Record<string | number, Node>;
|
|
64
|
+
/**
|
|
65
|
+
* Find a node by id
|
|
66
|
+
* @param nodeId The id of the node
|
|
67
|
+
* @return Node
|
|
68
|
+
*/
|
|
69
|
+
findNode(nodeId: string | number): Node | undefined;
|
|
70
|
+
findNodeById(nodeId: string | number): NodeInterface | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Update the indicated node to the provided value
|
|
73
|
+
* @param node
|
|
74
|
+
*/
|
|
75
|
+
updateNode(node: Node): void;
|
|
76
|
+
/**
|
|
77
|
+
* Add a new edge to the graph.
|
|
78
|
+
* @param edge - expect a Edge object to be added to the graph.
|
|
79
|
+
*/
|
|
80
|
+
addEdge(edge: Edge): void;
|
|
81
|
+
/**
|
|
82
|
+
* Batch add edges to the graph
|
|
83
|
+
* @param edges - a list of edges to be added.
|
|
84
|
+
*/
|
|
85
|
+
batchAddEdges(edges: Edge[]): void;
|
|
86
|
+
/**
|
|
87
|
+
* Update the indicated edge to the provided value
|
|
88
|
+
* @param edge
|
|
89
|
+
*/
|
|
90
|
+
updateEdge(edge: Edge): void;
|
|
91
|
+
/**
|
|
92
|
+
* Remove a node from the graph by node ID
|
|
93
|
+
* @param nodeId - the ID of the target node.
|
|
94
|
+
*/
|
|
95
|
+
removeNode(nodeId: string | number): void;
|
|
96
|
+
/**
|
|
97
|
+
* Get all the edges of the graph.
|
|
98
|
+
* @return get all the edges in the graph.
|
|
99
|
+
*/
|
|
100
|
+
getEdges(): EdgeInterface[];
|
|
101
|
+
destroy(): void;
|
|
102
|
+
/**
|
|
103
|
+
* Get the edge map of the graph. The key of the map is the ID of the edges.
|
|
104
|
+
* @return - a map of edges keyed by edge IDs.
|
|
105
|
+
*/
|
|
106
|
+
getEdgeMap(): Record<string, Edge>;
|
|
107
|
+
/**
|
|
108
|
+
* Remove an edge from the graph by the edge ID
|
|
109
|
+
* @param {String|Number} edgeId - the target edge ID.
|
|
110
|
+
*/
|
|
111
|
+
removeEdge(edgeId: string | number): void;
|
|
112
|
+
/**
|
|
113
|
+
* Find the edge by edge ID.
|
|
114
|
+
* @param id - the target edge ID
|
|
115
|
+
* @return - the target edge.
|
|
116
|
+
*/
|
|
117
|
+
findEdge(edgeId: string | number): Edge;
|
|
118
|
+
/**
|
|
119
|
+
* Return all the connected edges of a node by nodeID.
|
|
120
|
+
* @param nodeId - the target node ID
|
|
121
|
+
* @return - an array of the connected edges.
|
|
122
|
+
*/
|
|
123
|
+
getConnectedEdges(nodeId: string | number): EdgeInterface[];
|
|
124
|
+
/**
|
|
125
|
+
* Return all the sibling nodes of a node by nodeID.
|
|
126
|
+
* @param nodeId - the target node ID
|
|
127
|
+
* @return - an array of the sibling nodes.
|
|
128
|
+
*/
|
|
129
|
+
getNodeSiblings(nodeId: string | number): Node[];
|
|
130
|
+
/**
|
|
131
|
+
* Get the degree of a node.
|
|
132
|
+
* @param nodeId - the target node ID.
|
|
133
|
+
* @return - the degree of the node.
|
|
134
|
+
*/
|
|
135
|
+
getDegree(nodeId: string | number): number;
|
|
136
|
+
/**
|
|
137
|
+
* Clean up all the nodes in the graph.
|
|
138
|
+
*/
|
|
139
|
+
resetNodes(): void;
|
|
140
|
+
/**
|
|
141
|
+
* Clean up all the edges in the graph.
|
|
142
|
+
*/
|
|
143
|
+
resetEdges(): void;
|
|
144
|
+
/**
|
|
145
|
+
* Clean up everything in the graph.
|
|
146
|
+
*/
|
|
147
|
+
reset(): void;
|
|
148
|
+
/**
|
|
149
|
+
* @deprecated Prefer interacting with this instance directly.
|
|
150
|
+
*/
|
|
151
|
+
getClassicGraph(): ClassicGraph;
|
|
152
|
+
/**
|
|
153
|
+
* Trigger an update to the graph.
|
|
154
|
+
*/
|
|
155
|
+
triggerUpdate(): void;
|
|
156
|
+
/**
|
|
157
|
+
* Return true if the graph is empty.
|
|
158
|
+
* @return {Boolean} Return true if the graph is empty.
|
|
159
|
+
*/
|
|
160
|
+
isEmpty(): boolean;
|
|
161
|
+
/**
|
|
162
|
+
* Check the equality of two graphs data by checking last update time stamp
|
|
163
|
+
* @param graph Another graph to be compared against itself
|
|
164
|
+
* @return true if the graph is the same as itself.
|
|
165
|
+
*/
|
|
166
|
+
equals(graph: ClassicGraph): boolean;
|
|
167
|
+
_bumpVersion(): void;
|
|
168
|
+
_updateCache(key: 'nodes' | 'edges', updateValue: unknown): void;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=classic-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classic-graph.d.ts","sourceRoot":"","sources":["../../src/graph/classic-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { warn } from "../utils/log.js";
|
|
5
|
+
import { Cache } from "../core/cache.js";
|
|
6
|
+
import { Edge } from "./edge.js";
|
|
7
|
+
import { Node } from "./node.js";
|
|
8
|
+
import { Graph } from "./graph.js";
|
|
9
|
+
import { cloneRecord, normalizeEdgeState, normalizeNodeState, normalizeVersion } from "./graph-normalization.js";
|
|
10
|
+
/** Basic graph data structure */
|
|
11
|
+
export class ClassicGraph extends Graph {
|
|
12
|
+
/** List object of nodes. */
|
|
13
|
+
_nodeMap = {};
|
|
14
|
+
/** List of object edges. */
|
|
15
|
+
_edgeMap = {};
|
|
16
|
+
/**
|
|
17
|
+
* Identifies whether performing dirty check when streaming new data. If
|
|
18
|
+
* the name of the graph is not specified, will fall back to current time stamp.
|
|
19
|
+
*/
|
|
20
|
+
_name = Date.now().toString();
|
|
21
|
+
/** Version the graph. A version is a number that is incremented every time the graph is updated. */
|
|
22
|
+
version = 0;
|
|
23
|
+
/** Cached data: create array data from maps. */
|
|
24
|
+
_cache = new Cache();
|
|
25
|
+
_suspendVersionUpdates = false;
|
|
26
|
+
/**
|
|
27
|
+
* The constructor of the graph class.
|
|
28
|
+
* @param props -
|
|
29
|
+
*/
|
|
30
|
+
constructor(props) {
|
|
31
|
+
super(props);
|
|
32
|
+
const data = props.data;
|
|
33
|
+
const nodes = createNodesFromPlainGraphData(data?.nodes);
|
|
34
|
+
const edges = createEdgesFromPlainGraphData(data?.edges);
|
|
35
|
+
this._name = `unnamed-graph-${Date.now().toString()}`;
|
|
36
|
+
this._suspendVersionUpdates = true;
|
|
37
|
+
this.version = normalizeVersion(data?.version);
|
|
38
|
+
try {
|
|
39
|
+
this.batchAddNodes(nodes);
|
|
40
|
+
this.batchAddEdges(edges);
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
this._suspendVersionUpdates = false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Set graph name
|
|
48
|
+
* @param name
|
|
49
|
+
*/
|
|
50
|
+
setGraphName(name) {
|
|
51
|
+
this._name = name;
|
|
52
|
+
}
|
|
53
|
+
/** Get the name of the graph. Default value is the time stamp when creating this graph.
|
|
54
|
+
* @return graph name.
|
|
55
|
+
*/
|
|
56
|
+
getGraphName() {
|
|
57
|
+
return this._name.toString();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Perform a batch of operations defined by cb before indicating graph is updated
|
|
61
|
+
* @param {function} cb - a callback function containing the operations to perform
|
|
62
|
+
*/
|
|
63
|
+
transaction(cb) {
|
|
64
|
+
try {
|
|
65
|
+
this.props.onTransactionStart?.();
|
|
66
|
+
return cb();
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
this.props.onTransactionEnd?.();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Add a new node to the graph.
|
|
74
|
+
* @paramnode - expect a Node object to be added to the graph.
|
|
75
|
+
*/
|
|
76
|
+
addNode(node) {
|
|
77
|
+
// add it to the list and map
|
|
78
|
+
this._nodeMap[node.getId()] = node;
|
|
79
|
+
// update last update time stamp
|
|
80
|
+
this._bumpVersion();
|
|
81
|
+
this.props.onNodeAdded?.(node);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Batch add nodes to the graph.
|
|
85
|
+
* @param nodes - a list of nodes to be added.
|
|
86
|
+
*/
|
|
87
|
+
batchAddNodes(nodes) {
|
|
88
|
+
// convert an array of objects to an object
|
|
89
|
+
this._nodeMap = nodes.reduce((res, node) => {
|
|
90
|
+
res[node.getId()] = node;
|
|
91
|
+
this.props.onNodeAdded?.(node);
|
|
92
|
+
return res;
|
|
93
|
+
}, { ...this._nodeMap });
|
|
94
|
+
this._bumpVersion();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get all the nodes of the graph.
|
|
98
|
+
* @return {Node[]} - get all the nodes in the graph.
|
|
99
|
+
*/
|
|
100
|
+
getNodes() {
|
|
101
|
+
this._updateCache('nodes', () => Object.values(this._nodeMap));
|
|
102
|
+
return this._cache.get('nodes') ?? [];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get the node map of the graph. The key of the map is the ID of the nodes.
|
|
106
|
+
* @return - a map of nodes keyed by node IDs.
|
|
107
|
+
*/
|
|
108
|
+
getNodeMap() {
|
|
109
|
+
return this._nodeMap;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Find a node by id
|
|
113
|
+
* @param nodeId The id of the node
|
|
114
|
+
* @return Node
|
|
115
|
+
*/
|
|
116
|
+
findNode(nodeId) {
|
|
117
|
+
return this._nodeMap[nodeId];
|
|
118
|
+
}
|
|
119
|
+
findNodeById(nodeId) {
|
|
120
|
+
return this.findNode(nodeId);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Update the indicated node to the provided value
|
|
124
|
+
* @param node
|
|
125
|
+
*/
|
|
126
|
+
updateNode(node) {
|
|
127
|
+
this._nodeMap[node.getId()] = node;
|
|
128
|
+
this._bumpVersion();
|
|
129
|
+
this.props.onNodeUpdated?.(node);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Add a new edge to the graph.
|
|
133
|
+
* @param edge - expect a Edge object to be added to the graph.
|
|
134
|
+
*/
|
|
135
|
+
addEdge(edge) {
|
|
136
|
+
const sourceNode = this.findNode(edge.getSourceNodeId());
|
|
137
|
+
const targetNode = this.findNode(edge.getTargetNodeId());
|
|
138
|
+
if (!sourceNode || !targetNode) {
|
|
139
|
+
warn(`Unable to add edge ${edge.id}, source or target node is missing.`);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
this._edgeMap[edge.getId()] = edge;
|
|
143
|
+
sourceNode.addConnectedEdges(edge);
|
|
144
|
+
targetNode.addConnectedEdges(edge);
|
|
145
|
+
this._bumpVersion();
|
|
146
|
+
this.props.onEdgeAdded?.(edge);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Batch add edges to the graph
|
|
150
|
+
* @param edges - a list of edges to be added.
|
|
151
|
+
*/
|
|
152
|
+
batchAddEdges(edges) {
|
|
153
|
+
edges.forEach((edge) => this.addEdge(edge));
|
|
154
|
+
this._bumpVersion();
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Update the indicated edge to the provided value
|
|
158
|
+
* @param edge
|
|
159
|
+
*/
|
|
160
|
+
updateEdge(edge) {
|
|
161
|
+
this._edgeMap[edge.getId()] = edge;
|
|
162
|
+
this._bumpVersion();
|
|
163
|
+
this.props.onEdgeUpdated?.(edge);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Remove a node from the graph by node ID
|
|
167
|
+
* @param nodeId - the ID of the target node.
|
|
168
|
+
*/
|
|
169
|
+
removeNode(nodeId) {
|
|
170
|
+
const node = this.findNode(nodeId);
|
|
171
|
+
if (!node) {
|
|
172
|
+
warn(`Unable to remove node ${nodeId} - doesn't exist`);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
// remove all edges connect to this node from map
|
|
176
|
+
node.getConnectedEdges().forEach((e) => {
|
|
177
|
+
delete this._edgeMap[e.getId()];
|
|
178
|
+
});
|
|
179
|
+
// remove the node from map
|
|
180
|
+
delete this._nodeMap[nodeId];
|
|
181
|
+
this._bumpVersion();
|
|
182
|
+
this.props.onNodeRemoved?.(node);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Get all the edges of the graph.
|
|
186
|
+
* @return get all the edges in the graph.
|
|
187
|
+
*/
|
|
188
|
+
getEdges() {
|
|
189
|
+
this._updateCache('edges', () => Object.values(this._edgeMap));
|
|
190
|
+
return this._cache.get('edges') ?? [];
|
|
191
|
+
}
|
|
192
|
+
destroy() {
|
|
193
|
+
// No additional teardown required for the legacy graph implementation.
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Get the edge map of the graph. The key of the map is the ID of the edges.
|
|
197
|
+
* @return - a map of edges keyed by edge IDs.
|
|
198
|
+
*/
|
|
199
|
+
getEdgeMap() {
|
|
200
|
+
return this._edgeMap;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Remove an edge from the graph by the edge ID
|
|
204
|
+
* @param {String|Number} edgeId - the target edge ID.
|
|
205
|
+
*/
|
|
206
|
+
removeEdge(edgeId) {
|
|
207
|
+
const edge = this.findEdge(edgeId);
|
|
208
|
+
if (!edge) {
|
|
209
|
+
warn(`Unable to remove edge ${edgeId} - doesn't exist`);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
const sourceNode = this.findNode(edge.getSourceNodeId());
|
|
213
|
+
const targetNode = this.findNode(edge.getTargetNodeId());
|
|
214
|
+
delete this._edgeMap[edgeId];
|
|
215
|
+
sourceNode.removeConnectedEdges(edge);
|
|
216
|
+
targetNode.removeConnectedEdges(edge);
|
|
217
|
+
this._bumpVersion();
|
|
218
|
+
this.props.onEdgeRemoved?.(edge);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Find the edge by edge ID.
|
|
222
|
+
* @param id - the target edge ID
|
|
223
|
+
* @return - the target edge.
|
|
224
|
+
*/
|
|
225
|
+
findEdge(edgeId) {
|
|
226
|
+
return this._edgeMap[edgeId];
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Return all the connected edges of a node by nodeID.
|
|
230
|
+
* @param nodeId - the target node ID
|
|
231
|
+
* @return - an array of the connected edges.
|
|
232
|
+
*/
|
|
233
|
+
getConnectedEdges(nodeId) {
|
|
234
|
+
const node = this.findNode(nodeId);
|
|
235
|
+
if (!node) {
|
|
236
|
+
warn(`Unable to find node ${nodeId} - doesn't exist`);
|
|
237
|
+
return [];
|
|
238
|
+
}
|
|
239
|
+
return node.getConnectedEdges();
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Return all the sibling nodes of a node by nodeID.
|
|
243
|
+
* @param nodeId - the target node ID
|
|
244
|
+
* @return - an array of the sibling nodes.
|
|
245
|
+
*/
|
|
246
|
+
getNodeSiblings(nodeId) {
|
|
247
|
+
const node = this.findNode(nodeId);
|
|
248
|
+
if (!node) {
|
|
249
|
+
warn(`Unable to find node ${nodeId} - doesn't exist`);
|
|
250
|
+
return [];
|
|
251
|
+
}
|
|
252
|
+
return node.getSiblingIds().map((siblingNodeId) => this.findNode(siblingNodeId));
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Get the degree of a node.
|
|
256
|
+
* @param nodeId - the target node ID.
|
|
257
|
+
* @return - the degree of the node.
|
|
258
|
+
*/
|
|
259
|
+
getDegree(nodeId) {
|
|
260
|
+
const node = this.findNode(nodeId);
|
|
261
|
+
if (!node) {
|
|
262
|
+
warn(`Unable to find node ${nodeId} - doesn't exist`);
|
|
263
|
+
return 0;
|
|
264
|
+
}
|
|
265
|
+
return node.getDegree();
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Clean up all the nodes in the graph.
|
|
269
|
+
*/
|
|
270
|
+
resetNodes() {
|
|
271
|
+
this._nodeMap = {};
|
|
272
|
+
this._bumpVersion();
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Clean up all the edges in the graph.
|
|
276
|
+
*/
|
|
277
|
+
resetEdges() {
|
|
278
|
+
this._edgeMap = {};
|
|
279
|
+
this._bumpVersion();
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Clean up everything in the graph.
|
|
283
|
+
*/
|
|
284
|
+
reset() {
|
|
285
|
+
this.resetNodes();
|
|
286
|
+
this.resetEdges();
|
|
287
|
+
this._bumpVersion();
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* @deprecated Prefer interacting with this instance directly.
|
|
291
|
+
*/
|
|
292
|
+
getClassicGraph() {
|
|
293
|
+
return this;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Trigger an update to the graph.
|
|
297
|
+
*/
|
|
298
|
+
triggerUpdate() {
|
|
299
|
+
this._bumpVersion();
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Return true if the graph is empty.
|
|
303
|
+
* @return {Boolean} Return true if the graph is empty.
|
|
304
|
+
*/
|
|
305
|
+
isEmpty() {
|
|
306
|
+
return Object.keys(this._nodeMap).length === 0;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Check the equality of two graphs data by checking last update time stamp
|
|
310
|
+
* @param graph Another graph to be compared against itself
|
|
311
|
+
* @return true if the graph is the same as itself.
|
|
312
|
+
*/
|
|
313
|
+
equals(graph) {
|
|
314
|
+
if (!graph || !(graph instanceof ClassicGraph)) {
|
|
315
|
+
return false;
|
|
316
|
+
}
|
|
317
|
+
return this.version === graph.version;
|
|
318
|
+
}
|
|
319
|
+
_bumpVersion() {
|
|
320
|
+
if (this._suspendVersionUpdates) {
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
this.version += 1;
|
|
324
|
+
}
|
|
325
|
+
_updateCache(key, updateValue) {
|
|
326
|
+
this._cache.set(key, updateValue, this.version);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
function createNodesFromPlainGraphData(nodes) {
|
|
330
|
+
if (!nodes) {
|
|
331
|
+
return [];
|
|
332
|
+
}
|
|
333
|
+
return nodes.map((nodeData) => {
|
|
334
|
+
const nodeAttributes = createNodeAttributesFromPlainData(nodeData);
|
|
335
|
+
const selectable = typeof nodeData.selectable === 'boolean'
|
|
336
|
+
? nodeData.selectable
|
|
337
|
+
: Boolean(nodeAttributes.selectable);
|
|
338
|
+
const highlightConnectedEdges = typeof nodeData.highlightConnectedEdges === 'boolean'
|
|
339
|
+
? nodeData.highlightConnectedEdges
|
|
340
|
+
: Boolean(nodeAttributes.highlightConnectedEdges);
|
|
341
|
+
const node = new Node({
|
|
342
|
+
id: nodeData.id,
|
|
343
|
+
selectable,
|
|
344
|
+
highlightConnectedEdges,
|
|
345
|
+
data: nodeAttributes
|
|
346
|
+
});
|
|
347
|
+
node.setState(normalizeNodeState(nodeData.state));
|
|
348
|
+
return node;
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
function createEdgesFromPlainGraphData(edges) {
|
|
352
|
+
if (!edges) {
|
|
353
|
+
return [];
|
|
354
|
+
}
|
|
355
|
+
return edges.map((edgeData) => {
|
|
356
|
+
const edgeAttributes = createEdgeAttributesFromPlainData(edgeData);
|
|
357
|
+
const directed = typeof edgeData.directed === 'boolean'
|
|
358
|
+
? edgeData.directed
|
|
359
|
+
: Boolean(edgeAttributes.directed);
|
|
360
|
+
const edge = new Edge({
|
|
361
|
+
id: edgeData.id,
|
|
362
|
+
sourceId: edgeData.sourceId,
|
|
363
|
+
targetId: edgeData.targetId,
|
|
364
|
+
directed,
|
|
365
|
+
data: edgeAttributes
|
|
366
|
+
});
|
|
367
|
+
edge.setState(normalizeEdgeState(edgeData.state));
|
|
368
|
+
return edge;
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
function createNodeAttributesFromPlainData(node) {
|
|
372
|
+
const attributes = cloneRecord(node.attributes);
|
|
373
|
+
if (typeof node.label !== 'undefined') {
|
|
374
|
+
attributes.label = node.label;
|
|
375
|
+
}
|
|
376
|
+
if (typeof node.weight !== 'undefined') {
|
|
377
|
+
attributes.weight = node.weight;
|
|
378
|
+
}
|
|
379
|
+
return attributes;
|
|
380
|
+
}
|
|
381
|
+
function createEdgeAttributesFromPlainData(edge) {
|
|
382
|
+
const attributes = cloneRecord(edge.attributes);
|
|
383
|
+
if (typeof edge.label !== 'undefined') {
|
|
384
|
+
attributes.label = edge.label;
|
|
385
|
+
}
|
|
386
|
+
if (typeof edge.weight !== 'undefined') {
|
|
387
|
+
attributes.weight = edge.weight;
|
|
388
|
+
}
|
|
389
|
+
return attributes;
|
|
390
|
+
}
|
|
391
|
+
//# sourceMappingURL=classic-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classic-graph.js","sourceRoot":"","sources":["../../src/graph/classic-graph.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,IAAI,EAAC,wBAAqB;AAClC,OAAO,EAAC,KAAK,EAAC,yBAAsB;AACpC,OAAO,EAAC,IAAI,EAAC,kBAAe;AAC5B,OAAO,EAAC,IAAI,EAAC,kBAAe;AAE5B,OAAO,EAAC,KAAK,EAAC,mBAAgB;AAE9B,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAC,iCAA8B;AAM5G,iCAAiC;AACjC,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,4BAA4B;IACpB,QAAQ,GAAyB,EAAE,CAAC;IAC5C,4BAA4B;IACpB,QAAQ,GAAyB,EAAE,CAAC;IAE5C;;;OAGG;IACK,KAAK,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC9C,oGAAoG;IAC7F,OAAO,GAAG,CAAC,CAAC;IACnB,gDAAgD;IACxC,MAAM,GAAG,IAAI,KAAK,EAAsC,CAAC;IACzD,sBAAsB,GAAG,KAAK,CAAC;IAEvC;;;OAGG;IACH,YAAY,KAAwB;QAClC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEzD,IAAI,CAAC,KAAK,GAAG,iBAAiB,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QACtD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,WAAW,CAAI,EAA6B;QAC1C,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAClC,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,IAAU;QAChB,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QACnC,gCAAgC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,KAAa;QACzB,2CAA2C;QAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACZ,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAC,GAAG,IAAI,CAAC,QAAQ,EAAC,CACnB,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE/D,OAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAY,IAAI,EAAE,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,MAAuB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,MAAuB;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,IAAU;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,IAAU;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAEzD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,sBAAsB,IAAI,CAAC,EAAE,sCAAsC,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QACnC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,KAAa;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,IAAU;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,MAAuB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,yBAAyB,MAAM,kBAAkB,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,iDAAiD;QACjD,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,2BAA2B;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE/D,OAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAY,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,OAAO;QACL,uEAAuE;IACzE,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,MAAuB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,yBAAyB,MAAM,kBAAkB,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAEzD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACtC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,MAAuB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,MAAuB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,uBAAuB,MAAM,kBAAkB,CAAC,CAAC;YACtD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,MAAuB;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,uBAAuB,MAAM,kBAAkB,CAAC,CAAC;YACtD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACnF,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAuB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,uBAAuB,MAAM,kBAAkB,CAAC,CAAC;YACtD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAmB;QACxB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,YAAY,CAAC,GAAsB,EAAE,WAAoB;QACvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;CACF;AAED,SAAS,6BAA6B,CAAC,KAA8B;IACnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC5B,MAAM,cAAc,GAAG,iCAAiC,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,UAAU,GACd,OAAO,QAAQ,CAAC,UAAU,KAAK,SAAS;YACtC,CAAC,CAAC,QAAQ,CAAC,UAAU;YACrB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,uBAAuB,GAC3B,OAAO,QAAQ,CAAC,uBAAuB,KAAK,SAAS;YACnD,CAAC,CAAC,QAAQ,CAAC,uBAAuB;YAClC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;YACpB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,UAAU;YACV,uBAAuB;YACvB,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,6BAA6B,CAAC,KAA8B;IACnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC5B,MAAM,cAAc,GAAG,iCAAiC,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,QAAQ,GACZ,OAAO,QAAQ,CAAC,QAAQ,KAAK,SAAS;YACpC,CAAC,CAAC,QAAQ,CAAC,QAAQ;YACnB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;YACpB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ;YACR,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iCAAiC,CAAC,IAAmB;IAC5D,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACtC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACvC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,iCAAiC,CAAC,IAAmB;IAC5D,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACtC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACvC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
package/dist/graph/edge.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { EdgeState } from
|
|
2
|
-
import {
|
|
1
|
+
import type { EdgeState } from "../core/constants.js";
|
|
2
|
+
import type { EdgeInterface, NodeInterface } from "./graph.js";
|
|
3
3
|
export interface EdgeOptions {
|
|
4
4
|
/** the unique ID of the edge */
|
|
5
5
|
id: string | number;
|
|
@@ -13,9 +13,9 @@ export interface EdgeOptions {
|
|
|
13
13
|
data?: Record<string, unknown>;
|
|
14
14
|
}
|
|
15
15
|
/** Basic edge data structure */
|
|
16
|
-
export declare class Edge {
|
|
16
|
+
export declare class Edge implements EdgeInterface {
|
|
17
17
|
/** Unique uuid of the edge. */
|
|
18
|
-
id: string | number;
|
|
18
|
+
readonly id: string | number;
|
|
19
19
|
/** ID of the source node. */
|
|
20
20
|
private _sourceId;
|
|
21
21
|
/** ID of the target node. */
|
|
@@ -82,7 +82,8 @@ export declare class Edge {
|
|
|
82
82
|
* @returns state - the current interaction state for the edge
|
|
83
83
|
*/
|
|
84
84
|
getState(): EdgeState;
|
|
85
|
-
addNode(node:
|
|
86
|
-
removeNode(node:
|
|
87
|
-
getConnectedNodes():
|
|
85
|
+
addNode(node: NodeInterface): void;
|
|
86
|
+
removeNode(node: NodeInterface): void;
|
|
87
|
+
getConnectedNodes(): NodeInterface[];
|
|
88
88
|
}
|
|
89
|
+
//# 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":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,6BAA0B;AACjD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/graph/edge.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,6BAA0B;AACjD,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAC,mBAAgB;AAE1D,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,IAAK,YAAW,aAAa;IACxC,+BAA+B;IAC/B,SAAgB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,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,CAAqC;IACrE,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,aAAa,GAAG,IAAI;IAIlC,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAIrC,iBAAiB,IAAI,aAAa,EAAE;CAGrC"}
|
package/dist/graph/edge.js
CHANGED
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;AAmBpC,gCAAgC;AAChC,MAAM,OAAO,IAAI;IACf,+BAA+B;
|
|
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;IACf,EAAE,CAAkB;IACpC,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,GAAkC,EAAE,CAAC;IACrE,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,IAAmB;QACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,IAAmB;QAC5B,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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as arrow from 'apache-arrow';
|
|
2
|
+
export declare function getVectorLength(vector: arrow.Vector | null): number;
|
|
3
|
+
export declare function getVectorValue(vector: arrow.Vector | null, index: number): unknown;
|
|
4
|
+
export declare function getColumnVector(table: arrow.Table, columnName: string): arrow.Vector | null;
|
|
5
|
+
export declare function parseDataRecord(value: unknown): Record<string, unknown>;
|
|
6
|
+
export declare function coerceIdentifier(value: unknown): string | number;
|
|
7
|
+
//# sourceMappingURL=arrow-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrow-utils.d.ts","sourceRoot":"","sources":["../../../src/graph/functions/arrow-utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAEnE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAElF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAqB3F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAcvE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAkBhE"}
|