rete-angular-plugin 2.4.0 → 2.5.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 (118) hide show
  1. package/12/bundles/rete-angular-plugin-ng12.umd.js +44 -8
  2. package/12/bundles/rete-angular-plugin-ng12.umd.js.map +1 -1
  3. package/12/esm2015/index.js +2 -1
  4. package/12/esm2015/module.js +10 -5
  5. package/12/esm2015/presets/classic/components/connection/connection-wrapper.component.js +2 -1
  6. package/12/esm2015/presets/classic/components/node/node.component.js +6 -5
  7. package/12/esm2015/shared/pipes/impure-keyvalue.pipe.js +24 -0
  8. package/12/esm2015/shared/pipes/index.js +2 -0
  9. package/12/fesm2015/rete-angular-plugin-ng12.js +37 -10
  10. package/12/fesm2015/rete-angular-plugin-ng12.js.map +1 -1
  11. package/12/index.d.ts +1 -0
  12. package/12/module.d.ts +3 -2
  13. package/12/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  14. package/12/shared/pipes/index.d.ts +1 -0
  15. package/13/esm2020/index.mjs +2 -1
  16. package/13/esm2020/module.mjs +10 -5
  17. package/13/esm2020/presets/classic/components/connection/connection-wrapper.component.mjs +2 -1
  18. package/13/esm2020/presets/classic/components/node/node.component.mjs +7 -6
  19. package/13/esm2020/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  20. package/13/esm2020/shared/pipes/index.mjs +2 -0
  21. package/13/fesm2015/rete-angular-plugin-ng13.mjs +40 -11
  22. package/13/fesm2015/rete-angular-plugin-ng13.mjs.map +1 -1
  23. package/13/fesm2020/rete-angular-plugin-ng13.mjs +38 -11
  24. package/13/fesm2020/rete-angular-plugin-ng13.mjs.map +1 -1
  25. package/13/index.d.ts +1 -0
  26. package/13/module.d.ts +3 -2
  27. package/13/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  28. package/13/shared/pipes/index.d.ts +1 -0
  29. package/14/esm2020/index.mjs +2 -1
  30. package/14/esm2020/module.mjs +10 -5
  31. package/14/esm2020/presets/classic/components/connection/connection-wrapper.component.mjs +2 -1
  32. package/14/esm2020/presets/classic/components/node/node.component.mjs +7 -6
  33. package/14/esm2020/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  34. package/14/esm2020/shared/pipes/index.mjs +2 -0
  35. package/14/fesm2015/rete-angular-plugin-ng14.mjs +40 -11
  36. package/14/fesm2015/rete-angular-plugin-ng14.mjs.map +1 -1
  37. package/14/fesm2020/rete-angular-plugin-ng14.mjs +38 -11
  38. package/14/fesm2020/rete-angular-plugin-ng14.mjs.map +1 -1
  39. package/14/index.d.ts +1 -0
  40. package/14/module.d.ts +3 -2
  41. package/14/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  42. package/14/shared/pipes/index.d.ts +1 -0
  43. package/15/esm2020/index.mjs +2 -1
  44. package/15/esm2020/module.mjs +10 -5
  45. package/15/esm2020/presets/classic/components/connection/connection-wrapper.component.mjs +2 -1
  46. package/15/esm2020/presets/classic/components/node/node.component.mjs +7 -6
  47. package/15/esm2020/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  48. package/15/esm2020/shared/pipes/index.mjs +2 -0
  49. package/15/fesm2015/rete-angular-plugin-ng15.mjs +40 -11
  50. package/15/fesm2015/rete-angular-plugin-ng15.mjs.map +1 -1
  51. package/15/fesm2020/rete-angular-plugin-ng15.mjs +38 -11
  52. package/15/fesm2020/rete-angular-plugin-ng15.mjs.map +1 -1
  53. package/15/index.d.ts +1 -0
  54. package/15/module.d.ts +3 -2
  55. package/15/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  56. package/15/shared/pipes/index.d.ts +1 -0
  57. package/16/esm2022/index.mjs +2 -1
  58. package/16/esm2022/module.mjs +10 -5
  59. package/16/esm2022/presets/classic/components/connection/connection-wrapper.component.mjs +2 -1
  60. package/16/esm2022/presets/classic/components/node/node.component.mjs +7 -6
  61. package/16/esm2022/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  62. package/16/esm2022/shared/pipes/index.mjs +2 -0
  63. package/16/fesm2022/rete-angular-plugin-ng16.mjs +38 -11
  64. package/16/fesm2022/rete-angular-plugin-ng16.mjs.map +1 -1
  65. package/16/index.d.ts +1 -0
  66. package/16/module.d.ts +3 -2
  67. package/16/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  68. package/16/shared/pipes/index.d.ts +1 -0
  69. package/17/esm2022/index.mjs +2 -1
  70. package/17/esm2022/module.mjs +10 -5
  71. package/17/esm2022/presets/classic/components/connection/connection-wrapper.component.mjs +2 -1
  72. package/17/esm2022/presets/classic/components/node/node.component.mjs +7 -6
  73. package/17/esm2022/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  74. package/17/esm2022/shared/pipes/index.mjs +2 -0
  75. package/17/fesm2022/rete-angular-plugin-ng17.mjs +38 -11
  76. package/17/fesm2022/rete-angular-plugin-ng17.mjs.map +1 -1
  77. package/17/index.d.ts +1 -0
  78. package/17/module.d.ts +3 -2
  79. package/17/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  80. package/17/shared/pipes/index.d.ts +1 -0
  81. package/18/esm2022/index.mjs +2 -1
  82. package/18/esm2022/module.mjs +10 -5
  83. package/18/esm2022/presets/classic/components/connection/connection-wrapper.component.mjs +2 -1
  84. package/18/esm2022/presets/classic/components/node/node.component.mjs +7 -6
  85. package/18/esm2022/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  86. package/18/esm2022/shared/pipes/index.mjs +2 -0
  87. package/18/fesm2022/rete-angular-plugin-ng18.mjs +38 -11
  88. package/18/fesm2022/rete-angular-plugin-ng18.mjs.map +1 -1
  89. package/18/index.d.ts +1 -0
  90. package/18/module.d.ts +3 -2
  91. package/18/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  92. package/18/shared/pipes/index.d.ts +1 -0
  93. package/19/fesm2022/rete-angular-plugin-ng19.mjs +32 -9
  94. package/19/fesm2022/rete-angular-plugin-ng19.mjs.map +1 -1
  95. package/19/index.d.ts +1 -0
  96. package/19/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  97. package/19/shared/pipes/index.d.ts +1 -0
  98. package/20/fesm2022/rete-angular-plugin-ng20.mjs +32 -9
  99. package/20/fesm2022/rete-angular-plugin-ng20.mjs.map +1 -1
  100. package/20/index.d.ts +13 -2
  101. package/CHANGELOG.md +14 -0
  102. package/bundles/rete-angular-plugin.umd.js +41 -11
  103. package/bundles/rete-angular-plugin.umd.js.map +1 -1
  104. package/esm2015/index.js +2 -1
  105. package/esm2015/module.js +6 -3
  106. package/esm2015/presets/classic/components/connection/connection-wrapper.component.js +2 -1
  107. package/esm2015/presets/classic/components/node/node.component.js +2 -2
  108. package/esm2015/rete-angular-plugin.js +10 -9
  109. package/esm2015/shared/pipes/impure-keyvalue.pipe.js +20 -0
  110. package/esm2015/shared/pipes/index.js +2 -0
  111. package/fesm2015/rete-angular-plugin.js +27 -5
  112. package/fesm2015/rete-angular-plugin.js.map +1 -1
  113. package/index.d.ts +1 -0
  114. package/package.json +1 -1
  115. package/rete-angular-plugin.d.ts +9 -8
  116. package/rete-angular-plugin.metadata.json +1 -1
  117. package/shared/pipes/impure-keyvalue.pipe.d.ts +9 -0
  118. package/shared/pipes/index.d.ts +1 -0
@@ -54,6 +54,7 @@ export class ConnectionWrapperComponent {
54
54
  this.ref.instance.start = this._start;
55
55
  this.ref.instance.end = this._end;
56
56
  this.ref.instance.path = this._path;
57
+ this.ref.changeDetectorRef.markForCheck();
57
58
  }
58
59
  }
59
60
  ConnectionWrapperComponent.ɵfac = function ConnectionWrapperComponent_Factory(t) { return new (t || ConnectionWrapperComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver)); };
