@krainovsd/graph 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/lib/cjs/index.cjs +945 -165
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/esm/index.js +3 -0
  4. package/lib/esm/index.js.map +1 -1
  5. package/lib/esm/lib/draw-time.js +25 -0
  6. package/lib/esm/lib/draw-time.js.map +1 -0
  7. package/lib/esm/lib/get-controls-info.js +541 -0
  8. package/lib/esm/lib/get-controls-info.js.map +1 -0
  9. package/lib/esm/module/GraphCanvas/GraphCanvas.js +218 -67
  10. package/lib/esm/module/GraphCanvas/GraphCanvas.js.map +1 -1
  11. package/lib/esm/module/GraphCanvas/constants/settings.js +26 -7
  12. package/lib/esm/module/GraphCanvas/constants/settings.js.map +1 -1
  13. package/lib/esm/module/GraphCanvas/lib/settings/link-settings-getter.js +7 -4
  14. package/lib/esm/module/GraphCanvas/lib/settings/link-settings-getter.js.map +1 -1
  15. package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js +6 -5
  16. package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js.map +1 -1
  17. package/lib/esm/module/GraphCanvas/lib/utils/animation-by-progress.js +12 -0
  18. package/lib/esm/module/GraphCanvas/lib/utils/animation-by-progress.js.map +1 -0
  19. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-radius.js +2 -2
  20. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-radius.js.map +1 -1
  21. package/lib/esm/module/GraphCanvas/lib/utils/get-particle-position.js +24 -0
  22. package/lib/esm/module/GraphCanvas/lib/utils/get-particle-position.js.map +1 -0
  23. package/lib/esm/module/GraphCanvas/lib/utils/is-node-visible.js +14 -0
  24. package/lib/esm/module/GraphCanvas/lib/utils/is-node-visible.js.map +1 -0
  25. package/lib/esm/module/GraphCanvas/lib/utils/link-iteration-extractor.js +1 -0
  26. package/lib/esm/module/GraphCanvas/lib/utils/link-iteration-extractor.js.map +1 -1
  27. package/lib/esm/module/GraphCanvas/lib/utils/node-iteration-extractor.js +1 -0
  28. package/lib/esm/module/GraphCanvas/lib/utils/node-iteration-extractor.js.map +1 -1
  29. package/lib/index.d.ts +72 -3
  30. package/package.json +4 -2
package/lib/esm/index.js CHANGED
@@ -6,8 +6,11 @@ import 'd3-array';
6
6
  export { nodeIterationExtractor } from './module/GraphCanvas/lib/utils/node-iteration-extractor.js';
7
7
  export { drawText } from './module/GraphCanvas/lib/utils/draw-text.js';
8
8
  export { calculateLinkPositionByRadius } from './module/GraphCanvas/lib/utils/calculate-link-position-by-radius.js';
9
+ export { animationByProgress } from './module/GraphCanvas/lib/utils/animation-by-progress.js';
10
+ export { getParticlePosition } from './module/GraphCanvas/lib/utils/get-particle-position.js';
9
11
  export { colorToRgb } from './lib/color-to-rgb.js';
10
12
  export { extractRgb } from './lib/extract-rgb.js';
11
13
  export { fadeRgb } from './lib/fade-rgb.js';
12
14
  export { rgbAnimationByProgress } from './lib/rgb-animation-by-progress.js';
