@foblex/flow 17.0.6 → 17.0.8

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 (131) hide show
  1. package/domain/f-connection/find-closest-input/find-closest-input.execution.d.ts +11 -0
  2. package/domain/f-connection/{find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.d.ts → find-closest-input/find-closest-input.request.d.ts} +2 -3
  3. package/domain/f-connection/find-closest-input/i-closest-input.d.ts +7 -0
  4. package/domain/f-connection/find-closest-input/index.d.ts +3 -0
  5. package/domain/f-connection/get-connector-with-rect/get-connector-with-rect.execution.d.ts +2 -3
  6. package/domain/f-connection/index.d.ts +1 -1
  7. package/domain/f-connection/providers.d.ts +2 -2
  8. package/domain/get-normalized-element-rect/get-normalized-element-rect-request.d.ts +2 -1
  9. package/domain/providers.d.ts +1 -1
  10. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.request.mjs +1 -1
  11. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.mjs +5 -3
  12. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.mjs +19 -29
  13. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +6 -3
  14. package/esm2022/domain/f-connection/find-closest-input/find-closest-input.execution.mjs +42 -0
  15. package/esm2022/domain/f-connection/find-closest-input/find-closest-input.request.mjs +9 -0
  16. package/esm2022/domain/f-connection/find-closest-input/i-closest-input.mjs +2 -0
  17. package/esm2022/domain/f-connection/find-closest-input/index.mjs +4 -0
  18. package/esm2022/domain/f-connection/get-connector-with-rect/get-connector-with-rect-request.mjs +1 -1
  19. package/esm2022/domain/f-connection/get-connector-with-rect/get-connector-with-rect.execution.mjs +7 -11
  20. package/esm2022/domain/f-connection/index.mjs +2 -2
  21. package/esm2022/domain/f-connection/providers.mjs +3 -3
  22. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +2 -2
  23. package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +3 -3
  24. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect-request.mjs +4 -2
  25. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +5 -5
  26. package/esm2022/f-connection/f-connection/f-connection.component.mjs +6 -5
  27. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.mjs +8 -1
  28. package/esm2022/f-draggable/canvas/canvas-move-finalize/index.mjs +1 -2
  29. package/esm2022/f-draggable/canvas/canvas-move-finalize/providers.mjs +1 -3
  30. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.mjs +8 -1
  31. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/index.mjs +1 -2
  32. package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +33 -19
  33. package/esm2022/f-draggable/connections/providers.mjs +3 -5
  34. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/index.mjs +1 -2
  35. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.mjs +8 -1
  36. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.mjs +29 -21
  37. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +2 -2
  38. package/esm2022/f-draggable/domain/is-connection-under-node/index.mjs +1 -2
  39. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +4 -8
  40. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.request.mjs +5 -1
  41. package/esm2022/f-draggable/domain/providers.mjs +2 -3
  42. package/esm2022/f-draggable/f-draggable.directive.mjs +11 -11
  43. package/esm2022/f-draggable/node/connection-base-drag-handler.mjs +2 -2
  44. package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +2 -2
  45. package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +2 -2
  46. package/esm2022/f-draggable/node/connection.drag-handler.mjs +2 -2
  47. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.mjs +2 -2
  48. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/index.mjs +1 -2
  49. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.execution.mjs +8 -1
  50. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/providers.mjs +1 -3
  51. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.mjs +15 -8
  52. package/esm2022/f-draggable/node/node-drag-to-parent.drag-handler.mjs +32 -17
  53. package/esm2022/f-draggable/node/node-move-finalize/index.mjs +1 -3
  54. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +15 -2
  55. package/esm2022/f-draggable/node/providers.mjs +3 -3
  56. package/esm2022/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +2 -2
  57. package/esm2022/f-draggable/node-resize/node-resize-finalize/index.mjs +1 -2
  58. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.execution.mjs +8 -1
  59. package/esm2022/f-draggable/node-resize/node-resize-finalize/providers.mjs +1 -3
  60. package/esm2022/f-draggable/node-resize/node-resize.drag-handler.mjs +2 -2
  61. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.execution.mjs +9 -2
  62. package/esm2022/f-external-item/domain/external-item-finalize/index.mjs +1 -2
  63. package/esm2022/f-external-item/domain/external-item-finalize/providers.mjs +1 -3
  64. package/esm2022/f-line-alignment/domain/index.mjs +1 -2
  65. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +17 -12
  66. package/f-connection/f-connection/f-connection.component.d.ts +4 -2
  67. package/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.d.ts +1 -0
  68. package/f-draggable/canvas/canvas-move-finalize/index.d.ts +0 -1
  69. package/f-draggable/canvas/canvas-move-finalize/providers.d.ts +1 -2
  70. package/f-draggable/canvas/providers.d.ts +1 -1
  71. package/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.d.ts +1 -0
  72. package/f-draggable/connections/create-connection/create-connection-finalize/index.d.ts +0 -1
  73. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +8 -4
  74. package/f-draggable/connections/providers.d.ts +3 -3
  75. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/index.d.ts +0 -1
  76. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.d.ts +1 -0
  77. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +7 -4
  78. package/f-draggable/domain/is-connection-under-node/index.d.ts +0 -1
  79. package/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +0 -2
  80. package/f-draggable/domain/is-connection-under-node/is-connection-under-node.request.d.ts +3 -0
  81. package/f-draggable/domain/providers.d.ts +2 -2
  82. package/f-draggable/node/connection-base-drag-handler.d.ts +1 -1
  83. package/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
  84. package/f-draggable/node/node-drag-to-parent-finalize/index.d.ts +0 -1
  85. package/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.execution.d.ts +1 -0
  86. package/f-draggable/node/node-drag-to-parent-finalize/providers.d.ts +1 -2
  87. package/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.d.ts +4 -3
  88. package/f-draggable/node/node-drag-to-parent.drag-handler.d.ts +9 -4
  89. package/f-draggable/node/node-move-finalize/index.d.ts +0 -2
  90. package/f-draggable/node/node-move-finalize/node-move-finalize.execution.d.ts +2 -0
  91. package/f-draggable/node/providers.d.ts +2 -1
  92. package/f-draggable/node-resize/node-resize-finalize/index.d.ts +0 -1
  93. package/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.execution.d.ts +1 -0
  94. package/f-draggable/node-resize/node-resize-finalize/providers.d.ts +1 -2
  95. package/f-draggable/node-resize/providers.d.ts +1 -1
  96. package/f-draggable/providers.d.ts +1 -1
  97. package/f-external-item/domain/external-item-finalize/external-item-finalize.execution.d.ts +1 -0
  98. package/f-external-item/domain/external-item-finalize/index.d.ts +0 -1
  99. package/f-external-item/domain/external-item-finalize/providers.d.ts +1 -2
  100. package/f-external-item/domain/providers.d.ts +1 -1
  101. package/f-line-alignment/domain/index.d.ts +0 -1
  102. package/f-line-alignment/f-line-alignment.component.d.ts +2 -1
  103. package/f-storage/providers.d.ts +1 -1
  104. package/fesm2022/foblex-flow.mjs +415 -577
  105. package/fesm2022/foblex-flow.mjs.map +1 -1
  106. package/package.json +3 -3
  107. package/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.d.ts +0 -11
  108. package/domain/f-connection/find-closest-input-using-snap-threshold/index.d.ts +0 -2
  109. package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.mjs +0 -39
  110. package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.mjs +0 -11
  111. package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/index.mjs +0 -3
  112. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.validator.mjs +0 -26
  113. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.validator.mjs +0 -26
  114. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.validator.mjs +0 -26
  115. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.validator.mjs +0 -23
  116. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.validator.mjs +0 -27
  117. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.validator.mjs +0 -26
  118. package/esm2022/f-draggable/node/node-move-finalize/providers.mjs +0 -7
  119. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.validator.mjs +0 -26
  120. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.validator.mjs +0 -26
  121. package/esm2022/f-line-alignment/domain/nearest-coordinate.mjs +0 -104
  122. package/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.validator.d.ts +0 -11
  123. package/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.validator.d.ts +0 -11
  124. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.validator.d.ts +0 -11
  125. package/f-draggable/domain/is-connection-under-node/is-connection-under-node.validator.d.ts +0 -9
  126. package/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.validator.d.ts +0 -11
  127. package/f-draggable/node/node-move-finalize/node-move-finalize.validator.d.ts +0 -11
  128. package/f-draggable/node/node-move-finalize/providers.d.ts +0 -3
  129. package/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.validator.d.ts +0 -11
  130. package/f-external-item/domain/external-item-finalize/external-item-finalize.validator.d.ts +0 -11
  131. package/f-line-alignment/domain/nearest-coordinate.d.ts +0 -27
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, Injectable, Directive, ElementRef, Input, HostBinding, EventEmitter, DestroyRef, Output, booleanAttribute, Inject, Component, ChangeDetectionStrategy, ViewChild, Optional, ContentChildren, NgZone, ContentChild, NgModule } from '@angular/core';
3
- import { RectExtensions, RoundedRect, TransformModelExtensions, PointExtensions, Point, SizeExtensions, LineExtensions, GetIntersections, Line, setRectToElement, adjustRectToMinSize, setRectToViewBox } from '@foblex/2d';
3
+ import { RectExtensions, RoundedRect, TransformModelExtensions, PointExtensions, Point, SizeExtensions, LineExtensions, GetIntersections, setRectToElement, adjustRectToMinSize, findClosestAlignment, setRectToViewBox } from '@foblex/2d';
4
4
  import { __decorate } from 'tslib';
5
5
  import * as i2 from '@foblex/mediator';
6
6
  import { FExecutionRegister, FMediator, FValidatorRegister } from '@foblex/mediator';
@@ -918,18 +918,16 @@ function createSVGElement$1(tag, fBrowser) {
918
918
  return fBrowser.document.createElementNS('http://www.w3.org/2000/svg', tag);
919
919
  }
920
920
 
921
- class FindClosestInputUsingSnapThresholdRequest {
921
+ class FindClosestInputRequest {
922
922
  position;
923
923
  canBeConnectedInputs;
924
- snapThreshold;
925
- constructor(position, canBeConnectedInputs, snapThreshold) {
924
+ constructor(position, canBeConnectedInputs) {
926
925
  this.position = position;
927
926
  this.canBeConnectedInputs = canBeConnectedInputs;
928
- this.snapThreshold = snapThreshold;
929
927
  }
930
928
  }
931
929
 
932
- let FindClosestInputUsingSnapThresholdExecution = class FindClosestInputUsingSnapThresholdExecution {
930
+ let FindClosestInputExecution = class FindClosestInputExecution {
933
931
  handle(payload) {
934
932
  let result;
935
933
  let minDistance = Infinity;
@@ -940,7 +938,10 @@ let FindClosestInputUsingSnapThresholdExecution = class FindClosestInputUsingSna
940
938
  result = element;
941
939
  }
942
940
  }
943
- return minDistance < payload.snapThreshold ? result : undefined;
941
+ return result ? {
942
+ ...result,
943
+ distance: minDistance,
944
+ } : undefined;
944
945
  }
945
946
  distanceToRectangle(point, inputWithRect) {
946
947
  const closestX = this.clamp(point.x, inputWithRect.fRect.x, inputWithRect.fRect.x + inputWithRect.fRect.width);
@@ -952,13 +953,13 @@ let FindClosestInputUsingSnapThresholdExecution = class FindClosestInputUsingSna
952
953
  clamp(value, min, max) {
953
954
  return Math.max(min, Math.min(max, value));
954
955
  }
955
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FindClosestInputUsingSnapThresholdExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
956
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FindClosestInputUsingSnapThresholdExecution });
956
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FindClosestInputExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
957
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FindClosestInputExecution });
957
958
  };
958
- FindClosestInputUsingSnapThresholdExecution = __decorate([
959
- FExecutionRegister(FindClosestInputUsingSnapThresholdRequest)
960
- ], FindClosestInputUsingSnapThresholdExecution);
961
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FindClosestInputUsingSnapThresholdExecution, decorators: [{
959
+ FindClosestInputExecution = __decorate([
960
+ FExecutionRegister(FindClosestInputRequest)
961
+ ], FindClosestInputExecution);
962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FindClosestInputExecution, decorators: [{
962
963
  type: Injectable
963
964
  }] });
964
965
 
@@ -978,8 +979,10 @@ class GetConnectorWithRectRequest {
978
979
 
979
980
  class GetNormalizedElementRectRequest {
980
981
  element;
981
- constructor(element) {
982
+ isRoundedRect;
983
+ constructor(element, isRoundedRect = true) {
982
984
  this.element = element;
985
+ this.isRoundedRect = isRoundedRect;
983
986
  }
984
987
  }
985
988
 
@@ -990,13 +993,13 @@ let GetNormalizedElementRectExecution = class GetNormalizedElementRectExecution
990
993
  return this._fComponentsStore.fCanvas.transform;
991
994
  }
992
995
  handle(request) {
993
- const systemRect = this._getElementRoundedRect(request.element);
996
+ const systemRect = this._getElementRoundedRect(request);
994
997
  const position = this._normalizePosition(systemRect);
995
998
  const size = this._normalizeSize(systemRect);
996
999
  return new RoundedRect(position.x, position.y, size.width, size.height, systemRect.radius1, systemRect.radius2, systemRect.radius3, systemRect.radius4);
997
1000
  }
998
- _getElementRoundedRect(element) {
999
- return this._fMediator.send(new GetElementRoundedRectRequest(element));
1001
+ _getElementRoundedRect(request) {
1002
+ return request.isRoundedRect ? this._fMediator.send(new GetElementRoundedRectRequest(request.element)) : RoundedRect.fromRect(RectExtensions.fromElement(request.element));
1000
1003
  }
1001
1004
  _normalizePosition(rect) {
1002
1005
  return Point.fromPoint(rect).elementTransform(this._fComponentsStore.flowHost).sub(this._transform.scaledPosition).sub(this._transform.position).div(this._transform.scale);
@@ -1015,17 +1018,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
1015
1018
  }] });
1016
1019
 
1017
1020
  let GetConnectorWithRectExecution = class GetConnectorWithRectExecution {
1018
- fMediator;
1019
- constructor(fMediator) {
1020
- this.fMediator = fMediator;
1021
- }
1021
+ _fMediator = inject(FMediator);
1022
1022
  handle(request) {
1023
1023
  return {
1024
1024
  fConnector: request.connector,
1025
- fRect: this.fMediator.send(new GetNormalizedElementRectRequest(request.connector.hostElement))
1025
+ fRect: this._fMediator.send(new GetNormalizedElementRectRequest(request.connector.hostElement, true))
1026
1026
  };
1027
1027
  }
1028
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetConnectorWithRectExecution, deps: [{ token: i2.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
1028
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetConnectorWithRectExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1029
1029
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetConnectorWithRectExecution });
1030
1030
  };
1031
1031
  GetConnectorWithRectExecution = __decorate([
@@ -1033,7 +1033,7 @@ GetConnectorWithRectExecution = __decorate([
1033
1033
  ], GetConnectorWithRectExecution);
1034
1034
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetConnectorWithRectExecution, decorators: [{
1035
1035
  type: Injectable
1036
- }], ctorParameters: () => [{ type: i2.FMediator }] });
1036
+ }] });
1037
1037
 
