@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.
Files changed (55) hide show
  1. package/lib/cjs/index.cjs +2819 -1574
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/esm/index.js +14 -4
  4. package/lib/esm/index.js.map +1 -1
  5. package/lib/esm/lib/draw-time.js +5 -1
  6. package/lib/esm/lib/draw-time.js.map +1 -1
  7. package/lib/esm/lib/get-controls-info.js +525 -151
  8. package/lib/esm/lib/get-controls-info.js.map +1 -1
  9. package/lib/esm/module/GraphCanvas/GraphCanvas.js +42 -746
  10. package/lib/esm/module/GraphCanvas/GraphCanvas.js.map +1 -1
  11. package/lib/esm/module/GraphCanvas/constants/settings.js +83 -39
  12. package/lib/esm/module/GraphCanvas/constants/settings.js.map +1 -1
  13. package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js +10 -1
  14. package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js.map +1 -1
  15. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-node.js +270 -0
  16. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-node.js.map +1 -0
  17. package/lib/esm/module/GraphCanvas/lib/utils/drag-place-coefficient-getter.js +2 -2
  18. package/lib/esm/module/GraphCanvas/lib/utils/drag-place-coefficient-getter.js.map +1 -1
  19. package/lib/esm/module/GraphCanvas/lib/utils/get-particle-position.js +19 -4
  20. package/lib/esm/module/GraphCanvas/lib/utils/get-particle-position.js.map +1 -1
  21. package/lib/esm/module/GraphCanvas/lib/utils/is-node-visible.js +29 -4
  22. package/lib/esm/module/GraphCanvas/lib/utils/is-node-visible.js.map +1 -1
  23. package/lib/esm/module/GraphCanvas/lib/utils/is-overlaps-node.js +53 -4
  24. package/lib/esm/module/GraphCanvas/lib/utils/is-overlaps-node.js.map +1 -1
  25. package/lib/esm/module/GraphCanvas/lib/utils/link-by-pointer-getter.js +55 -0
  26. package/lib/esm/module/GraphCanvas/lib/utils/link-by-pointer-getter.js.map +1 -0
  27. package/lib/esm/module/GraphCanvas/lib/utils/node-by-pointer-getter.js +3 -13
  28. package/lib/esm/module/GraphCanvas/lib/utils/node-by-pointer-getter.js.map +1 -1
  29. package/lib/esm/module/GraphCanvas/lib/utils/pointer-getter.js +8 -2
  30. package/lib/esm/module/GraphCanvas/lib/utils/pointer-getter.js.map +1 -1
  31. package/lib/esm/module/GraphCanvas/slices/draw-links.js +207 -0
  32. package/lib/esm/module/GraphCanvas/slices/draw-links.js.map +1 -0
  33. package/lib/esm/module/GraphCanvas/slices/draw-nodes.js +342 -0
  34. package/lib/esm/module/GraphCanvas/slices/draw-nodes.js.map +1 -0
  35. package/lib/esm/module/GraphCanvas/{lib/utils → slices}/draw-text.js +23 -6
  36. package/lib/esm/module/GraphCanvas/slices/draw-text.js.map +1 -0
  37. package/lib/esm/module/GraphCanvas/slices/init-area.js +31 -0
  38. package/lib/esm/module/GraphCanvas/slices/init-area.js.map +1 -0
  39. package/lib/esm/module/GraphCanvas/slices/init-dnd.js +62 -0
  40. package/lib/esm/module/GraphCanvas/slices/init-dnd.js.map +1 -0
  41. package/lib/esm/module/GraphCanvas/slices/init-draw.js +84 -0
  42. package/lib/esm/module/GraphCanvas/slices/init-draw.js.map +1 -0
  43. package/lib/esm/module/GraphCanvas/slices/init-pointer.js +211 -0
  44. package/lib/esm/module/GraphCanvas/slices/init-pointer.js.map +1 -0
  45. package/lib/esm/module/GraphCanvas/slices/init-resize.js +28 -0
  46. package/lib/esm/module/GraphCanvas/slices/init-resize.js.map +1 -0
  47. package/lib/esm/module/GraphCanvas/slices/init-simulation.js +172 -0
  48. package/lib/esm/module/GraphCanvas/slices/init-simulation.js.map +1 -0
  49. package/lib/esm/module/GraphCanvas/slices/init-zoom.js +36 -0
  50. package/lib/esm/module/GraphCanvas/slices/init-zoom.js.map +1 -0
  51. package/lib/index.d.ts +192 -114
  52. package/package.json +1 -1
  53. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-radius.js +0 -20
  54. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-radius.js.map +0 -1
  55. package/lib/esm/module/GraphCanvas/lib/utils/draw-text.js.map +0 -1
@@ -1,7 +1,49 @@
1
- import { FORCE_SETTINGS, GRAPH_SETTINGS, LINK_OPTIONS, NODE_OPTIONS } from '../module/GraphCanvas/constants/settings.js';
1
+ import { FORCE_SETTINGS, GRAPH_SETTINGS, LINK_OPTIONS, NODE_OPTIONS, LINK_SETTINGS, NODE_SETTINGS } from '../module/GraphCanvas/constants/settings.js';
2
2
 
