@krainovsd/graph 0.12.0-beta.3 → 0.12.0-beta.5

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 (35) hide show
  1. package/lib/cjs/index.cjs +303 -270
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/esm/constants/link-controls.js +0 -6
  4. package/lib/esm/constants/link-controls.js.map +1 -1
  5. package/lib/esm/constants/node-controls.js +71 -24
  6. package/lib/esm/constants/node-controls.js.map +1 -1
  7. package/lib/esm/index.js +1 -1
  8. package/lib/esm/module/GraphCanvas/GraphCanvas.js +15 -17
  9. package/lib/esm/module/GraphCanvas/GraphCanvas.js.map +1 -1
  10. package/lib/esm/module/GraphCanvas/constants/link-settings.js +0 -1
  11. package/lib/esm/module/GraphCanvas/constants/link-settings.js.map +1 -1
  12. package/lib/esm/module/GraphCanvas/constants/node-settings.js +10 -5
  13. package/lib/esm/module/GraphCanvas/constants/node-settings.js.map +1 -1
  14. package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js +20 -4
  15. package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js.map +1 -1
  16. package/lib/esm/module/GraphCanvas/lib/utils/is-overlaps-node.js +1 -1
  17. package/lib/esm/module/GraphCanvas/lib/utils/is-overlaps-node.js.map +1 -1
  18. package/lib/esm/module/GraphCanvas/lib/utils/link-by-pointer-getter.js +4 -1
  19. package/lib/esm/module/GraphCanvas/lib/utils/link-by-pointer-getter.js.map +1 -1
  20. package/lib/esm/module/GraphCanvas/slices/draw-links.js +7 -20
  21. package/lib/esm/module/GraphCanvas/slices/draw-links.js.map +1 -1
  22. package/lib/esm/module/GraphCanvas/slices/draw-nodes.js +29 -117
  23. package/lib/esm/module/GraphCanvas/slices/draw-nodes.js.map +1 -1
  24. package/lib/esm/module/GraphCanvas/slices/draw-text.js +1 -24
  25. package/lib/esm/module/GraphCanvas/slices/draw-text.js.map +1 -1
  26. package/lib/esm/module/GraphCanvas/slices/init-simulation.js +7 -55
  27. package/lib/esm/module/GraphCanvas/slices/init-simulation.js.map +1 -1
  28. package/lib/esm/module/GraphCanvas/slices/init-zoom.js +4 -2
  29. package/lib/esm/module/GraphCanvas/slices/init-zoom.js.map +1 -1
  30. package/lib/esm/module/GraphCanvas/slices/update-link-cache.js +19 -0
  31. package/lib/esm/module/GraphCanvas/slices/update-link-cache.js.map +1 -0
  32. package/lib/esm/module/GraphCanvas/slices/update-node-cache.js +136 -0
  33. package/lib/esm/module/GraphCanvas/slices/update-node-cache.js.map +1 -0
  34. package/lib/index.d.ts +28 -28
  35. package/package.json +1 -1
package/lib/index.d.ts CHANGED
@@ -25,12 +25,6 @@ interface NodeInterface<NodeData extends Record<string, unknown>> extends Simula
25
25
  type NodeShape = "circle" | "square" | "text";
26
26
  type TextStyleEnum = "normal" | "italic" | "oblique";
27
27
  type CachedNodeTextInterface = Record<string | number, string[] | undefined>;
28
- type CachedTextNodeParametersMap = Record<string | number, [number, number] | undefined>;
29
- /**
30
- * 1. Initial max size of text
31
- * 2. Initial size of text
32
- */
33
- type CachedTextNodeParametersInterface = [number, number];
34
28
 
35
29
  interface LinkInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> extends SimulationLinkDatum<NodeInterface<NodeData>> {
36
30
  data?: LinkData;
@@ -177,7 +171,6 @@ type HighlightByLinkForArrowSettingsInterface = {
177
171
  };
178
172
 
179
173
  type LinkSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
180
- cacheOptions?: boolean;
181
174
  prettyDraw?: boolean;
182
175
  arrow?: boolean;
183
176
  arrowByHighlight?: boolean;
@@ -236,13 +229,18 @@ type ListenersInterface<NodeData extends Record<string, unknown>, LinkData exten
236
229
  };
237
230
 
238
231
  type NodeSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
239
- cacheOptions?: boolean;
240
232
  nodeRadiusFlexible?: boolean;
241
- nodeRadiusCoefficient?: number;
242
- nodeRadiusFactor?: number;
233
+ nodeRadiusLinkCountForStep?: number;
234
+ nodeRadiusIncrementByStep?: number;
235
+ nodeRadiusMaxLinearSteps?: number;
236
+ nodeRadiusLogFactor?: number;
237
+ nodeRadiusLinkCountDividerForLog?: number;
243
238
  nodeSizeFlexible?: boolean;
244
- nodeSizeCoefficient?: number;
245
- nodeSizeFactor?: number;
239
+ nodeSizeLinkCountForStep?: number;
240
+ nodeSizeIncrementByStep?: number;
241
+ nodeSizeMaxLinearSteps?: number;
242
+ nodeSizeLogFactor?: number;
243
+ nodeSizeLinkCountDividerForLog?: number;
246
244
  textNodeDebug?: boolean;
247
245
  textScaleMin?: number;
248
246
  textScaleMax?: number;
@@ -339,7 +337,6 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
339
337
  protected eventAbortController: AbortController;
340
338
  protected cachedNodeText: CachedNodeTextInterface;
341
339
  protected cachedNodeLabel: CachedNodeTextInterface;
