@esfaenza/es-diagrams 19.2.28 → 20.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 (31) hide show
  1. package/fesm2022/esfaenza-es-diagrams.mjs +16 -16
  2. package/fesm2022/esfaenza-es-diagrams.mjs.map +1 -1
  3. package/index.d.ts +1088 -3
  4. package/package.json +3 -3
  5. package/lib/components/es-diagram.component.d.ts +0 -305
  6. package/lib/esdiagram.module.d.ts +0 -12
  7. package/lib/extensions/ReactiveExtensions.d.ts +0 -20
  8. package/lib/extensions/ResizeSensor.d.ts +0 -43
  9. package/lib/models/EsDiagramModuleConfig.d.ts +0 -9
  10. package/lib/models/component/contextmenu/ContextMenuCommand.d.ts +0 -27
  11. package/lib/models/component/contextmenu/ContextMenuOptions.d.ts +0 -79
  12. package/lib/models/component/grouping/ExpandCollapseOptions.d.ts +0 -22
  13. package/lib/models/component/nodes/NodeHTMLTemplate.d.ts +0 -14
  14. package/lib/models/component/nodes/NodeTemplate.d.ts +0 -13
  15. package/lib/models/component/nodes/ZoomLevelBasedTemplate.d.ts +0 -14
  16. package/lib/models/layouts/BreadthFirstLayoutOptionsImpl.d.ts +0 -40
  17. package/lib/models/layouts/CircleLayoutOptionsImpl.d.ts +0 -28
  18. package/lib/models/layouts/ConcentricLayoutOptionsImpl.d.ts +0 -74
  19. package/lib/models/layouts/CoseLayoutOptionsImpl.d.ts +0 -80
  20. package/lib/models/layouts/DagreLayoutOptionsImpl.d.ts +0 -48
  21. package/lib/models/layouts/GridLayoutOptionsImpl.d.ts +0 -39
  22. package/lib/models/layouts/NullLayoutOptionsImpl.d.ts +0 -12
  23. package/lib/models/layouts/PresetLayoutOptionsImpl.d.ts +0 -37
  24. package/lib/models/layouts/RandomLayoutOptionsImpl.d.ts +0 -33
  25. package/lib/models/layouts/base/AnimateLayoutOptionsImpl.d.ts +0 -40
  26. package/lib/models/layouts/base/BaseLayoutOptionsImpl.d.ts +0 -15
  27. package/lib/models/layouts/base/ShapedLayoutOptionsImpl.d.ts +0 -46
  28. package/lib/services/es-diagram.dispatcher.d.ts +0 -44
  29. package/lib/services/es-diagram.service.d.ts +0 -51
  30. package/lib/tokens.d.ts +0 -5
  31. package/public-api.d.ts +0 -20
package/index.d.ts CHANGED
@@ -1,5 +1,1090 @@
1
+ import { AnimatedLayoutOptions, BoundingBox12, BoundingBoxWH, SortingFunction, NodeSingular } from 'cytoscape';
2
+ import * as i0 from '@angular/core';
3
+ import { OnChanges, ElementRef, EventEmitter, SimpleChanges, ModuleWithProviders } from '@angular/core';
4
+ import * as i2 from '@angular/common';
5
+ import * as i3 from '@angular/forms';
6
+
1
7
  /**
2
- * Generated bundle index. Do not edit.
8
+ * Definizione di un comando del Context menù
3
9
  */
