@foblex/flow 16.0.4 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +23 -18
  2. package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +2 -2
  3. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +2 -2
  4. package/esm2022/f-draggable/domain/i-node-with-rect.mjs +2 -0
  5. package/esm2022/f-draggable/domain/index.mjs +2 -1
  6. package/esm2022/f-draggable/f-draggable-base.mjs +1 -1
  7. package/esm2022/f-draggable/f-draggable.directive.mjs +8 -3
  8. package/esm2022/f-draggable/node/connection-base-drag-handler.mjs +14 -3
  9. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +8 -4
  10. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.request.mjs +4 -1
  11. package/esm2022/f-draggable/node/f-drop-to-group.event.mjs +8 -0
  12. package/esm2022/f-draggable/node/index.mjs +5 -1
  13. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/index.mjs +5 -0
  14. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.execution.mjs +51 -0
  15. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.request.mjs +6 -0
  16. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.validator.mjs +25 -0
  17. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/providers.mjs +7 -0
  18. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/index.mjs +5 -0
  19. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.mjs +61 -0
  20. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.request.mjs +6 -0
  21. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.validator.mjs +24 -0
  22. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/providers.mjs +7 -0
  23. package/esm2022/f-draggable/node/node-drag-to-parent.drag-handler.mjs +48 -0
  24. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +9 -3
  25. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.execution.mjs +19 -8
  26. package/esm2022/f-draggable/node/providers.mjs +5 -1
  27. package/esm2022/f-draggable/single-select/single-select.execution.mjs +4 -1
  28. package/esm2022/f-node/f-node-base.mjs +7 -1
  29. package/esm2022/f-zoom/f-zoom-base.mjs +37 -37
  30. package/f-draggable/connections/providers.d.ts +1 -1
  31. package/f-draggable/domain/i-node-with-rect.d.ts +6 -0
  32. package/f-draggable/domain/index.d.ts +1 -0
  33. package/f-draggable/f-draggable-base.d.ts +2 -0
  34. package/f-draggable/f-draggable.directive.d.ts +3 -1
  35. package/f-draggable/node/connection-base-drag-handler.d.ts +1 -0
  36. package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.request.d.ts +3 -0
  37. package/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
  38. package/f-draggable/node/f-drop-to-group.event.d.ts +7 -0
  39. package/f-draggable/node/index.d.ts +4 -0
  40. package/f-draggable/node/node-drag-to-parent-finalize/index.d.ts +4 -0
  41. package/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.execution.d.ts +17 -0
  42. package/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.request.d.ts +5 -0
  43. package/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.validator.d.ts +11 -0
  44. package/f-draggable/node/node-drag-to-parent-finalize/providers.d.ts +3 -0
  45. package/f-draggable/node/node-drag-to-parent-preparation/index.d.ts +4 -0
  46. package/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.d.ts +20 -0
  47. package/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.request.d.ts +5 -0
  48. package/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.validator.d.ts +11 -0
  49. package/f-draggable/node/node-drag-to-parent-preparation/providers.d.ts +3 -0
  50. package/f-draggable/node/node-drag-to-parent.drag-handler.d.ts +21 -0
  51. package/f-draggable/node/node-move-finalize/node-move-finalize.execution.d.ts +1 -0
  52. package/f-draggable/node/providers.d.ts +1 -1
  53. package/f-draggable/providers.d.ts +1 -1
  54. package/f-node/f-node-base.d.ts +2 -0
  55. package/fesm2022/foblex-flow.mjs +302 -54
  56. package/fesm2022/foblex-flow.mjs.map +1 -1
  57. package/package.json +1 -1
@@ -14,6 +14,38 @@ export class FZoomBase {
14
14
  this.fComponentsStore = fComponentsStore;
15
15
  this.isEnabled = false;
16
16
  this.listeners = EventExtensions.emptyListener();
17
+ this.onWheel = (event) => {
18
+ event.preventDefault();
19
+ const targetElement = event.target;
20
+ if (this.fComponentsStore.fDraggable?.isDragStarted || targetElement?.closest('[fLockedContext]')) {
21
+ return;
22
+ }
23
+ let result = this.getScale();
24
+ const direction = event.deltaY > 0 ? -1 : 1;
25
+ const step = this.step;
26
+ result = result + step * direction;
27
+ result = Math.max(this.minimum, Math.min(result, this.maximum));
28
+ const pointerPositionInFlow = new Point(event.clientX, event.clientY).elementTransform(this.flowHost);
29
+ this.fCanvas.setZoom(result, pointerPositionInFlow);
30
+ this.fCanvas.redraw();
31
+ this.fCanvas.emitCanvasChangeEvent();
32
+ };
33
+ this.onDoubleClick = (event) => {
34
+ event.preventDefault();
35
+ const targetElement = event.target;
36
+ if (this.fComponentsStore.fDraggable?.isDragStarted || isNode(targetElement) || targetElement?.closest('[fLockedContext]')) {
37
+ return;
38
+ }
39
+ let result = this.getScale();
40
+ const direction = 1;
41
+ const step = this.dblClickStep;
42
+ result = result + step * direction;
43
+ result = Math.max(this.minimum, Math.min(result, this.maximum));
44
+ const pointerPositionInFlow = new Point(event.clientX, event.clientY).elementTransform(this.flowHost);
45
+ this.fCanvas.setZoom(result, pointerPositionInFlow);
46
+ this.fCanvas.redrawWithAnimation();
47
+ this.fCanvas.emitCanvasChangeEvent();
48
+ };
17
49
  }
