@foblex/flow 12.0.1 → 12.0.3

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.
@@ -25,26 +25,32 @@ export class SingleSelectOnPointerDown {
25
25
  }
26
26
  this.resetSelectionIfNotMultiselect(event);
27
27
  if (node) {
28
- if (!this.fDraggableDataContext.selectedItems.includes(node)) {
28
+ if (!this.fDraggableDataContext.selectedItems.includes(node) && !node.fSelectionDisabled) {
29
29
  this.fDraggableDataContext.selectedItems.push(node);
30
30
  if (element?.hostElement.dataset['fNodeId'] !== node.hostElement.dataset['fNodeId']) {
31
31
  this.fDraggableDataContext.isSelectedChanged = true;
32
32
  }
33
33
  }
34
34
  else {
35
- this.fDraggableDataContext.selectedItems.splice(this.fDraggableDataContext.selectedItems.indexOf(node), 1);
35
+ const index = this.fDraggableDataContext.selectedItems.indexOf(node);
36
+ if (index > -1) {
37
+ this.fDraggableDataContext.selectedItems.splice(index, 1);
38
+ }
36
39
  }
37
40
  }
38
41
  else if (connection) {
39
42
  this.updateConnectionLayerHandler.handle(connection);
40
- if (!this.fDraggableDataContext.selectedItems.includes(connection)) {
43
+ if (!this.fDraggableDataContext.selectedItems.includes(connection) && !connection.fSelectionDisabled) {
41
44
  this.fDraggableDataContext.selectedItems.push(connection);
42
45
  if (element?.hostElement.id !== connection.hostElement.id) {
43
46
  this.fDraggableDataContext.isSelectedChanged = true;
44
47
  }
45
48
  }
46
49
  else {
47
- this.fDraggableDataContext.selectedItems.splice(this.fDraggableDataContext.selectedItems.indexOf(connection), 1);
50
+ const index = this.fDraggableDataContext.selectedItems.indexOf(connection);
51
+ if (index > -1) {
52
+ this.fDraggableDataContext.selectedItems.splice(index, 1);
53
+ }
48
54
  }
49
55
  }
50
56
  this.selectIfNotSelected();
@@ -76,4 +82,4 @@ export class SingleSelectOnPointerDown {
76
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SingleSelectOnPointerDown, decorators: [{
77
83
  type: Injectable
78
84
  }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.GetConnectionHandler }, { type: i3.UpdateConnectionLayerHandler }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBR2hFLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFDWSxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLG9CQUEwQyxFQUMxQyw0QkFBMEQ7UUFIMUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtJQUV0RSxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQW9CO1FBRWhDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDNUUsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENB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Q0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F4RVUseUJBQXlCO2tIQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgSVBvaW50ZXJFdmVudCwgTW91c2VFdmVudEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2YtY29tcG9uZW50cy1zdG9yZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgR2V0Q29ubmVjdGlvbkhhbmRsZXIsIFVwZGF0ZUNvbm5lY3Rpb25MYXllckhhbmRsZXIgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IElTZWxlY3RhYmxlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IGlzTm9kZU91dGxldCwgaXNOb2RlT3V0cHV0IH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNpbmdsZVNlbGVjdE9uUG9pbnRlckRvd24gaW1wbGVtZW50cyBJSGFuZGxlcjxJUG9pbnRlckV2ZW50LCB2b2lkPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBnZXRDb25uZWN0aW9uSGFuZGxlcjogR2V0Q29ubmVjdGlvbkhhbmRsZXIsXG4gICAgICBwcml2YXRlIHVwZGF0ZUNvbm5lY3Rpb25MYXllckhhbmRsZXI6IFVwZGF0ZUNvbm5lY3Rpb25MYXllckhhbmRsZXJcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG5cbiAgICBpZiAoIXRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdz8uaG9zdEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0RWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5maW5kTm9kZShldmVudC50YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBjb25uZWN0aW9uID0gdGhpcy5nZXRDb25uZWN0aW9uSGFuZGxlci5oYW5kbGUoZXZlbnQudGFyZ2V0RWxlbWVudCk7XG4gICAgdGhpcy5kZXNlbGVjdEFsbChub2RlLCBldmVudCk7XG5cbiAgICBsZXQgZWxlbWVudDogSVNlbGVjdGFibGUgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICBlbGVtZW50ID0gdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtc1sgMCBdO1xuICAgIH1cblxuICAgIHRoaXMucmVzZXRTZWxlY3Rpb25JZk5vdE11bHRpc2VsZWN0KGV2ZW50KTtcblxuICAgIGlmIChub2RlKSB7XG4gICAgICBpZiAoIXRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuaW5jbHVkZXMobm9kZSkpIHtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5wdXNoKG5vZGUpO1xuICAgICAgICBpZiAoZWxlbWVudD8uaG9zdEVsZW1lbnQuZGF0YXNldFsnZk5vZGVJZCddICE9PSBub2RlLmhvc3RFbGVtZW50LmRhdGFzZXRbJ2ZOb2RlSWQnXSkge1xuICAgICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmlzU2VsZWN0ZWRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5zcGxpY2UodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKG5vZGUpLCAxKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNvbm5lY3Rpb24pIHtcbiAgICAgIHRoaXMudXBkYXRlQ29ubmVjdGlvbkxheWVySGFuZGxlci5oYW5kbGUoY29ubmVjdGlvbik7XG4gICAgICBpZiAoIXRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuaW5jbHVkZXMoY29ubmVjdGlvbikpIHtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5wdXNoKGNvbm5lY3Rpb24pO1xuICAgICAgICBpZiAoZWxlbWVudD8uaG9zdEVsZW1lbnQuaWQgIT09IGNvbm5lY3Rpb24uaG9zdEVsZW1lbnQuaWQpIHtcbiAgICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc1NlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuc3BsaWNlKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuaW5kZXhPZihjb25uZWN0aW9uKSwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0SWZOb3RTZWxlY3RlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXNlbGVjdEFsbChub2RlOiBGTm9kZUJhc2UgfCB1bmRlZmluZWQsIGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICBpZiAoeCAhPT0gbm9kZSB8fCAoIWlzTm9kZU91dGxldChldmVudC50YXJnZXRFbGVtZW50KSAmJiAhaXNOb2RlT3V0cHV0KGV2ZW50LnRhcmdldEVsZW1lbnQpKSkge1xuICAgICAgICB4LmRlc2VsZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0U2VsZWN0aW9uSWZOb3RNdWx0aXNlbGVjdChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlzTXVsdGlzZWxlY3QgPVxuICAgICAgICBNb3VzZUV2ZW50RXh0ZW5zaW9ucy5pc0NvbW1hbmRCdXR0b24oZXZlbnQub3JpZ2luYWxFdmVudCkgfHxcbiAgICAgICAgTW91c2VFdmVudEV4dGVuc2lvbnMuaXNTaGlmdFByZXNzZWQoZXZlbnQub3JpZ2luYWxFdmVudCk7XG4gICAgaWYgKCFpc011bHRpc2VsZWN0KSB7XG4gICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJZk5vdFNlbGVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgaWYgKCF4LmlzU2VsZWN0ZWQoKSkge1xuICAgICAgICB4LnNlbGVjdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBR2hFLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFDVSxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLG9CQUEwQyxFQUMxQyw0QkFBMEQ7UUFIMUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtJQUVwRSxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQW9CO1FBRWhDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDNUUsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENB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Q0FBQyxLQUFvQjtRQUN6RCxNQUFNLGFBQWEsR0FDakIsb0JBQW9CLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDekQsb0JBQW9CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNiLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBOUVVLHlCQUF5QjtrSEFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUhhbmRsZXIsIElQb2ludGVyRXZlbnQsIE1vdXNlRXZlbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IEdldENvbm5lY3Rpb25IYW5kbGVyLCBVcGRhdGVDb25uZWN0aW9uTGF5ZXJIYW5kbGVyIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBJU2VsZWN0YWJsZSB9IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBpc05vZGVPdXRsZXQsIGlzTm9kZU91dHB1dCB9IGZyb20gJy4uLy4uL2YtY29ubmVjdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTaW5nbGVTZWxlY3RPblBvaW50ZXJEb3duIGltcGxlbWVudHMgSUhhbmRsZXI8SVBvaW50ZXJFdmVudCwgdm9pZD4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgZ2V0Q29ubmVjdGlvbkhhbmRsZXI6IEdldENvbm5lY3Rpb25IYW5kbGVyLFxuICAgIHByaXZhdGUgdXBkYXRlQ29ubmVjdGlvbkxheWVySGFuZGxlcjogVXBkYXRlQ29ubmVjdGlvbkxheWVySGFuZGxlclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcblxuICAgIGlmICghdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZGbG93Py5ob3N0RWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXRFbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBub2RlID0gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZpbmROb2RlKGV2ZW50LnRhcmdldEVsZW1lbnQpO1xuICAgIGNvbnN0IGNvbm5lY3Rpb24gPSB0aGlzLmdldENvbm5lY3Rpb25IYW5kbGVyLmhhbmRsZShldmVudC50YXJnZXRFbGVtZW50KTtcbiAgICB0aGlzLmRlc2VsZWN0QWxsKG5vZGUsIGV2ZW50KTtcblxuICAgIGxldCBlbGVtZW50OiBJU2VsZWN0YWJsZSB8IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGVsZW1lbnQgPSB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zWyAwIF07XG4gICAgfVxuXG4gICAgdGhpcy5yZXNldFNlbGVjdGlvbklmTm90TXVsdGlzZWxlY3QoZXZlbnQpO1xuXG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGlmICghdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhub2RlKSAmJiAhbm9kZS5mU2VsZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5wdXNoKG5vZGUpO1xuICAgICAgICBpZiAoZWxlbWVudD8uaG9zdEVsZW1lbnQuZGF0YXNldFsgJ2ZOb2RlSWQnIF0gIT09IG5vZGUuaG9zdEVsZW1lbnQuZGF0YXNldFsgJ2ZOb2RlSWQnIF0pIHtcbiAgICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc1NlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKG5vZGUpO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY29ubmVjdGlvbikge1xuICAgICAgdGhpcy51cGRhdGVDb25uZWN0aW9uTGF5ZXJIYW5kbGVyLmhhbmRsZShjb25uZWN0aW9uKTtcbiAgICAgIGlmICghdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhjb25uZWN0aW9uKSAmJiAhY29ubmVjdGlvbi5mU2VsZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5wdXNoKGNvbm5lY3Rpb24pO1xuICAgICAgICBpZiAoZWxlbWVudD8uaG9zdEVsZW1lbnQuaWQgIT09IGNvbm5lY3Rpb24uaG9zdEVsZW1lbnQuaWQpIHtcbiAgICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc1NlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKGNvbm5lY3Rpb24pO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdElmTm90U2VsZWN0ZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzZWxlY3RBbGwobm9kZTogRk5vZGVCYXNlIHwgdW5kZWZpbmVkLCBldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgaWYgKHggIT09IG5vZGUgfHwgKCFpc05vZGVPdXRsZXQoZXZlbnQudGFyZ2V0RWxlbWVudCkgJiYgIWlzTm9kZU91dHB1dChldmVudC50YXJnZXRFbGVtZW50KSkpIHtcbiAgICAgICAgeC5kZXNlbGVjdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFNlbGVjdGlvbklmTm90TXVsdGlzZWxlY3QoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpc011bHRpc2VsZWN0ID1cbiAgICAgIE1vdXNlRXZlbnRFeHRlbnNpb25zLmlzQ29tbWFuZEJ1dHRvbihldmVudC5vcmlnaW5hbEV2ZW50KSB8fFxuICAgICAgTW91c2VFdmVudEV4dGVuc2lvbnMuaXNTaGlmdFByZXNzZWQoZXZlbnQub3JpZ2luYWxFdmVudCk7XG4gICAgaWYgKCFpc011bHRpc2VsZWN0KSB7XG4gICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJZk5vdFNlbGVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgaWYgKCF4LmlzU2VsZWN0ZWQoKSkge1xuICAgICAgICB4LnNlbGVjdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -30,4 +30,4 @@ export class FNodeBase {
30
30
  this.positionChange.emit(this.position);
31
31
  }
32
32
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLW5vZGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBSWhFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBWSxRQUFRLENBQUMsQ0FBQztBQUU5RCxNQUFNLE9BQWdCLFNBQVM7SUFBL0I7UUFNa0IsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU14RCxjQUFTLEdBQVcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBeUM3RCxDQUFDO0lBM0JRLFVBQVUsQ0FBQyxPQUFpQztRQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxjQUFjLENBQUMsUUFBZ0I7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCwgSVBvaW50LCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRl9TRUxFQ1RFRF9DTEFTUywgSVNlbGVjdGFibGUgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgSUhhc1N0YXRlQ2hhbmdlcyB9IGZyb20gJy4uL2ktaGFzLXN0YXRlLWNoYW5nZXMnO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi9mLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgY29uc3QgRl9OT0RFID0gbmV3IEluamVjdGlvblRva2VuPEZOb2RlQmFzZT4oJ0ZfTk9ERScpO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRk5vZGVCYXNlIGltcGxlbWVudHMgSUhhc1N0YXRlQ2hhbmdlcywgSVNlbGVjdGFibGUsIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgcHVibGljIGFic3RyYWN0IGZOb2RlSWQ6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBwb3NpdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElQb2ludD47XG5cbiAgcHVibGljIGFic3RyYWN0IHBvc2l0aW9uOiBJUG9pbnQ7XG5cbiAgcHJvdGVjdGVkIF9wb3NpdGlvbjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IHJlZnJlc2goKTogdm9pZDtcblxuICBwdWJsaWMgYWJzdHJhY3QgY29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXTtcblxuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ29ubmVjdG9yKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZW1vdmVDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldFN0eWxlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQ7XG5cbiAgcHVibGljIGlzQ29udGFpbnMoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQuY29udGFpbnMoZWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U3R5bGUoJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUoJyArIHRoaXMucG9zaXRpb24ueCArICdweCwnICsgdGhpcy5wb3NpdGlvbi55ICsgJ3B4KScpO1xuICB9XG5cbiAgcHVibGljIGRlc2VsZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShGX1NFTEVDVEVEX0NMQVNTKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKEZfU0VMRUNURURfQ0xBU1MpO1xuICB9XG5cbiAgcHVibGljIGlzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKEZfU0VMRUNURURfQ0xBU1MpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKHBvc2l0aW9uOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICB9XG5cbiAgcHVibGljIGNvbXBsZXRlRHJhZygpOiB2b2lkIHtcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLmVtaXQodGhpcy5wb3NpdGlvbik7XG4gIH1cbn1cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLW5vZGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBSWhFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBWSxRQUFRLENBQUMsQ0FBQztBQUU5RCxNQUFNLE9BQWdCLFNBQVM7SUFBL0I7UUFNa0IsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU14RCxjQUFTLEdBQVcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBMkM3RCxDQUFDO0lBM0JRLFVBQVUsQ0FBQyxPQUFpQztRQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxjQUFjLENBQUMsUUFBZ0I7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCwgSVBvaW50LCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRl9TRUxFQ1RFRF9DTEFTUywgSVNlbGVjdGFibGUgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgSUhhc1N0YXRlQ2hhbmdlcyB9IGZyb20gJy4uL2ktaGFzLXN0YXRlLWNoYW5nZXMnO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi9mLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgY29uc3QgRl9OT0RFID0gbmV3IEluamVjdGlvblRva2VuPEZOb2RlQmFzZT4oJ0ZfTk9ERScpO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRk5vZGVCYXNlIGltcGxlbWVudHMgSUhhc1N0YXRlQ2hhbmdlcywgSVNlbGVjdGFibGUsIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgcHVibGljIGFic3RyYWN0IGZOb2RlSWQ6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBwb3NpdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElQb2ludD47XG5cbiAgcHVibGljIGFic3RyYWN0IHBvc2l0aW9uOiBJUG9pbnQ7XG5cbiAgcHJvdGVjdGVkIF9wb3NpdGlvbjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkRyYWdnaW5nRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IGZTZWxlY3Rpb25EaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVmcmVzaCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBjb25uZWN0b3JzOiBGQ29ubmVjdG9yQmFzZVtdO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlbW92ZUNvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0U3R5bGUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZDtcblxuICBwdWJsaWMgaXNDb250YWlucyhlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyhlbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTdHlsZSgndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgnICsgdGhpcy5wb3NpdGlvbi54ICsgJ3B4LCcgKyB0aGlzLnBvc2l0aW9uLnkgKyAncHgpJyk7XG4gIH1cblxuICBwdWJsaWMgZGVzZWxlY3QoKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKEZfU0VMRUNURURfQ0xBU1MpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoRl9TRUxFQ1RFRF9DTEFTUyk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoRl9TRUxFQ1RFRF9DTEFTUyk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24ocG9zaXRpb246IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgY29tcGxldGVEcmFnKCk6IHZvaWQge1xuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UuZW1pdCh0aGlzLnBvc2l0aW9uKTtcbiAgfVxufVxuIl19
@@ -26,7 +26,8 @@ export class FNodeDirective extends FNodeBase {
26
26
  this.subscriptions$ = new Subscription();
27
27
  this.fNodeId = `f-node-${uniqueId++}`;
28
28
  this.positionChange = new EventEmitter();
29
- this.disabled = false;
29
+ this.fDraggingDisabled = false;
30
+ this.fSelectionDisabled = false;
30
31
  this.connectors = [];
31
32
  }
32
33
  ngOnInit() {
@@ -71,7 +72,7 @@ export class FNodeDirective extends FNodeBase {
71
72
  this.subscriptions$.unsubscribe();
72
73
  }
73
74
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FNodeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Directive }); }
74
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: FNodeDirective, selector: "[fNode]", inputs: { fNodeId: "fNodeId", position: ["fNodePosition", "position"], disabled: "disabled" }, outputs: { positionChange: "fNodePositionChange" }, host: { properties: { "attr.data-f-node-id": "fNodeId", "class.f-node-disabled": "disabled" }, classAttribute: "f-node f-component" }, providers: [
75
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: FNodeDirective, selector: "[fNode]", inputs: { fNodeId: "fNodeId", position: ["fNodePosition", "position"], fDraggingDisabled: ["fNodeDraggingDisabled", "fDraggingDisabled"], fSelectionDisabled: ["fNodeSelectionDisabled", "fSelectionDisabled"] }, outputs: { positionChange: "fNodePositionChange" }, host: { properties: { "attr.data-f-node-id": "fNodeId", "class.f-node-dragging-disabled": "fDraggingDisabled", "class.f-node-selection-disabled": "fSelectionDisabled" }, classAttribute: "f-node f-component" }, providers: [
75
76
  { provide: F_NODE, useExisting: FNodeDirective }
76
77
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0 }); }
77
78
  }
