@foblex/flow 1.5.4 → 1.5.6

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 (127) hide show
  1. package/domain/clear-selection/clear-selection.handler.d.ts +11 -0
  2. package/domain/clear-selection/clear-selection.request.d.ts +2 -0
  3. package/domain/clear-selection/index.d.ts +2 -0
  4. package/domain/get-connection-vector/get-connection-vector.handler.d.ts +1 -1
  5. package/domain/get-element-rect-in-flow/get-element-rect-in-flow-request.d.ts +4 -0
  6. package/domain/{get-element-rect-in-flow.handler.d.ts → get-element-rect-in-flow/get-element-rect-in-flow.handler.d.ts} +4 -3
  7. package/domain/get-element-rect-in-flow/index.d.ts +2 -0
  8. package/domain/get-input-rect-in-flow/get-input-rect-in-flow-request.d.ts +4 -0
  9. package/domain/get-input-rect-in-flow/get-input-rect-in-flow-response.d.ts +7 -0
  10. package/domain/get-input-rect-in-flow/get-input-rect-in-flow.handler.d.ts +14 -0
  11. package/domain/get-input-rect-in-flow/index.d.ts +3 -0
  12. package/domain/get-nodes-rect/get-nodes-rect.handler.d.ts +11 -0
  13. package/domain/get-nodes-rect/get-nodes-rect.request.d.ts +2 -0
  14. package/domain/get-nodes-rect/index.d.ts +2 -0
  15. package/domain/get-output-rect-in-flow/get-output-rect-in-flow.handler.d.ts +3 -3
  16. package/domain/get-selection/get-selection.handler.d.ts +11 -0
  17. package/domain/get-selection/get-selection.request.d.ts +2 -0
  18. package/domain/get-selection/index.d.ts +2 -0
  19. package/domain/index.d.ts +6 -5
  20. package/domain/providers.d.ts +7 -5
  21. package/domain/redraw-connections/redraw-connections.handler.d.ts +1 -3
  22. package/domain/select-all/index.d.ts +2 -0
  23. package/domain/{select-all.handler.d.ts → select-all/select-all.handler.d.ts} +5 -4
  24. package/domain/select-all/select-all.request.d.ts +2 -0
  25. package/errors/conflict-error.d.ts +6 -0
  26. package/errors/create-error-class.d.ts +1 -0
  27. package/errors/errors.d.ts +3 -0
  28. package/errors/index.d.ts +4 -0
  29. package/errors/not-found-error.d.ts +6 -0
  30. package/esm2022/domain/clear-selection/clear-selection.handler.mjs +28 -0
  31. package/esm2022/domain/clear-selection/clear-selection.request.mjs +3 -0
  32. package/esm2022/domain/clear-selection/index.mjs +3 -0
  33. package/esm2022/domain/get-connection-vector/get-connection-vector.handler.mjs +3 -3
  34. package/esm2022/domain/get-element-rect-in-flow/get-element-rect-in-flow-request.mjs +6 -0
  35. package/esm2022/domain/get-element-rect-in-flow/get-element-rect-in-flow.handler.mjs +35 -0
  36. package/esm2022/domain/get-element-rect-in-flow/index.mjs +3 -0
  37. package/esm2022/domain/get-input-rect-in-flow/get-input-rect-in-flow-request.mjs +6 -0
  38. package/esm2022/domain/get-input-rect-in-flow/get-input-rect-in-flow-response.mjs +7 -0
  39. package/esm2022/domain/get-input-rect-in-flow/get-input-rect-in-flow.handler.mjs +34 -0
  40. package/esm2022/domain/get-input-rect-in-flow/index.mjs +4 -0
  41. package/esm2022/domain/get-nodes-rect/get-nodes-rect.handler.mjs +30 -0
  42. package/esm2022/domain/get-nodes-rect/get-nodes-rect.request.mjs +3 -0
  43. package/esm2022/domain/get-nodes-rect/index.mjs +3 -0
  44. package/esm2022/domain/get-output-rect-in-flow/get-output-rect-in-flow.handler.mjs +9 -8
  45. package/esm2022/domain/get-selection/get-selection.handler.mjs +35 -0
  46. package/esm2022/domain/get-selection/get-selection.request.mjs +3 -0
  47. package/esm2022/domain/get-selection/index.mjs +3 -0
  48. package/esm2022/domain/index.mjs +7 -6
  49. package/esm2022/domain/providers.mjs +12 -8
  50. package/esm2022/domain/redraw-connections/redraw-connections.handler.mjs +8 -9
  51. package/esm2022/domain/select-all/index.mjs +3 -0
  52. package/esm2022/domain/select-all/select-all.handler.mjs +38 -0
  53. package/esm2022/domain/select-all/select-all.request.mjs +3 -0
  54. package/esm2022/errors/conflict-error.mjs +7 -0
  55. package/esm2022/errors/create-error-class.mjs +11 -0
  56. package/esm2022/errors/errors.mjs +12 -0
  57. package/esm2022/errors/index.mjs +5 -0
  58. package/esm2022/errors/not-found-error.mjs +7 -0
  59. package/esm2022/f-canvas/f-canvas.component.mjs +15 -12
  60. package/esm2022/f-connection/common/e-f-connection-behavior.mjs +2 -1
  61. package/esm2022/f-connectors/f-connector-base.mjs +2 -1
  62. package/esm2022/f-connectors/f-node-output/f-node-output-base.mjs +2 -2
  63. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +9 -2
  64. package/esm2022/f-draggable/connections/create-connection/create-connection.on-pointer-up.mjs +3 -3
  65. package/esm2022/f-draggable/connections/create-connection/create-connection.prepare-drag-sequence.mjs +9 -10
  66. package/esm2022/f-draggable/connections/find-inputs-under-pointer/find-inputs-under-pointer.handler.mjs +3 -3
  67. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.mjs +5 -6
  68. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.prepare-drag-sequence.mjs +2 -2
  69. package/esm2022/f-draggable/external-item/external-item.drag-handler.mjs +1 -4
  70. package/esm2022/f-draggable/external-item/external-item.on-pointer-up.mjs +9 -8
  71. package/esm2022/f-draggable/external-item/external-item.prepare-drag-sequence.mjs +4 -1
  72. package/esm2022/f-draggable/f-draggable-base.mjs +148 -7
  73. package/esm2022/f-draggable/f-draggable.directive.mjs +19 -24
  74. package/esm2022/f-draggable/f-selection-change-event.mjs +7 -0
  75. package/esm2022/f-draggable/index.mjs +2 -2
  76. package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +4 -5
  77. package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +4 -5
  78. package/esm2022/f-draggable/node/connection.drag-handler.mjs +4 -5
  79. package/esm2022/f-draggable/node/domain/is-connection-under-node/is-connection-under-node.handler.mjs +10 -7
  80. package/esm2022/f-draggable/node/node.prepare-drag-sequence.mjs +8 -9
  81. package/esm2022/f-draggable/selection-area/get-can-be-selected-items/get-can-be-selected-items.handler.mjs +9 -8
  82. package/esm2022/f-draggable/single-select/index.mjs +1 -2
  83. package/esm2022/f-draggable/single-select/single-select.on-pointer-down.mjs +2 -2
  84. package/esm2022/f-external-item/f-external-item-base.mjs +1 -1
  85. package/esm2022/f-external-item/f-external-item.directive.mjs +10 -6
  86. package/esm2022/f-flow/f-flow.component.mjs +24 -12
  87. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +9 -8
  88. package/f-canvas/f-canvas.component.d.ts +3 -5
  89. package/f-connection/common/e-f-connection-behavior.d.ts +1 -0
  90. package/f-connectors/f-connector-base.d.ts +1 -0
  91. package/f-connectors/f-node-output/f-node-output-base.d.ts +1 -0
  92. package/f-connectors/f-node-output/f-node-output.directive.d.ts +3 -1
  93. package/f-draggable/connections/create-connection/create-connection.prepare-drag-sequence.d.ts +1 -3
  94. package/f-draggable/connections/providers.d.ts +1 -1
  95. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +1 -3
  96. package/f-draggable/external-item/external-item.drag-handler.d.ts +1 -2
  97. package/f-draggable/external-item/external-item.on-pointer-up.d.ts +3 -3
  98. package/f-draggable/f-draggable-base.d.ts +38 -8
  99. package/f-draggable/f-draggable.directive.d.ts +6 -4
  100. package/f-draggable/index.d.ts +1 -1
  101. package/f-draggable/node/connection-source.drag-handler.d.ts +1 -3
  102. package/f-draggable/node/connection-target.drag-handler.d.ts +1 -3
  103. package/f-draggable/node/connection.drag-handler.d.ts +1 -3
  104. package/f-draggable/node/domain/is-connection-under-node/is-connection-under-node.handler.d.ts +4 -3
  105. package/f-draggable/node/node.prepare-drag-sequence.d.ts +2 -3
  106. package/f-draggable/node/providers.d.ts +1 -1
  107. package/f-draggable/selection-area/get-can-be-selected-items/get-can-be-selected-items.handler.d.ts +3 -3
  108. package/f-draggable/single-select/index.d.ts +0 -1
  109. package/f-external-item/f-external-item-base.d.ts +7 -6
  110. package/f-external-item/f-external-item.directive.d.ts +6 -5
  111. package/f-flow/f-flow.component.d.ts +7 -4
  112. package/f-line-alignment/f-line-alignment.component.d.ts +3 -3
  113. package/fesm2022/foblex-flow.mjs +1735 -1609
  114. package/fesm2022/foblex-flow.mjs.map +1 -1
  115. package/package.json +1 -1
  116. package/domain/errors.d.ts +0 -3
  117. package/domain/get-all-nodes-rect.handler.d.ts +0 -10
  118. package/domain/get-input-rect-in-flow.handler.d.ts +0 -19
  119. package/esm2022/domain/errors.mjs +0 -10
  120. package/esm2022/domain/get-all-nodes-rect.handler.mjs +0 -23
  121. package/esm2022/domain/get-element-rect-in-flow.handler.mjs +0 -28
  122. package/esm2022/domain/get-input-rect-in-flow.handler.mjs +0 -25
  123. package/esm2022/domain/select-all.handler.mjs +0 -31
  124. package/esm2022/f-draggable/i-drag-and-drop-base.mjs +0 -147
  125. package/esm2022/f-draggable/single-select/f-selection-change-event.mjs +0 -7
  126. package/f-draggable/i-drag-and-drop-base.d.ts +0 -34
  127. /package/f-draggable/{single-select/f-selection-change-event.d.ts → f-selection-change-event.d.ts} +0 -0
