@esfaenza/es-diagrams 11.0.2

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 (65) hide show
  1. package/README.md +1 -0
  2. package/bundles/esfaenza-es-diagrams.umd.js +1748 -0
  3. package/bundles/esfaenza-es-diagrams.umd.js.map +1 -0
  4. package/esfaenza-es-diagrams.d.ts +9 -0
  5. package/esfaenza-es-diagrams.metadata.json +1 -0
  6. package/esm2015/esfaenza-es-diagrams.js +10 -0
  7. package/esm2015/lib/components/es-diagram.component.js +396 -0
  8. package/esm2015/lib/esdiagram.module.js +28 -0
  9. package/esm2015/lib/extensions/ReactiveExtensions.js +34 -0
  10. package/esm2015/lib/extensions/ResizeSensor.js +71 -0
  11. package/esm2015/lib/models/EsDiagramModuleConfig.js +6 -0
  12. package/esm2015/lib/models/component/contextmenu/ContextMenuCommand.js +6 -0
  13. package/esm2015/lib/models/component/contextmenu/ContextMenuOptions.js +7 -0
  14. package/esm2015/lib/models/component/grouping/ExpandCollapseOptions.js +6 -0
  15. package/esm2015/lib/models/component/nodes/NodeHTMLTemplate.js +6 -0
  16. package/esm2015/lib/models/component/nodes/NodeTemplate.js +6 -0
  17. package/esm2015/lib/models/component/nodes/ZoomLevelBasedTemplate.js +6 -0
  18. package/esm2015/lib/models/layouts/BreadthFirstLayoutOptionsImpl.js +35 -0
  19. package/esm2015/lib/models/layouts/CircleLayoutOptionsImpl.js +27 -0
  20. package/esm2015/lib/models/layouts/ConcentricLayoutOptionsImpl.js +64 -0
  21. package/esm2015/lib/models/layouts/CoseLayoutOptionsImpl.js +83 -0
  22. package/esm2015/lib/models/layouts/DagreLayoutOptionsImpl.js +52 -0
  23. package/esm2015/lib/models/layouts/GridLayoutOptionsImpl.js +38 -0
  24. package/esm2015/lib/models/layouts/NullLayoutOptionsImpl.js +15 -0
  25. package/esm2015/lib/models/layouts/PresetLayoutOptionsImpl.js +24 -0
  26. package/esm2015/lib/models/layouts/RandomLayoutOptionsImpl.js +36 -0
  27. package/esm2015/lib/models/layouts/base/AnimateLayoutOptionsImpl.js +42 -0
  28. package/esm2015/lib/models/layouts/base/BaseLayoutOptionsImpl.js +18 -0
  29. package/esm2015/lib/models/layouts/base/ShapedLayoutOptionsImpl.js +48 -0
  30. package/esm2015/lib/services/es-diagram.dispatcher.js +86 -0
  31. package/esm2015/lib/services/es-diagram.loc.js +17 -0
  32. package/esm2015/lib/services/es-diagram.service.js +106 -0
  33. package/esm2015/lib/tokens.js +10 -0
  34. package/esm2015/public-api.js +24 -0
  35. package/fesm2015/esfaenza-es-diagrams.js +1254 -0
  36. package/fesm2015/esfaenza-es-diagrams.js.map +1 -0
  37. package/lib/components/es-diagram.component.d.ts +243 -0
  38. package/lib/esdiagram.module.d.ts +5 -0
  39. package/lib/extensions/ReactiveExtensions.d.ts +17 -0
  40. package/lib/extensions/ResizeSensor.d.ts +43 -0
  41. package/lib/models/EsDiagramModuleConfig.d.ts +13 -0
  42. package/lib/models/component/contextmenu/ContextMenuCommand.d.ts +27 -0
  43. package/lib/models/component/contextmenu/ContextMenuOptions.d.ts +71 -0
  44. package/lib/models/component/grouping/ExpandCollapseOptions.d.ts +22 -0
  45. package/lib/models/component/nodes/NodeHTMLTemplate.d.ts +14 -0
  46. package/lib/models/component/nodes/NodeTemplate.d.ts +13 -0
  47. package/lib/models/component/nodes/ZoomLevelBasedTemplate.d.ts +14 -0
  48. package/lib/models/layouts/BreadthFirstLayoutOptionsImpl.d.ts +40 -0
  49. package/lib/models/layouts/CircleLayoutOptionsImpl.d.ts +28 -0
  50. package/lib/models/layouts/ConcentricLayoutOptionsImpl.d.ts +74 -0
  51. package/lib/models/layouts/CoseLayoutOptionsImpl.d.ts +80 -0
  52. package/lib/models/layouts/DagreLayoutOptionsImpl.d.ts +48 -0
  53. package/lib/models/layouts/GridLayoutOptionsImpl.d.ts +39 -0
  54. package/lib/models/layouts/NullLayoutOptionsImpl.d.ts +12 -0
  55. package/lib/models/layouts/PresetLayoutOptionsImpl.d.ts +37 -0
  56. package/lib/models/layouts/RandomLayoutOptionsImpl.d.ts +33 -0
  57. package/lib/models/layouts/base/AnimateLayoutOptionsImpl.d.ts +40 -0
  58. package/lib/models/layouts/base/BaseLayoutOptionsImpl.d.ts +15 -0
  59. package/lib/models/layouts/base/ShapedLayoutOptionsImpl.d.ts +46 -0
  60. package/lib/services/es-diagram.dispatcher.d.ts +41 -0
  61. package/lib/services/es-diagram.loc.d.ts +49 -0
  62. package/lib/services/es-diagram.service.d.ts +49 -0
  63. package/lib/tokens.d.ts +9 -0
  64. package/package.json +25 -0
  65. package/public-api.d.ts +20 -0
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Definizione di un comando del Context menù
3
+ */
4
+ export class ContextMenuCommand {
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dE1lbnVDb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvY29tcG9uZW50L2NvbnRleHRtZW51L0NvbnRleHRNZW51Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7Q0EwQjlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIERlZmluaXppb25lIGRpIHVuIGNvbWFuZG8gZGVsIENvbnRleHQgbWVuw7lcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb250ZXh0TWVudUNvbW1hbmQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmFja2dyb3VuZCBkZWxvIHNwaWNjaGlvXHJcbiAgICAgKi9cclxuICAgIGZpbGxDb2xvcj86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRlbnV0byBkZWwgY29tYW5kbywgaHRtbCBvIHRlc3RvXHJcbiAgICAgKi9cclxuICAgIGNvbnRlbnQ6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpemlvbmFyaW8gZGkgc3RpbGkgZGEgYXBwbGljYXJlIGFsbCdodG1sIGluIGN1aSB2aWVuZSB3cmFwcGF0byBpbCAqKmNvbnRlbnQqKlxyXG4gICAgICovXHJcbiAgICBjb250ZW50U3R5bGU/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZzsgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bnppb25lIGRhIGVzZWd1aXJlIHF1YW5kbyBxdWVzdG8gY29tYW5kbyB2aWVuZSBjbGljY2F0b1xyXG4gICAgICovXHJcbiAgICBzZWxlY3Q6IChlbGUpID0+IHZvaWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgaWwgY29tYW5kbyDDqCBhYmlsaXRhdG8gbyBub1xyXG4gICAgICovXHJcbiAgICBlbmFibGVkPzogYm9vbGVhbjtcclxufSJdfQ==
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Opzioni che gestiscono il context menu. Quando una di queste opzioni non viene assegnata viene mantenuto il default, assicurarsi quindi di modificare solo
3
+ * le proprietà che si vogliono effettivamente cambiare rispetto ai default
4
+ */
5
+ export class ContextMenuOptions {
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dE1lbnVPcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvY29tcG9uZW50L2NvbnRleHRtZW51L0NvbnRleHRNZW51T3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0NBaUY5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRleHRNZW51Q29tbWFuZCB9IGZyb20gXCIuL0NvbnRleHRNZW51Q29tbWFuZFwiO1xyXG5cclxuLyoqXHJcbiAqIE9wemlvbmkgY2hlIGdlc3Rpc2Nvbm8gaWwgY29udGV4dCBtZW51LiBRdWFuZG8gdW5hIGRpIHF1ZXN0ZSBvcHppb25pIG5vbiB2aWVuZSBhc3NlZ25hdGEgdmllbmUgbWFudGVudXRvIGlsIGRlZmF1bHQsIGFzc2ljdXJhcnNpIHF1aW5kaSBkaSBtb2RpZmljYXJlIHNvbG9cclxuICogbGUgcHJvcHJpZXTDoCBjaGUgc2kgdm9nbGlvbm8gZWZmZXR0aXZhbWVudGUgY2FtYmlhcmUgcmlzcGV0dG8gYWkgZGVmYXVsdFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvbnRleHRNZW51T3B0aW9ucyB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSYWdnaW8gZXN0ZXJubyBkZWwgTWVuw7ksIGFnZ2l1bnRvIGFsbGEgZGltZW5zaW9uZSByZW5kZXJpenphdGEgZGVsIG5vZG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIG1lbnVSYWRpdXM/OiAoZWxlKSA9PiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZWxldHRvcmUgZGkgdHV0dGkgZ2xpIGVsZW1lbnRpIGEgY3VpIHZlcnLDoCBhcHBsaWNhdG8gaWwgY29udGV4dCBtZW51LiBEaSBkZWZhdWx0IHNvbm8gdHV0dGkgaSBub2RpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWxlY3Rvcj86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIExpc3RhIGRpIGNvbWFuZGkgZGEgbW9zdHJhcmUgbmVsIG1lbsO5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb21tYW5kcz86IENvbnRleHRNZW51Q29tbWFuZFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29sb3JlIGRpIGJhY2tncm91bmQgZGVsIG1lbnVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGZpbGxDb2xvcj86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbG9yZSBkaSBiYWNrZ3JvdW5kIGRlbCBtZW7DuSBxdWFuZG8gYyfDqCBpbCBtb3VzZSBpbiBzZWxlemlvbmUgc29wcmFcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjdGl2ZUZpbGxDb2xvcj86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpbWVuc2lvbmUgYWdnaXVudGl2YSBwZXIgbCdvcGVyYXppb25lIHNlbGV6aW9uYXRhIGluIG1vZG8gZGEgZXZpZGVuemlhcmxhIGRhbGxlIGFsdHJlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhY3RpdmVQYWRkaW5nPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGltZW5zaW9uZSBpbiBwaXhlbCBkZWxsJ2luZGljYXRvcmUgc3VsIGNvbWFuZG8gYXR0dWFsZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW5kaWNhdG9yU2l6ZT86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpc3RhbnphIGluIHBpeGVsIGRhIHVuIGNvbWFuZG8gZSBsJ2FsdHJvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXBhcmF0b3JXaWR0aD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpbWVuc2lvbmUgZXh0cmEgZnJhIGwnZWxlbWVudG8gZSBpbCBjZW50cm8gZGVsIG1lbsO5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzcG90bGlnaHRQYWRkaW5nPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmFnZ2lvIG1pbmltbyBkZWwgY2VudHJvIGRlbCBtZW7DuVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWluU3BvdGxpZ2h0UmFkaXVzPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmFnZ2lvIG1hc3NpbW8gZGVsIGNlbnRybyBkZWwgbWVuw7lcclxuICAgICAqL1xyXG4gICAgcHVibGljIG1heFNwb3RsaWdodFJhZGl1cz86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50aSBwZXIgaWwgcXVhbGUgaWwgbWVuw7kgZGV2ZSBhcHJpcnNpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcGVuTWVudUV2ZW50cz86ICdjeHR0YXBzdGFydCcgfCAndGFwaG9sZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb2xvcmUgZGVsIHRlc3RvIGRlbCBtZW7DuVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXRlbUNvbG9yPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29sb3JlIGRlbGwnb21icmVnZ2lhdHVyYSBkZWwgdGVzdG8gZGVsIG1lbsO5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpdGVtVGV4dFNoYWRvd0NvbG9yPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogekluZGV4IGRlbCBkaXYgaW4gY3VpIHZpZW5lIHJlbmRlcml6emF0byBpbCBtZW7DuVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgekluZGV4PzogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIG1vc3RyYXJlIGlsIG1lbsO5IGFsbGEgcG9zaXppb25lIGRlbCBtb3VzZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXRNb3VzZT86IGJvb2xlYW47XHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Opzioni native per l'estensione expand-collapse di cytoscape
3
+ */
4
+ export class ExpandCollapseOptions {
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwYW5kQ29sbGFwc2VPcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvY29tcG9uZW50L2dyb3VwaW5nL0V4cGFuZENvbGxhcHNlT3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7Q0FtQmpDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi8qKlxyXG4gKiAgT3B6aW9uaSBuYXRpdmUgcGVyIGwnZXN0ZW5zaW9uZSBleHBhbmQtY29sbGFwc2UgZGkgY3l0b3NjYXBlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRXhwYW5kQ29sbGFwc2VPcHRpb25zIHtcclxuICAgIC8qKiBAaWdub3JlICovIGxheW91dEJ5PzogYW55OyAvLyB0byByZWFycmFuZ2UgYWZ0ZXIgZXhwYW5kL2NvbGxhcHNlLiBJdCdzIGp1c3QgbGF5b3V0IG9wdGlvbnMgb3Igd2hvbGUgbGF5b3V0IGZ1bmN0aW9uLiBDaG9vc2UgeW91ciBzaWRlIVxyXG4gICAgLyoqIEBpZ25vcmUgKi8gZmlzaGV5ZT86IGJvb2xlYW47IC8vIHdoZXRoZXIgdG8gcGVyZm9ybSBmaXNoZXllIHZpZXcgYWZ0ZXIgZXhwYW5kL2NvbGxhcHNlIHlvdSBjYW4gc3BlY2lmeSBhIGZ1bmN0aW9uIHRvb1xyXG4gICAgLyoqIEBpZ25vcmUgKi8gYW5pbWF0ZT86IGJvb2xlYW47IC8vIHdoZXRoZXIgdG8gYW5pbWF0ZSBvbiBkcmF3aW5nIGNoYW5nZXMgeW91IGNhbiBzcGVjaWZ5IGEgZnVuY3Rpb24gdG9vXHJcbiAgICAvKiogQGlnbm9yZSAqLyBhbmltYXRpb25EdXJhdGlvbj86IG51bWJlcjsgLy8gd2hlbiBhbmltYXRlIGlzIHRydWUsIHRoZSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMgb2YgdGhlIGFuaW1hdGlvblxyXG4gICAgLyoqIEBpZ25vcmUgKi8gcmVhZHk/OiAoKSA9PiB2b2lkOyAvLyBjYWxsYmFjayB3aGVuIGV4cGFuZC9jb2xsYXBzZSBpbml0aWFsaXplZFxyXG4gICAgLyoqIEBpZ25vcmUgKi8gdW5kb2FibGU/OiBib29sZWFuOyAvLyBhbmQgaWYgdW5kb1JlZG9FeHRlbnNpb24gZXhpc3RzLFxyXG5cclxuICAgIC8qKiBAaWdub3JlICovIGN1ZUVuYWJsZWQ/OiBib29sZWFuOyAvLyBXaGV0aGVyIGN1ZXMgYXJlIGVuYWJsZWRcclxuICAgIC8qKiBAaWdub3JlICovIGV4cGFuZENvbGxhcHNlQ3VlUG9zaXRpb24/OiBzdHJpbmcgfCAoKG5vZGUpID0+IHN0cmluZyk7IC8vIGRlZmF1bHQgY3VlIHBvc2l0aW9uIGlzIHRvcCBsZWZ0IHlvdSBjYW4gc3BlY2lmeSBhIGZ1bmN0aW9uIHBlciBub2RlIHRvb1xyXG4gICAgLyoqIEBpZ25vcmUgKi8gZXhwYW5kQ29sbGFwc2VDdWVTaXplPzogbnVtYmVyOyAvLyBzaXplIG9mIGV4cGFuZC1jb2xsYXBzZSBjdWVcclxuICAgIC8qKiBAaWdub3JlICovIGV4cGFuZENvbGxhcHNlQ3VlTGluZVNpemU/OiBudW1iZXI7IC8vIHNpemUgb2YgbGluZXMgdXNlZCBmb3IgZHJhd2luZyBwbHVzLW1pbnVzIGljb25zXHJcbiAgICAvKiogQGlnbm9yZSAqLyBleHBhbmRDdWVJbWFnZT86IHN0cmluZzsgLy8gaW1hZ2Ugb2YgZXhwYW5kIGljb24gaWYgdW5kZWZpbmVkIGRyYXcgcmVndWxhciBleHBhbmQgY3VlXHJcbiAgICAvKiogQGlnbm9yZSAqLyBjb2xsYXBzZUN1ZUltYWdlPzogc3RyaW5nOyAvLyBpbWFnZSBvZiBjb2xsYXBzZSBpY29uIGlmIHVuZGVmaW5lZCBkcmF3IHJlZ3VsYXIgY29sbGFwc2UgY3VlXHJcbiAgICAvKiogQGlnbm9yZSAqLyBleHBhbmRDb2xsYXBzZUN1ZVNlbnNpdGl2aXR5PzogbnVtYmVyOyAvLyBzZW5zaXRpdml0eSBvZiBleHBhbmQtY29sbGFwc2UgY3Vlc1xyXG4gICAgLyoqIEBpZ25vcmUgKi8gZWRnZVR5cGVJbmZvPzogc3RyaW5nIHwgRnVuY3Rpb247IC8vIHRoZSBuYW1lIG9mIHRoZSBmaWVsZCB0aGF0IGhhcyB0aGUgZWRnZSB0eXBlLCByZXRyaWV2ZWQgZnJvbSBlZGdlLmRhdGEoKSwgY2FuIGJlIGEgZnVuY3Rpb24sIGlmIHJlYWRpbmcgdGhlIGZpZWxkIHJldHVybnMgdW5kZWZpbmVkIHRoZSBjb2xsYXBzZWQgZWRnZSB0eXBlIHdpbGwgYmUgXCJ1bmtub3duXCJcclxuICAgIC8qKiBAaWdub3JlICovIGdyb3VwRWRnZXNPZlNhbWVUeXBlT25Db2xsYXBzZT86IGJvb2xlYW47IC8vIGlmIHRydWUsIHRoZSBlZGdlcyB0byBiZSBjb2xsYXBzZWQgd2lsbCBiZSBncm91cGVkIGFjY29yZGluZyB0byB0aGVpciB0eXBlcywgYW5kIHRoZSBjcmVhdGVkIGNvbGxhcHNlZCBlZGdlcyB3aWxsIGhhdmUgc2FtZSB0eXBlIGFzIHRoZWlyIGdyb3VwLiBpZiBmYWxzZSB0aGUgY29sbGFwYXNlZCBlZGdlIHdpbGwgaGF2ZSBcInVua25vd25cIiB0eXBlLlxyXG4gICAgLyoqIEBpZ25vcmUgKi8gYWxsb3dOZXN0ZWRFZGdlQ29sbGFwc2U/OiBib29sZWFuOyAvLyB3aGVuIHlvdSB3YW50IHRvIGNvbGxhcHNlIGEgY29tcG91bmQgZWRnZSAoZWRnZSB3aGljaCBjb250YWlucyBvdGhlciBlZGdlcykgYW5kIG5vcm1hbCBlZGdlLCBzaG91bGQgaXQgY29sbGFwc2Ugd2l0aG91dCBleHBhbmRpbmcgdGhlIGNvbXBvdW5kIGZpcnN0XHJcbiAgICAvKiogQGlnbm9yZSAqLyB6SW5kZXg/OiBudW1iZXI7IC8vIHotaW5kZXggdmFsdWUgb2YgdGhlIGNhbnZhcyBpbiB3aGljaCBjdWUgxLFtYWdlcyBhcmUgZHJhd25cclxufVxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Classe che indica per una data query quali template applicare
3
+ */
4
+ export class NodeHTMLTemplate {
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZUhUTUxUZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWRpYWdyYW1zL3NyYy9saWIvbW9kZWxzL2NvbXBvbmVudC9ub2Rlcy9Ob2RlSFRNTFRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtDQVc1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFpvb21MZXZlbEJhc2VkVGVtcGxhdGUgfSBmcm9tIFwiLi9ab29tTGV2ZWxCYXNlZFRlbXBsYXRlXCI7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIGNoZSBpbmRpY2EgcGVyIHVuYSBkYXRhIHF1ZXJ5IHF1YWxpIHRlbXBsYXRlIGFwcGxpY2FyZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE5vZGVIVE1MVGVtcGxhdGUge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUXVlcnkgQ3l0b3NjYXBlLiBFc2VtcGlvICoqXCJbdHlwZSA9ICdub2RlJ11cIioqIHBlciBwcmVuZGVyZSB0dXR0aSBpIG5vZGkgbGEgY3VpIHByb3ByaWV0w6AgKip0eXBlKiogYWxsJ2ludGVybm8gZGVsbCdvZ2dldHRvICoqZGF0YSoqIMOoIHVndWFsZSBhICoqbm9kZSoqXHJcbiAgICAgKi9cclxuICAgIHF1ZXJ5OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0YSBkZWkgdGVtcGxhdGUgZGEgYXBwbGljYXJlIGluIGJhc2UgYWwgbGl2ZWxsbyBkaSB6b29tIGRlbCBkaWFncmFtbWFcclxuICAgICAqL1xyXG4gICAgdGVtcGxhdGU6IFpvb21MZXZlbEJhc2VkVGVtcGxhdGVbXTtcclxufVxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Classe che rappresenta un template HTML applicabile ad un nodo
3
+ */
4
+ export class NodeTemplate {
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZVRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvY29tcG9uZW50L25vZGVzL05vZGVUZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0NBV3hCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENsYXNzZSBjaGUgcmFwcHJlc2VudGEgdW4gdGVtcGxhdGUgSFRNTCBhcHBsaWNhYmlsZSBhZCB1biBub2RvXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTm9kZVRlbXBsYXRlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlIGRlbCBub2RvLiDDiCBwb3NzaWJpbGUgcHJlbmRlcmUgZGlyZXR0YW1lbnRlIGkgdmFsb3JpIGRlbCBub2RvIHV0aWxpenphbmRvIGxhIGNvbnZlbnppb25lICoqI3tkYXRhLm5vZGVwcm9wZXJ0eX0qKlxyXG4gICAgICovXHJcbiAgICBodG1sOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbGFzc2UgZGEgYXBwbGljYXJlIGFsIHRlbXBsYXRlXHJcbiAgICAgKi9cclxuICAgIGNzc0NsYXNzPzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Classe che rappresenta il template HTML di un nodo da utilizzare per un certo livello di zoom
3
+ */
4
+ export class ZoomLevelBasedTemplate {
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWm9vbUxldmVsQmFzZWRUZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWRpYWdyYW1zL3NyYy9saWIvbW9kZWxzL2NvbXBvbmVudC9ub2Rlcy9ab29tTGV2ZWxCYXNlZFRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtDQVdsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVUZW1wbGF0ZSB9IGZyb20gXCIuL05vZGVUZW1wbGF0ZVwiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSBjaGUgcmFwcHJlc2VudGEgaWwgdGVtcGxhdGUgSFRNTCBkaSB1biBub2RvIGRhIHV0aWxpenphcmUgcGVyIHVuIGNlcnRvIGxpdmVsbG8gZGkgem9vbVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFpvb21MZXZlbEJhc2VkVGVtcGxhdGUge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGl2ZWxsbyBkaSB6b29tIGRhIG1pbmltbyBhIG1hc3NpbW8gcGVyIGN1aSB2aWVuZSB1dGlsaXp6YXRvIHF1ZXN0byB0ZW1wbGF0ZVxyXG4gICAgICovXHJcbiAgICB6b29tUmFuZ2U6IFtudW1iZXIsIG51bWJlcl07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZW1wbGF0ZSBkYSB1dGlsaXp6YXJlXHJcbiAgICAgKi9cclxuICAgIHRlbXBsYXRlOiBOb2RlVGVtcGxhdGU7XHJcbn1cclxuIl19
@@ -0,0 +1,35 @@
1
+ import { ShapedLayoutOptionsImpl } from './base/ShapedLayoutOptionsImpl';
2
+ /**
3
+ * Default per l'implementazione dell'algoritmo Breadth First
4
+ */
5
+ export class BreadthFirstLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
6
+ /** @ignore */
7
+ constructor() {
8
+ super();
9
+ /**
10
+ * Nome dell'algoritmo di layouting
11
+ */
12
+ this.name = 'breadthfirst';
13
+ /**
14
+ * Indica se l'albero è diretto in basso. Se false i collegamenti fra i nodi possono andare in qualsiasi direzione
15
+ */
16
+ this.directed = false;
17
+ /**
18
+ * Se **true** i livelli vengono ordinati in cerchi concentrici, se **false** vengono oridnati dall'alto al basso
19
+ */
20
+ this.circle = false;
21
+ /**
22
+ * Indica che i nodi verranno shiftati in base al proprio livello in modo da evitare collegamenti inversi (solo per i DAG)
23
+ */
24
+ this.maximal = false;
25
+ /**
26
+ * Indica se creare una griglia in cui ordinare i nodi del DAG (Solo quando la proprietà **circle** è a **false**)
27
+ */
28
+ this.grid = false;
29
+ /**
30
+ * Indica se escludere le label dei nodi quando vengono calcolati i limiti del layout
31
+ */
32
+ this.nodeDimensionsIncludeLabels = false;
33
+ }
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJlYWR0aEZpcnN0TGF5b3V0T3B0aW9uc0ltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL21vZGVscy9sYXlvdXRzL0JyZWFkdGhGaXJzdExheW91dE9wdGlvbnNJbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDZCQUE4QixTQUFRLHVCQUF1QjtJQUV0RSxjQUFjO0lBQ2Q7UUFBZ0IsS0FBSyxFQUFFLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxTQUFJLEdBQUcsY0FBYyxDQUFDO1FBRXRCOztXQUVHO1FBQ0gsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQjs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUM7UUFZZjs7V0FFRztRQUNILFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEI7O1dBRUc7UUFDSCxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWI7O1dBRUc7UUFDSCxnQ0FBMkIsR0FBRyxLQUFLLENBQUM7SUF4Q1gsQ0FBQztDQXlDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaGFwZWRMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4vYmFzZS9TaGFwZWRMYXlvdXRPcHRpb25zSW1wbCc7XHJcblxyXG4vKipcclxuICogRGVmYXVsdCBwZXIgbCdpbXBsZW1lbnRhemlvbmUgZGVsbCdhbGdvcml0bW8gQnJlYWR0aCBGaXJzdFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJyZWFkdGhGaXJzdExheW91dE9wdGlvbnNJbXBsIGV4dGVuZHMgU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwge1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm9tZSBkZWxsJ2FsZ29yaXRtbyBkaSBsYXlvdXRpbmdcclxuICAgICAqL1xyXG4gICAgbmFtZSA9ICdicmVhZHRoZmlyc3QnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGwnYWxiZXJvIMOoIGRpcmV0dG8gaW4gYmFzc28uIFNlIGZhbHNlIGkgY29sbGVnYW1lbnRpIGZyYSBpIG5vZGkgcG9zc29ubyBhbmRhcmUgaW4gcXVhbHNpYXNpIGRpcmV6aW9uZVxyXG4gICAgICovXHJcbiAgICBkaXJlY3RlZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2UgKip0cnVlKiogaSBsaXZlbGxpIHZlbmdvbm8gb3JkaW5hdGkgaW4gY2VyY2hpIGNvbmNlbnRyaWNpLCBzZSAqKmZhbHNlKiogdmVuZ29ubyBvcmlkbmF0aSBkYWxsJ2FsdG8gYWwgYmFzc28gXHJcbiAgICAgKi9cclxuICAgIGNpcmNsZSA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmFkaWNpIGRlZ2xpIGFsYmVyaVxyXG4gICAgICovXHJcbiAgICByb290cz86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE51bWVybyBtYXNzaW1vIGRpIHRlbnRhdGl2aSBkaSBwb3NpemlvbmFtZW50byBkZWkgbm9kaSBpbiBtYW5pZXJhIG1hc3NpbWFsZSAoc2VuemEgYmFja3RyYWNraW5nKVxyXG4gICAgICovXHJcbiAgICBtYXhpbWFsQWRqdXN0bWVudHM6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBjaGUgaSBub2RpIHZlcnJhbm5vIHNoaWZ0YXRpIGluIGJhc2UgYWwgcHJvcHJpbyBsaXZlbGxvIGluIG1vZG8gZGEgZXZpdGFyZSBjb2xsZWdhbWVudGkgaW52ZXJzaSAoc29sbyBwZXIgaSBEQUcpXHJcbiAgICAgKi9cclxuICAgIG1heGltYWwgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSBjcmVhcmUgdW5hIGdyaWdsaWEgaW4gY3VpIG9yZGluYXJlIGkgbm9kaSBkZWwgREFHIChTb2xvIHF1YW5kbyBsYSBwcm9wcmlldMOgICoqY2lyY2xlKiogw6ggYSAqKmZhbHNlKiopXHJcbiAgICAgKi9cclxuICAgIGdyaWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSBlc2NsdWRlcmUgbGUgbGFiZWwgZGVpIG5vZGkgcXVhbmRvIHZlbmdvbm8gY2FsY29sYXRpIGkgbGltaXRpIGRlbCBsYXlvdXRcclxuICAgICAqL1xyXG4gICAgbm9kZURpbWVuc2lvbnNJbmNsdWRlTGFiZWxzID0gZmFsc2U7XHJcbn1cclxuIl19
@@ -0,0 +1,27 @@
1
+ import { ShapedLayoutOptionsImpl } from './base/ShapedLayoutOptionsImpl';
2
+ /**
3
+ * Default per l'implementazione dell'algoritmo Circle
4
+ */
5
+ export class CircleLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
6
+ /** @ignore */
7
+ constructor() {
8
+ super();
9
+ /**
10
+ * Nome dell'algoritmo di layouting
11
+ */
12
+ this.name = 'circle';
13
+ /**
14
+ * Angolo da cui i nodi partono, in radianti (Default: **3 / 2 * Math.PI**)
15
+ */
16
+ this.startAngle = 3 / 2 * Math.PI;
17
+ /**
18
+ * Numero di radianti fra il primo e l'ultimo nodo. Di default viene utilizzata l'intera circonferenza
19
+ */
20
+ this.sweep = null;
21
+ /**
22
+ * Indica se andare in senso orario (**true**) o antiorario (**false**)
23
+ */
24
+ this.clockwise = true; // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
25
+ }
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2lyY2xlTGF5b3V0T3B0aW9uc0ltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL21vZGVscy9sYXlvdXRzL0NpcmNsZUxheW91dE9wdGlvbnNJbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHVCQUF1QjtJQUVoRSxjQUFjO0lBQ2Q7UUFBZ0IsS0FBSyxFQUFFLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBT2hCOztXQUVHO1FBQ0gsZUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUU3Qjs7V0FFRztRQUNILFVBQUssR0FBVyxJQUFJLENBQUM7UUFFckI7O1dBRUc7UUFDSCxjQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsMEZBQTBGO0lBekJuRixDQUFDO0NBMEI3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoYXBlZExheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi9iYXNlL1NoYXBlZExheW91dE9wdGlvbnNJbXBsJztcclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IHBlciBsJ2ltcGxlbWVudGF6aW9uZSBkZWxsJ2FsZ29yaXRtbyBDaXJjbGVcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDaXJjbGVMYXlvdXRPcHRpb25zSW1wbCBleHRlbmRzIFNoYXBlZExheW91dE9wdGlvbnNJbXBsIHtcclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE5vbWUgZGVsbCdhbGdvcml0bW8gZGkgbGF5b3V0aW5nXHJcbiAgICAgKi9cclxuICAgIG5hbWUgPSAnY2lyY2xlJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJhZ2dpbyBkZWwgY2VyY2hvXHJcbiAgICAgKi9cclxuICAgIHJhZGl1czogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW5nb2xvIGRhIGN1aSBpIG5vZGkgcGFydG9ubywgaW4gcmFkaWFudGkgKERlZmF1bHQ6ICoqMyAvIDIgKiBNYXRoLlBJKiopXHJcbiAgICAgKi9cclxuICAgIHN0YXJ0QW5nbGUgPSAzIC8gMiAqIE1hdGguUEk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOdW1lcm8gZGkgcmFkaWFudGkgZnJhIGlsIHByaW1vIGUgbCd1bHRpbW8gbm9kby4gRGkgZGVmYXVsdCB2aWVuZSB1dGlsaXp6YXRhIGwnaW50ZXJhIGNpcmNvbmZlcmVuemFcclxuICAgICAqL1xyXG4gICAgc3dlZXA6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgYW5kYXJlIGluIHNlbnNvIG9yYXJpbyAoKip0cnVlKiopIG8gYW50aW9yYXJpbyAoKipmYWxzZSoqKVxyXG4gICAgICovXHJcbiAgICBjbG9ja3dpc2UgPSB0cnVlOyAvLyB3aGV0aGVyIHRoZSBsYXlvdXQgc2hvdWxkIGdvIGNsb2Nrd2lzZSAodHJ1ZSkgb3IgY291bnRlcmNsb2Nrd2lzZS9hbnRpY2xvY2t3aXNlIChmYWxzZSlcclxufVxyXG4iXX0=
@@ -0,0 +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
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uY2VudHJpY0xheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9Db25jZW50cmljTGF5b3V0T3B0aW9uc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMkJBQTJCO0lBQXhDO1FBRUk7O1dBRUc7UUFDSCxTQUFJLEdBQVcsWUFBWSxDQUFDO1FBWTVCOztXQUVHO1FBQ0gsZUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQU83Qjs7V0FFRztRQUNILGdDQUEyQixHQUFHLElBQUksQ0FBQztRQUVuQzs7V0FFRztRQUNILGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCOztXQUVHO1FBQ0gseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBRTFCOztXQUVHO1FBQ0gsZ0JBQVcsR0FBOEMsSUFBSSxDQUFDO1FBRTlEOztXQUVHO1FBQ0gsV0FBTSxHQUFXLElBQUksQ0FBQztRQUV0Qjs7V0FFRztRQUNILFVBQUssR0FBVyxJQUFJLENBQUM7UUFFckI7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLENBQUMsQ0FBQztJQXVCdEIsQ0FBQztJQXJCRzs7Ozs7O09BTUc7SUFDSCxVQUFVLENBQUMsSUFBMkI7UUFDbEMsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBQyxLQUErQjtRQUN0QyxPQUFPLEtBQUssQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm91bmRpbmdCb3gxMiwgQm91bmRpbmdCb3hXSCB9IGZyb20gXCJjeXRvc2NhcGVcIjtcclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IHBlciBsJ2ltcGxlbWVudGF6aW9uZSBkZWxsJ2FsZ29yaXRtbyBDb25jZW50cmljXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29uY2VudHJpY0xheW91dE9wdGlvbnNJbXBsIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5vbWUgZGVsbCdhbGdvcml0bW8gZGkgbGF5b3V0aW5nXHJcbiAgICAgKi9cclxuICAgIG5hbWU6IHN0cmluZyA9ICdjb25jZW50cmljJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE51bWVybyBkaSByYWRpYW50aSBmcmEgaWwgcHJpbW8gZSBsJ3VsdGltbyBub2RvLiBEaSBkZWZhdWx0IHZpZW5lIHV0aWxpenphdGEgbCdpbnRlcmEgY2lyY29uZmVyZW56YVxyXG4gICAgICovXHJcbiAgICBzd2VlcD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSBhbmRhcmUgaW4gc2Vuc28gb3JhcmlvICgqKnRydWUqKikgbyBhbnRpb3JhcmlvICgqKmZhbHNlKiopXHJcbiAgICAgKi9cclxuICAgIGNsb2Nrd2lzZT86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbmdvbG8gZGEgY3VpIGkgbm9kaSBwYXJ0b25vLCBpbiByYWRpYW50aSAoRGVmYXVsdDogKiozIC8gMiAqIE1hdGguUEkqKilcclxuICAgICAqL1xyXG4gICAgc3RhcnRBbmdsZSA9IDMgLyAyICogTWF0aC5QSTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSBhZGF0dGFyZSBhbCBjb250ZW5pdG9yZVxyXG4gICAgICovXHJcbiAgICBmaXQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmNsdWRlIG8gZXNjbHVkZSBsZSBkaW1lbnNpb25pIGRlbGxlIGxhYmVsIGRlaSBub2RpIG5lbCBjYWxjb2xvIGRlbGxlIHBvc2l6aW9uaVxyXG4gICAgICovXHJcbiAgICBub2RlRGltZW5zaW9uc0luY2x1ZGVMYWJlbHMgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGkgbGl2ZWxsaSBkZXZvbm8gZXNzZXJlIG8gbm9uIGVzc2VyZSBlcXVpZGlzdGFudGksIHBvdHJlYmJlIGNhdXNhcmUgb3ZlcmZsb3cgZGFsIGNvbnRlbml0b3JlXHJcbiAgICAgKi9cclxuICAgIGVxdWlkaXN0YW50ID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXN0YW56YSBtaW5pbWEgZGFsbCdlc3Rlcm5vIGRlaSBub2RpLCB1dGlsaXp6YXRvIHBlciBhZ2dpdXN0YXJlIGlsIHJhZ2dpb1xyXG4gICAgICovXHJcbiAgICBtaW5Ob2RlU3BhY2luZ251bWJlciA9IDEwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3BlY2lmaWNhIGxlIGRpbWVuc2lvbmkgZXNhdHRlIGFsIGN1aSBpbnRlcm5vIGVmZmV0dHVhcmUgaWwgbGF5b3V0aW5nLCBzcGVjaWZpY2F0byBjb21lICoqeyB4MSwgeTEsIHgyLCB5MiB9KiogbyAqKnsgeDEsIHkxLCB3LCBoIH0qKlxyXG4gICAgICovXHJcbiAgICBib3VuZGluZ0JveDogQm91bmRpbmdCb3gxMiB8IEJvdW5kaW5nQm94V0ggfCB1bmRlZmluZWQgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWx0ZXp6YSBkZWxsJ2FyZWEgZGkgbGF5b3V0IChzb3ZyYXNjcml2ZSBxdWVsbGEgZGVsIGNvbnRlbml0b3JlKVxyXG4gICAgICovXHJcbiAgICBoZWlnaHQ6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMYXJnaGV6emEgZGVsbCdhcmVhIGRpIGxheW91dCAoc292cmFzY3JpdmUgcXVlbGxhIGRlbCBjb250ZW5pdG9yZSlcclxuICAgICAqL1xyXG4gICAgd2lkdGg6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb2x0aXBsaWNhdG9yZSBkZWxsZSBkaW1lbnNpb25pIHBlciBlc3BhbmRlcmUvcmVzdHJpbmdlcmUgbGUgZGltZW5zaW9uaSBnbG9iYWxpIGRlbCBkaWFncmFtbWFcclxuICAgICAqL1xyXG4gICAgc3BhY2luZ0ZhY3RvciA9IDE7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW56aW9uZSBkaSBjdWkgc2kgcHXDsiBmYXJlIG92ZXJyaWRlIHBlciBhc3NlZ25hcmUgdW4gdmFsb3JlIGFkIG9nbmkgbm9kby4gSSBub2RpIGNvbiB2YWxvcmUgcGnDuSBhbHRvIHNhcmFubm8gcGlhenphdGkgdmVyc28gaWwgY2VudHJvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBub2RlIE5vZG9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gVmFsb3JlIHN1IGN1aSBvcmRpbmFyZSBpIG5vZGkgdmVyc28gaWwgY2VudHJvXHJcbiAgICAgKi9cclxuICAgIGNvbmNlbnRyaWMobm9kZTogeyBkZWdyZWUoKTogbnVtYmVyOyB9KTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gbm9kZS5kZWdyZWUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bnppb25lIGRpIGN1aSBzaSBwdcOyIGZhcmUgb3ZlcnJpZGUgcGVyIGNhbGNvbGFyZSBsYSB2YXJpYXppb25lIGRlaSB2YWxvcmkgY29uY2VudHJpY2kgcGVyIG9nbmkgbGl2ZWxsb1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbm9kZXMgR3J1cHBvIGRpIG5vZGkgZGVsIGxpdmVsbG9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gVmFyaWF6aW9uZSBkZWkgdmFsb3JpIGNvbmNlbnRyaWNpXHJcbiAgICAgKi9cclxuICAgIGxldmVsV2lkdGgobm9kZXM6IHsgbWF4RGVncmVlKCk6IG51bWJlcjsgfSk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGVzLm1heERlZ3JlZSgpIC8gNDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +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
+ }
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zZUxheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9Db3NlTGF5b3V0T3B0aW9uc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekU7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsdUJBQXVCO0lBRTlELGNBQWM7SUFDZDtRQUFnQixLQUFLLEVBQUUsQ0FBQztRQUV4Qjs7V0FFRztRQUNILFNBQUksR0FBRyxNQUFNLENBQUM7UUFFZDs7V0FFRztRQUNILHVCQUFrQixHQUFHLEdBQUcsQ0FBQztRQUV6Qjs7V0FFRztRQUNILFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFYjs7V0FFRztRQUNILGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEI7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEI7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQjs7V0FFRztRQUNILGtCQUFhLEdBQUcsR0FBRyxDQUFDO1FBRXBCOztXQUVHO1FBQ0gsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUVaOztXQUVHO1FBQ0gsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmOztXQUVHO1FBQ0gsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkI7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUVyQjs7V0FFRztRQUNILFlBQU8sR0FBRyxHQUFHLENBQUM7UUFFZDs7Ozs7O1dBTUc7UUFDSCxrQkFBYSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFFL0I7Ozs7OztXQU1HO1FBQ0gsb0JBQWUsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRS9COzs7Ozs7V0FNRztRQUNILG1CQUFjLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQXZGTCxDQUFDO0NBd0Y3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoYXBlZExheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi9iYXNlL1NoYXBlZExheW91dE9wdGlvbnNJbXBsJztcclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IHBlciBsJ2ltcGxlbWVudGF6aW9uZSBkZWxsJ2FsZ29yaXRtbyBDb3NlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29zZUxheW91dE9wdGlvbnNJbXBsIGV4dGVuZHMgU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwge1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm9tZSBkZWxsJ2FsZ29yaXRtbyBkaSBsYXlvdXRpbmdcclxuICAgICAqL1xyXG4gICAgbmFtZSA9ICdjb3NlJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlICoqYW5pbWF0ZSoqIMOoICoqdHJ1ZSoqLCBsJ2FuaW1hemlvbmUgcGFydGUgc29sbyBkb3BvIHF1ZXN0byBudW1lcm8gZGkgbWlsbGlzZWNvbmRpIChFdml0YSBmbGlja2VyaW5nIHN1IGFuaW1hemlvbmkgdmVsb2NpKVxyXG4gICAgICovXHJcbiAgICBhbmltYXRpb25UaHJlc2hvbGQgPSAyNTA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOdW1lcm8gZGkgaXRlcmF6aW9uaSBmcmEgYWdnaW9ybmFtZW50aSBjb25zZWN1dGl2aSBkZWxsYSBwb3NpemlvbmUgYSBzY2hlcm1vXHJcbiAgICAgKi9cclxuICAgIHJlZnJlc2ggPSAyMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlICoqdHJ1ZSoqIGxhIHBvc2l6aW9uZSBpbml6aWFsZSBkZWkgbm9kaSDDqCBjYXN1YWxlLCBzZSAqKmZhbHNlKiogdXRpbGl6emEgbGEgcG9zaXppb25lIG9yaWdpbmFsZVxyXG4gICAgICovXHJcbiAgICByYW5kb21pemUgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNwYXppbyBleHRyYSBmcmEgaSBjb21wb25lbnRpIGRpIHVuIGdyYWZvIG5vbi1jb21wb3VuZFxyXG4gICAgICovXHJcbiAgICBjb21wb25lbnRTcGFjaW5nID0gNDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb2x0aXBsaWNhdG9yZSBkZWxsYSByZXB1bHNpb25lIGZyYSBub2RpIGluIGNhc28gZGkgb3ZlcmxhcFxyXG4gICAgICovXHJcbiAgICBub2RlT3ZlcmxhcCA9IDQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb2x0aXBsaWNhdG9yZSBkaSBuZXN0aW5nIHBlciBpbCBjYWxjb2xvIGRlbGxhIGx1bmdoZXp6YSBpZGVhbGUgZGVpIGNvbGxlZ2FtZW50aSBuZXN0ZWRcclxuICAgICAqL1xyXG4gICAgbmVzdGluZ0ZhY3RvciA9IDEuMjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RhbnRlIGRpIGdyYXZpdMOgXHJcbiAgICAgKi9cclxuICAgIGdyYXZpdHkgPSAxO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTnVtZXJvIG1hc3NpbW8gZGkgaXRlcmF6aW9uaSBkYSBlc2VndWlyZVxyXG4gICAgICovXHJcbiAgICBudW1JdGVyID0gMTAwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBlcmF0dXJhIGluaXppYWxlIChtYXNzaW1hIGRpc3RhbnphIGZyYSBpIG5vZGkpXHJcbiAgICAgKi9cclxuICAgIGluaXRpYWxUZW1wID0gMTAwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZhdHRvcmUgZGkgcmFmZnJlZGRhbWVudG8uIEFkIG9nbmkgaXRlcmF6aW9uZSB2ZXJyw6Agc290dHJhdHRvIGFkICoqaW5pdGlhbFRlbXAqKlxyXG4gICAgICovXHJcbiAgICBjb29saW5nRmFjdG9yID0gMC45OTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNvZ2xpYSBtaW5pbWEgZGkgdGVtcGVyYXR1cmEuIFVuYSB2b2x0YSByYWdnaXVudGEgaWwgbGF5b3V0IHNpIGNvbnNpZGVyYSB0ZXJtaW5hdG9cclxuICAgICAqL1xyXG4gICAgbWluVGVtcCA9IDEuMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vbHRpcGxpY2F0b3JlIGRlbGxhIHJlcHVsc2lvbmUgZnJhIG5vZGkgaW4gY2FzbyBkaSBhc3NlbnphIGRpIG92ZXJsYXAuIEZ1bnppb25lIG92ZXJyaWRlYWJpbGUgcGVyIG9nbmkgbm9kZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbm9kZSBOb2RvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IE1vbHRpcGxpY2F6aW9uZSBkaSByZXB1bHNpb25lXHJcbiAgICAgKi9cclxuICAgIG5vZGVSZXB1bHNpb24gPSAobm9kZSkgPT4gMjA0ODtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEx1bmdoZXp6YSBpZGVhbGUgZGVpIGNvbGxlZ2FtZW50aSBub24gbmVzdGVkLiBGdW56aW9uZSBvdmVycmlkZWFiaWxlIHBlciBvZ25pIGNvbGxlZ2FtZW50b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZWRnZSBDb2xsZWdhbWVudG9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gTHVuZ2hlenphIGlkZWFsZVxyXG4gICAgICovXHJcbiAgICBpZGVhbEVkZ2VMZW5ndGggPSAoZWRnZSkgPT4gMzI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXZpc29yZSBwZXIgY2FsY29sYXJlIGxlIGZvcnplIGFwcGxpY2F0ZSBhZCB1biBjb2xsZWdhbWVudG8uIEZ1bnppb25lIG92ZXJyaWRlYWJpbGUgcGVyIG9nbmkgY29sbGVnYW1lbnRvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBlZGdlIENvbGxlZ2FtZW50b1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBJbmRpY2UgZGkgZWxhc3RpY2l0w6BcclxuICAgICAqL1xyXG4gICAgZWRnZUVsYXN0aWNpdHkgPSAoZWRnZSkgPT4gMzI7XHJcbn1cclxuIl19
@@ -0,0 +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
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGFncmVMYXlvdXRPcHRpb25zSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWRpYWdyYW1zL3NyYy9saWIvbW9kZWxzL2xheW91dHMvRGFncmVMYXlvdXRPcHRpb25zSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RTs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx1QkFBdUI7SUFFL0QsY0FBYztJQUNkO1FBQWdCLEtBQUssRUFBRSxDQUFDO1FBRXhCOztXQUVHO1FBQ0gsU0FBSSxHQUFHLE9BQU8sQ0FBQztRQUVmOztXQUVHO1FBQ0gsWUFBTyxHQUFXLElBQUksQ0FBQztRQUV2Qjs7V0FFRztRQUNILFlBQU8sR0FBVyxJQUFJLENBQUM7UUFFdkI7O1dBRUc7UUFDSCxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBRXZCLG9EQUFvRDtRQUNwRDs7V0FFRztRQUNILFlBQU8sR0FBZ0IsSUFBSSxDQUFDO1FBRTVCOztXQUVHO1FBQ0gsV0FBTSxHQUFzRCxJQUFJLENBQUM7UUFFakU7Ozs7OztXQU1HO1FBQ0gsV0FBTSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFckI7Ozs7OztXQU1HO1FBQ0gsZUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFqREEsQ0FBQztDQWtEN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaGFwZWRMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4vYmFzZS9TaGFwZWRMYXlvdXRPcHRpb25zSW1wbCc7XHJcblxyXG4vKipcclxuICogRGVmYXVsdCBwZXIgbCdpbXBsZW1lbnRhemlvbmUgZGVsbCdhbGdvcml0bW8gRGFncmVcclxuICovXHJcbmV4cG9ydCBjbGFzcyBEYWdyZUxheW91dE9wdGlvbnNJbXBsIGV4dGVuZHMgU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwge1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm9tZSBkZWxsJ2FsZ29yaXRtbyBkaSBsYXlvdXRpbmdcclxuICAgICAqL1xyXG4gICAgbmFtZSA9ICdkYWdyZSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXN0YW56YSBmcmEgbm9kaSBhZGlhY2VudGkgZGVsbG8gc3Rlc3NvIHJhbmdvXHJcbiAgICAgKi9cclxuICAgIG5vZGVTZXA6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXN0YW56YSBmcmEgY29sbGVnYW1lbnRpIGFkaWFjZW50aSBuZWxsbyBzdGVzc28gcmFuZ29cclxuICAgICAqL1xyXG4gICAgZWRnZVNlcDogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpc3RhbnphIGZyYSBvZ25pIHJhbmdvXHJcbiAgICAgKi9cclxuICAgIHJhbmtTZXA6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLy8gVEIgZm9yIHRvcCB0byBib3R0b20gZmxvdywgJ0xSJyBmb3IgbGVmdCB0byByaWdodFxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXJlemlvbmUgZGkgZGlzZWdubzogTFIgPSBTaW5pc3RyYSBhIERlc3RyYSwgVEIgPSBTb3ByYSBhIFNvdHRvXHJcbiAgICAgKi9cclxuICAgIHJhbmtEaXI6ICdMUicgfCAnVEInID0gJ1RCJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFsZ29yaXRtbyBjaGUgc2kgb2NjdXBhIGRpIGFzc2VnbmFyZSB1biByYW5nbyBhZCBvZ25pIG5vZG9cclxuICAgICAqL1xyXG4gICAgcmFua2VyOiAnbmV0d29yay1zaW1wbGV4JyB8ICd0aWdodC10cmVlJyB8ICdsb25nZXN0LXBhdGgnID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE51bWVybyBkaSByYW5naGkgZnJhIGxhIHNvcmdlbnRlIGUgbGEgZGVzdGluYXppb25lIGRpIHVuIGNvbGxlZ2FtZW50b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZWRnZSBDb2xsZWdhbWVudG8gZGkgY3VpIGNhbGNvbGFyZSBsYSBkaWZmZXJlbnphIGRpIHJhbmdvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IERpZmZlcmVuemEgZGkgcmFuZ29cclxuICAgICAqL1xyXG4gICAgbWluTGVuID0gKGVkZ2UpID0+IDE7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXNvIGRlbCBjb2xsZWdhbWVudG8sIHBpw7kgw6ggYWx0byBwacO5IGdlbmVyYWxtZW50ZSByaXN1bHRlcsOgIGNvcnRvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBlZGdlIENvbGxlZ2FtZW50byBkaSBjdWkgY2FsY29sYXJlIGlsIHBlc29cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gUGVzb1xyXG4gICAgICovXHJcbiAgICBlZGdlV2VpZ2h0ID0gKGVkZ2UpID0+IDE7XHJcbn1cclxuIl19
@@ -0,0 +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
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JpZExheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9HcmlkTGF5b3V0T3B0aW9uc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekU7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsdUJBQXVCO0lBRTlELGNBQWM7SUFDZDtRQUFnQixLQUFLLEVBQUUsQ0FBQztRQUV4Qjs7V0FFRztRQUNILFNBQUksR0FBRyxNQUFNLENBQUM7UUFFZDs7V0FFRztRQUNILHdCQUFtQixHQUFHLEVBQUUsQ0FBQztRQUV6Qjs7V0FFRztRQUNILGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakI7O1dBRUc7UUFDSCxTQUFJLEdBQXdCLElBQUksQ0FBQztRQUVqQzs7V0FFRztRQUNILFNBQUksR0FBd0IsSUFBSSxDQUFDO1FBRWpDOzs7OztXQUtHO1FBQ0gsYUFBUSxHQUEwRCxJQUFJLENBQUM7SUFqQzlDLENBQUM7Q0FrQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZVNpbmd1bGFyIH0gZnJvbSAnY3l0b3NjYXBlJztcclxuaW1wb3J0IHsgU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwgfSBmcm9tICcuL2Jhc2UvU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwnO1xyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgcGVyIGwnaW1wbGVtZW50YXppb25lIGRlbGwnYWxnb3JpdG1vIEdyaWRcclxuICovXHJcbmV4cG9ydCBjbGFzcyBHcmlkTGF5b3V0T3B0aW9uc0ltcGwgZXh0ZW5kcyBTaGFwZWRMYXlvdXRPcHRpb25zSW1wbCB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOb21lIGRlbGwnYWxnb3JpdG1vIGRpIGxheW91dGluZ1xyXG4gICAgICovXHJcbiAgICBuYW1lID0gJ2dyaWQnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3BhemlvIGV4dHJhIGF0dG9ybm8gYWkgbm9kaSBxdWFuZG8gKiphdm9pZE92ZXJsYXAqKiDDqCAqKnRydWUqKlxyXG4gICAgICovXHJcbiAgICBhdm9pZE92ZXJsYXBQYWRkaW5nID0gMTA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZSAqKnRydWUqKiBjZXJjYSBkaSB1dGlsaXp6YXJlIGlsIG1pbm9yIHNwYXppbyBwb3NzaWJpbGUsIHNlICoqZmFsc2UqKiB1c2EgdHV0dG8gbG8gc3BhemlvIGNoZSBoYSBhIGRpc3Bvc2l6aW9uZVxyXG4gICAgICovXHJcbiAgICBjb25kZW5zZSA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9yemF0dXJhIGRlbCBudW1lcm8gZGkgcmlnaGUgZGVsbGEgZ3JpZ2xpYVxyXG4gICAgICovXHJcbiAgICByb3dzPzogbnVtYmVyIHwgdW5kZWZpbmVkID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcnphdHVyYSBkZWwgbnVtZXJvIGRpIGNvbG9ubmUgZGVsbGEgZ3JpZ2xpYVxyXG4gICAgICovXHJcbiAgICBjb2xzPzogbnVtYmVyIHwgdW5kZWZpbmVkID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdG8gdW4gbm9kbyByZXN0aXR1aXNjZSB1biBpbmRpY2UgZGkgcmlnYSBlIGRpIGNvbG9ubmEgZGVsbGEgZ3JpZ2xpYSBpbiBjdWkgbWV0dGVybG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtOb2RlU2luZ3VsYXJ9IG5vZGUgTm9kb1xyXG4gICAgICogQHJldHVybnMge3sgcm93OiBudW1iZXIsIGNvbDogbnVtYmVyIH19IE9nZ2V0dG8gY2hlIGlkZW50aWZpY2EgdW5hIHBvc2l6aW9uZSBkZWxsYSBncmlnbGlhXHJcbiAgICAgKi9cclxuICAgIHBvc2l0aW9uOiAobm9kZTogTm9kZVNpbmd1bGFyKSA9PiB7IHJvdzogbnVtYmVyOyBjb2w6IG51bWJlcjsgfSA9IG51bGw7XHJcbn1cclxuIl19
@@ -0,0 +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
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnVsbExheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9OdWxsTGF5b3V0T3B0aW9uc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckU7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEscUJBQXFCO0lBRTVELGNBQWM7SUFDZDtRQUFnQixLQUFLLEVBQUUsQ0FBQztRQUV4Qjs7V0FFRztRQUNILFNBQUksR0FBRyxNQUFNLENBQUM7SUFMVyxDQUFDO0NBTTdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUxheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi9iYXNlL0Jhc2VMYXlvdXRPcHRpb25zSW1wbCc7XHJcblxyXG4vKipcclxuICogUHNldWRvIGltcGxlbWVudGF6aW9uZSBkaSB1biBhbGdvcml0bW8gdnVvdG8gY2hlIG5vbiBmYSBudWxsYVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE51bGxMYXlvdXRPcHRpb25zSW1wbCBleHRlbmRzIEJhc2VMYXlvdXRPcHRpb25zSW1wbCB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOb21lIGRlbGwnYWxnb3JpdG1vIGRpIGxheW91dGluZ1xyXG4gICAgICovXHJcbiAgICBuYW1lID0gJ251bGwnO1xyXG59Il19
@@ -0,0 +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
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlc2V0TGF5b3V0T3B0aW9uc0ltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL21vZGVscy9sYXlvdXRzL1ByZXNldExheW91dE9wdGlvbnNJbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHdCQUF3QjtJQUVqRSxjQUFjO0lBQ2Q7UUFBZ0IsS0FBSyxFQUFFLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBcUJoQjs7Ozs7OztXQU9HO1FBQ0gsY0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDO0lBbENoQixDQUFDO0NBbUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGVMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4vYmFzZS9BbmltYXRlTGF5b3V0T3B0aW9uc0ltcGwnO1xyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgcGVyIGwnaW1wbGVtZW50YXppb25lIGRlbGwnYWxnb3JpdG1vIFByZXNldCAoUG9zaXppb25hIGkgbm9kaSBpbiBiYXNlIGFsbGEgbG9ybyBwcm9wcmlldMOgICoqcG9zaXRpb24qKilcclxuICovXHJcbmV4cG9ydCBjbGFzcyBQcmVzZXRMYXlvdXRPcHRpb25zSW1wbCBleHRlbmRzIEFuaW1hdGVMYXlvdXRPcHRpb25zSW1wbCB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOb21lIGRlbGwnYWxnb3JpdG1vIGRpIGxheW91dGluZ1xyXG4gICAgICovXHJcbiAgICBuYW1lID0gJ3ByZXNldCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgYWRhdHRhcmUgYWwgY29udGVuaXRvcmVcclxuICAgICAqL1xyXG4gICAgZml0PzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhZGRpbmcgcmlzcGV0dG8gYWwgY29udGVuaXRvcmVcclxuICAgICAqL1xyXG4gICAgcGFkZGluZz86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1hcHBhdHVyYSBkYSB1biBub2RvIGFkIHVuYSBwb3NpemlvbmVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IG5vZGUgTm9kb1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7YW55fSBQb3NpemlvbmUgaW5pemlhbGVcclxuICAgICAqL1xyXG4gICAgcG9zaXRpb25zOiAobm9kZSkgPT4gYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgcGVyIGxhIHRyYXNmb3JtYXppb25lIGRlbGxlIHBvc2l6aW9uaSBkZWkgbm9kaVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbm9kZSBOb2RvXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gcG9zaXRpb24gUG9zaXppb25lIGluaXppYWxlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHthbnl9IFBvc2l6aW9uZSBmaW5hbGVcclxuICAgICAqL1xyXG4gICAgdHJhbnNmb3JtID0gKG5vZGUsIHBvc2l0aW9uKSA9PiBwb3NpdGlvbjtcclxufVxyXG4iXX0=
@@ -0,0 +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
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFuZG9tTGF5b3V0T3B0aW9uc0ltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL21vZGVscy9sYXlvdXRzL1JhbmRvbUxheW91dE9wdGlvbnNJbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHdCQUF3QjtJQUVqRSxjQUFjO0lBQ2Q7UUFBZ0IsS0FBSyxFQUFFLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBRWhCOztXQUVHO1FBQ0gsUUFBRyxHQUFHLElBQUksQ0FBQztRQUVYOztXQUVHO1FBQ0gsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUViOztXQUVHO1FBQ0gsZ0JBQVcsR0FBa0UsSUFBSSxDQUFDO1FBRWxGOzs7Ozs7O1dBT0c7UUFDSCxjQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUE5QmhCLENBQUM7Q0ErQjdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0ZUxheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi9iYXNlL0FuaW1hdGVMYXlvdXRPcHRpb25zSW1wbCc7XHJcblxyXG4vKipcclxuICogRGVmYXVsdCBwZXIgbCdpbXBsZW1lbnRhemlvbmUgZGVsbCdhbGdvcml0bW8gUmFuZG9tXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUmFuZG9tTGF5b3V0T3B0aW9uc0ltcGwgZXh0ZW5kcyBBbmltYXRlTGF5b3V0T3B0aW9uc0ltcGwge1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm9tZSBkZWxsJ2FsZ29yaXRtbyBkaSBsYXlvdXRpbmdcclxuICAgICAqL1xyXG4gICAgbmFtZSA9ICdyYW5kb20nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGFkYXR0YXJlIGFsIGNvbnRlbml0b3JlXHJcbiAgICAgKi9cclxuICAgIGZpdCA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYWRkaW5nIHJpc3BldHRvIGFsIGNvbnRlbml0b3JlXHJcbiAgICAgKi9cclxuICAgIHBhZGRpbmcgPSAyMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmljYSBsZSBkaW1lbnNpb25pIGVzYXR0ZSBhbCBjdWkgaW50ZXJubyBlZmZldHR1YXJlIGlsIGxheW91dGluZywgc3BlY2lmaWNhdG8gY29tZSAqKnsgeDEsIHkxLCB4MiwgeTIgfSoqIG8gKip7IHgxLCB5MSwgdywgaCB9KipcclxuICAgICAqL1xyXG4gICAgYm91bmRpbmdCb3g6IGN5dG9zY2FwZS5Cb3VuZGluZ0JveDEyIHwgY3l0b3NjYXBlLkJvdW5kaW5nQm94V0ggfCB1bmRlZmluZWQgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgcGVyIGxhIHRyYXNmb3JtYXppb25lIGRlbGxlIHBvc2l6aW9uaSBkZWkgbm9kaVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbm9kZSBOb2RvXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gcG9zaXRpb24gUG9zaXppb25lIGluaXppYWxlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHthbnl9IFBvc2l6aW9uZSBmaW5hbGVcclxuICAgICAqL1xyXG4gICAgdHJhbnNmb3JtID0gKG5vZGUsIHBvc2l0aW9uKSA9PiBwb3NpdGlvbjtcclxufVxyXG4iXX0=
@@ -0,0 +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
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5pbWF0ZUxheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9iYXNlL0FuaW1hdGVMYXlvdXRPcHRpb25zSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRTs7R0FFRztBQUNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxxQkFBcUI7SUFFL0QsY0FBYztJQUNkO1FBQWdCLEtBQUssRUFBRSxDQUFDO1FBRXhCOztXQUVHO1FBQ0gsU0FBSSxHQUFXLElBQUksQ0FBQztRQUVwQjs7V0FFRztRQUNILFFBQUcsR0FBVyxJQUFJLENBQUM7UUFFbkI7O1dBRUc7UUFDSCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCOztXQUVHO1FBQ0gsc0JBQWlCLEdBQUcsR0FBRyxDQUFDO1FBRXhCOztXQUVHO1FBQ0gsb0JBQWUsR0FBRyxTQUFTLENBQUM7UUFFNUI7Ozs7Ozs7OztXQVNHO1FBQ0gsa0JBQWEsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQztJQXJDakIsQ0FBQztDQXNDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRlZExheW91dE9wdGlvbnMgfSBmcm9tICdjeXRvc2NhcGUnO1xyXG5pbXBvcnQgeyBCYXNlTGF5b3V0T3B0aW9uc0ltcGwgfSBmcm9tICcuL0Jhc2VMYXlvdXRPcHRpb25zSW1wbCc7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIGJhc2UgY29uIGxlIG9wemlvbmkgZGkgbGF5b3V0IHZhbGlkZSBwZXIgdHV0dGkgaSBsYXlvdXQgYW5pbWF0aVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFuaW1hdGVMYXlvdXRPcHRpb25zSW1wbCBleHRlbmRzIEJhc2VMYXlvdXRPcHRpb25zSW1wbCBpbXBsZW1lbnRzIEFuaW1hdGVkTGF5b3V0T3B0aW9ucyB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXZlbGxvIGRpIHpvb20gZGEgaW1wb3N0YXJlIChzaSBjb25zaWdsaWEgZml0ID0gKipmYWxzZSoqIHNlIHZpZW5lIGltcG9zdGF0bylcclxuICAgICAqL1xyXG4gICAgem9vbTogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExpdmVsbG8gZGkgcGFuIGRhIGltcG9zdGFyZSAoc2kgY29uc2lnbGlhIGZpdCA9ICoqZmFsc2UqKiBzZSB2aWVuZSBpbXBvc3RhdG8pXHJcbiAgICAgKi9cclxuICAgIHBhbjogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSBhbmltYXJlIGlsIGNhbWJpbyBkaSBwb3NpemlvbmUgZGVpIG5vZGlcclxuICAgICAqL1xyXG4gICAgYW5pbWF0ZSA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uICoqYW5pbWF0ZSoqIGEgdHJ1ZSBpbmRpY2EgbGEgZHVyYXRhIGRlbGwnYW5pbWF6aW9uZVxyXG4gICAgICovXHJcbiAgICBhbmltYXRpb25EdXJhdGlvbiA9IDUwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFiaWxpdGEgbyBubyBsJ2Vhc2luZyBkZWxsJ2FuaW1hemlvbmUsIHB1w7IgZXNzZXJlIHVuYSBzdHJpbmdhIGNvbWUgYWQgZXNlbXBpbyBcImVhc2UtaW4tb3V0LWN1YmljXCIgbyBhbHRyZSBmdW56aW9uaSBzY3JpdHRlIGFsbG8gc3Rlc3NvIG1vZG8gcHJlc2UgZGEgaHR0cHM6Ly9lYXNpbmdzLm5ldC9cclxuICAgICAqL1xyXG4gICAgYW5pbWF0aW9uRWFzaW5nID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgY2hlIGluZGljYSBzZSB1biBub2RvIGRldidlc3NlcmUgYW5pbWF0byBvIG5vLiBcclxuICAgICAqIFR1dHRpIGkgbm9kaSBzb25vIGFuaW1hdGkgZGkgZGVmYXVsdC5cclxuICAgICAqIFR1dHRpIGkgbm9kaSBjaGUgbm9uIHZlbmdvbm8gYW5pbWF0aSB2ZXJyYW5ubyBwb3NpemlvbmF0aSBhcHBlbmEgaW5pemlhIGwnYW5pbWF6aW9uZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbm9kZSBOb2RvIHBlciBjdWkgZGVjaWRlcmUgc2UgYWJpbGl0YXJlIGwnYW5pbWF6aW9uZSBvIG5vXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaSBJbmRpY2UgZGVsIG5vZG8gY29ycmVudGVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59ICoqdHJ1ZSoqIHNlIGlsIG5vZG8gZGV2J2Vzc2VyZSBhbmltYXRvLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBhbmltYXRlRmlsdGVyID0gKG5vZGUsIGk6IG51bWJlcikgPT4gdHJ1ZTtcclxufSJdfQ==
@@ -0,0 +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
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUxheW91dE9wdGlvbnNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0cy9iYXNlL0Jhc2VMYXlvdXRPcHRpb25zSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFFOUI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLENBQThCO0lBRXBDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsQ0FBOEI7SUFFbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIE9wemlvbmkgZGkgbGF5b3V0IGRpIGJhc2UgY2hlIHNpIGNvbGxlZ2FubyBhbCAqKnJlYWR5KiogZSBhbGxvICoqc3RvcCoqIGV2ZW50dWFsbWVudGUgcGVyIGFnZ2l1bmdlcmUgZGVsIGxvZyBhZGRpemlvbmFsZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJhc2VMYXlvdXRPcHRpb25zSW1wbCB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXIgb3JhIGlnbm9ybyBsYXRvIGRvY3VtZW50YWxlIGRhdG8gY2hlIHNvbm8gcGxhY2hvbGRlclxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICByZWFkeShlOiBjeXRvc2NhcGUuTGF5b3V0RXZlbnRPYmplY3QpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXIgb3JhIGlnbm9ybyBsYXRvIGRvY3VtZW50YWxlIGRhdG8gY2hlIHNvbm8gcGxhY2hvbGRlclxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICBzdG9wKGU6IGN5dG9zY2FwZS5MYXlvdXRFdmVudE9iamVjdCkge1xyXG5cclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +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
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL21vZGVscy9sYXlvdXRzL2Jhc2UvU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsd0JBQXdCO0lBRWpFLGNBQWM7SUFDZDtRQUFnQixLQUFLLEVBQUUsQ0FBQztRQUV4Qjs7V0FFRztRQUNILFFBQUcsR0FBRyxJQUFJLENBQUM7UUFFWDs7V0FFRztRQUNILFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFYjs7V0FFRztRQUNILGdCQUFXLEdBQStDLElBQUksQ0FBQztRQUUvRDs7V0FFRztRQUNILGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXBCOztXQUVHO1FBQ0gsZ0NBQTJCLEdBQUcsS0FBSyxDQUFDO1FBRXBDOztXQUVHO1FBQ0gsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFbEI7O1dBRUc7UUFDSCxTQUFJLEdBQXFCLElBQUksQ0FBQztRQUU5Qjs7Ozs7OztXQU9HO1FBQ0gsY0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDO0lBN0NoQixDQUFDO0NBOEM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvdW5kaW5nQm94MTIsIEJvdW5kaW5nQm94V0gsIFNvcnRpbmdGdW5jdGlvbiB9IGZyb20gJ2N5dG9zY2FwZSc7XHJcbmltcG9ydCB7IEFuaW1hdGVMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4vQW5pbWF0ZUxheW91dE9wdGlvbnNJbXBsJztcclxuXHJcbi8qKlxyXG4gKiBDbGFzc2UgYmFzZSBwZXIgZ2xpIGFsZ29yaXRtaSBcIlNoYXBlZFwiXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2hhcGVkTGF5b3V0T3B0aW9uc0ltcGwgZXh0ZW5kcyBBbmltYXRlTGF5b3V0T3B0aW9uc0ltcGwge1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGFkYXR0YXJlIGFsIGNvbnRlbml0b3JlXHJcbiAgICAgKi9cclxuICAgIGZpdCA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYWRkaW5nIHJpc3BldHRvIGFsIGNvbnRlbml0b3JlXHJcbiAgICAgKi9cclxuICAgIHBhZGRpbmcgPSAzMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmljYSBsZSBkaW1lbnNpb25pIGVzYXR0ZSBhbCBjdWkgaW50ZXJubyBlZmZldHR1YXJlIGlsIGxheW91dGluZywgc3BlY2lmaWNhdG8gY29tZSAqKnsgeDEsIHkxLCB4MiwgeTIgfSoqIG8gKip7IHgxLCB5MSwgdywgaCB9KipcclxuICAgICAqL1xyXG4gICAgYm91bmRpbmdCb3g/OiBCb3VuZGluZ0JveDEyIHwgQm91bmRpbmdCb3hXSCB8IHVuZGVmaW5lZCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGYSBpbiBtb2RvIGNoZSBpIG5vZGkgbm9uIHNpIGFjY2F2YWxsaW5vLCBtYSBzZSBpbCBjb250ZW5pdG9yZSBub24gaGEgYWJiYXN0YW56YSBzcGF6aW8gcG90cmViYmVybyBhbmRhcmUgaW4gb3ZlcmZsb3dcclxuICAgICAqL1xyXG4gICAgYXZvaWRPdmVybGFwID0gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluY2x1ZGUgbyBlc2NsdWRlIGxlIGRpbWVuc2lvbmkgZGVsbGUgbGFiZWwgZGVpIG5vZGkgbmVsIGNhbGNvbG8gZGVsbGUgcG9zaXppb25pXHJcbiAgICAgKi9cclxuICAgIG5vZGVEaW1lbnNpb25zSW5jbHVkZUxhYmVscyA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW9sdGlwbGljYXRvcmUgZGVsbGUgZGltZW5zaW9uaSBwZXIgZXNwYW5kZXJlL3Jlc3RyaW5nZXJlIGxlIGRpbWVuc2lvbmkgZ2xvYmFsaSBkZWwgZGlhZ3JhbW1hXHJcbiAgICAgKi9cclxuICAgIHNwYWNpbmdGYWN0b3IgPSAxO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgZGkgb3JkaW5hbWVudG8gcGVyIG9yZGluYXJlIGkgbm9kaVxyXG4gICAgICovXHJcbiAgICBzb3J0PzogU29ydGluZ0Z1bmN0aW9uID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bnppb25lIHBlciBsYSB0cmFzZm9ybWF6aW9uZSBkZWxsZSBwb3NpemlvbmkgZGVpIG5vZGlcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IG5vZGUgTm9kb1xyXG4gICAgICogQHBhcmFtIHthbnl9IHBvc2l0aW9uIFBvc2l6aW9uZSBpbml6aWFsZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7YW55fSBQb3NpemlvbmUgZmluYWxlXHJcbiAgICAgKi9cclxuICAgIHRyYW5zZm9ybSA9IChub2RlLCBwb3NpdGlvbikgPT4gcG9zaXRpb247XHJcbn1cclxuIl19