@@ -83,7 +84,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
83
84
  host: {
84
85
  '[attr.data-f-node-id]': 'fNodeId',
85
86
  class: "f-node f-component",
86
- '[class.f-node-disabled]': 'disabled'
87
+ '[class.f-node-dragging-disabled]': 'fDraggingDisabled',
88
+ '[class.f-node-selection-disabled]': 'fSelectionDisabled'
87
89
  },
88
90
  providers: [
89
91
  { provide: F_NODE, useExisting: FNodeDirective }
@@ -97,7 +99,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
97
99
  }], positionChange: [{
98
100
  type: Output,
99
101
  args: ['fNodePositionChange']
100
- }], disabled: [{
101
- type: Input
102
+ }], fDraggingDisabled: [{
103
+ type: Input,
104
+ args: ['fNodeDraggingDisabled']
105
+ }], fSelectionDisabled: [{
106
+ type: Input,
107
+ args: ['fNodeSelectionDisabled']
102
108
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2Ytbm9kZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTJCLGVBQWUsRUFBYyxNQUFNLGNBQWMsQ0FBQztBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLHdDQUF3QyxFQUN4Qyx3Q0FBd0MsRUFFekMsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRXpCLElBQUksUUFBUSxHQUFXLENBQUMsQ0FBQztBQWN6QixNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFPM0MsSUFDb0IsUUFBUSxDQUFDLEtBQWlCO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQW9CLFFBQVE7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFRRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFJRCxZQUNZLGdCQUF5QyxFQUN6QyxRQUFtQixFQUNuQixnQkFBa0M7UUFFNUMsS0FBSyxFQUFFLENBQUM7UUFKRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLGFBQVEsR0FB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LEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFO1NBQ2pEOzsyRkFFVSxjQUFjO2tCQVoxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsSUFBSSxFQUFFO3dCQUNKLHVCQUF1QixFQUFFLFNBQVM7d0JBQ2xDLEtBQUssRUFBRSxvQkFBb0I7d0JBQzNCLHlCQUF5QixFQUFFLFVBQVU7cUJBQ3RDO29CQUNELFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxnQkFBZ0IsRUFBRTtxQkFDakQ7aUJBQ0Y7c0lBTWlCLE9BQU87c0JBRHRCLEtBQUs7Z0JBSWMsUUFBUTtzQkFEM0IsS0FBSzt1QkFBQyxlQUFlO2dCQVdOLGNBQWM7c0JBRDdCLE1BQU07dUJBQUMscUJBQXFCO2dCQUliLFFBQVE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCwgSVBvaW50LCBQb2ludEV4dGVuc2lvbnMsIFBvaW50SW5wdXQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRl9OT0RFLCBGTm9kZUJhc2UgfSBmcm9tICcuL2Ytbm9kZS1iYXNlJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICcuL2YtcmVzaXplLW9ic2VydmVyJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdG9yQ29ubmVjdGFibGVTaWRlSGFuZGxlcixcbiAgQ2FsY3VsYXRlQ29ubmVjdG9yQ29ubmVjdGFibGVTaWRlUmVxdWVzdCxcbiAgRkNvbm5lY3RvckJhc2Vcbn0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcblxubGV0IHVuaXF1ZUlkOiBudW1iZXIgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2ZOb2RlXVwiLFxuICBleHBvcnRBczogXCJmQ29tcG9uZW50XCIsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1mLW5vZGUtaWRdJzogJ2ZOb2RlSWQnLFxuICAgIGNsYXNzOiBcImYtbm9kZSBmLWNvbXBvbmVudFwiLFxuICAgICdbY2xhc3MuZi1ub2RlLWRpc2FibGVkXSc6ICdkaXNhYmxlZCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX05PREUsIHVzZUV4aXN0aW5nOiBGTm9kZURpcmVjdGl2ZSB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZOb2RlRGlyZWN0aXZlIGV4dGVuZHMgRk5vZGVCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBJSGFzSG9zdEVsZW1lbnQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmTm9kZUlkOiBzdHJpbmcgPSBgZi1ub2RlLSR7IHVuaXF1ZUlkKysgfWA7XG5cbiAgQElucHV0KCdmTm9kZVBvc2l0aW9uJylcbiAgcHVibGljIG92ZXJyaWRlIHNldCBwb3NpdGlvbih2YWx1ZTogUG9pbnRJbnB1dCkge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmNhc3RUb1BvaW50KHZhbHVlKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgcG9zaXRpb24oKTogSVBvaW50IHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gIH1cblxuICBAT3V0cHV0KCdmTm9kZVBvc2l0aW9uQ2hhbmdlJylcbiAgcHVibGljIG92ZXJyaWRlIHBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBvaW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBvaW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0b3JzOiBGQ29ubmVjdG9yQmFzZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFN0eWxlKCdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3RyYW5zZm9ybS1vcmlnaW4nLCAnMCAwJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndXNlci1zZWxlY3QnLCAnbm9uZScpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3BvaW50ZXItZXZlbnRzJywgJ2FsbCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ2xlZnQnLCAnMCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3RvcCcsICcwJyk7XG4gICAgc3VwZXIucmVkcmF3KCk7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmFkZE5vZGUodGhpcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2V0U3R5bGUoc3R5bGVOYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdEVsZW1lbnQsIHN0eWxlTmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmFkZChcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVPblJlc2l6ZUNoYW5nZXMoKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZU9uUmVzaXplQ2hhbmdlcygpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiBuZXcgRlJlc2l6ZU9ic2VydmVyKHRoaXMuaG9zdEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnBpcGUoc3RhcnRXaXRoKG51bGwpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jb25uZWN0b3JzLmZvckVhY2goKGZDb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKSA9PiB7XG5cbiAgICAgICAgZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlID0gbmV3IENhbGN1bGF0ZUNvbm5lY3RvckNvbm5lY3RhYmxlU2lkZUhhbmRsZXIoKS5oYW5kbGUoXG4gICAgICAgICAgICBuZXcgQ2FsY3VsYXRlQ29ubmVjdG9yQ29ubmVjdGFibGVTaWRlUmVxdWVzdChmQ29ubmVjdG9yLCB0aGlzLmhvc3RFbGVtZW50KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuY2hhbmdlcy5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgYWRkQ29ubmVjdG9yKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpOiB2b2lkIHtcbiAgICB0aGlzLmNvbm5lY3RvcnMucHVzaChjb25uZWN0b3IpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlbW92ZUNvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNvbm5lY3RvcnMuaW5kZXhPZihjb25uZWN0b3IpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuY29ubmVjdG9ycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUucmVtb3ZlTm9kZSh0aGlzKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2Ytbm9kZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTJCLGVBQWUsRUFBYyxNQUFNLGNBQWMsQ0FBQztBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLHdDQUF3QyxFQUN4Qyx3Q0FBd0MsRUFFekMsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRXpCLElBQUksUUFBUSxHQUFXLENBQUMsQ0FBQztBQWV6QixNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFPM0MsSUFDb0IsUUFBUSxDQUFDLEtBQWlCO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQW9CLFFBQVE7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFXRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFJRCxZQUNZLGdCQUF5QyxFQUN6QyxRQUFtQixFQUNuQixnQkFBa0M7UUFFNUMsS0FBSyxFQUFFLENBQUM7UUFKRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLGFBQVEsR0FB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N0ZVLGNBQWM7a0dBQWQsY0FBYywwZkFKZDtZQUNULEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFO1NBQ2pEOzsyRkFFVSxjQUFjO2tCQWIxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsSUFBSSxFQUFFO3dCQUNKLHVCQUF1QixFQUFFLFNBQVM7d0JBQ2xDLEtBQUssRUFBRSxvQkFBb0I7d0JBQzNCLGtDQUFrQyxFQUFFLG1CQUFtQjt3QkFDdkQsbUNBQW1DLEVBQUUsb0JBQW9CO3FCQUMxRDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsZ0JBQWdCLEVBQUU7cUJBQ2pEO2lCQUNGO3NJQU1pQixPQUFPO3NCQUR0QixLQUFLO2dCQUljLFFBQVE7c0JBRDNCLEtBQUs7dUJBQUMsZUFBZTtnQkFXTixjQUFjO3NCQUQ3QixNQUFNO3VCQUFDLHFCQUFxQjtnQkFJYixpQkFBaUI7c0JBRGhDLEtBQUs7dUJBQUMsdUJBQXVCO2dCQUlkLGtCQUFrQjtzQkFEakMsS0FBSzt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCwgSVBvaW50LCBQb2ludEV4dGVuc2lvbnMsIFBvaW50SW5wdXQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRl9OT0RFLCBGTm9kZUJhc2UgfSBmcm9tICcuL2Ytbm9kZS1iYXNlJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICcuL2YtcmVzaXplLW9ic2VydmVyJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdG9yQ29ubmVjdGFibGVTaWRlSGFuZGxlcixcbiAgQ2FsY3VsYXRlQ29ubmVjdG9yQ29ubmVjdGFibGVTaWRlUmVxdWVzdCxcbiAgRkNvbm5lY3RvckJhc2Vcbn0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcblxubGV0IHVuaXF1ZUlkOiBudW1iZXIgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2ZOb2RlXVwiLFxuICBleHBvcnRBczogXCJmQ29tcG9uZW50XCIsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1mLW5vZGUtaWRdJzogJ2ZOb2RlSWQnLFxuICAgIGNsYXNzOiBcImYtbm9kZSBmLWNvbXBvbmVudFwiLFxuICAgICdbY2xhc3MuZi1ub2RlLWRyYWdnaW5nLWRpc2FibGVkXSc6ICdmRHJhZ2dpbmdEaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5mLW5vZGUtc2VsZWN0aW9uLWRpc2FibGVkXSc6ICdmU2VsZWN0aW9uRGlzYWJsZWQnXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9OT0RFLCB1c2VFeGlzdGluZzogRk5vZGVEaXJlY3RpdmUgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGTm9kZURpcmVjdGl2ZSBleHRlbmRzIEZOb2RlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgSUhhc0hvc3RFbGVtZW50LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVJZDogc3RyaW5nID0gYGYtbm9kZS0keyB1bmlxdWVJZCsrIH1gO1xuXG4gIEBJbnB1dCgnZk5vZGVQb3NpdGlvbicpXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgcG9zaXRpb24odmFsdWU6IFBvaW50SW5wdXQpIHtcbiAgICB0aGlzLl9wb3NpdGlvbiA9IFBvaW50RXh0ZW5zaW9ucy5jYXN0VG9Qb2ludCh2YWx1ZSk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHBvc2l0aW9uKCk6IElQb2ludCB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICB9XG5cbiAgQE91dHB1dCgnZk5vZGVQb3NpdGlvbkNoYW5nZScpXG4gIHB1YmxpYyBvdmVycmlkZSBwb3NpdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElQb2ludD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQb2ludD4oKTtcblxuICBASW5wdXQoJ2ZOb2RlRHJhZ2dpbmdEaXNhYmxlZCcpXG4gIHB1YmxpYyBvdmVycmlkZSBmRHJhZ2dpbmdEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnZk5vZGVTZWxlY3Rpb25EaXNhYmxlZCcpXG4gIHB1YmxpYyBvdmVycmlkZSBmU2VsZWN0aW9uRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZVxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTdHlsZSgncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcbiAgICB0aGlzLnNldFN0eWxlKCd0cmFuc2Zvcm0tb3JpZ2luJywgJzAgMCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3VzZXItc2VsZWN0JywgJ25vbmUnKTtcbiAgICB0aGlzLnNldFN0eWxlKCdwb2ludGVyLWV2ZW50cycsICdhbGwnKTtcbiAgICB0aGlzLnNldFN0eWxlKCdsZWZ0JywgJzAnKTtcbiAgICB0aGlzLnNldFN0eWxlKCd0b3AnLCAnMCcpO1xuICAgIHN1cGVyLnJlZHJhdygpO1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5hZGROb2RlKHRoaXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldFN0eWxlKHN0eWxlTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50LCBzdHlsZU5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC5hZGQoXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlT25SZXNpemVDaGFuZ2VzKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVPblJlc2l6ZUNoYW5nZXMoKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gbmV3IEZSZXNpemVPYnNlcnZlcih0aGlzLmhvc3RFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5waXBlKHN0YXJ0V2l0aChudWxsKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY29ubmVjdG9ycy5mb3JFYWNoKChmQ29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSkgPT4ge1xuXG4gICAgICAgIGZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSA9IG5ldyBDYWxjdWxhdGVDb25uZWN0b3JDb25uZWN0YWJsZVNpZGVIYW5kbGVyKCkuaGFuZGxlKFxuICAgICAgICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3RvckNvbm5lY3RhYmxlU2lkZVJlcXVlc3QoZkNvbm5lY3RvciwgdGhpcy5ob3N0RWxlbWVudClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmNoYW5nZXMubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGFkZENvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZCB7XG4gICAgdGhpcy5jb25uZWN0b3JzLnB1c2goY29ubmVjdG9yKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZW1vdmVDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jb25uZWN0b3JzLmluZGV4T2YoY29ubmVjdG9yKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLmNvbm5lY3RvcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLnJlbW92ZU5vZGUodGhpcyk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -31,7 +31,8 @@ export declare abstract class FConnectionBase extends MIXIN_BASE implements IHas
31
31
  path: string;
32
32
  vector: IVector;
33
33
  readonly stateChanges: Subject<void>;
34
- abstract disabled: boolean;
34
+ abstract fDraggingDisabled: boolean;
35
+ abstract fSelectionDisabled: boolean;
35
36
  abstract boundingElement: HTMLElement | SVGElement;
36
37
  abstract fBehavior: EFConnectionBehavior;
37
38
  abstract fType: EFConnectionType;
@@ -20,7 +20,8 @@ export declare class FConnectionComponent extends FConnectionBase implements OnI
20
20
  set fType(value: EFConnectionType);
21
21
  get fType(): EFConnectionType;
22
22
  private _type;
23
- disabled: boolean;
23
+ fDraggingDisabled: boolean;
24
+ fSelectionDisabled: boolean;
24
25
  fDefs: ElementRef<SVGDefsElement>;
25
26
  fMarkers: QueryList<FMarkerBase>;
26
27
  fPath: IConnectionPath;
@@ -35,7 +36,7 @@ export declare class FConnectionComponent extends FConnectionBase implements OnI
35
36
  ngOnInit(): void;
36
37
  ngOnDestroy(): void;
37
38
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionComponent, "f-connection", ["fComponent"], { "fConnectionId": { "alias": "fConnectionId"; "required": false; }; "fText": { "alias": "fText"; "required": false; }; "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fOutputId": { "alias": "fOutputId"; "required": true; }; "fInputId": { "alias": "fInputId"; "required": true; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["fMarkers", "fConnectionCenters"], ["*", "[fConnectionCenter]"], false, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionComponent, "f-connection", ["fComponent"], { "fConnectionId": { "alias": "fConnectionId"; "required": false; }; "fText": { "alias": "fText"; "required": false; }; "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fOutputId": { "alias": "fOutputId"; "required": true; }; "fInputId": { "alias": "fInputId"; "required": true; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "fDraggingDisabled": { "alias": "fReassignDisabled"; "required": false; }; "fSelectionDisabled": { "alias": "fSelectionDisabled"; "required": false; }; }, {}, ["fMarkers", "fConnectionCenters"], ["*", "[fConnectionCenter]"], false, never>;
39
40
  static ngAcceptInputType_fBehavior: string;
40
41
  static ngAcceptInputType_fType: string;
41
42
  }
@@ -20,7 +20,8 @@ export declare class FConnectionForCreateComponent extends FConnectionBase imple
20
20
  set fType(value: EFConnectionType);
21
21
  get fType(): EFConnectionType;
22
22
  private _type;
23
- disabled: boolean;
23
+ fDraggingDisabled: boolean;
24
+ fSelectionDisabled: boolean;
24
25
  fDefs: ElementRef<SVGDefsElement>;
25
26
  fMarkers: QueryList<FMarkerBase>;
26
27
  fPath: IConnectionPath;
@@ -36,7 +37,7 @@ export declare class FConnectionForCreateComponent extends FConnectionBase imple
36
37
  ngAfterViewInit(): void;
37
38
  ngOnDestroy(): void;
38
39
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionForCreateComponent, never>;
39
- static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionForCreateComponent, "f-connection-for-create", never, { "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["fMarkers", "fConnectionCenters"], ["*", "[fConnectionCenter]"], false, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionForCreateComponent, "f-connection-for-create", never, { "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; }, {}, ["fMarkers", "fConnectionCenters"], ["*", "[fConnectionCenter]"], false, never>;
40
41
  static ngAcceptInputType_fBehavior: string;
41
42
  static ngAcceptInputType_fType: string;
42
43
  }
@@ -1,19 +1,18 @@
1
1
  import { IHandler, IPointerEvent } from '@foblex/core';
2
2
  import { FComponentsStore } from '../../../f-components-store';
3
3
  import { FDraggableDataContext } from '../../f-draggable-data-context';
4
- import { GetConnectionHandler, GetInputRectInFlowHandler, UpdateConnectionLayerHandler } from '../../../domain';
4
+ import { GetConnectionHandler, UpdateConnectionLayerHandler } from '../../../domain';
5
5
  import { FFlowMediator } from '../../../f-mediator';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class ReassignConnectionPrepareDragSequence implements IHandler<IPointerEvent, void> {
8
8
  private fComponentsStore;
9
9
  private fDraggableDataContext;
10
10
  private getConnectionHandler;
11
- private getInputRectInFlowHandler;
12
11
  private fMediator;
13
12
  private updateConnectionLayerHandler;
14
13
  private get transform();
15
14
  private get flowHost();
16
- constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, getConnectionHandler: GetConnectionHandler, getInputRectInFlowHandler: GetInputRectInFlowHandler, fMediator: FFlowMediator, updateConnectionLayerHandler: UpdateConnectionLayerHandler);
15
+ constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, getConnectionHandler: GetConnectionHandler, fMediator: FFlowMediator, updateConnectionLayerHandler: UpdateConnectionLayerHandler);
17
16
  handle(event: IPointerEvent): void;
18
17
  static ɵfac: i0.ɵɵFactoryDeclaration<ReassignConnectionPrepareDragSequence, never>;
19
18
  static ɵprov: i0.ɵɵInjectableDeclaration<ReassignConnectionPrepareDragSequence>;
@@ -7,7 +7,6 @@ export declare class NodeOnPointerUp implements IHandler<IPointerEvent, void> {
7
7
  private fComponentsStore;
8
8
  private fDraggableDataContext;
9
9
  private isConnectionUnderNodeHandler;
10
- private get transform();
11
10
  private get flowHost();
12
11
  constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, isConnectionUnderNodeHandler: IsConnectionUnderNodeHandler);
13
12
  handle(event: IPointerEvent): void;
@@ -12,7 +12,8 @@ export declare abstract class FNodeBase implements IHasStateChanges, ISelectable
12
12
  abstract positionChange: EventEmitter<IPoint>;
13
13
  abstract position: IPoint;
14
14
  protected _position: IPoint;
15
- abstract disabled: boolean;
15
+ abstract fDraggingDisabled: boolean;
16
+ abstract fSelectionDisabled: boolean;
16
17
  abstract refresh(): void;
17
18
  abstract connectors: FConnectorBase[];
18
19
  abstract addConnector(connector: FConnectorBase): void;
@@ -13,7 +13,8 @@ export declare class FNodeDirective extends FNodeBase implements OnInit, AfterVi
13
13
  set position(value: PointInput);
14
14
  get position(): IPoint;
15
15
  positionChange: EventEmitter<IPoint>;
16
- disabled: boolean;
16
+ fDraggingDisabled: boolean;
17
+ fSelectionDisabled: boolean;
17
18
  get hostElement(): HTMLElement;
18
19
  connectors: FConnectorBase[];
19
20
  constructor(elementReference: ElementRef<HTMLElement>, renderer: Renderer2, fComponentsStore: FComponentsStore);
@@ -26,5 +27,5 @@ export declare class FNodeDirective extends FNodeBase implements OnInit, AfterVi
26
27
  refresh(): void;
27
28
  ngOnDestroy(): void;
28
29
  static ɵfac: i0.ɵɵFactoryDeclaration<FNodeDirective, never>;
29
- static ɵdir: i0.ɵɵDirectiveDeclaration<FNodeDirective, "[fNode]", ["fComponent"], { "fNodeId": { "alias": "fNodeId"; "required": false; }; "position": { "alias": "fNodePosition"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "positionChange": "fNodePositionChange"; }, never, never, false, never>;
30
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FNodeDirective, "[fNode]", ["fComponent"], { "fNodeId": { "alias": "fNodeId"; "required": false; }; "position": { "alias": "fNodePosition"; "required": false; }; "fDraggingDisabled": { "alias": "fNodeDraggingDisabled"; "required": false; }; "fSelectionDisabled": { "alias": "fNodeSelectionDisabled"; "required": false; }; }, { "positionChange": "fNodePositionChange"; }, never, never, false, never>;
30
31
  }
@@ -1375,7 +1375,8 @@ class FConnectionForCreateComponent extends FConnectionBase {
1375
1375
  this.fEndColor = 'black';
1376
1376
  this._behavior = EFConnectionBehavior.FIXED;
1377
1377
  this._type = EFConnectionType.STRAIGHT;
1378
- this.disabled = false;
1378
+ this.fDraggingDisabled = false;
1379
+ this.fSelectionDisabled = false;
1379
1380
  }
1380
1381
  ngOnInit() {
1381
1382
  this.fComponentsStore.fTempConnection = this;
@@ -1387,7 +1388,7 @@ class FConnectionForCreateComponent extends FConnectionBase {
1387
1388
  this.fComponentsStore.fTempConnection = undefined;
1388
1389
  }
1389
1390
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FConnectionForCreateComponent, deps: [{ token: i0.ElementRef }, { token: FComponentsStore }], target: i0.ɵɵFactoryTarget.Component }); }
1390
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.1", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fStartColor: "fStartColor", fEndColor: "fEndColor", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType], disabled: "disabled" }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }, { propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1391
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.1", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fStartColor: "fStartColor", fEndColor: "fEndColor", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType] }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }, { propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1391
1392
  }
