@kortexya/nodus 0.1.0
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 +37 -0
- package/README.md +60 -0
- package/__vite-plugin-wasm-helper-1Aiokjk5.js +24 -0
- package/assets/hypergraphWorker-DV0aFI3L.js +1 -0
- package/assets/layoutWorker-DwDJwbgr.js +285 -0
- package/assets/nodus_wasm-C0vDfO5K.js +1 -0
- package/chunk-DmhlhrBa.js +11 -0
- package/nodus.src.bundle.js +33577 -0
- package/nodus_render_wasm-Bs6hlsx-.js +2617 -0
- package/nodus_wasm-DKYQVSUZ.js +2789 -0
- package/package.json +61 -0
- package/types/Nodus.d.ts +100 -0
- package/types/algorithms/concentric/index.d.ts +29 -0
- package/types/algorithms/concentricFactory.d.ts +43 -0
- package/types/algorithms/force/Alea.d.ts +13 -0
- package/types/algorithms/force/BVH.d.ts +35 -0
- package/types/algorithms/force/LayoutData.d.ts +40 -0
- package/types/algorithms/force/Packing.d.ts +31 -0
- package/types/algorithms/force/Physics.d.ts +61 -0
- package/types/algorithms/force/SEC.d.ts +14 -0
- package/types/algorithms/force/Topology.d.ts +3 -0
- package/types/algorithms/force/index.d.ts +54 -0
- package/types/algorithms/force-gpu/ParticleSystem.d.ts +45 -0
- package/types/algorithms/force-gpu/Settings.d.ts +60 -0
- package/types/algorithms/force-gpu/Simulation.d.ts +7 -0
- package/types/algorithms/force-gpu/getGlContext.d.ts +10 -0
- package/types/algorithms/force-gpu/gpuLayout.d.ts +14 -0
- package/types/algorithms/force-gpu/index.d.ts +2 -0
- package/types/algorithms/force-gpu/kernels/index.d.ts +176 -0
- package/types/algorithms/force-gpu/kernels/utils.d.ts +31 -0
- package/types/algorithms/force-gpu/shaders/aabb.d.ts +2 -0
- package/types/algorithms/force-gpu/shaders/bhExpand.d.ts +2 -0
- package/types/algorithms/force-gpu/shaders/bhTranslate.d.ts +2 -0
- package/types/algorithms/force-gpu/shaders/cellLookup.d.ts +2 -0
- package/types/algorithms/force-gpu/shaders/index.d.ts +9 -0
- package/types/algorithms/force-gpu/shaders/integrate.d.ts +2 -0
- package/types/algorithms/force-gpu/shaders/morton.d.ts +2 -0
- package/types/algorithms/force-gpu/shaders/sortIntervals.d.ts +2 -0
- package/types/algorithms/force-gpu/shaders/sortKeys.d.ts +2 -0
- package/types/algorithms/force-gpu/shaders/types.d.ts +10 -0
- package/types/algorithms/force-gpu/webgl/helpers.d.ts +24 -0
- package/types/algorithms/force-gpu/webgl/index.d.ts +4 -0
- package/types/algorithms/force-gpu/webgl/program.d.ts +15 -0
- package/types/algorithms/forceFactory.d.ts +55 -0
- package/types/algorithms/forceLinkFactory.d.ts +40 -0
- package/types/algorithms/grid/index.d.ts +26 -0
- package/types/algorithms/gridFactory.d.ts +30 -0
- package/types/algorithms/hierarchical/index.d.ts +80 -0
- package/types/algorithms/hierarchical/sugiyama.d.ts +144 -0
- package/types/algorithms/hierarchicalFactory.d.ts +49 -0
- package/types/algorithms/index.d.ts +13 -0
- package/types/algorithms/radial/index.d.ts +33 -0
- package/types/algorithms/radialFactory.d.ts +54 -0
- package/types/algorithms/sequential/index.d.ts +37 -0
- package/types/algorithms/sequentialFactory.d.ts +37 -0
- package/types/core/Edge.d.ts +67 -0
- package/types/core/EdgeList.d.ts +86 -0
- package/types/core/Node.d.ts +89 -0
- package/types/core/NodeList.d.ts +105 -0
- package/types/core/Transformation.d.ts +108 -0
- package/types/core/enums.d.ts +16 -0
- package/types/geometry/BoundingBox.d.ts +41 -0
- package/types/geometry/index.d.ts +276 -0
- package/types/geometry/types.d.ts +27 -0
- package/types/hypergraph/Hypergraph.d.ts +74 -0
- package/types/hypergraph/KoenigGraph.d.ts +29 -0
- package/types/hypergraph/Simplifier.d.ts +39 -0
- package/types/hypergraph/Statistics.d.ts +55 -0
- package/types/hypergraph/forbidden/StrangledHyperedge.d.ts +12 -0
- package/types/hypergraph/forbidden/StrangledVertex.d.ts +16 -0
- package/types/hypergraph/forbidden/ThreeAdjacentCluster2.d.ts +10 -0
- package/types/hypergraph/forbidden/TwoAdjacentCluster3.d.ts +14 -0
- package/types/hypergraph/forbidden/index.d.ts +22 -0
- package/types/hypergraph/index.d.ts +21 -0
- package/types/hypergraph/layout/Adam.d.ts +12 -0
- package/types/hypergraph/layout/Energy.d.ts +55 -0
- package/types/hypergraph/layout/LBFGS.d.ts +32 -0
- package/types/hypergraph/layout/Optimizer.d.ts +60 -0
- package/types/hypergraph/layout/Reverser.d.ts +42 -0
- package/types/hypergraph/operations/AtomicOperation.d.ts +54 -0
- package/types/hypergraph/operations/HyperedgeMerger.d.ts +30 -0
- package/types/hypergraph/operations/HyperedgeRemoval.d.ts +27 -0
- package/types/hypergraph/operations/VertexMerger.d.ts +32 -0
- package/types/hypergraph/operations/VertexRemoval.d.ts +30 -0
- package/types/hypergraph/operations/index.d.ts +19 -0
- package/types/hypergraph/osfkb/adapter.d.ts +315 -0
- package/types/hypergraph/render/Interaction.d.ts +40 -0
- package/types/hypergraph/render/PolygonRenderer.d.ts +50 -0
- package/types/hypergraph/render/SVGPolygonRenderer.d.ts +7 -0
- package/types/hypergraph/types.d.ts +170 -0
- package/types/index.d.ts +21 -0
- package/types/internals/Algorithms.d.ts +68 -0
- package/types/internals/AlgorithmsPrimitives.d.ts +18 -0
- package/types/internals/Animations.d.ts +39 -0
- package/types/internals/AttributePathPrimitives.d.ts +2 -0
- package/types/internals/Brand.d.ts +22 -0
- package/types/internals/Camera.d.ts +115 -0
- package/types/internals/CameraInteractions.d.ts +15 -0
- package/types/internals/CameraInteractionsPrimitives.d.ts +18 -0
- package/types/internals/Captor.d.ts +56 -0
- package/types/internals/CaptorPrimitives.d.ts +9 -0
- package/types/internals/ClassModule.d.ts +42 -0
- package/types/internals/ConnectNodes.d.ts +23 -0
- package/types/internals/CurvatureManager.d.ts +14 -0
- package/types/internals/DataModule.d.ts +29 -0
- package/types/internals/Disabled.d.ts +27 -0
- package/types/internals/DomModule.d.ts +87 -0
- package/types/internals/DragModule.d.ts +14 -0
- package/types/internals/ElementSet.d.ts +17 -0
- package/types/internals/EventsModule.d.ts +41 -0
- package/types/internals/FlexArray.d.ts +54 -0
- package/types/internals/Geo.d.ts +127 -0
- package/types/internals/Graph.d.ts +109 -0
- package/types/internals/Graphics.d.ts +112 -0
- package/types/internals/GraphicsEngine.d.ts +96 -0
- package/types/internals/Hover.d.ts +32 -0
- package/types/internals/Hypergraph.d.ts +112 -0
- package/types/internals/IndexList.d.ts +28 -0
- package/types/internals/IndividualAttributes.d.ts +27 -0
- package/types/internals/Interactions.d.ts +45 -0
- package/types/internals/Keyboard.d.ts +25 -0
- package/types/internals/LabelManager.d.ts +56 -0
- package/types/internals/Lasso.d.ts +22 -0
- package/types/internals/Layers.d.ts +79 -0
- package/types/internals/LayersPrimitives.d.ts +5 -0
- package/types/internals/Layouts.d.ts +35 -0
- package/types/internals/LayoutsInternal.d.ts +37 -0
- package/types/internals/LayoutsPrimitives.d.ts +23 -0
- package/types/internals/Legend.d.ts +33 -0
- package/types/internals/LegendPrimitives.d.ts +3 -0
- package/types/internals/Locate.d.ts +43 -0
- package/types/internals/LocatePrimitives.d.ts +20 -0
- package/types/internals/MappingManager.d.ts +27 -0
- package/types/internals/MappingPrimitives.d.ts +29 -0
- package/types/internals/Module.d.ts +23 -0
- package/types/internals/Mouse.d.ts +42 -0
- package/types/internals/NodusModules.d.ts +99 -0
- package/types/internals/PositionModule.d.ts +10 -0
- package/types/internals/PulseModule.d.ts +29 -0
- package/types/internals/Quadtree.d.ts +100 -0
- package/types/internals/RectangleSelect.d.ts +18 -0
- package/types/internals/Resizing.d.ts +48 -0
- package/types/internals/Rewiring.d.ts +64 -0
- package/types/internals/SchemaWatchPrimitives.d.ts +75 -0
- package/types/internals/Selection.d.ts +52 -0
- package/types/internals/SelectionModule.d.ts +27 -0
- package/types/internals/Settings.d.ts +20 -0
- package/types/internals/Snapping.d.ts +54 -0
- package/types/internals/Spatial.d.ts +50 -0
- package/types/internals/SpatialPrimitives.d.ts +75 -0
- package/types/internals/Storage.d.ts +46 -0
- package/types/internals/StyleRulesModule.d.ts +21 -0
- package/types/internals/Synchronizer.d.ts +17 -0
- package/types/internals/Tooltip.d.ts +25 -0
- package/types/internals/TooltipPrimitives.d.ts +21 -0
- package/types/internals/Topology.d.ts +50 -0
- package/types/internals/Touch.d.ts +16 -0
- package/types/internals/Transformations.d.ts +36 -0
- package/types/internals/VirtualMouse.d.ts +52 -0
- package/types/internals/WasmHGrid.d.ts +25 -0
- package/types/internals/WatcherModule.d.ts +25 -0
- package/types/internals/Workers.d.ts +79 -0
- package/types/internals/algorithmExports.d.ts +333 -0
- package/types/internals/algorithmHelpers.d.ts +36 -0
- package/types/internals/attributes/AttributesManager.d.ts +216 -0
- package/types/internals/attributes/ElementAttributesManager.d.ts +119 -0
- package/types/internals/attributes/attributeHelpers.d.ts +70 -0
- package/types/internals/attributes/flexArrayFactories.d.ts +277 -0
- package/types/internals/easing.d.ts +15 -0
- package/types/internals/helpers.d.ts +79 -0
- package/types/internals/hypergraphWorker.d.ts +37 -0
- package/types/internals/hypergraphWorkerHost.d.ts +40 -0
- package/types/internals/labels/SpatialGrid.d.ts +29 -0
- package/types/internals/labels/fillEdgeTexts.d.ts +25 -0
- package/types/internals/labels/fillNodeTexts.d.ts +24 -0
- package/types/internals/labels/helpers.d.ts +180 -0
- package/types/internals/layoutWorker.d.ts +21 -0
- package/types/internals/rendering/BoundariesManager.d.ts +53 -0
- package/types/internals/rendering/Buffer2.d.ts +91 -0
- package/types/internals/rendering/BufferList.d.ts +86 -0
- package/types/internals/rendering/CpuRenderer.d.ts +128 -0
- package/types/internals/rendering/EasingManager.d.ts +40 -0
- package/types/internals/rendering/EdgeDrawer.d.ts +54 -0
- package/types/internals/rendering/ElementGroup.d.ts +66 -0
- package/types/internals/rendering/MemoryManager.d.ts +71 -0
- package/types/internals/rendering/NodeDrawer.d.ts +49 -0
- package/types/internals/rendering/PatternManager.d.ts +29 -0
- package/types/internals/rendering/RENDER_MAPPING.d.ts +5 -0
- package/types/internals/rendering/RendererBase.d.ts +127 -0
- package/types/internals/rendering/ShapeManager.d.ts +46 -0
- package/types/internals/rendering/TextManager.d.ts +112 -0
- package/types/internals/rendering/canvasHelpers.d.ts +5 -0
- package/types/internals/rendering/constants.d.ts +125 -0
- package/types/internals/rendering/curveHelpers.d.ts +96 -0
- package/types/internals/rendering/drawerHelpers.d.ts +32 -0
- package/types/internals/rendering/float16.d.ts +25 -0
- package/types/internals/rendering/hitDetection.d.ts +89 -0
- package/types/internals/rendering/loadGraph.d.ts +103 -0
- package/types/internals/rendering/objectInfo.d.ts +46 -0
- package/types/internals/rendering/packing.d.ts +46 -0
- package/types/internals/rendering/shapeHelpers.d.ts +26 -0
- package/types/internals/rendering/types.d.ts +143 -0
- package/types/internals/renderingBinaryPrimitives.d.ts +110 -0
- package/types/internals/utilsExports.d.ts +408 -0
- package/types/internals/wasmBackend.d.ts +38 -0
- package/types/internals/wasmColumns.d.ts +61 -0
- package/types/internals/wasmInit.d.ts +1 -0
- package/types/modules/APIModule.d.ts +8 -0
- package/types/modules/AlgorithmsAPI.d.ts +15 -0
- package/types/modules/BrandAPI.d.ts +6 -0
- package/types/modules/CaptorAPI.d.ts +9 -0
- package/types/modules/ClassesAPI.d.ts +9 -0
- package/types/modules/DebugAPI.d.ts +18 -0
- package/types/modules/DisabledAPI.d.ts +11 -0
- package/types/modules/DomAPI.d.ts +9 -0
- package/types/modules/EventsAPI.d.ts +16 -0
- package/types/modules/ExportAPI.d.ts +23 -0
- package/types/modules/GeneratorsAPI.d.ts +12 -0
- package/types/modules/GeoAPI.d.ts +20 -0
- package/types/modules/GraphAPI.d.ts +26 -0
- package/types/modules/GraphicsAPI.d.ts +8 -0
- package/types/modules/HypergraphAPI.d.ts +71 -0
- package/types/modules/KeyboardAPI.d.ts +6 -0
- package/types/modules/LayersAPI.d.ts +7 -0
- package/types/modules/LayoutsAPI.d.ts +25 -0
- package/types/modules/LegendAPI.d.ts +9 -0
- package/types/modules/MouseAPI.d.ts +16 -0
- package/types/modules/ParseAPI.d.ts +83 -0
- package/types/modules/RulesAPI.d.ts +7 -0
- package/types/modules/SchemaAPI.d.ts +9 -0
- package/types/modules/SelectionAPI.d.ts +12 -0
- package/types/modules/SettingsAPI.d.ts +9 -0
- package/types/modules/StylesAPI.d.ts +64 -0
- package/types/modules/ToolsAPI.d.ts +68 -0
- package/types/modules/TransformationsAPI.d.ts +30 -0
- package/types/modules/ViewAPI.d.ts +52 -0
- package/types/publicTypes.d.ts +56 -0
- package/types/renderers/CanvasRenderer.d.ts +86 -0
- package/types/renderers/Renderer.d.ts +13 -0
- package/types/renderers/SVGRenderer.d.ts +57 -0
- package/types/renderers/WasmGraphRenderer.d.ts +118 -0
- package/types/renderers/WasmRendererAdapter.d.ts +38 -0
- package/types/tools/ConnectNodesAPI.d.ts +42 -0
- package/types/tools/LassoAPI.d.ts +78 -0
- package/types/tools/RectangleSelectAPI.d.ts +51 -0
- package/types/tools/ResizingAPI.d.ts +62 -0
- package/types/tools/RewiringAPI.d.ts +78 -0
- package/types/tools/SnappingAPI.d.ts +71 -0
- package/types/tools/ToolsAPI.d.ts +46 -0
- package/types/tools/TooltipAPI.d.ts +141 -0
- package/types/transformations/TransformationsEngine.d.ts +602 -0
- package/types/utils/index.d.ts +6 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quadtree spatial index implementation.
|
|
3
|
+
*
|
|
4
|
+
* A quadtree recursively partitions 2D space into four quadrants,
|
|
5
|
+
* supporting fast spatial queries (point, range) and overlap detection.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SpatialIndex {
|
|
8
|
+
_intersects: ((id: number, minX: number, minY: number, maxX: number, maxY: number) => boolean) | null;
|
|
9
|
+
_getBounds: ((id: number) => [number, number, number, number]) | null;
|
|
10
|
+
constructor();
|
|
11
|
+
setBoundsGetter(fn: (id: number) => [number, number, number, number]): this;
|
|
12
|
+
setIntersector(fn: (id: number, minX: number, minY: number, maxX: number, maxY: number) => boolean): this;
|
|
13
|
+
}
|
|
14
|
+
export interface QuadtreeNode {
|
|
15
|
+
minX: number;
|
|
16
|
+
minY: number;
|
|
17
|
+
maxX: number;
|
|
18
|
+
maxY: number;
|
|
19
|
+
leaf: boolean;
|
|
20
|
+
level: number;
|
|
21
|
+
parent: QuadtreeNode | null;
|
|
22
|
+
objects: number[] | null;
|
|
23
|
+
final: boolean;
|
|
24
|
+
children: QuadtreeNode[] | null;
|
|
25
|
+
}
|
|
26
|
+
/** Returns [minX, minY, maxX, maxY] for a node. */
|
|
27
|
+
export declare function getNodeBBox(node: QuadtreeNode): [number, number, number, number];
|
|
28
|
+
/** Checks if rect (minX,minY)-(maxX,maxY) intersects with bounds. */
|
|
29
|
+
export declare function intersects2(minX1: number, minY1: number, maxX1: number, maxY1: number, minX2: number, minY2: number, maxX2: number, maxY2: number): boolean;
|
|
30
|
+
/** Checks if two axis-aligned bounding boxes overlap. */
|
|
31
|
+
export declare function overlaps(minX1: number, minY1: number, maxX1: number, maxY1: number, minX2: number, minY2: number, maxX2: number, maxY2: number): boolean;
|
|
32
|
+
/** Checks if rect1 is entirely inside rect2. */
|
|
33
|
+
export declare function inside2(minX1: number, minY1: number, maxX1: number, maxY1: number, minX2: number, minY2: number, maxX2: number, maxY2: number): boolean;
|
|
34
|
+
type BoundsGetter = (id: number) => [number, number, number, number];
|
|
35
|
+
/**
|
|
36
|
+
* Quadtree spatial index for efficient 2D spatial queries.
|
|
37
|
+
*
|
|
38
|
+
* Supports insertion, removal, point queries, range queries, overlap detection,
|
|
39
|
+
* and traversal. Automatically expands the root to accommodate new objects
|
|
40
|
+
* outside the current bounds.
|
|
41
|
+
*/
|
|
42
|
+
export declare class Quadtree extends SpatialIndex {
|
|
43
|
+
private _nodeCapacity;
|
|
44
|
+
private _root;
|
|
45
|
+
private _objects;
|
|
46
|
+
private _size;
|
|
47
|
+
private _rootLevel;
|
|
48
|
+
private _maxLevel;
|
|
49
|
+
private _idToCell;
|
|
50
|
+
/** Creates a flat-array accessor: given stride, returns a function that slices a row. */
|
|
51
|
+
static flatAccessor: (array: number[] | Float32Array, stride: number) => (index: number) => [number, number, number, number];
|
|
52
|
+
static inside: typeof inside2;
|
|
53
|
+
static intersects: typeof intersects2;
|
|
54
|
+
static overlaps: typeof overlaps;
|
|
55
|
+
static getNodeBBox: typeof getNodeBBox;
|
|
56
|
+
constructor(getBounds?: BoundsGetter, nodeCapacity?: number, initialBounds?: [number, number, number, number], rootLevel?: number);
|
|
57
|
+
get size(): number;
|
|
58
|
+
get root(): QuadtreeNode | null;
|
|
59
|
+
/** Removes all objects and resets the tree. */
|
|
60
|
+
clear(): this;
|
|
61
|
+
/**
|
|
62
|
+
* Inserts an object into the quadtree.
|
|
63
|
+
* If bounds are not provided, they are computed via the bounds getter.
|
|
64
|
+
*/
|
|
65
|
+
insert(id: number, minX?: number, minY?: number, maxX?: number, maxY?: number, startNode?: QuadtreeNode | null): number | undefined;
|
|
66
|
+
/** Removes an object by its ID (no bounds lookup needed). */
|
|
67
|
+
removeById(id: number): number;
|
|
68
|
+
/** Removes an object using its bounds to locate it in the tree. */
|
|
69
|
+
remove(id: number): number;
|
|
70
|
+
/** Splits a leaf node into four children, redistributing its objects. */
|
|
71
|
+
splitNode(node: QuadtreeNode): void;
|
|
72
|
+
/** Finds objects at a specific point. If `returnCell` is true, returns all objects in the cell. */
|
|
73
|
+
point(x: number, y: number, returnCell?: boolean): number[] | null;
|
|
74
|
+
/** Returns all objects in the cell containing the given point. */
|
|
75
|
+
neigbours(x: number, y: number): number[];
|
|
76
|
+
/** Returns all objects whose bounds overlap the given rectangle. */
|
|
77
|
+
query(minX: number, minY: number, maxX: number, maxY: number): number[];
|
|
78
|
+
/**
|
|
79
|
+
* Traverses nodes overlapping the given rectangle, calling `callback` for each matching object.
|
|
80
|
+
* Stops early if `callback` returns true.
|
|
81
|
+
*/
|
|
82
|
+
traverse(minX: number, minY: number, maxX: number, maxY: number, callback: (id: number) => boolean): number[];
|
|
83
|
+
/** Finds all pairs of objects whose bounds overlap. Returns a flat array: [id1, id2, id3, id4, ...]. */
|
|
84
|
+
getOverlaps(): number[];
|
|
85
|
+
/** Expands the root to cover the given rectangle. */
|
|
86
|
+
cover(minX: number, minY: number, maxX: number, maxY: number): this;
|
|
87
|
+
/** Returns all object IDs in the tree. */
|
|
88
|
+
getAll(): number[];
|
|
89
|
+
/** Iterates over all objects in the tree. */
|
|
90
|
+
forEach(callback: (id: number) => void, thisArg?: unknown): this;
|
|
91
|
+
/** Returns all leaf nodes. */
|
|
92
|
+
getLeafs(): QuadtreeNode[];
|
|
93
|
+
/** Traverses from the root, calling `callback(node, objects)` for each node. Stops descending when callback returns truthy. */
|
|
94
|
+
traverseFromRoot(callback: (node: QuadtreeNode, objects: number[] | null) => boolean, thisArg?: unknown): this;
|
|
95
|
+
/** Removes and re-inserts an object with new bounds. */
|
|
96
|
+
update(id: number, minX?: number, minY?: number, maxX?: number, maxY?: number): this;
|
|
97
|
+
/** Gets the bounding box of a node. */
|
|
98
|
+
getNodeBounds(node: QuadtreeNode): [number, number, number, number];
|
|
99
|
+
}
|
|
100
|
+
export default Quadtree;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Lasso } from './Lasso';
|
|
2
|
+
import { BoundingBox } from '../geometry';
|
|
3
|
+
export declare class RectangleSelect extends Lasso {
|
|
4
|
+
private _rectangle;
|
|
5
|
+
private _start;
|
|
6
|
+
protected _onStart: ({ x: e, y: t }: any) => void;
|
|
7
|
+
protected _onStop: () => void;
|
|
8
|
+
onMounted(): void;
|
|
9
|
+
enable(e?: any): this;
|
|
10
|
+
_formatRectangle(e: {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
}): BoundingBox;
|
|
14
|
+
_refreshRectangle(e: {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
}): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Module } from './Module';
|
|
2
|
+
declare const DEFAULT_OPTIONS9: {
|
|
3
|
+
color: string;
|
|
4
|
+
lineWidth: number;
|
|
5
|
+
handleSize: number;
|
|
6
|
+
detectionMargin: number;
|
|
7
|
+
cursor: string;
|
|
8
|
+
previewColor: string;
|
|
9
|
+
nbNodesToSnapTo: number;
|
|
10
|
+
snappingRatio: number;
|
|
11
|
+
sizeIndicatorColor: string;
|
|
12
|
+
sizeIndicatorThickness: number;
|
|
13
|
+
sizeIndicatorOffset: number;
|
|
14
|
+
sizeIndicatorWidth: number;
|
|
15
|
+
};
|
|
16
|
+
type ResizingOptions = typeof DEFAULT_OPTIONS9;
|
|
17
|
+
export declare class Resizing extends Module {
|
|
18
|
+
private _enabled;
|
|
19
|
+
private _nodesToHighlight;
|
|
20
|
+
private _cursorEnabled;
|
|
21
|
+
private _x;
|
|
22
|
+
private _y;
|
|
23
|
+
private _additionalRadiuses;
|
|
24
|
+
private _layer;
|
|
25
|
+
private _engine;
|
|
26
|
+
private _options;
|
|
27
|
+
private _nodeBeingResized;
|
|
28
|
+
private _pointedNode;
|
|
29
|
+
private _onSelectionChange;
|
|
30
|
+
private _displayHandlesHandler;
|
|
31
|
+
private _moveHandler;
|
|
32
|
+
onMounted(): void;
|
|
33
|
+
onReady(): void;
|
|
34
|
+
private _enableCursor;
|
|
35
|
+
private _disableCursor;
|
|
36
|
+
private _detectBoundingBoxes;
|
|
37
|
+
private _forEachNodeToHighlight;
|
|
38
|
+
private _displayHandles;
|
|
39
|
+
private _displayNodePreview;
|
|
40
|
+
private _getTotalRadius;
|
|
41
|
+
private _snap;
|
|
42
|
+
private _displaySizeIndicator;
|
|
43
|
+
enable(options?: Partial<ResizingOptions>): void;
|
|
44
|
+
disable(): void;
|
|
45
|
+
private _reset;
|
|
46
|
+
enabled(): boolean;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Module } from './Module';
|
|
2
|
+
declare const DEFAULT_OPTIONS8: {
|
|
3
|
+
color: string;
|
|
4
|
+
radius: number;
|
|
5
|
+
drawHandle: any;
|
|
6
|
+
cursorOnHover: string;
|
|
7
|
+
cursorOnDrag: string;
|
|
8
|
+
drawEdges: boolean;
|
|
9
|
+
anchor: "circumference" | "center" | "text" | ((node: any) => string);
|
|
10
|
+
edges: any;
|
|
11
|
+
};
|
|
12
|
+
type RewireOptions = typeof DEFAULT_OPTIONS8;
|
|
13
|
+
export declare class Rewiring extends Module {
|
|
14
|
+
private _nodesToHighlight;
|
|
15
|
+
private _edgeHandles;
|
|
16
|
+
private _hoveredHandle;
|
|
17
|
+
private _hoveredNode;
|
|
18
|
+
private _hoverHandle;
|
|
19
|
+
private _grabHandle;
|
|
20
|
+
private _x;
|
|
21
|
+
private _y;
|
|
22
|
+
private _enabled;
|
|
23
|
+
private _options;
|
|
24
|
+
private _movedEdges;
|
|
25
|
+
private _edgeColors;
|
|
26
|
+
private _startNode;
|
|
27
|
+
private _interaction;
|
|
28
|
+
private _layer;
|
|
29
|
+
private _rewirableClass;
|
|
30
|
+
private _hiddenEdgesClass;
|
|
31
|
+
private _fixedEdges;
|
|
32
|
+
private _prevSettings;
|
|
33
|
+
private _onMouseUp;
|
|
34
|
+
private _onMouseDown;
|
|
35
|
+
private _onDragProgress;
|
|
36
|
+
private _onDragStart;
|
|
37
|
+
private _onDragEnd;
|
|
38
|
+
private _refreshHandles;
|
|
39
|
+
private _shouldInteractionStart;
|
|
40
|
+
private _refreshCanvas;
|
|
41
|
+
private _checkForHover;
|
|
42
|
+
onMounted(): void;
|
|
43
|
+
enable(options?: Partial<RewireOptions>): void;
|
|
44
|
+
setEdgesToRewire(edges?: any): void;
|
|
45
|
+
disable(): void;
|
|
46
|
+
enabled(): boolean;
|
|
47
|
+
private _restoreSettings;
|
|
48
|
+
private _disableCursorOnHover;
|
|
49
|
+
private _enableCursorOnHover;
|
|
50
|
+
private _displayMovedEdges;
|
|
51
|
+
private _displayAllEdges;
|
|
52
|
+
private _getAnchor;
|
|
53
|
+
private _getAnchorCenter;
|
|
54
|
+
private _shiftHandleOutward;
|
|
55
|
+
private _isInsideBoundary;
|
|
56
|
+
private _findBezierExitT;
|
|
57
|
+
private _clipBezier;
|
|
58
|
+
private _getTargetPosition;
|
|
59
|
+
private _getDragEndPos;
|
|
60
|
+
private _getNodeBezierHandlePos;
|
|
61
|
+
private _getEdgeHandlePosition;
|
|
62
|
+
private _getPointedNode;
|
|
63
|
+
}
|
|
64
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
export declare function triggerWatcher(watcher: any): void;
|
|
2
|
+
export declare function checkPropertyEquality(a: any[], b: any[]): boolean;
|
|
3
|
+
export declare function getModifiedSubProperty(changePath: any[], watchPath: any[]): any[] | null;
|
|
4
|
+
export declare class DeepMap {
|
|
5
|
+
private _map;
|
|
6
|
+
private _arrays;
|
|
7
|
+
clear(): any;
|
|
8
|
+
delete(value: any): any;
|
|
9
|
+
get(value: any): any;
|
|
10
|
+
set(value: any, mapped: any): this;
|
|
11
|
+
keys(): any[];
|
|
12
|
+
values(): any[];
|
|
13
|
+
get size(): number;
|
|
14
|
+
}
|
|
15
|
+
export declare class PropertyInformation {
|
|
16
|
+
private _watcher;
|
|
17
|
+
setWatcher(watcher: any): void;
|
|
18
|
+
isNode(): boolean;
|
|
19
|
+
getPath(): any[];
|
|
20
|
+
getBoundaries(): {
|
|
21
|
+
min: number;
|
|
22
|
+
max: number;
|
|
23
|
+
} | null;
|
|
24
|
+
getValues(): any[];
|
|
25
|
+
getValueCount(value: any): number;
|
|
26
|
+
getCount(): number;
|
|
27
|
+
getType(): 'any' | 'number' | 'undefined';
|
|
28
|
+
}
|
|
29
|
+
export declare class NonObjectPropertyWatcher {
|
|
30
|
+
private _module;
|
|
31
|
+
private _isNode;
|
|
32
|
+
private _path;
|
|
33
|
+
private _filter;
|
|
34
|
+
private _unwindArrays;
|
|
35
|
+
private _onUpdateHandlers;
|
|
36
|
+
private _info;
|
|
37
|
+
private _triggerUpdate;
|
|
38
|
+
constructor(module: any, isNode: boolean, { path, filter, unwindArrays }: any);
|
|
39
|
+
onUpdate(handler: (info: any) => void): void;
|
|
40
|
+
getPropertyInfo(): any;
|
|
41
|
+
getPath(): any[];
|
|
42
|
+
destroy(): void;
|
|
43
|
+
}
|
|
44
|
+
export declare class ObjectPropertyWatcher {
|
|
45
|
+
private _module;
|
|
46
|
+
private _isNode;
|
|
47
|
+
private _path;
|
|
48
|
+
private _filter;
|
|
49
|
+
private _unwindArrays;
|
|
50
|
+
private _propertyList;
|
|
51
|
+
private _properties;
|
|
52
|
+
private _onAddHandlers;
|
|
53
|
+
private _onRemoveHandlers;
|
|
54
|
+
private _onUpdateHandlers;
|
|
55
|
+
constructor(module: any, isNode: boolean, { path, filter, unwindArrays }: any);
|
|
56
|
+
get path(): any[];
|
|
57
|
+
onPropertyAdded(handler: (property: string, info: any) => void): this;
|
|
58
|
+
onPropertyRemoved(handler: (property: string, info: any) => void): this;
|
|
59
|
+
onPropertyUpdated(handler: (property: string, info: any) => void): this;
|
|
60
|
+
getPath(): any[];
|
|
61
|
+
getProperties(): string[];
|
|
62
|
+
getPropertyInfo(property: string): any;
|
|
63
|
+
destroy(): void;
|
|
64
|
+
updateSubPropertiesToWatch(isNode: boolean, elements: any): void;
|
|
65
|
+
private _addSubPropertyToWatch;
|
|
66
|
+
private _triggerPropertyUpdate;
|
|
67
|
+
private _triggerHandlers;
|
|
68
|
+
}
|
|
69
|
+
export declare function addValues(watcher: any, values: any[], inArray?: boolean): void;
|
|
70
|
+
export declare function removeValues(watcher: any, values: any[], inArray?: boolean): boolean;
|
|
71
|
+
export declare function formatOptions2(value: any): {
|
|
72
|
+
path: string[];
|
|
73
|
+
filter: 'all' | 'visible';
|
|
74
|
+
unwindArrays: boolean;
|
|
75
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Nodus } from '../Nodus';
|
|
2
|
+
import { Module } from './Module';
|
|
3
|
+
/**
|
|
4
|
+
* Internal selection state tracker.
|
|
5
|
+
* Maintains the set of currently selected node and edge indexes,
|
|
6
|
+
* and fires selection events through the Nodus event system.
|
|
7
|
+
*/
|
|
8
|
+
export declare class Selection extends Module {
|
|
9
|
+
private _selectedNodes;
|
|
10
|
+
private _selectedEdges;
|
|
11
|
+
constructor(nodus: Nodus<any, any>);
|
|
12
|
+
/**
|
|
13
|
+
* Select a node by its internal index.
|
|
14
|
+
*/
|
|
15
|
+
selectNode(index: number): void;
|
|
16
|
+
/**
|
|
17
|
+
* Deselect a node by its internal index.
|
|
18
|
+
*/
|
|
19
|
+
deselectNode(index: number): void;
|
|
20
|
+
/**
|
|
21
|
+
* Check if a node is currently selected.
|
|
22
|
+
*/
|
|
23
|
+
isNodeSelected(index: number): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Get the set of all selected node indexes.
|
|
26
|
+
*/
|
|
27
|
+
getSelectedNodeIndexes(): Set<number>;
|
|
28
|
+
/**
|
|
29
|
+
* Select an edge by its internal index.
|
|
30
|
+
*/
|
|
31
|
+
selectEdge(index: number): void;
|
|
32
|
+
/**
|
|
33
|
+
* Deselect an edge by its internal index.
|
|
34
|
+
*/
|
|
35
|
+
deselectEdge(index: number): void;
|
|
36
|
+
/**
|
|
37
|
+
* Check if an edge is currently selected.
|
|
38
|
+
*/
|
|
39
|
+
isEdgeSelected(index: number): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Get the set of all selected edge indexes.
|
|
42
|
+
*/
|
|
43
|
+
getSelectedEdgeIndexes(): Set<number>;
|
|
44
|
+
/**
|
|
45
|
+
* Clear all selections (both nodes and edges).
|
|
46
|
+
*/
|
|
47
|
+
clear(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Remove any references to elements that have been deleted.
|
|
50
|
+
*/
|
|
51
|
+
onRemove(indexes: Set<number>, isNode: boolean): void;
|
|
52
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Selection — manages selected state for nodes and edges.
|
|
3
|
+
*
|
|
4
|
+
* Backs selection with built-in style classes that are applied/removed as
|
|
5
|
+
* elements are selected, and fires selection events so other modules can react.
|
|
6
|
+
*/
|
|
7
|
+
import { Module } from './Module';
|
|
8
|
+
export declare class SelectionModule extends Module {
|
|
9
|
+
shouldTriggerEvents: boolean;
|
|
10
|
+
private _selectedClass;
|
|
11
|
+
private _selectionExtremityHighlightedClass;
|
|
12
|
+
onMounted(): void;
|
|
13
|
+
setNodeAttributes(attrs: any, fullOverwrite?: boolean): void;
|
|
14
|
+
setEdgeAttributes(attrs: any, fullOverwrite?: boolean): void;
|
|
15
|
+
setEdgeExtremitiesAttributes(attrs: any, fullOverwrite?: boolean): void;
|
|
16
|
+
private _updateExtremityHighlightLayer;
|
|
17
|
+
setActive(elements: any, active: boolean | boolean[]): void;
|
|
18
|
+
areActive(elements: any): boolean;
|
|
19
|
+
getSelectedNodes(): any;
|
|
20
|
+
getSelectedEdges(): any;
|
|
21
|
+
getNonSelectedNodes(): any;
|
|
22
|
+
getNonSelectedEdges(): any;
|
|
23
|
+
disableEvents(): void;
|
|
24
|
+
enableEvents(): void;
|
|
25
|
+
clear(): void;
|
|
26
|
+
}
|
|
27
|
+
export { SelectionModule as Selection };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings — key-value store backed by per-key defaults and onChange callbacks.
|
|
3
|
+
*
|
|
4
|
+
* Each registered key carries a current value, a default, and an optional
|
|
5
|
+
* change handler. Updates are flattened so nested option objects can be
|
|
6
|
+
* addressed by dotted path; changed keys fire their handlers and emit a
|
|
7
|
+
* `settingsChange` event when an events module is present.
|
|
8
|
+
*/
|
|
9
|
+
import { Module } from './Module';
|
|
10
|
+
export declare class Settings extends Module {
|
|
11
|
+
private _currentValue;
|
|
12
|
+
private _onChange;
|
|
13
|
+
private _defaultValues;
|
|
14
|
+
private _keys;
|
|
15
|
+
onReady(params: any): void;
|
|
16
|
+
register(key: string, defaultValue: any, onChange?: (newVal: any, oldVal?: any) => void, callNow?: boolean): this;
|
|
17
|
+
update(opts: any): any;
|
|
18
|
+
get(key?: string): any;
|
|
19
|
+
set(key: string, value: any): void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Module } from './Module';
|
|
2
|
+
declare const DEFAULT_OPTIONS5: {
|
|
3
|
+
tolerance: number;
|
|
4
|
+
centerSnapDistance: number;
|
|
5
|
+
sideSnapDistanceFactor: number;
|
|
6
|
+
guidelineWidth: number;
|
|
7
|
+
guidelineColor: string;
|
|
8
|
+
preferredDistance: {
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
ratio: number;
|
|
11
|
+
tolerance: number;
|
|
12
|
+
};
|
|
13
|
+
neighbours: {
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
offset: number;
|
|
16
|
+
lineWidth: number;
|
|
17
|
+
lineColor: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
type SnappingOptions = typeof DEFAULT_OPTIONS5;
|
|
21
|
+
export declare class Snapping extends Module {
|
|
22
|
+
private _options;
|
|
23
|
+
private _enabled;
|
|
24
|
+
private _ysnap;
|
|
25
|
+
private _xsnap;
|
|
26
|
+
private _node;
|
|
27
|
+
private _nodes;
|
|
28
|
+
private _r;
|
|
29
|
+
private _vguideline;
|
|
30
|
+
private _hguideline;
|
|
31
|
+
private _gridResolution;
|
|
32
|
+
private _layer;
|
|
33
|
+
private _nodesByX;
|
|
34
|
+
private _nodesByY;
|
|
35
|
+
private _xGrid;
|
|
36
|
+
private _yGrid;
|
|
37
|
+
private _xList;
|
|
38
|
+
private _yList;
|
|
39
|
+
private _X;
|
|
40
|
+
private _Y;
|
|
41
|
+
private _R;
|
|
42
|
+
private _onNodeDragStart;
|
|
43
|
+
private _onNodeDragEnd;
|
|
44
|
+
onMounted(): void;
|
|
45
|
+
enable(options?: Partial<SnappingOptions>): void;
|
|
46
|
+
disable(): void;
|
|
47
|
+
enabled(): boolean;
|
|
48
|
+
private _onBeforeDrag;
|
|
49
|
+
private _cacheViewportData;
|
|
50
|
+
private _scan;
|
|
51
|
+
private _drawNeighbourGuidelines;
|
|
52
|
+
private _snap;
|
|
53
|
+
}
|
|
54
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spatial — spatial index for hit-testing nodes and edges.
|
|
3
|
+
*
|
|
4
|
+
* Maintains a hierarchical grid over node and edge geometry so that pointer
|
|
5
|
+
* picks and rectangular selections can be resolved without scanning the whole
|
|
6
|
+
* graph.
|
|
7
|
+
*/
|
|
8
|
+
import { Module } from './Module';
|
|
9
|
+
export declare class Spatial extends Module {
|
|
10
|
+
private _minCellSize;
|
|
11
|
+
private _index;
|
|
12
|
+
private _elementsToUpdate;
|
|
13
|
+
private _removedNodes;
|
|
14
|
+
private _removedEdges;
|
|
15
|
+
private _excludedNodes;
|
|
16
|
+
private _excludedEdges;
|
|
17
|
+
private _queryResult;
|
|
18
|
+
private _queryBounds;
|
|
19
|
+
constructor(nodus: any);
|
|
20
|
+
private _clear;
|
|
21
|
+
private _onGraphUpdate;
|
|
22
|
+
onMounted(): void;
|
|
23
|
+
reindex(): void;
|
|
24
|
+
getSize(): number;
|
|
25
|
+
_updateIndex(): void;
|
|
26
|
+
_updateItems(e: any, t: any): void;
|
|
27
|
+
getNodesInScreenByDistance(e: any): any;
|
|
28
|
+
getNearestNodesForNode(e: any, t?: number, s?: any): any;
|
|
29
|
+
getNearestNodes(e: number, t: number, s: number, o: any, c: any): any;
|
|
30
|
+
_getNearestNodes(e: number, t: number, s: number, o: any): any;
|
|
31
|
+
queryRaw(e: number, t: number, s: number, o: number): {
|
|
32
|
+
nodes: number[];
|
|
33
|
+
edges: number[];
|
|
34
|
+
};
|
|
35
|
+
queryRawProjected(e: number, t: number, s: number, o: number): {
|
|
36
|
+
nodes: number[];
|
|
37
|
+
edges: number[];
|
|
38
|
+
};
|
|
39
|
+
query(e: number, t: number, s: number, o: number): {
|
|
40
|
+
nodes: any;
|
|
41
|
+
edges: any;
|
|
42
|
+
};
|
|
43
|
+
queryProjected(e: number, t: number, s: number, o: number): {
|
|
44
|
+
nodes: any;
|
|
45
|
+
edges: any;
|
|
46
|
+
};
|
|
47
|
+
getNodesByBoundingBox(e: number, t: number, s: number, o: number, c?: boolean): any;
|
|
48
|
+
toggleDebug(_e: boolean): void;
|
|
49
|
+
renderDebug(_e?: any): void;
|
|
50
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
export declare function createControlPoint(): {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
x1: number;
|
|
5
|
+
y1: number;
|
|
6
|
+
x2: number;
|
|
7
|
+
y2: number;
|
|
8
|
+
};
|
|
9
|
+
type Bounds = [number, number, number, number];
|
|
10
|
+
type Intersector = (id: number, x1: number, y1: number, x2: number, y2: number) => boolean;
|
|
11
|
+
type TypedArrayConstructor = Int32ArrayConstructor | Uint32ArrayConstructor;
|
|
12
|
+
export declare class FlatTable {
|
|
13
|
+
private _ArrayType;
|
|
14
|
+
private _capacity;
|
|
15
|
+
private readonly _MAX_LIST_SIZE;
|
|
16
|
+
private readonly _BIG_LIST;
|
|
17
|
+
private _freeIndex;
|
|
18
|
+
private _buffer;
|
|
19
|
+
private _sizes;
|
|
20
|
+
private _bigLists;
|
|
21
|
+
private _nextIndex;
|
|
22
|
+
private _idToIndex;
|
|
23
|
+
private _constList;
|
|
24
|
+
constructor(arrayType?: TypedArrayConstructor, capacity?: number, maxListSize?: number);
|
|
25
|
+
clear(): void;
|
|
26
|
+
has(key: number): boolean;
|
|
27
|
+
addEntry(key: number): number;
|
|
28
|
+
removeEntry(key: number): void;
|
|
29
|
+
addTo(key: number, value: number): void;
|
|
30
|
+
removeFrom(key: number, value: number): void;
|
|
31
|
+
getItems(key: number): number[] | undefined;
|
|
32
|
+
get occupiedCount(): number;
|
|
33
|
+
getIdToIndexMap(): Map<number, number>;
|
|
34
|
+
getSizes(): Uint8Array;
|
|
35
|
+
getBuffer(): Int32Array | Uint32Array;
|
|
36
|
+
getBigLists(): number[][];
|
|
37
|
+
getMaxListSize(): number;
|
|
38
|
+
getBigListMarker(): number;
|
|
39
|
+
keys(): number[];
|
|
40
|
+
private _expand;
|
|
41
|
+
}
|
|
42
|
+
export declare class HGrid {
|
|
43
|
+
private readonly _intersects;
|
|
44
|
+
private readonly _getBounds;
|
|
45
|
+
private readonly _cells;
|
|
46
|
+
private readonly _offset;
|
|
47
|
+
private readonly _maxLevels;
|
|
48
|
+
private readonly _mortonMax;
|
|
49
|
+
private readonly _bitsForZoom;
|
|
50
|
+
private _objectsAtLevel;
|
|
51
|
+
private readonly _min;
|
|
52
|
+
private readonly _max;
|
|
53
|
+
private readonly _resolution;
|
|
54
|
+
private _minCellSize;
|
|
55
|
+
private _bounds;
|
|
56
|
+
private _occupied;
|
|
57
|
+
private readonly _idToCode;
|
|
58
|
+
private readonly _codeCache;
|
|
59
|
+
constructor(intersector: Intersector, boundsGetter: (id: number) => Bounds, minCellSize?: number, halfWorldSize?: number);
|
|
60
|
+
private _code;
|
|
61
|
+
private _decode;
|
|
62
|
+
get size(): number;
|
|
63
|
+
has(id: number): boolean;
|
|
64
|
+
clear(): void;
|
|
65
|
+
insert(id: number, x1?: number, y1?: number, x2?: number, y2?: number): number;
|
|
66
|
+
remove(id: number): this;
|
|
67
|
+
query(x1: number, y1: number, x2: number, y2: number): number[];
|
|
68
|
+
private _queryByIteratingCells;
|
|
69
|
+
private _keyToBBox;
|
|
70
|
+
getIds(): number[];
|
|
71
|
+
getBounds(id: number): Bounds;
|
|
72
|
+
}
|
|
73
|
+
export declare function createBoundsGetter(graph: any): (id: number) => Bounds;
|
|
74
|
+
export declare function renderDebug(ctx: CanvasRenderingContext2D, index: any, bounds: [number, number, number, number], extra?: any): void;
|
|
75
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage: maps element IDs → internal indexes and manages FlexArrays.
|
|
3
|
+
*
|
|
4
|
+
* Allocates a dense, reusable integer index for each element ID and keeps the
|
|
5
|
+
* registered FlexArrays and IndexLists sized in step with the live index range.
|
|
6
|
+
*/
|
|
7
|
+
import { FlexArray } from './FlexArray';
|
|
8
|
+
import { IndexList } from './IndexList';
|
|
9
|
+
interface FlexArrayOptions {
|
|
10
|
+
storage: any;
|
|
11
|
+
name?: string;
|
|
12
|
+
size?: number;
|
|
13
|
+
default?: any;
|
|
14
|
+
}
|
|
15
|
+
export declare class Storage {
|
|
16
|
+
/** Bumped on every structural mutation (add/remove/clear). A cheap, reliable change signal —
|
|
17
|
+
* consumers (e.g. the Rust GraphCore cache) rebuild only when this changes. */
|
|
18
|
+
_version: number;
|
|
19
|
+
private _nextIndex;
|
|
20
|
+
private _freeIndexes;
|
|
21
|
+
private _indexesToBeFreed;
|
|
22
|
+
_idToIndex: Record<string | number, number>;
|
|
23
|
+
_indexToId: (string | number | undefined)[];
|
|
24
|
+
private _flexArrays;
|
|
25
|
+
private _defaultValues;
|
|
26
|
+
_flexArraysByName: Record<string, FlexArray>;
|
|
27
|
+
private _indexLists;
|
|
28
|
+
private _name;
|
|
29
|
+
_idFlexArray: FlexArray;
|
|
30
|
+
constructor(isNode: boolean);
|
|
31
|
+
addElements(ids: (string | number)[]): Uint32Array;
|
|
32
|
+
removeElements(indexes: Uint32Array | number[]): void;
|
|
33
|
+
clear(): void;
|
|
34
|
+
has(index: number): boolean;
|
|
35
|
+
getIndex(id: string | number, required?: boolean): number | undefined;
|
|
36
|
+
createFlexArray(opts: FlexArrayOptions, registerByName: boolean): FlexArray;
|
|
37
|
+
getFlexArray(name: string): FlexArray | undefined;
|
|
38
|
+
getAllFlexArrays(): Record<string, FlexArray>;
|
|
39
|
+
createIndexList(): IndexList;
|
|
40
|
+
getId(index: number): string | number | undefined;
|
|
41
|
+
getMaxIndex(): number;
|
|
42
|
+
private _removeIndex;
|
|
43
|
+
private _getNextIndex;
|
|
44
|
+
freeIndexes(): void;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StyleRulesModule — manages style rules (attribute layers with priority ordering).
|
|
3
|
+
* Faithfully translated from /tmp/nodus_extracted/StyleRulesModule.js
|
|
4
|
+
*/
|
|
5
|
+
import { Module } from './Module';
|
|
6
|
+
export declare class StyleRulesModule extends Module {
|
|
7
|
+
private _idCounter;
|
|
8
|
+
private _rules;
|
|
9
|
+
onMounted(): void;
|
|
10
|
+
private _get;
|
|
11
|
+
private _updatePriorities;
|
|
12
|
+
addRule(opts?: any): any;
|
|
13
|
+
getRuleIndex(id: number): number | null;
|
|
14
|
+
setRuleIndex(id: number, idx: number): Promise<any>;
|
|
15
|
+
updateRule(id: number, opts: any): Promise<any>;
|
|
16
|
+
getRuleDefinition(id: number): any;
|
|
17
|
+
destroyRule(id: number): Promise<any>;
|
|
18
|
+
refreshRule(id: number): Promise<any>;
|
|
19
|
+
refreshAllRules(): Promise<any>;
|
|
20
|
+
getRuleList(): any[];
|
|
21
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Synchronizer — debounce-until-idle utility used across modules.
|
|
3
|
+
*
|
|
4
|
+
* Defers callbacks until the application is idle (no pointer button held and
|
|
5
|
+
* no animation frame in flight), resetting the wait whenever interaction or
|
|
6
|
+
* rendering activity occurs.
|
|
7
|
+
*/
|
|
8
|
+
import { Module } from './Module';
|
|
9
|
+
export declare class Synchronizer extends Module {
|
|
10
|
+
private _delayedCalls;
|
|
11
|
+
private _isIdle;
|
|
12
|
+
onMounted(): void;
|
|
13
|
+
private _nextTimeIdle;
|
|
14
|
+
debounceIdle<T>(fn: () => T, delay?: number): (() => Promise<T>) & {
|
|
15
|
+
cancel: () => void;
|
|
16
|
+
};
|
|
17
|
+
}
|