@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.
- package/esm2022/esfaenza-es-diagrams.mjs +4 -4
- package/esm2022/lib/components/es-diagram.component.mjs +537 -537
- package/esm2022/lib/esdiagram.module.mjs +31 -31
- package/esm2022/lib/extensions/ReactiveExtensions.mjs +35 -35
- package/esm2022/lib/extensions/ResizeSensor.mjs +71 -71
- package/esm2022/lib/models/EsDiagramModuleConfig.mjs +5 -5
- package/esm2022/lib/models/component/contextmenu/ContextMenuCommand.mjs +5 -5
- package/esm2022/lib/models/component/contextmenu/ContextMenuOptions.mjs +6 -6
- package/esm2022/lib/models/component/grouping/ExpandCollapseOptions.mjs +5 -5
- package/esm2022/lib/models/component/nodes/NodeHTMLTemplate.mjs +5 -5
- package/esm2022/lib/models/component/nodes/NodeTemplate.mjs +5 -5
- package/esm2022/lib/models/component/nodes/ZoomLevelBasedTemplate.mjs +5 -5
- package/esm2022/lib/models/layouts/BreadthFirstLayoutOptionsImpl.mjs +34 -34
- package/esm2022/lib/models/layouts/CircleLayoutOptionsImpl.mjs +26 -26
- package/esm2022/lib/models/layouts/ConcentricLayoutOptionsImpl.mjs +63 -63
- package/esm2022/lib/models/layouts/CoseLayoutOptionsImpl.mjs +82 -82
- package/esm2022/lib/models/layouts/DagreLayoutOptionsImpl.mjs +51 -51
- package/esm2022/lib/models/layouts/GridLayoutOptionsImpl.mjs +37 -37
- package/esm2022/lib/models/layouts/NullLayoutOptionsImpl.mjs +14 -14
- package/esm2022/lib/models/layouts/PresetLayoutOptionsImpl.mjs +23 -23
- package/esm2022/lib/models/layouts/RandomLayoutOptionsImpl.mjs +35 -35
- package/esm2022/lib/models/layouts/base/AnimateLayoutOptionsImpl.mjs +41 -41
- package/esm2022/lib/models/layouts/base/BaseLayoutOptionsImpl.mjs +17 -17
- package/esm2022/lib/models/layouts/base/ShapedLayoutOptionsImpl.mjs +47 -47
- package/esm2022/lib/services/es-diagram.dispatcher.mjs +89 -89
- package/esm2022/lib/services/es-diagram.service.mjs +106 -106
- package/esm2022/lib/tokens.mjs +5 -5
- package/esm2022/public-api.mjs +23 -23
- package/fesm2022/esfaenza-es-diagrams.mjs +1320 -1320
- package/fesm2022/esfaenza-es-diagrams.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/components/es-diagram.component.d.ts +305 -305
- package/lib/esdiagram.module.d.ts +12 -12
- package/lib/extensions/ReactiveExtensions.d.ts +20 -20
- package/lib/extensions/ResizeSensor.d.ts +43 -43
- package/lib/models/EsDiagramModuleConfig.d.ts +9 -9
- package/lib/models/component/contextmenu/ContextMenuCommand.d.ts +27 -27
- package/lib/models/component/contextmenu/ContextMenuOptions.d.ts +79 -79
- package/lib/models/component/grouping/ExpandCollapseOptions.d.ts +22 -22
- package/lib/models/component/nodes/NodeHTMLTemplate.d.ts +14 -14
- package/lib/models/component/nodes/NodeTemplate.d.ts +13 -13
- package/lib/models/component/nodes/ZoomLevelBasedTemplate.d.ts +14 -14
- package/lib/models/layouts/BreadthFirstLayoutOptionsImpl.d.ts +40 -40
- package/lib/models/layouts/CircleLayoutOptionsImpl.d.ts +28 -28
- package/lib/models/layouts/ConcentricLayoutOptionsImpl.d.ts +74 -74
- package/lib/models/layouts/CoseLayoutOptionsImpl.d.ts +80 -80
- package/lib/models/layouts/DagreLayoutOptionsImpl.d.ts +48 -48
- package/lib/models/layouts/GridLayoutOptionsImpl.d.ts +39 -39
- package/lib/models/layouts/NullLayoutOptionsImpl.d.ts +12 -12
- package/lib/models/layouts/PresetLayoutOptionsImpl.d.ts +37 -37
- package/lib/models/layouts/RandomLayoutOptionsImpl.d.ts +33 -33
- package/lib/models/layouts/base/AnimateLayoutOptionsImpl.d.ts +40 -40
- package/lib/models/layouts/base/BaseLayoutOptionsImpl.d.ts +15 -15
- package/lib/models/layouts/base/ShapedLayoutOptionsImpl.d.ts +46 -46
- package/lib/services/es-diagram.dispatcher.d.ts +44 -44
- package/lib/services/es-diagram.service.d.ts +51 -51
- package/lib/tokens.d.ts +5 -5
- package/package.json +3 -3
- package/public-api.d.ts +20 -20
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { AnimateLayoutOptionsImpl } from './base/AnimateLayoutOptionsImpl';
|
|
2
|
-
/**
|
|
3
|
-
* Default per l'implementazione dell'algoritmo Random
|
|
4
|
-
*/
|
|
5
|
-
export class RandomLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
|
|
6
|
-
/** @ignore */
|
|
7
|
-
constructor() {
|
|
8
|
-
super();
|
|
9
|
-
/**
|
|
10
|
-
* Nome dell'algoritmo di layouting
|
|
11
|
-
*/
|
|
12
|
-
this.name = 'random';
|
|
13
|
-
/**
|
|
14
|
-
* Indica se adattare al contenitore
|
|
15
|
-
*/
|
|
16
|
-
this.fit = true;
|
|
17
|
-
/**
|
|
18
|
-
* Padding rispetto al contenitore
|
|
19
|
-
*/
|
|
20
|
-
this.padding = 20;
|
|
21
|
-
/**
|
|
22
|
-
* Specifica le dimensioni esatte al cui interno effettuare il layouting, specificato come **{ x1, y1, x2, y2 }** o **{ x1, y1, w, h }**
|
|
23
|
-
*/
|
|
24
|
-
this.boundingBox = null;
|
|
25
|
-
/**
|
|
26
|
-
* Funzione per la trasformazione delle posizioni dei nodi
|
|
27
|
-
*
|
|
28
|
-
* @param {any} node Nodo
|
|
29
|
-
* @param {any} position Posizione iniziale
|
|
30
|
-
*
|
|
31
|
-
* @returns {any} Posizione finale
|
|
32
|
-
*/
|
|
33
|
-
this.transform = (node, position) => position;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
1
|
+
import { AnimateLayoutOptionsImpl } from './base/AnimateLayoutOptionsImpl';
|
|
2
|
+
/**
|
|
3
|
+
* Default per l'implementazione dell'algoritmo Random
|
|
4
|
+
*/
|
|
5
|
+
export class RandomLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
|
|
6
|
+
/** @ignore */
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
/**
|
|
10
|
+
* Nome dell'algoritmo di layouting
|
|
11
|
+
*/
|
|
12
|
+
this.name = 'random';
|
|
13
|
+
/**
|
|
14
|
+
* Indica se adattare al contenitore
|
|
15
|
+
*/
|
|
16
|
+
this.fit = true;
|
|
17
|
+
/**
|
|
18
|
+
* Padding rispetto al contenitore
|
|
19
|
+
*/
|
|
20
|
+
this.padding = 20;
|
|
21
|
+
/**
|
|
22
|
+
* Specifica le dimensioni esatte al cui interno effettuare il layouting, specificato come **{ x1, y1, x2, y2 }** o **{ x1, y1, w, h }**
|
|
23
|
+
*/
|
|
24
|
+
this.boundingBox = null;
|
|
25
|
+
/**
|
|
26
|
+
* Funzione per la trasformazione delle posizioni dei nodi
|
|
27
|
+
*
|
|
28
|
+
* @param {any} node Nodo
|
|
29
|
+
* @param {any} position Posizione iniziale
|
|
30
|
+
*
|
|
31
|
+
* @returns {any} Posizione finale
|
|
32
|
+
*/
|
|
33
|
+
this.transform = (node, position) => position;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
36
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFuZG9tTGF5b3V0T3B0aW9uc0ltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL21vZGVscy9sYXlvdXRzL1JhbmRvbUxheW91dE9wdGlvbnNJbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHdCQUF3QjtJQUVqRSxjQUFjO0lBQ2Q7UUFBZ0IsS0FBSyxFQUFFLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBRWhCOztXQUVHO1FBQ0gsUUFBRyxHQUFHLElBQUksQ0FBQztRQUVYOztXQUVHO1FBQ0gsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUViOztXQUVHO1FBQ0gsZ0JBQVcsR0FBa0UsSUFBSSxDQUFDO1FBRWxGOzs7Ozs7O1dBT0c7UUFDSCxjQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUE5QmhCLENBQUM7Q0ErQjdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0ZUxheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi9iYXNlL0FuaW1hdGVMYXlvdXRPcHRpb25zSW1wbCc7XHJcblxyXG4vKipcclxuICogRGVmYXVsdCBwZXIgbCdpbXBsZW1lbnRhemlvbmUgZGVsbCdhbGdvcml0bW8gUmFuZG9tXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUmFuZG9tTGF5b3V0T3B0aW9uc0ltcGwgZXh0ZW5kcyBBbmltYXRlTGF5b3V0T3B0aW9uc0ltcGwge1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm9tZSBkZWxsJ2FsZ29yaXRtbyBkaSBsYXlvdXRpbmdcclxuICAgICAqL1xyXG4gICAgbmFtZSA9ICdyYW5kb20nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGFkYXR0YXJlIGFsIGNvbnRlbml0b3JlXHJcbiAgICAgKi9cclxuICAgIGZpdCA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYWRkaW5nIHJpc3BldHRvIGFsIGNvbnRlbml0b3JlXHJcbiAgICAgKi9cclxuICAgIHBhZGRpbmcgPSAyMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmljYSBsZSBkaW1lbnNpb25pIGVzYXR0ZSBhbCBjdWkgaW50ZXJubyBlZmZldHR1YXJlIGlsIGxheW91dGluZywgc3BlY2lmaWNhdG8gY29tZSAqKnsgeDEsIHkxLCB4MiwgeTIgfSoqIG8gKip7IHgxLCB5MSwgdywgaCB9KipcclxuICAgICAqL1xyXG4gICAgYm91bmRpbmdCb3g6IGN5dG9zY2FwZS5Cb3VuZGluZ0JveDEyIHwgY3l0b3NjYXBlLkJvdW5kaW5nQm94V0ggfCB1bmRlZmluZWQgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgcGVyIGxhIHRyYXNmb3JtYXppb25lIGRlbGxlIHBvc2l6aW9uaSBkZWkgbm9kaVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbm9kZSBOb2RvXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gcG9zaXRpb24gUG9zaXppb25lIGluaXppYWxlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHthbnl9IFBvc2l6aW9uZSBmaW5hbGVcclxuICAgICAqL1xyXG4gICAgdHJhbnNmb3JtID0gKG5vZGUsIHBvc2l0aW9uKSA9PiBwb3NpdGlvbjtcclxufVxyXG4iXX0=
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
import { BaseLayoutOptionsImpl } from './BaseLayoutOptionsImpl';
|
|
2
|
-
/**
|
|
3
|
-
* Classe base con le opzioni di layout valide per tutti i layout animati
|
|
4
|
-
*/
|
|
5
|
-
export class AnimateLayoutOptionsImpl extends BaseLayoutOptionsImpl {
|
|
6
|
-
/** @ignore */
|
|
7
|
-
constructor() {
|
|
8
|
-
super();
|
|
9
|
-
/**
|
|
10
|
-
* Livello di zoom da impostare (si consiglia fit = **false** se viene impostato)
|
|
11
|
-
*/
|
|
12
|
-
this.zoom = null;
|
|
13
|
-
/**
|
|
14
|
-
* Livello di pan da impostare (si consiglia fit = **false** se viene impostato)
|
|
15
|
-
*/
|
|
16
|
-
this.pan = null;
|
|
17
|
-
/**
|
|
18
|
-
* Indica se animare il cambio di posizione dei nodi
|
|
19
|
-
*/
|
|
20
|
-
this.animate = false;
|
|
21
|
-
/**
|
|
22
|
-
* Con **animate** a true indica la durata dell'animazione
|
|
23
|
-
*/
|
|
24
|
-
this.animationDuration = 500;
|
|
25
|
-
/**
|
|
26
|
-
* Abilita o no l'easing dell'animazione, può essere una stringa come ad esempio "ease-in-out-cubic" o altre funzioni scritte allo stesso modo prese da https://easings.net/
|
|
27
|
-
*/
|
|
28
|
-
this.animationEasing = undefined;
|
|
29
|
-
/**
|
|
30
|
-
* Funzione che indica se un nodo dev'essere animato o no.
|
|
31
|
-
* Tutti i nodi sono animati di default.
|
|
32
|
-
* Tutti i nodi che non vengono animati verranno posizionati appena inizia l'animazione
|
|
33
|
-
*
|
|
34
|
-
* @param {any} node Nodo per cui decidere se abilitare l'animazione o no
|
|
35
|
-
* @param {number} i Indice del nodo corrente
|
|
36
|
-
*
|
|
37
|
-
* @returns {boolean} **true** se il nodo dev'essere animato, **false** altrimenti
|
|
38
|
-
*/
|
|
39
|
-
this.animateFilter = (node, i) => true;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
1
|
+
import { BaseLayoutOptionsImpl } from './BaseLayoutOptionsImpl';
|
|
2
|
+
/**
|
|
3
|
+
* Classe base con le opzioni di layout valide per tutti i layout animati
|
|
4
|
+
*/
|
|
5
|
+
export class AnimateLayoutOptionsImpl extends BaseLayoutOptionsImpl {
|
|
6
|
+
/** @ignore */
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
/**
|
|
10
|
+
* Livello di zoom da impostare (si consiglia fit = **false** se viene impostato)
|
|
11
|
+
*/
|
|
12
|
+
this.zoom = null;
|
|
13
|
+
/**
|
|
14
|
+
* Livello di pan da impostare (si consiglia fit = **false** se viene impostato)
|
|
15
|
+
*/
|
|
16
|
+
this.pan = null;
|
|
17
|
+
/**
|
|
18
|
+
* Indica se animare il cambio di posizione dei nodi
|
|
19
|
+
*/
|
|
20
|
+
this.animate = false;
|
|
21
|
+
/**
|
|
22
|
+
* Con **animate** a true indica la durata dell'animazione
|
|
23
|
+
*/
|
|
24
|
+
this.animationDuration = 500;
|
|
25
|
+
/**
|
|
26
|
+
* Abilita o no l'easing dell'animazione, può essere una stringa come ad esempio "ease-in-out-cubic" o altre funzioni scritte allo stesso modo prese da https://easings.net/
|
|
27
|
+
*/
|
|
28
|
+
this.animationEasing = undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Funzione che indica se un nodo dev'essere animato o no.
|
|
31
|
+
* Tutti i nodi sono animati di default.
|
|
32
|
+
* Tutti i nodi che non vengono animati verranno posizionati appena inizia l'animazione
|
|
33
|
+
*
|
|
34
|
+
* @param {any} node Nodo per cui decidere se abilitare l'animazione o no
|
|
35
|
+
* @param {number} i Indice del nodo corrente
|
|
36
|
+
*
|
|
37
|
+
* @returns {boolean} **true** se il nodo dev'essere animato, **false** altrimenti
|
|
38
|
+
*/
|
|
39
|
+
this.animateFilter = (node, i) => true;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
42
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5pbWF0ZUxheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9iYXNlL0FuaW1hdGVMYXlvdXRPcHRpb25zSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRTs7R0FFRztBQUNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxxQkFBcUI7SUFFL0QsY0FBYztJQUNkO1FBQWdCLEtBQUssRUFBRSxDQUFDO1FBRXhCOztXQUVHO1FBQ0gsU0FBSSxHQUFXLElBQUksQ0FBQztRQUVwQjs7V0FFRztRQUNILFFBQUcsR0FBVyxJQUFJLENBQUM7UUFFbkI7O1dBRUc7UUFDSCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCOztXQUVHO1FBQ0gsc0JBQWlCLEdBQUcsR0FBRyxDQUFDO1FBRXhCOztXQUVHO1FBQ0gsb0JBQWUsR0FBRyxTQUFTLENBQUM7UUFFNUI7Ozs7Ozs7OztXQVNHO1FBQ0gsa0JBQWEsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQztJQXJDakIsQ0FBQztDQXNDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRlZExheW91dE9wdGlvbnMgfSBmcm9tICdjeXRvc2NhcGUnO1xyXG5pbXBvcnQgeyBCYXNlTGF5b3V0T3B0aW9uc0ltcGwgfSBmcm9tICcuL0Jhc2VMYXlvdXRPcHRpb25zSW1wbCc7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIGJhc2UgY29uIGxlIG9wemlvbmkgZGkgbGF5b3V0IHZhbGlkZSBwZXIgdHV0dGkgaSBsYXlvdXQgYW5pbWF0aVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFuaW1hdGVMYXlvdXRPcHRpb25zSW1wbCBleHRlbmRzIEJhc2VMYXlvdXRPcHRpb25zSW1wbCBpbXBsZW1lbnRzIEFuaW1hdGVkTGF5b3V0T3B0aW9ucyB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXZlbGxvIGRpIHpvb20gZGEgaW1wb3N0YXJlIChzaSBjb25zaWdsaWEgZml0ID0gKipmYWxzZSoqIHNlIHZpZW5lIGltcG9zdGF0bylcclxuICAgICAqL1xyXG4gICAgem9vbTogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExpdmVsbG8gZGkgcGFuIGRhIGltcG9zdGFyZSAoc2kgY29uc2lnbGlhIGZpdCA9ICoqZmFsc2UqKiBzZSB2aWVuZSBpbXBvc3RhdG8pXHJcbiAgICAgKi9cclxuICAgIHBhbjogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSBhbmltYXJlIGlsIGNhbWJpbyBkaSBwb3NpemlvbmUgZGVpIG5vZGlcclxuICAgICAqL1xyXG4gICAgYW5pbWF0ZSA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uICoqYW5pbWF0ZSoqIGEgdHJ1ZSBpbmRpY2EgbGEgZHVyYXRhIGRlbGwnYW5pbWF6aW9uZVxyXG4gICAgICovXHJcbiAgICBhbmltYXRpb25EdXJhdGlvbiA9IDUwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFiaWxpdGEgbyBubyBsJ2Vhc2luZyBkZWxsJ2FuaW1hemlvbmUsIHB1w7IgZXNzZXJlIHVuYSBzdHJpbmdhIGNvbWUgYWQgZXNlbXBpbyBcImVhc2UtaW4tb3V0LWN1YmljXCIgbyBhbHRyZSBmdW56aW9uaSBzY3JpdHRlIGFsbG8gc3Rlc3NvIG1vZG8gcHJlc2UgZGEgaHR0cHM6Ly9lYXNpbmdzLm5ldC9cclxuICAgICAqL1xyXG4gICAgYW5pbWF0aW9uRWFzaW5nID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgY2hlIGluZGljYSBzZSB1biBub2RvIGRldidlc3NlcmUgYW5pbWF0byBvIG5vLiBcclxuICAgICAqIFR1dHRpIGkgbm9kaSBzb25vIGFuaW1hdGkgZGkgZGVmYXVsdC5cclxuICAgICAqIFR1dHRpIGkgbm9kaSBjaGUgbm9uIHZlbmdvbm8gYW5pbWF0aSB2ZXJyYW5ubyBwb3NpemlvbmF0aSBhcHBlbmEgaW5pemlhIGwnYW5pbWF6aW9uZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbm9kZSBOb2RvIHBlciBjdWkgZGVjaWRlcmUgc2UgYWJpbGl0YXJlIGwnYW5pbWF6aW9uZSBvIG5vXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaSBJbmRpY2UgZGVsIG5vZG8gY29ycmVudGVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59ICoqdHJ1ZSoqIHNlIGlsIG5vZG8gZGV2J2Vzc2VyZSBhbmltYXRvLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBhbmltYXRlRmlsdGVyID0gKG5vZGUsIGk6IG51bWJlcikgPT4gdHJ1ZTtcclxufSJdfQ==
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Opzioni di layout di base che si collegano al **ready** e allo **stop** eventualmente per aggiungere del log addizionale
|
|
3
|
-
*/
|
|
4
|
-
export class BaseLayoutOptionsImpl {
|
|
5
|
-
/**
|
|
6
|
-
* Per ora ignoro lato documentale dato che sono placholder
|
|
7
|
-
* @ignore
|
|
8
|
-
*/
|
|
9
|
-
ready(e) {
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Per ora ignoro lato documentale dato che sono placholder
|
|
13
|
-
* @ignore
|
|
14
|
-
*/
|
|
15
|
-
stop(e) {
|
|
16
|
-
}
|
|
17
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Opzioni di layout di base che si collegano al **ready** e allo **stop** eventualmente per aggiungere del log addizionale
|
|
3
|
+
*/
|
|
4
|
+
export class BaseLayoutOptionsImpl {
|
|
5
|
+
/**
|
|
6
|
+
* Per ora ignoro lato documentale dato che sono placholder
|
|
7
|
+
* @ignore
|
|
8
|
+
*/
|
|
9
|
+
ready(e) {
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Per ora ignoro lato documentale dato che sono placholder
|
|
13
|
+
* @ignore
|
|
14
|
+
*/
|
|
15
|
+
stop(e) {
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
18
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUxheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9iYXNlL0Jhc2VMYXlvdXRPcHRpb25zSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFFOUI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLENBQThCO0lBRXBDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsQ0FBOEI7SUFFbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIE9wemlvbmkgZGkgbGF5b3V0IGRpIGJhc2UgY2hlIHNpIGNvbGxlZ2FubyBhbCAqKnJlYWR5KiogZSBhbGxvICoqc3RvcCoqIGV2ZW50dWFsbWVudGUgcGVyIGFnZ2l1bmdlcmUgZGVsIGxvZyBhZGRpemlvbmFsZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJhc2VMYXlvdXRPcHRpb25zSW1wbCB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXIgb3JhIGlnbm9ybyBsYXRvIGRvY3VtZW50YWxlIGRhdG8gY2hlIHNvbm8gcGxhY2hvbGRlclxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICByZWFkeShlOiBjeXRvc2NhcGUuTGF5b3V0RXZlbnRPYmplY3QpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXIgb3JhIGlnbm9ybyBsYXRvIGRvY3VtZW50YWxlIGRhdG8gY2hlIHNvbm8gcGxhY2hvbGRlclxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICBzdG9wKGU6IGN5dG9zY2FwZS5MYXlvdXRFdmVudE9iamVjdCkge1xyXG5cclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
import { AnimateLayoutOptionsImpl } from './AnimateLayoutOptionsImpl';
|
|
2
|
-
/**
|
|
3
|
-
* Classe base per gli algoritmi "Shaped"
|
|
4
|
-
*/
|
|
5
|
-
export class ShapedLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
|
|
6
|
-
/** @ignore */
|
|
7
|
-
constructor() {
|
|
8
|
-
super();
|
|
9
|
-
/**
|
|
10
|
-
* Indica se adattare al contenitore
|
|
11
|
-
*/
|
|
12
|
-
this.fit = true;
|
|
13
|
-
/**
|
|
14
|
-
* Padding rispetto al contenitore
|
|
15
|
-
*/
|
|
16
|
-
this.padding = 30;
|
|
17
|
-
/**
|
|
18
|
-
* Specifica le dimensioni esatte al cui interno effettuare il layouting, specificato come **{ x1, y1, x2, y2 }** o **{ x1, y1, w, h }**
|
|
19
|
-
*/
|
|
20
|
-
this.boundingBox = null;
|
|
21
|
-
/**
|
|
22
|
-
* Fa in modo che i nodi non si accavallino, ma se il contenitore non ha abbastanza spazio potrebbero andare in overflow
|
|
23
|
-
*/
|
|
24
|
-
this.avoidOverlap = true;
|
|
25
|
-
/**
|
|
26
|
-
* Include o esclude le dimensioni delle label dei nodi nel calcolo delle posizioni
|
|
27
|
-
*/
|
|
28
|
-
this.nodeDimensionsIncludeLabels = false;
|
|
29
|
-
/**
|
|
30
|
-
* Moltiplicatore delle dimensioni per espandere/restringere le dimensioni globali del diagramma
|
|
31
|
-
*/
|
|
32
|
-
this.spacingFactor = 1;
|
|
33
|
-
/**
|
|
34
|
-
* Funzione di ordinamento per ordinare i nodi
|
|
35
|
-
*/
|
|
36
|
-
this.sort = null;
|
|
37
|
-
/**
|
|
38
|
-
* Funzione per la trasformazione delle posizioni dei nodi
|
|
39
|
-
*
|
|
40
|
-
* @param {any} node Nodo
|
|
41
|
-
* @param {any} position Posizione iniziale
|
|
42
|
-
*
|
|
43
|
-
* @returns {any} Posizione finale
|
|
44
|
-
*/
|
|
45
|
-
this.transform = (node, position) => position;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
1
|
+
import { AnimateLayoutOptionsImpl } from './AnimateLayoutOptionsImpl';
|
|
2
|
+
/**
|
|
3
|
+
* Classe base per gli algoritmi "Shaped"
|
|
4
|
+
*/
|
|
5
|
+
export class ShapedLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
|
|
6
|
+
/** @ignore */
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
/**
|
|
10
|
+
* Indica se adattare al contenitore
|
|
11
|
+
*/
|
|
12
|
+
this.fit = true;
|
|
13
|
+
/**
|
|
14
|
+
* Padding rispetto al contenitore
|
|
15
|
+
*/
|
|
16
|
+
this.padding = 30;
|
|
17
|
+
/**
|
|
18
|
+
* Specifica le dimensioni esatte al cui interno effettuare il layouting, specificato come **{ x1, y1, x2, y2 }** o **{ x1, y1, w, h }**
|
|
19
|
+
*/
|
|
20
|
+
this.boundingBox = null;
|
|
21
|
+
/**
|
|
22
|
+
* Fa in modo che i nodi non si accavallino, ma se il contenitore non ha abbastanza spazio potrebbero andare in overflow
|
|
23
|
+
*/
|
|
24
|
+
this.avoidOverlap = true;
|
|
25
|
+
/**
|
|
26
|
+
* Include o esclude le dimensioni delle label dei nodi nel calcolo delle posizioni
|
|
27
|
+
*/
|
|
28
|
+
this.nodeDimensionsIncludeLabels = false;
|
|
29
|
+
/**
|
|
30
|
+
* Moltiplicatore delle dimensioni per espandere/restringere le dimensioni globali del diagramma
|
|
31
|
+
*/
|
|
32
|
+
this.spacingFactor = 1;
|
|
33
|
+
/**
|
|
34
|
+
* Funzione di ordinamento per ordinare i nodi
|
|
35
|
+
*/
|
|
36
|
+
this.sort = null;
|
|
37
|
+
/**
|
|
38
|
+
* Funzione per la trasformazione delle posizioni dei nodi
|
|
39
|
+
*
|
|
40
|
+
* @param {any} node Nodo
|
|
41
|
+
* @param {any} position Posizione iniziale
|
|
42
|
+
*
|
|
43
|
+
* @returns {any} Posizione finale
|
|
44
|
+
*/
|
|
45
|
+
this.transform = (node, position) => position;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
48
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL21vZGVscy9sYXlvdXRzL2Jhc2UvU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsd0JBQXdCO0lBRWpFLGNBQWM7SUFDZDtRQUFnQixLQUFLLEVBQUUsQ0FBQztRQUV4Qjs7V0FFRztRQUNILFFBQUcsR0FBRyxJQUFJLENBQUM7UUFFWDs7V0FFRztRQUNILFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFYjs7V0FFRztRQUNILGdCQUFXLEdBQStDLElBQUksQ0FBQztRQUUvRDs7V0FFRztRQUNILGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXBCOztXQUVHO1FBQ0gsZ0NBQTJCLEdBQUcsS0FBSyxDQUFDO1FBRXBDOztXQUVHO1FBQ0gsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFbEI7O1dBRUc7UUFDSCxTQUFJLEdBQXFCLElBQUksQ0FBQztRQUU5Qjs7Ozs7OztXQU9HO1FBQ0gsY0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDO0lBN0NoQixDQUFDO0NBOEM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvdW5kaW5nQm94MTIsIEJvdW5kaW5nQm94V0gsIFNvcnRpbmdGdW5jdGlvbiB9IGZyb20gJ2N5dG9zY2FwZSc7XHJcbmltcG9ydCB7IEFuaW1hdGVMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4vQW5pbWF0ZUxheW91dE9wdGlvbnNJbXBsJztcclxuXHJcbi8qKlxyXG4gKiBDbGFzc2UgYmFzZSBwZXIgZ2xpIGFsZ29yaXRtaSBcIlNoYXBlZFwiXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwgZXh0ZW5kcyBBbmltYXRlTGF5b3V0T3B0aW9uc0ltcGwge1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGFkYXR0YXJlIGFsIGNvbnRlbml0b3JlXHJcbiAgICAgKi9cclxuICAgIGZpdCA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYWRkaW5nIHJpc3BldHRvIGFsIGNvbnRlbml0b3JlXHJcbiAgICAgKi9cclxuICAgIHBhZGRpbmcgPSAzMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmljYSBsZSBkaW1lbnNpb25pIGVzYXR0ZSBhbCBjdWkgaW50ZXJubyBlZmZldHR1YXJlIGlsIGxheW91dGluZywgc3BlY2lmaWNhdG8gY29tZSAqKnsgeDEsIHkxLCB4MiwgeTIgfSoqIG8gKip7IHgxLCB5MSwgdywgaCB9KipcclxuICAgICAqL1xyXG4gICAgYm91bmRpbmdCb3g/OiBCb3VuZGluZ0JveDEyIHwgQm91bmRpbmdCb3hXSCB8IHVuZGVmaW5lZCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGYSBpbiBtb2RvIGNoZSBpIG5vZGkgbm9uIHNpIGFjY2F2YWxsaW5vLCBtYSBzZSBpbCBjb250ZW5pdG9yZSBub24gaGEgYWJiYXN0YW56YSBzcGF6aW8gcG90cmViYmVybyBhbmRhcmUgaW4gb3ZlcmZsb3dcclxuICAgICAqL1xyXG4gICAgYXZvaWRPdmVybGFwID0gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluY2x1ZGUgbyBlc2NsdWRlIGxlIGRpbWVuc2lvbmkgZGVsbGUgbGFiZWwgZGVpIG5vZGkgbmVsIGNhbGNvbG8gZGVsbGUgcG9zaXppb25pXHJcbiAgICAgKi9cclxuICAgIG5vZGVEaW1lbnNpb25zSW5jbHVkZUxhYmVscyA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW9sdGlwbGljYXRvcmUgZGVsbGUgZGltZW5zaW9uaSBwZXIgZXNwYW5kZXJlL3Jlc3RyaW5nZXJlIGxlIGRpbWVuc2lvbmkgZ2xvYmFsaSBkZWwgZGlhZ3JhbW1hXHJcbiAgICAgKi9cclxuICAgIHNwYWNpbmdGYWN0b3IgPSAxO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgZGkgb3JkaW5hbWVudG8gcGVyIG9yZGluYXJlIGkgbm9kaVxyXG4gICAgICovXHJcbiAgICBzb3J0PzogU29ydGluZ0Z1bmN0aW9uID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bnppb25lIHBlciBsYSB0cmFzZm9ybWF6aW9uZSBkZWxsZSBwb3NpemlvbmkgZGVpIG5vZGlcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IG5vZGUgTm9kb1xyXG4gICAgICogQHBhcmFtIHthbnl9IHBvc2l0aW9uIFBvc2l6aW9uZSBpbml6aWFsZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7YW55fSBQb3NpemlvbmUgZmluYWxlXHJcbiAgICAgKi9cclxuICAgIHRyYW5zZm9ybSA9IChub2RlLCBwb3NpdGlvbikgPT4gcG9zaXRpb247XHJcbn1cclxuIl19
|
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
import { Injectable, Inject } from '@angular/core';
|
|
2
|
-
import { DIA_DEBUG_MODE } from '../tokens';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Classe che si occupa del dispatch delle operazioni di rendering degli oggetti utilizzando una coda
|
|
6
|
-
*/
|
|
7
|
-
export class EsDiagramDispatcher {
|
|
8
|
-
/**
|
|
9
|
-
* @ignore
|
|
10
|
-
*/
|
|
11
|
-
constructor(logs) {
|
|
12
|
-
this.logs = logs;
|
|
13
|
-
/**
|
|
14
|
-
* Coda di inizializzazioni ancora da eseguire. Quando questa è vuota significa che nessuno sta creando oggetti
|
|
15
|
-
*/
|
|
16
|
-
this.Initializations = [];
|
|
17
|
-
/**
|
|
18
|
-
* Lista degli oggetti inizializzati e attivi in un dato momento (viene registrata la proprietà **name**). Non è possibile registrare due grafici con lo stesso identificativo
|
|
19
|
-
*/
|
|
20
|
-
this.Initialized = [];
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Registra un oggetto da visualizzare insieme alla propria funzione di creazione. Quest'ultima sarà differita fino a che tutti gli oggetti
|
|
24
|
-
* precedentemente registati non hanno finito la fase di inizializzazione
|
|
25
|
-
*
|
|
26
|
-
* @param {string} name Identificativo dell'oggetto da registrare
|
|
27
|
-
* @param {Function} creationFunction Funzione che fisicamente dovrà occuparsi della creazione dell'oggetto
|
|
28
|
-
*/
|
|
29
|
-
register(name, creationFunction) {
|
|
30
|
-
if (this.Initialized.indexOf(name) != -1)
|
|
31
|
-
throw "Attempting to register a duplicate object '" + name + "'. Make sure the 'name' properties of your diagram are univoque";
|
|
32
|
-
this.log("DISPATCHER: Registering diagram creation function execution for " + name);
|
|
33
|
-
this.Initializations.push({ name: name, function: creationFunction });
|
|
34
|
-
if (this.Initializations.length == 1) {
|
|
35
|
-
this.log("DISPATCHER: Initial drain started");
|
|
36
|
-
this.drainInitQueues();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Deregistra un oggetto presente. Chiamata generalmente al dispose dell'oggetto in questione quando non dev'essere più mostrato nella pagina corrente
|
|
41
|
-
*
|
|
42
|
-
* @param {string} name Identificativo dell'oggetto da deregistrare
|
|
43
|
-
*/
|
|
44
|
-
deregister(name) {
|
|
45
|
-
let index = this.Initialized.indexOf(name);
|
|
46
|
-
if (index == -1) {
|
|
47
|
-
//Questo succede quando si cerca di distruggere l'oggetto mentre sta venendo graficato
|
|
48
|
-
this.log("DISPATCHER: Registration missing for object " + name + " it was probably destroyed during load");
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
this.log("DISPATCHER: Object deregistered " + name);
|
|
52
|
-
this.Initialized.splice(index, 1);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Metodo che esegue in maniera sequenziale le funzioni di inizializzazione degli oggetti finché presenti
|
|
56
|
-
* in modo che nessun oggetto possa essere inizializzato contemporaneamente ad un altro
|
|
57
|
-
*/
|
|
58
|
-
drainInitQueues() {
|
|
59
|
-
let toExecute = this.Initializations[0];
|
|
60
|
-
this.log("DISPATCHER: Executing initialization function for object " + toExecute.name);
|
|
61
|
-
toExecute.function().then(() => {
|
|
62
|
-
this.log("DISPATCHER: initialization for object " + toExecute.name + " is done");
|
|
63
|
-
this.Initialized.push(toExecute.name);
|
|
64
|
-
this.Initializations.splice(0, 1);
|
|
65
|
-
if (this.Initializations.length >= 1) {
|
|
66
|
-
this.log("DISPATCHER: Found queued initializations. Continuing");
|
|
67
|
-
this.drainInitQueues();
|
|
68
|
-
}
|
|
69
|
-
else
|
|
70
|
-
this.log("DISPATCHER: queue is over, nothing more to do");
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* @ignore
|
|
75
|
-
*/
|
|
76
|
-
log(text) {
|
|
77
|
-
if (this.logs)
|
|
78
|
-
console.log("@esfaenza/es-diagrams: " + text);
|
|
79
|
-
}
|
|
80
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
81
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
82
|
-
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
84
|
-
type: Injectable
|
|
85
|
-
}], ctorParameters:
|
|
86
|
-
type: Inject,
|
|
87
|
-
args: [DIA_DEBUG_MODE]
|
|
88
|
-
}] }]
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable, Inject } from '@angular/core';
|
|
2
|
+
import { DIA_DEBUG_MODE } from '../tokens';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Classe che si occupa del dispatch delle operazioni di rendering degli oggetti utilizzando una coda
|
|
6
|
+
*/
|
|
7
|
+
export class EsDiagramDispatcher {
|
|
8
|
+
/**
|
|
9
|
+
* @ignore
|
|
10
|
+
*/
|
|
11
|
+
constructor(logs) {
|
|
12
|
+
this.logs = logs;
|
|
13
|
+
/**
|
|
14
|
+
* Coda di inizializzazioni ancora da eseguire. Quando questa è vuota significa che nessuno sta creando oggetti
|
|
15
|
+
*/
|
|
16
|
+
this.Initializations = [];
|
|
17
|
+
/**
|
|
18
|
+
* Lista degli oggetti inizializzati e attivi in un dato momento (viene registrata la proprietà **name**). Non è possibile registrare due grafici con lo stesso identificativo
|
|
19
|
+
*/
|
|
20
|
+
this.Initialized = [];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Registra un oggetto da visualizzare insieme alla propria funzione di creazione. Quest'ultima sarà differita fino a che tutti gli oggetti
|
|
24
|
+
* precedentemente registati non hanno finito la fase di inizializzazione
|
|
25
|
+
*
|
|
26
|
+
* @param {string} name Identificativo dell'oggetto da registrare
|
|
27
|
+
* @param {Function} creationFunction Funzione che fisicamente dovrà occuparsi della creazione dell'oggetto
|
|
28
|
+
*/
|
|
29
|
+
register(name, creationFunction) {
|
|
30
|
+
if (this.Initialized.indexOf(name) != -1)
|
|
31
|
+
throw "Attempting to register a duplicate object '" + name + "'. Make sure the 'name' properties of your diagram are univoque";
|
|
32
|
+
this.log("DISPATCHER: Registering diagram creation function execution for " + name);
|
|
33
|
+
this.Initializations.push({ name: name, function: creationFunction });
|
|
34
|
+
if (this.Initializations.length == 1) {
|
|
35
|
+
this.log("DISPATCHER: Initial drain started");
|
|
36
|
+
this.drainInitQueues();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Deregistra un oggetto presente. Chiamata generalmente al dispose dell'oggetto in questione quando non dev'essere più mostrato nella pagina corrente
|
|
41
|
+
*
|
|
42
|
+
* @param {string} name Identificativo dell'oggetto da deregistrare
|
|
43
|
+
*/
|
|
44
|
+
deregister(name) {
|
|
45
|
+
let index = this.Initialized.indexOf(name);
|
|
46
|
+
if (index == -1) {
|
|
47
|
+
//Questo succede quando si cerca di distruggere l'oggetto mentre sta venendo graficato
|
|
48
|
+
this.log("DISPATCHER: Registration missing for object " + name + " it was probably destroyed during load");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
this.log("DISPATCHER: Object deregistered " + name);
|
|
52
|
+
this.Initialized.splice(index, 1);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Metodo che esegue in maniera sequenziale le funzioni di inizializzazione degli oggetti finché presenti
|
|
56
|
+
* in modo che nessun oggetto possa essere inizializzato contemporaneamente ad un altro
|
|
57
|
+
*/
|
|
58
|
+
drainInitQueues() {
|
|
59
|
+
let toExecute = this.Initializations[0];
|
|
60
|
+
this.log("DISPATCHER: Executing initialization function for object " + toExecute.name);
|
|
61
|
+
toExecute.function().then(() => {
|
|
62
|
+
this.log("DISPATCHER: initialization for object " + toExecute.name + " is done");
|
|
63
|
+
this.Initialized.push(toExecute.name);
|
|
64
|
+
this.Initializations.splice(0, 1);
|
|
65
|
+
if (this.Initializations.length >= 1) {
|
|
66
|
+
this.log("DISPATCHER: Found queued initializations. Continuing");
|
|
67
|
+
this.drainInitQueues();
|
|
68
|
+
}
|
|
69
|
+
else
|
|
70
|
+
this.log("DISPATCHER: queue is over, nothing more to do");
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @ignore
|
|
75
|
+
*/
|
|
76
|
+
log(text) {
|
|
77
|
+
if (this.logs)
|
|
78
|
+
console.log("@esfaenza/es-diagrams: " + text);
|
|
79
|
+
}
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EsDiagramDispatcher, deps: [{ token: DIA_DEBUG_MODE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
81
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EsDiagramDispatcher }); }
|
|
82
|
+
}
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EsDiagramDispatcher, decorators: [{
|
|
84
|
+
type: Injectable
|
|
85
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
86
|
+
type: Inject,
|
|
87
|
+
args: [DIA_DEBUG_MODE]
|
|
88
|
+
}] }] });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtZGlhZ3JhbS5kaXNwYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9zZXJ2aWNlcy9lcy1kaWFncmFtLmRpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFM0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBWTVCOztPQUVHO0lBQ0gsWUFBNEMsSUFBYTtRQUFiLFNBQUksR0FBSixJQUFJLENBQVM7UUFiekQ7O1dBRUc7UUFDSyxvQkFBZSxHQUFzQyxFQUFFLENBQUM7UUFFaEU7O1dBRUc7UUFDSyxnQkFBVyxHQUFhLEVBQUUsQ0FBQztJQUswQixDQUFDO0lBRTlEOzs7Ozs7T0FNRztJQUNJLFFBQVEsQ0FBQyxJQUFZLEVBQUUsZ0JBQTBCO1FBQ3BELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sNkNBQTZDLEdBQUcsSUFBSSxHQUFHLGlFQUFpRSxDQUFDO1FBRW5JLElBQUksQ0FBQyxHQUFHLENBQUMsa0VBQWtFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxJQUFZO1FBQzFCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUNmLENBQUM7WUFDRyxzRkFBc0Y7WUFDdEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyw4Q0FBOEMsR0FBRyxJQUFJLEdBQUcsd0NBQXdDLENBQUMsQ0FBQztZQUMzRyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsa0NBQWtDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxlQUFlO1FBQ25CLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQywyREFBMkQsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkYsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyx3Q0FBd0MsR0FBRyxTQUFTLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQzs7Z0JBRUcsSUFBSSxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ssR0FBRyxDQUFDLElBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQzsrR0FqRlEsbUJBQW1CLGtCQWVSLGNBQWM7bUhBZnpCLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7MEJBZ0JNLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRElBX0RFQlVHX01PREUgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSBjaGUgc2kgb2NjdXBhIGRlbCBkaXNwYXRjaCBkZWxsZSBvcGVyYXppb25pIGRpIHJlbmRlcmluZyBkZWdsaSBvZ2dldHRpIHV0aWxpenphbmRvIHVuYSBjb2RhIFxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRXNEaWFncmFtRGlzcGF0Y2hlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb2RhIGRpIGluaXppYWxpenphemlvbmkgYW5jb3JhIGRhIGVzZWd1aXJlLiBRdWFuZG8gcXVlc3RhIMOoIHZ1b3RhIHNpZ25pZmljYSBjaGUgbmVzc3VubyBzdGEgY3JlYW5kbyBvZ2dldHRpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgSW5pdGlhbGl6YXRpb25zOiB7IG5hbWU6IHN0cmluZywgZnVuY3Rpb246IGFueSB9W10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExpc3RhIGRlZ2xpIG9nZ2V0dGkgaW5pemlhbGl6emF0aSBlIGF0dGl2aSBpbiB1biBkYXRvIG1vbWVudG8gKHZpZW5lIHJlZ2lzdHJhdGEgbGEgcHJvcHJpZXTDoCAqKm5hbWUqKikuIE5vbiDDqCBwb3NzaWJpbGUgcmVnaXN0cmFyZSBkdWUgZ3JhZmljaSBjb24gbG8gc3Rlc3NvIGlkZW50aWZpY2F0aXZvXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgSW5pdGlhbGl6ZWQ6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRElBX0RFQlVHX01PREUpIHByaXZhdGUgbG9nczogYm9vbGVhbikgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWdpc3RyYSB1biBvZ2dldHRvIGRhIHZpc3VhbGl6emFyZSBpbnNpZW1lIGFsbGEgcHJvcHJpYSBmdW56aW9uZSBkaSBjcmVhemlvbmUuIFF1ZXN0J3VsdGltYSBzYXLDoCBkaWZmZXJpdGEgZmlubyBhIGNoZSB0dXR0aSBnbGkgb2dnZXR0aVxyXG4gICAgICogcHJlY2VkZW50ZW1lbnRlIHJlZ2lzdGF0aSBub24gaGFubm8gZmluaXRvIGxhIGZhc2UgZGkgaW5pemlhbGl6emF6aW9uZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBJZGVudGlmaWNhdGl2byBkZWxsJ29nZ2V0dG8gZGEgcmVnaXN0cmFyZVxyXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3JlYXRpb25GdW5jdGlvbiBGdW56aW9uZSBjaGUgZmlzaWNhbWVudGUgZG92csOgIG9jY3VwYXJzaSBkZWxsYSBjcmVhemlvbmUgZGVsbCdvZ2dldHRvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3RlcihuYW1lOiBzdHJpbmcsIGNyZWF0aW9uRnVuY3Rpb246IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuSW5pdGlhbGl6ZWQuaW5kZXhPZihuYW1lKSAhPSAtMSlcclxuICAgICAgICAgICAgdGhyb3cgXCJBdHRlbXB0aW5nIHRvIHJlZ2lzdGVyIGEgZHVwbGljYXRlIG9iamVjdCAnXCIgKyBuYW1lICsgXCInLiBNYWtlIHN1cmUgdGhlICduYW1lJyBwcm9wZXJ0aWVzIG9mIHlvdXIgZGlhZ3JhbSBhcmUgdW5pdm9xdWVcIjtcclxuXHJcbiAgICAgICAgdGhpcy5sb2coXCJESVNQQVRDSEVSOiBSZWdpc3RlcmluZyBkaWFncmFtIGNyZWF0aW9uIGZ1bmN0aW9uIGV4ZWN1dGlvbiBmb3IgXCIgKyBuYW1lKTtcclxuICAgICAgICB0aGlzLkluaXRpYWxpemF0aW9ucy5wdXNoKHsgbmFtZTogbmFtZSwgZnVuY3Rpb246IGNyZWF0aW9uRnVuY3Rpb24gfSk7XHJcbiAgICAgICAgaWYgKHRoaXMuSW5pdGlhbGl6YXRpb25zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogSW5pdGlhbCBkcmFpbiBzdGFydGVkXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmRyYWluSW5pdFF1ZXVlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlcmVnaXN0cmEgdW4gb2dnZXR0byBwcmVzZW50ZS4gQ2hpYW1hdGEgZ2VuZXJhbG1lbnRlIGFsIGRpc3Bvc2UgZGVsbCdvZ2dldHRvIGluIHF1ZXN0aW9uZSBxdWFuZG8gbm9uIGRldidlc3NlcmUgcGnDuSBtb3N0cmF0byBuZWxsYSBwYWdpbmEgY29ycmVudGVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgSWRlbnRpZmljYXRpdm8gZGVsbCdvZ2dldHRvIGRhIGRlcmVnaXN0cmFyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVyZWdpc3RlcihuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLkluaXRpYWxpemVkLmluZGV4T2YobmFtZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ID09IC0xKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy9RdWVzdG8gc3VjY2VkZSBxdWFuZG8gc2kgY2VyY2EgZGkgZGlzdHJ1Z2dlcmUgbCdvZ2dldHRvIG1lbnRyZSBzdGEgdmVuZW5kbyBncmFmaWNhdG9cclxuICAgICAgICAgICAgdGhpcy5sb2coXCJESVNQQVRDSEVSOiBSZWdpc3RyYXRpb24gbWlzc2luZyBmb3Igb2JqZWN0IFwiICsgbmFtZSArIFwiIGl0IHdhcyBwcm9iYWJseSBkZXN0cm95ZWQgZHVyaW5nIGxvYWRcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogT2JqZWN0IGRlcmVnaXN0ZXJlZCBcIiArIG5hbWUpO1xyXG4gICAgICAgIHRoaXMuSW5pdGlhbGl6ZWQuc3BsaWNlKGluZGV4LCAxKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIGNoZSBlc2VndWUgaW4gbWFuaWVyYSBzZXF1ZW56aWFsZSBsZSBmdW56aW9uaSBkaSBpbml6aWFsaXp6YXppb25lIGRlZ2xpIG9nZ2V0dGkgZmluY2jDqSBwcmVzZW50aSBcclxuICAgICAqIGluIG1vZG8gY2hlIG5lc3N1biBvZ2dldHRvIHBvc3NhIGVzc2VyZSBpbml6aWFsaXp6YXRvIGNvbnRlbXBvcmFuZWFtZW50ZSBhZCB1biBhbHRyb1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGRyYWluSW5pdFF1ZXVlcygpIHtcclxuICAgICAgICBsZXQgdG9FeGVjdXRlID0gdGhpcy5Jbml0aWFsaXphdGlvbnNbMF07XHJcbiAgICAgICAgdGhpcy5sb2coXCJESVNQQVRDSEVSOiBFeGVjdXRpbmcgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gZm9yIG9iamVjdCBcIiArIHRvRXhlY3V0ZS5uYW1lKTtcclxuXHJcbiAgICAgICAgdG9FeGVjdXRlLmZ1bmN0aW9uKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogaW5pdGlhbGl6YXRpb24gZm9yIG9iamVjdCBcIiArIHRvRXhlY3V0ZS5uYW1lICsgXCIgaXMgZG9uZVwiKTtcclxuICAgICAgICAgICAgdGhpcy5Jbml0aWFsaXplZC5wdXNoKHRvRXhlY3V0ZS5uYW1lKTtcclxuICAgICAgICAgICAgdGhpcy5Jbml0aWFsaXphdGlvbnMuc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5Jbml0aWFsaXphdGlvbnMubGVuZ3RoID49IDEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogRm91bmQgcXVldWVkIGluaXRpYWxpemF0aW9ucy4gQ29udGludWluZ1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZHJhaW5Jbml0UXVldWVzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2coXCJESVNQQVRDSEVSOiBxdWV1ZSBpcyBvdmVyLCBub3RoaW5nIG1vcmUgdG8gZG9cIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbG9nKHRleHQ6IHN0cmluZykge1xyXG4gICAgICAgIGlmICh0aGlzLmxvZ3MpXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQGVzZmFlbnphL2VzLWRpYWdyYW1zOiBcIiArIHRleHQpO1xyXG4gICAgfVxyXG59Il19
|