@krainovsd/graph 0.13.0-beta1 → 0.14.0-beta.1

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 (72) hide show
  1. package/lib/cjs/index.cjs +984 -497
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/esm/constants/force-controls.js +4 -2
  4. package/lib/esm/constants/force-controls.js.map +1 -1
  5. package/lib/esm/constants/highlight-controls.js +9 -16
  6. package/lib/esm/constants/highlight-controls.js.map +1 -1
  7. package/lib/esm/constants/link-controls.js +17 -30
  8. package/lib/esm/constants/link-controls.js.map +1 -1
  9. package/lib/esm/constants/node-controls.js +4 -2
  10. package/lib/esm/constants/node-controls.js.map +1 -1
  11. package/lib/esm/index.js +8 -7
  12. package/lib/esm/index.js.map +1 -1
  13. package/lib/esm/module/GraphCanvas/GraphCanvas.js +222 -34
  14. package/lib/esm/module/GraphCanvas/GraphCanvas.js.map +1 -1
  15. package/lib/esm/module/GraphCanvas/constants/force-settings.js +11 -1
  16. package/lib/esm/module/GraphCanvas/constants/force-settings.js.map +1 -1
  17. package/lib/esm/module/GraphCanvas/constants/graph-settings.js +17 -5
  18. package/lib/esm/module/GraphCanvas/constants/graph-settings.js.map +1 -1
  19. package/lib/esm/module/GraphCanvas/constants/highlight-settings.js +5 -3
  20. package/lib/esm/module/GraphCanvas/constants/highlight-settings.js.map +1 -1
  21. package/lib/esm/module/GraphCanvas/constants/index.js +5 -2
  22. package/lib/esm/module/GraphCanvas/constants/index.js.map +1 -1
  23. package/lib/esm/module/GraphCanvas/constants/link-settings.js +19 -9
  24. package/lib/esm/module/GraphCanvas/constants/link-settings.js.map +1 -1
  25. package/lib/esm/module/GraphCanvas/constants/node-settings.js +13 -3
  26. package/lib/esm/module/GraphCanvas/constants/node-settings.js.map +1 -1
  27. package/lib/esm/module/GraphCanvas/lib/settings/force-settings-getter.js +4 -2
  28. package/lib/esm/module/GraphCanvas/lib/settings/force-settings-getter.js.map +1 -1
  29. package/lib/esm/module/GraphCanvas/lib/settings/graph-settings-getter.js +4 -0
  30. package/lib/esm/module/GraphCanvas/lib/settings/graph-settings-getter.js.map +1 -1
  31. package/lib/esm/module/GraphCanvas/lib/settings/highlight-settings-getter.js +4 -2
  32. package/lib/esm/module/GraphCanvas/lib/settings/highlight-settings-getter.js.map +1 -1
  33. package/lib/esm/module/GraphCanvas/lib/settings/link-settings-getter.js +8 -5
  34. package/lib/esm/module/GraphCanvas/lib/settings/link-settings-getter.js.map +1 -1
  35. package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js +14 -2
  36. package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js.map +1 -1
  37. package/lib/esm/module/GraphCanvas/lib/utils/calculate-curve-link-position-by-node.js +45 -0
  38. package/lib/esm/module/GraphCanvas/lib/utils/calculate-curve-link-position-by-node.js.map +1 -0
  39. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-node.js +42 -37
  40. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-node.js.map +1 -1
  41. package/lib/esm/module/GraphCanvas/lib/utils/compute-graph-bounds.js +26 -0
  42. package/lib/esm/module/GraphCanvas/lib/utils/compute-graph-bounds.js.map +1 -0
  43. package/lib/esm/module/GraphCanvas/lib/utils/get-particle-position.js +40 -30
  44. package/lib/esm/module/GraphCanvas/lib/utils/get-particle-position.js.map +1 -1
  45. package/lib/esm/module/GraphCanvas/lib/utils/is-empty-object.js +11 -0
  46. package/lib/esm/module/GraphCanvas/lib/utils/is-empty-object.js.map +1 -0
  47. package/lib/esm/module/GraphCanvas/lib/utils/is-node-visible.js +5 -2
  48. package/lib/esm/module/GraphCanvas/lib/utils/is-node-visible.js.map +1 -1
  49. package/lib/esm/module/GraphCanvas/lib/utils/link-by-pointer-getter.js +72 -22
  50. package/lib/esm/module/GraphCanvas/lib/utils/link-by-pointer-getter.js.map +1 -1
  51. package/lib/esm/module/GraphCanvas/slices/draw-links.js +115 -77
  52. package/lib/esm/module/GraphCanvas/slices/draw-links.js.map +1 -1
  53. package/lib/esm/module/GraphCanvas/slices/draw-nodes.js +9 -4
  54. package/lib/esm/module/GraphCanvas/slices/draw-nodes.js.map +1 -1
  55. package/lib/esm/module/GraphCanvas/slices/init-dnd.js +21 -4
  56. package/lib/esm/module/GraphCanvas/slices/init-dnd.js.map +1 -1
  57. package/lib/esm/module/GraphCanvas/slices/init-draw.js +1 -52
  58. package/lib/esm/module/GraphCanvas/slices/init-draw.js.map +1 -1
  59. package/lib/esm/module/GraphCanvas/slices/init-pointer.js +12 -34
  60. package/lib/esm/module/GraphCanvas/slices/init-pointer.js.map +1 -1
  61. package/lib/esm/module/GraphCanvas/slices/init-resize.js +7 -0
  62. package/lib/esm/module/GraphCanvas/slices/init-resize.js.map +1 -1
  63. package/lib/esm/module/GraphCanvas/slices/init-simulation.js +12 -2
  64. package/lib/esm/module/GraphCanvas/slices/init-simulation.js.map +1 -1
  65. package/lib/esm/module/GraphCanvas/slices/init-zoom.js +85 -16
  66. package/lib/esm/module/GraphCanvas/slices/init-zoom.js.map +1 -1
  67. package/lib/esm/module/GraphCanvas/slices/update-link-cache.js +63 -3
  68. package/lib/esm/module/GraphCanvas/slices/update-link-cache.js.map +1 -1
  69. package/lib/esm/module/GraphCanvas/slices/update-node-cache.js +61 -16
  70. package/lib/esm/module/GraphCanvas/slices/update-node-cache.js.map +1 -1
  71. package/lib/index.d.ts +90 -36
  72. package/package.json +3 -2