@@ -76,4 +77,4 @@ ConnectionWrapperComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
76
77
  }], connectionComponent: [{
77
78
  type: Input
78
79
  }] }); })();
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTMvc3JjL3ByZXNldHMvY2xhc3NpYy9jb21wb25lbnRzL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxpQkFBaUIsRUFBYSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDakosT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFRckMsTUFBTSxPQUFPLDBCQUEwQjtJQW9CckMsWUFBb0IsR0FBc0IsRUFBUyxnQkFBa0MsRUFBVSx3QkFBa0Q7UUFBN0gsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBUyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQVZqSixZQUFPLEdBQW9CLElBQUksQ0FBQTtRQUkvQixVQUFLLEdBQW9CLElBQUksQ0FBQTtRQU8zQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFYRCxJQUFJLE1BQU07UUFDUixPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3RELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ2hELENBQUM7SUFPRCxLQUFLLENBQUMsV0FBVztRQUNmLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ3ZCLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ2YsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDckQ7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7Z0JBQ3BCLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO2dCQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO2dCQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDZixDQUFDLENBQUMsQ0FBQTtTQUNIO1FBQ0QsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssVUFBVSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO2dCQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtnQkFDbEIsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7Z0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7Z0JBQ3hCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtZQUNmLENBQUMsQ0FBQyxDQUFBO1NBQ0g7UUFDRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ2YsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNyQyxDQUFDOztvR0FsRVUsMEJBQTBCOzZFQUExQiwwQkFBMEI7dUZBQTFCLDBCQUEwQjtjQUh0QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDYjswSUFFVSxJQUFJO2tCQUFaLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxHQUFHO2tCQUFYLEtBQUs7WUFDRyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csbUJBQW1CO2tCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25DaGFuZ2VzLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhc3NpY1ByZXNldCB9IGZyb20gJ3JldGUnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcyc7XG5cbnR5cGUgUG9zaXRpb25XYXRjaGVyID0gKGNiOiAodmFsdWU6IFBvc2l0aW9uKSA9PiB2b2lkKSA9PiAoKCkgPT4gdm9pZClcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2Vze1xuICBASW5wdXQoKSBkYXRhITogQ2xhc3NpY1ByZXNldC5Db25uZWN0aW9uPENsYXNzaWNQcmVzZXQuTm9kZSwgQ2xhc3NpY1ByZXNldC5Ob2RlPjtcbiAgQElucHV0KCkgc3RhcnQhOiBQb3NpdGlvbiB8IFBvc2l0aW9uV2F0Y2hlclxuICBASW5wdXQoKSBlbmQhOiBQb3NpdGlvbiB8IFBvc2l0aW9uV2F0Y2hlclxuICBASW5wdXQoKSBwYXRoITogKHN0YXJ0OiBQb3NpdGlvbiwgZW5kOiBQb3NpdGlvbikgPT4gUHJvbWlzZTxzdHJpbmc+XG4gIEBJbnB1dCgpIHJlbmRlcmVkITogYW55XG4gIEBJbnB1dCgpIGNvbm5lY3Rpb25Db21wb25lbnQhOiBhbnlcblxuICByZWYhOiBDb21wb25lbnRSZWY8YW55PlxuXG4gIHN0YXJ0T2I6IFBvc2l0aW9uIHwgbnVsbCA9IG51bGxcbiAgZ2V0IF9zdGFydCgpOiBQb3NpdGlvbiB8IG51bGwge1xuICAgIHJldHVybiAneCcgaW4gdGhpcy5zdGFydCA/IHRoaXMuc3RhcnQgOiB0aGlzLnN0YXJ0T2JcbiAgfVxuICBlbmRPYjogUG9zaXRpb24gfCBudWxsID0gbnVsbFxuICBnZXQgX2VuZCgpOiBQb3NpdGlvbiB8IG51bGwge1xuICAgIHJldHVybiAneCcgaW4gdGhpcy5lbmQgPyB0aGlzLmVuZCA6IHRoaXMuZW5kT2JcbiAgfVxuICBfcGF0aDogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikgIHtcbiAgICB0aGlzLmNkci5kZXRhY2goKVxuICB9XG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVQYXRoKClcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5yZW5kZXJlZCgpKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgIHRoaXMudXBkYXRlKClcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVBhdGgoKSB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0ICYmIHRoaXMuX2VuZCkge1xuICAgICAgdGhpcy5fcGF0aCA9IGF3YWl0IHRoaXMucGF0aCh0aGlzLl9zdGFydCwgdGhpcy5fZW5kKVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5zdGFydCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5zdGFydChhc3luYyB2YWx1ZSA9PiB7XG4gICAgICAgIHRoaXMuc3RhcnRPYiA9IHZhbHVlXG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlUGF0aCgpXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB0aGlzLnVwZGF0ZSgpXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAodHlwZW9mIHRoaXMuZW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLmVuZChhc3luYyB2YWx1ZSA9PiB7XG4gICAgICAgIHRoaXMuZW5kT2IgPSB2YWx1ZVxuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZVBhdGgoKVxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgdGhpcy51cGRhdGUoKVxuICAgICAgfSlcbiAgICB9XG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuY29ubmVjdGlvbkNvbXBvbmVudCk7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICB0aGlzLnJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XG4gICAgdGhpcy51cGRhdGUoKVxuICB9XG5cbiAgdXBkYXRlKCkge1xuICAgIHRoaXMucmVmLmluc3RhbmNlLmRhdGEgPSB0aGlzLmRhdGFcbiAgICB0aGlzLnJlZi5pbnN0YW5jZS5zdGFydCA9IHRoaXMuX3N0YXJ0XG4gICAgdGhpcy5yZWYuaW5zdGFuY2UuZW5kID0gdGhpcy5fZW5kXG4gICAgdGhpcy5yZWYuaW5zdGFuY2UucGF0aCA9IHRoaXMuX3BhdGhcbiAgfVxufVxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTMvc3JjL3ByZXNldHMvY2xhc3NpYy9jb21wb25lbnRzL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxpQkFBaUIsRUFBYSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDakosT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFRckMsTUFBTSxPQUFPLDBCQUEwQjtJQW9CckMsWUFBb0IsR0FBc0IsRUFBUyxnQkFBa0MsRUFBVSx3QkFBa0Q7UUFBN0gsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBUyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQVZqSixZQUFPLEdBQW9CLElBQUksQ0FBQTtRQUkvQixVQUFLLEdBQW9CLElBQUksQ0FBQTtRQU8zQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFYRCxJQUFJLE1BQU07UUFDUixPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3RELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ2hELENBQUM7SUFPRCxLQUFLLENBQUMsV0FBVztRQUNmLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ3ZCLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ2YsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDckQ7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7Z0JBQ3BCLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO2dCQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO2dCQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDZixDQUFDLENBQUMsQ0FBQTtTQUNIO1FBQ0QsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssVUFBVSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO2dCQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtnQkFDbEIsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7Z0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7Z0JBQ3hCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtZQUNmLENBQUMsQ0FBQyxDQUFBO1NBQ0g7UUFDRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ2YsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7O29HQW5FVSwwQkFBMEI7NkVBQTFCLDBCQUEwQjt1RkFBMUIsMEJBQTBCO2NBSHRDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNiOzBJQUVVLElBQUk7a0JBQVosS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSztZQUNHLEdBQUc7a0JBQVgsS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIENoYW5nZURldGVjdG9yUmVmLCBPbkNoYW5nZXMsIFZpZXdDb250YWluZXJSZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGFzc2ljUHJlc2V0IH0gZnJvbSAncmV0ZSc7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcblxudHlwZSBQb3NpdGlvbldhdGNoZXIgPSAoY2I6ICh2YWx1ZTogUG9zaXRpb24pID0+IHZvaWQpID0+ICgoKSA9PiB2b2lkKVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25XcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXN7XG4gIEBJbnB1dCgpIGRhdGEhOiBDbGFzc2ljUHJlc2V0LkNvbm5lY3Rpb248Q2xhc3NpY1ByZXNldC5Ob2RlLCBDbGFzc2ljUHJlc2V0Lk5vZGU+O1xuICBASW5wdXQoKSBzdGFydCE6IFBvc2l0aW9uIHwgUG9zaXRpb25XYXRjaGVyXG4gIEBJbnB1dCgpIGVuZCE6IFBvc2l0aW9uIHwgUG9zaXRpb25XYXRjaGVyXG4gIEBJbnB1dCgpIHBhdGghOiAoc3RhcnQ6IFBvc2l0aW9uLCBlbmQ6IFBvc2l0aW9uKSA9PiBQcm9taXNlPHN0cmluZz5cbiAgQElucHV0KCkgcmVuZGVyZWQhOiBhbnlcbiAgQElucHV0KCkgY29ubmVjdGlvbkNvbXBvbmVudCE6IGFueVxuXG4gIHJlZiE6IENvbXBvbmVudFJlZjxhbnk+XG5cbiAgc3RhcnRPYjogUG9zaXRpb24gfCBudWxsID0gbnVsbFxuICBnZXQgX3N0YXJ0KCk6IFBvc2l0aW9uIHwgbnVsbCB7XG4gICAgcmV0dXJuICd4JyBpbiB0aGlzLnN0YXJ0ID8gdGhpcy5zdGFydCA6IHRoaXMuc3RhcnRPYlxuICB9XG4gIGVuZE9iOiBQb3NpdGlvbiB8IG51bGwgPSBudWxsXG4gIGdldCBfZW5kKCk6IFBvc2l0aW9uIHwgbnVsbCB7XG4gICAgcmV0dXJuICd4JyBpbiB0aGlzLmVuZCA/IHRoaXMuZW5kIDogdGhpcy5lbmRPYlxuICB9XG4gIF9wYXRoOiBzdHJpbmdcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSAge1xuICAgIHRoaXMuY2RyLmRldGFjaCgpXG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVBhdGgoKVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLnJlbmRlcmVkKCkpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgdGhpcy51cGRhdGUoKVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlUGF0aCgpIHtcbiAgICBpZiAodGhpcy5fc3RhcnQgJiYgdGhpcy5fZW5kKSB7XG4gICAgICB0aGlzLl9wYXRoID0gYXdhaXQgdGhpcy5wYXRoKHRoaXMuX3N0YXJ0LCB0aGlzLl9lbmQpXG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnN0YXJ0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLnN0YXJ0KGFzeW5jIHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5zdGFydE9iID0gdmFsdWVcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVQYXRoKClcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIHRoaXMudXBkYXRlKClcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGhpcy5lbmQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuZW5kKGFzeW5jIHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5lbmRPYiA9IHZhbHVlXG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlUGF0aCgpXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB0aGlzLnVwZGF0ZSgpXG4gICAgICB9KVxuICAgIH1cbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jb25uZWN0aW9uQ29tcG9uZW50KTtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcblxuICAgIHRoaXMucmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcbiAgICB0aGlzLnVwZGF0ZSgpXG4gIH1cblxuICB1cGRhdGUoKSB7XG4gICAgdGhpcy5yZWYuaW5zdGFuY2UuZGF0YSA9IHRoaXMuZGF0YVxuICAgIHRoaXMucmVmLmluc3RhbmNlLnN0YXJ0ID0gdGhpcy5fc3RhcnRcbiAgICB0aGlzLnJlZi5pbnN0YW5jZS5lbmQgPSB0aGlzLl9lbmRcbiAgICB0aGlzLnJlZi5pbnN0YW5jZS5wYXRoID0gdGhpcy5fcGF0aFxuICAgIHRoaXMucmVmLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
@@ -2,6 +2,7 @@ import { Component, Input, HostBinding, ChangeDetectorRef } from '@angular/core'
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  import * as i2 from "../../../../ref";
5
+ import * as i3 from "../../../../shared/pipes/impure-keyvalue.pipe";
5
6
  const _c0 = function (a2, a3, a4, a5) { return { type: "socket", side: "output", key: a2, nodeId: a3, payload: a4, seed: a5 }; };
