Describe the bug
When using rete and rete-angular-plugin in an Angular zoneless mode, connecting nodes in the Rete.js editor triggers an Angular ExpressionChangedAfterItHasBeenCheckedError. This occurs because external events from Rete.js do not automatically trigger Angular’s change detection in zoneless mode, resulting in UI state being out of sync and leading to runtime errors.
Example to reproduce
No response
How to reproduce
Expected behavior
Connecting nodes in the editor should work smoothly without triggering any Angular change detection errors, even in zoneless.
The editor UI should remain fully responsive, and all changes to node connections should be properly reflected in the interface without runtime errors.
Dependencies
─ @angular/build@20.1.5 -> .\node_modules\.pnpm\@angular+build@20.1.5_@angu_86df975aff9b9f3ba8b478ae6b35413f\node_modules\@angular\build
├── @angular/cli@20.1.5 -> .\node_modules\.pnpm\@angular+cli@20.1.5_@types+node@24.2.0_chokidar@4.0.3\node_modules\@angular\cli
├── @angular/common@20.1.6 -> .\node_modules\.pnpm\@angular+common@20.1.6_@ang_1660a228da4df96be88b2fa385a5db20\node_modules\@angular\common
├── @angular/compiler-cli@20.1.6 -> .\node_modules\.pnpm\@angular+compiler-cli@20.1._2026c2b0c4ba0d92b0d1f20c5981cf5f\node_modules\@angular\compiler-cli
├── @angular/compiler@20.1.6 -> .\node_modules\.pnpm\@angular+compiler@20.1.6\node_modules\@angular\compiler
├── @angular/core@20.1.6 -> .\node_modules\.pnpm\@angular+core@20.1.6_@angul_3bf0992bb3b6a916346d7abb471ee6f3\node_modules\@angular\core
├── @angular/elements@20.1.6 -> .\node_modules\.pnpm\@angular+elements@20.1.6_@a_63eaa6c0d81a5d2fdf855f6abc1e719e\node_modules\@angular\elements
├── @angular/forms@20.1.6 -> .\node_modules\.pnpm\@angular+forms@20.1.6_@angu_30063531ef11f814b43393da562363fe\node_modules\@angular\forms
├── @angular/platform-browser@20.1.6 -> .\node_modules\.pnpm\@angular+platform-browser@2_92feec0be9726f4d6134aba313373687\node_modules\@angular\platform-browser
├── @angular/router@20.1.6 -> .\node_modules\.pnpm\@angular+router@20.1.6_@ang_b079eeefdf6f9c9463a7882f1a02abae\node_modules\@angular\router
├── @types/jasmine@5.1.8 -> .\node_modules\.pnpm\@types+jasmine@5.1.8\node_modules\@types\jasmine
├── jasmine-core@5.8.0 -> .\node_modules\.pnpm\jasmine-core@5.8.0\node_modules\jasmine-core
├── karma-chrome-launcher@3.2.0 -> .\node_modules\.pnpm\karma-chrome-launcher@3.2.0\node_modules\karma-chrome-launcher
├── karma-coverage@2.2.1 -> .\node_modules\.pnpm\karma-coverage@2.2.1\node_modules\karma-coverage
├── karma-jasmine-html-reporter@2.1.0 -> .\node_modules\.pnpm\karma-jasmine-html-reporter_1edb5370476ed6f718d8b5acd707c6f3\node_modules\karma-jasmine-html-reporter
├── karma-jasmine@5.1.0 -> .\node_modules\.pnpm\karma-jasmine@5.1.0_karma@6.4.4\node_modules\karma-jasmine
├── karma@6.4.4 -> .\node_modules\.pnpm\karma@6.4.4\node_modules\karma
├── rete-angular-plugin@2.4.0 -> .\node_modules\.pnpm\rete-angular-plugin@2.4.0_@_59fbf118f6dee13aadb1998e01ee60a2\node_modules\rete-angular-plugin
├── rete-area-plugin@2.1.3 -> .\node_modules\.pnpm\rete-area-plugin@2.1.3_rete@2.0.6\node_modules\rete-area-plugin
├── rete-connection-plugin@2.0.5 -> .\node_modules\.pnpm\rete-connection-plugin@2.0._ff6348bd2f71d5cb869759c2b62f4e04\node_modules\rete-connection-plugin
├── rete-render-utils@2.0.3 -> .\node_modules\.pnpm\rete-render-utils@2.0.3_ret_3856da2c2f461047aaf4e89468be059d\node_modules\rete-render-utils
├── rete@2.0.6 -> .\node_modules\.pnpm\rete@2.0.6\node_modules\rete
├── rxjs@7.8.2 -> .\node_modules\.pnpm\rxjs@7.8.2\node_modules\rxjs
├── tslib@2.8.1 -> .\node_modules\.pnpm\tslib@2.8.1\node_modules\tslib
└── typescript@5.8.3 -> .\node_modules\.pnpm\typescript@5.8.3\node_modules\typescript
Platform
No response
Relevant log output
Code of Conduct
Describe the bug
When using rete and rete-angular-plugin in an Angular zoneless mode, connecting nodes in the Rete.js editor triggers an Angular ExpressionChangedAfterItHasBeenCheckedError. This occurs because external events from Rete.js do not automatically trigger Angular’s change detection in zoneless mode, resulting in UI state being out of sync and leading to runtime errors.
Example to reproduce
No response
How to reproduce
Expected behavior
Connecting nodes in the editor should work smoothly without triggering any Angular change detection errors, even in zoneless.
The editor UI should remain fully responsive, and all changes to node connections should be properly reflected in the interface without runtime errors.
Dependencies
Platform
No response
Relevant log output
Code of Conduct