342
- protected cachedTextNodeParameters: CachedTextNodeParametersMap;
343
340
  protected linkOptionsCache: Record<string, Required<LinkOptionsInterface<NodeData, LinkData>>>;
344
341
  protected nodeOptionsCache: Record<string, Required<NodeOptionsInterface<NodeData, LinkData>>>;
345
342
  protected isDragging: boolean;
@@ -356,7 +353,7 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
356
353
  changeSettings(options: Omit<Partial<GraphCanvasInterface<NodeData, LinkData>>, "links" | "nodes" | "listeners">, clearCache?: boolean): undefined;
357
354
  updateRect(): void;
358
355
  updateSize(): void;
359
- clearCache(keys?: ("nodeOptionsCache" | "linkOptionsCache" | "cachedNodeText" | "cachedNodeLabel" | "cachedTextNodeParameters")[]): void;
356
+ clearCache(keys?: ("nodeOptionsCache" | "linkOptionsCache")[]): void;
360
357
  tick(): void;
361
358
  restart(alpha?: number): void;
362
359
  start(): void;
@@ -388,20 +385,26 @@ declare function nodeTextSizeGetter<NodeData extends Record<string, unknown>, Li
388
385
  type NodeRadiusGetterOptions = {
389
386
  linkCount: number | undefined;
390
387
  radiusFlexible: boolean;
391
- radiusCoefficient: number;
392
- radiusFactor: number;
393
388
  radiusInitial: number;
389
+ radiusLinkCountForStep: number;
390
+ radiusIncrementByStep: number;
391
+ radiusMaxLinearSteps: number;
392
+ radiusLogFactor: number;
393
+ radiusLinkCountDividerForLog: number;
394
394
  };
395
- declare function nodeRadiusGetter({ radiusFlexible, radiusInitial, linkCount, radiusCoefficient, radiusFactor, }: NodeRadiusGetterOptions): number;
395
+ declare function nodeRadiusGetter({ radiusFlexible, linkCount, radiusInitial, radiusIncrementByStep, radiusLinkCountDividerForLog, radiusLinkCountForStep, radiusLogFactor, radiusMaxLinearSteps, }: NodeRadiusGetterOptions): number;
396
396
  type NodeSizeGetterOptions = {
397
397
  linkCount: number | undefined;
398
398
  sizeFlexible: boolean;
399
- sizeCoefficient: number;
400
- sizeFactor: number;
401
399
  widthInitial: number;
402
400
  heightInitial: number;
401
+ sizeLinkCountForStep: number;
402
+ sizeIncrementByStep: number;
403
+ sizeMaxLinearSteps: number;
404
+ sizeLogFactor: number;
405
+ sizeLinkCountDividerForLog: number;
403
406
  };
404
- declare function nodeSizeGetter({ heightInitial, linkCount, sizeCoefficient, sizeFactor, sizeFlexible, widthInitial, }: NodeSizeGetterOptions): {
407
+ declare function nodeSizeGetter({ heightInitial, linkCount, sizeFlexible, widthInitial, sizeIncrementByStep, sizeLinkCountDividerForLog, sizeLinkCountForStep, sizeLogFactor, sizeMaxLinearSteps, }: NodeSizeGetterOptions): {
405
408
  width: number;
406
409
  height: number;
407
410
  additionalSizeCoefficient: number;
@@ -553,15 +556,14 @@ declare function extractLinkPointIds<NodeData extends Record<string, unknown>, L
553
556
  targetId: string | number;
554
557
  };
555
558
 
556
- declare function getDrawLink<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(): (this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>, index: number) => void;
559
+ declare function getDrawLink<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(): (this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>) => void;
557
560
 
558
- 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;
561
+ 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;
559
562
 
560
563
  type DrawTextOptions = {
561
- id: string | number;
564
+ lines: string[];
562
565
  x: number;
563
566
  y: number;
564
- text: string;
565
567
  textSize: number;
566
568
  textStyle: TextStyleEnum;
567
569
  textWeight: number;
@@ -570,10 +572,8 @@ type DrawTextOptions = {
570
572
  textGap: number;
571
573
  textAlign: CanvasTextAlign;
572
574
  context: CanvasRenderingContext2D;
573
- cachedNodeText: CachedNodeTextInterface;
574
- maxWidth?: number;
575
575
  };
576
- declare function drawText({ context, id, textAlign, textColor, textFont, textStyle, textGap, textWeight, textSize, text, x, y, cachedNodeText, maxWidth, }: DrawTextOptions): void;
576
+ declare function drawText({ context, textAlign, textColor, textFont, textStyle, textGap, textWeight, textSize, x, y, lines, }: DrawTextOptions): void;
577
577
 
578
578
  declare const COMMON_SETTINGS: {
579
579
  nodeRadius: number;
@@ -674,4 +674,4 @@ declare const NODE_OPTIONS_TEXT_CONTROLS: GraphSettingsInputInterface<keyof Node
674
674
  declare const NODE_OPTIONS_LABEL_CONTROLS: GraphSettingsInputInterface<keyof NodeOptionsLabelInterface>[];
675
675
 
676
676
  export { COMMON_SETTINGS, FORCE_CONTROLS, FORCE_SETTINGS, 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 };
677
- export type { CachedNodeTextInterface, CachedTextNodeParametersInterface, CachedTextNodeParametersMap, DragEventInterface, ForceSettingsInterface, 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 };
677
+ export type { CachedNodeTextInterface, DragEventInterface, ForceSettingsInterface, 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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@krainovsd/graph",
3
- "version": "0.12.0-beta.3",
3
+ "version": "0.12.0-beta.5",
4
4
  "description": "Krainov graph",
5
5
  "type": "module",
6
6
  "author": "KrainovSD <denislosev48@gmail.com>",