1038
1038
  let GetAllCanBeConnectedInputPositionsExecution = class GetAllCanBeConnectedInputPositionsExecution {
1039
1039
  fComponentsStore;
@@ -2690,7 +2690,7 @@ class FConnectionComponent extends FConnectionBase {
2690
2690
  this._fMediator.send(new RemoveConnectionFromStoreRequest(this));
2691
2691
  }
2692
2692
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionComponent, deps: [{ token: i0.ElementRef }, { token: FConnectionFactory }], target: i0.ɵɵFactoryTarget.Component });
2693
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.4", type: FConnectionComponent, selector: "f-connection", inputs: { fId: ["fConnectionId", "fId"], fText: "fText", fTextStartOffset: "fTextStartOffset", fStartColor: "fStartColor", fEndColor: "fEndColor", fOutputId: "fOutputId", fInputId: "fInputId", fRadius: "fRadius", fOffset: "fOffset", fBehavior: ["fBehavior", "fBehavior", (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior)], fType: "fType", fDraggingDisabled: ["fReassignDisabled", "fDraggingDisabled"], fSelectionDisabled: "fSelectionDisabled" }, host: { properties: { "attr.id": "fId", "class.f-connection-selection-disabled": "fSelectionDisabled", "class.f-connection-reassign-disabled": "fDraggingDisabled" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], queries: [{ propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true }], exportAs: ["fComponent"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <ng-content></ng-content>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2693
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.4", type: FConnectionComponent, selector: "f-connection", inputs: { fId: ["fConnectionId", "fId"], fText: "fText", fTextStartOffset: "fTextStartOffset", fStartColor: "fStartColor", fEndColor: "fEndColor", fOutputId: "fOutputId", fInputId: "fInputId", fRadius: "fRadius", fOffset: "fOffset", fBehavior: ["fBehavior", "fBehavior", (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior)], fType: "fType", fDraggingDisabled: ["fReassignDisabled", "fDraggingDisabled", booleanAttribute], fSelectionDisabled: ["fSelectionDisabled", "fSelectionDisabled", booleanAttribute] }, host: { properties: { "attr.id": "fId", "class.f-connection-selection-disabled": "fSelectionDisabled", "class.f-connection-reassign-disabled": "fDraggingDisabled" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], queries: [{ propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true }], exportAs: ["fComponent"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <ng-content></ng-content>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2694
2694
  }
2695
2695
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionComponent, decorators: [{
2696
2696
  type: Component,
@@ -2726,9 +2726,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
2726
2726
  type: Input
2727
2727
  }], fDraggingDisabled: [{
2728
2728
  type: Input,
2729
- args: ['fReassignDisabled']
2729
+ args: [{ alias: 'fReassignDisabled', transform: booleanAttribute }]
2730
2730
  }], fSelectionDisabled: [{
2731
- type: Input
2731
+ type: Input,
2732
+ args: [{ transform: booleanAttribute }]
2732
2733
  }], fDefs: [{
2733
2734
  type: ViewChild,
2734
2735
  args: ['defs', { static: true }]
@@ -2942,42 +2943,39 @@ function _toRoundedRectIntersections(payload) {
2942
2943
  return GetIntersections.getRoundedRectIntersections(payload.inputRect.gravityCenter, payload.outputRect.gravityCenter, payload.inputRect)[0];
2943
2944
  }
2944
2945
  function _getIntersectionsLine(from, to, payload) {
2945
- return new Line(from ? from : payload.outputRect.gravityCenter, to ? to : payload.inputRect.gravityCenter);
2946
+ return {
2947
+ point1: from ? from : payload.outputRect.gravityCenter,
2948
+ point2: to ? to : payload.inputRect.gravityCenter
2949
+ };
2946
2950
  }
2947
2951
 
2948
2952
  function fixedCenterBehavior(payload) {
2949
- return new Line(payload.outputRect.gravityCenter, payload.inputRect.gravityCenter);
2953
+ return {
2954
+ point1: payload.outputRect.gravityCenter,
2955
+ point2: payload.inputRect.gravityCenter
2956
+ };
2950
2957
  }
2951
2958
 
2952
2959
  function fixedOutboundBehavior(payload) {
2953
- return new Line(positions[payload.outputSide === EFConnectableSide.AUTO ? EFConnectableSide.BOTTOM : payload.outputSide](payload.outputRect), positions[payload.inputSide === EFConnectableSide.AUTO ? EFConnectableSide.TOP : payload.inputSide](payload.inputRect));
2960
+ return {
2961
+ point1: _getPosition(payload.outputRect, payload.outputSide === EFConnectableSide.AUTO ? EFConnectableSide.BOTTOM : payload.outputSide),
2962
+ point2: _getPosition(payload.inputRect, payload.inputSide === EFConnectableSide.AUTO ? EFConnectableSide.TOP : payload.inputSide)
2963
+ };
2964
+ }
2965
+ function _getPosition(rect, side) {
2966
+ switch (side) {
2967
+ case EFConnectableSide.TOP:
2968
+ return { x: rect.x + rect.width / 2, y: rect.y };
2969
+ case EFConnectableSide.BOTTOM:
2970
+ return { x: rect.x + rect.width / 2, y: rect.y + rect.height };
2971
+ case EFConnectableSide.LEFT:
2972
+ return { x: rect.x, y: rect.y + rect.height / 2 };
2973
+ case EFConnectableSide.RIGHT:
2974
+ return { x: rect.x + rect.width, y: rect.y + rect.height / 2 };
2975
+ default:
2976
+ throw new Error(`Unknown side: ${side}`);
2977
+ }
2954
2978
  }
2955
- const positions = {
2956
- [EFConnectableSide.TOP]: (rect) => {
2957
- const result = new Point();
2958
- result.y = rect.y;
2959
- result.x = rect.x + rect.width / 2;
2960
- return result;
2961
- },
2962
- [EFConnectableSide.BOTTOM]: (rect) => {
2963
- const result = new Point();
2964
- result.y = rect.y + rect.height;
2965
- result.x = rect.x + rect.width / 2;
2966
- return result;
2967
- },
2968
- [EFConnectableSide.LEFT]: (rect) => {
2969
- const result = new Point();
2970
- result.x = rect.x;
2971
- result.y = rect.y + rect.height / 2;
2972
- return result;
2973
- },
2974
- [EFConnectableSide.RIGHT]: (rect) => {
2975
- const result = new Point();
2976
- result.x = rect.x + rect.width;
2977
- result.y = rect.y + rect.height / 2;
2978
- return result;
2979
- },
2980
- };
2981
2979
 
2982
2980
  let CalculateConnectionLineByBehaviorExecution = class CalculateConnectionLineByBehaviorExecution {
2983
2981
  _handlers = {
@@ -3038,7 +3036,7 @@ let RedrawConnectionsExecution = class RedrawConnectionsExecution {
3038
3036
  connection.isSelected() ? connection.select() : null;
3039
3037
  }
3040
3038
  getLine(output, input, connection) {
3041
- return this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fMediator.send(new GetNormalizedElementRectRequest(output.hostElement)), this.fMediator.send(new GetNormalizedElementRectRequest(input.hostElement)), connection.fBehavior, output.fConnectableSide, input.fConnectableSide));
3039
+ return this.fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this.fMediator.execute(new GetNormalizedElementRectRequest(output.hostElement, true)), this.fMediator.execute(new GetNormalizedElementRectRequest(input.hostElement, true)), connection.fBehavior, output.fConnectableSide, input.fConnectableSide));
3042
3040
  }
3043
3041
  setMarkers(connection) {
3044
3042
  this.fMediator.send(new CreateConnectionMarkersRequest(connection));
@@ -3147,7 +3145,7 @@ const F_CONNECTION_FEATURES = [
3147
3145
  AddConnectionToStoreExecution,
3148
3146
  AddSnapConnectionToStoreExecution,
3149
3147
  CreateConnectionMarkersExecution,
3150
- FindClosestInputUsingSnapThresholdExecution,
3148
+ FindClosestInputExecution,
3151
3149
  GetAllCanBeConnectedInputPositionsExecution,
3152
3150
  CalculateConnectionLineByBehaviorExecution,
3153
3151
  GetConnectorWithRectExecution,
@@ -3331,6 +3329,24 @@ class CanvasMoveFinalizeRequest {
3331
3329
  }
3332
3330
  }
3333
3331
 
3332
+ class CanvasDragHandler {
3333
+ fComponentsStore;
3334
+ onPointerDownPosition = PointExtensions.initialize();
3335
+ constructor(fComponentsStore) {
3336
+ this.fComponentsStore = fComponentsStore;
3337
+ }
3338
+ prepareDragSequence() {
3339
+ this.onPointerDownPosition = this.fComponentsStore.fCanvas.transform.position;
3340
+ }
3341
+ onPointerMove(difference) {
3342
+ this.fComponentsStore.fCanvas.setPosition(Point.fromPoint(this.onPointerDownPosition).add(difference));
3343
+ this.fComponentsStore.fCanvas.redraw();
3344
+ }
3345
+ onPointerUp() {
3346
+ this.fComponentsStore.fCanvas.emitCanvasChangeEvent();
3347
+ }
3348
+ }
3349
+
3334
3350
  class FDraggableDataContext {
3335
3351
  selectedItems = [];
3336
3352
  isSelectedChanged = false;
@@ -3359,8 +3375,14 @@ let CanvasMoveFinalizeExecution = class CanvasMoveFinalizeExecution {
3359
3375
  this.fDraggableDataContext = fDraggableDataContext;
3360
3376
  }
3361
3377
  handle(request) {
3378
+ if (!this._isValid()) {
3379
+ return;
3380
+ }
3362
3381
  this.fDraggableDataContext.draggableItems.forEach((x) => x.onPointerUp?.());
3363
3382
  }
3383
+ _isValid() {
3384
+ return this.fDraggableDataContext.draggableItems.some((x) => x instanceof CanvasDragHandler);
3385
+ }
3364
3386
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CanvasMoveFinalizeExecution, deps: [{ token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
3365
3387
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CanvasMoveFinalizeExecution });
3366
3388
  };
@@ -3371,45 +3393,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
3371
3393
  type: Injectable
3372
3394
  }], ctorParameters: () => [{ type: FDraggableDataContext }] });
3373
3395
 
3374
- class CanvasDragHandler {
3375
- fComponentsStore;
3376
- onPointerDownPosition = PointExtensions.initialize();
3377
- constructor(fComponentsStore) {
3378
- this.fComponentsStore = fComponentsStore;
3379
- }
3380
- prepareDragSequence() {
3381
- this.onPointerDownPosition = this.fComponentsStore.fCanvas.transform.position;
3382
- }
3383
- onPointerMove(difference) {
3384
- this.fComponentsStore.fCanvas.setPosition(Point.fromPoint(this.onPointerDownPosition).add(difference));
3385
- this.fComponentsStore.fCanvas.redraw();
3386
- }
3387
- onPointerUp() {
3388
- this.fComponentsStore.fCanvas.emitCanvasChangeEvent();
3389
- }
3390
- }
3391
-
3392
- let CanvasMoveFinalizeValidator = class CanvasMoveFinalizeValidator {
3393
- fDraggableDataContext;
3394
- constructor(fDraggableDataContext) {
3395
- this.fDraggableDataContext = fDraggableDataContext;
3396
- }
3397
- handle(request) {
3398
- return this.fDraggableDataContext.draggableItems.some((x) => x instanceof CanvasDragHandler);
3399
- }
3400
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CanvasMoveFinalizeValidator, deps: [{ token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
3401
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CanvasMoveFinalizeValidator });
3402
- };
3403
- CanvasMoveFinalizeValidator = __decorate([
3404
- FValidatorRegister(CanvasMoveFinalizeRequest)
3405
- ], CanvasMoveFinalizeValidator);
3406
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CanvasMoveFinalizeValidator, decorators: [{
3407
- type: Injectable
3408
- }], ctorParameters: () => [{ type: FDraggableDataContext }] });
3409
-
3410
3396
  const CANVAS_MOVE_FINALIZE_PROVIDERS = [
3411
3397
  CanvasMoveFinalizeExecution,
3412
- CanvasMoveFinalizeValidator,
3413
3398
  ];
3414
3399
 
3415
3400
  class CanvasMovePreparationRequest {
@@ -3609,6 +3594,88 @@ class FCreateConnectionEvent {
3609
3594
  }
3610
3595
  }
3611
3596
 
3597
+ class CreateConnectionDragHandler {
3598
+ fMediator;
3599
+ fComponentsStore;
3600
+ fOutput;
3601
+ onPointerDownPosition;
3602
+ toConnectorRect = new RoundedRect();
3603
+ get fConnection() {
3604
+ return this.fComponentsStore.fTempConnection;
3605
+ }
3606
+ get fSnapConnection() {
3607
+ return this.fComponentsStore.fSnapConnection;
3608
+ }
3609
+ fOutputWithRect;
3610
+ canBeConnectedInputs = [];
3611
+ constructor(fMediator, fComponentsStore, fOutput, onPointerDownPosition) {
3612
+ this.fMediator = fMediator;
3613
+ this.fComponentsStore = fComponentsStore;
3614
+ this.fOutput = fOutput;
3615
+ this.onPointerDownPosition = onPointerDownPosition;
3616
+ }
3617
+ prepareDragSequence() {
3618
+ this._initializeSnapConnection();
3619
+ this._initializeConnectionForCreate();
3620
+ this.canBeConnectedInputs = this.fMediator.send(new GetAllCanBeConnectedInputPositionsRequest(this.fOutput.fId));
3621
+ this.fOutputWithRect = this.fMediator.send(new GetConnectorWithRectRequest(this.fOutput));
3622
+ this.toConnectorRect = RoundedRect.fromRect(RectExtensions.initialize(this.onPointerDownPosition.x, this.onPointerDownPosition.y));
3623
+ this.fConnection.show();
3624
+ this.onPointerMove(PointExtensions.initialize());
3625
+ }
3626
+ _initializeSnapConnection() {
3627
+ if (!this.fSnapConnection) {
3628
+ return;
3629
+ }
3630
+ this.fSnapConnection.fOutputId = this.fOutput.fId;
3631
+ this.fSnapConnection.initialize();
3632
+ }
3633
+ _initializeConnectionForCreate() {
3634
+ this.fConnection.fOutputId = this.fOutput.fId;
3635
+ this.fConnection.initialize();
3636
+ }
3637
+ onPointerMove(difference) {
3638
+ const fClosestInput = this._findClosestInput(difference);
3639
+ this._drawConnectionForCreate(this.toConnectorRect.addPoint(difference), fClosestInput?.fConnector.fConnectableSide || EFConnectableSide.TOP);
3640
+ if (this.fSnapConnection) {
3641
+ this._drawSnapConnection(this._getClosestInputForSnapConnection(fClosestInput));
3642
+ }
3643
+ }
3644
+ _drawConnectionForCreate(fInputRect, fSide) {
3645
+ const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fInputRect, this.fConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, fSide));
3646
+ this.fConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, fSide);
3647
+ this.fConnection.redraw();
3648
+ }
3649
+ _drawSnapConnection(fClosestInput) {
3650
+ if (fClosestInput) {
3651
+ const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fClosestInput.fRect, this.fSnapConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide));
3652
+ this.fSnapConnection.show();
3653
+ this.fSnapConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, fClosestInput.fConnector.fConnectableSide);
3654
+ this.fSnapConnection.redraw();
3655
+ }
3656
+ else {
3657
+ this.fSnapConnection?.hide();
3658
+ }
3659
+ }
3660
+ getClosetInput(difference) {
3661
+ if (!this.fSnapConnection) {
3662
+ return undefined;
3663
+ }
3664
+ return this._getClosestInputForSnapConnection(this._findClosestInput(difference));
3665
+ }
3666
+ _findClosestInput(difference) {
3667
+ return this.fMediator.send(new FindClosestInputRequest(Point.fromPoint(this.toConnectorRect).add(difference), this.canBeConnectedInputs));
3668
+ }
3669
+ _getClosestInputForSnapConnection(fClosestInput) {
3670
+ return fClosestInput && fClosestInput.distance < this.fSnapConnection.fSnapThreshold ? fClosestInput : undefined;
3671
+ }
3672
+ onPointerUp() {
3673
+ this.fConnection.redraw();
3674
+ this.fConnection.hide();
3675
+ this.fSnapConnection?.hide();
3676
+ }
3677
+ }
3678
+
3612
3679
  class GetInputUnderPointerRequest {
3613
3680
  event;
3614
3681
  dragHandler;
@@ -3737,9 +3804,15 @@ let CreateConnectionFinalizeExecution = class CreateConnectionFinalizeExecution
3737
3804
  this.fMediator = fMediator;
3738
3805
  }
3739
3806
  handle(request) {
3807
+ if (!this._isValid()) {
3808
+ return;
3809
+ }
3740
3810
  this.emitEvent(request.event);
3741
3811
  this.dragHandler.onPointerUp();
3742
3812
  }