@@ -2,10 +2,11 @@ import { Component } from '@angular/core';
2
2
  import { RectExtensions, SizeExtensions } from '@foblex/core';
3
3
  import { LineService, NearestCoordinateFinder } from './domain';
4
4
  import { F_LINE_ALIGNMENT, FLineAlignmentBase } from './f-line-alignment-base';
5
+ import { GetElementRectInFlowRequest } from '../domain';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../f-components-store";
7
8
  import * as i2 from "../f-draggable";
8
- import * as i3 from "../domain";
9
+ import * as i3 from "../f-mediator";
9
10
  export class FLineAlignmentComponent extends FLineAlignmentBase {
10
11
  get hostElement() {
11
12
  return this.elementReference.nativeElement;
@@ -16,12 +17,12 @@ export class FLineAlignmentComponent extends FLineAlignmentBase {
16
17
  get flowHost() {
17
18
  return this.fComponentsStore.fFlow.hostElement;
18
19
  }
19
- constructor(elementReference, fComponentsStore, fDraggableDataContext, getElementRectInFlowHandler) {
20
+ constructor(elementReference, fComponentsStore, fDraggableDataContext, fMediator) {
20
21
  super();
21
22
  this.elementReference = elementReference;
22
23
  this.fComponentsStore = fComponentsStore;
23
24
  this.fDraggableDataContext = fDraggableDataContext;
24
- this.getElementRectInFlowHandler = getElementRectInFlowHandler;
25
+ this.fMediator = fMediator;
25
26
  this.size = SizeExtensions.initialize();
26
27
  this.draggedNodeRect = RectExtensions.initialize();
27
28
  this.rects = [];
@@ -34,14 +35,14 @@ export class FLineAlignmentComponent extends FLineAlignmentBase {
34
35
  this.size = this.flowHost.getBoundingClientRect();
35
36
  this.rects = [];
36
37
  const draggedNodeRects = currentNodes.map((x) => {
37
- return this.getElementRectInFlowHandler.handle(x.hostElement);
38
+ return this.fMediator.send(new GetElementRectInFlowRequest(x.hostElement));
38
39
  });
39
40
  this.draggedNodeRect = RectExtensions.union(draggedNodeRects);
40
41
  const allNodesExcludeCurrents = allNodes.filter((x) => {
41
42
  return !currentNodes.includes(x);
42
43
  });
43
44
  this.rects = allNodesExcludeCurrents.map((x) => {
44
- return this.getElementRectInFlowHandler.handle(x.hostElement);
45
+ return this.fMediator.send(new GetElementRectInFlowRequest(x.hostElement));
45
46
  });
46
47
  }
47
48
  handle(difference) {
@@ -74,7 +75,7 @@ export class FLineAlignmentComponent extends FLineAlignmentBase {
74
75
  this.lineService.hideVerticalLine();
75
76
  this.lineService.hideHorizontalLine();
76
77
  }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FLineAlignmentComponent, deps: [{ token: i0.ElementRef }, { token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }, { token: i3.GetElementRectInFlowHandler }], target: i0.ɵɵFactoryTarget.Component }); }
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FLineAlignmentComponent, deps: [{ token: i0.ElementRef }, { token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }, { token: i3.FFlowMediator }], target: i0.ɵɵFactoryTarget.Component }); }
78
79
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: FLineAlignmentComponent, selector: "f-line-alignment", host: { classAttribute: "f-line-alignment f-component" }, providers: [
79
80
  { provide: F_LINE_ALIGNMENT, useExisting: FLineAlignmentComponent }
80
81
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "", isInline: true, styles: [":host{display:block;position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}\n"] }); }
@@ -86,5 +87,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
86
87
  }, providers: [
87
88
  { provide: F_LINE_ALIGNMENT, useExisting: FLineAlignmentComponent }
88
89
  ], styles: [":host{display:block;position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}\n"] }]
