ngx-vflow 0.11.0 → 0.13.0-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 (44) hide show
  1. package/esm2022/lib/vflow/components/custom-node-base/custom-node-base.component.mjs +7 -3
  2. package/esm2022/lib/vflow/components/node/node.component.mjs +16 -13
  3. package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +5 -2
  4. package/esm2022/lib/vflow/directives/changes-controller.directive.mjs +14 -2
  5. package/esm2022/lib/vflow/directives/flow-size-controller.directive.mjs +18 -17
  6. package/esm2022/lib/vflow/directives/root-pointer.directive.mjs +21 -4
  7. package/esm2022/lib/vflow/interfaces/component-node-event.interface.mjs +1 -1
  8. package/esm2022/lib/vflow/interfaces/node.interface.mjs +3 -3
  9. package/esm2022/lib/vflow/models/node.model.mjs +46 -7
  10. package/esm2022/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.mjs +19 -0
  11. package/esm2022/lib/vflow/public-components/custom-node/custom-node.component.mjs +19 -0
  12. package/esm2022/lib/vflow/public-components/resizable/resizable.component.mjs +265 -0
  13. package/esm2022/lib/vflow/services/component-event-bus.service.mjs +1 -1
  14. package/esm2022/lib/vflow/services/draggable.service.mjs +2 -2
  15. package/esm2022/lib/vflow/services/node-accessor.service.mjs +16 -0
  16. package/esm2022/lib/vflow/services/node-changes.service.mjs +6 -2
  17. package/esm2022/lib/vflow/types/node-change.type.mjs +1 -1
  18. package/esm2022/lib/vflow/utils/resizable.mjs +3 -3
  19. package/esm2022/lib/vflow/vflow.module.mjs +9 -4
  20. package/esm2022/public-api.mjs +4 -3
  21. package/fesm2022/ngx-vflow.mjs +430 -77
  22. package/fesm2022/ngx-vflow.mjs.map +1 -1
  23. package/lib/vflow/components/node/node.component.d.ts +2 -0
  24. package/lib/vflow/components/vflow/vflow.component.d.ts +1 -1
  25. package/lib/vflow/directives/changes-controller.directive.d.ts +5 -2
  26. package/lib/vflow/directives/flow-size-controller.directive.d.ts +3 -2
  27. package/lib/vflow/directives/root-pointer.directive.d.ts +24 -6
  28. package/lib/vflow/directives/space-point-context.directive.d.ts +5 -0
  29. package/lib/vflow/interfaces/component-node-event.interface.d.ts +2 -2
  30. package/lib/vflow/interfaces/node.interface.d.ts +12 -2
  31. package/lib/vflow/models/edge.model.d.ts +1 -17
  32. package/lib/vflow/models/node.model.d.ts +13 -2
  33. package/lib/vflow/public-components/{custom-dynamic-node.component.d.ts → custom-dynamic-node/custom-dynamic-node.component.d.ts} +2 -2
  34. package/lib/vflow/public-components/{custom-node.component.d.ts → custom-node/custom-node.component.d.ts} +2 -2
  35. package/lib/vflow/public-components/resizable/resizable.component.d.ts +39 -0
  36. package/lib/vflow/services/node-accessor.service.d.ts +10 -0
  37. package/lib/vflow/services/node-changes.service.d.ts +8 -0
  38. package/lib/vflow/types/node-change.type.d.ts +8 -1
  39. package/lib/vflow/utils/resizable.d.ts +2 -1
  40. package/lib/vflow/vflow.module.d.ts +13 -12
  41. package/package.json +1 -1
  42. package/public-api.d.ts +3 -2
  43. package/esm2022/lib/vflow/public-components/custom-dynamic-node.component.mjs +0 -19
  44. package/esm2022/lib/vflow/public-components/custom-node.component.mjs +0 -19
@@ -1,4 +1,4 @@
1
- import { Directive, ElementRef, HostBinding, effect, inject } from '@angular/core';
1
+ import { Directive, ElementRef, NgZone, computed, inject } from '@angular/core';
2
2
  import { resizable } from '../utils/resizable';
3
3
  import { tap } from 'rxjs';
4
4
  import { FlowSettingsService } from '../services/flow-settings.service';
@@ -8,29 +8,30 @@ export class FlowSizeControllerDirective {
8
8
  constructor() {
9
9
  this.host = inject(ElementRef);
10
10
  this.flowSettingsService = inject(FlowSettingsService);
11
- this.flowWidth = 0;
12
- this.flowHeight = 0;
13
- effect(() => {
11
+ this.flowWidth = computed(() => {
14
12
  const view = this.flowSettingsService.view();
15
- this.flowWidth = view === 'auto' ? '100%' : view[0];
16
- this.flowHeight = view === 'auto' ? '100%' : view[1];
13
+ return view === 'auto' ? '100%' : view[0];
17
14
  });
18
- resizable([this.host.nativeElement]).pipe(tap(([entry]) => {
15
+ this.flowHeight = computed(() => {
16
+ const view = this.flowSettingsService.view();
17
+ return view === 'auto' ? '100%' : view[1];
18
+ });
19
+ resizable([this.host.nativeElement], inject(NgZone)).pipe(tap(([entry]) => {
19
20
  this.flowSettingsService.computedFlowWidth.set(entry.contentRect.width);
20
21
  this.flowSettingsService.computedFlowHeight.set(entry.contentRect.height);
21
22
  }), takeUntilDestroyed()).subscribe();
22
23
  }
23
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowSizeControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
24
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FlowSizeControllerDirective, selector: "svg[flowSizeController]", host: { properties: { "attr.width": "this.flowWidth", "attr.height": "this.flowHeight" } }, ngImport: i0 }); }
25
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FlowSizeControllerDirective, selector: "svg[flowSizeController]", host: { properties: { "attr.width": "flowWidth()", "attr.height": "flowHeight()" } }, ngImport: i0 }); }
25
26
  }
26
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowSizeControllerDirective, decorators: [{
27
28
  type: Directive,
28
- args: [{ selector: 'svg[flowSizeController]' }]
29
- }], ctorParameters: function () { return []; }, propDecorators: { flowWidth: [{
30
- type: HostBinding,
31
- args: ['attr.width']
32
- }], flowHeight: [{
33
- type: HostBinding,
34
- args: ['attr.height']
35
- }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zaXplLWNvbnRyb2xsZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2RpcmVjdGl2ZXMvZmxvdy1zaXplLWNvbnRyb2xsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUdoRSxNQUFNLE9BQU8sMkJBQTJCO0lBVXRDO1FBVFEsU0FBSSxHQUFHLE1BQU0sQ0FBNEIsVUFBVSxDQUFDLENBQUE7UUFDcEQsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFHbEQsY0FBUyxHQUFvQixDQUFDLENBQUE7UUFHOUIsZUFBVSxHQUFvQixDQUFDLENBQUE7UUFHcEMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUU1QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ25ELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdEQsQ0FBQyxDQUFDLENBQUE7UUFFRixTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN2QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDdkUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzNFLENBQUMsQ0FBQyxFQUNGLGtCQUFrQixFQUFFLENBQ3JCLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDZixDQUFDOytHQXpCVSwyQkFBMkI7bUdBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFEdkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRTswRUFNekMsU0FBUztzQkFEZixXQUFXO3VCQUFDLFlBQVk7Z0JBSWxCLFVBQVU7c0JBRGhCLFdBQVc7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIGVmZmVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByZXNpemFibGUgfSBmcm9tICcuLi91dGlscy9yZXNpemFibGUnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnc3ZnW2Zsb3dTaXplQ29udHJvbGxlcl0nIH0pXG5leHBvcnQgY2xhc3MgRmxvd1NpemVDb250cm9sbGVyRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBob3N0ID0gaW5qZWN0PEVsZW1lbnRSZWY8U1ZHU1ZHRWxlbWVudD4+KEVsZW1lbnRSZWYpXG4gIHByaXZhdGUgZmxvd1NldHRpbmdzU2VydmljZSA9IGluamVjdChGbG93U2V0dGluZ3NTZXJ2aWNlKVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci53aWR0aCcpXG4gIHB1YmxpYyBmbG93V2lkdGg6IHN0cmluZyB8IG51bWJlciA9IDBcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaGVpZ2h0JylcbiAgcHVibGljIGZsb3dIZWlnaHQ6IHN0cmluZyB8IG51bWJlciA9IDBcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdmlldyA9IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS52aWV3KClcblxuICAgICAgdGhpcy5mbG93V2lkdGggPSB2aWV3ID09PSAnYXV0bycgPyAnMTAwJScgOiB2aWV3WzBdXG4gICAgICB0aGlzLmZsb3dIZWlnaHQgPSB2aWV3ID09PSAnYXV0bycgPyAnMTAwJScgOiB2aWV3WzFdXG4gICAgfSlcblxuICAgIHJlc2l6YWJsZShbdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnRdKS5waXBlKFxuICAgICAgdGFwKChbZW50cnldKSA9PiB7XG4gICAgICAgIHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5jb21wdXRlZEZsb3dXaWR0aC5zZXQoZW50cnkuY29udGVudFJlY3Qud2lkdGgpXG4gICAgICAgIHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5jb21wdXRlZEZsb3dIZWlnaHQuc2V0KGVudHJ5LmNvbnRlbnRSZWN0LmhlaWdodClcbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICApLnN1YnNjcmliZSgpXG4gIH1cbn1cbiJdfQ==
29
+ args: [{
30
+ selector: 'svg[flowSizeController]',
31
+ host: {
32
+ '[attr.width]': 'flowWidth()',
33
+ '[attr.height]': 'flowHeight()'
34
+ }
35
+ }]
36
+ }], ctorParameters: function () { return []; } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zaXplLWNvbnRyb2xsZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2RpcmVjdGl2ZXMvZmxvdy1zaXplLWNvbnRyb2xsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBMEIsUUFBUSxFQUFVLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFTaEUsTUFBTSxPQUFPLDJCQUEyQjtJQWdCdEM7UUFmUSxTQUFJLEdBQUcsTUFBTSxDQUE0QixVQUFVLENBQUMsQ0FBQTtRQUNwRCx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUVsRCxjQUFTLEdBQTRCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFBO1lBRTVDLE9BQU8sSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDM0MsQ0FBQyxDQUFDLENBQUE7UUFFSyxlQUFVLEdBQTRCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFBO1lBRTVDLE9BQU8sSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDM0MsQ0FBQyxDQUFDLENBQUE7UUFHQSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDdkQsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3ZFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMzRSxDQUFDLENBQUMsRUFDRixrQkFBa0IsRUFBRSxDQUNyQixDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ2YsQ0FBQzsrR0F4QlUsMkJBQTJCO21HQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBUHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsSUFBSSxFQUFFO3dCQUNKLGNBQWMsRUFBRSxhQUFhO3dCQUM3QixlQUFlLEVBQUUsY0FBYztxQkFDaEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE5nWm9uZSwgU2lnbmFsLCBXcml0YWJsZVNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJlc2l6YWJsZSB9IGZyb20gJy4uL3V0aWxzL3Jlc2l6YWJsZSc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mbG93LXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzdmdbZmxvd1NpemVDb250cm9sbGVyXScsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIud2lkdGhdJzogJ2Zsb3dXaWR0aCgpJyxcbiAgICAnW2F0dHIuaGVpZ2h0XSc6ICdmbG93SGVpZ2h0KCknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRmxvd1NpemVDb250cm9sbGVyRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBob3N0ID0gaW5qZWN0PEVsZW1lbnRSZWY8U1ZHU1ZHRWxlbWVudD4+KEVsZW1lbnRSZWYpXG4gIHByaXZhdGUgZmxvd1NldHRpbmdzU2VydmljZSA9IGluamVjdChGbG93U2V0dGluZ3NTZXJ2aWNlKVxuXG4gIHB1YmxpYyBmbG93V2lkdGg6IFNpZ25hbDxzdHJpbmcgfCBudW1iZXI+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UudmlldygpXG5cbiAgICByZXR1cm4gdmlldyA9PT0gJ2F1dG8nID8gJzEwMCUnIDogdmlld1swXVxuICB9KVxuXG4gIHB1YmxpYyBmbG93SGVpZ2h0OiBTaWduYWw8c3RyaW5nIHwgbnVtYmVyPiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB2aWV3ID0gdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLnZpZXcoKVxuXG4gICAgcmV0dXJuIHZpZXcgPT09ICdhdXRvJyA/ICcxMDAlJyA6IHZpZXdbMV1cbiAgfSlcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICByZXNpemFibGUoW3RoaXMuaG9zdC5uYXRpdmVFbGVtZW50XSwgaW5qZWN0KE5nWm9uZSkpLnBpcGUoXG4gICAgICB0YXAoKFtlbnRyeV0pID0+IHtcbiAgICAgICAgdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd1dpZHRoLnNldChlbnRyeS5jb250ZW50UmVjdC53aWR0aClcbiAgICAgICAgdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd0hlaWdodC5zZXQoZW50cnkuY29udGVudFJlY3QuaGVpZ2h0KVxuICAgICAgfSksXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICkuc3Vic2NyaWJlKClcbiAgfVxufVxuIl19
@@ -5,25 +5,42 @@ export class RootPointerDirective {
5
5
  constructor() {
6
6
  this.host = inject(ElementRef).nativeElement;
7
7
  this.initialTouch$ = new Subject();
8
+ this.prevTouchEvent = null;
8
9
  // TODO: do not emit if mouse not down
9
10
  this.mouseMovement$ = fromEvent(this.host, 'mousemove').pipe(map(event => ({
10
11
  x: event.clientX,
11
12
  y: event.clientY,
13
+ movementX: event.movementX,
14
+ movementY: event.movementY,
15
+ target: event.target,
12
16
  originalEvent: event
13
17
  })), observeOn(animationFrameScheduler), share());
14
18
  this.touchMovement$ = merge(this.initialTouch$, fromEvent(this.host, 'touchmove')).pipe(tap((event) => event.preventDefault()), map((originalEvent) => {
15
19
  const x = originalEvent.touches[0]?.clientX ?? 0;
16
20
  const y = originalEvent.touches[0]?.clientY ?? 0;
21
+ const movementX = this.prevTouchEvent
22
+ ? originalEvent.touches[0].pageX - this.prevTouchEvent.touches[0].pageX
23
+ : 0;
24
+ const movementY = this.prevTouchEvent
25
+ ? originalEvent.touches[0].pageY - this.prevTouchEvent.touches[0].pageY
26
+ : 0;
17
27
  const target = document.elementFromPoint(x, y);
18
- return { x, y, target, originalEvent };
19
- }), observeOn(animationFrameScheduler), share());
28
+ return { x, y, movementX, movementY, target, originalEvent };
29
+ }), tap((event) => this.prevTouchEvent = event.originalEvent), observeOn(animationFrameScheduler), share());
30
+ this.pointerMovement$ = merge(this.mouseMovement$, this.touchMovement$);
20
31
  this.touchEnd$ = fromEvent(this.host, 'touchend').pipe(map((originalEvent) => {
21
32
  const x = originalEvent.changedTouches[0]?.clientX ?? 0;
22
33
  const y = originalEvent.changedTouches[0]?.clientY ?? 0;
23
34
  const target = document.elementFromPoint(x, y);
24
35
  return { x, y, target, originalEvent };
36
+ }), tap(() => this.prevTouchEvent = null), share());
37
+ this.mouseUp$ = fromEvent(this.host, 'mouseup').pipe(map((originalEvent) => {
38
+ const x = originalEvent.clientX;
39
+ const y = originalEvent.clientY;
40
+ const target = originalEvent.target;
41
+ return { x, y, target, originalEvent };
25
42
  }), share());