3813
+ _isValid() {
3814
+ return this.fDraggableDataContext.draggableItems.some((x) => x instanceof CreateConnectionDragHandler);
3815
+ }
3743
3816
  getTargetOutput(output) {
3744
3817
  if (!output) {
3745
3818
  throw OutputNotFound(this.dragHandler.fConnection.fOutputId);
@@ -3768,92 +3841,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
3768
3841
  type: Injectable
3769
3842
  }], ctorParameters: () => [{ type: FComponentsStore }, { type: FDraggableDataContext }, { type: i2.FMediator }] });
3770
3843
 
3771
- class CreateConnectionDragHandler {
3772
- fMediator;
3773
- fComponentsStore;
3774
- fOutput;
3775
- onPointerDownPosition;
3776
- toConnectorRect = new RoundedRect();
3777
- get fConnection() {
3778
- return this.fComponentsStore.fTempConnection;
3779
- }
3780
- get fSnapConnection() {
3781
- return this.fComponentsStore.fSnapConnection;
3782
- }
3783
- fOutputWithRect;
3784
- canBeConnectedInputs = [];
3785
- constructor(fMediator, fComponentsStore, fOutput, onPointerDownPosition) {
3786
- this.fMediator = fMediator;
3787
- this.fComponentsStore = fComponentsStore;
3788
- this.fOutput = fOutput;
3789
- this.onPointerDownPosition = onPointerDownPosition;
3790
- }
3791
- prepareDragSequence() {
3792
- if (this.fSnapConnection) {
3793
- this.fSnapConnection.fOutputId = this.fOutput.fId;
3794
- this.fSnapConnection.initialize();
3795
- this.canBeConnectedInputs = this.fMediator.send(new GetAllCanBeConnectedInputPositionsRequest(this.fOutput.fId));
3796
- }
3797
- this.fConnection.fOutputId = this.fOutput.fId;
3798
- this.fConnection.initialize();
3799
- this.fOutputWithRect = this.fMediator.send(new GetConnectorWithRectRequest(this.fOutput));
3800
- this.toConnectorRect = RoundedRect.fromRect(RectExtensions.initialize(this.onPointerDownPosition.x, this.onPointerDownPosition.y));
3801
- this.fConnection.show();
3802
- this.onPointerMove(PointExtensions.initialize());
3803
- }
3804
- onPointerMove(difference) {
3805
- this.drawTempConnection(this.toConnectorRect.addPoint(difference));
3806
- if (this.fSnapConnection) {
3807
- this.drawSnapConnection(this.getClosetInput(difference));
3808
- }
3809
- }
3810
- drawTempConnection(fInputRect) {
3811
- const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fInputRect, this.fConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, EFConnectableSide.TOP));
3812
- this.fConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, EFConnectableSide.TOP);
3813
- this.fConnection.redraw();
3814
- }
3815
- drawSnapConnection(fInputWithRect) {
3816
- if (fInputWithRect) {
3817
- const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fInputWithRect.fRect, this.fSnapConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, fInputWithRect.fConnector.fConnectableSide));
3818
- this.fSnapConnection.show();
3819
- this.fSnapConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, fInputWithRect.fConnector.fConnectableSide);
3820
- this.fSnapConnection.redraw();
3821
- }
3822
- else {
3823
- this.fSnapConnection?.hide();
3824
- }
3825
- }
3826
- getClosetInput(difference) {
3827
- if (!this.fSnapConnection) {
3828
- return undefined;
3829
- }
3830
- return this.fMediator.send(new FindClosestInputUsingSnapThresholdRequest(Point.fromPoint(this.toConnectorRect).add(difference), this.canBeConnectedInputs, this.fSnapConnection.fSnapThreshold));
3831
- }
3832
- onPointerUp() {
3833
- this.fConnection.redraw();
3834
- this.fConnection.hide();
3835
- this.fSnapConnection?.hide();
3836
- }
3837
- }
3838
-
3839
- let CreateConnectionFinalizeValidator = class CreateConnectionFinalizeValidator {
3840
- fDraggableDataContext;
3841
- constructor(fDraggableDataContext) {
3842
- this.fDraggableDataContext = fDraggableDataContext;
3843
- }
3844
- handle(request) {
3845
- return this.fDraggableDataContext.draggableItems.some((x) => x instanceof CreateConnectionDragHandler);
3846
- }
3847
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CreateConnectionFinalizeValidator, deps: [{ token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
3848
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CreateConnectionFinalizeValidator });
3849
- };
3850
- CreateConnectionFinalizeValidator = __decorate([
3851
- FValidatorRegister(CreateConnectionFinalizeRequest)
3852
- ], CreateConnectionFinalizeValidator);
3853
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CreateConnectionFinalizeValidator, decorators: [{
3854
- type: Injectable
3855
- }], ctorParameters: () => [{ type: FDraggableDataContext }] });
3856
-
3857
3844
  class CreateConnectionDragHandlerRequest {
3858
3845
  onPointerDownPosition;
3859
3846
  connector;
@@ -4094,63 +4081,6 @@ class ReassignConnectionFinalizeRequest {
4094
4081
  }
4095
4082
  }
4096
4083
 
4097
- class FReassignConnectionEvent {
4098
- fConnectionId;
4099
- fOutputId;
4100
- oldFInputId;
4101
- newFInputId;
4102
- fDropPosition;
4103
- constructor(fConnectionId, fOutputId, oldFInputId, newFInputId, fDropPosition) {
4104
- this.fConnectionId = fConnectionId;
4105
- this.fOutputId = fOutputId;
4106
- this.oldFInputId = oldFInputId;
4107
- this.newFInputId = newFInputId;
4108
- this.fDropPosition = fDropPosition;
4109
- }
4110
- }
4111
-
4112
- let ReassignConnectionFinalizeExecution = class ReassignConnectionFinalizeExecution {
4113
- fComponentsStore;
4114
- fDraggableDataContext;
4115
- fMediator;
4116
- get fDraggable() {
4117
- return this.fComponentsStore.fDraggable;
4118
- }
4119
- get dragHandler() {
4120
- return this.fDraggableDataContext.draggableItems[0];
4121
- }
4122
- constructor(fComponentsStore, fDraggableDataContext, fMediator) {
4123
- this.fComponentsStore = fComponentsStore;
4124
- this.fDraggableDataContext = fDraggableDataContext;
4125
- this.fMediator = fMediator;
4126
- }
4127
- handle(request) {
4128
- this.emitEvent(request.event);
4129
- this.dragHandler.onPointerUp();
4130
- }
4131
- emitEvent(event) {
4132
- const input = this.getInputUnderPointer(event);
4133
- if (!!input && !this.isReassignToDifferentInput(input)) {
4134
- return;
4135
- }
4136
- this.fDraggable.fReassignConnection.emit(new FReassignConnectionEvent(this.dragHandler.fConnection.fId, this.dragHandler.fConnection.fOutputId, this.dragHandler.fConnection.fInputId, input?.fId, event.getPosition()));
4137
- }
4138
- getInputUnderPointer(event) {
4139
- return this.fMediator.send(new GetInputUnderPointerRequest(event, this.dragHandler));
4140
- }
4141
- isReassignToDifferentInput(inputsUnderPointer) {
4142
- return this.dragHandler.fConnection.fInputId !== inputsUnderPointer.fId;
4143
- }
4144
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeExecution, deps: [{ token: FComponentsStore }, { token: FDraggableDataContext }, { token: i2.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
4145
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeExecution });
4146
- };
4147
- ReassignConnectionFinalizeExecution = __decorate([
4148
- FExecutionRegister(ReassignConnectionFinalizeRequest)
4149
- ], ReassignConnectionFinalizeExecution);
4150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeExecution, decorators: [{
4151
- type: Injectable
4152
- }], ctorParameters: () => [{ type: FComponentsStore }, { type: FDraggableDataContext }, { type: i2.FMediator }] });
4153
-
4154
4084
  class ReassignConnectionDragHandler {
4155
4085
  fMediator;
4156
4086
  fComponentsStore;
@@ -4168,15 +4098,19 @@ class ReassignConnectionDragHandler {
4168
4098
  this.fConnection = fConnection;
4169
4099
  }
4170
4100
  prepareDragSequence() {
4171
- if (this.fSnapConnection) {
4172
- this.fSnapConnection.fOutputId = this.fConnection.fOutputId;
4173
- this.fSnapConnection.initialize();
4174
- this.canBeConnectedInputs = this.fMediator.send(new GetAllCanBeConnectedInputPositionsRequest(this.fConnection.fOutputId));
4175
- }
4101
+ this._initializeSnapConnection();
4102
+ this.canBeConnectedInputs = this.fMediator.send(new GetAllCanBeConnectedInputPositionsRequest(this.fConnection.fOutputId));
4176
4103
  this.fOutputWithRect = this.fMediator.send(new GetConnectorWithRectRequest(this.getOutput()));
4177
4104
  this.fInputWithRect = this.fMediator.send(new GetConnectorWithRectRequest(this.getInput()));
4178
4105
  this.toConnectorRect = RoundedRect.fromRect(RectExtensions.initialize(this.fConnection.line.point2.x, this.fConnection.line.point2.y));
4179
4106
  }
4107
+ _initializeSnapConnection() {
4108
+ if (!this.fSnapConnection) {
4109
+ return;
4110
+ }
4111
+ this.fSnapConnection.fOutputId = this.fConnection.fOutputId;
4112
+ this.fSnapConnection.initialize();
4113
+ }
4180
4114
  getOutput() {
4181
4115
  return this.fComponentsStore.fOutputs.find((x) => x.fId === this.fConnection.fOutputId);
4182
4116
  }
@@ -4184,24 +4118,22 @@ class ReassignConnectionDragHandler {
4184
4118
  return this.fComponentsStore.fInputs.find((x) => x.fId === this.fConnection.fInputId);
4185
4119
  }
4186
4120
  onPointerMove(difference) {
4187
- this.drawConnection({
4188
- fRect: this.toConnectorRect.addPoint(difference),
4189
- fConnector: this.fInputWithRect.fConnector
4190
- });
4121
+ const fClosestInput = this._findClosestInput(difference);
4122
+ this._drawConnection(this.toConnectorRect.addPoint(difference), fClosestInput?.fConnector.fConnectableSide || this.fInputWithRect.fConnector.fConnectableSide);
4191
4123
  if (this.fSnapConnection) {
4192
- this.drawSnapConnection(this.getClosetInput(difference));
4124
+ this._drawSnapConnection(this._getClosestInputForSnapConnection(fClosestInput));
4193
4125
  }
4194
4126
  }
4195
- drawConnection(fInputWithRect) {
4196
- const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fInputWithRect.fRect, this.fConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, fInputWithRect.fConnector.fConnectableSide));
4197
- this.fConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, fInputWithRect.fConnector.fConnectableSide);
4127
+ _drawConnection(fInputRect, fSide) {
4128
+ const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fInputRect, this.fConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, fSide));
4129
+ this.fConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, fSide);
4198
4130
  this.fConnection.redraw();
4199
4131
  }
4200
- drawSnapConnection(fInputWithRect) {
4201
- if (fInputWithRect) {
4202
- const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fInputWithRect.fRect, this.fSnapConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, fInputWithRect.fConnector.fConnectableSide));
4132
+ _drawSnapConnection(fClosestInput) {
4133
+ if (fClosestInput) {
4134
+ const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fClosestInput.fRect, this.fSnapConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide));
4203
4135
  this.fSnapConnection.show();
4204
- this.fSnapConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, fInputWithRect.fConnector.fConnectableSide);
4136
+ this.fSnapConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, fClosestInput.fConnector.fConnectableSide);
4205
4137
  this.fSnapConnection.redraw();
4206
4138
  }
4207
4139
  else {
@@ -4212,31 +4144,82 @@ class ReassignConnectionDragHandler {
4212
4144
  if (!this.fSnapConnection) {
4213
4145
  return undefined;
4214
4146
  }
4215
- return this.fMediator.send(new FindClosestInputUsingSnapThresholdRequest(Point.fromPoint(this.toConnectorRect).add(difference), this.canBeConnectedInputs, this.fSnapConnection.fSnapThreshold));
4147
+ return this._getClosestInputForSnapConnection(this._findClosestInput(difference));
4148
+ }
4149
+ _findClosestInput(difference) {
4150
+ return this.fMediator.send(new FindClosestInputRequest(Point.fromPoint(this.toConnectorRect).add(difference), this.canBeConnectedInputs));
4151
+ }
4152
+ _getClosestInputForSnapConnection(fClosestInput) {
4153
+ return fClosestInput && fClosestInput.distance < this.fSnapConnection.fSnapThreshold ? fClosestInput : undefined;
4216
4154
  }
4217
4155
  onPointerUp() {
4218
- this.drawConnection(this.fInputWithRect);
4156
+ this._drawConnection(this.fInputWithRect.fRect, this.fInputWithRect.fConnector.fConnectableSide);
4219
4157
  this.fSnapConnection?.hide();
4220
4158
  }
4221
4159
  }
4222
4160
 
4223
- let ReassignConnectionFinalizeValidator = class ReassignConnectionFinalizeValidator {
4161
+ class FReassignConnectionEvent {
4162
+ fConnectionId;
4163
+ fOutputId;
4164
+ oldFInputId;
4165
+ newFInputId;
4166
+ fDropPosition;
4167
+ constructor(fConnectionId, fOutputId, oldFInputId, newFInputId, fDropPosition) {
4168
+ this.fConnectionId = fConnectionId;
4169
+ this.fOutputId = fOutputId;
4170
+ this.oldFInputId = oldFInputId;
4171
+ this.newFInputId = newFInputId;
4172
+ this.fDropPosition = fDropPosition;
4173
+ }
4174
+ }
4175
+
4176
+ let ReassignConnectionFinalizeExecution = class ReassignConnectionFinalizeExecution {
4177
+ fComponentsStore;
4224
4178
  fDraggableDataContext;
4225
- constructor(fDraggableDataContext) {
4179
+ fMediator;
4180
+ get fDraggable() {
4181
+ return this.fComponentsStore.fDraggable;
4182
+ }
4183
+ get dragHandler() {
4184
+ return this.fDraggableDataContext.draggableItems[0];
4185
+ }
4186
+ constructor(fComponentsStore, fDraggableDataContext, fMediator) {
4187
+ this.fComponentsStore = fComponentsStore;
4226
4188
  this.fDraggableDataContext = fDraggableDataContext;
4189
+ this.fMediator = fMediator;
4227
4190
  }
4228
4191
  handle(request) {
4192
+ if (!this._isValid()) {
4193
+ return;
4194
+ }
4195
+ this.emitEvent(request.event);
4196
+ this.dragHandler.onPointerUp();
4197
+ }
4198
+ _isValid() {
4229
4199
  return this.fDraggableDataContext.draggableItems.some((x) => x instanceof ReassignConnectionDragHandler);
4230
4200
  }
4231
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeValidator, deps: [{ token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
4232
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeValidator });
4201
+ emitEvent(event) {
4202
+ const input = this.getInputUnderPointer(event);
4203
+ if (!!input && !this.isReassignToDifferentInput(input)) {
4204
+ return;
4205
+ }
4206
+ this.fDraggable.fReassignConnection.emit(new FReassignConnectionEvent(this.dragHandler.fConnection.fId, this.dragHandler.fConnection.fOutputId, this.dragHandler.fConnection.fInputId, input?.fId, event.getPosition()));
4207
+ }
4208
+ getInputUnderPointer(event) {
4209
+ return this.fMediator.send(new GetInputUnderPointerRequest(event, this.dragHandler));
4210
+ }
4211
+ isReassignToDifferentInput(inputsUnderPointer) {
4212
+ return this.dragHandler.fConnection.fInputId !== inputsUnderPointer.fId;
4213
+ }
4214
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeExecution, deps: [{ token: FComponentsStore }, { token: FDraggableDataContext }, { token: i2.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
4215
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeExecution });
4233
4216
  };
4234
- ReassignConnectionFinalizeValidator = __decorate([
4235
- FValidatorRegister(ReassignConnectionFinalizeRequest)
4236
- ], ReassignConnectionFinalizeValidator);
4237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeValidator, decorators: [{
4217
+ ReassignConnectionFinalizeExecution = __decorate([
4218
+ FExecutionRegister(ReassignConnectionFinalizeRequest)
4219
+ ], ReassignConnectionFinalizeExecution);
4220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeExecution, decorators: [{
4238
4221
  type: Injectable
4239
- }], ctorParameters: () => [{ type: FDraggableDataContext }] });
4222
+ }], ctorParameters: () => [{ type: FComponentsStore }, { type: FDraggableDataContext }, { type: i2.FMediator }] });
4240
4223
 