89
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.GetElementRectInFlowHandler }] });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtbGluZS1hbGlnbm1lbnQvZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUF5QyxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JHLE9BQU8sRUFBd0IsV0FBVyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQWtCL0UsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGtCQUFrQjtJQUU3RCxJQUFvQixXQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBVUQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxTQUFTLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUNZLGdCQUF5QyxFQUN6QyxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLDJCQUF3RDtRQUVsRSxLQUFLLEVBQUUsQ0FBQztRQUxFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFDekMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFsQjVELFNBQUksR0FBVSxjQUFjLENBQUMsVUFBVSxFQUFFLENB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T0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVlLFFBQVE7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN4QyxDQUFDOzhHQXBGVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixxR0FKdkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUU7U0FDcEUsMkVBUlMsRUFBRTs7MkZBVUQsdUJBQXVCO2tCQVpuQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQixFQUFFLFlBRUYsWUFBWSxRQUNoQjt3QkFDSixPQUFPLEVBQUUsOEJBQThCO3FCQUN4QyxhQUNVO3dCQUNULEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcseUJBQXlCLEVBQUU7cUJBQ3BFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQb2ludCwgSVJlY3QsIElTaXplLCBJVHJhbnNmb3JtTW9kZWwsIFJlY3RFeHRlbnNpb25zLCBTaXplRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBJTGluZUFsaWdubWVudFJlc3VsdCwgTGluZVNlcnZpY2UsIE5lYXJlc3RDb29yZGluYXRlRmluZGVyIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRl9MSU5FX0FMSUdOTUVOVCwgRkxpbmVBbGlnbm1lbnRCYXNlIH0gZnJvbSAnLi9mLWxpbmUtYWxpZ25tZW50LWJhc2UnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uL2YtY29tcG9uZW50cy1zdG9yZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi9mLWRyYWdnYWJsZSc7XG5pbXBvcnQgeyBHZXRFbGVtZW50UmVjdEluRmxvd0hhbmRsZXIgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImYtbGluZS1hbGlnbm1lbnRcIixcbiAgdGVtcGxhdGU6IFwiXCIsXG4gIHN0eWxlVXJsczogWyBcIi4vZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQuc2Nzc1wiIF0sXG4gIGV4cG9ydEFzOiBcImZDb21wb25lbnRcIixcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLWxpbmUtYWxpZ25tZW50IGYtY29tcG9uZW50J1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfTElORV9BTElHTk1FTlQsIHVzZUV4aXN0aW5nOiBGTGluZUFsaWdubWVudENvbXBvbmVudCB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZMaW5lQWxpZ25tZW50Q29tcG9uZW50IGV4dGVuZHMgRkxpbmVBbGlnbm1lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGxpbmVTZXJ2aWNlOiBMaW5lU2VydmljZTtcblxuICBwcml2YXRlIHNpemU6IElTaXplID0gU2l6ZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByaXZhdGUgZHJhZ2dlZE5vZGVSZWN0OiBJUmVjdCA9IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIHJlY3RzOiBJUmVjdFtdID0gW107XG5cbiAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBwcml2YXRlIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBnZXRFbGVtZW50UmVjdEluRmxvd0hhbmRsZXI6IEdldEVsZW1lbnRSZWN0SW5GbG93SGFuZGxlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGluZVNlcnZpY2UgPSBuZXcgTGluZVNlcnZpY2UodGhpcy5ob3N0RWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZkxpbmVBbGlnbm1lbnQgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGluaXRpYWxpemUoYWxsTm9kZXM6IEZOb2RlQmFzZVtdLCBjdXJyZW50Tm9kZXM6IEZOb2RlQmFzZVtdKTogdm9pZCB7XG4gICAgdGhpcy5zaXplID0gdGhpcy5mbG93SG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLnJlY3RzID0gW107XG4gICAgY29uc3QgZHJhZ2dlZE5vZGVSZWN0cyA9IGN1cnJlbnROb2Rlcy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdldEVsZW1lbnRSZWN0SW5GbG93SGFuZGxlci5oYW5kbGUoeC5ob3N0RWxlbWVudCk7XG4gICAgfSk7XG4gICAgdGhpcy5kcmFnZ2VkTm9kZVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy51bmlvbihkcmFnZ2VkTm9kZVJlY3RzKTtcblxuICAgIGNvbnN0IGFsbE5vZGVzRXhjbHVkZUN1cnJlbnRzID0gYWxsTm9kZXMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gIWN1cnJlbnROb2Rlcy5pbmNsdWRlcyh4KTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVjdHMgPSBhbGxOb2Rlc0V4Y2x1ZGVDdXJyZW50cy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdldEVsZW1lbnRSZWN0SW5GbG93SGFuZGxlci5oYW5kbGUoeC5ob3N0RWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaGFuZGxlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuZHJhd0ludGVyc2VjdGluZ0xpbmVzKGRpZmZlcmVuY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmF3SW50ZXJzZWN0aW5nTGluZXMoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgaW50ZXJzZWN0ID0gdGhpcy5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gICAgaWYgKGludGVyc2VjdC54UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuZHJhd1ZlcnRpY2FsTGluZShpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSwgdGhpcy5zaXplLCB0aGlzLnRyYW5zZm9ybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuaGlkZVZlcnRpY2FsTGluZSgpO1xuICAgIH1cbiAgICBpZiAoaW50ZXJzZWN0LnlSZXN1bHQudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5saW5lU2VydmljZS5kcmF3SG9yaXpvbnRhbExpbmUoaW50ZXJzZWN0LnlSZXN1bHQudmFsdWUsIHRoaXMuc2l6ZSwgdGhpcy50cmFuc2Zvcm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVIb3Jpem9udGFsTGluZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZTogSVBvaW50KTogSUxpbmVBbGlnbm1lbnRSZXN1bHQge1xuICAgIGNvbnN0IHJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5hZGRQb2ludCh0aGlzLmRyYWdnZWROb2RlUmVjdCwgZGlmZmVyZW5jZSk7XG4gICAgY29uc3QgZmluZGVyID0gbmV3IE5lYXJlc3RDb29yZGluYXRlRmluZGVyKHRoaXMucmVjdHMsIHJlY3QpO1xuICAgIGNvbnN0IHhSZXN1bHQgPSBmaW5kZXIuZmluZE5lYXJlc3RDb29yZGluYXRlQnlYKCk7XG4gICAgY29uc3QgeVJlc3VsdCA9IGZpbmRlci5maW5kTmVhcmVzdENvb3JkaW5hdGVCeVkoKTtcblxuICAgIGNvbnN0IHJlc3VsdDogSUxpbmVBbGlnbm1lbnRSZXN1bHQgPSB7IHhSZXN1bHQsIHlSZXN1bHQgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbXBsZXRlKCk6IHZvaWQge1xuICAgIHRoaXMubGluZVNlcnZpY2UuaGlkZVZlcnRpY2FsTGluZSgpO1xuICAgIHRoaXMubGluZVNlcnZpY2UuaGlkZUhvcml6b250YWxMaW5lKCk7XG4gIH1cbn1cbiJdfQ==
90
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.FFlowMediator }] });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtbGluZS1hbGlnbm1lbnQvZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUF5QyxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JHLE9BQU8sRUFBd0IsV0FBVyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFjeEQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGtCQUFrQjtJQUU3RCxJQUFvQixXQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBVUQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxTQUFTLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUNZLGdCQUF5QyxFQUN6QyxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFNBQXdCO1FBRWxDLEtBQUssRUFBRSxDQUFDO1FBTEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQUN6QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQWxC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d0JBQXdCLEVBQUUsQ0FBQztRQUVsRCxNQUFNLE1BQU0sR0FBeUIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDMUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVlLFFBQVE7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN4QyxDQUFDOzhHQXBGVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixxR0FKdkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUU7U0FDcEUsMkVBUlMsRUFBRTs7MkZBVUQsdUJBQXVCO2tCQVpuQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQixFQUFFLFlBRUYsWUFBWSxRQUNoQjt3QkFDSixPQUFPLEVBQUUsOEJBQThCO3FCQUN4QyxhQUNVO3dCQUNULEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcseUJBQXlCLEVBQUU7cUJBQ3BFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQb2ludCwgSVJlY3QsIElTaXplLCBJVHJhbnNmb3JtTW9kZWwsIFJlY3RFeHRlbnNpb25zLCBTaXplRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBJTGluZUFsaWdubWVudFJlc3VsdCwgTGluZVNlcnZpY2UsIE5lYXJlc3RDb29yZGluYXRlRmluZGVyIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRl9MSU5FX0FMSUdOTUVOVCwgRkxpbmVBbGlnbm1lbnRCYXNlIH0gZnJvbSAnLi9mLWxpbmUtYWxpZ25tZW50LWJhc2UnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uL2YtY29tcG9uZW50cy1zdG9yZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi9mLWRyYWdnYWJsZSc7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi9mLW5vZGUnO1xuaW1wb3J0IHsgRkZsb3dNZWRpYXRvciB9IGZyb20gJy4uL2YtbWVkaWF0b3InO1xuaW1wb3J0IHsgR2V0RWxlbWVudFJlY3RJbkZsb3dSZXF1ZXN0IH0gZnJvbSAnLi4vZG9tYWluJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImYtbGluZS1hbGlnbm1lbnRcIixcbiAgdGVtcGxhdGU6IFwiXCIsXG4gIHN0eWxlVXJsczogWyBcIi4vZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQuc2Nzc1wiIF0sXG4gIGV4cG9ydEFzOiBcImZDb21wb25lbnRcIixcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLWxpbmUtYWxpZ25tZW50IGYtY29tcG9uZW50J1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfTElORV9BTElHTk1FTlQsIHVzZUV4aXN0aW5nOiBGTGluZUFsaWdubWVudENvbXBvbmVudCB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZMaW5lQWxpZ25tZW50Q29tcG9uZW50IGV4dGVuZHMgRkxpbmVBbGlnbm1lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGxpbmVTZXJ2aWNlOiBMaW5lU2VydmljZTtcblxuICBwcml2YXRlIHNpemU6IElTaXplID0gU2l6ZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByaXZhdGUgZHJhZ2dlZE5vZGVSZWN0OiBJUmVjdCA9IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIHJlY3RzOiBJUmVjdFtdID0gW107XG5cbiAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBwcml2YXRlIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZGbG93TWVkaWF0b3IsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5saW5lU2VydmljZSA9IG5ldyBMaW5lU2VydmljZSh0aGlzLmhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5mTGluZUFsaWdubWVudCA9IHRoaXM7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW5pdGlhbGl6ZShhbGxOb2RlczogRk5vZGVCYXNlW10sIGN1cnJlbnROb2RlczogRk5vZGVCYXNlW10pOiB2b2lkIHtcbiAgICB0aGlzLnNpemUgPSB0aGlzLmZsb3dIb3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMucmVjdHMgPSBbXTtcbiAgICBjb25zdCBkcmFnZ2VkTm9kZVJlY3RzID0gY3VycmVudE5vZGVzLm1hcCgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBHZXRFbGVtZW50UmVjdEluRmxvd1JlcXVlc3QoeC5ob3N0RWxlbWVudCkpO1xuICAgIH0pO1xuICAgIHRoaXMuZHJhZ2dlZE5vZGVSZWN0ID0gUmVjdEV4dGVuc2lvbnMudW5pb24oZHJhZ2dlZE5vZGVSZWN0cyk7XG5cbiAgICBjb25zdCBhbGxOb2Rlc0V4Y2x1ZGVDdXJyZW50cyA9IGFsbE5vZGVzLmZpbHRlcigoeCkgPT4ge1xuICAgICAgcmV0dXJuICFjdXJyZW50Tm9kZXMuaW5jbHVkZXMoeCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlY3RzID0gYWxsTm9kZXNFeGNsdWRlQ3VycmVudHMubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJUmVjdD4obmV3IEdldEVsZW1lbnRSZWN0SW5GbG93UmVxdWVzdCh4Lmhvc3RFbGVtZW50KSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaGFuZGxlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuZHJhd0ludGVyc2VjdGluZ0xpbmVzKGRpZmZlcmVuY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmF3SW50ZXJzZWN0aW5nTGluZXMoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgaW50ZXJzZWN0ID0gdGhpcy5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gICAgaWYgKGludGVyc2VjdC54UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuZHJhd1ZlcnRpY2FsTGluZShpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSwgdGhpcy5zaXplLCB0aGlzLnRyYW5zZm9ybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuaGlkZVZlcnRpY2FsTGluZSgpO1xuICAgIH1cbiAgICBpZiAoaW50ZXJzZWN0LnlSZXN1bHQudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5saW5lU2VydmljZS5kcmF3SG9yaXpvbnRhbExpbmUoaW50ZXJzZWN0LnlSZXN1bHQudmFsdWUsIHRoaXMuc2l6ZSwgdGhpcy50cmFuc2Zvcm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVIb3Jpem9udGFsTGluZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZTogSVBvaW50KTogSUxpbmVBbGlnbm1lbnRSZXN1bHQge1xuICAgIGNvbnN0IHJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5hZGRQb2ludCh0aGlzLmRyYWdnZWROb2RlUmVjdCwgZGlmZmVyZW5jZSk7XG4gICAgY29uc3QgZmluZGVyID0gbmV3IE5lYXJlc3RDb29yZGluYXRlRmluZGVyKHRoaXMucmVjdHMsIHJlY3QpO1xuICAgIGNvbnN0IHhSZXN1bHQgPSBmaW5kZXIuZmluZE5lYXJlc3RDb29yZGluYXRlQnlYKCk7XG4gICAgY29uc3QgeVJlc3VsdCA9IGZpbmRlci5maW5kTmVhcmVzdENvb3JkaW5hdGVCeVkoKTtcblxuICAgIGNvbnN0IHJlc3VsdDogSUxpbmVBbGlnbm1lbnRSZXN1bHQgPSB7IHhSZXN1bHQsIHlSZXN1bHQgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbXBsZXRlKCk6IHZvaWQge1xuICAgIHRoaXMubGluZVNlcnZpY2UuaGlkZVZlcnRpY2FsTGluZSgpO1xuICAgIHRoaXMubGluZVNlcnZpY2UuaGlkZUhvcml6b250YWxMaW5lKCk7XG4gIH1cbn1cbiJdfQ==
@@ -3,13 +3,12 @@ import { FCanvasBase } from './f-canvas-base';
3
3
  import { IPoint } from '@foblex/core';
