@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.
Files changed (252) hide show
  1. package/LICENSE +37 -0
  2. package/README.md +60 -0
  3. package/__vite-plugin-wasm-helper-1Aiokjk5.js +24 -0
  4. package/assets/hypergraphWorker-DV0aFI3L.js +1 -0
  5. package/assets/layoutWorker-DwDJwbgr.js +285 -0
  6. package/assets/nodus_wasm-C0vDfO5K.js +1 -0
  7. package/chunk-DmhlhrBa.js +11 -0
  8. package/nodus.src.bundle.js +33577 -0
  9. package/nodus_render_wasm-Bs6hlsx-.js +2617 -0
  10. package/nodus_wasm-DKYQVSUZ.js +2789 -0
  11. package/package.json +61 -0
  12. package/types/Nodus.d.ts +100 -0
  13. package/types/algorithms/concentric/index.d.ts +29 -0
  14. package/types/algorithms/concentricFactory.d.ts +43 -0
  15. package/types/algorithms/force/Alea.d.ts +13 -0
  16. package/types/algorithms/force/BVH.d.ts +35 -0
  17. package/types/algorithms/force/LayoutData.d.ts +40 -0
  18. package/types/algorithms/force/Packing.d.ts +31 -0
  19. package/types/algorithms/force/Physics.d.ts +61 -0
  20. package/types/algorithms/force/SEC.d.ts +14 -0
  21. package/types/algorithms/force/Topology.d.ts +3 -0
  22. package/types/algorithms/force/index.d.ts +54 -0
  23. package/types/algorithms/force-gpu/ParticleSystem.d.ts +45 -0
  24. package/types/algorithms/force-gpu/Settings.d.ts +60 -0
  25. package/types/algorithms/force-gpu/Simulation.d.ts +7 -0
  26. package/types/algorithms/force-gpu/getGlContext.d.ts +10 -0
  27. package/types/algorithms/force-gpu/gpuLayout.d.ts +14 -0
  28. package/types/algorithms/force-gpu/index.d.ts +2 -0
  29. package/types/algorithms/force-gpu/kernels/index.d.ts +176 -0
  30. package/types/algorithms/force-gpu/kernels/utils.d.ts +31 -0
  31. package/types/algorithms/force-gpu/shaders/aabb.d.ts +2 -0
  32. package/types/algorithms/force-gpu/shaders/bhExpand.d.ts +2 -0
  33. package/types/algorithms/force-gpu/shaders/bhTranslate.d.ts +2 -0
  34. package/types/algorithms/force-gpu/shaders/cellLookup.d.ts +2 -0
  35. package/types/algorithms/force-gpu/shaders/index.d.ts +9 -0
  36. package/types/algorithms/force-gpu/shaders/integrate.d.ts +2 -0
  37. package/types/algorithms/force-gpu/shaders/morton.d.ts +2 -0
  38. package/types/algorithms/force-gpu/shaders/sortIntervals.d.ts +2 -0
  39. package/types/algorithms/force-gpu/shaders/sortKeys.d.ts +2 -0
  40. package/types/algorithms/force-gpu/shaders/types.d.ts +10 -0
  41. package/types/algorithms/force-gpu/webgl/helpers.d.ts +24 -0
  42. package/types/algorithms/force-gpu/webgl/index.d.ts +4 -0
  43. package/types/algorithms/force-gpu/webgl/program.d.ts +15 -0
  44. package/types/algorithms/forceFactory.d.ts +55 -0
  45. package/types/algorithms/forceLinkFactory.d.ts +40 -0
  46. package/types/algorithms/grid/index.d.ts +26 -0
  47. package/types/algorithms/gridFactory.d.ts +30 -0
  48. package/types/algorithms/hierarchical/index.d.ts +80 -0
  49. package/types/algorithms/hierarchical/sugiyama.d.ts +144 -0
  50. package/types/algorithms/hierarchicalFactory.d.ts +49 -0
  51. package/types/algorithms/index.d.ts +13 -0
  52. package/types/algorithms/radial/index.d.ts +33 -0
  53. package/types/algorithms/radialFactory.d.ts +54 -0
  54. package/types/algorithms/sequential/index.d.ts +37 -0
  55. package/types/algorithms/sequentialFactory.d.ts +37 -0
  56. package/types/core/Edge.d.ts +67 -0
  57. package/types/core/EdgeList.d.ts +86 -0
  58. package/types/core/Node.d.ts +89 -0
  59. package/types/core/NodeList.d.ts +105 -0
  60. package/types/core/Transformation.d.ts +108 -0
  61. package/types/core/enums.d.ts +16 -0
  62. package/types/geometry/BoundingBox.d.ts +41 -0
  63. package/types/geometry/index.d.ts +276 -0
  64. package/types/geometry/types.d.ts +27 -0
  65. package/types/hypergraph/Hypergraph.d.ts +74 -0
  66. package/types/hypergraph/KoenigGraph.d.ts +29 -0
  67. package/types/hypergraph/Simplifier.d.ts +39 -0
  68. package/types/hypergraph/Statistics.d.ts +55 -0
  69. package/types/hypergraph/forbidden/StrangledHyperedge.d.ts +12 -0
  70. package/types/hypergraph/forbidden/StrangledVertex.d.ts +16 -0
  71. package/types/hypergraph/forbidden/ThreeAdjacentCluster2.d.ts +10 -0
  72. package/types/hypergraph/forbidden/TwoAdjacentCluster3.d.ts +14 -0
  73. package/types/hypergraph/forbidden/index.d.ts +22 -0
  74. package/types/hypergraph/index.d.ts +21 -0
  75. package/types/hypergraph/layout/Adam.d.ts +12 -0
  76. package/types/hypergraph/layout/Energy.d.ts +55 -0
  77. package/types/hypergraph/layout/LBFGS.d.ts +32 -0
  78. package/types/hypergraph/layout/Optimizer.d.ts +60 -0
  79. package/types/hypergraph/layout/Reverser.d.ts +42 -0
  80. package/types/hypergraph/operations/AtomicOperation.d.ts +54 -0
  81. package/types/hypergraph/operations/HyperedgeMerger.d.ts +30 -0
  82. package/types/hypergraph/operations/HyperedgeRemoval.d.ts +27 -0
  83. package/types/hypergraph/operations/VertexMerger.d.ts +32 -0
  84. package/types/hypergraph/operations/VertexRemoval.d.ts +30 -0
  85. package/types/hypergraph/operations/index.d.ts +19 -0
  86. package/types/hypergraph/osfkb/adapter.d.ts +315 -0
  87. package/types/hypergraph/render/Interaction.d.ts +40 -0
  88. package/types/hypergraph/render/PolygonRenderer.d.ts +50 -0
  89. package/types/hypergraph/render/SVGPolygonRenderer.d.ts +7 -0
  90. package/types/hypergraph/types.d.ts +170 -0
  91. package/types/index.d.ts +21 -0
  92. package/types/internals/Algorithms.d.ts +68 -0
  93. package/types/internals/AlgorithmsPrimitives.d.ts +18 -0
  94. package/types/internals/Animations.d.ts +39 -0
  95. package/types/internals/AttributePathPrimitives.d.ts +2 -0
  96. package/types/internals/Brand.d.ts +22 -0
  97. package/types/internals/Camera.d.ts +115 -0
  98. package/types/internals/CameraInteractions.d.ts +15 -0
  99. package/types/internals/CameraInteractionsPrimitives.d.ts +18 -0
  100. package/types/internals/Captor.d.ts +56 -0
  101. package/types/internals/CaptorPrimitives.d.ts +9 -0
  102. package/types/internals/ClassModule.d.ts +42 -0
  103. package/types/internals/ConnectNodes.d.ts +23 -0
  104. package/types/internals/CurvatureManager.d.ts +14 -0
  105. package/types/internals/DataModule.d.ts +29 -0
  106. package/types/internals/Disabled.d.ts +27 -0
  107. package/types/internals/DomModule.d.ts +87 -0
  108. package/types/internals/DragModule.d.ts +14 -0
  109. package/types/internals/ElementSet.d.ts +17 -0
  110. package/types/internals/EventsModule.d.ts +41 -0
  111. package/types/internals/FlexArray.d.ts +54 -0
  112. package/types/internals/Geo.d.ts +127 -0
  113. package/types/internals/Graph.d.ts +109 -0
  114. package/types/internals/Graphics.d.ts +112 -0
  115. package/types/internals/GraphicsEngine.d.ts +96 -0
  116. package/types/internals/Hover.d.ts +32 -0
  117. package/types/internals/Hypergraph.d.ts +112 -0
  118. package/types/internals/IndexList.d.ts +28 -0
  119. package/types/internals/IndividualAttributes.d.ts +27 -0
  120. package/types/internals/Interactions.d.ts +45 -0
  121. package/types/internals/Keyboard.d.ts +25 -0
  122. package/types/internals/LabelManager.d.ts +56 -0
  123. package/types/internals/Lasso.d.ts +22 -0
  124. package/types/internals/Layers.d.ts +79 -0
  125. package/types/internals/LayersPrimitives.d.ts +5 -0
  126. package/types/internals/Layouts.d.ts +35 -0
  127. package/types/internals/LayoutsInternal.d.ts +37 -0
  128. package/types/internals/LayoutsPrimitives.d.ts +23 -0
  129. package/types/internals/Legend.d.ts +33 -0
  130. package/types/internals/LegendPrimitives.d.ts +3 -0
  131. package/types/internals/Locate.d.ts +43 -0
  132. package/types/internals/LocatePrimitives.d.ts +20 -0
  133. package/types/internals/MappingManager.d.ts +27 -0
  134. package/types/internals/MappingPrimitives.d.ts +29 -0
  135. package/types/internals/Module.d.ts +23 -0
  136. package/types/internals/Mouse.d.ts +42 -0
  137. package/types/internals/NodusModules.d.ts +99 -0
  138. package/types/internals/PositionModule.d.ts +10 -0
  139. package/types/internals/PulseModule.d.ts +29 -0
  140. package/types/internals/Quadtree.d.ts +100 -0
  141. package/types/internals/RectangleSelect.d.ts +18 -0
  142. package/types/internals/Resizing.d.ts +48 -0
  143. package/types/internals/Rewiring.d.ts +64 -0
  144. package/types/internals/SchemaWatchPrimitives.d.ts +75 -0
  145. package/types/internals/Selection.d.ts +52 -0
  146. package/types/internals/SelectionModule.d.ts +27 -0
  147. package/types/internals/Settings.d.ts +20 -0
  148. package/types/internals/Snapping.d.ts +54 -0
  149. package/types/internals/Spatial.d.ts +50 -0
  150. package/types/internals/SpatialPrimitives.d.ts +75 -0
  151. package/types/internals/Storage.d.ts +46 -0
  152. package/types/internals/StyleRulesModule.d.ts +21 -0
  153. package/types/internals/Synchronizer.d.ts +17 -0
  154. package/types/internals/Tooltip.d.ts +25 -0
  155. package/types/internals/TooltipPrimitives.d.ts +21 -0
  156. package/types/internals/Topology.d.ts +50 -0
  157. package/types/internals/Touch.d.ts +16 -0
  158. package/types/internals/Transformations.d.ts +36 -0
  159. package/types/internals/VirtualMouse.d.ts +52 -0
  160. package/types/internals/WasmHGrid.d.ts +25 -0
  161. package/types/internals/WatcherModule.d.ts +25 -0
  162. package/types/internals/Workers.d.ts +79 -0
  163. package/types/internals/algorithmExports.d.ts +333 -0
  164. package/types/internals/algorithmHelpers.d.ts +36 -0
  165. package/types/internals/attributes/AttributesManager.d.ts +216 -0
  166. package/types/internals/attributes/ElementAttributesManager.d.ts +119 -0
  167. package/types/internals/attributes/attributeHelpers.d.ts +70 -0
  168. package/types/internals/attributes/flexArrayFactories.d.ts +277 -0
  169. package/types/internals/easing.d.ts +15 -0
  170. package/types/internals/helpers.d.ts +79 -0
  171. package/types/internals/hypergraphWorker.d.ts +37 -0
  172. package/types/internals/hypergraphWorkerHost.d.ts +40 -0
  173. package/types/internals/labels/SpatialGrid.d.ts +29 -0
  174. package/types/internals/labels/fillEdgeTexts.d.ts +25 -0
  175. package/types/internals/labels/fillNodeTexts.d.ts +24 -0
  176. package/types/internals/labels/helpers.d.ts +180 -0
  177. package/types/internals/layoutWorker.d.ts +21 -0
  178. package/types/internals/rendering/BoundariesManager.d.ts +53 -0
  179. package/types/internals/rendering/Buffer2.d.ts +91 -0
  180. package/types/internals/rendering/BufferList.d.ts +86 -0
  181. package/types/internals/rendering/CpuRenderer.d.ts +128 -0
  182. package/types/internals/rendering/EasingManager.d.ts +40 -0
  183. package/types/internals/rendering/EdgeDrawer.d.ts +54 -0
  184. package/types/internals/rendering/ElementGroup.d.ts +66 -0
  185. package/types/internals/rendering/MemoryManager.d.ts +71 -0
  186. package/types/internals/rendering/NodeDrawer.d.ts +49 -0
  187. package/types/internals/rendering/PatternManager.d.ts +29 -0
  188. package/types/internals/rendering/RENDER_MAPPING.d.ts +5 -0
  189. package/types/internals/rendering/RendererBase.d.ts +127 -0
  190. package/types/internals/rendering/ShapeManager.d.ts +46 -0
  191. package/types/internals/rendering/TextManager.d.ts +112 -0
  192. package/types/internals/rendering/canvasHelpers.d.ts +5 -0
  193. package/types/internals/rendering/constants.d.ts +125 -0
  194. package/types/internals/rendering/curveHelpers.d.ts +96 -0
  195. package/types/internals/rendering/drawerHelpers.d.ts +32 -0
  196. package/types/internals/rendering/float16.d.ts +25 -0
  197. package/types/internals/rendering/hitDetection.d.ts +89 -0
  198. package/types/internals/rendering/loadGraph.d.ts +103 -0
  199. package/types/internals/rendering/objectInfo.d.ts +46 -0
  200. package/types/internals/rendering/packing.d.ts +46 -0
  201. package/types/internals/rendering/shapeHelpers.d.ts +26 -0
  202. package/types/internals/rendering/types.d.ts +143 -0
  203. package/types/internals/renderingBinaryPrimitives.d.ts +110 -0
  204. package/types/internals/utilsExports.d.ts +408 -0
  205. package/types/internals/wasmBackend.d.ts +38 -0
  206. package/types/internals/wasmColumns.d.ts +61 -0
  207. package/types/internals/wasmInit.d.ts +1 -0
  208. package/types/modules/APIModule.d.ts +8 -0
  209. package/types/modules/AlgorithmsAPI.d.ts +15 -0
  210. package/types/modules/BrandAPI.d.ts +6 -0
  211. package/types/modules/CaptorAPI.d.ts +9 -0
  212. package/types/modules/ClassesAPI.d.ts +9 -0
  213. package/types/modules/DebugAPI.d.ts +18 -0
  214. package/types/modules/DisabledAPI.d.ts +11 -0
  215. package/types/modules/DomAPI.d.ts +9 -0
  216. package/types/modules/EventsAPI.d.ts +16 -0
  217. package/types/modules/ExportAPI.d.ts +23 -0
  218. package/types/modules/GeneratorsAPI.d.ts +12 -0
  219. package/types/modules/GeoAPI.d.ts +20 -0
  220. package/types/modules/GraphAPI.d.ts +26 -0
  221. package/types/modules/GraphicsAPI.d.ts +8 -0
  222. package/types/modules/HypergraphAPI.d.ts +71 -0
  223. package/types/modules/KeyboardAPI.d.ts +6 -0
  224. package/types/modules/LayersAPI.d.ts +7 -0
  225. package/types/modules/LayoutsAPI.d.ts +25 -0
  226. package/types/modules/LegendAPI.d.ts +9 -0
  227. package/types/modules/MouseAPI.d.ts +16 -0
  228. package/types/modules/ParseAPI.d.ts +83 -0
  229. package/types/modules/RulesAPI.d.ts +7 -0
  230. package/types/modules/SchemaAPI.d.ts +9 -0
  231. package/types/modules/SelectionAPI.d.ts +12 -0
  232. package/types/modules/SettingsAPI.d.ts +9 -0
  233. package/types/modules/StylesAPI.d.ts +64 -0
  234. package/types/modules/ToolsAPI.d.ts +68 -0
  235. package/types/modules/TransformationsAPI.d.ts +30 -0
  236. package/types/modules/ViewAPI.d.ts +52 -0
  237. package/types/publicTypes.d.ts +56 -0
  238. package/types/renderers/CanvasRenderer.d.ts +86 -0
  239. package/types/renderers/Renderer.d.ts +13 -0
  240. package/types/renderers/SVGRenderer.d.ts +57 -0
  241. package/types/renderers/WasmGraphRenderer.d.ts +118 -0
  242. package/types/renderers/WasmRendererAdapter.d.ts +38 -0
  243. package/types/tools/ConnectNodesAPI.d.ts +42 -0
  244. package/types/tools/LassoAPI.d.ts +78 -0
  245. package/types/tools/RectangleSelectAPI.d.ts +51 -0
  246. package/types/tools/ResizingAPI.d.ts +62 -0
  247. package/types/tools/RewiringAPI.d.ts +78 -0
  248. package/types/tools/SnappingAPI.d.ts +71 -0
  249. package/types/tools/ToolsAPI.d.ts +46 -0
  250. package/types/tools/TooltipAPI.d.ts +141 -0
  251. package/types/transformations/TransformationsEngine.d.ts +602 -0
  252. package/types/utils/index.d.ts +6 -0
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Shared geometric and numeric helper functions used across Nodus's
3
+ * layout and rendering algorithms.
4
+ */
5
+ /** Euclidean distance between two 2D points. */
6
+ export declare const distance: (x1: number, y1: number, x2: number, y2: number) => number;
7
+ /** Squared Euclidean distance (avoids sqrt). */
8
+ export declare function squaredDistance(x1: number, y1: number, x2: number, y2: number): number;
9
+ /**
10
+ * Finds intersection points of two circles.
11
+ * Returns null if the circles don't intersect.
12
+ * Returns an array of two [x, y] intersection points otherwise.
13
+ */
14
+ export declare function circleCircleIntersection(cx1: number, cy1: number, r1: number, cx2: number, cy2: number, r2: number): [number, number][] | null;
15
+ /**
16
+ * Compares two points for angular sorting around a center point.
17
+ * Used for ordering nodes around a radial layout center.
18
+ */
19
+ export declare function circleSortCompare(x1: number, y1: number, x2: number, y2: number, cx: number, cy: number): number;
20
+ /**
21
+ * Maps an index array (e.g. from Delaunator) into an array of the referenced elements.
22
+ */
23
+ export declare const indexArrayToArray: <T>(indices: ArrayLike<number>, data: T[]) => T[];
24
+ /** Cubic ease-out function: f(t) = (--t)^3 + 1 */
25
+ export declare const cubicIn: (t: number) => number;
26
+ /**
27
+ * Computes squared magnitude from (x, y) to a center point.
28
+ */
29
+ export declare const magnitude: (x: number, y: number, center: [number, number]) => number;
30
+ /**
31
+ * Finds min and max values for a set of indexes, optionally looking up values in an array.
32
+ */
33
+ export declare const minmax: (indexes: ArrayLike<number>, values?: ArrayLike<number>) => {
34
+ min: number;
35
+ max: number;
36
+ };
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Top-level attributes manager that coordinates visual attribute updates for
3
+ * both nodes and edges.
4
+ *
5
+ * Owns a `LayerController` (which in turn holds two
6
+ * `ElementAttributesManager`s — one for nodes, one for edges) and manages the
7
+ * ordered stack of attribute layers (style rules, classes, etc.).
8
+ *
9
+ * Each update pass resolves the layer stack in priority order, propagating
10
+ * changes through inter-layer dependencies before flushing the results to the
11
+ * renderer.
12
+ */
13
+ import type { Graph } from '../Graph';
14
+ import { ElementAttributesManager, type LayerElementData } from './ElementAttributesManager';
15
+ interface ElementIndexList {
16
+ _indexes: number[];
17
+ size: number;
18
+ isNode?: boolean;
19
+ get(index: number): any;
20
+ fastGetAdjacentElements?(): {
21
+ nodes: any;
22
+ edges: any;
23
+ };
24
+ }
25
+ interface FlexArraySnapshot {
26
+ nodes: {
27
+ current: any;
28
+ previous: any;
29
+ };
30
+ edges: {
31
+ current: any;
32
+ previous: any;
33
+ };
34
+ }
35
+ interface UpdatedElementsResult {
36
+ elementsToRedraw: {
37
+ nodes: ElementIndexList;
38
+ edges: ElementIndexList;
39
+ };
40
+ elementsUpdated: {
41
+ nodes: ElementIndexList;
42
+ edges: ElementIndexList;
43
+ nodeAttributesSet: Set<string>;
44
+ nodeAttributes: string[];
45
+ edgeAttributes: string[];
46
+ };
47
+ }
48
+ interface LayerOptions {
49
+ name: string;
50
+ priority?: number;
51
+ fullOverwrite?: boolean;
52
+ tag?: string;
53
+ onBeforeUpdate?: (layer: AttributeLayerData, manager: AttributesManager, controller: LayerController) => void;
54
+ standaloneSelectors?: boolean;
55
+ layerFactory?: (manager: AttributesManager, id: number) => any;
56
+ nodeAttributes?: any;
57
+ nodeSelector?: any;
58
+ nodeContext?: any;
59
+ nodeDependencies?: any;
60
+ nodeOutput?: any;
61
+ edgeAttributes?: any;
62
+ edgeSelector?: any;
63
+ edgeContext?: any;
64
+ edgeDependencies?: any;
65
+ edgeOutput?: any;
66
+ }
67
+ interface AttributeLayerData {
68
+ index: number;
69
+ id: number;
70
+ name: string;
71
+ tag: string | null;
72
+ priority: number;
73
+ initialized: boolean;
74
+ onBeforeUpdate: any;
75
+ depsNodeSelf: AttributeLayerData[];
76
+ depsNodeAdjacentNodes: AttributeLayerData[];
77
+ depsNodeAdjacentEdges: AttributeLayerData[];
78
+ depsNodeAllNodes: AttributeLayerData[];
79
+ depsNodeAllEdges: AttributeLayerData[];
80
+ depsEdgeSelf: AttributeLayerData[];
81
+ depsEdgeExtremities: AttributeLayerData[];
82
+ depsEdgeParallelEdges: AttributeLayerData[];
83
+ depsEdgeAllNodes: AttributeLayerData[];
84
+ depsEdgeAllEdges: AttributeLayerData[];
85
+ nodes: LayerElementData;
86
+ edges: LayerElementData;
87
+ }
88
+ export declare class LayerController {
89
+ nodes: ElementAttributesManager;
90
+ edges: ElementAttributesManager;
91
+ constructor(graph: Graph);
92
+ setNodeDefaultAttributes(attributes: any): void;
93
+ setEdgeDefaultAttributes(attributes: any): void;
94
+ getFlexArrays(): FlexArraySnapshot;
95
+ redrawAll(): void;
96
+ clear(): void;
97
+ redrawElements(elements: ElementIndexList): void;
98
+ getAnimationInformation(elements: ElementIndexList): any[];
99
+ redrawNodes(elements: any): void;
100
+ getUsedAttributes(layer: AttributeLayerData, elements: ElementIndexList): string[];
101
+ startUpdate(): void;
102
+ notifyDestroyed(layer: AttributeLayerData): void;
103
+ prepareUpdate(layer: AttributeLayerData): void;
104
+ onUpdate(layer: AttributeLayerData): void;
105
+ afterLayersUpdate(): void;
106
+ getAndResetElementsToRedraw(): {
107
+ nodes: ElementIndexList;
108
+ edges: ElementIndexList;
109
+ };
110
+ getAndResetElementsUpdated(): {
111
+ nodes: ElementIndexList;
112
+ edges: ElementIndexList;
113
+ nodeAttributesSet: Set<string>;
114
+ nodeAttributes: string[];
115
+ edgeAttributes: string[];
116
+ };
117
+ setAnimationAttributes(elements: {
118
+ nodes: ElementIndexList;
119
+ edges: ElementIndexList;
120
+ }, params: any): void;
121
+ resetAnimationAttributes(elements: {
122
+ nodes: ElementIndexList;
123
+ edges: ElementIndexList;
124
+ }): void;
125
+ setLastOutput(nodeFlexArrays: any, edgeFlexArrays: any): void;
126
+ getCurrentInput(): {
127
+ currentNodeFlexArrays: any;
128
+ currentEdgeFlexArrays: any;
129
+ allNodeAttributePaths: string[];
130
+ allEdgeAttributePaths: string[];
131
+ };
132
+ initializeLayer(layer: AttributeLayerData, nodeAttributePaths: string[], edgeAttributePaths: string[]): void;
133
+ connectLayerInputOutput(layer: AttributeLayerData, nodeFlexArrays: any, edgeFlexArrays: any): void;
134
+ setupLayerDependencies(source: AttributeLayerData, target: AttributeLayerData): void;
135
+ createAttributeLayerData(name: string, id: number, graph: Graph, { tag, onBeforeUpdate, standaloneSelectors }: LayerOptions): AttributeLayerData;
136
+ setAttributeValues(layerData: LayerElementData, elements: any, attributes: any, changedPaths: string[] | undefined, layer: AttributeLayerData): void;
137
+ getAttributeValues(elements: any, path: string, isMultiple: boolean, usePrevious: boolean): any;
138
+ private _fetch;
139
+ }
140
+ export declare class AttributesManager {
141
+ private _layerIdCounter;
142
+ private _layers;
143
+ private _destroyedLayers;
144
+ private _layersNeedUpdate;
145
+ private _updateOngoing;
146
+ private _needUpdate;
147
+ private _nodus;
148
+ private _graph;
149
+ private _dom;
150
+ private _emptySubgraph;
151
+ private _textHiddenSet;
152
+ private _layerController;
153
+ constructor(nodus: any, { graph, dom }: {
154
+ graph: Graph;
155
+ dom: {
156
+ refresh(): void;
157
+ };
158
+ });
159
+ private _getLayerById;
160
+ setDefaultAttributes(nodeDefaults: any, edgeDefaults: any): void;
161
+ getFlexArrays(): FlexArraySnapshot;
162
+ clear(): void;
163
+ redrawElements(elements: ElementIndexList): void;
164
+ redrawAll(): void;
165
+ private _triggerUpdate;
166
+ private _reconstructAttributeLayersIfNecessary;
167
+ getAnimationInformation(elements: ElementIndexList): any[];
168
+ update(): boolean;
169
+ setAttributeLayerValues(layerId: number, elements: any, attributes: any, changedPaths?: string[]): void;
170
+ getAttributeLayerFlexArrays(layerId: number): {
171
+ nodes: any;
172
+ edges: any;
173
+ };
174
+ getUsedAttributeLayerAttributes(layerId: number, elements: ElementIndexList): string[];
175
+ getUpdatedElements(): UpdatedElementsResult;
176
+ addAttributeLayer(options: LayerOptions): any;
177
+ destroyAttributeLayer(layerId: number): void;
178
+ updateAttributeLayer(layerId: number, options: Partial<LayerOptions>): void;
179
+ getAttributeLayerDefinition(layerId: number): {
180
+ priority: number;
181
+ nodeAttributes: any;
182
+ nodeSelector: any;
183
+ nodeContext: any;
184
+ nodeDependencies: any;
185
+ nodeOutput: any;
186
+ edgeAttributes: any;
187
+ edgeSelector: any;
188
+ edgeContext: any;
189
+ edgeDependencies: any;
190
+ edgeOutput: any;
191
+ };
192
+ getAttributeValues(elements: any, path: string, isMultiple: boolean, usePrevious: boolean): any;
193
+ setAnimationAttributes(elements: {
194
+ nodes: any;
195
+ edges: any;
196
+ }, params: any): void;
197
+ resetAnimationAttributes(elements: {
198
+ nodes: any;
199
+ edges: any;
200
+ }): void;
201
+ setTextHidden(elements: any, value: boolean): void;
202
+ resetTextHidden(): void;
203
+ getUsedNodeAttributes(): string[];
204
+ getUsedEdgeAttributes(): string[];
205
+ interpolateAttributes(elements: ElementIndexList): any[];
206
+ private _reconstructAttributeLayers;
207
+ private _updateLayer;
208
+ private _triggerLayerUpdate;
209
+ updateAllForAttributeLayer(layerId: number): void;
210
+ updateAllForAllAttributeLayers(): void;
211
+ private _updateAllForAttributeLayer;
212
+ updateElementsForAttributeLayer(layerId: number, elements: any): void;
213
+ updateForAllAttributeLayers(elements: any): void;
214
+ private _updateElementsForAttributeLayers;
215
+ }
216
+ export {};
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Manages visual attributes for a single element type (nodes **or** edges).
3
+ *
4
+ * Each `ElementAttributesManager` owns three sets of FlexArrays:
5
+ * - **final** – the resolved visual attribute values the renderer reads
6
+ * - **prev** – the previous attribute values (used for animation
7
+ * interpolation)
8
+ * - **default** – the default values before any style rules are applied
9
+ *
10
+ * It also tracks *which* elements need redrawing and *which* attribute paths
11
+ * were updated, so that the rendering pipeline can do minimal work.
12
+ */
13
+ import type { Graph } from '../Graph';
14
+ import type { NodeFlexArrays, EdgeFlexArrays } from './flexArrayFactories';
15
+ import { EltSet } from './attributeHelpers';
16
+ interface ElementIndexList {
17
+ _indexes: number[];
18
+ size: number;
19
+ get(index: number): any;
20
+ }
21
+ type FlexArrays = NodeFlexArrays | EdgeFlexArrays;
22
+ type CreateFlexArraysFn = (graph: Graph, opts: {
23
+ original: boolean;
24
+ useDefaultValues: boolean;
25
+ }) => FlexArrays;
26
+ export interface LayerElementData {
27
+ type: string;
28
+ name: string;
29
+ standaloneSelector: boolean;
30
+ toUpdate: EltSet;
31
+ outputFlexArrays: FlexArrays;
32
+ inputFlexArrays: FlexArrays | null;
33
+ formattedDependencies: any;
34
+ formattedOutput: FormattedOutput | null;
35
+ attributes?: any;
36
+ selector?: any;
37
+ context?: any;
38
+ dependencies?: any;
39
+ output?: any;
40
+ allAttributePaths?: string[];
41
+ needAdjacentElements?: boolean;
42
+ redrawAdjacentEdges?: boolean;
43
+ }
44
+ interface FormattedOutput {
45
+ attributes: string[];
46
+ tags: string[];
47
+ }
48
+ interface UpdateFlexArraysParams {
49
+ attributes: any;
50
+ selector: any;
51
+ context: any;
52
+ outputFlexArrays: FlexArrays;
53
+ toUpdate: EltSet;
54
+ formattedOutput: FormattedOutput;
55
+ }
56
+ interface AnimationParams {
57
+ duration: number;
58
+ startTime: number;
59
+ easing: string;
60
+ }
61
+ export declare class ElementAttributesManager {
62
+ private _updatedAttributes;
63
+ private _updatedAttributesTmp;
64
+ private _allUsedAttributes;
65
+ private _graph;
66
+ private _eltName;
67
+ private _accessors;
68
+ private _createFlexArrays;
69
+ private _finalFlexArrays;
70
+ private _prevFlexArrays;
71
+ private _defaultFlexArrays;
72
+ private _currentFlexArrays;
73
+ private _lastFlexArrays;
74
+ /** Wrapped version of final arrays that includes extra engine attributes. */
75
+ private _finalFlexArraysWrapped;
76
+ private _elementsToRedraw;
77
+ private _elementsUpdated;
78
+ constructor(graph: Graph, isNode: boolean, createFlexArrays: CreateFlexArraysFn);
79
+ clear(): void;
80
+ getAttributeFlexArrays(): any;
81
+ getPrevAttributeFlexArrays(): FlexArrays;
82
+ getDefaultFlexArrays(): FlexArrays;
83
+ getAnimationInformation(elements: ElementIndexList): Array<{
84
+ duration: number;
85
+ start: number;
86
+ easing: string;
87
+ }>;
88
+ setDefaultAttributes(attributes: any): void;
89
+ startUpdate(): void;
90
+ prepareFlexArraysUpdate(layerData: LayerElementData): void;
91
+ setLastFlexArrays(flexArrays: FlexArrays): void;
92
+ updateFlexArrays(params: UpdateFlexArraysParams): void;
93
+ endUpdate(): void;
94
+ setAttributeValues(layerData: LayerElementData, elements: any, attributes: any, changedPaths?: string[], _extra?: any): void;
95
+ notifyLayerDestroyed(layerData: LayerElementData): void;
96
+ private _addUpdatedAttributes;
97
+ addUpdatedAttribute(path: string): void;
98
+ getUsedAttributeNames(layerData: LayerElementData): string[];
99
+ redrawElements(elements: any): void;
100
+ redrawAll(): void;
101
+ getAndResetElementsToRedraw(): ElementIndexList;
102
+ getAndResetElementsUpdated(): ElementIndexList;
103
+ getAndResetAttributesUpdated(): string[];
104
+ getUpdatedAttributes(): Set<string>;
105
+ getUpdatedElementsList(): ElementIndexList;
106
+ getUpdatedAttributesSet(): Set<string>;
107
+ createFlexArrays(): FlexArrays;
108
+ getAttributeValues(elements: ElementIndexList, attributePath: string | string[] | null, isMultiple: boolean, usePrevious: boolean): any[];
109
+ private _getAccessor;
110
+ private _getSingleAttributeValues;
111
+ private _getMultipleAttributeValues;
112
+ setAnimationAttributes(elements: ElementIndexList, { duration, startTime, easing }: AnimationParams): void;
113
+ resetAnimationAttributes(elements: ElementIndexList): void;
114
+ getUsedAttributes(): string[];
115
+ private _assignAttributesToFlexArrays;
116
+ private _getNestedAccessor;
117
+ private _assignSingleValueToFlexArray;
118
+ }
119
+ export {};
@@ -0,0 +1,70 @@
1
+ import type { Graph } from '../Graph';
2
+ export declare class EltSet {
3
+ private _all;
4
+ private _isNode;
5
+ private _graph;
6
+ private _includeRemovedElements;
7
+ private _eltList;
8
+ private _flexArray;
9
+ private _indexList;
10
+ constructor({ graph, isNode, includeRemovedElements }: {
11
+ graph: Graph;
12
+ isNode: boolean;
13
+ includeRemovedElements: boolean;
14
+ });
15
+ private _getAllIndexes;
16
+ addAll(): void;
17
+ add(elements: any): void;
18
+ addIndex(index: number): void;
19
+ isEmpty(): boolean;
20
+ isFull(): boolean;
21
+ getListAndClear(): any;
22
+ getList(): any;
23
+ clear(): void;
24
+ addSet(other: EltSet): void;
25
+ }
26
+ export declare class AttributeLayer {
27
+ private _attributesManager;
28
+ private _id;
29
+ constructor(manager: any, id: number);
30
+ getDefinition(): any;
31
+ update(options: any): void;
32
+ destroy(): void;
33
+ updateElements(elements: any): void;
34
+ updateAll(): void;
35
+ setAttributeValues(elements: any, attributes: any, changedPaths?: string[]): void;
36
+ getUsedAttributeNames(elements: any): string[];
37
+ getFlexArrays(): any;
38
+ }
39
+ export declare const linear: (t: number) => number;
40
+ export declare const easingFunctions_exports: Record<string, (t: number) => number>;
41
+ export declare const ANIMATION_START_PARAMETERS: {
42
+ name: string;
43
+ storage: number;
44
+ default: number;
45
+ };
46
+ export declare const ANIMATION_DURATION_PARAMETERS: {
47
+ name: string;
48
+ storage: number;
49
+ default: number;
50
+ };
51
+ export declare const ANIMATION_EASING_PARAMETERS: {
52
+ name: string;
53
+ storage: any;
54
+ default: string;
55
+ };
56
+ export declare function computeAnimationRatio(now: number, start: number, duration: number, easing: string): number;
57
+ export declare function mixColor(a: string, b: string, tColor: number, tAlpha: number): string;
58
+ export declare const LOOKUP_EDGE_EXTREMITY_DEPENDENCIES: Record<string, boolean>;
59
+ export declare function toAttributePathArray(value: any, allAttributePaths?: string[]): string[];
60
+ export declare function getAttributesOutput(layerData: any): string[];
61
+ export declare function checkAndAddDependency(deps: any[], target: any, source: any, depOutput: any, srcPriority: number, tgtPriority: number): void;
62
+ export declare function formatNodeDependencies(layerData: any): any;
63
+ export declare function formatEdgeDependencies(layerData: any): any;
64
+ export declare function getUsedAttributeList(flexArrays: any, result?: string[], prefix?: string): string[];
65
+ export declare function splitElements(graph: Graph, elements: any, selector: any, context: any): {
66
+ valid: any;
67
+ invalid: any;
68
+ };
69
+ export declare const NODE_ATTRIBUTE_ACCESSORS: any;
70
+ export declare const EDGE_ATTRIBUTE_ACCESSORS: any;