4241
4224
  class ReassignConnectionPreparationRequest {
4242
4225
  event;
@@ -4340,7 +4323,6 @@ const CONNECTIONS_PROVIDERS = [
4340
4323
  GetInputUnderPointerExecution,
4341
4324
  GetInputUnderPointerValidator,
4342
4325
  CreateConnectionFinalizeExecution,
4343
- CreateConnectionFinalizeValidator,
4344
4326
  CreateConnectionDragHandlerExecution,
4345
4327
  CreateConnectionFromOutletPreparationExecution,
4346
4328
  GetCanBeConnectedOutputByOutletExecution,
@@ -4350,7 +4332,6 @@ const CONNECTIONS_PROVIDERS = [
4350
4332
  CreateConnectionPreparationExecution,
4351
4333
  CreateConnectionPreparationValidator,
4352
4334
  ReassignConnectionFinalizeExecution,
4353
- ReassignConnectionFinalizeValidator,
4354
4335
  ReassignConnectionPreparationExecution,
4355
4336
  ReassignConnectionPreparationValidator,
4356
4337
  ];
@@ -4386,7 +4367,7 @@ let GetNormalizedParentNodeRectExecution = class GetNormalizedParentNodeRectExec
4386
4367
  return RectExtensions.initialize(rect.x + padding[0], rect.y + padding[1], rect.width - padding[0] - padding[2], rect.height - padding[1] - padding[3]);
4387
4368
  }
4388
4369
  _getNodeRect(fNode) {
4389
- return this.fMediator.send(new GetNormalizedElementRectRequest(fNode.hostElement));
4370
+ return this.fMediator.send(new GetNormalizedElementRectRequest(fNode.hostElement, false));
4390
4371
  }
4391
4372
  getNodePadding(node, rect) {
4392
4373
  return this.fMediator.send(new GetNodePaddingRequest(node, rect));
@@ -4481,14 +4462,17 @@ class FNodeIntersectedWithConnections {
4481
4462
  }
4482
4463
 
4483
4464
  class IsConnectionUnderNodeRequest {
4465
+ fNode;
4466
+ constructor(fNode) {
4467
+ this.fNode = fNode;
4468
+ }
4484
4469
  }
4485
4470
 
4486
4471
  let IsConnectionUnderNodeExecution = class IsConnectionUnderNodeExecution {
4487
4472
  _fMediator = inject(FMediator);
4488
4473
  _fComponentsStore = inject(FComponentsStore);
4489
- _fDraggableDataContext = inject(FDraggableDataContext);
4490
4474
  handle(request) {
4491
- const fNode = this._getDraggedNodeUnderPointer();
4475
+ const fNode = request.fNode;
4492
4476
  const fOutputConnectors = this._getNodeOutputConnectors(fNode);
4493
4477
  const fInputConnectors = this._getNodeInputConnectors(fNode);
4494
4478
  const canBeConnectedOutputs = fOutputConnectors.filter((x) => x.canBeConnected);
@@ -4504,9 +4488,6 @@ let IsConnectionUnderNodeExecution = class IsConnectionUnderNodeExecution {
4504
4488
  }
4505
4489
  }
4506
4490
  }
4507
- _getDraggedNodeUnderPointer() {
4508
- return this._fDraggableDataContext.draggableItems[0].fNode;
4509
- }
4510
4491
  _getNodeOutputConnectors(fNode) {
4511
4492
  return this._fComponentsStore.fOutputs.filter((x) => fNode.isContains(x.hostElement));
4512
4493
  }
@@ -4529,7 +4510,7 @@ let IsConnectionUnderNodeExecution = class IsConnectionUnderNodeExecution {
4529
4510
  return connectors.map((x) => x.fId);
4530
4511
  }
4531
4512
  _calculateConnectionsUnderNode(fNode) {
4532
- const fNodeRect = this._fMediator.send(new GetNormalizedElementRectRequest(fNode.hostElement));
4513
+ const fNodeRect = this._fMediator.send(new GetNormalizedElementRectRequest(fNode.hostElement, true));
4533
4514
  return this._fComponentsStore.fConnections.filter((x) => {
4534
4515
  return this._isConnectionHasIntersectionsWithNode(x, fNodeRect);
4535
4516
  });
@@ -4547,27 +4528,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
4547
4528
  type: Injectable
4548
4529
  }] });
4549
4530
 
4550
- let IsConnectionUnderNodeValidator = class IsConnectionUnderNodeValidator {
4551
- _fDraggableDataContext = inject(FDraggableDataContext);
4552
- handle(request) {
4553
- return !!this._fDraggableDataContext.draggableItems.length &&
4554
- this._fDraggableDataContext.draggableItems[0] instanceof NodeDragHandler;
4555
- }
4556
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IsConnectionUnderNodeValidator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4557
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IsConnectionUnderNodeValidator });
4558
- };
4559
- IsConnectionUnderNodeValidator = __decorate([
4560
- FValidatorRegister(IsConnectionUnderNodeRequest)
4561
- ], IsConnectionUnderNodeValidator);
4562
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IsConnectionUnderNodeValidator, decorators: [{
4563
- type: Injectable
4564
- }] });
4565
-
4566
4531
  const DRAG_AND_DROP_COMMON_PROVIDERS = [
4567
4532
  GetNormalizedParentNodeRectExecution,
4568
4533
  IsArrayHasParentNodeExecution,
4569
4534
  IsConnectionUnderNodeExecution,
4570
- IsConnectionUnderNodeValidator,
4571
4535
  ];
4572
4536
 
4573
4537
  class IsDragStartedRequest {
@@ -4631,7 +4595,7 @@ class ConnectionBaseDragHandler {
4631
4595
  connectorNotFoundPrefix(message) {
4632
4596
  return `ConnectionDragHandler Error: Connection From (fOutput)${this.connection.fOutputId} To (fInput)${this.connection.fInputId}. ${message}. Please ensure that all f-connections are associated with existing connectors`;
4633
4597
  }
4634
- getDifference(difference, restrictions) {
4598
+ getRestrictedDifference(difference, restrictions) {
4635
4599
  return {
4636
4600
  x: Math.min(Math.max(difference.x, restrictions.min.x), restrictions.max.x),
4637
4601
  y: Math.min(Math.max(difference.y, restrictions.min.y), restrictions.max.y)
@@ -4664,7 +4628,7 @@ class ConnectionDragHandler extends ConnectionBaseDragHandler {
4664
4628
  this.redrawConnection(this.getNewLineValue(difference));
4665
4629
  }
4666
4630
  getNewLineValue(difference) {
4667
- return this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(RoundedRect.fromRoundedRect(this.fOutputWithRect.fRect).addPoint(this.getDifference({ ...difference }, this.sourceRestrictions)), RoundedRect.fromRoundedRect(this.fInputWithRect.fRect).addPoint(this.getDifference({ ...difference }, this.targetRestrictions)), this.connection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, this.fInputWithRect.fConnector.fConnectableSide));
4631
+ return this.fMediator.execute(new CalculateConnectionLineByBehaviorRequest(RoundedRect.fromRoundedRect(this.fOutputWithRect.fRect).addPoint(this.getRestrictedDifference({ ...difference }, this.sourceRestrictions)), RoundedRect.fromRoundedRect(this.fInputWithRect.fRect).addPoint(this.getRestrictedDifference({ ...difference }, this.targetRestrictions)), this.connection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, this.fInputWithRect.fConnector.fConnectableSide));
4668
4632
  }
4669
4633
  }
4670
4634
 
@@ -4680,7 +4644,7 @@ class ConnectionTargetDragHandler extends ConnectionBaseDragHandler {
4680
4644
  this.redrawConnection(this.getNewLineValue(difference));
4681
4645
  }
4682
4646
  getNewLineValue(difference) {
4683
- return this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(RoundedRect.fromRoundedRect(this.fOutputWithRect.fRect), RoundedRect.fromRoundedRect(this.fInputWithRect.fRect).addPoint(this.getDifference({ ...difference }, { min: this.minDistance, max: this.maxDistance })), this.connection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, this.fInputWithRect.fConnector.fConnectableSide));
4647
+ return this.fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, RoundedRect.fromRoundedRect(this.fInputWithRect.fRect).addPoint(this.getRestrictedDifference({ ...difference }, { min: this.minDistance, max: this.maxDistance })), this.connection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, this.fInputWithRect.fConnector.fConnectableSide));
4684
4648
  }
4685
4649
  }
4686
4650
 
@@ -4769,7 +4733,7 @@ class ConnectionSourceDragHandler extends ConnectionBaseDragHandler {
4769
4733
  this.redrawConnection(this.getNewLineValue(difference));
4770
4734
  }
4771
4735
  getNewLineValue(difference) {
4772
- return this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(RoundedRect.fromRoundedRect(this.fOutputWithRect.fRect).addPoint(this.getDifference({ ...difference }, { min: this.minDistance, max: this.maxDistance })), RoundedRect.fromRoundedRect(this.fInputWithRect.fRect), this.connection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, this.fInputWithRect.fConnector.fConnectableSide));
4736
+ return this.fMediator.execute(new CalculateConnectionLineByBehaviorRequest(RoundedRect.fromRoundedRect(this.fOutputWithRect.fRect).addPoint(this.getRestrictedDifference({ ...difference }, { min: this.minDistance, max: this.maxDistance })), this.fInputWithRect.fRect, this.connection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, this.fInputWithRect.fConnector.fConnectableSide));
4773
4737
  }
4774
4738
  }
4775
4739
 
@@ -4858,7 +4822,7 @@ let GetNodeMoveRestrictionsExecution = class GetNodeMoveRestrictionsExecution {
4858
4822
  return { ...DEFAULT_RESTRICTIONS };
4859
4823
  }
4860
4824
  _getNodeRect(fNode) {
4861
- return this._fMediator.send(new GetNormalizedElementRectRequest(fNode.hostElement));
4825
+ return this._fMediator.send(new GetNormalizedElementRectRequest(fNode.hostElement, false));
4862
4826
  }
4863
4827
  getParentNodeRect(fNode) {
4864
4828
  return this._fMediator.send(new GetNormalizedParentNodeRectRequest(fNode));
@@ -5044,40 +5008,55 @@ class NodeDragToParentDragHandler {
5044
5008
  fComponentsStore;
5045
5009
  fDraggableDataContext;
5046
5010
  notDraggedNodesRects;
5047
- get transform() {
5011
+ DEBOUNCE_TIME = 15;
5012
+ get _transform() {
5048
5013
  return this.fComponentsStore.fCanvas.transform;
5049
5014
  }
5050
- onPointerDownPosition = PointExtensions.initialize();
5015
+ _onPointerDownPosition = PointExtensions.initialize();
5016
+ _debounceTimer = null;
5051
5017
  fNodeWithRect = null;
5052
5018
  constructor(fComponentsStore, fDraggableDataContext, notDraggedNodesRects) {
5053
5019
  this.fComponentsStore = fComponentsStore;
5054
5020
  this.fDraggableDataContext = fDraggableDataContext;
5055
5021
  this.notDraggedNodesRects = notDraggedNodesRects;
5056
- this.onPointerDownPosition = this.fDraggableDataContext.onPointerDownPosition;
5022
+ this._onPointerDownPosition = this.fDraggableDataContext.onPointerDownPosition;
5057
5023
  }
5058
- onPointerMove(difference) {
5059
- let point = Point.fromPoint(this.onPointerDownPosition).add(difference).mult(this.transform.scale);
5060
- const isInclude = this.notDraggedNodesRects.findIndex((x) => RectExtensions.isIncludePoint(x.rect, point));
5061
- if (isInclude !== -1) {
5062
- this.markIncludeNode(this.notDraggedNodesRects[isInclude]);
5024
+ _toggleParentNode(difference) {
5025
+ const isInclude = this._isNodeInsideAnotherNode(this._getNewPosition(difference));
5026
+ if (isInclude) {
5027
+ this._markIncludeNode(isInclude);
5063
5028
  }
5064
5029
  else {
5065
- this.unmarkIncludeNode();
5030
+ this._unmarkIncludeNode();
5031
+ }
5032
+ }
5033
+ _getNewPosition(difference) {
5034
+ return Point.fromPoint(this._onPointerDownPosition).add(difference).mult(this._transform.scale);
5035
+ }
5036
+ _isNodeInsideAnotherNode(point) {
5037
+ return this.notDraggedNodesRects.find((x) => RectExtensions.isIncludePoint(x.rect, point));
5038
+ }
5039
+ onPointerMove(difference) {
5040
+ if (this._debounceTimer) {
5041
+ clearTimeout(this._debounceTimer);
5066
5042
  }
5043
+ this._debounceTimer = setTimeout(() => this._toggleParentNode(difference), this.DEBOUNCE_TIME);
5067
5044
  }
5068
- markIncludeNode(nodeWithRect) {
5069
- this.unmarkIncludeNode();
5045
+ _markIncludeNode(nodeWithRect) {
5046
+ this._unmarkIncludeNode();
5070
5047
  this.fNodeWithRect = nodeWithRect;
5071
5048
  nodeWithRect.node.setClass('f-parent-for-drop');
5072
5049
  }
5073
- unmarkIncludeNode() {
5074
- if (this.fNodeWithRect) {
5075
- this.fNodeWithRect.node.removeClass('f-parent-for-drop');
5076
- }
5050
+ _unmarkIncludeNode() {
5051
+ this.fNodeWithRect?.node.removeClass('f-parent-for-drop');
5077
5052
  this.fNodeWithRect = null;
5078
5053
  }
5079
5054
  onPointerUp() {
5080
- this.unmarkIncludeNode();
5055
+ this._unmarkIncludeNode();
5056
+ if (this._debounceTimer) {
5057
+ clearTimeout(this._debounceTimer);
5058
+ this._debounceTimer = null;
5059
+ }
5081
5060
  }
5082
5061
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeDragToParentDragHandler, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
5083
5062
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: NodeDragToParentDragHandler, ngImport: i0 });
@@ -5105,12 +5084,19 @@ let NodeDragToParentFinalizeExecution = class NodeDragToParentFinalizeExecution
5105
5084
  this.fDraggableDataContext = fDraggableDataContext;
5106
5085
  }
5107
5086
  handle(request) {
5087
+ if (!this._isValid()) {
5088
+ return;
5089
+ }
5108
5090
  const item = this.getDragHandleItem();
5109
5091
  if (item.fNodeWithRect) {
5110
5092
  this.emitDroppedChildrenEvent(item.fNodeWithRect.node.fId, request.event);
5111
5093
  }
5112
5094
  item.onPointerUp?.();
5113
5095
  }
5096
+ _isValid() {
5097
+ return this.fDraggableDataContext.draggableItems
5098
+ .some((x) => x instanceof NodeDragToParentDragHandler);
5099
+ }
5114
5100
  emitDroppedChildrenEvent(fTargetId, event) {
5115
5101
  this.fComponentsStore.fDraggable?.fDropToGroup.emit(new FDropToGroupEvent(fTargetId, this.getDraggedNodeIds(), event.getPosition()));
5116
5102
  }
@@ -5140,28 +5126,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
5140
5126
  type: Injectable
5141
5127
  }], ctorParameters: () => [{ type: FComponentsStore }, { type: FDraggableDataContext }] });
5142
5128
 