package/lib/index.d.ts CHANGED
@@ -36,16 +36,25 @@ interface LinkInterface<NodeData extends Record<string, unknown>, LinkData exten
36
36
  data?: LinkData;
37
37
  highlight?: boolean;
38
38
  visible?: boolean;
39
+ _groupIndex?: number;
40
+ _groupSize?: number;
41
+ _self?: boolean;
42
+ _x1?: number;
43
+ _y1?: number;
44
+ _x2?: number;
45
+ _y2?: number;
46
+ _cx?: number;
47
+ _cy?: number;
48
+ _ax?: number;
49
+ _ay?: number;
39
50
  }
40
51
  type LinkParticle = {
41
- step: number;
42
52
  index: number;
43
- prev: LinkParticle | undefined;
44
- next: LinkParticle | undefined;
45
53
  x?: number;
46
54
  y?: number;
47
- sourceId: string | number;
48
- targetId: string | number;
55
+ _distanceTraveled?: number;
56
+ _lastDistance?: number;
57
+ _lastTime?: number;
49
58
  };
50
59
 
51
60
  type NodeIterationPropsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Return = number> = (this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[]) => Return;
@@ -53,6 +62,12 @@ type LinkIterationPropsInterface<NodeData extends Record<string, unknown>, LinkD
53
62
  type NodeIterationPropsNoThisInterface<NodeData extends Record<string, unknown>, Return = number> = (node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[]) => Return;
54
63
  type LinkIterationPropsNoThisInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Return = number> = (link: LinkInterface<NodeData, LinkData>, i: number, links: LinkInterface<NodeData, LinkData>[]) => Return;
55
64
 
65
+ type PrecomputeForceSettingsInterface = {
66
+ precompute?: boolean;
67
+ precomputeMaxTimeMs?: number;
68
+ precomputeMaxTicks?: number;
69
+ precomputeDisableForcesAfter?: boolean;
70
+ };
56
71
  type ForceSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
57
72
  forces?: boolean;
