rete-angular-plugin 2.4.1 → 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 (110) hide show
  1. package/12/bundles/rete-angular-plugin-ng12.umd.js +43 -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/node/node.component.js +6 -5
  6. package/12/esm2015/shared/pipes/impure-keyvalue.pipe.js +24 -0
  7. package/12/esm2015/shared/pipes/index.js +2 -0
  8. package/12/fesm2015/rete-angular-plugin-ng12.js +36 -10
  9. package/12/fesm2015/rete-angular-plugin-ng12.js.map +1 -1
  10. package/12/index.d.ts +1 -0
  11. package/12/module.d.ts +3 -2
  12. package/12/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  13. package/12/shared/pipes/index.d.ts +1 -0
  14. package/13/esm2020/index.mjs +2 -1
  15. package/13/esm2020/module.mjs +10 -5
  16. package/13/esm2020/presets/classic/components/node/node.component.mjs +7 -6
  17. package/13/esm2020/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  18. package/13/esm2020/shared/pipes/index.mjs +2 -0
  19. package/13/fesm2015/rete-angular-plugin-ng13.mjs +39 -11
  20. package/13/fesm2015/rete-angular-plugin-ng13.mjs.map +1 -1
  21. package/13/fesm2020/rete-angular-plugin-ng13.mjs +37 -11
  22. package/13/fesm2020/rete-angular-plugin-ng13.mjs.map +1 -1
  23. package/13/index.d.ts +1 -0
  24. package/13/module.d.ts +3 -2
  25. package/13/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  26. package/13/shared/pipes/index.d.ts +1 -0
  27. package/14/esm2020/index.mjs +2 -1
  28. package/14/esm2020/module.mjs +10 -5
  29. package/14/esm2020/presets/classic/components/node/node.component.mjs +7 -6
  30. package/14/esm2020/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  31. package/14/esm2020/shared/pipes/index.mjs +2 -0
  32. package/14/fesm2015/rete-angular-plugin-ng14.mjs +39 -11
  33. package/14/fesm2015/rete-angular-plugin-ng14.mjs.map +1 -1
  34. package/14/fesm2020/rete-angular-plugin-ng14.mjs +37 -11
  35. package/14/fesm2020/rete-angular-plugin-ng14.mjs.map +1 -1
  36. package/14/index.d.ts +1 -0
  37. package/14/module.d.ts +3 -2
  38. package/14/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  39. package/14/shared/pipes/index.d.ts +1 -0
  40. package/15/esm2020/index.mjs +2 -1
  41. package/15/esm2020/module.mjs +10 -5
  42. package/15/esm2020/presets/classic/components/node/node.component.mjs +7 -6
  43. package/15/esm2020/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  44. package/15/esm2020/shared/pipes/index.mjs +2 -0
  45. package/15/fesm2015/rete-angular-plugin-ng15.mjs +39 -11
  46. package/15/fesm2015/rete-angular-plugin-ng15.mjs.map +1 -1
  47. package/15/fesm2020/rete-angular-plugin-ng15.mjs +37 -11
  48. package/15/fesm2020/rete-angular-plugin-ng15.mjs.map +1 -1
  49. package/15/index.d.ts +1 -0
  50. package/15/module.d.ts +3 -2
  51. package/15/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  52. package/15/shared/pipes/index.d.ts +1 -0
  53. package/16/esm2022/index.mjs +2 -1
  54. package/16/esm2022/module.mjs +10 -5
  55. package/16/esm2022/presets/classic/components/node/node.component.mjs +7 -6
  56. package/16/esm2022/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  57. package/16/esm2022/shared/pipes/index.mjs +2 -0
  58. package/16/fesm2022/rete-angular-plugin-ng16.mjs +37 -11
  59. package/16/fesm2022/rete-angular-plugin-ng16.mjs.map +1 -1
  60. package/16/index.d.ts +1 -0
  61. package/16/module.d.ts +3 -2
  62. package/16/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  63. package/16/shared/pipes/index.d.ts +1 -0
  64. package/17/esm2022/index.mjs +2 -1
  65. package/17/esm2022/module.mjs +10 -5
  66. package/17/esm2022/presets/classic/components/node/node.component.mjs +7 -6
  67. package/17/esm2022/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  68. package/17/esm2022/shared/pipes/index.mjs +2 -0
  69. package/17/fesm2022/rete-angular-plugin-ng17.mjs +37 -11
  70. package/17/fesm2022/rete-angular-plugin-ng17.mjs.map +1 -1
  71. package/17/index.d.ts +1 -0
  72. package/17/module.d.ts +3 -2
  73. package/17/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  74. package/17/shared/pipes/index.d.ts +1 -0
  75. package/18/esm2022/index.mjs +2 -1
  76. package/18/esm2022/module.mjs +10 -5
  77. package/18/esm2022/presets/classic/components/node/node.component.mjs +7 -6
  78. package/18/esm2022/shared/pipes/impure-keyvalue.pipe.mjs +24 -0
  79. package/18/esm2022/shared/pipes/index.mjs +2 -0
  80. package/18/fesm2022/rete-angular-plugin-ng18.mjs +37 -11
  81. package/18/fesm2022/rete-angular-plugin-ng18.mjs.map +1 -1
  82. package/18/index.d.ts +1 -0
  83. package/18/module.d.ts +3 -2
  84. package/18/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  85. package/18/shared/pipes/index.d.ts +1 -0
  86. package/19/fesm2022/rete-angular-plugin-ng19.mjs +31 -9
  87. package/19/fesm2022/rete-angular-plugin-ng19.mjs.map +1 -1
  88. package/19/index.d.ts +1 -0
  89. package/19/shared/pipes/impure-keyvalue.pipe.d.ts +12 -0
  90. package/19/shared/pipes/index.d.ts +1 -0
  91. package/20/fesm2022/rete-angular-plugin-ng20.mjs +31 -9
  92. package/20/fesm2022/rete-angular-plugin-ng20.mjs.map +1 -1
  93. package/20/index.d.ts +13 -2
  94. package/CHANGELOG.md +7 -0
  95. package/bundles/rete-angular-plugin.umd.js +40 -11
  96. package/bundles/rete-angular-plugin.umd.js.map +1 -1
  97. package/esm2015/index.js +2 -1
  98. package/esm2015/module.js +6 -3
  99. package/esm2015/presets/classic/components/node/node.component.js +2 -2
  100. package/esm2015/rete-angular-plugin.js +10 -9
  101. package/esm2015/shared/pipes/impure-keyvalue.pipe.js +20 -0
  102. package/esm2015/shared/pipes/index.js +2 -0
  103. package/fesm2015/rete-angular-plugin.js +26 -5
  104. package/fesm2015/rete-angular-plugin.js.map +1 -1
  105. package/index.d.ts +1 -0
  106. package/package.json +1 -1
  107. package/rete-angular-plugin.d.ts +9 -8
  108. package/rete-angular-plugin.metadata.json +1 -1
  109. package/shared/pipes/impure-keyvalue.pipe.d.ts +9 -0
  110. package/shared/pipes/index.d.ts +1 -0
package/esm2015/module.js CHANGED
@@ -6,6 +6,7 @@ import { SocketComponent } from './presets/classic/components/socket/socket.comp
6
6
  import { ConnectionWrapperComponent } from './presets/classic/components/connection/connection-wrapper.component';
7
7
  import { ControlComponent } from './presets/classic/components/control/control.component';
8
8
  import { RefDirective } from './ref';
9
+ import { ImpureKeyvaluePipe } from './shared/pipes/impure-keyvalue.pipe';
9
10
  export class ReteModule {
10
11
  }
11
12
  ReteModule.decorators = [
@@ -16,7 +17,8 @@ ReteModule.decorators = [
16
17
  ConnectionComponent,
17
18
  ConnectionWrapperComponent,
18
19
  SocketComponent,
19
- ControlComponent
20
+ ControlComponent,
21
+ ImpureKeyvaluePipe
20
22
  ],
21
23
  imports: [
22
24
  CommonModule
@@ -27,7 +29,8 @@ ReteModule.decorators = [
27
29
  ConnectionComponent,
28
30
  ConnectionWrapperComponent,
29
31
  SocketComponent,
30
- ControlComponent
32
+ ControlComponent,
33
+ ImpureKeyvaluePipe
31
34
  ],
32
35
  entryComponents: [
33
36
  NodeComponent,
@@ -38,4 +41,4 @@ ReteModule.decorators = [
38
41
  ]
39
42
  },] }