5143
- let NodeDragToParentFinalizeValidator = class NodeDragToParentFinalizeValidator {
5144
- fDraggableDataContext;
5145
- constructor(fDraggableDataContext) {
5146
- this.fDraggableDataContext = fDraggableDataContext;
5147
- }
5148
- handle(request) {
5149
- return this.fDraggableDataContext.draggableItems
5150
- .some((x) => x instanceof NodeDragToParentDragHandler);
5151
- }
5152
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeDragToParentFinalizeValidator, deps: [{ token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
5153
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeDragToParentFinalizeValidator });
5154
- };
5155
- NodeDragToParentFinalizeValidator = __decorate([
5156
- FValidatorRegister(NodeDragToParentFinalizeRequest)
5157
- ], NodeDragToParentFinalizeValidator);
5158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeDragToParentFinalizeValidator, decorators: [{
5159
- type: Injectable
5160
- }], ctorParameters: () => [{ type: FDraggableDataContext }] });
5161
-
5162
5129
  const NODE_DRAG_TO_PARENT_FINALIZE_PROVIDERS = [
5163
5130
  NodeDragToParentFinalizeExecution,
5164
- NodeDragToParentFinalizeValidator,
5165
5131
  ];
5166
5132
 
5167
5133
  class NodeDragToParentPreparationRequest {
@@ -5195,23 +5161,30 @@ let NodeDragToParentPreparationExecution = class NodeDragToParentPreparationExec
5195
5161
  if (!fNode) {
5196
5162
  throw new Error('Node not found');
5197
5163
  }
5198
- this.fDraggableDataContext.draggableItems.push(new NodeDragToParentDragHandler(this.fComponentsStore, this.fDraggableDataContext, this.getNotDraggedNodesRects()));
5164
+ this.fDraggableDataContext.draggableItems.push(new NodeDragToParentDragHandler(this.fComponentsStore, this.fDraggableDataContext, this._getNotDraggedNodesRects()));
5199
5165
  }
5200
- getNotDraggedNodesRects() {
5201
- return this.getNotDraggedNodes(this.getDraggedNodes()).map((x) => {
5202
- const rect = this.fMediator.send(new GetNormalizedElementRectRequest(x.hostElement));
5166
+ _getNotDraggedNodesRects() {
5167
+ const draggedNodes = this._addParentNodes(this._getNodesBeingDragged());
5168
+ return this._getNotDraggedNodes(draggedNodes).map((x) => {
5169
+ const rect = this.fMediator.send(new GetNormalizedElementRectRequest(x.hostElement, false));
5203
5170
  return {
5204
5171
  node: x,
5205
5172
  rect: RectExtensions.initialize(rect.x + this.fCanvasPosition.x, rect.y + this.fCanvasPosition.y, rect.width * this.transform.scale, rect.height * this.transform.scale)
5206
5173
  };
5207
5174
  });
5208
5175
  }
5209
- getDraggedNodes() {
5176
+ _getNodesBeingDragged() {
5210
5177
  return this.fDraggableDataContext.draggableItems
5211
5178
  .filter((x) => x instanceof NodeDragHandler)
5212
5179
  .map((x) => x.fNode);
5213
5180
  }
5214
- getNotDraggedNodes(draggedNodes) {
5181
+ _addParentNodes(fNodes) {
5182
+ return fNodes.reduce((result, x) => {
5183
+ result.push(x, ...this.fMediator.send(new GetParentNodesRequest(x)));
5184
+ return result;
5185
+ }, []);
5186
+ }
5187
+ _getNotDraggedNodes(draggedNodes) {
5215
5188
  return this.fNodes.filter((x) => !draggedNodes.includes(x));
5216
5189
  }
5217
5190
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeDragToParentPreparationExecution, deps: [{ token: i2.FMediator }, { token: FDraggableDataContext }, { token: FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -5363,13 +5336,19 @@ let NodeMoveFinalizeExecution = class NodeMoveFinalizeExecution {
5363
5336
  return this._fComponentsStore.fFlow.hostElement;
5364
5337
  }
5365
5338
  handle(request) {
5339
+ if (!this._isValid()) {
5340
+ return;
5341
+ }
5366
5342
  const difference = this._getDifferenceWithLineAlignment(this._getDifferenceBetweenPreparationAndFinalize(request.event.getPosition()));
5367
5343
  const firstNodeOrGroup = this._fDraggableDataContext.draggableItems
5368
5344
  .find((x) => x instanceof NodeDragHandler);
5369
5345
  const differenceWithCellSize = firstNodeOrGroup.getDifferenceWithCellSize(difference);
5370
5346
  this._finalizeMove(differenceWithCellSize);
5371
- this._fMediator.send(new IsConnectionUnderNodeRequest());
5372
5347
  this._fDraggableDataContext.fLineAlignment?.complete();
5348
+ this._applyConnectionUnderNode();
5349
+ }
5350
+ _isValid() {
5351
+ return this._fDraggableDataContext.draggableItems.some((x) => x instanceof NodeDragHandler);
5373
5352
  }
5374
5353
  _finalizeMove(difference) {
5375
5354
  this._getItems().forEach((x) => {
@@ -5399,6 +5378,13 @@ let NodeMoveFinalizeExecution = class NodeMoveFinalizeExecution {
5399
5378
  }
5400
5379
  return difference;
5401
5380
  }
5381
+ _applyConnectionUnderNode() {
5382
+ const isDraggedJustOneNode = this._fDraggableDataContext.draggableItems[0] instanceof NodeDragHandler;
5383
+ if (isDraggedJustOneNode) {
5384
+ const fNode = this._fDraggableDataContext.draggableItems[0].fNode;
5385
+ setTimeout(() => this._fMediator.execute(new IsConnectionUnderNodeRequest(fNode)));
5386
+ }
5387
+ }
5402
5388
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMoveFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5403
5389
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMoveFinalizeExecution });
5404
5390
  };
@@ -5409,32 +5395,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
5409
5395
  type: Injectable
5410
5396
  }] });
5411
5397
 
5412
- let NodeMoveFinalizeValidator = class NodeMoveFinalizeValidator {
5413
- fDraggableDataContext;
5414
- constructor(fDraggableDataContext) {
5415
- this.fDraggableDataContext = fDraggableDataContext;
5416
- }
5417
- handle(request) {
5418
- return this.fDraggableDataContext.draggableItems.some((x) => x instanceof NodeDragHandler);
5419
- }
5420
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMoveFinalizeValidator, deps: [{ token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
5421
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMoveFinalizeValidator });
5422
- };
5423
- NodeMoveFinalizeValidator = __decorate([
5424
- FValidatorRegister(NodeMoveFinalizeRequest)
5425
- ], NodeMoveFinalizeValidator);
5426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMoveFinalizeValidator, decorators: [{
5427
- type: Injectable
5428
- }], ctorParameters: () => [{ type: FDraggableDataContext }] });
5429
-
5430
- const NODE_MOVE_FINALIZE_PROVIDERS = [
5431
- NodeMoveFinalizeExecution,
5432
- NodeMoveFinalizeValidator,
5433
- ];
5434
-
5435
5398
  const NODE_PROVIDERS = [
5436
5399
  ...CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS,
5437
- ...NODE_MOVE_FINALIZE_PROVIDERS,
5400
+ NodeMoveFinalizeExecution,
5438
5401
  ...NODE_MOVE_PREPARATION_PROVIDERS,
5439
5402
  ...NODE_DRAG_TO_PARENT_PREPARATION_PROVIDERS,
5440
5403
  ...NODE_DRAG_TO_PARENT_FINALIZE_PROVIDERS
@@ -5641,7 +5604,7 @@ let GetNormalizedChildrenNodesRectExecution = class GetNormalizedChildrenNodesRe
5641
5604
  return this.fMediator.send(new GetDeepChildrenNodesAndGroupsRequest(fId));
5642
5605
  }
5643
5606
  normalizeRect(fNode) {
5644
- return this.fMediator.send(new GetNormalizedElementRectRequest(fNode.hostElement));
5607
+ return this.fMediator.send(new GetNormalizedElementRectRequest(fNode.hostElement, false));
5645
5608
  }
5646
5609
  concatRectWithParentPadding(rect, padding) {
5647
5610
  return RectExtensions.initialize(rect.x - padding[0], rect.y - padding[1], rect.width + padding[0] + padding[2], rect.height + +padding[1] + padding[3]);
@@ -5700,26 +5663,6 @@ class NodeResizeFinalizeRequest {
5700
5663
  }
5701
5664
  }
5702
5665
 
5703
- let NodeResizeFinalizeExecution = class NodeResizeFinalizeExecution {
5704
- fDraggableDataContext;
5705
- constructor(fDraggableDataContext) {
5706
- this.fDraggableDataContext = fDraggableDataContext;
5707
- }
5708
- handle(request) {
5709
- this.fDraggableDataContext.draggableItems.forEach((x) => {
5710
- x.onPointerUp?.();
5711
- });
5712
- }
5713
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeResizeFinalizeExecution, deps: [{ token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
5714
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeResizeFinalizeExecution });
5715
- };
5716
- NodeResizeFinalizeExecution = __decorate([
5717
- FExecutionRegister(NodeResizeFinalizeRequest)
5718
- ], NodeResizeFinalizeExecution);
5719
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeResizeFinalizeExecution, decorators: [{
5720
- type: Injectable
5721
- }], ctorParameters: () => [{ type: FDraggableDataContext }] });
5722
-
5723
5666
  class NodeResizeDragHandler {
5724
5667
  fMediator;
5725
5668
  fNode;
@@ -5734,7 +5677,7 @@ class NodeResizeDragHandler {
5734
5677
  this.fResizeHandleType = fResizeHandleType;
5735
5678
  }
5736
5679
  prepareDragSequence() {
5737
- this.originalRect = this.fMediator.send(new GetNormalizedElementRectRequest(this.fNode.hostElement));
5680
+ this.originalRect = this.fMediator.send(new GetNormalizedElementRectRequest(this.fNode.hostElement, false));
5738
5681
  this.restrictions = this.fMediator.send(new GetNodeResizeRestrictionsRequest(this.fNode, this.originalRect));
5739
5682
  if (this.restrictions.childRect) {
5740
5683
  this.childRestrictions = (rect, restrictionsRect) => {
@@ -5767,27 +5710,34 @@ class NodeResizeDragHandler {
5767
5710
  }
5768
5711
  }
5769
5712
 
5770
- let NodeResizeFinalizeValidator = class NodeResizeFinalizeValidator {
5713
+ let NodeResizeFinalizeExecution = class NodeResizeFinalizeExecution {
5771
5714
  fDraggableDataContext;
5772
5715
  constructor(fDraggableDataContext) {
5773
5716
  this.fDraggableDataContext = fDraggableDataContext;
5774
5717
  }
5775
5718
  handle(request) {
5719
+ if (!this._isValid()) {
5720
+ return;
5721
+ }
5722
+ this.fDraggableDataContext.draggableItems.forEach((x) => {
5723
+ x.onPointerUp?.();
5724
+ });
5725
+ }
5726
+ _isValid() {
5776
5727
  return this.fDraggableDataContext.draggableItems.some((x) => x instanceof NodeResizeDragHandler);
5777
5728
  }
5778
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeResizeFinalizeValidator, deps: [{ token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
5779
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeResizeFinalizeValidator });
5729
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeResizeFinalizeExecution, deps: [{ token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
5730
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeResizeFinalizeExecution });
5780
5731
  };
5781
- NodeResizeFinalizeValidator = __decorate([
5782
- FValidatorRegister(NodeResizeFinalizeRequest)
5783
- ], NodeResizeFinalizeValidator);
5784
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeResizeFinalizeValidator, decorators: [{
5732
+ NodeResizeFinalizeExecution = __decorate([
5733
+ FExecutionRegister(NodeResizeFinalizeRequest)
5734
+ ], NodeResizeFinalizeExecution);
5735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeResizeFinalizeExecution, decorators: [{
5785
5736
  type: Injectable
5786
5737
  }], ctorParameters: () => [{ type: FDraggableDataContext }] });
5787
5738
 
5788
5739
  const NODE_RESIZE_FINALIZE_PROVIDERS = [
5789
5740
  NodeResizeFinalizeExecution,
5790
- NodeResizeFinalizeValidator,
5791
5741
  ];
5792
5742
 
5793
5743
  class NodeResizePreparationRequest {
@@ -6029,6 +5979,43 @@ class ExternalItemFinalizeRequest {
6029
5979
  }
6030
5980
  }
6031
5981
 
5982
+ class ExternalItemDragHandler {
5983
+ externalItem;
5984
+ fBrowser;
5985
+ placeholder;
5986
+ onPointerDownRect = RectExtensions.initialize();
5987
+ difference = PointExtensions.initialize();
5988
+ constructor(externalItem, fBrowser) {
5989
+ this.externalItem = externalItem;
5990
+ this.fBrowser = fBrowser;
5991
+ }
5992
+ getStyle(position) {
5993
+ return `position: absolute; left: 0; top: 0; transform: translate(${position.x}px, ${position.y}px)`;
5994
+ }
5995
+ prepareDragSequence() {
5996
+ this.onPointerDownRect = this.getExternalItemRect();
5997
+ this.placeholder = deepCloneNode(this.externalItem.hostElement);
5998
+ this.placeholder.setAttribute('style', this.getStyle(Point.fromPoint(this.onPointerDownRect)));
5999
+ this.fBrowser.document.body.appendChild(this.placeholder);
6000
+ }
6001
+ getExternalItemRect() {
6002
+ const rect = this.externalItem.hostElement.getBoundingClientRect();
6003
+ const scrollTop = this.fBrowser.window.pageYOffset || this.fBrowser.document.documentElement.scrollTop;
6004
+ const scrollLeft = this.fBrowser.window.pageXOffset || this.fBrowser.document.documentElement.scrollLeft;
6005
+ const offsetTop = rect.top + scrollTop;
6006
+ const offsetLeft = rect.left + scrollLeft;
6007
+ return RectExtensions.initialize(offsetLeft, offsetTop, rect.width, rect.height);
6008
+ }
6009
+ onPointerMove(difference) {
6010
+ this.difference = difference;
6011
+ const position = Point.fromPoint(this.onPointerDownRect).add(this.difference);
6012
+ this.placeholder.setAttribute('style', this.getStyle(position));
6013
+ }
6014
+ onPointerUp() {
6015
+ this.fBrowser.document.body.removeChild(this.placeholder);
6016
+ }
6017
+ }
6018
+
6032
6019
  class FCreateNodeEvent {
6033
6020
  rect;
6034
6021
  data;
@@ -6059,9 +6046,15 @@ let ExternalItemFinalizeExecution = class ExternalItemFinalizeExecution {
6059
6046
  this.fBrowser = fBrowser;
6060
6047
  }
6061
6048
  handle(request) {
6049
+ if (!this._isValid()) {
6050
+ return;
6051
+ }
6062
6052
  this.emitEvent(this.getExternalItemElementsFromPoint(request.event.getPosition()));
6063
6053
  this.dragHandler.onPointerUp();
6064
6054
  }
6055
+ _isValid() {
6056
+ return this.fDraggableDataContext.draggableItems.some((x) => x instanceof ExternalItemDragHandler);
6057
+ }
6065
6058
  getExternalItemElementsFromPoint(position) {
6066
6059
  return this.fBrowser.document.elementsFromPoint(position.x, position.y)
6067
6060
  .filter(x => !x.closest('.f-external-item'));
@@ -6075,7 +6068,7 @@ let ExternalItemFinalizeExecution = class ExternalItemFinalizeExecution {
6075
6068
  return elements.length ? this.flowHost.contains(elements[0]) : false;
6076
6069
  }
6077
6070
  getRectInCanvas() {
6078
- return this.fMediator.send(new GetNormalizedElementRectRequest(this.dragHandler.placeholder));
6071
+ return this.fMediator.send(new GetNormalizedElementRectRequest(this.dragHandler.placeholder, false));
6079
6072
  }
6080
6073
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ExternalItemFinalizeExecution, deps: [{ token: FComponentsStore }, { token: FDraggableDataContext }, { token: i2.FMediator }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Injectable });
6081
6074
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ExternalItemFinalizeExecution });
@@ -6087,64 +6080,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
6087
6080
  type: Injectable
6088
6081
  }], ctorParameters: () => [{ type: FComponentsStore }, { type: FDraggableDataContext }, { type: i2.FMediator }, { type: i1.BrowserService }] });