4
- /// <amd-module name="@esfaenza/es-diagrams" />
5
- export * from './public-api';
10
+ declare class ContextMenuCommand {
11
+ /**
12
+ * Background delo spicchio
13
+ */
14
+ fillColor?: string;
15
+ /**
16
+ * Contenuto del comando, html o testo
17
+ */
18
+ content: string;
19
+ /**
20
+ * Dizionario di stili da applicare all'html in cui viene wrappato il **content**
21
+ */
22
+ contentStyle?: {
23
+ [key: string]: string;
24
+ };
25
+ /**
26
+ * Funzione da eseguire quando questo comando viene cliccato
27
+ */
28
+ select: (ele: any) => void;
29
+ /**
30
+ * Indica se il comando è abilitato o no
31
+ */
32
+ enabled?: boolean;
33
+ }
34
+
35
+ /**
36
+ * Opzioni che gestiscono il context menu. Quando una di queste opzioni non viene assegnata viene mantenuto il default, assicurarsi quindi di modificare solo
37
+ * le proprietà che si vogliono effettivamente cambiare rispetto ai default
38
+ */
39
+ declare class ContextMenuOptions {
40
+ /**
41
+ * Raggio esterno del Menù, aggiunto alla dimensione renderizzata del nodo
42
+ */
43
+ menuRadius?: (ele: any) => number;
44
+ /**
45
+ * Selettore di tutti gli elementi a cui verrà applicato il context menu. Di default sono tutti i nodi
46
+ */
47
+ selector?: string;
48
+ /**
49
+ * Lista di comandi da mostrare nel menù
50
+ */
51
+ commands?: ContextMenuCommand[];
52
+ /**
53
+ * Colore di background del menu
54
+ */
55
+ fillColor?: string;
56
+ /**
57
+ * Colore di background del menù quando c'è il mouse in selezione sopra
58
+ */
59
+ activeFillColor?: string;
60
+ /**
61
+ * Dimensione aggiuntiva per l'operazione selezionata in modo da evidenziarla dalle altre
62
+ */
63
+ activePadding?: number;
64
+ /**
65
+ * Dimensione in pixel dell'indicatore sul comando attuale
66
+ */
67
+ indicatorSize?: number;
68
+ /**
69
+ * Distanza in pixel da un comando e l'altro
70
+ */
71
+ separatorWidth?: number;
72
+ /**
73
+ * Dimensione extra fra l'elemento e il centro del menù
74
+ */
75
+ spotlightPadding?: number;
76
+ /**
77
+ * Raggio minimo del centro del menù
78
+ */
79
+ minSpotlightRadius?: number;
80
+ /**
81
+ * Raggio massimo del centro del menù
82
+ */
83
+ maxSpotlightRadius?: number;
84
+ /**
85
+ * Eventi per il quale il menù deve aprirsi
86
+ */
87
+ openMenuEvents?: 'cxttapstart' | 'taphold';
88
+ /**
89
+ * Colore del testo del menù
90
+ */
91
+ itemColor?: string;
92
+ /**
93
+ * Colore dell'ombreggiatura del testo del menù
94
+ */
95
+ itemTextShadowColor?: string;
96
+ /**
97
+ * zIndex del div in cui viene renderizzato il menù
98
+ */
99
+ zIndex?: number;
100
+ /**
101
+ * Indica se mostrare il menù alla posizione del mouse
102
+ */
103
+ atMouse?: boolean;
104
+ /**
105
+ * Indica se adattarsi alla dimensione del nodo. Se impostato le proprietà **minSpotlightRadius** e **maxSpotlightRadius** vengono ignorate
106
+ */
107
+ adaptativeNodeSpotlightRadius?: boolean;
108
+ /**
109
+ * Se settato a number indica dopo quanti pixel fuori dal menu il click viene annullato, altrimenti va settato a **false**
110
+ */
111
+ outsideMenuCancel?: boolean | number;
112
+ }
113
+
114
+ /**
115
+ * Opzioni native per l'estensione expand-collapse di cytoscape
116
+ */
117
+ declare class ExpandCollapseOptions {
118
+ /** @ignore */ layoutBy?: any;
119
+ /** @ignore */ fisheye?: boolean;
120
+ /** @ignore */ animate?: boolean;
121
+ /** @ignore */ animationDuration?: number;
122
+ /** @ignore */ ready?: () => void;
123
+ /** @ignore */ undoable?: boolean;
124
+ /** @ignore */ cueEnabled?: boolean;
125
+ /** @ignore */ expandCollapseCuePosition?: string | ((node: any) => string);
126
+ /** @ignore */ expandCollapseCueSize?: number;
127
+ /** @ignore */ expandCollapseCueLineSize?: number;
128
+ /** @ignore */ expandCueImage?: string;
129
+ /** @ignore */ collapseCueImage?: string;
130
+ /** @ignore */ expandCollapseCueSensitivity?: number;
131
+ /** @ignore */ edgeTypeInfo?: string | Function;
132
+ /** @ignore */ groupEdgesOfSameTypeOnCollapse?: boolean;
133
+ /** @ignore */ allowNestedEdgeCollapse?: boolean;
134
+ /** @ignore */ zIndex?: number;
135
+ }
136
+
137
+ /**
138
+ * Classe che rappresenta un template HTML applicabile ad un nodo
139
+ */
140
+ declare class NodeTemplate {
141
+ /**
142
+ * Template del nodo. È possibile prendere direttamente i valori del nodo utilizzando la convenzione **#{data.nodeproperty}**
143
+ */
144
+ html: string;
145
+ /**
146
+ * Classe da applicare al template
147
+ */
148
+ cssClass?: string;
149
+ }
150
+
151
+ /**
152
+ * Classe che rappresenta il template HTML di un nodo da utilizzare per un certo livello di zoom
153
+ */
154
+ declare class ZoomLevelBasedTemplate {
155
+ /**
156
+ * Livello di zoom da minimo a massimo per cui viene utilizzato questo template
157
+ */
158
+ zoomRange: [number, number];
159
+ /**
160
+ * Template da utilizzare
161
+ */
162
+ template: NodeTemplate;
163
+ }
164
+
165
+ /**
166
+ * Classe che indica per una data query quali template applicare
167
+ */
168
+ declare class NodeHTMLTemplate {
169
+ /**
170
+ * Query Cytoscape. Esempio **"[type = 'node']"** per prendere tutti i nodi la cui proprietà **type** all'interno dell'oggetto **data** è uguale a **node**
171
+ */
172
+ query: string;
173
+ /**
174
+ * Lista dei template da applicare in base al livello di zoom del diagramma
175
+ */
176
+ template: ZoomLevelBasedTemplate[];
177
+ }
178
+
179
+ /**
180
+ * Opzioni di layout di base che si collegano al **ready** e allo **stop** eventualmente per aggiungere del log addizionale
181
+ */
182
+ declare class BaseLayoutOptionsImpl {
183
+ /**
184
+ * Per ora ignoro lato documentale dato che sono placholder
185
+ * @ignore
186
+ */
187
+ ready(e: cytoscape.LayoutEventObject): void;
188
+ /**
189
+ * Per ora ignoro lato documentale dato che sono placholder
190
+ * @ignore
191
+ */
192
+ stop(e: cytoscape.LayoutEventObject): void;
193
+ }
194
+
195
+ /**
196
+ * Classe base con le opzioni di layout valide per tutti i layout animati
197
+ */
198
+ declare class AnimateLayoutOptionsImpl extends BaseLayoutOptionsImpl implements AnimatedLayoutOptions {
199
+ /** @ignore */
200
+ constructor();
201
+ /**
202
+ * Livello di zoom da impostare (si consiglia fit = **false** se viene impostato)
203
+ */
204
+ zoom: number;
205
+ /**
206
+ * Livello di pan da impostare (si consiglia fit = **false** se viene impostato)
207
+ */
208
+ pan: number;
209
+ /**
210
+ * Indica se animare il cambio di posizione dei nodi
211
+ */
212
+ animate: boolean;
213
+ /**
214
+ * Con **animate** a true indica la durata dell'animazione
215
+ */
216
+ animationDuration: number;
217
+ /**
218
+ * 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/
219
+ */
220
+ animationEasing: any;
221
+ /**
222
+ * Funzione che indica se un nodo dev'essere animato o no.
223
+ * Tutti i nodi sono animati di default.
224
+ * Tutti i nodi che non vengono animati verranno posizionati appena inizia l'animazione
225
+ *
226
+ * @param {any} node Nodo per cui decidere se abilitare l'animazione o no
227
+ * @param {number} i Indice del nodo corrente
228
+ *
229
+ * @returns {boolean} **true** se il nodo dev'essere animato, **false** altrimenti
230
+ */
231
+ animateFilter: (node: any, i: number) => boolean;
232
+ }
233
+
234
+ /**
235
+ * Classe base per gli algoritmi "Shaped"
236
+ */
237
+ declare class ShapedLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
238
+ /** @ignore */
239
+ constructor();
240
+ /**
241
+ * Indica se adattare al contenitore
242
+ */
243
+ fit: boolean;
244
+ /**
245
+ * Padding rispetto al contenitore
246
+ */
247
+ padding: number;
248
+ /**
249
+ * Specifica le dimensioni esatte al cui interno effettuare il layouting, specificato come **{ x1, y1, x2, y2 }** o **{ x1, y1, w, h }**
250
+ */
251
+ boundingBox?: BoundingBox12 | BoundingBoxWH | undefined;
252
+ /**
253
+ * Fa in modo che i nodi non si accavallino, ma se il contenitore non ha abbastanza spazio potrebbero andare in overflow
254
+ */
255
+ avoidOverlap: boolean;
256
+ /**
257
+ * Include o esclude le dimensioni delle label dei nodi nel calcolo delle posizioni
258
+ */
259
+ nodeDimensionsIncludeLabels: boolean;
260
+ /**
261
+ * Moltiplicatore delle dimensioni per espandere/restringere le dimensioni globali del diagramma
262
+ */
263
+ spacingFactor: number;
264
+ /**
265
+ * Funzione di ordinamento per ordinare i nodi
266
+ */
267
+ sort?: SortingFunction;
268
+ /**
269
+ * Funzione per la trasformazione delle posizioni dei nodi
270
+ *
271
+ * @param {any} node Nodo
272
+ * @param {any} position Posizione iniziale
273
+ *
274
+ * @returns {any} Posizione finale
275
+ */
276
+ transform: (node: any, position: any) => any;
277
+ }
278
+
279
+ /**
280
+ * Default per l'implementazione dell'algoritmo Breadth First
281
+ */
282
+ declare class BreadthFirstLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
283
+ /** @ignore */
284
+ constructor();
285
+ /**
286
+ * Nome dell'algoritmo di layouting
287
+ */
288
+ name: string;
289
+ /**
290
+ * Indica se l'albero è diretto in basso. Se false i collegamenti fra i nodi possono andare in qualsiasi direzione
291
+ */
292
+ directed: boolean;
293
+ /**
294
+ * Se **true** i livelli vengono ordinati in cerchi concentrici, se **false** vengono oridnati dall'alto al basso
295
+ */
296
+ circle: boolean;
297
+ /**
298
+ * Radici degli alberi
299
+ */
300
+ roots?: string;
301
+ /**
302
+ * Numero massimo di tentativi di posizionamento dei nodi in maniera massimale (senza backtracking)
303
+ */
304
+ maximalAdjustments: number;
305
+ /**
306
+ * Indica che i nodi verranno shiftati in base al proprio livello in modo da evitare collegamenti inversi (solo per i DAG)
307
+ */
308
+ maximal: boolean;
309
+ /**
310
+ * Indica se creare una griglia in cui ordinare i nodi del DAG (Solo quando la proprietà **circle** è a **false**)
311
+ */
312
+ grid: boolean;
313
+ /**
314
+ * Indica se escludere le label dei nodi quando vengono calcolati i limiti del layout
315
+ */
316
+ nodeDimensionsIncludeLabels: boolean;
317
+ }
318
+
319
+ /**
320
+ * Default per l'implementazione dell'algoritmo Circle
321
+ */
322
+ declare class CircleLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
323
+ /** @ignore */
324
+ constructor();
325
+ /**
326
+ * Nome dell'algoritmo di layouting
327
+ */
328
+ name: string;
329
+ /**
330
+ * Raggio del cercho
331
+ */
332
+ radius: number;
333
+ /**
334
+ * Angolo da cui i nodi partono, in radianti (Default: **3 / 2 * Math.PI**)
335
+ */
336
+ startAngle: number;
337
+ /**
338
+ * Numero di radianti fra il primo e l'ultimo nodo. Di default viene utilizzata l'intera circonferenza
339
+ */
340
+ sweep: number;
341
+ /**
342
+ * Indica se andare in senso orario (**true**) o antiorario (**false**)
343
+ */
344
+ clockwise: boolean;
345
+ }
346
+
347
+ /**
348
+ * Default per l'implementazione dell'algoritmo Concentric
349
+ */
350
+ declare class ConcentricLayoutOptionsImpl {
351
+ /**
352
+ * Nome dell'algoritmo di layouting
353
+ */
354
+ name: string;
355
+ /**
356
+ * Numero di radianti fra il primo e l'ultimo nodo. Di default viene utilizzata l'intera circonferenza
357
+ */
358
+ sweep?: number;
359
+ /**
360
+ * Indica se andare in senso orario (**true**) o antiorario (**false**)
361
+ */
362
+ clockwise?: boolean;
363
+ /**
364
+ * Angolo da cui i nodi partono, in radianti (Default: **3 / 2 * Math.PI**)
365
+ */
366
+ startAngle: number;
367
+ /**
368
+ * Indica se adattare al contenitore
369
+ */
370
+ fit: boolean;
371
+ /**
372
+ * Include o esclude le dimensioni delle label dei nodi nel calcolo delle posizioni
373
+ */
374
+ nodeDimensionsIncludeLabels: boolean;
375
+ /**
376
+ * Indica se i livelli devono essere o non essere equidistanti, potrebbe causare overflow dal contenitore
377
+ */
378
+ equidistant: boolean;
379
+ /**
380
+ * Distanza minima dall'esterno dei nodi, utilizzato per aggiustare il raggio
381
+ */
382
+ minNodeSpacingnumber: number;
383
+ /**
384
+ * Specifica le dimensioni esatte al cui interno effettuare il layouting, specificato come **{ x1, y1, x2, y2 }** o **{ x1, y1, w, h }**
385
+ */
386
+ boundingBox: BoundingBox12 | BoundingBoxWH | undefined;
387
+ /**
388
+ * Altezza dell'area di layout (sovrascrive quella del contenitore)
389
+ */
390
+ height: number;
391
+ /**
392
+ * Larghezza dell'area di layout (sovrascrive quella del contenitore)
393
+ */
394
+ width: number;
395
+ /**
396
+ * Moltiplicatore delle dimensioni per espandere/restringere le dimensioni globali del diagramma
397
+ */
398
+ spacingFactor: number;
399
+ /**
400
+ * 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
401
+ *
402
+ * @param {any} node Nodo
403
+ *
404
+ * @returns {number} Valore su cui ordinare i nodi verso il centro
405
+ */
406
+ concentric(node: {
407
+ degree(): number;
408
+ }): number;
409
+ /**
410
+ * Funzione di cui si può fare override per calcolare la variazione dei valori concentrici per ogni livello
411
+ *
412
+ * @param {any} nodes Gruppo di nodi del livello
413
+ *
414
+ * @returns {number} Variazione dei valori concentrici
415
+ */
416
+ levelWidth(nodes: {
417
+ maxDegree(): number;
418
+ }): number;
419
+ }
420
+
421
+ /**
422
+ * Default per l'implementazione dell'algoritmo Cose
423
+ */
424
+ declare class CoseLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
425
+ /** @ignore */
426
+ constructor();
427
+ /**
428
+ * Nome dell'algoritmo di layouting
429
+ */
430
+ name: string;
431
+ /**
432
+ * Se **animate** è **true**, l'animazione parte solo dopo questo numero di millisecondi (Evita flickering su animazioni veloci)
433
+ */
434
+ animationThreshold: number;
435
+ /**
436
+ * Numero di iterazioni fra aggiornamenti consecutivi della posizione a schermo
437
+ */
438
+ refresh: number;
439
+ /**
440
+ * Se **true** la posizione iniziale dei nodi è casuale, se **false** utilizza la posizione originale
441
+ */
442
+ randomize: boolean;
443
+ /**
444
+ * Spazio extra fra i componenti di un grafo non-compound
445
+ */
446
+ componentSpacing: number;
447
+ /**
448
+ * Moltiplicatore della repulsione fra nodi in caso di overlap
449
+ */
450
+ nodeOverlap: number;
451
+ /**
452
+ * Moltiplicatore di nesting per il calcolo della lunghezza ideale dei collegamenti nested
453
+ */
454
+ nestingFactor: number;
455
+ /**
456
+ * Costante di gravità
457
+ */
458
+ gravity: number;
459
+ /**
460
+ * Numero massimo di iterazioni da eseguire
461
+ */
462
+ numIter: number;
463
+ /**
464
+ * Temperatura iniziale (massima distanza fra i nodi)
465
+ */
466
+ initialTemp: number;
467
+ /**
468
+ * Fattore di raffreddamento. Ad ogni iterazione verrà sottratto ad **initialTemp**
469
+ */
470
+ coolingFactor: number;
471
+ /**
472
+ * Soglia minima di temperatura. Una volta raggiunta il layout si considera terminato
473
+ */
474
+ minTemp: number;
475
+ /**
476
+ * Moltiplicatore della repulsione fra nodi in caso di assenza di overlap. Funzione overrideabile per ogni node
477
+ *
478
+ * @param {any} node Nodo
479
+ *
480
+ * @returns {number} Moltiplicazione di repulsione
481
+ */
482
+ nodeRepulsion: (node: any) => number;
483
+ /**
484
+ * Lunghezza ideale dei collegamenti non nested. Funzione overrideabile per ogni collegamento
485
+ *
486
+ * @param {any} edge Collegamento
487
+ *
488
+ * @returns {number} Lunghezza ideale
489
+ */
490
+ idealEdgeLength: (edge: any) => number;
491
+ /**
492
+ * Divisore per calcolare le forze applicate ad un collegamento. Funzione overrideabile per ogni collegamento
493
+ *
494
+ * @param {any} edge Collegamento
495
+ *
496
+ * @returns {number} Indice di elasticità
497
+ */
498
+ edgeElasticity: (edge: any) => number;
499
+ }
500
+
501
+ /**
502
+ * Default per l'implementazione dell'algoritmo Dagre
503
+ */
504
+ declare class DagreLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
505
+ /** @ignore */
506
+ constructor();
507
+ /**
508
+ * Nome dell'algoritmo di layouting
509
+ */
510
+ name: string;
511
+ /**
512
+ * Distanza fra nodi adiacenti dello stesso rango
513
+ */
514
+ nodeSep: number;
515
+ /**
516
+ * Distanza fra collegamenti adiacenti nello stesso rango
517
+ */
518
+ edgeSep: number;
519
+ /**
520
+ * Distanza fra ogni rango
521
+ */
522
+ rankSep: number;
523
+ /**
524
+ * Direzione di disegno: LR = Sinistra a Destra, TB = Sopra a Sotto
525
+ */
526
+ rankDir: 'LR' | 'TB';
527
+ /**
528
+ * Algoritmo che si occupa di assegnare un rango ad ogni nodo
529
+ */
530
+ ranker: 'network-simplex' | 'tight-tree' | 'longest-path';
531
+ /**
532
+ * Numero di ranghi fra la sorgente e la destinazione di un collegamento
533
+ *
534
+ * @param {any} edge Collegamento di cui calcolare la differenza di rango
535
+ *
536
+ * @returns {number} Differenza di rango
537
+ */
538
+ minLen: (edge: any) => number;
539
+ /**
540
+ * Peso del collegamento, più è alto più generalmente risulterà corto
541
+ *
542
+ * @param {any} edge Collegamento di cui calcolare il peso
543
+ *
544
+ * @returns {number} Peso
545
+ */
546
+ edgeWeight: (edge: any) => number;
547
+ }
548
+
549
+ /**
550
+ * Default per l'implementazione dell'algoritmo Grid
551
+ */
552
+ declare class GridLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
553
+ /** @ignore */
554
+ constructor();
555
+ /**
556
+ * Nome dell'algoritmo di layouting
557
+ */
558
+ name: string;
559
+ /**
560
+ * Spazio extra attorno ai nodi quando **avoidOverlap** è **true**
561
+ */
562
+ avoidOverlapPadding: number;
563
+ /**
564
+ * Se **true** cerca di utilizzare il minor spazio possibile, se **false** usa tutto lo spazio che ha a disposizione
565
+ */
566
+ condense: boolean;
567
+ /**
568
+ * Forzatura del numero di righe della griglia
569
+ */
570
+ rows?: number | undefined;
571
+ /**
572
+ * Forzatura del numero di colonne della griglia
573
+ */
574
+ cols?: number | undefined;
575
+ /**
576
+ * Dato un nodo restituisce un indice di riga e di colonna della griglia in cui metterlo
577
+ *
578
+ * @param {NodeSingular} node Nodo
579
+ * @returns {{ row: number, col: number }} Oggetto che identifica una posizione della griglia
580
+ */
581
+ position: (node: NodeSingular) => {
582
+ row: number;
583
+ col: number;
584
+ };
585
+ }
586
+
587
+ /**
588
+ * Pseudo implementazione di un algoritmo vuoto che non fa nulla
589
+ */
590
+ declare class NullLayoutOptionsImpl extends BaseLayoutOptionsImpl {
591
+ /** @ignore */
592
+ constructor();
593
+ /**
594
+ * Nome dell'algoritmo di layouting
595
+ */
596
+ name: string;
597
+ }
598
+
599
+ /**
600
+ * Default per l'implementazione dell'algoritmo Preset (Posiziona i nodi in base alla loro proprietà **position**)
601
+ */
602
+ declare class PresetLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
603
+ /** @ignore */
604
+ constructor();
605
+ /**
606
+ * Nome dell'algoritmo di layouting
607
+ */
608
+ name: string;
609
+ /**
610
+ * Indica se adattare al contenitore
611
+ */
612
+ fit?: boolean;
613
+ /**
614
+ * Padding rispetto al contenitore
615
+ */
616
+ padding?: number;
617
+ /**
618
+ * Mappatura da un nodo ad una posizione
619
+ *
620
+ * @param {any} node Nodo
621
+ *
622
+ * @returns {any} Posizione iniziale
623
+ */
624
+ positions: (node: any) => any;
625
+ /**
626
+ * Funzione per la trasformazione delle posizioni dei nodi
627
+ *
628
+ * @param {any} node Nodo
629
+ * @param {any} position Posizione iniziale
630
+ *
631
+ * @returns {any} Posizione finale
632
+ */
633
+ transform: (node: any, position: any) => any;
634
+ }
635
+
636
+ /**
637
+ * Default per l'implementazione dell'algoritmo Random
638
+ */
639
+ declare class RandomLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
640
+ /** @ignore */
641
+ constructor();
642
+ /**
643
+ * Nome dell'algoritmo di layouting
644
+ */
645
+ name: string;
646
+ /**
647
+ * Indica se adattare al contenitore
648
+ */
649
+ fit: boolean;
650
+ /**
651
+ * Padding rispetto al contenitore
652
+ */
653
+ padding: number;
654
+ /**
655
+ * Specifica le dimensioni esatte al cui interno effettuare il layouting, specificato come **{ x1, y1, x2, y2 }** o **{ x1, y1, w, h }**
656
+ */
657
+ boundingBox: cytoscape.BoundingBox12 | cytoscape.BoundingBoxWH | undefined;
658
+ /**
659
+ * Funzione per la trasformazione delle posizioni dei nodi
660
+ *
661
+ * @param {any} node Nodo
662
+ * @param {any} position Posizione iniziale
663
+ *
664
+ * @returns {any} Posizione finale
665
+ */
666
+ transform: (node: any, position: any) => any;
667
+ }
668
+
669
+ /**
670
+ * Classe di configurazione per il Modulo
671
+ */
672
+ declare class EsDiagramModuleConfig {
673
+ /**
674
+ * Attiva o disattiva la modalità di debug per scrivere i messaggi a console
675
+ */
676
+ debugMode?: boolean;
677
+ }
678
+
679
+ /**
680
+ * Loader dei moduli di Cytoscape. Utilizza una cache per tenerseli in memoria a livello di applicazione
681
+ * in modo da non dover ricaricare nulla dopo avere usato un modulo almeno una volta
682
+ */
683
+ declare class EsDiagramService {
684
+ private DIA_DEBUG_MODE;
685
+ /**
686
+ * Cache dei moduli caricati
687
+ */
688
+ private modulesCache;
689
+ /**
690
+ * Costruttore
691
+ *
692
+ * @ignore
693
+ */
694
+ constructor(DIA_DEBUG_MODE: string);
695
+ /**
696
+ * Permette di importare, se serve un dato tema o localizzazione
697
+ *
698
+ * @param {'cytoscape-expand-collapse' | 'cytoscape-cxtmenu' | 'cytoscape-html-node' | 'cytoscape-dagre'} moduleId Nome del modulo di Cytoscape da importare (dev'essere il nome della cartella in node_modules)
699
+ *
700
+ * @returns {Promise<void | cytoscape.Ext>} Funzione di estensione per Cytoscape presa dal modulo richiesto
701
+ */
702
+ importIfNeeded(moduleId: 'cytoscape-expand-collapse' | 'cytoscape-cxtmenu' | 'cytoscape-html-node' | 'cytoscape-dagre'): Promise<void | cytoscape.Ext>;
703
+ /**
704
+ * Gestione degli errori di caricamento dei moduli qualora qualcuno utilizzasse un modulo non installato
705
+ *
706
+ * @param {string} moduleId Nome del modulo che si è cercato di caricare
707
+ * @param {any} err Errore restituito dalla promise di caricamento
708
+ */
709
+ private handleError;
710
+ /**
711
+ * Scrittore di log a console. Attivo solo quando la libreria è in modalità di Debug
712
+ *
713
+ * @param {'E' | 'I' | 'W'} severity Tipo di messaggio (Errore, Info, Warning)
714
+ * @param {string} text Testo da tradurre
715
+ * @param {boolean} requiresTranslation Indica se **text** è una frase già tradotta o se è da tradurre
716
+ */
717
+ log(severity: 'E' | 'I' | 'W', text: string, requiresTranslation?: boolean): void;
718
+ /**
719
+ * Metodo di localizzazione dei messaggi
720
+ *
721
+ * @param {string} text Messaggio da tradurre
722
+ *
723
+ * @returns {string} Messaggio tradotto
724
+ */
725
+ loc(text: string): string;
726
+ static ɵfac: i0.ɵɵFactoryDeclaration<EsDiagramService, [{ optional: true; }]>;
727
+ static ɵprov: i0.ɵɵInjectableDeclaration<EsDiagramService>;
728
+ }
729
+
730
+ /**
731
+ * Classe che si occupa del dispatch delle operazioni di rendering degli oggetti utilizzando una coda
732
+ */
733
+ declare class EsDiagramDispatcher {
734
+ private logs;
735
+ /**
736
+ * Coda di inizializzazioni ancora da eseguire. Quando questa è vuota significa che nessuno sta creando oggetti
737
+ */
738
+ private Initializations;
739
+ /**
740
+ * Lista degli oggetti inizializzati e attivi in un dato momento (viene registrata la proprietà **name**). Non è possibile registrare due grafici con lo stesso identificativo
741
+ */
742
+ private Initialized;
743
+ /**
744
+ * @ignore
745
+ */
746
+ constructor(logs: boolean);
747
+ /**
748
+ * Registra un oggetto da visualizzare insieme alla propria funzione di creazione. Quest'ultima sarà differita fino a che tutti gli oggetti
749
+ * precedentemente registati non hanno finito la fase di inizializzazione
750
+ *
751
+ * @param {string} name Identificativo dell'oggetto da registrare
752
+ * @param {Function} creationFunction Funzione che fisicamente dovrà occuparsi della creazione dell'oggetto
753
+ */
754
+ register(name: string, creationFunction: Function): void;
755
+ /**
756
+ * Deregistra un oggetto presente. Chiamata generalmente al dispose dell'oggetto in questione quando non dev'essere più mostrato nella pagina corrente
757
+ *
758
+ * @param {string} name Identificativo dell'oggetto da deregistrare
759
+ */
760
+ deregister(name: string): void;
761
+ /**
762
+ * Metodo che esegue in maniera sequenziale le funzioni di inizializzazione degli oggetti finché presenti
763
+ * in modo che nessun oggetto possa essere inizializzato contemporaneamente ad un altro
764
+ */
765
+ private drainInitQueues;
766
+ /**
767
+ * @ignore
768
+ */
769
+ private log;
770
+ static ɵfac: i0.ɵɵFactoryDeclaration<EsDiagramDispatcher, never>;
771
+ static ɵprov: i0.ɵɵInjectableDeclaration<EsDiagramDispatcher>;
772
+ }
773
+
774
+ /**
775
+ * Classe che fornisce metodi reattivi di estensione. Per ora implementato solo uno pseudo-throttle
776
+ */
777
+ declare class ReactiveExtensions {
778
+ /**
779
+ * Cache di tutti i timer in esecuzione
780
+ */
781
+ private executionTimers;
782
+ /**
783
+ * Esecuzione deleyata di una funzione. Se viene richiamata nuovamente prima di venire eseguita dopo il delay, il delay viene resettato
784
+ *
785
+ * @param {string} id Id per aiutare il servizio a distinguere funzioni con nome uguale chiamate da componenti diversi
786
+ * @param {Function} func Funzione da chiamare al termine del throttle
787
+ * @param {number} throttleTime Tempo di throttling in millisecondi
788
+ */
789
+ throttle(id: string, func: Function, throttleTime?: number): void;
790
+ static ɵfac: i0.ɵɵFactoryDeclaration<ReactiveExtensions, never>;
791
+ static ɵprov: i0.ɵɵInjectableDeclaration<ReactiveExtensions>;
792
+ }
793
+
794
+ /**
795
+ * Componente che si occupa di graficare un diagramma e di gestirne il ciclo di vita
796
+ */
797
+ declare class EsDiagramComponent implements OnChanges {
798
+ private service;
799
+ private dispatcher;
800
+ private exts;
801
+ /**
802
+ * Riferimento all'oggetto HTML su cui creare il diagramma
803
+ */
804
+ cyGraph: ElementRef;
805
+ /**
806
+ * Nome del diagramma, fondamentale assegnarlo per permettere alla libreria di schedularne la creazione
807
+ */
808
+ name: string;
809
+ /**
810
+ * Indica se utilizzare il menù contestuale a ruota attorno ad ogni nodo
811
+ */
812
+ UseContextMenu: boolean;
813
+ /**
814
+ * Indica le opzioni del menù contestuale qualora **UseContextMenu** fosse **true**.
815
+ *
816
+ * Ogni elemento di questo array è un selettore con il menu da mostrare per quella casistica
817
+ */
818
+ ContextMenuOptions: ContextMenuOptions[];
819
+ /**
820
+ * Dice al componente se il diagramma deve utilizzare il sistema di estensione per l'expand e collapse dei gruppi
821
+ */
822
+ UseExpandCollapse: boolean;
823
+ /**
824
+ * Opzioni native dell'estensione expand-collapse, vengono ovviamente utilizzate solo se **UseExpandCollapse** è **true**
825
+ */
826
+ ExpandCollapseOptions: ExpandCollapseOptions;
827
+ /**
828
+ * Blocco completo delle opzioni, alternativo all'assegnazione di **Elements**, **NodeStyles**, **EdgeStyles**, e **Layout**.
829
+ *
830
+ * Qualora entrambe venissero specificate verrà effettuata un'unione fra queste opzioni e quelle specificate, dando priorità alle specificate
831
+ */
832
+ NativeOptions: cytoscape.CytoscapeOptions;
833
+ /**
834
+ * Definizione degli elementi da mostrare nel diagramma
835
+ */
836
+ Elements: cytoscape.ElementDefinition[];
837
+ /**
838
+ * Definizione degli stili dei nodi
839
+ */
840
+ NodeStyles: cytoscape.Css.Node;
841
+ /**
842
+ * Definizione degli stili dei collegamenti fra i nodi
843
+ */
844
+ EdgeStyles: cytoscape.Css.Edge;
845
+ /**
846
+ * In un diagramma in sola lettura tutte le interazioni utente sono annullate
847
+ */
848
+ Readonly: boolean;
849
+ /**
850
+ * Aggiorna automaticamente le dimensioni del diagramma quando cambiano le dimensioni della finestra
851
+ */
852
+ AutoupdateSize: boolean;
853
+ /**
854
+ * Indica di mantenere la posizione dei nodi qualora venissero cambiati dall'Input **Elements**.
855
+ *
856
+ * Se l'ID di un nodo è uguale all'ID di un nodo presente in precedenza, il nuovo nodo ne erediterà la posizione
857
+ */
858
+ PreserveElementsPosition: boolean;
859
+ /**
860
+ * Qualora venisse modificato l'Input **Elements**, piuttosto che mettere semplicemente il nuovo Elemento in base al Layout precedente, applica anche un'animazione
861
+ *
862
+ * Funziona solamente se il **Layout** corrente del diagramma supporta le animazioni
863
+ */
864
+ AnimateLayoutChanges: boolean;
865
+ /**
866
+ * Attiva una modalità di selezione "smart"... o perlomeno "smarter" del default di Cytoscape.
867
+ *
868
+ * - Il click di un elemento non selezionato lo seleziona
869
+ * - Il click di un elemento selezionato lo deseleziona
870
+ * - Lo stato di selezione viene persistito sull'oggetto originale invece di rimanere in un internal
871
+ * - All'assegnazione di oggetti selezionati, questi vengono marcati correttamente con l'overlay di selezione
872
+ *
873
+ * N.B: la chiamata all'evento **onNodeClick** avviene **DOPO** la gestione della selezione
874
+ */
875
+ SmartSelection: boolean;
876
+ /**
877
+ * Indica di selezionare un elemento per volta qualora **SmartSelection** fosse attivo
878
+ */
879
+ SingleSelection: boolean;
880
+ /**
881
+ * CSS per la graficazione della selezione dei nodi. Quando un nodo verrà selezionato avrà sopra di se un overlay che 'sborda' di **overlay-padding** pixel,
882
+ * di colore **overlay-color** e con un opacità **overlay-opacity**
883
+ *
884
+ * Assegnando "{}" a questo input, la Smart selection viene gestita ma la gestione grafica è affidata all'utente,
885
+ * ad esempio usando dei **NodeHTMLTemplates** che definiscano selettori su nodi ":selected"
886
+ *
887
+ * @default {'overlay-color':'blue','overlay-opacity':0.5,'overlay-padding':7}
888
+ */
889
+ SmartSelectionStyles: {
890
+ 'overlay-color': string;
891
+ 'overlay-opacity': number;
892
+ 'overlay-padding': number;
893
+ };
894
+ /**
895
+ * Periodo di throttle da quando viene effettuato un resize a quando ricalcolare le dimensioni del diagramma.
896
+ *
897
+ * Può essere tenuto a 0 (redraw istantaneo) finché non ci sono problemi di prestazioni con eventualmente tanti resize a poca distanza l'uno dall'altro.
898
+ */
899
+ ResizeThrottleTime: number;
900
+ /**
901
+ * Layout di ordinamento dei nodi
902
+ */
903
+ Layout: BreadthFirstLayoutOptionsImpl | CircleLayoutOptionsImpl | ConcentricLayoutOptionsImpl | CoseLayoutOptionsImpl | DagreLayoutOptionsImpl | GridLayoutOptionsImpl | NullLayoutOptionsImpl | PresetLayoutOptionsImpl | RandomLayoutOptionsImpl;
904
+ /**
905
+ * Template HTML da applicare ai nodi per dargli stili particolari, diversi dalle shape di default
906
+ */
907
+ NodeHTMLTemplates: NodeHTMLTemplate[];
908
+ /**
909
+ * Fornisce il global della libreria (namespace **cytoscape**) e si aspetta che dopo operazioni di importazione
910
+ * lasciate all'utente vengano aggiunti tutti i moduli desiderati.
911
+ *
912
+ * È **fondamentale** che il primo parametro (il nome del modulo) sia uguale a ciò di cui viene fatto il require in modo che la libreria
913
+ * possa controllare che il modulo importato non sia già stato importato in precedenza
914
+ *
915
+ * ## Esempio:
916
+ *
917
+ * ```typescript
918
+ * (global) => {
919
+ * return import("cytoscape-extension-library").then(module => global.use("cytoscape-extension-library", module.default));
920
+ *
921
+ * ...
922
+ * }
923
+ * ```
924
+ */
925
+ ExtensionModulesImporter: (global: {
926
+ use: (moduleName: string, module: void | cytoscape.Ext) => void;
927
+ }) => Promise<any>;
928
+ /**
929
+ * Fornisce l'istanza attuale di Cytoscape da cui è possibile prendere le librerie di estensione caricate in **ExtensionModulesImporter**
930
+ * e configurarle in base ai comportamenti specifici
931
+ *
932
+ * ## Esempio:
933
+ *
934
+ * ```typescript
935
+ * (cytoscapeCore) => {
936
+ * // Fare questo lavoro per ogni estensione caricata
937
+ * let extensionConfiguration = { ... };
938
+ * let extensionInstance = cytoscapeCore.extensionLibrary(extensionConfiguration);
939
+ * extensionInstance.doSomethingSpecificToThisExtension();
940
+ *
941
+ * ...
942
+ * }
943
+ * ```
944
+ */
945
+ ExtensionModulesApplyer: (cytoscapeCore: cytoscape.Core) => void;
946
+ /**
947
+ * Evento lanciato al click di un nodo, contiene l'oggetto **data** del nodo in questione
948
+ */
949
+ onNodeClick: EventEmitter<{
950
+ data: any;
951
+ }>;
952
+ /**
953
+ * Evento lanciato alla selezione o deselezione di un nodo, contiene l'oggetto **data** del nodo in questione e informazioni sul suo stato di selezione
954
+ */
955
+ onNodeSelection: EventEmitter<{
956
+ data: any;
957
+ selected: boolean;
958
+ }>;
959
+ /**
960
+ * Evento lanciato al termine del Layouting. Se si vuole eseguire codice dopo che il Layout è fatto e completamente graficato, questo è il punto
961
+ */
962
+ onLayoutDone: EventEmitter<void>;
963
+ /**
964
+ * Evento lanciato al termine del caricamento del diagramma
965
+ */
966
+ onLoaded: EventEmitter<void>;
967
+ /**
968
+ * Variabile su cui salvarsi se i nodi hanno una gerarchia a gruppi o no. Serve per poi caricare l'estensione expand-collapse qualora fosse richiesta
969
+ */
970
+ private NodesHierarchy;
971
+ /**
972
+ * Indica se il rendering del diagramma è terminato
973
+ */
974
+ private Rendered;
975
+ /**
976
+ * Istanza del diagramma attualmente in uso
977
+ */
978
+ cy: cytoscape.Core;
979
+ /**
980
+ * Api dell'estensione expand-collapse per permettere di effettuare operazioni dall'esterno del diagramma. Vengono valorizzate se **UseExpandCollapse** è **true**
981
+ */
982
+ ExpandCollapseApi: any;
983
+ /**
984
+ * Api dell'estensione html-node per permettere di effettuare operazioni dall'esterno del diagramma. Vengono valorizzate se sono impostati dei **NodeHTMLTemplates**
985
+ */
986
+ private HtmlNodeApi;
987
+ /**
988
+ * Osservatore delle modifiche al contenitore del diagramma
989
+ */
990
+ private resizeObserver;
991
+ /**
992
+ * Riferimento all'ultimo layout utilizzato. Viene riapplicato qualora venisse cambiato l'Input **Elements**.
993
+ *
994
+ * Non utilizzo il makeLayouts perché altrimenti rischierei di creare un layout riferito a X elementi, ne aggiungo 1, riapplico il Layout
995
+ * ma mi viene riapplicato a X elementi invece che X + 1
996
+ */
997
+ private LastLayout;
998
+ /**
999
+ * Costruttore
1000
+ *
1001
+ * @ignore
1002
+ */
1003
+ constructor(service: EsDiagramService, dispatcher: EsDiagramDispatcher, exts: ReactiveExtensions);
1004
+ /**
1005
+ * @ignore
1006
+ *
1007
+ * Angular Pipeline
1008
+ */
1009
+ ngAfterViewInit(): void;
1010
+ /**
1011
+ * All'onDestroy ripulisco la memoria dal diagramma
1012
+ */
1013
+ ngOnDestroy(): void;
1014
+ /**
1015
+ * Registra il diagramma attuale nel Dispatcher in modo che venga caricato appena possibile
1016
+ */
1017
+ private dispatchLoadChart;
1018
+ /**
1019
+ * @ignore
1020
+ *
1021
+ * Angular Pipeline: Gestione ri-graficazione del diagramma, se possibile
1022
+ */
1023
+ ngOnChanges(changes: SimpleChanges): any;
1024
+ /**
1025
+ * Effettua il rendering del diagramma
1026
+ */
1027
+ private render;
1028
+ /**
1029
+ * Prende tutti gli elementi appena assegnati, e se qualcuno era selezionato la situazione viene persistita su cytoscape
1030
+ */
1031
+ private setupElementsSelectionIfNeeded;
1032
+ /**
1033
+ * Carica gli stili per mostrare carina la selezione dei nodi
1034
+ */
1035
+ private setupSelectionStyles;
1036
+ /**
1037
+ * Registra l'ascolto al contenitore del grafico e in caso di modifiche alla dimensione, al massimo una volta ogni 500 millisecondi, lo ridisegna
1038
+ */
1039
+ private listenOnChanges;
1040
+ /**
1041
+ * Funzione che si occupa di gestire il repaint del diagramma
1042
+ */
1043
+ private onContainerSizeChanged;
1044
+ /**
1045
+ * Collega tutti gli eventi che mi possono servire e li espone in output
1046
+ */
1047
+ private bindCytoscapeEvents;
1048
+ /**
1049
+ * Metodo che serve per caricare tutte le estensioni della libreria in base a ciò che viene utilizzato
1050
+ */
1051
+ private performModulesLoading;
1052
+ /**
1053
+ * Metodo che serve per caricare tutte le estensioni della libreria in base a ciò che viene utilizzato con le opzioni definite dagli Input
1054
+ */
1055
+ private performOperationsWithLoadedModules;
1056
+ updateCardData(): void;
1057
+ /**
1058
+ * Metodo interno per il caricamento dei moduli di estensione
1059
+ *
1060
+ * @param {'cytoscape-expand-collapse' | 'cytoscape-cxtmenu' | 'cytoscape-html-node' | 'cytoscape-dagre'} moduleId Modulo da caricare
1061
+ */
1062
+ private loadInternal;
1063
+ /**
1064
+ * Metodo che basandosi sulle opzioni native eventualmente assegnate le completa con gli Input addizionali
1065
+ *
1066
+ * @returns {cy_.CytoscapeOptions} Opzioni finali unite da Input ed opzioni native
1067
+ */
1068
+ private getCompletedOptions;
1069
+ /**
1070
+ * Aggiustamenti degli elementi di Cytoscape.
1071
+ *
1072
+ * I nodi non vengono toccati.
1073
+ *
1074
+ * Per ogni edge viene controllato se è specificata una sorgente ed una destinazione, in caso contrario si cerca di dedurli dall'ID
1075
+ *
1076
+ * @param {cytoscape.ElementDefinition[]} elements Elementi da sistemare
1077
+ */
1078
+ private reviewCytoscapeElements;
1079
+ static ɵfac: i0.ɵɵFactoryDeclaration<EsDiagramComponent, [{ optional: true; }, { optional: true; }, null]>;
1080
+ static ɵcmp: i0.ɵɵComponentDeclaration<EsDiagramComponent, "es-diagram", never, { "name": { "alias": "name"; "required": false; }; "UseContextMenu": { "alias": "UseContextMenu"; "required": false; }; "ContextMenuOptions": { "alias": "ContextMenuOptions"; "required": false; }; "UseExpandCollapse": { "alias": "UseExpandCollapse"; "required": false; }; "ExpandCollapseOptions": { "alias": "ExpandCollapseOptions"; "required": false; }; "NativeOptions": { "alias": "NativeOptions"; "required": false; }; "Elements": { "alias": "Elements"; "required": false; }; "NodeStyles": { "alias": "NodeStyles"; "required": false; }; "EdgeStyles": { "alias": "EdgeStyles"; "required": false; }; "Readonly": { "alias": "Readonly"; "required": false; }; "AutoupdateSize": { "alias": "AutoupdateSize"; "required": false; }; "PreserveElementsPosition": { "alias": "PreserveElementsPosition"; "required": false; }; "AnimateLayoutChanges": { "alias": "AnimateLayoutChanges"; "required": false; }; "SmartSelection": { "alias": "SmartSelection"; "required": false; }; "SingleSelection": { "alias": "SingleSelection"; "required": false; }; "SmartSelectionStyles": { "alias": "SmartSelectionStyles"; "required": false; }; "ResizeThrottleTime": { "alias": "ResizeThrottleTime"; "required": false; }; "Layout": { "alias": "Layout"; "required": false; }; "NodeHTMLTemplates": { "alias": "NodeHTMLTemplates"; "required": false; }; "ExtensionModulesImporter": { "alias": "ExtensionModulesImporter"; "required": false; }; "ExtensionModulesApplyer": { "alias": "ExtensionModulesApplyer"; "required": false; }; }, { "onNodeClick": "onNodeClick"; "onNodeSelection": "onNodeSelection"; "onLayoutDone": "onLayoutDone"; "onLoaded": "onLoaded"; }, never, never, false, never>;
1081
+ }
1082
+
1083
+ declare class EsDiagramModule {
1084
+ static forRoot(config?: EsDiagramModuleConfig): ModuleWithProviders<EsDiagramModule>;
1085
+ static ɵfac: i0.ɵɵFactoryDeclaration<EsDiagramModule, never>;
1086
+ static ɵmod: i0.ɵɵNgModuleDeclaration<EsDiagramModule, [typeof EsDiagramComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i3.ReactiveFormsModule, typeof i2.CommonModule], [typeof EsDiagramComponent]>;
1087
+ static ɵinj: i0.ɵɵInjectorDeclaration<EsDiagramModule>;
1088
+ }
1089
+
1090
+ export { BaseLayoutOptionsImpl, BreadthFirstLayoutOptionsImpl, CircleLayoutOptionsImpl, ConcentricLayoutOptionsImpl, ContextMenuCommand, ContextMenuOptions, CoseLayoutOptionsImpl, DagreLayoutOptionsImpl, EsDiagramComponent, EsDiagramModule, EsDiagramModuleConfig, ExpandCollapseOptions, GridLayoutOptionsImpl, NodeHTMLTemplate, NodeTemplate, NullLayoutOptionsImpl, PresetLayoutOptionsImpl, RandomLayoutOptionsImpl, ShapedLayoutOptionsImpl, ZoomLevelBasedTemplate };