@html-graph/html-graph 2.0.1 → 2.2.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/README.md CHANGED
@@ -50,7 +50,7 @@ function createNode({ name, x, y, frontPortId, backPortId }) {
50
50
  }
51
51
 
52
52
  const canvas = new CanvasBuilder()
53
- .setOptions({
53
+ .setDefaults({
54
54
  edges: {
55
55
  shape: {
56
56
  hasTargetArrow: true,
@@ -7,7 +7,15 @@ export declare interface AddEdgeRequest {
7
7
  }
8
8
 
9
9
  declare interface AddEdgeRequest_2 {
10
- readonly edgeId: unknown;
10
+ readonly id: unknown;
11
+ readonly from: unknown;
12
+ readonly to: unknown;
13
+ readonly shape: EdgeShape;
14
+ readonly priority: number;
15
+ }
16
+
17
+ declare interface AddEdgeRequest_3 {
18
+ readonly id: unknown;
11
19
  readonly from: unknown;
12
20
  readonly to: unknown;
13
21
  readonly shape: EdgeShape;
@@ -27,7 +35,16 @@ export declare interface AddNodeRequest {
27
35
  }
28
36
 
29
37
  declare interface AddNodeRequest_2 {
30
- readonly nodeId: unknown;
38
+ readonly id: unknown;
39
+ readonly element: HTMLElement;
40
+ readonly x: number;
41
+ readonly y: number;
42
+ readonly centerFn: CenterFn;
43
+ readonly priority: number;
44
+ }
45
+
46
+ declare interface AddNodeRequest_3 {
47
+ readonly id: unknown;
31
48
  readonly element: HTMLElement;
32
49
  readonly x: number;
33
50
  readonly y: number;
@@ -36,7 +53,7 @@ declare interface AddNodeRequest_2 {
36
53
  }
37
54
 
38
55
  declare interface AddPortRequest {
39
- readonly portId: unknown;
56
+ readonly id: unknown;
40
57
  readonly nodeId: unknown;
41
58
  readonly element: HTMLElement;
42
59
  readonly direction: number;
@@ -79,7 +96,12 @@ declare type BezierEdgeShapeConfig = {
79
96
  readonly type?: "bezier" | undefined;
80
97
  } & BezierEdgeParams;
81
98
 
82
- export declare interface Canvas {
99
+ export declare class Canvas {
100
+ private readonly controller;
101
+ private readonly nodeIdGenerator;
102
+ private readonly portIdGenerator;
103
+ private readonly edgeIdGenerator;
104
+ private readonly defaults;
83
105
  /**
84
106
  * provides api for accessing graph model
85
107
  */
@@ -88,12 +110,22 @@ export declare interface Canvas {
88
110
  * provides api for accessing viewport state
89
111
  */
90
112
  readonly viewport: Viewport;
113
+ constructor(controller: CanvasController, options: CanvasDefaults);
114
+ /**
115
+ * attaches canvas to given element
116
+ * detaches element first when canvas is attached
117
+ */
118
+ attach(element: HTMLElement): Canvas;
119
+ /**
120
+ * detaches canvas from element when attached
121
+ */
122
+ detach(): Canvas;
91
123
  /**
92
124
  * adds node to graph
93
125
  */
94
- addNode(node: AddNodeRequest): Canvas;
126
+ addNode(request: AddNodeRequest): Canvas;
95
127
  /**
96
- * updates node absolute coordinates
128
+ * updates node parameters
97
129
  */
98
130
  updateNode(nodeId: unknown, request?: UpdateNodeRequest): Canvas;
99
131
  /**
@@ -105,7 +137,7 @@ export declare interface Canvas {
105
137
  /**
106
138
  * marks element as port of node
107
139
  */
108
- markPort(port: MarkPortRequest): Canvas;
140
+ markPort(request: MarkPortRequest): Canvas;
109
141
  /**
110
142
  * updates port and attached edges
111
143
  */
@@ -118,7 +150,7 @@ export declare interface Canvas {
118
150
  /**
119
151
  * adds edge to graph
120
152
  */
121
- addEdge(edge: AddEdgeRequest): Canvas;
153
+ addEdge(request: AddEdgeRequest): Canvas;
122
154
  /**
123
155
  * updates edge
124
156
  */
@@ -136,29 +168,19 @@ export declare interface Canvas {
136
168
  */
137
169
  patchContentMatrix(request: PatchMatrixRequest): Canvas;
138
170
  /**
139
- * attaches canvas to given element
140
- */
141
- attach(element: HTMLElement): Canvas;
142
- /**
143
- * detaches canvas from element
144
- */
145
- detach(): Canvas;
146
- /**
147
- * clears graph
148
- * graph gets rolled back to initial state
149
- * canvas can be reused
171
+ * clears canvas from nodes and edges
172
+ * canvas gets rolled back to initial state and can be reused
150
173
  */
151
174
  clear(): Canvas;
152
175
  /**
153
176
  * destroys canvas
154
- * canvas element gets rolled back to initial state
155
- * canvas can not be reused
177
+ * canvas element gets rolled back to initial state, and can not be reused
156
178
  */
157
179
  destroy(): void;
158
180
  }
159
181
 
160
182
  export declare class CanvasBuilder {
161
- private coreOptions;
183
+ private canvasDefaults;
162
184
  private dragOptions;
163
185
  private transformOptions;
164
186
  private virtualScrollOptions;
@@ -167,11 +189,16 @@ export declare class CanvasBuilder {
167
189
  private hasResizeReactiveNodes;
168
190
  private boxRenderingTrigger;
169
191
  /**
170
- * specifies options for fundamental aspects of visualization
192
+ * specifies default values for graph entities
193
+ */
194
+ setDefaults(defaults: CanvasDefaults): CanvasBuilder;
195
+ /**
196
+ * @deprecated
197
+ * use setDefaults instead
171
198
  */
172
- setOptions(options: CoreOptions): CanvasBuilder;
199
+ setOptions(options: CanvasDefaults): CanvasBuilder;
173
200
  /**
174
- * enables nodes draggable bu user
201
+ * enables nodes draggable by user
175
202
  */
176
203
  enableUserDraggableNodes(options?: DragOptions): CanvasBuilder;
177
204
  /**
@@ -194,11 +221,27 @@ export declare class CanvasBuilder {
194
221
  private reset;
195
222
  }
196
223
 
197
- export declare type CenterFn = (width: number, height: number) => Point;
198
-
199
- declare type ConstantPriority = number;
224
+ declare interface CanvasController {
225
+ readonly graph: Graph;
226
+ readonly viewport: Viewport;
227
+ attach(element: HTMLElement): void;
228
+ detach(): void;
229
+ addNode(node: AddNodeRequest_3): void;
230
+ updateNode(nodeId: unknown, request: UpdateNodeRequest_2): void;
231
+ removeNode(nodeId: unknown): void;
232
+ markPort(port: MarkPortRequest_2): void;
233
+ updatePort(portId: unknown, request: UpdatePortRequest_2): void;
234
+ unmarkPort(portId: unknown): void;
235
+ addEdge(edge: AddEdgeRequest_3): void;
236
+ updateEdge(edgeId: unknown, request: UpdateEdgeRequest_2): void;
237
+ removeEdge(edgeId: unknown): void;
238
+ patchViewportMatrix(request: PatchMatrixRequest_2): void;
239
+ patchContentMatrix(request: PatchMatrixRequest_2): void;
240
+ clear(): void;
241
+ destroy(): void;
242
+ }
200
243
 
201
- export declare interface CoreOptions {
244
+ declare interface CanvasDefaults {
202
245
  /**
203
246
  * nodes related behavior
204
247
  */
@@ -236,6 +279,12 @@ export declare interface CoreOptions {
236
279
  readonly priority?: Priority;
237
280
  };
238
281
  }
282
+ export { CanvasDefaults }
283
+ export { CanvasDefaults as CoreOptions }
284
+
285
+ export declare type CenterFn = (width: number, height: number) => Point;
286
+
287
+ declare type ConstantPriority = number;
239
288
 
240
289
  declare type CustomPriority = PriorityFn;
241
290
 
@@ -311,6 +360,10 @@ export declare class Graph {
311
360
  getPort(portId: unknown): GraphPort | null;
312
361
  getAllPortIds(): readonly unknown[];
313
362
  getNodePortIds(nodeId: unknown): readonly unknown[] | null;
363
+ /**
364
+ * @deprecated
365
+ * use graph.getPort()?.nodeId ?? null instead
366
+ */
314
367
  getPortNodeId(portId: unknown): unknown | null;
315
368
  getAllEdgeIds(): readonly unknown[];
316
369
  getEdge(edgeId: unknown): GraphEdge | null;
@@ -349,8 +402,6 @@ export declare interface GraphPort {
349
402
  declare class GraphStore {
350
403
  private readonly nodes;
351
404
  private readonly ports;
352
- private readonly nodePorts;
353
- private readonly portNodeId;
354
405
  private readonly edges;
355
406
  private readonly incommingEdges;
356
407
  private readonly outcommingEdges;
@@ -363,7 +414,6 @@ declare class GraphStore {
363
414
  getPort(portId: unknown): PortPayload | undefined;
364
415
  getAllPortIds(): readonly unknown[];
365
416
  getNodePortIds(nodeId: unknown): readonly unknown[] | undefined;
366
- getPortNodeId(portId: unknown): unknown | undefined;
367
417
  removePort(portId: unknown): void;
368
418
  addEdge(request: AddEdgeRequest_2): void;
369
419
  updateEdgeFrom(edgeId: unknown, from: unknown): void;
@@ -438,6 +488,13 @@ export declare interface MarkPortRequest {
438
488
  readonly direction?: number;
439
489
  }
440
490
 
491
+ declare interface MarkPortRequest_2 {
492
+ readonly id: unknown;
493
+ readonly element: HTMLElement;
494
+ readonly nodeId: unknown;
495
+ readonly direction: number;
496
+ }
497
+
441
498
  export declare interface NodeDragPayload {
442
499
  readonly nodeId: unknown;
443
500
  readonly element: HTMLElement;
@@ -446,11 +503,12 @@ export declare interface NodeDragPayload {
446
503
  }
447
504
 
448
505
  declare interface NodePayload {
449
- element: HTMLElement;
506
+ readonly element: HTMLElement;
450
507
  x: number;
451
508
  y: number;
452
509
  centerFn: CenterFn;
453
510
  priority: number;
511
+ readonly ports: Map<unknown, HTMLElement>;
454
512
  }
455
513
 
456
514
  export declare interface PatchMatrixRequest {
@@ -459,6 +517,12 @@ export declare interface PatchMatrixRequest {
459
517
  readonly y?: number | undefined;
460
518
  }
461
519
 
520
+ declare interface PatchMatrixRequest_2 {
521
+ readonly scale?: number | undefined;
522
+ readonly x?: number | undefined;
523
+ readonly y?: number | undefined;
524
+ }
525
+
462
526
  declare interface PatchTransformRequest {
463
527
  readonly scale?: number;
464
528
  readonly x?: number;
@@ -473,6 +537,7 @@ export declare interface Point {
473
537
  declare interface PortPayload {
474
538
  readonly element: HTMLElement;
475
539
  direction: number;
540
+ readonly nodeId: unknown;
476
541
  }
477
542
 
478
543
  declare type Priority = ConstantPriority | IncrementalPriority | CustomPriority;
@@ -597,6 +662,13 @@ export declare interface UpdateEdgeRequest {
597
662
  readonly priority?: number | undefined;
598
663
  }
599
664
 
665
+ declare interface UpdateEdgeRequest_2 {
666
+ readonly from?: unknown | undefined;
667
+ readonly to?: unknown | undefined;
668
+ readonly shape?: EdgeShape | undefined;
669
+ readonly priority?: number | undefined;
670
+ }
671
+
600
672
  export declare interface UpdateNodeRequest {
601
673
  readonly x?: number | undefined;
602
674
  readonly y?: number | undefined;
@@ -604,10 +676,21 @@ export declare interface UpdateNodeRequest {
604
676
  readonly centerFn?: CenterFn | undefined;
605
677
  }
606
678
 
679
+ declare interface UpdateNodeRequest_2 {
680
+ readonly x?: number | undefined;
681
+ readonly y?: number | undefined;
682
+ readonly priority?: number | undefined;
683
+ readonly centerFn?: CenterFn | undefined;
684
+ }
685
+
607
686
  export declare interface UpdatePortRequest {
608
687
  readonly direction?: number;
609
688
  }
610
689
 
690
+ declare interface UpdatePortRequest_2 {
691
+ readonly direction?: number;
692
+ }
693
+
611
694
  export declare interface VerticalEdgeParams {
612
695
  readonly color?: string | undefined;
613
696
  readonly width?: number | undefined;
@@ -651,7 +734,7 @@ declare type VerticalEdgeShapeConfig = {
651
734
  */
652
735
  export declare class Viewport {
653
736
  private readonly transformer;
654
- constructor(transformer: ViewportTransformer);
737
+ constructor(transformer: ViewportStore);
655
738
  getViewportMatrix(): TransformState;
656
739
  getContentMatrix(): TransformState;
657
740
  }
@@ -659,7 +742,7 @@ export declare class Viewport {
659
742
  /**
660
743
  * This entity is responsible for storing viewport transformation
661
744
  */
662
- declare class ViewportTransformer {
745
+ declare class ViewportStore {
663
746
  private viewportMatrix;
664
747
  private contentMatrix;
665
748
  private readonly emitter;