15
+ export { getForceControls, getGraphControls, getLinkControls, getNodeControls } from './lib/get-controls-info.js';
13
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -0,0 +1,25 @@
1
+ let countTime = 0;
2
+ let countOperation = 0;
3
+ function setDrawTime(cb, showEveryTick) {
4
+ return () => {
5
+ const start = performance.now();
6
+ cb();
7
+ const end = performance.now();
8
+ const result = end - start;
9
+ countTime += result;
10
+ countOperation++;
11
+ if (showEveryTick) {
12
+ const average = countTime / countOperation;
13
+ // eslint-disable-next-line no-console
14
+ console.log("average draw: ", average, "current draw: ", result);
15
+ }
16
+ };
17
+ }
18
+ function getDrawTime() {
19
+ const average = countTime / countOperation;
20
+ // eslint-disable-next-line no-console
21
+ console.log("average draw: ", average);
22
+ }
23
+
24
+ export { getDrawTime, setDrawTime };
25
+ //# sourceMappingURL=draw-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw-time.js","sources":["../../../src/lib/draw-time.ts"],"sourcesContent":["let countTime = 0;\nlet countOperation = 0;\n\nexport function setDrawTime(cb: () => void, showEveryTick: boolean) {\n return () => {\n const start = performance.now();\n cb();\n const end = performance.now();\n const result = end - start;\n\n countTime += result;\n countOperation++;\n\n if (showEveryTick) {\n const average = countTime / countOperation;\n // eslint-disable-next-line no-console\n console.log(\"average draw: \", average, \"current draw: \", result);\n }\n };\n}\n\nexport function getDrawTime() {\n const average = countTime / countOperation;\n\n // eslint-disable-next-line no-console\n console.log(\"average draw: \", average);\n}\n"],"names":[],"mappings":"AAAA,IAAI,SAAS,GAAG,CAAC;AACjB,IAAI,cAAc,GAAG,CAAC;AAEN,SAAA,WAAW,CAAC,EAAc,EAAE,aAAsB,EAAA;AAChE,IAAA,OAAO,MAAK;AACV,QAAA,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;AAC/B,QAAA,EAAE,EAAE;AACJ,QAAA,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE;AAC7B,QAAA,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK;QAE1B,SAAS,IAAI,MAAM;AACnB,QAAA,cAAc,EAAE;QAEhB,IAAI,aAAa,EAAE;AACjB,YAAA,MAAM,OAAO,GAAG,SAAS,GAAG,cAAc;;YAE1C,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC;;AAEpE,KAAC;AACH;SAEgB,WAAW,GAAA;AACzB,IAAA,MAAM,OAAO,GAAG,SAAS,GAAG,cAAc;;AAG1C,IAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC;AACxC;;;;"}
@@ -0,0 +1,541 @@
1
+ import { FORCE_SETTINGS, GRAPH_SETTINGS, LINK_OPTIONS, NODE_OPTIONS } from '../module/GraphCanvas/constants/settings.js';
2
+
3
+ function getForceControls(keys) {
4
+ const FORCE_CONTROLS = [
5
+ {
6
+ id: "centerStrength",
7
+ initialValue: FORCE_SETTINGS.centerStrength,
8
+ label: "Граница центра",
9
+ max: 1,
10
+ min: 0,
11
+ step: 0.01,
12
+ type: "range",
13
+ },
14
+ {
15
+ id: "collideStrength",
16
+ initialValue: FORCE_SETTINGS.collideStrength,
17
+ label: "Сила отталкивания",
18
+ max: 1,
19
+ min: 0,
20
+ step: 0.01,
21
+ type: "range",
22
+ },
23
+ {
24
+ id: "collideAdditionalRadius",
25
+ initialValue: FORCE_SETTINGS.collideAdditionalRadius,
26
+ label: "Радиус отталкивания",
27
+ max: 300,
28
+ min: 0,
29
+ step: 0.1,
30
+ type: "range",
31
+ },
32
+ {
33
+ id: "collideIterations",
34
+ initialValue: FORCE_SETTINGS.collideIterations,
35
+ label: "Итерации отталкивания",
36
+ max: 10,
37
+ min: 0,
38
+ step: 1,
39
+ type: "range",
40
+ },
41
+ {
42
+ id: "chargeStrength",
43
+ initialValue: FORCE_SETTINGS.chargeStrength ,
44
+ label: "Гравитация",
45
+ max: 0,
46
+ min: -300,
47
+ step: 0.1,
48
+ type: "range",
49
+ },
50
+ {
51
+ type: "range",
52
+ id: "xForce",
53
+ min: 0,
54
+ max: 1,
55
+ step: 0.01,
56
+ label: "Граница X",
57
+ initialValue: FORCE_SETTINGS.xForce ,
58
+ },
59
+ {
60
+ type: "range",
61
+ id: "yForce",
62
+ min: 0,
63
+ max: 1,
64
+ step: 0.01,
65
+ label: "Граница Y",
66
+ initialValue: FORCE_SETTINGS.yForce ,
67
+ },
68
+ {
69
+ type: "range",
70
+ id: "xStrength",
71
+ min: 0,
72
+ max: 1,
73
+ step: 0.01,
74
+ label: "Гравитация X",
75
+ initialValue: FORCE_SETTINGS.xStrength ,
76
+ },
77
+ {
78
+ type: "range",
79
+ id: "yStrength",
80
+ min: 0,
81
+ max: 1,
82
+ step: 0.01,
83
+ label: "Гравитация Y",
84
+ initialValue: FORCE_SETTINGS.yStrength ,
85
+ },
86
+ {
87
+ type: "range",
88
+ id: "linkStrength",
89
+ min: 0,
90
+ max: 1,
91
+ step: 0.01,
92
+ label: "Натяжение связей",
93
+ initialValue: FORCE_SETTINGS.linkStrength ,
94
+ },
95
+ {
96
+ type: "range",
97
+ id: "linkDistance",
98
+ min: 0,
99
+ max: 300,
100
+ step: 0.1,
101
+ label: "Расстояние связей",
102
+ initialValue: FORCE_SETTINGS.linkDistance ,
103
+ },
104
+ {
105
+ id: "collideOn",
106
+ type: "checkbox",
107
+ initialValue: FORCE_SETTINGS.collideOn,
108
+ label: "Отталкивание",
109
+ },
110
+ ];
111
+ return keys ? FORCE_CONTROLS.filter((control) => keys.includes(control.id)) : FORCE_CONTROLS;
112
+ }
113
+ function getGraphControls(keys) {
114
+ const GRAPH_CONTROLS = [
115
+ {
116
+ id: "highlightSizingAdditional",
117
+ initialValue: GRAPH_SETTINGS.highlightSizingAdditional,
118
+ max: 10,
119
+ min: 0.1,
120
+ step: 0.01,
121
+ type: "range",
122
+ label: "Дополнительный размер при анимации",
123
+ },
124
+ {
125
+ id: "highlightColorFadingMin",
126
+ initialValue: GRAPH_SETTINGS.highlightColorFadingMin,
127
+ max: 1,
128
+ min: 0.01,
129
+ step: 0.01,
130
+ type: "range",
131
+ label: "Граница затухания цвета",
132
+ },
133
+ {
134
+ id: "highlightTextShiftXAdditional",
135
+ initialValue: GRAPH_SETTINGS.highlightTextShiftXAdditional,
136
+ max: 50,
137
+ min: 0,
138
+ step: 0.1,
139
+ type: "range",
140
+ label: "Смещение текста по X при анимации",
141
+ },
142
+ {
143
+ id: "highlightTextShiftYAdditional",
144
+ initialValue: GRAPH_SETTINGS.highlightTextShiftYAdditional,
145
+ max: 50,
146
+ min: 0,
147
+ step: 0.1,
148
+ type: "range",
149
+ label: "Смещение текста по Y при анимации",
150
+ },
151
+ {
152
+ id: "highlightTextSizingAdditional",
153
+ initialValue: GRAPH_SETTINGS.highlightTextSizingAdditional,
154
+ max: 10,
155
+ min: 0.1,
156
+ step: 0.1,
157
+ type: "range",
158
+ label: "Увеличение текста при анимации",
159
+ },
160
+ {
161
+ id: "highlightTextWeightAdditional",
162
+ initialValue: GRAPH_SETTINGS.highlightTextWeightAdditional,
163
+ max: 1000,
164
+ min: 0,
165
+ step: 100,
166
+ type: "range",
167
+ label: "Увеличение жирности текста при анимации",
168
+ },
169
+ {
170
+ id: "highlightTextWidthAdditional",
171
+ initialValue: GRAPH_SETTINGS.highlightTextWidthAdditional,
172
+ max: 100,
173
+ min: 0,
174
+ step: 0.1,
175
+ type: "range",
176
+ label: "Увеличение ширины текста при анимации",
177
+ },
178
+ {
179
+ id: "highlightTextFadingMin",
180
+ initialValue: GRAPH_SETTINGS.highlightTextFadingMin,
181
+ max: 1,
182
+ min: 0,
183
+ step: 0.01,
184
+ type: "range",
185
+ label: "Граница затухания текста при анимации",
186
+ },
187
+ {
188
+ id: "highlightLinkFadingMin",
189
+ initialValue: GRAPH_SETTINGS.highlightLinkFadingMin,
190
+ max: 1,
191
+ min: 0,
192
+ step: 0.01,
193
+ type: "range",
194
+ label: "Граница затухания связи при анимации",
195
+ },
196
+ {
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,
210
+ step: 0.01,
211
+ type: "range",
212
+ label: "Граница затухания стрелки при анимации",
213
+ },
214
+ {
215
+ id: "highlightDownStep",
216
+ initialValue: GRAPH_SETTINGS.highlightDownStep,
217
+ max: 1,
218
+ min: 0.01,
219
+ step: 0.01,
220
+ type: "range",
221
+ label: "Скорость отмены анимации",
222
+ },
223
+ {
224
+ id: "highlightUpStep",
225
+ initialValue: GRAPH_SETTINGS.highlightUpStep,
226
+ max: 1,
227
+ min: 0.01,
228
+ step: 0.01,
229
+ type: "range",
230
+ label: "Скорость применения анимации",
231
+ },
232
+ {
233
+ id: "nodeRadiusInitial",
234
+ initialValue: GRAPH_SETTINGS.nodeRadiusInitial,
235
+ max: 50,
236
+ min: 0.1,
237
+ step: 0.1,
238
+ type: "range",
239
+ label: "Изначальный радиус ноды",
240
+ },
241
+ {
242
+ id: "nodeRadiusCoefficient",
243
+ initialValue: GRAPH_SETTINGS.nodeRadiusCoefficient,
244
+ max: 100,
245
+ min: 0.1,
246
+ step: 0.1,
247
+ type: "range",
248
+ label: "Количество связей для увеличения радиуса",
249
+ },
250
+ {
251
+ id: "nodeRadiusFactor",
252
+ initialValue: GRAPH_SETTINGS.nodeRadiusFactor,
253
+ max: 50,
254
+ min: 0.1,
255
+ step: 0.1,
256
+ type: "range",
257
+ label: "Коэффициент увеличения радиуса",
258
+ },
259
+ {
260
+ id: "highlightOnlyRoot",
261
+ type: "checkbox",
262
+ initialValue: GRAPH_SETTINGS.highlightOnlyRoot,
263
+ label: "Дополнительная анимация только главное цели",
264
+ },
265
+ {
266
+ id: "stickAfterDrag",
267
+ type: "checkbox",
268
+ initialValue: GRAPH_SETTINGS.stickAfterDrag,
269
+ label: "Фиксировании ноды после перетаскивания",
270
+ },
271
+ {
272
+ id: "highlightByHover",
273
+ type: "checkbox",
274
+ initialValue: GRAPH_SETTINGS.highlightByHover,
275
+ label: "Анимации при наведении",
276
+ },
277
+ {
278
+ id: "nodeRadiusFlexible",
279
+ type: "checkbox",
280
+ initialValue: GRAPH_SETTINGS.nodeRadiusFlexible,
281
+ label: "Гибкий радиус ноды",
282
+ },
283
+ ];
284
+ return keys ? GRAPH_CONTROLS.filter((control) => keys.includes(control.id)) : GRAPH_CONTROLS;
285
+ }
286
+ function getNodeControls(keys) {
287
+ const NODE_CONTROLS = [
288
+ {
289
+ id: "alpha",
290
+ type: "range",
291
+ max: 1,
292
+ min: 0,
293
+ step: 0.1,
294
+ label: "Прозрачность",
295
+ initialValue: NODE_OPTIONS.alpha,
296
+ },
297
+ {
298
+ id: "radius",
299
+ type: "range",
300
+ max: 50,
301
+ min: 1,
302
+ step: 1,
303
+ label: "Радиус",
304
+ initialValue: NODE_OPTIONS.radius,
305
+ },
306
+ {
307
+ id: "borderWidth",
308
+ type: "range",
309
+ max: 5,
310
+ min: 0,
311
+ step: 0.1,
312
+ label: "Толщина границы",
313
+ initialValue: NODE_OPTIONS.borderWidth,
314
+ },
315
+ {
316
+ id: "borderColor",
317
+ type: "color",
318
+ initialValue: "#000000FF",
319
+ label: "Цвет границы",
320
+ },
321
+ {
322
+ id: "color",
323
+ type: "color",
324
+ initialValue: "#000000FF",
325
+ label: "Цвет",
326
+ },
327
+ {
328
+ id: "textAlpha",
329
+ type: "range",
330
+ max: 1,
331
+ min: 0,
332
+ step: 0.1,
333
+ label: "Прозрачность текста",
334
+ initialValue: NODE_OPTIONS.textAlpha,
335
+ },
336
+ {
337
+ id: "textWidth",
338
+ type: "range",
339
+ max: 200,
340
+ min: 5,
341
+ step: 1,
342
+ label: "Ширина текста",
343
+ initialValue: NODE_OPTIONS.textWidth,
344
+ },
345
+ {
346
+ id: "textShiftX",
347
+ type: "range",
348
+ max: 100,
349
+ min: 0,
350
+ step: 0.1,
351
+ label: "Смещение X текста",
352
+ initialValue: NODE_OPTIONS.textShiftX,
353
+ },
354
+ {
355
+ id: "textShiftY",
356
+ type: "range",
357
+ max: 100,
358
+ min: 0,
359
+ step: 0.1,
360
+ label: "Смещение Y текста",
361
+ initialValue: 4,
362
+ },
363
+ {
364
+ id: "textWeight",
365
+ type: "range",
366
+ max: 1000,
367
+ min: 100,
368
+ step: 100,
369
+ label: "Жирность текста",
370
+ initialValue: NODE_OPTIONS.textWeight,
371
+ },
372
+ {
373
+ id: "textGap",
374
+ type: "range",
375
+ max: 30,
376
+ min: 0,
377
+ step: 0.1,
378
+ label: "Расстояние между строками",
379
+ initialValue: NODE_OPTIONS.textGap,
380
+ },
381
+ {
382
+ id: "highlightFading",
383
+ type: "checkbox",
384
+ initialValue: NODE_OPTIONS.highlightFading,
385
+ label: "Анимация затухания",
386
+ },
387
+ {
388
+ id: "highlightColor",
389
+ type: "checkbox",
390
+ initialValue: NODE_OPTIONS.highlightColor,
391
+ label: "Анимация затухания цвета",
392
+ },
393
+ {
394
+ id: "highlightSizing",
395
+ type: "checkbox",
396
+ initialValue: NODE_OPTIONS.highlightSizing,
397
+ label: "Анимация размера",
398
+ },
399
+ {
400
+ id: "highlightTextFading",
401
+ type: "checkbox",
402
+ initialValue: NODE_OPTIONS.highlightTextFading,
403
+ label: "Анимация затухания текста",
404
+ },
405
+ {
406
+ id: "highlightTextSizing",
407
+ type: "checkbox",
408
+ initialValue: NODE_OPTIONS.highlightTextSizing,
409
+ label: "Анимация размера текста",
410
+ },
411
+ ];
412
+ return keys ? NODE_CONTROLS.filter((control) => keys.includes(control.id)) : NODE_CONTROLS;
413
+ }
414
+ function getLinkControls(keys) {
415
+ const LINK_CONTROLS = [
416
+ {
417
+ id: "alpha",
418
+ type: "range",
419
+ max: 1,
420
+ min: 0,
421
+ step: 0.1,
422
+ label: "Прозрачность",
423
+ initialValue: LINK_OPTIONS.alpha,
424
+ },
425
+ {
426
+ id: "width",
427
+ type: "range",
428
+ max: 10,
429
+ min: 0.1,
430
+ step: 0.1,
431
+ label: "Толщина",
432
+ initialValue: 0.1,
433
+ },
434
+ {
435
+ id: "arrowAlpha",
436
+ type: "range",
437
+ max: 1,
438
+ min: 0,
439
+ step: 0.1,
440
+ label: "Прозрачность стрелки",
441
+ initialValue: LINK_OPTIONS.arrowAlpha,
442
+ },
443
+ {
444
+ id: "arrowSize",
445
+ type: "range",
446
+ max: 10,
447
+ min: 0.1,
448
+ step: 0.1,
449
+ label: "Размер стрелки",
450
+ initialValue: LINK_OPTIONS.arrowSize,
451
+ },
452
+ {
453
+ id: "particleAlpha",
454
+ type: "range",
455
+ max: 1,
456
+ min: 0,
457
+ step: 0.1,
458
+ label: "Прозрачность частиц",
459
+ initialValue: LINK_OPTIONS.particleAlpha,
460
+ },
461
+ {
462
+ id: "particleRadius",
463
+ type: "range",
464
+ max: 10,
465
+ min: 0.1,
466
+ step: 0.1,
467
+ label: "Радиус частиц",
468
+ initialValue: LINK_OPTIONS.particleRadius,
469
+ },
470
+ {
471
+ id: "particleCount",
472
+ type: "range",
473
+ max: 20,
474
+ min: 1,
475
+ step: 1,
476
+ label: "Количество частиц",
477
+ initialValue: LINK_OPTIONS.particleCount,
478
+ },
479
+ {
480
+ id: "particleSteps",
481
+ type: "range",
482
+ max: 200,
483
+ min: 1,
484
+ step: 1,
485
+ label: "Количество кадров у частиц",
486
+ initialValue: LINK_OPTIONS.particleSteps,
487
+ },
488
+ {
489
+ id: "color",
490
+ type: "color",
491
+ initialValue: "#000000FF",
492
+ label: "Цвет",
493
+ },
494
+ {
495
+ id: "arrowColor",
496
+ type: "color",
497
+ initialValue: "#000000FF",
498
+ label: "Цвет стрелки",
499
+ },
500
+ {
501
+ id: "particleColor",
502
+ 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,
523
+ },
524
+ {
525
+ id: "arrowHighlightFading",
526
+ type: "checkbox",
527
+ label: "Анимация затухания стрелки",
528
+ initialValue: LINK_OPTIONS.arrowHighlightFading,
529
+ },
530
+ {
531
+ id: "arrowReverseAppear",
532
+ type: "checkbox",
533
+ label: "Появление стрелки при анимации",
534
+ initialValue: LINK_OPTIONS.arrowReverseAppear,
535
+ },
536
+ ];
537
+ return keys ? LINK_CONTROLS.filter((control) => keys.includes(control.id)) : LINK_CONTROLS;
538
+ }
539
+
540
+ export { getForceControls, getGraphControls, getLinkControls, getNodeControls };
541
+ //# sourceMappingURL=get-controls-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-controls-info.js","sources":["../../../src/lib/get-controls-info.ts"],"sourcesContent":["import {\n FORCE_SETTINGS,\n GRAPH_SETTINGS,\n LINK_OPTIONS,\n NODE_OPTIONS,\n} from \"@/module/GraphCanvas/constants\";\nimport type {\n ForceSettingsInterface,\n GraphSettingsInterface,\n LinkOptionsInterface,\n NodeOptionsInterface,\n} from \"../module/GraphCanvas\";\nimport type { GraphSettingsInputInterface } from \"../types/controls\";\n\nexport function getForceControls<\n NodeData extends Record<string, unknown>,\n LinkData extends Record<string, unknown>,\n>(keys?: (keyof ForceSettingsInterface<NodeData, LinkData>)[]) {\n const FORCE_CONTROLS: GraphSettingsInputInterface<\n keyof ForceSettingsInterface<NodeData, LinkData>\n >[] = [\n {\n id: \"centerStrength\",\n initialValue: FORCE_SETTINGS.centerStrength,\n label: \"Граница центра\",\n max: 1,\n min: 0,\n step: 0.01,\n type: \"range\",\n },\n {\n id: \"collideStrength\",\n initialValue: FORCE_SETTINGS.collideStrength,\n label: \"Сила отталкивания\",\n max: 1,\n min: 0,\n step: 0.01,\n type: \"range\",\n },\n {\n id: \"collideAdditionalRadius\",\n initialValue: FORCE_SETTINGS.collideAdditionalRadius,\n label: \"Радиус отталкивания\",\n max: 300,\n min: 0,\n step: 0.1,\n type: \"range\",\n },\n {\n id: \"collideIterations\",\n initialValue: FORCE_SETTINGS.collideIterations,\n label: \"Итерации отталкивания\",\n max: 10,\n min: 0,\n step: 1,\n type: \"range\",\n },\n {\n id: \"chargeStrength\",\n initialValue:\n typeof FORCE_SETTINGS.chargeStrength === \"number\" ? FORCE_SETTINGS.chargeStrength : 0,\n label: \"Гравитация\",\n max: 0,\n min: -300,\n step: 0.1,\n type: \"range\",\n },\n {\n type: \"range\",\n id: \"xForce\",\n min: 0,\n max: 1,\n step: 0.01,\n label: \"Граница X\",\n initialValue: typeof FORCE_SETTINGS.xForce === \"number\" ? FORCE_SETTINGS.xForce : 0,\n },\n {\n type: \"range\",\n id: \"yForce\",\n min: 0,\n max: 1,\n step: 0.01,\n label: \"Граница Y\",\n initialValue: typeof FORCE_SETTINGS.yForce === \"number\" ? FORCE_SETTINGS.yForce : 0,\n },\n {\n type: \"range\",\n id: \"xStrength\",\n min: 0,\n max: 1,\n step: 0.01,\n label: \"Гравитация X\",\n initialValue: typeof FORCE_SETTINGS.xStrength === \"number\" ? FORCE_SETTINGS.xStrength : 0,\n },\n {\n type: \"range\",\n id: \"yStrength\",\n min: 0,\n max: 1,\n step: 0.01,\n label: \"Гравитация Y\",\n initialValue: typeof FORCE_SETTINGS.yStrength === \"number\" ? FORCE_SETTINGS.yStrength : 0,\n },\n {\n type: \"range\",\n id: \"linkStrength\",\n min: 0,\n max: 1,\n step: 0.01,\n label: \"Натяжение связей\",\n initialValue:\n typeof FORCE_SETTINGS.linkStrength === \"number\" ? FORCE_SETTINGS.linkStrength : 0,\n },\n {\n type: \"range\",\n id: \"linkDistance\",\n min: 0,\n max: 300,\n step: 0.1,\n label: \"Расстояние связей\",\n initialValue:\n typeof FORCE_SETTINGS.linkDistance === \"number\" ? FORCE_SETTINGS.linkDistance : 30,\n },\n {\n id: \"collideOn\",\n type: \"checkbox\",\n initialValue: FORCE_SETTINGS.collideOn,\n label: \"Отталкивание\",\n },\n ];\n\n return keys ? FORCE_CONTROLS.filter((control) => keys.includes(control.id)) : FORCE_CONTROLS;\n}\n\nexport function getGraphControls<NodeData extends Record<string, unknown>>(\n keys?: (keyof GraphSettingsInterface<NodeData>)[],\n) {\n const GRAPH_CONTROLS: GraphSettingsInputInterface<keyof GraphSettingsInterface<NodeData>>[] = [\n {\n id: \"highlightSizingAdditional\",\n initialValue: GRAPH_SETTINGS.highlightSizingAdditional,\n max: 10,\n min: 0.1,\n step: 0.01,\n type: \"range\",\n label: \"Дополнительный размер при анимации\",\n },\n {\n id: \"highlightColorFadingMin\",\n initialValue: GRAPH_SETTINGS.highlightColorFadingMin,\n max: 1,\n min: 0.01,\n step: 0.01,\n type: \"range\",\n label: \"Граница затухания цвета\",\n },\n {\n id: \"highlightTextShiftXAdditional\",\n initialValue: GRAPH_SETTINGS.highlightTextShiftXAdditional,\n max: 50,\n min: 0,\n step: 0.1,\n type: \"range\",\n label: \"Смещение текста по X при анимации\",\n },\n {\n id: \"highlightTextShiftYAdditional\",\n initialValue: GRAPH_SETTINGS.highlightTextShiftYAdditional,\n max: 50,\n min: 0,\n step: 0.1,\n type: \"range\",\n label: \"Смещение текста по Y при анимации\",\n },\n {\n id: \"highlightTextSizingAdditional\",\n initialValue: GRAPH_SETTINGS.highlightTextSizingAdditional,\n max: 10,\n min: 0.1,\n step: 0.1,\n type: \"range\",\n label: \"Увеличение текста при анимации\",\n },\n {\n id: \"highlightTextWeightAdditional\",\n initialValue: GRAPH_SETTINGS.highlightTextWeightAdditional,\n max: 1000,\n min: 0,\n step: 100,\n type: \"range\",\n label: \"Увеличение жирности текста при анимации\",\n },\n {\n id: \"highlightTextWidthAdditional\",\n initialValue: GRAPH_SETTINGS.highlightTextWidthAdditional,\n max: 100,\n min: 0,\n step: 0.1,\n type: \"range\",\n label: \"Увеличение ширины текста при анимации\",\n },\n {\n id: \"highlightTextFadingMin\",\n initialValue: GRAPH_SETTINGS.highlightTextFadingMin,\n max: 1,\n min: 0,\n step: 0.01,\n type: \"range\",\n label: \"Граница затухания текста при анимации\",\n },\n {\n id: \"highlightLinkFadingMin\",\n initialValue: GRAPH_SETTINGS.highlightLinkFadingMin,\n max: 1,\n min: 0,\n step: 0.01,\n type: \"range\",\n label: \"Граница затухания связи при анимации\",\n },\n {\n id: \"highlightFadingMin\",\n initialValue: GRAPH_SETTINGS.highlightFadingMin,\n max: 1,\n min: 0,\n step: 0.01,\n type: \"range\",\n label: \"Граница затухания ноды при анимации\",\n },\n {\n id: \"highlightArrowFadingMin\",\n initialValue: GRAPH_SETTINGS.highlightArrowFadingMin,\n max: 1,\n min: 0,\n step: 0.01,\n type: \"range\",\n label: \"Граница затухания стрелки при анимации\",\n },\n {\n id: \"highlightDownStep\",\n initialValue: GRAPH_SETTINGS.highlightDownStep,\n max: 1,\n min: 0.01,\n step: 0.01,\n type: \"range\",\n label: \"Скорость отмены анимации\",\n },\n {\n id: \"highlightUpStep\",\n initialValue: GRAPH_SETTINGS.highlightUpStep,\n max: 1,\n min: 0.01,\n step: 0.01,\n type: \"range\",\n label: \"Скорость применения анимации\",\n },\n {\n id: \"nodeRadiusInitial\",\n initialValue: GRAPH_SETTINGS.nodeRadiusInitial,\n max: 50,\n min: 0.1,\n step: 0.1,\n type: \"range\",\n label: \"Изначальный радиус ноды\",\n },\n {\n id: \"nodeRadiusCoefficient\",\n initialValue: GRAPH_SETTINGS.nodeRadiusCoefficient,\n max: 100,\n min: 0.1,\n step: 0.1,\n type: \"range\",\n label: \"Количество связей для увеличения радиуса\",\n },\n {\n id: \"nodeRadiusFactor\",\n initialValue: GRAPH_SETTINGS.nodeRadiusFactor,\n max: 50,\n min: 0.1,\n step: 0.1,\n type: \"range\",\n label: \"Коэффициент увеличения радиуса\",\n },\n {\n id: \"highlightOnlyRoot\",\n type: \"checkbox\",\n initialValue: GRAPH_SETTINGS.highlightOnlyRoot,\n label: \"Дополнительная анимация только главное цели\",\n },\n {\n id: \"stickAfterDrag\",\n type: \"checkbox\",\n initialValue: GRAPH_SETTINGS.stickAfterDrag,\n label: \"Фиксировании ноды после перетаскивания\",\n },\n {\n id: \"highlightByHover\",\n type: \"checkbox\",\n initialValue: GRAPH_SETTINGS.highlightByHover,\n label: \"Анимации при наведении\",\n },\n {\n id: \"nodeRadiusFlexible\",\n type: \"checkbox\",\n initialValue: GRAPH_SETTINGS.nodeRadiusFlexible,\n label: \"Гибкий радиус ноды\",\n },\n ];\n\n return keys ? GRAPH_CONTROLS.filter((control) => keys.includes(control.id)) : GRAPH_CONTROLS;\n}\n\nexport function getNodeControls<\n NodeData extends Record<string, unknown>,\n LinkData extends Record<string, unknown>,\n>(keys?: (keyof NodeOptionsInterface<NodeData, LinkData>)[]) {\n const NODE_CONTROLS: GraphSettingsInputInterface<\n keyof NodeOptionsInterface<NodeData, LinkData>\n >[] = [\n {\n id: \"alpha\",\n type: \"range\",\n max: 1,\n min: 0,\n step: 0.1,\n label: \"Прозрачность\",\n initialValue: NODE_OPTIONS.alpha,\n },\n\n {\n id: \"radius\",\n type: \"range\",\n max: 50,\n min: 1,\n step: 1,\n label: \"Радиус\",\n initialValue: NODE_OPTIONS.radius,\n },\n {\n id: \"borderWidth\",\n type: \"range\",\n max: 5,\n min: 0,\n step: 0.1,\n label: \"Толщина границы\",\n initialValue: NODE_OPTIONS.borderWidth,\n },\n {\n id: \"borderColor\",\n type: \"color\",\n initialValue: \"#000000FF\",\n label: \"Цвет границы\",\n },\n {\n id: \"color\",\n type: \"color\",\n initialValue: \"#000000FF\",\n label: \"Цвет\",\n },\n {\n id: \"textAlpha\",\n type: \"range\",\n max: 1,\n min: 0,\n step: 0.1,\n label: \"Прозрачность текста\",\n initialValue: NODE_OPTIONS.textAlpha,\n },\n {\n id: \"textWidth\",\n type: \"range\",\n max: 200,\n min: 5,\n step: 1,\n label: \"Ширина текста\",\n initialValue: NODE_OPTIONS.textWidth,\n },\n {\n id: \"textShiftX\",\n type: \"range\",\n max: 100,\n min: 0,\n step: 0.1,\n label: \"Смещение X текста\",\n initialValue: NODE_OPTIONS.textShiftX,\n },\n {\n id: \"textShiftY\",\n type: \"range\",\n max: 100,\n min: 0,\n step: 0.1,\n label: \"Смещение Y текста\",\n initialValue: 4,\n },\n {\n id: \"textWeight\",\n type: \"range\",\n max: 1000,\n min: 100,\n step: 100,\n label: \"Жирность текста\",\n initialValue: NODE_OPTIONS.textWeight,\n },\n {\n id: \"textGap\",\n type: \"range\",\n max: 30,\n min: 0,\n step: 0.1,\n label: \"Расстояние между строками\",\n initialValue: NODE_OPTIONS.textGap,\n },\n {\n id: \"highlightFading\",\n type: \"checkbox\",\n initialValue: NODE_OPTIONS.highlightFading,\n label: \"Анимация затухания\",\n },\n {\n id: \"highlightColor\",\n type: \"checkbox\",\n initialValue: NODE_OPTIONS.highlightColor,\n label: \"Анимация затухания цвета\",\n },\n {\n id: \"highlightSizing\",\n type: \"checkbox\",\n initialValue: NODE_OPTIONS.highlightSizing,\n label: \"Анимация размера\",\n },\n {\n id: \"highlightTextFading\",\n type: \"checkbox\",\n initialValue: NODE_OPTIONS.highlightTextFading,\n label: \"Анимация затухания текста\",\n },\n {\n id: \"highlightTextSizing\",\n type: \"checkbox\",\n initialValue: NODE_OPTIONS.highlightTextSizing,\n label: \"Анимация размера текста\",\n },\n ];\n\n return keys ? NODE_CONTROLS.filter((control) => keys.includes(control.id)) : NODE_CONTROLS;\n}\n\nexport function getLinkControls<\n NodeData extends Record<string, unknown>,\n LinkData extends Record<string, unknown>,\n>(keys?: (keyof LinkOptionsInterface<NodeData, LinkData>)[]) {\n const LINK_CONTROLS: GraphSettingsInputInterface<\n keyof LinkOptionsInterface<NodeData, LinkData>\n >[] = [\n {\n id: \"alpha\",\n type: \"range\",\n max: 1,\n min: 0,\n step: 0.1,\n label: \"Прозрачность\",\n initialValue: LINK_OPTIONS.alpha,\n },\n {\n id: \"width\",\n type: \"range\",\n max: 10,\n min: 0.1,\n step: 0.1,\n label: \"Толщина\",\n initialValue: 0.1,\n },\n {\n id: \"arrowAlpha\",\n type: \"range\",\n max: 1,\n min: 0,\n step: 0.1,\n label: \"Прозрачность стрелки\",\n initialValue: LINK_OPTIONS.arrowAlpha,\n },\n {\n id: \"arrowSize\",\n type: \"range\",\n max: 10,\n min: 0.1,\n step: 0.1,\n label: \"Размер стрелки\",\n initialValue: LINK_OPTIONS.arrowSize,\n },\n {\n id: \"particleAlpha\",\n type: \"range\",\n max: 1,\n min: 0,\n step: 0.1,\n label: \"Прозрачность частиц\",\n initialValue: LINK_OPTIONS.particleAlpha,\n },\n {\n id: \"particleRadius\",\n type: \"range\",\n max: 10,\n min: 0.1,\n step: 0.1,\n label: \"Радиус частиц\",\n initialValue: LINK_OPTIONS.particleRadius,\n },\n {\n id: \"particleCount\",\n type: \"range\",\n max: 20,\n min: 1,\n step: 1,\n label: \"Количество частиц\",\n initialValue: LINK_OPTIONS.particleCount,\n },\n {\n id: \"particleSteps\",\n type: \"range\",\n max: 200,\n min: 1,\n step: 1,\n label: \"Количество кадров у частиц\",\n initialValue: LINK_OPTIONS.particleSteps,\n },\n {\n id: \"color\",\n type: \"color\",\n initialValue: \"#000000FF\",\n label: \"Цвет\",\n },\n {\n id: \"arrowColor\",\n type: \"color\",\n initialValue: \"#000000FF\",\n label: \"Цвет стрелки\",\n },\n {\n id: \"particleColor\",\n type: \"color\",\n initialValue: \"#000000FF\",\n label: \"Цвет частиц\",\n },\n {\n id: \"highlightFading\",\n type: \"checkbox\",\n label: \"Анимация Затухания\",\n initialValue: LINK_OPTIONS.highlightFading,\n },\n {\n id: \"pretty\",\n type: \"checkbox\",\n label: \"Обсчет соединения\",\n initialValue: LINK_OPTIONS.pretty,\n },\n {\n id: \"arrow\",\n type: \"checkbox\",\n label: \"Стрелка\",\n initialValue: LINK_OPTIONS.arrow,\n },\n {\n id: \"arrowHighlightFading\",\n type: \"checkbox\",\n label: \"Анимация затухания стрелки\",\n initialValue: LINK_OPTIONS.arrowHighlightFading,\n },\n {\n id: \"arrowReverseAppear\",\n type: \"checkbox\",\n label: \"Появление стрелки при анимации\",\n initialValue: LINK_OPTIONS.arrowReverseAppear,\n },\n ];\n\n return keys ? LINK_CONTROLS.filter((control) => keys.includes(control.id)) : LINK_CONTROLS;\n}\n"],"names":[],"mappings":"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"}