@html-graph/html-graph 4.1.0 → 5.0.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.
package/README.md CHANGED
@@ -1,17 +1,11 @@
1
- <h1>
2
- <img src="/media/favicon.png" alt="HTMLGraph" width="25" height="25"/> HTMLGraph
3
- </h1>
4
-
5
- ### Graph visualization library that enables rich nodes customization using HTML
1
+ <p align="center">
2
+ <img src="/media/logo-label.svg" alt="HTMLGraph" width="520" height="100"/>
3
+ </p>
6
4
 
7
5
  <a target="_blank" href="https://html-graph.github.io/use-cases/advanced-demo/">
8
6
  <img width="100%" src="https://raw.githubusercontent.com/html-graph/html-graph/master/media/full-demo.gif"/>
9
7
  </a>
10
8
 
11
- ## Getting started:
12
-
13
- ```
14
- npm i @html-graph/html-graph
15
- ```
9
+ ### Graph visualization library that enables rich nodes customization using HTML
16
10
 
17
11
  Visit the <a target="_blank" href="https://html-graph.github.io">DOCUMENTATION</a> for examples and API reference.
@@ -29,8 +29,8 @@ export declare interface AddNodeRequest {
29
29
  declare interface AddNodeRequest_2 {
30
30
  readonly id: Identifier;
31
31
  readonly element: HTMLElement;
32
- readonly x: number;
33
- readonly y: number;
32
+ readonly x: number | null;
33
+ readonly y: number | null;
34
34
  readonly centerFn: CenterFn;
35
35
  readonly priority: number;
36
36
  }
@@ -42,6 +42,27 @@ declare interface AddPortRequest {
42
42
  readonly direction: number;
43
43
  }
44
44
 
45
+ export declare type ArrowRenderer = (params: ArrowRenderingParams) => string;
46
+
47
+ export declare type ArrowRendererConfig = {
48
+ readonly type?: "wedge";
49
+ readonly radius?: number | undefined;
50
+ readonly smallRadius?: number | undefined;
51
+ readonly angle?: number | undefined;
52
+ } | {
53
+ readonly type: "triangle";
54
+ readonly radius?: number | undefined;
55
+ } | {
56
+ readonly type: "arc";
57
+ readonly radius?: number | undefined;
58
+ } | ArrowRenderer;
59
+
60
+ export declare interface ArrowRenderingParams {
61
+ readonly direction: Point;
62
+ readonly shift: Point;
63
+ readonly arrowLength: number;
64
+ }
65
+
45
66
  export declare interface BackgroundConfig {
46
67
  readonly tileDimensions?: {
47
68
  readonly width?: number;
@@ -55,7 +76,7 @@ export declare interface BezierEdgeParams {
55
76
  readonly color?: string | undefined;
56
77
  readonly width?: number | undefined;
57
78
  readonly arrowLength?: number | undefined;
58
- readonly arrowWidth?: number | undefined;
79
+ readonly arrowRenderer?: ArrowRendererConfig | undefined;
59
80
  readonly curvature?: number | undefined;
60
81
  readonly hasSourceArrow?: boolean | undefined;
61
82
  readonly hasTargetArrow?: boolean | undefined;
@@ -73,7 +94,6 @@ export declare class BezierEdgeShape implements StructuredEdgeShape {
73
94
  readonly targetArrow: SVGPathElement | null;
74
95
  readonly onAfterRender: EventHandler<StructuredEdgeRenderModel>;
75
96
  private readonly arrowLength;
76
- private readonly arrowWidth;
77
97
  private readonly curvature;
78
98
  private readonly portCycleRadius;
79
99
  private readonly portCycleSmallRadius;
@@ -94,10 +114,6 @@ declare type BezierEdgeShapeConfig = {
94
114
  } & BezierEdgeParams;
95
115
 
96
116
  export declare class Canvas {
97
- private readonly graphStore;
98
- private readonly viewportStore;
99
- private readonly htmlView;
100
- private readonly params;
101
117
  /**
102
118
  * provides api for accessing model of rendered graph
103
119
  */
@@ -106,6 +122,10 @@ export declare class Canvas {
106
122
  * provides api for accessing viewport state
107
123
  */
108
124
  readonly viewport: Viewport;
125
+ private readonly graphStore;
126
+ private readonly viewportStore;
127
+ private readonly htmlView;
128
+ private readonly params;
109
129
  private readonly nodeIdGenerator;
110
130
  private readonly portIdGenerator;
111
131
  private readonly edgeIdGenerator;
@@ -127,7 +147,15 @@ export declare class Canvas {
127
147
  * emits event just before destruction of canvas
128
148
  */
129
149
  readonly onBeforeDestroy: EventHandler<void>;
130
- constructor(graphStore: GraphStore, viewportStore: ViewportStore, htmlView: HtmlView, params: CanvasParams);
150
+ constructor(
151
+ /**
152
+ * provides api for accessing model of rendered graph
153
+ */
154
+ graph: Graph,
155
+ /**
156
+ * provides api for accessing viewport state
157
+ */
158
+ viewport: Viewport, graphStore: GraphStore, viewportStore: ViewportStore, htmlView: HtmlView, params: CanvasParams);
131
159
  /**
132
160
  * adds new node
133
161
  */
@@ -167,6 +195,11 @@ export declare class Canvas {
167
195
  * removes specified edge
168
196
  */
169
197
  removeEdge(edgeId: Identifier): Canvas;
198
+ /**
199
+ * clears canvas from nodes and edges
200
+ * canvas gets rolled back to initial state and can be reused
201
+ */
202
+ clear(): Canvas;
170
203
  /**
171
204
  * applies transformation for viewport matrix
172
205
  */
@@ -175,11 +208,6 @@ export declare class Canvas {
175
208
  * applies transformation for content matrix
176
209
  */
177
210
  patchContentMatrix(request: PatchMatrixRequest): Canvas;
178
- /**
179
- * clears canvas from nodes and edges
180
- * canvas gets rolled back to initial state and can be reused
181
- */
182
- clear(): Canvas;
183
211
  /**
184
212
  * destroys canvas
185
213
  * canvas element gets rolled back to initial state, and can not be reused
@@ -206,6 +234,8 @@ export declare class CanvasBuilder {
206
234
  private readonly boxRenderingTrigger;
207
235
  private readonly graphStore;
208
236
  private readonly viewportStore;
237
+ private readonly graph;
238
+ private readonly viewport;
209
239
  private readonly window;
210
240
  constructor(element: HTMLElement);
211
241
  /**
@@ -342,7 +372,7 @@ export declare interface DirectEdgeParams {
342
372
  readonly color?: string | undefined;
343
373
  readonly width?: number | undefined;
344
374
  readonly arrowLength?: number | undefined;
345
- readonly arrowWidth?: number | undefined;
375
+ readonly arrowRenderer?: ArrowRendererConfig | undefined;
346
376
  readonly hasSourceArrow?: boolean | undefined;
347
377
  readonly hasTargetArrow?: boolean | undefined;
348
378
  readonly sourceOffset?: number | undefined;
@@ -358,11 +388,11 @@ export declare class DirectEdgeShape implements StructuredEdgeShape {
358
388
  private readonly color;
359
389
  private readonly width;
360
390
  private readonly arrowLength;
361
- private readonly arrowWidth;
362
391
  private readonly sourceOffset;
363
392
  private readonly targetOffset;
364
393
  readonly onAfterRender: EventHandler<StructuredEdgeRenderModel>;
365
394
  private readonly afterRenderEmitter;
395
+ private readonly arrowRenderer;
366
396
  constructor(params?: DirectEdgeParams);
367
397
  render(params: EdgeRenderParams): void;
368
398
  }
@@ -484,8 +514,8 @@ export declare interface GraphEdge {
484
514
 
485
515
  export declare interface GraphNode {
486
516
  readonly element: HTMLElement;
487
- readonly x: number;
488
- readonly y: number;
517
+ readonly x: number | null;
518
+ readonly y: number | null;
489
519
  readonly centerFn: CenterFn;
490
520
  readonly priority: number;
491
521
  }
@@ -567,7 +597,7 @@ export declare interface HorizontalEdgeParams {
567
597
  readonly color?: string | undefined;
568
598
  readonly width?: number | undefined;
569
599
  readonly arrowLength?: number | undefined;
570
- readonly arrowWidth?: number | undefined;
600
+ readonly arrowRenderer?: ArrowRendererConfig | undefined;
571
601
  readonly arrowOffset?: number | undefined;
572
602
  readonly hasSourceArrow?: boolean | undefined;
573
603
  readonly hasTargetArrow?: boolean | undefined;
@@ -584,7 +614,6 @@ export declare class HorizontalEdgeShape implements StructuredEdgeShape {
584
614
  readonly targetArrow: SVGPathElement | null;
585
615
  readonly onAfterRender: EventHandler<StructuredEdgeRenderModel>;
586
616
  private readonly arrowLength;
587
- private readonly arrowWidth;
588
617
  private readonly arrowOffset;
589
618
  private readonly roundness;
590
619
  private readonly cycleSquareSide;
@@ -608,13 +637,13 @@ declare interface HtmlView {
608
637
  detachNode(nodeId: Identifier): void;
609
638
  attachEdge(edgeId: Identifier): void;
610
639
  detachEdge(edgeId: Identifier): void;
611
- clear(): void;
612
- destroy(): void;
613
640
  updateNodePosition(nodeId: Identifier): void;
614
641
  updateNodePriority(nodeId: Identifier): void;
615
642
  updateEdgeShape(edgeId: Identifier): void;
616
643
  renderEdge(edgeId: Identifier): void;
617
644
  updateEdgePriority(edgeId: Identifier): void;
645
+ clear(): void;
646
+ destroy(): void;
618
647
  }
619
648
 
620
649
  export declare type Identifier = NonNullable<unknown>;
@@ -718,8 +747,8 @@ declare interface StoreEdge {
718
747
  declare interface StoreNode {
719
748
  readonly element: HTMLElement;
720
749
  readonly payload: {
721
- x: number;
722
- y: number;
750
+ x: number | null;
751
+ y: number | null;
723
752
  centerFn: CenterFn;
724
753
  priority: number;
725
754
  };
@@ -738,8 +767,8 @@ export declare interface StraightEdgeParams {
738
767
  readonly color?: string | undefined;
739
768
  readonly width?: number | undefined;
740
769
  readonly arrowLength?: number | undefined;
741
- readonly arrowWidth?: number | undefined;
742
770
  readonly arrowOffset?: number | undefined;
771
+ readonly arrowRenderer?: ArrowRendererConfig | undefined;
743
772
  readonly hasSourceArrow?: boolean | undefined;
744
773
  readonly hasTargetArrow?: boolean | undefined;
745
774
  readonly cycleSquareSide?: number | undefined;
@@ -756,7 +785,6 @@ export declare class StraightEdgeShape implements StructuredEdgeShape {
756
785
  readonly targetArrow: SVGPathElement | null;
757
786
  readonly onAfterRender: EventHandler<StructuredEdgeRenderModel>;
758
787
  private readonly arrowLength;
759
- private readonly arrowWidth;
760
788
  private readonly arrowOffset;
761
789
  private readonly roundness;
762
790
  private readonly cycleSquareSide;
@@ -863,8 +891,8 @@ export declare interface VerticalEdgeParams {
863
891
  readonly color?: string | undefined;
864
892
  readonly width?: number | undefined;
865
893
  readonly arrowLength?: number | undefined;
866
- readonly arrowWidth?: number | undefined;
867
894
  readonly arrowOffset?: number | undefined;
895
+ readonly arrowRenderer?: ArrowRendererConfig | undefined;
868
896
  readonly hasSourceArrow?: boolean | undefined;
869
897
  readonly hasTargetArrow?: boolean | undefined;
870
898
  readonly cycleSquareSide?: number | undefined;
@@ -880,7 +908,6 @@ export declare class VerticalEdgeShape implements StructuredEdgeShape {
880
908
  readonly targetArrow: SVGPathElement | null;
881
909
  readonly onAfterRender: EventHandler<StructuredEdgeRenderModel>;
882
910
  private readonly arrowLength;
883
- private readonly arrowWidth;
884
911
  private readonly arrowOffset;
885
912
  private readonly roundness;
886
913
  private readonly cycleSquareSide;