ngx-vflow 1.4.2 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/esm2022/lib/vflow/components/connection/connection.component.mjs +3 -3
  2. package/esm2022/lib/vflow/components/edge/edge.component.mjs +30 -5
  3. package/esm2022/lib/vflow/components/node/node.component.mjs +4 -2
  4. package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +15 -3
  5. package/esm2022/lib/vflow/directives/connection-controller.directive.mjs +55 -37
  6. package/esm2022/lib/vflow/directives/root-svg-context.directive.mjs +2 -2
  7. package/esm2022/lib/vflow/directives/selectable.directive.mjs +19 -11
  8. package/esm2022/lib/vflow/interfaces/connection.interface.mjs +1 -1
  9. package/esm2022/lib/vflow/interfaces/edge.interface.mjs +1 -1
  10. package/esm2022/lib/vflow/models/edge.model.mjs +25 -23
  11. package/esm2022/lib/vflow/services/edge-rendering.service.mjs +28 -0
  12. package/esm2022/lib/vflow/services/flow-settings.service.mjs +2 -1
  13. package/esm2022/lib/vflow/services/flow-status.service.mjs +13 -1
  14. package/esm2022/lib/vflow/testing-utils/component-mocks/vflow-mock.component.mjs +4 -2
  15. package/esm2022/lib/vflow/testing-utils/directive-mocks/connection-controller-mock.directive.mjs +6 -2
  16. package/fesm2022/ngx-vflow.mjs +294 -190
  17. package/fesm2022/ngx-vflow.mjs.map +1 -1
  18. package/lib/vflow/components/edge/edge.component.d.ts +10 -2
  19. package/lib/vflow/components/vflow/vflow.component.d.ts +6 -1
  20. package/lib/vflow/directives/connection-controller.directive.d.ts +5 -2
  21. package/lib/vflow/directives/selectable.directive.d.ts +4 -1
  22. package/lib/vflow/interfaces/connection.interface.d.ts +5 -0
  23. package/lib/vflow/interfaces/edge.interface.d.ts +1 -0
  24. package/lib/vflow/models/edge.model.d.ts +4 -0
  25. package/lib/vflow/services/edge-rendering.service.d.ts +10 -0
  26. package/lib/vflow/services/flow-settings.service.d.ts +1 -0
  27. package/lib/vflow/services/flow-status.service.d.ts +24 -1
  28. package/lib/vflow/testing-utils/component-mocks/vflow-mock.component.d.ts +2 -1
  29. package/lib/vflow/testing-utils/directive-mocks/connection-controller-mock.directive.d.ts +4 -2
  30. package/package.json +1 -1
@@ -20,42 +20,24 @@ export class ConnectionControllerDirective {
20
20
  * @todo add connect event and deprecate onConnect
21
21
  */
22
22
  // eslint-disable-next-line @angular-eslint/no-output-on-prefix
23
- this.onConnect = outputFromObservable(toObservable(this.statusService.status).pipe(filter((status) => status.state === 'connection-end'), map((status) => {
24
- let source = status.payload.source;
25
- let target = status.payload.target;
26
- let sourceHandle = status.payload.sourceHandle;
27
- let targetHandle = status.payload.targetHandle;
28
- if (this.isStrictMode()) {
29
- const adjusted = adjustDirection({
30
- source: status.payload.source,
31
- sourceHandle: status.payload.sourceHandle,
32
- target: status.payload.target,
33
- targetHandle: status.payload.targetHandle,
34
- });
35
- source = adjusted.source;
36
- target = adjusted.target;
37
- sourceHandle = adjusted.sourceHandle;
38
- targetHandle = adjusted.targetHandle;
39
- }
40
- const sourceId = source.node.id;
41
- const targetId = target.node.id;
42
- const sourceHandleId = sourceHandle.rawHandle.id;
43
- const targetHandleId = targetHandle.rawHandle.id;
44
- return {
45
- source: sourceId,
46
- target: targetId,
47
- sourceHandle: sourceHandleId,
48
- targetHandle: targetHandleId,
49
- };
50
- }), tap(() => this.statusService.setIdleStatus()), filter((connection) => this.flowEntitiesService.connection().validator(connection))));
23
+ this.onConnect = outputFromObservable(toObservable(this.statusService.status).pipe(filter((status) => status.state === 'connection-end'), map((status) => statusToConnection(status, this.isStrictMode())), tap(() => this.statusService.setIdleStatus()), filter((connection) => this.flowEntitiesService.connection().validator(connection))));
24
+ this.onReconnect = outputFromObservable(toObservable(this.statusService.status).pipe(filter((status) => status.state === 'reconnection-end'), map((status) => {
25
+ const connection = statusToConnection(status, this.isStrictMode());
26
+ const oldEdge = status.payload.oldEdge.edge;
27
+ return { connection, oldEdge };
28
+ }), tap(() => this.statusService.setIdleStatus()), filter(({ connection }) => this.flowEntitiesService.connection().validator(connection))));
51
29
  this.isStrictMode = computed(() => this.flowEntitiesService.connection().mode === 'strict');
52
30
  }
53
31
  startConnection(handle) {
54
32
  this.statusService.setConnectionStartStatus(handle.parentNode, handle);
55
33
  }
34
+ startReconnection(handle, oldEdge) {
35
+ this.statusService.setReconnectionStartStatus(handle.parentNode, handle, oldEdge);
36
+ }
56
37
  validateConnection(handle) {
57
38
  const status = this.statusService.status();
58
- if (status.state === 'connection-start') {
39
+ if (status.state === 'connection-start' || status.state === 'reconnection-start') {
40
+ const isReconnection = status.state === 'reconnection-start';
59
41
  let source = status.payload.source;
60
42
  let target = handle.parentNode;
61
43
  let sourceHandle = status.payload.sourceHandle;
@@ -84,35 +66,71 @@ export class ConnectionControllerDirective {
84
66
  handle.state.set(valid ? 'valid' : 'invalid');
85
67
  // status is about how we draw connection, so we don't need
86
68
  // swapped diretion here
87
- this.statusService.setConnectionValidationStatus(valid, status.payload.source, handle.parentNode, status.payload.sourceHandle, handle);
69
+ isReconnection
70
+ ? this.statusService.setReconnectionValidationStatus(valid, status.payload.source, handle.parentNode, status.payload.sourceHandle, handle, status.payload.oldEdge)
71
+ : this.statusService.setConnectionValidationStatus(valid, status.payload.source, handle.parentNode, status.payload.sourceHandle, handle);
88
72
  }
89
73
  }
90
74
  resetValidateConnection(targetHandle) {
91
75
  targetHandle.state.set('idle');
92
76
  // drop back to start status
93
77
  const status = this.statusService.status();
94
- if (status.state === 'connection-validation') {
95
- this.statusService.setConnectionStartStatus(status.payload.source, status.payload.sourceHandle);
78
+ if (status.state === 'connection-validation' || status.state === 'reconnection-validation') {
79
+ const isReconnection = status.state === 'reconnection-validation';
80
+ isReconnection
81
+ ? this.statusService.setReconnectionStartStatus(status.payload.source, status.payload.sourceHandle, status.payload.oldEdge)
82
+ : this.statusService.setConnectionStartStatus(status.payload.source, status.payload.sourceHandle);
96
83
  }
97
84
  }
98
85
  endConnection() {
99
86
  const status = this.statusService.status();
100
- if (status.state === 'connection-validation') {
87
+ if (status.state === 'connection-validation' || status.state === 'reconnection-validation') {
88
+ const isReconnection = status.state === 'reconnection-validation';
101
89
  const source = status.payload.source;
102
90
  const sourceHandle = status.payload.sourceHandle;
103
91
  const target = status.payload.target;
104
92
  const targetHandle = status.payload.targetHandle;
105
- this.statusService.setConnectionEndStatus(source, target, sourceHandle, targetHandle);
93
+ isReconnection
94
+ ? this.statusService.setReconnectionEndStatus(source, target, sourceHandle, targetHandle, status.payload.oldEdge)
95
+ : this.statusService.setConnectionEndStatus(source, target, sourceHandle, targetHandle);
106
96
  }
107
97
  }
108
98
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConnectionControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
109
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ConnectionControllerDirective, isStandalone: true, selector: "[onConnect]", outputs: { onConnect: "onConnect" }, ngImport: i0 }); }
99
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ConnectionControllerDirective, isStandalone: true, selector: "[onConnect], [onReconnect]", outputs: { onConnect: "onConnect", onReconnect: "onReconnect" }, ngImport: i0 }); }
110
100
  }