6
7
  function NodeComponent_div_2_Template(rf, ctx) { if (rf & 1) {
7
8
  i0.ɵɵelementStart(0, "div", 4)(1, "div", 5);
@@ -90,11 +91,11 @@ NodeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NodeComponent
90
91
  i0.ɵɵtext(1);
91
92
  i0.ɵɵelementEnd();
92
93
  i0.ɵɵtemplate(2, NodeComponent_div_2_Template, 4, 9, "div", 1);
93
- i0.ɵɵpipe(3, "keyvalue");
94
+ i0.ɵɵpipe(3, "keyvalueimpure");
94
95
  i0.ɵɵtemplate(4, NodeComponent_div_4_Template, 1, 5, "div", 2);
95
- i0.ɵɵpipe(5, "keyvalue");
96
+ i0.ɵɵpipe(5, "keyvalueimpure");
96
97
  i0.ɵɵtemplate(6, NodeComponent_div_6_Template, 4, 15, "div", 3);
97
- i0.ɵɵpipe(7, "keyvalue");
98
+ i0.ɵɵpipe(7, "keyvalueimpure");
98
99
  } if (rf & 2) {
99
100
  i0.ɵɵadvance(1);
100
101
  i0.ɵɵtextInterpolate(ctx.data.label);
@@ -104,12 +105,12 @@ NodeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NodeComponent
104
105
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(5, 7, ctx.data.controls, ctx.sortByIndex));
105
106
  i0.ɵɵadvance(2);
106
107
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(7, 10, ctx.data.inputs, ctx.sortByIndex));
107
- } }, directives: [i1.NgForOf, i2.RefDirective, i1.NgIf], pipes: [i1.KeyValuePipe], styles: ["[_nghost-%COMP%]{display:block;background:rgba(110,136,255,.8);border:2px solid #4e58bf;border-radius:10px;cursor:pointer;box-sizing:border-box;width:180px;height:auto;padding-bottom:6px;position:relative;-webkit-user-select:none;user-select:none;line-height:initial;font-family:Arial}[_nghost-%COMP%]:hover{background:rgba(130,153,255,.8)}.selected[_nghost-%COMP%]{background:#ffd92c;border-color:#e3c000}[_nghost-%COMP%] .title[_ngcontent-%COMP%]{color:#fff;font-family:sans-serif;font-size:18px;padding:8px}[_nghost-%COMP%] .output[_ngcontent-%COMP%]{text-align:right}[_nghost-%COMP%] .input[_ngcontent-%COMP%]{text-align:left}[_nghost-%COMP%] .input-title[_ngcontent-%COMP%], [_nghost-%COMP%] .output-title[_ngcontent-%COMP%]{vertical-align:middle;color:#fff;display:inline-block;font-family:sans-serif;font-size:14px;margin:6px;line-height:24px}[_nghost-%COMP%] .input-title[hidden][_ngcontent-%COMP%], [_nghost-%COMP%] .output-title[hidden][_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] .output-socket[_ngcontent-%COMP%]{text-align:right;margin-right:-18px;display:inline-block}[_nghost-%COMP%] .input-socket[_ngcontent-%COMP%]{text-align:left;margin-left:-18px;display:inline-block}[_nghost-%COMP%] .input-control[_ngcontent-%COMP%]{z-index:1;width:calc(100% - 36px);vertical-align:middle;display:inline-block}[_nghost-%COMP%] .control[_ngcontent-%COMP%]{padding:6px 18px}"] });
108
+ } }, directives: [i1.NgForOf, i2.RefDirective, i1.NgIf], pipes: [i3.ImpureKeyvaluePipe], styles: ["[_nghost-%COMP%]{display:block;background:rgba(110,136,255,.8);border:2px solid #4e58bf;border-radius:10px;cursor:pointer;box-sizing:border-box;width:180px;height:auto;padding-bottom:6px;position:relative;-webkit-user-select:none;user-select:none;line-height:initial;font-family:Arial}[_nghost-%COMP%]:hover{background:rgba(130,153,255,.8)}.selected[_nghost-%COMP%]{background:#ffd92c;border-color:#e3c000}[_nghost-%COMP%] .title[_ngcontent-%COMP%]{color:#fff;font-family:sans-serif;font-size:18px;padding:8px}[_nghost-%COMP%] .output[_ngcontent-%COMP%]{text-align:right}[_nghost-%COMP%] .input[_ngcontent-%COMP%]{text-align:left}[_nghost-%COMP%] .input-title[_ngcontent-%COMP%], [_nghost-%COMP%] .output-title[_ngcontent-%COMP%]{vertical-align:middle;color:#fff;display:inline-block;font-family:sans-serif;font-size:14px;margin:6px;line-height:24px}[_nghost-%COMP%] .input-title[hidden][_ngcontent-%COMP%], [_nghost-%COMP%] .output-title[hidden][_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] .output-socket[_ngcontent-%COMP%]{text-align:right;margin-right:-18px;display:inline-block}[_nghost-%COMP%] .input-socket[_ngcontent-%COMP%]{text-align:left;margin-left:-18px;display:inline-block}[_nghost-%COMP%] .input-control[_ngcontent-%COMP%]{z-index:1;width:calc(100% - 36px);vertical-align:middle;display:inline-block}[_nghost-%COMP%] .control[_ngcontent-%COMP%]{padding:6px 18px}"] });
108
109
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NodeComponent, [{
109
110
  type: Component,
110
111
  args: [{ host: {
111
112
  'data-testid': 'node'
112
- }, template: "<div class=\"title\" data-testid=\"title\">{{data.label}}</div>\n<div class=\"output\" *ngFor=\"let output of data.outputs | keyvalue: sortByIndex\" [attr.data-testid]=\"'output-'+output.key\">\n <div class=\"output-title\" data-testid=\"output-title\">{{output.value?.label}}</div>\n <div\n class=\"output-socket\"\n refComponent\n [data]=\"{type: 'socket', side: 'output', key: output.key, nodeId: data.id, payload: output.value?.socket, seed: seed }\"\n [emit]=\"emit\"\n data-testid=\"output-socket\"\n ></div>\n</div>\n<div\n class=\"control\"\n *ngFor=\"let control of data.controls | keyvalue: sortByIndex\"\n refComponent\n [data]=\"{type: 'control', payload: control.value }\"\n [emit]=\"emit\"\n [attr.data-testid]=\"'control-'+control.key\"\n></div>\n<div class=\"input\" *ngFor=\"let input of data.inputs | keyvalue: sortByIndex\" [attr.data-testid]=\"'input-'+input.key\">\n <div\n class=\"input-socket\"\n refComponent\n [data]=\"{type: 'socket', side: 'input', key: input.key, nodeId: data.id, payload: input.value?.socket, seed: seed }\"\n [emit]=\"emit\"\n data-testid=\"input-socket\"\n ></div>\n <div class=\"input-title\" data-testid=\"input-title\" *ngIf=\"!input.value?.control || !input.value?.showControl\">{{input.value?.label}}</div>\n <div\n class=\"input-control\"\n [style.display]=\"input.value?.control && input.value?.showControl ? '' : 'none'\"\n refComponent\n [data]=\"{type: 'control', payload: input.value?.control }\"\n [emit]=\"emit\"\n data-testid=\"input-control\"\n ></div>\n</div>\n", styles: [":host{display:block;background:rgba(110,136,255,.8);border:2px solid #4e58bf;border-radius:10px;cursor:pointer;box-sizing:border-box;width:180px;height:auto;padding-bottom:6px;position:relative;-webkit-user-select:none;user-select:none;line-height:initial;font-family:Arial}:host:hover{background:rgba(130,153,255,.8)}:host.selected{background:#ffd92c;border-color:#e3c000}:host .title{color:#fff;font-family:sans-serif;font-size:18px;padding:8px}:host .output{text-align:right}:host .input{text-align:left}:host .input-title,:host .output-title{vertical-align:middle;color:#fff;display:inline-block;font-family:sans-serif;font-size:14px;margin:6px;line-height:24px}:host .input-title[hidden],:host .output-title[hidden]{display:none}:host .output-socket{text-align:right;margin-right:-18px;display:inline-block}:host .input-socket{text-align:left;margin-left:-18px;display:inline-block}:host .input-control{z-index:1;width:calc(100% - 36px);vertical-align:middle;display:inline-block}:host .control{padding:6px 18px}\n"] }]
113
+ }, template: "<div class=\"title\" data-testid=\"title\">{{data.label}}</div>\n<div class=\"output\" *ngFor=\"let output of data.outputs | keyvalueimpure: sortByIndex\" [attr.data-testid]=\"'output-'+output.key\">\n <div class=\"output-title\" data-testid=\"output-title\">{{output.value?.label}}</div>\n <div\n class=\"output-socket\"\n refComponent\n [data]=\"{type: 'socket', side: 'output', key: output.key, nodeId: data.id, payload: output.value?.socket, seed: seed }\"\n [emit]=\"emit\"\n data-testid=\"output-socket\"\n ></div>\n</div>\n<div\n class=\"control\"\n *ngFor=\"let control of data.controls | keyvalueimpure: sortByIndex\"\n refComponent\n [data]=\"{type: 'control', payload: control.value }\"\n [emit]=\"emit\"\n [attr.data-testid]=\"'control-'+control.key\"\n></div>\n<div class=\"input\" *ngFor=\"let input of data.inputs | keyvalueimpure: sortByIndex\" [attr.data-testid]=\"'input-'+input.key\">\n <div\n class=\"input-socket\"\n refComponent\n [data]=\"{type: 'socket', side: 'input', key: input.key, nodeId: data.id, payload: input.value?.socket, seed: seed }\"\n [emit]=\"emit\"\n data-testid=\"input-socket\"\n ></div>\n <div class=\"input-title\" data-testid=\"input-title\" *ngIf=\"!input.value?.control || !input.value?.showControl\">{{input.value?.label}}</div>\n <div\n class=\"input-control\"\n [style.display]=\"input.value?.control && input.value?.showControl ? '' : 'none'\"\n refComponent\n [data]=\"{type: 'control', payload: input.value?.control }\"\n [emit]=\"emit\"\n data-testid=\"input-control\"\n ></div>\n</div>\n", styles: [":host{display:block;background:rgba(110,136,255,.8);border:2px solid #4e58bf;border-radius:10px;cursor:pointer;box-sizing:border-box;width:180px;height:auto;padding-bottom:6px;position:relative;-webkit-user-select:none;user-select:none;line-height:initial;font-family:Arial}:host:hover{background:rgba(130,153,255,.8)}:host.selected{background:#ffd92c;border-color:#e3c000}:host .title{color:#fff;font-family:sans-serif;font-size:18px;padding:8px}:host .output{text-align:right}:host .input{text-align:left}:host .input-title,:host .output-title{vertical-align:middle;color:#fff;display:inline-block;font-family:sans-serif;font-size:14px;margin:6px;line-height:24px}:host .input-title[hidden],:host .output-title[hidden]{display:none}:host .output-socket{text-align:right;margin-right:-18px;display:inline-block}:host .input-socket{text-align:left;margin-left:-18px;display:inline-block}:host .input-control{z-index:1;width:calc(100% - 36px);vertical-align:middle;display:inline-block}:host .control{padding:6px 18px}\n"] }]
113
114
  }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { data: [{
114
115
  type: Input
115
116
  }], emit: [{
@@ -126,4 +127,4 @@ NodeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NodeComponent
126
127
  type: HostBinding,
127
128
  args: ['class.selected']
128
129
  }] }); })();
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZzEzL3NyYy9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9ub2RlL25vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbmcxMy9zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0lDQzVGLDhCQUEwSCxhQUFBO0lBQ2pFLFlBQXVCO0lBQUEsaUJBQU07SUFDbEYseUJBTU87SUFDWCxpQkFBTTs7OztJQVQwRSx3REFBeUM7SUFDaEUsZUFBdUI7SUFBdkIsNEVBQXVCO0lBSXhFLGVBQXVIO0lBQXZILHNKQUF1SCxxQkFBQTs7OztJQUsvSCx5QkFPTzs7OztJQUhILG1FQUFtRCxxQkFBQTtJQUVuRCwwREFBMkM7OztJQVUzQywrQkFBOEc7SUFBQSxZQUFzQjtJQUFBLGlCQUFNOzs7SUFBNUIsZUFBc0I7SUFBdEIsMEVBQXNCOzs7O0lBUnhJLDhCQUFxSDtJQUNqSCx5QkFNTztJQUNQLHFFQUEwSTtJQUMxSSwwQkFPTztJQUNYLGlCQUFNOzs7O0lBakJ1RSxzREFBdUM7SUFJNUcsZUFBb0g7SUFBcEgsbUpBQW9ILHFCQUFBO0lBSXBFLGVBQXdEO0lBQXhELGlKQUF3RDtJQUd4RyxlQUFnRjtJQUFoRixpS0FBZ0Y7SUFFaEYsMEdBQTBELHFCQUFBOztBRGhCbEUsTUFBTSxPQUFPLGFBQWE7SUFtQnhCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBZDFDLFNBQUksR0FBRyxDQUFDLENBQUE7UUFlTixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFkRCxJQUFtQyxLQUFLO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUE7SUFDeEIsQ0FBQztJQUVELElBQW9DLE1BQU07UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUN6QixDQUFDO0lBRUQsSUFBbUMsUUFBUTtRQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQzNCLENBQUM7SUFNRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUN4QixxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUM1QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUEsQ0FBQyx1QkFBdUI7SUFDckMsQ0FBQztJQUVELFdBQVcsQ0FBbUUsQ0FBSSxFQUFFLENBQUk7UUFDdEYsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFBO1FBQzlCLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUU5QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUE7SUFDaEIsQ0FBQzs7MEVBbENVLGFBQWE7Z0VBQWIsYUFBYTs7OztRQ2hCMUIsOEJBQXVDO1FBQUEsWUFBYztRQUFBLGlCQUFNO1FBQzNELDhEQVNNOztRQUNOLDhEQU9POztRQUNQLCtEQWlCTTs7O1FBcENpQyxlQUFjO1FBQWQsb0NBQWM7UUFDZCxlQUF1QztRQUF2QyxpRkFBdUM7UUFZdEQsZUFBd0M7UUFBeEMsa0ZBQXdDO1FBTTNCLGVBQXNDO1FBQXRDLGlGQUFzQzs7dUZESDlELGFBQWE7Y0FSekIsU0FBUzt1QkFJRjtvQkFDSixhQUFhLEVBQUUsTUFBTTtpQkFDdEI7b0VBR1EsSUFBSTtrQkFBWixLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUk2QixLQUFLO2tCQUF2QyxXQUFXO21CQUFDLGdCQUFnQjtZQUlPLE1BQU07a0JBQXpDLFdBQVc7bUJBQUMsaUJBQWlCO1lBSUssUUFBUTtrQkFBMUMsV0FBVzttQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhc3NpY1ByZXNldCBhcyBDbGFzc2ljIH0gZnJvbSAncmV0ZSc7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG4vLyBbaW1wb3J0c11cblxudHlwZSBOb2RlRXh0cmFEYXRhID0geyB3aWR0aD86IG51bWJlciwgaGVpZ2h0PzogbnVtYmVyIH1cbnR5cGUgU29ydFZhbHVlPE4gZXh0ZW5kcyBDbGFzc2ljLk5vZGU+ID0gKE5bJ2NvbnRyb2xzJ10gfCBOWydpbnB1dHMnXSB8IE5bJ291dHB1dHMnXSlbc3RyaW5nXVxuXG5AQ29tcG9uZW50KHtcbiAgLy8gW2NvbXBvbmVudC1kaXJlY3RpdmVdXG4gIHRlbXBsYXRlVXJsOiAnLi9ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm9kZS5jb21wb25lbnQuc2FzcyddLFxuICBob3N0OiB7XG4gICAgJ2RhdGEtdGVzdGlkJzogJ25vZGUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTm9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGRhdGEhOiBDbGFzc2ljLk5vZGUgJiBOb2RlRXh0cmFEYXRhO1xuICBASW5wdXQoKSBlbWl0ITogKGRhdGE6IGFueSkgPT4gdm9pZFxuICBASW5wdXQoKSByZW5kZXJlZCE6ICgpID0+IHZvaWRcblxuICBzZWVkID0gMFxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgucHgnKSBnZXQgd2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS53aWR0aFxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKSBnZXQgaGVpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuaGVpZ2h0XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGVkJykgZ2V0IHNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuc2VsZWN0ZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuY2RyLmRldGFjaCgpXG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5yZW5kZXJlZCgpKVxuICAgIHRoaXMuc2VlZCsrIC8vIGZvcmNlIHJlbmRlciBzb2NrZXRzXG4gIH1cblxuICBzb3J0QnlJbmRleDxOIGV4dGVuZHMgQ2xhc3NpYy5Ob2RlLCBJIGV4dGVuZHMgS2V5VmFsdWU8c3RyaW5nLCBTb3J0VmFsdWU8Tj4+PihhOiBJLCBiOiBJKSB7XG4gICAgY29uc3QgYWkgPSBhLnZhbHVlPy5pbmRleCB8fCAwXG4gICAgY29uc3QgYmkgPSBiLnZhbHVlPy5pbmRleCB8fCAwXG5cbiAgICByZXR1cm4gYWkgLSBiaVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGl0bGVcIiBkYXRhLXRlc3RpZD1cInRpdGxlXCI+e3tkYXRhLmxhYmVsfX08L2Rpdj5cbjxkaXYgY2xhc3M9XCJvdXRwdXRcIiAqbmdGb3I9XCJsZXQgb3V0cHV0IG9mIGRhdGEub3V0cHV0cyB8IGtleXZhbHVlOiBzb3J0QnlJbmRleFwiIFthdHRyLmRhdGEtdGVzdGlkXT1cIidvdXRwdXQtJytvdXRwdXQua2V5XCI+XG4gICAgPGRpdiBjbGFzcz1cIm91dHB1dC10aXRsZVwiIGRhdGEtdGVzdGlkPVwib3V0cHV0LXRpdGxlXCI+e3tvdXRwdXQudmFsdWU/LmxhYmVsfX08L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwib3V0cHV0LXNvY2tldFwiXG4gICAgICAgIHJlZkNvbXBvbmVudFxuICAgICAgICBbZGF0YV09XCJ7dHlwZTogJ3NvY2tldCcsIHNpZGU6ICdvdXRwdXQnLCBrZXk6IG91dHB1dC5rZXksIG5vZGVJZDogZGF0YS5pZCwgcGF5bG9hZDogb3V0cHV0LnZhbHVlPy5zb2NrZXQsIHNlZWQ6IHNlZWQgfVwiXG4gICAgICAgIFtlbWl0XT1cImVtaXRcIlxuICAgICAgICBkYXRhLXRlc3RpZD1cIm91dHB1dC1zb2NrZXRcIlxuICAgID48L2Rpdj5cbjwvZGl2PlxuPGRpdlxuICAgIGNsYXNzPVwiY29udHJvbFwiXG4gICAgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2YgZGF0YS5jb250cm9scyB8IGtleXZhbHVlOiBzb3J0QnlJbmRleFwiXG4gICAgcmVmQ29tcG9uZW50XG4gICAgW2RhdGFdPVwie3R5cGU6ICdjb250cm9sJywgcGF5bG9hZDogY29udHJvbC52YWx1ZSB9XCJcbiAgICBbZW1pdF09XCJlbWl0XCJcbiAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCInY29udHJvbC0nK2NvbnRyb2wua2V5XCJcbj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJpbnB1dFwiICpuZ0Zvcj1cImxldCBpbnB1dCBvZiBkYXRhLmlucHV0cyB8IGtleXZhbHVlOiBzb3J0QnlJbmRleFwiIFthdHRyLmRhdGEtdGVzdGlkXT1cIidpbnB1dC0nK2lucHV0LmtleVwiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJpbnB1dC1zb2NrZXRcIlxuICAgICAgICByZWZDb21wb25lbnRcbiAgICAgICAgW2RhdGFdPVwie3R5cGU6ICdzb2NrZXQnLCBzaWRlOiAnaW5wdXQnLCBrZXk6IGlucHV0LmtleSwgbm9kZUlkOiBkYXRhLmlkLCBwYXlsb2FkOiBpbnB1dC52YWx1ZT8uc29ja2V0LCBzZWVkOiBzZWVkIH1cIlxuICAgICAgICBbZW1pdF09XCJlbWl0XCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJpbnB1dC1zb2NrZXRcIlxuICAgID48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtdGl0bGVcIiBkYXRhLXRlc3RpZD1cImlucHV0LXRpdGxlXCIgKm5nSWY9XCIhaW5wdXQudmFsdWU/LmNvbnRyb2wgfHwgIWlucHV0LnZhbHVlPy5zaG93Q29udHJvbFwiPnt7aW5wdXQudmFsdWU/LmxhYmVsfX08L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaW5wdXQtY29udHJvbFwiXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlucHV0LnZhbHVlPy5jb250cm9sICYmIGlucHV0LnZhbHVlPy5zaG93Q29udHJvbCA/ICcnIDogJ25vbmUnXCJcbiAgICAgICAgcmVmQ29tcG9uZW50XG4gICAgICAgIFtkYXRhXT1cInt0eXBlOiAnY29udHJvbCcsIHBheWxvYWQ6IGlucHV0LnZhbHVlPy5jb250cm9sIH1cIlxuICAgICAgICBbZW1pdF09XCJlbWl0XCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJpbnB1dC1jb250cm9sXCJcbiAgICA+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZzEzL3NyYy9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9ub2RlL25vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbmcxMy9zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztJQ0M1Riw4QkFBZ0ksYUFBQTtJQUN2RSxZQUF1QjtJQUFBLGlCQUFNO0lBQ2xGLHlCQU1PO0lBQ1gsaUJBQU07Ozs7SUFUZ0Ysd0RBQXlDO0lBQ3RFLGVBQXVCO0lBQXZCLDRFQUF1QjtJQUl4RSxlQUF1SDtJQUF2SCxzSkFBdUgscUJBQUE7Ozs7SUFLL0gseUJBT087Ozs7SUFISCxtRUFBbUQscUJBQUE7SUFFbkQsMERBQTJDOzs7SUFVM0MsK0JBQThHO0lBQUEsWUFBc0I7SUFBQSxpQkFBTTs7O0lBQTVCLGVBQXNCO0lBQXRCLDBFQUFzQjs7OztJQVJ4SSw4QkFBMkg7SUFDdkgseUJBTU87SUFDUCxxRUFBMEk7SUFDMUksMEJBT087SUFDWCxpQkFBTTs7OztJQWpCNkUsc0RBQXVDO0lBSWxILGVBQW9IO0lBQXBILG1KQUFvSCxxQkFBQTtJQUlwRSxlQUF3RDtJQUF4RCxpSkFBd0Q7SUFHeEcsZUFBZ0Y7SUFBaEYsaUtBQWdGO0lBRWhGLDBHQUEwRCxxQkFBQTs7QURoQmxFLE1BQU0sT0FBTyxhQUFhO0lBbUJ4QixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWQxQyxTQUFJLEdBQUcsQ0FBQyxDQUFBO1FBZU4sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBZEQsSUFBbUMsS0FBSztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ3hCLENBQUM7SUFFRCxJQUFvQyxNQUFNO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDekIsQ0FBQztJQUVELElBQW1DLFFBQVE7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUMzQixDQUFDO0lBTUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDeEIscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBLENBQUMsdUJBQXVCO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQW1FLENBQUksRUFBRSxDQUFJO1FBQ3RGLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUM5QixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUE7UUFFOUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFBO0lBQ2hCLENBQUM7OzBFQWxDVSxhQUFhO2dFQUFiLGFBQWE7Ozs7UUNoQjFCLDhCQUF1QztRQUFBLFlBQWM7UUFBQSxpQkFBTTtRQUMzRCw4REFTTTs7UUFDTiw4REFPTzs7UUFDUCwrREFpQk07OztRQXBDaUMsZUFBYztRQUFkLG9DQUFjO1FBQ2QsZUFBNkM7UUFBN0MsaUZBQTZDO1FBWTVELGVBQThDO1FBQTlDLGtGQUE4QztRQU1qQyxlQUE0QztRQUE1QyxpRkFBNEM7O3VGREhwRSxhQUFhO2NBUnpCLFNBQVM7dUJBSUY7b0JBQ0osYUFBYSxFQUFFLE1BQU07aUJBQ3RCO29FQUdRLElBQUk7a0JBQVosS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFJNkIsS0FBSztrQkFBdkMsV0FBVzttQkFBQyxnQkFBZ0I7WUFJTyxNQUFNO2tCQUF6QyxXQUFXO21CQUFDLGlCQUFpQjtZQUlLLFFBQVE7a0JBQTFDLFdBQVc7bUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIENoYW5nZURldGVjdG9yUmVmLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsYXNzaWNQcmVzZXQgYXMgQ2xhc3NpYyB9IGZyb20gJ3JldGUnO1xuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuLy8gW2ltcG9ydHNdXG5cbnR5cGUgTm9kZUV4dHJhRGF0YSA9IHsgd2lkdGg/OiBudW1iZXIsIGhlaWdodD86IG51bWJlciB9XG50eXBlIFNvcnRWYWx1ZTxOIGV4dGVuZHMgQ2xhc3NpYy5Ob2RlPiA9IChOWydjb250cm9scyddIHwgTlsnaW5wdXRzJ10gfCBOWydvdXRwdXRzJ10pW3N0cmluZ11cblxuQENvbXBvbmVudCh7XG4gIC8vIFtjb21wb25lbnQtZGlyZWN0aXZlXVxuICB0ZW1wbGF0ZVVybDogJy4vbm9kZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vZGUuY29tcG9uZW50LnNhc3MnXSxcbiAgaG9zdDoge1xuICAgICdkYXRhLXRlc3RpZCc6ICdub2RlJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRhITogQ2xhc3NpYy5Ob2RlICYgTm9kZUV4dHJhRGF0YTtcbiAgQElucHV0KCkgZW1pdCE6IChkYXRhOiBhbnkpID0+IHZvaWRcbiAgQElucHV0KCkgcmVuZGVyZWQhOiAoKSA9PiB2b2lkXG5cbiAgc2VlZCA9IDBcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JykgZ2V0IHdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEud2lkdGhcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0LnB4JykgZ2V0IGhlaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmhlaWdodFxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RlZCcpIGdldCBzZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLnNlbGVjdGVkXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLmNkci5kZXRhY2goKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMucmVuZGVyZWQoKSlcbiAgICB0aGlzLnNlZWQrKyAvLyBmb3JjZSByZW5kZXIgc29ja2V0c1xuICB9XG5cbiAgc29ydEJ5SW5kZXg8TiBleHRlbmRzIENsYXNzaWMuTm9kZSwgSSBleHRlbmRzIEtleVZhbHVlPHN0cmluZywgU29ydFZhbHVlPE4+Pj4oYTogSSwgYjogSSkge1xuICAgIGNvbnN0IGFpID0gYS52YWx1ZT8uaW5kZXggfHwgMFxuICAgIGNvbnN0IGJpID0gYi52YWx1ZT8uaW5kZXggfHwgMFxuXG4gICAgcmV0dXJuIGFpIC0gYmlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRpdGxlXCIgZGF0YS10ZXN0aWQ9XCJ0aXRsZVwiPnt7ZGF0YS5sYWJlbH19PC9kaXY+XG48ZGl2IGNsYXNzPVwib3V0cHV0XCIgKm5nRm9yPVwibGV0IG91dHB1dCBvZiBkYXRhLm91dHB1dHMgfCBrZXl2YWx1ZWltcHVyZTogc29ydEJ5SW5kZXhcIiBbYXR0ci5kYXRhLXRlc3RpZF09XCInb3V0cHV0LScrb3V0cHV0LmtleVwiPlxuICAgIDxkaXYgY2xhc3M9XCJvdXRwdXQtdGl0bGVcIiBkYXRhLXRlc3RpZD1cIm91dHB1dC10aXRsZVwiPnt7b3V0cHV0LnZhbHVlPy5sYWJlbH19PC9kaXY+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm91dHB1dC1zb2NrZXRcIlxuICAgICAgICByZWZDb21wb25lbnRcbiAgICAgICAgW2RhdGFdPVwie3R5cGU6ICdzb2NrZXQnLCBzaWRlOiAnb3V0cHV0Jywga2V5OiBvdXRwdXQua2V5LCBub2RlSWQ6IGRhdGEuaWQsIHBheWxvYWQ6IG91dHB1dC52YWx1ZT8uc29ja2V0LCBzZWVkOiBzZWVkIH1cIlxuICAgICAgICBbZW1pdF09XCJlbWl0XCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJvdXRwdXQtc29ja2V0XCJcbiAgICA+PC9kaXY+XG48L2Rpdj5cbjxkaXZcbiAgICBjbGFzcz1cImNvbnRyb2xcIlxuICAgICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIGRhdGEuY29udHJvbHMgfCBrZXl2YWx1ZWltcHVyZTogc29ydEJ5SW5kZXhcIlxuICAgIHJlZkNvbXBvbmVudFxuICAgIFtkYXRhXT1cInt0eXBlOiAnY29udHJvbCcsIHBheWxvYWQ6IGNvbnRyb2wudmFsdWUgfVwiXG4gICAgW2VtaXRdPVwiZW1pdFwiXG4gICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ2NvbnRyb2wtJytjb250cm9sLmtleVwiXG4+PC9kaXY+XG48ZGl2IGNsYXNzPVwiaW5wdXRcIiAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgZGF0YS5pbnB1dHMgfCBrZXl2YWx1ZWltcHVyZTogc29ydEJ5SW5kZXhcIiBbYXR0ci5kYXRhLXRlc3RpZF09XCInaW5wdXQtJytpbnB1dC5rZXlcIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaW5wdXQtc29ja2V0XCJcbiAgICAgICAgcmVmQ29tcG9uZW50XG4gICAgICAgIFtkYXRhXT1cInt0eXBlOiAnc29ja2V0Jywgc2lkZTogJ2lucHV0Jywga2V5OiBpbnB1dC5rZXksIG5vZGVJZDogZGF0YS5pZCwgcGF5bG9hZDogaW5wdXQudmFsdWU/LnNvY2tldCwgc2VlZDogc2VlZCB9XCJcbiAgICAgICAgW2VtaXRdPVwiZW1pdFwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiaW5wdXQtc29ja2V0XCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LXRpdGxlXCIgZGF0YS10ZXN0aWQ9XCJpbnB1dC10aXRsZVwiICpuZ0lmPVwiIWlucHV0LnZhbHVlPy5jb250cm9sIHx8ICFpbnB1dC52YWx1ZT8uc2hvd0NvbnRyb2xcIj57e2lucHV0LnZhbHVlPy5sYWJlbH19PC9kaXY+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImlucHV0LWNvbnRyb2xcIlxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpbnB1dC52YWx1ZT8uY29udHJvbCAmJiBpbnB1dC52YWx1ZT8uc2hvd0NvbnRyb2wgPyAnJyA6ICdub25lJ1wiXG4gICAgICAgIHJlZkNvbXBvbmVudFxuICAgICAgICBbZGF0YV09XCJ7dHlwZTogJ2NvbnRyb2wnLCBwYXlsb2FkOiBpbnB1dC52YWx1ZT8uY29udHJvbCB9XCJcbiAgICAgICAgW2VtaXRdPVwiZW1pdFwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiaW5wdXQtY29udHJvbFwiXG4gICAgPjwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ImpureKeyvaluePipe {
4
+ transform(value, compareFn) {
5
+ if (!value || typeof value !== 'object') {
6
+ return [];
7
+ }
8
+ const result = Object.entries(value).map(([key, val]) => ({ key, value: val }));
9
+ if (compareFn) {
10
+ result.sort(compareFn);
11
+ }
12
+ return result;
13
+ }
14
+ }
15
+ ImpureKeyvaluePipe.ɵfac = function ImpureKeyvaluePipe_Factory(t) { return new (t || ImpureKeyvaluePipe)(); };
16
+ ImpureKeyvaluePipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "keyvalueimpure", type: ImpureKeyvaluePipe, pure: false });
17
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ImpureKeyvaluePipe, [{
18
+ type: Pipe,
19
+ args: [{
20
+ name: 'keyvalueimpure',
21
+ pure: false
22
+ }]
23
+ }], null, null); })();
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wdXJlLWtleXZhbHVlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uZzEzL3NyYy9zaGFyZWQvcGlwZXMvaW1wdXJlLWtleXZhbHVlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsU0FBUyxDQUFDLEtBQThDLEVBQUUsU0FBc0M7UUFDOUYsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDdkMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUU5RSxJQUFJLFNBQVMsRUFBRTtZQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEI7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztvRkFkVSxrQkFBa0I7eUZBQWxCLGtCQUFrQjt1RkFBbEIsa0JBQWtCO2NBSjlCLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixJQUFJLEVBQUUsS0FBSzthQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdrZXl2YWx1ZWltcHVyZScsXG4gIHB1cmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEltcHVyZUtleXZhbHVlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybSh2YWx1ZToge1trZXk6IHN0cmluZ106IGFueX0gfCBudWxsIHwgdW5kZWZpbmVkLCBjb21wYXJlRm4/OiAoYTogYW55LCBiOiBhbnkpID0+IG51bWJlcik6IEFycmF5PHtrZXk6IHN0cmluZywgdmFsdWU6IGFueX0+IHtcbiAgICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuZW50cmllcyh2YWx1ZSkubWFwKChba2V5LCB2YWxdKSA9PiAoe2tleSwgdmFsdWU6IHZhbH0pKTtcblxuICAgIGlmIChjb21wYXJlRm4pIHtcbiAgICAgIHJlc3VsdC5zb3J0KGNvbXBhcmVGbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export { ImpureKeyvaluePipe } from './impure-keyvalue.pipe';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uZzEzL3NyYy9zaGFyZWQvcGlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBJbXB1cmVLZXl2YWx1ZVBpcGUgfSBmcm9tICcuL2ltcHVyZS1rZXl2YWx1ZS5waXBlJztcbiJdfQ==
@@ -2,7 +2,7 @@ import { __awaiter } from 'tslib';
2
2
  import { getUID, ClassicPreset, Scope } from 'rete';