6089
6082
 
6090
- class ExternalItemDragHandler {
6091
- externalItem;
6092
- fBrowser;
6093
- placeholder;
6094
- onPointerDownRect = RectExtensions.initialize();
6095
- difference = PointExtensions.initialize();
6096
- constructor(externalItem, fBrowser) {
6097
- this.externalItem = externalItem;
6098
- this.fBrowser = fBrowser;
6099
- }
6100
- getStyle(position) {
6101
- return `position: absolute; left: 0; top: 0; transform: translate(${position.x}px, ${position.y}px)`;
6102
- }
6103
- prepareDragSequence() {
6104
- this.onPointerDownRect = this.getExternalItemRect();
6105
- this.placeholder = deepCloneNode(this.externalItem.hostElement);
6106
- this.placeholder.setAttribute('style', this.getStyle(Point.fromPoint(this.onPointerDownRect)));
6107
- this.fBrowser.document.body.appendChild(this.placeholder);
6108
- }
6109
- getExternalItemRect() {
6110
- const rect = this.externalItem.hostElement.getBoundingClientRect();
6111
- const scrollTop = this.fBrowser.window.pageYOffset || this.fBrowser.document.documentElement.scrollTop;
6112
- const scrollLeft = this.fBrowser.window.pageXOffset || this.fBrowser.document.documentElement.scrollLeft;
6113
- const offsetTop = rect.top + scrollTop;
6114
- const offsetLeft = rect.left + scrollLeft;
6115
- return RectExtensions.initialize(offsetLeft, offsetTop, rect.width, rect.height);
6116
- }
6117
- onPointerMove(difference) {
6118
- this.difference = difference;
6119
- const position = Point.fromPoint(this.onPointerDownRect).add(this.difference);
6120
- this.placeholder.setAttribute('style', this.getStyle(position));
6121
- }
6122
- onPointerUp() {
6123
- this.fBrowser.document.body.removeChild(this.placeholder);
6124
- }
6125
- }
6126
-
6127
- let ExternalItemFinalizeValidator = class ExternalItemFinalizeValidator {
6128
- fDraggableDataContext;
6129
- constructor(fDraggableDataContext) {
6130
- this.fDraggableDataContext = fDraggableDataContext;
6131
- }
6132
- handle(request) {
6133
- return this.fDraggableDataContext.draggableItems.some((x) => x instanceof ExternalItemDragHandler);
6134
- }
6135
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ExternalItemFinalizeValidator, deps: [{ token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
6136
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ExternalItemFinalizeValidator });
6137
- };
6138
- ExternalItemFinalizeValidator = __decorate([
6139
- FValidatorRegister(ExternalItemFinalizeRequest)
6140
- ], ExternalItemFinalizeValidator);
6141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ExternalItemFinalizeValidator, decorators: [{
6142
- type: Injectable
6143
- }], ctorParameters: () => [{ type: FDraggableDataContext }] });
6144
-
6145
6083
  const EXTERNAL_ITEM_FINALIZE_PROVIDERS = [
6146
6084
  ExternalItemFinalizeExecution,
6147
- ExternalItemFinalizeValidator,
6148
6085
  ];
6149
6086
 