1392
1393
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FConnectionForCreateComponent, decorators: [{
1393
1394
  type: Component,
@@ -1404,8 +1405,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
1404
1405
  }], fType: [{
1405
1406
  type: Input,
1406
1407
  args: [{ transform: castToConnectionType }]
1407
- }], disabled: [{
1408
- type: Input
1409
1408
  }], fDefs: [{
1410
1409
  type: ViewChild,
1411
1410
  args: ['defs', { static: true }]
@@ -1461,7 +1460,8 @@ class FConnectionComponent extends FConnectionBase {
1461
1460
  this.fEndColor = 'black';
1462
1461
  this._behavior = EFConnectionBehavior.FIXED;
1463
1462
  this._type = EFConnectionType.STRAIGHT;
1464
- this.disabled = false;
1463
+ this.fDraggingDisabled = false;
1464
+ this.fSelectionDisabled = false;
1465
1465
  }
1466
1466
  ngOnInit() {
1467
1467
  this.fComponentsStore.addConnection(this);
@@ -1470,14 +1470,15 @@ class FConnectionComponent extends FConnectionBase {
1470
1470
  this.fComponentsStore.removeConnection(this);
1471
1471
  }
1472
1472
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FConnectionComponent, deps: [{ token: i0.ElementRef }, { token: FComponentsStore }], target: i0.ɵɵFactoryTarget.Component }); }
1473
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.1", type: FConnectionComponent, selector: "f-connection", inputs: { fConnectionId: "fConnectionId", fText: "fText", fStartColor: "fStartColor", fEndColor: "fEndColor", fOutputId: "fOutputId", fInputId: "fInputId", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType], disabled: "disabled" }, host: { properties: { "attr.id": "fConnectionId", "class.f-connection-disabled": "disabled" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }, { propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true }], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1473
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.1", type: FConnectionComponent, selector: "f-connection", inputs: { fConnectionId: "fConnectionId", fText: "fText", fStartColor: "fStartColor", fEndColor: "fEndColor", fOutputId: "fOutputId", fInputId: "fInputId", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType], fDraggingDisabled: ["fReassignDisabled", "fDraggingDisabled"], fSelectionDisabled: "fSelectionDisabled" }, host: { properties: { "attr.id": "fConnectionId", "class.f-connection-selection-disabled": "fDisableSelection", "class.f-connection-reassign-disabled": "fDisableDragging" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }, { propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true }], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1474
1474
  }