3
3
  import { getDOMSocketPosition, loopConnectionPath, classicConnectionPath } from 'rete-render-utils';
4
4
  import * as i0 from '@angular/core';
5
- import { Directive, Input, Component, HostBinding, HostListener, EventEmitter, Output, NgModule } from '@angular/core';
5
+ import { Directive, Input, Pipe, Component, HostBinding, HostListener, EventEmitter, Output, NgModule } from '@angular/core';
6
6
  import * as i1 from '@angular/common';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { BaseAreaPlugin } from 'rete-area-plugin';
@@ -34,6 +34,30 @@ RefDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: RefDirective,
34
34
  }] });
35
35
  })();
36
36
 
37
+ class ImpureKeyvaluePipe {
38
+ transform(value, compareFn) {
39
+ if (!value || typeof value !== 'object') {
40
+ return [];
41
+ }
42
+ const result = Object.entries(value).map(([key, val]) => ({ key, value: val }));
43
+ if (compareFn) {
44
+ result.sort(compareFn);
45
+ }
46
+ return result;
47
+ }
48
+ }
49
+ ImpureKeyvaluePipe.ɵfac = function ImpureKeyvaluePipe_Factory(t) { return new (t || ImpureKeyvaluePipe)(); };
50
+ ImpureKeyvaluePipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "keyvalueimpure", type: ImpureKeyvaluePipe, pure: false });
51
+ (function () {
52
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ImpureKeyvaluePipe, [{
53
+ type: Pipe,
54
+ args: [{
55
+ name: 'keyvalueimpure',
56
+ pure: false
57
+ }]
58
+ }], null, null);
59
+ })();
60
+
37
61
  const _c0$1 = function (a2, a3, a4, a5) { return { type: "socket", side: "output", key: a2, nodeId: a3, payload: a4, seed: a5 }; };