40
43
  ];
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxPQUFPLENBQUM7QUE4QnJDLE1BQU0sT0FBTyxVQUFVOzs7WUE1QnRCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osWUFBWTtvQkFDWixhQUFhO29CQUNiLG1CQUFtQjtvQkFDbkIsMEJBQTBCO29CQUMxQixlQUFlO29CQUNmLGdCQUFnQjtpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixtQkFBbUI7b0JBQ25CLDBCQUEwQjtvQkFDMUIsZUFBZTtvQkFDZixnQkFBZ0I7aUJBQ2pCO2dCQUNELGVBQWUsRUFBRTtvQkFDZixhQUFhO29CQUNiLG1CQUFtQjtvQkFDbkIsMEJBQTBCO29CQUMxQixlQUFlO29CQUNmLGdCQUFnQjtpQkFDakI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBOb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9ub2RlL25vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbm5lY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3ByZXNldHMvY2xhc3NpYy9jb21wb25lbnRzL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU29ja2V0Q29tcG9uZW50IH0gZnJvbSAnLi9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9zb2NrZXQvc29ja2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvY29ubmVjdGlvbi9jb25uZWN0aW9uLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL3ByZXNldHMvY2xhc3NpYy9jb21wb25lbnRzL2NvbnRyb2wvY29udHJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVmRGlyZWN0aXZlIH0gZnJvbSAnLi9yZWYnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBSZWZEaXJlY3RpdmUsXG4gICAgTm9kZUNvbXBvbmVudCxcbiAgICBDb25uZWN0aW9uQ29tcG9uZW50LFxuICAgIENvbm5lY3Rpb25XcmFwcGVyQ29tcG9uZW50LFxuICAgIFNvY2tldENvbXBvbmVudCxcbiAgICBDb250cm9sQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJlZkRpcmVjdGl2ZSxcbiAgICBOb2RlQ29tcG9uZW50LFxuICAgIENvbm5lY3Rpb25Db21wb25lbnQsXG4gICAgQ29ubmVjdGlvbldyYXBwZXJDb21wb25lbnQsXG4gICAgU29ja2V0Q29tcG9uZW50LFxuICAgIENvbnRyb2xDb21wb25lbnRcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgTm9kZUNvbXBvbmVudCxcbiAgICBDb25uZWN0aW9uQ29tcG9uZW50LFxuICAgIENvbm5lY3Rpb25XcmFwcGVyQ29tcG9uZW50LFxuICAgIFNvY2tldENvbXBvbmVudCxcbiAgICBDb250cm9sQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmV0ZU1vZHVsZSB7IH1cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFnQ3pFLE1BQU0sT0FBTyxVQUFVOzs7WUE5QnRCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osWUFBWTtvQkFDWixhQUFhO29CQUNiLG1CQUFtQjtvQkFDbkIsMEJBQTBCO29CQUMxQixlQUFlO29CQUNmLGdCQUFnQjtvQkFDaEIsa0JBQWtCO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtpQkFDYjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixhQUFhO29CQUNiLG1CQUFtQjtvQkFDbkIsMEJBQTBCO29CQUMxQixlQUFlO29CQUNmLGdCQUFnQjtvQkFDaEIsa0JBQWtCO2lCQUNuQjtnQkFDRCxlQUFlLEVBQUU7b0JBQ2YsYUFBYTtvQkFDYixtQkFBbUI7b0JBQ25CLDBCQUEwQjtvQkFDMUIsZUFBZTtvQkFDZixnQkFBZ0I7aUJBQ2pCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTm9kZUNvbXBvbmVudCB9IGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNvY2tldENvbXBvbmVudCB9IGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvc29ja2V0L3NvY2tldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ubmVjdGlvbldyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL3ByZXNldHMvY2xhc3NpYy9jb21wb25lbnRzL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb250cm9sL2NvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IFJlZkRpcmVjdGl2ZSB9IGZyb20gJy4vcmVmJztcbmltcG9ydCB7IEltcHVyZUtleXZhbHVlUGlwZSB9IGZyb20gJy4vc2hhcmVkL3BpcGVzL2ltcHVyZS1rZXl2YWx1ZS5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUmVmRGlyZWN0aXZlLFxuICAgIE5vZGVDb21wb25lbnQsXG4gICAgQ29ubmVjdGlvbkNvbXBvbmVudCxcbiAgICBDb25uZWN0aW9uV3JhcHBlckNvbXBvbmVudCxcbiAgICBTb2NrZXRDb21wb25lbnQsXG4gICAgQ29udHJvbENvbXBvbmVudCxcbiAgICBJbXB1cmVLZXl2YWx1ZVBpcGVcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUmVmRGlyZWN0aXZlLFxuICAgIE5vZGVDb21wb25lbnQsXG4gICAgQ29ubmVjdGlvbkNvbXBvbmVudCxcbiAgICBDb25uZWN0aW9uV3JhcHBlckNvbXBvbmVudCxcbiAgICBTb2NrZXRDb21wb25lbnQsXG4gICAgQ29udHJvbENvbXBvbmVudCxcbiAgICBJbXB1cmVLZXl2YWx1ZVBpcGVcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgTm9kZUNvbXBvbmVudCxcbiAgICBDb25uZWN0aW9uQ29tcG9uZW50LFxuICAgIENvbm5lY3Rpb25XcmFwcGVyQ29tcG9uZW50LFxuICAgIFNvY2tldENvbXBvbmVudCxcbiAgICBDb250cm9sQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmV0ZU1vZHVsZSB7IH1cbiJdfQ==
@@ -29,7 +29,7 @@ export class NodeComponent {
29
29
  NodeComponent.decorators = [
30
30
  { type: Component, args: [{
31
31
  // [component-directive]
32
- 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",
32
+ 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",
33
33
  host: {
34
34
  'data-testid': 'node'
35
35
  },
@@ -47,4 +47,4 @@ NodeComponent.propDecorators = {
47
47
  height: [{ type: HostBinding, args: ['style.height.px',] }],
48
48
  selected: [{ type: HostBinding, args: ['class.selected',] }]
49
49
  };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFnQjVGLE1BQU0sT0FBTyxhQUFhO0lBbUJ4QixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWQxQyxTQUFJLEdBQUcsQ0FBQyxDQUFBO1FBZU4sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBZEQsSUFBbUMsS0FBSztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ3hCLENBQUM7SUFFRCxJQUFvQyxNQUFNO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDekIsQ0FBQztJQUVELElBQW1DLFFBQVE7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUMzQixDQUFDO0lBTUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDeEIscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBLENBQUMsdUJBQXVCO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQW1FLENBQUksRUFBRSxDQUFJOztRQUN0RixNQUFNLEVBQUUsR0FBRyxDQUFBLE1BQUEsQ0FBQyxDQUFDLEtBQUssMENBQUUsS0FBSyxLQUFJLENBQUMsQ0FBQTtRQUM5QixNQUFNLEVBQUUsR0FBRyxDQUFBLE1BQUEsQ0FBQyxDQUFDLEtBQUssMENBQUUsS0FBSyxLQUFJLENBQUMsQ0FBQTtRQUU5QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUE7SUFDaEIsQ0FBQzs7O1lBMUNGLFNBQVMsU0FBQztnQkFDVCx3QkFBd0I7Z0JBQ3hCLDJwREFBb0M7Z0JBRXBDLElBQUksRUFBRTtvQkFDSixhQUFhLEVBQUUsTUFBTTtpQkFDdEI7O2FBQ0Y7OztZQWZ1QyxpQkFBaUI7OzttQkFpQnRELEtBQUs7bUJBQ0wsS0FBSzt1QkFDTCxLQUFLO29CQUlMLFdBQVcsU0FBQyxnQkFBZ0I7cUJBSTVCLFdBQVcsU0FBQyxpQkFBaUI7dUJBSTdCLFdBQVcsU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhc3NpY1ByZXNldCBhcyBDbGFzc2ljIH0gZnJvbSAncmV0ZSc7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG4vLyBbaW1wb3J0c11cblxudHlwZSBOb2RlRXh0cmFEYXRhID0geyB3aWR0aD86IG51bWJlciwgaGVpZ2h0PzogbnVtYmVyIH1cbnR5cGUgU29ydFZhbHVlPE4gZXh0ZW5kcyBDbGFzc2ljLk5vZGU+ID0gKE5bJ2NvbnRyb2xzJ10gfCBOWydpbnB1dHMnXSB8IE5bJ291dHB1dHMnXSlbc3RyaW5nXVxuXG5AQ29tcG9uZW50KHtcbiAgLy8gW2NvbXBvbmVudC1kaXJlY3RpdmVdXG4gIHRlbXBsYXRlVXJsOiAnLi9ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm9kZS5jb21wb25lbnQuc2FzcyddLFxuICBob3N0OiB7XG4gICAgJ2RhdGEtdGVzdGlkJzogJ25vZGUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTm9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGRhdGEhOiBDbGFzc2ljLk5vZGUgJiBOb2RlRXh0cmFEYXRhO1xuICBASW5wdXQoKSBlbWl0ITogKGRhdGE6IGFueSkgPT4gdm9pZFxuICBASW5wdXQoKSByZW5kZXJlZCE6ICgpID0+IHZvaWRcblxuICBzZWVkID0gMFxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgucHgnKSBnZXQgd2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS53aWR0aFxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKSBnZXQgaGVpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuaGVpZ2h0XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGVkJykgZ2V0IHNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuc2VsZWN0ZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuY2RyLmRldGFjaCgpXG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5yZW5kZXJlZCgpKVxuICAgIHRoaXMuc2VlZCsrIC8vIGZvcmNlIHJlbmRlciBzb2NrZXRzXG4gIH1cblxuICBzb3J0QnlJbmRleDxOIGV4dGVuZHMgQ2xhc3NpYy5Ob2RlLCBJIGV4dGVuZHMgS2V5VmFsdWU8c3RyaW5nLCBTb3J0VmFsdWU8Tj4+PihhOiBJLCBiOiBJKSB7XG4gICAgY29uc3QgYWkgPSBhLnZhbHVlPy5pbmRleCB8fCAwXG4gICAgY29uc3QgYmkgPSBiLnZhbHVlPy5pbmRleCB8fCAwXG5cbiAgICByZXR1cm4gYWkgLSBiaVxuICB9XG59XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFnQjVGLE1BQU0sT0FBTyxhQUFhO0lBbUJ4QixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWQxQyxTQUFJLEdBQUcsQ0FBQyxDQUFBO1FBZU4sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBZEQsSUFBbUMsS0FBSztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ3hCLENBQUM7SUFFRCxJQUFvQyxNQUFNO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDekIsQ0FBQztJQUVELElBQW1DLFFBQVE7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUMzQixDQUFDO0lBTUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDeEIscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBLENBQUMsdUJBQXVCO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQW1FLENBQUksRUFBRSxDQUFJOztRQUN0RixNQUFNLEVBQUUsR0FBRyxDQUFBLE1BQUEsQ0FBQyxDQUFDLEtBQUssMENBQUUsS0FBSyxLQUFJLENBQUMsQ0FBQTtRQUM5QixNQUFNLEVBQUUsR0FBRyxDQUFBLE1BQUEsQ0FBQyxDQUFDLEtBQUssMENBQUUsS0FBSyxLQUFJLENBQUMsQ0FBQTtRQUU5QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUE7SUFDaEIsQ0FBQzs7O1lBMUNGLFNBQVMsU0FBQztnQkFDVCx3QkFBd0I7Z0JBQ3hCLDZxREFBb0M7Z0JBRXBDLElBQUksRUFBRTtvQkFDSixhQUFhLEVBQUUsTUFBTTtpQkFDdEI7O2FBQ0Y7OztZQWZ1QyxpQkFBaUI7OzttQkFpQnRELEtBQUs7bUJBQ0wsS0FBSzt1QkFDTCxLQUFLO29CQUlMLFdBQVcsU0FBQyxnQkFBZ0I7cUJBSTVCLFdBQVcsU0FBQyxpQkFBaUI7dUJBSTdCLFdBQVcsU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhc3NpY1ByZXNldCBhcyBDbGFzc2ljIH0gZnJvbSAncmV0ZSc7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG4vLyBbaW1wb3J0c11cblxudHlwZSBOb2RlRXh0cmFEYXRhID0geyB3aWR0aD86IG51bWJlciwgaGVpZ2h0PzogbnVtYmVyIH1cbnR5cGUgU29ydFZhbHVlPE4gZXh0ZW5kcyBDbGFzc2ljLk5vZGU+ID0gKE5bJ2NvbnRyb2xzJ10gfCBOWydpbnB1dHMnXSB8IE5bJ291dHB1dHMnXSlbc3RyaW5nXVxuXG5AQ29tcG9uZW50KHtcbiAgLy8gW2NvbXBvbmVudC1kaXJlY3RpdmVdXG4gIHRlbXBsYXRlVXJsOiAnLi9ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm9kZS5jb21wb25lbnQuc2FzcyddLFxuICBob3N0OiB7XG4gICAgJ2RhdGEtdGVzdGlkJzogJ25vZGUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTm9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGRhdGEhOiBDbGFzc2ljLk5vZGUgJiBOb2RlRXh0cmFEYXRhO1xuICBASW5wdXQoKSBlbWl0ITogKGRhdGE6IGFueSkgPT4gdm9pZFxuICBASW5wdXQoKSByZW5kZXJlZCE6ICgpID0+IHZvaWRcblxuICBzZWVkID0gMFxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgucHgnKSBnZXQgd2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS53aWR0aFxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKSBnZXQgaGVpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuaGVpZ2h0XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGVkJykgZ2V0IHNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuc2VsZWN0ZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuY2RyLmRldGFjaCgpXG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5yZW5kZXJlZCgpKVxuICAgIHRoaXMuc2VlZCsrIC8vIGZvcmNlIHJlbmRlciBzb2NrZXRzXG4gIH1cblxuICBzb3J0QnlJbmRleDxOIGV4dGVuZHMgQ2xhc3NpYy5Ob2RlLCBJIGV4dGVuZHMgS2V5VmFsdWU8c3RyaW5nLCBTb3J0VmFsdWU8Tj4+PihhOiBJLCBiOiBJKSB7XG4gICAgY29uc3QgYWkgPSBhLnZhbHVlPy5pbmRleCB8fCAwXG4gICAgY29uc3QgYmkgPSBiLnZhbHVlPy5pbmRleCB8fCAwXG5cbiAgICByZXR1cm4gYWkgLSBiaVxuICB9XG59XG4iXX0=
@@ -7,12 +7,13 @@ export { ConnectionComponent as ɵb } from './presets/classic/components/connect
7
7
  export { ControlComponent as ɵe } from './presets/classic/components/control/control.component';
8
8
  export { NodeComponent as ɵa } from './presets/classic/components/node/node.component';
9
9
  export { SocketComponent as ɵd } from './presets/classic/components/socket/socket.component';
10
- export { ContextMenuItemComponent as ɵh } from './presets/context-menu/components/item/item.component';
11
- export { ContextMenuComponent as ɵf } from './presets/context-menu/components/menu/menu.component';
12
- export { ContextMenuSearchComponent as ɵg } from './presets/context-menu/components/search/search.component';
13
- export { MiniNodeComponent as ɵk } from './presets/minimap/components/mini-node/mini-node.component';
14
- export { MiniViewportComponent as ɵj } from './presets/minimap/components/mini-viewport/mini-viewport.component';
15
- export { MinimapComponent as ɵi } from './presets/minimap/components/minimap/minimap.component';
16
- export { PinComponent as ɵm } from './presets/reroute/components/pin/pin.component';
17
- export { PinsComponent as ɵl } from './presets/reroute/components/pins/pins.component';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0ZS1hbmd1bGFyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXRlLWFuZ3VsYXItcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUM7QUFFeEIsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBQ3RILE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUN2RyxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDOUYsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUNyRixPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDakcsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzNHLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNuRyxPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDL0csT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSxrREFBa0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCB7Q29ubmVjdGlvbldyYXBwZXJDb21wb25lbnQgYXMgybVjfSBmcm9tICcuL3ByZXNldHMvY2xhc3NpYy9jb21wb25lbnRzL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudCc7XG5leHBvcnQge0Nvbm5lY3Rpb25Db21wb25lbnQgYXMgybVifSBmcm9tICcuL3ByZXNldHMvY2xhc3NpYy9jb21wb25lbnRzL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtDb250cm9sQ29tcG9uZW50IGFzIMm1ZX0gZnJvbSAnLi9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb250cm9sL2NvbnRyb2wuY29tcG9uZW50JztcbmV4cG9ydCB7Tm9kZUNvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudCc7XG5leHBvcnQge1NvY2tldENvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvc29ja2V0L3NvY2tldC5jb21wb25lbnQnO1xuZXhwb3J0IHtDb250ZXh0TWVudUl0ZW1Db21wb25lbnQgYXMgybVofSBmcm9tICcuL3ByZXNldHMvY29udGV4dC1tZW51L2NvbXBvbmVudHMvaXRlbS9pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQge0NvbnRleHRNZW51Q29tcG9uZW50IGFzIMm1Zn0gZnJvbSAnLi9wcmVzZXRzL2NvbnRleHQtbWVudS9jb21wb25lbnRzL21lbnUvbWVudS5jb21wb25lbnQnO1xuZXhwb3J0IHtDb250ZXh0TWVudVNlYXJjaENvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vcHJlc2V0cy9jb250ZXh0LW1lbnUvY29tcG9uZW50cy9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudCc7XG5leHBvcnQge01pbmlOb2RlQ29tcG9uZW50IGFzIMm1a30gZnJvbSAnLi9wcmVzZXRzL21pbmltYXAvY29tcG9uZW50cy9taW5pLW5vZGUvbWluaS1ub2RlLmNvbXBvbmVudCc7XG5leHBvcnQge01pbmlWaWV3cG9ydENvbXBvbmVudCBhcyDJtWp9IGZyb20gJy4vcHJlc2V0cy9taW5pbWFwL2NvbXBvbmVudHMvbWluaS12aWV3cG9ydC9taW5pLXZpZXdwb3J0LmNvbXBvbmVudCc7XG5leHBvcnQge01pbmltYXBDb21wb25lbnQgYXMgybVpfSBmcm9tICcuL3ByZXNldHMvbWluaW1hcC9jb21wb25lbnRzL21pbmltYXAvbWluaW1hcC5jb21wb25lbnQnO1xuZXhwb3J0IHtQaW5Db21wb25lbnQgYXMgybVtfSBmcm9tICcuL3ByZXNldHMvcmVyb3V0ZS9jb21wb25lbnRzL3Bpbi9waW4uY29tcG9uZW50JztcbmV4cG9ydCB7UGluc0NvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vcHJlc2V0cy9yZXJvdXRlL2NvbXBvbmVudHMvcGlucy9waW5zLmNvbXBvbmVudCc7Il19
10
+ export { ContextMenuItemComponent as ɵi } from './presets/context-menu/components/item/item.component';
11
+ export { ContextMenuComponent as ɵg } from './presets/context-menu/components/menu/menu.component';
12
+ export { ContextMenuSearchComponent as ɵh } from './presets/context-menu/components/search/search.component';
13
+ export { MiniNodeComponent as ɵl } from './presets/minimap/components/mini-node/mini-node.component';
14
+ export { MiniViewportComponent as ɵk } from './presets/minimap/components/mini-viewport/mini-viewport.component';
15
+ export { MinimapComponent as ɵj } from './presets/minimap/components/minimap/minimap.component';
16
+ export { PinComponent as ɵn } from './presets/reroute/components/pin/pin.component';
17
+ export { PinsComponent as ɵm } from './presets/reroute/components/pins/pins.component';
18
+ export { ImpureKeyvaluePipe as ɵf } from './shared/pipes/impure-keyvalue.pipe';
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0ZS1hbmd1bGFyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXRlLWFuZ3VsYXItcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUM7QUFFeEIsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBQ3RILE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUN2RyxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDOUYsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUNyRixPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDakcsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzNHLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNuRyxPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDL0csT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0scUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQge0Nvbm5lY3Rpb25XcmFwcGVyQ29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24td3JhcHBlci5jb21wb25lbnQnO1xuZXhwb3J0IHtDb25uZWN0aW9uQ29tcG9uZW50IGFzIMm1Yn0gZnJvbSAnLi9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCB7Q29udHJvbENvbXBvbmVudCBhcyDJtWV9IGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvY29udHJvbC9jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQge05vZGVDb21wb25lbnQgYXMgybVhfSBmcm9tICcuL3ByZXNldHMvY2xhc3NpYy9jb21wb25lbnRzL25vZGUvbm9kZS5jb21wb25lbnQnO1xuZXhwb3J0IHtTb2NrZXRDb21wb25lbnQgYXMgybVkfSBmcm9tICcuL3ByZXNldHMvY2xhc3NpYy9jb21wb25lbnRzL3NvY2tldC9zb2NrZXQuY29tcG9uZW50JztcbmV4cG9ydCB7Q29udGV4dE1lbnVJdGVtQ29tcG9uZW50IGFzIMm1aX0gZnJvbSAnLi9wcmVzZXRzL2NvbnRleHQtbWVudS9jb21wb25lbnRzL2l0ZW0vaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0IHtDb250ZXh0TWVudUNvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vcHJlc2V0cy9jb250ZXh0LW1lbnUvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50JztcbmV4cG9ydCB7Q29udGV4dE1lbnVTZWFyY2hDb21wb25lbnQgYXMgybVofSBmcm9tICcuL3ByZXNldHMvY29udGV4dC1tZW51L2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0IHtNaW5pTm9kZUNvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vcHJlc2V0cy9taW5pbWFwL2NvbXBvbmVudHMvbWluaS1ub2RlL21pbmktbm9kZS5jb21wb25lbnQnO1xuZXhwb3J0IHtNaW5pVmlld3BvcnRDb21wb25lbnQgYXMgybVrfSBmcm9tICcuL3ByZXNldHMvbWluaW1hcC9jb21wb25lbnRzL21pbmktdmlld3BvcnQvbWluaS12aWV3cG9ydC5jb21wb25lbnQnO1xuZXhwb3J0IHtNaW5pbWFwQ29tcG9uZW50IGFzIMm1an0gZnJvbSAnLi9wcmVzZXRzL21pbmltYXAvY29tcG9uZW50cy9taW5pbWFwL21pbmltYXAuY29tcG9uZW50JztcbmV4cG9ydCB7UGluQ29tcG9uZW50IGFzIMm1bn0gZnJvbSAnLi9wcmVzZXRzL3Jlcm91dGUvY29tcG9uZW50cy9waW4vcGluLmNvbXBvbmVudCc7XG5leHBvcnQge1BpbnNDb21wb25lbnQgYXMgybVtfSBmcm9tICcuL3ByZXNldHMvcmVyb3V0ZS9jb21wb25lbnRzL3BpbnMvcGlucy5jb21wb25lbnQnO1xuZXhwb3J0IHtJbXB1cmVLZXl2YWx1ZVBpcGUgYXMgybVmfSBmcm9tICcuL3NoYXJlZC9waXBlcy9pbXB1cmUta2V5dmFsdWUucGlwZSc7Il19
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ export class ImpureKeyvaluePipe {
3
+ transform(value, compareFn) {
4
+ if (!value || typeof value !== 'object') {
5
+ return [];
6
+ }
7
+ const result = Object.entries(value).map(([key, val]) => ({ key, value: val }));
8
+ if (compareFn) {
9
+ result.sort(compareFn);
10
+ }
11
+ return result;
12
+ }
13
+ }
14
+ ImpureKeyvaluePipe.decorators = [
15
+ { type: Pipe, args: [{
16
+ name: 'keyvalueimpure',
17
+ pure: false
18
+ },] }
19
+ ];
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wdXJlLWtleXZhbHVlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2hhcmVkL3BpcGVzL2ltcHVyZS1rZXl2YWx1ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBTXBELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsU0FBUyxDQUFDLEtBQThDLEVBQUUsU0FBc0M7UUFDOUYsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDdkMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUU5RSxJQUFJLFNBQVMsRUFBRTtZQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEI7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs7WUFsQkYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLElBQUksRUFBRSxLQUFLO2FBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2tleXZhbHVlaW1wdXJlJyxcbiAgcHVyZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgSW1wdXJlS2V5dmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiB7W2tleTogc3RyaW5nXTogYW55fSB8IG51bGwgfCB1bmRlZmluZWQsIGNvbXBhcmVGbj86IChhOiBhbnksIGI6IGFueSkgPT4gbnVtYmVyKTogQXJyYXk8e2tleTogc3RyaW5nLCB2YWx1ZTogYW55fT4ge1xuICAgIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5lbnRyaWVzKHZhbHVlKS5tYXAoKFtrZXksIHZhbF0pID0+ICh7a2V5LCB2YWx1ZTogdmFsfSkpO1xuXG4gICAgaWYgKGNvbXBhcmVGbikge1xuICAgICAgcmVzdWx0LnNvcnQoY29tcGFyZUZuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export { ImpureKeyvaluePipe } from './impure-keyvalue.pipe';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2hhcmVkL3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgSW1wdXJlS2V5dmFsdWVQaXBlIH0gZnJvbSAnLi9pbXB1cmUta2V5dmFsdWUucGlwZSc7XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import { getUID, ClassicPreset, Scope } from 'rete';
3
3
  import { getDOMSocketPosition, loopConnectionPath, classicConnectionPath } from 'rete-render-utils';
4
- import { Component, ChangeDetectorRef, Input, HostBinding, HostListener, ViewContainerRef, ComponentFactoryResolver, ElementRef, Directive, NgModule, EventEmitter, Output } from '@angular/core';
4
+ import { Component, ChangeDetectorRef, Input, HostBinding, HostListener, ViewContainerRef, ComponentFactoryResolver, ElementRef, Directive, Pipe, NgModule, EventEmitter, Output } from '@angular/core';
5
5
  import { BaseAreaPlugin } from 'rete-area-plugin';
6
6
  import { CommonModule } from '@angular/common';
7
7
  import { createCustomElement } from '@angular/elements';
@@ -36,7 +36,7 @@ class NodeComponent {
36
36
  NodeComponent.decorators = [
37
37
  { type: Component, args: [{
38
38
  // [component-directive]
39
- 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",
39
+ 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",
40
40
  host: {
41
41
  'data-testid': 'node'
42
42
  },
@@ -673,6 +673,25 @@ RefDirective.propDecorators = {
673
673
  emit: [{ type: Input }]
674
674
  };
675
675
 
676
+ class ImpureKeyvaluePipe {
677
+ transform(value, compareFn) {
678
+ if (!value || typeof value !== 'object') {
679
+ return [];
680
+ }
681
+ const result = Object.entries(value).map(([key, val]) => ({ key, value: val }));
682
+ if (compareFn) {
683
+ result.sort(compareFn);
684
+ }
685
+ return result;
686
+ }
687
+ }
688
+ ImpureKeyvaluePipe.decorators = [
689
+ { type: Pipe, args: [{
690
+ name: 'keyvalueimpure',
691
+ pure: false
692
+ },] }
693
+ ];
694
+
676
695
  class ReteModule {
677
696
  }
678
697
  ReteModule.decorators = [
@@ -683,7 +702,8 @@ ReteModule.decorators = [
683
702
  ConnectionComponent,
684
703
  ConnectionWrapperComponent,
685
704
  SocketComponent,
686
- ControlComponent
705
+ ControlComponent,
706
+ ImpureKeyvaluePipe
687
707
  ],
688
708
  imports: [
689
709
  CommonModule
@@ -694,7 +714,8 @@ ReteModule.decorators = [
694
714
  ConnectionComponent,
695
715
  ConnectionWrapperComponent,
696
716
  SocketComponent,
697
- ControlComponent
717
+ ControlComponent,
718
+ ImpureKeyvaluePipe
698
719
  ],
699
720
  entryComponents: [
700
721
  NodeComponent,
@@ -1175,5 +1196,5 @@ class AngularPlugin extends Scope {
1175
1196
  * Generated bundle index. Do not edit.
1176
1197
  */
1177
1198
 
1178
- export { AngularPlugin, ConnectionComponent, ConnectionWrapperComponent, ContextMenuComponent, ContextMenuItemComponent, ContextMenuSearchComponent, ControlComponent, MiniNodeComponent, MiniViewportComponent, MinimapComponent, NodeComponent, PinComponent, PinsComponent, index as Presets, RefDirective, ReteContextMenuModule, ReteMinimapModule, ReteModule, ReteRerouteModule, SocketComponent, NodeComponent as ɵa, ConnectionComponent as ɵb, ConnectionWrapperComponent as ɵc, SocketComponent as ɵd, ControlComponent as ɵe, ContextMenuComponent as ɵf, ContextMenuSearchComponent as ɵg, ContextMenuItemComponent as ɵh, MinimapComponent as ɵi, MiniViewportComponent as ɵj, MiniNodeComponent as ɵk, PinsComponent as ɵl, PinComponent as ɵm };
1199
+ export { AngularPlugin, ConnectionComponent, ConnectionWrapperComponent, ContextMenuComponent, ContextMenuItemComponent, ContextMenuSearchComponent, ControlComponent, ImpureKeyvaluePipe, MiniNodeComponent, MiniViewportComponent, MinimapComponent, NodeComponent, PinComponent, PinsComponent, index as Presets, RefDirective, ReteContextMenuModule, ReteMinimapModule, ReteModule, ReteRerouteModule, SocketComponent, NodeComponent as ɵa, ConnectionComponent as ɵb, ConnectionWrapperComponent as ɵc, SocketComponent as ɵd, ControlComponent as ɵe, ImpureKeyvaluePipe as ɵf, ContextMenuComponent as ɵg, ContextMenuSearchComponent as ɵh, ContextMenuItemComponent as ɵi, MinimapComponent as ɵj, MiniViewportComponent as ɵk, MiniNodeComponent as ɵl, PinsComponent as ɵm, PinComponent as ɵn };
1179
1200
  //# sourceMappingURL=rete-angular-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rete-angular-plugin.js","sources":["../../src/presets/classic/components/node/node.component.ts","../../src/presets/classic/components/socket/socket.component.ts","../../src/presets/classic/components/control/control.component.ts","../../src/presets/classic/components/connection/connection.component.ts","../../src/presets/classic/components/connection/connection-wrapper.component.ts","../../src/presets/classic/index.ts","../../src/presets/context-menu/debounce.ts","../../src/presets/context-menu/components/menu/menu.component.ts","../../src/presets/context-menu/index.ts","../../src/presets/minimap/components/minimap/minimap.component.ts","../../src/presets/minimap/index.ts","../../src/presets/reroute/components/pins/pins.component.ts","../../src/presets/reroute/index.ts","../../src/ref.ts","../../src/module.ts","../../src/presets/context-menu/components/search/search.component.ts","../../src/presets/context-menu/components/item/item.component.ts","../../src/presets/context-menu/module.ts","../../src/shared/drag.ts","../../src/presets/minimap/components/mini-viewport/mini-viewport.component.ts","../../src/presets/minimap/components/mini-node/mini-node.component.ts","../../src/presets/minimap/module.ts","../../src/presets/reroute/components/pin/pin.component.ts","../../src/presets/reroute/module.ts","../../src/reflect.ts","../../src/core.ts","../../src/rete-angular-plugin.ts"],"sourcesContent":["import { Component, Input, HostBinding, ChangeDetectorRef, OnChanges } from '@angular/core';\nimport { ClassicPreset as Classic } from 'rete';\nimport { KeyValue } from '@angular/common';\n// [imports]\n\ntype NodeExtraData = { width?: number, height?: number }\ntype SortValue<N extends Classic.Node> = (N['controls'] | N['inputs'] | N['outputs'])[string]\n\n@Component({\n // [component-directive]\n templateUrl: './node.component.html',\n styleUrls: ['./node.component.sass'],\n host: {\n 'data-testid': 'node'\n }\n})\nexport class NodeComponent implements OnChanges {\n @Input() data!: Classic.Node & NodeExtraData;\n @Input() emit!: (data: any) => void\n @Input() rendered!: () => void\n\n seed = 0\n\n @HostBinding('style.width.px') get width() {\n return this.data.width\n }\n\n @HostBinding('style.height.px') get height() {\n return this.data.height\n }\n\n @HostBinding('class.selected') get selected() {\n return this.data.selected\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges()\n requestAnimationFrame(() => this.rendered())\n this.seed++ // force render sockets\n }\n\n sortByIndex<N extends Classic.Node, I extends KeyValue<string, SortValue<N>>>(a: I, b: I) {\n const ai = a.value?.index || 0\n const bi = b.value?.index || 0\n\n return ai - bi\n }\n}\n","import { Component, Input, HostBinding, AfterViewChecked, ChangeDetectorRef, OnChanges } from '@angular/core';\n\n@Component({\n template: ``,\n styleUrls: ['./socket.component.sass']\n})\nexport class SocketComponent implements OnChanges {\n @Input() data!: any;\n @Input() rendered!: any;\n\n\n @HostBinding('title') get title() {\n return this.data.name\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges()\n requestAnimationFrame(() => this.rendered())\n }\n}\n","import { Component, Input, OnChanges, SimpleChanges, ChangeDetectorRef, HostListener } from '@angular/core';\nimport { ClassicPreset } from 'rete';\n\n@Component({\n templateUrl: `./control.component.html`,\n styleUrls: ['./control.component.sass']\n})\nexport class ControlComponent<T extends 'text' | 'number'> implements OnChanges {\n @Input() data!: ClassicPreset.InputControl<T>;\n @Input() rendered!: any;\n\n\n @HostListener('pointerdown', ['$event'])\n public pointerdown(event: any) {\n event.stopPropagation();\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const seed = changes['seed']\n const data = changes['data']\n\n if ((seed && seed.currentValue !== seed.previousValue)\n || (data && data.currentValue !== data.previousValue)) {\n this.cdr.detectChanges()\n }\n requestAnimationFrame(() => this.rendered())\n }\n\n onChange(e: Event) {\n const target = e.target as HTMLInputElement\n const value = (this.data.type === 'number'\n ? +target.value\n : target.value) as ClassicPreset.InputControl<T>['value']\n\n this.data.setValue(value)\n this.cdr.detectChanges()\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { ClassicPreset } from 'rete';\nimport { classicConnectionPath } from 'rete-render-utils'\nimport { Position } from '../../../../types';\n\n\n@Component({\n selector: 'connection',\n templateUrl: './connection.component.html',\n styleUrls: ['./connection.component.sass']\n})\nexport class ConnectionComponent {\n @Input() data!: ClassicPreset.Connection<ClassicPreset.Node, ClassicPreset.Node>;\n @Input() start: Position\n @Input() end: Position\n @Input() path: string\n}\n","import { Component, Input, OnInit, ChangeDetectorRef, OnChanges, ViewContainerRef, ComponentFactoryResolver, ComponentRef } from '@angular/core';\nimport { ClassicPreset } from 'rete';\nimport { Position } from '../../../../types';\n\ntype PositionWatcher = (cb: (value: Position) => void) => (() => void)\n\n@Component({\n template: ''\n})\nexport class ConnectionWrapperComponent implements OnInit, OnChanges{\n @Input() data!: ClassicPreset.Connection<ClassicPreset.Node, ClassicPreset.Node>;\n @Input() start!: Position | PositionWatcher\n @Input() end!: Position | PositionWatcher\n @Input() path!: (start: Position, end: Position) => Promise<string>\n @Input() rendered!: any\n @Input() connectionComponent!: any\n\n ref!: ComponentRef<any>\n\n startOb: Position | null = null\n get _start(): Position | null {\n return 'x' in this.start ? this.start : this.startOb\n }\n endOb: Position | null = null\n get _end(): Position | null {\n return 'x' in this.end ? this.end : this.endOb\n }\n _path: string\n\n constructor(private cdr: ChangeDetectorRef, public viewContainerRef: ViewContainerRef, private componentFactoryResolver: ComponentFactoryResolver) {\n this.cdr.detach()\n }\n\n async ngOnChanges(): Promise<void> {\n await this.updatePath()\n requestAnimationFrame(() => this.rendered())\n this.cdr.detectChanges()\n this.update()\n }\n\n async updatePath() {\n if (this._start && this._end) {\n this._path = await this.path(this._start, this._end)\n }\n }\n\n ngOnInit() {\n if (typeof this.start === 'function') {\n this.start(async value => {\n this.startOb = value\n await this.updatePath()\n this.cdr.detectChanges()\n this.update()\n })\n }\n if (typeof this.end === 'function') {\n this.end(async value => {\n this.endOb = value\n await this.updatePath()\n this.cdr.detectChanges()\n this.update()\n })\n }\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.connectionComponent);\n this.viewContainerRef.clear();\n\n this.ref = this.viewContainerRef.createComponent(componentFactory);\n this.update()\n }\n\n update() {\n this.ref.instance.data = this.data\n this.ref.instance.start = this._start\n this.ref.instance.end = this._end\n this.ref.instance.path = this._path\n this.ref.changeDetectorRef.markForCheck();\n }\n}\n","import { Type } from '@angular/core';\nimport { ClassicPreset, getUID, Scope } from 'rete';\nimport { classicConnectionPath, loopConnectionPath, SocketPositionWatcher, getDOMSocketPosition } from 'rete-render-utils';\nimport { AngularArea2D, ClassicScheme, ExtractPayload } from './types';\nimport { NodeComponent } from './components/node/node.component';\nimport { SocketComponent } from './components/socket/socket.component';\nimport { ControlComponent } from './components/control/control.component';\nimport { ConnectionComponent } from './components/connection/connection.component';\nimport { ConnectionWrapperComponent } from './components/connection/connection-wrapper.component';\nimport { Position } from '../../types';\nimport { RenderPreset } from '../types'\n\ntype AngularComponent = Type<any>\ntype CustomizationProps<Schemes extends ClassicScheme> = {\n node?: (data: ExtractPayload<Schemes, 'node'>) => AngularComponent | null\n connection?: (data: ExtractPayload<Schemes, 'connection'>) => AngularComponent | null\n socket?: (data: ExtractPayload<Schemes, 'socket'>) => AngularComponent | null\n control?: (data: ExtractPayload<Schemes, 'control'>) => AngularComponent | null\n}\n\ntype ClassicProps<Schemes extends ClassicScheme, K> = {\n socketPositionWatcher?: SocketPositionWatcher<Scope<never, [K]>>\n customize?: CustomizationProps<Schemes>\n}\n\n/**\n * Classic preset for rendering nodes, connections, controls and sockets.\n */\nexport function setup<Schemes extends ClassicScheme, K extends AngularArea2D<Schemes>>(\n props?: ClassicProps<Schemes, K>\n): RenderPreset<Schemes, K> {\n const positionWatcher = typeof props?.socketPositionWatcher === 'undefined'\n ? getDOMSocketPosition<Schemes, any>() // fix Type instantiation is excessively deep and possibly infinite.\n : props?.socketPositionWatcher\n const { node, connection, socket, control } = props?.customize || {}\n\n\n return {\n attach(plugin) {\n positionWatcher.attach(plugin as unknown as Scope<never, [K]>)\n },\n update(context) {\n const data = context.data.payload\n\n if (context.data.type === 'connection') {\n const { start, end } = context.data\n\n return {\n data,\n ...(start ? { start } : {}),\n ...(end ? { end } : {}),\n }\n }\n return { data }\n },\n mount(context, plugin) {\n const parent = plugin.parentScope()\n const emit = parent.emit.bind(parent)\n const rendered = () => {\n emit({ type: 'rendered', data: context.data })\n }\n\n if (context.data.type === 'node') {\n const component = node ? node(context.data) : NodeComponent\n\n return {\n key: `node-${context.data.payload.id}`,\n component,\n props: {\n data: context.data.payload,\n emit,\n rendered\n }\n }\n }\n if (context.data.type === 'connection') {\n const component = connection ? connection(context.data) : ConnectionComponent\n const id = context.data.payload.id\n const { sourceOutput, targetInput, source, target } = context.data.payload\n const { start, end, payload } = context.data\n\n return {\n key: `connection-${id}`,\n component: ConnectionWrapperComponent,\n props: {\n connectionComponent: component,\n data: payload,\n start: start || ((change: any) => positionWatcher.listen(source, 'output', sourceOutput, change)),\n end: end || ((change: any) => positionWatcher.listen(target, 'input', targetInput, change)),\n path: async (start, end) => {\n const response = await plugin.emit({ type: 'connectionpath', data: { payload, points: [start, end] } })\n\n if (!response) return ''\n\n const { path, points } = response.data\n const curvature = 0.3\n\n if (!path && points.length !== 2) throw new Error('cannot render connection with a custom number of points')\n if (!path) return payload.isLoop\n ? loopConnectionPath(points as [Position, Position], curvature, 120)\n : classicConnectionPath(points as [Position, Position], curvature)\n\n return path\n },\n rendered\n }\n }\n }\n if (context.data.type === 'socket') {\n const component = socket ? socket(context.data) : SocketComponent\n\n return {\n key: `socket-${getUID()}`,\n component,\n props: {\n data: context.data.payload,\n rendered\n }\n }\n }\n if (context.data.type === 'control') {\n const component = control\n ? control(context.data)\n : (\n context.data.payload instanceof ClassicPreset.InputControl\n ? ControlComponent\n : null\n )\n\n if (component) {\n return {\n key: `control-${context.data.payload.id}`,\n component,\n props: {\n data: context.data.payload,\n rendered\n }\n }\n }\n return\n }\n return\n }\n }\n}\n","export function debounce(cb: () => void) {\n return {\n timeout: null as null | number,\n cancel() {\n if (this.timeout) {\n window.clearTimeout(this.timeout)\n this.timeout = null\n }\n },\n call(delay: number) {\n this.timeout = window.setTimeout(() => {\n cb()\n }, delay)\n }\n }\n}\n","import { Component, Input, ChangeDetectorRef, OnChanges, OnDestroy, HostListener, HostBinding } from '@angular/core';\nimport { Item } from '../../types';\nimport { debounce } from '../../debounce';\n// [imports]\n\n@Component({\n // [component-directive]\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.sass', '../../block.sass'],\n host: {\n 'data-testid': 'context-menu'\n }\n})\nexport class ContextMenuComponent implements OnChanges, OnDestroy {\n @Input() items!: Item[]\n @Input() delay!: number\n @Input() searchBar?: boolean\n @Input() onHide!: () => void\n @Input() rendered!: () => void\n\n public filter: string = ''\n\n hide = debounce(() => {\n this.onHide()\n this.cdr.detectChanges()\n })\n\n @HostBinding('attr.rete-context-menu') customAttribute = ''\n\n @HostListener('mouseover') pointerover() {\n this.hide.cancel()\n this.cdr.detectChanges()\n }\n @HostListener('mouseleave') pointerleave() {\n this.hide.call(this.delay)\n this.cdr.detectChanges()\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges()\n requestAnimationFrame(() => this.rendered())\n }\n\n setFilter(value: string) {\n this.filter = value\n this.cdr.detectChanges()\n }\n\n getItems() {\n const filterRegexp = new RegExp(this.filter, 'i')\n const filteredList = this.items.filter(item => (\n item.label.match(filterRegexp)\n ))\n\n return filteredList\n }\n\n ngOnDestroy(): void {\n if (this.hide) this.hide.cancel()\n }\n}\n","import { BaseSchemes } from 'rete';\n\nimport { ContextMenuRender } from './types';\nimport { ContextMenuComponent } from './components/menu/menu.component';\nimport { RenderPreset } from '../types';\n\n/**\n * Preset for rendering context menu.\n */\nexport function setup<Schemes extends BaseSchemes, K extends ContextMenuRender>(props?: { delay?: number }): RenderPreset<Schemes, K> {\n const delay = typeof props?.delay === 'undefined' ? 1000 : props.delay\n\n return {\n update(context) {\n if (context.data.type === 'contextmenu') {\n return {\n items: context.data.items,\n delay,\n searchBar: context.data.searchBar,\n onHide: context.data.onHide\n }\n }\n },\n mount(context, plugin) {\n const parent = plugin.parentScope()\n const emit = parent.emit.bind(parent)\n const rendered = () => {\n emit({ type: 'rendered', data: context.data } as any)\n }\n\n if (context.data.type === 'contextmenu') {\n return {\n key: 'context-menu',\n component: ContextMenuComponent,\n props: {\n items: context.data.items,\n delay,\n searchBar: context.data.searchBar,\n onHide: context.data.onHide,\n rendered\n }\n }\n }\n return null\n }\n }\n}\n","import { Component, Input, ChangeDetectorRef, OnChanges, HostListener, ElementRef, HostBinding } from '@angular/core';\nimport { MinimapData } from '../../types';\n// [imports]\n\n@Component({\n // [component-directive]\n templateUrl: './minimap.component.html',\n styleUrls: ['./minimap.component.sass'],\n host: {\n 'data-testid': 'minimap'\n }\n})\nexport class MinimapComponent implements OnChanges {\n @Input() rendered!: () => void\n @Input() size!: number\n @Input() ratio!: MinimapData['ratio']\n @Input() nodes!: MinimapData['nodes']\n @Input() viewport!: MinimapData['viewport']\n @Input() translate!: MinimapData['translate']\n @Input() point!: MinimapData['point']\n\n @HostBinding('style.width') get width() {\n return this.px(this.size * this.ratio)\n }\n @HostBinding('style.height') get height() {\n return this.px(this.size)\n }\n\n @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n event.stopPropagation()\n event.preventDefault()\n }\n\n @HostListener('dblclick', ['$event']) dblclick(event: MouseEvent) {\n event.stopPropagation()\n event.preventDefault()\n\n if (!this.el.nativeElement) return\n const box = this.el.nativeElement.getBoundingClientRect()\n const x = (event.clientX - box.left) / (this.size * this.ratio)\n const y = (event.clientY - box.top) / (this.size * this.ratio)\n\n this.point(x, y)\n }\n\n constructor(public el: ElementRef, private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges()\n requestAnimationFrame(() => this.rendered())\n }\n\n px(value: number) {\n return `${value}px`\n }\n\n scale(value: number) {\n if (!this.el.nativeElement) return 0\n\n return value * this.el.nativeElement.clientWidth\n }\n\n identifyMiniNode(_: number, item: MinimapData['nodes'][number]) {\n return [item.top, item.left].join('_')\n }\n}\n","import { BaseSchemes } from 'rete';\n\nimport { RenderPreset } from '../types';\nimport { MinimapRender } from './types';\nimport { MinimapComponent } from './components/minimap/minimap.component';\n\n/**\n * Preset for rendering minimap.\n */\nexport function setup<Schemes extends BaseSchemes, K extends MinimapRender>(props?: { size?: number }): RenderPreset<Schemes, K> {\n return {\n update(context) {\n if (context.data.type === 'minimap') {\n return {\n nodes: context.data.nodes,\n size: props?.size || 200,\n ratio: context.data.ratio,\n viewport: context.data.viewport,\n translate: context.data.translate,\n point: context.data.point\n }\n }\n return null\n },\n mount(context, plugin) {\n const parent = plugin.parentScope()\n const emit = parent.emit.bind(parent)\n const rendered = () => {\n emit({ type: 'rendered', data: context.data } as any)\n }\n\n if (context.data.type === 'minimap') {\n return {\n key: 'rete-minimap',\n component: MinimapComponent,\n props: {\n nodes: context.data.nodes,\n size: props?.size || 200,\n ratio: context.data.ratio,\n viewport: context.data.viewport,\n translate: context.data.translate,\n point: context.data.point,\n rendered\n }\n }\n }\n return null\n }\n }\n}\n","import { Component, Input, ChangeDetectorRef, OnChanges } from '@angular/core';\nimport { Pin, PinData, Position } from '../../types';\n// [imports]\n\n@Component({\n // [component-directive]\n templateUrl: './pins.component.html'\n})\nexport class PinsComponent implements OnChanges {\n @Input() rendered!: () => void\n @Input() pins!: PinData['pins']\n @Input() down?: (id: string) => void\n @Input() translate?: (id: string, dx: number, dy: number) => void\n @Input() menu?: (id: string) => void\n @Input() getPointer?: () => Position\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges()\n requestAnimationFrame(() => this.rendered())\n }\n\n track(_: number, item: Pin) {\n return item.id\n }\n}\n","import { BaseSchemes } from 'rete';\nimport { BaseAreaPlugin } from 'rete-area-plugin';\n\nimport { RenderPreset } from '../types'\nimport { PinsRender } from './types';\nimport { PinsComponent } from './components/pins/pins.component';\n\ntype Props = {\n translate?: (id: string, dx: number, dy: number) => void\n contextMenu?: (id: string) => void\n pointerdown?: (id: string) => void\n}\n\n/**\n * Preset for rendering pins.\n */\nexport function setup<Schemes extends BaseSchemes, K extends PinsRender>(props?: Props): RenderPreset<Schemes, K> {\n const getProps = () => ({\n menu: props?.contextMenu || (() => null),\n translate: props?.translate || (() => null),\n down: props?.pointerdown || (() => null)\n })\n\n return {\n update(context) {\n if (context.data.type === 'reroute-pins') {\n return {\n ...getProps(),\n pins: context.data.data.pins\n }\n }\n return null\n },\n mount(context, plugin) {\n const area = plugin.parentScope<BaseAreaPlugin<Schemes, PinsRender>>(BaseAreaPlugin)\n const rendered = () => {\n area.emit({ type: 'rendered', data: context.data })\n }\n\n if (context.data.type === 'reroute-pins') {\n return {\n key: 'rete-reroute',\n component: PinsComponent,\n props: {\n ...getProps(),\n pins: context.data.data.pins,\n rendered,\n getPointer: () => area.area.pointer\n }\n }\n }\n return null\n }\n }\n}\n","import { Input, ElementRef, OnChanges, OnDestroy } from '@angular/core';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[refComponent]'\n})\nexport class RefDirective implements OnChanges, OnDestroy {\n @Input() data!: any\n @Input() emit!: any\n\n constructor(private el: ElementRef) { }\n\n ngOnChanges() {\n this.emit({ type: 'render', data: { ...this.data, element: this.el.nativeElement } })\n }\n\n ngOnDestroy() {\n this.emit({ type: 'unmount', data: { element: this.el.nativeElement } })\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NodeComponent } from './presets/classic/components/node/node.component';\nimport { ConnectionComponent } from './presets/classic/components/connection/connection.component';\nimport { SocketComponent } from './presets/classic/components/socket/socket.component';\nimport { ConnectionWrapperComponent } from './presets/classic/components/connection/connection-wrapper.component';\nimport { ControlComponent } from './presets/classic/components/control/control.component';\nimport { RefDirective } from './ref';\n\n@NgModule({\n declarations: [\n RefDirective,\n NodeComponent,\n ConnectionComponent,\n ConnectionWrapperComponent,\n SocketComponent,\n ControlComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n RefDirective,\n NodeComponent,\n ConnectionComponent,\n ConnectionWrapperComponent,\n SocketComponent,\n ControlComponent\n ],\n entryComponents: [\n NodeComponent,\n ConnectionComponent,\n ConnectionWrapperComponent,\n SocketComponent,\n ControlComponent\n ]\n})\nexport class ReteModule { }\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'context-menu-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.sass']\n})\nexport class ContextMenuSearchComponent {\n @Input() value!: string\n @Output() update = new EventEmitter<string>()\n}\n","import { ChangeDetectorRef, Component, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\nimport { Item } from '../../types';\nimport { debounce } from '../../debounce';\n// [imports]\n\n@Component({\n // [component-directive]\n selector: 'context-menu-item',\n templateUrl: './item.component.html',\n styleUrls: ['./item.component.sass', '../../block.sass'],\n host: {\n 'data-testid': 'context-menu-item'\n }\n})\nexport class ContextMenuItemComponent {\n @Input() subitems?: Item[]\n @Input() delay!: number\n @Output() select = new EventEmitter<void>();\n @Output() hide = new EventEmitter<void>();\n\n @HostBinding('class.block') get block() { return true }\n @HostBinding('class.hasSubitems') get hasSubitems() { return this.subitems }\n\n @HostListener('click', ['$event']) click(event: MouseEvent) {\n event.stopPropagation()\n this.select.emit()\n this.hide.emit()\n }\n @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n event.stopPropagation()\n }\n @HostListener('wheel', ['$event']) wheel(event: MouseEvent) {\n event.stopPropagation()\n }\n\n hideSubitems = debounce(() => {\n this.visibleSubitems = false\n this.cdr.detectChanges()\n })\n visibleSubitems = false\n\n @HostListener('pointerover') pointerover() {\n this.hideSubitems.cancel()\n this.visibleSubitems = true\n this.cdr.detectChanges()\n }\n @HostListener('pointerleave') pointerleave() {\n this.hideSubitems.call(this.delay)\n this.cdr.detectChanges()\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ContextMenuComponent } from './components/menu/menu.component'\nimport { ContextMenuSearchComponent } from './components/search/search.component'\nimport { ContextMenuItemComponent } from './components/item/item.component'\n\n@NgModule({\n declarations: [\n ContextMenuComponent,\n ContextMenuSearchComponent,\n ContextMenuItemComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n ContextMenuComponent,\n ContextMenuSearchComponent,\n ContextMenuItemComponent,\n ],\n entryComponents: [\n ContextMenuComponent\n ]\n})\nexport class ReteContextMenuModule {}\n","import { Position } from '../types'\n\ntype Translate = (dx: number, dy: number) => void\ntype StartEvent = { pageX: number, pageY: number }\n\nexport function useDrag(translate: Translate, getPointer: (e: StartEvent) => Position) {\n return {\n start(e: StartEvent) {\n let previous = { ...getPointer(e) }\n\n function move(moveEvent: MouseEvent) {\n const current = { ...getPointer(moveEvent) }\n const dx = current.x - previous.x\n const dy = current.y - previous.y\n\n previous = current\n\n translate(dx, dy)\n }\n function up() {\n window.removeEventListener('pointermove', move)\n window.removeEventListener('pointerup', up)\n window.removeEventListener('pointercancel', up)\n }\n\n window.addEventListener('pointermove', move)\n window.addEventListener('pointerup', up)\n window.addEventListener('pointercancel', up)\n }\n }\n}\n","import { Component, Input, HostBinding, HostListener } from '@angular/core';\nimport { useDrag } from '../../../../shared/drag';\nimport { MinimapData } from '../../types';\n\n@Component({\n selector: 'minimap-mini-viewport',\n templateUrl: './mini-viewport.component.html',\n styleUrls: ['./mini-viewport.component.sass'],\n host: {\n 'data-testid': 'minimap-viewport'\n }\n})\nexport class MiniViewportComponent {\n @Input() left!: number\n @Input() top!: number\n @Input() width!: number\n @Input() height!: number\n @Input() containerWidth!: number\n @Input() translate!: MinimapData['translate']\n\n drag = useDrag((dx, dy) => this.onDrag(dx, dy), e => ({ x: e.pageX, y: e.pageY }))\n\n @HostBinding('style.left') get styleLeft() {\n return this.px(this.scale(this.left))\n }\n @HostBinding('style.top') get styleTop() {\n return this.px(this.scale(this.top))\n }\n @HostBinding('style.width') get styleWidth() {\n return this.px(this.scale(this.width))\n }\n @HostBinding('style.height') get styleHeight() {\n return this.px(this.scale(this.height))\n }\n\n @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n event.stopPropagation()\n this.drag.start(event)\n }\n\n px(value: number) {\n return `${value}px`\n }\n\n scale(v: number) {\n return v * this.containerWidth\n }\n\n invert(v: number) {\n return v / this.containerWidth\n }\n\n onDrag(dx: number, dy: number) {\n this.translate(this.invert(-dx), this.invert(-dy))\n }\n}\n","import { Component, Input, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'minimap-mini-node',\n templateUrl: './mini-node.component.html',\n styleUrls: ['./mini-node.component.sass'],\n host: {\n 'data-testid': 'minimap-node'\n }\n})\nexport class MiniNodeComponent {\n @Input() left!: number\n @Input() top!: number\n @Input() width!: number\n @Input() height!: number\n\n @HostBinding('style.left') get styleLeft() {\n return this.px(this.left)\n }\n @HostBinding('style.top') get styleTop() {\n return this.px(this.top)\n }\n @HostBinding('style.width') get styleWidth() {\n return this.px(this.width)\n }\n @HostBinding('style.height') get styleHeight() {\n return this.px(this.height)\n }\n\n px(value: number) {\n return `${value}px`\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MinimapComponent } from './components/minimap/minimap.component';\nimport { MiniViewportComponent } from './components/mini-viewport/mini-viewport.component';\nimport { MiniNodeComponent } from './components/mini-node/mini-node.component';\n\n@NgModule({\n declarations: [\n MinimapComponent,\n MiniViewportComponent,\n MiniNodeComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n MinimapComponent,\n MiniViewportComponent,\n MiniNodeComponent\n ],\n entryComponents: [\n MinimapComponent\n ]\n})\nexport class ReteMinimapModule {}\n","import { Component, Input, ChangeDetectorRef, OnChanges, HostListener, HostBinding, Output, EventEmitter } from '@angular/core';\nimport { Position } from '../../types';\nimport { useDrag } from '../../../../shared/drag'\n\nconst pinSize = 20\n\n@Component({\n selector: 'reroute-pin',\n template: '',\n styleUrls: ['./pin.component.sass'],\n host: {\n 'data-testid': 'pin'\n }\n})\nexport class PinComponent implements OnChanges {\n @Input() position!: Position\n @Input() selected?: boolean\n @Input() getPointer!: () => Position\n @Output() menu = new EventEmitter<void>()\n @Output() translate = new EventEmitter<{ dx: number, dy: number }>()\n @Output() down = new EventEmitter<void>()\n\n drag = useDrag((dx, dy) => {\n this.translate.emit({ dx, dy })\n }, () => this.getPointer())\n\n @HostBinding('class.selected') get _selected() {\n return this.selected\n }\n @HostBinding('style.top') get top() {\n return `${this.position.y - pinSize / 2}px`\n }\n @HostBinding('style.left') get left() {\n return `${this.position.x - pinSize / 2}px`\n }\n @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n event.stopPropagation()\n event.preventDefault()\n\n this.drag.start(event)\n this.down.emit()\n }\n @HostListener('contextmenu', ['$event']) contextmenu(event: MouseEvent) {\n event.stopPropagation()\n event.preventDefault()\n\n this.menu.emit()\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n // this.cdr.detach()\n }\n\n ngOnChanges(): void {\n // this.cdr.detectChanges()\n // requestAnimationFrame(() => this.rendered())\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PinsComponent } from './components/pins/pins.component';\nimport { PinComponent } from './components/pin/pin.component';\n\n@NgModule({\n declarations: [\n PinsComponent,\n PinComponent,\n ],\n imports: [\n CommonModule\n ],\n exports: [\n PinsComponent,\n PinComponent,\n ],\n entryComponents: [\n PinsComponent\n ]\n})\nexport class ReteRerouteModule {}\n","export function reflect(obj: unknown) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n\n return new Proxy(obj, {\n get(target, prop) {\n return target[prop];\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has: (target, prop) => prop in target,\n deleteProperty: (target, prop) => delete target[prop],\n ownKeys: target => Reflect.ownKeys(target)\n });\n}","import { Injector } from '@angular/core';\nimport { BaseSchemes, CanAssignSignal, Scope } from 'rete'\nimport { createCustomElement } from '@angular/elements';\n\nimport { NgElement, NodeProps, Position, RenderSignal } from './types'\nimport { RenderPreset } from './presets/types';\nimport { reflect } from './reflect';\n\ntype Item = { key: string, ngElement: NgElement }\n\ntype Renderer = {\n get(element: HTMLElement): Item | undefined\n mount(element: HTMLElement, key: string, component: any, injector: Injector, props: Record<string, unknown>): void\n update(item: Item, props: Record<string, unknown>): void\n unmount(element: HTMLElement): void\n}\nfunction getRenderer(): Renderer {\n const elements = new WeakMap<HTMLElement, Item>()\n\n return {\n get(element) {\n return elements.get(element)\n },\n mount(element, key, component, injector, props) {\n // LIMITATION: If an element is remounted with the same identifier, the component cannot be replaced\n let CustomElement = customElements.get(key)\n \n if (!CustomElement) {\n CustomElement = createCustomElement(component, { injector })\n customElements.define(key, CustomElement)\n }\n\n const ngElement = new CustomElement(injector) as NodeProps & NgElement & typeof props\n\n Object.keys(props).forEach(key => {\n ngElement[key] = props[key]\n })\n\n element.appendChild(ngElement)\n elements.set(element, { key, ngElement })\n },\n update({ ngElement }, props) {\n Object.keys(props).forEach(key => {\n ngElement.ngElementStrategy.setInputValue(key, reflect(props[key]))\n })\n },\n unmount(element) {\n const existing = elements.get(element)\n\n if (existing) {\n existing.ngElement.remove()\n elements.delete(element)\n }\n }\n }\n}\n\n/**\n * Signals that can be emitted by the plugin\n * @priority 10\n */\nexport type Produces<Schemes extends BaseSchemes> =\n | { type: 'connectionpath', data: { payload: Schemes['Connection'], path?: string, points: Position[] } }\n\ntype Requires<Schemes extends BaseSchemes> =\n | RenderSignal<'node', { payload: Schemes['Node'] }>\n | RenderSignal<'connection', { payload: Schemes['Connection'], start?: Position, end?: Position }>\n | { type: 'unmount', data: { element: HTMLElement } }\n\n/**\n * Angular plugin. Renders nodes, connections and other elements using React.\n * @priority 9\n * @emits connectionpath\n * @listens render\n * @listens unmount\n */\nexport class AngularPlugin<Schemes extends BaseSchemes, T = Requires<Schemes>> extends Scope<Produces<Schemes>, [Requires<Schemes> | T]> {\n presets: RenderPreset<Schemes, T>[] = []\n renderer: Renderer\n owners = new WeakMap<HTMLElement, RenderPreset<Schemes, T>>()\n\n /**\n * @constructor\n * @param params Plugin properties\n * @param params.injector Angular's Injector instance\n */\n constructor(private params: { injector: Injector }) {\n super('angular-render')\n this.renderer = getRenderer()\n\n this.addPipe(context => {\n if (!context || typeof context !== 'object' || !('type' in context)) return context\n if (context.type === 'unmount') {\n this.unmount(context.data.element)\n } else if (context.type === 'render') {\n if ('filled' in context.data && context.data.filled) {\n return context\n }\n if (this.mount(context.data.element, context)) {\n return {\n ...context,\n data: {\n ...context.data,\n filled: true\n }\n } as typeof context\n }\n }\n return context\n })\n }\n\n setParent(scope: Scope<Requires<Schemes> | T>): void {\n super.setParent(scope)\n\n this.presets.forEach(preset => {\n if (preset.attach) preset.attach(this)\n })\n }\n\n\n private unmount(element: HTMLElement) {\n this.owners.delete(element)\n this.renderer.unmount(element)\n }\n\n private mount(element: HTMLElement, context: Requires<Schemes>) {\n const existing = this.renderer.get(element)\n\n if (existing) {\n this.presets.forEach(preset => {\n if (this.owners.get(element) !== preset) return\n const result = preset.update(context as unknown as Extract<T, { type: 'render' }>, this)\n\n if (result) {\n this.renderer.update(existing, result)\n }\n })\n return true\n }\n\n for (const preset of this.presets) {\n const result = preset.mount(context as unknown as Extract<T, { type: 'render' }>, this)\n\n if (!result) continue\n\n const { key, component, props } = result\n\n this.renderer.mount(element, key, component, this.params.injector, props)\n\n this.owners.set(element, preset)\n return true\n }\n return\n }\n\n /**\n * Adds a preset to the plugin.\n * @param preset Preset that can render nodes, connections and other elements.\n */\n public addPreset<K>(preset: RenderPreset<Schemes, CanAssignSignal<T, K> extends true ? K : 'Cannot apply preset. Provided signals are not compatible'>) {\n const local = preset as unknown as RenderPreset<Schemes, T>\n\n if (local.attach) local.attach(this)\n this.presets.push(local)\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {ConnectionWrapperComponent as ɵc} from './presets/classic/components/connection/connection-wrapper.component';\nexport {ConnectionComponent as ɵb} from './presets/classic/components/connection/connection.component';\nexport {ControlComponent as ɵe} from './presets/classic/components/control/control.component';\nexport {NodeComponent as ɵa} from './presets/classic/components/node/node.component';\nexport {SocketComponent as ɵd} from './presets/classic/components/socket/socket.component';\nexport {ContextMenuItemComponent as ɵh} from './presets/context-menu/components/item/item.component';\nexport {ContextMenuComponent as ɵf} from './presets/context-menu/components/menu/menu.component';\nexport {ContextMenuSearchComponent as ɵg} from './presets/context-menu/components/search/search.component';\nexport {MiniNodeComponent as ɵk} from './presets/minimap/components/mini-node/mini-node.component';\nexport {MiniViewportComponent as ɵj} from './presets/minimap/components/mini-viewport/mini-viewport.component';\nexport {MinimapComponent as ɵi} from './presets/minimap/components/minimap/minimap.component';\nexport {PinComponent as ɵm} from './presets/reroute/components/pin/pin.component';\nexport {PinsComponent as ɵl} from './presets/reroute/components/pins/pins.component';"],"names":["setup"],"mappings":"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"}
1
+ {"version":3,"file":"rete-angular-plugin.js","sources":["../../src/presets/classic/components/node/node.component.ts","../../src/presets/classic/components/socket/socket.component.ts","../../src/presets/classic/components/control/control.component.ts","../../src/presets/classic/components/connection/connection.component.ts","../../src/presets/classic/components/connection/connection-wrapper.component.ts","../../src/presets/classic/index.ts","../../src/presets/context-menu/debounce.ts","../../src/presets/context-menu/components/menu/menu.component.ts","../../src/presets/context-menu/index.ts","../../src/presets/minimap/components/minimap/minimap.component.ts","../../src/presets/minimap/index.ts","../../src/presets/reroute/components/pins/pins.component.ts","../../src/presets/reroute/index.ts","../../src/ref.ts","../../src/shared/pipes/impure-keyvalue.pipe.ts","../../src/module.ts","../../src/presets/context-menu/components/search/search.component.ts","../../src/presets/context-menu/components/item/item.component.ts","../../src/presets/context-menu/module.ts","../../src/shared/drag.ts","../../src/presets/minimap/components/mini-viewport/mini-viewport.component.ts","../../src/presets/minimap/components/mini-node/mini-node.component.ts","../../src/presets/minimap/module.ts","../../src/presets/reroute/components/pin/pin.component.ts","../../src/presets/reroute/module.ts","../../src/reflect.ts","../../src/core.ts","../../src/rete-angular-plugin.ts"],"sourcesContent":["import { Component, Input, HostBinding, ChangeDetectorRef, OnChanges } from '@angular/core';\nimport { ClassicPreset as Classic } from 'rete';\nimport { KeyValue } from '@angular/common';\n// [imports]\n\ntype NodeExtraData = { width?: number, height?: number }\ntype SortValue<N extends Classic.Node> = (N['controls'] | N['inputs'] | N['outputs'])[string]\n\n@Component({\n // [component-directive]\n templateUrl: './node.component.html',\n styleUrls: ['./node.component.sass'],\n host: {\n 'data-testid': 'node'\n }\n})\nexport class NodeComponent implements OnChanges {\n @Input() data!: Classic.Node & NodeExtraData;\n @Input() emit!: (data: any) => void\n @Input() rendered!: () => void\n\n seed = 0\n\n @HostBinding('style.width.px') get width() {\n return this.data.width\n }\n\n @HostBinding('style.height.px') get height() {\n return this.data.height\n }\n\n @HostBinding('class.selected') get selected() {\n return this.data.selected\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges()\n requestAnimationFrame(() => this.rendered())\n this.seed++ // force render sockets\n }\n\n sortByIndex<N extends Classic.Node, I extends KeyValue<string, SortValue<N>>>(a: I, b: I) {\n const ai = a.value?.index || 0\n const bi = b.value?.index || 0\n\n return ai - bi\n }\n}\n","import { Component, Input, HostBinding, AfterViewChecked, ChangeDetectorRef, OnChanges } from '@angular/core';\n\n@Component({\n template: ``,\n styleUrls: ['./socket.component.sass']\n})\nexport class SocketComponent implements OnChanges {\n @Input() data!: any;\n @Input() rendered!: any;\n\n\n @HostBinding('title') get title() {\n return this.data.name\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges()\n requestAnimationFrame(() => this.rendered())\n }\n}\n","import { Component, Input, OnChanges, SimpleChanges, ChangeDetectorRef, HostListener } from '@angular/core';\nimport { ClassicPreset } from 'rete';\n\n@Component({\n templateUrl: `./control.component.html`,\n styleUrls: ['./control.component.sass']\n})\nexport class ControlComponent<T extends 'text' | 'number'> implements OnChanges {\n @Input() data!: ClassicPreset.InputControl<T>;\n @Input() rendered!: any;\n\n\n @HostListener('pointerdown', ['$event'])\n public pointerdown(event: any) {\n event.stopPropagation();\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const seed = changes['seed']\n const data = changes['data']\n\n if ((seed && seed.currentValue !== seed.previousValue)\n || (data && data.currentValue !== data.previousValue)) {\n this.cdr.detectChanges()\n }\n requestAnimationFrame(() => this.rendered())\n }\n\n onChange(e: Event) {\n const target = e.target as HTMLInputElement\n const value = (this.data.type === 'number'\n ? +target.value\n : target.value) as ClassicPreset.InputControl<T>['value']\n\n this.data.setValue(value)\n this.cdr.detectChanges()\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { ClassicPreset } from 'rete';\nimport { classicConnectionPath } from 'rete-render-utils'\nimport { Position } from '../../../../types';\n\n\n@Component({\n selector: 'connection',\n templateUrl: './connection.component.html',\n styleUrls: ['./connection.component.sass']\n})\nexport class ConnectionComponent {\n @Input() data!: ClassicPreset.Connection<ClassicPreset.Node, ClassicPreset.Node>;\n @Input() start: Position\n @Input() end: Position\n @Input() path: string\n}\n","import { Component, Input, OnInit, ChangeDetectorRef, OnChanges, ViewContainerRef, ComponentFactoryResolver, ComponentRef } from '@angular/core';\nimport { ClassicPreset } from 'rete';\nimport { Position } from '../../../../types';\n\ntype PositionWatcher = (cb: (value: Position) => void) => (() => void)\n\n@Component({\n template: ''\n})\nexport class ConnectionWrapperComponent implements OnInit, OnChanges{\n @Input() data!: ClassicPreset.Connection<ClassicPreset.Node, ClassicPreset.Node>;\n @Input() start!: Position | PositionWatcher\n @Input() end!: Position | PositionWatcher\n @Input() path!: (start: Position, end: Position) => Promise<string>\n @Input() rendered!: any\n @Input() connectionComponent!: any\n\n ref!: ComponentRef<any>\n\n startOb: Position | null = null\n get _start(): Position | null {\n return 'x' in this.start ? this.start : this.startOb\n }\n endOb: Position | null = null\n get _end(): Position | null {\n return 'x' in this.end ? this.end : this.endOb\n }\n _path: string\n\n constructor(private cdr: ChangeDetectorRef, public viewContainerRef: ViewContainerRef, private componentFactoryResolver: ComponentFactoryResolver) {\n this.cdr.detach()\n }\n\n async ngOnChanges(): Promise<void> {\n await this.updatePath()\n requestAnimationFrame(() => this.rendered())\n this.cdr.detectChanges()\n this.update()\n }\n\n async updatePath() {\n if (this._start && this._end) {\n this._path = await this.path(this._start, this._end)\n }\n }\n\n ngOnInit() {\n if (typeof this.start === 'function') {\n this.start(async value => {\n this.startOb = value\n await this.updatePath()\n this.cdr.detectChanges()\n this.update()\n })\n }\n if (typeof this.end === 'function') {\n this.end(async value => {\n this.endOb = value\n await this.updatePath()\n this.cdr.detectChanges()\n this.update()\n })\n }\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.connectionComponent);\n this.viewContainerRef.clear();\n\n this.ref = this.viewContainerRef.createComponent(componentFactory);\n this.update()\n }\n\n update() {\n this.ref.instance.data = this.data\n this.ref.instance.start = this._start\n this.ref.instance.end = this._end\n this.ref.instance.path = this._path\n this.ref.changeDetectorRef.markForCheck();\n }\n}\n","import { Type } from '@angular/core';\nimport { ClassicPreset, getUID, Scope } from 'rete';\nimport { classicConnectionPath, loopConnectionPath, SocketPositionWatcher, getDOMSocketPosition } from 'rete-render-utils';\nimport { AngularArea2D, ClassicScheme, ExtractPayload } from './types';\nimport { NodeComponent } from './components/node/node.component';\nimport { SocketComponent } from './components/socket/socket.component';\nimport { ControlComponent } from './components/control/control.component';\nimport { ConnectionComponent } from './components/connection/connection.component';\nimport { ConnectionWrapperComponent } from './components/connection/connection-wrapper.component';\nimport { Position } from '../../types';\nimport { RenderPreset } from '../types'\n\ntype AngularComponent = Type<any>\ntype CustomizationProps<Schemes extends ClassicScheme> = {\n node?: (data: ExtractPayload<Schemes, 'node'>) => AngularComponent | null\n connection?: (data: ExtractPayload<Schemes, 'connection'>) => AngularComponent | null\n socket?: (data: ExtractPayload<Schemes, 'socket'>) => AngularComponent | null\n control?: (data: ExtractPayload<Schemes, 'control'>) => AngularComponent | null\n}\n\ntype ClassicProps<Schemes extends ClassicScheme, K> = {\n socketPositionWatcher?: SocketPositionWatcher<Scope<never, [K]>>\n customize?: CustomizationProps<Schemes>\n}\n\n/**\n * Classic preset for rendering nodes, connections, controls and sockets.\n */\nexport function setup<Schemes extends ClassicScheme, K extends AngularArea2D<Schemes>>(\n props?: ClassicProps<Schemes, K>\n): RenderPreset<Schemes, K> {\n const positionWatcher = typeof props?.socketPositionWatcher === 'undefined'\n ? getDOMSocketPosition<Schemes, any>() // fix Type instantiation is excessively deep and possibly infinite.\n : props?.socketPositionWatcher\n const { node, connection, socket, control } = props?.customize || {}\n\n\n return {\n attach(plugin) {\n positionWatcher.attach(plugin as unknown as Scope<never, [K]>)\n },\n update(context) {\n const data = context.data.payload\n\n if (context.data.type === 'connection') {\n const { start, end } = context.data\n\n return {\n data,\n ...(start ? { start } : {}),\n ...(end ? { end } : {}),\n }\n }\n return { data }\n },\n mount(context, plugin) {\n const parent = plugin.parentScope()\n const emit = parent.emit.bind(parent)\n const rendered = () => {\n emit({ type: 'rendered', data: context.data })\n }\n\n if (context.data.type === 'node') {\n const component = node ? node(context.data) : NodeComponent\n\n return {\n key: `node-${context.data.payload.id}`,\n component,\n props: {\n data: context.data.payload,\n emit,\n rendered\n }\n }\n }\n if (context.data.type === 'connection') {\n const component = connection ? connection(context.data) : ConnectionComponent\n const id = context.data.payload.id\n const { sourceOutput, targetInput, source, target } = context.data.payload\n const { start, end, payload } = context.data\n\n return {\n key: `connection-${id}`,\n component: ConnectionWrapperComponent,\n props: {\n connectionComponent: component,\n data: payload,\n start: start || ((change: any) => positionWatcher.listen(source, 'output', sourceOutput, change)),\n end: end || ((change: any) => positionWatcher.listen(target, 'input', targetInput, change)),\n path: async (start, end) => {\n const response = await plugin.emit({ type: 'connectionpath', data: { payload, points: [start, end] } })\n\n if (!response) return ''\n\n const { path, points } = response.data\n const curvature = 0.3\n\n if (!path && points.length !== 2) throw new Error('cannot render connection with a custom number of points')\n if (!path) return payload.isLoop\n ? loopConnectionPath(points as [Position, Position], curvature, 120)\n : classicConnectionPath(points as [Position, Position], curvature)\n\n return path\n },\n rendered\n }\n }\n }\n if (context.data.type === 'socket') {\n const component = socket ? socket(context.data) : SocketComponent\n\n return {\n key: `socket-${getUID()}`,\n component,\n props: {\n data: context.data.payload,\n rendered\n }\n }\n }\n if (context.data.type === 'control') {\n const component = control\n ? control(context.data)\n : (\n context.data.payload instanceof ClassicPreset.InputControl\n ? ControlComponent\n : null\n )\n\n if (component) {\n return {\n key: `control-${context.data.payload.id}`,\n component,\n props: {\n data: context.data.payload,\n rendered\n }\n }\n }\n return\n }\n return\n }\n }\n}\n","export function debounce(cb: () => void) {\n return {\n timeout: null as null | number,\n cancel() {\n if (this.timeout) {\n window.clearTimeout(this.timeout)\n this.timeout = null\n }\n },\n call(delay: number) {\n this.timeout = window.setTimeout(() => {\n cb()\n }, delay)\n }\n }\n}\n","import { Component, Input, ChangeDetectorRef, OnChanges, OnDestroy, HostListener, HostBinding } from '@angular/core';\nimport { Item } from '../../types';\nimport { debounce } from '../../debounce';\n// [imports]\n\n@Component({\n // [component-directive]\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.sass', '../../block.sass'],\n host: {\n 'data-testid': 'context-menu'\n }\n})\nexport class ContextMenuComponent implements OnChanges, OnDestroy {\n @Input() items!: Item[]\n @Input() delay!: number\n @Input() searchBar?: boolean\n @Input() onHide!: () => void\n @Input() rendered!: () => void\n\n public filter: string = ''\n\n hide = debounce(() => {\n this.onHide()\n this.cdr.detectChanges()\n })\n\n @HostBinding('attr.rete-context-menu') customAttribute = ''\n\n @HostListener('mouseover') pointerover() {\n this.hide.cancel()\n this.cdr.detectChanges()\n }\n @HostListener('mouseleave') pointerleave() {\n this.hide.call(this.delay)\n this.cdr.detectChanges()\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges()\n requestAnimationFrame(() => this.rendered())\n }\n\n setFilter(value: string) {\n this.filter = value\n this.cdr.detectChanges()\n }\n\n getItems() {\n const filterRegexp = new RegExp(this.filter, 'i')\n const filteredList = this.items.filter(item => (\n item.label.match(filterRegexp)\n ))\n\n return filteredList\n }\n\n ngOnDestroy(): void {\n if (this.hide) this.hide.cancel()\n }\n}\n","import { BaseSchemes } from 'rete';\n\nimport { ContextMenuRender } from './types';\nimport { ContextMenuComponent } from './components/menu/menu.component';\nimport { RenderPreset } from '../types';\n\n/**\n * Preset for rendering context menu.\n */\nexport function setup<Schemes extends BaseSchemes, K extends ContextMenuRender>(props?: { delay?: number }): RenderPreset<Schemes, K> {\n const delay = typeof props?.delay === 'undefined' ? 1000 : props.delay\n\n return {\n update(context) {\n if (context.data.type === 'contextmenu') {\n return {\n items: context.data.items,\n delay,\n searchBar: context.data.searchBar,\n onHide: context.data.onHide\n }\n }\n },\n mount(context, plugin) {\n const parent = plugin.parentScope()\n const emit = parent.emit.bind(parent)\n const rendered = () => {\n emit({ type: 'rendered', data: context.data } as any)\n }\n\n if (context.data.type === 'contextmenu') {\n return {\n key: 'context-menu',\n component: ContextMenuComponent,\n props: {\n items: context.data.items,\n delay,\n searchBar: context.data.searchBar,\n onHide: context.data.onHide,\n rendered\n }\n }\n }\n return null\n }\n }\n}\n","import { Component, Input, ChangeDetectorRef, OnChanges, HostListener, ElementRef, HostBinding } from '@angular/core';\nimport { MinimapData } from '../../types';\n// [imports]\n\n@Component({\n // [component-directive]\n templateUrl: './minimap.component.html',\n styleUrls: ['./minimap.component.sass'],\n host: {\n 'data-testid': 'minimap'\n }\n})\nexport class MinimapComponent implements OnChanges {\n @Input() rendered!: () => void\n @Input() size!: number\n @Input() ratio!: MinimapData['ratio']\n @Input() nodes!: MinimapData['nodes']\n @Input() viewport!: MinimapData['viewport']\n @Input() translate!: MinimapData['translate']\n @Input() point!: MinimapData['point']\n\n @HostBinding('style.width') get width() {\n return this.px(this.size * this.ratio)\n }\n @HostBinding('style.height') get height() {\n return this.px(this.size)\n }\n\n @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n event.stopPropagation()\n event.preventDefault()\n }\n\n @HostListener('dblclick', ['$event']) dblclick(event: MouseEvent) {\n event.stopPropagation()\n event.preventDefault()\n\n if (!this.el.nativeElement) return\n const box = this.el.nativeElement.getBoundingClientRect()\n const x = (event.clientX - box.left) / (this.size * this.ratio)\n const y = (event.clientY - box.top) / (this.size * this.ratio)\n\n this.point(x, y)\n }\n\n constructor(public el: ElementRef, private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges()\n requestAnimationFrame(() => this.rendered())\n }\n\n px(value: number) {\n return `${value}px`\n }\n\n scale(value: number) {\n if (!this.el.nativeElement) return 0\n\n return value * this.el.nativeElement.clientWidth\n }\n\n identifyMiniNode(_: number, item: MinimapData['nodes'][number]) {\n return [item.top, item.left].join('_')\n }\n}\n","import { BaseSchemes } from 'rete';\n\nimport { RenderPreset } from '../types';\nimport { MinimapRender } from './types';\nimport { MinimapComponent } from './components/minimap/minimap.component';\n\n/**\n * Preset for rendering minimap.\n */\nexport function setup<Schemes extends BaseSchemes, K extends MinimapRender>(props?: { size?: number }): RenderPreset<Schemes, K> {\n return {\n update(context) {\n if (context.data.type === 'minimap') {\n return {\n nodes: context.data.nodes,\n size: props?.size || 200,\n ratio: context.data.ratio,\n viewport: context.data.viewport,\n translate: context.data.translate,\n point: context.data.point\n }\n }\n return null\n },\n mount(context, plugin) {\n const parent = plugin.parentScope()\n const emit = parent.emit.bind(parent)\n const rendered = () => {\n emit({ type: 'rendered', data: context.data } as any)\n }\n\n if (context.data.type === 'minimap') {\n return {\n key: 'rete-minimap',\n component: MinimapComponent,\n props: {\n nodes: context.data.nodes,\n size: props?.size || 200,\n ratio: context.data.ratio,\n viewport: context.data.viewport,\n translate: context.data.translate,\n point: context.data.point,\n rendered\n }\n }\n }\n return null\n }\n }\n}\n","import { Component, Input, ChangeDetectorRef, OnChanges } from '@angular/core';\nimport { Pin, PinData, Position } from '../../types';\n// [imports]\n\n@Component({\n // [component-directive]\n templateUrl: './pins.component.html'\n})\nexport class PinsComponent implements OnChanges {\n @Input() rendered!: () => void\n @Input() pins!: PinData['pins']\n @Input() down?: (id: string) => void\n @Input() translate?: (id: string, dx: number, dy: number) => void\n @Input() menu?: (id: string) => void\n @Input() getPointer?: () => Position\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges()\n requestAnimationFrame(() => this.rendered())\n }\n\n track(_: number, item: Pin) {\n return item.id\n }\n}\n","import { BaseSchemes } from 'rete';\nimport { BaseAreaPlugin } from 'rete-area-plugin';\n\nimport { RenderPreset } from '../types'\nimport { PinsRender } from './types';\nimport { PinsComponent } from './components/pins/pins.component';\n\ntype Props = {\n translate?: (id: string, dx: number, dy: number) => void\n contextMenu?: (id: string) => void\n pointerdown?: (id: string) => void\n}\n\n/**\n * Preset for rendering pins.\n */\nexport function setup<Schemes extends BaseSchemes, K extends PinsRender>(props?: Props): RenderPreset<Schemes, K> {\n const getProps = () => ({\n menu: props?.contextMenu || (() => null),\n translate: props?.translate || (() => null),\n down: props?.pointerdown || (() => null)\n })\n\n return {\n update(context) {\n if (context.data.type === 'reroute-pins') {\n return {\n ...getProps(),\n pins: context.data.data.pins\n }\n }\n return null\n },\n mount(context, plugin) {\n const area = plugin.parentScope<BaseAreaPlugin<Schemes, PinsRender>>(BaseAreaPlugin)\n const rendered = () => {\n area.emit({ type: 'rendered', data: context.data })\n }\n\n if (context.data.type === 'reroute-pins') {\n return {\n key: 'rete-reroute',\n component: PinsComponent,\n props: {\n ...getProps(),\n pins: context.data.data.pins,\n rendered,\n getPointer: () => area.area.pointer\n }\n }\n }\n return null\n }\n }\n}\n","import { Input, ElementRef, OnChanges, OnDestroy } from '@angular/core';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[refComponent]'\n})\nexport class RefDirective implements OnChanges, OnDestroy {\n @Input() data!: any\n @Input() emit!: any\n\n constructor(private el: ElementRef) { }\n\n ngOnChanges() {\n this.emit({ type: 'render', data: { ...this.data, element: this.el.nativeElement } })\n }\n\n ngOnDestroy() {\n this.emit({ type: 'unmount', data: { element: this.el.nativeElement } })\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyvalueimpure',\n pure: false\n})\nexport class ImpureKeyvaluePipe implements PipeTransform {\n\n transform(value: {[key: string]: any} | null | undefined, compareFn?: (a: any, b: any) => number): Array<{key: string, value: any}> {\n if (!value || typeof value !== 'object') {\n return [];\n }\n\n const result = Object.entries(value).map(([key, val]) => ({key, value: val}));\n\n if (compareFn) {\n result.sort(compareFn);\n }\n\n return result;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NodeComponent } from './presets/classic/components/node/node.component';\nimport { ConnectionComponent } from './presets/classic/components/connection/connection.component';\nimport { SocketComponent } from './presets/classic/components/socket/socket.component';\nimport { ConnectionWrapperComponent } from './presets/classic/components/connection/connection-wrapper.component';\nimport { ControlComponent } from './presets/classic/components/control/control.component';\nimport { RefDirective } from './ref';\nimport { ImpureKeyvaluePipe } from './shared/pipes/impure-keyvalue.pipe';\n\n@NgModule({\n declarations: [\n RefDirective,\n NodeComponent,\n ConnectionComponent,\n ConnectionWrapperComponent,\n SocketComponent,\n ControlComponent,\n ImpureKeyvaluePipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n RefDirective,\n NodeComponent,\n ConnectionComponent,\n ConnectionWrapperComponent,\n SocketComponent,\n ControlComponent,\n ImpureKeyvaluePipe\n ],\n entryComponents: [\n NodeComponent,\n ConnectionComponent,\n ConnectionWrapperComponent,\n SocketComponent,\n ControlComponent\n ]\n})\nexport class ReteModule { }\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'context-menu-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.sass']\n})\nexport class ContextMenuSearchComponent {\n @Input() value!: string\n @Output() update = new EventEmitter<string>()\n}\n","import { ChangeDetectorRef, Component, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\nimport { Item } from '../../types';\nimport { debounce } from '../../debounce';\n// [imports]\n\n@Component({\n // [component-directive]\n selector: 'context-menu-item',\n templateUrl: './item.component.html',\n styleUrls: ['./item.component.sass', '../../block.sass'],\n host: {\n 'data-testid': 'context-menu-item'\n }\n})\nexport class ContextMenuItemComponent {\n @Input() subitems?: Item[]\n @Input() delay!: number\n @Output() select = new EventEmitter<void>();\n @Output() hide = new EventEmitter<void>();\n\n @HostBinding('class.block') get block() { return true }\n @HostBinding('class.hasSubitems') get hasSubitems() { return this.subitems }\n\n @HostListener('click', ['$event']) click(event: MouseEvent) {\n event.stopPropagation()\n this.select.emit()\n this.hide.emit()\n }\n @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n event.stopPropagation()\n }\n @HostListener('wheel', ['$event']) wheel(event: MouseEvent) {\n event.stopPropagation()\n }\n\n hideSubitems = debounce(() => {\n this.visibleSubitems = false\n this.cdr.detectChanges()\n })\n visibleSubitems = false\n\n @HostListener('pointerover') pointerover() {\n this.hideSubitems.cancel()\n this.visibleSubitems = true\n this.cdr.detectChanges()\n }\n @HostListener('pointerleave') pointerleave() {\n this.hideSubitems.call(this.delay)\n this.cdr.detectChanges()\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n this.cdr.detach()\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ContextMenuComponent } from './components/menu/menu.component'\nimport { ContextMenuSearchComponent } from './components/search/search.component'\nimport { ContextMenuItemComponent } from './components/item/item.component'\n\n@NgModule({\n declarations: [\n ContextMenuComponent,\n ContextMenuSearchComponent,\n ContextMenuItemComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n ContextMenuComponent,\n ContextMenuSearchComponent,\n ContextMenuItemComponent,\n ],\n entryComponents: [\n ContextMenuComponent\n ]\n})\nexport class ReteContextMenuModule {}\n","import { Position } from '../types'\n\ntype Translate = (dx: number, dy: number) => void\ntype StartEvent = { pageX: number, pageY: number }\n\nexport function useDrag(translate: Translate, getPointer: (e: StartEvent) => Position) {\n return {\n start(e: StartEvent) {\n let previous = { ...getPointer(e) }\n\n function move(moveEvent: MouseEvent) {\n const current = { ...getPointer(moveEvent) }\n const dx = current.x - previous.x\n const dy = current.y - previous.y\n\n previous = current\n\n translate(dx, dy)\n }\n function up() {\n window.removeEventListener('pointermove', move)\n window.removeEventListener('pointerup', up)\n window.removeEventListener('pointercancel', up)\n }\n\n window.addEventListener('pointermove', move)\n window.addEventListener('pointerup', up)\n window.addEventListener('pointercancel', up)\n }\n }\n}\n","import { Component, Input, HostBinding, HostListener } from '@angular/core';\nimport { useDrag } from '../../../../shared/drag';\nimport { MinimapData } from '../../types';\n\n@Component({\n selector: 'minimap-mini-viewport',\n templateUrl: './mini-viewport.component.html',\n styleUrls: ['./mini-viewport.component.sass'],\n host: {\n 'data-testid': 'minimap-viewport'\n }\n})\nexport class MiniViewportComponent {\n @Input() left!: number\n @Input() top!: number\n @Input() width!: number\n @Input() height!: number\n @Input() containerWidth!: number\n @Input() translate!: MinimapData['translate']\n\n drag = useDrag((dx, dy) => this.onDrag(dx, dy), e => ({ x: e.pageX, y: e.pageY }))\n\n @HostBinding('style.left') get styleLeft() {\n return this.px(this.scale(this.left))\n }\n @HostBinding('style.top') get styleTop() {\n return this.px(this.scale(this.top))\n }\n @HostBinding('style.width') get styleWidth() {\n return this.px(this.scale(this.width))\n }\n @HostBinding('style.height') get styleHeight() {\n return this.px(this.scale(this.height))\n }\n\n @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n event.stopPropagation()\n this.drag.start(event)\n }\n\n px(value: number) {\n return `${value}px`\n }\n\n scale(v: number) {\n return v * this.containerWidth\n }\n\n invert(v: number) {\n return v / this.containerWidth\n }\n\n onDrag(dx: number, dy: number) {\n this.translate(this.invert(-dx), this.invert(-dy))\n }\n}\n","import { Component, Input, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'minimap-mini-node',\n templateUrl: './mini-node.component.html',\n styleUrls: ['./mini-node.component.sass'],\n host: {\n 'data-testid': 'minimap-node'\n }\n})\nexport class MiniNodeComponent {\n @Input() left!: number\n @Input() top!: number\n @Input() width!: number\n @Input() height!: number\n\n @HostBinding('style.left') get styleLeft() {\n return this.px(this.left)\n }\n @HostBinding('style.top') get styleTop() {\n return this.px(this.top)\n }\n @HostBinding('style.width') get styleWidth() {\n return this.px(this.width)\n }\n @HostBinding('style.height') get styleHeight() {\n return this.px(this.height)\n }\n\n px(value: number) {\n return `${value}px`\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MinimapComponent } from './components/minimap/minimap.component';\nimport { MiniViewportComponent } from './components/mini-viewport/mini-viewport.component';\nimport { MiniNodeComponent } from './components/mini-node/mini-node.component';\n\n@NgModule({\n declarations: [\n MinimapComponent,\n MiniViewportComponent,\n MiniNodeComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n MinimapComponent,\n MiniViewportComponent,\n MiniNodeComponent\n ],\n entryComponents: [\n MinimapComponent\n ]\n})\nexport class ReteMinimapModule {}\n","import { Component, Input, ChangeDetectorRef, OnChanges, HostListener, HostBinding, Output, EventEmitter } from '@angular/core';\nimport { Position } from '../../types';\nimport { useDrag } from '../../../../shared/drag'\n\nconst pinSize = 20\n\n@Component({\n selector: 'reroute-pin',\n template: '',\n styleUrls: ['./pin.component.sass'],\n host: {\n 'data-testid': 'pin'\n }\n})\nexport class PinComponent implements OnChanges {\n @Input() position!: Position\n @Input() selected?: boolean\n @Input() getPointer!: () => Position\n @Output() menu = new EventEmitter<void>()\n @Output() translate = new EventEmitter<{ dx: number, dy: number }>()\n @Output() down = new EventEmitter<void>()\n\n drag = useDrag((dx, dy) => {\n this.translate.emit({ dx, dy })\n }, () => this.getPointer())\n\n @HostBinding('class.selected') get _selected() {\n return this.selected\n }\n @HostBinding('style.top') get top() {\n return `${this.position.y - pinSize / 2}px`\n }\n @HostBinding('style.left') get left() {\n return `${this.position.x - pinSize / 2}px`\n }\n @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n event.stopPropagation()\n event.preventDefault()\n\n this.drag.start(event)\n this.down.emit()\n }\n @HostListener('contextmenu', ['$event']) contextmenu(event: MouseEvent) {\n event.stopPropagation()\n event.preventDefault()\n\n this.menu.emit()\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n // this.cdr.detach()\n }\n\n ngOnChanges(): void {\n // this.cdr.detectChanges()\n // requestAnimationFrame(() => this.rendered())\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PinsComponent } from './components/pins/pins.component';\nimport { PinComponent } from './components/pin/pin.component';\n\n@NgModule({\n declarations: [\n PinsComponent,\n PinComponent,\n ],\n imports: [\n CommonModule\n ],\n exports: [\n PinsComponent,\n PinComponent,\n ],\n entryComponents: [\n PinsComponent\n ]\n})\nexport class ReteRerouteModule {}\n","export function reflect(obj: unknown) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n\n return new Proxy(obj, {\n get(target, prop) {\n return target[prop];\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has: (target, prop) => prop in target,\n deleteProperty: (target, prop) => delete target[prop],\n ownKeys: target => Reflect.ownKeys(target)\n });\n}","import { Injector } from '@angular/core';\nimport { BaseSchemes, CanAssignSignal, Scope } from 'rete'\nimport { createCustomElement } from '@angular/elements';\n\nimport { NgElement, NodeProps, Position, RenderSignal } from './types'\nimport { RenderPreset } from './presets/types';\nimport { reflect } from './reflect';\n\ntype Item = { key: string, ngElement: NgElement }\n\ntype Renderer = {\n get(element: HTMLElement): Item | undefined\n mount(element: HTMLElement, key: string, component: any, injector: Injector, props: Record<string, unknown>): void\n update(item: Item, props: Record<string, unknown>): void\n unmount(element: HTMLElement): void\n}\nfunction getRenderer(): Renderer {\n const elements = new WeakMap<HTMLElement, Item>()\n\n return {\n get(element) {\n return elements.get(element)\n },\n mount(element, key, component, injector, props) {\n // LIMITATION: If an element is remounted with the same identifier, the component cannot be replaced\n let CustomElement = customElements.get(key)\n \n if (!CustomElement) {\n CustomElement = createCustomElement(component, { injector })\n customElements.define(key, CustomElement)\n }\n\n const ngElement = new CustomElement(injector) as NodeProps & NgElement & typeof props\n\n Object.keys(props).forEach(key => {\n ngElement[key] = props[key]\n })\n\n element.appendChild(ngElement)\n elements.set(element, { key, ngElement })\n },\n update({ ngElement }, props) {\n Object.keys(props).forEach(key => {\n ngElement.ngElementStrategy.setInputValue(key, reflect(props[key]))\n })\n },\n unmount(element) {\n const existing = elements.get(element)\n\n if (existing) {\n existing.ngElement.remove()\n elements.delete(element)\n }\n }\n }\n}\n\n/**\n * Signals that can be emitted by the plugin\n * @priority 10\n */\nexport type Produces<Schemes extends BaseSchemes> =\n | { type: 'connectionpath', data: { payload: Schemes['Connection'], path?: string, points: Position[] } }\n\ntype Requires<Schemes extends BaseSchemes> =\n | RenderSignal<'node', { payload: Schemes['Node'] }>\n | RenderSignal<'connection', { payload: Schemes['Connection'], start?: Position, end?: Position }>\n | { type: 'unmount', data: { element: HTMLElement } }\n\n/**\n * Angular plugin. Renders nodes, connections and other elements using React.\n * @priority 9\n * @emits connectionpath\n * @listens render\n * @listens unmount\n */\nexport class AngularPlugin<Schemes extends BaseSchemes, T = Requires<Schemes>> extends Scope<Produces<Schemes>, [Requires<Schemes> | T]> {\n presets: RenderPreset<Schemes, T>[] = []\n renderer: Renderer\n owners = new WeakMap<HTMLElement, RenderPreset<Schemes, T>>()\n\n /**\n * @constructor\n * @param params Plugin properties\n * @param params.injector Angular's Injector instance\n */\n constructor(private params: { injector: Injector }) {\n super('angular-render')\n this.renderer = getRenderer()\n\n this.addPipe(context => {\n if (!context || typeof context !== 'object' || !('type' in context)) return context\n if (context.type === 'unmount') {\n this.unmount(context.data.element)\n } else if (context.type === 'render') {\n if ('filled' in context.data && context.data.filled) {\n return context\n }\n if (this.mount(context.data.element, context)) {\n return {\n ...context,\n data: {\n ...context.data,\n filled: true\n }\n } as typeof context\n }\n }\n return context\n })\n }\n\n setParent(scope: Scope<Requires<Schemes> | T>): void {\n super.setParent(scope)\n\n this.presets.forEach(preset => {\n if (preset.attach) preset.attach(this)\n })\n }\n\n\n private unmount(element: HTMLElement) {\n this.owners.delete(element)\n this.renderer.unmount(element)\n }\n\n private mount(element: HTMLElement, context: Requires<Schemes>) {\n const existing = this.renderer.get(element)\n\n if (existing) {\n this.presets.forEach(preset => {\n if (this.owners.get(element) !== preset) return\n const result = preset.update(context as unknown as Extract<T, { type: 'render' }>, this)\n\n if (result) {\n this.renderer.update(existing, result)\n }\n })\n return true\n }\n\n for (const preset of this.presets) {\n const result = preset.mount(context as unknown as Extract<T, { type: 'render' }>, this)\n\n if (!result) continue\n\n const { key, component, props } = result\n\n this.renderer.mount(element, key, component, this.params.injector, props)\n\n this.owners.set(element, preset)\n return true\n }\n return\n }\n\n /**\n * Adds a preset to the plugin.\n * @param preset Preset that can render nodes, connections and other elements.\n */\n public addPreset<K>(preset: RenderPreset<Schemes, CanAssignSignal<T, K> extends true ? K : 'Cannot apply preset. Provided signals are not compatible'>) {\n const local = preset as unknown as RenderPreset<Schemes, T>\n\n if (local.attach) local.attach(this)\n this.presets.push(local)\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {ConnectionWrapperComponent as ɵc} from './presets/classic/components/connection/connection-wrapper.component';\nexport {ConnectionComponent as ɵb} from './presets/classic/components/connection/connection.component';\nexport {ControlComponent as ɵe} from './presets/classic/components/control/control.component';\nexport {NodeComponent as ɵa} from './presets/classic/components/node/node.component';\nexport {SocketComponent as ɵd} from './presets/classic/components/socket/socket.component';\nexport {ContextMenuItemComponent as ɵi} from './presets/context-menu/components/item/item.component';\nexport {ContextMenuComponent as ɵg} from './presets/context-menu/components/menu/menu.component';\nexport {ContextMenuSearchComponent as ɵh} from './presets/context-menu/components/search/search.component';\nexport {MiniNodeComponent as ɵl} from './presets/minimap/components/mini-node/mini-node.component';\nexport {MiniViewportComponent as ɵk} from './presets/minimap/components/mini-viewport/mini-viewport.component';\nexport {MinimapComponent as ɵj} from './presets/minimap/components/minimap/minimap.component';\nexport {PinComponent as ɵn} from './presets/reroute/components/pin/pin.component';\nexport {PinsComponent as ɵm} from './presets/reroute/components/pins/pins.component';\nexport {ImpureKeyvaluePipe as ɵf} from './shared/pipes/impure-keyvalue.pipe';"],"names":["setup"],"mappings":"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"}