18
50
  toggleZoom() {
19
51
  if (this.isEnabled) {
@@ -28,48 +60,16 @@ export class FZoomBase {
28
60
  if (!this.flowHost) {
29
61
  return;
30
62
  }
31
- this.flowHost.addEventListener('wheel', this.onWheel.bind(this));
32
- this.flowHost.addEventListener('dblclick', this.onDoubleClick.bind(this));
63
+ this.flowHost.addEventListener('wheel', this.onWheel);
64
+ this.flowHost.addEventListener('dblclick', this.onDoubleClick);
33
65
  this.listeners = () => {
34
- this.flowHost.removeEventListener('wheel', this.onWheel.bind(this));
35
- this.flowHost.removeEventListener('dblclick', this.onDoubleClick.bind(this));
66
+ this.flowHost.removeEventListener('wheel', this.onWheel);
67
+ this.flowHost.removeEventListener('dblclick', this.onDoubleClick);
36
68
  };
37
69
  }
38
70
  getScale() {
39
71
  return this.fCanvas.transform.scale || 1;
40
72
  }
41
- onWheel(event) {
42
- event.preventDefault();
43
- const targetElement = event.target;
44
- if (this.fComponentsStore.fDraggable?.isDragStarted || targetElement?.closest('[fLockedContext]')) {
45
- return;
46
- }
47
- let result = this.getScale();
48
- const direction = event.deltaY > 0 ? -1 : 1;
49
- const step = this.step;
50
- result = result + step * direction;
51
- result = Math.max(this.minimum, Math.min(result, this.maximum));
52
- const pointerPositionInFlow = new Point(event.clientX, event.clientY).elementTransform(this.flowHost);
53
- this.fCanvas.setZoom(result, pointerPositionInFlow);
54
- this.fCanvas.redraw();
55
- this.fCanvas.emitCanvasChangeEvent();
56
- }
57
- onDoubleClick(event) {
58
- event.preventDefault();
59
- const targetElement = event.target;
60
- if (this.fComponentsStore.fDraggable?.isDragStarted || isNode(targetElement) || targetElement?.closest('[fLockedContext]')) {
61
- return;
62
- }
63
- let result = this.getScale();
64
- const direction = 1;
65
- const step = this.dblClickStep;
66
- result = result + step * direction;
67
- result = Math.max(this.minimum, Math.min(result, this.maximum));
68
- const pointerPositionInFlow = new Point(event.clientX, event.clientY).elementTransform(this.flowHost);
69
- this.fCanvas.setZoom(result, pointerPositionInFlow);
70
- this.fCanvas.redrawWithAnimation();
71
- this.fCanvas.emitCanvasChangeEvent();
72
- }
73
73
  onZoomToCenter(deltaY, position) {
74
74
  const preventDefault = () => {
75
75
  };
@@ -94,4 +94,4 @@ export class FZoomBase {
94
94
  this.listeners = EventExtensions.emptyListener();
95
95
  }
96
96
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi16b29tLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytem9vbS9mLXpvb20tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFVLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5DLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBWSxRQUFRLENBQUMsQ0FBQztBQUU5RCxNQUFNLE9BQWdCLFNBQVM7SUFZN0IsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQXNCLENBQUM7SUFDdEQsQ0FBQztJQUVELFlBQ2MsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFuQnRDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFRN0IsY0FBUyxHQUFhLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQWE5RCxDQUFDO0lBRVMsVUFBVTtRQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFFRCxJQUFJ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QUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVTLFdBQVc7UUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvZHJhZy10b29sa2l0JztcbmltcG9ydCB7IElQb2ludCwgUG9pbnQsIFJlY3RFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNhbnZhc0Jhc2UgfSBmcm9tICcuLi9mLWNhbnZhcyc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IGlzTm9kZSB9IGZyb20gJy4uL2Ytbm9kZSc7XG5cbmV4cG9ydCBjb25zdCBGX1pPT00gPSBuZXcgSW5qZWN0aW9uVG9rZW48Rlpvb21CYXNlPignRl9aT09NJyk7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGWm9vbUJhc2Uge1xuXG4gIHByb3RlY3RlZCBpc0VuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgbWluaW11bTogbnVtYmVyO1xuICBwdWJsaWMgYWJzdHJhY3QgbWF4aW11bTogbnVtYmVyO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBzdGVwOiBudW1iZXI7XG4gIHB1YmxpYyBhYnN0cmFjdCBkYmxDbGlja1N0ZXA6IG51bWJlcjtcblxuICBwcml2YXRlIGxpc3RlbmVyczogRnVuY3Rpb24gPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuXG4gIHByaXZhdGUgZ2V0IGZsb3dIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZsb3dIb3N0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZkNhbnZhcygpOiBGQ2FudmFzQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIGFzIEZDYW52YXNCYXNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgcHJvdGVjdGVkIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmVcbiAgKSB7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlWm9vbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVycygpO1xuICAgIGlmICghdGhpcy5mbG93SG9zdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmxvd0hvc3QuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCB0aGlzLm9uV2hlZWwuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5mbG93SG9zdC5hZGRFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIHRoaXMub25Eb3VibGVDbGljay5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmxpc3RlbmVycyA9ICgpID0+IHtcbiAgICAgIHRoaXMuZmxvd0hvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCB0aGlzLm9uV2hlZWwuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLmZsb3dIb3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RibGNsaWNrJywgdGhpcy5vbkRvdWJsZUNsaWNrLmJpbmQodGhpcykpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0U2NhbGUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5mQ2FudmFzLnRyYW5zZm9ybS5zY2FsZSB8fCAxO1xuICB9XG5cbiAgcHJpdmF0ZSBvbldoZWVsKGV2ZW50OiBXaGVlbEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlPy5pc0RyYWdTdGFydGVkIHx8IHRhcmdldEVsZW1lbnQ/LmNsb3Nlc3QoJ1tmTG9ja2VkQ29udGV4dF0nKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQ6IG51bWJlciA9IHRoaXMuZ2V0U2NhbGUoKTtcblxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IGV2ZW50LmRlbHRhWSA+IDAgPyAtMSA6IDE7XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMuc3RlcDtcbiAgICByZXN1bHQgPSByZXN1bHQgKyBzdGVwICogZGlyZWN0aW9uO1xuXG4gICAgcmVzdWx0ID0gTWF0aC5tYXgodGhpcy5taW5pbXVtLCBNYXRoLm1pbihyZXN1bHQsIHRoaXMubWF4aW11bSkpO1xuXG4gICAgY29uc3QgcG9pbnRlclBvc2l0aW9uSW5GbG93ID0gbmV3IFBvaW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5mbG93SG9zdCk7XG5cbiAgICB0aGlzLmZDYW52YXMuc2V0Wm9vbShyZXN1bHQsIHBvaW50ZXJQb3NpdGlvbkluRmxvdyk7XG4gICAgdGhpcy5mQ2FudmFzLnJlZHJhdygpO1xuICAgIHRoaXMuZkNhbnZhcy5lbWl0Q2FudmFzQ2hhbmdlRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Eb3VibGVDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmICh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkRyYWdnYWJsZT8uaXNEcmFnU3RhcnRlZCB8fCBpc05vZGUodGFyZ2V0RWxlbWVudCkgfHwgdGFyZ2V0RWxlbWVudD8uY2xvc2VzdCgnW2ZMb2NrZWRDb250ZXh0XScpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdDogbnVtYmVyID0gdGhpcy5nZXRTY2FsZSgpO1xuXG4gICAgY29uc3QgZGlyZWN0aW9uID0gMTtcbiAgICBjb25zdCBzdGVwID0gdGhpcy5kYmxDbGlja1N0ZXA7XG4gICAgcmVzdWx0ID0gcmVzdWx0ICsgc3RlcCAqIGRpcmVjdGlvbjtcblxuICAgIHJlc3VsdCA9IE1hdGgubWF4KHRoaXMubWluaW11bSwgTWF0aC5taW4ocmVzdWx0LCB0aGlzLm1heGltdW0pKTtcblxuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluRmxvdyA9IG5ldyBQb2ludChldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKS5lbGVtZW50VHJhbnNmb3JtKHRoaXMuZmxvd0hvc3QpO1xuICAgIHRoaXMuZkNhbnZhcy5zZXRab29tKHJlc3VsdCwgcG9pbnRlclBvc2l0aW9uSW5GbG93KTtcbiAgICB0aGlzLmZDYW52YXMucmVkcmF3V2l0aEFuaW1hdGlvbigpO1xuICAgIHRoaXMuZkNhbnZhcy5lbWl0Q2FudmFzQ2hhbmdlRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25ab29tVG9DZW50ZXIoZGVsdGFZOiBudW1iZXIsIHBvc2l0aW9uPzogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgcHJldmVudERlZmF1bHQgPSAoKSA9PiB7XG4gICAgfTtcbiAgICBjb25zdCByZWN0ID0gUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQodGhpcy5mbG93SG9zdCk7XG5cbiAgICB0aGlzLm9uV2hlZWwoe1xuICAgICAgZGVsdGFZLCBwcmV2ZW50RGVmYXVsdCwgY2xpZW50WDogcG9zaXRpb24/LnggfHwgcmVjdC5ncmF2aXR5Q2VudGVyLngsIGNsaWVudFk6IHBvc2l0aW9uPy55IHx8IHJlY3QuZ3Jhdml0eUNlbnRlci55XG4gICAgfSBhcyBXaGVlbEV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyB6b29tSW4ocG9zaXRpb24/OiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uWm9vbVRvQ2VudGVyKC0xLCBwb3NpdGlvbik7XG4gIH1cblxuICBwdWJsaWMgem9vbU91dChwb3NpdGlvbj86IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMub25ab29tVG9DZW50ZXIoMSwgcG9zaXRpb24pO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuZkNhbnZhcy5yZXNldFpvb20oKTtcbiAgICB0aGlzLmZDYW52YXMucmVkcmF3KCk7XG4gICAgdGhpcy5mQ2FudmFzLmVtaXRDYW52YXNDaGFuZ2VFdmVudCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuZXJzKCk7XG4gICAgdGhpcy5saXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICB9XG59XG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi16b29tLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytem9vbS9mLXpvb20tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFVLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5DLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBWSxRQUFRLENBQUMsQ0FBQztBQUU5RCxNQUFNLE9BQWdCLFNBQVM7SUFZN0IsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQXNCLENBQUM7SUFDdEQsQ0FBQztJQUVELFlBQ2MsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFuQnRDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFRN0IsY0FBUyxHQUFhLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQXlDdEQsWUFBTyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQ3RDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztZQUVsRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsYUFBYSxJQUFJLGFBQWEsRUFBRSxPQUFPLENBQUMsa0JBQWtCLENBQUMsRUFBRTtnQkFDakcsT0FBTzthQUNSO1lBRUQsSUFBSSxNQUFNLEdBQVcsSUFB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LHFCQUFxQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVTLFdBQVc7UUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvZHJhZy10b29sa2l0JztcbmltcG9ydCB7IElQb2ludCwgUG9pbnQsIFJlY3RFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNhbnZhc0Jhc2UgfSBmcm9tICcuLi9mLWNhbnZhcyc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IGlzTm9kZSB9IGZyb20gJy4uL2Ytbm9kZSc7XG5cbmV4cG9ydCBjb25zdCBGX1pPT00gPSBuZXcgSW5qZWN0aW9uVG9rZW48Rlpvb21CYXNlPignRl9aT09NJyk7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGWm9vbUJhc2Uge1xuXG4gIHByb3RlY3RlZCBpc0VuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgbWluaW11bTogbnVtYmVyO1xuICBwdWJsaWMgYWJzdHJhY3QgbWF4aW11bTogbnVtYmVyO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBzdGVwOiBudW1iZXI7XG4gIHB1YmxpYyBhYnN0cmFjdCBkYmxDbGlja1N0ZXA6IG51bWJlcjtcblxuICBwcml2YXRlIGxpc3RlbmVyczogRnVuY3Rpb24gPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuXG4gIHByaXZhdGUgZ2V0IGZsb3dIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZsb3dIb3N0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZkNhbnZhcygpOiBGQ2FudmFzQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIGFzIEZDYW52YXNCYXNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgcHJvdGVjdGVkIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmVcbiAgKSB7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlWm9vbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVycygpO1xuICAgIGlmICghdGhpcy5mbG93SG9zdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmxvd0hvc3QuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCB0aGlzLm9uV2hlZWwpO1xuICAgIHRoaXMuZmxvd0hvc3QuYWRkRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLCB0aGlzLm9uRG91YmxlQ2xpY2spO1xuICAgIHRoaXMubGlzdGVuZXJzID0gKCkgPT4ge1xuICAgICAgdGhpcy5mbG93SG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCd3aGVlbCcsIHRoaXMub25XaGVlbCk7XG4gICAgICB0aGlzLmZsb3dIb3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RibGNsaWNrJywgdGhpcy5vbkRvdWJsZUNsaWNrKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldFNjYWxlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZkNhbnZhcy50cmFuc2Zvcm0uc2NhbGUgfHwgMTtcbiAgfVxuXG4gIHByaXZhdGUgb25XaGVlbCA9IChldmVudDogV2hlZWxFdmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmICh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkRyYWdnYWJsZT8uaXNEcmFnU3RhcnRlZCB8fCB0YXJnZXRFbGVtZW50Py5jbG9zZXN0KCdbZkxvY2tlZENvbnRleHRdJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0OiBudW1iZXIgPSB0aGlzLmdldFNjYWxlKCk7XG5cbiAgICBjb25zdCBkaXJlY3Rpb24gPSBldmVudC5kZWx0YVkgPiAwID8gLTEgOiAxO1xuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLnN0ZXA7XG4gICAgcmVzdWx0ID0gcmVzdWx0ICsgc3RlcCAqIGRpcmVjdGlvbjtcblxuICAgIHJlc3VsdCA9IE1hdGgubWF4KHRoaXMubWluaW11bSwgTWF0aC5taW4ocmVzdWx0LCB0aGlzLm1heGltdW0pKTtcblxuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluRmxvdyA9IG5ldyBQb2ludChldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKS5lbGVtZW50VHJhbnNmb3JtKHRoaXMuZmxvd0hvc3QpO1xuXG4gICAgdGhpcy5mQ2FudmFzLnNldFpvb20ocmVzdWx0LCBwb2ludGVyUG9zaXRpb25JbkZsb3cpO1xuICAgIHRoaXMuZkNhbnZhcy5yZWRyYXcoKTtcbiAgICB0aGlzLmZDYW52YXMuZW1pdENhbnZhc0NoYW5nZUV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIG9uRG91YmxlQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy5mQ29tcG9uZW50c1N0b3JlLmZEcmFnZ2FibGU/LmlzRHJhZ1N0YXJ0ZWQgfHwgaXNOb2RlKHRhcmdldEVsZW1lbnQpIHx8IHRhcmdldEVsZW1lbnQ/LmNsb3Nlc3QoJ1tmTG9ja2VkQ29udGV4dF0nKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQ6IG51bWJlciA9IHRoaXMuZ2V0U2NhbGUoKTtcblxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IDE7XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMuZGJsQ2xpY2tTdGVwO1xuICAgIHJlc3VsdCA9IHJlc3VsdCArIHN0ZXAgKiBkaXJlY3Rpb247XG5cbiAgICByZXN1bHQgPSBNYXRoLm1heCh0aGlzLm1pbmltdW0sIE1hdGgubWluKHJlc3VsdCwgdGhpcy5tYXhpbXVtKSk7XG5cbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkZsb3cgPSBuZXcgUG9pbnQoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSkuZWxlbWVudFRyYW5zZm9ybSh0aGlzLmZsb3dIb3N0KTtcbiAgICB0aGlzLmZDYW52YXMuc2V0Wm9vbShyZXN1bHQsIHBvaW50ZXJQb3NpdGlvbkluRmxvdyk7XG4gICAgdGhpcy5mQ2FudmFzLnJlZHJhd1dpdGhBbmltYXRpb24oKTtcbiAgICB0aGlzLmZDYW52YXMuZW1pdENhbnZhc0NoYW5nZUV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIG9uWm9vbVRvQ2VudGVyKGRlbHRhWTogbnVtYmVyLCBwb3NpdGlvbj86IElQb2ludCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXZlbnREZWZhdWx0ID0gKCkgPT4ge1xuICAgIH07XG4gICAgY29uc3QgcmVjdCA9IFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuZmxvd0hvc3QpO1xuXG4gICAgdGhpcy5vbldoZWVsKHtcbiAgICAgIGRlbHRhWSwgcHJldmVudERlZmF1bHQsIGNsaWVudFg6IHBvc2l0aW9uPy54IHx8IHJlY3QuZ3Jhdml0eUNlbnRlci54LCBjbGllbnRZOiBwb3NpdGlvbj8ueSB8fCByZWN0LmdyYXZpdHlDZW50ZXIueVxuICAgIH0gYXMgV2hlZWxFdmVudCk7XG4gIH1cblxuICBwdWJsaWMgem9vbUluKHBvc2l0aW9uPzogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5vblpvb21Ub0NlbnRlcigtMSwgcG9zaXRpb24pO1xuICB9XG5cbiAgcHVibGljIHpvb21PdXQocG9zaXRpb24/OiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uWm9vbVRvQ2VudGVyKDEsIHBvc2l0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmZDYW52YXMucmVzZXRab29tKCk7XG4gICAgdGhpcy5mQ2FudmFzLnJlZHJhdygpO1xuICAgIHRoaXMuZkNhbnZhcy5lbWl0Q2FudmFzQ2hhbmdlRXZlbnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVycygpO1xuICAgIHRoaXMubGlzdGVuZXJzID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
1
  import { CreateConnectionDragHandlerExecution, CreateConnectionFinalizeExecution, CreateConnectionFinalizeValidator, CreateConnectionFromOutletPreparationExecution, CreateConnectionFromOutputPreparationExecution, CreateConnectionFromOutputPreparationValidator, CreateConnectionPreparationExecution, CreateConnectionPreparationValidator, GetCanBeConnectedOutputByOutletExecution, GetCanBeConnectedOutputByOutletValidator } from './create-connection';
2
2
  import { ReassignConnectionFinalizeExecution, ReassignConnectionFinalizeValidator, ReassignConnectionPreparationExecution, ReassignConnectionPreparationValidator } from './reassign-connection';
3
3
  import { GetInputUnderPointerExecution, GetInputUnderPointerValidator } from './get-input-under-pointer';
4
- export declare const CONNECTIONS_PROVIDERS: (typeof ReassignConnectionFinalizeExecution | typeof GetCanBeConnectedOutputByOutletExecution | typeof GetCanBeConnectedOutputByOutletValidator | typeof ReassignConnectionFinalizeValidator | typeof ReassignConnectionPreparationExecution | typeof ReassignConnectionPreparationValidator | typeof GetInputUnderPointerExecution | typeof GetInputUnderPointerValidator | typeof CreateConnectionFinalizeExecution | typeof CreateConnectionFinalizeValidator | typeof CreateConnectionDragHandlerExecution | typeof CreateConnectionFromOutletPreparationExecution | typeof CreateConnectionFromOutputPreparationExecution | typeof CreateConnectionFromOutputPreparationValidator | typeof CreateConnectionPreparationExecution | typeof CreateConnectionPreparationValidator)[];
4
+ export declare const CONNECTIONS_PROVIDERS: (typeof GetInputUnderPointerExecution | typeof GetInputUnderPointerValidator | typeof CreateConnectionFinalizeExecution | typeof CreateConnectionFinalizeValidator | typeof CreateConnectionDragHandlerExecution | typeof CreateConnectionFromOutletPreparationExecution | typeof GetCanBeConnectedOutputByOutletExecution | typeof GetCanBeConnectedOutputByOutletValidator | typeof CreateConnectionFromOutputPreparationExecution | typeof CreateConnectionFromOutputPreparationValidator | typeof CreateConnectionPreparationExecution | typeof CreateConnectionPreparationValidator | typeof ReassignConnectionFinalizeExecution | typeof ReassignConnectionFinalizeValidator | typeof ReassignConnectionPreparationExecution | typeof ReassignConnectionPreparationValidator)[];
@@ -0,0 +1,6 @@
1
+ import { IRect } from '@foblex/2d';
2
+ import { FNodeBase } from '../../f-node';
3
+ export interface INodeWithRect {
4
+ node: FNodeBase;
5
+ rect: IRect;
6
+ }
@@ -3,4 +3,5 @@ export * from './get-normalized-node-rect';
3
3
  export * from './get-normalized-parent-node-rect';
4
4
  export * from './get-parent-nodes';
5
5
  export * from './is-array-has-parent-node';
6
+ export * from './i-node-with-rect';
6
7
  export * from './providers';
@@ -3,12 +3,14 @@ import { FCreateConnectionEvent, FReassignConnectionEvent } from './connections'
3
3
  import { FSelectionChangeEvent } from './f-selection-change-event';
4
4
  import { FCreateNodeEvent } from '../f-external-item';
5
5
  import { DragAndDropBase, ICanRunOutsideAngular } from '@foblex/drag-toolkit';
6
+ import { FDropToGroupEvent } from './node';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare abstract class FDraggableBase extends DragAndDropBase {
8
9
  abstract fSelectionChange: EventEmitter<FSelectionChangeEvent>;
9
10
  abstract fCreateNode: EventEmitter<FCreateNodeEvent>;
10
11
  abstract fReassignConnection: EventEmitter<FReassignConnectionEvent>;
11
12
  abstract fCreateConnection: EventEmitter<FCreateConnectionEvent>;
13
+ abstract fDropToGroup: EventEmitter<FDropToGroupEvent>;
12
14
  protected constructor(ngZone: ICanRunOutsideAngular | undefined);
13
15
  static ɵfac: i0.ɵɵFactoryDeclaration<FDraggableBase, never>;
14
16
  static ɵdir: i0.ɵɵDirectiveDeclaration<FDraggableBase, never, never, {}, {}, never, never, false, never>;
@@ -2,6 +2,7 @@ import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit } from "@ang
2
2
  import { FDraggableBase } from './f-draggable-base';
3
3
  import { FComponentsStore } from '../f-storage';
4
4
  import { FDraggableDataContext } from './f-draggable-data-context';
5
+ import { FDropToGroupEvent } from './node';
5
6
  import { FCreateConnectionEvent, FReassignConnectionEvent } from './connections';
6
7
  import { FSelectionChangeEvent } from './f-selection-change-event';
7
8
  import { FMediator } from '@foblex/mediator';
@@ -22,6 +23,7 @@ export declare class FDraggableDirective extends FDraggableBase implements OnIni
22
23
  fCreateNode: EventEmitter<FCreateNodeEvent>;
23
24
  fReassignConnection: EventEmitter<FReassignConnectionEvent>;
24
25
  fCreateConnection: EventEmitter<FCreateConnectionEvent>;
26
+ fDropToGroup: EventEmitter<FDropToGroupEvent>;
25
27
  private plugins;
26
28
  constructor(elementReference: ElementRef<HTMLElement>, fDraggableDataContext: FDraggableDataContext, ngZone: ICanRunOutsideAngular, fComponentsStore: FComponentsStore, fMediator: FMediator, fBrowser: BrowserService);
27
29
  ngOnInit(): void;
@@ -37,5 +39,5 @@ export declare class FDraggableDirective extends FDraggableBase implements OnIni
37
39
  private emitSelectionChangeEvent;
38
40
  ngOnDestroy(): void;
39
41
  static ɵfac: i0.ɵɵFactoryDeclaration<FDraggableDirective, [null, null, { optional: true; }, null, null, null]>;
40
- static ɵdir: i0.ɵɵDirectiveDeclaration<FDraggableDirective, "f-flow[fDraggable]", ["fDraggable"], { "disabled": { "alias": "fDraggableDisabled"; "required": false; }; }, { "fSelectionChange": "fSelectionChange"; "fCreateNode": "fCreateNode"; "fReassignConnection": "fReassignConnection"; "fCreateConnection": "fCreateConnection"; }, ["plugins"], never, false, never>;
42
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FDraggableDirective, "f-flow[fDraggable]", ["fDraggable"], { "disabled": { "alias": "fDraggableDisabled"; "required": false; }; }, { "fSelectionChange": "fSelectionChange"; "fCreateNode": "fCreateNode"; "fReassignConnection": "fReassignConnection"; "fCreateConnection": "fCreateConnection"; "fDropToGroup": "fDropToGroup"; }, ["plugins"], never, false, never>;
41
43
  }
@@ -16,6 +16,7 @@ export declare abstract class ConnectionBaseDragHandler implements IDraggableIte
16
16
  initialize(): void;
17
17
  private getOutput;
18
18
  private getInput;
19
+ private connectorNotFoundPrefix;
19
20
  abstract move(difference: IPoint): void;
20
21
  protected getDifference(difference: IPoint, restrictions: INodeMoveRestrictions): IPoint;
21
22
  protected redrawConnection(line: ILine): void;
@@ -1,2 +1,5 @@
1
+ import { FNodeBase } from '../../../f-node';
1
2
  export declare class CreateMoveNodesDragModelFromSelectionRequest {
3
+ nodeWithDisabledSelection?: FNodeBase | undefined;
4
+ constructor(nodeWithDisabledSelection?: FNodeBase | undefined);
2
5
  }
@@ -2,4 +2,4 @@ import { CreateMoveNodesDragModelFromSelectionExecution } from './create-move-no
2
2
  import { GetNodeMoveRestrictionsExecution } from './domain/get-node-move-restrictions';
3
3
  import { PutInputConnectionHandlersToArrayExecution } from './domain/put-input-connection-handlers-to-array';
4
4
  import { PutOutputConnectionHandlersToArrayExecution } from './domain/put-output-connection-handlers-to-array';
5
- export declare const CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS: (typeof PutInputConnectionHandlersToArrayExecution | typeof PutOutputConnectionHandlersToArrayExecution | typeof GetNodeMoveRestrictionsExecution | typeof CreateMoveNodesDragModelFromSelectionExecution)[];
5
+ export declare const CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS: (typeof GetNodeMoveRestrictionsExecution | typeof PutInputConnectionHandlersToArrayExecution | typeof PutOutputConnectionHandlersToArrayExecution | typeof CreateMoveNodesDragModelFromSelectionExecution)[];
@@ -0,0 +1,7 @@
1
+ import { IPoint } from '@foblex/2d';
2
+ export declare class FDropToGroupEvent {
3
+ fTargetNode: string;
4
+ fNodes: string[];
5
+ fDropPosition: IPoint;
6
+ constructor(fTargetNode: string, fNodes: string[], fDropPosition: IPoint);
7
+ }
@@ -1,10 +1,14 @@
1
1
  export * from './create-move-nodes-drag-model-from-selection';
2
+ export * from './node-drag-to-parent-finalize';
3
+ export * from './node-drag-to-parent-preparation';
2
4
  export * from './node-move-preparation';
3
5
  export * from './node-move-finalize';
4
6
  export * from './connection.drag-handler';
5
7
  export * from './connection-base-drag-handler';
6
8
  export * from './connection-source.drag-handler';
7
9
  export * from './connection-target.drag-handler';
10
+ export * from './f-drop-to-group.event';
8
11
  export * from './node.drag-handler';
12
+ export * from './node-drag-to-parent.drag-handler';
9
13
  export * from './node-resize-by-child.drag-handler';
10
14
  export * from './providers';
@@ -0,0 +1,4 @@
1
+ export * from './providers';
2
+ export * from './node-drag-to-parent-finalize.execution';
3
+ export * from './node-drag-to-parent-finalize.request';
4
+ export * from './node-drag-to-parent-finalize.validator';
@@ -0,0 +1,17 @@
1
+ import { NodeDragToParentFinalizeRequest } from './node-drag-to-parent-finalize.request';
2
+ import { IExecution } from '@foblex/mediator';
3
+ import { FDraggableDataContext } from '../../f-draggable-data-context';
4
+ import { FComponentsStore } from '../../../f-storage';
5
+ import * as i0 from "@angular/core";
6
+ export declare class NodeDragToParentFinalizeExecution implements IExecution<NodeDragToParentFinalizeRequest, void> {
7
+ private fComponentsStore;
8
+ private fDraggableDataContext;
9
+ constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext);
10
+ handle(request: NodeDragToParentFinalizeRequest): void;
11
+ private emitDroppedChildrenEvent;
12
+ private getDragHandleItem;
13
+ private findDragHandleItem;
14
+ private getDraggedNodeIds;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<NodeDragToParentFinalizeExecution, never>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<NodeDragToParentFinalizeExecution>;
17
+ }
@@ -0,0 +1,5 @@
1
+ import { IPointerEvent } from '@foblex/drag-toolkit';
2
+ export declare class NodeDragToParentFinalizeRequest {
3
+ event: IPointerEvent;
4
+ constructor(event: IPointerEvent);
5
+ }
@@ -0,0 +1,11 @@
1
+ import { NodeDragToParentFinalizeRequest } from './node-drag-to-parent-finalize.request';
2
+ import { IValidator } from '@foblex/mediator';
3
+ import { FDraggableDataContext } from '../../f-draggable-data-context';
4
+ import * as i0 from "@angular/core";
5
+ export declare class NodeDragToParentFinalizeValidator implements IValidator<NodeDragToParentFinalizeRequest> {
6
+ private fDraggableDataContext;
7
+ constructor(fDraggableDataContext: FDraggableDataContext);
8
+ handle(request: NodeDragToParentFinalizeRequest): boolean;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<NodeDragToParentFinalizeValidator, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<NodeDragToParentFinalizeValidator>;
11
+ }
@@ -0,0 +1,3 @@
1
+ import { NodeDragToParentFinalizeExecution } from './node-drag-to-parent-finalize.execution';
2
+ import { NodeDragToParentFinalizeValidator } from './node-drag-to-parent-finalize.validator';
3
+ export declare const NODE_DRAG_TO_PARENT_FINALIZE_PROVIDERS: (typeof NodeDragToParentFinalizeExecution | typeof NodeDragToParentFinalizeValidator)[];
@@ -0,0 +1,4 @@
1
+ export * from './providers';
2
+ export * from './node-drag-to-parent-preparation.execution';
3
+ export * from './node-drag-to-parent-preparation.request';
4
+ export * from './node-drag-to-parent-preparation.validator';
@@ -0,0 +1,20 @@
1
+ import { NodeDragToParentPreparationRequest } from './node-drag-to-parent-preparation.request';
2
+ import { FMediator, IExecution } from '@foblex/mediator';
3
+ import { FComponentsStore } from '../../../f-storage';
4
+ import { FDraggableDataContext } from '../../f-draggable-data-context';
5
+ import * as i0 from "@angular/core";
6
+ export declare class NodeDragToParentPreparationExecution implements IExecution<NodeDragToParentPreparationRequest, void> {
7
+ private fMediator;
8
+ private fDraggableDataContext;
9
+ private fComponentsStore;
10
+ private get fNodes();
11
+ private get transform();
12
+ private get fCanvasPosition();
13
+ constructor(fMediator: FMediator, fDraggableDataContext: FDraggableDataContext, fComponentsStore: FComponentsStore);
14
+ handle(request: NodeDragToParentPreparationRequest): void;
15
+ private getNotDraggedNodesRects;
16
+ private getDraggedNodes;
17
+ private getNotDraggedNodes;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<NodeDragToParentPreparationExecution, never>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<NodeDragToParentPreparationExecution>;
20
+ }
@@ -0,0 +1,5 @@
1
+ import { IPointerEvent } from '@foblex/drag-toolkit';
2
+ export declare class NodeDragToParentPreparationRequest {
3
+ event: IPointerEvent;
4
+ constructor(event: IPointerEvent);
5
+ }
@@ -0,0 +1,11 @@
1
+ import { NodeDragToParentPreparationRequest } from './node-drag-to-parent-preparation.request';
2
+ import { IValidator } from '@foblex/mediator';
3
+ import { FDraggableDataContext } from '../../f-draggable-data-context';
4
+ import * as i0 from "@angular/core";
5
+ export declare class NodeDragToParentPreparationValidator implements IValidator<NodeDragToParentPreparationRequest> {
6
+ private fDraggableDataContext;
7
+ constructor(fDraggableDataContext: FDraggableDataContext);
8
+ handle(request: NodeDragToParentPreparationRequest): boolean;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<NodeDragToParentPreparationValidator, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<NodeDragToParentPreparationValidator>;
11
+ }
@@ -0,0 +1,3 @@
1
+ import { NodeDragToParentPreparationExecution } from './node-drag-to-parent-preparation.execution';
2
+ import { NodeDragToParentPreparationValidator } from './node-drag-to-parent-preparation.validator';
3
+ export declare const NODE_DRAG_TO_PARENT_PREPARATION_PROVIDERS: (typeof NodeDragToParentPreparationExecution | typeof NodeDragToParentPreparationValidator)[];
@@ -0,0 +1,21 @@
1
+ import { IPoint } from '@foblex/2d';
2
+ import { IDraggableItem } from '../i-draggable-item';
3
+ import { FComponentsStore } from '../../f-storage';
4
+ import { INodeWithRect } from '../domain';
5
+ import { FDraggableDataContext } from '../f-draggable-data-context';
6
+ import * as i0 from "@angular/core";
7
+ export declare class NodeDragToParentDragHandler implements IDraggableItem {
8
+ private fComponentsStore;
9
+ private fDraggableDataContext;
10
+ private notDraggedNodesRects;
11
+ private get transform();
12
+ private onPointerDownPosition;
13
+ fNodeWithRect: INodeWithRect | null;
14
+ constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, notDraggedNodesRects: INodeWithRect[]);
15
+ move(difference: IPoint): void;
16
+ private markIncludeNode;
17
+ private unmarkIncludeNode;
18
+ complete(): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<NodeDragToParentDragHandler, never>;
20
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NodeDragToParentDragHandler, never, never, {}, {}, never, never, false, never>;
21
+ }
@@ -10,6 +10,7 @@ export declare class NodeMoveFinalizeExecution implements IExecution<NodeMoveFin
10
10
  private get flowHost();