38
62
  function NodeComponent_div_2_Template(rf, ctx) {
39
63
  if (rf & 1) {
@@ -138,11 +162,11 @@ NodeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NodeComponent
138
162
  i0.ɵɵtext(1);
139
163
  i0.ɵɵelementEnd();
140
164
  i0.ɵɵtemplate(2, NodeComponent_div_2_Template, 4, 9, "div", 1);
141
- i0.ɵɵpipe(3, "keyvalue");
165
+ i0.ɵɵpipe(3, "keyvalueimpure");
142
166
  i0.ɵɵtemplate(4, NodeComponent_div_4_Template, 1, 5, "div", 2);
143
- i0.ɵɵpipe(5, "keyvalue");
167
+ i0.ɵɵpipe(5, "keyvalueimpure");
144
168
  i0.ɵɵtemplate(6, NodeComponent_div_6_Template, 4, 15, "div", 3);
145
- i0.ɵɵpipe(7, "keyvalue");
169
+ i0.ɵɵpipe(7, "keyvalueimpure");
146
170
  }
147
171
  if (rf & 2) {
148
172
  i0.ɵɵadvance(1);
@@ -154,13 +178,13 @@ NodeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NodeComponent
154
178
  i0.ɵɵadvance(2);
155
179
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(7, 10, ctx.data.inputs, ctx.sortByIndex));
156
180
  }
