ngx-vflow 0.2.2 → 0.4.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 (60) hide show
  1. package/esm2022/lib/vflow/components/edge/edge.component.mjs +18 -6
  2. package/esm2022/lib/vflow/components/edge-label/edge-label.component.mjs +13 -10
  3. package/esm2022/lib/vflow/components/handle/handle.component.mjs +21 -24
  4. package/esm2022/lib/vflow/components/node/node.component.mjs +69 -20
  5. package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +35 -22
  6. package/esm2022/lib/vflow/decorators/microtask.decorator.mjs +11 -0
  7. package/esm2022/lib/vflow/decorators/run-in-injection-context.decorator.mjs +18 -0
  8. package/esm2022/lib/vflow/directives/handle-size-controller.directive.mjs +38 -0
  9. package/esm2022/lib/vflow/directives/map-context.directive.mjs +31 -4
  10. package/esm2022/lib/vflow/directives/root-svg-context.directive.mjs +1 -1
  11. package/esm2022/lib/vflow/directives/selectable.directive.mjs +39 -0
  12. package/esm2022/lib/vflow/interfaces/flow-entity.interface.mjs +2 -0
  13. package/esm2022/lib/vflow/interfaces/template-context.interface.mjs +1 -1
  14. package/esm2022/lib/vflow/models/edge.model.mjs +17 -11
  15. package/esm2022/lib/vflow/models/handle.model.mjs +32 -3
  16. package/esm2022/lib/vflow/models/node.model.mjs +11 -33
  17. package/esm2022/lib/vflow/services/edge-changes.service.mjs +7 -3
  18. package/esm2022/lib/vflow/services/flow-entities.service.mjs +6 -2
  19. package/esm2022/lib/vflow/services/flow-settings.service.mjs +25 -0
  20. package/esm2022/lib/vflow/services/handle.service.mjs +3 -4
  21. package/esm2022/lib/vflow/services/node-changes.service.mjs +7 -3
  22. package/esm2022/lib/vflow/services/node-rendering.service.mjs +22 -0
  23. package/esm2022/lib/vflow/services/selection.service.mjs +45 -0
  24. package/esm2022/lib/vflow/types/edge-change.type.mjs +1 -1
  25. package/esm2022/lib/vflow/types/node-change.type.mjs +1 -1
  26. package/esm2022/lib/vflow/utils/add-nodes-to-edges.mjs +3 -3
  27. package/esm2022/lib/vflow/utils/resizable.mjs +11 -0
  28. package/esm2022/lib/vflow/vflow.module.mjs +11 -3
  29. package/esm2022/public-api.mjs +2 -1
  30. package/fesm2022/ngx-vflow.mjs +536 -253
  31. package/fesm2022/ngx-vflow.mjs.map +1 -1
  32. package/lib/vflow/components/edge/edge.component.d.ts +5 -2
  33. package/lib/vflow/components/handle/handle.component.d.ts +6 -4
  34. package/lib/vflow/components/node/node.component.d.ts +13 -6
  35. package/lib/vflow/components/vflow/vflow.component.d.ts +13 -7
  36. package/lib/vflow/decorators/microtask.decorator.d.ts +1 -0
  37. package/lib/vflow/decorators/run-in-injection-context.decorator.d.ts +5 -0
  38. package/lib/vflow/directives/handle-size-controller.directive.d.ts +10 -0
  39. package/lib/vflow/directives/map-context.directive.d.ts +5 -0
  40. package/lib/vflow/directives/selectable.directive.d.ts +11 -0
  41. package/lib/vflow/interfaces/flow-entity.interface.d.ts +4 -0
  42. package/lib/vflow/interfaces/template-context.interface.d.ts +1 -0
  43. package/lib/vflow/models/edge.model.d.ts +7 -3
  44. package/lib/vflow/models/handle.model.d.ts +30 -2
  45. package/lib/vflow/models/node.model.d.ts +8 -11
  46. package/lib/vflow/services/edge-changes.service.d.ts +5 -0
  47. package/lib/vflow/services/flow-entities.service.d.ts +5 -2
  48. package/lib/vflow/services/flow-settings.service.d.ts +20 -0
  49. package/lib/vflow/services/handle.service.d.ts +3 -6
  50. package/lib/vflow/services/node-changes.service.d.ts +5 -0
  51. package/lib/vflow/services/node-rendering.service.d.ts +9 -0
  52. package/lib/vflow/services/selection.service.d.ts +19 -0
  53. package/lib/vflow/types/edge-change.type.d.ts +5 -1
  54. package/lib/vflow/types/node-change.type.d.ts +5 -1
  55. package/lib/vflow/utils/resizable.d.ts +3 -0
  56. package/lib/vflow/vflow.module.d.ts +5 -3
  57. package/package.json +3 -3
  58. package/public-api.d.ts +1 -0
  59. package/esm2022/lib/vflow/models/flow.model.mjs +0 -18
  60. package/lib/vflow/models/flow.model.d.ts +0 -16
@@ -1,4 +1,4 @@
1
- import { computed } from "@angular/core";
1
+ import { computed, signal } from "@angular/core";
2
2
  import { EdgeLabelModel } from "./edge-label.model";
3
3
  import { straightPath } from "../math/edge-path/straigh-path";
4
4
  import { bezierPath } from "../math/edge-path/bezier-path";
