@esfaenza/es-diagrams 16.2.26 → 17.3.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 (59) hide show
  1. package/esm2022/esfaenza-es-diagrams.mjs +4 -4
  2. package/esm2022/lib/components/es-diagram.component.mjs +537 -537
  3. package/esm2022/lib/esdiagram.module.mjs +31 -31
  4. package/esm2022/lib/extensions/ReactiveExtensions.mjs +35 -35
  5. package/esm2022/lib/extensions/ResizeSensor.mjs +71 -71
  6. package/esm2022/lib/models/EsDiagramModuleConfig.mjs +5 -5
  7. package/esm2022/lib/models/component/contextmenu/ContextMenuCommand.mjs +5 -5
  8. package/esm2022/lib/models/component/contextmenu/ContextMenuOptions.mjs +6 -6
  9. package/esm2022/lib/models/component/grouping/ExpandCollapseOptions.mjs +5 -5
  10. package/esm2022/lib/models/component/nodes/NodeHTMLTemplate.mjs +5 -5
  11. package/esm2022/lib/models/component/nodes/NodeTemplate.mjs +5 -5
  12. package/esm2022/lib/models/component/nodes/ZoomLevelBasedTemplate.mjs +5 -5
  13. package/esm2022/lib/models/layouts/BreadthFirstLayoutOptionsImpl.mjs +34 -34
  14. package/esm2022/lib/models/layouts/CircleLayoutOptionsImpl.mjs +26 -26
  15. package/esm2022/lib/models/layouts/ConcentricLayoutOptionsImpl.mjs +63 -63
  16. package/esm2022/lib/models/layouts/CoseLayoutOptionsImpl.mjs +82 -82
  17. package/esm2022/lib/models/layouts/DagreLayoutOptionsImpl.mjs +51 -51
  18. package/esm2022/lib/models/layouts/GridLayoutOptionsImpl.mjs +37 -37
  19. package/esm2022/lib/models/layouts/NullLayoutOptionsImpl.mjs +14 -14
  20. package/esm2022/lib/models/layouts/PresetLayoutOptionsImpl.mjs +23 -23
  21. package/esm2022/lib/models/layouts/RandomLayoutOptionsImpl.mjs +35 -35
  22. package/esm2022/lib/models/layouts/base/AnimateLayoutOptionsImpl.mjs +41 -41
  23. package/esm2022/lib/models/layouts/base/BaseLayoutOptionsImpl.mjs +17 -17
  24. package/esm2022/lib/models/layouts/base/ShapedLayoutOptionsImpl.mjs +47 -47
  25. package/esm2022/lib/services/es-diagram.dispatcher.mjs +89 -89
  26. package/esm2022/lib/services/es-diagram.service.mjs +106 -106
  27. package/esm2022/lib/tokens.mjs +5 -5
  28. package/esm2022/public-api.mjs +23 -23
  29. package/fesm2022/esfaenza-es-diagrams.mjs +1320 -1320
  30. package/fesm2022/esfaenza-es-diagrams.mjs.map +1 -1
  31. package/index.d.ts +5 -5
  32. package/lib/components/es-diagram.component.d.ts +305 -305
  33. package/lib/esdiagram.module.d.ts +12 -12
  34. package/lib/extensions/ReactiveExtensions.d.ts +20 -20
  35. package/lib/extensions/ResizeSensor.d.ts +43 -43
  36. package/lib/models/EsDiagramModuleConfig.d.ts +9 -9
  37. package/lib/models/component/contextmenu/ContextMenuCommand.d.ts +27 -27
  38. package/lib/models/component/contextmenu/ContextMenuOptions.d.ts +79 -79
  39. package/lib/models/component/grouping/ExpandCollapseOptions.d.ts +22 -22
  40. package/lib/models/component/nodes/NodeHTMLTemplate.d.ts +14 -14
  41. package/lib/models/component/nodes/NodeTemplate.d.ts +13 -13
  42. package/lib/models/component/nodes/ZoomLevelBasedTemplate.d.ts +14 -14
  43. package/lib/models/layouts/BreadthFirstLayoutOptionsImpl.d.ts +40 -40
  44. package/lib/models/layouts/CircleLayoutOptionsImpl.d.ts +28 -28
  45. package/lib/models/layouts/ConcentricLayoutOptionsImpl.d.ts +74 -74
  46. package/lib/models/layouts/CoseLayoutOptionsImpl.d.ts +80 -80
  47. package/lib/models/layouts/DagreLayoutOptionsImpl.d.ts +48 -48
  48. package/lib/models/layouts/GridLayoutOptionsImpl.d.ts +39 -39
  49. package/lib/models/layouts/NullLayoutOptionsImpl.d.ts +12 -12
  50. package/lib/models/layouts/PresetLayoutOptionsImpl.d.ts +37 -37
  51. package/lib/models/layouts/RandomLayoutOptionsImpl.d.ts +33 -33
  52. package/lib/models/layouts/base/AnimateLayoutOptionsImpl.d.ts +40 -40
  53. package/lib/models/layouts/base/BaseLayoutOptionsImpl.d.ts +15 -15
  54. package/lib/models/layouts/base/ShapedLayoutOptionsImpl.d.ts +46 -46
  55. package/lib/services/es-diagram.dispatcher.d.ts +44 -44
  56. package/lib/services/es-diagram.service.d.ts +51 -51
  57. package/lib/tokens.d.ts +5 -5
  58. package/package.json +3 -3
  59. package/public-api.d.ts +20 -20