157
- }, directives: [i1.NgForOf, RefDirective, i1.NgIf], pipes: [i1.KeyValuePipe], styles: ["[_nghost-%COMP%]{display:block;background:rgba(110,136,255,.8);border:2px solid #4e58bf;border-radius:10px;cursor:pointer;box-sizing:border-box;width:180px;height:auto;padding-bottom:6px;position:relative;-webkit-user-select:none;user-select:none;line-height:initial;font-family:Arial}[_nghost-%COMP%]:hover{background:rgba(130,153,255,.8)}.selected[_nghost-%COMP%]{background:#ffd92c;border-color:#e3c000}[_nghost-%COMP%] .title[_ngcontent-%COMP%]{color:#fff;font-family:sans-serif;font-size:18px;padding:8px}[_nghost-%COMP%] .output[_ngcontent-%COMP%]{text-align:right}[_nghost-%COMP%] .input[_ngcontent-%COMP%]{text-align:left}[_nghost-%COMP%] .input-title[_ngcontent-%COMP%], [_nghost-%COMP%] .output-title[_ngcontent-%COMP%]{vertical-align:middle;color:#fff;display:inline-block;font-family:sans-serif;font-size:14px;margin:6px;line-height:24px}[_nghost-%COMP%] .input-title[hidden][_ngcontent-%COMP%], [_nghost-%COMP%] .output-title[hidden][_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] .output-socket[_ngcontent-%COMP%]{text-align:right;margin-right:-18px;display:inline-block}[_nghost-%COMP%] .input-socket[_ngcontent-%COMP%]{text-align:left;margin-left:-18px;display:inline-block}[_nghost-%COMP%] .input-control[_ngcontent-%COMP%]{z-index:1;width:calc(100% - 36px);vertical-align:middle;display:inline-block}[_nghost-%COMP%] .control[_ngcontent-%COMP%]{padding:6px 18px}"] });
181
+ }, directives: [i1.NgForOf, RefDirective, i1.NgIf], pipes: [ImpureKeyvaluePipe], styles: ["[_nghost-%COMP%]{display:block;background:rgba(110,136,255,.8);border:2px solid #4e58bf;border-radius:10px;cursor:pointer;box-sizing:border-box;width:180px;height:auto;padding-bottom:6px;position:relative;-webkit-user-select:none;user-select:none;line-height:initial;font-family:Arial}[_nghost-%COMP%]:hover{background:rgba(130,153,255,.8)}.selected[_nghost-%COMP%]{background:#ffd92c;border-color:#e3c000}[_nghost-%COMP%] .title[_ngcontent-%COMP%]{color:#fff;font-family:sans-serif;font-size:18px;padding:8px}[_nghost-%COMP%] .output[_ngcontent-%COMP%]{text-align:right}[_nghost-%COMP%] .input[_ngcontent-%COMP%]{text-align:left}[_nghost-%COMP%] .input-title[_ngcontent-%COMP%], [_nghost-%COMP%] .output-title[_ngcontent-%COMP%]{vertical-align:middle;color:#fff;display:inline-block;font-family:sans-serif;font-size:14px;margin:6px;line-height:24px}[_nghost-%COMP%] .input-title[hidden][_ngcontent-%COMP%], [_nghost-%COMP%] .output-title[hidden][_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] .output-socket[_ngcontent-%COMP%]{text-align:right;margin-right:-18px;display:inline-block}[_nghost-%COMP%] .input-socket[_ngcontent-%COMP%]{text-align:left;margin-left:-18px;display:inline-block}[_nghost-%COMP%] .input-control[_ngcontent-%COMP%]{z-index:1;width:calc(100% - 36px);vertical-align:middle;display:inline-block}[_nghost-%COMP%] .control[_ngcontent-%COMP%]{padding:6px 18px}"] });
158
182
  (function () {
159
183
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NodeComponent, [{
160
184
  type: Component,
161
185
  args: [{ host: {
162
186
  'data-testid': 'node'
163
- }, template: "<div class=\"title\" data-testid=\"title\">{{data.label}}</div>\n<div class=\"output\" *ngFor=\"let output of data.outputs | keyvalue: sortByIndex\" [attr.data-testid]=\"'output-'+output.key\">\n <div class=\"output-title\" data-testid=\"output-title\">{{output.value?.label}}</div>\n <div\n class=\"output-socket\"\n refComponent\n [data]=\"{type: 'socket', side: 'output', key: output.key, nodeId: data.id, payload: output.value?.socket, seed: seed }\"\n [emit]=\"emit\"\n data-testid=\"output-socket\"\n ></div>\n</div>\n<div\n class=\"control\"\n *ngFor=\"let control of data.controls | keyvalue: sortByIndex\"\n refComponent\n [data]=\"{type: 'control', payload: control.value }\"\n [emit]=\"emit\"\n [attr.data-testid]=\"'control-'+control.key\"\n></div>\n<div class=\"input\" *ngFor=\"let input of data.inputs | keyvalue: sortByIndex\" [attr.data-testid]=\"'input-'+input.key\">\n <div\n class=\"input-socket\"\n refComponent\n [data]=\"{type: 'socket', side: 'input', key: input.key, nodeId: data.id, payload: input.value?.socket, seed: seed }\"\n [emit]=\"emit\"\n data-testid=\"input-socket\"\n ></div>\n <div class=\"input-title\" data-testid=\"input-title\" *ngIf=\"!input.value?.control || !input.value?.showControl\">{{input.value?.label}}</div>\n <div\n class=\"input-control\"\n [style.display]=\"input.value?.control && input.value?.showControl ? '' : 'none'\"\n refComponent\n [data]=\"{type: 'control', payload: input.value?.control }\"\n [emit]=\"emit\"\n data-testid=\"input-control\"\n ></div>\n</div>\n", styles: [":host{display:block;background:rgba(110,136,255,.8);border:2px solid #4e58bf;border-radius:10px;cursor:pointer;box-sizing:border-box;width:180px;height:auto;padding-bottom:6px;position:relative;-webkit-user-select:none;user-select:none;line-height:initial;font-family:Arial}:host:hover{background:rgba(130,153,255,.8)}:host.selected{background:#ffd92c;border-color:#e3c000}:host .title{color:#fff;font-family:sans-serif;font-size:18px;padding:8px}:host .output{text-align:right}:host .input{text-align:left}:host .input-title,:host .output-title{vertical-align:middle;color:#fff;display:inline-block;font-family:sans-serif;font-size:14px;margin:6px;line-height:24px}:host .input-title[hidden],:host .output-title[hidden]{display:none}:host .output-socket{text-align:right;margin-right:-18px;display:inline-block}:host .input-socket{text-align:left;margin-left:-18px;display:inline-block}:host .input-control{z-index:1;width:calc(100% - 36px);vertical-align:middle;display:inline-block}:host .control{padding:6px 18px}\n"] }]
187
+ }, template: "<div class=\"title\" data-testid=\"title\">{{data.label}}</div>\n<div class=\"output\" *ngFor=\"let output of data.outputs | keyvalueimpure: sortByIndex\" [attr.data-testid]=\"'output-'+output.key\">\n <div class=\"output-title\" data-testid=\"output-title\">{{output.value?.label}}</div>\n <div\n class=\"output-socket\"\n refComponent\n [data]=\"{type: 'socket', side: 'output', key: output.key, nodeId: data.id, payload: output.value?.socket, seed: seed }\"\n [emit]=\"emit\"\n data-testid=\"output-socket\"\n ></div>\n</div>\n<div\n class=\"control\"\n *ngFor=\"let control of data.controls | keyvalueimpure: sortByIndex\"\n refComponent\n [data]=\"{type: 'control', payload: control.value }\"\n [emit]=\"emit\"\n [attr.data-testid]=\"'control-'+control.key\"\n></div>\n<div class=\"input\" *ngFor=\"let input of data.inputs | keyvalueimpure: sortByIndex\" [attr.data-testid]=\"'input-'+input.key\">\n <div\n class=\"input-socket\"\n refComponent\n [data]=\"{type: 'socket', side: 'input', key: input.key, nodeId: data.id, payload: input.value?.socket, seed: seed }\"\n [emit]=\"emit\"\n data-testid=\"input-socket\"\n ></div>\n <div class=\"input-title\" data-testid=\"input-title\" *ngIf=\"!input.value?.control || !input.value?.showControl\">{{input.value?.label}}</div>\n <div\n class=\"input-control\"\n [style.display]=\"input.value?.control && input.value?.showControl ? '' : 'none'\"\n refComponent\n [data]=\"{type: 'control', payload: input.value?.control }\"\n [emit]=\"emit\"\n data-testid=\"input-control\"\n ></div>\n</div>\n", styles: [":host{display:block;background:rgba(110,136,255,.8);border:2px solid #4e58bf;border-radius:10px;cursor:pointer;box-sizing:border-box;width:180px;height:auto;padding-bottom:6px;position:relative;-webkit-user-select:none;user-select:none;line-height:initial;font-family:Arial}:host:hover{background:rgba(130,153,255,.8)}:host.selected{background:#ffd92c;border-color:#e3c000}:host .title{color:#fff;font-family:sans-serif;font-size:18px;padding:8px}:host .output{text-align:right}:host .input{text-align:left}:host .input-title,:host .output-title{vertical-align:middle;color:#fff;display:inline-block;font-family:sans-serif;font-size:14px;margin:6px;line-height:24px}:host .input-title[hidden],:host .output-title[hidden]{display:none}:host .output-socket{text-align:right;margin-right:-18px;display:inline-block}:host .input-socket{text-align:left;margin-left:-18px;display:inline-block}:host .input-control{z-index:1;width:calc(100% - 36px);vertical-align:middle;display:inline-block}:host .control{padding:6px 18px}\n"] }]
164
188
  }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { data: [{
165
189
  type: Input
166
190
  }], emit: [{
@@ -354,6 +378,7 @@ class ConnectionWrapperComponent {
354
378
  this.ref.instance.start = this._start;
355
379
  this.ref.instance.end = this._end;
356
380
  this.ref.instance.path = this._path;
381
+ this.ref.changeDetectorRef.markForCheck();
357
382
  }
358
383
  }
359
384
  ConnectionWrapperComponent.ɵfac = function ConnectionWrapperComponent_Factory(t) { return new (t || ConnectionWrapperComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver)); };
@@ -1327,7 +1352,8 @@ ReteModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
1327
1352
  ConnectionComponent,
1328
1353
  ConnectionWrapperComponent,
1329
1354
  SocketComponent,
1330
- ControlComponent
1355
+ ControlComponent,
1356
+ ImpureKeyvaluePipe
1331
1357
  ],