4
4
  import { FCanvasChangeEvent } from './domain';
5
5
  import { FComponentsStore } from '../f-components-store';
6
- import { GetAllNodesRectHandler, SelectAllHandler } from '../domain';
7
6
  import { FNodeBase } from '../f-node';
7
+ import { FFlowMediator } from '../f-mediator';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare class FCanvasComponent extends FCanvasBase implements OnInit {
10
- private getAllNodesRectHandler;
11
- private selectAllHandler;
12
10
  private elementReference;
11
+ private fMediator;
13
12
  private fComponentsStore;
14
13
  fCanvasChange: EventEmitter<FCanvasChangeEvent>;
15
14
  set position(value: IPoint | undefined);
@@ -18,13 +17,12 @@ export declare class FCanvasComponent extends FCanvasBase implements OnInit {
18
17
  get hostElement(): HTMLElement;
19
18
  fNodesContainer: ElementRef<HTMLElement>;
20
19
  fConnectionsContainer: ElementRef<HTMLElement>;
21
- constructor(getAllNodesRectHandler: GetAllNodesRectHandler, selectAllHandler: SelectAllHandler, elementReference: ElementRef<HTMLElement>, fComponentsStore: FComponentsStore);
20
+ constructor(elementReference: ElementRef<HTMLElement>, fMediator: FFlowMediator, fComponentsStore: FComponentsStore);
22
21
  ngOnInit(): void;
23
22
  redraw(): void;
24
23
  redrawWithAnimation(): void;
25
24
  fitToScreen(toCenter?: IPoint, animated?: boolean): void;
26
25
  oneToOne(): void;
27
- selectAll(): void;
28
26
  static ɵfac: i0.ɵɵFactoryDeclaration<FCanvasComponent, never>;
29
27
  static ɵcmp: i0.ɵɵComponentDeclaration<FCanvasComponent, "f-canvas", ["fComponent"], { "position": { "alias": "position"; "required": false; }; "scale": { "alias": "scale"; "required": false; }; }, { "fCanvasChange": "fCanvasChange"; }, never, ["f-connection", "f-connection-for-create", "[fNode]"], false, never>;
30
28
  }
@@ -1,4 +1,5 @@
1
1
  export declare enum EFConnectionBehavior {
2
2
  FIXED = "fixed",
3
+ FIXED_CENTER = "fixed_center",
3
4
  FLOATING = "floating"
4
5
  }
@@ -9,6 +9,7 @@ export declare abstract class FConnectorBase implements IHasStateChanges, IHasHo
9
9
  readonly stateChanges: Subject<void>;
10
10
  abstract canBeConnected: boolean;
11
11
  abstract isConnected: boolean;
12
+ isSelfConnectable: boolean;
12
13
  fConnectableSide: EFConnectableSide;
13
14
  _fConnectableSide: EFConnectableSide;
14
15
  isContains(element: HTMLElement | SVGElement): boolean;
@@ -3,6 +3,7 @@ import { FConnectorBase } from '../f-connector-base';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare const F_NODE_OUTPUT: InjectionToken<FNodeOutputBase>;
5
5
  export declare abstract class FNodeOutputBase extends FConnectorBase {
6
+ abstract multiple: boolean;
6
7
  isConnected: boolean;
7
8
  get canBeConnected(): boolean;
8
9
  static ɵfac: i0.ɵɵFactoryDeclaration<FNodeOutputBase, never>;
@@ -9,16 +9,18 @@ export declare class FNodeOutputDirective extends FNodeOutputBase implements OnI
9
9
  private fNode;
10
10
  private fComponentsStore;
11
11
  id: string;
12
+ multiple: boolean;
12
13
  get disabled(): boolean;
13
14
  set disabled(isDisabled: boolean | undefined | string);
14
15
  private isDisabled;
15
16
  _fConnectableSide: EFConnectableSide;
16
17
  isConnected: boolean;
18
+ isSelfConnectable: boolean;
17
19
  get hostElement(): HTMLElement | SVGElement;
18
20
  constructor(elementReference: ElementRef<HTMLElement>, fNode: FNodeBase, fComponentsStore: FComponentsStore);
19
21
  ngOnInit(): void;
20
22
  setConnected(isConnected: boolean): void;
21
23
  ngOnDestroy(): void;
22
24
  static ɵfac: i0.ɵɵFactoryDeclaration<FNodeOutputDirective, never>;
23
- static ɵdir: i0.ɵɵDirectiveDeclaration<FNodeOutputDirective, "[fNodeOutput]", ["fNodeOutput"], { "id": { "alias": "fOutputId"; "required": false; }; "disabled": { "alias": "fOutputDisabled"; "required": false; }; "_fConnectableSide": { "alias": "fOutputConnectableSide"; "required": false; }; }, {}, never, never, false, never>;
25
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FNodeOutputDirective, "[fNodeOutput]", ["fNodeOutput"], { "id": { "alias": "fOutputId"; "required": false; }; "multiple": { "alias": "fOutputMultiple"; "required": false; }; "disabled": { "alias": "fOutputDisabled"; "required": false; }; "_fConnectableSide": { "alias": "fOutputConnectableSide"; "required": false; }; "isSelfConnectable": { "alias": "isSelfConnectable"; "required": false; }; }, {}, never, never, false, never>;
24
26
  }
@@ -2,18 +2,16 @@ import { IHandler, IPointerEvent } from '@foblex/core';
2
2
  import { FComponentsStore } from '../../../f-components-store';
3
3
  import { FDraggableDataContext } from '../../f-draggable-data-context';
4
4
  import { FindFirstCanBeConnectedOutputByOutletHandler } from './find-first-can-be-connected-output-by-outlet';
5
- import { GetElementRectInFlowHandler } from '../../../domain';
6
5
  import { FFlowMediator } from '../../../f-mediator';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class CreateConnectionPrepareDragSequence implements IHandler<IPointerEvent, void> {
9
8
  private fComponentsStore;
10
9
  private fDraggableDataContext;
11
- private getElementRectInFlowHandler;
12
10
  private fMediator;
13
11
  private findFirstCanBeConnectedOutputByOutletHandler;
14
12
  private get transform();
15
13
  private get flowHost();
16
- constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, getElementRectInFlowHandler: GetElementRectInFlowHandler, fMediator: FFlowMediator, findFirstCanBeConnectedOutputByOutletHandler: FindFirstCanBeConnectedOutputByOutletHandler);
14
+ constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, fMediator: FFlowMediator, findFirstCanBeConnectedOutputByOutletHandler: FindFirstCanBeConnectedOutputByOutletHandler);
17
15
  handle(event: IPointerEvent): void;