11
11
  constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, fMediator: FMediator);
12
12
  handle(request: NodeMoveFinalizeRequest): void;
13
+ private getItems;
13
14
  private getDifferenceBetweenPreparationAndFinalize;
14
15
  private getDifferenceWithLineAlignment;
15
16
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeMoveFinalizeExecution, never>;
@@ -1 +1 @@
1
- export declare const NODE_PROVIDERS: (typeof import("./create-move-nodes-drag-model-from-selection").PutInputConnectionHandlersToArrayExecution | typeof import("./create-move-nodes-drag-model-from-selection").PutOutputConnectionHandlersToArrayExecution | typeof import("./create-move-nodes-drag-model-from-selection").GetNodeMoveRestrictionsExecution | typeof import("./create-move-nodes-drag-model-from-selection").CreateMoveNodesDragModelFromSelectionExecution | typeof import("./node-move-preparation").NodeMovePreparationExecution | typeof import("./node-move-preparation").NodeMovePreparationValidator | typeof import("./node-move-finalize").NodeMoveFinalizeExecution | typeof import("./node-move-finalize").NodeMoveFinalizeValidator)[];
1
+ export declare const NODE_PROVIDERS: (typeof import("./create-move-nodes-drag-model-from-selection").GetNodeMoveRestrictionsExecution | typeof import("./create-move-nodes-drag-model-from-selection").PutInputConnectionHandlersToArrayExecution | typeof import("./create-move-nodes-drag-model-from-selection").PutOutputConnectionHandlersToArrayExecution | typeof import("./create-move-nodes-drag-model-from-selection").CreateMoveNodesDragModelFromSelectionExecution | typeof import("./node-move-finalize").NodeMoveFinalizeExecution | typeof import("./node-move-finalize").NodeMoveFinalizeValidator | typeof import("./node-move-preparation").NodeMovePreparationExecution | typeof import("./node-move-preparation").NodeMovePreparationValidator | typeof import("./node-drag-to-parent-preparation").NodeDragToParentPreparationExecution | typeof import("./node-drag-to-parent-preparation").NodeDragToParentPreparationValidator | typeof import("./node-drag-to-parent-finalize").NodeDragToParentFinalizeExecution | typeof import("./node-drag-to-parent-finalize").NodeDragToParentFinalizeValidator)[];
@@ -1 +1 @@
1
- export declare const F_DRAGGABLE_PROVIDERS: (typeof import("./connections").ReassignConnectionFinalizeExecution | typeof import("./canvas").CanvasMoveFinalizeExecution | typeof import("./canvas").CanvasMoveFinalizeValidator | typeof import("./canvas").CanvasMovePreparationExecution | typeof import("./canvas").CanvasMovePreparationValidator | typeof import("./connections").GetCanBeConnectedOutputByOutletExecution | typeof import("./connections").GetCanBeConnectedOutputByOutletValidator | typeof import("../f-external-item").ExternalItemFinalizeExecution | typeof import("../f-external-item").ExternalItemFinalizeValidator | typeof import("../f-external-item").ExternalItemPreparationExecution | typeof import("../f-external-item").ExternalItemPreparationValidator | typeof import("./connections").ReassignConnectionFinalizeValidator | typeof import("./connections").ReassignConnectionPreparationExecution | typeof import("./connections").ReassignConnectionPreparationValidator | typeof import("./connections").GetInputUnderPointerExecution | typeof import("./connections").GetInputUnderPointerValidator | typeof import("./connections").CreateConnectionFinalizeExecution | typeof import("./connections").CreateConnectionFinalizeValidator | typeof import("./connections").CreateConnectionDragHandlerExecution | typeof import("./connections").CreateConnectionFromOutletPreparationExecution | typeof import("./connections").CreateConnectionFromOutputPreparationExecution | typeof import("./connections").CreateConnectionFromOutputPreparationValidator | typeof import("./connections").CreateConnectionPreparationExecution | typeof import("./connections").CreateConnectionPreparationValidator | typeof import("./domain").GetNodePaddingExecution | typeof import("./domain").GetNormalizedNodeRectExecution | typeof import("./domain").GetNormalizedParentNodeRectExecution | typeof import("./domain").GetParentNodesExecution | typeof import("./domain").IsArrayHasParentNodeExecution | typeof import("./node").PutInputConnectionHandlersToArrayExecution | typeof import("./node").PutOutputConnectionHandlersToArrayExecution | typeof import("./node").GetNodeMoveRestrictionsExecution | typeof import("./node").CreateMoveNodesDragModelFromSelectionExecution | typeof import("./node").NodeMovePreparationExecution | typeof import("./node").NodeMovePreparationValidator | typeof import("./node").NodeMoveFinalizeExecution | typeof import("./node").NodeMoveFinalizeValidator | typeof import("./node-resize").ApplyChildResizeRestrictionsExecution | typeof import("./node-resize").ApplyParentResizeRestrictionsExecution | typeof import("./node-resize").CalculateChangedPositionExecution | typeof import("./node-resize").CalculateChangedSizeExecution | typeof import("./node-resize").GetNormalizedChildrenNodesRectExecution | typeof import("./node-resize").GetNodeResizeRestrictionsExecution | typeof import("./node-resize").NodeResizeFinalizeExecution | typeof import("./node-resize").NodeResizeFinalizeValidator | typeof import("./node-resize").NodeResizePreparationExecution | typeof import("./node-resize").NodeResizePreparationValidator | typeof import("./single-select").SingleSelectExecution | typeof import("./single-select").SingleSelectValidator | typeof import("../f-minimap/domain").CalculateFlowPointFromMinimapPointExecution | typeof import("../f-minimap/domain").MinimapDragFinalizeExecution | typeof import("../f-minimap/domain").MinimapDragFinalizeValidator | typeof import("../f-minimap/domain").MinimapDragPreparationExecution | typeof import("../f-minimap/domain").MinimapDragPreparationValidator | typeof import("../f-selection-area").SelectionAreaFinalizeExecution | typeof import("../f-selection-area").SelectionAreaFinalizeValidator | typeof import("../f-selection-area").SelectionAreaPreparationExecution | typeof import("../f-selection-area").SelectionAreaPreparationValidator)[];
1
+ export declare const F_DRAGGABLE_PROVIDERS: (typeof import("./canvas").CanvasMoveFinalizeExecution | typeof import("./canvas").CanvasMoveFinalizeValidator | typeof import("./canvas").CanvasMovePreparationExecution | typeof import("./canvas").CanvasMovePreparationValidator | typeof import("./connections").GetInputUnderPointerExecution | typeof import("./connections").GetInputUnderPointerValidator | typeof import("./connections").CreateConnectionFinalizeExecution | typeof import("./connections").CreateConnectionFinalizeValidator | typeof import("./connections").CreateConnectionDragHandlerExecution | typeof import("./connections").CreateConnectionFromOutletPreparationExecution | typeof import("./connections").GetCanBeConnectedOutputByOutletExecution | typeof import("./connections").GetCanBeConnectedOutputByOutletValidator | typeof import("./connections").CreateConnectionFromOutputPreparationExecution | typeof import("./connections").CreateConnectionFromOutputPreparationValidator | typeof import("./connections").CreateConnectionPreparationExecution | typeof import("./connections").CreateConnectionPreparationValidator | typeof import("./connections").ReassignConnectionFinalizeExecution | typeof import("./connections").ReassignConnectionFinalizeValidator | typeof import("./connections").ReassignConnectionPreparationExecution | typeof import("./connections").ReassignConnectionPreparationValidator | typeof import("./domain").GetNodePaddingExecution | typeof import("./domain").GetNormalizedNodeRectExecution | typeof import("./domain").GetNormalizedParentNodeRectExecution | typeof import("./domain").GetParentNodesExecution | typeof import("./domain").IsArrayHasParentNodeExecution | typeof import("./single-select").SingleSelectExecution | typeof import("./single-select").SingleSelectValidator | typeof import("../f-external-item").ExternalItemFinalizeExecution | typeof import("../f-external-item").ExternalItemFinalizeValidator | typeof import("../f-external-item").ExternalItemPreparationExecution | typeof import("../f-external-item").ExternalItemPreparationValidator | typeof import("./node").GetNodeMoveRestrictionsExecution | typeof import("./node").PutInputConnectionHandlersToArrayExecution | typeof import("./node").PutOutputConnectionHandlersToArrayExecution | typeof import("./node").CreateMoveNodesDragModelFromSelectionExecution | typeof import("./node").NodeMoveFinalizeExecution | typeof import("./node").NodeMoveFinalizeValidator | typeof import("./node").NodeMovePreparationExecution | typeof import("./node").NodeMovePreparationValidator | typeof import("./node").NodeDragToParentPreparationExecution | typeof import("./node").NodeDragToParentPreparationValidator | typeof import("./node").NodeDragToParentFinalizeExecution | typeof import("./node").NodeDragToParentFinalizeValidator | typeof import("./node-resize").ApplyChildResizeRestrictionsExecution | typeof import("./node-resize").ApplyParentResizeRestrictionsExecution | typeof import("./node-resize").CalculateChangedPositionExecution | typeof import("./node-resize").CalculateChangedSizeExecution | typeof import("./node-resize").GetNormalizedChildrenNodesRectExecution | typeof import("./node-resize").GetNodeResizeRestrictionsExecution | typeof import("./node-resize").NodeResizeFinalizeExecution | typeof import("./node-resize").NodeResizeFinalizeValidator | typeof import("./node-resize").NodeResizePreparationExecution | typeof import("./node-resize").NodeResizePreparationValidator | typeof import("../f-selection-area").SelectionAreaFinalizeExecution | typeof import("../f-selection-area").SelectionAreaFinalizeValidator | typeof import("../f-selection-area").SelectionAreaPreparationExecution | typeof import("../f-selection-area").SelectionAreaPreparationValidator | typeof import("../f-minimap/domain").CalculateFlowPointFromMinimapPointExecution | typeof import("../f-minimap/domain").MinimapDragFinalizeExecution | typeof import("../f-minimap/domain").MinimapDragFinalizeValidator | typeof import("../f-minimap/domain").MinimapDragPreparationExecution | typeof import("../f-minimap/domain").MinimapDragPreparationValidator)[];
@@ -35,5 +35,7 @@ export declare abstract class FNodeBase extends MIXIN_BASE implements IHasStateC
35
35
  redraw(): void;
36
36
  updatePosition(position: IPoint): void;
37
37
  updateSize(value: ISize): void;
38
+ setClass(className: string): void;
39
+ removeClass(className: string): void;
38
40
  }
39
41
  export {};