1332
1358
  imports: [
1333
1359
  CommonModule
@@ -1338,7 +1364,8 @@ ReteModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
1338
1364
  ConnectionComponent,
1339
1365
  ConnectionWrapperComponent,
1340
1366
  SocketComponent,
1341
- ControlComponent
1367
+ ControlComponent,
1368
+ ImpureKeyvaluePipe
1342
1369
  ],
1343
1370
  entryComponents: [
1344
1371
  NodeComponent,
@@ -1356,12 +1383,14 @@ ReteModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
1356
1383
  ConnectionComponent,
1357
1384
  ConnectionWrapperComponent,
1358
1385
  SocketComponent,
1359
- ControlComponent], imports: [CommonModule], exports: [RefDirective,
1386
+ ControlComponent,
1387
+ ImpureKeyvaluePipe], imports: [CommonModule], exports: [RefDirective,
1360
1388
  NodeComponent,
1361
1389
  ConnectionComponent,
1362
1390
  ConnectionWrapperComponent,
1363
1391
  SocketComponent,
1364
- ControlComponent] });
1392
+ ControlComponent,
1393
+ ImpureKeyvaluePipe] });
1365
1394
  })();
1366
1395
 
1367
1396
  class ReteContextMenuModule {
@@ -1613,5 +1642,5 @@ class AngularPlugin extends Scope {
1613
1642
  * Generated bundle index. Do not edit.
1614
1643
  */
1615
1644
 
1616
- export { AngularPlugin, ConnectionComponent, ConnectionWrapperComponent, ContextMenuComponent, ContextMenuItemComponent, ContextMenuSearchComponent, ControlComponent, MiniNodeComponent, MiniViewportComponent, MinimapComponent, NodeComponent, PinComponent, PinsComponent, index as Presets, RefDirective, ReteContextMenuModule, ReteMinimapModule, ReteModule, ReteRerouteModule, SocketComponent };
1645
+ export { AngularPlugin, ConnectionComponent, ConnectionWrapperComponent, ContextMenuComponent, ContextMenuItemComponent, ContextMenuSearchComponent, ControlComponent, ImpureKeyvaluePipe, MiniNodeComponent, MiniViewportComponent, MinimapComponent, NodeComponent, PinComponent, PinsComponent, index as Presets, RefDirective, ReteContextMenuModule, ReteMinimapModule, ReteModule, ReteRerouteModule, SocketComponent };
1617
1646
  //# sourceMappingURL=rete-angular-plugin-ng13.mjs.map