1475
1475
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FConnectionComponent, decorators: [{
1476
1476
  type: Component,
1477
1477
  args: [{ selector: "f-connection", exportAs: 'fComponent', changeDetection: ChangeDetectionStrategy.OnPush, host: {
1478
1478
  '[attr.id]': 'fConnectionId',
1479
1479
  class: "f-component f-connection",
1480
- '[class.f-connection-disabled]': 'disabled',
1480
+ '[class.f-connection-selection-disabled]': 'fDisableSelection',
1481
+ '[class.f-connection-reassign-disabled]': 'fDisableDragging',
1481
1482
  }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"] }]
1482
1483
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FComponentsStore }], propDecorators: { fConnectionId: [{
1483
1484
  type: Input
@@ -1499,7 +1500,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
1499
1500
  }], fType: [{
1500
1501
  type: Input,
1501
1502
  args: [{ transform: castToConnectionType }]
1502
- }], disabled: [{
1503
+ }], fDraggingDisabled: [{
1504
+ type: Input,
1505
+ args: ['fReassignDisabled']
1506
+ }], fSelectionDisabled: [{
1503
1507
  type: Input
1504
1508
  }], fDefs: [{
1505
1509
  type: ViewChild,
@@ -1663,7 +1667,8 @@ class FNodeDirective extends FNodeBase {
1663
1667
  this.subscriptions$ = new Subscription();
1664
1668
  this.fNodeId = `f-node-${uniqueId$2++}`;
1665
1669
  this.positionChange = new EventEmitter();
1666
- this.disabled = false;
1670
+ this.fDraggingDisabled = false;
1671
+ this.fSelectionDisabled = false;
1667
1672
  this.connectors = [];
1668
1673
  }
1669
1674
  ngOnInit() {
@@ -1708,7 +1713,7 @@ class FNodeDirective extends FNodeBase {
1708
1713
  this.subscriptions$.unsubscribe();
1709
1714
  }
1710
1715
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FNodeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: FComponentsStore }], target: i0.ɵɵFactoryTarget.Directive }); }
1711
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: FNodeDirective, selector: "[fNode]", inputs: { fNodeId: "fNodeId", position: ["fNodePosition", "position"], disabled: "disabled" }, outputs: { positionChange: "fNodePositionChange" }, host: { properties: { "attr.data-f-node-id": "fNodeId", "class.f-node-disabled": "disabled" }, classAttribute: "f-node f-component" }, providers: [
1716
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: FNodeDirective, selector: "[fNode]", inputs: { fNodeId: "fNodeId", position: ["fNodePosition", "position"], fDraggingDisabled: ["fNodeDraggingDisabled", "fDraggingDisabled"], fSelectionDisabled: ["fNodeSelectionDisabled", "fSelectionDisabled"] }, outputs: { positionChange: "fNodePositionChange" }, host: { properties: { "attr.data-f-node-id": "fNodeId", "class.f-node-dragging-disabled": "fDraggingDisabled", "class.f-node-selection-disabled": "fSelectionDisabled" }, classAttribute: "f-node f-component" }, providers: [
1712
1717
  { provide: F_NODE, useExisting: FNodeDirective }
1713
1718
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0 }); }
1714
1719
  }