18
16
  private createConnectionHandler;
19
17
  private isNodeOutput;
@@ -1,4 +1,4 @@
1
1
  import { CreateConnectionOnPointerUp, CreateConnectionPrepareDragSequence, FindFirstCanBeConnectedOutputByOutletHandler } from './create-connection';
2
2
  import { FindInputsUnderPointerHandler, FirstNotConnectedInputOfNodeUnderPointerHandler, InputsUnderPointerHandler } from './find-inputs-under-pointer';
3
3
  import { ReassignConnectionOnPointerUp, ReassignConnectionPrepareDragSequence } from './reassign-connection';
4
- export declare const CONNECTIONS_PROVIDERS: (typeof FindFirstCanBeConnectedOutputByOutletHandler | typeof FirstNotConnectedInputOfNodeUnderPointerHandler | typeof InputsUnderPointerHandler | typeof ReassignConnectionOnPointerUp | typeof ReassignConnectionPrepareDragSequence | typeof FindInputsUnderPointerHandler | typeof CreateConnectionOnPointerUp | typeof CreateConnectionPrepareDragSequence)[];
4
+ export declare const CONNECTIONS_PROVIDERS: (typeof ReassignConnectionPrepareDragSequence | typeof ReassignConnectionOnPointerUp | typeof FindFirstCanBeConnectedOutputByOutletHandler | typeof CreateConnectionOnPointerUp | typeof CreateConnectionPrepareDragSequence | typeof FirstNotConnectedInputOfNodeUnderPointerHandler | typeof InputsUnderPointerHandler | typeof FindInputsUnderPointerHandler)[];
@@ -1,11 +1,9 @@
1
1
  import { IPoint } from '@foblex/core';