58
73
  xForce?: boolean;
@@ -83,15 +98,21 @@ type ForceSettingsInterface<NodeData extends Record<string, unknown>, LinkData e
83
98
  xStrength?: NodeIterationPropsNoThisInterface<NodeData> | number;
84
99
  yPosition?: NodeIterationPropsNoThisInterface<NodeData> | number;
85
100
  yStrength?: NodeIterationPropsNoThisInterface<NodeData> | number;
86
- };
101
+ } & PrecomputeForceSettingsInterface;
87
102
 
88
103
  declare const FORCE_SETTINGS: Required<ForceSettingsInterface<Record<string, unknown>, Record<string, unknown>>>;
104
+ declare const PERFORMANCE_FORCE_SETTINGS: Required<ForceSettingsInterface<Record<string, unknown>, Record<string, unknown>>>;
89
105
 
90
106
  type GraphSettingsInterface<NodeData extends Record<string, unknown>> = {
91
- zoomExtent?: [number, number];
92
- translateExtent?: [[number?, number?], [number?, number?]];
93
- translateExtentCoefficient?: number | [number, number];
94
- translateExtentEnable?: boolean;
107
+ zoomAnimation?: boolean;
108
+ zoomAnimationDuration?: number;
109
+ zoomToNodeScale?: number;
110
+ zoomToFitMargin?: number;
111
+ zoomExtent?: [number, number] | null;
112
+ zoomExtentMargin?: number;
113
+ translateExtent?: [[number?, number?], [number?, number?]] | null;
114
+ translateExtentCoefficient?: number | [number, number] | null;
115
+ translateExtentOverlap?: number;
95
116
  zoomInitial?: {
96
117
  k?: number;
97
118
  x?: number;
@@ -103,11 +124,11 @@ type GraphSettingsInterface<NodeData extends Record<string, unknown>> = {
103
124
  };
104
125
 
105
126
  declare const GRAPH_SETTINGS: Required<GraphSettingsInterface<Record<string, unknown>>>;
127
+ declare const PERFORMANCE_GRAPH_SETTINGS: Required<GraphSettingsInterface<Record<string, unknown>>>;
106
128
 
107
129
  type HighlightSettingsInterface = HighlighCommonSettingsInterface & HighlightByNodeForNodeSettingsInterface & HighlightByNodeForLabelSettingsInterface & HighlightByNodeForTextSettingsInterface & HighlightByNodeForLinkSettingsInterface & HighlightByNodeForArrowSettingsInterface & HighlightByLinkForNodeSettingsInterface & HighlightByLinkForTextSettingsInterface & HighlightByLinkForLabelSettingsInterface & HighlightByLinkForLinkSettingsInterface & HighlightByLinkForArrowSettingsInterface;
108
130
  type HighlighCommonSettingsInterface = {
109
- highlightDownFrames?: number;
110
- highlightUpFrames?: number;
131
+ highlightDuration?: number;
111
132
  highlightByHoverNode?: boolean;
112
133
  highlightByHoverLink?: boolean;
113
134
  linkHoverExtraZone?: number;
@@ -181,14 +202,17 @@ type HighlightByLinkForArrowSettingsInterface = {
181
202
  };
182
203
 
183
204
  declare const HIGHLIGHT_SETTINGS: Required<HighlightSettingsInterface>;
205
+ declare const PERFORMANCE_HIGHLIGHT_SETTINGS: Required<HighlightSettingsInterface>;
184
206
 
185
207
  type LinkSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
208
+ smartCache?: boolean;
186
209
  prettyDraw?: boolean;
210
+ curve?: boolean;
187
211
  arrow?: boolean;
188
212
  arrowByHighlight?: boolean;
189
213
  particles?: boolean;
190
- particleFlexSpeed?: boolean;
191
- particleFlexSpeedCoefficient?: number;
214
+ particleCountByDistance?: number;
215
+ particleSpeedByDistance?: number;
192
216
  linkScaleSwitch?: number;
193
217
  linkWidthBeforeScaleSwitch?: number;
194
218
  linkWidthAfterScaleSwitch?: number;
@@ -216,16 +240,18 @@ type LinkOptionsParticleInterface = {
216
240
  particleAlpha?: number;
217
241
  particleColor?: string;
218
242
  particleRadius?: number;
219
- particleCount?: number;
220
- particleSteps?: number;
221
243
  particleBorderWidth?: number;
222
244
  particleBorderColor?: string;
223
245
  };
224
246
 
225
247
  declare const LINK_SETTINGS: Omit<Required<LinkSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options">;
226
248
  declare const LINK_OPTIONS: Omit<Required<LinkOptionsInterface<Record<string, unknown>, Record<string, unknown>>>, "color" | "width" | "drawLink" | "drawExtraLink" | "arrowColor">;
249
+ declare const PERFORMANCE_LINK_SETTINGS: Omit<Required<LinkSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options">;
250
+ declare const PERFORMANCE_LINK_OPTIONS: Omit<Required<LinkOptionsInterface<Record<string, unknown>, Record<string, unknown>>>, "color" | "width" | "drawLink" | "drawExtraLink" | "arrowColor">;
227
251
 
228
252
  type NodeSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
253
+ smartCache?: boolean;
254
+ textScaleSteps?: number[];
229
255
  nodeRadiusFlexible?: boolean;
230
256
  nodeRadiusLinkCountForStep?: number;
231
257
  nodeRadiusIncrementByStep?: number;
@@ -297,6 +323,8 @@ type NodeOptionsLabelInterface = {
297
323
 
298
324
  declare const NODE_SETTINGS: Omit<Required<NodeSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options" | "idGetter">;
299
325
  declare const NODE_OPTIONS: Omit<Required<NodeOptionsInterface<Record<string, unknown>, Record<string, unknown>>>, "color" | "text" | "textVisible" | "textSize" | "textShiftY" | "nodeDraw" | "nodeExtraDraw" | "textDraw" | "textExtraDraw">;
326
+ declare const PERFORMANCE_NODE_SETTINGS: Omit<Required<NodeSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options" | "idGetter">;
327
+ declare const PERFOMANCE_NODE_OPTIONS: Omit<Required<NodeOptionsInterface<Record<string, unknown>, Record<string, unknown>>>, "color" | "text" | "textVisible" | "textSize" | "textShiftY" | "nodeDraw" | "nodeExtraDraw" | "textDraw" | "textExtraDraw">;
300
328
 
301
329
  declare const GRAPH_CACHE_TYPE: {
302
330
  readonly NodeOptions: "nodeOptions";
@@ -341,7 +369,7 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
341
369
  /** initial data */
342
370
  protected nodes: NodeInterface<NodeData>[];
343
371
  protected links: LinkInterface<NodeData, LinkData>[];
344
- protected particles: Record<string, LinkParticle[]>;
372
+ protected particles: (LinkParticle[] | undefined)[];
345
373
  protected width: number;
346
374
  protected height: number;
347
375
  protected root: HTMLElement;
@@ -358,30 +386,40 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
358
386
  protected context: CanvasRenderingContext2D | null | undefined;
359
387
  protected simulation: GraphCanvasSimulation<NodeData, LinkData> | undefined;
360
388
  protected areaTransform: ZoomTransform;
389
+ protected _translateExtent: [[number, number], [number, number]] | undefined;
361
390
  protected areaRect: DOMRect | undefined;
362
391
  protected draw: (this: GraphCanvas<NodeData, LinkData>, recursive?: boolean) => void;
363
392
  protected eventAbortController: AbortController;
364
- protected cachedNodeText: CachedNodeTextInterface;
365
- protected cachedNodeLabel: CachedNodeTextInterface;
366
- protected linkOptionsCache: Record<string, Required<LinkOptionsInterface<NodeData, LinkData>>>;
367
- protected nodeOptionsCache: Record<string, Required<NodeOptionsInterface<NodeData, LinkData>>>;
393
+ protected cachedNodeText: (string[] | undefined)[];
394
+ protected cachedNodeLabel: (string[] | undefined)[];
395
+ protected linkOptionsCache: (Required<LinkOptionsInterface<NodeData, LinkData>> | undefined)[];
396
+ protected nodeOptionsCache: (Required<NodeOptionsInterface<NodeData, LinkData>> | undefined)[];
368
397
  protected isDragging: boolean;
369
398
  protected highlightedNode: NodeInterface<NodeData> | null;
370
399
  protected highlightedLink: LinkInterface<NodeData, LinkData> | null;
371
400
  protected highlightedNeighbors: Set<string | number> | null;
372
401
  protected highlightProgress: number;
373
- protected highlightWorking: boolean;
402
+ protected highlightStart: number | null;
403
+ protected highlightPositive: boolean;
404
+ protected highlightController: AbortController | undefined;
405
+ protected _lastNodeZoomK: number | undefined;
406
+ protected _lastLinkZoomK: number | undefined;
407
+ protected _zoomAnimating: boolean;
374
408
  protected get simulationWorking(): boolean;
375
409
  constructor({ links, nodes, root, forceSettings, linkSettings, listeners, nodeSettings, graphSettings, highlightSettings, }: GraphCanvasInterface<NodeData, LinkData>);
376
410
  get dpi(): number;
377
411
  getData(): Pick<GraphCanvasInterface<NodeData, LinkData>, "nodes" | "links">;
412
+ fitToView(margin?: number, duration?: number): void;
413
+ focusOnNode(nodeId: string | number, scale?: number, duration?: number): void;
414
+ protected animateHighlight(node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined, baseDuration?: number): void;
415
+ protected animateZoom(area: HTMLCanvasElement, target: ZoomTransform, start: ZoomTransform, duration: number): void;
378
416
  changeData(options: Pick<Partial<GraphCanvasInterface<NodeData, LinkData>>, "links" | "nodes">, alpha?: number, clearCache?: boolean | GraphCanvasCacheKeys[]): void;
379
417
  changeSettings(options: Omit<Partial<GraphCanvasInterface<NodeData, LinkData>>, "links" | "nodes" | "listeners">, clearCache?: boolean | GraphCanvasCacheKeys[]): undefined;
380
418
  updateRect(): void;
381
419
  updateSize(): void;
382
420
  clearCache(keys: boolean | GraphCanvasCacheKeys[]): void;
383
421
  tick(): void;
384
- restart(alpha?: number): void;
422
+ restart(alpha?: number, options?: Partial<PrecomputeForceSettingsInterface>): void;
385
423
  start(): void;
386
424
  stop(): void;
387
425
  create(): void;
@@ -439,6 +477,14 @@ declare function nodeIdGetter<NodeData extends Record<string, unknown>>(node: No
439
477
 
440
478
  declare function highlightSettingsGetter(settings: HighlightSettingsInterface | undefined, prevSettings?: Required<HighlightSettingsInterface>): Required<HighlightSettingsInterface>;
441
479
 
480
+ interface GraphBounds {
481
+ minX: number;
482
+ minY: number;
483
+ maxX: number;
484
+ maxY: number;
485
+ }
486
+ declare function computeGraphBounds<NodeData extends Record<string, unknown>>(nodes: NodeInterface<NodeData>[]): GraphBounds | null;
487
+
442
488
  declare function pointerGetter(mouseEvent: MouseEvent | TouchEvent, areaRect: DOMRect, areaTransform: ZoomTransform): number[];
443
489
 
444
490
  declare function dragPlaceCoefficientGetter<NodeData extends Record<string, unknown>>(node: NodeInterface<NodeData>, pointerX: number, pointerY: number): number | undefined;
@@ -459,13 +505,15 @@ declare function nodeByPointerGetter<NodeData extends Record<string, unknown>>({
459
505
  declare function nodeIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[] | undefined | null>(node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[], state: GraphCanvas<NodeData, LinkData>, option: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: undefined): Result;
460
506
  declare function nodeIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[] | undefined | null>(node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[], state: GraphCanvas<NodeData, LinkData>, option: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result): Required<Result>;
461
507
 
462
- declare function calculateLinkPositionByNode<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(link: LinkInterface<NodeData, LinkData>, arrowSize?: number): {
463
- x1: number;
464
- y1: number;
465
- x2: number;
466
- y2: number;
508
+ declare function calculateLinkPositionByNode<NodeData extends Record<string, unknown>>(xStart: number, yStart: number, xEnd: number, yEnd: number, sourceNode: NodeInterface<NodeData>, targetNode: NodeInterface<NodeData>, arrowSize?: number): {
509
+ xStart: number;
510
+ yStart: number;
511
+ xEnd: number;
512
+ yEnd: number;
513
+ xEndArrow: number;
514
+ yEndArrow: number;
467
515
  distance: number;
468
- } | null;
516
+ };
469
517
 
470
518
  declare function animationByProgress(initial: number, additional: number, progress: number): number;
471
519
 
@@ -483,11 +531,14 @@ type GetParticlePositionOptions = {
483
531
  yStart: number;
484
532
  xEnd: number;
485
533
  yEnd: number;
486
- totalSteps: number;
487
- totalCount: number;
534
+ xControl: number;
535
+ yControl: number;
488
536
  distance: number;
537
+ totalCount: number;
538
+ speed: number;
489
539
  };
490
540
  declare function getParticlePosition(opts: GetParticlePositionOptions): void;
541
+ declare function approximateQuadraticBezierLength(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number): number;
491
542
 
492
543
  type LinkByPointerGetterOptions<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
493
544
  mouseEvent: MouseEvent | TouchEvent;
@@ -495,8 +546,9 @@ type LinkByPointerGetterOptions<NodeData extends Record<string, unknown>, LinkDa
495
546
  areaTransform: ZoomTransform;
496
547
  links: LinkInterface<NodeData, LinkData>[];
497
548
  linkHoverExtraZone: number;
549
+ curve: boolean;
498
550
  };
499
- declare function linkByPointerGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>({ areaRect, areaTransform, mouseEvent, links, linkHoverExtraZone, }: LinkByPointerGetterOptions<NodeData, LinkData>): LinkInterface<NodeData, LinkData> | undefined;
551
+ declare function linkByPointerGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>({ areaRect, areaTransform, mouseEvent, links, linkHoverExtraZone, curve, }: LinkByPointerGetterOptions<NodeData, LinkData>): LinkInterface<NodeData, LinkData> | undefined;
500
552
 
501
553
  type NodeHighlightOptions<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
502
554
  nodeOptions: Required<NodeOptionsInterface<NodeData, LinkData>>;
@@ -582,9 +634,11 @@ declare function extractLinkPointIds<NodeData extends Record<string, unknown>, L
582
634
  targetId: string | number;
583
635
  };
584
636
 
585
- declare function getDrawLink<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(): (this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>) => void;
637
+ declare function isEmptyObject(obj: Record<string, unknown>): boolean;
638
+
639
+ declare function getDrawLink<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(): (this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>, index: number) => void;
586
640
 
587
- declare function getDrawNode<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(nodeRenders: (() => void)[], textRenders: (() => void)[]): (this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>) => void;
641
+ declare function getDrawNode<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(nodeRenders: (() => void)[], textRenders: (() => void)[]): (this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, index: number) => void;
588
642
 
589
643
  type DrawTextOptions = {
590
644
  lines: string[];
@@ -682,5 +736,5 @@ declare const NODE_OPTIONS_NODE_CONTROLS: GraphSettingsInputInterface<keyof Node
682
736
  declare const NODE_OPTIONS_TEXT_CONTROLS: GraphSettingsInputInterface<keyof NodeOptionsTextInterface>[];
683
737
  declare const NODE_OPTIONS_LABEL_CONTROLS: GraphSettingsInputInterface<keyof NodeOptionsLabelInterface>[];
684
738
 
685
- export { COMMON_SETTINGS, FORCE_CONTROLS, FORCE_SETTINGS, GRAPH_CACHE_TYPE, GRAPH_SETTINGS, GraphCanvas, HIGHLIGHT_BY_LINK_FOR_ARROW_CONTROLS, HIGHLIGHT_BY_LINK_FOR_LABEL_CONTROLS, HIGHLIGHT_BY_LINK_FOR_LINK_CONTROLS, HIGHLIGHT_BY_LINK_FOR_NODE_CONTROLS, HIGHLIGHT_BY_LINK_FOR_TEXT_CONTROLS, HIGHLIGHT_BY_NODE_FOR_ARROW_CONTROLS, HIGHLIGHT_BY_NODE_FOR_LABEL_CONTROLS, HIGHLIGHT_BY_NODE_FOR_LINK_CONTROLS, HIGHLIGHT_BY_NODE_FOR_NODE_CONTROLS, HIGHLIGHT_BY_NODE_FOR_TEXT_CONTROLS, HIGHLIGHT_COMMON_CONTROLS, HIGHLIGHT_SETTINGS, LINK_OPTIONS, LINK_OPTIONS_ARROW_CONTROLS, LINK_OPTIONS_LINK_CONTROLS, LINK_OPTIONS_PARTICLE_CONTROLS, LINK_SETTINGS, LINK_SETTINGS_CONTROLS, NODE_OPTIONS, NODE_OPTIONS_LABEL_CONTROLS, NODE_OPTIONS_NODE_CONTROLS, NODE_OPTIONS_TEXT_CONTROLS, NODE_SETTINGS, NODE_SETTINGS_CONTROLS, animationByProgress, calculateLinkPositionByNode, colorGetter, colorToRgb, dragPlaceCoefficientGetter, drawText, extractLinkPointIds, extractRgb, fadeRgb, forceSettingsGetter, getDrawLink, getDrawNode, getParticlePosition, graphSettingsGetter, highlightSettingsGetter, isNodeVisible, isOverlapsNode, linkByPointerGetter, linkFade, linkHighlight, linkIterationExtractor, linkOptionsGetter, linkSettingsGetter, listenersGetter, nodeByPointerGetter, nodeFade, nodeHighlight, nodeIdGetter, nodeIterationExtractor, nodeOptionsGetter, nodeRadiusGetter, nodeSettingsGetter, nodeSizeGetter, nodeTextSizeGetter, pointerGetter, rgbAnimationByProgress };
686
- export type { CachedNodeTextInterface, DragEventInterface, ForceSettingsInterface, GraphCanvasCacheKeys, GraphCanvasInterface, GraphCanvasSimulation, GraphSettingsInputInterface, GraphSettingsInterface, HighlighCommonSettingsInterface, HighlightByLinkForArrowSettingsInterface, HighlightByLinkForLabelSettingsInterface, HighlightByLinkForLinkSettingsInterface, HighlightByLinkForNodeSettingsInterface, HighlightByLinkForTextSettingsInterface, HighlightByNodeForArrowSettingsInterface, HighlightByNodeForLabelSettingsInterface, HighlightByNodeForLinkSettingsInterface, HighlightByNodeForNodeSettingsInterface, HighlightByNodeForTextSettingsInterface, HighlightSettingsInterface, LinkByPointerGetterOptions, LinkInterface, LinkIterationPropsInterface, LinkIterationPropsNoThisInterface, LinkOptionsArrowInterface, LinkOptionsInterface, LinkOptionsLinkInterface, LinkOptionsParticleInterface, LinkParticle, LinkSettingsInterface, ListenersInterface, NodeByPointerGetterOptions, NodeInterface, NodeIterationPropsInterface, NodeIterationPropsNoThisInterface, NodeOptionsInterface, NodeOptionsLabelInterface, NodeOptionsNodeInterface, NodeOptionsTextInterface, NodeRadiusGetterOptions, NodeSettingsInterface, NodeShape, NodeSizeGetterOptions, RGB, TextStyleEnum, ZoomEventInterface };
739
+ export { COMMON_SETTINGS, FORCE_CONTROLS, FORCE_SETTINGS, GRAPH_CACHE_TYPE, GRAPH_SETTINGS, GraphCanvas, HIGHLIGHT_BY_LINK_FOR_ARROW_CONTROLS, HIGHLIGHT_BY_LINK_FOR_LABEL_CONTROLS, HIGHLIGHT_BY_LINK_FOR_LINK_CONTROLS, HIGHLIGHT_BY_LINK_FOR_NODE_CONTROLS, HIGHLIGHT_BY_LINK_FOR_TEXT_CONTROLS, HIGHLIGHT_BY_NODE_FOR_ARROW_CONTROLS, HIGHLIGHT_BY_NODE_FOR_LABEL_CONTROLS, HIGHLIGHT_BY_NODE_FOR_LINK_CONTROLS, HIGHLIGHT_BY_NODE_FOR_NODE_CONTROLS, HIGHLIGHT_BY_NODE_FOR_TEXT_CONTROLS, HIGHLIGHT_COMMON_CONTROLS, HIGHLIGHT_SETTINGS, LINK_OPTIONS, LINK_OPTIONS_ARROW_CONTROLS, LINK_OPTIONS_LINK_CONTROLS, LINK_OPTIONS_PARTICLE_CONTROLS, LINK_SETTINGS, LINK_SETTINGS_CONTROLS, NODE_OPTIONS, NODE_OPTIONS_LABEL_CONTROLS, NODE_OPTIONS_NODE_CONTROLS, NODE_OPTIONS_TEXT_CONTROLS, NODE_SETTINGS, NODE_SETTINGS_CONTROLS, PERFOMANCE_NODE_OPTIONS, PERFORMANCE_FORCE_SETTINGS, PERFORMANCE_GRAPH_SETTINGS, PERFORMANCE_HIGHLIGHT_SETTINGS, PERFORMANCE_LINK_OPTIONS, PERFORMANCE_LINK_SETTINGS, PERFORMANCE_NODE_SETTINGS, animationByProgress, approximateQuadraticBezierLength, calculateLinkPositionByNode, colorGetter, colorToRgb, computeGraphBounds, dragPlaceCoefficientGetter, drawText, extractLinkPointIds, extractRgb, fadeRgb, forceSettingsGetter, getDrawLink, getDrawNode, getParticlePosition, graphSettingsGetter, highlightSettingsGetter, isEmptyObject, isNodeVisible, isOverlapsNode, linkByPointerGetter, linkFade, linkHighlight, linkIterationExtractor, linkOptionsGetter, linkSettingsGetter, listenersGetter, nodeByPointerGetter, nodeFade, nodeHighlight, nodeIdGetter, nodeIterationExtractor, nodeOptionsGetter, nodeRadiusGetter, nodeSettingsGetter, nodeSizeGetter, nodeTextSizeGetter, pointerGetter, rgbAnimationByProgress };
740
+ export type { CachedNodeTextInterface, DragEventInterface, ForceSettingsInterface, GraphBounds, GraphCanvasCacheKeys, GraphCanvasInterface, GraphCanvasSimulation, GraphSettingsInputInterface, GraphSettingsInterface, HighlighCommonSettingsInterface, HighlightByLinkForArrowSettingsInterface, HighlightByLinkForLabelSettingsInterface, HighlightByLinkForLinkSettingsInterface, HighlightByLinkForNodeSettingsInterface, HighlightByLinkForTextSettingsInterface, HighlightByNodeForArrowSettingsInterface, HighlightByNodeForLabelSettingsInterface, HighlightByNodeForLinkSettingsInterface, HighlightByNodeForNodeSettingsInterface, HighlightByNodeForTextSettingsInterface, HighlightSettingsInterface, LinkByPointerGetterOptions, LinkInterface, LinkIterationPropsInterface, LinkIterationPropsNoThisInterface, LinkOptionsArrowInterface, LinkOptionsInterface, LinkOptionsLinkInterface, LinkOptionsParticleInterface, LinkParticle, LinkSettingsInterface, ListenersInterface, NodeByPointerGetterOptions, NodeInterface, NodeIterationPropsInterface, NodeIterationPropsNoThisInterface, NodeOptionsInterface, NodeOptionsLabelInterface, NodeOptionsNodeInterface, NodeOptionsTextInterface, NodeRadiusGetterOptions, NodeSettingsInterface, NodeShape, NodeSizeGetterOptions, PrecomputeForceSettingsInterface, RGB, TextStyleEnum, ZoomEventInterface };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@krainovsd/graph",
3
- "version": "0.13.0-beta1",
3
+ "version": "0.14.0-beta.1",
4
4
  "description": "Krainov graph",
5
5
  "type": "module",
6
6
  "author": "KrainovSD <denislosev48@gmail.com>",
@@ -62,7 +62,8 @@
62
62
  "@vitejs/plugin-vue": "5.2.4",
63
63
  "@krainovsd/vue-ui": "0.4.0-beta.23",
64
64
  "@krainovsd/vue-icons": "0.1.4",
65
- "sass-embedded": "1.81.0"
65
+ "sass-embedded": "1.81.0",
66
+ "@fontsource/nunito": "5.2.7"
66
67
  },
67
68
  "dependencies": {
68
69
  "@krainovsd/js-helpers": "^0.16.5",