@@ -1720,7 +1725,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
1720
1725
  host: {
1721
1726
  '[attr.data-f-node-id]': 'fNodeId',
1722
1727
  class: "f-node f-component",
1723
- '[class.f-node-disabled]': 'disabled'
1728
+ '[class.f-node-dragging-disabled]': 'fDraggingDisabled',
1729
+ '[class.f-node-selection-disabled]': 'fSelectionDisabled'
1724
1730
  },
1725
1731
  providers: [
1726
1732
  { provide: F_NODE, useExisting: FNodeDirective }
@@ -1734,8 +1740,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
1734
1740
  }], positionChange: [{
1735
1741
  type: Output,
1736
1742
  args: ['fNodePositionChange']
1737
- }], disabled: [{
1738
- type: Input
1743
+ }], fDraggingDisabled: [{
1744
+ type: Input,
1745
+ args: ['fNodeDraggingDisabled']
1746
+ }], fSelectionDisabled: [{
1747
+ type: Input,
1748
+ args: ['fNodeSelectionDisabled']
1739
1749
  }] } });
1740
1750
 
1741
1751
  function isNode(element) {
@@ -2021,7 +2031,7 @@ class CanvasPrepareDragSequence {
2021
2031
  const isBackgroundElement = this.fComponentsStore.fBackground?.isBackgroundElement(event.targetElement);
2022
2032
  const isFlowHost = this.flowHost.contains(event.targetElement);
2023
2033
  let node = this.fComponentsStore.findNode(event.targetElement);
2024
- if (node && node.disabled) {
2034
+ if (node && node.fDraggingDisabled) {
2025
2035
  node = undefined;
2026
2036
  }
2027
2037
  if ((isBackgroundElement || (isFlowHost && !node)) && !this.fDraggableDataContext.draggableItems.length) {
@@ -2432,11 +2442,10 @@ class ReassignConnectionPrepareDragSequence {
2432
2442
  get flowHost() {
2433
2443
  return this.fComponentsStore.fFlow.hostElement;
2434
2444
  }
2435
- constructor(fComponentsStore, fDraggableDataContext, getConnectionHandler, getInputRectInFlowHandler, fMediator, updateConnectionLayerHandler) {
2445
+ constructor(fComponentsStore, fDraggableDataContext, getConnectionHandler, fMediator, updateConnectionLayerHandler) {
2436
2446
  this.fComponentsStore = fComponentsStore;
2437
2447
  this.fDraggableDataContext = fDraggableDataContext;
2438
2448
  this.getConnectionHandler = getConnectionHandler;
2439
- this.getInputRectInFlowHandler = getInputRectInFlowHandler;
2440
2449
  this.fMediator = fMediator;
2441
2450
  this.updateConnectionLayerHandler = updateConnectionLayerHandler;
2442
2451
  }
@@ -2449,7 +2458,7 @@ class ReassignConnectionPrepareDragSequence {
2449
2458
  });
2450
2459
  let connectionToReassign;
2451
2460
  if (dragHandlesOfConnections.length) {
2452
- const connections = dragHandlesOfConnections.map((x) => this.getConnectionHandler.handle(x)).filter((x) => !x?.disabled);
2461
+ const connections = dragHandlesOfConnections.map((x) => this.getConnectionHandler.handle(x)).filter((x) => !x?.fDraggingDisabled);
2453
2462
  if (connections.length) {
2454
2463
  connectionToReassign = this.getConnectionHandler.handle(dragHandlesOfConnections[0]);
2455
2464
  }
@@ -2463,12 +2472,12 @@ class ReassignConnectionPrepareDragSequence {
2463
2472
  ];
2464
2473
  }
2465
2474
  }
2466
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ReassignConnectionPrepareDragSequence, deps: [{ token: FComponentsStore }, { token: FDraggableDataContext }, { token: GetConnectionHandler }, { token: GetInputRectInFlowHandler }, { token: FFlowMediator }, { token: UpdateConnectionLayerHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
2475
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ReassignConnectionPrepareDragSequence, deps: [{ token: FComponentsStore }, { token: FDraggableDataContext }, { token: GetConnectionHandler }, { token: FFlowMediator }, { token: UpdateConnectionLayerHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
2467
2476
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ReassignConnectionPrepareDragSequence }); }
2468
2477
  }
2469
2478
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ReassignConnectionPrepareDragSequence, decorators: [{
2470
2479
  type: Injectable
2471
- }], ctorParameters: () => [{ type: FComponentsStore }, { type: FDraggableDataContext }, { type: GetConnectionHandler }, { type: GetInputRectInFlowHandler }, { type: FFlowMediator }, { type: UpdateConnectionLayerHandler }] });
2480
+ }], ctorParameters: () => [{ type: FComponentsStore }, { type: FDraggableDataContext }, { type: GetConnectionHandler }, { type: FFlowMediator }, { type: UpdateConnectionLayerHandler }] });
2472
2481
 