26
- this.pointerMovement$ = merge(this.mouseMovement$, this.touchMovement$);
43
+ this.documentPointerEnd$ = merge(fromEvent(document, 'mouseup'), fromEvent(document, 'touchend')).pipe(share());
27
44
  }
28
45
  /**
29
46
  * We should know when user started a touch in order to not
@@ -39,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
39
56
  type: Directive,
40
57
  args: [{ selector: 'svg[rootPointer]' }]
41
58
  }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wb2ludGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9kaXJlY3RpdmVzL3Jvb3QtcG9pbnRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBYyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBUSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSXhILE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFFVSxTQUFJLEdBQUcsTUFBTSxDQUE0QixVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUE7UUFFbEUsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFBO1FBRWpELHNDQUFzQztRQUMvQixtQkFBYyxHQUFHLFNBQVMsQ0FBYSxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDeEUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNaLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTztZQUNoQixDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDaEIsYUFBYSxFQUFFLEtBQUs7U0FDckIsQ0FBQyxDQUFDLEVBQ0gsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEVBQ2xDLEtBQUssRUFBRSxDQUNvQixDQUFDO1FBRXZCLG1CQUFjLEdBQUcsS0FBSyxDQUMzQixJQUFJLENBQUMsYUFBYSxFQUNsQixTQUFTLENBQWEsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FDOUMsQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsRUFDdEMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFBO1lBQ2hELE1BQU0sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQTtZQUNoRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBRTlDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQTtRQUN4QyxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsdUJBQXVCLENBQUMsRUFDbEMsS0FBSyxFQUFFLENBQ29CLENBQUM7UUFFdkIsY0FBUyxHQUFHLFNBQVMsQ0FBYSxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDbEUsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFBO1lBQ3ZELE1BQU0sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQTtZQUN2RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBRTlDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQTtRQUN4QyxDQUFDLENBQUMsRUFDRixLQUFLLEVBQUUsQ0FDb0IsQ0FBQTtRQUV0QixxQkFBZ0IsR0FBRyxLQUFLLENBQzdCLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxjQUFjLENBQ3BCLENBQUE7S0FRRjtJQVBDOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxLQUFpQjtRQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoQyxDQUFDOytHQXJEVSxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFEaEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBhbmltYXRpb25GcmFtZVNjaGVkdWxlciwgZnJvbUV2ZW50LCBtYXAsIG1lcmdlLCBvYnNlcnZlT24sIHNoYXJlLCBza2lwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludC5pbnRlcmZhY2UnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdzdmdbcm9vdFBvaW50ZXJdJyB9KVxuZXhwb3J0IGNsYXNzIFJvb3RQb2ludGVyRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBob3N0ID0gaW5qZWN0PEVsZW1lbnRSZWY8U1ZHU1ZHRWxlbWVudD4+KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnRcblxuICBwcml2YXRlIGluaXRpYWxUb3VjaCQgPSBuZXcgU3ViamVjdDxUb3VjaEV2ZW50PigpXG5cbiAgLy8gVE9ETzogZG8gbm90IGVtaXQgaWYgbW91c2Ugbm90IGRvd25cbiAgcHVibGljIG1vdXNlTW92ZW1lbnQkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdCwgJ21vdXNlbW92ZScpLnBpcGUoXG4gICAgbWFwKGV2ZW50ID0+ICh7XG4gICAgICB4OiBldmVudC5jbGllbnRYLFxuICAgICAgeTogZXZlbnQuY2xpZW50WSxcbiAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50XG4gICAgfSkpLFxuICAgIG9ic2VydmVPbihhbmltYXRpb25GcmFtZVNjaGVkdWxlciksXG4gICAgc2hhcmUoKVxuICApIHNhdGlzZmllcyBPYnNlcnZhYmxlPFBvaW50PjtcblxuICBwdWJsaWMgdG91Y2hNb3ZlbWVudCQgPSBtZXJnZShcbiAgICB0aGlzLmluaXRpYWxUb3VjaCQsXG4gICAgZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KHRoaXMuaG9zdCwgJ3RvdWNobW92ZScpXG4gICkucGlwZShcbiAgICB0YXAoKGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpKSxcbiAgICBtYXAoKG9yaWdpbmFsRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHggPSBvcmlnaW5hbEV2ZW50LnRvdWNoZXNbMF0/LmNsaWVudFggPz8gMFxuICAgICAgY29uc3QgeSA9IG9yaWdpbmFsRXZlbnQudG91Y2hlc1swXT8uY2xpZW50WSA/PyAwXG4gICAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHgsIHkpXG5cbiAgICAgIHJldHVybiB7IHgsIHksIHRhcmdldCwgb3JpZ2luYWxFdmVudCB9XG4gICAgfSksXG4gICAgb2JzZXJ2ZU9uKGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSxcbiAgICBzaGFyZSgpXG4gICkgc2F0aXNmaWVzIE9ic2VydmFibGU8UG9pbnQ+O1xuXG4gIHB1YmxpYyB0b3VjaEVuZCQgPSBmcm9tRXZlbnQ8VG91Y2hFdmVudD4odGhpcy5ob3N0LCAndG91Y2hlbmQnKS5waXBlKFxuICAgIG1hcCgob3JpZ2luYWxFdmVudCkgPT4ge1xuICAgICAgY29uc3QgeCA9IG9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0/LmNsaWVudFggPz8gMFxuICAgICAgY29uc3QgeSA9IG9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0/LmNsaWVudFkgPz8gMFxuICAgICAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCB5KVxuXG4gICAgICByZXR1cm4geyB4LCB5LCB0YXJnZXQsIG9yaWdpbmFsRXZlbnQgfVxuICAgIH0pLFxuICAgIHNoYXJlKClcbiAgKSBzYXRpc2ZpZXMgT2JzZXJ2YWJsZTxQb2ludD5cblxuICBwdWJsaWMgcG9pbnRlck1vdmVtZW50JCA9IG1lcmdlKFxuICAgIHRoaXMubW91c2VNb3ZlbWVudCQsXG4gICAgdGhpcy50b3VjaE1vdmVtZW50JFxuICApXG4gIC8qKlxuICAgKiBXZSBzaG91bGQga25vdyB3aGVuIHVzZXIgc3RhcnRlZCBhIHRvdWNoIGluIG9yZGVyIHRvIG5vdFxuICAgKiBzaG93IG9sZCB0b3VjaCBwb3NpdGlvbiB3aGVuIGNvbm5lY3Rpb24gY3JlYXRpb24gaXMgc3RhcnRlZFxuICAgKi9cbiAgcHVibGljIHNldEluaXRpYWxUb3VjaChldmVudDogVG91Y2hFdmVudCkge1xuICAgIHRoaXMuaW5pdGlhbFRvdWNoJC5uZXh0KGV2ZW50KVxuICB9XG59XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wb2ludGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9kaXJlY3RpdmVzL3Jvb3QtcG9pbnRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBYyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBUSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSXhILE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFFVSxTQUFJLEdBQUcsTUFBTSxDQUE0QixVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUE7UUFFbEUsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFBO1FBRXpDLG1CQUFjLEdBQXNCLElBQUksQ0FBQTtRQUVoRCxzQ0FBc0M7UUFDL0IsbUJBQWMsR0FBRyxTQUFTLENBQWEsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ3hFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDWixDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDaEIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ2hCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLGFBQWEsRUFBRSxLQUFLO1NBQ3JCLENBQUMsQ0FBQyxFQUNILFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUNsQyxLQUFLLEVBQUUsQ0FDb0IsQ0FBQztRQUV2QixtQkFBYyxHQUFHLEtBQUss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LEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFBO1FBQ3hDLENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxDQUNvQixDQUFBO1FBRXRCLHdCQUFtQixHQUFHLEtBQUssQ0FDaEMsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFDOUIsU0FBUyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FDaEMsQ0FBQyxJQUFJLENBQ0osS0FBSyxFQUFFLENBQ1IsQ0FBQTtLQVVGO0lBUEM7OztPQUdHO0lBQ0ksZUFBZSxDQUFDLEtBQWlCO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hDLENBQUM7K0dBdkZVLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCBmcm9tRXZlbnQsIG1hcCwgbWVyZ2UsIG9ic2VydmVPbiwgc2hhcmUsIHNraXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50LmludGVyZmFjZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ3N2Z1tyb290UG9pbnRlcl0nIH0pXG5leHBvcnQgY2xhc3MgUm9vdFBvaW50ZXJEaXJlY3RpdmUge1xuICBwcml2YXRlIGhvc3QgPSBpbmplY3Q8RWxlbWVudFJlZjxTVkdTVkdFbGVtZW50Pj4oRWxlbWVudFJlZikubmF0aXZlRWxlbWVudFxuXG4gIHByaXZhdGUgaW5pdGlhbFRvdWNoJCA9IG5ldyBTdWJqZWN0PFRvdWNoRXZlbnQ+KClcblxuICBwcml2YXRlIHByZXZUb3VjaEV2ZW50OiBUb3VjaEV2ZW50IHwgbnVsbCA9IG51bGxcblxuICAvLyBUT0RPOiBkbyBub3QgZW1pdCBpZiBtb3VzZSBub3QgZG93blxuICBwdWJsaWMgbW91c2VNb3ZlbWVudCQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5ob3N0LCAnbW91c2Vtb3ZlJykucGlwZShcbiAgICBtYXAoZXZlbnQgPT4gKHtcbiAgICAgIHg6IGV2ZW50LmNsaWVudFgsXG4gICAgICB5OiBldmVudC5jbGllbnRZLFxuICAgICAgbW92ZW1lbnRYOiBldmVudC5tb3ZlbWVudFgsXG4gICAgICBtb3ZlbWVudFk6IGV2ZW50Lm1vdmVtZW50WSxcbiAgICAgIHRhcmdldDogZXZlbnQudGFyZ2V0LFxuICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnRcbiAgICB9KSksXG4gICAgb2JzZXJ2ZU9uKGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSxcbiAgICBzaGFyZSgpXG4gICkgc2F0aXNmaWVzIE9ic2VydmFibGU8UG9pbnQ+O1xuXG4gIHB1YmxpYyB0b3VjaE1vdmVtZW50JCA9IG1lcmdlKFxuICAgIHRoaXMuaW5pdGlhbFRvdWNoJCxcbiAgICBmcm9tRXZlbnQ8VG91Y2hFdmVudD4odGhpcy5ob3N0LCAndG91Y2htb3ZlJylcbiAgKS5waXBlKFxuICAgIHRhcCgoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpLFxuICAgIG1hcCgob3JpZ2luYWxFdmVudCkgPT4ge1xuICAgICAgY29uc3QgeCA9IG9yaWdpbmFsRXZlbnQudG91Y2hlc1swXT8uY2xpZW50WCA/PyAwXG4gICAgICBjb25zdCB5ID0gb3JpZ2luYWxFdmVudC50b3VjaGVzWzBdPy5jbGllbnRZID8/IDBcbiAgICAgIGNvbnN0IG1vdmVtZW50WCA9IHRoaXMucHJldlRvdWNoRXZlbnRcbiAgICAgICAgPyBvcmlnaW5hbEV2ZW50LnRvdWNoZXNbMF0ucGFnZVggLSB0aGlzLnByZXZUb3VjaEV2ZW50LnRvdWNoZXNbMF0ucGFnZVhcbiAgICAgICAgOiAwXG4gICAgICBjb25zdCBtb3ZlbWVudFkgPSB0aGlzLnByZXZUb3VjaEV2ZW50XG4gICAgICAgID8gb3JpZ2luYWxFdmVudC50b3VjaGVzWzBdLnBhZ2VZIC0gdGhpcy5wcmV2VG91Y2hFdmVudC50b3VjaGVzWzBdLnBhZ2VZXG4gICAgICAgIDogMFxuXG4gICAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHgsIHkpXG5cbiAgICAgIHJldHVybiB7IHgsIHksIG1vdmVtZW50WCwgbW92ZW1lbnRZLCB0YXJnZXQsIG9yaWdpbmFsRXZlbnQgfVxuICAgIH0pLFxuICAgIHRhcCgoZXZlbnQpID0+IHRoaXMucHJldlRvdWNoRXZlbnQgPSBldmVudC5vcmlnaW5hbEV2ZW50KSxcbiAgICBvYnNlcnZlT24oYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpLFxuICAgIHNoYXJlKClcbiAgKSBzYXRpc2ZpZXMgT2JzZXJ2YWJsZTxQb2ludD47XG5cbiAgcHVibGljIHBvaW50ZXJNb3ZlbWVudCQgPSBtZXJnZShcbiAgICB0aGlzLm1vdXNlTW92ZW1lbnQkLFxuICAgIHRoaXMudG91Y2hNb3ZlbWVudCRcbiAgKVxuXG4gIHB1YmxpYyB0b3VjaEVuZCQgPSBmcm9tRXZlbnQ8VG91Y2hFdmVudD4odGhpcy5ob3N0LCAndG91Y2hlbmQnKS5waXBlKFxuICAgIG1hcCgob3JpZ2luYWxFdmVudCkgPT4ge1xuICAgICAgY29uc3QgeCA9IG9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0/LmNsaWVudFggPz8gMFxuICAgICAgY29uc3QgeSA9IG9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0/LmNsaWVudFkgPz8gMFxuICAgICAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCB5KVxuXG4gICAgICByZXR1cm4geyB4LCB5LCB0YXJnZXQsIG9yaWdpbmFsRXZlbnQgfVxuICAgIH0pLFxuICAgIHRhcCgoKSA9PiB0aGlzLnByZXZUb3VjaEV2ZW50ID0gbnVsbCksXG4gICAgc2hhcmUoKVxuICApIHNhdGlzZmllcyBPYnNlcnZhYmxlPFBvaW50PlxuXG4gIHB1YmxpYyBtb3VzZVVwJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmhvc3QsICdtb3VzZXVwJykucGlwZShcbiAgICBtYXAoKG9yaWdpbmFsRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHggPSBvcmlnaW5hbEV2ZW50LmNsaWVudFhcbiAgICAgIGNvbnN0IHkgPSBvcmlnaW5hbEV2ZW50LmNsaWVudFlcbiAgICAgIGNvbnN0IHRhcmdldCA9IG9yaWdpbmFsRXZlbnQudGFyZ2V0XG5cbiAgICAgIHJldHVybiB7IHgsIHksIHRhcmdldCwgb3JpZ2luYWxFdmVudCB9XG4gICAgfSksXG4gICAgc2hhcmUoKVxuICApIHNhdGlzZmllcyBPYnNlcnZhYmxlPFBvaW50PlxuXG4gIHB1YmxpYyBkb2N1bWVudFBvaW50ZXJFbmQkID0gbWVyZ2UoXG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnbW91c2V1cCcpLFxuICAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNoZW5kJylcbiAgKS5waXBlKFxuICAgIHNoYXJlKClcbiAgKVxuXG5cbiAgLyoqXG4gICAqIFdlIHNob3VsZCBrbm93IHdoZW4gdXNlciBzdGFydGVkIGEgdG91Y2ggaW4gb3JkZXIgdG8gbm90XG4gICAqIHNob3cgb2xkIHRvdWNoIHBvc2l0aW9uIHdoZW4gY29ubmVjdGlvbiBjcmVhdGlvbiBpcyBzdGFydGVkXG4gICAqL1xuICBwdWJsaWMgc2V0SW5pdGlhbFRvdWNoKGV2ZW50OiBUb3VjaEV2ZW50KSB7XG4gICAgdGhpcy5pbml0aWFsVG91Y2gkLm5leHQoZXZlbnQpXG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW5vZGUtZXZlbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2ludGVyZmFjZXMvY29tcG9uZW50LW5vZGUtZXZlbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ3VzdG9tTm9kZUNvbXBvbmVudCB9IGZyb20gXCIuLi9wdWJsaWMtY29tcG9uZW50cy9jdXN0b20tbm9kZS5jb21wb25lbnRcIjtcbmltcG9ydCB7IEN1c3RvbUR5bmFtaWNOb2RlQ29tcG9uZW50IH0gZnJvbSBcIi4uL3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1keW5hbWljLW5vZGUuY29tcG9uZW50XCI7XG5cbnR5cGUgRXZlbnRJbmZvPFQ+ID0gVCBleHRlbmRzIEV2ZW50RW1pdHRlcjxpbmZlciBVPiA/IFUgOiBuZXZlcjtcblxudHlwZSBFdmVudEtleXM8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgRXZlbnRFbWl0dGVyPGFueT4gPyBLIDogbmV2ZXJcbn1ba2V5b2YgVF07XG5cbnR5cGUgRXZlbnRTaGFwZTxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSB7XG4gIFtQIGluIEtdOiB7IGV2ZW50TmFtZTogUCwgZXZlbnRQYXlsb2FkOiBFdmVudEluZm88VFtQXT4gfVxufVtLXTtcblxudHlwZSBFdmVudHNGcm9tQ29tcG9uZW50PFQ+ID0gRXZlbnRTaGFwZTxULCBFdmVudEtleXM8VD4+O1xuXG4vKipcbiAqIEV2ZW50IG9mIGN1c3RvbSBjb21wb25lbnQgbm9kZVxuICpcbiAqIEdlbmVyaWMgYWNjZXB0cyBhcnJheSBvZiBjdXN0b20gY29tcG9uZW50cyBhbmQgbWVyZ2UgdGhlaXIgZXZlbnQgZW1pdHRlcnMgZm9yIHR5cGUtc2FmZVxuICogZXZlbnQgaGFuZGxpbmdcbiAqXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCB0eXBlIENvbXBvbmVudE5vZGVFdmVudDxUIGV4dGVuZHMgKEN1c3RvbU5vZGVDb21wb25lbnQgfCBDdXN0b21EeW5hbWljTm9kZUNvbXBvbmVudClbXT4gPSB7IG5vZGVJZDogc3RyaW5nIH0gJiB7XG4gIFtJIGluIGtleW9mIFRdOiBFdmVudHNGcm9tQ29tcG9uZW50PFRbSV0+XG59W251bWJlcl07XG5cbmV4cG9ydCB0eXBlIEFueUNvbXBvbmVudE5vZGVFdmVudCA9IHtcbiAgbm9kZUlkOiBzdHJpbmdcbiAgZXZlbnROYW1lOiBzdHJpbmdcbiAgZXZlbnRQYXlsb2FkOiB1bmtub3duXG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW5vZGUtZXZlbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2ludGVyZmFjZXMvY29tcG9uZW50LW5vZGUtZXZlbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ3VzdG9tTm9kZUNvbXBvbmVudCB9IGZyb20gXCIuLi9wdWJsaWMtY29tcG9uZW50cy9jdXN0b20tbm9kZS9jdXN0b20tbm9kZS5jb21wb25lbnRcIjtcbmltcG9ydCB7IEN1c3RvbUR5bmFtaWNOb2RlQ29tcG9uZW50IH0gZnJvbSBcIi4uL3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1keW5hbWljLW5vZGUvY3VzdG9tLWR5bmFtaWMtbm9kZS5jb21wb25lbnRcIjtcblxudHlwZSBFdmVudEluZm88VD4gPSBUIGV4dGVuZHMgRXZlbnRFbWl0dGVyPGluZmVyIFU+ID8gVSA6IG5ldmVyO1xuXG50eXBlIEV2ZW50S2V5czxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBFdmVudEVtaXR0ZXI8YW55PiA/IEsgOiBuZXZlclxufVtrZXlvZiBUXTtcblxudHlwZSBFdmVudFNoYXBlPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IHtcbiAgW1AgaW4gS106IHsgZXZlbnROYW1lOiBQLCBldmVudFBheWxvYWQ6IEV2ZW50SW5mbzxUW1BdPiB9XG59W0tdO1xuXG50eXBlIEV2ZW50c0Zyb21Db21wb25lbnQ8VD4gPSBFdmVudFNoYXBlPFQsIEV2ZW50S2V5czxUPj47XG5cbi8qKlxuICogRXZlbnQgb2YgY3VzdG9tIGNvbXBvbmVudCBub2RlXG4gKlxuICogR2VuZXJpYyBhY2NlcHRzIGFycmF5IG9mIGN1c3RvbSBjb21wb25lbnRzIGFuZCBtZXJnZSB0aGVpciBldmVudCBlbWl0dGVycyBmb3IgdHlwZS1zYWZlXG4gKiBldmVudCBoYW5kbGluZ1xuICpcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50Tm9kZUV2ZW50PFQgZXh0ZW5kcyAoQ3VzdG9tTm9kZUNvbXBvbmVudCB8IEN1c3RvbUR5bmFtaWNOb2RlQ29tcG9uZW50KVtdPiA9IHsgbm9kZUlkOiBzdHJpbmcgfSAmIHtcbiAgW0kgaW4ga2V5b2YgVF06IEV2ZW50c0Zyb21Db21wb25lbnQ8VFtJXT5cbn1bbnVtYmVyXTtcblxuZXhwb3J0IHR5cGUgQW55Q29tcG9uZW50Tm9kZUV2ZW50ID0ge1xuICBub2RlSWQ6IHN0cmluZ1xuICBldmVudE5hbWU6IHN0cmluZ1xuICBldmVudFBheWxvYWQ6IHVua25vd25cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { CustomNodeComponent } from "../public-components/custom-node.component";
2
- import { CustomDynamicNodeComponent } from "../public-components/custom-dynamic-node.component";
1
+ import { CustomNodeComponent } from "../public-components/custom-node/custom-node.component";
2
+ import { CustomDynamicNodeComponent } from "../public-components/custom-dynamic-node/custom-dynamic-node.component";
3
3
  export function isStaticNode(node) {
4
4
  return typeof node.point !== 'function';
5
5
  }
@@ -36,4 +36,4 @@ export function isTemplateStaticGroupNode(node) {
36
36
  export function isTemplateDynamicGroupNode(node) {
37
37
  return node.type === 'template-group';
38
38
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvaW50ZXJmYWNlcy9ub2RlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUNoRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQTtBQTRGL0YsTUFBTSxVQUFVLFlBQVksQ0FBSSxJQUF3QjtJQUN0RCxPQUFPLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUE7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUksSUFBd0I7SUFDdkQsT0FBTyxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFBO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUksSUFBVTtJQUNqRCxPQUFPLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBSSxJQUFpQjtJQUN6RCxPQUFPLDBCQUEwQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDNUQsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBSSxJQUFVO0lBQ2hELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUE7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBSSxJQUFpQjtJQUN4RCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFBO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBVTtJQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFBO0FBQ2hDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBaUI7SUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQTtBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLElBQVU7SUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQTtBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLElBQWlCO0lBQ3pELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUE7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBSSxJQUFVO0lBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFJLElBQWlCO0lBQzdELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQTtBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSwgV3JpdGFibGVTaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5pbXBvcnQgeyBQb2ludCB9IGZyb20gXCIuL3BvaW50LmludGVyZmFjZVwiXG5pbXBvcnQgeyBDdXN0b21Ob2RlQ29tcG9uZW50IH0gZnJvbSBcIi4uL3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1ub2RlLmNvbXBvbmVudFwiXG5pbXBvcnQgeyBDdXN0b21EeW5hbWljTm9kZUNvbXBvbmVudCB9IGZyb20gXCIuLi9wdWJsaWMtY29tcG9uZW50cy9jdXN0b20tZHluYW1pYy1ub2RlLmNvbXBvbmVudFwiXG5cbmV4cG9ydCB0eXBlIE5vZGU8VCA9IHVua25vd24+ID1cbiAgRGVmYXVsdE5vZGUgfFxuICBIdG1sVGVtcGxhdGVOb2RlPFQ+IHxcbiAgQ29tcG9uZW50Tm9kZTxUPiB8XG4gIERlZmF1bHRHcm91cE5vZGUgfFxuICBUZW1wbGF0ZUdyb3VwTm9kZTxUPlxuXG5leHBvcnQgdHlwZSBEeW5hbWljTm9kZTxUID0gdW5rbm93bj4gPVxuICBEZWZhdWx0RHluYW1pY05vZGUgfFxuICBIdG1sVGVtcGxhdGVEeW5hbWljTm9kZTxUPiB8XG4gIENvbXBvbmVudER5bmFtaWNOb2RlPFQ+IHxcbiAgRGVmYXVsdER5bmFtaWNHcm91cE5vZGUgfFxuICBUZW1wbGF0ZUR5bmFtaWNHcm91cE5vZGU8VD5cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWROb2RlIHtcbiAgaWQ6IHN0cmluZ1xuICBwb2ludDogUG9pbnRcbiAgZHJhZ2dhYmxlPzogYm9vbGVhblxuICBwYXJlbnRJZD86IHN0cmluZyB8IG51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWREeW5hbWljTm9kZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHBvaW50OiBXcml0YWJsZVNpZ25hbDxQb2ludD5cbiAgZHJhZ2dhYmxlPzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj5cbiAgcGFyZW50SWQ/OiBXcml0YWJsZVNpZ25hbDxzdHJpbmcgfCBudWxsPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHROb2RlIGV4dGVuZHMgU2hhcmVkTm9kZSB7XG4gIHR5cGU6ICdkZWZhdWx0J1xuICB0ZXh0Pzogc3RyaW5nXG4gIHdpZHRoPzogbnVtYmVyXG4gIGhlaWdodD86IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHREeW5hbWljTm9kZSBleHRlbmRzIFNoYXJlZER5bmFtaWNOb2RlIHtcbiAgdHlwZTogJ2RlZmF1bHQnXG4gIHRleHQ/OiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+XG4gIHdpZHRoPzogV3JpdGFibGVTaWduYWw8bnVtYmVyPlxuICBoZWlnaHQ/OiBXcml0YWJsZVNpZ25hbDxudW1iZXI+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHRtbFRlbXBsYXRlTm9kZTxUID0gdW5rbm93bj4gZXh0ZW5kcyBTaGFyZWROb2RlIHtcbiAgdHlwZTogJ2h0bWwtdGVtcGxhdGUnXG4gIGRhdGE/OiBUXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHRtbFRlbXBsYXRlRHluYW1pY05vZGU8VCA9IHVua25vd24+IGV4dGVuZHMgU2hhcmVkRHluYW1pY05vZGUge1xuICB0eXBlOiAnaHRtbC10ZW1wbGF0ZSdcbiAgZGF0YT86IFdyaXRhYmxlU2lnbmFsPFQ+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdEdyb3VwTm9kZSBleHRlbmRzIFNoYXJlZE5vZGUge1xuICB0eXBlOiAnZGVmYXVsdC1ncm91cCdcbiAgd2lkdGg6IG51bWJlclxuICBoZWlnaHQ6IG51bWJlclxuICBjb2xvcj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHREeW5hbWljR3JvdXBOb2RlIGV4dGVuZHMgU2hhcmVkRHluYW1pY05vZGUge1xuICB0eXBlOiAnZGVmYXVsdC1ncm91cCdcbiAgd2lkdGg6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj5cbiAgaGVpZ2h0OiBXcml0YWJsZVNpZ25hbDxudW1iZXI+XG4gIGNvbG9yPzogV3JpdGFibGVTaWduYWw8c3RyaW5nPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlR3JvdXBOb2RlPFQ+IGV4dGVuZHMgU2hhcmVkTm9kZSB7XG4gIHR5cGU6ICd0ZW1wbGF0ZS1ncm91cCdcbiAgd2lkdGg6IG51bWJlclxuICBoZWlnaHQ6IG51bWJlclxuICBkYXRhPzogVFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRHluYW1pY0dyb3VwTm9kZTxUPiBleHRlbmRzIFNoYXJlZER5bmFtaWNOb2RlIHtcbiAgdHlwZTogJ3RlbXBsYXRlLWdyb3VwJ1xuICB3aWR0aDogV3JpdGFibGVTaWduYWw8bnVtYmVyPlxuICBoZWlnaHQ6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj5cbiAgZGF0YT86IFdyaXRhYmxlU2lnbmFsPFQ+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50Tm9kZTxUID0gdW5rbm93bj4gZXh0ZW5kcyBTaGFyZWROb2RlIHtcbiAgdHlwZTogVHlwZTxDdXN0b21Ob2RlQ29tcG9uZW50PFQ+PlxuICBkYXRhPzogVFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudER5bmFtaWNOb2RlPFQgPSB1bmtub3duPiBleHRlbmRzIFNoYXJlZER5bmFtaWNOb2RlIHtcbiAgdHlwZTogVHlwZTxDdXN0b21EeW5hbWljTm9kZUNvbXBvbmVudDxUPj5cbiAgZGF0YT86IFdyaXRhYmxlU2lnbmFsPFQ+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YXRpY05vZGU8VD4obm9kZTogTm9kZSB8IER5bmFtaWNOb2RlKTogbm9kZSBpcyBOb2RlPFQ+IHtcbiAgcmV0dXJuIHR5cGVvZiBub2RlLnBvaW50ICE9PSAnZnVuY3Rpb24nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNOb2RlPFQ+KG5vZGU6IE5vZGUgfCBEeW5hbWljTm9kZSk6IG5vZGUgaXMgRHluYW1pY05vZGU8VD4ge1xuICByZXR1cm4gdHlwZW9mIG5vZGUucG9pbnQgPT09ICdmdW5jdGlvbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcG9uZW50U3RhdGljTm9kZTxUPihub2RlOiBOb2RlKTogbm9kZSBpcyBDb21wb25lbnROb2RlPFQ+IHtcbiAgcmV0dXJuIEN1c3RvbU5vZGVDb21wb25lbnQuaXNQcm90b3R5cGVPZihub2RlLnR5cGUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbXBvbmVudER5bmFtaWNOb2RlPFQ+KG5vZGU6IER5bmFtaWNOb2RlKTogbm9kZSBpcyBDb21wb25lbnREeW5hbWljTm9kZTxUPiB7XG4gIHJldHVybiBDdXN0b21EeW5hbWljTm9kZUNvbXBvbmVudC5pc1Byb3RvdHlwZU9mKG5vZGUudHlwZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVTdGF0aWNOb2RlPFQ+KG5vZGU6IE5vZGUpOiBub2RlIGlzIEh0bWxUZW1wbGF0ZU5vZGU8VD4ge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnaHRtbC10ZW1wbGF0ZSdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVEeW5hbWljTm9kZTxUPihub2RlOiBEeW5hbWljTm9kZSk6IG5vZGUgaXMgSHRtbFRlbXBsYXRlRHluYW1pY05vZGU8VD4ge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnaHRtbC10ZW1wbGF0ZSdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmYXVsdFN0YXRpY05vZGUobm9kZTogTm9kZSk6IG5vZGUgaXMgRGVmYXVsdE5vZGUge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnZGVmYXVsdCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmYXVsdER5bmFtaWNOb2RlKG5vZGU6IER5bmFtaWNOb2RlKTogbm9kZSBpcyBEZWZhdWx0RHluYW1pY05vZGUge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnZGVmYXVsdCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmYXVsdFN0YXRpY0dyb3VwTm9kZShub2RlOiBOb2RlKTogbm9kZSBpcyBEZWZhdWx0R3JvdXBOb2RlIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ2RlZmF1bHQtZ3JvdXAnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RlZmF1bHREeW5hbWljR3JvdXBOb2RlKG5vZGU6IER5bmFtaWNOb2RlKTogbm9kZSBpcyBEZWZhdWx0RHluYW1pY0dyb3VwTm9kZSB7XG4gIHJldHVybiBub2RlLnR5cGUgPT09ICdkZWZhdWx0LWdyb3VwJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUZW1wbGF0ZVN0YXRpY0dyb3VwTm9kZTxUPihub2RlOiBOb2RlKTogbm9kZSBpcyBUZW1wbGF0ZUdyb3VwTm9kZTxUPiB7XG4gIHJldHVybiBub2RlLnR5cGUgPT09ICd0ZW1wbGF0ZS1ncm91cCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVEeW5hbWljR3JvdXBOb2RlPFQ+KG5vZGU6IER5bmFtaWNOb2RlKTogbm9kZSBpcyBUZW1wbGF0ZUR5bmFtaWNHcm91cE5vZGU8VD4ge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAndGVtcGxhdGUtZ3JvdXAnXG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvaW50ZXJmYWNlcy9ub2RlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQTtBQUM1RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQTtBQXNHbkgsTUFBTSxVQUFVLFlBQVksQ0FBSSxJQUF3QjtJQUN0RCxPQUFPLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUE7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUksSUFBd0I7SUFDdkQsT0FBTyxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFBO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUksSUFBVTtJQUNqRCxPQUFPLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBSSxJQUFpQjtJQUN6RCxPQUFPLDBCQUEwQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDNUQsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBSSxJQUFVO0lBQ2hELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUE7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBSSxJQUFpQjtJQUN4RCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFBO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBVTtJQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFBO0FBQ2hDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBaUI7SUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQTtBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLElBQVU7SUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQTtBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLElBQWlCO0lBQ3pELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUE7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBSSxJQUFVO0lBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFJLElBQWlCO0lBQzdELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQTtBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSwgV3JpdGFibGVTaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5pbXBvcnQgeyBQb2ludCB9IGZyb20gXCIuL3BvaW50LmludGVyZmFjZVwiXG5pbXBvcnQgeyBDdXN0b21Ob2RlQ29tcG9uZW50IH0gZnJvbSBcIi4uL3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1ub2RlL2N1c3RvbS1ub2RlLmNvbXBvbmVudFwiXG5pbXBvcnQgeyBDdXN0b21EeW5hbWljTm9kZUNvbXBvbmVudCB9IGZyb20gXCIuLi9wdWJsaWMtY29tcG9uZW50cy9jdXN0b20tZHluYW1pYy1ub2RlL2N1c3RvbS1keW5hbWljLW5vZGUuY29tcG9uZW50XCJcblxuZXhwb3J0IHR5cGUgTm9kZTxUID0gdW5rbm93bj4gPVxuICBEZWZhdWx0Tm9kZSB8XG4gIEh0bWxUZW1wbGF0ZU5vZGU8VD4gfFxuICBDb21wb25lbnROb2RlPFQ+IHxcbiAgRGVmYXVsdEdyb3VwTm9kZSB8XG4gIFRlbXBsYXRlR3JvdXBOb2RlPFQ+XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNOb2RlPFQgPSB1bmtub3duPiA9XG4gIERlZmF1bHREeW5hbWljTm9kZSB8XG4gIEh0bWxUZW1wbGF0ZUR5bmFtaWNOb2RlPFQ+IHxcbiAgQ29tcG9uZW50RHluYW1pY05vZGU8VD4gfFxuICBEZWZhdWx0RHluYW1pY0dyb3VwTm9kZSB8XG4gIFRlbXBsYXRlRHluYW1pY0dyb3VwTm9kZTxUPlxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZE5vZGUge1xuICBpZDogc3RyaW5nXG4gIHBvaW50OiBQb2ludFxuICBkcmFnZ2FibGU/OiBib29sZWFuXG4gIHBhcmVudElkPzogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZER5bmFtaWNOb2RlIHtcbiAgaWQ6IHN0cmluZztcbiAgcG9pbnQ6IFdyaXRhYmxlU2lnbmFsPFBvaW50PlxuICBkcmFnZ2FibGU/OiBXcml0YWJsZVNpZ25hbDxib29sZWFuPlxuICBwYXJlbnRJZD86IFdyaXRhYmxlU2lnbmFsPHN0cmluZyB8IG51bGw+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdE5vZGUgZXh0ZW5kcyBTaGFyZWROb2RlIHtcbiAgdHlwZTogJ2RlZmF1bHQnXG4gIHRleHQ/OiBzdHJpbmdcbiAgd2lkdGg/OiBudW1iZXJcbiAgaGVpZ2h0PzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdER5bmFtaWNOb2RlIGV4dGVuZHMgU2hhcmVkRHluYW1pY05vZGUge1xuICB0eXBlOiAnZGVmYXVsdCdcbiAgdGV4dD86IFdyaXRhYmxlU2lnbmFsPHN0cmluZz5cbiAgd2lkdGg/OiBXcml0YWJsZVNpZ25hbDxudW1iZXI+XG4gIGhlaWdodD86IFdyaXRhYmxlU2lnbmFsPG51bWJlcj5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdG1sVGVtcGxhdGVOb2RlPFQgPSB1bmtub3duPiBleHRlbmRzIFNoYXJlZE5vZGUge1xuICB0eXBlOiAnaHRtbC10ZW1wbGF0ZSdcbiAgZGF0YT86IFRcbiAgd2lkdGg/OiBudW1iZXJcbiAgaGVpZ2h0PzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHRtbFRlbXBsYXRlRHluYW1pY05vZGU8VCA9IHVua25vd24+IGV4dGVuZHMgU2hhcmVkRHluYW1pY05vZGUge1xuICB0eXBlOiAnaHRtbC10ZW1wbGF0ZSdcbiAgZGF0YT86IFdyaXRhYmxlU2lnbmFsPFQ+XG4gIHdpZHRoPzogV3JpdGFibGVTaWduYWw8bnVtYmVyPlxuICBoZWlnaHQ/OiBXcml0YWJsZVNpZ25hbDxudW1iZXI+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdEdyb3VwTm9kZSBleHRlbmRzIFNoYXJlZE5vZGUge1xuICB0eXBlOiAnZGVmYXVsdC1ncm91cCdcbiAgd2lkdGg6IG51bWJlclxuICBoZWlnaHQ6IG51bWJlclxuICBjb2xvcj86IHN0cmluZ1xuICByZXNpemFibGU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdER5bmFtaWNHcm91cE5vZGUgZXh0ZW5kcyBTaGFyZWREeW5hbWljTm9kZSB7XG4gIHR5cGU6ICdkZWZhdWx0LWdyb3VwJ1xuICB3aWR0aDogV3JpdGFibGVTaWduYWw8bnVtYmVyPlxuICBoZWlnaHQ6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj5cbiAgY29sb3I/OiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+XG4gIHJlc2l6YWJsZT86IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVHcm91cE5vZGU8VD4gZXh0ZW5kcyBTaGFyZWROb2RlIHtcbiAgdHlwZTogJ3RlbXBsYXRlLWdyb3VwJ1xuICB3aWR0aDogbnVtYmVyXG4gIGhlaWdodDogbnVtYmVyXG4gIGRhdGE/OiBUXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVEeW5hbWljR3JvdXBOb2RlPFQ+IGV4dGVuZHMgU2hhcmVkRHluYW1pY05vZGUge1xuICB0eXBlOiAndGVtcGxhdGUtZ3JvdXAnXG4gIHdpZHRoOiBXcml0YWJsZVNpZ25hbDxudW1iZXI+XG4gIGhlaWdodDogV3JpdGFibGVTaWduYWw8bnVtYmVyPlxuICBkYXRhPzogV3JpdGFibGVTaWduYWw8VD5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnROb2RlPFQgPSB1bmtub3duPiBleHRlbmRzIFNoYXJlZE5vZGUge1xuICB0eXBlOiBUeXBlPEN1c3RvbU5vZGVDb21wb25lbnQ8VD4+XG4gIGRhdGE/OiBUXG4gIHdpZHRoPzogbnVtYmVyXG4gIGhlaWdodD86IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudER5bmFtaWNOb2RlPFQgPSB1bmtub3duPiBleHRlbmRzIFNoYXJlZER5bmFtaWNOb2RlIHtcbiAgdHlwZTogVHlwZTxDdXN0b21EeW5hbWljTm9kZUNvbXBvbmVudDxUPj5cbiAgZGF0YT86IFdyaXRhYmxlU2lnbmFsPFQ+XG4gIHdpZHRoPzogV3JpdGFibGVTaWduYWw8bnVtYmVyPlxuICBoZWlnaHQ/OiBXcml0YWJsZVNpZ25hbDxudW1iZXI+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YXRpY05vZGU8VD4obm9kZTogTm9kZSB8IER5bmFtaWNOb2RlKTogbm9kZSBpcyBOb2RlPFQ+IHtcbiAgcmV0dXJuIHR5cGVvZiBub2RlLnBvaW50ICE9PSAnZnVuY3Rpb24nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNOb2RlPFQ+KG5vZGU6IE5vZGUgfCBEeW5hbWljTm9kZSk6IG5vZGUgaXMgRHluYW1pY05vZGU8VD4ge1xuICByZXR1cm4gdHlwZW9mIG5vZGUucG9pbnQgPT09ICdmdW5jdGlvbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcG9uZW50U3RhdGljTm9kZTxUPihub2RlOiBOb2RlKTogbm9kZSBpcyBDb21wb25lbnROb2RlPFQ+IHtcbiAgcmV0dXJuIEN1c3RvbU5vZGVDb21wb25lbnQuaXNQcm90b3R5cGVPZihub2RlLnR5cGUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbXBvbmVudER5bmFtaWNOb2RlPFQ+KG5vZGU6IER5bmFtaWNOb2RlKTogbm9kZSBpcyBDb21wb25lbnREeW5hbWljTm9kZTxUPiB7XG4gIHJldHVybiBDdXN0b21EeW5hbWljTm9kZUNvbXBvbmVudC5pc1Byb3RvdHlwZU9mKG5vZGUudHlwZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVTdGF0aWNOb2RlPFQ+KG5vZGU6IE5vZGUpOiBub2RlIGlzIEh0bWxUZW1wbGF0ZU5vZGU8VD4ge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnaHRtbC10ZW1wbGF0ZSdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVEeW5hbWljTm9kZTxUPihub2RlOiBEeW5hbWljTm9kZSk6IG5vZGUgaXMgSHRtbFRlbXBsYXRlRHluYW1pY05vZGU8VD4ge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnaHRtbC10ZW1wbGF0ZSdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmYXVsdFN0YXRpY05vZGUobm9kZTogTm9kZSk6IG5vZGUgaXMgRGVmYXVsdE5vZGUge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnZGVmYXVsdCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmYXVsdER5bmFtaWNOb2RlKG5vZGU6IER5bmFtaWNOb2RlKTogbm9kZSBpcyBEZWZhdWx0RHluYW1pY05vZGUge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnZGVmYXVsdCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmYXVsdFN0YXRpY0dyb3VwTm9kZShub2RlOiBOb2RlKTogbm9kZSBpcyBEZWZhdWx0R3JvdXBOb2RlIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ2RlZmF1bHQtZ3JvdXAnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RlZmF1bHREeW5hbWljR3JvdXBOb2RlKG5vZGU6IER5bmFtaWNOb2RlKTogbm9kZSBpcyBEZWZhdWx0RHluYW1pY0dyb3VwTm9kZSB7XG4gIHJldHVybiBub2RlLnR5cGUgPT09ICdkZWZhdWx0LWdyb3VwJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUZW1wbGF0ZVN0YXRpY0dyb3VwTm9kZTxUPihub2RlOiBOb2RlKTogbm9kZSBpcyBUZW1wbGF0ZUdyb3VwTm9kZTxUPiB7XG4gIHJldHVybiBub2RlLnR5cGUgPT09ICd0ZW1wbGF0ZS1ncm91cCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVEeW5hbWljR3JvdXBOb2RlPFQ+KG5vZGU6IER5bmFtaWNOb2RlKTogbm9kZSBpcyBUZW1wbGF0ZUR5bmFtaWNHcm91cE5vZGU8VD4ge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAndGVtcGxhdGUtZ3JvdXAnXG59XG4iXX0=
@@ -3,10 +3,11 @@ import { isDynamicNode } from '../interfaces/node.interface';
3
3
  import { isDefined } from '../utils/is-defined';
4
4
  import { toObservable, toSignal } from '@angular/core/rxjs-interop';
5
5
  import { FlowSettingsService } from '../services/flow-settings.service';
6
- import { animationFrameScheduler, observeOn, } from 'rxjs';
7
- import { CustomNodeComponent } from '../public-components/custom-node.component';
8
- import { CustomDynamicNodeComponent } from '../public-components/custom-dynamic-node.component';
6
+ import { animationFrameScheduler, merge, observeOn, Subject, } from 'rxjs';
7
+ import { CustomNodeComponent } from '../public-components/custom-node/custom-node.component';
8
+ import { CustomDynamicNodeComponent } from '../public-components/custom-dynamic-node/custom-dynamic-node.component';
9
9
  import { FlowEntitiesService } from '../services/flow-entities.service';
10
+ // TODO bad naming around points
10
11
  export class NodeModel {
11
12
  static { this.defaultWidth = 100; }
12
13
  static { this.defaultHeight = 50; }
@@ -17,11 +18,15 @@ export class NodeModel {
17
18
  this.entitiesService = inject(FlowEntitiesService);
18
19
  this.internalPoint = this.createInternalPointSignal();
19
20
  this.throttledPoint$ = toObservable(this.internalPoint).pipe(observeOn(animationFrameScheduler));
20
- this.point = toSignal(this.throttledPoint$, {
21
+ this.notThrottledPoint$ = new Subject();
22
+ this.point = toSignal(merge(this.throttledPoint$, this.notThrottledPoint$), {
21
23
  initialValue: this.internalPoint()
22
24
  });
23
25
  this.point$ = this.throttledPoint$;
24
26
  this.size = signal({ width: 0, height: 0 });
27
+ this.size$ = toObservable(this.size);
28
+ this.width = computed(() => this.size().width);
29
+ this.height = computed(() => this.size().height);
25
30
  this.renderOrder = signal(0);
26
31
  this.selected = signal(false);
27
32
  this.selected$ = toObservable(this.selected);
@@ -58,7 +63,11 @@ export class NodeModel {
58
63
  };
59
64
  });
60
65
  this.parent = computed(() => this.entitiesService.nodes().find(n => n.node.id === this.parentId()) ?? null);
66
+ this.children = computed(() => this.entitiesService.nodes().filter(n => n.parentId() === this.node.id));
61
67
  this.color = signal(NodeModel.defaultColor);
68
+ this.resizable = signal(false);
69
+ this.resizing = signal(false);
70
+ this.resizerTemplate = signal(null);
62
71
  this.parentId = signal(null);
63
72
  if (isDefined(node.draggable)) {
64
73
  if (isDynamicNode(node)) {
@@ -84,9 +93,22 @@ export class NodeModel {
84
93
  this.color.set(node.color);
85
94
  }
86
95
  }
96
+ if (node.type === 'default-group' && node.resizable) {
97
+ if (isDynamicNode(node)) {
98
+ this.resizable = node.resizable;
99
+ }
100
+ else {
101
+ this.resizable.set(node.resizable);
102
+ }
103
+ }
87
104
  }
88
- setPoint(point) {
89
- this.internalPoint.set(point);
105
+ setPoint(point, throttle) {
106
+ if (throttle) {
107
+ this.internalPoint.set(point);
108
+ }
109
+ else {
110
+ this.notThrottledPoint$.next(point);
111
+ }
90
112
  }
91
113
  /**
92
114
  * TODO find the way to implement this better
@@ -113,6 +135,23 @@ export class NodeModel {
113
135
  }
114
136
  }
115
137
  }
138
+ if (node.type === 'html-template' || this.isComponentType) {
139
+ if (isDynamicNode(node)) {
140
+ effect(() => {
141
+ if (node.width && node.height) {
142
+ this.size.set({
143
+ width: node.width(),
144
+ height: node.height(),
145
+ });
146
+ }
147
+ }, { allowSignalWrites: true });
148
+ }
149
+ else {
150
+ if (node.width && node.height) {
151
+ this.size.set({ width: node.width, height: node.height });
152
+ }
153
+ }
154
+ }
116
155
  }
117
156
  createTextSignal() {
118
157
  const node = this.node;
@@ -132,4 +171,4 @@ export class NodeModel {
132
171
  : signal({ x: this.node.point.x, y: this.node.point.y });
133
172
  }
134
173
  }
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvbm9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hFLE9BQU8sRUFBcUIsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFHbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsR0FBRyxNQUFNLE1BQU0sQ0FBQTtBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUNoRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQTtBQUMvRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUV2RSxNQUFNLE9BQU8sU0FBUzthQUNMLGlCQUFZLEdBQUcsR0FBRyxBQUFOLENBQU07YUFDbEIsa0JBQWEsR0FBRyxFQUFFLEFBQUwsQ0FBSzthQUNsQixpQkFBWSxHQUFHLFNBQVMsQUFBWixDQUFZO0lBZ0Z2QyxZQUNTLElBQThCO1FBQTlCLFNBQUksR0FBSixJQUFJLENBQTBCO1FBL0UvQix3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUNqRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTlDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENB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LENBQUE7YUFDL0I7aUJBQU07Z0JBQ0wsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQTthQUMvQjtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbkIsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDakIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRHluYW1pY05vZGUsIE5vZGUsIGlzRHluYW1pY05vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnLi4vdXRpbHMvaXMtZGVmaW5lZCdcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCdcbmltcG9ydCB7IEhhbmRsZU1vZGVsIH0gZnJvbSAnLi9oYW5kbGUubW9kZWwnXG5pbXBvcnQgeyBGbG93RW50aXR5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mbG93LWVudGl0eS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJ1xuaW1wb3J0IHsgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIG9ic2VydmVPbiwgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50LmludGVyZmFjZSdcbmltcG9ydCB7IEN1c3RvbU5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9wdWJsaWMtY29tcG9uZW50cy9jdXN0b20tbm9kZS5jb21wb25lbnQnXG5pbXBvcnQgeyBDdXN0b21EeW5hbWljTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uL3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1keW5hbWljLW5vZGUuY29tcG9uZW50J1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZSdcblxuZXhwb3J0IGNsYXNzIE5vZGVNb2RlbDxUID0gdW5rbm93bj4gaW1wbGVtZW50cyBGbG93RW50aXR5IHtcbiAgcHJpdmF0ZSBzdGF0aWMgZGVmYXVsdFdpZHRoID0gMTAwXG4gIHByaXZhdGUgc3RhdGljIGRlZmF1bHRIZWlnaHQgPSA1MFxuICBwcml2YXRlIHN0YXRpYyBkZWZhdWx0Q29sb3IgPSAnIzFiMjYyYydcblxuICBwcml2YXRlIGZsb3dTZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoRmxvd1NldHRpbmdzU2VydmljZSlcbiAgcHJpdmF0ZSBlbnRpdGllc1NlcnZpY2UgPSBpbmplY3QoRmxvd0VudGl0aWVzU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBpbnRlcm5hbFBvaW50ID0gdGhpcy5jcmVhdGVJbnRlcm5hbFBvaW50U2lnbmFsKClcblxuICBwcml2YXRlIHRocm90dGxlZFBvaW50JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmludGVybmFsUG9pbnQpLnBpcGUoXG4gICAgb2JzZXJ2ZU9uKGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKVxuICApXG5cbiAgcHVibGljIHBvaW50ID0gdG9TaWduYWwodGhpcy50aHJvdHRsZWRQb2ludCQsIHtcbiAgICBpbml0aWFsVmFsdWU6IHRoaXMuaW50ZXJuYWxQb2ludCgpXG4gIH0pXG5cbiAgcHVibGljIHBvaW50JCA9IHRoaXMudGhyb3R0bGVkUG9pbnQkO1xuXG4gIHB1YmxpYyBzaXplID0gc2lnbmFsKHsgd2lkdGg6IDAsIGhlaWdodDogMCB9KVxuXG4gIHB1YmxpYyByZW5kZXJPcmRlciA9IHNpZ25hbCgwKVxuXG4gIHB1YmxpYyBzZWxlY3RlZCA9IHNpZ25hbChmYWxzZSlcbiAgcHVibGljIHNlbGVjdGVkJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnNlbGVjdGVkKVxuXG4gIHB1YmxpYyBnbG9iYWxQb2ludCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBsZXQgcGFyZW50ID0gdGhpcy5wYXJlbnQoKVxuICAgIGxldCB4ID0gdGhpcy5wb2ludCgpLnhcbiAgICBsZXQgeSA9IHRoaXMucG9pbnQoKS55XG5cbiAgICB3aGlsZSAocGFyZW50ICE9PSBudWxsKSB7XG4gICAgICB4ICs9IHBhcmVudC5wb2ludCgpLnhcbiAgICAgIHkgKz0gcGFyZW50LnBvaW50KCkueVxuXG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50KClcbiAgICB9XG5cbiAgICByZXR1cm4geyB4LCB5IH1cbiAgfSlcblxuICBwdWJsaWMgcG9pbnRUcmFuc2Zvcm0gPSBjb21wdXRlZCgoKSA9PlxuICAgIGB0cmFuc2xhdGUoJHt0aGlzLmdsb2JhbFBvaW50KCkueH0sICR7dGhpcy5nbG9iYWxQb2ludCgpLnl9KWBcbiAgKVxuXG4gIC8vIE5vdyBzb3VyY2UgYW5kIGhhbmRsZSBwb3NpdGlvbnMgZGVyaXZlZCBmcm9tIHBhcmVudCBmbG93XG4gIHB1YmxpYyBzb3VyY2VQb3NpdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5oYW5kbGVQb3NpdGlvbnMoKS5zb3VyY2UpXG4gIHB1YmxpYyB0YXJnZXRQb3NpdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5oYW5kbGVQb3NpdGlvbnMoKS50YXJnZXQpXG5cbiAgcHVibGljIGhhbmRsZXMgPSBzaWduYWw8SGFuZGxlTW9kZWxbXT4oW10pXG5cbiAgcHVibGljIGhhbmRsZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMuaGFuZGxlcylcblxuICBwdWJsaWMgZHJhZ2dhYmxlID0gc2lnbmFsKHRydWUpXG5cbiAgLy8gZGlzYWJsZWQgZm9yIGNvbmZpZ3VyYXRpb24gZm9yIG5vd1xuICBwdWJsaWMgcmVhZG9ubHkgbWFnbmV0UmFkaXVzID0gMjBcblxuICAvLyBUT0RPOiBub3Qgc3VyZSBpZiB3ZSBuZWVkIHRvIHN0YXRpY2FsbHkgc3RvcmUgaXRcbiAgcHVibGljIGlzQ29tcG9uZW50VHlwZSA9XG4gICAgQ3VzdG9tTm9kZUNvbXBvbmVudC5pc1Byb3RvdHlwZU9mKHRoaXMubm9kZS50eXBlKSB8fFxuICAgIEN1c3RvbUR5bmFtaWNOb2RlQ29tcG9uZW50LmlzUHJvdG90eXBlT2YodGhpcy5ub2RlLnR5cGUpXG5cbiAgLy8gRGVmYXVsdCBub2RlIHNwZWNpZmljIHRoaW5nXG4gIHB1YmxpYyB0ZXh0ID0gdGhpcy5jcmVhdGVUZXh0U2lnbmFsKClcblxuICAvLyBDb21wb25lbnQgbm9kZSBzcGVjaWZpYyB0aGluZ1xuICBwdWJsaWMgY29tcG9uZW50VHlwZUlucHV0cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbm9kZTogdGhpcy5ub2RlLFxuICAgICAgX3NlbGVjdGVkOiB0aGlzLnNlbGVjdGVkKClcbiAgICB9XG4gIH0pXG5cbiAgcHVibGljIHBhcmVudCA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMoKS5maW5kKG4gPT4gbi5ub2RlLmlkID09PSB0aGlzLnBhcmVudElkKCkpID8/IG51bGxcbiAgKVxuXG4gIHB1YmxpYyBjb2xvciA9IHNpZ25hbChOb2RlTW9kZWwuZGVmYXVsdENvbG9yKVxuXG4gIHByaXZhdGUgcGFyZW50SWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbm9kZTogTm9kZTxUPiB8IER5bmFtaWNOb2RlPFQ+XG4gICkge1xuICAgIGlmIChpc0RlZmluZWQobm9kZS5kcmFnZ2FibGUpKSB7XG4gICAgICBpZiAoaXNEeW5hbWljTm9kZShub2RlKSkge1xuICAgICAgICB0aGlzLmRyYWdnYWJsZSA9IG5vZGUuZHJhZ2dhYmxlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRyYWdnYWJsZS5zZXQobm9kZS5kcmFnZ2FibGUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzRGVmaW5lZChub2RlLnBhcmVudElkKSkge1xuICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgdGhpcy5wYXJlbnRJZCA9IG5vZGUucGFyZW50SWRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFyZW50SWQuc2V0KG5vZGUucGFyZW50SWQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2RlZmF1bHQtZ3JvdXAnICYmIG5vZGUuY29sb3IpIHtcbiAgICAgIGlmIChpc0R5bmFtaWNOb2RlKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBub2RlLmNvbG9yXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbG9yLnNldChub2RlLmNvbG9yKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRQb2ludChwb2ludDogUG9pbnQpIHtcbiAgICB0aGlzLmludGVybmFsUG9pbnQuc2V0KHBvaW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPIGZpbmQgdGhlIHdheSB0byBpbXBsZW1lbnQgdGhpcyBiZXR0ZXJcbiAgICovXG4gIHB1YmxpYyBsaW5rRGVmYXVsdE5vZGVTaXplV2l0aE1vZGVsU2l6ZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5ub2RlXG5cbiAgICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICBjYXNlICdkZWZhdWx0LWdyb3VwJzpcbiAgICAgIGNhc2UgJ3RlbXBsYXRlLWdyb3VwJzoge1xuICAgICAgICBpZiAoaXNEeW5hbWljTm9kZShub2RlKSkge1xuICAgICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNpemUuc2V0KHtcbiAgICAgICAgICAgICAgd2lkdGg6IG5vZGUud2lkdGg/LigpID8/IE5vZGVNb2RlbC5kZWZhdWx0V2lkdGgsXG4gICAgICAgICAgICAgIGhlaWdodDogbm9kZS5oZWlnaHQ/LigpID8/IE5vZGVNb2RlbC5kZWZhdWx0SGVpZ2h0LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zaXplLnNldCh7XG4gICAgICAgICAgICB3aWR0aDogbm9kZS53aWR0aCA/PyBOb2RlTW9kZWwuZGVmYXVsdFdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBub2RlLmhlaWdodCA/PyBOb2RlTW9kZWwuZGVmYXVsdEhlaWdodFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRleHRTaWduYWwoKTogU2lnbmFsPHN0cmluZz4ge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGVcblxuICAgIGlmIChub2RlLnR5cGUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUudGV4dCA/PyBzaWduYWwoJycpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc2lnbmFsKG5vZGUudGV4dCA/PyAnJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmFsKCcnKVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbnRlcm5hbFBvaW50U2lnbmFsKCkge1xuICAgIHJldHVybiBpc0R5bmFtaWNOb2RlKHRoaXMubm9kZSlcbiAgICAgID8gdGhpcy5ub2RlLnBvaW50XG4gICAgICA6IHNpZ25hbCh7IHg6IHRoaXMubm9kZS5wb2ludC54LCB5OiB0aGlzLm5vZGUucG9pbnQueSB9KVxuICB9XG59XG4iXX0=
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvbm9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNyRixPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBR25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sR0FBRyxNQUFNLE1BQU0sQ0FBQTtBQUUxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQTtBQUM1RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQTtBQUNuSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUV2RSxnQ0FBZ0M7QUFDaEMsTUFBTSxPQUFPLFNBQVM7YUFDTCxpQkFBWSxHQUFHLEdBQUcsQUFBTixDQUFNO2FBQ2xCLGtCQUFhLEdBQUcsRUFBRSxBQUFMLENBQUs7YUFDbEIsaUJBQVksR0FBRyxTQUFTLEFBQVosQ0FBWTtJQWlHdkMsWUFDUyxJQUE4QjtRQUE5QixTQUFJLEdBQUosSUFBSSxDQUEwQjtRQWhHL0Isd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDakQsb0JBQWUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUU5Qyxr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QUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwsIFRlbXBsYXRlUmVmLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBEeW5hbWljTm9kZSwgTm9kZSwgaXNEeW5hbWljTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tICcuLi91dGlscy9pcy1kZWZpbmVkJ1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJ1xuaW1wb3J0IHsgSGFuZGxlTW9kZWwgfSBmcm9tICcuL2hhbmRsZS5tb2RlbCdcbmltcG9ydCB7IEZsb3dFbnRpdHkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Zsb3ctZW50aXR5LmludGVyZmFjZSdcbmltcG9ydCB7IEZsb3dTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mbG93LXNldHRpbmdzLnNlcnZpY2UnXG5pbXBvcnQgeyBhbmltYXRpb25GcmFtZVNjaGVkdWxlciwgbWVyZ2UsIG9ic2VydmVPbiwgU3ViamVjdCwgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50LmludGVyZmFjZSdcbmltcG9ydCB7IEN1c3RvbU5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9wdWJsaWMtY29tcG9uZW50cy9jdXN0b20tbm9kZS9jdXN0b20tbm9kZS5jb21wb25lbnQnXG5pbXBvcnQgeyBDdXN0b21EeW5hbWljTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uL3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1keW5hbWljLW5vZGUvY3VzdG9tLWR5bmFtaWMtbm9kZS5jb21wb25lbnQnXG5pbXBvcnQgeyBGbG93RW50aXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxvdy1lbnRpdGllcy5zZXJ2aWNlJ1xuXG4vLyBUT0RPIGJhZCBuYW1pbmcgYXJvdW5kIHBvaW50c1xuZXhwb3J0IGNsYXNzIE5vZGVNb2RlbDxUID0gdW5rbm93bj4gaW1wbGVtZW50cyBGbG93RW50aXR5IHtcbiAgcHJpdmF0ZSBzdGF0aWMgZGVmYXVsdFdpZHRoID0gMTAwXG4gIHByaXZhdGUgc3RhdGljIGRlZmF1bHRIZWlnaHQgPSA1MFxuICBwcml2YXRlIHN0YXRpYyBkZWZhdWx0Q29sb3IgPSAnIzFiMjYyYydcblxuICBwcml2YXRlIGZsb3dTZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoRmxvd1NldHRpbmdzU2VydmljZSlcbiAgcHJpdmF0ZSBlbnRpdGllc1NlcnZpY2UgPSBpbmplY3QoRmxvd0VudGl0aWVzU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBpbnRlcm5hbFBvaW50ID0gdGhpcy5jcmVhdGVJbnRlcm5hbFBvaW50U2lnbmFsKClcblxuICBwcml2YXRlIHRocm90dGxlZFBvaW50JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmludGVybmFsUG9pbnQpLnBpcGUoXG4gICAgb2JzZXJ2ZU9uKGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKVxuICApXG5cbiAgcHJpdmF0ZSBub3RUaHJvdHRsZWRQb2ludCQgPSBuZXcgU3ViamVjdDxQb2ludD4oKVxuXG4gIHB1YmxpYyBwb2ludCA9IHRvU2lnbmFsKFxuICAgIG1lcmdlKHRoaXMudGhyb3R0bGVkUG9pbnQkLCB0aGlzLm5vdFRocm90dGxlZFBvaW50JCksXG4gICAge1xuICAgICAgaW5pdGlhbFZhbHVlOiB0aGlzLmludGVybmFsUG9pbnQoKVxuICAgIH1cbiAgKVxuXG4gIHB1YmxpYyBwb2ludCQgPSB0aGlzLnRocm90dGxlZFBvaW50JDtcblxuICBwdWJsaWMgc2l6ZSA9IHNpZ25hbCh7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSlcbiAgcHVibGljIHNpemUkID0gdG9PYnNlcnZhYmxlKHRoaXMuc2l6ZSlcblxuICBwdWJsaWMgd2lkdGggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNpemUoKS53aWR0aClcbiAgcHVibGljIGhlaWdodCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2l6ZSgpLmhlaWdodClcblxuICBwdWJsaWMgcmVuZGVyT3JkZXIgPSBzaWduYWwoMClcblxuICBwdWJsaWMgc2VsZWN0ZWQgPSBzaWduYWwoZmFsc2UpXG4gIHB1YmxpYyBzZWxlY3RlZCQgPSB0b09ic2VydmFibGUodGhpcy5zZWxlY3RlZClcblxuICBwdWJsaWMgZ2xvYmFsUG9pbnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgbGV0IHBhcmVudCA9IHRoaXMucGFyZW50KClcbiAgICBsZXQgeCA9IHRoaXMucG9pbnQoKS54XG4gICAgbGV0IHkgPSB0aGlzLnBvaW50KCkueVxuXG4gICAgd2hpbGUgKHBhcmVudCAhPT0gbnVsbCkge1xuICAgICAgeCArPSBwYXJlbnQucG9pbnQoKS54XG4gICAgICB5ICs9IHBhcmVudC5wb2ludCgpLnlcblxuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudCgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgeCwgeSB9XG4gIH0pXG5cbiAgcHVibGljIHBvaW50VHJhbnNmb3JtID0gY29tcHV0ZWQoKCkgPT5cbiAgICBgdHJhbnNsYXRlKCR7dGhpcy5nbG9iYWxQb2ludCgpLnh9LCAke3RoaXMuZ2xvYmFsUG9pbnQoKS55fSlgXG4gIClcblxuICAvLyBOb3cgc291cmNlIGFuZCBoYW5kbGUgcG9zaXRpb25zIGRlcml2ZWQgZnJvbSBwYXJlbnQgZmxvd1xuICBwdWJsaWMgc291cmNlUG9zaXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuaGFuZGxlUG9zaXRpb25zKCkuc291cmNlKVxuICBwdWJsaWMgdGFyZ2V0UG9zaXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuaGFuZGxlUG9zaXRpb25zKCkudGFyZ2V0KVxuXG4gIHB1YmxpYyBoYW5kbGVzID0gc2lnbmFsPEhhbmRsZU1vZGVsW10+KFtdKVxuXG4gIHB1YmxpYyBoYW5kbGVzJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmhhbmRsZXMpXG5cbiAgcHVibGljIGRyYWdnYWJsZSA9IHNpZ25hbCh0cnVlKVxuXG4gIC8vIGRpc2FibGVkIGZvciBjb25maWd1cmF0aW9uIGZvciBub3dcbiAgcHVibGljIHJlYWRvbmx5IG1hZ25ldFJhZGl1cyA9IDIwXG5cbiAgLy8gVE9ETzogbm90IHN1cmUgaWYgd2UgbmVlZCB0byBzdGF0aWNhbGx5IHN0b3JlIGl0XG4gIHB1YmxpYyBpc0NvbXBvbmVudFR5cGUgPVxuICAgIEN1c3RvbU5vZGVDb21wb25lbnQuaXNQcm90b3R5cGVPZih0aGlzLm5vZGUudHlwZSkgfHxcbiAgICBDdXN0b21EeW5hbWljTm9kZUNvbXBvbmVudC5pc1Byb3RvdHlwZU9mKHRoaXMubm9kZS50eXBlKVxuXG4gIC8vIERlZmF1bHQgbm9kZSBzcGVjaWZpYyB0aGluZ1xuICBwdWJsaWMgdGV4dCA9IHRoaXMuY3JlYXRlVGV4dFNpZ25hbCgpXG5cbiAgLy8gQ29tcG9uZW50IG5vZGUgc3BlY2lmaWMgdGhpbmdcbiAgcHVibGljIGNvbXBvbmVudFR5cGVJbnB1dHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5vZGU6IHRoaXMubm9kZSxcbiAgICAgIF9zZWxlY3RlZDogdGhpcy5zZWxlY3RlZCgpXG4gICAgfVxuICB9KVxuXG4gIHB1YmxpYyBwYXJlbnQgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKCkuZmluZChuID0+IG4ubm9kZS5pZCA9PT0gdGhpcy5wYXJlbnRJZCgpKSA/PyBudWxsXG4gIClcblxuICBwdWJsaWMgY2hpbGRyZW4gPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKCkuZmlsdGVyKG4gPT4gbi5wYXJlbnRJZCgpID09PSB0aGlzLm5vZGUuaWQpXG4gIClcblxuICBwdWJsaWMgY29sb3IgPSBzaWduYWwoTm9kZU1vZGVsLmRlZmF1bHRDb2xvcilcblxuICBwdWJsaWMgcmVzaXphYmxlID0gc2lnbmFsKGZhbHNlKVxuICBwdWJsaWMgcmVzaXppbmcgPSBzaWduYWwoZmFsc2UpXG4gIHB1YmxpYyByZXNpemVyVGVtcGxhdGUgPSBzaWduYWw8VGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsPihudWxsKVxuXG4gIHByaXZhdGUgcGFyZW50SWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbm9kZTogTm9kZTxUPiB8IER5bmFtaWNOb2RlPFQ+XG4gICkge1xuICAgIGlmIChpc0RlZmluZWQobm9kZS5kcmFnZ2FibGUpKSB7XG4gICAgICBpZiAoaXNEeW5hbWljTm9kZShub2RlKSkge1xuICAgICAgICB0aGlzLmRyYWdnYWJsZSA9IG5vZGUuZHJhZ2dhYmxlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRyYWdnYWJsZS5zZXQobm9kZS5kcmFnZ2FibGUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzRGVmaW5lZChub2RlLnBhcmVudElkKSkge1xuICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgdGhpcy5wYXJlbnRJZCA9IG5vZGUucGFyZW50SWRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFyZW50SWQuc2V0KG5vZGUucGFyZW50SWQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2RlZmF1bHQtZ3JvdXAnICYmIG5vZGUuY29sb3IpIHtcbiAgICAgIGlmIChpc0R5bmFtaWNOb2RlKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBub2RlLmNvbG9yXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbG9yLnNldChub2RlLmNvbG9yKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChub2RlLnR5cGUgPT09ICdkZWZhdWx0LWdyb3VwJyAmJiBub2RlLnJlc2l6YWJsZSkge1xuICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgdGhpcy5yZXNpemFibGUgPSBub2RlLnJlc2l6YWJsZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZXNpemFibGUuc2V0KG5vZGUucmVzaXphYmxlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRQb2ludChwb2ludDogUG9pbnQsIHRocm90dGxlOiBib29sZWFuKSB7XG4gICAgaWYgKHRocm90dGxlKSB7XG4gICAgICB0aGlzLmludGVybmFsUG9pbnQuc2V0KHBvaW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub3RUaHJvdHRsZWRQb2ludCQubmV4dChwb2ludClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVE9ETyBmaW5kIHRoZSB3YXkgdG8gaW1wbGVtZW50IHRoaXMgYmV0dGVyXG4gICAqL1xuICBwdWJsaWMgbGlua0RlZmF1bHROb2RlU2l6ZVdpdGhNb2RlbFNpemUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZVxuXG4gICAgc3dpdGNoIChub2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgY2FzZSAnZGVmYXVsdC1ncm91cCc6XG4gICAgICBjYXNlICd0ZW1wbGF0ZS1ncm91cCc6IHtcbiAgICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaXplLnNldCh7XG4gICAgICAgICAgICAgIHdpZHRoOiBub2RlLndpZHRoPy4oKSA/PyBOb2RlTW9kZWwuZGVmYXVsdFdpZHRoLFxuICAgICAgICAgICAgICBoZWlnaHQ6IG5vZGUuaGVpZ2h0Py4oKSA/PyBOb2RlTW9kZWwuZGVmYXVsdEhlaWdodCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2l6ZS5zZXQoe1xuICAgICAgICAgICAgd2lkdGg6IG5vZGUud2lkdGggPz8gTm9kZU1vZGVsLmRlZmF1bHRXaWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogbm9kZS5oZWlnaHQgPz8gTm9kZU1vZGVsLmRlZmF1bHRIZWlnaHRcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2h0bWwtdGVtcGxhdGUnIHx8IHRoaXMuaXNDb21wb25lbnRUeXBlKSB7XG4gICAgICBpZiAoaXNEeW5hbWljTm9kZShub2RlKSkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgIGlmIChub2RlLndpZHRoICYmIG5vZGUuaGVpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnNpemUuc2V0KHtcbiAgICAgICAgICAgICAgd2lkdGg6IG5vZGUud2lkdGgoKSxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBub2RlLmhlaWdodCgpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChub2RlLndpZHRoICYmIG5vZGUuaGVpZ2h0KSB7XG4gICAgICAgICAgdGhpcy5zaXplLnNldCh7IHdpZHRoOiBub2RlLndpZHRoLCBoZWlnaHQ6IG5vZGUuaGVpZ2h0IH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRleHRTaWduYWwoKTogU2lnbmFsPHN0cmluZz4ge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGVcblxuICAgIGlmIChub2RlLnR5cGUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUudGV4dCA/PyBzaWduYWwoJycpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc2lnbmFsKG5vZGUudGV4dCA/PyAnJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmFsKCcnKVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbnRlcm5hbFBvaW50U2lnbmFsKCkge1xuICAgIHJldHVybiBpc0R5bmFtaWNOb2RlKHRoaXMubm9kZSlcbiAgICAgID8gdGhpcy5ub2RlLnBvaW50XG4gICAgICA6IHNpZ25hbCh7IHg6IHRoaXMubm9kZS5wb2ludC54LCB5OiB0aGlzLm5vZGUucG9pbnQueSB9KVxuICB9XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Directive, Input } from "@angular/core";
2
+ import { CustomNodeBaseComponent } from "../../components/custom-node-base/custom-node-base.component";
3
+ import * as i0 from "@angular/core";
4
+ export class CustomDynamicNodeComponent extends CustomNodeBaseComponent {
5
+ ngOnInit() {
6
+ if (this.node.data) {
7
+ this.data = this.node.data;
8
+ }
9
+ super.ngOnInit();
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomDynamicNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CustomDynamicNodeComponent, inputs: { node: "node" }, usesInheritance: true, ngImport: i0 }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomDynamicNodeComponent, decorators: [{
15
+ type: Directive
16
+ }], propDecorators: { node: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWR5bmFtaWMtbm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvcHVibGljLWNvbXBvbmVudHMvY3VzdG9tLWR5bmFtaWMtbm9kZS9jdXN0b20tZHluYW1pYy1ub2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUV4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7QUFHdkcsTUFBTSxPQUFnQiwwQkFBd0MsU0FBUSx1QkFBMEI7SUFPOUUsUUFBUTtRQUN0QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7U0FDM0I7UUFFRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDbEIsQ0FBQzsrR0FibUIsMEJBQTBCO21HQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBRC9DLFNBQVM7OEJBTVEsSUFBSTtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcbmltcG9ydCB7IENvbXBvbmVudER5bmFtaWNOb2RlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ub2RlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDdXN0b21Ob2RlQmFzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2N1c3RvbS1ub2RlLWJhc2UvY3VzdG9tLW5vZGUtYmFzZS5jb21wb25lbnRcIjtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3VzdG9tRHluYW1pY05vZGVDb21wb25lbnQ8VCA9IHVua25vd24+IGV4dGVuZHMgQ3VzdG9tTm9kZUJhc2VDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIG5vZGUgYm91bmQgdG8gdGhpcyBjb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBub2RlITogQ29tcG9uZW50RHluYW1pY05vZGU8VD5cblxuICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm9kZS5kYXRhKSB7XG4gICAgICB0aGlzLmRhdGEgPSB0aGlzLm5vZGUuZGF0YVxuICAgIH1cblxuICAgIHN1cGVyLm5nT25Jbml0KClcbiAgfVxufVxuXG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Directive, Input } from "@angular/core";
2
+ import { CustomNodeBaseComponent } from "../../components/custom-node-base/custom-node-base.component";
3
+ import * as i0 from "@angular/core";
4
+ export class CustomNodeComponent extends CustomNodeBaseComponent {
5
+ ngOnInit() {
6
+ if (this.node.data) {
7
+ this.data.set(this.node.data);
8
+ }
9
+ super.ngOnInit();
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CustomNodeComponent, inputs: { node: "node" }, usesInheritance: true, ngImport: i0 }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomNodeComponent, decorators: [{
15
+ type: Directive
16
+ }], propDecorators: { node: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1ub2RlL2N1c3RvbS1ub2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUV4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7QUFHdkcsTUFBTSxPQUFnQixtQkFBaUMsU0FBUSx1QkFBMEI7SUFPdkUsUUFBUTtRQUN0QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDOUI7UUFFRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDbEIsQ0FBQzsrR0FibUIsbUJBQW1CO21HQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRHhDLFNBQVM7OEJBTVEsSUFBSTtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcbmltcG9ydCB7IENvbXBvbmVudE5vZGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL25vZGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEN1c3RvbU5vZGVCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvY3VzdG9tLW5vZGUtYmFzZS9jdXN0b20tbm9kZS1iYXNlLmNvbXBvbmVudFwiO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDdXN0b21Ob2RlQ29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEN1c3RvbU5vZGVCYXNlQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byBub2RlIGJvdW5kIHRvIHRoaXMgY29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgbm9kZSE6IENvbXBvbmVudE5vZGU8VD5cblxuICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm9kZS5kYXRhKSB7XG4gICAgICB0aGlzLmRhdGEuc2V0KHRoaXMubm9kZS5kYXRhKVxuICAgIH1cblxuICAgIHN1cGVyLm5nT25Jbml0KClcbiAgfVxufVxuXG4iXX0=