3
3
  function getForceControls(keys) {
4
4
  const FORCE_CONTROLS = [
5
+ {
6
+ id: "forces",
7
+ initialValue: FORCE_SETTINGS.forces,
8
+ label: "Физика",
9
+ type: "checkbox",
10
+ },
11
+ {
12
+ id: "collideForce",
13
+ type: "checkbox",
14
+ label: "Сила отталкивания",
15
+ initialValue: FORCE_SETTINGS.collideForce,
16
+ },
17
+ {
18
+ id: "centerForce",
19
+ type: "checkbox",
20
+ label: "Сила центрирования",
21
+ initialValue: FORCE_SETTINGS.centerForce,
22
+ },
23
+ {
24
+ id: "chargeForce",
25
+ type: "checkbox",
26
+ label: "Сила дистанции",
27
+ initialValue: FORCE_SETTINGS.chargeForce,
28
+ },
29
+ {
30
+ id: "linkForce",
31
+ type: "checkbox",
32
+ label: "Сила связей",
33
+ initialValue: FORCE_SETTINGS.linkForce,
34
+ },
35
+ {
36
+ id: "xForce",
37
+ type: "checkbox",
38
+ label: "Сила X",
39
+ initialValue: FORCE_SETTINGS.xForce,
40
+ },
41
+ {
42
+ id: "yForce",
43
+ type: "checkbox",
44
+ label: "Сила Y",
45
+ initialValue: FORCE_SETTINGS.yForce,
46
+ },
5
47
  {
6
48
  id: "centerStrength",
7
49
  initialValue: FORCE_SETTINGS.centerStrength,
@@ -41,7 +83,7 @@ function getForceControls(keys) {
41
83
  {
42
84
  id: "chargeStrength",
43
85
  initialValue: FORCE_SETTINGS.chargeStrength ,
44
- label: "Гравитация",
86
+ label: "Дистанция",
45
87
  max: 0,
46
88
  min: -300,
47
89
  step: 0.1,
@@ -49,21 +91,21 @@ function getForceControls(keys) {
49
91
  },
50
92
  {
51
93
  type: "range",
52
- id: "xForce",
94
+ id: "xPosition",
53
95
  min: 0,
54
- max: 1,
55
- step: 0.01,
56
- label: "Граница X",
57
- initialValue: FORCE_SETTINGS.xForce ,
96
+ max: 2000,
97
+ step: 1,
98
+ label: "Координата притяжения X",
99
+ initialValue: FORCE_SETTINGS.xPosition ,
58
100
  },
59
101
  {
60
102
  type: "range",
61
- id: "yForce",
103
+ id: "yPosition",
62
104
  min: 0,
63
- max: 1,
64
- step: 0.01,
65
- label: "Граница Y",
66
- initialValue: FORCE_SETTINGS.yForce ,
105
+ max: 2000,
106
+ step: 1,
107
+ label: "Координата притяжения Y",
108
+ initialValue: FORCE_SETTINGS.yPosition ,
67
109
  },
68
110
  {
69
111
  type: "range",
@@ -101,198 +143,364 @@ function getForceControls(keys) {
101
143
  label: "Расстояние связей",
102
144
  initialValue: FORCE_SETTINGS.linkDistance ,
103
145
  },
104
- {
105
- id: "collideOn",
106
- type: "checkbox",
107
- initialValue: FORCE_SETTINGS.collideOn,
108
- label: "Отталкивание",
109
- },
110
146
  ];
111
147
  return keys ? FORCE_CONTROLS.filter((control) => keys.includes(control.id)) : FORCE_CONTROLS;
112
148
  }
113
149
  function getGraphControls(keys) {
114
150
  const GRAPH_CONTROLS = [
115
151
  {
116
- id: "highlightSizingAdditional",
117
- initialValue: GRAPH_SETTINGS.highlightSizingAdditional,
152
+ id: "highlightDownFrames",
153
+ initialValue: GRAPH_SETTINGS.highlightDownFrames,
154
+ max: 60,
155
+ min: 1,
156
+ step: 1,
157
+ type: "range",
158
+ label: "Скорость отмены анимации в кадрах",
159
+ },
160
+ {
161
+ id: "highlightUpFrames",
162
+ initialValue: GRAPH_SETTINGS.highlightUpFrames,
163
+ max: 60,
164
+ min: 1,
165
+ step: 1,
166
+ type: "range",
167
+ label: "Скорость применения анимации в кадрах",
168
+ },
169
+ ];
170
+ return keys ? GRAPH_CONTROLS.filter((control) => keys.includes(control.id)) : GRAPH_CONTROLS;
171
+ }
172
+ function getNodeSettingControls(keys) {
173
+ const NODE_SETTINGS_CONTROLS = [
174
+ {
175
+ id: "cache",
176
+ type: "checkbox",
177
+ initialValue: NODE_SETTINGS.cache,
178
+ label: "Кеширование вычисляемых настроек",
179
+ },
180
+ {
181
+ id: "highlightByNodeOnlyRoot",
182
+ type: "checkbox",
183
+ initialValue: NODE_SETTINGS.highlightByNodeOnlyRoot,
184
+ label: "Дополнительная анимация только главное цели при анимации ноды",
185
+ },
186
+ {
187
+ id: "highlightByHoverNode",
188
+ type: "checkbox",
189
+ initialValue: NODE_SETTINGS.highlightByHoverNode,
190
+ label: "Анимации при наведении на ноду",
191
+ },
192
+ {
193
+ id: "nodeRadiusFlexible",
194
+ type: "checkbox",
195
+ initialValue: NODE_SETTINGS.nodeRadiusFlexible,
196
+ label: "Гибкий радиус ноды",
197
+ },
198
+ {
199
+ id: "nodeSizeFlexible",
200
+ type: "checkbox",
201
+ initialValue: NODE_SETTINGS.nodeSizeFlexible,
202
+ label: "Гибкий размер ноды",
203
+ },
204
+ {
205
+ id: "textNodeDebug",
206
+ type: "checkbox",
207
+ initialValue: NODE_SETTINGS.textNodeDebug,
208
+ label: "Отладка текстовой ноды",
209
+ },
210
+ {
211
+ id: "highlightByNodeNodeFading",
212
+ type: "checkbox",
213
+ initialValue: NODE_SETTINGS.highlightByNodeNodeFading,
214
+ label: "Затухание при анимации ноды",
215
+ },
216
+ {
217
+ id: "highlightByNodeNodeColor",
218
+ type: "checkbox",
219
+ initialValue: NODE_SETTINGS.highlightByNodeNodeColor,
220
+ label: "Затухание цвета при анимации ноды",
221
+ },
222
+ {
223
+ id: "highlightByNodeNodeSizing",
224
+ type: "checkbox",
225
+ initialValue: NODE_SETTINGS.highlightByNodeNodeSizing,
226
+ label: "Изменение размера при анимации ноды",
227
+ },
228
+ {
229
+ id: "highlightByNodeTextFading",
230
+ type: "checkbox",
231
+ initialValue: NODE_SETTINGS.highlightByNodeTextFading,
232
+ label: "Затухание текста при анимации ноды",
233
+ },
234
+ {
235
+ id: "highlightByNodeTextSizing",
236
+ type: "checkbox",
237
+ initialValue: NODE_SETTINGS.highlightByNodeTextSizing,
238
+ label: "Изменение размера текста при анимации ноды",
239
+ },
240
+ {
241
+ id: "highlightByLinkNodeFading",
242
+ type: "checkbox",
243
+ initialValue: NODE_SETTINGS.highlightByLinkNodeFading,
244
+ label: "Затухание при анимации связи",
245
+ },
246
+ {
247
+ id: "highlightByLinkNodeColor",
248
+ type: "checkbox",
249
+ initialValue: NODE_SETTINGS.highlightByLinkNodeColor,
250
+ label: "Затухание цвета при анимации связи",
251
+ },
252
+ {
253
+ id: "highlightByLinkNodeSizing",
254
+ type: "checkbox",
255
+ initialValue: NODE_SETTINGS.highlightByLinkNodeSizing,
256
+ label: "Изменение размера при анимации связи",
257
+ },
258
+ {
259
+ id: "highlightByLinkTextFading",
260
+ type: "checkbox",
261
+ initialValue: NODE_SETTINGS.highlightByLinkTextFading,
262
+ label: "Затухание текста при анимации связи",
263
+ },
264
+ {
265
+ id: "highlightByLinkTextSizing",
266
+ type: "checkbox",
267
+ initialValue: NODE_SETTINGS.highlightByLinkTextSizing,
268
+ label: "Изменение размера текста при анимации связи",
269
+ },
270
+ {
271
+ id: "nodeRadiusCoefficient",
272
+ initialValue: NODE_SETTINGS.nodeRadiusCoefficient,
273
+ max: 100,
274
+ min: 0.1,
275
+ step: 0.1,
276
+ type: "range",
277
+ label: "Количество связей для увеличения радиуса",
278
+ },
279
+ {
280
+ id: "nodeRadiusFactor",
281
+ initialValue: NODE_SETTINGS.nodeRadiusFactor,
282
+ max: 50,
283
+ min: 0.1,
284
+ step: 0.1,
285
+ type: "range",
286
+ label: "Коэффициент увеличения радиуса",
287
+ },
288
+ {
289
+ id: "nodeSizeCoefficient",
290
+ initialValue: NODE_SETTINGS.nodeSizeCoefficient,
291
+ max: 50,
292
+ min: 0.1,
293
+ step: 0.1,
294
+ type: "range",
295
+ label: "Количество связей для увеличения размера",
296
+ },
297
+ {
298
+ id: "nodeSizeFactor",
299
+ initialValue: NODE_SETTINGS.nodeSizeFactor,
300
+ max: 20,
301
+ min: 0.01,
302
+ step: 0.01,
303
+ type: "range",
304
+ label: "Коэффициент увеличения размера",
305
+ },
306
+ {
307
+ id: "highlightByNodeNodeSizingAdditional",
308
+ initialValue: NODE_SETTINGS.highlightByNodeNodeSizingAdditional,
118
309
  max: 10,
119
310
  min: 0.1,
120
311
  step: 0.01,
121
312
  type: "range",
122
- label: "Дополнительный размер при анимации",
313
+ label: "Дополнительный размер при анимации ноды",
123
314
  },
124
315
  {
125
- id: "highlightColorFadingMin",
126
- initialValue: GRAPH_SETTINGS.highlightColorFadingMin,
316
+ id: "highlightByNodeNodeSizingAdditionalCoefficient",
317
+ initialValue: NODE_SETTINGS.highlightByNodeNodeSizingAdditionalCoefficient,
318
+ max: 10,
319
+ min: 0.01,
320
+ step: 0.01,
321
+ type: "range",
322
+ label: "Дополнительный размер квадрата при анимации ноды",
323
+ },
324
+ {
325
+ id: "highlightByNodeNodeColorFadingMin",
326
+ initialValue: NODE_SETTINGS.highlightByNodeNodeColorFadingMin,
127
327
  max: 1,
128
328
  min: 0.01,
129
329
  step: 0.01,
130
330
  type: "range",
131
- label: "Граница затухания цвета",
331
+ label: "Граница затухания цвета при анимации ноды",
132
332
  },
133
333
  {
134
- id: "highlightTextShiftXAdditional",
135
- initialValue: GRAPH_SETTINGS.highlightTextShiftXAdditional,
334
+ id: "highlightByNodeTextShiftXAdditional",
335
+ initialValue: NODE_SETTINGS.highlightByNodeTextShiftXAdditional,
136
336
  max: 50,
137
337
  min: 0,
138
338
  step: 0.1,
139
339
  type: "range",
140
- label: "Смещение текста по X при анимации",
340
+ label: "Смещение текста по X при анимации ноды",
141
341
  },
142
342
  {
143
- id: "highlightTextShiftYAdditional",
144
- initialValue: GRAPH_SETTINGS.highlightTextShiftYAdditional,
343
+ id: "highlightByNodeTextShiftYAdditional",
344
+ initialValue: NODE_SETTINGS.highlightByNodeTextShiftYAdditional,
145
345
  max: 50,
146
346
  min: 0,
147
347
  step: 0.1,
148
348
  type: "range",
149
- label: "Смещение текста по Y при анимации",
349
+ label: "Смещение текста по Y при анимации ноды",
150
350
  },
151
351
  {
152
- id: "highlightTextSizingAdditional",
153
- initialValue: GRAPH_SETTINGS.highlightTextSizingAdditional,
352
+ id: "highlightByNodeTextSizingAdditional",
353
+ initialValue: NODE_SETTINGS.highlightByNodeTextSizingAdditional,
154
354
  max: 10,
155
355
  min: 0.1,
156
356
  step: 0.1,
157
357
  type: "range",
158
- label: "Увеличение текста при анимации",
358
+ label: "Увеличение текста при анимации ноды",
159
359
  },
160
360
  {
161
- id: "highlightTextWeightAdditional",
162
- initialValue: GRAPH_SETTINGS.highlightTextWeightAdditional,
361
+ id: "highlightByNodeTextWeightAdditional",
362
+ initialValue: NODE_SETTINGS.highlightByNodeTextWeightAdditional,
163
363
  max: 1000,
164
364
  min: 0,
165
365
  step: 100,
166
366
  type: "range",
167
- label: "Увеличение жирности текста при анимации",
367
+ label: "Увеличение жирности текста при анимации ноды",
168
368
  },
169
369
  {
170
- id: "highlightTextWidthAdditional",
171
- initialValue: GRAPH_SETTINGS.highlightTextWidthAdditional,
370
+ id: "highlightByNodeTextWidthAdditional",
371
+ initialValue: NODE_SETTINGS.highlightByNodeTextWidthAdditional,
172
372
  max: 100,
173
373
  min: 0,
174
374
  step: 0.1,
175
375
  type: "range",
176
- label: "Увеличение ширины текста при анимации",
376
+ label: "Увеличение ширины текста при анимации ноды",
177
377
  },
178
378
  {
179
- id: "highlightTextFadingMin",
180
- initialValue: GRAPH_SETTINGS.highlightTextFadingMin,
379
+ id: "highlightByNodeNodeFadingMin",
380
+ initialValue: NODE_SETTINGS.highlightByNodeNodeFadingMin,
181
381
  max: 1,
182
382
  min: 0,
183
383
  step: 0.01,
184
384
  type: "range",
185
- label: "Граница затухания текста при анимации",
385
+ label: "Граница затухания ноды при анимации ноды",
186
386
  },
187
387
  {
188
- id: "highlightLinkFadingMin",
189
- initialValue: GRAPH_SETTINGS.highlightLinkFadingMin,
388
+ id: "highlightByNodeTextFadingMin",
389
+ initialValue: NODE_SETTINGS.highlightByNodeTextFadingMin,
190
390
  max: 1,
191
391
  min: 0,
192
392
  step: 0.01,
193
393
  type: "range",
194
- label: "Граница затухания связи при анимации",
394
+ label: "Граница затухания текста при анимации ноды",
195
395
  },
196
396
  {
197
- id: "highlightFadingMin",
198
- initialValue: GRAPH_SETTINGS.highlightFadingMin,
199
- max: 1,
200
- min: 0,
201
- step: 0.01,
202
- type: "range",
203
- label: "Граница затухания ноды при анимации",
204
- },
205
- {
206
- id: "highlightArrowFadingMin",
207
- initialValue: GRAPH_SETTINGS.highlightArrowFadingMin,
208
- max: 1,
209
- min: 0,
397
+ id: "highlightByLinkNodeSizingAdditional",
398
+ initialValue: NODE_SETTINGS.highlightByLinkNodeSizingAdditional,
399
+ max: 10,
400
+ min: 0.1,
210
401
  step: 0.01,
211
402
  type: "range",
212
- label: "Граница затухания стрелки при анимации",
403
+ label: "Дополнительный размер при анимации связи",
213
404
  },
214
405
  {
215
- id: "highlightDownStep",
216
- initialValue: GRAPH_SETTINGS.highlightDownStep,
217
- max: 1,
406
+ id: "highlightByLinkNodeSizingAdditionalCoefficient",
407
+ initialValue: NODE_SETTINGS.highlightByLinkNodeSizingAdditionalCoefficient,
408
+ max: 10,
218
409
  min: 0.01,
219
410
  step: 0.01,
220
411
  type: "range",
221
- label: "Скорость отмены анимации",
412
+ label: "Дополнительный размер квадрата при анимации связи",
222
413
  },
223
414
  {
224
- id: "highlightUpStep",
225
- initialValue: GRAPH_SETTINGS.highlightUpStep,
415
+ id: "highlightByLinkNodeColorFadingMin",
416
+ initialValue: NODE_SETTINGS.highlightByLinkNodeColorFadingMin,
226
417
  max: 1,
227
418
  min: 0.01,
228
419
  step: 0.01,
229
420
  type: "range",
230
- label: "Скорость применения анимации",
421
+ label: "Граница затухания цвета при анимации связи",
231
422
  },
232
423
  {
233
- id: "nodeRadiusInitial",
234
- initialValue: GRAPH_SETTINGS.nodeRadiusInitial,
424
+ id: "highlightByLinkTextShiftXAdditional",
425
+ initialValue: NODE_SETTINGS.highlightByLinkTextShiftXAdditional,
235
426
  max: 50,
236
- min: 0.1,
427
+ min: 0,
237
428
  step: 0.1,
238
429
  type: "range",
239
- label: "Изначальный радиус ноды",
430
+ label: "Смещение текста по X при анимации связи",
240
431
  },
241
432
  {
242
- id: "nodeRadiusCoefficient",
243
- initialValue: GRAPH_SETTINGS.nodeRadiusCoefficient,
244
- max: 100,
245
- min: 0.1,
433
+ id: "highlightByLinkTextShiftYAdditional",
434
+ initialValue: NODE_SETTINGS.highlightByLinkTextShiftYAdditional,
435
+ max: 50,
436
+ min: 0,
246
437
  step: 0.1,
247
438
  type: "range",
248
- label: "Количество связей для увеличения радиуса",
439
+ label: "Смещение текста по Y при анимации связи",
249
440
  },
250
441
  {
251
- id: "nodeRadiusFactor",
252
- initialValue: GRAPH_SETTINGS.nodeRadiusFactor,
253
- max: 50,
442
+ id: "highlightByLinkTextSizingAdditional",
443
+ initialValue: NODE_SETTINGS.highlightByLinkTextSizingAdditional,
444
+ max: 10,
254
445
  min: 0.1,
255
446
  step: 0.1,
256
447
  type: "range",
257
- label: "Коэффициент увеличения радиуса",
448
+ label: "Увеличение текста при анимации связи",
258
449
  },
259
450
  {
260
- id: "highlightOnlyRoot",
261
- type: "checkbox",
262
- initialValue: GRAPH_SETTINGS.highlightOnlyRoot,
263
- label: "Дополнительная анимация только главное цели",
451
+ id: "highlightByLinkTextWeightAdditional",
452
+ initialValue: NODE_SETTINGS.highlightByLinkTextWeightAdditional,
453
+ max: 1000,
454
+ min: 0,
455
+ step: 100,
456
+ type: "range",
457
+ label: "Увеличение жирности текста при анимации связи",
264
458
  },
265
459
  {
266
- id: "stickAfterDrag",
267
- type: "checkbox",
268
- initialValue: GRAPH_SETTINGS.stickAfterDrag,
269
- label: "Фиксировании ноды после перетаскивания",
460
+ id: "highlightByLinkTextWidthAdditional",
461
+ initialValue: NODE_SETTINGS.highlightByLinkTextWidthAdditional,
462
+ max: 100,
463
+ min: 0,
464
+ step: 0.1,
465
+ type: "range",
466
+ label: "Увеличение ширины текста при анимации связи",
270
467
  },
271
468
  {
272
- id: "highlightByHover",
273
- type: "checkbox",
274
- initialValue: GRAPH_SETTINGS.highlightByHover,
275
- label: "Анимации при наведении",
469
+ id: "highlightByLinkNodeFadingMin",
470
+ initialValue: NODE_SETTINGS.highlightByLinkNodeFadingMin,
471
+ max: 1,
472
+ min: 0,
473
+ step: 0.01,
474
+ type: "range",
475
+ label: "Граница затухания ноды при анимации связи",
276
476
  },
277
477
  {
278
- id: "nodeRadiusFlexible",
279
- type: "checkbox",
280
- initialValue: GRAPH_SETTINGS.nodeRadiusFlexible,
281
- label: "Гибкий радиус ноды",
478
+ id: "highlightByLinkTextFadingMin",
479
+ initialValue: NODE_SETTINGS.highlightByLinkTextFadingMin,
480
+ max: 1,
481
+ min: 0,
482
+ step: 0.01,
483
+ type: "range",
484
+ label: "Граница затухания текста при анимации связи",
282
485
  },
283
486
  ];
284
- return keys ? GRAPH_CONTROLS.filter((control) => keys.includes(control.id)) : GRAPH_CONTROLS;
487
+ return keys
488
+ ? NODE_SETTINGS_CONTROLS.filter((control) => keys.includes(control.id))
489
+ : NODE_SETTINGS_CONTROLS;
285
490
  }
286
- function getNodeControls(keys) {
491
+ function getNodeOptionsControls(keys) {
287
492
  const NODE_CONTROLS = [
288
493
  {
289
- id: "alpha",
290
- type: "range",
291
- max: 1,
292
- min: 0,
293
- step: 0.1,
294
- label: "Прозрачность",
295
- initialValue: NODE_OPTIONS.alpha,
494
+ id: "shape",
495
+ type: "select",
496
+ initialValue: NODE_OPTIONS.shape,
497
+ label: "Форма",
498
+ options: [
499
+ { label: "Картинки", value: "icon" },
500
+ { label: "Круг", value: "circle" },
501
+ { label: "Прямоугольник", value: "square" },
502
+ { label: "Текст", value: "text" },
503
+ ],
296
504
  },
297
505
  {
298
506
  id: "radius",
@@ -303,6 +511,42 @@ function getNodeControls(keys) {
303
511
  label: "Радиус",
304
512
  initialValue: NODE_OPTIONS.radius,
305
513
  },
514
+ {
515
+ id: "width",
516
+ type: "range",
517
+ max: 50,
518
+ min: 1,
519
+ step: 1,
520
+ label: "Ширина",
521
+ initialValue: NODE_OPTIONS.width,
522
+ },
523
+ {
524
+ id: "height",
525
+ type: "range",
526
+ max: 50,
527
+ min: 1,
528
+ step: 1,
529
+ label: "Высота",
530
+ initialValue: NODE_OPTIONS.height,
531
+ },
532
+ {
533
+ id: "borderRadius",
534
+ type: "range",
535
+ max: 50,
536
+ min: 0,
537
+ step: 1,
538
+ label: "Радиус границы",
539
+ initialValue: NODE_OPTIONS.borderRadius,
540
+ },
541
+ {
542
+ id: "alpha",
543
+ type: "range",
544
+ max: 1,
545
+ min: 0,
546
+ step: 0.1,
547
+ label: "Прозрачность",
548
+ initialValue: NODE_OPTIONS.alpha,
549
+ },
306
550
  {
307
551
  id: "borderWidth",
308
552
  type: "range",
@@ -324,6 +568,33 @@ function getNodeControls(keys) {
324
568
  initialValue: "#000000FF",
325
569
  label: "Цвет",
326
570
  },
571
+ {
572
+ id: "textNodeXPadding",
573
+ type: "range",
574
+ max: 30,
575
+ min: 0,
576
+ step: 0.1,
577
+ label: "Отступы по оси X у текстовой ноды внутри контейнера",
578
+ initialValue: NODE_OPTIONS.textNodeXPadding,
579
+ },
580
+ {
581
+ id: "textNodeYPadding",
582
+ type: "range",
583
+ max: 30,
584
+ min: 0,
585
+ step: 0.1,
586
+ label: "Отступы по оси Y у текстовой ноды внутри контейнера",
587
+ initialValue: NODE_OPTIONS.textNodeYPadding,
588
+ },
589
+ {
590
+ id: "textSize",
591
+ type: "range",
592
+ max: 30,
593
+ min: 0,
594
+ step: 0.1,
595
+ label: "Размер текста",
596
+ initialValue: 0,
597
+ },
327
598
  {
328
599
  id: "textAlpha",
329
600
  type: "range",
@@ -379,39 +650,142 @@ function getNodeControls(keys) {
379
650
  initialValue: NODE_OPTIONS.textGap,
380
651
  },
381
652
  {
382
- id: "highlightFading",
653
+ id: "textColor",
654
+ type: "color",
655
+ initialValue: NODE_OPTIONS.textColor,
656
+ label: "Цвет текста",
657
+ },
658
+ ];
659
+ return keys ? NODE_CONTROLS.filter((control) => keys.includes(control.id)) : NODE_CONTROLS;
660
+ }
661
+ function getLinkSettingsControls(keys) {
662
+ const LINK_SETTINGS_CONTROLS = [
663
+ {
664
+ id: "cache",
665
+ type: "checkbox",
666
+ label: "Кеширование вычисляемых настроек",
667
+ initialValue: LINK_SETTINGS.cache,
668
+ },
669
+ {
670
+ id: "particles",
671
+ type: "checkbox",
672
+ label: "Частицы",
673
+ initialValue: LINK_SETTINGS.particles,
674
+ },
675
+ {
676
+ id: "particleFlexSpeed",
383
677
  type: "checkbox",
384
- initialValue: NODE_OPTIONS.highlightFading,
385
- label: "Анимация затухания",
678
+ label: "Гибкий расчет скорости частицы",
679
+ initialValue: LINK_SETTINGS.particleFlexSpeed,
386
680
  },
387
681
  {
388
- id: "highlightColor",
682
+ id: "pretty",
389
683
  type: "checkbox",
390
- initialValue: NODE_OPTIONS.highlightColor,
391
- label: "Анимация затухания цвета",
684
+ label: "Обсчет красивого соединения",
685
+ initialValue: LINK_SETTINGS.pretty,
392
686
  },
393
687
  {
394
- id: "highlightSizing",
688
+ id: "arrow",
395
689
  type: "checkbox",
396
- initialValue: NODE_OPTIONS.highlightSizing,
397
- label: "Анимация размера",
690
+ label: "Стрелка",
691
+ initialValue: LINK_SETTINGS.arrow,
398
692
  },
399
693
  {
400
- id: "highlightTextFading",
694
+ id: "arrowByHighlight",
401
695
  type: "checkbox",
402
- initialValue: NODE_OPTIONS.highlightTextFading,
403
- label: "Анимация затухания текста",
696
+ label: "Появление стрелки при анимации",
697
+ initialValue: LINK_SETTINGS.arrowByHighlight,
404
698
  },
405
699
  {
406
- id: "highlightTextSizing",
700
+ id: "highlightByHoverLink",
407
701
  type: "checkbox",
408
- initialValue: NODE_OPTIONS.highlightTextSizing,
409
- label: "Анимация размера текста",
702
+ label: "Анимация при наведении на связь",
703
+ initialValue: LINK_SETTINGS.highlightByHoverLink,
704
+ },
705
+ {
706
+ id: "highlightByNodeLinkFading",
707
+ type: "checkbox",
708
+ label: "Затухание при анимации ноды",
709
+ initialValue: LINK_SETTINGS.highlightByNodeLinkFading,
710
+ },
711
+ {
712
+ id: "highlightByNodeArrowFading",
713
+ type: "checkbox",
714
+ label: "Затухание стрелки при анимации ноды",
715
+ initialValue: LINK_SETTINGS.highlightByNodeArrowFading,
716
+ },
717
+ {
718
+ id: "highlightByLinkLinkFading",
719
+ type: "checkbox",
720
+ label: "Затухание при анимации связи",
721
+ initialValue: LINK_SETTINGS.highlightByLinkLinkFading,
722
+ },
723
+ {
724
+ id: "highlightByLinkArrowFading",
725
+ type: "checkbox",
726
+ label: "Затухание стрелки при анимации связи",
727
+ initialValue: LINK_SETTINGS.highlightByLinkArrowFading,
728
+ },
729
+ {
730
+ id: "particleFlexSpeedCoefficient",
731
+ initialValue: LINK_SETTINGS.particleFlexSpeedCoefficient,
732
+ max: 10,
733
+ min: 0.1,
734
+ step: 0.1,
735
+ type: "range",
736
+ label: "Коэффициент скорости частицы относительно расстояния",
737
+ },
738
+ {
739
+ id: "hoverLinkThreshold",
740
+ initialValue: LINK_SETTINGS.hoverLinkThreshold,
741
+ max: 10,
742
+ min: 0,
743
+ step: 0.01,
744
+ type: "range",
745
+ label: "Расширение границы связи для курсора",
746
+ },
747
+ {
748
+ id: "highlightByNodeLinkFadingMin",
749
+ initialValue: LINK_SETTINGS.highlightByNodeLinkFadingMin,
750
+ max: 1,
751
+ min: 0,
752
+ step: 0.01,
753
+ type: "range",
754
+ label: "Граница затухания связи при анимации ноды",
755
+ },
756
+ {
757
+ id: "highlightByNodeArrowFadingMin",
758
+ initialValue: LINK_SETTINGS.highlightByNodeArrowFadingMin,
759
+ max: 1,
760
+ min: 0,
761
+ step: 0.01,
762
+ type: "range",
763
+ label: "Граница затухания стрелки при анимации ноды",
764
+ },
765
+ {
766
+ id: "highlightByLinkLinkFadingMin",
767
+ initialValue: LINK_SETTINGS.highlightByLinkLinkFadingMin,
768
+ max: 1,
769
+ min: 0,
770
+ step: 0.01,
771
+ type: "range",
772
+ label: "Граница затухания связи при анимации связи",
773
+ },
774
+ {
775
+ id: "highlightByLinkArrowFadingMin",
776
+ initialValue: LINK_SETTINGS.highlightByLinkArrowFadingMin,
777
+ max: 1,
778
+ min: 0,
779
+ step: 0.01,
780
+ type: "range",
781
+ label: "Граница затухания стрелки при анимации связи",
410
782
  },
411
783
  ];
412
- return keys ? NODE_CONTROLS.filter((control) => keys.includes(control.id)) : NODE_CONTROLS;
784
+ return keys
785
+ ? LINK_SETTINGS_CONTROLS.filter((control) => keys.includes(control.id))
786
+ : LINK_SETTINGS_CONTROLS;
413
787
  }
414
- function getLinkControls(keys) {
788
+ function getLinkOptionsControls(keys) {
415
789
  const LINK_CONTROLS = [
416
790
  {
417
791
  id: "alpha",
@@ -449,6 +823,24 @@ function getLinkControls(keys) {
449
823
  label: "Размер стрелки",
450
824
  initialValue: LINK_OPTIONS.arrowSize,
451
825
  },
826
+ {
827
+ id: "arrowBorderWidth",
828
+ type: "range",
829
+ max: 10,
830
+ min: 0.1,
831
+ step: 0.1,
832
+ label: "Размер границы стрелки",
833
+ initialValue: LINK_OPTIONS.arrowBorderWidth,
834
+ },
835
+ {
836
+ id: "particleBorderWidth",
837
+ type: "range",
838
+ max: 10,
839
+ min: 0.1,
840
+ step: 0.1,
841
+ label: "Размер границы частиц",
842
+ initialValue: LINK_OPTIONS.particleBorderWidth,
843
+ },
452
844
  {
453
845
  id: "particleAlpha",
454
846
  type: "range",
@@ -498,44 +890,26 @@ function getLinkControls(keys) {
498
890
  label: "Цвет стрелки",
499
891
  },
500
892
  {
501
- id: "particleColor",
893
+ id: "arrowBorderColor",
502
894
  type: "color",
503
- initialValue: "#000000FF",
504
- label: "Цвет частиц",
505
- },
506
- {
507
- id: "highlightFading",
508
- type: "checkbox",
509
- label: "Анимация Затухания",
510
- initialValue: LINK_OPTIONS.highlightFading,
511
- },
512
- {
513
- id: "pretty",
514
- type: "checkbox",
515
- label: "Обсчет соединения",
516
- initialValue: LINK_OPTIONS.pretty,
517
- },
518
- {
519
- id: "arrow",
520
- type: "checkbox",
521
- label: "Стрелка",
522
- initialValue: LINK_OPTIONS.arrow,
895
+ initialValue: LINK_OPTIONS.arrowBorderColor,
896
+ label: "Цвет границы стрелки",
523
897
  },
524
898
  {
525
- id: "arrowHighlightFading",
526
- type: "checkbox",
527
- label: "Анимация затухания стрелки",
528
- initialValue: LINK_OPTIONS.arrowHighlightFading,
899
+ id: "particleColor",
900
+ type: "color",
901
+ initialValue: LINK_OPTIONS.particleColor,
902
+ label: "Цвет частиц",
529
903
  },
530
904
  {
531
- id: "arrowReverseAppear",
532
- type: "checkbox",
533
- label: "Появление стрелки при анимации",
534
- initialValue: LINK_OPTIONS.arrowReverseAppear,
905
+ id: "particleBorderColor",
906
+ type: "color",
907
+ initialValue: LINK_OPTIONS.particleBorderColor,
908
+ label: "Цвет границы частиц",
535
909
  },
536
910
  ];
537
911
  return keys ? LINK_CONTROLS.filter((control) => keys.includes(control.id)) : LINK_CONTROLS;
538
912
  }
539
913
 
540
- export { getForceControls, getGraphControls, getLinkControls, getNodeControls };
914
+ export { getForceControls, getGraphControls, getLinkOptionsControls, getLinkSettingsControls, getNodeOptionsControls, getNodeSettingControls };
541
915
  //# sourceMappingURL=get-controls-info.js.map