2473
2482
  const CONNECTIONS_PROVIDERS = [
2474
2483
  FindFirstCanBeConnectedOutputByOutletHandler,
@@ -2844,9 +2853,6 @@ class NodeDragHandler {
2844
2853
  }
2845
2854
 
2846
2855
  class NodeOnPointerUp {
2847
- get transform() {
2848
- return this.fComponentsStore.fCanvas.transform;
2849
- }
2850
2856
  get flowHost() {
2851
2857
  return this.fComponentsStore.fFlow.hostElement;
2852
2858
  }
@@ -2898,9 +2904,9 @@ class NodePrepareDragSequence {
2898
2904
  handle(event) {
2899
2905
  const node = this.fComponentsStore.findNode(event.targetElement);
2900
2906
  const pointerPositionInFlow = Point.fromPoint(event.getPosition()).elementTransform(this.flowHost);
2901
- if (node && !node.disabled && !this.fDraggableDataContext.draggableItems.length) {
2907
+ if (node && !node.fDraggingDisabled && !this.fDraggableDataContext.draggableItems.length) {
2902
2908
  if (isNodeDragHandle(event.targetElement)) {
2903
- if (!this.fDraggableDataContext.selectedItems.includes(node)) {
2909
+ if (!this.fDraggableDataContext.selectedItems.includes(node) && !node.fSelectionDisabled) {
2904
2910
  this.fDraggableDataContext.selectedItems.push(node);
2905
2911
  node.select();
2906
2912
  this.fDraggableDataContext.isSelectedChanged = true;
@@ -2998,7 +3004,7 @@ class GetCanBeSelectedItemsHandler {
2998
3004
  return result;
2999
3005
  }
3000
3006
  getNodesWithRects() {
3001
- return this.fNodes.map((x) => {
3007
+ return this.fNodes.filter((x) => !x.fSelectionDisabled).map((x) => {
3002
3008
  const rect = this.fMediator.send(new GetElementRectInFlowRequest(x.hostElement));
3003
3009
  return {
3004
3010
  element: x,
@@ -3007,7 +3013,7 @@ class GetCanBeSelectedItemsHandler {
3007
3013
  });
3008
3014
  }
3009
3015
  getConnectionsWithRects() {
3010
- return this.fConnections.map((x) => {
3016
+ return this.fConnections.filter((x) => !x.fSelectionDisabled).map((x) => {
3011
3017
  const rect = this.fMediator.send(new GetElementRectInFlowRequest(x.boundingElement));
3012
3018
  return {
3013
3019
  element: x,
@@ -3142,26 +3148,32 @@ class SingleSelectOnPointerDown {
3142
3148
  }
3143
3149
  this.resetSelectionIfNotMultiselect(event);
3144
3150
  if (node) {
3145
- if (!this.fDraggableDataContext.selectedItems.includes(node)) {
3151
+ if (!this.fDraggableDataContext.selectedItems.includes(node) && !node.fSelectionDisabled) {
3146
3152
  this.fDraggableDataContext.selectedItems.push(node);
3147
3153
  if (element?.hostElement.dataset['fNodeId'] !== node.hostElement.dataset['fNodeId']) {
3148
3154
  this.fDraggableDataContext.isSelectedChanged = true;
3149
3155
  }
3150
3156
  }
3151
3157
  else {
3152
- this.fDraggableDataContext.selectedItems.splice(this.fDraggableDataContext.selectedItems.indexOf(node), 1);
3158
+ const index = this.fDraggableDataContext.selectedItems.indexOf(node);
3159
+ if (index > -1) {
3160
+ this.fDraggableDataContext.selectedItems.splice(index, 1);
3161
+ }
3153
3162
  }
3154
3163
  }
3155
3164
  else if (connection) {
3156
3165
  this.updateConnectionLayerHandler.handle(connection);
3157
- if (!this.fDraggableDataContext.selectedItems.includes(connection)) {
3166
+ if (!this.fDraggableDataContext.selectedItems.includes(connection) && !connection.fSelectionDisabled) {
3158
3167
  this.fDraggableDataContext.selectedItems.push(connection);
3159
3168
  if (element?.hostElement.id !== connection.hostElement.id) {
3160
3169
  this.fDraggableDataContext.isSelectedChanged = true;
3161
3170
  }
3162
3171
  }
3163
3172
  else {
3164
- this.fDraggableDataContext.selectedItems.splice(this.fDraggableDataContext.selectedItems.indexOf(connection), 1);
3173
+ const index = this.fDraggableDataContext.selectedItems.indexOf(connection);
3174
+ if (index > -1) {
3175
+ this.fDraggableDataContext.selectedItems.splice(index, 1);
3176
+ }
3165
3177
  }
3166
3178
  }
3167
3179
  this.selectIfNotSelected();