@@ -1,64 +1,64 @@
1
- /**
2
- * Default per l'implementazione dell'algoritmo Concentric
3
- */
4
- export class ConcentricLayoutOptionsImpl {
5
- constructor() {
6
- /**
7
- * Nome dell'algoritmo di layouting
8
- */
9
- this.name = 'concentric';
10
- /**
11
- * Angolo da cui i nodi partono, in radianti (Default: **3 / 2 * Math.PI**)
12
- */
13
- this.startAngle = 3 / 2 * Math.PI;
14
- /**
15
- * Include o esclude le dimensioni delle label dei nodi nel calcolo delle posizioni
16
- */
17
- this.nodeDimensionsIncludeLabels = true;
18
- /**
19
- * Indica se i livelli devono essere o non essere equidistanti, potrebbe causare overflow dal contenitore
20
- */
21
- this.equidistant = false;
22
- /**
23
- * Distanza minima dall'esterno dei nodi, utilizzato per aggiustare il raggio
24
- */
25
- this.minNodeSpacingnumber = 10;
26
- /**
27
- * Specifica le dimensioni esatte al cui interno effettuare il layouting, specificato come **{ x1, y1, x2, y2 }** o **{ x1, y1, w, h }**
28
- */
29
- this.boundingBox = null;
30
- /**
31
- * Altezza dell'area di layout (sovrascrive quella del contenitore)
32
- */
33
- this.height = null;
34
- /**
35
- * Larghezza dell'area di layout (sovrascrive quella del contenitore)
36
- */
37
- this.width = null;
38
- /**
39
- * Moltiplicatore delle dimensioni per espandere/restringere le dimensioni globali del diagramma
40
- */
41
- this.spacingFactor = 1;
42
- }
43
- /**
44
- * Funzione di cui si può fare override per assegnare un valore ad ogni nodo. I nodi con valore più alto saranno piazzati verso il centro
45
- *
46
- * @param {any} node Nodo
47
- *
48
- * @returns {number} Valore su cui ordinare i nodi verso il centro
49
- */
50
- concentric(node) {
51
- return node.degree();
52
- }
53
- /**
54
- * Funzione di cui si può fare override per calcolare la variazione dei valori concentrici per ogni livello
55
- *
56
- * @param {any} nodes Gruppo di nodi del livello
57
- *
58
- * @returns {number} Variazione dei valori concentrici
59
- */
60
- levelWidth(nodes) {
61
- return nodes.maxDegree() / 4;
62
- }
63
- }
1
+ /**
2
+ * Default per l'implementazione dell'algoritmo Concentric
3
+ */
4
+ export class ConcentricLayoutOptionsImpl {
5
+ constructor() {
6
+ /**
7
+ * Nome dell'algoritmo di layouting
8
+ */
9
+ this.name = 'concentric';
10
+ /**
11
+ * Angolo da cui i nodi partono, in radianti (Default: **3 / 2 * Math.PI**)
12
+ */
13
+ this.startAngle = 3 / 2 * Math.PI;
14
+ /**
15
+ * Include o esclude le dimensioni delle label dei nodi nel calcolo delle posizioni
16
+ */
17
+ this.nodeDimensionsIncludeLabels = true;
18
+ /**
19
+ * Indica se i livelli devono essere o non essere equidistanti, potrebbe causare overflow dal contenitore
20
+ */
21
+ this.equidistant = false;
22
+ /**
23
+ * Distanza minima dall'esterno dei nodi, utilizzato per aggiustare il raggio
24
+ */
25
+ this.minNodeSpacingnumber = 10;
26
+ /**
27
+ * Specifica le dimensioni esatte al cui interno effettuare il layouting, specificato come **{ x1, y1, x2, y2 }** o **{ x1, y1, w, h }**
28
+ */
29
+ this.boundingBox = null;
30
+ /**
31
+ * Altezza dell'area di layout (sovrascrive quella del contenitore)
32
+ */
33
+ this.height = null;
34
+ /**
35
+ * Larghezza dell'area di layout (sovrascrive quella del contenitore)
36
+ */
37
+ this.width = null;
38
+ /**
39
+ * Moltiplicatore delle dimensioni per espandere/restringere le dimensioni globali del diagramma
40
+ */
41
+ this.spacingFactor = 1;
42
+ }
43
+ /**
44
+ * Funzione di cui si può fare override per assegnare un valore ad ogni nodo. I nodi con valore più alto saranno piazzati verso il centro
45
+ *
46
+ * @param {any} node Nodo
47
+ *
48
+ * @returns {number} Valore su cui ordinare i nodi verso il centro
49
+ */
50
+ concentric(node) {
51
+ return node.degree();
52
+ }
53
+ /**
54
+ * Funzione di cui si può fare override per calcolare la variazione dei valori concentrici per ogni livello
55
+ *
56
+ * @param {any} nodes Gruppo di nodi del livello
57
+ *
58
+ * @returns {number} Variazione dei valori concentrici
59
+ */
60
+ levelWidth(nodes) {
61
+ return nodes.maxDegree() / 4;
62
+ }
63
+ }
64
64
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uY2VudHJpY0xheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9Db25jZW50cmljTGF5b3V0T3B0aW9uc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMkJBQTJCO0lBQXhDO1FBRUk7O1dBRUc7UUFDSCxTQUFJLEdBQVcsWUFBWSxDQUFDO1FBWTVCOztXQUVHO1FBQ0gsZUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQU83Qjs7V0FFRztRQUNILGdDQUEyQixHQUFHLElBQUksQ0FBQztRQUVuQzs7V0FFRztRQUNILGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCOztXQUVHO1FBQ0gseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBRTFCOztXQUVHO1FBQ0gsZ0JBQVcsR0FBOEMsSUFBSSxDQUFDO1FBRTlEOztXQUVHO1FBQ0gsV0FBTSxHQUFXLElBQUksQ0FBQztRQUV0Qjs7V0FFRztRQUNILFVBQUssR0FBVyxJQUFJLENBQUM7UUFFckI7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLENBQUMsQ0FBQztJQXVCdEIsQ0FBQztJQXJCRzs7Ozs7O09BTUc7SUFDSCxVQUFVLENBQUMsSUFBMkI7UUFDbEMsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBQyxLQUErQjtRQUN0QyxPQUFPLEtBQUssQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm91bmRpbmdCb3gxMiwgQm91bmRpbmdCb3hXSCB9IGZyb20gXCJjeXRvc2NhcGVcIjtcclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IHBlciBsJ2ltcGxlbWVudGF6aW9uZSBkZWxsJ2FsZ29yaXRtbyBDb25jZW50cmljXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29uY2VudHJpY0xheW91dE9wdGlvbnNJbXBsIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5vbWUgZGVsbCdhbGdvcml0bW8gZGkgbGF5b3V0aW5nXHJcbiAgICAgKi9cclxuICAgIG5hbWU6IHN0cmluZyA9ICdjb25jZW50cmljJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE51bWVybyBkaSByYWRpYW50aSBmcmEgaWwgcHJpbW8gZSBsJ3VsdGltbyBub2RvLiBEaSBkZWZhdWx0IHZpZW5lIHV0aWxpenphdGEgbCdpbnRlcmEgY2lyY29uZmVyZW56YVxyXG4gICAgICovXHJcbiAgICBzd2VlcD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSBhbmRhcmUgaW4gc2Vuc28gb3JhcmlvICgqKnRydWUqKikgbyBhbnRpb3JhcmlvICgqKmZhbHNlKiopXHJcbiAgICAgKi9cclxuICAgIGNsb2Nrd2lzZT86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbmdvbG8gZGEgY3VpIGkgbm9kaSBwYXJ0b25vLCBpbiByYWRpYW50aSAoRGVmYXVsdDogKiozIC8gMiAqIE1hdGguUEkqKilcclxuICAgICAqL1xyXG4gICAgc3RhcnRBbmdsZSA9IDMgLyAyICogTWF0aC5QSTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSBhZGF0dGFyZSBhbCBjb250ZW5pdG9yZVxyXG4gICAgICovXHJcbiAgICBmaXQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmNsdWRlIG8gZXNjbHVkZSBsZSBkaW1lbnNpb25pIGRlbGxlIGxhYmVsIGRlaSBub2RpIG5lbCBjYWxjb2xvIGRlbGxlIHBvc2l6aW9uaVxyXG4gICAgICovXHJcbiAgICBub2RlRGltZW5zaW9uc0luY2x1ZGVMYWJlbHMgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGkgbGl2ZWxsaSBkZXZvbm8gZXNzZXJlIG8gbm9uIGVzc2VyZSBlcXVpZGlzdGFudGksIHBvdHJlYmJlIGNhdXNhcmUgb3ZlcmZsb3cgZGFsIGNvbnRlbml0b3JlXHJcbiAgICAgKi9cclxuICAgIGVxdWlkaXN0YW50ID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXN0YW56YSBtaW5pbWEgZGFsbCdlc3Rlcm5vIGRlaSBub2RpLCB1dGlsaXp6YXRvIHBlciBhZ2dpdXN0YXJlIGlsIHJhZ2dpb1xyXG4gICAgICovXHJcbiAgICBtaW5Ob2RlU3BhY2luZ251bWJlciA9IDEwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3BlY2lmaWNhIGxlIGRpbWVuc2lvbmkgZXNhdHRlIGFsIGN1aSBpbnRlcm5vIGVmZmV0dHVhcmUgaWwgbGF5b3V0aW5nLCBzcGVjaWZpY2F0byBjb21lICoqeyB4MSwgeTEsIHgyLCB5MiB9KiogbyAqKnsgeDEsIHkxLCB3LCBoIH0qKlxyXG4gICAgICovXHJcbiAgICBib3VuZGluZ0JveDogQm91bmRpbmdCb3gxMiB8IEJvdW5kaW5nQm94V0ggfCB1bmRlZmluZWQgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWx0ZXp6YSBkZWxsJ2FyZWEgZGkgbGF5b3V0IChzb3ZyYXNjcml2ZSBxdWVsbGEgZGVsIGNvbnRlbml0b3JlKVxyXG4gICAgICovXHJcbiAgICBoZWlnaHQ6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMYXJnaGV6emEgZGVsbCdhcmVhIGRpIGxheW91dCAoc292cmFzY3JpdmUgcXVlbGxhIGRlbCBjb250ZW5pdG9yZSlcclxuICAgICAqL1xyXG4gICAgd2lkdGg6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb2x0aXBsaWNhdG9yZSBkZWxsZSBkaW1lbnNpb25pIHBlciBlc3BhbmRlcmUvcmVzdHJpbmdlcmUgbGUgZGltZW5zaW9uaSBnbG9iYWxpIGRlbCBkaWFncmFtbWFcclxuICAgICAqL1xyXG4gICAgc3BhY2luZ0ZhY3RvciA9IDE7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW56aW9uZSBkaSBjdWkgc2kgcHXDsiBmYXJlIG92ZXJyaWRlIHBlciBhc3NlZ25hcmUgdW4gdmFsb3JlIGFkIG9nbmkgbm9kby4gSSBub2RpIGNvbiB2YWxvcmUgcGnDuSBhbHRvIHNhcmFubm8gcGlhenphdGkgdmVyc28gaWwgY2VudHJvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBub2RlIE5vZG9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gVmFsb3JlIHN1IGN1aSBvcmRpbmFyZSBpIG5vZGkgdmVyc28gaWwgY2VudHJvXHJcbiAgICAgKi9cclxuICAgIGNvbmNlbnRyaWMobm9kZTogeyBkZWdyZWUoKTogbnVtYmVyOyB9KTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gbm9kZS5kZWdyZWUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bnppb25lIGRpIGN1aSBzaSBwdcOyIGZhcmUgb3ZlcnJpZGUgcGVyIGNhbGNvbGFyZSBsYSB2YXJpYXppb25lIGRlaSB2YWxvcmkgY29uY2VudHJpY2kgcGVyIG9nbmkgbGl2ZWxsb1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbm9kZXMgR3J1cHBvIGRpIG5vZGkgZGVsIGxpdmVsbG9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gVmFyaWF6aW9uZSBkZWkgdmFsb3JpIGNvbmNlbnRyaWNpXHJcbiAgICAgKi9cclxuICAgIGxldmVsV2lkdGgobm9kZXM6IHsgbWF4RGVncmVlKCk6IG51bWJlcjsgfSk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGVzLm1heERlZ3JlZSgpIC8gNDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,83 +1,83 @@
1
- import { ShapedLayoutOptionsImpl } from './base/ShapedLayoutOptionsImpl';
2
- /**
3
- * Default per l'implementazione dell'algoritmo Cose
4
- */
5
- export class CoseLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
6
- /** @ignore */
7
- constructor() {
8
- super();
9
- /**
10
- * Nome dell'algoritmo di layouting
11
- */
12
- this.name = 'cose';
13
- /**
14
- * Se **animate** è **true**, l'animazione parte solo dopo questo numero di millisecondi (Evita flickering su animazioni veloci)
15
- */
16
- this.animationThreshold = 250;
17
- /**
18
- * Numero di iterazioni fra aggiornamenti consecutivi della posizione a schermo
19
- */
20
- this.refresh = 20;
21
- /**
22
- * Se **true** la posizione iniziale dei nodi è casuale, se **false** utilizza la posizione originale
23
- */
24
- this.randomize = false;
25
- /**
26
- * Spazio extra fra i componenti di un grafo non-compound
27
- */
28
- this.componentSpacing = 40;
29
- /**
30
- * Moltiplicatore della repulsione fra nodi in caso di overlap
31
- */
32
- this.nodeOverlap = 4;
33
- /**
34
- * Moltiplicatore di nesting per il calcolo della lunghezza ideale dei collegamenti nested
35
- */
36
- this.nestingFactor = 1.2;
37
- /**
38
- * Costante di gravità
39
- */
40
- this.gravity = 1;
41
- /**
42
- * Numero massimo di iterazioni da eseguire
43
- */
44
- this.numIter = 1000;
45
- /**
46
- * Temperatura iniziale (massima distanza fra i nodi)
47
- */
48
- this.initialTemp = 1000;
49
- /**
50
- * Fattore di raffreddamento. Ad ogni iterazione verrà sottratto ad **initialTemp**
51
- */
52
- this.coolingFactor = 0.99;
53
- /**
54
- * Soglia minima di temperatura. Una volta raggiunta il layout si considera terminato
55
- */
56
- this.minTemp = 1.0;
57
- /**
58
- * Moltiplicatore della repulsione fra nodi in caso di assenza di overlap. Funzione overrideabile per ogni node
59
- *
60
- * @param {any} node Nodo
61
- *
62
- * @returns {number} Moltiplicazione di repulsione
63
- */
64
- this.nodeRepulsion = (node) => 2048;
65
- /**
66
- * Lunghezza ideale dei collegamenti non nested. Funzione overrideabile per ogni collegamento
67
- *
68
- * @param {any} edge Collegamento
69
- *
70
- * @returns {number} Lunghezza ideale
71
- */
72
- this.idealEdgeLength = (edge) => 32;
73
- /**
74
- * Divisore per calcolare le forze applicate ad un collegamento. Funzione overrideabile per ogni collegamento
75
- *
76
- * @param {any} edge Collegamento
77
- *
78
- * @returns {number} Indice di elasticità
79
- */
80
- this.edgeElasticity = (edge) => 32;
81
- }
82
- }
1
+ import { ShapedLayoutOptionsImpl } from './base/ShapedLayoutOptionsImpl';
2
+ /**
3
+ * Default per l'implementazione dell'algoritmo Cose
4
+ */
5
+ export class CoseLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
6
+ /** @ignore */
7
+ constructor() {
8
+ super();
9
+ /**
10
+ * Nome dell'algoritmo di layouting
11
+ */
12
+ this.name = 'cose';
13
+ /**
14
+ * Se **animate** è **true**, l'animazione parte solo dopo questo numero di millisecondi (Evita flickering su animazioni veloci)
15
+ */
16
+ this.animationThreshold = 250;
17
+ /**
18
+ * Numero di iterazioni fra aggiornamenti consecutivi della posizione a schermo
19
+ */
20
+ this.refresh = 20;
21
+ /**
22
+ * Se **true** la posizione iniziale dei nodi è casuale, se **false** utilizza la posizione originale
23
+ */
24
+ this.randomize = false;
25
+ /**
26
+ * Spazio extra fra i componenti di un grafo non-compound
27
+ */
28
+ this.componentSpacing = 40;
29
+ /**
30
+ * Moltiplicatore della repulsione fra nodi in caso di overlap
31
+ */
32
+ this.nodeOverlap = 4;
33
+ /**
34
+ * Moltiplicatore di nesting per il calcolo della lunghezza ideale dei collegamenti nested
35
+ */
36
+ this.nestingFactor = 1.2;
37
+ /**
38
+ * Costante di gravità
39
+ */
40
+ this.gravity = 1;
41
+ /**
42
+ * Numero massimo di iterazioni da eseguire
43
+ */
44
+ this.numIter = 1000;
45
+ /**
46
+ * Temperatura iniziale (massima distanza fra i nodi)
47
+ */
48
+ this.initialTemp = 1000;
49
+ /**
50
+ * Fattore di raffreddamento. Ad ogni iterazione verrà sottratto ad **initialTemp**
51
+ */
52
+ this.coolingFactor = 0.99;
53
+ /**
54
+ * Soglia minima di temperatura. Una volta raggiunta il layout si considera terminato
55
+ */
56
+ this.minTemp = 1.0;
57
+ /**
58
+ * Moltiplicatore della repulsione fra nodi in caso di assenza di overlap. Funzione overrideabile per ogni node
59
+ *
60
+ * @param {any} node Nodo
61
+ *
62
+ * @returns {number} Moltiplicazione di repulsione
63
+ */
64
+ this.nodeRepulsion = (node) => 2048;
65
+ /**
66
+ * Lunghezza ideale dei collegamenti non nested. Funzione overrideabile per ogni collegamento
67
+ *
68
+ * @param {any} edge Collegamento
69
+ *
70
+ * @returns {number} Lunghezza ideale
71
+ */
72
+ this.idealEdgeLength = (edge) => 32;
73
+ /**
74
+ * Divisore per calcolare le forze applicate ad un collegamento. Funzione overrideabile per ogni collegamento
75
+ *
76
+ * @param {any} edge Collegamento
77
+ *
78
+ * @returns {number} Indice di elasticità
79
+ */
80
+ this.edgeElasticity = (edge) => 32;
81
+ }
82
+ }
83
83
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zZUxheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9Db3NlTGF5b3V0T3B0aW9uc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekU7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsdUJBQXVCO0lBRTlELGNBQWM7SUFDZDtRQUFnQixLQUFLLEVBQUUsQ0FBQztRQUV4Qjs7V0FFRztRQUNILFNBQUksR0FBRyxNQUFNLENBQUM7UUFFZDs7V0FFRztRQUNILHVCQUFrQixHQUFHLEdBQUcsQ0FBQztRQUV6Qjs7V0FFRztRQUNILFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFYjs7V0FFRztRQUNILGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEI7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEI7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQjs7V0FFRztRQUNILGtCQUFhLEdBQUcsR0FBRyxDQUFDO1FBRXBCOztXQUVHO1FBQ0gsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUVaOztXQUVHO1FBQ0gsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmOztXQUVHO1FBQ0gsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkI7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUVyQjs7V0FFRztRQUNILFlBQU8sR0FBRyxHQUFHLENBQUM7UUFFZDs7Ozs7O1dBTUc7UUFDSCxrQkFBYSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFFL0I7Ozs7OztXQU1HO1FBQ0gsb0JBQWUsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRS9COzs7Ozs7V0FNRztRQUNILG1CQUFjLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQXZGTCxDQUFDO0NBd0Y3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoYXBlZExheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi9iYXNlL1NoYXBlZExheW91dE9wdGlvbnNJbXBsJztcclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IHBlciBsJ2ltcGxlbWVudGF6aW9uZSBkZWxsJ2FsZ29yaXRtbyBDb3NlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29zZUxheW91dE9wdGlvbnNJbXBsIGV4dGVuZHMgU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwge1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm9tZSBkZWxsJ2FsZ29yaXRtbyBkaSBsYXlvdXRpbmdcclxuICAgICAqL1xyXG4gICAgbmFtZSA9ICdjb3NlJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlICoqYW5pbWF0ZSoqIMOoICoqdHJ1ZSoqLCBsJ2FuaW1hemlvbmUgcGFydGUgc29sbyBkb3BvIHF1ZXN0byBudW1lcm8gZGkgbWlsbGlzZWNvbmRpIChFdml0YSBmbGlja2VyaW5nIHN1IGFuaW1hemlvbmkgdmVsb2NpKVxyXG4gICAgICovXHJcbiAgICBhbmltYXRpb25UaHJlc2hvbGQgPSAyNTA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOdW1lcm8gZGkgaXRlcmF6aW9uaSBmcmEgYWdnaW9ybmFtZW50aSBjb25zZWN1dGl2aSBkZWxsYSBwb3NpemlvbmUgYSBzY2hlcm1vXHJcbiAgICAgKi9cclxuICAgIHJlZnJlc2ggPSAyMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlICoqdHJ1ZSoqIGxhIHBvc2l6aW9uZSBpbml6aWFsZSBkZWkgbm9kaSDDqCBjYXN1YWxlLCBzZSAqKmZhbHNlKiogdXRpbGl6emEgbGEgcG9zaXppb25lIG9yaWdpbmFsZVxyXG4gICAgICovXHJcbiAgICByYW5kb21pemUgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNwYXppbyBleHRyYSBmcmEgaSBjb21wb25lbnRpIGRpIHVuIGdyYWZvIG5vbi1jb21wb3VuZFxyXG4gICAgICovXHJcbiAgICBjb21wb25lbnRTcGFjaW5nID0gNDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb2x0aXBsaWNhdG9yZSBkZWxsYSByZXB1bHNpb25lIGZyYSBub2RpIGluIGNhc28gZGkgb3ZlcmxhcFxyXG4gICAgICovXHJcbiAgICBub2RlT3ZlcmxhcCA9IDQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb2x0aXBsaWNhdG9yZSBkaSBuZXN0aW5nIHBlciBpbCBjYWxjb2xvIGRlbGxhIGx1bmdoZXp6YSBpZGVhbGUgZGVpIGNvbGxlZ2FtZW50aSBuZXN0ZWRcclxuICAgICAqL1xyXG4gICAgbmVzdGluZ0ZhY3RvciA9IDEuMjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RhbnRlIGRpIGdyYXZpdMOgXHJcbiAgICAgKi9cclxuICAgIGdyYXZpdHkgPSAxO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTnVtZXJvIG1hc3NpbW8gZGkgaXRlcmF6aW9uaSBkYSBlc2VndWlyZVxyXG4gICAgICovXHJcbiAgICBudW1JdGVyID0gMTAwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBlcmF0dXJhIGluaXppYWxlIChtYXNzaW1hIGRpc3RhbnphIGZyYSBpIG5vZGkpXHJcbiAgICAgKi9cclxuICAgIGluaXRpYWxUZW1wID0gMTAwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZhdHRvcmUgZGkgcmFmZnJlZGRhbWVudG8uIEFkIG9nbmkgaXRlcmF6aW9uZSB2ZXJyw6Agc290dHJhdHRvIGFkICoqaW5pdGlhbFRlbXAqKlxyXG4gICAgICovXHJcbiAgICBjb29saW5nRmFjdG9yID0gMC45OTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNvZ2xpYSBtaW5pbWEgZGkgdGVtcGVyYXR1cmEuIFVuYSB2b2x0YSByYWdnaXVudGEgaWwgbGF5b3V0IHNpIGNvbnNpZGVyYSB0ZXJtaW5hdG9cclxuICAgICAqL1xyXG4gICAgbWluVGVtcCA9IDEuMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vbHRpcGxpY2F0b3JlIGRlbGxhIHJlcHVsc2lvbmUgZnJhIG5vZGkgaW4gY2FzbyBkaSBhc3NlbnphIGRpIG92ZXJsYXAuIEZ1bnppb25lIG92ZXJyaWRlYWJpbGUgcGVyIG9nbmkgbm9kZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbm9kZSBOb2RvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IE1vbHRpcGxpY2F6aW9uZSBkaSByZXB1bHNpb25lXHJcbiAgICAgKi9cclxuICAgIG5vZGVSZXB1bHNpb24gPSAobm9kZSkgPT4gMjA0ODtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEx1bmdoZXp6YSBpZGVhbGUgZGVpIGNvbGxlZ2FtZW50aSBub24gbmVzdGVkLiBGdW56aW9uZSBvdmVycmlkZWFiaWxlIHBlciBvZ25pIGNvbGxlZ2FtZW50b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZWRnZSBDb2xsZWdhbWVudG9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gTHVuZ2hlenphIGlkZWFsZVxyXG4gICAgICovXHJcbiAgICBpZGVhbEVkZ2VMZW5ndGggPSAoZWRnZSkgPT4gMzI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXZpc29yZSBwZXIgY2FsY29sYXJlIGxlIGZvcnplIGFwcGxpY2F0ZSBhZCB1biBjb2xsZWdhbWVudG8uIEZ1bnppb25lIG92ZXJyaWRlYWJpbGUgcGVyIG9nbmkgY29sbGVnYW1lbnRvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBlZGdlIENvbGxlZ2FtZW50b1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBJbmRpY2UgZGkgZWxhc3RpY2l0w6BcclxuICAgICAqL1xyXG4gICAgZWRnZUVsYXN0aWNpdHkgPSAoZWRnZSkgPT4gMzI7XHJcbn1cclxuIl19
@@ -1,52 +1,52 @@
1
- import { ShapedLayoutOptionsImpl } from './base/ShapedLayoutOptionsImpl';
2
- /**
3
- * Default per l'implementazione dell'algoritmo Dagre
4
- */
5
- export class DagreLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
6
- /** @ignore */
7
- constructor() {
8
- super();
9
- /**
10
- * Nome dell'algoritmo di layouting
11
- */
12
- this.name = 'dagre';
13
- /**
14
- * Distanza fra nodi adiacenti dello stesso rango
15
- */
16
- this.nodeSep = null;
17
- /**
18
- * Distanza fra collegamenti adiacenti nello stesso rango
19
- */
20
- this.edgeSep = null;
21
- /**
22
- * Distanza fra ogni rango
23
- */
24
- this.rankSep = null;
25
- // TB for top to bottom flow, 'LR' for left to right
26
- /**
27
- * Direzione di disegno: LR = Sinistra a Destra, TB = Sopra a Sotto
28
- */
29
- this.rankDir = 'TB';
30
- /**
31
- * Algoritmo che si occupa di assegnare un rango ad ogni nodo
32
- */
33
- this.ranker = null;
34
- /**
35
- * Numero di ranghi fra la sorgente e la destinazione di un collegamento
36
- *
37
- * @param {any} edge Collegamento di cui calcolare la differenza di rango
38
- *
39
- * @returns {number} Differenza di rango
40
- */
41
- this.minLen = (edge) => 1;
42
- /**
43
- * Peso del collegamento, più è alto più generalmente risulterà corto
44
- *
45
- * @param {any} edge Collegamento di cui calcolare il peso
46
- *
47
- * @returns {number} Peso
48
- */
49
- this.edgeWeight = (edge) => 1;
50
- }
51
- }
1
+ import { ShapedLayoutOptionsImpl } from './base/ShapedLayoutOptionsImpl';
2
+ /**
3
+ * Default per l'implementazione dell'algoritmo Dagre
4
+ */
5
+ export class DagreLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
6
+ /** @ignore */
7
+ constructor() {
8
+ super();
9
+ /**
10
+ * Nome dell'algoritmo di layouting
11
+ */
12
+ this.name = 'dagre';
13
+ /**
14
+ * Distanza fra nodi adiacenti dello stesso rango
15
+ */
16
+ this.nodeSep = null;
17
+ /**
18
+ * Distanza fra collegamenti adiacenti nello stesso rango
19
+ */
20
+ this.edgeSep = null;
21
+ /**
22
+ * Distanza fra ogni rango
23
+ */
24
+ this.rankSep = null;
25
+ // TB for top to bottom flow, 'LR' for left to right
26
+ /**
27
+ * Direzione di disegno: LR = Sinistra a Destra, TB = Sopra a Sotto
28
+ */
29
+ this.rankDir = 'TB';
30
+ /**
31
+ * Algoritmo che si occupa di assegnare un rango ad ogni nodo
32
+ */
33
+ this.ranker = null;
34
+ /**
35
+ * Numero di ranghi fra la sorgente e la destinazione di un collegamento
36
+ *
37
+ * @param {any} edge Collegamento di cui calcolare la differenza di rango
38
+ *
39
+ * @returns {number} Differenza di rango
40
+ */
41
+ this.minLen = (edge) => 1;
42
+ /**
43
+ * Peso del collegamento, più è alto più generalmente risulterà corto
44
+ *
45
+ * @param {any} edge Collegamento di cui calcolare il peso
46
+ *
47
+ * @returns {number} Peso
48
+ */
49
+ this.edgeWeight = (edge) => 1;
50
+ }
51
+ }
52
52
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGFncmVMYXlvdXRPcHRpb25zSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWRpYWdyYW1zL3NyYy9saWIvbW9kZWxzL2xheW91dHMvRGFncmVMYXlvdXRPcHRpb25zSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RTs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx1QkFBdUI7SUFFL0QsY0FBYztJQUNkO1FBQWdCLEtBQUssRUFBRSxDQUFDO1FBRXhCOztXQUVHO1FBQ0gsU0FBSSxHQUFHLE9BQU8sQ0FBQztRQUVmOztXQUVHO1FBQ0gsWUFBTyxHQUFXLElBQUksQ0FBQztRQUV2Qjs7V0FFRztRQUNILFlBQU8sR0FBVyxJQUFJLENBQUM7UUFFdkI7O1dBRUc7UUFDSCxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBRXZCLG9EQUFvRDtRQUNwRDs7V0FFRztRQUNILFlBQU8sR0FBZ0IsSUFBSSxDQUFDO1FBRTVCOztXQUVHO1FBQ0gsV0FBTSxHQUFzRCxJQUFJLENBQUM7UUFFakU7Ozs7OztXQU1HO1FBQ0gsV0FBTSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFckI7Ozs7OztXQU1HO1FBQ0gsZUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFqREEsQ0FBQztDQWtEN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaGFwZWRMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4vYmFzZS9TaGFwZWRMYXlvdXRPcHRpb25zSW1wbCc7XHJcblxyXG4vKipcclxuICogRGVmYXVsdCBwZXIgbCdpbXBsZW1lbnRhemlvbmUgZGVsbCdhbGdvcml0bW8gRGFncmVcclxuICovXHJcbmV4cG9ydCBjbGFzcyBEYWdyZUxheW91dE9wdGlvbnNJbXBsIGV4dGVuZHMgU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwge1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm9tZSBkZWxsJ2FsZ29yaXRtbyBkaSBsYXlvdXRpbmdcclxuICAgICAqL1xyXG4gICAgbmFtZSA9ICdkYWdyZSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXN0YW56YSBmcmEgbm9kaSBhZGlhY2VudGkgZGVsbG8gc3Rlc3NvIHJhbmdvXHJcbiAgICAgKi9cclxuICAgIG5vZGVTZXA6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXN0YW56YSBmcmEgY29sbGVnYW1lbnRpIGFkaWFjZW50aSBuZWxsbyBzdGVzc28gcmFuZ29cclxuICAgICAqL1xyXG4gICAgZWRnZVNlcDogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpc3RhbnphIGZyYSBvZ25pIHJhbmdvXHJcbiAgICAgKi9cclxuICAgIHJhbmtTZXA6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLy8gVEIgZm9yIHRvcCB0byBib3R0b20gZmxvdywgJ0xSJyBmb3IgbGVmdCB0byByaWdodFxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXJlemlvbmUgZGkgZGlzZWdubzogTFIgPSBTaW5pc3RyYSBhIERlc3RyYSwgVEIgPSBTb3ByYSBhIFNvdHRvXHJcbiAgICAgKi9cclxuICAgIHJhbmtEaXI6ICdMUicgfCAnVEInID0gJ1RCJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFsZ29yaXRtbyBjaGUgc2kgb2NjdXBhIGRpIGFzc2VnbmFyZSB1biByYW5nbyBhZCBvZ25pIG5vZG9cclxuICAgICAqL1xyXG4gICAgcmFua2VyOiAnbmV0d29yay1zaW1wbGV4JyB8ICd0aWdodC10cmVlJyB8ICdsb25nZXN0LXBhdGgnID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE51bWVybyBkaSByYW5naGkgZnJhIGxhIHNvcmdlbnRlIGUgbGEgZGVzdGluYXppb25lIGRpIHVuIGNvbGxlZ2FtZW50b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZWRnZSBDb2xsZWdhbWVudG8gZGkgY3VpIGNhbGNvbGFyZSBsYSBkaWZmZXJlbnphIGRpIHJhbmdvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IERpZmZlcmVuemEgZGkgcmFuZ29cclxuICAgICAqL1xyXG4gICAgbWluTGVuID0gKGVkZ2UpID0+IDE7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXNvIGRlbCBjb2xsZWdhbWVudG8sIHBpw7kgw6ggYWx0byBwacO5IGdlbmVyYWxtZW50ZSByaXN1bHRlcsOgIGNvcnRvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBlZGdlIENvbGxlZ2FtZW50byBkaSBjdWkgY2FsY29sYXJlIGlsIHBlc29cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gUGVzb1xyXG4gICAgICovXHJcbiAgICBlZGdlV2VpZ2h0ID0gKGVkZ2UpID0+IDE7XHJcbn1cclxuIl19
@@ -1,38 +1,38 @@
1
- import { ShapedLayoutOptionsImpl } from './base/ShapedLayoutOptionsImpl';
2
- /**
3
- * Default per l'implementazione dell'algoritmo Grid
4
- */
5
- export class GridLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
6
- /** @ignore */
7
- constructor() {
8
- super();
9
- /**
10
- * Nome dell'algoritmo di layouting
11
- */
12
- this.name = 'grid';
13
- /**
14
- * Spazio extra attorno ai nodi quando **avoidOverlap** è **true**
15
- */
16
- this.avoidOverlapPadding = 10;
17
- /**
18
- * Se **true** cerca di utilizzare il minor spazio possibile, se **false** usa tutto lo spazio che ha a disposizione
19
- */
20
- this.condense = false;
21
- /**
22
- * Forzatura del numero di righe della griglia
23
- */
24
- this.rows = null;
25
- /**
26
- * Forzatura del numero di colonne della griglia
27
- */
28
- this.cols = null;
29
- /**
30
- * Dato un nodo restituisce un indice di riga e di colonna della griglia in cui metterlo
31
- *
32
- * @param {NodeSingular} node Nodo
33
- * @returns {{ row: number, col: number }} Oggetto che identifica una posizione della griglia
34
- */
35
- this.position = null;
36
- }
37
- }
1
+ import { ShapedLayoutOptionsImpl } from './base/ShapedLayoutOptionsImpl';
2
+ /**
3
+ * Default per l'implementazione dell'algoritmo Grid
4
+ */
5
+ export class GridLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
6
+ /** @ignore */
7
+ constructor() {
8
+ super();
9
+ /**
10
+ * Nome dell'algoritmo di layouting
11
+ */
12
+ this.name = 'grid';
13
+ /**
14
+ * Spazio extra attorno ai nodi quando **avoidOverlap** è **true**
15
+ */
16
+ this.avoidOverlapPadding = 10;
17
+ /**
18
+ * Se **true** cerca di utilizzare il minor spazio possibile, se **false** usa tutto lo spazio che ha a disposizione
19
+ */
20
+ this.condense = false;
21
+ /**
22
+ * Forzatura del numero di righe della griglia
23
+ */
24
+ this.rows = null;
25
+ /**
26
+ * Forzatura del numero di colonne della griglia
27
+ */
28
+ this.cols = null;
29
+ /**
30
+ * Dato un nodo restituisce un indice di riga e di colonna della griglia in cui metterlo
31
+ *
32
+ * @param {NodeSingular} node Nodo
33
+ * @returns {{ row: number, col: number }} Oggetto che identifica una posizione della griglia
34
+ */
35
+ this.position = null;
36
+ }
37
+ }
38
38
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JpZExheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9HcmlkTGF5b3V0T3B0aW9uc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekU7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsdUJBQXVCO0lBRTlELGNBQWM7SUFDZDtRQUFnQixLQUFLLEVBQUUsQ0FBQztRQUV4Qjs7V0FFRztRQUNILFNBQUksR0FBRyxNQUFNLENBQUM7UUFFZDs7V0FFRztRQUNILHdCQUFtQixHQUFHLEVBQUUsQ0FBQztRQUV6Qjs7V0FFRztRQUNILGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakI7O1dBRUc7UUFDSCxTQUFJLEdBQXdCLElBQUksQ0FBQztRQUVqQzs7V0FFRztRQUNILFNBQUksR0FBd0IsSUFBSSxDQUFDO1FBRWpDOzs7OztXQUtHO1FBQ0gsYUFBUSxHQUEwRCxJQUFJLENBQUM7SUFqQzlDLENBQUM7Q0FrQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZVNpbmd1bGFyIH0gZnJvbSAnY3l0b3NjYXBlJztcclxuaW1wb3J0IHsgU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwgfSBmcm9tICcuL2Jhc2UvU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwnO1xyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgcGVyIGwnaW1wbGVtZW50YXppb25lIGRlbGwnYWxnb3JpdG1vIEdyaWRcclxuICovXHJcbmV4cG9ydCBjbGFzcyBHcmlkTGF5b3V0T3B0aW9uc0ltcGwgZXh0ZW5kcyBTaGFwZWRMYXlvdXRPcHRpb25zSW1wbCB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOb21lIGRlbGwnYWxnb3JpdG1vIGRpIGxheW91dGluZ1xyXG4gICAgICovXHJcbiAgICBuYW1lID0gJ2dyaWQnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3BhemlvIGV4dHJhIGF0dG9ybm8gYWkgbm9kaSBxdWFuZG8gKiphdm9pZE92ZXJsYXAqKiDDqCAqKnRydWUqKlxyXG4gICAgICovXHJcbiAgICBhdm9pZE92ZXJsYXBQYWRkaW5nID0gMTA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZSAqKnRydWUqKiBjZXJjYSBkaSB1dGlsaXp6YXJlIGlsIG1pbm9yIHNwYXppbyBwb3NzaWJpbGUsIHNlICoqZmFsc2UqKiB1c2EgdHV0dG8gbG8gc3BhemlvIGNoZSBoYSBhIGRpc3Bvc2l6aW9uZVxyXG4gICAgICovXHJcbiAgICBjb25kZW5zZSA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9yemF0dXJhIGRlbCBudW1lcm8gZGkgcmlnaGUgZGVsbGEgZ3JpZ2xpYVxyXG4gICAgICovXHJcbiAgICByb3dzPzogbnVtYmVyIHwgdW5kZWZpbmVkID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcnphdHVyYSBkZWwgbnVtZXJvIGRpIGNvbG9ubmUgZGVsbGEgZ3JpZ2xpYVxyXG4gICAgICovXHJcbiAgICBjb2xzPzogbnVtYmVyIHwgdW5kZWZpbmVkID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdG8gdW4gbm9kbyByZXN0aXR1aXNjZSB1biBpbmRpY2UgZGkgcmlnYSBlIGRpIGNvbG9ubmEgZGVsbGEgZ3JpZ2xpYSBpbiBjdWkgbWV0dGVybG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtOb2RlU2luZ3VsYXJ9IG5vZGUgTm9kb1xyXG4gICAgICogQHJldHVybnMge3sgcm93OiBudW1iZXIsIGNvbDogbnVtYmVyIH19IE9nZ2V0dG8gY2hlIGlkZW50aWZpY2EgdW5hIHBvc2l6aW9uZSBkZWxsYSBncmlnbGlhXHJcbiAgICAgKi9cclxuICAgIHBvc2l0aW9uOiAobm9kZTogTm9kZVNpbmd1bGFyKSA9PiB7IHJvdzogbnVtYmVyOyBjb2w6IG51bWJlcjsgfSA9IG51bGw7XHJcbn1cclxuIl19
@@ -1,15 +1,15 @@
1
- import { BaseLayoutOptionsImpl } from './base/BaseLayoutOptionsImpl';
2
- /**
3
- * Pseudo implementazione di un algoritmo vuoto che non fa nulla
4
- */
5
- export class NullLayoutOptionsImpl extends BaseLayoutOptionsImpl {
6
- /** @ignore */
7
- constructor() {
8
- super();
9
- /**
10
- * Nome dell'algoritmo di layouting
11
- */
12
- this.name = 'null';
13
- }
14
- }
1
+ import { BaseLayoutOptionsImpl } from './base/BaseLayoutOptionsImpl';
2
+ /**
3
+ * Pseudo implementazione di un algoritmo vuoto che non fa nulla
4
+ */
5
+ export class NullLayoutOptionsImpl extends BaseLayoutOptionsImpl {
6
+ /** @ignore */
7
+ constructor() {
8
+ super();
9
+ /**
10
+ * Nome dell'algoritmo di layouting
11
+ */
12
+ this.name = 'null';
13
+ }
14
+ }
15
15
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnVsbExheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9OdWxsTGF5b3V0T3B0aW9uc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckU7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEscUJBQXFCO0lBRTVELGNBQWM7SUFDZDtRQUFnQixLQUFLLEVBQUUsQ0FBQztRQUV4Qjs7V0FFRztRQUNILFNBQUksR0FBRyxNQUFNLENBQUM7SUFMVyxDQUFDO0NBTTdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUxheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi9iYXNlL0Jhc2VMYXlvdXRPcHRpb25zSW1wbCc7XHJcblxyXG4vKipcclxuICogUHNldWRvIGltcGxlbWVudGF6aW9uZSBkaSB1biBhbGdvcml0bW8gdnVvdG8gY2hlIG5vbiBmYSBudWxsYVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE51bGxMYXlvdXRPcHRpb25zSW1wbCBleHRlbmRzIEJhc2VMYXlvdXRPcHRpb25zSW1wbCB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOb21lIGRlbGwnYWxnb3JpdG1vIGRpIGxheW91dGluZ1xyXG4gICAgICovXHJcbiAgICBuYW1lID0gJ251bGwnO1xyXG59Il19
@@ -1,24 +1,24 @@
1
- import { AnimateLayoutOptionsImpl } from './base/AnimateLayoutOptionsImpl';
2
- /**
3
- * Default per l'implementazione dell'algoritmo Preset (Posiziona i nodi in base alla loro proprietà **position**)
4
- */
5
- export class PresetLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
6
- /** @ignore */
7
- constructor() {
8
- super();
9
- /**
10
- * Nome dell'algoritmo di layouting
11
- */
12
- this.name = 'preset';
13
- /**
14
- * Funzione per la trasformazione delle posizioni dei nodi
15
- *
16
- * @param {any} node Nodo
17
- * @param {any} position Posizione iniziale
18
- *
19
- * @returns {any} Posizione finale
20
- */
21
- this.transform = (node, position) => position;
22
- }
23
- }
1
+ import { AnimateLayoutOptionsImpl } from './base/AnimateLayoutOptionsImpl';
2
+ /**
3
+ * Default per l'implementazione dell'algoritmo Preset (Posiziona i nodi in base alla loro proprietà **position**)
4
+ */
5
+ export class PresetLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
6
+ /** @ignore */
7
+ constructor() {
8
+ super();
9
+ /**
10
+ * Nome dell'algoritmo di layouting
11
+ */
12
+ this.name = 'preset';
13
+ /**
14
+ * Funzione per la trasformazione delle posizioni dei nodi
15
+ *
16
+ * @param {any} node Nodo
17
+ * @param {any} position Posizione iniziale
18
+ *
19
+ * @returns {any} Posizione finale
20
+ */
21
+ this.transform = (node, position) => position;
22
+ }
23
+ }
24
24
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlc2V0TGF5b3V0T3B0aW9uc0ltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL21vZGVscy9sYXlvdXRzL1ByZXNldExheW91dE9wdGlvbnNJbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHdCQUF3QjtJQUVqRSxjQUFjO0lBQ2Q7UUFBZ0IsS0FBSyxFQUFFLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBcUJoQjs7Ozs7OztXQU9HO1FBQ0gsY0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDO0lBbENoQixDQUFDO0NBbUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGVMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4vYmFzZS9BbmltYXRlTGF5b3V0T3B0aW9uc0ltcGwnO1xyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgcGVyIGwnaW1wbGVtZW50YXppb25lIGRlbGwnYWxnb3JpdG1vIFByZXNldCAoUG9zaXppb25hIGkgbm9kaSBpbiBiYXNlIGFsbGEgbG9ybyBwcm9wcmlldMOgICoqcG9zaXRpb24qKilcclxuICovXHJcbmV4cG9ydCBjbGFzcyBQcmVzZXRMYXlvdXRPcHRpb25zSW1wbCBleHRlbmRzIEFuaW1hdGVMYXlvdXRPcHRpb25zSW1wbCB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOb21lIGRlbGwnYWxnb3JpdG1vIGRpIGxheW91dGluZ1xyXG4gICAgICovXHJcbiAgICBuYW1lID0gJ3ByZXNldCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgYWRhdHRhcmUgYWwgY29udGVuaXRvcmVcclxuICAgICAqL1xyXG4gICAgZml0PzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhZGRpbmcgcmlzcGV0dG8gYWwgY29udGVuaXRvcmVcclxuICAgICAqL1xyXG4gICAgcGFkZGluZz86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1hcHBhdHVyYSBkYSB1biBub2RvIGFkIHVuYSBwb3NpemlvbmVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IG5vZGUgTm9kb1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7YW55fSBQb3NpemlvbmUgaW5pemlhbGVcclxuICAgICAqL1xyXG4gICAgcG9zaXRpb25zOiAobm9kZSkgPT4gYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgcGVyIGxhIHRyYXNmb3JtYXppb25lIGRlbGxlIHBvc2l6aW9uaSBkZWkgbm9kaVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbm9kZSBOb2RvXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gcG9zaXRpb24gUG9zaXppb25lIGluaXppYWxlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHthbnl9IFBvc2l6aW9uZSBmaW5hbGVcclxuICAgICAqL1xyXG4gICAgdHJhbnNmb3JtID0gKG5vZGUsIHBvc2l0aW9uKSA9PiBwb3NpdGlvbjtcclxufVxyXG4iXX0=