2
2
  import { IDraggableItem } from '../../i-draggable-item';
3
3
  import { EFDraggableType } from '../../e-f-draggable-type';
4
- import { GetInputRectInFlowHandler } from '../../../domain';
5
4
  import { FConnectionBase } from '../../../f-connection';
6
5
  import { FFlowMediator } from '../../../f-mediator';
7
6
  export declare class ReassignConnectionDragHandler implements IDraggableItem {
8
- private getInputRectInFlowHandler;
9
7
  private fMediator;
10
8
  connection: FConnectionBase;
11
9
  readonly type: EFDraggableType;
@@ -13,7 +11,7 @@ export declare class ReassignConnectionDragHandler implements IDraggableItem {
13
11
  private onPointerDownToConnectorRect;
14
12
  private outputSide;
15
13
  private inputSide;
16
- constructor(getInputRectInFlowHandler: GetInputRectInFlowHandler, fMediator: FFlowMediator, connection: FConnectionBase);
14
+ constructor(fMediator: FFlowMediator, connection: FConnectionBase);
17
15
  initialize(): void;
18
16
  move(difference: IPoint): void;
19
17
  complete(): void;
@@ -1,4 +1,4 @@
1
- import { IPoint, IRect } from '@foblex/core';
1
+ import { IPoint } from '@foblex/core';
2
2
  import { IDraggableItem } from '../i-draggable-item';
3
3
  import { EFDraggableType } from '../e-f-draggable-type';
4
4
  import { FExternalItemBase } from '../../f-external-item';
@@ -13,6 +13,5 @@ export declare class ExternalItemDragHandler implements IDraggableItem {
13
13
  initialize(): void;
14
14
  private getExternalItemRect;
15
15
  move(difference: IPoint): void;
16
- getPlaceholderRect(): IRect;
17
16
  complete(): void;
18
17
  }
@@ -1,15 +1,15 @@
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 { GetElementRectInFlowHandler } from '../../domain';
4
+ import { FFlowMediator } from '../../f-mediator';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class ExternalItemOnPointerUp implements IHandler<IPointerEvent, void> {
7
7
  private fComponentsStore;
8
8
  private fDraggableDataContext;
9
- private getElementRectInFlowHandler;
9
+ private fMediator;
10
10
  private get flowHost();
11
11
  private get fCreateNode();
12
- constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, getElementRectInFlowHandler: GetElementRectInFlowHandler);
12
+ constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, fMediator: FFlowMediator);
13
13
  handle(event: IPointerEvent): void;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<ExternalItemOnPointerUp, never>;
15
15
  static ɵprov: i0.ɵɵInjectableDeclaration<ExternalItemOnPointerUp>;
@@ -1,19 +1,49 @@
1
- import { IHasHostElement } from '@foblex/core';
2
- import { EventEmitter, InjectionToken, NgZone } from '@angular/core';
1
+ import { IHasHostElement, IPointerEvent } from '@foblex/core';
2
+ import { EventEmitter, InjectionToken } from '@angular/core';
3
3
  import { FCreateNodeEvent } from './external-item';
4
- import { FReassignConnectionEvent } from './connections/reassign-connection/f-reassign-connection.event';
5
- import { FCreateConnectionEvent } from './connections/create-connection/f-create-connection.event';
6
- import { FSelectionChangeEvent } from './single-select';
7
- import { IDragAndDropBase } from './i-drag-and-drop-base';
4
+ import { FReassignConnectionEvent } from './connections';
5
+ import { FCreateConnectionEvent } from './connections';
6
+ import { FSelectionChangeEvent } from './f-selection-change-event';
7
+ import { ICanRunOutsideAngular } from '@foblex/core/drag-and-drop/i-can-run-outside-angular';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare const F_DRAGGABLE: InjectionToken<FDraggableBase>;
10
- export declare abstract class FDraggableBase extends IDragAndDropBase implements IHasHostElement {
10
+ export declare const MOUSE_EVENT_IGNORE_TIME = 800;
11
+ export declare abstract class FDraggableBase implements IHasHostElement {
12
+ protected ngZone: ICanRunOutsideAngular;
11
13
  abstract hostElement: HTMLElement;
12
14
  abstract fSelectionChange: EventEmitter<FSelectionChangeEvent>;
13
15
  abstract fCreateNode: EventEmitter<FCreateNodeEvent>;
14
16
  abstract fReassignConnection: EventEmitter<FReassignConnectionEvent>;
15
17
  abstract fCreateConnection: EventEmitter<FCreateConnectionEvent>;
16
- protected constructor(ngZone: NgZone);
18
+ private document;
19
+ private mouseListeners;
20
+ private touchListeners;
21
+ private startListeners;
22
+ isSyntheticEvent(event: MouseEvent): boolean;
23
+ private lastTouchEventTime;
24
+ isDragStarted: boolean;
25
+ private dragStartThreshold;
26
+ private dragStartDelay;
27
+ private dragStartTime;
28
+ private dragStartPosition;
29
+ abstract disabled: boolean;
30
+ private moveHandler;
31
+ protected constructor(ngZone: ICanRunOutsideAngular);
32
+ private onMouseDown;
33
+ private onTouchDown;
34
+ private onMouseMove;
35
+ private onTouchMove;
36
+ private checkDragSequenceToStart;
37
+ protected abstract prepareDragSequence(event: IPointerEvent): void;
38
+ private onMouseUp;
39
+ private onTouchUp;
40
+ private endDragSequence;
41
+ protected abstract finalizeDragSequence(): void;
42
+ abstract onPointerDown(event: IPointerEvent): boolean;
43
+ abstract onPointerMove(event: IPointerEvent): void;
44
+ abstract onPointerUp(event: IPointerEvent): void;
45
+ subscribe(document: Document): void;
46
+ unsubscribe(): void;
17
47
  static ɵfac: i0.ɵɵFactoryDeclaration<FDraggableBase, never>;
18
48
  static ɵdir: i0.ɵɵDirectiveDeclaration<FDraggableBase, never, never, {}, {}, never, never, false, never>;
19
49
  }
@@ -4,14 +4,17 @@ import { FComponentsStore } from '../f-components-store';
4
4
  import { FDraggableDataContext } from './f-draggable-data-context';
5
5
  import { FCreateNodeEvent } from './external-item';
6
6
  import { IPointerEvent } from '@foblex/core';
7
- import { FSelectionChangeEvent } from './single-select';
8
7
  import { FCreateConnectionEvent, FReassignConnectionEvent } from './connections';
8
+ import { FSelectionChangeEvent } from './f-selection-change-event';
9
+ import { FFlowMediator } from '../f-mediator';
9
10
  import * as i0 from "@angular/core";
10
11
  export declare class FDraggableDirective extends FDraggableBase implements OnInit, AfterViewInit, OnDestroy {
11
12
  private elementReference;
12
13
  private fDraggableDataContext;
13
14
  private injector;
14
15
  private fComponentsStore;
16
+ private fMediator;
17
+ private doc;
15
18
  private subscriptions$;
16
19
  disabled: boolean;
17
20
  get hostElement(): HTMLElement;
@@ -19,15 +22,14 @@ export declare class FDraggableDirective extends FDraggableBase implements OnIni
19
22
  fCreateNode: EventEmitter<FCreateNodeEvent>;
20
23
  fReassignConnection: EventEmitter<FReassignConnectionEvent>;
21
24
  fCreateConnection: EventEmitter<FCreateConnectionEvent>;
22
- private readonly document;
23
- private selectedItemsOnPointerDown;
24
- constructor(elementReference: ElementRef<HTMLElement>, fDraggableDataContext: FDraggableDataContext, ngZone: NgZone, injector: Injector, fComponentsStore: FComponentsStore, document: any);
25
+ constructor(elementReference: ElementRef<HTMLElement>, fDraggableDataContext: FDraggableDataContext, ngZone: NgZone, injector: Injector, fComponentsStore: FComponentsStore, fMediator: FFlowMediator, doc: Document);
25
26
  ngOnInit(): void;
26
27
  ngAfterViewInit(): void;
27
28
  onPointerDown(event: IPointerEvent): boolean;
28
29
  protected prepareDragSequence(event: IPointerEvent): void;
29
30
  onPointerMove(event: IPointerEvent): void;
30
31
  onPointerUp(event: IPointerEvent): void;
32
+ protected finalizeDragSequence(): void;
31
33
  private emitSelectionChangeEvent;
32
34
  ngOnDestroy(): void;
33
35
  static ɵfac: i0.ɵɵFactoryDeclaration<FDraggableDirective, never>;
@@ -8,5 +8,5 @@ export * from './e-f-draggable-type';
8
8
  export * from './f-draggable.directive';
9
9
  export * from './f-draggable-base';
10
10
  export * from './f-draggable-data-context';
11
- export * from './i-drag-and-drop-base';
11
+ export * from './f-selection-change-event';
12
12
  export * from './i-draggable-item';
@@ -1,11 +1,9 @@
1
1
  import { IPoint } from '@foblex/core';
2
2
  import { IDraggableItem } from '../i-draggable-item';
3
3
  import { EFDraggableType } from '../e-f-draggable-type';
4
- import { GetInputRectInFlowHandler } from '../../domain';
5
4
  import { FConnectionBase } from '../../f-connection';
6
5
  import { FFlowMediator } from '../../f-mediator';
7
6
  export declare class ConnectionSourceDragHandler implements IDraggableItem {
8
- private getInputRectInFlowHandler;
9
7
  private fMediator;
10
8
  private connection;
11
9
  readonly type: EFDraggableType;
@@ -13,7 +11,7 @@ export declare class ConnectionSourceDragHandler implements IDraggableItem {
13
11
  private fromConnectorSide;
14
12
  private toConnectorRect;
15
13
  private toConnectorSide;
16
- constructor(getInputRectInFlowHandler: GetInputRectInFlowHandler, fMediator: FFlowMediator, connection: FConnectionBase);
14
+ constructor(fMediator: FFlowMediator, connection: FConnectionBase);
17
15
  initialize(): void;
18
16
  move(difference: IPoint): void;
19
17
  }
@@ -1,11 +1,9 @@
1
1
  import { IPoint } from '@foblex/core';
2
2
  import { IDraggableItem } from '../i-draggable-item';
3
3
  import { EFDraggableType } from '../e-f-draggable-type';
4
- import { GetInputRectInFlowHandler } from '../../domain';
5
4
  import { FConnectionBase } from '../../f-connection';
6
5
  import { FFlowMediator } from '../../f-mediator';
7
6
  export declare class ConnectionTargetDragHandler implements IDraggableItem {
8
- private getInputRectInFlowHandler;
9
7
  private fMediator;
10
8
  private connection;
11
9
  readonly type: EFDraggableType;
@@ -13,7 +11,7 @@ export declare class ConnectionTargetDragHandler implements IDraggableItem {
13
11
  private fromConnectorSide;
14
12
  private toConnectorRect;
15
13
  private toConnectorSide;
16
- constructor(getInputRectInFlowHandler: GetInputRectInFlowHandler, fMediator: FFlowMediator, connection: FConnectionBase);
14
+ constructor(fMediator: FFlowMediator, connection: FConnectionBase);
17
15
  initialize(): void;
18
16
  move(difference: IPoint): void;
19
17
  }
@@ -1,18 +1,16 @@
1
1
  import { IPoint } from '@foblex/core';
2
2
  import { IDraggableItem } from '../i-draggable-item';
3
3
  import { EFDraggableType } from '../e-f-draggable-type';
4
- import { GetInputRectInFlowHandler } from '../../domain';
5
4
  import { FConnectionBase } from '../../f-connection';
6
5
  import { FFlowMediator } from '../../f-mediator';
7
6
  export declare class ConnectionDragHandler implements IDraggableItem {
8
- private getInputRectInFlowHandler;
9
7
  private fMediator;
10
8
  connection: FConnectionBase;
11
9
  readonly type = EFDraggableType.CONNECTION;
12
10
  private onPointerDownVector;
13
11
  private fromConnectorSide;
14
12
  private toConnectorSide;
15
- constructor(getInputRectInFlowHandler: GetInputRectInFlowHandler, fMediator: FFlowMediator, connection: FConnectionBase);
13
+ constructor(fMediator: FFlowMediator, connection: FConnectionBase);
16
14
  initialize(): void;
17
15
  move(difference: IPoint): void;
18
16
  }
@@ -1,17 +1,18 @@
1
1
  import { IHandler } from '@foblex/core';
2
2
  import { FComponentsStore } from '../../../../f-components-store';
3
3
  import { FDraggableDataContext } from '../../../f-draggable-data-context';
4
- import { GetElementRectInFlowHandler, GetIncomingConnectionsHandler, GetOutgoingConnectionsHandler } from '../../../../domain';
4
+ import { GetIncomingConnectionsHandler, GetOutgoingConnectionsHandler } from '../../../../domain';
5
+ import { FFlowMediator } from '../../../../f-mediator';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class IsConnectionUnderNodeHandler implements IHandler<void> {
7
8
  private fComponentsStore;
8
9
  private fDraggableDataContext;
9
- private getElementRectInFlowHandler;
10
+ private fMediator;
10
11
  private getOutgoingConnectionsHandler;
11
12
  private getIncomingConnectionsHandler;
12
13
  private get transform();
13
14
  private get flowHost();
14
- constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, getElementRectInFlowHandler: GetElementRectInFlowHandler, getOutgoingConnectionsHandler: GetOutgoingConnectionsHandler, getIncomingConnectionsHandler: GetIncomingConnectionsHandler);
15
+ constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, fMediator: FFlowMediator, getOutgoingConnectionsHandler: GetOutgoingConnectionsHandler, getIncomingConnectionsHandler: GetIncomingConnectionsHandler);
15
16
  handle(): void;
16
17
  private isValidRequest;
17
18
  private getOutputsForNode;
@@ -1,20 +1,19 @@
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 { GetIncomingConnectionsHandler, GetInputRectInFlowHandler, GetOutgoingConnectionsHandler, UpdateNodeLayerHandler } from '../../domain';
4
+ import { GetIncomingConnectionsHandler, GetOutgoingConnectionsHandler, UpdateNodeLayerHandler } from '../../domain';
5
5
  import { FFlowMediator } from '../../f-mediator';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class NodePrepareDragSequence implements IHandler<IPointerEvent, void> {
8
8
  private fComponentsStore;
9
9
  private fDraggableDataContext;
10
10
  private updateNodeLayerHandler;
11
- private getInputRectInFlowHandler;
12
11
  private getOutgoingConnectionsHandler;
13
12
  private getIncomingConnectionsHandler;
14
13
  private fMediator;
15
14
  private get transform();
16
15
  private get flowHost();
17
- constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, updateNodeLayerHandler: UpdateNodeLayerHandler, getInputRectInFlowHandler: GetInputRectInFlowHandler, getOutgoingConnectionsHandler: GetOutgoingConnectionsHandler, getIncomingConnectionsHandler: GetIncomingConnectionsHandler, fMediator: FFlowMediator);
16
+ constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, updateNodeLayerHandler: UpdateNodeLayerHandler, getOutgoingConnectionsHandler: GetOutgoingConnectionsHandler, getIncomingConnectionsHandler: GetIncomingConnectionsHandler, fMediator: FFlowMediator);
18
17
  handle(event: IPointerEvent): void;
19
18
  private calculateDraggableConnectionsAndNodes;
20
19
  private getInputsForNode;
@@ -1,4 +1,4 @@
1
1
  import { NodeOnPointerUp } from './node.on-pointer-up';
2
2
  import { NodePrepareDragSequence } from './node.prepare-drag-sequence';
3
3
  import { IsConnectionUnderNodeHandler } from './domain/is-connection-under-node';
4
- export declare const NODE_PROVIDERS: (typeof IsConnectionUnderNodeHandler | typeof NodeOnPointerUp | typeof NodePrepareDragSequence)[];
4
+ export declare const NODE_PROVIDERS: (typeof NodeOnPointerUp | typeof NodePrepareDragSequence | typeof IsConnectionUnderNodeHandler)[];
@@ -2,16 +2,16 @@ import { IHandler } from '@foblex/core';
2
2
  import { ISelectableWithRect } from './i-selectable-with-rect';
3
3
  import { FComponentsStore } from '../../../f-components-store';
4
4
  import { FDraggableDataContext } from '../../f-draggable-data-context';
5
- import { GetElementRectInFlowHandler } from '../../../domain';
5
+ import { FFlowMediator } from '../../../f-mediator';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class GetCanBeSelectedItemsHandler implements IHandler<void, ISelectableWithRect[]> {
8
8
  private fComponentsStore;
9
9
  private fDraggableDataContext;
10
- private getElementRectInFlowHandler;
10
+ private fMediator;
11
11
  private get fNodes();
12
12
  private get fConnections();
13
13
  private get transform();
14
- constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, getElementRectInFlowHandler: GetElementRectInFlowHandler);
14
+ constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, fMediator: FFlowMediator);
15
15
  handle(): ISelectableWithRect[];
16
16
  private getNodesWithRects;
17
17
  private getConnectionsWithRects;
@@ -1,3 +1,2 @@
1
1
  export * from './providers';
2
- export * from './f-selection-change-event';
3
2
  export * from './single-select.on-pointer-down';
@@ -1,11 +1,12 @@
1
1
  import { IHasHostElement } from '@foblex/core';
2
2
  import { InjectionToken } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
- export declare const F_EXTERNAL_ITEM: InjectionToken<FExternalItemBase>;
5
- export declare abstract class FExternalItemBase implements IHasHostElement {
6
- abstract id: any;
4
+ export declare const F_EXTERNAL_ITEM: InjectionToken<FExternalItemBase<any>>;
5
+ export declare abstract class FExternalItemBase<TData = any> implements IHasHostElement {
6
+ abstract fExternalItemId: string;
7
7
  abstract hostElement: HTMLElement | SVGElement;
8
- abstract data: any;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<FExternalItemBase, never>;
10
- static ɵdir: i0.ɵɵDirectiveDeclaration<FExternalItemBase, never, never, {}, {}, never, never, false, never>;
8
+ abstract fData: TData | undefined;
9
+ abstract fDisabled: boolean;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<FExternalItemBase<any>, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FExternalItemBase<any>, never, never, {}, {}, never, never, false, never>;
11
12
  }
@@ -2,15 +2,16 @@ import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { FExternalItemBase } from './f-external-item-base';
3
3
  import { FExternalItemService } from './f-external-item.service';
4
4
  import * as i0 from "@angular/core";
5
- export declare class FExternalItemDirective extends FExternalItemBase implements OnInit, OnDestroy {
5
+ export declare class FExternalItemDirective<TData> extends FExternalItemBase<TData> implements OnInit, OnDestroy {
6
6
  private elementReference;
7
7
  private fExternalItemService;
8
- id: string;
8
+ fExternalItemId: string;
9
9
  get hostElement(): HTMLElement | SVGElement;
10
- data: any;
10
+ fData: TData | undefined;
11
+ fDisabled: boolean;
11
12
  constructor(elementReference: ElementRef<HTMLElement>, fExternalItemService: FExternalItemService);
12
13
  ngOnInit(): void;
13
14
  ngOnDestroy(): void;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<FExternalItemDirective, never>;
15
- static ɵdir: i0.ɵɵDirectiveDeclaration<FExternalItemDirective, "[fExternalItem]", never, { "id": { "alias": "id"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, {}, never, never, false, never>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<FExternalItemDirective<any>, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FExternalItemDirective<any>, "[fExternalItem]", never, { "fExternalItemId": { "alias": "fExternalItemId"; "required": false; }; "fData": { "alias": "fData"; "required": false; }; "fDisabled": { "alias": "fDisabled"; "required": false; }; }, {}, never, never, false, never>;
16
17
  }
@@ -1,13 +1,12 @@
1
1
  import { AfterContentInit, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
2
  import { FFlowBase } from './f-flow-base';
3
3
  import { FComponentsStore } from '../f-components-store';
4
- import { GetAllNodesRectHandler } from '../domain';
5
4
  import { IRect } from '@foblex/core';
6
5
  import { FFlowMediator } from '../f-mediator';
6
+ import { FSelectionChangeEvent } from '../f-draggable';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class FFlowComponent extends FFlowBase implements OnInit, AfterContentInit, OnDestroy {
9
9
  private elementReference;
10
- private getAllNodesRectHandler;
11
10
  private fComponentsStore;
12
11
  private fMediator;
13
12
  private subscription$;
@@ -15,12 +14,16 @@ export declare class FFlowComponent extends FFlowBase implements OnInit, AfterCo
15
14
  get hostElement(): HTMLElement;
16
15
  fLoaded: EventEmitter<void>;
17
16
  private isLoaded;
18
- constructor(elementReference: ElementRef<HTMLElement>, getAllNodesRectHandler: GetAllNodesRectHandler, fComponentsStore: FComponentsStore, fMediator: FFlowMediator);
17
+ constructor(elementReference: ElementRef<HTMLElement>, fComponentsStore: FComponentsStore, fMediator: FFlowMediator);
19
18
  ngOnInit(): void;
20
19
  ngAfterContentInit(): void;
21
20
  private subscribeOnElementsChanges;
21
+ reset(): void;
22
22
  getNodesRect(): IRect;
23
+ getSelection(): FSelectionChangeEvent;
24
+ selectAll(): void;
25
+ clearSelection(): void;
23
26
  ngOnDestroy(): void;
24
27
  static ɵfac: i0.ɵɵFactoryDeclaration<FFlowComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<FFlowComponent, "f-flow", never, { "fFlowId": { "alias": "fFlowId"; "required": false; }; }, { "fLoaded": "fLoaded"; }, never, ["[fDefinitions]", "f-background", "f-line-alignment", "f-canvas", "f-selection-area"], false, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<FFlowComponent, "f-flow", never, { "fFlowId": { "alias": "fFlowId"; "required": false; }; }, { "fLoaded": "fLoaded"; }, never, ["[fDefinitions]", "f-background", "f-line-alignment", "f-canvas", "f-selection-area", "f-mini-map"], false, never>;
26
29
  }