111
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConnectionControllerDirective, decorators: [{
112
102
  type: Directive,
113
103
  args: [{
114
- selector: '[onConnect]',
104
+ selector: '[onConnect], [onReconnect]',
115
105
  standalone: true,
116
106
  }]
117
107
  }] });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1jb250cm9sbGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9kaXJlY3RpdmVzL2Nvbm5lY3Rpb24tY29udHJvbGxlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBMkIsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFNeEMsTUFBTSxPQUFPLDZCQUE2QjtJQUoxQztRQUtVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUMsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFMUQ7Ozs7Ozs7OztXQVNHO1FBQ0gsK0RBQStEO1FBQy9DLGNBQVMsR0FBRyxvQkFBb0IsQ0FDOUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQXFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLGdCQUFnQixDQUFDLEVBQ3hGLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2IsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxN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QUFFLENBQUM7UUFDM0MsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLHVCQUF1QixFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xHLENBQUM7SUFDSCxDQUFDO0lBRU0sYUFBYTtRQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTNDLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyx1QkFBdUIsRUFBRSxDQUFDO1lBQzdDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3JDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3JDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBRWpELElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDeEYsQ0FBQztJQUNILENBQUM7K0dBbElVLDZCQUE2QjttR0FBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbm5lY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Nvbm5lY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEZsb3dTdGF0dXNDb25uZWN0aW9uRW5kLCBGbG93U3RhdHVzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctc3RhdHVzLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBGbG93RW50aXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxvdy1lbnRpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IEhhbmRsZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2hhbmRsZS5tb2RlbCc7XG5pbXBvcnQgeyBhZGp1c3REaXJlY3Rpb24gfSBmcm9tICcuLi91dGlscy9hZGp1c3QtZGlyZWN0aW9uJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tvbkNvbm5lY3RdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvbkNvbnRyb2xsZXJEaXJlY3RpdmUge1xuICBwcml2YXRlIHN0YXR1c1NlcnZpY2UgPSBpbmplY3QoRmxvd1N0YXR1c1NlcnZpY2UpO1xuICBwcml2YXRlIGZsb3dFbnRpdGllc1NlcnZpY2UgPSBpbmplY3QoRmxvd0VudGl0aWVzU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZmlyZXMgd2hlbiB1c2VyIHRyaWVzIHRvIGNyZWF0ZSBuZXcgRWRnZS5cbiAgICpcbiAgICogYENvbm5lY3Rpb25gIGlzIGFuIGVudGl0eSB0aGF0IGNvbnRhaW5zIGRhdGEgYWJvdXQgc291cmNlIGFuZCB0YXJnZXQgbm9kZXMuXG4gICAqXG4gICAqIEFsc28gaXQncyBpbXBvcnRhbnQgdG8gbm90ZSwgdGhhdCB0aGlzIGV2ZW50IG9ubHkgZmlyZXMgd2hlbiBjb25uZWN0aW9uIGlzIHZhbGlkIGJ5IHZhbGlkYXRvciBmdW5jdGlvbiBpbiBgQ29ubmVjdGlvblNldHRpbmdzYCxcbiAgICogYnkgZGVmYXVsdCB3aXRob3V0IHBhc3NpbmcgdGhlIHZhbGlkYXRvciBldmVyeSBjb25uZWN0aW9uIGNvbmNpZGVyZWQgdmFsaWQuXG4gICAqXG4gICAqIEB0b2RvIGFkZCBjb25uZWN0IGV2ZW50IGFuZCBkZXByZWNhdGUgb25Db25uZWN0XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgcHVibGljIHJlYWRvbmx5IG9uQ29ubmVjdCA9IG91dHB1dEZyb21PYnNlcnZhYmxlPENvbm5lY3Rpb24+KFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnN0YXR1c1NlcnZpY2Uuc3RhdHVzKS5waXBlKFxuICAgICAgZmlsdGVyKChzdGF0dXMpOiBzdGF0dXMgaXMgRmxvd1N0YXR1c0Nvbm5lY3Rpb25FbmQgPT4gc3RhdHVzLnN0YXRlID09PSAnY29ubmVjdGlvbi1lbmQnKSxcbiAgICAgIG1hcCgoc3RhdHVzKSA9PiB7XG4gICAgICAgIGxldCBzb3VyY2UgPSBzdGF0dXMucGF5bG9hZC5zb3VyY2U7XG4gICAgICAgIGxldCB0YXJnZXQgPSBzdGF0dXMucGF5bG9hZC50YXJnZXQ7XG4gICAgICAgIGxldCBzb3VyY2VIYW5kbGUgPSBzdGF0dXMucGF5bG9hZC5zb3VyY2VIYW5kbGU7XG4gICAgICAgIGxldCB0YXJnZXRIYW5kbGUgPSBzdGF0dXMucGF5bG9hZC50YXJnZXRIYW5kbGU7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTdHJpY3RNb2RlKCkpIHtcbiAgICAgICAgICBjb25zdCBhZGp1c3RlZCA9IGFkanVzdERpcmVjdGlvbih7XG4gICAgICAgICAgICBzb3VyY2U6IHN0YXR1cy5wYXlsb2FkLnNvdXJjZSxcbiAgICAgICAgICAgIHNvdXJjZUhhbmRsZTogc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlLFxuICAgICAgICAgICAgdGFyZ2V0OiBzdGF0dXMucGF5bG9hZC50YXJnZXQsXG4gICAgICAgICAgICB0YXJnZXRIYW5kbGU6IHN0YXR1cy5wYXlsb2FkLnRhcmdldEhhbmRsZSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHNvdXJjZSA9IGFkanVzdGVkLnNvdXJjZTtcbiAgICAgICAgICB0YXJnZXQgPSBhZGp1c3RlZC50YXJnZXQ7XG4gICAgICAgICAgc291cmNlSGFuZGxlID0gYWRqdXN0ZWQuc291cmNlSGFuZGxlO1xuICAgICAgICAgIHRhcmdldEhhbmRsZSA9IGFkanVzdGVkLnRhcmdldEhhbmRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNvdXJjZUlkID0gc291cmNlLm5vZGUuaWQ7XG4gICAgICAgIGNvbnN0IHRhcmdldElkID0gdGFyZ2V0Lm5vZGUuaWQ7XG5cbiAgICAgICAgY29uc3Qgc291cmNlSGFuZGxlSWQgPSBzb3VyY2VIYW5kbGUucmF3SGFuZGxlLmlkO1xuICAgICAgICBjb25zdCB0YXJnZXRIYW5kbGVJZCA9IHRhcmdldEhhbmRsZS5yYXdIYW5kbGUuaWQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzb3VyY2U6IHNvdXJjZUlkLFxuICAgICAgICAgIHRhcmdldDogdGFyZ2V0SWQsXG4gICAgICAgICAgc291cmNlSGFuZGxlOiBzb3VyY2VIYW5kbGVJZCxcbiAgICAgICAgICB0YXJnZXRIYW5kbGU6IHRhcmdldEhhbmRsZUlkLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zdGF0dXNTZXJ2aWNlLnNldElkbGVTdGF0dXMoKSksXG4gICAgICBmaWx0ZXIoKGNvbm5lY3Rpb24pID0+IHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5jb25uZWN0aW9uKCkudmFsaWRhdG9yKGNvbm5lY3Rpb24pKSxcbiAgICApLFxuICApO1xuXG4gIHByb3RlY3RlZCBpc1N0cmljdE1vZGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuY29ubmVjdGlvbigpLm1vZGUgPT09ICdzdHJpY3QnKTtcblxuICBwdWJsaWMgc3RhcnRDb25uZWN0aW9uKGhhbmRsZTogSGFuZGxlTW9kZWwpIHtcbiAgICB0aGlzLnN0YXR1c1NlcnZpY2Uuc2V0Q29ubmVjdGlvblN0YXJ0U3RhdHVzKGhhbmRsZS5wYXJlbnROb2RlLCBoYW5kbGUpO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlQ29ubmVjdGlvbihoYW5kbGU6IEhhbmRsZU1vZGVsKSB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNTZXJ2aWNlLnN0YXR1cygpO1xuXG4gICAgaWYgKHN0YXR1cy5zdGF0ZSA9PT0gJ2Nvbm5lY3Rpb24tc3RhcnQnKSB7XG4gICAgICBsZXQgc291cmNlID0gc3RhdHVzLnBheWxvYWQuc291cmNlO1xuICAgICAgbGV0IHRhcmdldCA9IGhhbmRsZS5wYXJlbnROb2RlO1xuICAgICAgbGV0IHNvdXJjZUhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZTtcbiAgICAgIGxldCB0YXJnZXRIYW5kbGUgPSBoYW5kbGU7XG5cbiAgICAgIGlmICh0aGlzLmlzU3RyaWN0TW9kZSgpKSB7XG4gICAgICAgIC8vIHN3YXAgZGlyZWN0aW9uIChpZiBuZWVkZWQpIGFjY29yZGluZyB0byBhY3R1YWwgc291cmNlIGFuZCB0YXJnZXQgb2Ygc3RyaWN0IG1vZGVcbiAgICAgICAgY29uc3QgYWRqdXN0ZWQgPSBhZGp1c3REaXJlY3Rpb24oe1xuICAgICAgICAgIHNvdXJjZTogc3RhdHVzLnBheWxvYWQuc291cmNlLFxuICAgICAgICAgIHNvdXJjZUhhbmRsZTogc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlLFxuICAgICAgICAgIHRhcmdldDogaGFuZGxlLnBhcmVudE5vZGUsXG4gICAgICAgICAgdGFyZ2V0SGFuZGxlOiBoYW5kbGUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHNvdXJjZSA9IGFkanVzdGVkLnNvdXJjZTtcbiAgICAgICAgdGFyZ2V0ID0gYWRqdXN0ZWQudGFyZ2V0O1xuICAgICAgICBzb3VyY2VIYW5kbGUgPSBhZGp1c3RlZC5zb3VyY2VIYW5kbGU7XG4gICAgICAgIHRhcmdldEhhbmRsZSA9IGFkanVzdGVkLnRhcmdldEhhbmRsZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsaWQgPSB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuY29ubmVjdGlvbigpLnZhbGlkYXRvcih7XG4gICAgICAgIHNvdXJjZTogc291cmNlLm5vZGUuaWQsXG4gICAgICAgIHRhcmdldDogdGFyZ2V0Lm5vZGUuaWQsXG4gICAgICAgIHNvdXJjZUhhbmRsZTogc291cmNlSGFuZGxlLnJhd0hhbmRsZS5pZCxcbiAgICAgICAgdGFyZ2V0SGFuZGxlOiB0YXJnZXRIYW5kbGUucmF3SGFuZGxlLmlkLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRPRE86IGNoZWNrIGhvdyByZWFjdCBmbG93IGhhbmRsZXMgaGlnaGxpZ2h0IG9mIGhhbmRsZVxuICAgICAgLy8gaWYgZGlyZWN0aW9uIGNoYW5nZXNcbiAgICAgIGhhbmRsZS5zdGF0ZS5zZXQodmFsaWQgPyAndmFsaWQnIDogJ2ludmFsaWQnKTtcblxuICAgICAgLy8gc3RhdHVzIGlzIGFib3V0IGhvdyB3ZSBkcmF3IGNvbm5lY3Rpb24sIHNvIHdlIGRvbid0IG5lZWRcbiAgICAgIC8vIHN3YXBwZWQgZGlyZXRpb24gaGVyZVxuICAgICAgdGhpcy5zdGF0dXNTZXJ2aWNlLnNldENvbm5lY3Rpb25WYWxpZGF0aW9uU3RhdHVzKFxuICAgICAgICB2YWxpZCxcbiAgICAgICAgc3RhdHVzLnBheWxvYWQuc291cmNlLFxuICAgICAgICBoYW5kbGUucGFyZW50Tm9kZSxcbiAgICAgICAgc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlLFxuICAgICAgICBoYW5kbGUsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNldFZhbGlkYXRlQ29ubmVjdGlvbih0YXJnZXRIYW5kbGU6IEhhbmRsZU1vZGVsKSB7XG4gICAgdGFyZ2V0SGFuZGxlLnN0YXRlLnNldCgnaWRsZScpO1xuXG4gICAgLy8gZHJvcCBiYWNrIHRvIHN0YXJ0IHN0YXR1c1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuc3RhdHVzU2VydmljZS5zdGF0dXMoKTtcbiAgICBpZiAoc3RhdHVzLnN0YXRlID09PSAnY29ubmVjdGlvbi12YWxpZGF0aW9uJykge1xuICAgICAgdGhpcy5zdGF0dXNTZXJ2aWNlLnNldENvbm5lY3Rpb25TdGFydFN0YXR1cyhzdGF0dXMucGF5bG9hZC5zb3VyY2UsIHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVuZENvbm5lY3Rpb24oKSB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNTZXJ2aWNlLnN0YXR1cygpO1xuXG4gICAgaWYgKHN0YXR1cy5zdGF0ZSA9PT0gJ2Nvbm5lY3Rpb24tdmFsaWRhdGlvbicpIHtcbiAgICAgIGNvbnN0IHNvdXJjZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZTtcbiAgICAgIGNvbnN0IHNvdXJjZUhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZTtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHN0YXR1cy5wYXlsb2FkLnRhcmdldDtcbiAgICAgIGNvbnN0IHRhcmdldEhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnRhcmdldEhhbmRsZTtcblxuICAgICAgdGhpcy5zdGF0dXNTZXJ2aWNlLnNldENvbm5lY3Rpb25FbmRTdGF0dXMoc291cmNlLCB0YXJnZXQsIHNvdXJjZUhhbmRsZSwgdGFyZ2V0SGFuZGxlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
