@krainovsd/graph 0.8.4 → 0.10.0-rc1
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/lib/cjs/index.cjs +2819 -1574
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/esm/index.js +14 -4
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/lib/draw-time.js +5 -1
- package/lib/esm/lib/draw-time.js.map +1 -1
- package/lib/esm/lib/get-controls-info.js +525 -151
- package/lib/esm/lib/get-controls-info.js.map +1 -1
- package/lib/esm/module/GraphCanvas/GraphCanvas.js +42 -746
- package/lib/esm/module/GraphCanvas/GraphCanvas.js.map +1 -1
- package/lib/esm/module/GraphCanvas/constants/settings.js +83 -39
- package/lib/esm/module/GraphCanvas/constants/settings.js.map +1 -1
- package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js +10 -1
- package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js.map +1 -1
- package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-node.js +270 -0
- package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-node.js.map +1 -0
- package/lib/esm/module/GraphCanvas/lib/utils/drag-place-coefficient-getter.js +2 -2
- package/lib/esm/module/GraphCanvas/lib/utils/drag-place-coefficient-getter.js.map +1 -1
- package/lib/esm/module/GraphCanvas/lib/utils/get-particle-position.js +19 -4
- package/lib/esm/module/GraphCanvas/lib/utils/get-particle-position.js.map +1 -1
- package/lib/esm/module/GraphCanvas/lib/utils/is-node-visible.js +29 -4
- package/lib/esm/module/GraphCanvas/lib/utils/is-node-visible.js.map +1 -1
- package/lib/esm/module/GraphCanvas/lib/utils/is-overlaps-node.js +53 -4
- package/lib/esm/module/GraphCanvas/lib/utils/is-overlaps-node.js.map +1 -1
- package/lib/esm/module/GraphCanvas/lib/utils/link-by-pointer-getter.js +55 -0
- package/lib/esm/module/GraphCanvas/lib/utils/link-by-pointer-getter.js.map +1 -0
- package/lib/esm/module/GraphCanvas/lib/utils/node-by-pointer-getter.js +3 -13
- package/lib/esm/module/GraphCanvas/lib/utils/node-by-pointer-getter.js.map +1 -1
- package/lib/esm/module/GraphCanvas/lib/utils/pointer-getter.js +8 -2
- package/lib/esm/module/GraphCanvas/lib/utils/pointer-getter.js.map +1 -1
- package/lib/esm/module/GraphCanvas/slices/draw-links.js +207 -0
- package/lib/esm/module/GraphCanvas/slices/draw-links.js.map +1 -0
- package/lib/esm/module/GraphCanvas/slices/draw-nodes.js +342 -0
- package/lib/esm/module/GraphCanvas/slices/draw-nodes.js.map +1 -0
- package/lib/esm/module/GraphCanvas/{lib/utils → slices}/draw-text.js +23 -6
- package/lib/esm/module/GraphCanvas/slices/draw-text.js.map +1 -0
- package/lib/esm/module/GraphCanvas/slices/init-area.js +31 -0
- package/lib/esm/module/GraphCanvas/slices/init-area.js.map +1 -0
- package/lib/esm/module/GraphCanvas/slices/init-dnd.js +62 -0
- package/lib/esm/module/GraphCanvas/slices/init-dnd.js.map +1 -0
- package/lib/esm/module/GraphCanvas/slices/init-draw.js +84 -0
- package/lib/esm/module/GraphCanvas/slices/init-draw.js.map +1 -0
- package/lib/esm/module/GraphCanvas/slices/init-pointer.js +211 -0
- package/lib/esm/module/GraphCanvas/slices/init-pointer.js.map +1 -0
- package/lib/esm/module/GraphCanvas/slices/init-resize.js +28 -0
- package/lib/esm/module/GraphCanvas/slices/init-resize.js.map +1 -0
- package/lib/esm/module/GraphCanvas/slices/init-simulation.js +172 -0
- package/lib/esm/module/GraphCanvas/slices/init-simulation.js.map +1 -0
- package/lib/esm/module/GraphCanvas/slices/init-zoom.js +36 -0
- package/lib/esm/module/GraphCanvas/slices/init-zoom.js.map +1 -0
- package/lib/index.d.ts +192 -114
- package/package.json +1 -1
- package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-radius.js +0 -20
- package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-radius.js.map +0 -1
- package/lib/esm/module/GraphCanvas/lib/utils/draw-text.js.map +0 -1
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SimulationNodeDatum, SimulationLinkDatum, Simulation } from 'd3-force';
|
|
2
1
|
import { D3ZoomEvent, ZoomTransform } from 'd3-zoom';
|
|
2
|
+
import { SimulationNodeDatum, SimulationLinkDatum, Simulation } from 'd3-force';
|
|
3
3
|
import { D3DragEvent } from 'd3-drag';
|
|
4
4
|
|
|
5
5
|
interface NodeInterface<NodeData extends Record<string, unknown>> extends SimulationNodeDatum {
|
|
@@ -8,12 +8,17 @@ interface NodeInterface<NodeData extends Record<string, unknown>> extends Simula
|
|
|
8
8
|
group?: number | string;
|
|
9
9
|
neighbors?: (string | number)[];
|
|
10
10
|
_radius?: number;
|
|
11
|
+
_width?: number;
|
|
12
|
+
_height?: number;
|
|
13
|
+
_borderRadius?: number;
|
|
11
14
|
_visible?: boolean;
|
|
15
|
+
_shape?: NodeShape;
|
|
12
16
|
name?: string;
|
|
13
|
-
data?: NodeData;
|
|
14
17
|
drag?: boolean;
|
|
18
|
+
data?: NodeData;
|
|
15
19
|
}
|
|
16
|
-
type
|
|
20
|
+
type NodeShape = "circle" | "square" | "text" | "icon";
|
|
21
|
+
type CachedNodeTextInterface = Record<string | number, string[] | undefined>;
|
|
17
22
|
|
|
18
23
|
interface LinkInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> extends SimulationLinkDatum<NodeInterface<NodeData>> {
|
|
19
24
|
data?: LinkData;
|
|
@@ -22,11 +27,11 @@ interface LinkInterface<NodeData extends Record<string, unknown>, LinkData exten
|
|
|
22
27
|
type ZoomEventInterface = D3ZoomEvent<HTMLCanvasElement, unknown>;
|
|
23
28
|
type DragEventInterface<NodeData extends Record<string, unknown>> = D3DragEvent<HTMLElement, unknown, NodeInterface<NodeData>>;
|
|
24
29
|
type ListenersInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
|
|
25
|
-
onContextMenu?: (event: MouseEvent, node
|
|
26
|
-
onClick?: (event: MouseEvent, node
|
|
27
|
-
onDoubleClick?: (event: MouseEvent, node
|
|
28
|
-
onWheelClick?: (event: MouseEvent, node
|
|
29
|
-
onMove?: (event: MouseEvent, node
|
|
30
|
+
onContextMenu?: (event: MouseEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
|
|
31
|
+
onClick?: (event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
|
|
32
|
+
onDoubleClick?: (event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
|
|
33
|
+
onWheelClick?: (event: MouseEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
|
|
34
|
+
onMove?: (event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
|
|
30
35
|
onZoom?: (event: ZoomEventInterface) => void;
|
|
31
36
|
onDragSubject?: (event: DragEventInterface<NodeData>, state: GraphState<NodeData, LinkData>) => NodeInterface<NodeData> | undefined;
|
|
32
37
|
onDraw?: (state: GraphState<NodeData, LinkData>, toggleHighlightStatus: (status: boolean) => void, clearHighlightState: () => void) => void;
|
|
@@ -38,22 +43,8 @@ type ListenersInterface<NodeData extends Record<string, unknown>, LinkData exten
|
|
|
38
43
|
};
|
|
39
44
|
|
|
40
45
|
type GraphSettingsInterface<NodeData extends Record<string, unknown>> = {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
highlightLinkFadingMin?: number;
|
|
44
|
-
highlightArrowFadingMin?: number;
|
|
45
|
-
highlightColorFadingMin?: number;
|
|
46
|
-
highlightTextFadingMin?: number;
|
|
47
|
-
highlightSizingAdditional?: number;
|
|
48
|
-
highlightTextSizingAdditional?: number;
|
|
49
|
-
highlightTextShiftXAdditional?: number;
|
|
50
|
-
highlightTextShiftYAdditional?: number;
|
|
51
|
-
highlightTextWeightAdditional?: number;
|
|
52
|
-
highlightTextWidthAdditional?: number;
|
|
53
|
-
highlightByHover?: boolean;
|
|
54
|
-
highlightDownStep?: number;
|
|
55
|
-
highlightUpStep?: number;
|
|
56
|
-
stickAfterDrag?: boolean;
|
|
46
|
+
highlightDownFrames?: number;
|
|
47
|
+
highlightUpFrames?: number;
|
|
57
48
|
zoomExtent?: [number, number];
|
|
58
49
|
translateExtent?: [[number?, number?], [number?, number?]];
|
|
59
50
|
translateExtentCoefficient?: number | [number, number];
|
|
@@ -63,16 +54,18 @@ type GraphSettingsInterface<NodeData extends Record<string, unknown>> = {
|
|
|
63
54
|
x?: number;
|
|
64
55
|
y?: number;
|
|
65
56
|
} | null;
|
|
66
|
-
dragPlaceCoefficient?: (node: NodeInterface<NodeData>, pxEvent: number, pyEvent: number
|
|
67
|
-
nodeRadiusInitial?: number;
|
|
68
|
-
nodeRadiusCoefficient?: number;
|
|
69
|
-
nodeRadiusFactor?: number;
|
|
70
|
-
nodeRadiusFlexible?: boolean;
|
|
57
|
+
dragPlaceCoefficient?: (node: NodeInterface<NodeData>, pxEvent: number, pyEvent: number) => number | undefined;
|
|
71
58
|
showDrawTime?: boolean;
|
|
72
59
|
showDrawTimeEveryTick?: boolean;
|
|
73
60
|
};
|
|
74
61
|
type ForceSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
|
|
75
|
-
|
|
62
|
+
forces?: boolean;
|
|
63
|
+
xForce?: boolean;
|
|
64
|
+
yForce?: boolean;
|
|
65
|
+
chargeForce?: boolean;
|
|
66
|
+
centerForce?: boolean;
|
|
67
|
+
collideForce?: boolean;
|
|
68
|
+
linkForce?: boolean;
|
|
76
69
|
collideOffMax?: {
|
|
77
70
|
nodes: number;
|
|
78
71
|
links: number;
|
|
@@ -92,14 +85,53 @@ type ForceSettingsInterface<NodeData extends Record<string, unknown>, LinkData e
|
|
|
92
85
|
y?: number;
|
|
93
86
|
};
|
|
94
87
|
centerStrength?: number;
|
|
95
|
-
|
|
88
|
+
xPosition?: NodeIterationPropsInterface<NodeData, LinkData> | number;
|
|
96
89
|
xStrength?: NodeIterationPropsInterface<NodeData, LinkData> | number;
|
|
97
|
-
|
|
90
|
+
yPosition?: NodeIterationPropsInterface<NodeData, LinkData> | number;
|
|
98
91
|
yStrength?: NodeIterationPropsInterface<NodeData, LinkData> | number;
|
|
99
92
|
};
|
|
100
93
|
type NodeSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
|
|
101
94
|
cache?: boolean;
|
|
102
95
|
idGetter?: NodeIterationPropsInterface<NodeData, LinkData, string | number>;
|
|
96
|
+
highlightByNodeOnlyRoot?: boolean;
|
|
97
|
+
highlightByNodeNodeFadingMin?: number;
|
|
98
|
+
highlightByNodeNodeColorFadingMin?: number;
|
|
99
|
+
highlightByNodeNodeSizingAdditional?: number;
|
|
100
|
+
highlightByNodeNodeSizingAdditionalCoefficient?: number;
|
|
101
|
+
highlightByNodeTextFadingMin?: number;
|
|
102
|
+
highlightByNodeTextSizingAdditional?: number;
|
|
103
|
+
highlightByNodeTextShiftXAdditional?: number;
|
|
104
|
+
highlightByNodeTextShiftYAdditional?: number;
|
|
105
|
+
highlightByNodeTextWeightAdditional?: number;
|
|
106
|
+
highlightByNodeTextWidthAdditional?: number;
|
|
107
|
+
highlightByLinkNodeFadingMin?: number;
|
|
108
|
+
highlightByLinkNodeColorFadingMin?: number;
|
|
109
|
+
highlightByLinkTextFadingMin?: number;
|
|
110
|
+
highlightByLinkNodeSizingAdditional?: number;
|
|
111
|
+
highlightByLinkNodeSizingAdditionalCoefficient?: number;
|
|
112
|
+
highlightByLinkTextSizingAdditional?: number;
|
|
113
|
+
highlightByLinkTextShiftXAdditional?: number;
|
|
114
|
+
highlightByLinkTextShiftYAdditional?: number;
|
|
115
|
+
highlightByLinkTextWeightAdditional?: number;
|
|
116
|
+
highlightByLinkTextWidthAdditional?: number;
|
|
117
|
+
highlightByHoverNode?: boolean;
|
|
118
|
+
highlightByNodeNodeFading?: boolean;
|
|
119
|
+
highlightByNodeNodeSizing?: boolean;
|
|
120
|
+
highlightByNodeTextFading?: boolean;
|
|
121
|
+
highlightByNodeTextSizing?: boolean;
|
|
122
|
+
highlightByNodeNodeColor?: boolean;
|
|
123
|
+
highlightByLinkNodeFading?: boolean;
|
|
124
|
+
highlightByLinkNodeSizing?: boolean;
|
|
125
|
+
highlightByLinkTextFading?: boolean;
|
|
126
|
+
highlightByLinkTextSizing?: boolean;
|
|
127
|
+
highlightByLinkNodeColor?: boolean;
|
|
128
|
+
nodeRadiusCoefficient?: number;
|
|
129
|
+
nodeRadiusFactor?: number;
|
|
130
|
+
nodeRadiusFlexible?: boolean;
|
|
131
|
+
nodeSizeFlexible?: boolean;
|
|
132
|
+
nodeSizeCoefficient?: number;
|
|
133
|
+
nodeSizeFactor?: number;
|
|
134
|
+
textNodeDebug?: boolean;
|
|
103
135
|
options?: NodeIterationPropsInterface<NodeData, LinkData, NodeOptionsInterface<NodeData, LinkData>> | NodeOptionsInterface<NodeData, LinkData>;
|
|
104
136
|
};
|
|
105
137
|
type NodeOptionsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
|
|
@@ -107,16 +139,17 @@ type NodeOptionsInterface<NodeData extends Record<string, unknown>, LinkData ext
|
|
|
107
139
|
textDraw?: ((node: NodeInterface<NodeData>, options: Required<NodeOptionsInterface<NodeData, LinkData>>, state: GraphState<NodeData, LinkData>) => void) | null;
|
|
108
140
|
nodeExtraDraw?: ((node: NodeInterface<NodeData>, options: Required<NodeOptionsInterface<NodeData, LinkData>>, state: GraphState<NodeData, LinkData>) => void) | null;
|
|
109
141
|
textExtraDraw?: ((node: NodeInterface<NodeData>, options: Required<NodeOptionsInterface<NodeData, LinkData>>, state: GraphState<NodeData, LinkData>) => void) | null;
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
highlightColor?: boolean;
|
|
142
|
+
shape?: NodeShape;
|
|
143
|
+
width?: number;
|
|
144
|
+
height?: number;
|
|
145
|
+
borderRadius?: number;
|
|
115
146
|
borderColor?: string;
|
|
116
147
|
borderWidth?: number;
|
|
117
148
|
radius?: number;
|
|
118
149
|
alpha?: number;
|
|
119
150
|
color?: string;
|
|
151
|
+
textNodeYPadding?: number;
|
|
152
|
+
textNodeXPadding?: number;
|
|
120
153
|
textVisible?: boolean;
|
|
121
154
|
text?: string | null;
|
|
122
155
|
textAlpha?: number;
|
|
@@ -134,7 +167,22 @@ type NodeOptionsInterface<NodeData extends Record<string, unknown>, LinkData ext
|
|
|
134
167
|
type NodeIterationPropsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Return = number> = (node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[], state?: GraphState<NodeData, LinkData>) => Return;
|
|
135
168
|
type LinkSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
|
|
136
169
|
particles?: boolean;
|
|
170
|
+
pretty?: boolean;
|
|
171
|
+
arrow?: boolean;
|
|
172
|
+
arrowByHighlight?: boolean;
|
|
137
173
|
cache?: boolean;
|
|
174
|
+
particleFlexSpeed?: boolean;
|
|
175
|
+
particleFlexSpeedCoefficient?: number;
|
|
176
|
+
highlightByNodeLinkFadingMin?: number;
|
|
177
|
+
highlightByNodeArrowFadingMin?: number;
|
|
178
|
+
highlightByLinkArrowFadingMin?: number;
|
|
179
|
+
highlightByLinkLinkFadingMin?: number;
|
|
180
|
+
highlightByHoverLink?: boolean;
|
|
181
|
+
highlightByNodeLinkFading?: boolean;
|
|
182
|
+
highlightByNodeArrowFading?: boolean;
|
|
183
|
+
highlightByLinkLinkFading?: boolean;
|
|
184
|
+
highlightByLinkArrowFading?: boolean;
|
|
185
|
+
hoverLinkThreshold?: number;
|
|
138
186
|
options?: LinkIterationPropsInterface<NodeData, LinkData, LinkOptionsInterface<NodeData, LinkData>> | LinkOptionsInterface<NodeData, LinkData>;
|
|
139
187
|
};
|
|
140
188
|
type LinkOptionsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
|
|
@@ -143,14 +191,13 @@ type LinkOptionsInterface<NodeData extends Record<string, unknown>, LinkData ext
|
|
|
143
191
|
alpha?: number;
|
|
144
192
|
color?: string;
|
|
145
193
|
width?: number;
|
|
146
|
-
highlightFading?: boolean;
|
|
147
|
-
pretty?: boolean;
|
|
148
|
-
arrow?: boolean;
|
|
149
194
|
arrowAlpha?: number;
|
|
150
195
|
arrowColor?: string;
|
|
151
196
|
arrowSize?: number;
|
|
152
|
-
|
|
153
|
-
|
|
197
|
+
arrowBorderColor?: string;
|
|
198
|
+
arrowBorderWidth?: number;
|
|
199
|
+
particleBorderColor?: string;
|
|
200
|
+
particleBorderWidth?: number;
|
|
154
201
|
particleAlpha?: number;
|
|
155
202
|
particleColor?: string;
|
|
156
203
|
particleRadius?: number;
|
|
@@ -180,6 +227,7 @@ type GraphState<NodeData extends Record<string, unknown>, LinkData extends Recor
|
|
|
180
227
|
simulationWorking: boolean;
|
|
181
228
|
isDragging: boolean;
|
|
182
229
|
highlightedNode: NodeInterface<NodeData> | null;
|
|
230
|
+
highlightedLink: LinkInterface<NodeData, LinkData> | null;
|
|
183
231
|
highlightedNeighbors: Set<string | number> | null;
|
|
184
232
|
highlightProgress: number;
|
|
185
233
|
highlightWorking: boolean;
|
|
@@ -200,47 +248,50 @@ type RGB = {
|
|
|
200
248
|
};
|
|
201
249
|
type GraphParticle = {
|
|
202
250
|
step: number;
|
|
203
|
-
|
|
251
|
+
index: number;
|
|
252
|
+
prev: GraphParticle | undefined;
|
|
253
|
+
next: GraphParticle | undefined;
|
|
204
254
|
x?: number;
|
|
205
255
|
y?: number;
|
|
206
|
-
sourceId: number;
|
|
207
|
-
targetId: number;
|
|
256
|
+
sourceId: string | number;
|
|
257
|
+
targetId: string | number;
|
|
208
258
|
};
|
|
209
259
|
|
|
210
260
|
declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> {
|
|
211
261
|
/** initial data */
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
262
|
+
protected nodes: NodeInterface<NodeData>[];
|
|
263
|
+
protected links: LinkInterface<NodeData, LinkData>[];
|
|
264
|
+
protected particles: Record<string, GraphParticle[]>;
|
|
265
|
+
protected width: number;
|
|
266
|
+
protected height: number;
|
|
267
|
+
protected root: HTMLElement;
|
|
268
|
+
protected container: HTMLDivElement | undefined | null;
|
|
269
|
+
protected area: HTMLCanvasElement | null | undefined;
|
|
220
270
|
/** settings */
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
271
|
+
protected graphSettings: Required<GraphSettingsInterface<NodeData>>;
|
|
272
|
+
protected forceSettings: Required<ForceSettingsInterface<NodeData, LinkData>>;
|
|
273
|
+
protected nodeSettings: Required<Omit<NodeSettingsInterface<NodeData, LinkData>, "options">> & Pick<NodeSettingsInterface<NodeData, LinkData>, "options">;
|
|
274
|
+
protected linkSettings: Required<Omit<LinkSettingsInterface<NodeData, LinkData>, "options">> & Pick<LinkSettingsInterface<NodeData, LinkData>, "options">;
|
|
275
|
+
protected listeners: ListenersInterface<NodeData, LinkData>;
|
|
226
276
|
/** service */
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
277
|
+
protected context: CanvasRenderingContext2D | null | undefined;
|
|
278
|
+
protected simulation: GraphCanvasSimulation<NodeData, LinkData> | undefined;
|
|
279
|
+
protected areaTransform: ZoomTransform;
|
|
280
|
+
protected areaRect: DOMRect | undefined;
|
|
281
|
+
protected draw: (this: GraphCanvas<NodeData, LinkData>) => void;
|
|
282
|
+
protected eventAbortController: AbortController;
|
|
283
|
+
protected cachedNodeText: CachedNodeTextInterface;
|
|
284
|
+
protected linkOptionsCache: Record<string, Required<LinkOptionsInterface<NodeData, LinkData>>>;
|
|
285
|
+
protected nodeOptionsCache: Record<string, Required<NodeOptionsInterface<NodeData, LinkData>>>;
|
|
286
|
+
protected isDragging: boolean;
|
|
287
|
+
protected highlightedNode: NodeInterface<NodeData> | null;
|
|
288
|
+
protected highlightedLink: LinkInterface<NodeData, LinkData> | null;
|
|
289
|
+
protected highlightedNeighbors: Set<string | number> | null;
|
|
290
|
+
protected highlightProgress: number;
|
|
291
|
+
protected highlightWorking: boolean;
|
|
292
|
+
protected highlightDrawing: boolean;
|
|
293
|
+
protected get simulationWorking(): boolean;
|
|
294
|
+
protected get state(): GraphState<NodeData, LinkData>;
|
|
244
295
|
constructor({ links, nodes, root, forceSettings, linkSettings, listeners, nodeSettings, graphSettings, }: GraphCanvasInterface<NodeData, LinkData>);
|
|
245
296
|
get dpi(): number;
|
|
246
297
|
getData(): Pick<GraphCanvasInterface<NodeData, LinkData>, "nodes" | "links">;
|
|
@@ -254,22 +305,13 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
|
|
|
254
305
|
stop(): void;
|
|
255
306
|
create(): void;
|
|
256
307
|
destroy(): void;
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
private initSimulation;
|
|
265
|
-
private initSimulationForces;
|
|
266
|
-
private initCollideForce;
|
|
267
|
-
private initArea;
|
|
268
|
-
private initDraw;
|
|
269
|
-
private initResize;
|
|
270
|
-
private initPointer;
|
|
271
|
-
private initDnd;
|
|
272
|
-
private initZoom;
|
|
308
|
+
protected clearHTMLElements(): void;
|
|
309
|
+
protected updateSimulation(): void;
|
|
310
|
+
protected clearState(): void;
|
|
311
|
+
protected clearDataDependencies(): void;
|
|
312
|
+
protected updateData(alpha?: number): void;
|
|
313
|
+
protected updateSize(): void;
|
|
314
|
+
protected init(): void;
|
|
273
315
|
}
|
|
274
316
|
|
|
275
317
|
declare function linkOptionsGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(_: LinkInterface<NodeData, LinkData>, __: number, ___: LinkInterface<NodeData, LinkData>[], state?: GraphState<NodeData, LinkData>): Required<LinkOptionsInterface<NodeData, LinkData>>;
|
|
@@ -287,32 +329,23 @@ declare function nodeRadiusGetter({ radiusFlexible, radiusInitial, linkCount, ra
|
|
|
287
329
|
declare function linkIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[]>(link: LinkInterface<NodeData, LinkData>, i: number, links: LinkInterface<NodeData, LinkData>[], state: GraphState<NodeData, LinkData>, option: LinkIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: undefined): Result;
|
|
288
330
|
declare function linkIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[]>(link: LinkInterface<NodeData, LinkData>, i: number, links: LinkInterface<NodeData, LinkData>[], state: GraphState<NodeData, LinkData>, option: LinkIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: LinkIterationPropsInterface<NodeData, LinkData, Required<Result>> | Required<Result>): Required<Result>;
|
|
289
331
|
|
|
332
|
+
type NodeByPointerGetterOptions<NodeData extends Record<string, unknown>> = {
|
|
333
|
+
mouseEvent: MouseEvent | TouchEvent;
|
|
334
|
+
areaRect: DOMRect | undefined;
|
|
335
|
+
areaTransform: ZoomTransform;
|
|
336
|
+
nodes: NodeInterface<NodeData>[];
|
|
337
|
+
};
|
|
338
|
+
declare function nodeByPointerGetter<NodeData extends Record<string, unknown>>({ areaRect, areaTransform, mouseEvent, nodes, }: NodeByPointerGetterOptions<NodeData>): NodeInterface<NodeData> | undefined;
|
|
339
|
+
|
|
290
340
|
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: GraphState<NodeData, LinkData>, option: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: undefined): Result;
|
|
291
341
|
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: GraphState<NodeData, LinkData>, option: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result): Required<Result>;
|
|
292
342
|
|
|
293
|
-
|
|
294
|
-
id: string | number;
|
|
295
|
-
x: number;
|
|
296
|
-
y: number;
|
|
297
|
-
text: string;
|
|
298
|
-
textSize: number;
|
|
299
|
-
textStyle: TextStyleEnum;
|
|
300
|
-
textWeight: number;
|
|
301
|
-
textFont: string;
|
|
302
|
-
textColor: string;
|
|
303
|
-
textGap: number;
|
|
304
|
-
textAlign: CanvasTextAlign;
|
|
305
|
-
context: CanvasRenderingContext2D;
|
|
306
|
-
cachedNodeText: CachedNodeTextInterface;
|
|
307
|
-
maxWidth?: number;
|
|
308
|
-
};
|
|
309
|
-
declare function drawText({ context, id, textAlign, textColor, textFont, textStyle, textGap, textWeight, textSize, text, x, y, cachedNodeText, maxWidth, }: DrawTextOptions): void;
|
|
310
|
-
|
|
311
|
-
declare function calculateLinkPositionByRadius<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(link: LinkInterface<NodeData, LinkData>, arrowSize?: number): {
|
|
343
|
+
declare function calculateLinkPositionByNode<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(link: LinkInterface<NodeData, LinkData>, arrowSize?: number): {
|
|
312
344
|
x1: number;
|
|
313
345
|
y1: number;
|
|
314
346
|
x2: number;
|
|
315
347
|
y2: number;
|
|
348
|
+
distance: number;
|
|
316
349
|
} | null;
|
|
317
350
|
|
|
318
351
|
declare function animationByProgress(initial: number, additional: number, progress: number): number;
|
|
@@ -324,9 +357,42 @@ type GetParticlePositionOptions = {
|
|
|
324
357
|
xEnd: number;
|
|
325
358
|
yEnd: number;
|
|
326
359
|
totalSteps: number;
|
|
360
|
+
totalCount: number;
|
|
361
|
+
distance: number;
|
|
327
362
|
};
|
|
328
363
|
declare function getParticlePosition(opts: GetParticlePositionOptions): void;
|
|
329
364
|
|
|
365
|
+
type LinkByPointerGetterOptions<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
|
|
366
|
+
mouseEvent: MouseEvent | TouchEvent;
|
|
367
|
+
areaRect: DOMRect | undefined;
|
|
368
|
+
areaTransform: ZoomTransform;
|
|
369
|
+
links: LinkInterface<NodeData, LinkData>[];
|
|
370
|
+
linkSettings: Required<Omit<LinkSettingsInterface<NodeData, LinkData>, "options">> & Pick<LinkSettingsInterface<NodeData, LinkData>, "options">;
|
|
371
|
+
};
|
|
372
|
+
declare function linkByPointerGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>({ areaRect, areaTransform, mouseEvent, links, linkSettings, }: LinkByPointerGetterOptions<NodeData, LinkData>): LinkInterface<NodeData, LinkData> | undefined;
|
|
373
|
+
|
|
374
|
+
declare function getDrawLink<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(state: GraphState<NodeData, LinkData>): (this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>, index: number) => void;
|
|
375
|
+
|
|
376
|
+
declare function getDrawNode<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(nodeRenders: (() => void)[], textRenders: (() => void)[], state: GraphState<NodeData, LinkData>): (this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, index: number) => void;
|
|
377
|
+
|
|
378
|
+
type DrawTextOptions = {
|
|
379
|
+
id: string | number;
|
|
380
|
+
x: number;
|
|
381
|
+
y: number;
|
|
382
|
+
text: string;
|
|
383
|
+
textSize: number;
|
|
384
|
+
textStyle: TextStyleEnum;
|
|
385
|
+
textWeight: number;
|
|
386
|
+
textFont: string;
|
|
387
|
+
textColor: string;
|
|
388
|
+
textGap: number;
|
|
389
|
+
textAlign: CanvasTextAlign;
|
|
390
|
+
context: CanvasRenderingContext2D;
|
|
391
|
+
cachedNodeText: CachedNodeTextInterface;
|
|
392
|
+
maxWidth?: number;
|
|
393
|
+
};
|
|
394
|
+
declare function drawText({ context, id, textAlign, textColor, textFont, textStyle, textGap, textWeight, textSize, text, x, y, cachedNodeText, maxWidth, }: DrawTextOptions): void;
|
|
395
|
+
|
|
330
396
|
declare function colorToRgb(color: string): string | null;
|
|
331
397
|
|
|
332
398
|
declare function extractRgb(color: string | null): {
|
|
@@ -360,11 +426,23 @@ type GraphSettingsInputColorBox<I extends string> = {
|
|
|
360
426
|
initialValue: string;
|
|
361
427
|
label: string;
|
|
362
428
|
};
|
|
363
|
-
type
|
|
429
|
+
type GraphSettingsInputSelect<I extends string> = {
|
|
430
|
+
type: "select";
|
|
431
|
+
id: I;
|
|
432
|
+
initialValue: string;
|
|
433
|
+
label: string;
|
|
434
|
+
options: {
|
|
435
|
+
label: string;
|
|
436
|
+
value: string;
|
|
437
|
+
}[];
|
|
438
|
+
};
|
|
439
|
+
type GraphSettingsInputInterface<I extends string> = GraphSettingsInputRange<I> | GraphSettingsInputCheckBox<I> | GraphSettingsInputColorBox<I> | GraphSettingsInputSelect<I>;
|
|
364
440
|
|
|
365
441
|
declare function getForceControls<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(keys?: (keyof ForceSettingsInterface<NodeData, LinkData>)[]): GraphSettingsInputInterface<keyof ForceSettingsInterface<NodeData, LinkData>>[];
|
|
366
442
|
declare function getGraphControls<NodeData extends Record<string, unknown>>(keys?: (keyof GraphSettingsInterface<NodeData>)[]): GraphSettingsInputInterface<keyof GraphSettingsInterface<NodeData>>[];
|
|
367
|
-
declare function
|
|
368
|
-
declare function
|
|
443
|
+
declare function getNodeSettingControls<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(keys?: keyof Omit<Required<NodeSettingsInterface<NodeData, LinkData>>, "options" | "idGetter">): GraphSettingsInputInterface<"cache" | "highlightByNodeOnlyRoot" | "highlightByNodeNodeFadingMin" | "highlightByNodeNodeColorFadingMin" | "highlightByNodeNodeSizingAdditional" | "highlightByNodeNodeSizingAdditionalCoefficient" | "highlightByNodeTextFadingMin" | "highlightByNodeTextSizingAdditional" | "highlightByNodeTextShiftXAdditional" | "highlightByNodeTextShiftYAdditional" | "highlightByNodeTextWeightAdditional" | "highlightByNodeTextWidthAdditional" | "highlightByLinkNodeFadingMin" | "highlightByLinkNodeColorFadingMin" | "highlightByLinkTextFadingMin" | "highlightByLinkNodeSizingAdditional" | "highlightByLinkNodeSizingAdditionalCoefficient" | "highlightByLinkTextSizingAdditional" | "highlightByLinkTextShiftXAdditional" | "highlightByLinkTextShiftYAdditional" | "highlightByLinkTextWeightAdditional" | "highlightByLinkTextWidthAdditional" | "highlightByHoverNode" | "highlightByNodeNodeFading" | "highlightByNodeNodeSizing" | "highlightByNodeTextFading" | "highlightByNodeTextSizing" | "highlightByNodeNodeColor" | "highlightByLinkNodeFading" | "highlightByLinkNodeSizing" | "highlightByLinkTextFading" | "highlightByLinkTextSizing" | "highlightByLinkNodeColor" | "nodeRadiusCoefficient" | "nodeRadiusFactor" | "nodeRadiusFlexible" | "nodeSizeFlexible" | "nodeSizeCoefficient" | "nodeSizeFactor" | "textNodeDebug">[];
|
|
444
|
+
declare function getNodeOptionsControls<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(keys?: (keyof NodeOptionsInterface<NodeData, LinkData>)[]): GraphSettingsInputInterface<keyof NodeOptionsInterface<NodeData, LinkData>>[];
|
|
445
|
+
declare function getLinkSettingsControls<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(keys?: keyof Omit<Required<LinkSettingsInterface<NodeData, LinkData>>, "options">): GraphSettingsInputInterface<"cache" | "particles" | "pretty" | "arrow" | "arrowByHighlight" | "particleFlexSpeed" | "particleFlexSpeedCoefficient" | "highlightByNodeLinkFadingMin" | "highlightByNodeArrowFadingMin" | "highlightByLinkArrowFadingMin" | "highlightByLinkLinkFadingMin" | "highlightByHoverLink" | "highlightByNodeLinkFading" | "highlightByNodeArrowFading" | "highlightByLinkLinkFading" | "highlightByLinkArrowFading" | "hoverLinkThreshold">[];
|
|
446
|
+
declare function getLinkOptionsControls<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(keys?: (keyof LinkOptionsInterface<NodeData, LinkData>)[]): GraphSettingsInputInterface<keyof LinkOptionsInterface<NodeData, LinkData>>[];
|
|
369
447
|
|
|
370
|
-
export { type CachedNodeTextInterface, type DragEventInterface, type ForceSettingsInterface, GraphCanvas, type GraphCanvasInterface, type GraphCanvasSimulation, type GraphParticle, type GraphSettingsInterface, type GraphState, type LinkInterface, type LinkIterationPropsInterface, type LinkOptionsInterface, type LinkSettingsInterface, type ListenersInterface, type NodeInterface, type NodeIterationPropsInterface, type NodeOptionsInterface, type NodeSettingsInterface, type RGB, type TextStyleEnum, type ZoomEventInterface, animationByProgress,
|
|
448
|
+
export { type CachedNodeTextInterface, type DragEventInterface, type ForceSettingsInterface, GraphCanvas, type GraphCanvasInterface, type GraphCanvasSimulation, type GraphParticle, type GraphSettingsInterface, type GraphState, type LinkInterface, type LinkIterationPropsInterface, type LinkOptionsInterface, type LinkSettingsInterface, type ListenersInterface, type NodeInterface, type NodeIterationPropsInterface, type NodeOptionsInterface, type NodeSettingsInterface, type NodeShape, type RGB, type TextStyleEnum, type ZoomEventInterface, animationByProgress, calculateLinkPositionByNode, colorToRgb, drawText, extractRgb, fadeRgb, getDrawLink, getDrawNode, getForceControls, getGraphControls, getLinkOptionsControls, getLinkSettingsControls, getNodeOptionsControls, getNodeSettingControls, getParticlePosition, linkByPointerGetter, linkIterationExtractor, linkOptionsGetter, nodeByPointerGetter, nodeIterationExtractor, nodeOptionsGetter, nodeRadiusGetter, rgbAnimationByProgress };
|
package/package.json
CHANGED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
function calculateLinkPositionByRadius(link, arrowSize = 0) {
|
|
2
|
-
const source = link.source;
|
|
3
|
-
const target = link.target;
|
|
4
|
-
if (typeof source != "object" || typeof target != "object")
|
|
5
|
-
return null;
|
|
6
|
-
const dx = (target.x ?? 0) - (source.x ?? 0);
|
|
7
|
-
const dy = (target.y ?? 0) - (source.y ?? 0);
|
|
8
|
-
const dr = Math.sqrt(dx * dx + dy * dy);
|
|
9
|
-
const sourceRadius = source._radius ?? 0;
|
|
10
|
-
const targetRadius = (target._radius ?? 0) + (arrowSize > 0 ? arrowSize * 0.85 : 0);
|
|
11
|
-
return {
|
|
12
|
-
x1: (source.x ?? 0) + (dx * sourceRadius) / dr,
|
|
13
|
-
y1: (source.y ?? 0) + (dy * sourceRadius) / dr,
|
|
14
|
-
x2: (target.x ?? 0) - (dx * targetRadius) / dr,
|
|
15
|
-
y2: (target.y ?? 0) - (dy * targetRadius) / dr,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export { calculateLinkPositionByRadius };
|
|
20
|
-
//# sourceMappingURL=calculate-link-position-by-radius.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"calculate-link-position-by-radius.js","sources":["../../../../../../src/module/GraphCanvas/lib/utils/calculate-link-position-by-radius.ts"],"sourcesContent":["import type { LinkInterface } from \"@/types\";\n\nexport function calculateLinkPositionByRadius<\n NodeData extends Record<string, unknown>,\n LinkData extends Record<string, unknown>,\n>(link: LinkInterface<NodeData, LinkData>, arrowSize = 0) {\n const source = link.source;\n const target = link.target;\n\n if (typeof source != \"object\" || typeof target != \"object\") return null;\n\n const dx = (target.x ?? 0) - (source.x ?? 0);\n const dy = (target.y ?? 0) - (source.y ?? 0);\n const dr = Math.sqrt(dx * dx + dy * dy);\n const sourceRadius = source._radius ?? 0;\n const targetRadius = (target._radius ?? 0) + (arrowSize > 0 ? arrowSize * 0.85 : 0);\n\n return {\n x1: (source.x ?? 0) + (dx * sourceRadius) / dr,\n y1: (source.y ?? 0) + (dy * sourceRadius) / dr,\n x2: (target.x ?? 0) - (dx * targetRadius) / dr,\n y2: (target.y ?? 0) - (dy * targetRadius) / dr,\n };\n}\n"],"names":[],"mappings":"SAEgB,6BAA6B,CAG3C,IAAuC,EAAE,SAAS,GAAG,CAAC,EAAA;AACtD,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;IAE1B,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,QAAQ;AAAE,QAAA,OAAO,IAAI;AAEvE,IAAA,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAA,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACvC,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC;IACxC,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC;IAEnF,OAAO;AACL,QAAA,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,YAAY,IAAI,EAAE;AAC9C,QAAA,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,YAAY,IAAI,EAAE;AAC9C,QAAA,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,YAAY,IAAI,EAAE;AAC9C,QAAA,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,YAAY,IAAI,EAAE;KAC/C;AACH;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"draw-text.js","sources":["../../../../../../src/module/GraphCanvas/lib/utils/draw-text.ts"],"sourcesContent":["import type { CachedNodeTextInterface } from \"@/types\";\nimport type { TextStyleEnum } from \"../../types\";\n\nexport type DrawTextOptions = {\n id: string | number;\n x: number;\n y: number;\n text: string;\n textSize: number;\n textStyle: TextStyleEnum;\n textWeight: number;\n textFont: string;\n textColor: string;\n textGap: number;\n textAlign: CanvasTextAlign;\n context: CanvasRenderingContext2D;\n cachedNodeText: CachedNodeTextInterface;\n maxWidth?: number;\n};\n\nconst SPACE = \" \";\n\nexport function drawText({\n context,\n id,\n textAlign,\n textColor,\n textFont,\n textStyle,\n textGap,\n textWeight,\n textSize,\n text,\n x,\n y,\n cachedNodeText,\n maxWidth,\n}: DrawTextOptions) {\n context.font = `${textStyle} normal ${textWeight} ${textSize}px ${textFont}`;\n context.fillStyle = textColor;\n context.textAlign = textAlign;\n\n if (cachedNodeText[id] != undefined) {\n cachedNodeText[id].forEach((line, index) => {\n context.fillText(line, x, y + index * textSize + index * textGap);\n });\n\n return;\n }\n\n if (maxWidth == undefined || context.measureText(text).width <= maxWidth) {\n cachedNodeText[id] = [text];\n context.fillText(text, x, y);\n\n return;\n }\n\n const spaceWidth = context.measureText(\" \").width;\n const lines: string[] = [];\n let lineWidth = 0;\n let line = \"\";\n\n for (const word of text.split(\" \")) {\n const size = context.measureText(word).width;\n lineWidth += size;\n\n if (line === \"\") {\n line = word;\n\n continue;\n }\n if (lineWidth > maxWidth) {\n lineWidth = 0;\n lines.push(line);\n line = word;\n } else {\n lineWidth += spaceWidth;\n line += `${SPACE}${word}`;\n }\n }\n\n if (line !== \"\") lines.push(line);\n\n cachedNodeText[id] = lines;\n lines.forEach((line, index) => {\n context.fillText(line, x, y + index * textSize + index * textGap);\n });\n}\n"],"names":[],"mappings":"AAoBA,MAAM,KAAK,GAAG,GAAG;AAED,SAAA,QAAQ,CAAC,EACvB,OAAO,EACP,EAAE,EACF,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,CAAC,EACD,CAAC,EACD,cAAc,EACd,QAAQ,GACQ,EAAA;AAChB,IAAA,OAAO,CAAC,IAAI,GAAG,CAAA,EAAG,SAAS,CAAA,QAAA,EAAW,UAAU,CAAA,CAAA,EAAI,QAAQ,CAAA,GAAA,EAAM,QAAQ,CAAA,CAAE;AAC5E,IAAA,OAAO,CAAC,SAAS,GAAG,SAAS;AAC7B,IAAA,OAAO,CAAC,SAAS,GAAG,SAAS;AAE7B,IAAA,IAAI,cAAc,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE;QACnC,cAAc,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AACzC,YAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;AACnE,SAAC,CAAC;QAEF;;AAGF,IAAA,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,QAAQ,EAAE;AACxE,QAAA,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAE5B;;IAGF,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK;IACjD,MAAM,KAAK,GAAa,EAAE;IAC1B,IAAI,SAAS,GAAG,CAAC;IACjB,IAAI,IAAI,GAAG,EAAE;IAEb,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK;QAC5C,SAAS,IAAI,IAAI;AAEjB,QAAA,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,IAAI,GAAG,IAAI;YAEX;;AAEF,QAAA,IAAI,SAAS,GAAG,QAAQ,EAAE;YACxB,SAAS,GAAG,CAAC;AACb,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAChB,IAAI,GAAG,IAAI;;aACN;YACL,SAAS,IAAI,UAAU;AACvB,YAAA,IAAI,IAAI,CAAG,EAAA,KAAK,CAAG,EAAA,IAAI,EAAE;;;IAI7B,IAAI,IAAI,KAAK,EAAE;AAAE,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAEjC,IAAA,cAAc,CAAC,EAAE,CAAC,GAAG,KAAK;IAC1B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC5B,QAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;AACnE,KAAC,CAAC;AACJ;;;;"}
|