6150
6087
  class ExternalItemPreparationRequest {
@@ -6408,24 +6345,24 @@ class FDraggableDirective extends FDraggableBase {
6408
6345
  }
6409
6346
  onSelect(event) {
6410
6347
  this.plugins.forEach((x) => x.onSelect?.(event));
6411
- this._fMediator.send(new PreventDefaultIsExternalItemRequest(event));
6348
+ this._fMediator.execute(new PreventDefaultIsExternalItemRequest(event));
6412
6349
  }
6413
6350
  onPointerMove(event) {
6414
- this._fMediator.send(new OnPointerMoveRequest(event));
6351
+ this._fMediator.execute(new OnPointerMoveRequest(event));
6415
6352
  }
6416
6353
  onPointerUp(event) {
6417
6354
  this.plugins.forEach((x) => x.onPointerUp?.(event));
6418
- this._fMediator.send(new ReassignConnectionFinalizeRequest(event));
6419
- this._fMediator.send(new CreateConnectionFinalizeRequest(event));
6420
- this._fMediator.send(new NodeResizeFinalizeRequest(event));
6421
- this._fMediator.send(new NodeMoveFinalizeRequest(event));
6422
- this._fMediator.send(new NodeDragToParentFinalizeRequest(event));
6355
+ this._fMediator.execute(new ReassignConnectionFinalizeRequest(event));
6356
+ this._fMediator.execute(new CreateConnectionFinalizeRequest(event));
6357
+ this._fMediator.execute(new NodeResizeFinalizeRequest(event));
6358
+ this._fMediator.execute(new NodeMoveFinalizeRequest(event));
6359
+ this._fMediator.execute(new NodeDragToParentFinalizeRequest(event));
6423
6360
  this._fMediator.send(new CanvasMoveFinalizeRequest(event));
6424
- this._fMediator.send(new ExternalItemFinalizeRequest(event));
6425
- this._fMediator.send(new EndDragSequenceRequest());
6361
+ this._fMediator.execute(new ExternalItemFinalizeRequest(event));
6362
+ this._fMediator.execute(new EndDragSequenceRequest());
6426
6363
  }
6427
6364
  finalizeDragSequence() {
6428
- this._fMediator.send(new EmitSelectionChangeEventRequest());
6365
+ this._fMediator.execute(new EmitSelectionChangeEventRequest());
6429
6366
  }
6430
6367
  ngOnDestroy() {
6431
6368
  this._fMediator.send(new RemoveDndFromStoreRequest());
@@ -7153,7 +7090,7 @@ let GetCanBeSelectedItemsExecution = class GetCanBeSelectedItemsExecution {
7153
7090
  return this.fNodes.filter((x) => !x.fSelectionDisabled).map((x) => {
7154
7091
  return {
7155
7092
  element: x,
7156
- rect: RectExtensions.mult(this._fMediator.send(new GetNormalizedElementRectRequest(x.hostElement)), this.transform.scale)
7093
+ rect: RectExtensions.mult(this._fMediator.send(new GetNormalizedElementRectRequest(x.hostElement, false)), this.transform.scale)
7157
7094
  };
7158
7095
  });
7159
7096
  }
@@ -7161,7 +7098,7 @@ let GetCanBeSelectedItemsExecution = class GetCanBeSelectedItemsExecution {
7161
7098
  return this.fConnections.filter((x) => !x.fSelectionDisabled).map((x) => {
7162
7099
  return {
7163
7100
  element: x,
7164
- rect: RectExtensions.mult(this._fMediator.send(new GetNormalizedElementRectRequest(x.boundingElement)), this.transform.scale)
7101
+ rect: RectExtensions.mult(this._fMediator.send(new GetNormalizedElementRectRequest(x.boundingElement, false)), this.transform.scale)
7165
7102
  };
7166
7103
  });
7167
7104
  }
@@ -8758,110 +8695,6 @@ class LineService {
8758
8695
  }
8759
8696
  }
8760
8697
 
8761
- /**
8762
- * A class to find the nearest coordinate.
8763
- */
8764
- class NearestCoordinateFinder {
8765
- alignThreshold;
8766
- elements;
8767
- target;
8768
- /**
8769
- * Constructor to initialize the NearestCoordinateFinder.
8770
- * @param elements - The array of IRect elements.
8771
- * @param target - The target IRect element.
8772
- * @param alignThreshold - The threshold to align the elements.
8773
- */
8774
- constructor(elements, target, alignThreshold = 10) {
8775
- this.alignThreshold = alignThreshold;
8776
- this.elements = elements;
8777
- this.target = target;
8778
- }
8779
- /**
8780
- * Finds the nearest coordinate on a specified axis.
8781
- * @returns The nearest coordinate and its distance.
8782
- */
8783
- findNearestCoordinateByX() {
8784
- let nearest;
8785
- let minDistance;
8786
- for (const element of this.elements) {
8787
- const distanceLeftLeft = this.target.x - element.x;
8788
- const distanceLeftRight = this.target.x - (element.x + element.width);
8789
- const distanceCenterCenter = this.target.gravityCenter.x - element.gravityCenter.x;
8790
- const distanceRightLeft = (this.target.x + this.target.width) - element.x;
8791
- const distanceRightRight = (this.target.x + this.target.width) - (element.x + element.width);
8792
- if (Math.abs(distanceLeftLeft) <= this.alignThreshold ||
8793
- Math.abs(distanceLeftRight) <= this.alignThreshold ||
8794
- Math.abs(distanceCenterCenter) <= this.alignThreshold ||
8795
- Math.abs(distanceRightLeft) <= this.alignThreshold ||
8796
- Math.abs(distanceRightRight) <= this.alignThreshold) {
8797
- if (minDistance === undefined || Math.abs(distanceCenterCenter) < Math.abs(minDistance)) {
8798
- minDistance = distanceCenterCenter;
8799
- nearest = element.gravityCenter.x;
8800
- }
8801
- if (Math.abs(distanceLeftLeft) < Math.abs(minDistance)) {
8802
- minDistance = distanceLeftLeft;
8803
- nearest = element.x;
8804
- }
8805
- if (Math.abs(distanceRightRight) < Math.abs(minDistance)) {
8806
- minDistance = distanceRightRight;
8807
- nearest = element.x + element.width;
8808
- }
8809
- if (Math.abs(distanceLeftRight) < Math.abs(minDistance)) {
8810
- minDistance = distanceLeftRight;
8811
- nearest = element.x + element.width;
8812
- }
8813
- if (Math.abs(distanceRightLeft) < Math.abs(minDistance)) {
8814
- minDistance = distanceRightLeft;
8815
- nearest = element.x;
8816
- }
8817
- }
8818
- }
8819
- return { value: nearest, distance: minDistance };
8820
- }
8821
- /**
8822
- * Finds the nearest coordinate on a specified axis.
8823
- * @returns The nearest coordinate and its distance.
8824
- */
8825
- findNearestCoordinateByY() {
8826
- let nearest;
8827
- let minDistance;
8828
- for (const element of this.elements) {
8829
- const distanceTopTop = this.target.y - element.y;
8830
- const distanceTopBottom = this.target.y - (element.y + element.height);
8831
- const distanceCenterCenter = this.target.gravityCenter.y - element.gravityCenter.y;
8832
- const distanceBottomTop = (this.target.y + this.target.height) - element.y;
8833
- const distanceBottomBottom = (this.target.y + this.target.height) - (element.y + element.height);
8834
- if (Math.abs(distanceTopTop) <= this.alignThreshold ||
8835
- Math.abs(distanceTopBottom) <= this.alignThreshold ||
8836
- Math.abs(distanceCenterCenter) <= this.alignThreshold ||
8837
- Math.abs(distanceBottomTop) <= this.alignThreshold ||
8838
- Math.abs(distanceBottomBottom) <= this.alignThreshold) {
8839
- if (minDistance === undefined || Math.abs(distanceCenterCenter) < Math.abs(minDistance)) {
8840
- minDistance = distanceCenterCenter;
8841
- nearest = element.gravityCenter.y;
8842
- }
8843
- if (Math.abs(distanceTopTop) < Math.abs(minDistance)) {
8844
- minDistance = distanceTopTop;
8845
- nearest = element.y;
8846
- }
8847
- if (Math.abs(distanceBottomBottom) < Math.abs(minDistance)) {
8848
- minDistance = distanceBottomBottom;
8849
- nearest = element.y + element.height;
8850
- }
8851
- if (Math.abs(distanceTopBottom) < Math.abs(minDistance)) {
8852
- minDistance = distanceTopBottom;
8853
- nearest = element.y + element.height;
8854
- }
8855
- if (Math.abs(distanceBottomTop) < Math.abs(minDistance)) {
8856
- minDistance = distanceBottomTop;
8857
- nearest = element.y;
8858
- }
8859
- }
8860
- }
8861
- return { value: nearest, distance: minDistance };
8862
- }
8863
- }
8864
-
8865
8698
  const F_LINE_ALIGNMENT = new InjectionToken('F_LINE_ALIGNMENT');
8866
8699
  class FLineAlignmentBase {
8867
8700
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FLineAlignmentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
@@ -8874,6 +8707,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
8874
8707
  class FLineAlignmentComponent extends FLineAlignmentBase {
8875
8708
  elementReference;
8876
8709
  fDraggableDataContext;
8710
+ DEBOUNCE_TIME = 10;
8877
8711
  fAlignThreshold = 10;
8878
8712
  get hostElement() {
8879
8713
  return this.elementReference.nativeElement;
@@ -8884,12 +8718,10 @@ class FLineAlignmentComponent extends FLineAlignmentBase {
8884
8718
  rects = [];
8885
8719
  _fMediator = inject(FMediator);
8886
8720
  _fCanvas;
8721
+ _debounceTimer = null;
8887
8722
  get _transform() {
8888
8723
  return this._fCanvas.transform;
8889
8724
  }
8890
- get _fFlowHostElement() {
8891
- return this._fMediator.send(new GetFlowHostElementRequest());
8892
- }
8893
8725
  constructor(elementReference, fDraggableDataContext, fBrowser) {
8894
8726
  super();
8895
8727
  this.elementReference = elementReference;
@@ -8901,21 +8733,24 @@ class FLineAlignmentComponent extends FLineAlignmentBase {
8901
8733
  this.fDraggableDataContext.fLineAlignment = this;
8902
8734
  }
8903
8735
  initialize(allNodes, currentNodes) {
8904
- this.size = this._fFlowHostElement.getBoundingClientRect();
8736
+ this.size = this._fMediator.send(new GetFlowHostElementRequest()).getBoundingClientRect();
8905
8737
  this.rects = [];
8906
8738
  const draggedNodeRects = currentNodes.map((x) => {
8907
- return this._fMediator.send(new GetNormalizedElementRectRequest(x.hostElement));
8739
+ return this._fMediator.execute(new GetNormalizedElementRectRequest(x.hostElement, false));
8908
8740
  });
8909
8741
  this.draggedNodeRect = RectExtensions.union(draggedNodeRects) || RectExtensions.initialize();
8910
8742
  const allNodesExcludeCurrents = allNodes.filter((x) => {
8911
8743
  return !currentNodes.includes(x);
8912
8744
  });
8913
8745
  this.rects = allNodesExcludeCurrents.map((x) => {
8914
- return this._fMediator.send(new GetNormalizedElementRectRequest(x.hostElement));
8746
+ return this._fMediator.execute(new GetNormalizedElementRectRequest(x.hostElement, false));
8915
8747
  });
8916
8748
  }
8917
8749
  handle(difference) {
8918
- this.drawIntersectingLines(difference);
8750
+ if (this._debounceTimer) {
8751
+ clearTimeout(this._debounceTimer);
8752
+ }
8753
+ this._debounceTimer = setTimeout(() => this.drawIntersectingLines(difference), this.DEBOUNCE_TIME);
8919
8754
  }
8920
8755
  drawIntersectingLines(difference) {
8921
8756
  const intersect = this.findNearestCoordinate(difference);
@@ -8934,12 +8769,15 @@ class FLineAlignmentComponent extends FLineAlignmentBase {
8934
8769
  }
8935
8770
  findNearestCoordinate(difference) {
8936
8771
  const rect = RectExtensions.addPoint(this.draggedNodeRect, difference);
8937
- const finder = new NearestCoordinateFinder(this.rects, rect, this.fAlignThreshold);
8938
- return { xResult: finder.findNearestCoordinateByX(), yResult: finder.findNearestCoordinateByY() };
8772
+ return findClosestAlignment(this.rects, rect, this.fAlignThreshold);
8939
8773
  }
8940
8774
  complete() {
8941
8775
  this.lineService.hideVerticalLine();
8942
8776
  this.lineService.hideHorizontalLine();
8777
+ if (this._debounceTimer) {
8778
+ clearTimeout(this._debounceTimer);
8779
+ this._debounceTimer = null;
8780
+ }
8943
8781
  }
8944
8782
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FLineAlignmentComponent, deps: [{ token: i0.ElementRef }, { token: FDraggableDataContext }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Component });
8945
8783
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FLineAlignmentComponent, selector: "f-line-alignment", inputs: { fAlignThreshold: "fAlignThreshold" }, host: { classAttribute: "f-line-alignment f-component" }, providers: [
@@ -9413,5 +9251,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9413
9251
  * Generated bundle index. Do not edit.
9414
9252
  */
9415
9253
 
9416
- export { AddBackgroundToStoreExecution, AddBackgroundToStoreRequest, AddCanvasToStoreExecution, AddCanvasToStoreRequest, AddConnectionForCreateToStoreExecution, AddConnectionForCreateToStoreRequest, AddConnectionMarkerToStoreExecution, AddConnectionMarkerToStoreRequest, AddConnectionToStoreExecution, AddConnectionToStoreRequest, AddDndToStoreExecution, AddDndToStoreRequest, AddFlowToStoreExecution, AddFlowToStoreRequest, AddInputToStoreExecution, AddInputToStoreRequest, AddLineAlignmentToStoreExecution, AddLineAlignmentToStoreRequest, AddNodeToStoreExecution, AddNodeToStoreRequest, AddOutletToStoreExecution, AddOutletToStoreRequest, AddOutputToStoreExecution, AddOutputToStoreRequest, AddPatternToBackgroundExecution, AddPatternToBackgroundRequest, AddSnapConnectionToStoreExecution, AddSnapConnectionToStoreRequest, ApplyChildResizeRestrictionsExecution, ApplyChildResizeRestrictionsRequest, ApplyParentResizeRestrictionsExecution, ApplyParentResizeRestrictionsRequest, CANVAS_MOVE_FINALIZE_PROVIDERS, CANVAS_MOVE_PREPARATION_PROVIDERS, CANVAS_PROVIDERS, COMMON_PROVIDERS, CONNECTIONS_PROVIDERS, CONNECTION_GRADIENT, CONNECTION_PATH, CONNECTION_TEXT, CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS, CalculateCenterBetweenPointsHandler, CalculateCenterBetweenPointsRequest, CalculateChangedPositionExecution, CalculateChangedPositionRequest, CalculateChangedSizeExecution, CalculateChangedSizeRequest, CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, CalculateConnectionLineByBehaviorExecution, CalculateConnectionLineByBehaviorRequest, CalculateConnectorConnectableSideHandler, CalculateConnectorConnectableSideRequest, CalculateFlowPointFromMinimapPointExecution, CalculateFlowPointFromMinimapPointRequest, CalculateNodesBoundingBoxExecution, CalculateNodesBoundingBoxNormalizedPositionExecution, CalculateNodesBoundingBoxNormalizedPositionRequest, CalculateNodesBoundingBoxRequest, CanvasDragHandler, CanvasMoveFinalizeExecution, CanvasMoveFinalizeRequest, CanvasMoveFinalizeValidator, CanvasMovePreparationExecution, CanvasMovePreparationRequest, CanvasMovePreparationValidator, CenterGroupOrNodeExecution, CenterGroupOrNodeRequest, ClearSelectionExecution, ClearSelectionRequest, ConnectionBaseDragHandler, ConnectionDragHandler, ConnectionSourceDragHandler, ConnectionTargetDragHandler, CreateConnectionDragHandler, CreateConnectionDragHandlerExecution, CreateConnectionDragHandlerRequest, CreateConnectionFinalizeExecution, CreateConnectionFinalizeRequest, CreateConnectionFinalizeValidator, CreateConnectionFromOutletPreparationExecution, CreateConnectionFromOutletPreparationRequest, CreateConnectionFromOutputPreparationExecution, CreateConnectionFromOutputPreparationRequest, CreateConnectionFromOutputPreparationValidator, CreateConnectionMarkersExecution, CreateConnectionMarkersRequest, CreateConnectionPreparationExecution, CreateConnectionPreparationRequest, CreateConnectionPreparationValidator, CreateMoveNodesDragModelFromSelectionExecution, CreateMoveNodesDragModelFromSelectionRequest, DRAG_AND_DROP_COMMON_PROVIDERS, EFConnectableSide, EFConnectionBehavior, EFConnectionType, EFMarkerType, EFResizeHandleType, EXTERNAL_ITEM_FINALIZE_PROVIDERS, EXTERNAL_ITEM_PREPARATION_PROVIDERS, EmitSelectionChangeEventExecution, EmitSelectionChangeEventRequest, EndDragSequenceExecution, EndDragSequenceRequest, ExternalItemDragHandler, ExternalItemFinalizeExecution, ExternalItemFinalizeRequest, ExternalItemFinalizeValidator, ExternalItemPreparationExecution, ExternalItemPreparationRequest, ExternalItemPreparationValidator, FBackgroundBase, FBackgroundComponent, FBezierPathBuilder, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FChannel, FChannelHub, FCirclePatternComponent, FComponentsStore, FConnectionBase, FConnectionCenterDirective, FConnectionComponent, FConnectionDragHandleComponent, FConnectionFactory, FConnectionForCreateComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionTextComponent, FConnectionTextPathDirective, FConnectorBase, FCreateConnectionEvent, FCreateNodeEvent, FDragHandleDirective, FDraggableBase, FDraggableDataContext, FDraggableDirective, FDropToGroupEvent, FExternalItemBase, FExternalItemDirective, FExternalItemService, FFlowBase, FFlowComponent, FFlowModule, FGroupDirective, FLineAlignmentBase, FLineAlignmentComponent, FMarkerBase, FMarkerDirective, FMinimapCanvasDirective, FMinimapComponent, FMinimapData, FMinimapDragHandler, FMinimapFlowDirective, FMinimapViewDirective, FNodeBase, FNodeDirective, FNodeInputBase, FNodeInputDirective, FNodeIntersectedWithConnections, FNodeOutletBase, FNodeOutletDirective, FNodeOutputBase, FNodeOutputDirective, FReassignConnectionEvent, FRectPatternComponent, FResizeChannel, FResizeHandleDirective, FRotateHandleDirective, FSegmentPathBuilder, FSelectionAreaBase, FSelectionAreaComponent, FSelectionChangeEvent, FSnapConnectionComponent, FStraightPathBuilder, FZoomBase, FZoomDirective, F_BACKGROUND, F_BACKGROUND_FEATURES, F_BACKGROUND_PATTERN, F_BACKGROUND_PROVIDERS, F_CANVAS, F_CANVAS_FEATURES, F_CANVAS_PROVIDERS, F_CONNECTION_BUILDERS, F_CONNECTION_DRAG_HANDLE_CLASS, F_CONNECTION_FEATURES, F_CONNECTION_IDENTIFIERS, F_CONNECTION_PROVIDERS, F_CONNECTORS_FEATURES, F_CONNECTORS_PROVIDERS, F_DRAGGABLE_FEATURES, F_DRAGGABLE_PROVIDERS, F_DRAG_AND_DROP_PLUGIN, F_DRAG_HANDLE, F_EXTERNAL_ITEM, F_EXTERNAL_ITEM_DRAG_AND_DROP_PROVIDERS, F_EXTERNAL_ITEM_PROVIDERS, F_FLOW, F_FLOW_FEATURES, F_FLOW_PROVIDERS, F_LINE_ALIGNMENT, F_LINE_ALIGNMENT_FEATURES, F_LINE_ALIGNMENT_PROVIDERS, F_MARKER, F_MINIMAP_DRAG_AND_DROP_PROVIDERS, F_MINIMAP_PROVIDERS, F_NODE, F_NODE_FEATURES, F_NODE_INPUT, F_NODE_OUTLET, F_NODE_OUTPUT, F_NODE_PROVIDERS, F_RESIZE_HANDLE, F_SELECTED_CLASS, F_SELECTION_AREA_DRAG_AND_DROP_PROVIDERS, F_SELECTION_AREA_PROVIDERS, F_SELECTION_FEATURES, F_STORAGE_PROVIDERS, F_ZOOM, F_ZOOM_PROVIDERS, FindClosestInputUsingSnapThresholdExecution, FindClosestInputUsingSnapThresholdRequest, FitToFlowExecution, FitToFlowRequest, GET_FLOW_STATE_PROVIDERS, GetAllCanBeConnectedInputPositionsExecution, GetAllCanBeConnectedInputPositionsRequest, GetCanBeConnectedOutputByOutletExecution, GetCanBeConnectedOutputByOutletRequest, GetCanBeConnectedOutputByOutletValidator, GetCanBeSelectedItemsExecution, GetCanBeSelectedItemsRequest, GetCanvasExecution, GetCanvasRequest, GetConnectorWithRectExecution, GetConnectorWithRectRequest, GetCurrentSelectionExecution, GetCurrentSelectionRequest, GetDeepChildrenNodesAndGroupsExecution, GetDeepChildrenNodesAndGroupsRequest, GetElementRoundedRectExecution, GetElementRoundedRectRequest, GetFlowExecution, GetFlowHostElementExecution, GetFlowHostElementRequest, GetFlowRequest, GetFlowStateConnectionsExecution, GetFlowStateConnectionsRequest, GetFlowStateExecution, GetFlowStateNodesExecution, GetFlowStateNodesRequest, GetFlowStateRequest, GetInputUnderPointerExecution, GetInputUnderPointerRequest, GetInputUnderPointerValidator, GetNodeMoveRestrictionsExecution, GetNodeMoveRestrictionsRequest, GetNodePaddingExecution, GetNodePaddingRequest, GetNodeResizeRestrictionsExecution, GetNodeResizeRestrictionsRequest, GetNodesExecution, GetNodesRequest, GetNormalizedChildrenNodesRectExecution, GetNormalizedChildrenNodesRectRequest, GetNormalizedElementRectExecution, GetNormalizedElementRectRequest, GetNormalizedParentNodeRectExecution, GetNormalizedParentNodeRectRequest, GetNormalizedPointExecution, GetNormalizedPointRequest, GetParentNodesExecution, GetParentNodesRequest, InitializeDragSequenceExecution, InitializeDragSequenceRequest, InputCanvasPositionExecution, InputCanvasPositionRequest, InputCanvasScaleExecution, InputCanvasScaleRequest, IsArrayHasParentNodeExecution, IsArrayHasParentNodeRequest, IsConnectionUnderNodeExecution, IsConnectionUnderNodeRequest, IsConnectionUnderNodeValidator, IsDragStartedExecution, IsDragStartedRequest, LineElement, LineService, ListenCountChangesExecution, ListenCountChangesRequest, ListenDataChangesExecution, ListenDataChangesRequest, ListenTransformChangesExecution, ListenTransformChangesRequest, MINIMAP_DRAG_FINALIZE_PROVIDERS, MINIMAP_DRAG_PREPARATION_PROVIDERS, MinimapCalculateSvgScaleAndViewBoxExecution, MinimapCalculateSvgScaleAndViewBoxRequest, MinimapCalculateViewBoxExecution, MinimapCalculateViewBoxRequest, MinimapDragFinalizeExecution, MinimapDragFinalizeRequest, MinimapDragFinalizeValidator, MinimapDragPreparationExecution, MinimapDragPreparationRequest, MinimapDragPreparationValidator, MinimapDrawNodesExecution, MinimapDrawNodesRequest, MoveFrontElementsBeforeTargetElementExecution, MoveFrontElementsBeforeTargetElementRequest, NODE_DRAG_TO_PARENT_FINALIZE_PROVIDERS, NODE_DRAG_TO_PARENT_PREPARATION_PROVIDERS, NODE_MOVE_FINALIZE_PROVIDERS, NODE_MOVE_PREPARATION_PROVIDERS, NODE_PROVIDERS, NODE_RESIZE_FINALIZE_PROVIDERS, NODE_RESIZE_PREPARATION_PROVIDERS, NODE_RESIZE_PROVIDERS, NearestCoordinateFinder, NodeDragHandler, NodeDragToParentDragHandler, NodeDragToParentFinalizeExecution, NodeDragToParentFinalizeRequest, NodeDragToParentFinalizeValidator, NodeDragToParentPreparationExecution, NodeDragToParentPreparationRequest, NodeDragToParentPreparationValidator, NodeMoveFinalizeExecution, NodeMoveFinalizeRequest, NodeMoveFinalizeValidator, NodeMovePreparationExecution, NodeMovePreparationRequest, NodeMovePreparationValidator, NodeResizeByChildDragHandler, NodeResizeDragHandler, NodeResizeFinalizeExecution, NodeResizeFinalizeRequest, NodeResizeFinalizeValidator, NodeResizePreparationExecution, NodeResizePreparationRequest, NodeResizePreparationValidator, NotifyDataChangedExecution, NotifyDataChangedRequest, NotifyTransformChangedExecution, NotifyTransformChangedRequest, OnPointerMoveExecution, OnPointerMoveRequest, PrepareDragSequenceExecution, PrepareDragSequenceRequest, PreventDefaultIsExternalItemExecution, PreventDefaultIsExternalItemRequest, PutInputConnectionHandlersToArrayExecution, PutInputConnectionHandlersToArrayRequest, PutOutputConnectionHandlersToArrayExecution, PutOutputConnectionHandlersToArrayRequest, RESIZE_DIRECTIONS, ReassignConnectionDragHandler, ReassignConnectionFinalizeExecution, ReassignConnectionFinalizeRequest, ReassignConnectionFinalizeValidator, ReassignConnectionPreparationExecution, ReassignConnectionPreparationRequest, ReassignConnectionPreparationValidator, RedrawCanvasWithAnimationExecution, RedrawCanvasWithAnimationRequest, RedrawConnectionsExecution, RedrawConnectionsRequest, RemoveBackgroundFromStoreExecution, RemoveBackgroundFromStoreRequest, RemoveCanvasFromStoreExecution, RemoveCanvasFromStoreRequest, RemoveConnectionForCreateFromStoreExecution, RemoveConnectionForCreateFromStoreRequest, RemoveConnectionFromStoreExecution, RemoveConnectionFromStoreRequest, RemoveConnectionMarkerFromStoreExecution, RemoveConnectionMarkerFromStoreRequest, RemoveDndFromStoreExecution, RemoveDndFromStoreRequest, RemoveFlowFromStoreExecution, RemoveFlowFromStoreRequest, RemoveInputFromStoreExecution, RemoveInputFromStoreRequest, RemoveLineAlignmentFromStoreExecution, RemoveLineAlignmentFromStoreRequest, RemoveNodeFromStoreExecution, RemoveNodeFromStoreRequest, RemoveOutletFromStoreExecution, RemoveOutletFromStoreRequest, RemoveOutputFromStoreExecution, RemoveOutputFromStoreRequest, RemoveSnapConnectionFromStoreExecution, RemoveSnapConnectionFromStoreRequest, ResetScaleAndCenterExecution, ResetScaleAndCenterRequest, ResetScaleExecution, ResetScaleRequest, SELECTION_AREA_FINALIZE_PROVIDERS, SELECTION_AREA_PREPARATION_PROVIDERS, SINGLE_SELECT_PROVIDERS, SelectAllExecution, SelectAllRequest, SelectAndUpdateNodeLayerExecution, SelectAndUpdateNodeLayerRequest, SelectExecution, SelectRequest, SelectionAreaDragHandle, SelectionAreaFinalizeExecution, SelectionAreaFinalizeRequest, SelectionAreaFinalizeValidator, SelectionAreaPreparationExecution, SelectionAreaPreparationRequest, SelectionAreaPreparationValidator, SetBackgroundTransformExecution, SetBackgroundTransformRequest, SingleSelectExecution, SingleSelectRequest, SingleSelectValidator, SortItemLayersExecution, SortItemLayersRequest, SortItemsByParentExecution, SortItemsByParentRequest, SortNodeLayersExecution, SortNodeLayersRequest, StartDragSequenceExecution, StartDragSequenceRequest, UpdateItemAndChildrenLayersExecution, UpdateItemAndChildrenLayersRequest, UpdateNodeWhenStateOrSizeChangedExecution, UpdateNodeWhenStateOrSizeChangedRequest, UpdateScaleExecution, UpdateScaleRequest, createSVGElement, debounceTime, fixedCenterBehavior, fixedOutboundBehavior, floatingBehavior, getExternalItem, getMarkerEndId, getMarkerSelectedEndId, getMarkerSelectedStartId, getMarkerStartId, isExternalItem, isMobile, isNode, isNodeOutlet, isNodeOutput, mixinChangeSelection, mixinChangeVisibility, notifyOnStart, transitionEnd };
9254
+ export { AddBackgroundToStoreExecution, AddBackgroundToStoreRequest, AddCanvasToStoreExecution, AddCanvasToStoreRequest, AddConnectionForCreateToStoreExecution, AddConnectionForCreateToStoreRequest, AddConnectionMarkerToStoreExecution, AddConnectionMarkerToStoreRequest, AddConnectionToStoreExecution, AddConnectionToStoreRequest, AddDndToStoreExecution, AddDndToStoreRequest, AddFlowToStoreExecution, AddFlowToStoreRequest, AddInputToStoreExecution, AddInputToStoreRequest, AddLineAlignmentToStoreExecution, AddLineAlignmentToStoreRequest, AddNodeToStoreExecution, AddNodeToStoreRequest, AddOutletToStoreExecution, AddOutletToStoreRequest, AddOutputToStoreExecution, AddOutputToStoreRequest, AddPatternToBackgroundExecution, AddPatternToBackgroundRequest, AddSnapConnectionToStoreExecution, AddSnapConnectionToStoreRequest, ApplyChildResizeRestrictionsExecution, ApplyChildResizeRestrictionsRequest, ApplyParentResizeRestrictionsExecution, ApplyParentResizeRestrictionsRequest, CANVAS_MOVE_FINALIZE_PROVIDERS, CANVAS_MOVE_PREPARATION_PROVIDERS, CANVAS_PROVIDERS, COMMON_PROVIDERS, CONNECTIONS_PROVIDERS, CONNECTION_GRADIENT, CONNECTION_PATH, CONNECTION_TEXT, CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS, CalculateCenterBetweenPointsHandler, CalculateCenterBetweenPointsRequest, CalculateChangedPositionExecution, CalculateChangedPositionRequest, CalculateChangedSizeExecution, CalculateChangedSizeRequest, CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, CalculateConnectionLineByBehaviorExecution, CalculateConnectionLineByBehaviorRequest, CalculateConnectorConnectableSideHandler, CalculateConnectorConnectableSideRequest, CalculateFlowPointFromMinimapPointExecution, CalculateFlowPointFromMinimapPointRequest, CalculateNodesBoundingBoxExecution, CalculateNodesBoundingBoxNormalizedPositionExecution, CalculateNodesBoundingBoxNormalizedPositionRequest, CalculateNodesBoundingBoxRequest, CanvasDragHandler, CanvasMoveFinalizeExecution, CanvasMoveFinalizeRequest, CanvasMovePreparationExecution, CanvasMovePreparationRequest, CanvasMovePreparationValidator, CenterGroupOrNodeExecution, CenterGroupOrNodeRequest, ClearSelectionExecution, ClearSelectionRequest, ConnectionBaseDragHandler, ConnectionDragHandler, ConnectionSourceDragHandler, ConnectionTargetDragHandler, CreateConnectionDragHandler, CreateConnectionDragHandlerExecution, CreateConnectionDragHandlerRequest, CreateConnectionFinalizeExecution, CreateConnectionFinalizeRequest, CreateConnectionFromOutletPreparationExecution, CreateConnectionFromOutletPreparationRequest, CreateConnectionFromOutputPreparationExecution, CreateConnectionFromOutputPreparationRequest, CreateConnectionFromOutputPreparationValidator, CreateConnectionMarkersExecution, CreateConnectionMarkersRequest, CreateConnectionPreparationExecution, CreateConnectionPreparationRequest, CreateConnectionPreparationValidator, CreateMoveNodesDragModelFromSelectionExecution, CreateMoveNodesDragModelFromSelectionRequest, DRAG_AND_DROP_COMMON_PROVIDERS, EFConnectableSide, EFConnectionBehavior, EFConnectionType, EFMarkerType, EFResizeHandleType, EXTERNAL_ITEM_FINALIZE_PROVIDERS, EXTERNAL_ITEM_PREPARATION_PROVIDERS, EmitSelectionChangeEventExecution, EmitSelectionChangeEventRequest, EndDragSequenceExecution, EndDragSequenceRequest, ExternalItemDragHandler, ExternalItemFinalizeExecution, ExternalItemFinalizeRequest, ExternalItemPreparationExecution, ExternalItemPreparationRequest, ExternalItemPreparationValidator, FBackgroundBase, FBackgroundComponent, FBezierPathBuilder, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FChannel, FChannelHub, FCirclePatternComponent, FComponentsStore, FConnectionBase, FConnectionCenterDirective, FConnectionComponent, FConnectionDragHandleComponent, FConnectionFactory, FConnectionForCreateComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionTextComponent, FConnectionTextPathDirective, FConnectorBase, FCreateConnectionEvent, FCreateNodeEvent, FDragHandleDirective, FDraggableBase, FDraggableDataContext, FDraggableDirective, FDropToGroupEvent, FExternalItemBase, FExternalItemDirective, FExternalItemService, FFlowBase, FFlowComponent, FFlowModule, FGroupDirective, FLineAlignmentBase, FLineAlignmentComponent, FMarkerBase, FMarkerDirective, FMinimapCanvasDirective, FMinimapComponent, FMinimapData, FMinimapDragHandler, FMinimapFlowDirective, FMinimapViewDirective, FNodeBase, FNodeDirective, FNodeInputBase, FNodeInputDirective, FNodeIntersectedWithConnections, FNodeOutletBase, FNodeOutletDirective, FNodeOutputBase, FNodeOutputDirective, FReassignConnectionEvent, FRectPatternComponent, FResizeChannel, FResizeHandleDirective, FRotateHandleDirective, FSegmentPathBuilder, FSelectionAreaBase, FSelectionAreaComponent, FSelectionChangeEvent, FSnapConnectionComponent, FStraightPathBuilder, FZoomBase, FZoomDirective, F_BACKGROUND, F_BACKGROUND_FEATURES, F_BACKGROUND_PATTERN, F_BACKGROUND_PROVIDERS, F_CANVAS, F_CANVAS_FEATURES, F_CANVAS_PROVIDERS, F_CONNECTION_BUILDERS, F_CONNECTION_DRAG_HANDLE_CLASS, F_CONNECTION_FEATURES, F_CONNECTION_IDENTIFIERS, F_CONNECTION_PROVIDERS, F_CONNECTORS_FEATURES, F_CONNECTORS_PROVIDERS, F_DRAGGABLE_FEATURES, F_DRAGGABLE_PROVIDERS, F_DRAG_AND_DROP_PLUGIN, F_DRAG_HANDLE, F_EXTERNAL_ITEM, F_EXTERNAL_ITEM_DRAG_AND_DROP_PROVIDERS, F_EXTERNAL_ITEM_PROVIDERS, F_FLOW, F_FLOW_FEATURES, F_FLOW_PROVIDERS, F_LINE_ALIGNMENT, F_LINE_ALIGNMENT_FEATURES, F_LINE_ALIGNMENT_PROVIDERS, F_MARKER, F_MINIMAP_DRAG_AND_DROP_PROVIDERS, F_MINIMAP_PROVIDERS, F_NODE, F_NODE_FEATURES, F_NODE_INPUT, F_NODE_OUTLET, F_NODE_OUTPUT, F_NODE_PROVIDERS, F_RESIZE_HANDLE, F_SELECTED_CLASS, F_SELECTION_AREA_DRAG_AND_DROP_PROVIDERS, F_SELECTION_AREA_PROVIDERS, F_SELECTION_FEATURES, F_STORAGE_PROVIDERS, F_ZOOM, F_ZOOM_PROVIDERS, FindClosestInputExecution, FindClosestInputRequest, FitToFlowExecution, FitToFlowRequest, GET_FLOW_STATE_PROVIDERS, GetAllCanBeConnectedInputPositionsExecution, GetAllCanBeConnectedInputPositionsRequest, GetCanBeConnectedOutputByOutletExecution, GetCanBeConnectedOutputByOutletRequest, GetCanBeConnectedOutputByOutletValidator, GetCanBeSelectedItemsExecution, GetCanBeSelectedItemsRequest, GetCanvasExecution, GetCanvasRequest, GetConnectorWithRectExecution, GetConnectorWithRectRequest, GetCurrentSelectionExecution, GetCurrentSelectionRequest, GetDeepChildrenNodesAndGroupsExecution, GetDeepChildrenNodesAndGroupsRequest, GetElementRoundedRectExecution, GetElementRoundedRectRequest, GetFlowExecution, GetFlowHostElementExecution, GetFlowHostElementRequest, GetFlowRequest, GetFlowStateConnectionsExecution, GetFlowStateConnectionsRequest, GetFlowStateExecution, GetFlowStateNodesExecution, GetFlowStateNodesRequest, GetFlowStateRequest, GetInputUnderPointerExecution, GetInputUnderPointerRequest, GetInputUnderPointerValidator, GetNodeMoveRestrictionsExecution, GetNodeMoveRestrictionsRequest, GetNodePaddingExecution, GetNodePaddingRequest, GetNodeResizeRestrictionsExecution, GetNodeResizeRestrictionsRequest, GetNodesExecution, GetNodesRequest, GetNormalizedChildrenNodesRectExecution, GetNormalizedChildrenNodesRectRequest, GetNormalizedElementRectExecution, GetNormalizedElementRectRequest, GetNormalizedParentNodeRectExecution, GetNormalizedParentNodeRectRequest, GetNormalizedPointExecution, GetNormalizedPointRequest, GetParentNodesExecution, GetParentNodesRequest, InitializeDragSequenceExecution, InitializeDragSequenceRequest, InputCanvasPositionExecution, InputCanvasPositionRequest, InputCanvasScaleExecution, InputCanvasScaleRequest, IsArrayHasParentNodeExecution, IsArrayHasParentNodeRequest, IsConnectionUnderNodeExecution, IsConnectionUnderNodeRequest, IsDragStartedExecution, IsDragStartedRequest, LineElement, LineService, ListenCountChangesExecution, ListenCountChangesRequest, ListenDataChangesExecution, ListenDataChangesRequest, ListenTransformChangesExecution, ListenTransformChangesRequest, MINIMAP_DRAG_FINALIZE_PROVIDERS, MINIMAP_DRAG_PREPARATION_PROVIDERS, MinimapCalculateSvgScaleAndViewBoxExecution, MinimapCalculateSvgScaleAndViewBoxRequest, MinimapCalculateViewBoxExecution, MinimapCalculateViewBoxRequest, MinimapDragFinalizeExecution, MinimapDragFinalizeRequest, MinimapDragFinalizeValidator, MinimapDragPreparationExecution, MinimapDragPreparationRequest, MinimapDragPreparationValidator, MinimapDrawNodesExecution, MinimapDrawNodesRequest, MoveFrontElementsBeforeTargetElementExecution, MoveFrontElementsBeforeTargetElementRequest, NODE_DRAG_TO_PARENT_FINALIZE_PROVIDERS, NODE_DRAG_TO_PARENT_PREPARATION_PROVIDERS, NODE_MOVE_PREPARATION_PROVIDERS, NODE_PROVIDERS, NODE_RESIZE_FINALIZE_PROVIDERS, NODE_RESIZE_PREPARATION_PROVIDERS, NODE_RESIZE_PROVIDERS, NodeDragHandler, NodeDragToParentDragHandler, NodeDragToParentFinalizeExecution, NodeDragToParentFinalizeRequest, NodeDragToParentPreparationExecution, NodeDragToParentPreparationRequest, NodeDragToParentPreparationValidator, NodeMoveFinalizeExecution, NodeMoveFinalizeRequest, NodeMovePreparationExecution, NodeMovePreparationRequest, NodeMovePreparationValidator, NodeResizeByChildDragHandler, NodeResizeDragHandler, NodeResizeFinalizeExecution, NodeResizeFinalizeRequest, NodeResizePreparationExecution, NodeResizePreparationRequest, NodeResizePreparationValidator, NotifyDataChangedExecution, NotifyDataChangedRequest, NotifyTransformChangedExecution, NotifyTransformChangedRequest, OnPointerMoveExecution, OnPointerMoveRequest, PrepareDragSequenceExecution, PrepareDragSequenceRequest, PreventDefaultIsExternalItemExecution, PreventDefaultIsExternalItemRequest, PutInputConnectionHandlersToArrayExecution, PutInputConnectionHandlersToArrayRequest, PutOutputConnectionHandlersToArrayExecution, PutOutputConnectionHandlersToArrayRequest, RESIZE_DIRECTIONS, ReassignConnectionDragHandler, ReassignConnectionFinalizeExecution, ReassignConnectionFinalizeRequest, ReassignConnectionPreparationExecution, ReassignConnectionPreparationRequest, ReassignConnectionPreparationValidator, RedrawCanvasWithAnimationExecution, RedrawCanvasWithAnimationRequest, RedrawConnectionsExecution, RedrawConnectionsRequest, RemoveBackgroundFromStoreExecution, RemoveBackgroundFromStoreRequest, RemoveCanvasFromStoreExecution, RemoveCanvasFromStoreRequest, RemoveConnectionForCreateFromStoreExecution, RemoveConnectionForCreateFromStoreRequest, RemoveConnectionFromStoreExecution, RemoveConnectionFromStoreRequest, RemoveConnectionMarkerFromStoreExecution, RemoveConnectionMarkerFromStoreRequest, RemoveDndFromStoreExecution, RemoveDndFromStoreRequest, RemoveFlowFromStoreExecution, RemoveFlowFromStoreRequest, RemoveInputFromStoreExecution, RemoveInputFromStoreRequest, RemoveLineAlignmentFromStoreExecution, RemoveLineAlignmentFromStoreRequest, RemoveNodeFromStoreExecution, RemoveNodeFromStoreRequest, RemoveOutletFromStoreExecution, RemoveOutletFromStoreRequest, RemoveOutputFromStoreExecution, RemoveOutputFromStoreRequest, RemoveSnapConnectionFromStoreExecution, RemoveSnapConnectionFromStoreRequest, ResetScaleAndCenterExecution, ResetScaleAndCenterRequest, ResetScaleExecution, ResetScaleRequest, SELECTION_AREA_FINALIZE_PROVIDERS, SELECTION_AREA_PREPARATION_PROVIDERS, SINGLE_SELECT_PROVIDERS, SelectAllExecution, SelectAllRequest, SelectAndUpdateNodeLayerExecution, SelectAndUpdateNodeLayerRequest, SelectExecution, SelectRequest, SelectionAreaDragHandle, SelectionAreaFinalizeExecution, SelectionAreaFinalizeRequest, SelectionAreaFinalizeValidator, SelectionAreaPreparationExecution, SelectionAreaPreparationRequest, SelectionAreaPreparationValidator, SetBackgroundTransformExecution, SetBackgroundTransformRequest, SingleSelectExecution, SingleSelectRequest, SingleSelectValidator, SortItemLayersExecution, SortItemLayersRequest, SortItemsByParentExecution, SortItemsByParentRequest, SortNodeLayersExecution, SortNodeLayersRequest, StartDragSequenceExecution, StartDragSequenceRequest, UpdateItemAndChildrenLayersExecution, UpdateItemAndChildrenLayersRequest, UpdateNodeWhenStateOrSizeChangedExecution, UpdateNodeWhenStateOrSizeChangedRequest, UpdateScaleExecution, UpdateScaleRequest, createSVGElement, debounceTime, fixedCenterBehavior, fixedOutboundBehavior, floatingBehavior, getExternalItem, getMarkerEndId, getMarkerSelectedEndId, getMarkerSelectedStartId, getMarkerStartId, isExternalItem, isMobile, isNode, isNodeOutlet, isNodeOutput, mixinChangeSelection, mixinChangeVisibility, notifyOnStart, transitionEnd };
9417
9255
  //# sourceMappingURL=foblex-flow.mjs.map