@@ -6,26 +6,32 @@ import { toObservable } from "@angular/core/rxjs-interop";
6
6
  export class EdgeModel {
7
7
  constructor(edge) {
8
8
  this.edge = edge;
9
+ this.source = signal(undefined);
10
+ this.target = signal(undefined);
11
+ this.selected = signal(false);
12
+ this.selected$ = toObservable(this.selected);
9
13
  this.detached = computed(() => {
10
- if (!this.source || !this.target) {
14
+ const source = this.source();
15
+ const target = this.target();
16
+ if (!source || !target) {
11
17
  return true;
12
18
  }
13
19
  let existsSourceHandle = false;
14
20
  let existsTargetHandle = false;
15
21
  if (this.edge.sourceHandle) {
16
- existsSourceHandle = !!this.source.handles()
22
+ existsSourceHandle = !!source.handles()
17
23
  .find(handle => handle.rawHandle.id === this.edge.sourceHandle);
18
24
  }
19
25
  else {
20
- existsSourceHandle = !!this.source.handles()
26
+ existsSourceHandle = !!source.handles()
21
27
  .find(handle => handle.rawHandle.type === 'source');
22
28
  }
23
29
  if (this.edge.targetHandle) {
24
- existsTargetHandle = !!this.target.handles()
30
+ existsTargetHandle = !!target.handles()
25
31
  .find(handle => handle.rawHandle.id === this.edge.targetHandle);
26
32
  }
27
33
  else {
28
- existsTargetHandle = !!this.target.handles()
34
+ existsTargetHandle = !!target.handles()
29
35
  .find(handle => handle.rawHandle.type === 'target');
30
36
  }
31
37
  return !existsSourceHandle || !existsTargetHandle;
@@ -34,20 +40,20 @@ export class EdgeModel {
34
40
  this.path = computed(() => {
35
41
  let source;
36
42
  if (this.edge.sourceHandle) {
37
- source = this.source.handles()
43
+ source = this.source()?.handles()
38
44
  .find(handle => handle.rawHandle.id === this.edge.sourceHandle);
39
45
  }
40
46
  else {
41
- source = this.source.handles()
47
+ source = this.source()?.handles()
42
48
  .find(handle => handle.rawHandle.type === 'source');
43
49
  }
44
50
  let target;
45
51
  if (this.edge.targetHandle) {
46
- target = this.target.handles()
52
+ target = this.target()?.handles()
47
53
  .find(handle => handle.rawHandle.id === this.edge.targetHandle);
48
54
  }
49
55
  else {
50
- target = this.target.handles()
56
+ target = this.target()?.handles()
51
57
  .find(handle => handle.rawHandle.type === 'target');
52
58
  }
53
59
  // TODO: don't like this
@@ -80,4 +86,4 @@ export class EdgeModel {
80
86
  this.usingPoints = [!!this.edgeLabels.start, !!this.edgeLabels.center, !!this.edgeLabels.end];
81
87
  }
82
88
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvZWRnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxNQUFNLE9BQU8sU0FBUztJQW1GcEIsWUFBbUIsSUFBVTtRQUFWLFNBQUksR0FBSixJQUFJLENBQU07UUE3RXRCLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDaEMsT0FBTyxJQUFJLENBQUE7YUFDWjtZQUVELElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFBO1lBQzlCLElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFBO1lBRTlCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzFCLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtxQkFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTthQUNsRTtpQkFBTTtnQkFDTCxrQkFBa0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVB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Y29yZVwiO1xuaW1wb3J0IHsgRWRnZUxhYmVsUG9zaXRpb24gfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9lZGdlLWxhYmVsLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRWRnZSwgQ3VydmUsIEVkZ2VUeXBlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvZWRnZS5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEVkZ2VMYWJlbE1vZGVsIH0gZnJvbSBcIi4vZWRnZS1sYWJlbC5tb2RlbFwiO1xuaW1wb3J0IHsgTm9kZU1vZGVsIH0gZnJvbSBcIi4vbm9kZS5tb2RlbFwiO1xuaW1wb3J0IHsgc3RyYWlnaHRQYXRoIH0gZnJvbSBcIi4uL21hdGgvZWRnZS1wYXRoL3N0cmFpZ2gtcGF0aFwiO1xuaW1wb3J0IHsgYmV6aWVyUGF0aCB9IGZyb20gXCIuLi9tYXRoL2VkZ2UtcGF0aC9iZXppZXItcGF0aFwiO1xuaW1wb3J0IHsgVXNpbmdQb2ludHMgfSBmcm9tIFwiLi4vdHlwZXMvdXNpbmctcG9pbnRzLnR5cGVcIjtcbmltcG9ydCB7IFBvaW50IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcG9pbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gXCIuL2hhbmRsZS5tb2RlbFwiO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5cbmV4cG9ydCBjbGFzcyBFZGdlTW9kZWwge1xuICBwdWJsaWMgc291cmNlITogTm9kZU1vZGVsXG4gIHB1YmxpYyB0YXJnZXQhOiBOb2RlTW9kZWxcbiAgcHVibGljIGN1cnZlOiBDdXJ2ZVxuICBwdWJsaWMgdHlwZTogRWRnZVR5cGVcblxuICBwdWJsaWMgZGV0YWNoZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnNvdXJjZSB8fCAhdGhpcy50YXJnZXQpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgbGV0IGV4aXN0c1NvdXJjZUhhbmRsZSA9IGZhbHNlXG4gICAgbGV0IGV4aXN0c1RhcmdldEhhbmRsZSA9IGZhbHNlXG5cbiAgICBpZiAodGhpcy5lZGdlLnNvdXJjZUhhbmRsZSkge1xuICAgICAgZXhpc3RzU291cmNlSGFuZGxlID0gISF0aGlzLnNvdXJjZS5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoaGFuZGxlID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS5zb3VyY2VIYW5kbGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0c1NvdXJjZUhhbmRsZSA9ICEhdGhpcy5zb3VyY2UuaGFuZGxlcygpXG4gICAgICAgIC5maW5kKGhhbmRsZSA9PiBoYW5kbGUucmF3SGFuZGxlLnR5cGUgPT09ICdzb3VyY2UnKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmVkZ2UudGFyZ2V0SGFuZGxlKSB7XG4gICAgICBleGlzdHNUYXJnZXRIYW5kbGUgPSAhIXRoaXMudGFyZ2V0LmhhbmRsZXMoKVxuICAgICAgICAuZmluZChoYW5kbGUgPT4gaGFuZGxlLnJhd0hhbmRsZS5pZCA9PT0gdGhpcy5lZGdlLnRhcmdldEhhbmRsZSlcbiAgICB9IGVsc2Uge1xuICAgICAgZXhpc3RzVGFyZ2V0SGFuZGxlID0gISF0aGlzLnRhcmdldC5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoaGFuZGxlID0+IGhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3RhcmdldCcpXG4gICAgfVxuXG4gICAgcmV0dXJuICFleGlzdHNTb3VyY2VIYW5kbGUgfHwgIWV4aXN0c1RhcmdldEhhbmRsZVxuICB9KVxuXG4gIHB1YmxpYyBkZXRhY2hlZCQgPSB0b09ic2VydmFibGUodGhpcy5kZXRhY2hlZClcblxuICBwdWJsaWMgcGF0aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBsZXQgc291cmNlOiBIYW5kbGVNb2RlbCB8IHVuZGVmaW5lZFxuICAgIGlmICh0aGlzLmVkZ2Uuc291cmNlSGFuZGxlKSB7XG4gICAgICBzb3VyY2UgPSB0aGlzLnNvdXJjZS5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoaGFuZGxlID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS5zb3VyY2VIYW5kbGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNvdXJjZSA9IHRoaXMuc291cmNlLmhhbmRsZXMoKVxuICAgICAgICAuZmluZChoYW5kbGUgPT4gaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAnc291cmNlJylcbiAgICB9XG5cbiAgICBsZXQgdGFyZ2V0OiBIYW5kbGVNb2RlbCB8IHVuZGVmaW5lZFxuICAgIGlmICh0aGlzLmVkZ2UudGFyZ2V0SGFuZGxlKSB7XG4gICAgICB0YXJnZXQgPSB0aGlzLnRhcmdldC5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoaGFuZGxlID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldCA9IHRoaXMudGFyZ2V0LmhhbmRsZXMoKVxuICAgICAgICAuZmluZChoYW5kbGUgPT4gaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAndGFyZ2V0JylcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBkb24ndCBsaWtlIHRoaXNcbiAgICBpZiAoIXNvdXJjZSB8fCAhdGFyZ2V0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgcG9pbnRzOiB7XG4gICAgICAgICAgc3RhcnQ6IHsgeDogMCwgeTogMCB9LFxuICAgICAgICAgIGNlbnRlcjogeyB4OiAwLCB5OiAwIH0sXG4gICAgICAgICAgZW5kOiB7IHg6IDAsIHk6IDAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLmN1cnZlKSB7XG4gICAgICBjYXNlICdzdHJhaWdodCc6XG4gICAgICAgIHJldHVybiBzdHJhaWdodFBhdGgoc291cmNlLnBvaW50QWJzb2x1dGUoKSwgdGFyZ2V0LnBvaW50QWJzb2x1dGUoKSwgdGhpcy51c2luZ1BvaW50cylcbiAgICAgIGNhc2UgJ2Jlemllcic6XG4gICAgICAgIHJldHVybiBiZXppZXJQYXRoKFxuICAgICAgICAgIHNvdXJjZS5wb2ludEFic29sdXRlKCksIHRhcmdldC5wb2ludEFic29sdXRlKCksXG4gICAgICAgICAgc291cmNlLnJhd0hhbmRsZS5wb3NpdGlvbixcbiAgICAgICAgICB0YXJnZXQucmF3SGFuZGxlLnBvc2l0aW9uLFxuICAgICAgICAgIHRoaXMudXNpbmdQb2ludHNcbiAgICAgICAgKVxuICAgIH1cbiAgfSlcblxuICBwdWJsaWMgZWRnZUxhYmVsczogeyBbcG9zaXRpb24gaW4gRWRnZUxhYmVsUG9zaXRpb25dPzogRWRnZUxhYmVsTW9kZWwgfSA9IHt9XG5cbiAgcHJpdmF0ZSB1c2luZ1BvaW50czogVXNpbmdQb2ludHNcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWRnZTogRWRnZSkge1xuICAgIHRoaXMudHlwZSA9IGVkZ2UudHlwZSA/PyAnZGVmYXVsdCdcbiAgICB0aGlzLmN1cnZlID0gZWRnZS5jdXJ2ZSA/PyAnYmV6aWVyJ1xuXG4gICAgaWYgKGVkZ2UuZWRnZUxhYmVscz8uc3RhcnQpIHRoaXMuZWRnZUxhYmVscy5zdGFydCA9IG5ldyBFZGdlTGFiZWxNb2RlbChlZGdlLmVkZ2VMYWJlbHMuc3RhcnQpXG4gICAgaWYgKGVkZ2UuZWRnZUxhYmVscz8uY2VudGVyKSB0aGlzLmVkZ2VMYWJlbHMuY2VudGVyID0gbmV3IEVkZ2VMYWJlbE1vZGVsKGVkZ2UuZWRnZUxhYmVscy5jZW50ZXIpXG4gICAgaWYgKGVkZ2UuZWRnZUxhYmVscz8uZW5kKSB0aGlzLmVkZ2VMYWJlbHMuZW5kID0gbmV3IEVkZ2VMYWJlbE1vZGVsKGVkZ2UuZWRnZUxhYmVscy5lbmQpXG5cbiAgICB0aGlzLnVzaW5nUG9pbnRzID0gWyEhdGhpcy5lZGdlTGFiZWxzLnN0YXJ0LCAhIXRoaXMuZWRnZUxhYmVscy5jZW50ZXIsICEhdGhpcy5lZGdlTGFiZWxzLmVuZF1cbiAgfVxufVxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvZWRnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzFELE1BQU0sT0FBTyxTQUFTO0lBeUZwQixZQUFtQixJQUFVO1FBQVYsU0FBSSxHQUFKLElBQUksQ0FBTTtRQXhGdEIsV0FBTSxHQUFHLE1BQU0sQ0FBd0IsU0FBUyxDQUFDLENBQUE7UUFDakQsV0FBTSxHQUFHLE1BQU0sQ0FBd0IsU0FBUyxDQUFDLENBQUE7UUFJakQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixjQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV4QyxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO1lBRTVCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFBO2FBQ1o7WUFFRCxJQUFJLGtCQUFrQixHQUFHLEtBQUssQ0FBQTtZQUM5QixJQUFJLGtCQUFrQixHQUFHLEtBQUssQ0FBQTtZQUU5QixJQUFJ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LENBQUMsQ0FBQTtRQUV2RixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMvRixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZVNpZ25hbCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFZGdlTGFiZWxQb3NpdGlvbiB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2VkZ2UtbGFiZWwuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBFZGdlLCBDdXJ2ZSwgRWRnZVR5cGUgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9lZGdlLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRWRnZUxhYmVsTW9kZWwgfSBmcm9tIFwiLi9lZGdlLWxhYmVsLm1vZGVsXCI7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tIFwiLi9ub2RlLm1vZGVsXCI7XG5pbXBvcnQgeyBzdHJhaWdodFBhdGggfSBmcm9tIFwiLi4vbWF0aC9lZGdlLXBhdGgvc3RyYWlnaC1wYXRoXCI7XG5pbXBvcnQgeyBiZXppZXJQYXRoIH0gZnJvbSBcIi4uL21hdGgvZWRnZS1wYXRoL2Jlemllci1wYXRoXCI7XG5pbXBvcnQgeyBVc2luZ1BvaW50cyB9IGZyb20gXCIuLi90eXBlcy91c2luZy1wb2ludHMudHlwZVwiO1xuaW1wb3J0IHsgSGFuZGxlTW9kZWwgfSBmcm9tIFwiLi9oYW5kbGUubW9kZWxcIjtcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgRmxvd0VudGl0eSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2Zsb3ctZW50aXR5LmludGVyZmFjZVwiO1xuXG5leHBvcnQgY2xhc3MgRWRnZU1vZGVsIGltcGxlbWVudHMgRmxvd0VudGl0eSB7XG4gIHB1YmxpYyBzb3VyY2UgPSBzaWduYWw8Tm9kZU1vZGVsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIHB1YmxpYyB0YXJnZXQgPSBzaWduYWw8Tm9kZU1vZGVsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIHB1YmxpYyBjdXJ2ZTogQ3VydmVcbiAgcHVibGljIHR5cGU6IEVkZ2VUeXBlXG5cbiAgcHVibGljIHNlbGVjdGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgcHVibGljIHNlbGVjdGVkJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnNlbGVjdGVkKTtcblxuICBwdWJsaWMgZGV0YWNoZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5zb3VyY2UoKVxuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMudGFyZ2V0KClcblxuICAgIGlmICghc291cmNlIHx8ICF0YXJnZXQpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgbGV0IGV4aXN0c1NvdXJjZUhhbmRsZSA9IGZhbHNlXG4gICAgbGV0IGV4aXN0c1RhcmdldEhhbmRsZSA9IGZhbHNlXG5cbiAgICBpZiAodGhpcy5lZGdlLnNvdXJjZUhhbmRsZSkge1xuICAgICAgZXhpc3RzU291cmNlSGFuZGxlID0gISFzb3VyY2UuaGFuZGxlcygpXG4gICAgICAgIC5maW5kKGhhbmRsZSA9PiBoYW5kbGUucmF3SGFuZGxlLmlkID09PSB0aGlzLmVkZ2Uuc291cmNlSGFuZGxlKVxuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdHNTb3VyY2VIYW5kbGUgPSAhIXNvdXJjZS5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoaGFuZGxlID0+IGhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3NvdXJjZScpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpIHtcbiAgICAgIGV4aXN0c1RhcmdldEhhbmRsZSA9ICEhdGFyZ2V0LmhhbmRsZXMoKVxuICAgICAgICAuZmluZChoYW5kbGUgPT4gaGFuZGxlLnJhd0hhbmRsZS5pZCA9PT0gdGhpcy5lZGdlLnRhcmdldEhhbmRsZSlcbiAgICB9IGVsc2Uge1xuICAgICAgZXhpc3RzVGFyZ2V0SGFuZGxlID0gISF0YXJnZXQuaGFuZGxlcygpXG4gICAgICAgIC5maW5kKGhhbmRsZSA9PiBoYW5kbGUucmF3SGFuZGxlLnR5cGUgPT09ICd0YXJnZXQnKVxuICAgIH1cblxuICAgIHJldHVybiAhZXhpc3RzU291cmNlSGFuZGxlIHx8ICFleGlzdHNUYXJnZXRIYW5kbGVcbiAgfSlcblxuICBwdWJsaWMgZGV0YWNoZWQkID0gdG9PYnNlcnZhYmxlKHRoaXMuZGV0YWNoZWQpXG5cbiAgcHVibGljIHBhdGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgbGV0IHNvdXJjZTogSGFuZGxlTW9kZWwgfCB1bmRlZmluZWRcbiAgICBpZiAodGhpcy5lZGdlLnNvdXJjZUhhbmRsZSkge1xuICAgICAgc291cmNlID0gdGhpcy5zb3VyY2UoKT8uaGFuZGxlcygpXG4gICAgICAgIC5maW5kKGhhbmRsZSA9PiBoYW5kbGUucmF3SGFuZGxlLmlkID09PSB0aGlzLmVkZ2Uuc291cmNlSGFuZGxlKVxuICAgIH0gZWxzZSB7XG4gICAgICBzb3VyY2UgPSB0aGlzLnNvdXJjZSgpPy5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoaGFuZGxlID0+IGhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3NvdXJjZScpXG4gICAgfVxuXG4gICAgbGV0IHRhcmdldDogSGFuZGxlTW9kZWwgfCB1bmRlZmluZWRcbiAgICBpZiAodGhpcy5lZGdlLnRhcmdldEhhbmRsZSkge1xuICAgICAgdGFyZ2V0ID0gdGhpcy50YXJnZXQoKT8uaGFuZGxlcygpXG4gICAgICAgIC5maW5kKGhhbmRsZSA9PiBoYW5kbGUucmF3SGFuZGxlLmlkID09PSB0aGlzLmVkZ2UudGFyZ2V0SGFuZGxlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXQgPSB0aGlzLnRhcmdldCgpPy5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoaGFuZGxlID0+IGhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3RhcmdldCcpXG4gICAgfVxuXG4gICAgLy8gVE9ETzogZG9uJ3QgbGlrZSB0aGlzXG4gICAgaWYgKCFzb3VyY2UgfHwgIXRhcmdldCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIHBvaW50czoge1xuICAgICAgICAgIHN0YXJ0OiB7IHg6IDAsIHk6IDAgfSxcbiAgICAgICAgICBjZW50ZXI6IHsgeDogMCwgeTogMCB9LFxuICAgICAgICAgIGVuZDogeyB4OiAwLCB5OiAwIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5jdXJ2ZSkge1xuICAgICAgY2FzZSAnc3RyYWlnaHQnOlxuICAgICAgICByZXR1cm4gc3RyYWlnaHRQYXRoKHNvdXJjZS5wb2ludEFic29sdXRlKCksIHRhcmdldC5wb2ludEFic29sdXRlKCksIHRoaXMudXNpbmdQb2ludHMpXG4gICAgICBjYXNlICdiZXppZXInOlxuICAgICAgICByZXR1cm4gYmV6aWVyUGF0aChcbiAgICAgICAgICBzb3VyY2UucG9pbnRBYnNvbHV0ZSgpLCB0YXJnZXQucG9pbnRBYnNvbHV0ZSgpLFxuICAgICAgICAgIHNvdXJjZS5yYXdIYW5kbGUucG9zaXRpb24sXG4gICAgICAgICAgdGFyZ2V0LnJhd0hhbmRsZS5wb3NpdGlvbixcbiAgICAgICAgICB0aGlzLnVzaW5nUG9pbnRzXG4gICAgICAgIClcbiAgICB9XG4gIH0pXG5cbiAgcHVibGljIGVkZ2VMYWJlbHM6IHsgW3Bvc2l0aW9uIGluIEVkZ2VMYWJlbFBvc2l0aW9uXT86IEVkZ2VMYWJlbE1vZGVsIH0gPSB7fVxuXG4gIHByaXZhdGUgdXNpbmdQb2ludHM6IFVzaW5nUG9pbnRzXG5cbiAgY29uc3RydWN0b3IocHVibGljIGVkZ2U6IEVkZ2UpIHtcbiAgICB0aGlzLnR5cGUgPSBlZGdlLnR5cGUgPz8gJ2RlZmF1bHQnXG4gICAgdGhpcy5jdXJ2ZSA9IGVkZ2UuY3VydmUgPz8gJ2JlemllcidcblxuICAgIGlmIChlZGdlLmVkZ2VMYWJlbHM/LnN0YXJ0KSB0aGlzLmVkZ2VMYWJlbHMuc3RhcnQgPSBuZXcgRWRnZUxhYmVsTW9kZWwoZWRnZS5lZGdlTGFiZWxzLnN0YXJ0KVxuICAgIGlmIChlZGdlLmVkZ2VMYWJlbHM/LmNlbnRlcikgdGhpcy5lZGdlTGFiZWxzLmNlbnRlciA9IG5ldyBFZGdlTGFiZWxNb2RlbChlZGdlLmVkZ2VMYWJlbHMuY2VudGVyKVxuICAgIGlmIChlZGdlLmVkZ2VMYWJlbHM/LmVuZCkgdGhpcy5lZGdlTGFiZWxzLmVuZCA9IG5ldyBFZGdlTGFiZWxNb2RlbChlZGdlLmVkZ2VMYWJlbHMuZW5kKVxuXG4gICAgdGhpcy51c2luZ1BvaW50cyA9IFshIXRoaXMuZWRnZUxhYmVscy5zdGFydCwgISF0aGlzLmVkZ2VMYWJlbHMuY2VudGVyLCAhIXRoaXMuZWRnZUxhYmVscy5lbmRdXG4gIH1cbn1cbiJdfQ==
@@ -1,9 +1,15 @@
1
1
  import { computed, signal } from "@angular/core";
2
+ import { Subject, map } from "rxjs";
3
+ import { toSignal } from "@angular/core/rxjs-interop";
2
4
  export class HandleModel {
3
5
  constructor(rawHandle, parentNode) {
4
6
  this.rawHandle = rawHandle;
5
7
  this.parentNode = parentNode;
6
8
  this.strokeWidth = 2;
9
+ /**
10
+ * Pre-computed size for default handle, changed dynamically
11
+ * for custom handles
12
+ */
7
13
  this.size = signal({
8
14
  width: 10 + (2 * this.strokeWidth),
9
15
  height: 10 + (2 * this.strokeWidth)
@@ -42,8 +48,31 @@ export class HandleModel {
42
48
  y: this.parentNode.point().y + this.offset().y + this.sizeOffset().y,
43
49
  };
44
50
  });
45
- this.parentSize = signal(this.rawHandle.parentSize);
46
- this.parentPosition = signal(this.rawHandle.parentPosition);
51
+ this.state = signal('idle');
52
+ this.updateParentSizeAndPosition$ = new Subject();
53
+ this.parentSize = toSignal(this.updateParentSizeAndPosition$.pipe(map(() => ({
54
+ width: this.parentReference.offsetWidth,
55
+ height: this.parentReference.offsetHeight
56
+ }))), {
57
+ initialValue: { width: 0, height: 0 }
58
+ });
59
+ this.parentPosition = toSignal(this.updateParentSizeAndPosition$.pipe(map(() => ({
60
+ x: this.parentReference.offsetLeft,
61
+ y: this.parentReference.offsetTop
62
+ }))), {
63
+ initialValue: { x: 0, y: 0 }
64
+ });
65
+ this.parentReference = this.rawHandle.parentReference;
66
+ this.template = this.rawHandle.template;
67
+ this.templateContext = {
68
+ $implicit: {
69
+ point: this.offset,
70
+ state: this.state
71
+ }
72
+ };
73
+ }
74
+ updateParent() {
75
+ this.updateParentSizeAndPosition$.next();
47
76
  }
48
77
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L21vZGVscy9oYW5kbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsTUFBTSxPQUFPLFdBQVc7SUFnRHRCLFlBQ1MsU0FBcUIsRUFDcEIsVUFBcUI7UUFEdEIsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBakRmLGdCQUFXLEdBQUcsQ0FBQyxDQUFBO1FBRXhCLFNBQUksR0FBRyxNQUFNLENBQUM7WUFDbkIsS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUNwQyxDQUFDLENBQUE7UUFFSyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM1QixRQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUMvQixLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU87b0JBQ2xCLENBQUMsRUFBRSxDQUFDO29CQUNKLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7aUJBQzVELENBQUE7Z0JBQ0QsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPO29CQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO29CQUMvQixDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUM1RCxDQUFBO2dCQUNELEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTztvQkFDakIsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztvQkFDMUQsQ0FBQyxFQUFFLENBQUM7aUJBQ0wsQ0FBQTtnQkFDRCxLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU87b0JBQ3BCLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQztvQkFDeEQsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTTtpQkFDakMsQ0FBQTthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFSyxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxRQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUMvQixLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFBO2dCQUN6RCxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFBO2dCQUN2RCxLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFBO2dCQUN6RCxLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFBO2FBQzFEO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFSyxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsT0FBTztnQkFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDcEUsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7YUFDckUsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBRUssZUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzlDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUE7SUFLekQsQ0FBQztDQUNOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOb2RlSGFuZGxlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2hhbmRsZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tIFwiLi9ub2RlLm1vZGVsXCI7XG5leHBvcnQgY2xhc3MgSGFuZGxlTW9kZWwge1xuICBwdWJsaWMgcmVhZG9ubHkgc3Ryb2tlV2lkdGggPSAyXG5cbiAgcHVibGljIHNpemUgPSBzaWduYWwoe1xuICAgIHdpZHRoOiAxMCArICgyICogdGhpcy5zdHJva2VXaWR0aCksXG4gICAgaGVpZ2h0OiAxMCArICgyICogdGhpcy5zdHJva2VXaWR0aClcbiAgfSlcblxuICBwdWJsaWMgb2Zmc2V0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHN3aXRjaCAodGhpcy5yYXdIYW5kbGUucG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ2xlZnQnOiByZXR1cm4ge1xuICAgICAgICB4OiAwLFxuICAgICAgICB5OiB0aGlzLnBhcmVudFBvc2l0aW9uKCkueSArICh0aGlzLnBhcmVudFNpemUoKS5oZWlnaHQgLyAyKVxuICAgICAgfVxuICAgICAgY2FzZSAncmlnaHQnOiByZXR1cm4ge1xuICAgICAgICB4OiB0aGlzLnBhcmVudE5vZGUuc2l6ZSgpLndpZHRoLFxuICAgICAgICB5OiB0aGlzLnBhcmVudFBvc2l0aW9uKCkueSArICh0aGlzLnBhcmVudFNpemUoKS5oZWlnaHQgLyAyKVxuICAgICAgfVxuICAgICAgY2FzZSAndG9wJzogcmV0dXJuIHtcbiAgICAgICAgeDogdGhpcy5wYXJlbnRQb3NpdGlvbigpLnggKyAodGhpcy5wYXJlbnRTaXplKCkud2lkdGggLyAyKSxcbiAgICAgICAgeTogMFxuICAgICAgfVxuICAgICAgY2FzZSAnYm90dG9tJzogcmV0dXJuIHtcbiAgICAgICAgeDogdGhpcy5wYXJlbnRQb3NpdGlvbigpLnggKyB0aGlzLnBhcmVudFNpemUoKS53aWR0aCAvIDIsXG4gICAgICAgIHk6IHRoaXMucGFyZW50Tm9kZS5zaXplKCkuaGVpZ2h0XG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHB1YmxpYyBzaXplT2Zmc2V0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHN3aXRjaCAodGhpcy5yYXdIYW5kbGUucG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ2xlZnQnOiByZXR1cm4geyB4OiAtKHRoaXMuc2l6ZSgpLndpZHRoIC8gMiksIHk6IDAgfVxuICAgICAgY2FzZSAncmlnaHQnOiByZXR1cm4geyB4OiB0aGlzLnNpemUoKS53aWR0aCAvIDIsIHk6IDAgfVxuICAgICAgY2FzZSAndG9wJzogcmV0dXJuIHsgeDogMCwgeTogLSh0aGlzLnNpemUoKS5oZWlnaHQgLyAyKSB9XG4gICAgICBjYXNlICdib3R0b20nOiByZXR1cm4geyB4OiAwLCB5OiB0aGlzLnNpemUoKS5oZWlnaHQgLyAyIH1cbiAgICB9XG4gIH0pXG5cbiAgcHVibGljIHBvaW50QWJzb2x1dGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHRoaXMucGFyZW50Tm9kZS5wb2ludCgpLnggKyB0aGlzLm9mZnNldCgpLnggKyB0aGlzLnNpemVPZmZzZXQoKS54LFxuICAgICAgeTogdGhpcy5wYXJlbnROb2RlLnBvaW50KCkueSArIHRoaXMub2Zmc2V0KCkueSArIHRoaXMuc2l6ZU9mZnNldCgpLnksXG4gICAgfVxuICB9KVxuXG4gIHB1YmxpYyBwYXJlbnRTaXplID0gc2lnbmFsKHRoaXMucmF3SGFuZGxlLnBhcmVudFNpemUpXG4gIHB1YmxpYyBwYXJlbnRQb3NpdGlvbiA9IHNpZ25hbCh0aGlzLnJhd0hhbmRsZS5wYXJlbnRQb3NpdGlvbilcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmF3SGFuZGxlOiBOb2RlSGFuZGxlLFxuICAgIHByaXZhdGUgcGFyZW50Tm9kZTogTm9kZU1vZGVsXG4gICkgeyB9XG59XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L21vZGVscy9oYW5kbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXRELE1BQU0sT0FBTyxXQUFXO0lBd0Z0QixZQUNTLFNBQXFCLEVBQ3BCLFVBQXFCO1FBRHRCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQXpGZixnQkFBVyxHQUFHLENBQUMsQ0FBQTtRQUUvQjs7O1dBR0c7UUFDSSxTQUFJLEdBQUcsTUFBTSxDQUFDO1lBQ25CLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNsQyxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDcEMsQ0FBQyxDQUFBO1FBRUssV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsUUFBUSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDL0IsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPO29CQUNsQixDQUFDLEVBQUUsQ0FBQztvQkFDSixDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUM1RCxDQUFBO2dCQUNELEtBQUssT0FBTyxDQUFDLENBQUMsT0FBTztvQkFDbkIs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QUUsQ0FBQyxFQUFFO1NBQ3RDLENBQ0YsQ0FBQTtRQUVNLG1CQUFjLEdBQUcsUUFBUSxDQUM5QixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNULENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVU7WUFDbEMsQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUztTQUNsQyxDQUFDLENBQUMsQ0FDSixFQUNEO1lBQ0UsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1NBQzdCLENBQ0YsQ0FBQTtRQUVNLG9CQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFnQixDQUFBO1FBRWpELGFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQTtRQUVsQyxvQkFBZSxHQUFHO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzthQUNsQjtTQUNGLENBQUE7SUFLRyxDQUFDO0lBRUUsWUFBWTtRQUNqQixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDMUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOb2RlSGFuZGxlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2hhbmRsZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tIFwiLi9ub2RlLm1vZGVsXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBtYXAgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcblxuZXhwb3J0IHR5cGUgSGFuZGxlU3RhdGUgPSAndmFsaWQnIHwgJ2ludmFsaWQnIHwgJ2lkbGUnXG5cbmV4cG9ydCBjbGFzcyBIYW5kbGVNb2RlbCB7XG4gIHB1YmxpYyByZWFkb25seSBzdHJva2VXaWR0aCA9IDJcblxuICAvKipcbiAgICogUHJlLWNvbXB1dGVkIHNpemUgZm9yIGRlZmF1bHQgaGFuZGxlLCBjaGFuZ2VkIGR5bmFtaWNhbGx5XG4gICAqIGZvciBjdXN0b20gaGFuZGxlc1xuICAgKi9cbiAgcHVibGljIHNpemUgPSBzaWduYWwoe1xuICAgIHdpZHRoOiAxMCArICgyICogdGhpcy5zdHJva2VXaWR0aCksXG4gICAgaGVpZ2h0OiAxMCArICgyICogdGhpcy5zdHJva2VXaWR0aClcbiAgfSlcblxuICBwdWJsaWMgb2Zmc2V0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHN3aXRjaCAodGhpcy5yYXdIYW5kbGUucG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ2xlZnQnOiByZXR1cm4ge1xuICAgICAgICB4OiAwLFxuICAgICAgICB5OiB0aGlzLnBhcmVudFBvc2l0aW9uKCkueSArICh0aGlzLnBhcmVudFNpemUoKS5oZWlnaHQgLyAyKVxuICAgICAgfVxuICAgICAgY2FzZSAncmlnaHQnOiByZXR1cm4ge1xuICAgICAgICB4OiB0aGlzLnBhcmVudE5vZGUuc2l6ZSgpLndpZHRoLFxuICAgICAgICB5OiB0aGlzLnBhcmVudFBvc2l0aW9uKCkueSArICh0aGlzLnBhcmVudFNpemUoKS5oZWlnaHQgLyAyKVxuICAgICAgfVxuICAgICAgY2FzZSAndG9wJzogcmV0dXJuIHtcbiAgICAgICAgeDogdGhpcy5wYXJlbnRQb3NpdGlvbigpLnggKyAodGhpcy5wYXJlbnRTaXplKCkud2lkdGggLyAyKSxcbiAgICAgICAgeTogMFxuICAgICAgfVxuICAgICAgY2FzZSAnYm90dG9tJzogcmV0dXJuIHtcbiAgICAgICAgeDogdGhpcy5wYXJlbnRQb3NpdGlvbigpLnggKyB0aGlzLnBhcmVudFNpemUoKS53aWR0aCAvIDIsXG4gICAgICAgIHk6IHRoaXMucGFyZW50Tm9kZS5zaXplKCkuaGVpZ2h0XG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHB1YmxpYyBzaXplT2Zmc2V0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHN3aXRjaCAodGhpcy5yYXdIYW5kbGUucG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ2xlZnQnOiByZXR1cm4geyB4OiAtKHRoaXMuc2l6ZSgpLndpZHRoIC8gMiksIHk6IDAgfVxuICAgICAgY2FzZSAncmlnaHQnOiByZXR1cm4geyB4OiB0aGlzLnNpemUoKS53aWR0aCAvIDIsIHk6IDAgfVxuICAgICAgY2FzZSAndG9wJzogcmV0dXJuIHsgeDogMCwgeTogLSh0aGlzLnNpemUoKS5oZWlnaHQgLyAyKSB9XG4gICAgICBjYXNlICdib3R0b20nOiByZXR1cm4geyB4OiAwLCB5OiB0aGlzLnNpemUoKS5oZWlnaHQgLyAyIH1cbiAgICB9XG4gIH0pXG5cbiAgcHVibGljIHBvaW50QWJzb2x1dGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHRoaXMucGFyZW50Tm9kZS5wb2ludCgpLnggKyB0aGlzLm9mZnNldCgpLnggKyB0aGlzLnNpemVPZmZzZXQoKS54LFxuICAgICAgeTogdGhpcy5wYXJlbnROb2RlLnBvaW50KCkueSArIHRoaXMub2Zmc2V0KCkueSArIHRoaXMuc2l6ZU9mZnNldCgpLnksXG4gICAgfVxuICB9KVxuXG4gIHB1YmxpYyBzdGF0ZSA9IHNpZ25hbDxIYW5kbGVTdGF0ZT4oJ2lkbGUnKVxuXG4gIHByaXZhdGUgdXBkYXRlUGFyZW50U2l6ZUFuZFBvc2l0aW9uJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICBwdWJsaWMgcGFyZW50U2l6ZSA9IHRvU2lnbmFsKFxuICAgIHRoaXMudXBkYXRlUGFyZW50U2l6ZUFuZFBvc2l0aW9uJC5waXBlKFxuICAgICAgbWFwKCgpID0+ICh7XG4gICAgICAgIHdpZHRoOiB0aGlzLnBhcmVudFJlZmVyZW5jZS5vZmZzZXRXaWR0aCxcbiAgICAgICAgaGVpZ2h0OiB0aGlzLnBhcmVudFJlZmVyZW5jZS5vZmZzZXRIZWlnaHRcbiAgICAgIH0pKVxuICAgICksXG4gICAge1xuICAgICAgaW5pdGlhbFZhbHVlOiB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfVxuICAgIH1cbiAgKVxuXG4gIHB1YmxpYyBwYXJlbnRQb3NpdGlvbiA9IHRvU2lnbmFsKFxuICAgIHRoaXMudXBkYXRlUGFyZW50U2l6ZUFuZFBvc2l0aW9uJC5waXBlKFxuICAgICAgbWFwKCgpID0+ICh7XG4gICAgICAgIHg6IHRoaXMucGFyZW50UmVmZXJlbmNlLm9mZnNldExlZnQsXG4gICAgICAgIHk6IHRoaXMucGFyZW50UmVmZXJlbmNlLm9mZnNldFRvcFxuICAgICAgfSkpXG4gICAgKSxcbiAgICB7XG4gICAgICBpbml0aWFsVmFsdWU6IHsgeDogMCwgeTogMCB9XG4gICAgfVxuICApXG5cbiAgcHVibGljIHBhcmVudFJlZmVyZW5jZSA9IHRoaXMucmF3SGFuZGxlLnBhcmVudFJlZmVyZW5jZSFcblxuICBwdWJsaWMgdGVtcGxhdGUgPSB0aGlzLnJhd0hhbmRsZS50ZW1wbGF0ZVxuXG4gIHB1YmxpYyB0ZW1wbGF0ZUNvbnRleHQgPSB7XG4gICAgJGltcGxpY2l0OiB7XG4gICAgICBwb2ludDogdGhpcy5vZmZzZXQsXG4gICAgICBzdGF0ZTogdGhpcy5zdGF0ZVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByYXdIYW5kbGU6IE5vZGVIYW5kbGUsXG4gICAgcHJpdmF0ZSBwYXJlbnROb2RlOiBOb2RlTW9kZWxcbiAgKSB7IH1cblxuICBwdWJsaWMgdXBkYXRlUGFyZW50KCkge1xuICAgIHRoaXMudXBkYXRlUGFyZW50U2l6ZUFuZFBvc2l0aW9uJC5uZXh0KClcbiAgfVxufVxuIl19
@@ -1,37 +1,23 @@
1
- import { computed, signal } from '@angular/core';
1
+ import { computed, inject, signal } from '@angular/core';
2
2
  import { isDefined } from '../utils/is-defined';
3
3
  import { toObservable } from '@angular/core/rxjs-interop';
4
- import { HandleModel } from './handle.model';
4
+ import { FlowSettingsService } from '../services/flow-settings.service';
5
5
  export class NodeModel {
6
6
  constructor(node) {
7
7
  this.node = node;
8
+ this.flowSettingsService = inject(FlowSettingsService);
8
9
  this.point = signal({ x: 0, y: 0 });
9
10
  this.point$ = toObservable(this.point);
10
11
  this.size = signal({ width: 0, height: 0 });
12
+ this.renderOrder = signal(0);
13
+ this.selected = signal(false);
14
+ this.selected$ = toObservable(this.selected);
11
15
  this.pointTransform = computed(() => `translate(${this.point().x}, ${this.point().y})`);
12
16
  // Now source and handle positions derived from parent flow
13
- this.sourcePosition = computed(() => this.flow.handlePositions().source);
14
- this.targetPosition = computed(() => this.flow.handlePositions().target);
15
- this.handles = computed(() => {
16
- if (this.node.type === 'html-template') {
17
- return this.rawHandles();
18
- }
19
- return [
20
- new HandleModel({
21
- position: this.sourcePosition(),
22
- type: 'source',
23
- parentPosition: { x: 0, y: 0 },
24
- parentSize: this.size()
25
- }, this),
26
- new HandleModel({
27
- position: this.targetPosition(),
28
- type: 'target',
29
- parentPosition: { x: 0, y: 0 },
30
- parentSize: this.size()
31
- }, this),
32
- ];
33
- });
34
- this.rawHandles = signal([]);
17
+ this.sourcePosition = computed(() => this.flowSettingsService.handlePositions().source);
18
+ this.targetPosition = computed(() => this.flowSettingsService.handlePositions().target);
19
+ this.handles = signal([]);
20
+ this.handles$ = toObservable(this.handles);
35
21
  this.draggable = true;
36
22
  // disabled for configuration for now
37
23
  this.magnetRadius = 20;
@@ -39,13 +25,5 @@ export class NodeModel {
39
25
  if (isDefined(node.draggable))
40
26
  this.draggable = node.draggable;
41
27
  }
42
- /**
43
- * Bind parent flow model to node
44
- *
45
- * @param flow parent flow
46
- */
47
- bindFlow(flow) {
48
- this.flow = flow;
49
- }
50
28
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvbm9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUdoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU1QyxNQUFNLE9BQU8sU0FBUztJQW9EcEIsWUFDUyxJQUFhO1FBQWIsU0FBSSxHQUFKLElBQUksQ0FBUztRQXBEZixVQUFLLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUU5QixXQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUVqQyxTQUFJLEdBQUcsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUV0QyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFekYsMkRBQTJEO1FBQ3BELG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkUsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUVuRSxZQUFPLEdBQUcsUUFBUSxDQUN2QixHQUFHLEVBQUU7WUFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsRUFBRTtnQkFDdEMsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7YUFDekI7WUFFRCxPQUFPO2dCQUNMLElBQUksV0FBVyxDQUNiO29CQUNFLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO29CQUMvQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxjQUFjLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQzlCLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO2lCQUN4QixFQUNELElBQUksQ0FDTDtnQkFDRCxJQUFJLFdBQVcsQ0FDYjtvQkFDRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtvQkFDL0IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsY0FBYyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUM5QixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtpQkFDeEIsRUFDRCxJQUFJLENBQ0w7YUFFRixDQUFBO1FBQ0gsQ0FBQyxDQUNGLENBQUE7UUFFTSxlQUFVLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQTtRQUV0QyxjQUFTLEdBQUcsSUFBSSxDQUFBO1FBRXZCLHFDQUFxQztRQUNyQixpQkFBWSxHQUFHLEVBQUUsQ0FBQTtRQU8vQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFMUIsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQTtJQUNoRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxJQUFlO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBGbG93TW9kZWwgfSBmcm9tICcuL2Zsb3cubW9kZWwnXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tICcuLi91dGlscy9pcy1kZWZpbmVkJ1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnXG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4vaGFuZGxlLm1vZGVsJ1xuXG5leHBvcnQgY2xhc3MgTm9kZU1vZGVsPFQgPSB1bmtub3duPiB7XG4gIHB1YmxpYyBwb2ludCA9IHNpZ25hbCh7IHg6IDAsIHk6IDAgfSlcblxuICBwdWJsaWMgcG9pbnQkID0gdG9PYnNlcnZhYmxlKHRoaXMucG9pbnQpXG5cbiAgcHVibGljIHNpemUgPSBzaWduYWwoeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0pXG5cbiAgcHVibGljIHBvaW50VHJhbnNmb3JtID0gY29tcHV0ZWQoKCkgPT4gYHRyYW5zbGF0ZSgke3RoaXMucG9pbnQoKS54fSwgJHt0aGlzLnBvaW50KCkueX0pYClcblxuICAvLyBOb3cgc291cmNlIGFuZCBoYW5kbGUgcG9zaXRpb25zIGRlcml2ZWQgZnJvbSBwYXJlbnQgZmxvd1xuICBwdWJsaWMgc291cmNlUG9zaXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZsb3cuaGFuZGxlUG9zaXRpb25zKCkuc291cmNlKVxuICBwdWJsaWMgdGFyZ2V0UG9zaXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZsb3cuaGFuZGxlUG9zaXRpb25zKCkudGFyZ2V0KVxuXG4gIHB1YmxpYyBoYW5kbGVzID0gY29tcHV0ZWQoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubm9kZS50eXBlID09PSAnaHRtbC10ZW1wbGF0ZScpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3SGFuZGxlcygpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIG5ldyBIYW5kbGVNb2RlbChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5zb3VyY2VQb3NpdGlvbigpLFxuICAgICAgICAgICAgdHlwZTogJ3NvdXJjZScsXG4gICAgICAgICAgICBwYXJlbnRQb3NpdGlvbjogeyB4OiAwLCB5OiAwIH0sXG4gICAgICAgICAgICBwYXJlbnRTaXplOiB0aGlzLnNpemUoKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGhpc1xuICAgICAgICApLFxuICAgICAgICBuZXcgSGFuZGxlTW9kZWwoXG4gICAgICAgICAge1xuICAgICAgICAgICAgcG9zaXRpb246IHRoaXMudGFyZ2V0UG9zaXRpb24oKSxcbiAgICAgICAgICAgIHR5cGU6ICd0YXJnZXQnLFxuICAgICAgICAgICAgcGFyZW50UG9zaXRpb246IHsgeDogMCwgeTogMCB9LFxuICAgICAgICAgICAgcGFyZW50U2l6ZTogdGhpcy5zaXplKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRoaXNcbiAgICAgICAgKSxcblxuICAgICAgXVxuICAgIH1cbiAgKVxuXG4gIHB1YmxpYyByYXdIYW5kbGVzID0gc2lnbmFsPEhhbmRsZU1vZGVsW10+KFtdKVxuXG4gIHB1YmxpYyBkcmFnZ2FibGUgPSB0cnVlXG5cbiAgLy8gZGlzYWJsZWQgZm9yIGNvbmZpZ3VyYXRpb24gZm9yIG5vd1xuICBwdWJsaWMgcmVhZG9ubHkgbWFnbmV0UmFkaXVzID0gMjBcblxuICBwcml2YXRlIGZsb3chOiBGbG93TW9kZWxcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbm9kZTogTm9kZTxUPlxuICApIHtcbiAgICB0aGlzLnBvaW50LnNldChub2RlLnBvaW50KVxuXG4gICAgaWYgKGlzRGVmaW5lZChub2RlLmRyYWdnYWJsZSkpIHRoaXMuZHJhZ2dhYmxlID0gbm9kZS5kcmFnZ2FibGVcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kIHBhcmVudCBmbG93IG1vZGVsIHRvIG5vZGVcbiAgICpcbiAgICogQHBhcmFtIGZsb3cgcGFyZW50IGZsb3dcbiAgICovXG4gIHB1YmxpYyBiaW5kRmxvdyhmbG93OiBGbG93TW9kZWwpIHtcbiAgICB0aGlzLmZsb3cgPSBmbG93XG4gIH1cbn1cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvbm9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUd6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUV2RSxNQUFNLE9BQU8sU0FBUztJQTZCcEIsWUFDUyxJQUFhO1FBQWIsU0FBSSxHQUFKLElBQUksQ0FBUztRQTdCZCx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUVsRCxVQUFLLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUU5QixXQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUVqQyxTQUFJLEdBQUcsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUV0QyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUV2QixhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3hCLGNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZDLG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUV6RiwyREFBMkQ7UUFDcEQsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2xGLG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUVsRixZQUFPLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQTtRQUVuQyxhQUFRLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUVyQyxjQUFTLEdBQUcsSUFBSSxDQUFBO1FBRXZCLHFDQUFxQztRQUNyQixpQkFBWSxHQUFHLEVBQUUsQ0FBQTtRQUsvQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFMUIsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQTtJQUNoRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tICcuLi91dGlscy9pcy1kZWZpbmVkJ1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnXG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4vaGFuZGxlLm1vZGVsJ1xuaW1wb3J0IHsgRmxvd0VudGl0eSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZmxvdy1lbnRpdHkuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgRmxvd1NldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctc2V0dGluZ3Muc2VydmljZSdcblxuZXhwb3J0IGNsYXNzIE5vZGVNb2RlbDxUID0gdW5rbm93bj4gaW1wbGVtZW50cyBGbG93RW50aXR5IHtcbiAgcHJpdmF0ZSBmbG93U2V0dGluZ3NTZXJ2aWNlID0gaW5qZWN0KEZsb3dTZXR0aW5nc1NlcnZpY2UpXG5cbiAgcHVibGljIHBvaW50ID0gc2lnbmFsKHsgeDogMCwgeTogMCB9KVxuXG4gIHB1YmxpYyBwb2ludCQgPSB0b09ic2VydmFibGUodGhpcy5wb2ludClcblxuICBwdWJsaWMgc2l6ZSA9IHNpZ25hbCh7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSlcblxuICBwdWJsaWMgcmVuZGVyT3JkZXIgPSBzaWduYWwoMClcblxuICBwdWJsaWMgc2VsZWN0ZWQgPSBzaWduYWwoZmFsc2UpXG4gIHB1YmxpYyBzZWxlY3RlZCQgPSB0b09ic2VydmFibGUodGhpcy5zZWxlY3RlZClcblxuICBwdWJsaWMgcG9pbnRUcmFuc2Zvcm0gPSBjb21wdXRlZCgoKSA9PiBgdHJhbnNsYXRlKCR7dGhpcy5wb2ludCgpLnh9LCAke3RoaXMucG9pbnQoKS55fSlgKVxuXG4gIC8vIE5vdyBzb3VyY2UgYW5kIGhhbmRsZSBwb3NpdGlvbnMgZGVyaXZlZCBmcm9tIHBhcmVudCBmbG93XG4gIHB1YmxpYyBzb3VyY2VQb3NpdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5oYW5kbGVQb3NpdGlvbnMoKS5zb3VyY2UpXG4gIHB1YmxpYyB0YXJnZXRQb3NpdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5oYW5kbGVQb3NpdGlvbnMoKS50YXJnZXQpXG5cbiAgcHVibGljIGhhbmRsZXMgPSBzaWduYWw8SGFuZGxlTW9kZWxbXT4oW10pXG5cbiAgcHVibGljIGhhbmRsZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMuaGFuZGxlcylcblxuICBwdWJsaWMgZHJhZ2dhYmxlID0gdHJ1ZVxuXG4gIC8vIGRpc2FibGVkIGZvciBjb25maWd1cmF0aW9uIGZvciBub3dcbiAgcHVibGljIHJlYWRvbmx5IG1hZ25ldFJhZGl1cyA9IDIwXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5vZGU6IE5vZGU8VD5cbiAgKSB7XG4gICAgdGhpcy5wb2ludC5zZXQobm9kZS5wb2ludClcblxuICAgIGlmIChpc0RlZmluZWQobm9kZS5kcmFnZ2FibGUpKSB0aGlzLmRyYWdnYWJsZSA9IG5vZGUuZHJhZ2dhYmxlXG4gIH1cbn1cbiJdfQ==
@@ -11,7 +11,7 @@ export class EdgeChangesService {
11
11
  this.edgeDetachedChange$ = merge(toObservable(computed(() => {
12
12
  const nodes = this.entitiesService.nodes();
13
13
  const edges = untracked(this.entitiesService.edges);
14
- return edges.filter(({ source, target }) => !nodes.includes(source) || !nodes.includes(target));
14
+ return edges.filter(({ source, target }) => !nodes.includes(source()) || !nodes.includes(target()));
15
15
  })), toObservable(this.entitiesService.edges).pipe(switchMap((edges) => {
16
16
  return zip(...edges.map(e => e.detached$.pipe(map(() => e))));
17
17
  }), map((edges) => edges.filter(e => e.detached())),
@@ -28,7 +28,11 @@ export class EdgeChangesService {
28
28
  .pipe(pairwise(), map(([oldList, newList]) => {
29
29
  return oldList.filter(edge => !newList.includes(edge));
30
30
  }), filter(edges => !!edges.length), map((edges) => edges.map(({ edge }) => ({ type: 'remove', id: edge.id }))));
31
- this.changes$ = merge(this.edgeDetachedChange$, this.edgeAddChange$, this.edgeRemoveChange$)
31
+ this.edgeSelectChange$ = toObservable(this.entitiesService.edges)
32
+ .pipe(switchMap((edges) => merge(...edges.map(edge => edge.selected$.pipe(distinctUntilChanged(), skip(1), map(() => edge))))), map((changedEdge) => [
33
+ { type: 'select', id: changedEdge.edge.id, selected: changedEdge.selected() }
34
+ ]));
35
+ this.changes$ = merge(this.edgeDetachedChange$, this.edgeAddChange$, this.edgeRemoveChange$, this.edgeSelectChange$)
32
36
  .pipe(
33
37
  // this fixes the case when user gets 'deteched' changes
34
38
  // and tries to delete these edges inside stream
@@ -42,4 +46,4 @@ export class EdgeChangesService {
42
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EdgeChangesService, decorators: [{
43
47
  type: Injectable
44
48
  }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jaGFuZ2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvZWRnZS1jaGFuZ2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQWMsY0FBYyxFQUFpQixvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQU8sR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHMUQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFJLENBQU0sRUFBRSxDQUFNLEVBQUUsRUFBRSxDQUM3QyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNO0lBQ3JCLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDOUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDckUsQ0FBQztBQUdKLE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxtQkFB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T0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3hELENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQy9CLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1osS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUMzRCxDQUNpQyxDQUFBO1FBRXRCLGFBQVEsR0FBNkIsS0FBSyxDQUN4RCxJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkI7YUFDRSxJQUFJO1FBQ0gsd0RBQXdEO1FBQ3hELGdEQUFnRDtRQUNoRCwrREFBK0Q7UUFDL0QsbUNBQW1DO1FBQ25DLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FDMUIsQ0FBQTtLQUNKOytHQXRFWSxrQkFBa0I7bUhBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkLCBpbmplY3QsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4vZmxvdy1lbnRpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGFzeW5jU2NoZWR1bGVyLCBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIG1lcmdlLCBvYnNlcnZlT24sIHBhaXJ3aXNlLCBza2lwLCBzd2l0Y2hNYXAsIHRhcCwgemlwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBFZGdlQ2hhbmdlIH0gZnJvbSAnLi4vdHlwZXMvZWRnZS1jaGFuZ2UudHlwZSc7XG5cbmNvbnN0IGhhdmVTYW1lQ29udGVudHMgPSA8VD4oYTogVFtdLCBiOiBUW10pID0+XG4gIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJlxuICBbLi4ubmV3IFNldChbLi4uYSwgLi4uYl0pXS5ldmVyeShcbiAgICB2ID0+IGEuZmlsdGVyKGUgPT4gZSA9PT0gdikubGVuZ3RoID09PSBiLmZpbHRlcihlID0+IGUgPT09IHYpLmxlbmd0aFxuICApO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRWRnZUNoYW5nZXNTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIGVudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKVxuXG4gIHByb3RlY3RlZCBlZGdlRGV0YWNoZWRDaGFuZ2UkID0gbWVyZ2UoXG4gICAgdG9PYnNlcnZhYmxlKFxuICAgICAgY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBub2RlcyA9IHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKClcbiAgICAgICAgY29uc3QgZWRnZXMgPSB1bnRyYWNrZWQodGhpcy5lbnRpdGllc1NlcnZpY2UuZWRnZXMpXG5cbiAgICAgICAgcmV0dXJuIGVkZ2VzLmZpbHRlcigoeyBzb3VyY2UsIHRhcmdldCB9KSA9PlxuICAgICAgICAgICFub2Rlcy5pbmNsdWRlcyhzb3VyY2UpIHx8ICFub2Rlcy5pbmNsdWRlcyh0YXJnZXQpXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgKSxcbiAgICB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2UuZWRnZXMpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGVkZ2VzKSA9PiB7XG4gICAgICAgIHJldHVybiB6aXAoXG4gICAgICAgICAgLi4uZWRnZXMubWFwKGUgPT4gZS5kZXRhY2hlZCQucGlwZShtYXAoKCkgPT4gZSkpKVxuICAgICAgICApXG4gICAgICB9KSxcbiAgICAgIG1hcCgoZWRnZXMpID0+IGVkZ2VzLmZpbHRlcihlID0+IGUuZGV0YWNoZWQoKSkpLFxuICAgICAgLy8gVE9ETyBjaGVjayB3aHkgdGhlcmUgYXJlIDIgZW1pdHNcbiAgICAgIHNraXAoMiksXG4gICAgKVxuICApLnBpcGUoXG4gICAgLy8gaGVyZSB3ZSBjaGVjayBpZiAyIGFwcHJvYWNoZXMgdG8gZGV0ZWN0IGRldGFjaGVkIGVkZ2VzIGVtaXRzIHNhbWVcbiAgICAvLyBhbmQgc2FtZSB2YWx1ZXMgKHRoaXMgbWF5IGhhcHBlbiBvbiBub2RlIGRlbGV0ZSlcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChoYXZlU2FtZUNvbnRlbnRzKSxcbiAgICBmaWx0ZXIoZWRnZXMgPT4gISFlZGdlcy5sZW5ndGgpLFxuICAgIG1hcCgoZWRnZXMpID0+XG4gICAgICBlZGdlcy5tYXAoKHsgZWRnZSB9KSA9PiAoeyB0eXBlOiAnZGV0YWNoZWQnLCBpZDogZWRnZS5pZCB9KSlcbiAgICApXG4gICkgc2F0aXNmaWVzIE9ic2VydmFibGU8RWRnZUNoYW5nZVtdPlxuXG4gIHByb3RlY3RlZCBlZGdlQWRkQ2hhbmdlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzU2VydmljZS5lZGdlcylcbiAgICAucGlwZShcbiAgICAgIHBhaXJ3aXNlKCksXG4gICAgICBtYXAoKFtvbGRMaXN0LCBuZXdMaXN0XSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3TGlzdC5maWx0ZXIoZWRnZSA9PiAhb2xkTGlzdC5pbmNsdWRlcyhlZGdlKSlcbiAgICAgIH0pLFxuICAgICAgZmlsdGVyKGVkZ2VzID0+ICEhZWRnZXMubGVuZ3RoKSxcbiAgICAgIG1hcCgoZWRnZXMpID0+XG4gICAgICAgIGVkZ2VzLm1hcCgoeyBlZGdlIH0pID0+ICh7IHR5cGU6ICdhZGQnLCBpZDogZWRnZS5pZCB9KSlcbiAgICAgIClcbiAgICApIHNhdGlzZmllcyBPYnNlcnZhYmxlPEVkZ2VDaGFuZ2VbXT5cblxuICBwcm90ZWN0ZWQgZWRnZVJlbW92ZUNoYW5nZSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2UuZWRnZXMpXG4gICAgLnBpcGUoXG4gICAgICBwYWlyd2lzZSgpLFxuICAgICAgbWFwKChbb2xkTGlzdCwgbmV3TGlzdF0pID0+IHtcbiAgICAgICAgcmV0dXJuIG9sZExpc3QuZmlsdGVyKGVkZ2UgPT4gIW5ld0xpc3QuaW5jbHVkZXMoZWRnZSkpXG4gICAgICB9KSxcbiAgICAgIGZpbHRlcihlZGdlcyA9PiAhIWVkZ2VzLmxlbmd0aCksXG4gICAgICBtYXAoKGVkZ2VzKSA9PlxuICAgICAgICBlZGdlcy5tYXAoKHsgZWRnZSB9KSA9PiAoeyB0eXBlOiAncmVtb3ZlJywgaWQ6IGVkZ2UuaWQgfSkpXG4gICAgICApXG4gICAgKSBzYXRpc2ZpZXMgT2JzZXJ2YWJsZTxFZGdlQ2hhbmdlW10+XG5cbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZXMkOiBPYnNlcnZhYmxlPEVkZ2VDaGFuZ2VbXT4gPSBtZXJnZShcbiAgICB0aGlzLmVkZ2VEZXRhY2hlZENoYW5nZSQsXG4gICAgdGhpcy5lZGdlQWRkQ2hhbmdlJCxcbiAgICB0aGlzLmVkZ2VSZW1vdmVDaGFuZ2UkXG4gIClcbiAgICAucGlwZShcbiAgICAgIC8vIHRoaXMgZml4ZXMgdGhlIGNhc2Ugd2hlbiB1c2VyIGdldHMgJ2RldGVjaGVkJyBjaGFuZ2VzXG4gICAgICAvLyBhbmQgdHJpZXMgdG8gZGVsZXRlIHRoZXNlIGVkZ2VzIGluc2lkZSBzdHJlYW1cbiAgICAgIC8vIGFuZ3VsYXIgbWF5IGlnbm9yZSB0aGlzIGNoYW5nZSBiZWNhdXNlIFtlZGdlc10gaW5wdXQgY2hhbmdlZFxuICAgICAgLy8gcmlnaHQgYWZ0ZXIgW25vZGVzXSBpbnB1dCBjaGFuZ2VcbiAgICAgIG9ic2VydmVPbihhc3luY1NjaGVkdWxlciksXG4gICAgKVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jaGFuZ2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvZWRnZS1jaGFuZ2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQWMsY0FBYyxFQUFpQixvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQU8sR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHMUQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFJLENBQU0sRUFBRSxDQUFNLEVBQUUsRUFBRSxDQUM3QyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNO0lBQ3JCLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDOUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDckUsQ0FBQztBQUdKLE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxtQkFB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LElBQUk7UUFDSCx3REFBd0Q7UUFDeEQsZ0RBQWdEO1FBQ2hELCtEQUErRDtRQUMvRCxtQ0FBbUM7UUFDbkMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUMxQixDQUFBO0tBQ0o7K0dBekZZLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgY29tcHV0ZWQsIGluamVjdCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93RW50aXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi9mbG93LWVudGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgYXN5bmNTY2hlZHVsZXIsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgbWVyZ2UsIG9ic2VydmVPbiwgcGFpcndpc2UsIHNraXAsIHN3aXRjaE1hcCwgdGFwLCB6aXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEVkZ2VDaGFuZ2UgfSBmcm9tICcuLi90eXBlcy9lZGdlLWNoYW5nZS50eXBlJztcblxuY29uc3QgaGF2ZVNhbWVDb250ZW50cyA9IDxUPihhOiBUW10sIGI6IFRbXSkgPT5cbiAgYS5sZW5ndGggPT09IGIubGVuZ3RoICYmXG4gIFsuLi5uZXcgU2V0KFsuLi5hLCAuLi5iXSldLmV2ZXJ5KFxuICAgIHYgPT4gYS5maWx0ZXIoZSA9PiBlID09PSB2KS5sZW5ndGggPT09IGIuZmlsdGVyKGUgPT4gZSA9PT0gdikubGVuZ3RoXG4gICk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFZGdlQ2hhbmdlc1NlcnZpY2Uge1xuICBwcm90ZWN0ZWQgZW50aXRpZXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dFbnRpdGllc1NlcnZpY2UpXG5cbiAgcHJvdGVjdGVkIGVkZ2VEZXRhY2hlZENoYW5nZSQgPSBtZXJnZShcbiAgICB0b09ic2VydmFibGUoXG4gICAgICBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGVzID0gdGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMoKVxuICAgICAgICBjb25zdCBlZGdlcyA9IHVudHJhY2tlZCh0aGlzLmVudGl0aWVzU2VydmljZS5lZGdlcylcblxuICAgICAgICByZXR1cm4gZWRnZXMuZmlsdGVyKCh7IHNvdXJjZSwgdGFyZ2V0IH0pID0+XG4gICAgICAgICAgIW5vZGVzLmluY2x1ZGVzKHNvdXJjZSgpISkgfHwgIW5vZGVzLmluY2x1ZGVzKHRhcmdldCgpISlcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICApLFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzU2VydmljZS5lZGdlcykucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZWRnZXMpID0+IHtcbiAgICAgICAgcmV0dXJuIHppcChcbiAgICAgICAgICAuLi5lZGdlcy5tYXAoZSA9PiBlLmRldGFjaGVkJC5waXBlKG1hcCgoKSA9PiBlKSkpXG4gICAgICAgIClcbiAgICAgIH0pLFxuICAgICAgbWFwKChlZGdlcykgPT4gZWRnZXMuZmlsdGVyKGUgPT4gZS5kZXRhY2hlZCgpKSksXG4gICAgICAvLyBUT0RPIGNoZWNrIHdoeSB0aGVyZSBhcmUgMiBlbWl0c1xuICAgICAgc2tpcCgyKSxcbiAgICApXG4gICkucGlwZShcbiAgICAvLyBoZXJlIHdlIGNoZWNrIGlmIDIgYXBwcm9hY2hlcyB0byBkZXRlY3QgZGV0YWNoZWQgZWRnZXMgZW1pdHMgc2FtZVxuICAgIC8vIGFuZCBzYW1lIHZhbHVlcyAodGhpcyBtYXkgaGFwcGVuIG9uIG5vZGUgZGVsZXRlKVxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGhhdmVTYW1lQ29udGVudHMpLFxuICAgIGZpbHRlcihlZGdlcyA9PiAhIWVkZ2VzLmxlbmd0aCksXG4gICAgbWFwKChlZGdlcykgPT5cbiAgICAgIGVkZ2VzLm1hcCgoeyBlZGdlIH0pID0+ICh7IHR5cGU6ICdkZXRhY2hlZCcsIGlkOiBlZGdlLmlkIH0pKVxuICAgIClcbiAgKSBzYXRpc2ZpZXMgT2JzZXJ2YWJsZTxFZGdlQ2hhbmdlW10+XG5cbiAgcHJvdGVjdGVkIGVkZ2VBZGRDaGFuZ2UkID0gdG9PYnNlcnZhYmxlKHRoaXMuZW50aXRpZXNTZXJ2aWNlLmVkZ2VzKVxuICAgIC5waXBlKFxuICAgICAgcGFpcndpc2UoKSxcbiAgICAgIG1hcCgoW29sZExpc3QsIG5ld0xpc3RdKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXdMaXN0LmZpbHRlcihlZGdlID0+ICFvbGRMaXN0LmluY2x1ZGVzKGVkZ2UpKVxuICAgICAgfSksXG4gICAgICBmaWx0ZXIoZWRnZXMgPT4gISFlZGdlcy5sZW5ndGgpLFxuICAgICAgbWFwKChlZGdlcykgPT5cbiAgICAgICAgZWRnZXMubWFwKCh7IGVkZ2UgfSkgPT4gKHsgdHlwZTogJ2FkZCcsIGlkOiBlZGdlLmlkIH0pKVxuICAgICAgKVxuICAgICkgc2F0aXNmaWVzIE9ic2VydmFibGU8RWRnZUNoYW5nZVtdPlxuXG4gIHByb3RlY3RlZCBlZGdlUmVtb3ZlQ2hhbmdlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzU2VydmljZS5lZGdlcylcbiAgICAucGlwZShcbiAgICAgIHBhaXJ3aXNlKCksXG4gICAgICBtYXAoKFtvbGRMaXN0LCBuZXdMaXN0XSkgPT4ge1xuICAgICAgICByZXR1cm4gb2xkTGlzdC5maWx0ZXIoZWRnZSA9PiAhbmV3TGlzdC5pbmNsdWRlcyhlZGdlKSlcbiAgICAgIH0pLFxuICAgICAgZmlsdGVyKGVkZ2VzID0+ICEhZWRnZXMubGVuZ3RoKSxcbiAgICAgIG1hcCgoZWRnZXMpID0+XG4gICAgICAgIGVkZ2VzLm1hcCgoeyBlZGdlIH0pID0+ICh7IHR5cGU6ICdyZW1vdmUnLCBpZDogZWRnZS5pZCB9KSlcbiAgICAgIClcbiAgICApIHNhdGlzZmllcyBPYnNlcnZhYmxlPEVkZ2VDaGFuZ2VbXT5cblxuICBwcm90ZWN0ZWQgZWRnZVNlbGVjdENoYW5nZSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2UuZWRnZXMpXG4gICAgLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGVkZ2VzKSA9PlxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAuLi5lZGdlcy5tYXAoZWRnZSA9PlxuICAgICAgICAgICAgZWRnZS5zZWxlY3RlZCQucGlwZShcbiAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgbWFwKCgpID0+IGVkZ2UpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIG1hcCgoY2hhbmdlZEVkZ2UpID0+IFtcbiAgICAgICAgeyB0eXBlOiAnc2VsZWN0JywgaWQ6IGNoYW5nZWRFZGdlLmVkZ2UuaWQsIHNlbGVjdGVkOiBjaGFuZ2VkRWRnZS5zZWxlY3RlZCgpIH1cbiAgICAgIF0pXG4gICAgKSBzYXRpc2ZpZXMgT2JzZXJ2YWJsZTxFZGdlQ2hhbmdlW10+XG5cbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZXMkOiBPYnNlcnZhYmxlPEVkZ2VDaGFuZ2VbXT4gPSBtZXJnZShcbiAgICB0aGlzLmVkZ2VEZXRhY2hlZENoYW5nZSQsXG4gICAgdGhpcy5lZGdlQWRkQ2hhbmdlJCxcbiAgICB0aGlzLmVkZ2VSZW1vdmVDaGFuZ2UkLFxuICAgIHRoaXMuZWRnZVNlbGVjdENoYW5nZSRcbiAgKVxuICAgIC5waXBlKFxuICAgICAgLy8gdGhpcyBmaXhlcyB0aGUgY2FzZSB3aGVuIHVzZXIgZ2V0cyAnZGV0ZWNoZWQnIGNoYW5nZXNcbiAgICAgIC8vIGFuZCB0cmllcyB0byBkZWxldGUgdGhlc2UgZWRnZXMgaW5zaWRlIHN0cmVhbVxuICAgICAgLy8gYW5ndWxhciBtYXkgaWdub3JlIHRoaXMgY2hhbmdlIGJlY2F1c2UgW2VkZ2VzXSBpbnB1dCBjaGFuZ2VkXG4gICAgICAvLyByaWdodCBhZnRlciBbbm9kZXNdIGlucHV0IGNoYW5nZVxuICAgICAgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSxcbiAgICApXG59XG4iXX0=
@@ -34,8 +34,12 @@ export class FlowEntitiesService {
34
34
  });
35
35
  this.validEdges = computed(() => {
36
36
  const nodes = this.nodes();
37
- return this.edges().filter(e => nodes.includes(e.source) && nodes.includes(e.target));
37
+ return this.edges().filter(e => nodes.includes(e.source()) && nodes.includes(e.target()));
38
38
  });
39
+ this.entities = computed(() => [
40
+ ...this.nodes(),
41
+ ...this.edges()
42
+ ]);
39
43
  }
40
44
  getNode(id) {
41
45
  return this.nodes().find(({ node }) => node.id === id);
@@ -49,4 +53,4 @@ export class FlowEntitiesService {
49
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowEntitiesService, decorators: [{
50
54
  type: Injectable
51
55
  }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1lbnRpdGllcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBVSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3pDLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFa0IsVUFBSyxHQUFHLE1BQU0sQ0FBYyxFQUFFLEVBQUU7WUFDOUMsK0RBQStEO1lBQy9ELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDekQsQ0FBQyxDQUFBO1FBRWMsVUFBSyxHQUFHLE1BQU0sQ0FBYyxFQUFFLEVBQUU7WUFDOUMsK0RBQStEO1lBQy9ELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDekQsQ0FBQyxDQUFBO1FBRWMsZUFBVSxHQUFHLE1BQU0sQ0FBa0IsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUU3RCxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQTtZQUU1QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRTtvQkFDekIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtvQkFDM0QsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7aUJBQzNDO2dCQUVELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUN2QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO29CQUN6RCxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtpQkFDekM7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUE7WUFDNUQsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDcEIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFBO2dCQUN2RCxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO2FBQ3ZDO1lBRUQsT0FBTyxVQUFVLENBQUE7UUFDbkIsQ0FBQyxDQUFDLENBQUE7UUFFYyxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7WUFFMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUN2RixDQUFDLENBQUMsQ0FBQTtLQVNIO0lBUFEsT0FBTyxDQUFJLEVBQVU7UUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQTZCLENBQUE7SUFDcEYsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUMvQyxDQUFDOytHQWpEVSxtQkFBbUI7bUhBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkLCBlZmZlY3QsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBFZGdlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZWRnZS5tb2RlbCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvY29ubmVjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBNYXJrZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL21hcmtlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaGFzaENvZGUgfSBmcm9tICcuLi91dGlscy9oYXNoJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb3dFbnRpdGllc1NlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgbm9kZXMgPSBzaWduYWw8Tm9kZU1vZGVsW10+KFtdLCB7XG4gICAgLy8gZW1wdHkgYXJyYXlzIGNvbnNpZGVyZWQgZXF1YWwsIG90aGVyIGFycmF5cyBtYXkgbm90IGJlIGVxdWFsXG4gICAgZXF1YWw6IChhLCBiKSA9PiAhYS5sZW5ndGggJiYgIWIubGVuZ3RoID8gdHJ1ZSA6IGEgPT09IGJcbiAgfSlcblxuICBwdWJsaWMgcmVhZG9ubHkgZWRnZXMgPSBzaWduYWw8RWRnZU1vZGVsW10+KFtdLCB7XG4gICAgLy8gZW1wdHkgYXJyYXlzIGNvbnNpZGVyZWQgZXF1YWwsIG90aGVyIGFycmF5cyBtYXkgbm90IGJlIGVxdWFsXG4gICAgZXF1YWw6IChhLCBiKSA9PiAhYS5sZW5ndGggJiYgIWIubGVuZ3RoID8gdHJ1ZSA6IGEgPT09IGJcbiAgfSlcblxuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbiA9IHNpZ25hbDxDb25uZWN0aW9uTW9kZWw+KG5ldyBDb25uZWN0aW9uTW9kZWwoe30pKVxuXG4gIHB1YmxpYyByZWFkb25seSBtYXJrZXJzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1hcmtlcnNNYXAgPSBuZXcgTWFwPG51bWJlciwgTWFya2VyPigpXG5cbiAgICB0aGlzLnZhbGlkRWRnZXMoKS5mb3JFYWNoKGUgPT4ge1xuICAgICAgaWYgKGUuZWRnZS5tYXJrZXJzPy5zdGFydCkge1xuICAgICAgICBjb25zdCBoYXNoID0gaGFzaENvZGUoSlNPTi5zdHJpbmdpZnkoZS5lZGdlLm1hcmtlcnMuc3RhcnQpKVxuICAgICAgICBtYXJrZXJzTWFwLnNldChoYXNoLCBlLmVkZ2UubWFya2Vycy5zdGFydClcbiAgICAgIH1cblxuICAgICAgaWYgKGUuZWRnZS5tYXJrZXJzPy5lbmQpIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IGhhc2hDb2RlKEpTT04uc3RyaW5naWZ5KGUuZWRnZS5tYXJrZXJzLmVuZCkpXG4gICAgICAgIG1hcmtlcnNNYXAuc2V0KGhhc2gsIGUuZWRnZS5tYXJrZXJzLmVuZClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgY29uc3QgY29ubmVjdGlvbk1hcmtlciA9IHRoaXMuY29ubmVjdGlvbigpLmNvbm5lY3Rpb24ubWFya2VyXG4gICAgaWYgKGNvbm5lY3Rpb25NYXJrZXIpIHtcbiAgICAgIGNvbnN0IGhhc2ggPSBoYXNoQ29kZShKU09OLnN0cmluZ2lmeShjb25uZWN0aW9uTWFya2VyKSlcbiAgICAgIG1hcmtlcnNNYXAuc2V0KGhhc2gsIGNvbm5lY3Rpb25NYXJrZXIpXG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcmtlcnNNYXBcbiAgfSlcblxuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRFZGdlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBub2RlcyA9IHRoaXMubm9kZXMoKVxuXG4gICAgcmV0dXJuIHRoaXMuZWRnZXMoKS5maWx0ZXIoZSA9PiBub2Rlcy5pbmNsdWRlcyhlLnNvdXJjZSkgJiYgbm9kZXMuaW5jbHVkZXMoZS50YXJnZXQpKVxuICB9KVxuXG4gIHB1YmxpYyBnZXROb2RlPFQ+KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlcygpLmZpbmQoKHsgbm9kZSB9KSA9PiBub2RlLmlkID09PSBpZCkgYXMgTm9kZU1vZGVsPFQ+IHwgdW5kZWZpbmVkXG4gIH1cblxuICBwdWJsaWMgZ2V0RGV0YWNoZWRFZGdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5lZGdlcygpLmZpbHRlcihlID0+IGUuZGV0YWNoZWQoKSlcbiAgfVxufVxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1lbnRpdGllcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLFFBQVEsRUFBVSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSXpDLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFa0IsVUFBSyxHQUFHLE1BQU0sQ0FBYyxFQUFFLEVBQUU7WUFDOUMsK0RBQStEO1lBQy9ELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDekQsQ0FBQyxDQUFBO1FBRWMsVUFBSyxHQUFHLE1BQU0sQ0FBYyxFQUFFLEVBQUU7WUFDOUMsK0RBQStEO1lBQy9ELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDekQsQ0FBQyxDQUFBO1FBRWMsZUFBVSxHQUFHLE1BQU0sQ0FBa0IsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUU3RCxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQTtZQUU1QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRTtvQkFDekIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtvQkFDM0QsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7aUJBQzNDO2dCQUVELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUN2QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO29CQUN6RCxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtpQkFDekM7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUE7WUFDNUQsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDcEIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFBO2dCQUN2RCxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO2FBQ3ZDO1lBRUQsT0FBTyxVQUFVLENBQUE7UUFDbkIsQ0FBQyxDQUFDLENBQUE7UUFFYyxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7WUFFMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUcsQ0FBQyxDQUFDLENBQUE7UUFDN0YsQ0FBQyxDQUFDLENBQUE7UUFFSyxhQUFRLEdBQXlCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyRCxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7U0FDaEIsQ0FBQyxDQUFBO0tBU0g7SUFQUSxPQUFPLENBQUksRUFBVTtRQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBNkIsQ0FBQTtJQUNwRixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQy9DLENBQUM7K0dBdERVLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsLCBjb21wdXRlZCwgZWZmZWN0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL25vZGUubW9kZWwnO1xuaW1wb3J0IHsgRWRnZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2VkZ2UubW9kZWwnO1xuaW1wb3J0IHsgQ29ubmVjdGlvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2Nvbm5lY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgTWFya2VyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9tYXJrZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IGhhc2hDb2RlIH0gZnJvbSAnLi4vdXRpbHMvaGFzaCc7XG5pbXBvcnQgeyBGbG93RW50aXR5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mbG93LWVudGl0eS5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd0VudGl0aWVzU2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBub2RlcyA9IHNpZ25hbDxOb2RlTW9kZWxbXT4oW10sIHtcbiAgICAvLyBlbXB0eSBhcnJheXMgY29uc2lkZXJlZCBlcXVhbCwgb3RoZXIgYXJyYXlzIG1heSBub3QgYmUgZXF1YWxcbiAgICBlcXVhbDogKGEsIGIpID0+ICFhLmxlbmd0aCAmJiAhYi5sZW5ndGggPyB0cnVlIDogYSA9PT0gYlxuICB9KVxuXG4gIHB1YmxpYyByZWFkb25seSBlZGdlcyA9IHNpZ25hbDxFZGdlTW9kZWxbXT4oW10sIHtcbiAgICAvLyBlbXB0eSBhcnJheXMgY29uc2lkZXJlZCBlcXVhbCwgb3RoZXIgYXJyYXlzIG1heSBub3QgYmUgZXF1YWxcbiAgICBlcXVhbDogKGEsIGIpID0+ICFhLmxlbmd0aCAmJiAhYi5sZW5ndGggPyB0cnVlIDogYSA9PT0gYlxuICB9KVxuXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uID0gc2lnbmFsPENvbm5lY3Rpb25Nb2RlbD4obmV3IENvbm5lY3Rpb25Nb2RlbCh7fSkpXG5cbiAgcHVibGljIHJlYWRvbmx5IG1hcmtlcnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWFya2Vyc01hcCA9IG5ldyBNYXA8bnVtYmVyLCBNYXJrZXI+KClcblxuICAgIHRoaXMudmFsaWRFZGdlcygpLmZvckVhY2goZSA9PiB7XG4gICAgICBpZiAoZS5lZGdlLm1hcmtlcnM/LnN0YXJ0KSB7XG4gICAgICAgIGNvbnN0IGhhc2ggPSBoYXNoQ29kZShKU09OLnN0cmluZ2lmeShlLmVkZ2UubWFya2Vycy5zdGFydCkpXG4gICAgICAgIG1hcmtlcnNNYXAuc2V0KGhhc2gsIGUuZWRnZS5tYXJrZXJzLnN0YXJ0KVxuICAgICAgfVxuXG4gICAgICBpZiAoZS5lZGdlLm1hcmtlcnM/LmVuZCkge1xuICAgICAgICBjb25zdCBoYXNoID0gaGFzaENvZGUoSlNPTi5zdHJpbmdpZnkoZS5lZGdlLm1hcmtlcnMuZW5kKSlcbiAgICAgICAgbWFya2Vyc01hcC5zZXQoaGFzaCwgZS5lZGdlLm1hcmtlcnMuZW5kKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBjb25zdCBjb25uZWN0aW9uTWFya2VyID0gdGhpcy5jb25uZWN0aW9uKCkuY29ubmVjdGlvbi5tYXJrZXJcbiAgICBpZiAoY29ubmVjdGlvbk1hcmtlcikge1xuICAgICAgY29uc3QgaGFzaCA9IGhhc2hDb2RlKEpTT04uc3RyaW5naWZ5KGNvbm5lY3Rpb25NYXJrZXIpKVxuICAgICAgbWFya2Vyc01hcC5zZXQoaGFzaCwgY29ubmVjdGlvbk1hcmtlcilcbiAgICB9XG5cbiAgICByZXR1cm4gbWFya2Vyc01hcFxuICB9KVxuXG4gIHB1YmxpYyByZWFkb25seSB2YWxpZEVkZ2VzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG5vZGVzID0gdGhpcy5ub2RlcygpXG5cbiAgICByZXR1cm4gdGhpcy5lZGdlcygpLmZpbHRlcihlID0+IG5vZGVzLmluY2x1ZGVzKGUuc291cmNlKCkhKSAmJiBub2Rlcy5pbmNsdWRlcyhlLnRhcmdldCgpISkpXG4gIH0pXG5cbiAgcHVibGljIGVudGl0aWVzOiBTaWduYWw8Rmxvd0VudGl0eVtdPiA9IGNvbXB1dGVkKCgpID0+IFtcbiAgICAuLi50aGlzLm5vZGVzKCksXG4gICAgLi4udGhpcy5lZGdlcygpXG4gIF0pXG5cbiAgcHVibGljIGdldE5vZGU8VD4oaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm5vZGVzKCkuZmluZCgoeyBub2RlIH0pID0+IG5vZGUuaWQgPT09IGlkKSBhcyBOb2RlTW9kZWw8VD4gfCB1bmRlZmluZWRcbiAgfVxuXG4gIHB1YmxpYyBnZXREZXRhY2hlZEVkZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLmVkZ2VzKCkuZmlsdGVyKGUgPT4gZS5kZXRhY2hlZCgpKVxuICB9XG59XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { Injectable, computed, signal } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FlowSettingsService {
4
+ constructor() {
5
+ this.entitiesSelectable = signal(true);
6
+ /**
7
+ * Global setting with handle positions. Nodes derive this value
8
+ *
9
+ * @deprecated
10
+ */
11
+ this.handlePositions = signal({ source: 'right', target: 'left' });
12
+ /**
13
+ * @see {VflowComponent.view}
14
+ */
15
+ this.view = signal([400, 400]);
16
+ this.flowWidth = computed(() => this.view() === 'auto' ? '100%' : this.view()[0]);
17
+ this.flowHeight = computed(() => this.view() === 'auto' ? '100%' : this.view()[1]);
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
20
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowSettingsService }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowSettingsService, decorators: [{
23
+ type: Injectable
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3NlcnZpY2VzL2Zsb3ctc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFrQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUk3RSxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRVMsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRXhDOzs7O1dBSUc7UUFDSSxvQkFBZSxHQUFvQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBRXJHOztXQUVHO1FBQ0ksU0FBSSxHQUE4QyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUVwRSxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFNUUsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBRXJGOytHQW5CWSxtQkFBbUI7bUhBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFdyaXRhYmxlU2lnbmFsLCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIYW5kbGVQb3NpdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2hhbmRsZS1wb3NpdGlvbnMuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb3dTZXR0aW5nc1NlcnZpY2Uge1xuICBwdWJsaWMgZW50aXRpZXNTZWxlY3RhYmxlID0gc2lnbmFsKHRydWUpXG5cbiAgLyoqXG4gICAqIEdsb2JhbCBzZXR0aW5nIHdpdGggaGFuZGxlIHBvc2l0aW9ucy4gTm9kZXMgZGVyaXZlIHRoaXMgdmFsdWVcbiAgICpcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyBoYW5kbGVQb3NpdGlvbnM6IFdyaXRhYmxlU2lnbmFsPEhhbmRsZVBvc2l0aW9ucz4gPSBzaWduYWwoeyBzb3VyY2U6ICdyaWdodCcsIHRhcmdldDogJ2xlZnQnIH0pXG5cbiAgLyoqXG4gICAqIEBzZWUge1ZmbG93Q29tcG9uZW50LnZpZXd9XG4gICAqL1xuICBwdWJsaWMgdmlldzogV3JpdGFibGVTaWduYWw8W251bWJlciwgbnVtYmVyXSB8ICdhdXRvJz4gPSBzaWduYWwoWzQwMCwgNDAwXSlcblxuICBwdWJsaWMgZmxvd1dpZHRoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52aWV3KCkgPT09ICdhdXRvJyA/ICcxMDAlJyA6IHRoaXMudmlldygpWzBdKVxuXG4gIHB1YmxpYyBmbG93SGVpZ2h0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52aWV3KCkgPT09ICdhdXRvJyA/ICcxMDAlJyA6IHRoaXMudmlldygpWzFdKVxuXG59XG4iXX0=
@@ -7,14 +7,13 @@ export class HandleService {
7
7
  createHandle(newHandle) {
8
8
  const node = this.node();
9
9
  if (node) {
10
- node.rawHandles.update(handles => [...handles, newHandle]);
10
+ node.handles.update(handles => [...handles, newHandle]);
11
11
  }
12
12
  }
13
13
  destroyHandle(handleToDestoy) {
14
14
  const node = this.node();
15
- // TODO: microtask
16
15
  if (node) {
17
- queueMicrotask(() => node.rawHandles.update(handles => handles.filter(handle => handle !== handleToDestoy)));
16
+ node.handles.update(handles => handles.filter(handle => handle !== handleToDestoy));
18
17
  }
19
18
  }
20
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HandleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -23,4 +22,4 @@ export class HandleService {
23
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HandleService, decorators: [{
24
23
  type: Injectable
25
24
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvaGFuZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBZ0IzRCxNQUFNLE9BQU8sYUFBYTtJQUQxQjtRQUVrQixTQUFJLEdBQUcsTUFBTSxDQUFtQixJQUFJLENBQUMsQ0FBQTtLQWtCdEQ7SUFoQlEsWUFBWSxDQUFDLFNBQXNCO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUN4QixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFBO1NBQzNEO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBQyxjQUEyQjtRQUM5QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDeEIsa0JBQWtCO1FBQ2xCLElBQUksSUFBSSxFQUFFO1lBQ1IsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUN6QyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLENBQy9ELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzsrR0FsQlUsYUFBYTttSEFBYixhQUFhOzs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi4vdHlwZXMvcG9zaXRpb24udHlwZSc7XG5pbXBvcnQgeyBIYW5kbGVUeXBlIH0gZnJvbSAnLi4vdHlwZXMvaGFuZGxlLXR5cGUudHlwZSc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9pbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5vZGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9ub2RlLm1vZGVsJztcbmltcG9ydCB7IEhhbmRsZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2hhbmRsZS5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUhhbmRsZSB7XG4gIHBvc2l0aW9uOiBQb3NpdGlvblxuICB0eXBlOiBIYW5kbGVUeXBlXG4gIHBhcmVudFBvc2l0aW9uOiBQb2ludFxuICBwYXJlbnRTaXplOiB7IHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyIH1cbiAgaWQ/OiBzdHJpbmdcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEhhbmRsZVNlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgbm9kZSA9IHNpZ25hbDxOb2RlTW9kZWwgfCBudWxsPihudWxsKVxuXG4gIHB1YmxpYyBjcmVhdGVIYW5kbGUobmV3SGFuZGxlOiBIYW5kbGVNb2RlbCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGUoKVxuICAgIGlmIChub2RlKSB7XG4gICAgICBub2RlLnJhd0hhbmRsZXMudXBkYXRlKGhhbmRsZXMgPT4gWy4uLmhhbmRsZXMsIG5ld0hhbmRsZV0pXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3lIYW5kbGUoaGFuZGxlVG9EZXN0b3k6IEhhbmRsZU1vZGVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZSgpXG4gICAgLy8gVE9ETzogbWljcm90YXNrXG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IG5vZGUucmF3SGFuZGxlcy51cGRhdGUoXG4gICAgICAgIGhhbmRsZXMgPT4gaGFuZGxlcy5maWx0ZXIoaGFuZGxlID0+IGhhbmRsZSAhPT0gaGFuZGxlVG9EZXN0b3kpXG4gICAgICApKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvaGFuZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBdUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWlCeEUsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFFa0IsU0FBSSxHQUFHLE1BQU0sQ0FBbUIsSUFBSSxDQUFDLENBQUE7S0FpQnREO0lBZlEsWUFBWSxDQUFDLFNBQXNCO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUN4QixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFBO1NBQ3hEO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBQyxjQUEyQjtRQUM5QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDeEIsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDakIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxDQUMvRCxDQUFBO1NBQ0Y7SUFDSCxDQUFDOytHQWpCVSxhQUFhO21IQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBTaWduYWwsIFRlbXBsYXRlUmVmLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi4vdHlwZXMvcG9zaXRpb24udHlwZSc7XG5pbXBvcnQgeyBIYW5kbGVUeXBlIH0gZnJvbSAnLi4vdHlwZXMvaGFuZGxlLXR5cGUudHlwZSc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9pbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5vZGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9ub2RlLm1vZGVsJztcbmltcG9ydCB7IEhhbmRsZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2hhbmRsZS5tb2RlbCc7XG5pbXBvcnQgeyBNaWNyb3Rhc2sgfSBmcm9tICcuLi9kZWNvcmF0b3JzL21pY3JvdGFzay5kZWNvcmF0b3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVIYW5kbGUge1xuICBwb3NpdGlvbjogUG9zaXRpb25cbiAgdHlwZTogSGFuZGxlVHlwZVxuICBpZD86IHN0cmluZ1xuICBwYXJlbnRSZWZlcmVuY2U/OiBIVE1MRWxlbWVudFxuICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT5cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEhhbmRsZVNlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgbm9kZSA9IHNpZ25hbDxOb2RlTW9kZWwgfCBudWxsPihudWxsKVxuXG4gIHB1YmxpYyBjcmVhdGVIYW5kbGUobmV3SGFuZGxlOiBIYW5kbGVNb2RlbCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGUoKVxuICAgIGlmIChub2RlKSB7XG4gICAgICBub2RlLmhhbmRsZXMudXBkYXRlKGhhbmRsZXMgPT4gWy4uLmhhbmRsZXMsIG5ld0hhbmRsZV0pXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3lIYW5kbGUoaGFuZGxlVG9EZXN0b3k6IEhhbmRsZU1vZGVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZSgpXG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIG5vZGUuaGFuZGxlcy51cGRhdGUoXG4gICAgICAgIGhhbmRsZXMgPT4gaGFuZGxlcy5maWx0ZXIoaGFuZGxlID0+IGhhbmRsZSAhPT0gaGFuZGxlVG9EZXN0b3kpXG4gICAgICApXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Injectable, inject } from '@angular/core';
2
2
  import { FlowEntitiesService } from './flow-entities.service';
3
3
  import { toObservable } from '@angular/core/rxjs-interop';
4
- import { asyncScheduler, filter, map, merge, observeOn, pairwise, skip, switchMap } from 'rxjs';
4
+ import { asyncScheduler, distinctUntilChanged, filter, map, merge, observeOn, pairwise, skip, switchMap } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  export class NodesChangeService {
7
7
  constructor() {
@@ -21,7 +21,11 @@ export class NodesChangeService {
21
21
  .pipe(pairwise(), map(([oldList, newList]) => newList.filter(node => !oldList.includes(node))), filter((nodes) => !!nodes.length), map((nodes) => nodes.map(node => ({ type: 'add', id: node.node.id }))));
22
22
  this.nodeRemoveChange$ = toObservable(this.entitiesService.nodes)
23
23
  .pipe(pairwise(), map(([oldList, newList]) => oldList.filter(node => !newList.includes(node))), filter((nodes) => !!nodes.length), map((nodes) => nodes.map(node => ({ type: 'remove', id: node.node.id }))));
24
- this.changes$ = merge(this.nodesPositionChange$, this.nodeAddChange$, this.nodeRemoveChange$).pipe(
24
+ this.nodeSelectedChange$ = toObservable(this.entitiesService.nodes)
25
+ .pipe(switchMap((nodes) => merge(...nodes.map(node => node.selected$.pipe(distinctUntilChanged(), skip(1), map(() => node))))), map((changedNode) => [
26
+ { type: 'select', id: changedNode.node.id, selected: changedNode.selected() }
27
+ ]));
28
+ this.changes$ = merge(this.nodesPositionChange$, this.nodeAddChange$, this.nodeRemoveChange$, this.nodeSelectedChange$).pipe(
25
29
  // this fixes a bug when on fire node event change,
26
30
  // you can't get valid list of detached edges
27
31
  observeOn(asyncScheduler));
@@ -32,4 +36,4 @@ export class NodesChangeService {
32
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodesChangeService, decorators: [{
33
37
  type: Injectable
34
38
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jaGFuZ2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvbm9kZS1jaGFuZ2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBYyxjQUFjLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFNLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUloSCxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRVksb0JBQWUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUU3Qyx5QkFBb0IsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7YUFDdEUsSUFBSTtRQUNILDZGQUE2RjtRQUM3RixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNsQixLQUFLLENBQ0gsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtRQUNkLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUNoQixDQUNGLENBQ0YsQ0FDRjtRQUNELGtFQUFrRTtRQUNsRSxtQ0FBbUM7UUFDbkMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDakIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFO1NBQzFFLENBQUMsQ0FDZ0MsQ0FBQTtRQUU1QixtQkFBYyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQzthQUNoRSxJQUFJLENBQ0gsUUFBUSxFQUFFLEVBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUN6QixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ2hELEVBQ0QsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUNqQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNaLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ3ZELENBQ2lDLENBQUE7UUFFNUIsc0JBQWlCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO2FBQ25FLElBQUksQ0FDSCxRQUFRLEVBQUUsRUFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQ3pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDaEQsRUFDRCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQ2pDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1osS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDMUQsQ0FDaUMsQ0FBQTtRQUV0QixhQUFRLEdBQTZCLEtBQUssQ0FDeEQsSUFBSSxDQUFDLG9CQUFvQixFQUN6QixJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQ3ZCLENBQUMsSUFBSTtRQUNKLG1EQUFtRDtRQUNuRCw2Q0FBNkM7UUFDN0MsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUMxQixDQUFBO0tBQ0Y7K0dBekRZLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZsb3dFbnRpdGllc1NlcnZpY2UgfSBmcm9tICcuL2Zsb3ctZW50aXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgYXN5bmNTY2hlZHVsZXIsIGZpbHRlciwgbWFwLCBtZXJnZSwgb2JzZXJ2ZU9uLCBvZiwgcGFpcndpc2UsIHNraXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm9kZUNoYW5nZSB9IGZyb20gJy4uL3R5cGVzL25vZGUtY2hhbmdlLnR5cGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTm9kZXNDaGFuZ2VTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIGVudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKVxuXG4gIHByb3RlY3RlZCBub2Rlc1Bvc2l0aW9uQ2hhbmdlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzU2VydmljZS5ub2RlcylcbiAgICAucGlwZShcbiAgICAgIC8vIENoZWNrIGZvciBub2RlcyBsaXN0IGNoYW5nZSBhbmQgd2F0Y2ggZm9yIHNwZWNpZmljIG5vZGUgZnJvbSB0aGlzIGxpc3QgY2hhbmdlIGl0cyBwb3NpdGlvblxuICAgICAgc3dpdGNoTWFwKChub2RlcykgPT5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgLi4ubm9kZXMubWFwKG5vZGUgPT5cbiAgICAgICAgICAgIG5vZGUucG9pbnQkLnBpcGUoXG4gICAgICAgICAgICAgIC8vIHNraXAgaW5pdGlhbCBwb3NpdGlvbiBmcm9tIHNpZ25hbFxuICAgICAgICAgICAgICBza2lwKDEpLFxuICAgICAgICAgICAgICBtYXAoKCkgPT4gbm9kZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICAvLyBGb3Igbm93IGl0J3MgYSBzaW5nbGUgbm9kZSwgbGF0ZXIgdGhpcyBsaXN0IHdpbGwgYWxzbyBiZSBmaWxsZWRcbiAgICAgIC8vIHdpdGggY2hpbGQgbm9kZSBwb3NpdGlvbiBjaGFuZ2VzXG4gICAgICBtYXAoY2hhbmdlZE5vZGUgPT4gW1xuICAgICAgICB7IHR5cGU6ICdwb3NpdGlvbicsIGlkOiBjaGFuZ2VkTm9kZS5ub2RlLmlkLCBwb2ludDogY2hhbmdlZE5vZGUucG9pbnQoKSB9XG4gICAgICBdKVxuICAgICkgc2F0aXNmaWVzIE9ic2VydmFibGU8Tm9kZUNoYW5nZVtdPlxuXG4gIHByb3RlY3RlZCBub2RlQWRkQ2hhbmdlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzU2VydmljZS5ub2RlcylcbiAgICAucGlwZShcbiAgICAgIHBhaXJ3aXNlKCksXG4gICAgICBtYXAoKFtvbGRMaXN0LCBuZXdMaXN0XSkgPT5cbiAgICAgICAgbmV3TGlzdC5maWx0ZXIobm9kZSA9PiAhb2xkTGlzdC5pbmNsdWRlcyhub2RlKSlcbiAgICAgICksXG4gICAgICBmaWx0ZXIoKG5vZGVzKSA9PiAhIW5vZGVzLmxlbmd0aCksXG4gICAgICBtYXAoKG5vZGVzKSA9PlxuICAgICAgICBub2Rlcy5tYXAobm9kZSA9PiAoeyB0eXBlOiAnYWRkJywgaWQ6IG5vZGUubm9kZS5pZCB9KSlcbiAgICAgIClcbiAgICApIHNhdGlzZmllcyBPYnNlcnZhYmxlPE5vZGVDaGFuZ2VbXT5cblxuICBwcm90ZWN0ZWQgbm9kZVJlbW92ZUNoYW5nZSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMpXG4gICAgLnBpcGUoXG4gICAgICBwYWlyd2lzZSgpLFxuICAgICAgbWFwKChbb2xkTGlzdCwgbmV3TGlzdF0pID0+XG4gICAgICAgIG9sZExpc3QuZmlsdGVyKG5vZGUgPT4gIW5ld0xpc3QuaW5jbHVkZXMobm9kZSkpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChub2RlcykgPT4gISFub2Rlcy5sZW5ndGgpLFxuICAgICAgbWFwKChub2RlcykgPT5cbiAgICAgICAgbm9kZXMubWFwKG5vZGUgPT4gKHsgdHlwZTogJ3JlbW92ZScsIGlkOiBub2RlLm5vZGUuaWQgfSkpXG4gICAgICApXG4gICAgKSBzYXRpc2ZpZXMgT2JzZXJ2YWJsZTxOb2RlQ2hhbmdlW10+XG5cbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZXMkOiBPYnNlcnZhYmxlPE5vZGVDaGFuZ2VbXT4gPSBtZXJnZShcbiAgICB0aGlzLm5vZGVzUG9zaXRpb25DaGFuZ2UkLFxuICAgIHRoaXMubm9kZUFkZENoYW5nZSQsXG4gICAgdGhpcy5ub2RlUmVtb3ZlQ2hhbmdlJFxuICApLnBpcGUoXG4gICAgLy8gdGhpcyBmaXhlcyBhIGJ1ZyB3aGVuIG9uIGZpcmUgbm9kZSBldmVudCBjaGFuZ2UsXG4gICAgLy8geW91IGNhbid0IGdldCB2YWxpZCBsaXN0IG9mIGRldGFjaGVkIGVkZ2VzXG4gICAgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSxcbiAgKVxufVxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jaGFuZ2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvbm9kZS1jaGFuZ2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBb0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQWMsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBTSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJdEksTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVZLG9CQUFlLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFFN0MseUJBQW9CLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO2FBQ3RFLElBQUk7UUFDSCw2RkFBNkY7UUFDN0YsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDbEIsS0FBSyxDQUNILEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDZCxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDaEIsQ0FDRixDQUNGLENBQ0Y7UUFDRCxrRUFBa0U7UUFDbEUsbUNBQW1DO1FBQ25DLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2pCLEVBQUUsSUFB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dCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBTaWduYWwsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZsb3dFbnRpdGllc1NlcnZpY2UgfSBmcm9tICcuL2Zsb3ctZW50aXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgYXN5bmNTY2hlZHVsZXIsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgbWVyZ2UsIG9ic2VydmVPbiwgb2YsIHBhaXJ3aXNlLCBza2lwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5vZGVDaGFuZ2UgfSBmcm9tICcuLi90eXBlcy9ub2RlLWNoYW5nZS50eXBlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vZGVzQ2hhbmdlU2VydmljZSB7XG4gIHByb3RlY3RlZCBlbnRpdGllc1NlcnZpY2UgPSBpbmplY3QoRmxvd0VudGl0aWVzU2VydmljZSlcblxuICBwcm90ZWN0ZWQgbm9kZXNQb3NpdGlvbkNoYW5nZSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMpXG4gICAgLnBpcGUoXG4gICAgICAvLyBDaGVjayBmb3Igbm9kZXMgbGlzdCBjaGFuZ2UgYW5kIHdhdGNoIGZvciBzcGVjaWZpYyBub2RlIGZyb20gdGhpcyBsaXN0IGNoYW5nZSBpdHMgcG9zaXRpb25cbiAgICAgIHN3aXRjaE1hcCgobm9kZXMpID0+XG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgIC4uLm5vZGVzLm1hcChub2RlID0+XG4gICAgICAgICAgICBub2RlLnBvaW50JC5waXBlKFxuICAgICAgICAgICAgICAvLyBza2lwIGluaXRpYWwgcG9zaXRpb24gZnJvbSBzaWduYWxcbiAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgbWFwKCgpID0+IG5vZGUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgLy8gRm9yIG5vdyBpdCdzIGEgc2luZ2xlIG5vZGUsIGxhdGVyIHRoaXMgbGlzdCB3aWxsIGFsc28gYmUgZmlsbGVkXG4gICAgICAvLyB3aXRoIGNoaWxkIG5vZGUgcG9zaXRpb24gY2hhbmdlc1xuICAgICAgbWFwKGNoYW5nZWROb2RlID0+IFtcbiAgICAgICAgeyB0eXBlOiAncG9zaXRpb24nLCBpZDogY2hhbmdlZE5vZGUubm9kZS5pZCwgcG9pbnQ6IGNoYW5nZWROb2RlLnBvaW50KCkgfVxuICAgICAgXSlcbiAgICApIHNhdGlzZmllcyBPYnNlcnZhYmxlPE5vZGVDaGFuZ2VbXT5cblxuICBwcm90ZWN0ZWQgbm9kZUFkZENoYW5nZSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMpXG4gICAgLnBpcGUoXG4gICAgICBwYWlyd2lzZSgpLFxuICAgICAgbWFwKChbb2xkTGlzdCwgbmV3TGlzdF0pID0+XG4gICAgICAgIG5ld0xpc3QuZmlsdGVyKG5vZGUgPT4gIW9sZExpc3QuaW5jbHVkZXMobm9kZSkpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChub2RlcykgPT4gISFub2Rlcy5sZW5ndGgpLFxuICAgICAgbWFwKChub2RlcykgPT5cbiAgICAgICAgbm9kZXMubWFwKG5vZGUgPT4gKHsgdHlwZTogJ2FkZCcsIGlkOiBub2RlLm5vZGUuaWQgfSkpXG4gICAgICApXG4gICAgKSBzYXRpc2ZpZXMgT2JzZXJ2YWJsZTxOb2RlQ2hhbmdlW10+XG5cbiAgcHJvdGVjdGVkIG5vZGVSZW1vdmVDaGFuZ2UkID0gdG9PYnNlcnZhYmxlKHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKVxuICAgIC5waXBlKFxuICAgICAgcGFpcndpc2UoKSxcbiAgICAgIG1hcCgoW29sZExpc3QsIG5ld0xpc3RdKSA9PlxuICAgICAgICBvbGRMaXN0LmZpbHRlcihub2RlID0+ICFuZXdMaXN0LmluY2x1ZGVzKG5vZGUpKVxuICAgICAgKSxcbiAgICAgIGZpbHRlcigobm9kZXMpID0+ICEhbm9kZXMubGVuZ3RoKSxcbiAgICAgIG1hcCgobm9kZXMpID0+XG4gICAgICAgIG5vZGVzLm1hcChub2RlID0+ICh7IHR5cGU6ICdyZW1vdmUnLCBpZDogbm9kZS5ub2RlLmlkIH0pKVxuICAgICAgKVxuICAgICkgc2F0aXNmaWVzIE9ic2VydmFibGU8Tm9kZUNoYW5nZVtdPlxuXG4gIHByb3RlY3RlZCBub2RlU2VsZWN0ZWRDaGFuZ2UkID0gdG9PYnNlcnZhYmxlKHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKVxuICAgIC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChub2RlcykgPT5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgLi4ubm9kZXMubWFwKG5vZGUgPT5cbiAgICAgICAgICAgIG5vZGUuc2VsZWN0ZWQkLnBpcGUoXG4gICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICAgIG1hcCgoKSA9PiBub2RlKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICBtYXAoKGNoYW5nZWROb2RlKSA9PiBbXG4gICAgICAgIHsgdHlwZTogJ3NlbGVjdCcsIGlkOiBjaGFuZ2VkTm9kZS5ub2RlLmlkLCBzZWxlY3RlZDogY2hhbmdlZE5vZGUuc2VsZWN0ZWQoKSB9XG4gICAgICBdKVxuICAgICkgc2F0aXNmaWVzIE9ic2VydmFibGU8Tm9kZUNoYW5nZVtdPlxuXG4gIHB1YmxpYyByZWFkb25seSBjaGFuZ2VzJDogT2JzZXJ2YWJsZTxOb2RlQ2hhbmdlW10+ID0gbWVyZ2UoXG4gICAgdGhpcy5ub2Rlc1Bvc2l0aW9uQ2hhbmdlJCxcbiAgICB0aGlzLm5vZGVBZGRDaGFuZ2UkLFxuICAgIHRoaXMubm9kZVJlbW92ZUNoYW5nZSQsXG4gICAgdGhpcy5ub2RlU2VsZWN0ZWRDaGFuZ2UkXG4gICkucGlwZShcbiAgICAvLyB0aGlzIGZpeGVzIGEgYnVnIHdoZW4gb24gZmlyZSBub2RlIGV2ZW50IGNoYW5nZSxcbiAgICAvLyB5b3UgY2FuJ3QgZ2V0IHZhbGlkIGxpc3Qgb2YgZGV0YWNoZWQgZWRnZXNcbiAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLFxuICApXG59XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { Injectable, computed, inject } from '@angular/core';
2
+ import { FlowEntitiesService } from './flow-entities.service';
3
+ import * as i0 from "@angular/core";
4
+ export class NodeRenderingService {
5
+ constructor() {
6
+ this.flowEntitiesService = inject(FlowEntitiesService);
7
+ this.nodes = computed(() => {
8
+ return this.flowEntitiesService.nodes()
9
+ .sort((aNode, bNode) => aNode.renderOrder() - bNode.renderOrder());
10
+ });
11
+ }
12
+ pullNode(node) {
13
+ const maxOrder = Math.max(...this.flowEntitiesService.nodes().map((n) => n.renderOrder()));
14
+ node.renderOrder.set(maxOrder + 1);
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeRenderingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeRenderingService }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeRenderingService, decorators: [{
20
+ type: Injectable
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1yZW5kZXJpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9zZXJ2aWNlcy9ub2RlLXJlbmRlcmluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFJOUQsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVVLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRXpDLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRTtpQkFDcEMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBQ3RFLENBQUMsQ0FBQyxDQUFBO0tBU0g7SUFQUSxRQUFRLENBQUMsSUFBZTtRQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUN2QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUNoRSxDQUFBO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7K0dBZFUsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93RW50aXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi9mbG93LWVudGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL25vZGUubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTm9kZVJlbmRlcmluZ1NlcnZpY2Uge1xuICBwcml2YXRlIGZsb3dFbnRpdGllc1NlcnZpY2UgPSBpbmplY3QoRmxvd0VudGl0aWVzU2VydmljZSlcblxuICBwdWJsaWMgcmVhZG9ubHkgbm9kZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5ub2RlcygpXG4gICAgICAuc29ydCgoYU5vZGUsIGJOb2RlKSA9PiBhTm9kZS5yZW5kZXJPcmRlcigpIC0gYk5vZGUucmVuZGVyT3JkZXIoKSlcbiAgfSlcblxuICBwdWJsaWMgcHVsbE5vZGUobm9kZTogTm9kZU1vZGVsKSB7XG4gICAgY29uc3QgbWF4T3JkZXIgPSBNYXRoLm1heChcbiAgICAgIC4uLnRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5ub2RlcygpLm1hcCgobikgPT4gbi5yZW5kZXJPcmRlcigpKVxuICAgIClcblxuICAgIG5vZGUucmVuZGVyT3JkZXIuc2V0KG1heE9yZGVyICsgMSlcbiAgfVxufVxuIl19
@@ -0,0 +1,45 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { FlowEntitiesService } from './flow-entities.service';
3
+ import { Subject, tap } from 'rxjs';
4
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
+ import * as i0 from "@angular/core";
6
+ export class SelectionService {
7
+ constructor() {
8
+ this.flowEntitiesService = inject(FlowEntitiesService);
9
+ this.viewport$ = new Subject();
10
+ this.resetSelection = this.viewport$.pipe(tap(({ start, end, target }) => {
11
+ if (start && end) {
12
+ const delta = SelectionService.delta;
13
+ const diffX = Math.abs(end.x - start.x);
14
+ const diffY = Math.abs(end.y - start.y);
15
+ // click (not drag)
16
+ const isClick = diffX < delta && diffY < delta;
17
+ // do not reset if event chain contains selectable elems
18
+ const isNotSelectable = !target.closest('.selectable');
19
+ if (isClick && isNotSelectable) {
20
+ this.select(null);
21
+ }
22
+ }
23
+ }), takeUntilDestroyed()).subscribe();
24
+ }
25
+ static { this.delta = 6; }
26
+ setViewport(viewport) {
27
+ this.viewport$.next(viewport);
28
+ }
29
+ select(entity) {
30
+ // undo select for previously selected nodes
31
+ this.flowEntitiesService.entities()
32
+ .filter(n => n.selected)
33
+ .forEach(n => n.selected.set(false));
34
+ if (entity) {
35
+ // select passed entity
36
+ entity.selected.set(true);
37
+ }
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
40
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionService }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionService, decorators: [{
43
+ type: Injectable
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvc2VsZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVNoRSxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBSVUsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFFL0MsY0FBUyxHQUFHLElBQUksT0FBTyxFQUF3QixDQUFBO1FBRS9DLG1CQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzVDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1lBQzdCLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRTtnQkFDaEIsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFBO2dCQUVwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUV2QyxtQkFBbUI7Z0JBQ25CLE1BQU0sT0FBTyxHQUFHLEtBQUssR0FBRyxLQUFLLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQTtnQkFDOUMsd0RBQXdEO2dCQUN4RCxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUE7Z0JBRXRELElBQUksT0FBTyxJQUFJLGVBQWUsRUFBRTtvQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtpQkFDbEI7YUFDRjtRQUNILENBQUMsQ0FBQyxFQUNGLGtCQUFrQixFQUFFLENBQ3JCLENBQUMsU0FBUyxFQUFFLENBQUE7S0FrQmQ7YUEzQ2dCLFVBQUssR0FBRyxDQUFDLEFBQUosQ0FBSTtJQTRCakIsV0FBVyxDQUFDLFFBQThCO1FBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBeUI7UUFDckMsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7YUFDaEMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzthQUN2QixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBRXRDLElBQUksTUFBTSxFQUFFO1lBQ1YsdUJBQXVCO1lBQ3ZCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQzFCO0lBQ0gsQ0FBQzsrR0EzQ1UsZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdwb3J0U3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXdwb3J0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBWaWV3cG9ydFNlcnZpY2UgfSBmcm9tICcuL3ZpZXdwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4vZmxvdy1lbnRpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IEZsb3dFbnRpdHkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Zsb3ctZW50aXR5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuZXhwb3J0IGludGVyZmFjZSBWaWV3cG9ydEZvclNlbGVjdGlvbiB7XG4gIHN0YXJ0OiBWaWV3cG9ydFN0YXRlXG4gIGVuZDogVmlld3BvcnRTdGF0ZVxuICB0YXJnZXQ6IEVsZW1lbnRcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRpYyBkZWx0YSA9IDZcblxuICBwcml2YXRlIGZsb3dFbnRpdGllc1NlcnZpY2UgPSBpbmplY3QoRmxvd0VudGl0aWVzU2VydmljZSlcblxuICBwcm90ZWN0ZWQgdmlld3BvcnQkID0gbmV3IFN1YmplY3Q8Vmlld3BvcnRGb3JTZWxlY3Rpb24+KClcblxuICBwcm90ZWN0ZWQgcmVzZXRTZWxlY3Rpb24gPSB0aGlzLnZpZXdwb3J0JC5waXBlKFxuICAgIHRhcCgoeyBzdGFydCwgZW5kLCB0YXJnZXQgfSkgPT4ge1xuICAgICAgaWYgKHN0YXJ0ICYmIGVuZCkge1xuICAgICAgICBjb25zdCBkZWx0YSA9IFNlbGVjdGlvblNlcnZpY2UuZGVsdGFcblxuICAgICAgICBjb25zdCBkaWZmWCA9IE1hdGguYWJzKGVuZC54IC0gc3RhcnQueClcbiAgICAgICAgY29uc3QgZGlmZlkgPSBNYXRoLmFicyhlbmQueSAtIHN0YXJ0LnkpXG5cbiAgICAgICAgLy8gY2xpY2sgKG5vdCBkcmFnKVxuICAgICAgICBjb25zdCBpc0NsaWNrID0gZGlmZlggPCBkZWx0YSAmJiBkaWZmWSA8IGRlbHRhXG4gICAgICAgIC8vIGRvIG5vdCByZXNldCBpZiBldmVudCBjaGFpbiBjb250YWlucyBzZWxlY3RhYmxlIGVsZW1zXG4gICAgICAgIGNvbnN0IGlzTm90U2VsZWN0YWJsZSA9ICF0YXJnZXQuY2xvc2VzdCgnLnNlbGVjdGFibGUnKVxuXG4gICAgICAgIGlmIChpc0NsaWNrICYmIGlzTm90U2VsZWN0YWJsZSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0KG51bGwpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICApLnN1YnNjcmliZSgpXG5cblxuICBwdWJsaWMgc2V0Vmlld3BvcnQodmlld3BvcnQ6IFZpZXdwb3J0Rm9yU2VsZWN0aW9uKSB7XG4gICAgdGhpcy52aWV3cG9ydCQubmV4dCh2aWV3cG9ydClcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3QoZW50aXR5OiBGbG93RW50aXR5IHwgbnVsbCkge1xuICAgIC8vIHVuZG8gc2VsZWN0IGZvciBwcmV2aW91c2x5IHNlbGVjdGVkIG5vZGVzXG4gICAgdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmVudGl0aWVzKClcbiAgICAgIC5maWx0ZXIobiA9PiBuLnNlbGVjdGVkKVxuICAgICAgLmZvckVhY2gobiA9PiBuLnNlbGVjdGVkLnNldChmYWxzZSkpXG5cbiAgICBpZiAoZW50aXR5KSB7XG4gICAgICAvLyBzZWxlY3QgcGFzc2VkIGVudGl0eVxuICAgICAgZW50aXR5LnNlbGVjdGVkLnNldCh0cnVlKVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jaGFuZ2UudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy90eXBlcy9lZGdlLWNoYW5nZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBFZGdlQ2hhbmdlID0gRWRnZURldGFjaGVkQ2hhbmdlIHwgRWRnZUFkZENoYW5nZSB8IEVkZ2VSZW1vdmVDaGFuZ2VcblxuLyoqXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRnZURldGFjaGVkQ2hhbmdlIGV4dGVuZHMgRWRnZUNoYW5nZVNoYXJlZCB7XG4gIHR5cGU6ICdkZXRhY2hlZCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFZGdlQWRkQ2hhbmdlIGV4dGVuZHMgRWRnZUNoYW5nZVNoYXJlZCB7XG4gIHR5cGU6ICdhZGQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRnZVJlbW92ZUNoYW5nZSBleHRlbmRzIEVkZ2VDaGFuZ2VTaGFyZWQge1xuICB0eXBlOiAncmVtb3ZlJ1xufVxuXG5pbnRlcmZhY2UgRWRnZUNoYW5nZVNoYXJlZCB7XG4gIGlkOiBzdHJpbmdcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jaGFuZ2UudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy90eXBlcy9lZGdlLWNoYW5nZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBFZGdlQ2hhbmdlID1cbiAgRWRnZURldGFjaGVkQ2hhbmdlIHxcbiAgRWRnZUFkZENoYW5nZSB8XG4gIEVkZ2VSZW1vdmVDaGFuZ2UgfFxuICBFZGdlU2VsZWN0Q2hhbmdlXG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVkZ2VEZXRhY2hlZENoYW5nZSBleHRlbmRzIEVkZ2VDaGFuZ2VTaGFyZWQge1xuICB0eXBlOiAnZGV0YWNoZWQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRnZUFkZENoYW5nZSBleHRlbmRzIEVkZ2VDaGFuZ2VTaGFyZWQge1xuICB0eXBlOiAnYWRkJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVkZ2VSZW1vdmVDaGFuZ2UgZXh0ZW5kcyBFZGdlQ2hhbmdlU2hhcmVkIHtcbiAgdHlwZTogJ3JlbW92ZSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFZGdlU2VsZWN0Q2hhbmdlIGV4dGVuZHMgRWRnZUNoYW5nZVNoYXJlZCB7XG4gIHR5cGU6ICdzZWxlY3QnLFxuICBzZWxlY3RlZDogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgRWRnZUNoYW5nZVNoYXJlZCB7XG4gIGlkOiBzdHJpbmdcbn1cbiJdfQ==