108
+ function statusToConnection(status, isStrictMode) {
109
+ let source = status.payload.source;
110
+ let target = status.payload.target;
111
+ let sourceHandle = status.payload.sourceHandle;
112
+ let targetHandle = status.payload.targetHandle;
113
+ if (isStrictMode) {
114
+ const adjusted = adjustDirection({
115
+ source: status.payload.source,
116
+ sourceHandle: status.payload.sourceHandle,
117
+ target: status.payload.target,
118
+ targetHandle: status.payload.targetHandle,
119
+ });
120
+ source = adjusted.source;
121
+ target = adjusted.target;
122
+ sourceHandle = adjusted.sourceHandle;
123
+ targetHandle = adjusted.targetHandle;
124
+ }
125
+ const sourceId = source.node.id;
126
+ const targetId = target.node.id;
127
+ const sourceHandleId = sourceHandle.rawHandle.id;
128
+ const targetHandleId = targetHandle.rawHandle.id;
129
+ return {
130
+ source: sourceId,
131
+ target: targetId,
132
+ sourceHandle: sourceHandleId,
133
+ targetHandle: targetHandleId,
134
+ };
135
+ }
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1jb250cm9sbGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9kaXJlY3RpdmVzL2Nvbm5lY3Rpb24tY29udHJvbGxlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBc0QsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV4SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPeEMsTUFBTSxPQUFPLDZCQUE2QjtJQUoxQztRQUtVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUMsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFMUQ7Ozs7Ozs7OztXQVNHO1FBQ0gsK0RBQStEO1FBQy9DLGNBQVMsR0FBRyxvQkFBb0IsQ0FDOUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQXFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLGdCQUFnQixDQUFDLEVBQ3hGLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZ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LE1BQU0sQ0FBQztRQUN6QixNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUN6QixZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNyQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDaEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFaEMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7SUFDakQsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7SUFFakQsT0FBTztRQUNMLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLFlBQVksRUFBRSxjQUFjO1FBQzVCLFlBQVksRUFBRSxjQUFjO0tBQzdCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBjb21wdXRlZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uLCBSZWNvbm5lY3Rpb25FdmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29ubmVjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmxvd1N0YXR1c0Nvbm5lY3Rpb25FbmQsIEZsb3dTdGF0dXNSZWNvbm5lY3Rpb25FbmQsIEZsb3dTdGF0dXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxvdy1zdGF0dXMuc2VydmljZSc7XG5cbmltcG9ydCB7IEZsb3dFbnRpdGllc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mbG93LWVudGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGFuZGxlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvaGFuZGxlLm1vZGVsJztcbmltcG9ydCB7IGFkanVzdERpcmVjdGlvbiB9IGZyb20gJy4uL3V0aWxzL2FkanVzdC1kaXJlY3Rpb24nO1xuaW1wb3J0IHsgb3V0cHV0RnJvbU9ic2VydmFibGUsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVkZ2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9lZGdlLm1vZGVsJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW29uQ29ubmVjdF0sIFtvblJlY29ubmVjdF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uQ29udHJvbGxlckRpcmVjdGl2ZSB7XG4gIHByaXZhdGUgc3RhdHVzU2VydmljZSA9IGluamVjdChGbG93U3RhdHVzU2VydmljZSk7XG4gIHByaXZhdGUgZmxvd0VudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBmaXJlcyB3aGVuIHVzZXIgdHJpZXMgdG8gY3JlYXRlIG5ldyBFZGdlLlxuICAgKlxuICAgKiBgQ29ubmVjdGlvbmAgaXMgYW4gZW50aXR5IHRoYXQgY29udGFpbnMgZGF0YSBhYm91dCBzb3VyY2UgYW5kIHRhcmdldCBub2Rlcy5cbiAgICpcbiAgICogQWxzbyBpdCdzIGltcG9ydGFudCB0byBub3RlLCB0aGF0IHRoaXMgZXZlbnQgb25seSBmaXJlcyB3aGVuIGNvbm5lY3Rpb24gaXMgdmFsaWQgYnkgdmFsaWRhdG9yIGZ1bmN0aW9uIGluIGBDb25uZWN0aW9uU2V0dGluZ3NgLFxuICAgKiBieSBkZWZhdWx0IHdpdGhvdXQgcGFzc2luZyB0aGUgdmFsaWRhdG9yIGV2ZXJ5IGNvbm5lY3Rpb24gY29uY2lkZXJlZCB2YWxpZC5cbiAgICpcbiAgICogQHRvZG8gYWRkIGNvbm5lY3QgZXZlbnQgYW5kIGRlcHJlY2F0ZSBvbkNvbm5lY3RcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICBwdWJsaWMgcmVhZG9ubHkgb25Db25uZWN0ID0gb3V0cHV0RnJvbU9ic2VydmFibGU8Q29ubmVjdGlvbj4oXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuc3RhdHVzU2VydmljZS5zdGF0dXMpLnBpcGUoXG4gICAgICBmaWx0ZXIoKHN0YXR1cyk6IHN0YXR1cyBpcyBGbG93U3RhdHVzQ29ubmVjdGlvbkVuZCA9PiBzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLWVuZCcpLFxuICAgICAgbWFwKChzdGF0dXMpID0+IHN0YXR1c1RvQ29ubmVjdGlvbihzdGF0dXMsIHRoaXMuaXNTdHJpY3RNb2RlKCkpKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnN0YXR1c1NlcnZpY2Uuc2V0SWRsZVN0YXR1cygpKSxcbiAgICAgIGZpbHRlcigoY29ubmVjdGlvbikgPT4gdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmNvbm5lY3Rpb24oKS52YWxpZGF0b3IoY29ubmVjdGlvbikpLFxuICAgICksXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG9uUmVjb25uZWN0ID0gb3V0cHV0RnJvbU9ic2VydmFibGU8UmVjb25uZWN0aW9uRXZlbnQ+KFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnN0YXR1c1NlcnZpY2Uuc3RhdHVzKS5waXBlKFxuICAgICAgZmlsdGVyKChzdGF0dXMpOiBzdGF0dXMgaXMgRmxvd1N0YXR1c1JlY29ubmVjdGlvbkVuZCA9PiBzdGF0dXMuc3RhdGUgPT09ICdyZWNvbm5lY3Rpb24tZW5kJyksXG4gICAgICBtYXAoKHN0YXR1cykgPT4ge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uID0gc3RhdHVzVG9Db25uZWN0aW9uKHN0YXR1cywgdGhpcy5pc1N0cmljdE1vZGUoKSk7XG4gICAgICAgIGNvbnN0IG9sZEVkZ2UgPSBzdGF0dXMucGF5bG9hZC5vbGRFZGdlLmVkZ2U7XG5cbiAgICAgICAgcmV0dXJuIHsgY29ubmVjdGlvbiwgb2xkRWRnZSB9O1xuICAgICAgfSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zdGF0dXNTZXJ2aWNlLnNldElkbGVTdGF0dXMoKSksXG4gICAgICBmaWx0ZXIoKHsgY29ubmVjdGlvbiB9KSA9PiB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuY29ubmVjdGlvbigpLnZhbGlkYXRvcihjb25uZWN0aW9uKSksXG4gICAgKSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgaXNTdHJpY3RNb2RlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmNvbm5lY3Rpb24oKS5tb2RlID09PSAnc3RyaWN0Jyk7XG5cbiAgcHVibGljIHN0YXJ0Q29ubmVjdGlvbihoYW5kbGU6IEhhbmRsZU1vZGVsKSB7XG4gICAgdGhpcy5zdGF0dXNTZXJ2aWNlLnNldENvbm5lY3Rpb25TdGFydFN0YXR1cyhoYW5kbGUucGFyZW50Tm9kZSwgaGFuZGxlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydFJlY29ubmVjdGlvbihoYW5kbGU6IEhhbmRsZU1vZGVsLCBvbGRFZGdlOiBFZGdlTW9kZWwpIHtcbiAgICB0aGlzLnN0YXR1c1NlcnZpY2Uuc2V0UmVjb25uZWN0aW9uU3RhcnRTdGF0dXMoaGFuZGxlLnBhcmVudE5vZGUsIGhhbmRsZSwgb2xkRWRnZSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVDb25uZWN0aW9uKGhhbmRsZTogSGFuZGxlTW9kZWwpIHtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YXR1c1NlcnZpY2Uuc3RhdHVzKCk7XG5cbiAgICBpZiAoc3RhdHVzLnN0YXRlID09PSAnY29ubmVjdGlvbi1zdGFydCcgfHwgc3RhdHVzLnN0YXRlID09PSAncmVjb25uZWN0aW9uLXN0YXJ0Jykge1xuICAgICAgY29uc3QgaXNSZWNvbm5lY3Rpb24gPSBzdGF0dXMuc3RhdGUgPT09ICdyZWNvbm5lY3Rpb24tc3RhcnQnO1xuXG4gICAgICBsZXQgc291cmNlID0gc3RhdHVzLnBheWxvYWQuc291cmNlO1xuICAgICAgbGV0IHRhcmdldCA9IGhhbmRsZS5wYXJlbnROb2RlO1xuICAgICAgbGV0IHNvdXJjZUhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZTtcbiAgICAgIGxldCB0YXJnZXRIYW5kbGUgPSBoYW5kbGU7XG5cbiAgICAgIGlmICh0aGlzLmlzU3RyaWN0TW9kZSgpKSB7XG4gICAgICAgIC8vIHN3YXAgZGlyZWN0aW9uIChpZiBuZWVkZWQpIGFjY29yZGluZyB0byBhY3R1YWwgc291cmNlIGFuZCB0YXJnZXQgb2Ygc3RyaWN0IG1vZGVcbiAgICAgICAgY29uc3QgYWRqdXN0ZWQgPSBhZGp1c3REaXJlY3Rpb24oe1xuICAgICAgICAgIHNvdXJjZTogc3RhdHVzLnBheWxvYWQuc291cmNlLFxuICAgICAgICAgIHNvdXJjZUhhbmRsZTogc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlLFxuICAgICAgICAgIHRhcmdldDogaGFuZGxlLnBhcmVudE5vZGUsXG4gICAgICAgICAgdGFyZ2V0SGFuZGxlOiBoYW5kbGUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHNvdXJjZSA9IGFkanVzdGVkLnNvdXJjZTtcbiAgICAgICAgdGFyZ2V0ID0gYWRqdXN0ZWQudGFyZ2V0O1xuICAgICAgICBzb3VyY2VIYW5kbGUgPSBhZGp1c3RlZC5zb3VyY2VIYW5kbGU7XG4gICAgICAgIHRhcmdldEhhbmRsZSA9IGFkanVzdGVkLnRhcmdldEhhbmRsZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsaWQgPSB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuY29ubmVjdGlvbigpLnZhbGlkYXRvcih7XG4gICAgICAgIHNvdXJjZTogc291cmNlLm5vZGUuaWQsXG4gICAgICAgIHRhcmdldDogdGFyZ2V0Lm5vZGUuaWQsXG4gICAgICAgIHNvdXJjZUhhbmRsZTogc291cmNlSGFuZGxlLnJhd0hhbmRsZS5pZCxcbiAgICAgICAgdGFyZ2V0SGFuZGxlOiB0YXJnZXRIYW5kbGUucmF3SGFuZGxlLmlkLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRPRE86IGNoZWNrIGhvdyByZWFjdCBmbG93IGhhbmRsZXMgaGlnaGxpZ2h0IG9mIGhhbmRsZVxuICAgICAgLy8gaWYgZGlyZWN0aW9uIGNoYW5nZXNcbiAgICAgIGhhbmRsZS5zdGF0ZS5zZXQodmFsaWQgPyAndmFsaWQnIDogJ2ludmFsaWQnKTtcblxuICAgICAgLy8gc3RhdHVzIGlzIGFib3V0IGhvdyB3ZSBkcmF3IGNvbm5lY3Rpb24sIHNvIHdlIGRvbid0IG5lZWRcbiAgICAgIC8vIHN3YXBwZWQgZGlyZXRpb24gaGVyZVxuICAgICAgaXNSZWNvbm5lY3Rpb25cbiAgICAgICAgPyB0aGlzLnN0YXR1c1NlcnZpY2Uuc2V0UmVjb25uZWN0aW9uVmFsaWRhdGlvblN0YXR1cyhcbiAgICAgICAgICAgIHZhbGlkLFxuICAgICAgICAgICAgc3RhdHVzLnBheWxvYWQuc291cmNlLFxuICAgICAgICAgICAgaGFuZGxlLnBhcmVudE5vZGUsXG4gICAgICAgICAgICBzdGF0dXMucGF5bG9hZC5zb3VyY2VIYW5kbGUsXG4gICAgICAgICAgICBoYW5kbGUsXG4gICAgICAgICAgICBzdGF0dXMucGF5bG9hZC5vbGRFZGdlLFxuICAgICAgICAgIClcbiAgICAgICAgOiB0aGlzLnN0YXR1c1NlcnZpY2Uuc2V0Q29ubmVjdGlvblZhbGlkYXRpb25TdGF0dXMoXG4gICAgICAgICAgICB2YWxpZCxcbiAgICAgICAgICAgIHN0YXR1cy5wYXlsb2FkLnNvdXJjZSxcbiAgICAgICAgICAgIGhhbmRsZS5wYXJlbnROb2RlLFxuICAgICAgICAgICAgc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlLFxuICAgICAgICAgICAgaGFuZGxlLFxuICAgICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc2V0VmFsaWRhdGVDb25uZWN0aW9uKHRhcmdldEhhbmRsZTogSGFuZGxlTW9kZWwpIHtcbiAgICB0YXJnZXRIYW5kbGUuc3RhdGUuc2V0KCdpZGxlJyk7XG5cbiAgICAvLyBkcm9wIGJhY2sgdG8gc3RhcnQgc3RhdHVzXG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNTZXJ2aWNlLnN0YXR1cygpO1xuICAgIGlmIChzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLXZhbGlkYXRpb24nIHx8IHN0YXR1cy5zdGF0ZSA9PT0gJ3JlY29ubmVjdGlvbi12YWxpZGF0aW9uJykge1xuICAgICAgY29uc3QgaXNSZWNvbm5lY3Rpb24gPSBzdGF0dXMuc3RhdGUgPT09ICdyZWNvbm5lY3Rpb24tdmFsaWRhdGlvbic7XG5cbiAgICAgIGlzUmVjb25uZWN0aW9uXG4gICAgICAgID8gdGhpcy5zdGF0dXNTZXJ2aWNlLnNldFJlY29ubmVjdGlvblN0YXJ0U3RhdHVzKFxuICAgICAgICAgICAgc3RhdHVzLnBheWxvYWQuc291cmNlLFxuICAgICAgICAgICAgc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlLFxuICAgICAgICAgICAgc3RhdHVzLnBheWxvYWQub2xkRWRnZSxcbiAgICAgICAgICApXG4gICAgICAgIDogdGhpcy5zdGF0dXNTZXJ2aWNlLnNldENvbm5lY3Rpb25TdGFydFN0YXR1cyhzdGF0dXMucGF5bG9hZC5zb3VyY2UsIHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVuZENvbm5lY3Rpb24oKSB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNTZXJ2aWNlLnN0YXR1cygpO1xuXG4gICAgaWYgKHN0YXR1cy5zdGF0ZSA9PT0gJ2Nvbm5lY3Rpb24tdmFsaWRhdGlvbicgfHwgc3RhdHVzLnN0YXRlID09PSAncmVjb25uZWN0aW9uLXZhbGlkYXRpb24nKSB7XG4gICAgICBjb25zdCBpc1JlY29ubmVjdGlvbiA9IHN0YXR1cy5zdGF0ZSA9PT0gJ3JlY29ubmVjdGlvbi12YWxpZGF0aW9uJztcblxuICAgICAgY29uc3Qgc291cmNlID0gc3RhdHVzLnBheWxvYWQuc291cmNlO1xuICAgICAgY29uc3Qgc291cmNlSGFuZGxlID0gc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gc3RhdHVzLnBheWxvYWQudGFyZ2V0O1xuICAgICAgY29uc3QgdGFyZ2V0SGFuZGxlID0gc3RhdHVzLnBheWxvYWQudGFyZ2V0SGFuZGxlO1xuXG4gICAgICBpc1JlY29ubmVjdGlvblxuICAgICAgICA/IHRoaXMuc3RhdHVzU2VydmljZS5zZXRSZWNvbm5lY3Rpb25FbmRTdGF0dXMoXG4gICAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICBzb3VyY2VIYW5kbGUsXG4gICAgICAgICAgICB0YXJnZXRIYW5kbGUsXG4gICAgICAgICAgICBzdGF0dXMucGF5bG9hZC5vbGRFZGdlLFxuICAgICAgICAgIClcbiAgICAgICAgOiB0aGlzLnN0YXR1c1NlcnZpY2Uuc2V0Q29ubmVjdGlvbkVuZFN0YXR1cyhzb3VyY2UsIHRhcmdldCwgc291cmNlSGFuZGxlLCB0YXJnZXRIYW5kbGUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdGF0dXNUb0Nvbm5lY3Rpb24oXG4gIHN0YXR1czogRmxvd1N0YXR1c0Nvbm5lY3Rpb25FbmQgfCBGbG93U3RhdHVzUmVjb25uZWN0aW9uRW5kLFxuICBpc1N0cmljdE1vZGU6IGJvb2xlYW4sXG4pOiBDb25uZWN0aW9uIHtcbiAgbGV0IHNvdXJjZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZTtcbiAgbGV0IHRhcmdldCA9IHN0YXR1cy5wYXlsb2FkLnRhcmdldDtcbiAgbGV0IHNvdXJjZUhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZTtcbiAgbGV0IHRhcmdldEhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnRhcmdldEhhbmRsZTtcblxuICBpZiAoaXNTdHJpY3RNb2RlKSB7XG4gICAgY29uc3QgYWRqdXN0ZWQgPSBhZGp1c3REaXJlY3Rpb24oe1xuICAgICAgc291cmNlOiBzdGF0dXMucGF5bG9hZC5zb3VyY2UsXG4gICAgICBzb3VyY2VIYW5kbGU6IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZSxcbiAgICAgIHRhcmdldDogc3RhdHVzLnBheWxvYWQudGFyZ2V0LFxuICAgICAgdGFyZ2V0SGFuZGxlOiBzdGF0dXMucGF5bG9hZC50YXJnZXRIYW5kbGUsXG4gICAgfSk7XG5cbiAgICBzb3VyY2UgPSBhZGp1c3RlZC5zb3VyY2U7XG4gICAgdGFyZ2V0ID0gYWRqdXN0ZWQudGFyZ2V0O1xuICAgIHNvdXJjZUhhbmRsZSA9IGFkanVzdGVkLnNvdXJjZUhhbmRsZTtcbiAgICB0YXJnZXRIYW5kbGUgPSBhZGp1c3RlZC50YXJnZXRIYW5kbGU7XG4gIH1cblxuICBjb25zdCBzb3VyY2VJZCA9IHNvdXJjZS5ub2RlLmlkO1xuICBjb25zdCB0YXJnZXRJZCA9IHRhcmdldC5ub2RlLmlkO1xuXG4gIGNvbnN0IHNvdXJjZUhhbmRsZUlkID0gc291cmNlSGFuZGxlLnJhd0hhbmRsZS5pZDtcbiAgY29uc3QgdGFyZ2V0SGFuZGxlSWQgPSB0YXJnZXRIYW5kbGUucmF3SGFuZGxlLmlkO1xuXG4gIHJldHVybiB7XG4gICAgc291cmNlOiBzb3VyY2VJZCxcbiAgICB0YXJnZXQ6IHRhcmdldElkLFxuICAgIHNvdXJjZUhhbmRsZTogc291cmNlSGFuZGxlSWQsXG4gICAgdGFyZ2V0SGFuZGxlOiB0YXJnZXRIYW5kbGVJZCxcbiAgfTtcbn1cbiJdfQ==
@@ -9,7 +9,7 @@ export class RootSvgContextDirective {
9
9
  // TODO: check for multiple instances on page
10
10
  resetConnection() {
11
11
  const status = this.flowStatusService.status();
12
- if (status.state === 'connection-start') {
12
+ if (status.state === 'connection-start' || status.state === 'reconnection-start') {
13
13
  this.flowStatusService.setIdleStatus();
14
14
  }
15
15
  }
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
32
32
  type: HostListener,
33
33
  args: ['contextmenu']
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1zdmctY29udGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvZGlyZWN0aXZlcy9yb290LXN2Zy1jb250ZXh0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBRXBFLGlDQUFpQztBQUtqQyxNQUFNLE9BQU8sdUJBQXVCO0lBSnBDO1FBS1Usc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FhdkQ7SUFYQyw2Q0FBNkM7SUFJbkMsZUFBZTtRQUN2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFL0MsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLGtCQUFrQixFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDOytHQWJVLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs4QkFRVyxlQUFlO3NCQUh4QixZQUFZO3VCQUFDLGtCQUFrQjs7c0JBQy9CLFlBQVk7dUJBQUMsbUJBQW1COztzQkFDaEMsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxvd1N0YXR1c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mbG93LXN0YXR1cy5zZXJ2aWNlJztcblxuLy8gVE9ETzogdG9vIGdlbmVyYWwgcHVycG9zZSBuYW5lXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdzdmdbcm9vdFN2Z0NvbnRleHRdJyxcbn0pXG5leHBvcnQgY2xhc3MgUm9vdFN2Z0NvbnRleHREaXJlY3RpdmUge1xuICBwcml2YXRlIGZsb3dTdGF0dXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dTdGF0dXNTZXJ2aWNlKTtcblxuICAvLyBUT0RPOiBjaGVjayBmb3IgbXVsdGlwbGUgaW5zdGFuY2VzIG9uIHBhZ2VcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcpXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnRvdWNoZW5kJylcbiAgQEhvc3RMaXN0ZW5lcignY29udGV4dG1lbnUnKVxuICBwcm90ZWN0ZWQgcmVzZXRDb25uZWN0aW9uKCkge1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuZmxvd1N0YXR1c1NlcnZpY2Uuc3RhdHVzKCk7XG5cbiAgICBpZiAoc3RhdHVzLnN0YXRlID09PSAnY29ubmVjdGlvbi1zdGFydCcpIHtcbiAgICAgIHRoaXMuZmxvd1N0YXR1c1NlcnZpY2Uuc2V0SWRsZVN0YXR1cygpO1xuICAgIH1cbiAgfVxufVxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1zdmctY29udGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvZGlyZWN0aXZlcy9yb290LXN2Zy1jb250ZXh0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBRXBFLGlDQUFpQztBQUtqQyxNQUFNLE9BQU8sdUJBQXVCO0lBSnBDO1FBS1Usc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FhdkQ7SUFYQyw2Q0FBNkM7SUFJbkMsZUFBZTtRQUN2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFL0MsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLGtCQUFrQixJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssb0JBQW9CLEVBQUUsQ0FBQztZQUNqRixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7K0dBYlUsdUJBQXVCO21HQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxxQkFBcUI7aUJBQ2hDOzhCQVFXLGVBQWU7c0JBSHhCLFlBQVk7dUJBQUMsa0JBQWtCOztzQkFDL0IsWUFBWTt1QkFBQyxtQkFBbUI7O3NCQUNoQyxZQUFZO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93U3RhdHVzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctc3RhdHVzLnNlcnZpY2UnO1xuXG4vLyBUT0RPOiB0b28gZ2VuZXJhbCBwdXJwb3NlIG5hbmVcbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3N2Z1tyb290U3ZnQ29udGV4dF0nLFxufSlcbmV4cG9ydCBjbGFzcyBSb290U3ZnQ29udGV4dERpcmVjdGl2ZSB7XG4gIHByaXZhdGUgZmxvd1N0YXR1c1NlcnZpY2UgPSBpbmplY3QoRmxvd1N0YXR1c1NlcnZpY2UpO1xuXG4gIC8vIFRPRE86IGNoZWNrIGZvciBtdWx0aXBsZSBpbnN0YW5jZXMgb24gcGFnZVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJylcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hlbmQnKVxuICBASG9zdExpc3RlbmVyKCdjb250ZXh0bWVudScpXG4gIHByb3RlY3RlZCByZXNldENvbm5lY3Rpb24oKSB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5mbG93U3RhdHVzU2VydmljZS5zdGF0dXMoKTtcblxuICAgIGlmIChzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLXN0YXJ0JyB8fCBzdGF0dXMuc3RhdGUgPT09ICdyZWNvbm5lY3Rpb24tc3RhcnQnKSB7XG4gICAgICB0aGlzLmZsb3dTdGF0dXNTZXJ2aWNlLnNldElkbGVTdGF0dXMoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +1,10 @@
1
- import { Directive, HostListener, inject } from '@angular/core';
1
+ import { Directive, ElementRef, inject } from '@angular/core';
2
2
  import { SelectionService } from '../services/selection.service';
3
3
  import { EdgeComponent } from '../components/edge/edge.component';
4
4
  import { NodeComponent } from '../components/node/node.component';
5
5
  import { FlowSettingsService } from '../services/flow-settings.service';
6
+ import { fromEvent, merge, tap } from 'rxjs';
7
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
8
  import * as i0 from "@angular/core";
7
9
  export class SelectableDirective {
8
10
  constructor() {
@@ -10,8 +12,12 @@ export class SelectableDirective {
10
12
  this.selectionService = inject(SelectionService);
11
13
  this.parentEdge = inject(EdgeComponent, { optional: true });
12
14
  this.parentNode = inject(NodeComponent, { optional: true });
15
+ this.host = inject(ElementRef);
16
+ this.selectOnEvent = this.getEvent$()
17
+ .pipe(tap(() => this.select()), takeUntilDestroyed())
18
+ .subscribe();
13
19
  }
14
- onMousedown() {
20
+ select() {
15
21
  const entity = this.entity();
16
22
  if (entity && this.flowSettingsService.entitiesSelectable()) {
17
23
  this.selectionService.select(entity);
@@ -26,8 +32,16 @@ export class SelectableDirective {
26
32
  }
27
33
  return null;
28
34
  }
35
+ getEvent$() {
36
+ if (this.parentEdge) {
37
+ // get not the edge itself, but the interactive edge (which is more UX friendly)
38
+ const interactiveEdge = this.parentEdge.interactiveEdgeRef().nativeElement;
39
+ return merge(fromEvent(interactiveEdge, 'mousedown'), fromEvent(interactiveEdge, 'touchstart'));
40
+ }
41
+ return merge(fromEvent(this.host.nativeElement, 'mousedown'), fromEvent(this.host.nativeElement, 'touchstart'));
42
+ }
29
43
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
30
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: SelectableDirective, isStandalone: true, selector: "[selectable]", host: { listeners: { "mousedown": "onMousedown()", "touchstart": "onMousedown()" } }, ngImport: i0 }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: SelectableDirective, isStandalone: true, selector: "[selectable]", ngImport: i0 }); }
31
45
  }
32
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectableDirective, decorators: [{
33
47
  type: Directive,
@@ -35,11 +49,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
35
49
  standalone: true,
36
50
  selector: '[selectable]',
37
51
  }]
38
- }], propDecorators: { onMousedown: [{
39
- type: HostListener,
40
- args: ['mousedown']
41
- }, {
42
- type: HostListener,
43
- args: ['touchstart']
44
- }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvZGlyZWN0aXZlcy9zZWxlY3RhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFNeEUsTUFBTSxPQUFPLG1CQUFtQjtJQUpoQztRQUtVLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQW9CaEU7SUFoQlcsV0FBVztRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztZQUM1RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRU8sTUFBTTtRQUNaLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBdkJVLG1CQUFtQjttR0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsY0FBYztpQkFDekI7OEJBU1csV0FBVztzQkFGcEIsWUFBWTt1QkFBQyxXQUFXOztzQkFDeEIsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEVkZ2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VkZ2UvZWRnZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBGbG93RW50aXR5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mbG93LWVudGl0eS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW3NlbGVjdGFibGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0YWJsZURpcmVjdGl2ZSB7XG4gIHByaXZhdGUgZmxvd1NldHRpbmdzU2VydmljZSA9IGluamVjdChGbG93U2V0dGluZ3NTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZWxlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KFNlbGVjdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHBhcmVudEVkZ2UgPSBpbmplY3QoRWRnZUNvbXBvbmVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBwYXJlbnROb2RlID0gaW5qZWN0KE5vZGVDb21wb25lbnQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJylcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcpXG4gIHByb3RlY3RlZCBvbk1vdXNlZG93bigpIHtcbiAgICBjb25zdCBlbnRpdHkgPSB0aGlzLmVudGl0eSgpO1xuICAgIGlmIChlbnRpdHkgJiYgdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmVudGl0aWVzU2VsZWN0YWJsZSgpKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0KGVudGl0eSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnRpdHkoKTogRmxvd0VudGl0eSB8IG51bGwge1xuICAgIGlmICh0aGlzLnBhcmVudE5vZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGUubW9kZWwoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucGFyZW50RWRnZSkge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50RWRnZS5tb2RlbCgpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
52
+ }] });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvZGlyZWN0aXZlcy9zZWxlY3RhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBTWhFLE1BQU0sT0FBTyxtQkFBbUI7SUFKaEM7UUFLVSx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNsRCxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxlQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELGVBQVUsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFdkQsU0FBSSxHQUFHLE1BQU0sQ0FBc0IsVUFBVSxDQUFDLENBQUM7UUFFN0Msa0JBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO2FBQ3ZDLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQ3hCLGtCQUFrQixFQUFFLENBQ3JCO2FBQ0EsU0FBUyxFQUFFLENBQUM7S0E2QmhCO0lBM0JTLE1BQU07UUFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztZQUM1RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRU8sTUFBTTtRQUNaLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsZ0ZBQWdGO1lBQ2hGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFFM0UsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsRUFBRSxTQUFTLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDbEcsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNsSCxDQUFDOytHQXpDVSxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBFZGdlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGdlL2VkZ2UuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRmxvd0VudGl0eSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZmxvdy1lbnRpdHkuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL25vZGUvbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxvd1NldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW3NlbGVjdGFibGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0YWJsZURpcmVjdGl2ZSB7XG4gIHByaXZhdGUgZmxvd1NldHRpbmdzU2VydmljZSA9IGluamVjdChGbG93U2V0dGluZ3NTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZWxlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KFNlbGVjdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHBhcmVudEVkZ2UgPSBpbmplY3QoRWRnZUNvbXBvbmVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBwYXJlbnROb2RlID0gaW5qZWN0KE5vZGVDb21wb25lbnQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgcHJpdmF0ZSBob3N0ID0gaW5qZWN0PEVsZW1lbnRSZWY8RWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gIHByb3RlY3RlZCBzZWxlY3RPbkV2ZW50ID0gdGhpcy5nZXRFdmVudCQoKVxuICAgIC5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuc2VsZWN0KCkpLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgKVxuICAgIC5zdWJzY3JpYmUoKTtcblxuICBwcml2YXRlIHNlbGVjdCgpIHtcbiAgICBjb25zdCBlbnRpdHkgPSB0aGlzLmVudGl0eSgpO1xuICAgIGlmIChlbnRpdHkgJiYgdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmVudGl0aWVzU2VsZWN0YWJsZSgpKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0KGVudGl0eSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnRpdHkoKTogRmxvd0VudGl0eSB8IG51bGwge1xuICAgIGlmICh0aGlzLnBhcmVudE5vZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGUubW9kZWwoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucGFyZW50RWRnZSkge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50RWRnZS5tb2RlbCgpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFdmVudCQoKSB7XG4gICAgaWYgKHRoaXMucGFyZW50RWRnZSkge1xuICAgICAgLy8gZ2V0IG5vdCB0aGUgZWRnZSBpdHNlbGYsIGJ1dCB0aGUgaW50ZXJhY3RpdmUgZWRnZSAod2hpY2ggaXMgbW9yZSBVWCBmcmllbmRseSlcbiAgICAgIGNvbnN0IGludGVyYWN0aXZlRWRnZSA9IHRoaXMucGFyZW50RWRnZS5pbnRlcmFjdGl2ZUVkZ2VSZWYoKS5uYXRpdmVFbGVtZW50O1xuXG4gICAgICByZXR1cm4gbWVyZ2UoZnJvbUV2ZW50KGludGVyYWN0aXZlRWRnZSwgJ21vdXNlZG93bicpLCBmcm9tRXZlbnQoaW50ZXJhY3RpdmVFZGdlLCAndG91Y2hzdGFydCcpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVyZ2UoZnJvbUV2ZW50KHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJyksIGZyb21FdmVudCh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwgJ3RvdWNoc3RhcnQnKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvaW50ZXJmYWNlcy9jb25uZWN0aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uIHtcbiAgc291cmNlOiBzdHJpbmc7XG4gIHRhcmdldDogc3RyaW5nO1xuICBzb3VyY2VIYW5kbGU/OiBzdHJpbmc7XG4gIHRhcmdldEhhbmRsZT86IHN0cmluZztcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvaW50ZXJmYWNlcy9jb25uZWN0aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRnZSB9IGZyb20gJy4vZWRnZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb24ge1xuICBzb3VyY2U6IHN0cmluZztcbiAgdGFyZ2V0OiBzdHJpbmc7XG4gIHNvdXJjZUhhbmRsZT86IHN0cmluZztcbiAgdGFyZ2V0SGFuZGxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY29ubmVjdGlvbkV2ZW50IHtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcbiAgb2xkRWRnZTogRWRnZTtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvaW50ZXJmYWNlcy9lZGdlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGlvbiB9IGZyb20gJy4vY29ubmVjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRWRnZUxhYmVsLCBFZGdlTGFiZWxQb3NpdGlvbiB9IGZyb20gJy4vZWRnZS1sYWJlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWFya2VyIH0gZnJvbSAnLi9tYXJrZXIuaW50ZXJmYWNlJztcblxuZXhwb3J0IHR5cGUgRWRnZVR5cGUgPSAnZGVmYXVsdCcgfCAndGVtcGxhdGUnO1xuZXhwb3J0IHR5cGUgQ3VydmUgPSAnc3RyYWlnaHQnIHwgJ2JlemllcicgfCAnc21vb3RoLXN0ZXAnIHwgJ3N0ZXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVkZ2U8VCA9IHVua25vd24+IGV4dGVuZHMgQ29ubmVjdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU/OiBFZGdlVHlwZTtcbiAgY3VydmU/OiBDdXJ2ZTtcbiAgZGF0YT86IFQ7XG4gIGVkZ2VMYWJlbHM/OiB7IFtwb3NpdGlvbiBpbiBFZGdlTGFiZWxQb3NpdGlvbl0/OiBFZGdlTGFiZWwgfTtcbiAgbWFya2Vycz86IHtcbiAgICBzdGFydD86IE1hcmtlcjtcbiAgICBlbmQ/OiBNYXJrZXI7XG4gIH07XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvaW50ZXJmYWNlcy9lZGdlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGlvbiB9IGZyb20gJy4vY29ubmVjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRWRnZUxhYmVsLCBFZGdlTGFiZWxQb3NpdGlvbiB9IGZyb20gJy4vZWRnZS1sYWJlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWFya2VyIH0gZnJvbSAnLi9tYXJrZXIuaW50ZXJmYWNlJztcblxuZXhwb3J0IHR5cGUgRWRnZVR5cGUgPSAnZGVmYXVsdCcgfCAndGVtcGxhdGUnO1xuZXhwb3J0IHR5cGUgQ3VydmUgPSAnc3RyYWlnaHQnIHwgJ2JlemllcicgfCAnc21vb3RoLXN0ZXAnIHwgJ3N0ZXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVkZ2U8VCA9IHVua25vd24+IGV4dGVuZHMgQ29ubmVjdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU/OiBFZGdlVHlwZTtcbiAgY3VydmU/OiBDdXJ2ZTtcbiAgZGF0YT86IFQ7XG4gIGVkZ2VMYWJlbHM/OiB7IFtwb3NpdGlvbiBpbiBFZGdlTGFiZWxQb3NpdGlvbl0/OiBFZGdlTGFiZWwgfTtcbiAgbWFya2Vycz86IHtcbiAgICBzdGFydD86IE1hcmtlcjtcbiAgICBlbmQ/OiBNYXJrZXI7XG4gIH07XG4gIHJlY29ubmVjdGFibGU/OiBib29sZWFuIHwgJ3NvdXJjZScgfCAndGFyZ2V0Jztcbn1cbiJdfQ==
@@ -11,6 +11,7 @@ export class EdgeModel {
11
11
  this.target = signal(undefined);
12
12
  this.selected = signal(false);
13
13
  this.selected$ = toObservable(this.selected);
14
+ this.renderOrder = signal(0);
14
15
  this.detached = computed(() => {
15
16
  const source = this.source();
16
17
  const target = this.target();
@@ -35,28 +36,8 @@ export class EdgeModel {
35
36
  });
36
37
  this.detached$ = toObservable(this.detached);
37
38
  this.path = computed(() => {
38
- let source;
39
- if (this.edge.sourceHandle) {
40
- source = this.source()
41
- ?.handles()
42
- .find((handle) => handle.rawHandle.id === this.edge.sourceHandle);
43
- }
44
- else {
45
- source = this.source()
46
- ?.handles()
47
- .find((handle) => handle.rawHandle.type === 'source');
48
- }
49
- let target;
50
- if (this.edge.targetHandle) {
51
- target = this.target()
52
- ?.handles()
53
- .find((handle) => handle.rawHandle.id === this.edge.targetHandle);
54
- }
55
- else {
56
- target = this.target()
57
- ?.handles()
58
- .find((handle) => handle.rawHandle.type === 'target');
59
- }
39
+ const source = this.sourceHandle();
40
+ const target = this.targetHandle();
60
41
  // TODO: don't like this
61
42
  if (!source || !target) {
62
43
  return {
@@ -79,9 +60,30 @@ export class EdgeModel {
79
60
  return smoothStepPath(source.pointAbsolute(), target.pointAbsolute(), source.rawHandle.position, target.rawHandle.position, 0);
80
61
  }
81
62
  });
63
+ this.sourceHandle = computed(() => {
64
+ if (this.edge.sourceHandle) {
65
+ return (this.source()
66
+ ?.handles()
67
+ .find((handle) => handle.rawHandle.id === this.edge.sourceHandle) ?? null);
68
+ }
69
+ return (this.source()
70
+ ?.handles()
71
+ .find((handle) => handle.rawHandle.type === 'source') ?? null);
72
+ });
73
+ this.targetHandle = computed(() => {
74
+ if (this.edge.targetHandle) {
75
+ return (this.target()
76
+ ?.handles()
77
+ .find((handle) => handle.rawHandle.id === this.edge.targetHandle) ?? null);
78
+ }
79
+ return (this.target()
80
+ ?.handles()
81
+ .find((handle) => handle.rawHandle.type === 'target') ?? null);
82
+ });
82
83
  this.edgeLabels = {};
83
84
  this.type = edge.type ?? 'default';
84
85
  this.curve = edge.curve ?? 'bezier';
86
+ this.reconnectable = edge.reconnectable ?? false;
85
87
  if (edge.edgeLabels?.start)
86
88
  this.edgeLabels.start = new EdgeLabelModel(edge.edgeLabels.start);
87
89
  if (edge.edgeLabels?.center)
@@ -91,4 +93,4 @@ export class EdgeModel {
91
93
  this.usingPoints = [!!this.edgeLabels.start, !!this.edgeLabels.center, !!this.edgeLabels.end];
92
94
  }
93
95
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvZWRnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXBFLE1BQU0sT0FBTyxTQUFTO0lBeUdwQixZQUFtQixJQUFVO1FBQVYsU0FBSSxHQUFKLElBQUksQ0FBTTtRQXhHdEIsV0FBTSxHQUFHLE1BQU0sQ0FBd0IsU0FBUyxDQUFDLENBQUM7UUFDbEQsV0FBTSxHQUFHLE1BQU0sQ0FBd0IsU0FBUyxDQUFDLENBQUM7UUFJbEQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixjQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV4QyxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTdCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsSUFBSSxrQkFBa0IsR0FBRyxL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QUFDLENBQ0YsQ0FBQztZQUNOLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVJLGVBQVUsR0FBeUQsRUFBRSxDQUFDO1FBSzNFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQztRQUVwQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSztZQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUYsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU07WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pHLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHO1lBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZGdlTGFiZWxQb3NpdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWRnZS1sYWJlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRWRnZSwgQ3VydmUsIEVkZ2VUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lZGdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFZGdlTGFiZWxNb2RlbCB9IGZyb20gJy4vZWRnZS1sYWJlbC5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuL25vZGUubW9kZWwnO1xuaW1wb3J0IHsgc3RyYWlnaHRQYXRoIH0gZnJvbSAnLi4vbWF0aC9lZGdlLXBhdGgvc3RyYWlnaC1wYXRoJztcbmltcG9ydCB7IGJlemllclBhdGggfSBmcm9tICcuLi9tYXRoL2VkZ2UtcGF0aC9iZXppZXItcGF0aCc7XG5pbXBvcnQgeyBVc2luZ1BvaW50cyB9IGZyb20gJy4uL3R5cGVzL3VzaW5nLXBvaW50cy50eXBlJztcbmltcG9ydCB7IEhhbmRsZU1vZGVsIH0gZnJvbSAnLi9oYW5kbGUubW9kZWwnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRmxvd0VudGl0eSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZmxvdy1lbnRpdHkuaW50ZXJmYWNlJztcbmltcG9ydCB7IHNtb290aFN0ZXBQYXRoIH0gZnJvbSAnLi4vbWF0aC9lZGdlLXBhdGgvc21vb3RoLXN0ZXAtcGF0aCc7XG5cbmV4cG9ydCBjbGFzcyBFZGdlTW9kZWwgaW1wbGVtZW50cyBGbG93RW50aXR5IHtcbiAgcHVibGljIHNvdXJjZSA9IHNpZ25hbDxOb2RlTW9kZWwgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyB0YXJnZXQgPSBzaWduYWw8Tm9kZU1vZGVsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwdWJsaWMgY3VydmU6IEN1cnZlO1xuICBwdWJsaWMgdHlwZTogRWRnZVR5cGU7XG5cbiAgcHVibGljIHNlbGVjdGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgcHVibGljIHNlbGVjdGVkJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnNlbGVjdGVkKTtcblxuICBwdWJsaWMgZGV0YWNoZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5zb3VyY2UoKTtcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldCgpO1xuXG4gICAgaWYgKCFzb3VyY2UgfHwgIXRhcmdldCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbGV0IGV4aXN0c1NvdXJjZUhhbmRsZSA9IGZhbHNlO1xuICAgIGxldCBleGlzdHNUYXJnZXRIYW5kbGUgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmVkZ2Uuc291cmNlSGFuZGxlKSB7XG4gICAgICBleGlzdHNTb3VyY2VIYW5kbGUgPSAhIXNvdXJjZS5oYW5kbGVzKCkuZmluZCgoaGFuZGxlKSA9PiBoYW5kbGUucmF3SGFuZGxlLmlkID09PSB0aGlzLmVkZ2Uuc291cmNlSGFuZGxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhpc3RzU291cmNlSGFuZGxlID0gISFzb3VyY2UuaGFuZGxlcygpLmZpbmQoKGhhbmRsZSkgPT4gaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAnc291cmNlJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpIHtcbiAgICAgIGV4aXN0c1RhcmdldEhhbmRsZSA9ICEhdGFyZ2V0LmhhbmRsZXMoKS5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdHNUYXJnZXRIYW5kbGUgPSAhIXRhcmdldC5oYW5kbGVzKCkuZmluZCgoaGFuZGxlKSA9PiBoYW5kbGUucmF3SGFuZGxlLnR5cGUgPT09ICd0YXJnZXQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gIWV4aXN0c1NvdXJjZUhhbmRsZSB8fCAhZXhpc3RzVGFyZ2V0SGFuZGxlO1xuICB9KTtcblxuICBwdWJsaWMgZGV0YWNoZWQkID0gdG9PYnNlcnZhYmxlKHRoaXMuZGV0YWNoZWQpO1xuXG4gIHB1YmxpYyBwYXRoID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGxldCBzb3VyY2U6IEhhbmRsZU1vZGVsIHwgdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLmVkZ2Uuc291cmNlSGFuZGxlKSB7XG4gICAgICBzb3VyY2UgPSB0aGlzLnNvdXJjZSgpXG4gICAgICAgID8uaGFuZGxlcygpXG4gICAgICAgIC5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS5zb3VyY2VIYW5kbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3VyY2UgPSB0aGlzLnNvdXJjZSgpXG4gICAgICAgID8uaGFuZGxlcygpXG4gICAgICAgIC5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3NvdXJjZScpO1xuICAgIH1cblxuICAgIGxldCB0YXJnZXQ6IEhhbmRsZU1vZGVsIHwgdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLmVkZ2UudGFyZ2V0SGFuZGxlKSB7XG4gICAgICB0YXJnZXQgPSB0aGlzLnRhcmdldCgpXG4gICAgICAgID8uaGFuZGxlcygpXG4gICAgICAgIC5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXQgPSB0aGlzLnRhcmdldCgpXG4gICAgICAgID8uaGFuZGxlcygpXG4gICAgICAgIC5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3RhcmdldCcpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGRvbid0IGxpa2UgdGhpc1xuICAgIGlmICghc291cmNlIHx8ICF0YXJnZXQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdGg6ICcnLFxuICAgICAgICBwb2ludHM6IHtcbiAgICAgICAgICBzdGFydDogeyB4OiAwLCB5OiAwIH0sXG4gICAgICAgICAgY2VudGVyOiB7IHg6IDAsIHk6IDAgfSxcbiAgICAgICAgICBlbmQ6IHsgeDogMCwgeTogMCB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuY3VydmUpIHtcbiAgICAgIGNhc2UgJ3N0cmFpZ2h0JzpcbiAgICAgICAgcmV0dXJuIHN0cmFpZ2h0UGF0aChzb3VyY2UucG9pbnRBYnNvbHV0ZSgpLCB0YXJnZXQucG9pbnRBYnNvbHV0ZSgpLCB0aGlzLnVzaW5nUG9pbnRzKTtcbiAgICAgIGNhc2UgJ2Jlemllcic6XG4gICAgICAgIHJldHVybiBiZXppZXJQYXRoKFxuICAgICAgICAgIHNvdXJjZS5wb2ludEFic29sdXRlKCksXG4gICAgICAgICAgdGFyZ2V0LnBvaW50QWJzb2x1dGUoKSxcbiAgICAgICAgICBzb3VyY2UucmF3SGFuZGxlLnBvc2l0aW9uLFxuICAgICAgICAgIHRhcmdldC5yYXdIYW5kbGUucG9zaXRpb24sXG4gICAgICAgICAgdGhpcy51c2luZ1BvaW50cyxcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ3Ntb290aC1zdGVwJzpcbiAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKFxuICAgICAgICAgIHNvdXJjZS5wb2ludEFic29sdXRlKCksXG4gICAgICAgICAgdGFyZ2V0LnBvaW50QWJzb2x1dGUoKSxcbiAgICAgICAgICBzb3VyY2UucmF3SGFuZGxlLnBvc2l0aW9uLFxuICAgICAgICAgIHRhcmdldC5yYXdIYW5kbGUucG9zaXRpb24sXG4gICAgICAgICk7XG4gICAgICBjYXNlICdzdGVwJzpcbiAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKFxuICAgICAgICAgIHNvdXJjZS5wb2ludEFic29sdXRlKCksXG4gICAgICAgICAgdGFyZ2V0LnBvaW50QWJzb2x1dGUoKSxcbiAgICAgICAgICBzb3VyY2UucmF3SGFuZGxlLnBvc2l0aW9uLFxuICAgICAgICAgIHRhcmdldC5yYXdIYW5kbGUucG9zaXRpb24sXG4gICAgICAgICAgMCxcbiAgICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIHB1YmxpYyBlZGdlTGFiZWxzOiB7IFtwb3NpdGlvbiBpbiBFZGdlTGFiZWxQb3NpdGlvbl0/OiBFZGdlTGFiZWxNb2RlbCB9ID0ge307XG5cbiAgcHJpdmF0ZSB1c2luZ1BvaW50czogVXNpbmdQb2ludHM7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVkZ2U6IEVkZ2UpIHtcbiAgICB0aGlzLnR5cGUgPSBlZGdlLnR5cGUgPz8gJ2RlZmF1bHQnO1xuICAgIHRoaXMuY3VydmUgPSBlZGdlLmN1cnZlID8/ICdiZXppZXInO1xuXG4gICAgaWYgKGVkZ2UuZWRnZUxhYmVscz8uc3RhcnQpIHRoaXMuZWRnZUxhYmVscy5zdGFydCA9IG5ldyBFZGdlTGFiZWxNb2RlbChlZGdlLmVkZ2VMYWJlbHMuc3RhcnQpO1xuICAgIGlmIChlZGdlLmVkZ2VMYWJlbHM/LmNlbnRlcikgdGhpcy5lZGdlTGFiZWxzLmNlbnRlciA9IG5ldyBFZGdlTGFiZWxNb2RlbChlZGdlLmVkZ2VMYWJlbHMuY2VudGVyKTtcbiAgICBpZiAoZWRnZS5lZGdlTGFiZWxzPy5lbmQpIHRoaXMuZWRnZUxhYmVscy5lbmQgPSBuZXcgRWRnZUxhYmVsTW9kZWwoZWRnZS5lZGdlTGFiZWxzLmVuZCk7XG5cbiAgICB0aGlzLnVzaW5nUG9pbnRzID0gWyEhdGhpcy5lZGdlTGFiZWxzLnN0YXJ0LCAhIXRoaXMuZWRnZUxhYmVscy5jZW50ZXIsICEhdGhpcy5lZGdlTGFiZWxzLmVuZF07XG4gIH1cbn1cbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvZWRnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR3BFLE1BQU0sT0FBTyxTQUFTO0lBeUhwQixZQUFtQixJQUFVO1FBQVYsU0FBSSxHQUFKLElBQUksQ0FBTTtRQXhIdEIsV0FBTSxHQUFHLE1BQU0sQ0FBd0IsU0FBUyxDQUFDLENBQUM7UUFDbEQsV0FBTSxHQUFHLE1BQU0sQ0FBd0IsU0FBUyxDQUFDLENBQUM7UUFLbEQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixjQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV4QyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QixhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTdCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxJ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QUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkZ2VMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lZGdlLWxhYmVsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFZGdlLCBDdXJ2ZSwgRWRnZVR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VkZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEVkZ2VMYWJlbE1vZGVsIH0gZnJvbSAnLi9lZGdlLWxhYmVsLm1vZGVsJztcbmltcG9ydCB7IE5vZGVNb2RlbCB9IGZyb20gJy4vbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBzdHJhaWdodFBhdGggfSBmcm9tICcuLi9tYXRoL2VkZ2UtcGF0aC9zdHJhaWdoLXBhdGgnO1xuaW1wb3J0IHsgYmV6aWVyUGF0aCB9IGZyb20gJy4uL21hdGgvZWRnZS1wYXRoL2Jlemllci1wYXRoJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZsb3dFbnRpdHkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Zsb3ctZW50aXR5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBzbW9vdGhTdGVwUGF0aCB9IGZyb20gJy4uL21hdGgvZWRnZS1wYXRoL3Ntb290aC1zdGVwLXBhdGgnO1xuaW1wb3J0IHsgVXNpbmdQb2ludHMgfSBmcm9tICcuLi90eXBlcy91c2luZy1wb2ludHMudHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBFZGdlTW9kZWwgaW1wbGVtZW50cyBGbG93RW50aXR5IHtcbiAgcHVibGljIHNvdXJjZSA9IHNpZ25hbDxOb2RlTW9kZWwgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyB0YXJnZXQgPSBzaWduYWw8Tm9kZU1vZGVsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwdWJsaWMgY3VydmU6IEN1cnZlO1xuICBwdWJsaWMgdHlwZTogRWRnZVR5cGU7XG4gIHB1YmxpYyByZWNvbm5lY3RhYmxlOiBib29sZWFuIHwgJ3NvdXJjZScgfCAndGFyZ2V0JztcblxuICBwdWJsaWMgc2VsZWN0ZWQgPSBzaWduYWwoZmFsc2UpO1xuICBwdWJsaWMgc2VsZWN0ZWQkID0gdG9PYnNlcnZhYmxlKHRoaXMuc2VsZWN0ZWQpO1xuXG4gIHB1YmxpYyByZW5kZXJPcmRlciA9IHNpZ25hbCgwKTtcblxuICBwdWJsaWMgZGV0YWNoZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5zb3VyY2UoKTtcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldCgpO1xuXG4gICAgaWYgKCFzb3VyY2UgfHwgIXRhcmdldCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbGV0IGV4aXN0c1NvdXJjZUhhbmRsZSA9IGZhbHNlO1xuICAgIGxldCBleGlzdHNUYXJnZXRIYW5kbGUgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmVkZ2Uuc291cmNlSGFuZGxlKSB7XG4gICAgICBleGlzdHNTb3VyY2VIYW5kbGUgPSAhIXNvdXJjZS5oYW5kbGVzKCkuZmluZCgoaGFuZGxlKSA9PiBoYW5kbGUucmF3SGFuZGxlLmlkID09PSB0aGlzLmVkZ2Uuc291cmNlSGFuZGxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhpc3RzU291cmNlSGFuZGxlID0gISFzb3VyY2UuaGFuZGxlcygpLmZpbmQoKGhhbmRsZSkgPT4gaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAnc291cmNlJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpIHtcbiAgICAgIGV4aXN0c1RhcmdldEhhbmRsZSA9ICEhdGFyZ2V0LmhhbmRsZXMoKS5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdHNUYXJnZXRIYW5kbGUgPSAhIXRhcmdldC5oYW5kbGVzKCkuZmluZCgoaGFuZGxlKSA9PiBoYW5kbGUucmF3SGFuZGxlLnR5cGUgPT09ICd0YXJnZXQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gIWV4aXN0c1NvdXJjZUhhbmRsZSB8fCAhZXhpc3RzVGFyZ2V0SGFuZGxlO1xuICB9KTtcblxuICBwdWJsaWMgZGV0YWNoZWQkID0gdG9PYnNlcnZhYmxlKHRoaXMuZGV0YWNoZWQpO1xuXG4gIHB1YmxpYyBwYXRoID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuc291cmNlSGFuZGxlKCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy50YXJnZXRIYW5kbGUoKTtcblxuICAgIC8vIFRPRE86IGRvbid0IGxpa2UgdGhpc1xuICAgIGlmICghc291cmNlIHx8ICF0YXJnZXQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdGg6ICcnLFxuICAgICAgICBwb2ludHM6IHtcbiAgICAgICAgICBzdGFydDogeyB4OiAwLCB5OiAwIH0sXG4gICAgICAgICAgY2VudGVyOiB7IHg6IDAsIHk6IDAgfSxcbiAgICAgICAgICBlbmQ6IHsgeDogMCwgeTogMCB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuY3VydmUpIHtcbiAgICAgIGNhc2UgJ3N0cmFpZ2h0JzpcbiAgICAgICAgcmV0dXJuIHN0cmFpZ2h0UGF0aChzb3VyY2UucG9pbnRBYnNvbHV0ZSgpLCB0YXJnZXQucG9pbnRBYnNvbHV0ZSgpLCB0aGlzLnVzaW5nUG9pbnRzKTtcbiAgICAgIGNhc2UgJ2Jlemllcic6XG4gICAgICAgIHJldHVybiBiZXppZXJQYXRoKFxuICAgICAgICAgIHNvdXJjZS5wb2ludEFic29sdXRlKCksXG4gICAgICAgICAgdGFyZ2V0LnBvaW50QWJzb2x1dGUoKSxcbiAgICAgICAgICBzb3VyY2UucmF3SGFuZGxlLnBvc2l0aW9uLFxuICAgICAgICAgIHRhcmdldC5yYXdIYW5kbGUucG9zaXRpb24sXG4gICAgICAgICAgdGhpcy51c2luZ1BvaW50cyxcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ3Ntb290aC1zdGVwJzpcbiAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKFxuICAgICAgICAgIHNvdXJjZS5wb2ludEFic29sdXRlKCksXG4gICAgICAgICAgdGFyZ2V0LnBvaW50QWJzb2x1dGUoKSxcbiAgICAgICAgICBzb3VyY2UucmF3SGFuZGxlLnBvc2l0aW9uLFxuICAgICAgICAgIHRhcmdldC5yYXdIYW5kbGUucG9zaXRpb24sXG4gICAgICAgICk7XG4gICAgICBjYXNlICdzdGVwJzpcbiAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKFxuICAgICAgICAgIHNvdXJjZS5wb2ludEFic29sdXRlKCksXG4gICAgICAgICAgdGFyZ2V0LnBvaW50QWJzb2x1dGUoKSxcbiAgICAgICAgICBzb3VyY2UucmF3SGFuZGxlLnBvc2l0aW9uLFxuICAgICAgICAgIHRhcmdldC5yYXdIYW5kbGUucG9zaXRpb24sXG4gICAgICAgICAgMCxcbiAgICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIHB1YmxpYyBzb3VyY2VIYW5kbGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZWRnZS5zb3VyY2VIYW5kbGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuc291cmNlKClcbiAgICAgICAgICA/LmhhbmRsZXMoKVxuICAgICAgICAgIC5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS5zb3VyY2VIYW5kbGUpID8/IG51bGxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuc291cmNlKClcbiAgICAgICAgPy5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoKGhhbmRsZSkgPT4gaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAnc291cmNlJykgPz8gbnVsbFxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyB0YXJnZXRIYW5kbGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMudGFyZ2V0KClcbiAgICAgICAgICA/LmhhbmRsZXMoKVxuICAgICAgICAgIC5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpID8/IG51bGxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudGFyZ2V0KClcbiAgICAgICAgPy5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoKGhhbmRsZSkgPT4gaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAndGFyZ2V0JykgPz8gbnVsbFxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyBlZGdlTGFiZWxzOiB7IFtwb3NpdGlvbiBpbiBFZGdlTGFiZWxQb3NpdGlvbl0/OiBFZGdlTGFiZWxNb2RlbCB9ID0ge307XG5cbiAgcHJpdmF0ZSB1c2luZ1BvaW50czogVXNpbmdQb2ludHM7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVkZ2U6IEVkZ2UpIHtcbiAgICB0aGlzLnR5cGUgPSBlZGdlLnR5cGUgPz8gJ2RlZmF1bHQnO1xuICAgIHRoaXMuY3VydmUgPSBlZGdlLmN1cnZlID8/ICdiZXppZXInO1xuICAgIHRoaXMucmVjb25uZWN0YWJsZSA9IGVkZ2UucmVjb25uZWN0YWJsZSA/PyBmYWxzZTtcblxuICAgIGlmIChlZGdlLmVkZ2VMYWJlbHM/LnN0YXJ0KSB0aGlzLmVkZ2VMYWJlbHMuc3RhcnQgPSBuZXcgRWRnZUxhYmVsTW9kZWwoZWRnZS5lZGdlTGFiZWxzLnN0YXJ0KTtcbiAgICBpZiAoZWRnZS5lZGdlTGFiZWxzPy5jZW50ZXIpIHRoaXMuZWRnZUxhYmVscy5jZW50ZXIgPSBuZXcgRWRnZUxhYmVsTW9kZWwoZWRnZS5lZGdlTGFiZWxzLmNlbnRlcik7XG4gICAgaWYgKGVkZ2UuZWRnZUxhYmVscz8uZW5kKSB0aGlzLmVkZ2VMYWJlbHMuZW5kID0gbmV3IEVkZ2VMYWJlbE1vZGVsKGVkZ2UuZWRnZUxhYmVscy5lbmQpO1xuXG4gICAgdGhpcy51c2luZ1BvaW50cyA9IFshIXRoaXMuZWRnZUxhYmVscy5zdGFydCwgISF0aGlzLmVkZ2VMYWJlbHMuY2VudGVyLCAhIXRoaXMuZWRnZUxhYmVscy5lbmRdO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,28 @@
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 EdgeRenderingService {
5
+ constructor() {
6
+ this.flowEntitiesService = inject(FlowEntitiesService);
7
+ this.edges = computed(() => {
8
+ return this.flowEntitiesService.validEdges().sort((aNode, bNode) => aNode.renderOrder() - bNode.renderOrder());
9
+ });
10
+ this.maxOrder = computed(() => {
11
+ return Math.max(...this.flowEntitiesService.validEdges().map((n) => n.renderOrder()));
12
+ });
13
+ }
14
+ pull(edge) {
15
+ const isAlreadyOnTop = edge.renderOrder() !== 0 && this.maxOrder() === edge.renderOrder();
16
+ if (isAlreadyOnTop) {
17
+ return;
18
+ }
19
+ // pull node
20
+ edge.renderOrder.set(this.maxOrder() + 1);
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeRenderingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeRenderingService }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeRenderingService, decorators: [{
26
+ type: Injectable
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1yZW5kZXJpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9zZXJ2aWNlcy9lZGdlLXJlbmRlcmluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFJOUQsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVVLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTFDLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqSCxDQUFDLENBQUMsQ0FBQztRQUVLLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDLENBQUM7S0FZSjtJQVZRLElBQUksQ0FBQyxJQUFlO1FBQ3pCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUxRixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLE9BQU87UUFDVCxDQUFDO1FBRUQsWUFBWTtRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDOytHQXBCVSxvQkFBb0I7bUhBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZsb3dFbnRpdGllc1NlcnZpY2UgfSBmcm9tICcuL2Zsb3ctZW50aXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBFZGdlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZWRnZS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFZGdlUmVuZGVyaW5nU2VydmljZSB7XG4gIHByaXZhdGUgZmxvd0VudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWRnZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS52YWxpZEVkZ2VzKCkuc29ydCgoYU5vZGUsIGJOb2RlKSA9PiBhTm9kZS5yZW5kZXJPcmRlcigpIC0gYk5vZGUucmVuZGVyT3JkZXIoKSk7XG4gIH0pO1xuXG4gIHByaXZhdGUgbWF4T3JkZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIE1hdGgubWF4KC4uLnRoaXMuZmxvd0VudGl0aWVzU2VydmljZS52YWxpZEVkZ2VzKCkubWFwKChuKSA9PiBuLnJlbmRlck9yZGVyKCkpKTtcbiAgfSk7XG5cbiAgcHVibGljIHB1bGwoZWRnZTogRWRnZU1vZGVsKSB7XG4gICAgY29uc3QgaXNBbHJlYWR5T25Ub3AgPSBlZGdlLnJlbmRlck9yZGVyKCkgIT09IDAgJiYgdGhpcy5tYXhPcmRlcigpID09PSBlZGdlLnJlbmRlck9yZGVyKCk7XG5cbiAgICBpZiAoaXNBbHJlYWR5T25Ub3ApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBwdWxsIG5vZGVcbiAgICBlZGdlLnJlbmRlck9yZGVyLnNldCh0aGlzLm1heE9yZGVyKCkgKyAxKTtcbiAgfVxufVxuIl19
@@ -4,6 +4,7 @@ export class FlowSettingsService {
4
4
  constructor() {
5
5
  this.entitiesSelectable = signal(true);
6
6
  this.elevateNodesOnSelect = signal(true);
7
+ this.elevateEdgesOnSelect = signal(true);
7
8
  /**
8
9
  * @see {VflowComponent.view}
9
10
  */
@@ -27,4 +28,4 @@ export class FlowSettingsService {
27
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlowSettingsService, decorators: [{
28
29
  type: Injectable
29
30
  }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3NlcnZpY2VzL2Zsb3ctc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFrQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSW5FLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFUyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEMseUJBQW9CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDOztXQUVHO1FBQ0ksU0FBSSxHQUE4QyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUU1RTs7V0FFRztRQUNJLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVyQzs7V0FFRztRQUNJLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvQixZQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLFlBQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEIsZUFBVSxHQUFHLE1BQU0sQ0FBYSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFbEUsYUFBUSxHQUFHLE1BQU0sQ0FBbUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNwRDsrR0EzQlksbUJBQW1CO21IQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBXcml0YWJsZVNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kIH0gZnJvbSAnLi4vdHlwZXMvYmFja2dyb3VuZC50eXBlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb3dTZXR0aW5nc1NlcnZpY2Uge1xuICBwdWJsaWMgZW50aXRpZXNTZWxlY3RhYmxlID0gc2lnbmFsKHRydWUpO1xuXG4gIHB1YmxpYyBlbGV2YXRlTm9kZXNPblNlbGVjdCA9IHNpZ25hbCh0cnVlKTtcblxuICAvKipcbiAgICogQHNlZSB7VmZsb3dDb21wb25lbnQudmlld31cbiAgICovXG4gIHB1YmxpYyB2aWV3OiBXcml0YWJsZVNpZ25hbDxbbnVtYmVyLCBudW1iZXJdIHwgJ2F1dG8nPiA9IHNpZ25hbChbNDAwLCA0MDBdKTtcblxuICAvKipcbiAgICogU2V0IGJhc2VkIG9uIHZpZXcgcHJvcGVydHkuIE1heSBjaGFuZ2UgaWYgdmlldyBpcyAnYXV0bydcbiAgICovXG4gIHB1YmxpYyBjb21wdXRlZEZsb3dXaWR0aCA9IHNpZ25hbCgwKTtcblxuICAvKipcbiAgICogU2V0IGJhc2VkIG9uIHZpZXcgcHJvcGVydHkuIE1heSBjaGFuZ2UgaWYgdmlldyBpcyAnYXV0bydcbiAgICovXG4gIHB1YmxpYyBjb21wdXRlZEZsb3dIZWlnaHQgPSBzaWduYWwoMCk7XG5cbiAgcHVibGljIG1pblpvb20gPSBzaWduYWwoMC41KTtcblxuICBwdWJsaWMgbWF4Wm9vbSA9IHNpZ25hbCgzKTtcblxuICBwdWJsaWMgYmFja2dyb3VuZCA9IHNpZ25hbDxCYWNrZ3JvdW5kPih7IHR5cGU6ICdzb2xpZCcsIGNvbG9yOiAnI2ZmZicgfSk7XG5cbiAgcHVibGljIHNuYXBHcmlkID0gc2lnbmFsPFtudW1iZXIsIG51bWJlcl0+KFsxLCAxXSk7XG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3NlcnZpY2VzL2Zsb3ctc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFrQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSW5FLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFUyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEMseUJBQW9CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQzs7V0FFRztRQUNJLFNBQUksR0FBOEMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFNUU7O1dBRUc7UUFDSSxzQkFBaUIsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckM7O1dBRUc7UUFDSSx1QkFBa0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFL0IsWUFBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV0QixZQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxNQUFNLENBQWEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRWxFLGFBQVEsR0FBRyxNQUFNLENBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDcEQ7K0dBNUJZLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgV3JpdGFibGVTaWduYWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFja2dyb3VuZCB9IGZyb20gJy4uL3R5cGVzL2JhY2tncm91bmQudHlwZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG93U2V0dGluZ3NTZXJ2aWNlIHtcbiAgcHVibGljIGVudGl0aWVzU2VsZWN0YWJsZSA9IHNpZ25hbCh0cnVlKTtcblxuICBwdWJsaWMgZWxldmF0ZU5vZGVzT25TZWxlY3QgPSBzaWduYWwodHJ1ZSk7XG4gIHB1YmxpYyBlbGV2YXRlRWRnZXNPblNlbGVjdCA9IHNpZ25hbCh0cnVlKTtcblxuICAvKipcbiAgICogQHNlZSB7VmZsb3dDb21wb25lbnQudmlld31cbiAgICovXG4gIHB1YmxpYyB2aWV3OiBXcml0YWJsZVNpZ25hbDxbbnVtYmVyLCBudW1iZXJdIHwgJ2F1dG8nPiA9IHNpZ25hbChbNDAwLCA0MDBdKTtcblxuICAvKipcbiAgICogU2V0IGJhc2VkIG9uIHZpZXcgcHJvcGVydHkuIE1heSBjaGFuZ2UgaWYgdmlldyBpcyAnYXV0bydcbiAgICovXG4gIHB1YmxpYyBjb21wdXRlZEZsb3dXaWR0aCA9IHNpZ25hbCgwKTtcblxuICAvKipcbiAgICogU2V0IGJhc2VkIG9uIHZpZXcgcHJvcGVydHkuIE1heSBjaGFuZ2UgaWYgdmlldyBpcyAnYXV0bydcbiAgICovXG4gIHB1YmxpYyBjb21wdXRlZEZsb3dIZWlnaHQgPSBzaWduYWwoMCk7XG5cbiAgcHVibGljIG1pblpvb20gPSBzaWduYWwoMC41KTtcblxuICBwdWJsaWMgbWF4Wm9vbSA9IHNpZ25hbCgzKTtcblxuICBwdWJsaWMgYmFja2dyb3VuZCA9IHNpZ25hbDxCYWNrZ3JvdW5kPih7IHR5cGU6ICdzb2xpZCcsIGNvbG9yOiAnI2ZmZicgfSk7XG5cbiAgcHVibGljIHNuYXBHcmlkID0gc2lnbmFsPFtudW1iZXIsIG51bWJlcl0+KFsxLCAxXSk7XG59XG4iXX0=
@@ -10,16 +10,28 @@ export class FlowStatusService {
10
10
  setConnectionStartStatus(source, sourceHandle) {
11
11
  this.status.set({ state: 'connection-start', payload: { source, sourceHandle } });
12
12
  }
13
+ setReconnectionStartStatus(source, sourceHandle, oldEdge) {
14
+ this.status.set({ state: 'reconnection-start', payload: { source, sourceHandle, oldEdge } });
15
+ }
13
16
  setConnectionValidationStatus(valid, source, target, sourceHandle, targetHandle) {
14
17
  this.status.set({ state: 'connection-validation', payload: { source, target, sourceHandle, targetHandle, valid } });
15
18
  }
19
+ setReconnectionValidationStatus(valid, source, target, sourceHandle, targetHandle, oldEdge) {
20
+ this.status.set({
21
+ state: 'reconnection-validation',
22
+ payload: { source, target, sourceHandle, targetHandle, valid, oldEdge },
23
+ });
24
+ }
16
25
  setConnectionEndStatus(source, target, sourceHandle, targetHandle) {
17
26
  this.status.set({ state: 'connection-end', payload: { source, target, sourceHandle, targetHandle } });
18
27
  }
28
+ setReconnectionEndStatus(source, target, sourceHandle, targetHandle, oldEdge) {
29
+ this.status.set({ state: 'reconnection-end', payload: { source, target, sourceHandle, targetHandle, oldEdge } });
30
+ }
19
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlowStatusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
20
32
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlowStatusService }); }
21
33
  }
22
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlowStatusService, decorators: [{
23
35
  type: Injectable
24
36
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9zZXJ2aWNlcy9mbG93LXN0YXR1cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWtDbkQsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVrQixXQUFNLEdBQUcsTUFBTSxDQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQTRCL0U7SUExQlEsYUFBYTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLHdCQUF3QixDQUFDLE1BQWlCLEVBQUUsWUFBeUI7UUFDMUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU0sNkJBQTZCLENBQ2xDLEtBQWMsRUFDZCxNQUFpQixFQUNqQixNQUFpQixFQUNqQixZQUF5QixFQUN6QixZQUF5QjtRQUV6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFTSxzQkFBc0IsQ0FDM0IsTUFBaUIsRUFDakIsTUFBaUIsRUFDakIsWUFBeUIsRUFDekIsWUFBeUI7UUFFekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7K0dBNUJVLGlCQUFpQjttSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9oYW5kbGUubW9kZWwnO1xuaW1wb3J0IHsgQ29ubmVjdGlvbkludGVybmFsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25uZWN0aW9uLmludGVybmFsLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd1N0YXR1c0lkbGUge1xuICBzdGF0ZTogJ2lkbGUnO1xuICBwYXlsb2FkOiBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dTdGF0dXNDb25uZWN0aW9uU3RhcnQge1xuICBzdGF0ZTogJ2Nvbm5lY3Rpb24tc3RhcnQnO1xuICBwYXlsb2FkOiBPbWl0PENvbm5lY3Rpb25JbnRlcm5hbCwgJ3RhcmdldCcgfCAndGFyZ2V0SGFuZGxlJz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd1N0YXR1c0Nvbm5lY3Rpb25WYWxpZGF0aW9uIHtcbiAgc3RhdGU6ICdjb25uZWN0aW9uLXZhbGlkYXRpb24nO1xuICBwYXlsb2FkOiBDb25uZWN0aW9uSW50ZXJuYWwgJiB7XG4gICAgdmFsaWQ6IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd1N0YXR1c0Nvbm5lY3Rpb25FbmQge1xuICBzdGF0ZTogJ2Nvbm5lY3Rpb24tZW5kJztcbiAgcGF5bG9hZDogQ29ubmVjdGlvbkludGVybmFsO1xufVxuXG5leHBvcnQgdHlwZSBGbG93U3RhdHVzID1cbiAgfCBGbG93U3RhdHVzSWRsZVxuICB8IEZsb3dTdGF0dXNDb25uZWN0aW9uU3RhcnRcbiAgfCBGbG93U3RhdHVzQ29ubmVjdGlvblZhbGlkYXRpb25cbiAgfCBGbG93U3RhdHVzQ29ubmVjdGlvbkVuZDtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb3dTdGF0dXNTZXJ2aWNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1cyA9IHNpZ25hbDxGbG93U3RhdHVzPih7IHN0YXRlOiAnaWRsZScsIHBheWxvYWQ6IG51bGwgfSk7XG5cbiAgcHVibGljIHNldElkbGVTdGF0dXMoKSB7XG4gICAgdGhpcy5zdGF0dXMuc2V0KHsgc3RhdGU6ICdpZGxlJywgcGF5bG9hZDogbnVsbCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb25uZWN0aW9uU3RhcnRTdGF0dXMoc291cmNlOiBOb2RlTW9kZWwsIHNvdXJjZUhhbmRsZTogSGFuZGxlTW9kZWwpIHtcbiAgICB0aGlzLnN0YXR1cy5zZXQoeyBzdGF0ZTogJ2Nvbm5lY3Rpb24tc3RhcnQnLCBwYXlsb2FkOiB7IHNvdXJjZSwgc291cmNlSGFuZGxlIH0gfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29ubmVjdGlvblZhbGlkYXRpb25TdGF0dXMoXG4gICAgdmFsaWQ6IGJvb2xlYW4sXG4gICAgc291cmNlOiBOb2RlTW9kZWwsXG4gICAgdGFyZ2V0OiBOb2RlTW9kZWwsXG4gICAgc291cmNlSGFuZGxlOiBIYW5kbGVNb2RlbCxcbiAgICB0YXJnZXRIYW5kbGU6IEhhbmRsZU1vZGVsLFxuICApIHtcbiAgICB0aGlzLnN0YXR1cy5zZXQoeyBzdGF0ZTogJ2Nvbm5lY3Rpb24tdmFsaWRhdGlvbicsIHBheWxvYWQ6IHsgc291cmNlLCB0YXJnZXQsIHNvdXJjZUhhbmRsZSwgdGFyZ2V0SGFuZGxlLCB2YWxpZCB9IH0pO1xuICB9XG5cbiAgcHVibGljIHNldENvbm5lY3Rpb25FbmRTdGF0dXMoXG4gICAgc291cmNlOiBOb2RlTW9kZWwsXG4gICAgdGFyZ2V0OiBOb2RlTW9kZWwsXG4gICAgc291cmNlSGFuZGxlOiBIYW5kbGVNb2RlbCxcbiAgICB0YXJnZXRIYW5kbGU6IEhhbmRsZU1vZGVsLFxuICApIHtcbiAgICB0aGlzLnN0YXR1cy5zZXQoeyBzdGF0ZTogJ2Nvbm5lY3Rpb24tZW5kJywgcGF5bG9hZDogeyBzb3VyY2UsIHRhcmdldCwgc291cmNlSGFuZGxlLCB0YXJnZXRIYW5kbGUgfSB9KTtcbiAgfVxufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9zZXJ2aWNlcy9mbG93LXN0YXR1cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQTREbkQsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVrQixXQUFNLEdBQUcsTUFBTSxDQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQXdEL0U7SUF0RFEsYUFBYTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLHdCQUF3QixDQUFDLE1BQWlCLEVBQUUsWUFBeUI7UUFDMUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU0sMEJBQTBCLENBQUMsTUFBaUIsRUFBRSxZQUF5QixFQUFFLE9BQWtCO1FBQ2hHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTSw2QkFBNkIsQ0FDbEMsS0FBYyxFQUNkLE1BQWlCLEVBQ2pCLE1BQWlCLEVBQ2pCLFlBQXlCLEVBQ3pCLFlBQXlCO1FBRXpCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEgsQ0FBQztJQUVNLCtCQUErQixDQUNwQyxLQUFjLEVBQ2QsTUFBaUIsRUFDakIsTUFBaUIsRUFDakIsWUFBeUIsRUFDekIsWUFBeUIsRUFDekIsT0FBa0I7UUFFbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDZCxLQUFLLEVBQUUseUJBQXlCO1lBQ2hDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1NBQ3hFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxzQkFBc0IsQ0FDM0IsTUFBaUIsRUFDakIsTUFBaUIsRUFDakIsWUFBeUIsRUFDekIsWUFBeUI7UUFFekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFTSx3QkFBd0IsQ0FDN0IsTUFBaUIsRUFDakIsTUFBaUIsRUFDakIsWUFBeUIsRUFDekIsWUFBeUIsRUFDekIsT0FBa0I7UUFFbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuSCxDQUFDOytHQXhEVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL25vZGUubW9kZWwnO1xuaW1wb3J0IHsgSGFuZGxlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvaGFuZGxlLm1vZGVsJztcbmltcG9ydCB7IENvbm5lY3Rpb25JbnRlcm5hbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29ubmVjdGlvbi5pbnRlcm5hbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRWRnZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2VkZ2UubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dTdGF0dXNJZGxlIHtcbiAgc3RhdGU6ICdpZGxlJztcbiAgcGF5bG9hZDogbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93U3RhdHVzQ29ubmVjdGlvblN0YXJ0IHtcbiAgc3RhdGU6ICdjb25uZWN0aW9uLXN0YXJ0JztcbiAgcGF5bG9hZDogT21pdDxDb25uZWN0aW9uSW50ZXJuYWwsICd0YXJnZXQnIHwgJ3RhcmdldEhhbmRsZSc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dTdGF0dXNDb25uZWN0aW9uVmFsaWRhdGlvbiB7XG4gIHN0YXRlOiAnY29ubmVjdGlvbi12YWxpZGF0aW9uJztcbiAgcGF5bG9hZDogQ29ubmVjdGlvbkludGVybmFsICYge1xuICAgIHZhbGlkOiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dTdGF0dXNDb25uZWN0aW9uRW5kIHtcbiAgc3RhdGU6ICdjb25uZWN0aW9uLWVuZCc7XG4gIHBheWxvYWQ6IENvbm5lY3Rpb25JbnRlcm5hbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93U3RhdHVzUmVjb25uZWN0aW9uU3RhcnQge1xuICBzdGF0ZTogJ3JlY29ubmVjdGlvbi1zdGFydCc7XG4gIHBheWxvYWQ6IE9taXQ8Q29ubmVjdGlvbkludGVybmFsLCAndGFyZ2V0JyB8ICd0YXJnZXRIYW5kbGUnPiAmIHtcbiAgICBvbGRFZGdlOiBFZGdlTW9kZWw7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd1N0YXR1c1JlY29ubmVjdGlvblZhbGlkYXRpb24ge1xuICBzdGF0ZTogJ3JlY29ubmVjdGlvbi12YWxpZGF0aW9uJztcbiAgcGF5bG9hZDogQ29ubmVjdGlvbkludGVybmFsICYge1xuICAgIHZhbGlkOiBib29sZWFuO1xuICAgIG9sZEVkZ2U6IEVkZ2VNb2RlbDtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93U3RhdHVzUmVjb25uZWN0aW9uRW5kIHtcbiAgc3RhdGU6ICdyZWNvbm5lY3Rpb24tZW5kJztcbiAgcGF5bG9hZDogQ29ubmVjdGlvbkludGVybmFsICYge1xuICAgIG9sZEVkZ2U6IEVkZ2VNb2RlbDtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgRmxvd1N0YXR1cyA9XG4gIHwgRmxvd1N0YXR1c0lkbGVcbiAgfCBGbG93U3RhdHVzQ29ubmVjdGlvblN0YXJ0XG4gIHwgRmxvd1N0YXR1c0Nvbm5lY3Rpb25WYWxpZGF0aW9uXG4gIHwgRmxvd1N0YXR1c0Nvbm5lY3Rpb25FbmRcbiAgfCBGbG93U3RhdHVzUmVjb25uZWN0aW9uU3RhcnRcbiAgfCBGbG93U3RhdHVzUmVjb25uZWN0aW9uVmFsaWRhdGlvblxuICB8IEZsb3dTdGF0dXNSZWNvbm5lY3Rpb25FbmQ7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG93U3RhdHVzU2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBzdGF0dXMgPSBzaWduYWw8Rmxvd1N0YXR1cz4oeyBzdGF0ZTogJ2lkbGUnLCBwYXlsb2FkOiBudWxsIH0pO1xuXG4gIHB1YmxpYyBzZXRJZGxlU3RhdHVzKCkge1xuICAgIHRoaXMuc3RhdHVzLnNldCh7IHN0YXRlOiAnaWRsZScsIHBheWxvYWQ6IG51bGwgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29ubmVjdGlvblN0YXJ0U3RhdHVzKHNvdXJjZTogTm9kZU1vZGVsLCBzb3VyY2VIYW5kbGU6IEhhbmRsZU1vZGVsKSB7XG4gICAgdGhpcy5zdGF0dXMuc2V0KHsgc3RhdGU6ICdjb25uZWN0aW9uLXN0YXJ0JywgcGF5bG9hZDogeyBzb3VyY2UsIHNvdXJjZUhhbmRsZSB9IH0pO1xuICB9XG5cbiAgcHVibGljIHNldFJlY29ubmVjdGlvblN0YXJ0U3RhdHVzKHNvdXJjZTogTm9kZU1vZGVsLCBzb3VyY2VIYW5kbGU6IEhhbmRsZU1vZGVsLCBvbGRFZGdlOiBFZGdlTW9kZWwpIHtcbiAgICB0aGlzLnN0YXR1cy5zZXQoeyBzdGF0ZTogJ3JlY29ubmVjdGlvbi1zdGFydCcsIHBheWxvYWQ6IHsgc291cmNlLCBzb3VyY2VIYW5kbGUsIG9sZEVkZ2UgfSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb25uZWN0aW9uVmFsaWRhdGlvblN0YXR1cyhcbiAgICB2YWxpZDogYm9vbGVhbixcbiAgICBzb3VyY2U6IE5vZGVNb2RlbCxcbiAgICB0YXJnZXQ6IE5vZGVNb2RlbCxcbiAgICBzb3VyY2VIYW5kbGU6IEhhbmRsZU1vZGVsLFxuICAgIHRhcmdldEhhbmRsZTogSGFuZGxlTW9kZWwsXG4gICkge1xuICAgIHRoaXMuc3RhdHVzLnNldCh7IHN0YXRlOiAnY29ubmVjdGlvbi12YWxpZGF0aW9uJywgcGF5bG9hZDogeyBzb3VyY2UsIHRhcmdldCwgc291cmNlSGFuZGxlLCB0YXJnZXRIYW5kbGUsIHZhbGlkIH0gfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0UmVjb25uZWN0aW9uVmFsaWRhdGlvblN0YXR1cyhcbiAgICB2YWxpZDogYm9vbGVhbixcbiAgICBzb3VyY2U6IE5vZGVNb2RlbCxcbiAgICB0YXJnZXQ6IE5vZGVNb2RlbCxcbiAgICBzb3VyY2VIYW5kbGU6IEhhbmRsZU1vZGVsLFxuICAgIHRhcmdldEhhbmRsZTogSGFuZGxlTW9kZWwsXG4gICAgb2xkRWRnZTogRWRnZU1vZGVsLFxuICApIHtcbiAgICB0aGlzLnN0YXR1cy5zZXQoe1xuICAgICAgc3RhdGU6ICdyZWNvbm5lY3Rpb24tdmFsaWRhdGlvbicsXG4gICAgICBwYXlsb2FkOiB7IHNvdXJjZSwgdGFyZ2V0LCBzb3VyY2VIYW5kbGUsIHRhcmdldEhhbmRsZSwgdmFsaWQsIG9sZEVkZ2UgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb25uZWN0aW9uRW5kU3RhdHVzKFxuICAgIHNvdXJjZTogTm9kZU1vZGVsLFxuICAgIHRhcmdldDogTm9kZU1vZGVsLFxuICAgIHNvdXJjZUhhbmRsZTogSGFuZGxlTW9kZWwsXG4gICAgdGFyZ2V0SGFuZGxlOiBIYW5kbGVNb2RlbCxcbiAgKSB7XG4gICAgdGhpcy5zdGF0dXMuc2V0KHsgc3RhdGU6ICdjb25uZWN0aW9uLWVuZCcsIHBheWxvYWQ6IHsgc291cmNlLCB0YXJnZXQsIHNvdXJjZUhhbmRsZSwgdGFyZ2V0SGFuZGxlIH0gfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0UmVjb25uZWN0aW9uRW5kU3RhdHVzKFxuICAgIHNvdXJjZTogTm9kZU1vZGVsLFxuICAgIHRhcmdldDogTm9kZU1vZGVsLFxuICAgIHNvdXJjZUhhbmRsZTogSGFuZGxlTW9kZWwsXG4gICAgdGFyZ2V0SGFuZGxlOiBIYW5kbGVNb2RlbCxcbiAgICBvbGRFZGdlOiBFZGdlTW9kZWwsXG4gICkge1xuICAgIHRoaXMuc3RhdHVzLnNldCh7IHN0YXRlOiAncmVjb25uZWN0aW9uLWVuZCcsIHBheWxvYWQ6IHsgc291cmNlLCB0YXJnZXQsIHNvdXJjZUhhbmRsZSwgdGFyZ2V0SGFuZGxlLCBvbGRFZGdlIH0gfSk7XG4gIH1cbn1cbiJdfQ==