@krainovsd/graph 0.9.0 → 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 (53) hide show
  1. package/lib/cjs/index.cjs +2633 -1795
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/esm/index.js +12 -3
  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 +451 -224
  8. package/lib/esm/lib/get-controls-info.js.map +1 -1
  9. package/lib/esm/module/GraphCanvas/GraphCanvas.js +39 -927
  10. package/lib/esm/module/GraphCanvas/GraphCanvas.js.map +1 -1
  11. package/lib/esm/module/GraphCanvas/constants/settings.js +70 -47
  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 +2 -2
  26. package/lib/esm/module/GraphCanvas/lib/utils/link-by-pointer-getter.js.map +1 -1
  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/slices/draw-links.js +207 -0
  30. package/lib/esm/module/GraphCanvas/slices/draw-links.js.map +1 -0
  31. package/lib/esm/module/GraphCanvas/slices/draw-nodes.js +342 -0
  32. package/lib/esm/module/GraphCanvas/slices/draw-nodes.js.map +1 -0
  33. package/lib/esm/module/GraphCanvas/{lib/utils → slices}/draw-text.js +23 -6
  34. package/lib/esm/module/GraphCanvas/slices/draw-text.js.map +1 -0
  35. package/lib/esm/module/GraphCanvas/slices/init-area.js +31 -0
  36. package/lib/esm/module/GraphCanvas/slices/init-area.js.map +1 -0
  37. package/lib/esm/module/GraphCanvas/slices/init-dnd.js +62 -0
  38. package/lib/esm/module/GraphCanvas/slices/init-dnd.js.map +1 -0
  39. package/lib/esm/module/GraphCanvas/slices/init-draw.js +84 -0
  40. package/lib/esm/module/GraphCanvas/slices/init-draw.js.map +1 -0
  41. package/lib/esm/module/GraphCanvas/slices/init-pointer.js +211 -0
  42. package/lib/esm/module/GraphCanvas/slices/init-pointer.js.map +1 -0
  43. package/lib/esm/module/GraphCanvas/slices/init-resize.js +28 -0
  44. package/lib/esm/module/GraphCanvas/slices/init-resize.js.map +1 -0
  45. package/lib/esm/module/GraphCanvas/slices/init-simulation.js +172 -0
  46. package/lib/esm/module/GraphCanvas/slices/init-simulation.js.map +1 -0
  47. package/lib/esm/module/GraphCanvas/slices/init-zoom.js +36 -0
  48. package/lib/esm/module/GraphCanvas/slices/init-zoom.js.map +1 -0
  49. package/lib/index.d.ts +169 -132
  50. package/package.json +1 -1
  51. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-radius.js +0 -20
  52. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-radius.js.map +0 -1
  53. 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,29 +143,187 @@ 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 = [
151
+ {
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
+ },
115
306
  {
116
307
  id: "highlightByNodeNodeSizingAdditional",
117
- initialValue: GRAPH_SETTINGS.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
313
  label: "Дополнительный размер при анимации ноды",
123
314
  },
315
+ {
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
+ },
124
324
  {
125
325
  id: "highlightByNodeNodeColorFadingMin",
126
- initialValue: GRAPH_SETTINGS.highlightByNodeNodeColorFadingMin,
326
+ initialValue: NODE_SETTINGS.highlightByNodeNodeColorFadingMin,
127
327
  max: 1,
128
328
  min: 0.01,
129
329
  step: 0.01,
@@ -132,7 +332,7 @@ function getGraphControls(keys) {
132
332
  },
133
333
  {
134
334
  id: "highlightByNodeTextShiftXAdditional",
135
- initialValue: GRAPH_SETTINGS.highlightByNodeTextShiftXAdditional,
335
+ initialValue: NODE_SETTINGS.highlightByNodeTextShiftXAdditional,
136
336
  max: 50,
137
337
  min: 0,
138
338
  step: 0.1,
@@ -141,7 +341,7 @@ function getGraphControls(keys) {
141
341
  },
142
342
  {
143
343
  id: "highlightByNodeTextShiftYAdditional",
144
- initialValue: GRAPH_SETTINGS.highlightByNodeTextShiftYAdditional,
344
+ initialValue: NODE_SETTINGS.highlightByNodeTextShiftYAdditional,
145
345
  max: 50,
146
346
  min: 0,
147
347
  step: 0.1,
@@ -150,7 +350,7 @@ function getGraphControls(keys) {
150
350
  },
151
351
  {
152
352
  id: "highlightByNodeTextSizingAdditional",
153
- initialValue: GRAPH_SETTINGS.highlightByNodeTextSizingAdditional,
353
+ initialValue: NODE_SETTINGS.highlightByNodeTextSizingAdditional,
154
354
  max: 10,
155
355
  min: 0.1,
156
356
  step: 0.1,
@@ -159,7 +359,7 @@ function getGraphControls(keys) {
159
359
  },
160
360
  {
161
361
  id: "highlightByNodeTextWeightAdditional",
162
- initialValue: GRAPH_SETTINGS.highlightByNodeTextWeightAdditional,
362
+ initialValue: NODE_SETTINGS.highlightByNodeTextWeightAdditional,
163
363
  max: 1000,
164
364
  min: 0,
165
365
  step: 100,
@@ -168,34 +368,16 @@ function getGraphControls(keys) {
168
368
  },
169
369
  {
170
370
  id: "highlightByNodeTextWidthAdditional",
171
- initialValue: GRAPH_SETTINGS.highlightByNodeTextWidthAdditional,
371
+ initialValue: NODE_SETTINGS.highlightByNodeTextWidthAdditional,
172
372
  max: 100,
173
373
  min: 0,
174
374
  step: 0.1,
175
375
  type: "range",
176
376
  label: "Увеличение ширины текста при анимации ноды",
177
377
  },
178
- {
179
- id: "highlightByNodeTextFadingMin",
180
- initialValue: GRAPH_SETTINGS.highlightByNodeTextFadingMin,
181
- max: 1,
182
- min: 0,
183
- step: 0.01,
184
- type: "range",
185
- label: "Граница затухания текста при анимации ноды",
186
- },
187
- {
188
- id: "highlightByNodeLinkFadingMin",
189
- initialValue: GRAPH_SETTINGS.highlightByNodeLinkFadingMin,
190
- max: 1,
191
- min: 0,
192
- step: 0.01,
193
- type: "range",
194
- label: "Граница затухания связи при анимации ноды",
195
- },
196
378
  {
197
379
  id: "highlightByNodeNodeFadingMin",
198
- initialValue: GRAPH_SETTINGS.highlightByNodeNodeFadingMin,
380
+ initialValue: NODE_SETTINGS.highlightByNodeNodeFadingMin,
199
381
  max: 1,
200
382
  min: 0,
201
383
  step: 0.01,
@@ -203,32 +385,35 @@ function getGraphControls(keys) {
203
385
  label: "Граница затухания ноды при анимации ноды",
204
386
  },
205
387
  {
206
- id: "highlightByNodeArrowFadingMin",
207
- initialValue: GRAPH_SETTINGS.highlightByNodeArrowFadingMin,
388
+ id: "highlightByNodeTextFadingMin",
389
+ initialValue: NODE_SETTINGS.highlightByNodeTextFadingMin,
208
390
  max: 1,
209
391
  min: 0,
210
392
  step: 0.01,
211
393
  type: "range",
212
- label: "Граница затухания стрелки при анимации ноды",
213
- },
214
- {
215
- id: "highlightByNodeOnlyRoot",
216
- type: "checkbox",
217
- initialValue: GRAPH_SETTINGS.highlightByNodeOnlyRoot,
218
- label: "Дополнительная анимация только главное цели при анимации ноды",
394
+ label: "Граница затухания текста при анимации ноды",
219
395
  },
220
396
  {
221
397
  id: "highlightByLinkNodeSizingAdditional",
222
- initialValue: GRAPH_SETTINGS.highlightByLinkNodeSizingAdditional,
398
+ initialValue: NODE_SETTINGS.highlightByLinkNodeSizingAdditional,
223
399
  max: 10,
224
400
  min: 0.1,
225
401
  step: 0.01,
226
402
  type: "range",
227
403
  label: "Дополнительный размер при анимации связи",
228
404
  },
405
+ {
406
+ id: "highlightByLinkNodeSizingAdditionalCoefficient",
407
+ initialValue: NODE_SETTINGS.highlightByLinkNodeSizingAdditionalCoefficient,
408
+ max: 10,
409
+ min: 0.01,
410
+ step: 0.01,
411
+ type: "range",
412
+ label: "Дополнительный размер квадрата при анимации связи",
413
+ },
229
414
  {
230
415
  id: "highlightByLinkNodeColorFadingMin",
231
- initialValue: GRAPH_SETTINGS.highlightByLinkNodeColorFadingMin,
416
+ initialValue: NODE_SETTINGS.highlightByLinkNodeColorFadingMin,
232
417
  max: 1,
233
418
  min: 0.01,
234
419
  step: 0.01,
@@ -237,7 +422,7 @@ function getGraphControls(keys) {
237
422
  },
238
423
  {
239
424
  id: "highlightByLinkTextShiftXAdditional",
240
- initialValue: GRAPH_SETTINGS.highlightByLinkTextShiftXAdditional,
425
+ initialValue: NODE_SETTINGS.highlightByLinkTextShiftXAdditional,
241
426
  max: 50,
242
427
  min: 0,
243
428
  step: 0.1,
@@ -246,7 +431,7 @@ function getGraphControls(keys) {
246
431
  },
247
432
  {
248
433
  id: "highlightByLinkTextShiftYAdditional",
249
- initialValue: GRAPH_SETTINGS.highlightByLinkTextShiftYAdditional,
434
+ initialValue: NODE_SETTINGS.highlightByLinkTextShiftYAdditional,
250
435
  max: 50,
251
436
  min: 0,
252
437
  step: 0.1,
@@ -255,7 +440,7 @@ function getGraphControls(keys) {
255
440
  },
256
441
  {
257
442
  id: "highlightByLinkTextSizingAdditional",
258
- initialValue: GRAPH_SETTINGS.highlightByLinkTextSizingAdditional,
443
+ initialValue: NODE_SETTINGS.highlightByLinkTextSizingAdditional,
259
444
  max: 10,
260
445
  min: 0.1,
261
446
  step: 0.1,
@@ -264,7 +449,7 @@ function getGraphControls(keys) {
264
449
  },
265
450
  {
266
451
  id: "highlightByLinkTextWeightAdditional",
267
- initialValue: GRAPH_SETTINGS.highlightByLinkTextWeightAdditional,
452
+ initialValue: NODE_SETTINGS.highlightByLinkTextWeightAdditional,
268
453
  max: 1000,
269
454
  min: 0,
270
455
  step: 100,
@@ -273,34 +458,16 @@ function getGraphControls(keys) {
273
458
  },
274
459
  {
275
460
  id: "highlightByLinkTextWidthAdditional",
276
- initialValue: GRAPH_SETTINGS.highlightByLinkTextWidthAdditional,
461
+ initialValue: NODE_SETTINGS.highlightByLinkTextWidthAdditional,
277
462
  max: 100,
278
463
  min: 0,
279
464
  step: 0.1,
280
465
  type: "range",
281
466
  label: "Увеличение ширины текста при анимации связи",
282
467
  },
283
- {
284
- id: "highlightByLinkTextFadingMin",
285
- initialValue: GRAPH_SETTINGS.highlightByLinkTextFadingMin,
286
- max: 1,
287
- min: 0,
288
- step: 0.01,
289
- type: "range",
290
- label: "Граница затухания текста при анимации связи",
291
- },
292
- {
293
- id: "highlightByLinkLinkFadingMin",
294
- initialValue: GRAPH_SETTINGS.highlightByLinkLinkFadingMin,
295
- max: 1,
296
- min: 0,
297
- step: 0.01,
298
- type: "range",
299
- label: "Граница затухания связи при анимации связи",
300
- },
301
468
  {
302
469
  id: "highlightByLinkNodeFadingMin",
303
- initialValue: GRAPH_SETTINGS.highlightByLinkNodeFadingMin,
470
+ initialValue: NODE_SETTINGS.highlightByLinkNodeFadingMin,
304
471
  max: 1,
305
472
  min: 0,
306
473
  step: 0.01,
@@ -308,88 +475,69 @@ function getGraphControls(keys) {
308
475
  label: "Граница затухания ноды при анимации связи",
309
476
  },
310
477
  {
311
- id: "highlightByLinkArrowFadingMin",
312
- initialValue: GRAPH_SETTINGS.highlightByLinkArrowFadingMin,
478
+ id: "highlightByLinkTextFadingMin",
479
+ initialValue: NODE_SETTINGS.highlightByLinkTextFadingMin,
313
480
  max: 1,
314
481
  min: 0,
315
482
  step: 0.01,
316
483
  type: "range",
317
- label: "Граница затухания стрелки при анимации связи",
484
+ label: "Граница затухания текста при анимации связи",
318
485
  },
486
+ ];
487
+ return keys
488
+ ? NODE_SETTINGS_CONTROLS.filter((control) => keys.includes(control.id))
489
+ : NODE_SETTINGS_CONTROLS;
490
+ }
491
+ function getNodeOptionsControls(keys) {
492
+ const NODE_CONTROLS = [
319
493
  {
320
- id: "highlightByLinkOnlyRoot",
321
- type: "checkbox",
322
- initialValue: GRAPH_SETTINGS.highlightByLinkOnlyRoot,
323
- label: "Дополнительная анимация только главное цели при анимации связи",
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
+ ],
324
504
  },
325
505
  {
326
- id: "highlightDownStep",
327
- initialValue: GRAPH_SETTINGS.highlightDownStep,
328
- max: 1,
329
- min: 0.01,
330
- step: 0.01,
506
+ id: "radius",
331
507
  type: "range",
332
- label: "Скорость отмены анимации",
508
+ max: 50,
509
+ min: 1,
510
+ step: 1,
511
+ label: "Радиус",
512
+ initialValue: NODE_OPTIONS.radius,
333
513
  },
334
514
  {
335
- id: "highlightUpStep",
336
- initialValue: GRAPH_SETTINGS.highlightUpStep,
337
- max: 1,
338
- min: 0.01,
339
- step: 0.01,
515
+ id: "width",
340
516
  type: "range",
341
- label: "Скорость применения анимации",
342
- },
343
- {
344
- id: "nodeRadiusInitial",
345
- initialValue: GRAPH_SETTINGS.nodeRadiusInitial,
346
517
  max: 50,
347
- min: 0.1,
348
- step: 0.1,
349
- type: "range",
350
- label: "Изначальный радиус ноды",
518
+ min: 1,
519
+ step: 1,
520
+ label: "Ширина",
521
+ initialValue: NODE_OPTIONS.width,
351
522
  },
352
523
  {
353
- id: "nodeRadiusCoefficient",
354
- initialValue: GRAPH_SETTINGS.nodeRadiusCoefficient,
355
- max: 100,
356
- min: 0.1,
357
- step: 0.1,
524
+ id: "height",
358
525
  type: "range",
359
- label: "Количество связей для увеличения радиуса",
360
- },
361
- {
362
- id: "nodeRadiusFactor",
363
- initialValue: GRAPH_SETTINGS.nodeRadiusFactor,
364
526
  max: 50,
365
- min: 0.1,
366
- step: 0.1,
367
- type: "range",
368
- label: "Коэффициент увеличения радиуса",
369
- },
370
- {
371
- id: "stickAfterDrag",
372
- type: "checkbox",
373
- initialValue: GRAPH_SETTINGS.stickAfterDrag,
374
- label: "Фиксировании ноды после перетаскивания",
375
- },
376
- {
377
- id: "highlightByHoverNode",
378
- type: "checkbox",
379
- initialValue: GRAPH_SETTINGS.highlightByHoverNode,
380
- label: "Анимации при наведении",
527
+ min: 1,
528
+ step: 1,
529
+ label: "Высота",
530
+ initialValue: NODE_OPTIONS.height,
381
531
  },
382
532
  {
383
- id: "nodeRadiusFlexible",
384
- type: "checkbox",
385
- initialValue: GRAPH_SETTINGS.nodeRadiusFlexible,
386
- label: "Гибкий радиус ноды",
533
+ id: "borderRadius",
534
+ type: "range",
535
+ max: 50,
536
+ min: 0,
537
+ step: 1,
538
+ label: "Радиус границы",
539
+ initialValue: NODE_OPTIONS.borderRadius,
387
540
  },
388
- ];
389
- return keys ? GRAPH_CONTROLS.filter((control) => keys.includes(control.id)) : GRAPH_CONTROLS;
390
- }
391
- function getNodeControls(keys) {
392
- const NODE_CONTROLS = [
393
541
  {
394
542
  id: "alpha",
395
543
  type: "range",
@@ -399,15 +547,6 @@ function getNodeControls(keys) {
399
547
  label: "Прозрачность",
400
548
  initialValue: NODE_OPTIONS.alpha,
401
549
  },
402
- {
403
- id: "radius",
404
- type: "range",
405
- max: 50,
406
- min: 1,
407
- step: 1,
408
- label: "Радиус",
409
- initialValue: NODE_OPTIONS.radius,
410
- },
411
550
  {
412
551
  id: "borderWidth",
413
552
  type: "range",
@@ -429,6 +568,33 @@ function getNodeControls(keys) {
429
568
  initialValue: "#000000FF",
430
569
  label: "Цвет",
431
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
+ },
432
598
  {
433
599
  id: "textAlpha",
434
600
  type: "range",
@@ -484,69 +650,142 @@ function getNodeControls(keys) {
484
650
  initialValue: NODE_OPTIONS.textGap,
485
651
  },
486
652
  {
487
- id: "highlightByNodeNodeFading",
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",
488
665
  type: "checkbox",
489
- initialValue: NODE_OPTIONS.highlightByNodeNodeFading,
490
- label: "Затухание при анимации ноды",
666
+ label: "Кеширование вычисляемых настроек",
667
+ initialValue: LINK_SETTINGS.cache,
491
668
  },
492
669
  {
493
- id: "highlightByNodeNodeColor",
670
+ id: "particles",
494
671
  type: "checkbox",
495
- initialValue: NODE_OPTIONS.highlightByNodeNodeColor,
496
- label: "Затухание цвета при анимации ноды",
672
+ label: "Частицы",
673
+ initialValue: LINK_SETTINGS.particles,
497
674
  },
498
675
  {
499
- id: "highlightByNodeNodeSizing",
676
+ id: "particleFlexSpeed",
500
677
  type: "checkbox",
501
- initialValue: NODE_OPTIONS.highlightByNodeNodeSizing,
502
- label: "Изменение размера при анимации ноды",
678
+ label: "Гибкий расчет скорости частицы",
679
+ initialValue: LINK_SETTINGS.particleFlexSpeed,
503
680
  },
504
681
  {
505
- id: "highlightByNodeTextFading",
682
+ id: "pretty",
506
683
  type: "checkbox",
507
- initialValue: NODE_OPTIONS.highlightByNodeTextFading,
508
- label: "Затухание текста при анимации ноды",
684
+ label: "Обсчет красивого соединения",
685
+ initialValue: LINK_SETTINGS.pretty,
509
686
  },
510
687
  {
511
- id: "highlightByNodeTextSizing",
688
+ id: "arrow",
512
689
  type: "checkbox",
513
- initialValue: NODE_OPTIONS.highlightByNodeTextSizing,
514
- label: "Изменение размера текста при анимации ноды",
690
+ label: "Стрелка",
691
+ initialValue: LINK_SETTINGS.arrow,
515
692
  },
516
693
  {
517
- id: "highlightByLinkNodeFading",
694
+ id: "arrowByHighlight",
518
695
  type: "checkbox",
519
- initialValue: NODE_OPTIONS.highlightByLinkNodeFading,
520
- label: "Затухание при анимации связи",
696
+ label: "Появление стрелки при анимации",
697
+ initialValue: LINK_SETTINGS.arrowByHighlight,
521
698
  },
522
699
  {
523
- id: "highlightByLinkNodeColor",
700
+ id: "highlightByHoverLink",
524
701
  type: "checkbox",
525
- initialValue: NODE_OPTIONS.highlightByLinkNodeColor,
526
- label: "Затухание цвета при анимации связи",
702
+ label: "Анимация при наведении на связь",
703
+ initialValue: LINK_SETTINGS.highlightByHoverLink,
527
704
  },
528
705
  {
529
- id: "highlightByLinkNodeSizing",
706
+ id: "highlightByNodeLinkFading",
530
707
  type: "checkbox",
531
- initialValue: NODE_OPTIONS.highlightByLinkNodeSizing,
532
- label: "Изменение размера при анимации связи",
708
+ label: "Затухание при анимации ноды",
709
+ initialValue: LINK_SETTINGS.highlightByNodeLinkFading,
533
710
  },
534
711
  {
535
- id: "highlightByLinkTextFading",
712
+ id: "highlightByNodeArrowFading",
536
713
  type: "checkbox",
537
- initialValue: NODE_OPTIONS.highlightByLinkTextFading,
538
- label: "Затухание текста при анимации связи",
714
+ label: "Затухание стрелки при анимации ноды",
715
+ initialValue: LINK_SETTINGS.highlightByNodeArrowFading,
539
716
  },
540
717
  {
541
- id: "highlightByLinkTextSizing",
718
+ id: "highlightByLinkLinkFading",
542
719
  type: "checkbox",
543
- initialValue: NODE_OPTIONS.highlightByLinkTextSizing,
544
- label: "Изменение размера текста при анимации связи",
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: "Граница затухания стрелки при анимации связи",
545
782
  },
546
783
  ];
547
- 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;
548
787
  }
549
- function getLinkControls(keys) {
788
+ function getLinkOptionsControls(keys) {
550
789
  const LINK_CONTROLS = [
551
790
  {
552
791
  id: "alpha",
@@ -584,6 +823,24 @@ function getLinkControls(keys) {
584
823
  label: "Размер стрелки",
585
824
  initialValue: LINK_OPTIONS.arrowSize,
586
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
+ },
587
844
  {
588
845
  id: "particleAlpha",
589
846
  type: "range",
@@ -633,56 +890,26 @@ function getLinkControls(keys) {
633
890
  label: "Цвет стрелки",
634
891
  },
635
892
  {
636
- id: "particleColor",
893
+ id: "arrowBorderColor",
637
894
  type: "color",
638
- initialValue: "#000000FF",
639
- label: "Цвет частиц",
640
- },
641
- {
642
- id: "pretty",
643
- type: "checkbox",
644
- label: "Обсчет соединения",
645
- initialValue: LINK_OPTIONS.pretty,
646
- },
647
- {
648
- id: "arrow",
649
- type: "checkbox",
650
- label: "Стрелка",
651
- initialValue: LINK_OPTIONS.arrow,
652
- },
653
- {
654
- id: "highlightByNodeLinkFading",
655
- type: "checkbox",
656
- label: "Затухание при анимации ноды",
657
- initialValue: LINK_OPTIONS.highlightByNodeLinkFading,
658
- },
659
- {
660
- id: "highlightByNodeArrowFading",
661
- type: "checkbox",
662
- label: "Затухание стрелки при анимации ноды",
663
- initialValue: LINK_OPTIONS.highlightByNodeArrowFading,
664
- },
665
- {
666
- id: "highlightByLinkLinkFading",
667
- type: "checkbox",
668
- label: "Затухание при анимации связи",
669
- initialValue: LINK_OPTIONS.highlightByLinkLinkFading,
895
+ initialValue: LINK_OPTIONS.arrowBorderColor,
896
+ label: "Цвет границы стрелки",
670
897
  },
671
898
  {
672
- id: "highlightByLinkArrowFading",
673
- type: "checkbox",
674
- label: "Затухание стрелки при анимации связи",
675
- initialValue: LINK_OPTIONS.highlightByLinkArrowFading,
899
+ id: "particleColor",
900
+ type: "color",
901
+ initialValue: LINK_OPTIONS.particleColor,
902
+ label: "Цвет частиц",
676
903
  },
677
904
  {
678
- id: "arrowReverseAppear",
679
- type: "checkbox",
680
- label: "Появление стрелки при анимации",
681
- initialValue: LINK_OPTIONS.arrowReverseAppear,
905
+ id: "particleBorderColor",
906
+ type: "color",
907
+ initialValue: LINK_OPTIONS.particleBorderColor,
908
+ label: "Цвет границы частиц",
682
909
  },
683
910
  ];
684
911
  return keys ? LINK_CONTROLS.filter((control) => keys.includes(control.id)) : LINK_CONTROLS;
685
912
  }
686
913
 
687
- export { getForceControls, getGraphControls, getLinkControls, getNodeControls };
914
+ export { getForceControls, getGraphControls, getLinkOptionsControls, getLinkSettingsControls, getNodeOptionsControls, getNodeSettingControls };
688
915
  //# sourceMappingURL=get-controls-info.js.map