@foblex/flow 17.5.8 → 17.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/domain/css-cls.d.ts +1 -1
  2. package/domain/f-canvas/center-group-or-node/center-group-or-node.execution.d.ts +2 -2
  3. package/domain/f-connection/create-connection-markers/create-connection-markers.execution.d.ts +2 -5
  4. package/domain/f-connectors/find-closest-connector/find-closest-connector.execution.d.ts +11 -0
  5. package/domain/f-connectors/find-closest-connector/find-closest-connector.request.d.ts +8 -0
  6. package/domain/f-connectors/find-closest-connector/index.d.ts +2 -0
  7. package/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.d.ts +25 -0
  8. package/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.request.d.ts +8 -0
  9. package/domain/f-connectors/find-connectable-connector-using-priority-and-position/index.d.ts +2 -0
  10. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.d.ts +13 -0
  11. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.request.d.ts +6 -0
  12. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.d.ts +2 -0
  13. package/domain/f-connectors/{i-closest-input.d.ts → i-closest-connector.d.ts} +1 -1
  14. package/domain/f-connectors/index.d.ts +6 -5
  15. package/domain/f-connectors/mark-connectable-connectors/index.d.ts +2 -0
  16. package/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.execution.d.ts +10 -0
  17. package/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.request.d.ts +6 -0
  18. package/domain/f-connectors/providers.d.ts +6 -5
  19. package/domain/f-connectors/unmark-connectable-connectors/index.d.ts +2 -0
  20. package/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.execution.d.ts +10 -0
  21. package/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.request.d.ts +6 -0
  22. package/domain/f-draggable/providers.d.ts +1 -1
  23. package/domain/f-selection/select/select.execution.d.ts +2 -2
  24. package/domain/providers.d.ts +1 -1
  25. package/esm2022/domain/css-cls.mjs +2 -2
  26. package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node.execution.mjs +3 -3
  27. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +17 -18
  28. package/esm2022/domain/f-connectors/find-closest-connector/find-closest-connector.execution.mjs +42 -0
  29. package/esm2022/domain/f-connectors/find-closest-connector/find-closest-connector.request.mjs +10 -0
  30. package/esm2022/domain/f-connectors/{find-input-at-position → find-closest-connector}/index.mjs +3 -3
  31. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.mjs +93 -0
  32. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.request.mjs +10 -0
  33. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/index.mjs +3 -0
  34. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.mjs +38 -0
  35. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.request.mjs +8 -0
  36. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.mjs +3 -0
  37. package/esm2022/domain/f-connectors/i-closest-connector.mjs +2 -0
  38. package/esm2022/domain/f-connectors/index.mjs +7 -6
  39. package/esm2022/domain/f-connectors/mark-connectable-connectors/index.mjs +3 -0
  40. package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.execution.mjs +27 -0
  41. package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.request.mjs +8 -0
  42. package/esm2022/domain/f-connectors/providers.mjs +11 -9
  43. package/esm2022/domain/f-connectors/unmark-connectable-connectors/index.mjs +3 -0
  44. package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.execution.mjs +27 -0
  45. package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.request.mjs +8 -0
  46. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.mjs +2 -2
  47. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +2 -2
  48. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.execution.mjs +5 -5
  49. package/esm2022/domain/f-selection/select/select.execution.mjs +3 -3
  50. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.mjs +2 -2
  51. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.mjs +2 -2
  52. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.mjs +2 -2
  53. package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.execution.mjs +3 -3
  54. package/esm2022/f-canvas/f-canvas.component.mjs +2 -2
  55. package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +7 -2
  56. package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +3 -2
  57. package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +2 -2
  58. package/esm2022/f-connection/common/f-connection-base.mjs +16 -12
  59. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +2 -2
  60. package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +2 -2
  61. package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +4 -4
  62. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +8 -8
  63. package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +2 -2
  64. package/esm2022/f-connection/common/i-has-connection-color.mjs +1 -1
  65. package/esm2022/f-connection/common/i-has-connection-from-to.mjs +1 -1
  66. package/esm2022/f-connection/f-connection/f-connection.component.mjs +23 -52
  67. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-response.mjs +1 -1
  68. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +21 -48
  69. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +21 -48
  70. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +2 -2
  71. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +2 -2
  72. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +2 -2
  73. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +2 -2
  74. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.mjs +3 -3
  75. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +6 -6
  76. package/esm2022/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.mjs +3 -3
  77. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +5 -5
  78. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.mjs +41 -73
  79. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.event.mjs +18 -12
  80. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +83 -0
  81. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +82 -0
  82. package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.mjs +1 -1
  83. package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-handler.mjs +8 -0
  84. package/esm2022/f-draggable/f-connection/f-reassign-connection/index.mjs +5 -1
  85. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-finalize/f-reassign-connection-finalize.execution.mjs +27 -21
  86. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +8 -11
  87. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/index.mjs +2 -1
  88. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.mjs +17 -0
  89. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.execution.mjs +3 -3
  90. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +4 -4
  91. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.mjs +2 -2
  92. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.mjs +2 -2
  93. package/esm2022/f-draggable/f-node-move/f-summary-node-move.drag-handler.mjs +2 -2
  94. package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.mjs +2 -2
  95. package/esm2022/f-draggable/f-node-resize/f-node-resize.drag-handler.mjs +2 -2
  96. package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +2 -2
  97. package/esm2022/f-draggable/f-node-rotate/f-node-rotate.drag-handler.mjs +2 -2
  98. package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +2 -2
  99. package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.execution.mjs +2 -2
  100. package/esm2022/f-flow/f-flow.component.mjs +9 -5
  101. package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +1 -1
  102. package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +3 -4
  103. package/esm2022/f-minimap/f-minimap-flow.directive.mjs +7 -9
  104. package/esm2022/f-minimap/f-minimap-view.directive.mjs +3 -3
  105. package/esm2022/f-minimap/f-minimap.component.mjs +19 -30
  106. package/esm2022/f-node/f-group.directive.mjs +6 -9
  107. package/esm2022/f-node/f-node-base.mjs +1 -1
  108. package/esm2022/f-node/f-node.directive.mjs +6 -9
  109. package/esm2022/mixins/change-selection/change-selection.mjs +3 -2
  110. package/esm2022/mixins/change-selection/i-selectable.mjs +1 -1
  111. package/f-connection/common/f-connection-base.d.ts +15 -12
  112. package/f-connection/common/i-has-connection-color.d.ts +3 -2
  113. package/f-connection/common/i-has-connection-from-to.d.ts +2 -1
  114. package/f-connection/f-connection/f-connection.component.d.ts +17 -15
  115. package/f-connection/f-connection-builder/i-f-connection-builder-response.d.ts +1 -0
  116. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +16 -15
  117. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +16 -15
  118. package/f-connection/providers.d.ts +1 -1
  119. package/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +2 -2
  120. package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.d.ts +11 -17
  121. package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.event.d.ts +9 -6
  122. package/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.d.ts +27 -0
  123. package/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.d.ts +28 -0
  124. package/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.d.ts +4 -2
  125. package/f-draggable/f-connection/f-reassign-connection/i-f-reassign-handler.d.ts +12 -0
  126. package/f-draggable/f-connection/f-reassign-connection/index.d.ts +4 -0
  127. package/f-draggable/f-connection/f-reassign-connection/reassign-finalize/f-reassign-connection-finalize.execution.d.ts +6 -6
  128. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.d.ts +0 -1
  129. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/index.d.ts +1 -0
  130. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.d.ts +5 -0
  131. package/f-draggable/f-connection/providers.d.ts +1 -1
  132. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
  133. package/f-draggable/f-node-move/providers.d.ts +1 -1
  134. package/f-draggable/providers.d.ts +1 -1
  135. package/f-external-item/domain/providers.d.ts +1 -1
  136. package/f-flow/f-flow.component.d.ts +1 -1
  137. package/f-minimap/f-minimap-canvas.directive.d.ts +1 -1
  138. package/f-minimap/f-minimap-flow.directive.d.ts +4 -4
  139. package/f-minimap/f-minimap-view.directive.d.ts +1 -1
  140. package/f-minimap/f-minimap.component.d.ts +8 -8
  141. package/f-minimap/providers.d.ts +1 -1
  142. package/f-node/f-group.directive.d.ts +2 -2
  143. package/f-node/f-node-base.d.ts +2 -2
  144. package/f-node/f-node.directive.d.ts +2 -2
  145. package/f-node/providers.d.ts +2 -2
  146. package/f-storage/providers.d.ts +1 -1
  147. package/fesm2022/foblex-flow.mjs +599 -493
  148. package/fesm2022/foblex-flow.mjs.map +1 -1
  149. package/mixins/change-selection/i-selectable.d.ts +2 -1
  150. package/package.json +1 -1
  151. package/domain/f-connectors/calculate-closest-input/calculate-closest-input.execution.d.ts +0 -11
  152. package/domain/f-connectors/calculate-closest-input/calculate-closest-input.request.d.ts +0 -8
  153. package/domain/f-connectors/calculate-closest-input/index.d.ts +0 -2
  154. package/domain/f-connectors/find-input-at-position/find-input-at-position.execution.d.ts +0 -25
  155. package/domain/f-connectors/find-input-at-position/find-input-at-position.request.d.ts +0 -9
  156. package/domain/f-connectors/find-input-at-position/index.d.ts +0 -2
  157. package/domain/f-connectors/mark-all-can-be-connected-inputs/index.d.ts +0 -2
  158. package/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.execution.d.ts +0 -10
  159. package/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.request.d.ts +0 -6
  160. package/domain/f-connectors/unmark-all-can-be-connected-inputs/index.d.ts +0 -2
  161. package/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.execution.d.ts +0 -10
  162. package/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.request.d.ts +0 -6
  163. package/esm2022/domain/f-connectors/calculate-closest-input/calculate-closest-input.execution.mjs +0 -42
  164. package/esm2022/domain/f-connectors/calculate-closest-input/calculate-closest-input.request.mjs +0 -10
  165. package/esm2022/domain/f-connectors/calculate-closest-input/index.mjs +0 -3
  166. package/esm2022/domain/f-connectors/find-input-at-position/find-input-at-position.execution.mjs +0 -92
  167. package/esm2022/domain/f-connectors/find-input-at-position/find-input-at-position.request.mjs +0 -12
  168. package/esm2022/domain/f-connectors/i-closest-input.mjs +0 -2
  169. package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/index.mjs +0 -3
  170. package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.execution.mjs +0 -27
  171. package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.request.mjs +0 -8
  172. package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/index.mjs +0 -3
  173. package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.execution.mjs +0 -27
  174. package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.request.mjs +0 -8
@@ -1,13 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable, effect, Directive, input, computed, DestroyRef, EventEmitter, booleanAttribute, Input, Output, ElementRef, Inject, Component, ChangeDetectionStrategy, ViewChild, Optional, numberAttribute, ContentChildren, Injector, ViewContainerRef, TemplateRef, NgZone, contentChild, output, viewChild, Renderer2, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, effect, Directive, input, computed, signal, DestroyRef, EventEmitter, booleanAttribute, Input, Output, ElementRef, Inject, Component, ChangeDetectionStrategy, ViewChild, Optional, viewChild, contentChildren, numberAttribute, Injector, ViewContainerRef, TemplateRef, NgZone, ContentChildren, contentChild, output, Renderer2, NgModule } from '@angular/core';
3
3
  import { RectExtensions, RoundedRect, TransformModelExtensions, PointExtensions, SizeExtensions, Point, LineExtensions, GetIntersections, findClosestAlignment, setRectToElement, adjustRectToMinSize, setRectToViewBox } from '@foblex/2d';
4
4
  import { __decorate } from 'tslib';
5
- import * as i2$1 from '@foblex/mediator';
5
+ import * as i2 from '@foblex/mediator';
6
6
  import { FExecutionRegister, FMediator } from '@foblex/mediator';
7
7
  import * as i1 from '@foblex/platform';
8
8
  import { BrowserService, PlatformService, EOperationSystem } from '@foblex/platform';
9
9
  import { normalizeDomElementId, castToEnum, isClosestElementHasClass, flatMap, getOrCreateRootNodeForViewRef, deepCloneNode, disableDragInteractions, extendStyles, getDataAttrValueFromClosestElementWithClass } from '@foblex/utils';
10
- import * as i2 from '@angular/common';
11
10
  import { CommonModule } from '@angular/common';
12
11
 
13
12
  const F_BACKGROUND_PATTERN = new InjectionToken('F_BACKGROUND_PATTERN');
@@ -446,10 +445,10 @@ class CenterGroupOrNodeRequest {
446
445
 
447
446
  let CenterGroupOrNodeExecution = class CenterGroupOrNodeExecution {
448
447
  _fComponentsStore = inject(FComponentsStore);
448
+ _fMediator = inject(FMediator);
449
449
  get transform() {
450
450
  return this._fComponentsStore.fCanvas.transform;
451
451
  }
452
- _fMediator = inject(FMediator);
453
452
  handle(request) {
454
453
  const fNode = this.getNode(request.id);
455
454
  if (!fNode) {
@@ -463,7 +462,7 @@ let CenterGroupOrNodeExecution = class CenterGroupOrNodeExecution {
463
462
  this.transform.position = PointExtensions.initialize((fFlowRect.width - fNodeRect.width) / 2 - position.x * this.transform.scale, (fFlowRect.height - fNodeRect.height) / 2 - position.y * this.transform.scale);
464
463
  }
465
464
  getNode(id) {
466
- return this._fComponentsStore.fNodes.find((x) => x.fId === id);
465
+ return this._fComponentsStore.fNodes.find((x) => x.fId() === id);
467
466
  }
468
467
  getNodeRect(fNode) {
469
468
  return RectExtensions.fromElement(fNode.hostElement);
@@ -901,17 +900,13 @@ class CreateConnectionMarkersRequest {
901
900
  }
902
901
 
903
902
  let CreateConnectionMarkersExecution = class CreateConnectionMarkersExecution {
904
- fBrowser;
905
- fComponentsStore;
906
- constructor(fBrowser, fComponentsStore) {
907
- this.fBrowser = fBrowser;
908
- this.fComponentsStore = fComponentsStore;
909
- }
903
+ _browser = inject(BrowserService);
904
+ _componentsStore = inject(FComponentsStore);
910
905
  handle(request) {
911
- const element = createSVGElement$1('defs', this.fBrowser);
906
+ const element = createSVGElement$1('defs', this._browser);
912
907
  const fConnection = request.fConnection;
913
908
  this.getMarkers(fConnection).forEach((marker) => {
914
- const markerElement = this.createMarkerElement(marker, fConnection.fId);
909
+ const markerElement = this.createMarkerElement(marker, fConnection.fId());
915
910
  const clone = marker.hostElement.cloneNode(true);
916
911
  clone.setAttribute('height', `${marker.height}`);
917
912
  clone.setAttribute('width', `${marker.width}`);
@@ -920,18 +915,21 @@ let CreateConnectionMarkersExecution = class CreateConnectionMarkersExecution {
920
915
  markerElement.append(clone);
921
916
  element.append(markerElement);
922
917
  });
923
- fConnection.fDefs.nativeElement.innerHTML = element.innerHTML;
918
+ const defs = fConnection.fDefs();
919
+ if (defs) {
920
+ defs.nativeElement.innerHTML = element.innerHTML;
921
+ }
924
922
  this.makeSafariCompatible(fConnection);
925
923
  }
926
924
  getMarkers(fConnection) {
927
- return this.fComponentsStore.fMarkers.filter((x) => fConnection.hostElement.contains(x.hostElement));
925
+ return this._componentsStore.fMarkers.filter((x) => fConnection.hostElement.contains(x.hostElement));
928
926
  }
929
927
  // Safari does not support markers on path elements if markers are defined after the path element
930
928
  makeSafariCompatible(fConnection) {
931
- fConnection.fPath.hostElement.replaceWith(fConnection.fPath.hostElement);
929
+ fConnection.fPath().hostElement.replaceWith(fConnection.fPath().hostElement);
932
930
  }
933
931
  createMarkerElement(marker, fConnectionId) {
934
- const markerElement = createSVGElement$1('marker', this.fBrowser);
932
+ const markerElement = createSVGElement$1('marker', this._browser);
935
933
  markerElement.setAttribute('id', normalizeDomElementId(marker.type + '-' + fConnectionId));
936
934
  markerElement.setAttribute('markerHeight', `${marker.height}`);
937
935
  markerElement.setAttribute('markerWidth', `${marker.width}`);
@@ -941,7 +939,7 @@ let CreateConnectionMarkersExecution = class CreateConnectionMarkersExecution {
941
939
  markerElement.setAttribute('markerUnits', `${marker.markerUnits}`);
942
940
  return markerElement;
943
941
  }
944
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateConnectionMarkersExecution, deps: [{ token: i1.BrowserService }, { token: FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
942
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateConnectionMarkersExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
945
943
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateConnectionMarkersExecution });
946
944
  };
947
945
  CreateConnectionMarkersExecution = __decorate([
@@ -949,7 +947,7 @@ CreateConnectionMarkersExecution = __decorate([
949
947
  ], CreateConnectionMarkersExecution);
950
948
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateConnectionMarkersExecution, decorators: [{
951
949
  type: Injectable
952
- }], ctorParameters: () => [{ type: i1.BrowserService }, { type: FComponentsStore }] });
950
+ }] });
953
951
  function createSVGElement$1(tag, fBrowser) {
954
952
  return fBrowser.document.createElementNS('http://www.w3.org/2000/svg', tag);
955
953
  }
@@ -1147,7 +1145,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1147
1145
  const F_SELECTED_CLASS = 'f-selected';
1148
1146
  function mixinChangeSelection(base) {
1149
1147
  return class extends base {
1150
- fId = '';
1148
+ fId = signal('');
1151
1149
  fSelectionDisabled = false;
1152
1150
  unmarkAsSelected() {
1153
1151
  this.unmarkChildrenAsSelected?.();
@@ -1244,7 +1242,7 @@ class FGroupDirective extends FNodeBase {
1244
1242
  fBrowser;
1245
1243
  _destroyRef = inject(DestroyRef);
1246
1244
  _fMediator = inject(FMediator);
1247
- fId = `f-group-${uniqueId$b++}`;
1245
+ fId = input(`f-group-${uniqueId$b++}`, { alias: 'fGroupId' });
1248
1246
  fParentId = null;
1249
1247
  set position(value) {
1250
1248
  if (!PointExtensions.isEqual(this._position, value)) {
@@ -1322,7 +1320,7 @@ class FGroupDirective extends FNodeBase {
1322
1320
  this._fMediator.execute(new RemoveNodeFromStoreRequest(this));
1323
1321
  }
1324
1322
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FGroupDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Directive });
1325
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.13", type: FGroupDirective, selector: "[fGroup]", inputs: { fId: ["fGroupId", "fId"], fParentId: ["fGroupParentId", "fParentId"], position: ["fGroupPosition", "position"], rotate: ["fGroupRotate", "rotate"], size: ["fGroupSize", "size"], fDraggingDisabled: ["fGroupDraggingDisabled", "fDraggingDisabled", booleanAttribute], fSelectionDisabled: ["fGroupSelectionDisabled", "fSelectionDisabled", booleanAttribute], fIncludePadding: ["fIncludePadding", "fIncludePadding", booleanAttribute], fConnectOnNode: ["fConnectOnNode", "fConnectOnNode", booleanAttribute], fMinimapClass: "fMinimapClass" }, outputs: { positionChange: "fGroupPositionChange", rotateChange: "fGroupRotateChange", sizeChange: "fGroupSizeChange" }, host: { properties: { "attr.data-f-group-id": "fId", "class.f-group-dragging-disabled": "fDraggingDisabled", "class.f-group-selection-disabled": "fSelectionDisabled" }, classAttribute: "f-group f-component" }, providers: [
1323
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: FGroupDirective, selector: "[fGroup]", inputs: { fId: { classPropertyName: "fId", publicName: "fGroupId", isSignal: true, isRequired: false, transformFunction: null }, fParentId: { classPropertyName: "fParentId", publicName: "fGroupParentId", isSignal: false, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "fGroupPosition", isSignal: false, isRequired: false, transformFunction: null }, rotate: { classPropertyName: "rotate", publicName: "fGroupRotate", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "fGroupSize", isSignal: false, isRequired: false, transformFunction: null }, fDraggingDisabled: { classPropertyName: "fDraggingDisabled", publicName: "fGroupDraggingDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fSelectionDisabled: { classPropertyName: "fSelectionDisabled", publicName: "fGroupSelectionDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fIncludePadding: { classPropertyName: "fIncludePadding", publicName: "fIncludePadding", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fConnectOnNode: { classPropertyName: "fConnectOnNode", publicName: "fConnectOnNode", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fMinimapClass: { classPropertyName: "fMinimapClass", publicName: "fMinimapClass", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { positionChange: "fGroupPositionChange", rotateChange: "fGroupRotateChange", sizeChange: "fGroupSizeChange" }, host: { properties: { "attr.data-f-group-id": "fId()", "class.f-group-dragging-disabled": "fDraggingDisabled", "class.f-group-selection-disabled": "fSelectionDisabled" }, classAttribute: "f-group f-component" }, providers: [
1326
1324
  { provide: F_NODE, useExisting: FGroupDirective }
1327
1325
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0 });
1328
1326
  }
@@ -1332,7 +1330,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1332
1330
  selector: "[fGroup]",
1333
1331
  exportAs: "fComponent",
1334
1332
  host: {
1335
- '[attr.data-f-group-id]': 'fId',
1333
+ '[attr.data-f-group-id]': 'fId()',
1336
1334
  class: "f-group f-component",
1337
1335
  '[class.f-group-dragging-disabled]': 'fDraggingDisabled',
1338
1336
  '[class.f-group-selection-disabled]': 'fSelectionDisabled',
@@ -1341,10 +1339,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1341
1339
  { provide: F_NODE, useExisting: FGroupDirective }
1342
1340
  ],
1343
1341
  }]
1344
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.BrowserService }], propDecorators: { fId: [{
1345
- type: Input,
1346
- args: ['fGroupId']
1347
- }], fParentId: [{
1342
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.BrowserService }], propDecorators: { fParentId: [{
1348
1343
  type: Input,
1349
1344
  args: ['fGroupParentId']
1350
1345
  }], position: [{
@@ -1387,7 +1382,7 @@ class FNodeDirective extends FNodeBase {
1387
1382
  fBrowser;
1388
1383
  _destroyRef = inject(DestroyRef);
1389
1384
  _fMediator = inject(FMediator);
1390
- fId = `f-node-${uniqueId$a++}`;
1385
+ fId = input(`f-node-${uniqueId$a++}`, { alias: 'fNodeId' });
1391
1386
  fParentId = null;
1392
1387
  set position(value) {
1393
1388
  if (!PointExtensions.isEqual(this._position, value)) {
@@ -1466,7 +1461,7 @@ class FNodeDirective extends FNodeBase {
1466
1461
  this._fMediator.execute(new RemoveNodeFromStoreRequest(this));
1467
1462
  }
1468
1463
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FNodeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Directive });
1469
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.13", type: FNodeDirective, selector: "[fNode]", inputs: { fId: ["fNodeId", "fId"], fParentId: ["fNodeParentId", "fParentId"], position: ["fNodePosition", "position"], size: ["fNodeSize", "size"], rotate: ["fNodeRotate", "rotate"], fDraggingDisabled: ["fNodeDraggingDisabled", "fDraggingDisabled", booleanAttribute], fSelectionDisabled: ["fNodeSelectionDisabled", "fSelectionDisabled", booleanAttribute], fIncludePadding: ["fIncludePadding", "fIncludePadding", booleanAttribute], fConnectOnNode: ["fConnectOnNode", "fConnectOnNode", booleanAttribute], fMinimapClass: "fMinimapClass" }, outputs: { positionChange: "fNodePositionChange", rotateChange: "fNodeRotateChange", sizeChange: "fNodeSizeChange" }, host: { properties: { "attr.data-f-node-id": "fId", "class.f-node-dragging-disabled": "fDraggingDisabled", "class.f-node-selection-disabled": "fSelectionDisabled" }, classAttribute: "f-node f-component" }, providers: [
1464
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: FNodeDirective, selector: "[fNode]", inputs: { fId: { classPropertyName: "fId", publicName: "fNodeId", isSignal: true, isRequired: false, transformFunction: null }, fParentId: { classPropertyName: "fParentId", publicName: "fNodeParentId", isSignal: false, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "fNodePosition", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "fNodeSize", isSignal: false, isRequired: false, transformFunction: null }, rotate: { classPropertyName: "rotate", publicName: "fNodeRotate", isSignal: false, isRequired: false, transformFunction: null }, fDraggingDisabled: { classPropertyName: "fDraggingDisabled", publicName: "fNodeDraggingDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fSelectionDisabled: { classPropertyName: "fSelectionDisabled", publicName: "fNodeSelectionDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fIncludePadding: { classPropertyName: "fIncludePadding", publicName: "fIncludePadding", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fConnectOnNode: { classPropertyName: "fConnectOnNode", publicName: "fConnectOnNode", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fMinimapClass: { classPropertyName: "fMinimapClass", publicName: "fMinimapClass", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { positionChange: "fNodePositionChange", rotateChange: "fNodeRotateChange", sizeChange: "fNodeSizeChange" }, host: { properties: { "attr.data-f-node-id": "fId()", "class.f-node-dragging-disabled": "fDraggingDisabled", "class.f-node-selection-disabled": "fSelectionDisabled" }, classAttribute: "f-node f-component" }, providers: [
1470
1465
  { provide: F_NODE, useExisting: FNodeDirective }
1471
1466
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0 });
1472
1467
  }
@@ -1476,7 +1471,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1476
1471
  selector: "[fNode]",
1477
1472
  exportAs: "fComponent",
1478
1473
  host: {
1479
- '[attr.data-f-node-id]': 'fId',
1474
+ '[attr.data-f-node-id]': 'fId()',
1480
1475
  class: "f-node f-component",
1481
1476
  '[class.f-node-dragging-disabled]': 'fDraggingDisabled',
1482
1477
  '[class.f-node-selection-disabled]': 'fSelectionDisabled',
@@ -1485,10 +1480,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1485
1480
  { provide: F_NODE, useExisting: FNodeDirective }
1486
1481
  ],
1487
1482
  }]
1488
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.BrowserService }], propDecorators: { fId: [{
1489
- type: Input,
1490
- args: ['fNodeId']
1491
- }], fParentId: [{
1483
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.BrowserService }], propDecorators: { fParentId: [{
1492
1484
  type: Input,
1493
1485
  args: ['fNodeParentId']
1494
1486
  }], position: [{
@@ -1547,7 +1539,7 @@ class FNodeInputDirective extends FNodeInputBase {
1547
1539
  disabled = false;
1548
1540
  userFConnectableSide = EFConnectableSide.AUTO;
1549
1541
  get fNodeId() {
1550
- return this._fNode.fId;
1542
+ return this._fNode.fId();
1551
1543
  }
1552
1544
  get hostElement() {
1553
1545
  return this._elementReference.nativeElement;
@@ -1641,7 +1633,7 @@ class FNodeOutletDirective extends FNodeOutletBase {
1641
1633
  isConnectionFromOutlet = false;
1642
1634
  canBeConnectedInputs = [];
1643
1635
  get fNodeId() {
1644
- return this._fNode.fId;
1636
+ return this._fNode.fId();
1645
1637
  }
1646
1638
  get hostElement() {
1647
1639
  return this._elementReference.nativeElement;
@@ -1708,7 +1700,7 @@ class FNodeOutputDirective extends FNodeOutputBase {
1708
1700
  isSelfConnectable = true;
1709
1701
  canBeConnectedInputs = [];
1710
1702
  get fNodeId() {
1711
- return this._fNode.fId;
1703
+ return this._fNode.fId();
1712
1704
  }
1713
1705
  get hostElement() {
1714
1706
  return this._elementReference.nativeElement;
@@ -1812,7 +1804,12 @@ class FBezierPathBuilder {
1812
1804
  const targetAnglePoint = FBezierPathBuilder.getAnglePoint(targetSide, target, source, offset);
1813
1805
  const path = `M ${source.x} ${source.y} C ${sourceAnglePoint.x} ${sourceAnglePoint.y}, ${targetAnglePoint.x} ${targetAnglePoint.y}, ${target.x + 0.0002} ${target.y + 0.0002}`;
1814
1806
  const connectionCenter = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest([source, sourceAnglePoint, targetAnglePoint, target]));
1815
- return { path, connectionCenter, penultimatePoint: targetAnglePoint };
1807
+ return {
1808
+ path,
1809
+ connectionCenter,
1810
+ penultimatePoint: targetAnglePoint,
1811
+ secondPoint: sourceAnglePoint,
1812
+ };
1816
1813
  }
1817
1814
  }
1818
1815
 
@@ -1829,7 +1826,8 @@ class FSegmentPathBuilder {
1829
1826
  const { points, center } = this.getPathPoints(source, sourceSide, target, targetSide, request.offset);
1830
1827
  const path = this.buildPath(points, request.radius);
1831
1828
  const penultimatePoint = points.length > 1 ? points[points.length - 2] : source;
1832
- return { path, connectionCenter: center, penultimatePoint };
1829
+ const secondPoint = points.length > 1 ? points[1] : target;
1830
+ return { path, connectionCenter: center, penultimatePoint, secondPoint };
1833
1831
  }
1834
1832
  getPathPoints(source, sourceSide, target, targetSide, offset) {
1835
1833
  const sourceDirection = CONNECTOR_SIDE_POINT[sourceSide];
@@ -1959,7 +1957,7 @@ class FStraightPathBuilder {
1959
1957
  const { source, target } = request;
1960
1958
  const path = `M ${source.x} ${source.y} L ${target.x + 0.0002} ${target.y + 0.0002}`;
1961
1959
  const connectionCenter = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest([source, target]));
1962
- return { path, connectionCenter, penultimatePoint: source };
1960
+ return { path, connectionCenter, penultimatePoint: source, secondPoint: target };
1963
1961
  }
1964
1962
  }
1965
1963
 
@@ -1991,7 +1989,7 @@ class FConnectionTextPathDirective {
1991
1989
  base;
1992
1990
  fBrowser;
1993
1991
  get linkToConnection() {
1994
- return F_CONNECTION_IDENTIFIERS.linkToConnection(this.base.fId + this.base.fOutputId + this.base.fInputId);
1992
+ return F_CONNECTION_IDENTIFIERS.linkToConnection(this.base.fId() + this.base.fOutputId + this.base.fInputId);
1995
1993
  }
1996
1994
  get hostElement() {
1997
1995
  return this.elementReference.nativeElement;
@@ -2062,7 +2060,7 @@ class FConnectionTextComponent {
2062
2060
  elementReference;
2063
2061
  base;
2064
2062
  get textId() {
2065
- return F_CONNECTION_IDENTIFIERS.textId(this.base.fId + this.base.fOutputId + this.base.fInputId);
2063
+ return F_CONNECTION_IDENTIFIERS.textId(this.base.fId() + this.base.fOutputId + this.base.fInputId);
2066
2064
  }
2067
2065
  get hostElement() {
2068
2066
  return this.elementReference.nativeElement;
@@ -2130,7 +2128,7 @@ const F_CSS_CLASS = {
2130
2128
  OUTPUT_NOT_CONNECTABLE: 'f-node-output-not-connectable',
2131
2129
  INPUT_CONNECTED: 'f-node-input-connected',
2132
2130
  INPUT_NOT_CONNECTABLE: 'f-node-input-not-connectable',
2133
- INPUT_CAN_BE_CONNECTED_TO: 'f-node-input-can-be-connected-to',
2131
+ CONNECTABLE: 'f-connector-connectable',
2134
2132
  },
2135
2133
  CONNECTION: {
2136
2134
  DRAG_HANDLE: 'f-connection-drag-handle',
@@ -2211,7 +2209,7 @@ class FConnectionGradientComponent {
2211
2209
  elementReference;
2212
2210
  base;
2213
2211
  get gradientId() {
2214
- return F_CONNECTION_IDENTIFIERS.gradientId(this.base.fId + this.base.fOutputId + this.base.fInputId);
2212
+ return F_CONNECTION_IDENTIFIERS.gradientId(this.base.fId() + this.base.fOutputId + this.base.fInputId);
2215
2213
  }
2216
2214
  get hostElement() {
2217
2215
  return this.elementReference.nativeElement;
@@ -2231,8 +2229,8 @@ class FConnectionGradientComponent {
2231
2229
  this.stop2Element.setAttribute('offset', '100%');
2232
2230
  }
2233
2231
  updateGradient() {
2234
- this.setFromColor(this.base.fStartColor);
2235
- this.setToColor(this.base.fEndColor);
2232
+ this.setFromColor(this.base.fStartColor());
2233
+ this.setToColor(this.base.fEndColor());
2236
2234
  }
2237
2235
  setFromColor(color) {
2238
2236
  this.stop1Element.setAttribute('stop-color', color || 'transparent');
@@ -2285,13 +2283,13 @@ class FConnectionPathComponent {
2285
2283
  elementReference;
2286
2284
  base;
2287
2285
  get fPathId() {
2288
- return this.base.fId;
2286
+ return this.base.fId();
2289
2287
  }
2290
2288
  get linkToGradient() {
2291
- return F_CONNECTION_IDENTIFIERS.linkToGradient(this.base.fId + this.base.fOutputId + this.base.fInputId);
2289
+ return F_CONNECTION_IDENTIFIERS.linkToGradient(this.base.fId() + this.base.fOutputId + this.base.fInputId);
2292
2290
  }
2293
2291
  get attrConnectionId() {
2294
- return F_CONNECTION_IDENTIFIERS.connectionId(this.base.fId + this.base.fOutputId + this.base.fInputId);
2292
+ return F_CONNECTION_IDENTIFIERS.connectionId(this.base.fId() + this.base.fOutputId + this.base.fInputId);
2295
2293
  }
2296
2294
  get hostElement() {
2297
2295
  return this.elementReference.nativeElement;
@@ -2307,12 +2305,12 @@ class FConnectionPathComponent {
2307
2305
  this.hostElement.setAttribute("d", `${path}`);
2308
2306
  }
2309
2307
  select() {
2310
- this.hostElement.setAttribute('marker-start', `url(#${getMarkerSelectedStartId(this.base.fId)})`);
2311
- this.hostElement.setAttribute('marker-end', `url(#${getMarkerSelectedEndId(this.base.fId)})`);
2308
+ this.hostElement.setAttribute('marker-start', `url(#${getMarkerSelectedStartId(this.base.fId())})`);
2309
+ this.hostElement.setAttribute('marker-end', `url(#${getMarkerSelectedEndId(this.base.fId())})`);
2312
2310
  }
2313
2311
  deselect() {
2314
- this.hostElement.setAttribute('marker-start', `url(#${getMarkerStartId(this.base.fId)})`);
2315
- this.hostElement.setAttribute('marker-end', `url(#${getMarkerEndId(this.base.fId)})`);
2312
+ this.hostElement.setAttribute('marker-start', `url(#${getMarkerStartId(this.base.fId())})`);
2313
+ this.hostElement.setAttribute('marker-end', `url(#${getMarkerEndId(this.base.fId())})`);
2316
2314
  }
2317
2315
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionPathComponent, deps: [{ token: i0.ElementRef }, { token: F_CONNECTION }], target: i0.ɵɵFactoryTarget.Component });
2318
2316
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionPathComponent, selector: "path[f-connection-path]", host: { properties: { "attr.id": "attrConnectionId", "attr.data-f-path-id": "fPathId", "attr.stroke": "linkToGradient" }, classAttribute: "f-component f-connection-path" }, providers: [{ provide: CONNECTION_PATH, useExisting: FConnectionPathComponent }], ngImport: i0, template: '', isInline: true, styles: [":host{fill:none;pointer-events:stroke}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -2334,7 +2332,7 @@ class FConnectionSelectionComponent {
2334
2332
  elementReference;
2335
2333
  base;
2336
2334
  get connectionForSelectionId() {
2337
- return F_CONNECTION_IDENTIFIERS.connectionForSelectionId(this.base.fId + this.base.fOutputId + this.base.fInputId);
2335
+ return F_CONNECTION_IDENTIFIERS.connectionForSelectionId(this.base.fId() + this.base.fOutputId + this.base.fInputId);
2338
2336
  }
2339
2337
  get hostElement() {
2340
2338
  return this.elementReference.nativeElement;
@@ -2402,14 +2400,16 @@ class FConnectionBase extends MIXIN_BASE {
2402
2400
  cFactory;
2403
2401
  path = '';
2404
2402
  line = LineExtensions.initialize();
2403
+ fReassignableStart = signal(false);
2405
2404
  penultimatePoint = PointExtensions.initialize();
2405
+ secondPoint = PointExtensions.initialize();
2406
2406
  constructor(elementReference, cFactory) {
2407
2407
  super(elementReference.nativeElement);
2408
2408
  this.cFactory = cFactory;
2409
2409
  }
2410
2410
  initialize() {
2411
- this.fPath.initialize();
2412
- this.fGradient.initialize();
2411
+ this.fPath().initialize();
2412
+ this.fGradient().initialize();
2413
2413
  this.redraw();
2414
2414
  }
2415
2415
  isContains(element) {
@@ -2420,7 +2420,8 @@ class FConnectionBase extends MIXIN_BASE {
2420
2420
  const pathResult = this.getPathResult(point1, sourceSide, point2, targetSide);
2421
2421
  this.path = pathResult.path;
2422
2422
  this.penultimatePoint = pathResult.penultimatePoint || point1;
2423
- this.fConnectionCenter?.nativeElement?.setAttribute('style', this.getTransform(pathResult.connectionCenter));
2423
+ this.secondPoint = pathResult.secondPoint || point2;
2424
+ this.fConnectionCenter()?.nativeElement?.setAttribute('style', this.getTransform(pathResult.connectionCenter));
2424
2425
  }
2425
2426
  getPathResult(source, sourceSide, target, targetSide) {
2426
2427
  const radius = this.fRadius > 0 ? this.fRadius : 0;
@@ -2434,17 +2435,18 @@ class FConnectionBase extends MIXIN_BASE {
2434
2435
  return `position: absolute; pointerEvents: all; transform: translate(-50%, -50%); left: ${position.x}px; top: ${position.y}px`;
2435
2436
  }
2436
2437
  markChildrenAsSelected() {
2437
- this.fPath.select();
2438
+ this.fPath().select();
2438
2439
  }
2439
2440
  unmarkChildrenAsSelected() {
2440
- this.fPath.deselect();
2441
+ this.fPath().deselect();
2441
2442
  }
2442
2443
  redraw() {
2443
- this.fPath.setPath(this.path);
2444
- this.fSelection.setPath(this.path);
2445
- this.fGradient.redraw(this.line);
2446
- this.fDragHandle.redraw(this.penultimatePoint, this.line.point2);
2447
- this.fTextComponent.redraw(this.line);
2444
+ this.fPath().setPath(this.path);
2445
+ this.fSelection().setPath(this.path);
2446
+ this.fGradient().redraw(this.line);
2447
+ this.fDragHandleEnd().redraw(this.penultimatePoint, this.line.point2);
2448
+ this.fDragHandleStart()?.redraw(this.secondPoint, this.line.point1);
2449
+ this.fTextComponent().redraw(this.line);
2448
2450
  }
2449
2451
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionBase, deps: [{ token: i0.ElementRef }, { token: FConnectionFactory }], target: i0.ɵɵFactoryTarget.Directive });
2450
2452
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionBase, usesInheritance: true, ngImport: i0 });
@@ -2480,11 +2482,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2480
2482
 
2481
2483
  let uniqueId$6 = 0;
2482
2484
  class FConnectionForCreateComponent extends FConnectionBase {
2483
- fId = `f-connection-for-create-${uniqueId$6++}`;
2485
+ fId = signal(`f-connection-for-create-${uniqueId$6++}`);
2484
2486
  fText = '';
2485
2487
  fTextStartOffset = '';
2486
- fStartColor = 'black';
2487
- fEndColor = 'black';
2488
+ fStartColor = input('black');
2489
+ fEndColor = input('black');
2488
2490
  fOutputId;
2489
2491
  fInputId;
2490
2492
  fRadius = 8;
@@ -2493,16 +2495,17 @@ class FConnectionForCreateComponent extends FConnectionBase {
2493
2495
  fType = EFConnectionType.STRAIGHT;
2494
2496
  fDraggingDisabled = false;
2495
2497
  fSelectionDisabled = false;
2496
- fDefs;
2497
- fPath;
2498
- fGradient;
2499
- fDragHandle;
2500
- fSelection;
2501
- fTextComponent;
2502
- fConnectionCenter;
2503
- fConnectionCenters;
2498
+ fDefs = viewChild.required('defs');
2499
+ fPath = viewChild.required(CONNECTION_PATH);
2500
+ fGradient = viewChild.required(CONNECTION_GRADIENT);
2501
+ fDragHandleStart = viewChild(FConnectionDragHandleStartComponent);
2502
+ fDragHandleEnd = viewChild.required(FConnectionDragHandleEndComponent);
2503
+ fSelection = viewChild.required(FConnectionSelectionComponent);
2504
+ fTextComponent = viewChild.required(CONNECTION_TEXT);
2505
+ fConnectionCenter = viewChild('fConnectionCenter');
2506
+ fConnectionCenters = contentChildren(FConnectionCenterDirective, { descendants: true });
2504
2507
  get boundingElement() {
2505
- return this.fPath.hostElement;
2508
+ return this.fPath().hostElement;
2506
2509
  }
2507
2510
  _fMediator = inject(FMediator);
2508
2511
  constructor(elementReference, fConnectionFactory) {
@@ -2521,18 +2524,14 @@ class FConnectionForCreateComponent extends FConnectionBase {
2521
2524
  this._fMediator.execute(new RemoveConnectionForCreateFromStoreRequest());
2522
2525
  }
2523
2526
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionForCreateComponent, deps: [{ token: i0.ElementRef }, { token: FConnectionFactory }], target: i0.ɵɵFactoryTarget.Component });
2524
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fStartColor: "fStartColor", fEndColor: "fEndColor", fRadius: ["fRadius", "fRadius", numberAttribute], fOffset: ["fOffset", "fOffset", numberAttribute], fBehavior: ["fBehavior", "fBehavior", (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior)], fType: "fType" }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], 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: FConnectionDragHandleEndComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle-end></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { 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 });
2527
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fStartColor: { classPropertyName: "fStartColor", publicName: "fStartColor", isSignal: true, isRequired: false, transformFunction: null }, fEndColor: { classPropertyName: "fEndColor", publicName: "fEndColor", isSignal: true, isRequired: false, transformFunction: null }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null } }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], queries: [{ propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, isSignal: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, isSignal: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, isSignal: true }, { propertyName: "fDragHandleStart", first: true, predicate: FConnectionDragHandleStartComponent, descendants: true, isSignal: true }, { propertyName: "fDragHandleEnd", first: true, predicate: FConnectionDragHandleEndComponent, descendants: true, isSignal: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, isSignal: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, isSignal: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\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: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionDragHandleStartComponent, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { 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 });
2525
2528
  }
2526
2529
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionForCreateComponent, decorators: [{
2527
2530
  type: Component,
2528
2531
  args: [{ selector: "f-connection-for-create", changeDetection: ChangeDetectionStrategy.OnPush, host: {
2529
2532
  class: "f-component f-connection f-connection-for-create"
2530
- }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle-end></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center{pointer-events:all}\n"] }]
2531
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FConnectionFactory }], propDecorators: { fStartColor: [{
2532
- type: Input
2533
- }], fEndColor: [{
2534
- type: Input
2535
- }], fRadius: [{
2533
+ }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\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"] }]
2534
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FConnectionFactory }], propDecorators: { fRadius: [{
2536
2535
  type: Input,
2537
2536
  args: [{ transform: numberAttribute }]
2538
2537
  }], fOffset: [{
@@ -2543,57 +2542,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2543
2542
  args: [{ transform: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }]
2544
2543
  }], fType: [{
2545
2544
  type: Input
2546
- }], fDefs: [{
2547
- type: ViewChild,
2548
- args: ['defs', { static: true }]
2549
- }], fPath: [{
2550
- type: ViewChild,
2551
- args: [CONNECTION_PATH, { static: true }]
2552
- }], fGradient: [{
2553
- type: ViewChild,
2554
- args: [CONNECTION_GRADIENT, { static: true }]
2555
- }], fDragHandle: [{
2556
- type: ViewChild,
2557
- args: [FConnectionDragHandleEndComponent, { static: true }]
2558
- }], fSelection: [{
2559
- type: ViewChild,
2560
- args: [FConnectionSelectionComponent, { static: true }]
2561
- }], fTextComponent: [{
2562
- type: ViewChild,
2563
- args: [CONNECTION_TEXT, { static: true }]
2564
- }], fConnectionCenter: [{
2565
- type: ViewChild,
2566
- args: ['fConnectionCenter', { static: false }]
2567
- }], fConnectionCenters: [{
2568
- type: ContentChildren,
2569
- args: [FConnectionCenterDirective, { descendants: true }]
2570
2545
  }] } });
2571
2546
 
2572
2547
  let uniqueId$5 = 0;
2573
2548
  class FConnectionComponent extends FConnectionBase {
2574
- fId = `f-connection-${uniqueId$5++}`;
2549
+ fId = input(`f-connection-${uniqueId$5++}`, { alias: 'fConnectionId' });
2575
2550
  fText = '';
2576
2551
  fTextStartOffset = '';
2577
- fStartColor = 'black';
2578
- fEndColor = 'black';
2552
+ fStartColor = input('black');
2553
+ fEndColor = input('black');
2579
2554
  fOutputId = '';
2580
2555
  fInputId = '';
2581
2556
  fRadius = 8;
2582
2557
  fOffset = 12;
2583
2558
  fBehavior = EFConnectionBehavior.FIXED;
2584
2559
  fType = EFConnectionType.STRAIGHT;
2560
+ fReassignableStart = input(false);
2585
2561
  fDraggingDisabled = false;
2586
2562
  fSelectionDisabled = false;
2587
- fDefs;
2588
- fPath;
2589
- fGradient;
2590
- fDragHandle;
2591
- fSelection;
2592
- fTextComponent;
2593
- fConnectionCenter;
2594
- fConnectionCenters;
2563
+ fDefs = viewChild.required('defs');
2564
+ fPath = viewChild.required(CONNECTION_PATH);
2565
+ fGradient = viewChild.required(CONNECTION_GRADIENT);
2566
+ fDragHandleStart = viewChild(FConnectionDragHandleStartComponent);
2567
+ fDragHandleEnd = viewChild.required(FConnectionDragHandleEndComponent);
2568
+ fSelection = viewChild.required(FConnectionSelectionComponent);
2569
+ fTextComponent = viewChild.required(CONNECTION_TEXT);
2570
+ fConnectionCenter = viewChild('fConnectionCenter');
2571
+ fConnectionCenters = contentChildren(FConnectionCenterDirective, { descendants: true });
2595
2572
  get boundingElement() {
2596
- return this.fPath.hostElement;
2573
+ return this.fPath().hostElement;
2597
2574
  }
2598
2575
  _fMediator = inject(FMediator);
2599
2576
  constructor(elementReference, fConnectionFactory) {
@@ -2609,27 +2586,20 @@ class FConnectionComponent extends FConnectionBase {
2609
2586
  this._fMediator.execute(new RemoveConnectionFromStoreRequest(this));
2610
2587
  }
2611
2588
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionComponent, deps: [{ token: i0.ElementRef }, { token: FConnectionFactory }], target: i0.ɵɵFactoryTarget.Component });
2612
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: FConnectionComponent, selector: "f-connection", inputs: { fId: ["fConnectionId", "fId"], fText: "fText", fTextStartOffset: "fTextStartOffset", fStartColor: "fStartColor", fEndColor: "fEndColor", fOutputId: "fOutputId", fInputId: "fInputId", fRadius: ["fRadius", "fRadius", numberAttribute], fOffset: ["fOffset", "fOffset", numberAttribute], 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: FConnectionDragHandleEndComponent, 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-end></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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { 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 });
2589
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionComponent, selector: "f-connection", inputs: { fId: { classPropertyName: "fId", publicName: "fConnectionId", isSignal: true, isRequired: false, transformFunction: null }, fText: { classPropertyName: "fText", publicName: "fText", isSignal: false, isRequired: false, transformFunction: null }, fTextStartOffset: { classPropertyName: "fTextStartOffset", publicName: "fTextStartOffset", isSignal: false, isRequired: false, transformFunction: null }, fStartColor: { classPropertyName: "fStartColor", publicName: "fStartColor", isSignal: true, isRequired: false, transformFunction: null }, fEndColor: { classPropertyName: "fEndColor", publicName: "fEndColor", isSignal: true, isRequired: false, transformFunction: null }, fOutputId: { classPropertyName: "fOutputId", publicName: "fOutputId", isSignal: false, isRequired: false, transformFunction: null }, fInputId: { classPropertyName: "fInputId", publicName: "fInputId", isSignal: false, isRequired: false, transformFunction: null }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fReassignableStart: { classPropertyName: "fReassignableStart", publicName: "fReassignableStart", isSignal: true, isRequired: false, transformFunction: null }, fDraggingDisabled: { classPropertyName: "fDraggingDisabled", publicName: "fReassignDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fSelectionDisabled: { classPropertyName: "fSelectionDisabled", publicName: "fSelectionDisabled", isSignal: false, isRequired: false, transformFunction: 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, isSignal: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, isSignal: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, isSignal: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, isSignal: true }, { propertyName: "fDragHandleStart", first: true, predicate: FConnectionDragHandleStartComponent, descendants: true, isSignal: true }, { propertyName: "fDragHandleEnd", first: true, predicate: FConnectionDragHandleEndComponent, descendants: true, isSignal: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, isSignal: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, isSignal: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, isSignal: 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 @if (fReassignableStart()) {\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n }\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\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: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionDragHandleStartComponent, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { 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 });
2613
2590
  }
2614
2591
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionComponent, decorators: [{
2615
2592
  type: Component,
2616
2593
  args: [{ selector: "f-connection", exportAs: 'fComponent', changeDetection: ChangeDetectionStrategy.OnPush, host: {
2617
- '[attr.id]': 'fId',
2594
+ '[attr.id]': 'fId()',
2618
2595
  class: "f-component f-connection",
2619
2596
  '[class.f-connection-selection-disabled]': 'fSelectionDisabled',
2620
2597
  '[class.f-connection-reassign-disabled]': 'fDraggingDisabled',
2621
- }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <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-end></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"] }]
2622
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FConnectionFactory }], propDecorators: { fId: [{
2623
- type: Input,
2624
- args: ['fConnectionId']
2625
- }], fText: [{
2598
+ }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <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 @if (fReassignableStart()) {\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n }\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\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"] }]
2599
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FConnectionFactory }], propDecorators: { fText: [{
2626
2600
  type: Input
2627
2601
  }], fTextStartOffset: [{
2628
2602
  type: Input
2629
- }], fStartColor: [{
2630
- type: Input
2631
- }], fEndColor: [{
2632
- type: Input
2633
2603
  }], fOutputId: [{
2634
2604
  type: Input
2635
2605
  }], fInputId: [{
@@ -2651,30 +2621,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2651
2621
  }], fSelectionDisabled: [{
2652
2622
  type: Input,
2653
2623
  args: [{ transform: booleanAttribute }]
2654
- }], fDefs: [{
2655
- type: ViewChild,
2656
- args: ['defs', { static: true }]
2657
- }], fPath: [{
2658
- type: ViewChild,
2659
- args: [CONNECTION_PATH, { static: true }]
2660
- }], fGradient: [{
2661
- type: ViewChild,
2662
- args: [CONNECTION_GRADIENT, { static: true }]
2663
- }], fDragHandle: [{
2664
- type: ViewChild,
2665
- args: [FConnectionDragHandleEndComponent, { static: true }]
2666
- }], fSelection: [{
2667
- type: ViewChild,
2668
- args: [FConnectionSelectionComponent, { static: true }]
2669
- }], fTextComponent: [{
2670
- type: ViewChild,
2671
- args: [CONNECTION_TEXT, { static: true }]
2672
- }], fConnectionCenter: [{
2673
- type: ViewChild,
2674
- args: ['fConnectionCenter', { static: false }]
2675
- }], fConnectionCenters: [{
2676
- type: ContentChildren,
2677
- args: [FConnectionCenterDirective, { descendants: true }]
2678
2624
  }] } });
2679
2625
 
2680
2626
  var EFMarkerType;
@@ -2750,11 +2696,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2750
2696
 
2751
2697
  let uniqueId$4 = 0;
2752
2698
  class FSnapConnectionComponent extends FConnectionBase {
2753
- fId = `f-snap-connection-${uniqueId$4++}`;
2699
+ fId = signal(`f-snap-connection-${uniqueId$4++}`);
2754
2700
  fText = '';
2755
2701
  fTextStartOffset = '';
2756
- fStartColor = 'black';
2757
- fEndColor = 'black';
2702
+ fStartColor = input('black');
2703
+ fEndColor = input('black');
2758
2704
  fSnapThreshold = 20;
2759
2705
  fOutputId;
2760
2706
  fInputId;
@@ -2764,16 +2710,17 @@ class FSnapConnectionComponent extends FConnectionBase {
2764
2710
  fType = EFConnectionType.STRAIGHT;
2765
2711
  fDraggingDisabled = false;
2766
2712
  fSelectionDisabled = false;
2767
- fDefs;
2768
- fPath;
2769
- fGradient;
2770
- fDragHandle;
2771
- fSelection;
2772
- fTextComponent;
2773
- fConnectionCenter;
2774
- fConnectionCenters;
2713
+ fDefs = viewChild.required('defs');
2714
+ fPath = viewChild.required(CONNECTION_PATH);
2715
+ fGradient = viewChild.required(CONNECTION_GRADIENT);
2716
+ fDragHandleStart = viewChild(FConnectionDragHandleStartComponent);
2717
+ fDragHandleEnd = viewChild.required(FConnectionDragHandleEndComponent);
2718
+ fSelection = viewChild.required(FConnectionSelectionComponent);
2719
+ fTextComponent = viewChild.required(CONNECTION_TEXT);
2720
+ fConnectionCenter = viewChild('fConnectionCenter');
2721
+ fConnectionCenters = contentChildren(FConnectionCenterDirective, { descendants: true });
2775
2722
  get boundingElement() {
2776
- return this.fPath.hostElement;
2723
+ return this.fPath().hostElement;
2777
2724
  }
2778
2725
  _fMediator = inject(FMediator);
2779
2726
  constructor(elementReference, fConnectionFactory) {
@@ -2792,18 +2739,14 @@ class FSnapConnectionComponent extends FConnectionBase {
2792
2739
  this._fMediator.execute(new RemoveSnapConnectionFromStoreRequest());
2793
2740
  }
2794
2741
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSnapConnectionComponent, deps: [{ token: i0.ElementRef }, { token: FConnectionFactory }], target: i0.ɵɵFactoryTarget.Component });
2795
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: FSnapConnectionComponent, selector: "f-snap-connection", inputs: { fStartColor: "fStartColor", fEndColor: "fEndColor", fSnapThreshold: ["fSnapThreshold", "fSnapThreshold", numberAttribute], fRadius: ["fRadius", "fRadius", numberAttribute], fOffset: ["fOffset", "fOffset", numberAttribute], fBehavior: ["fBehavior", "fBehavior", (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior)], fType: "fType" }, host: { classAttribute: "f-component f-connection f-snap-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FSnapConnectionComponent }], 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: FConnectionDragHandleEndComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle-end></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { 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 });
2742
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FSnapConnectionComponent, selector: "f-snap-connection", inputs: { fStartColor: { classPropertyName: "fStartColor", publicName: "fStartColor", isSignal: true, isRequired: false, transformFunction: null }, fEndColor: { classPropertyName: "fEndColor", publicName: "fEndColor", isSignal: true, isRequired: false, transformFunction: null }, fSnapThreshold: { classPropertyName: "fSnapThreshold", publicName: "fSnapThreshold", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null } }, host: { classAttribute: "f-component f-connection f-snap-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FSnapConnectionComponent }], queries: [{ propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, isSignal: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, isSignal: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, isSignal: true }, { propertyName: "fDragHandleStart", first: true, predicate: FConnectionDragHandleStartComponent, descendants: true, isSignal: true }, { propertyName: "fDragHandleEnd", first: true, predicate: FConnectionDragHandleEndComponent, descendants: true, isSignal: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, isSignal: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, isSignal: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\n\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: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionDragHandleStartComponent, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { 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 });
2796
2743
  }
2797
2744
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSnapConnectionComponent, decorators: [{
2798
2745
  type: Component,
2799
2746
  args: [{ selector: "f-snap-connection", changeDetection: ChangeDetectionStrategy.OnPush, host: {
2800
2747
  class: "f-component f-connection f-snap-connection"
2801
- }, providers: [{ provide: F_CONNECTION, useExisting: FSnapConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle-end></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center{pointer-events:all}\n"] }]
2802
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FConnectionFactory }], propDecorators: { fStartColor: [{
2803
- type: Input
2804
- }], fEndColor: [{
2805
- type: Input
2806
- }], fSnapThreshold: [{
2748
+ }, providers: [{ provide: F_CONNECTION, useExisting: FSnapConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\n\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"] }]
2749
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FConnectionFactory }], propDecorators: { fSnapThreshold: [{
2807
2750
  type: Input,
2808
2751
  args: [{ transform: numberAttribute }]
2809
2752
  }], fRadius: [{
@@ -2817,30 +2760,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2817
2760
  args: [{ transform: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }]
2818
2761
  }], fType: [{
2819
2762
  type: Input
2820
- }], fDefs: [{
2821
- type: ViewChild,
2822
- args: ['defs', { static: true }]
2823
- }], fPath: [{
2824
- type: ViewChild,
2825
- args: [CONNECTION_PATH, { static: true }]
2826
- }], fGradient: [{
2827
- type: ViewChild,
2828
- args: [CONNECTION_GRADIENT, { static: true }]
2829
- }], fDragHandle: [{
2830
- type: ViewChild,
2831
- args: [FConnectionDragHandleEndComponent, { static: true }]
2832
- }], fSelection: [{
2833
- type: ViewChild,
2834
- args: [FConnectionSelectionComponent, { static: true }]
2835
- }], fTextComponent: [{
2836
- type: ViewChild,
2837
- args: [CONNECTION_TEXT, { static: true }]
2838
- }], fConnectionCenter: [{
2839
- type: ViewChild,
2840
- args: ['fConnectionCenter', { static: false }]
2841
- }], fConnectionCenters: [{
2842
- type: ContentChildren,
2843
- args: [FConnectionCenterDirective, { descendants: true }]
2844
2763
  }] } });
2845
2764
 
2846
2765
  const F_CONNECTION_PROVIDERS = [
@@ -3253,21 +3172,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3253
3172
  type: Injectable
3254
3173
  }] });
3255
3174
 
3256
- class CalculateClosestInputRequest {
3175
+ class FindClosestConnectorRequest {
3257
3176
  position;
3258
- canBeConnectedInputs;
3259
- static fToken = Symbol('CalculateClosestInputRequest');
3260
- constructor(position, canBeConnectedInputs) {
3177
+ connectors;
3178
+ static fToken = Symbol('FindClosestConnectorRequest');
3179
+ constructor(position, connectors) {
3261
3180
  this.position = position;
3262
- this.canBeConnectedInputs = canBeConnectedInputs;
3181
+ this.connectors = connectors;
3263
3182
  }
3264
3183
  }
3265
3184
 
3266
- let CalculateClosestInputExecution = class CalculateClosestInputExecution {
3185
+ let FindClosestConnectorExecution = class FindClosestConnectorExecution {
3267
3186
  handle(payload) {
3268
3187
  let result;
3269
3188
  let minDistance = Infinity;
3270
- for (const element of payload.canBeConnectedInputs) {
3189
+ for (const element of payload.connectors) {
3271
3190
  const distance = this._distanceToRectangle(payload.position, element);
3272
3191
  if (distance < minDistance) {
3273
3192
  minDistance = distance;
@@ -3289,63 +3208,63 @@ let CalculateClosestInputExecution = class CalculateClosestInputExecution {
3289
3208
  _clamp(value, min, max) {
3290
3209
  return Math.max(min, Math.min(max, value));
3291
3210
  }
3292
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateClosestInputExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3293
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateClosestInputExecution });
3211
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FindClosestConnectorExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3212
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FindClosestConnectorExecution });
3294
3213
  };
3295
- CalculateClosestInputExecution = __decorate([
3296
- FExecutionRegister(CalculateClosestInputRequest)
3297
- ], CalculateClosestInputExecution);
3298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateClosestInputExecution, decorators: [{
3214
+ FindClosestConnectorExecution = __decorate([
3215
+ FExecutionRegister(FindClosestConnectorRequest)
3216
+ ], FindClosestConnectorExecution);
3217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FindClosestConnectorExecution, decorators: [{
3299
3218
  type: Injectable
3300
3219
  }] });
3301
3220
 
3302
- class FindInputAtPositionRequest {
3221
+ class FindConnectableConnectorUsingPriorityAndPositionRequest {
3303
3222
  pointerPosition;
3304
- toConnectorRect;
3305
- canBeConnectedInputs;
3306
- static fToken = Symbol('FindInputAtPositionRequest');
3307
- constructor(pointerPosition, toConnectorRect, canBeConnectedInputs) {
3223
+ connectableConnectors;
3224
+ static fToken = Symbol('FindConnectableConnectorUsingPriorityAndPositionRequest');
3225
+ constructor(pointerPosition, connectableConnectors) {
3308
3226
  this.pointerPosition = pointerPosition;
3309
- this.toConnectorRect = toConnectorRect;
3310
- this.canBeConnectedInputs = canBeConnectedInputs;
3227
+ this.connectableConnectors = connectableConnectors;
3311
3228
  }
3312
3229
  }
3313
3230
 
3314
- let FindInputAtPositionExecution = class FindInputAtPositionExecution {
3315
- _fMediator = inject(FMediator);
3316
- _fComponentsStore = inject(FComponentsStore);
3317
- _fBrowser = inject(BrowserService);
3231
+ let FindConnectableConnectorUsingPriorityAndPositionExecution = class FindConnectableConnectorUsingPriorityAndPositionExecution {
3232
+ _mediator = inject(FMediator);
3233
+ _store = inject(FComponentsStore);
3234
+ _browser = inject(BrowserService);
3318
3235
  get _transform() {
3319
- return this._fComponentsStore.fCanvas.transform;
3236
+ return this._store.fCanvas.transform;
3320
3237
  }
3321
3238
  get _fHost() {
3322
- return this._fComponentsStore.fFlow.hostElement;
3239
+ return this._store.fFlow.hostElement;
3323
3240
  }
3324
3241
  get _fNodes() {
3325
- return this._fComponentsStore.fNodes;
3242
+ return this._store.fNodes;
3326
3243
  }
3327
3244
  get _fSnapConnection() {
3328
- return this._fComponentsStore.fSnapConnection;
3245
+ return this._store.fSnapConnection;
3329
3246
  }
3330
3247
  handle(payload) {
3331
- const fInputs = this._findInputsAtPosition(payload);
3332
- return fInputs.length > 0 ? fInputs[0] : undefined;
3248
+ const connectors = this._findConnectorAtPosition(payload);
3249
+ return connectors.length > 0 ? connectors[0] : undefined;
3333
3250
  }
3334
- _findInputsAtPosition(request) {
3251
+ _findConnectorAtPosition(request) {
3335
3252
  const result = [];
3336
- result.push(...this._getConnectableInputsAtPosition(request));
3337
- const fClosestInput = this._calculateClosetInput(request);
3338
- if (fClosestInput) {
3339
- result.unshift(fClosestInput.fConnector);
3340
- }
3341
- const fInput = this._getFirstConnectableInputOfNodeAtPosition(request);
3253
+ result.push(...this._filterConnectorsThatLocatedAtPosition(request));
3254
+ // Closest connector is only added if snap connection is enabled and there is a closest connector found
3255
+ // Closest connector has more priority than the first connectable input of the node at position
3256
+ const closestConnector = this._isSnapConnectionEnabledAndHasClosestConnector(request);
3257
+ if (closestConnector) {
3258
+ result.unshift(closestConnector.fConnector);
3259
+ }
3260
+ const fInput = this._getFirstConnectableConnectorOfNodeAtPosition(request);
3342
3261
  if (fInput) {
3343
3262
  result.push(fInput);
3344
3263
  }
3345
3264
  return result;
3346
3265
  }
3347
- _getConnectableInputsAtPosition(request) {
3348
- return request.canBeConnectedInputs.filter((x) => {
3266
+ _filterConnectorsThatLocatedAtPosition(request) {
3267
+ return request.connectableConnectors.filter((x) => {
3349
3268
  return RectExtensions.isIncludePoint(x.fRect, this._getPointInFlow(request.pointerPosition));
3350
3269
  }).map((x) => x.fConnector);
3351
3270
  }
@@ -3355,41 +3274,40 @@ let FindInputAtPositionExecution = class FindInputAtPositionExecution {
3355
3274
  .sub(this._transform.scaledPosition).sub(this._transform.position)
3356
3275
  .div(this._transform.scale);
3357
3276
  }
3358
- //if the closest input is valid, return it
3359
- _calculateClosetInput(request) {
3277
+ _isSnapConnectionEnabledAndHasClosestConnector(request) {
3360
3278
  if (!this._fSnapConnection) {
3361
3279
  return undefined;
3362
3280
  }
3363
- const fClosestInput = this._fMediator.execute(new CalculateClosestInputRequest(this._getPointInFlow(request.pointerPosition), request.canBeConnectedInputs));
3364
- return this._isValidClosestInput(fClosestInput) ? fClosestInput : undefined;
3281
+ const closestConnector = this._mediator.execute(new FindClosestConnectorRequest(this._getPointInFlow(request.pointerPosition), request.connectableConnectors));
3282
+ return this._isValidClosestInput(closestConnector) ? closestConnector : undefined;
3365
3283
  }
3366
- _isValidClosestInput(fClosestInput) {
3367
- return !!fClosestInput && fClosestInput.distance < this._fSnapConnection.fSnapThreshold;
3284
+ _isValidClosestInput(closestConnector) {
3285
+ return !!closestConnector && closestConnector.distance < this._fSnapConnection.fSnapThreshold;
3368
3286
  }
3369
- //if node placed in position and fConnectOnNode is true, return the first connectable input of the node
3370
- _getFirstConnectableInputOfNodeAtPosition(request) {
3287
+ //if node placed in position and fConnectOnNode is true, return the first connectable connector of the node
3288
+ _getFirstConnectableConnectorOfNodeAtPosition(request) {
3371
3289
  return this._getElementsFromPoint(request.pointerPosition)
3372
3290
  .map((x) => this._findConnectableNode(x))
3373
3291
  .filter((x) => !!x)
3374
- .map((x) => this._findFirstConnectableInputOfNode(request.canBeConnectedInputs, x))
3292
+ .map((x) => this._findFirstConnectableConnectorOfNode(request.connectableConnectors, x))
3375
3293
  .find((x) => !!x);
3376
3294
  }
3377
3295
  _getElementsFromPoint(position) {
3378
- return this._fBrowser.document.elementsFromPoint(position.x, position.y);
3296
+ return this._browser.document.elementsFromPoint(position.x, position.y);
3379
3297
  }
3380
3298
  _findConnectableNode(element) {
3381
3299
  return this._fNodes.find((x) => x.isContains(element) && x.fConnectOnNode);
3382
3300
  }
3383
- _findFirstConnectableInputOfNode(connectableInputs, fNode) {
3384
- return connectableInputs.find((x) => x.fConnector.fNodeId === fNode.fId)?.fConnector;
3301
+ _findFirstConnectableConnectorOfNode(connectableInputs, fNode) {
3302
+ return connectableInputs.find((x) => x.fConnector.fNodeId === fNode.fId())?.fConnector;
3385
3303
  }
3386
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FindInputAtPositionExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3387
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FindInputAtPositionExecution });
3304
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FindConnectableConnectorUsingPriorityAndPositionExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3305
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FindConnectableConnectorUsingPriorityAndPositionExecution });
3388
3306
  };
3389
- FindInputAtPositionExecution = __decorate([
3390
- FExecutionRegister(FindInputAtPositionRequest)
3391
- ], FindInputAtPositionExecution);
3392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FindInputAtPositionExecution, decorators: [{
3307
+ FindConnectableConnectorUsingPriorityAndPositionExecution = __decorate([
3308
+ FExecutionRegister(FindConnectableConnectorUsingPriorityAndPositionRequest)
3309
+ ], FindConnectableConnectorUsingPriorityAndPositionExecution);
3310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FindConnectableConnectorUsingPriorityAndPositionExecution, decorators: [{
3393
3311
  type: Injectable
3394
3312
  }] });
3395
3313
 
@@ -3467,30 +3385,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3467
3385
  type: Injectable
3468
3386
  }] });
3469
3387
 
3470
- class MarkAllCanBeConnectedInputsRequest {
3471
- fInputs;
3472
- static fToken = Symbol('MarkAllCanBeConnectedInputsRequest');
3473
- constructor(fInputs) {
3474
- this.fInputs = fInputs;
3388
+ class GetAllCanBeConnectedSourceConnectorsAndRectsRequest {
3389
+ fTargetConnector;
3390
+ static fToken = Symbol('GetAllCanBeConnectedSourceConnectorsAndRectsRequest');
3391
+ constructor(fTargetConnector) {
3392
+ this.fTargetConnector = fTargetConnector;
3475
3393
  }
3476
3394
  }
3477
3395
 
3478
- let MarkAllCanBeConnectedInputsExecution = class MarkAllCanBeConnectedInputsExecution {
3396
+ let GetAllCanBeConnectedSourceConnectorsAndRectsExecution = class GetAllCanBeConnectedSourceConnectorsAndRectsExecution {
3397
+ _fMediator = inject(FMediator);
3479
3398
  _fComponentsStore = inject(FComponentsStore);
3399
+ get _fSourceConnectors() {
3400
+ return this._fComponentsStore.fOutputs;
3401
+ }
3480
3402
  handle(payload) {
3481
- this._fComponentsStore.flowHost.classList.add(F_CSS_CLASS.DRAG_AND_DROP.CONNECTIONS_DRAGGING);
3482
- payload.fInputs.forEach((fInput) => this._markCanBeConnectedTo(fInput));
3403
+ return this._getCanBeConnectedSourceConnectors(payload.fTargetConnector).map((x) => {
3404
+ return this._fMediator.execute(new GetConnectorAndRectRequest(x));
3405
+ });
3483
3406
  }
3484
- _markCanBeConnectedTo(fInput) {
3485
- fInput.hostElement.classList.add(F_CSS_CLASS.CONNECTOR.INPUT_CAN_BE_CONNECTED_TO);
3407
+ _getCanBeConnectedSourceConnectors(fTargetConnector) {
3408
+ return this._fSourceConnectors.filter((x) => {
3409
+ let result = x.canBeConnected;
3410
+ if (result && x.canBeConnectedInputs?.length) {
3411
+ result = x.canBeConnectedInputs?.includes(fTargetConnector.fId);
3412
+ }
3413
+ return result;
3414
+ });
3486
3415
  }
3487
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkAllCanBeConnectedInputsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3488
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkAllCanBeConnectedInputsExecution });
3416
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetAllCanBeConnectedSourceConnectorsAndRectsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3417
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetAllCanBeConnectedSourceConnectorsAndRectsExecution });
3489
3418
  };
3490
- MarkAllCanBeConnectedInputsExecution = __decorate([
3491
- FExecutionRegister(MarkAllCanBeConnectedInputsRequest)
3492
- ], MarkAllCanBeConnectedInputsExecution);
3493
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkAllCanBeConnectedInputsExecution, decorators: [{
3419
+ GetAllCanBeConnectedSourceConnectorsAndRectsExecution = __decorate([
3420
+ FExecutionRegister(GetAllCanBeConnectedSourceConnectorsAndRectsRequest)
3421
+ ], GetAllCanBeConnectedSourceConnectorsAndRectsExecution);
3422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetAllCanBeConnectedSourceConnectorsAndRectsExecution, decorators: [{
3423
+ type: Injectable
3424
+ }] });
3425
+
3426
+ class MarkConnectableConnectorsRequest {
3427
+ fConnectors;
3428
+ static fToken = Symbol('MarkConnectableConnectorsRequest');
3429
+ constructor(fConnectors) {
3430
+ this.fConnectors = fConnectors;
3431
+ }
3432
+ }
3433
+
3434
+ let MarkConnectableConnectorsExecution = class MarkConnectableConnectorsExecution {
3435
+ _store = inject(FComponentsStore);
3436
+ handle(payload) {
3437
+ this._store.flowHost.classList.add(F_CSS_CLASS.DRAG_AND_DROP.CONNECTIONS_DRAGGING);
3438
+ payload.fConnectors.forEach((fConnector) => this._markConnector(fConnector));
3439
+ }
3440
+ _markConnector(fConnector) {
3441
+ fConnector.hostElement.classList.add(F_CSS_CLASS.CONNECTOR.CONNECTABLE);
3442
+ }
3443
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkConnectableConnectorsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3444
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkConnectableConnectorsExecution });
3445
+ };
3446
+ MarkConnectableConnectorsExecution = __decorate([
3447
+ FExecutionRegister(MarkConnectableConnectorsRequest)
3448
+ ], MarkConnectableConnectorsExecution);
3449
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkConnectableConnectorsExecution, decorators: [{
3494
3450
  type: Injectable
3495
3451
  }] });
3496
3452
 
@@ -3563,30 +3519,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3563
3519
  type: Injectable
3564
3520
  }] });
3565
3521
 
3566
- class UnmarkAllCanBeConnectedInputsRequest {
3567
- fInputs;
3568
- static fToken = Symbol('UnmarkAllCanBeConnectedInputsRequest');
3569
- constructor(fInputs) {
3570
- this.fInputs = fInputs;
3522
+ class UnmarkConnectableConnectorsRequest {
3523
+ fConnectors;
3524
+ static fToken = Symbol('UnmarkConnectableConnectorsRequest');
3525
+ constructor(fConnectors) {
3526
+ this.fConnectors = fConnectors;
3571
3527
  }
3572
3528
  }
3573
3529
 
3574
- let UnmarkAllCanBeConnectedInputsExecution = class UnmarkAllCanBeConnectedInputsExecution {
3575
- _fComponentsStore = inject(FComponentsStore);
3530
+ let UnmarkConnectableConnectorsExecution = class UnmarkConnectableConnectorsExecution {
3531
+ _store = inject(FComponentsStore);
3576
3532
  handle(payload) {
3577
- this._fComponentsStore.flowHost.classList.remove(F_CSS_CLASS.DRAG_AND_DROP.CONNECTIONS_DRAGGING);
3578
- payload.fInputs.forEach((fInput) => this._unmarkCanBeConnectedTo(fInput));
3533
+ this._store.flowHost.classList.remove(F_CSS_CLASS.DRAG_AND_DROP.CONNECTIONS_DRAGGING);
3534
+ payload.fConnectors.forEach((fConnector) => this._unmarkConnector(fConnector));
3579
3535
  }
3580
- _unmarkCanBeConnectedTo(fInput) {
3581
- fInput.hostElement.classList.remove(F_CSS_CLASS.CONNECTOR.INPUT_CAN_BE_CONNECTED_TO);
3536
+ _unmarkConnector(fConnector) {
3537
+ fConnector.hostElement.classList.remove(F_CSS_CLASS.CONNECTOR.CONNECTABLE);
3582
3538
  }
3583
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnmarkAllCanBeConnectedInputsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3584
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnmarkAllCanBeConnectedInputsExecution });
3539
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnmarkConnectableConnectorsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3540
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnmarkConnectableConnectorsExecution });
3585
3541
  };
3586
- UnmarkAllCanBeConnectedInputsExecution = __decorate([
3587
- FExecutionRegister(UnmarkAllCanBeConnectedInputsRequest)
3588
- ], UnmarkAllCanBeConnectedInputsExecution);
3589
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnmarkAllCanBeConnectedInputsExecution, decorators: [{
3542
+ UnmarkConnectableConnectorsExecution = __decorate([
3543
+ FExecutionRegister(UnmarkConnectableConnectorsRequest)
3544
+ ], UnmarkConnectableConnectorsExecution);
3545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnmarkConnectableConnectorsExecution, decorators: [{
3590
3546
  type: Injectable
3591
3547
  }] });
3592
3548
 
@@ -3594,15 +3550,16 @@ const F_CONNECTORS_FEATURES = [
3594
3550
  AddInputToStoreExecution,
3595
3551
  AddOutletToStoreExecution,
3596
3552
  AddOutputToStoreExecution,
3597
- CalculateClosestInputExecution,
3598
- FindInputAtPositionExecution,
3553
+ FindClosestConnectorExecution,
3554
+ FindConnectableConnectorUsingPriorityAndPositionExecution,
3555
+ GetAllCanBeConnectedSourceConnectorsAndRectsExecution,
3599
3556
  GetAllCanBeConnectedInputsAndRectsExecution,
3600
3557
  GetConnectorAndRectExecution,
3601
- MarkAllCanBeConnectedInputsExecution,
3558
+ MarkConnectableConnectorsExecution,
3602
3559
  RemoveInputFromStoreExecution,
3603
3560
  RemoveOutletFromStoreExecution,
3604
3561
  RemoveOutputFromStoreExecution,
3605
- UnmarkAllCanBeConnectedInputsExecution
3562
+ UnmarkConnectableConnectorsExecution
3606
3563
  ];
3607
3564
 
3608
3565
  class AddDndToStoreRequest {
@@ -3652,7 +3609,7 @@ let GetNormalizedParentNodeRectExecution = class GetNormalizedParentNodeRectExec
3652
3609
  return result;
3653
3610
  }
3654
3611
  _getNode(fId) {
3655
- return this._fComponentsStore.fNodes.find((x) => x.fId === fId);
3612
+ return this._fComponentsStore.fNodes.find((x) => x.fId() === fId);
3656
3613
  }
3657
3614
  // Parent Node
3658
3615
  // +----------------------------------------+
@@ -3712,10 +3669,10 @@ let IsArrayHasParentNodeExecution = class IsArrayHasParentNodeExecution {
3712
3669
  return this._isParentNodeInArray(this._getParentNodeIds(request.fParentNodes), request.fDraggedNodes);
3713
3670
  }
3714
3671
  _getParentNodeIds(fParentNodes) {
3715
- return fParentNodes.map((x) => x.fId);
3672
+ return fParentNodes.map((x) => x.fId());
3716
3673
  }
3717
3674
  _isParentNodeInArray(parentNodeIds, fDraggedNodes) {
3718
- return fDraggedNodes.some((x) => parentNodeIds.includes(x.fId));
3675
+ return fDraggedNodes.some((x) => parentNodeIds.includes(x.fId()));
3719
3676
  }
3720
3677
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IsArrayHasParentNodeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3721
3678
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IsArrayHasParentNodeExecution });
@@ -3756,7 +3713,7 @@ let IsConnectionUnderNodeExecution = class IsConnectionUnderNodeExecution {
3756
3713
  const fOutputConnections = this._getOutputConnectionsId(fOutputConnectors);
3757
3714
  const fInputConnections = this._getInputConnectionsId(fInputConnectors);
3758
3715
  const fConnectionsUnderNode = this._calculateConnectionsUnderNode(request.fNode).filter((x) => {
3759
- return !fOutputConnections.includes(x.fId) && !fInputConnections.includes(x.fId);
3716
+ return !fOutputConnections.includes(x.fId()) && !fInputConnections.includes(x.fId());
3760
3717
  });
3761
3718
  if (!fConnectionsUnderNode.length) {
3762
3719
  return;
@@ -3777,13 +3734,13 @@ let IsConnectionUnderNodeExecution = class IsConnectionUnderNodeExecution {
3777
3734
  const connectorsId = this._getConnectorsId(connectors);
3778
3735
  return this._fComponentsStore.fConnections
3779
3736
  .filter((x) => connectorsId.includes(x.fOutputId))
3780
- .map((x) => x.fId);
3737
+ .map((x) => x.fId());
3781
3738
  }
3782
3739
  _getInputConnectionsId(connectors) {
3783
3740
  const connectorsId = this._getConnectorsId(connectors);
3784
3741
  return this._fComponentsStore.fConnections
3785
3742
  .filter((x) => connectorsId.includes(x.fInputId))
3786
- .map((x) => x.fId);
3743
+ .map((x) => x.fId());
3787
3744
  }
3788
3745
  _getConnectorsId(connectors) {
3789
3746
  return connectors.map((x) => x.fId);
@@ -3793,10 +3750,10 @@ let IsConnectionUnderNodeExecution = class IsConnectionUnderNodeExecution {
3793
3750
  return this._fComponentsStore.fConnections.filter((x) => this._isConnectionHasIntersectionsWithNode(x, fNodeRect));
3794
3751
  }
3795
3752
  _isConnectionHasIntersectionsWithNode(fConnection, fNodeRect) {
3796
- return GetIntersections.getRoundedRectIntersectionsWithSVGPath(fConnection.fPath.hostElement, fNodeRect).length > 0;
3753
+ return GetIntersections.getRoundedRectIntersectionsWithSVGPath(fConnection.fPath().hostElement, fNodeRect).length > 0;
3797
3754
  }
3798
3755
  _emitNodeIntersectedWithConnections(fNode, fConnections) {
3799
- this._fComponentsStore.fDraggable?.fNodeIntersectedWithConnections.emit(new FNodeIntersectedWithConnections(fNode.fId, fConnections.map((x) => x.fId)));
3756
+ this._fComponentsStore.fDraggable?.fNodeIntersectedWithConnections.emit(new FNodeIntersectedWithConnections(fNode.fId(), fConnections.map((x) => x.fId())));
3800
3757
  }
3801
3758
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IsConnectionUnderNodeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3802
3759
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IsConnectionUnderNodeExecution });
@@ -4083,7 +4040,7 @@ class FCreateConnectionDragHandler {
4083
4040
  }
4084
4041
  _getAndMarkCanBeConnectedInputs() {
4085
4042
  this._canBeConnectedInputs = this._fMediator.execute(new GetAllCanBeConnectedInputsAndRectsRequest(this._fOutputOrOutlet));
4086
- this._fMediator.execute(new MarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
4043
+ this._fMediator.execute(new MarkConnectableConnectorsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
4087
4044
  }
4088
4045
  _initializeSnapConnection() {
4089
4046
  if (!this._fSnapConnection) {
@@ -4120,7 +4077,7 @@ class FCreateConnectionDragHandler {
4120
4077
  }
4121
4078
  }
4122
4079
  _findClosestInput(difference) {
4123
- return this._fMediator.execute(new CalculateClosestInputRequest(this._toConnectorRect.addPoint(difference), this._canBeConnectedInputs));
4080
+ return this._fMediator.execute(new FindClosestConnectorRequest(this._toConnectorRect.addPoint(difference), this._canBeConnectedInputs));
4124
4081
  }
4125
4082
  _getClosestInputForSnapConnection(fClosestInput) {
4126
4083
  return fClosestInput && fClosestInput.distance < this._fSnapConnection.fSnapThreshold ? fClosestInput : undefined;
@@ -4129,7 +4086,7 @@ class FCreateConnectionDragHandler {
4129
4086
  this._fConnection.redraw();
4130
4087
  this._fConnection.hide();
4131
4088
  this._fSnapConnection?.hide();
4132
- this._fMediator.execute(new UnmarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
4089
+ this._fMediator.execute(new UnmarkConnectableConnectorsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
4133
4090
  }
4134
4091
  }
4135
4092
 
@@ -4167,7 +4124,7 @@ let FCreateConnectionFinalizeExecution = class FCreateConnectionFinalizeExecutio
4167
4124
  this._fComponentsStore.fDraggable?.fCreateConnection.emit(new FCreateConnectionEvent(this.getTargetOutput(this.getOutput() || this.getOutlet()).fId, this._getInputUnderPointer(event)?.fId, event.getPosition()));
4168
4125
  }
4169
4126
  _getInputUnderPointer(event) {
4170
- return this._fMediator.execute(new FindInputAtPositionRequest(event.getPosition(), this._fResult.getData().toConnectorRect, this._fResult.getData().canBeConnectedInputs));
4127
+ return this._fMediator.execute(new FindConnectableConnectorUsingPriorityAndPositionRequest(event.getPosition(), this._fResult.getData().canBeConnectedInputs));
4171
4128
  }
4172
4129
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCreateConnectionFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4173
4130
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCreateConnectionFinalizeExecution });
@@ -4383,133 +4340,273 @@ class FReassignConnectionFinalizeRequest {
4383
4340
  }
4384
4341
  }
4385
4342
 
4343
+ function isClosestConnectorInsideSnapThreshold(fClosestConnector, snapConnection) {
4344
+ return fClosestConnector && fClosestConnector.distance < snapConnection.fSnapThreshold ? fClosestConnector : undefined;
4345
+ }
4346
+ function roundedRectFromPoint(point) {
4347
+ return RoundedRect.fromRect(RectExtensions.initialize(point.x, point.y));
4348
+ }
4349
+
4350
+ class FReassignTargetDragHandler {
4351
+ _mediator;
4352
+ _connection;
4353
+ _sourceConnectorAndRect;
4354
+ _targetConnectorAndRect;
4355
+ _connectableConnectors = [];
4356
+ get _sourceConnector() {
4357
+ return this._sourceConnectorAndRect.fConnector;
4358
+ }
4359
+ get _sourceConnectorRect() {
4360
+ return this._sourceConnectorAndRect.fRect;
4361
+ }
4362
+ get _targetConnector() {
4363
+ return this._targetConnectorAndRect.fConnector;
4364
+ }
4365
+ _connectorRect;
4366
+ _snapConnection;
4367
+ constructor(_mediator, _connection, _sourceConnectorAndRect, _targetConnectorAndRect) {
4368
+ this._mediator = _mediator;
4369
+ this._connection = _connection;
4370
+ this._sourceConnectorAndRect = _sourceConnectorAndRect;
4371
+ this._targetConnectorAndRect = _targetConnectorAndRect;
4372
+ this._connectorRect = roundedRectFromPoint(this._connection.line.point2);
4373
+ }
4374
+ getConnectableConnectors() {
4375
+ return this._connectableConnectors;
4376
+ }
4377
+ markConnectableConnector() {
4378
+ this._connectableConnectors = this._mediator.execute(new GetAllCanBeConnectedInputsAndRectsRequest(this._sourceConnector));
4379
+ this._mediator.execute(new MarkConnectableConnectorsRequest(this._connectableConnectors.map((x) => x.fConnector)));
4380
+ }
4381
+ initializeSnapConnection(snapConnection) {
4382
+ this._snapConnection = snapConnection;
4383
+ if (!snapConnection) {
4384
+ return;
4385
+ }
4386
+ snapConnection.fOutputId = this._connection.fOutputId;
4387
+ snapConnection.initialize();
4388
+ }
4389
+ onPointerMove(difference) {
4390
+ const newPoint = this._connectorRect.addPoint(difference);
4391
+ const fClosestConnector = this._findClosestConnector(newPoint, this._connectableConnectors);
4392
+ this._drawConnection(newPoint, fClosestConnector?.fConnector.fConnectableSide || this._targetConnector.fConnectableSide);
4393
+ if (this._snapConnection) {
4394
+ this._drawSnapConnection(isClosestConnectorInsideSnapThreshold(fClosestConnector, this._snapConnection));
4395
+ }
4396
+ }
4397
+ _findClosestConnector(point, connectors) {
4398
+ return this._mediator.execute(new FindClosestConnectorRequest(point, connectors));
4399
+ }
4400
+ _drawConnection(newPoint, fSide) {
4401
+ const line = this._calculateNewLine(newPoint, fSide);
4402
+ this._connection.setLine(line, this._sourceConnectorAndRect.fConnector.fConnectableSide, fSide);
4403
+ this._connection.redraw();
4404
+ }
4405
+ _calculateNewLine(targetPoint, fSide) {
4406
+ return this._mediator.execute(new CalculateConnectionLineByBehaviorRequest(this._sourceConnectorRect, roundedRectFromPoint(targetPoint), this._connection.fBehavior, this._sourceConnector.fConnectableSide, fSide));
4407
+ }
4408
+ _drawSnapConnection(fClosestConnector) {
4409
+ const snapConnection = this._snapConnection;
4410
+ if (fClosestConnector) {
4411
+ const line = this._getLineToClosestTargetConnector(fClosestConnector, snapConnection);
4412
+ snapConnection.show();
4413
+ snapConnection.setLine(line, this._sourceConnector.fConnectableSide, fClosestConnector.fConnector.fConnectableSide);
4414
+ snapConnection.redraw();
4415
+ }
4416
+ else {
4417
+ snapConnection.hide();
4418
+ }
4419
+ }
4420
+ _getLineToClosestTargetConnector(fClosestInput, snapConnection) {
4421
+ return this._mediator.execute(new CalculateConnectionLineByBehaviorRequest(this._sourceConnectorRect, fClosestInput.fRect, snapConnection.fBehavior, this._sourceConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide));
4422
+ }
4423
+ onPointerUp() {
4424
+ this._drawConnection(this._connectorRect, this._targetConnectorAndRect.fConnector.fConnectableSide);
4425
+ this._snapConnection?.hide();
4426
+ this._mediator.execute(new UnmarkConnectableConnectorsRequest(this._connectableConnectors.map((x) => x.fConnector)));
4427
+ }
4428
+ }
4429
+
4430
+ class FReassignSourceDragHandler {
4431
+ _mediator;
4432
+ _connection;
4433
+ _sourceConnectorAndRect;
4434
+ _targetConnectorAndRect;
4435
+ _connectableConnectors = [];
4436
+ get _sourceConnector() {
4437
+ return this._sourceConnectorAndRect.fConnector;
4438
+ }
4439
+ get _targetConnector() {
4440
+ return this._targetConnectorAndRect.fConnector;
4441
+ }
4442
+ _connectorRect;
4443
+ _snapConnection;
4444
+ constructor(_mediator, _connection, _sourceConnectorAndRect, _targetConnectorAndRect) {
4445
+ this._mediator = _mediator;
4446
+ this._connection = _connection;
4447
+ this._sourceConnectorAndRect = _sourceConnectorAndRect;
4448
+ this._targetConnectorAndRect = _targetConnectorAndRect;
4449
+ this._connectorRect = roundedRectFromPoint(this._connection.line.point1);
4450
+ }
4451
+ getConnectableConnectors() {
4452
+ return this._connectableConnectors;
4453
+ }
4454
+ markConnectableConnector() {
4455
+ this._connectableConnectors = this._mediator.execute(new GetAllCanBeConnectedSourceConnectorsAndRectsRequest(this._targetConnector));
4456
+ const isExistCurrentSourceConnector = this._connectableConnectors.some((x) => x.fConnector.fId === this._sourceConnector.fId);
4457
+ if (!isExistCurrentSourceConnector) {
4458
+ this._connectableConnectors.push(this._sourceConnectorAndRect);
4459
+ }
4460
+ this._mediator.execute(new MarkConnectableConnectorsRequest(this._connectableConnectors.map((x) => x.fConnector)));
4461
+ }
4462
+ initializeSnapConnection(snapConnection) {
4463
+ this._snapConnection = snapConnection;
4464
+ if (!snapConnection) {
4465
+ return;
4466
+ }
4467
+ snapConnection.fInputId = this._connection.fInputId;
4468
+ snapConnection.initialize();
4469
+ }
4470
+ onPointerMove(difference) {
4471
+ const newPoint = this._connectorRect.addPoint(difference);
4472
+ const fClosestConnector = this._findClosestConnector(newPoint, this._connectableConnectors);
4473
+ this._drawConnection(newPoint, fClosestConnector?.fConnector.fConnectableSide || this._sourceConnector.fConnectableSide);
4474
+ if (this._snapConnection) {
4475
+ this._drawSnapConnection(isClosestConnectorInsideSnapThreshold(fClosestConnector, this._snapConnection));
4476
+ }
4477
+ }
4478
+ _findClosestConnector(point, connectors) {
4479
+ return this._mediator.execute(new FindClosestConnectorRequest(point, connectors));
4480
+ }
4481
+ _drawConnection(newPoint, fSide) {
4482
+ const line = this._calculateNewLine(newPoint, fSide);
4483
+ this._connection.setLine(line, fSide, this._targetConnectorAndRect.fConnector.fConnectableSide);
4484
+ this._connection.redraw();
4485
+ }
4486
+ _calculateNewLine(sourcePoint, fSide) {
4487
+ return this._mediator.execute(new CalculateConnectionLineByBehaviorRequest(roundedRectFromPoint(sourcePoint), this._targetConnectorAndRect.fRect, this._connection.fBehavior, fSide, this._targetConnectorAndRect.fConnector.fConnectableSide));
4488
+ }
4489
+ _drawSnapConnection(fClosestConnector) {
4490
+ const snapConnection = this._snapConnection;
4491
+ if (fClosestConnector) {
4492
+ const line = this._getLineToClosestSourceConnector(fClosestConnector, snapConnection);
4493
+ snapConnection.show();
4494
+ snapConnection.setLine(line, fClosestConnector.fConnector.fConnectableSide, this._targetConnector.fConnectableSide);
4495
+ snapConnection.redraw();
4496
+ }
4497
+ else {
4498
+ snapConnection.hide();
4499
+ }
4500
+ }
4501
+ _getLineToClosestSourceConnector(fClosestInput, snapConnection) {
4502
+ return this._mediator.execute(new CalculateConnectionLineByBehaviorRequest(fClosestInput.fRect, this._targetConnectorAndRect.fRect, snapConnection.fBehavior, fClosestInput.fConnector.fConnectableSide, this._targetConnector.fConnectableSide));
4503
+ }
4504
+ onPointerUp() {
4505
+ this._drawConnection(this._connectorRect, this._sourceConnectorAndRect.fConnector.fConnectableSide);
4506
+ this._snapConnection?.hide();
4507
+ this._mediator.execute(new UnmarkConnectableConnectorsRequest(this._connectableConnectors.map((x) => x.fConnector)));
4508
+ }
4509
+ }
4510
+
4386
4511
  class FReassignConnectionDragHandler {
4387
- _fConnection;
4512
+ _connection;
4513
+ _isTargetDragHandle;
4388
4514
  fEventType = 'reassign-connection';
4389
4515
  fData;
4390
4516
  _fResult;
4391
4517
  _fMediator;
4392
- _fComponentsStore;
4393
- _toConnectorRect = new RoundedRect();
4518
+ _store;
4394
4519
  get _fSnapConnection() {
4395
- return this._fComponentsStore.fSnapConnection;
4520
+ return this._store.fSnapConnection;
4396
4521
  }
4397
- _fOutputWithRect;
4398
- _fInputWithRect;
4399
- _canBeConnectedInputs = [];
4400
- get _fOutput() {
4401
- const result = this._fComponentsStore.fOutputs.find((x) => x.fId === this._fConnection.fOutputId);
4522
+ get _sourceConnector() {
4523
+ const result = this._store.fOutputs.find((x) => x.fId === this._connection.fOutputId);
4402
4524
  if (!result) {
4403
4525
  throw new Error('Connection output not found');
4404
4526
  }
4405
4527
  return result;
4406
4528
  }
4407
- get _fInput() {
4408
- const result = this._fComponentsStore.fInputs.find((x) => x.fId === this._fConnection.fInputId);
4529
+ get _targetConnector() {
4530
+ const result = this._store.fInputs.find((x) => x.fId === this._connection.fInputId);
4409
4531
  if (!result) {
4410
4532
  throw new Error('Connection input not found');
4411
4533
  }
4412
4534
  return result;
4413
4535
  }
4414
- constructor(_injector, _fConnection) {
4415
- this._fConnection = _fConnection;
4536
+ get _sourceConnectorAndRect() {
4537
+ return this._fMediator.execute(new GetConnectorAndRectRequest(this._sourceConnector));
4538
+ }
4539
+ get _targetConnectorAndRect() {
4540
+ return this._fMediator.execute(new GetConnectorAndRectRequest(this._targetConnector));
4541
+ }
4542
+ _reassignHandler;
4543
+ constructor(_injector, _connection, _isTargetDragHandle) {
4544
+ this._connection = _connection;
4545
+ this._isTargetDragHandle = _isTargetDragHandle;
4416
4546
  this._fResult = _injector.get(FDragHandlerResult);
4417
4547
  this._fMediator = _injector.get(FMediator);
4418
- this._fComponentsStore = _injector.get(FComponentsStore);
4419
- this._toConnectorRect = RoundedRect.fromRect(RectExtensions.initialize(this._fConnection.line.point2.x, this._fConnection.line.point2.y));
4548
+ this._store = _injector.get(FComponentsStore);
4420
4549
  this.fData = {
4421
- fConnectionId: this._fConnection.fId
4550
+ fConnectionId: this._connection.fId()
4422
4551
  };
4552
+ this._reassignHandler = this._isTargetDragHandle ? this._targetDragHandler() : this._sourceDragHandler();
4553
+ }
4554
+ _sourceDragHandler() {
4555
+ return new FReassignSourceDragHandler(this._fMediator, this._connection, this._sourceConnectorAndRect, this._targetConnectorAndRect);
4556
+ }
4557
+ _targetDragHandler() {
4558
+ return new FReassignTargetDragHandler(this._fMediator, this._connection, this._sourceConnectorAndRect, this._targetConnectorAndRect);
4423
4559
  }
4424
4560
  prepareDragSequence() {
4425
- this._getAndMarkCanBeConnectedInputs();
4426
- this._initializeSnapConnection();
4427
- this._fOutputWithRect = this._fMediator.execute(new GetConnectorAndRectRequest(this._fOutput));
4428
- this._fInputWithRect = this._fMediator.execute(new GetConnectorAndRectRequest(this._fInput));
4561
+ this._reassignHandler.markConnectableConnector();
4562
+ this._reassignHandler.initializeSnapConnection(this._fSnapConnection);
4429
4563
  this._fResult.setData({
4430
- toConnectorRect: this._toConnectorRect,
4431
- canBeConnectedInputs: this._canBeConnectedInputs,
4432
- fConnection: this._fConnection
4564
+ isTargetDragHandle: this._isTargetDragHandle,
4565
+ sourceConnectorRect: roundedRectFromPoint(this._connection.line.point1),
4566
+ targetConnectorRect: roundedRectFromPoint(this._connection.line.point2),
4567
+ connectableConnectors: this._reassignHandler.getConnectableConnectors(),
4568
+ fConnection: this._connection
4433
4569
  });
4434
4570
  }
4435
- _getAndMarkCanBeConnectedInputs() {
4436
- this._canBeConnectedInputs = this._fMediator.execute(new GetAllCanBeConnectedInputsAndRectsRequest(this._fOutput));
4437
- this._fMediator.execute(new MarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
4438
- }
4439
- _initializeSnapConnection() {
4440
- if (!this._fSnapConnection) {
4441
- return;
4442
- }
4443
- this._fSnapConnection.fOutputId = this._fConnection.fOutputId;
4444
- this._fSnapConnection.initialize();
4445
- }
4446
4571
  onPointerMove(difference) {
4447
- const fClosestInput = this._findClosestInput(difference);
4448
- this._drawConnection(this._toConnectorRect.addPoint(difference), fClosestInput?.fConnector.fConnectableSide || this._fInputWithRect.fConnector.fConnectableSide);
4449
- if (this._fSnapConnection) {
4450
- this._drawSnapConnection(this._getClosestInputForSnapConnection(fClosestInput));
4451
- }
4452
- }
4453
- _drawConnection(difference, fSide) {
4454
- const line = this._getLineToPointer(difference, fSide);
4455
- this._fConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fSide);
4456
- this._fConnection.redraw();
4457
- }
4458
- _getLineToPointer(difference, fSide) {
4459
- return this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this._fOutputWithRect.fRect, RoundedRect.fromRect(RectExtensions.initialize(difference.x, difference.y)), this._fConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, fSide));
4460
- }
4461
- _drawSnapConnection(fClosestInput) {
4462
- if (fClosestInput) {
4463
- const line = this._getLineToClosestInput(fClosestInput);
4464
- this._fSnapConnection.show();
4465
- this._fSnapConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide);
4466
- this._fSnapConnection.redraw();
4467
- }
4468
- else {
4469
- this._fSnapConnection?.hide();
4470
- }
4471
- }
4472
- _getLineToClosestInput(fClosestInput) {
4473
- return this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this._fOutputWithRect.fRect, fClosestInput.fRect, this._fSnapConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide));
4474
- }
4475
- _findClosestInput(difference) {
4476
- return this._fMediator.execute(new CalculateClosestInputRequest(this._toConnectorRect.addPoint(difference), this._canBeConnectedInputs));
4477
- }
4478
- _getClosestInputForSnapConnection(fClosestInput) {
4479
- return fClosestInput && fClosestInput.distance < this._fSnapConnection.fSnapThreshold ? fClosestInput : undefined;
4572
+ this._reassignHandler.onPointerMove(difference);
4480
4573
  }
4481
4574
  onPointerUp() {
4482
- this._drawConnection(this._toConnectorRect, this._fInputWithRect.fConnector.fConnectableSide);
4483
- this._fSnapConnection?.hide();
4484
- this._fMediator.execute(new UnmarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
4575
+ this._reassignHandler.onPointerUp();
4485
4576
  }
4486
4577
  }
4487
4578
 
4488
4579
  class FReassignConnectionEvent {
4489
- fConnectionId;
4490
- fOutputId;
4491
- oldFInputId;
4492
- newFInputId;
4493
- fDropPosition;
4494
- constructor(fConnectionId, fOutputId, oldFInputId, newFInputId, fDropPosition) {
4495
- this.fConnectionId = fConnectionId;
4496
- this.fOutputId = fOutputId;
4497
- this.oldFInputId = oldFInputId;
4498
- this.newFInputId = newFInputId;
4499
- this.fDropPosition = fDropPosition;
4580
+ connectionId;
4581
+ isSourceReassign;
4582
+ isTargetReassign;
4583
+ oldSourceId;
4584
+ newSourceId;
4585
+ oldTargetId;
4586
+ newTargetId;
4587
+ dropPoint;
4588
+ constructor(connectionId, isSourceReassign, isTargetReassign, oldSourceId, newSourceId, oldTargetId, newTargetId, dropPoint) {
4589
+ this.connectionId = connectionId;
4590
+ this.isSourceReassign = isSourceReassign;
4591
+ this.isTargetReassign = isTargetReassign;
4592
+ this.oldSourceId = oldSourceId;
4593
+ this.newSourceId = newSourceId;
4594
+ this.oldTargetId = oldTargetId;
4595
+ this.newTargetId = newTargetId;
4596
+ this.dropPoint = dropPoint;
4500
4597
  }
4501
4598
  }
4502
4599
 
4503
4600
  let FReassignConnectionFinalizeExecution = class FReassignConnectionFinalizeExecution {
4504
- _fResult = inject(FDragHandlerResult);
4505
- _fMediator = inject(FMediator);
4506
- _fComponentsStore = inject(FComponentsStore);
4507
- _fDraggableDataContext = inject(FDraggableDataContext);
4601
+ _dragResult = inject(FDragHandlerResult);
4602
+ _mediator = inject(FMediator);
4603
+ _store = inject(FComponentsStore);
4604
+ _draggableContext = inject(FDraggableDataContext);
4508
4605
  get _fDraggable() {
4509
- return this._fComponentsStore.fDraggable;
4606
+ return this._store.fDraggable;
4510
4607
  }
4511
4608
  get _fDragHandler() {
4512
- return this._fDraggableDataContext.draggableItems[0];
4609
+ return this._draggableContext.draggableItems[0];
4513
4610
  }
4514
4611
  handle(request) {
4515
4612
  if (!this._isDroppedConnectionReassignEvent()) {
@@ -4519,27 +4616,33 @@ let FReassignConnectionFinalizeExecution = class FReassignConnectionFinalizeExec
4519
4616
  this._fDragHandler.onPointerUp();
4520
4617
  }
4521
4618
  _isDroppedConnectionReassignEvent() {
4522
- return this._fDraggableDataContext.draggableItems.some((x) => x instanceof FReassignConnectionDragHandler);
4619
+ return this._draggableContext.draggableItems.some((x) => x instanceof FReassignConnectionDragHandler);
4523
4620
  }
4524
4621
  _applyReassignEvent(event) {
4525
- const fInput = this._getInputUnderPointer(event);
4526
- if (!!fInput && !this._isReassignToDifferentInput(fInput)) {
4622
+ const fConnector = this._findConnectableConnectorUsingPriorityAndPosition(event);
4623
+ if (!!fConnector && !this._isReassignToDifferentConnector(fConnector)) {
4527
4624
  return;
4528
4625
  }
4529
- this._emitReassignConnectionEvent(event, fInput);
4626
+ this._emitReassignConnectionEvent(event, fConnector);
4530
4627
  }
4531
- _getInputUnderPointer(event) {
4532
- return this._fMediator.execute(new FindInputAtPositionRequest(event.getPosition(), this._fResult.getData().toConnectorRect, this._fResult.getData().canBeConnectedInputs));
4628
+ _findConnectableConnectorUsingPriorityAndPosition(event) {
4629
+ return this._mediator.execute(new FindConnectableConnectorUsingPriorityAndPositionRequest(event.getPosition(), this._dragResult.getData().connectableConnectors));
4533
4630
  }
4534
- _isReassignToDifferentInput(fInput) {
4535
- return this._fResult.getData().fConnection.fInputId !== fInput.fId;
4631
+ _isReassignToDifferentConnector(fConnector) {
4632
+ if (!this._dragResult.getData().isTargetDragHandle) {
4633
+ return this._dragResult.getData().fConnection.fInputId !== fConnector.fId;
4634
+ }
4635
+ else {
4636
+ return this._dragResult.getData().fConnection.fOutputId !== fConnector.fId;
4637
+ }
4536
4638
  }
4537
- _emitReassignConnectionEvent(event, fInput) {
4538
- this._fDraggable.fReassignConnection.emit(this._getEventData(event, fInput));
4639
+ _emitReassignConnectionEvent(event, fConnector) {
4640
+ this._fDraggable.fReassignConnection.emit(this._getEventData(event, fConnector));
4539
4641
  }
4540
- _getEventData(event, fInput) {
4541
- const fConnection = this._fResult.getData().fConnection;
4542
- return new FReassignConnectionEvent(fConnection.fId, fConnection.fOutputId, fConnection.fInputId, fInput?.fId, event.getPosition());
4642
+ _getEventData(event, fConnector) {
4643
+ const fConnection = this._dragResult.getData().fConnection;
4644
+ const isTargetDragHandle = this._dragResult.getData().isTargetDragHandle;
4645
+ return new FReassignConnectionEvent(fConnection.fId(), !isTargetDragHandle, isTargetDragHandle, fConnection.fOutputId, !isTargetDragHandle ? fConnector?.fId : undefined, fConnection.fInputId, isTargetDragHandle ? fConnector?.fId : undefined, event.getPosition());
4543
4646
  }
4544
4647
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FReassignConnectionFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4545
4648
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FReassignConnectionFinalizeExecution });
@@ -4561,6 +4664,23 @@ class FReassignConnectionPreparationRequest {
4561
4664
  }
4562
4665
  }
4563
4666
 
4667
+ function isPointerInsideStartOrEndDragHandles(connection, position) {
4668
+ return isDragHandleEnd(connection, position) || isDragHandleStart(connection, position);
4669
+ }
4670
+ function isDragHandleEnd(connection, position) {
4671
+ return connection.fDragHandleEnd()?.point
4672
+ && _isPointInsideCircle(position, connection.fDragHandleEnd().point)
4673
+ && !connection.fDraggingDisabled;
4674
+ }
4675
+ function isDragHandleStart(connection, position) {
4676
+ return !!connection.fDragHandleStart()?.point
4677
+ && _isPointInsideCircle(position, connection.fDragHandleStart().point)
4678
+ && !connection.fDraggingDisabled && connection.fReassignableStart();
4679
+ }
4680
+ function _isPointInsideCircle(point, circleCenter) {
4681
+ return (point.x - circleCenter.x) ** 2 + (point.y - circleCenter.y) ** 2 <= 8 ** 2;
4682
+ }
4683
+
4564
4684
  let FReassignConnectionPreparationExecution = class FReassignConnectionPreparationExecution {
4565
4685
  _fMediator = inject(FMediator);
4566
4686
  _fComponentsStore = inject(FComponentsStore);
@@ -4577,19 +4697,20 @@ let FReassignConnectionPreparationExecution = class FReassignConnectionPreparati
4577
4697
  return this._fComponentsStore.fConnections;
4578
4698
  }
4579
4699
  handle(request) {
4580
- if (!this._isValid(request) || !this._isValidTrigger(request)) {
4700
+ const position = this._getPointInFlow(request);
4701
+ if (!this._isValid(position) || !this._isValidTrigger(request)) {
4581
4702
  return;
4582
4703
  }
4583
4704
  this._fDraggableDataContext.onPointerDownScale = this._transform.scale;
4584
4705
  this._fDraggableDataContext.onPointerDownPosition = Point.fromPoint(request.event.getPosition())
4585
4706
  .elementTransform(this._fHost).div(this._transform.scale);
4586
4707
  this._fDraggableDataContext.draggableItems = [
4587
- new FReassignConnectionDragHandler(this._injector, this._fConnection)
4708
+ new FReassignConnectionDragHandler(this._injector, this._fConnection, isDragHandleEnd(this._fConnection, position))
4588
4709
  ];
4589
4710
  setTimeout(() => this._updateConnectionLayer());
4590
4711
  }
4591
- _isValid(request) {
4592
- this._fConnection = this._getConnectionToReassign(this._getPointInFlow(request));
4712
+ _isValid(position) {
4713
+ this._fConnection = this._getConnectionToReassign(position);
4593
4714
  return !!this._fConnection && !this._fDraggableDataContext.draggableItems.length;
4594
4715
  }
4595
4716
  _isValidTrigger(request) {
@@ -4606,12 +4727,7 @@ let FReassignConnectionPreparationExecution = class FReassignConnectionPreparati
4606
4727
  return connections.length ? connections[0] : undefined;
4607
4728
  }
4608
4729
  _getConnectionsFromPoint(position) {
4609
- return this._fConnections.filter((x) => {
4610
- return x.fDragHandle?.point && this._isPointInsideCircle(position, x.fDragHandle.point) && !x.fDraggingDisabled;
4611
- });
4612
- }
4613
- _isPointInsideCircle(point, circleCenter) {
4614
- return (point.x - circleCenter.x) ** 2 + (point.y - circleCenter.y) ** 2 <= 8 ** 2;
4730
+ return this._fConnections.filter((x) => isPointerInsideStartOrEndDragHandles(x, position));
4615
4731
  }
4616
4732
  _updateConnectionLayer() {
4617
4733
  this._fMediator.execute(new UpdateItemAndChildrenLayersRequest(this._fConnection, this._fComponentsStore.fCanvas.fConnectionsContainer().nativeElement));
@@ -4912,7 +5028,7 @@ let PutInputConnectionHandlersToArrayExecution = class PutInputConnectionHandler
4912
5028
  request.fDragHandler.fTargetHandlers.push(fHandler);
4913
5029
  }
4914
5030
  _getExistingConnectionHandler(fHandlers, fConnection) {
4915
- return fHandlers.find((x) => x.fConnection.fId === fConnection.fId);
5031
+ return fHandlers.find((x) => x.fConnection.fId() === fConnection.fId());
4916
5032
  }
4917
5033
  _createConnectionHandler(outputIds, fConnection) {
4918
5034
  let result;
@@ -4975,7 +5091,7 @@ let PutOutputConnectionHandlersToArrayExecution = class PutOutputConnectionHandl
4975
5091
  request.fDragHandler.fSourceHandlers.push(fHandler);
4976
5092
  }
4977
5093
  _getExistingConnectionHandler(fHandlers, fConnection) {
4978
- return fHandlers.find((x) => x.fConnection.fId === fConnection.fId);
5094
+ return fHandlers.find((x) => x.fConnection.fId() === fConnection.fId());
4979
5095
  }
4980
5096
  _createConnectionHandler(inputIds, fConnection) {
4981
5097
  let result;
@@ -5144,7 +5260,7 @@ class FSummaryNodeMoveDragHandler {
5144
5260
  this._fComponentStore = _injector.get(FComponentsStore);
5145
5261
  this._fBoundsLimiter = new PointBoundsLimiter(_injector, this.commonRect, limits);
5146
5262
  this.fData = {
5147
- fNodeIds: this.fHandlers.map((x) => x.fNode.fId)
5263
+ fNodeIds: this.fHandlers.map((x) => x.fNode.fId())
5148
5264
  };
5149
5265
  }
5150
5266
  onPointerMove(difference) {
@@ -5192,7 +5308,7 @@ let CreateMoveNodesDragModelFromSelectionExecution = class CreateMoveNodesDragMo
5192
5308
  _getNodesToDragWithCommonLimits(fDraggedNodes) {
5193
5309
  return fDraggedNodes.reduce((result, x) => {
5194
5310
  result.push(x);
5195
- return result.concat(this._getChildrenNodes(x.fId));
5311
+ return result.concat(this._getChildrenNodes(x.fId()));
5196
5312
  }, []);
5197
5313
  }
5198
5314
  _getNodesMoveLimits(fNodes, fParentNodes, fDraggedNodes) {
@@ -5217,14 +5333,14 @@ let CreateMoveNodesDragModelFromSelectionExecution = class CreateMoveNodesDragMo
5217
5333
  return flatMap(fNodes, (fNode) => this._getNodeOutputIds(fNode));
5218
5334
  }
5219
5335
  _getNodeOutputIds(fNode) {
5220
- return this._fComponentsStore.fOutputs.filter((x) => fNode.fId === x.fNodeId)
5336
+ return this._fComponentsStore.fOutputs.filter((x) => fNode.fId() === x.fNodeId)
5221
5337
  .map((x) => x.fId);
5222
5338
  }
5223
5339
  _getAllInputIds(fNodes) {
5224
5340
  return flatMap(fNodes, (fNode) => this._getNodeInputIds(fNode));
5225
5341
  }
5226
5342
  _getNodeInputIds(fNode) {
5227
- return this._fComponentsStore.fInputs.filter((x) => fNode.fId === x.fNodeId)
5343
+ return this._fComponentsStore.fInputs.filter((x) => fNode.fId() === x.fNodeId)
5228
5344
  .map((x) => x.fId);
5229
5345
  }
5230
5346
  _mapToNodeDragHandlers(items) {
@@ -5597,7 +5713,7 @@ let FNodeMoveFinalizeExecution = class FNodeMoveFinalizeExecution {
5597
5713
  const event = this._getItems()[0].fData.fNodeIds.map((id) => {
5598
5714
  return {
5599
5715
  id,
5600
- position: this._fComponentsStore.fNodes.find(x => x.fId === id).position,
5716
+ position: this._fComponentsStore.fNodes.find(x => x.fId() === id).position,
5601
5717
  };
5602
5718
  });
5603
5719
  this._fComponentsStore.fDraggable?.fMoveNodes.emit(new FMoveNodesEvent(event));
@@ -5679,7 +5795,7 @@ let FNodeDropToGroupFinalizeExecution = class FNodeDropToGroupFinalizeExecution
5679
5795
  }
5680
5796
  const item = this._getDragHandleItem();
5681
5797
  if (item.fNodeWithRect) {
5682
- this._emitDroppedChildrenEvent(item.fNodeWithRect.node.fId, request.event);
5798
+ this._emitDroppedChildrenEvent(item.fNodeWithRect.node.fId(), request.event);
5683
5799
  }
5684
5800
  item.onPointerUp?.();
5685
5801
  }
@@ -5704,7 +5820,7 @@ let FNodeDropToGroupFinalizeExecution = class FNodeDropToGroupFinalizeExecution
5704
5820
  _getDraggedNodeIds() {
5705
5821
  return this._fDraggableDataContext.draggableItems
5706
5822
  .find((x) => x instanceof FSummaryNodeMoveDragHandler)?.fHandlers
5707
- .map((x) => x.fNode.fId) || [];
5823
+ .map((x) => x.fNode.fId()) || [];
5708
5824
  }
5709
5825
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FNodeDropToGroupFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5710
5826
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FNodeDropToGroupFinalizeExecution });
@@ -5956,7 +6072,7 @@ let FExternalItemFinalizeExecution = class FExternalItemFinalizeExecution {
5956
6072
  }
5957
6073
  _getDestinationNodeOrGroupId() {
5958
6074
  const dropToGroupHandler = this._getDropToGroupHandler();
5959
- let result = dropToGroupHandler.fNodeWithRect?.node.fId;
6075
+ let result = dropToGroupHandler.fNodeWithRect?.node.fId();
5960
6076
  dropToGroupHandler.onPointerUp?.();
5961
6077
  return result;
5962
6078
  }
@@ -6527,7 +6643,7 @@ let GetNormalizedChildrenNodesRectExecution = class GetNormalizedChildrenNodesRe
6527
6643
  this.fMediator = fMediator;
6528
6644
  }
6529
6645
  handle(request) {
6530
- const childNodeRect = RectExtensions.union(this.getChildrenNodes(request.fNode.fId).map((x) => this.normalizeRect(x)));
6646
+ const childNodeRect = RectExtensions.union(this.getChildrenNodes(request.fNode.fId()).map((x) => this.normalizeRect(x)));
6531
6647
  return childNodeRect ?
6532
6648
  this.concatRectWithParentPadding(childNodeRect, request.paddings) : null;
6533
6649
  }
@@ -6540,7 +6656,7 @@ let GetNormalizedChildrenNodesRectExecution = class GetNormalizedChildrenNodesRe
6540
6656
  concatRectWithParentPadding(rect, padding) {
6541
6657
  return RectExtensions.initialize(rect.x - padding[0], rect.y - padding[1], rect.width + padding[0] + padding[2], rect.height + +padding[1] + padding[3]);
6542
6658
  }
6543
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedChildrenNodesRectExecution, deps: [{ token: i2$1.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
6659
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedChildrenNodesRectExecution, deps: [{ token: i2.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
6544
6660
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedChildrenNodesRectExecution });
6545
6661
  };
6546
6662
  GetNormalizedChildrenNodesRectExecution = __decorate([
@@ -6548,7 +6664,7 @@ GetNormalizedChildrenNodesRectExecution = __decorate([
6548
6664
  ], GetNormalizedChildrenNodesRectExecution);
6549
6665
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedChildrenNodesRectExecution, decorators: [{
6550
6666
  type: Injectable
6551
- }], ctorParameters: () => [{ type: i2$1.FMediator }] });
6667
+ }], ctorParameters: () => [{ type: i2.FMediator }] });
6552
6668
 
6553
6669
  class GetNodeResizeRestrictionsRequest {
6554
6670
  fNode;
@@ -6609,7 +6725,7 @@ class FNodeResizeDragHandler {
6609
6725
  this._fNode = _fNode;
6610
6726
  this._fResizeHandleType = _fResizeHandleType;
6611
6727
  this.fData = {
6612
- fNodeId: _fNode.fId,
6728
+ fNodeId: _fNode.fId(),
6613
6729
  };
6614
6730
  this._fMediator = _injector.get(FMediator);
6615
6731
  }
@@ -6815,7 +6931,7 @@ class FNodeRotateDragHandler {
6815
6931
  this._fTargetHandlers = _fTargetHandlers;
6816
6932
  this._startRotation = this._fNode.rotate;
6817
6933
  this.fData = {
6818
- fNodeId: _fNode.fId,
6934
+ fNodeId: _fNode.fId(),
6819
6935
  };
6820
6936
  this._fComponentsStore = _injector.get(FComponentsStore);
6821
6937
  this._fMediator = _injector.get(FMediator);
@@ -7040,7 +7156,7 @@ let FSingleSelectExecution = class FSingleSelectExecution {
7040
7156
  }
7041
7157
  _getConnection(element) {
7042
7158
  return this._fComponentsStore.fConnections
7043
- .find(c => c.isContains(element) || c.fConnectionCenter?.nativeElement?.contains(element));
7159
+ .find(c => c.isContains(element) || c.fConnectionCenter()?.nativeElement?.contains(element));
7044
7160
  }
7045
7161
  _updateItemAndChildrenLayers(fItem) {
7046
7162
  if (fItem) {
@@ -7807,7 +7923,7 @@ let MinimapDragPreparationExecution = class MinimapDragPreparationExecution {
7807
7923
  getFlowRect() {
7808
7924
  return RectExtensions.fromElement(this.flowHost);
7809
7925
  }
7810
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDragPreparationExecution, deps: [{ token: FComponentsStore }, { token: i2$1.FMediator }, { token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
7926
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDragPreparationExecution, deps: [{ token: FComponentsStore }, { token: i2.FMediator }, { token: FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
7811
7927
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDragPreparationExecution });
7812
7928
  };
7813
7929
  MinimapDragPreparationExecution = __decorate([
@@ -7815,7 +7931,7 @@ MinimapDragPreparationExecution = __decorate([
7815
7931
  ], MinimapDragPreparationExecution);
7816
7932
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDragPreparationExecution, decorators: [{
7817
7933
  type: Injectable
7818
- }], ctorParameters: () => [{ type: FComponentsStore }, { type: i2$1.FMediator }, { type: FDraggableDataContext }] });
7934
+ }], ctorParameters: () => [{ type: FComponentsStore }, { type: i2.FMediator }, { type: FDraggableDataContext }] });
7819
7935
 
7820
7936
  const MINIMAP_DRAG_PREPARATION_PROVIDERS = [
7821
7937
  MinimapDragPreparationExecution,
@@ -8434,14 +8550,14 @@ let SelectExecution = class SelectExecution {
8434
8550
  });
8435
8551
  this._fDraggableDataContext.selectedItems = [];
8436
8552
  request.nodes.forEach((key) => {
8437
- const node = this._fComponentsStore.fNodes.find((x) => x.fId === key);
8553
+ const node = this._fComponentsStore.fNodes.find((x) => x.fId() === key);
8438
8554
  if (node) {
8439
8555
  node.markAsSelected();
8440
8556
  this._fDraggableDataContext.selectedItems.push(node);
8441
8557
  }
8442
8558
  });
8443
8559
  request.connections.forEach((key) => {
8444
- const connection = this._fComponentsStore.fConnections.find((x) => x.fId === key);
8560
+ const connection = this._fComponentsStore.fConnections.find((x) => x.fId() === key);
8445
8561
  if (connection) {
8446
8562
  connection.markAsSelected();
8447
8563
  this._fDraggableDataContext.selectedItems.push(connection);
@@ -8568,7 +8684,7 @@ let GetDeepChildrenNodesAndGroupsExecution = class GetDeepChildrenNodesAndGroups
8568
8684
  visited.add(fId);
8569
8685
  const directChildren = this._fComponentsStore.fNodes.filter((x) => x.fParentId === fId);
8570
8686
  return directChildren.reduce((result, x) => {
8571
- return result.concat(this._getChildrenNodes(x.fId, visited));
8687
+ return result.concat(this._getChildrenNodes(x.fId(), visited));
8572
8688
  }, directChildren);
8573
8689
  }
8574
8690
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetDeepChildrenNodesAndGroupsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -8612,7 +8728,7 @@ let UpdateItemAndChildrenLayersExecution = class UpdateItemAndChildrenLayersExec
8612
8728
  }
8613
8729
  }
8614
8730
  _handleGroup(request) {
8615
- const childrenNodesAndGroups = this._getChildrenNodesAndGroups(request.item.fId);
8731
+ const childrenNodesAndGroups = this._getChildrenNodesAndGroups(request.item.fId());
8616
8732
  const childrenGroups = this._getChildrenGroups(childrenNodesAndGroups);
8617
8733
  this._updateLayers(this._fGroupsContainer, request.item.hostElement, childrenGroups);
8618
8734
  const childrenNodes = this._getChildrenNodes(childrenNodesAndGroups);
@@ -8621,7 +8737,7 @@ let UpdateItemAndChildrenLayersExecution = class UpdateItemAndChildrenLayersExec
8621
8737
  }
8622
8738
  }
8623
8739
  _handleNode(request) {
8624
- const childrenNodesAndGroups = this._getChildrenNodesAndGroups(request.item.fId);
8740
+ const childrenNodesAndGroups = this._getChildrenNodesAndGroups(request.item.fId());
8625
8741
  const childrenNodes = this._getChildrenNodes(childrenNodesAndGroups);
8626
8742
  this._updateLayers(request.itemContainer, request.item.hostElement, childrenNodes);
8627
8743
  }
@@ -8684,7 +8800,7 @@ let SelectAndUpdateNodeLayerExecution = class SelectAndUpdateNodeLayerExecution
8684
8800
  this.fDraggableDataContext.isSelectedChanged = true;
8685
8801
  }
8686
8802
  }
8687
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectAndUpdateNodeLayerExecution, deps: [{ token: FDraggableDataContext }, { token: i2$1.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
8803
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectAndUpdateNodeLayerExecution, deps: [{ token: FDraggableDataContext }, { token: i2.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
8688
8804
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectAndUpdateNodeLayerExecution });
8689
8805
  };
8690
8806
  SelectAndUpdateNodeLayerExecution = __decorate([
@@ -8692,7 +8808,7 @@ SelectAndUpdateNodeLayerExecution = __decorate([
8692
8808
  ], SelectAndUpdateNodeLayerExecution);
8693
8809
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectAndUpdateNodeLayerExecution, decorators: [{
8694
8810
  type: Injectable
8695
- }], ctorParameters: () => [{ type: FDraggableDataContext }, { type: i2$1.FMediator }] });
8811
+ }], ctorParameters: () => [{ type: FDraggableDataContext }, { type: i2.FMediator }] });
8696
8812
 
8697
8813
  const F_SELECTION_FEATURES = [
8698
8814
  ClearSelectionExecution,
@@ -9007,7 +9123,7 @@ let GetFlowStateConnectionsExecution = class GetFlowStateConnectionsExecution {
9007
9123
  }
9008
9124
  _mapToConnectionState(x) {
9009
9125
  return {
9010
- id: x.fId,
9126
+ id: x.fId(),
9011
9127
  fOutputId: x.fOutputId,
9012
9128
  fInputId: x.fInputId,
9013
9129
  fType: x.fType,
@@ -9041,7 +9157,7 @@ let GetFlowStateNodesExecution = class GetFlowStateNodesExecution {
9041
9157
  handle(request) {
9042
9158
  return this.fComponentsStore.fNodes.filter((x) => x instanceof request.type).map((x) => {
9043
9159
  return {
9044
- id: x.fId,
9160
+ id: x.fId(),
9045
9161
  parent: x.fParentId,
9046
9162
  position: x.position,
9047
9163
  size: x.size,
@@ -9398,11 +9514,11 @@ let GetParentNodesExecution = class GetParentNodesExecution {
9398
9514
  return this._getParentNodes(request.fNode, new Set(), []);
9399
9515
  }
9400
9516
  _getParentNodes(fNode, visited, result) {
9401
- if (visited.has(fNode.fId)) {
9402
- throw new Error('Circular reference detected in the node hierarchy. Node id: ' + fNode.fId);
9517
+ if (visited.has(fNode.fId())) {
9518
+ throw new Error('Circular reference detected in the node hierarchy. Node id: ' + fNode.fId());
9403
9519
  }
9404
- visited.add(fNode.fId);
9405
- const parent = this._fComponentsStore.fNodes.find((x) => x.fId === fNode.fParentId);
9520
+ visited.add(fNode.fId());
9521
+ const parent = this._fComponentsStore.fNodes.find((x) => x.fId() === fNode.fParentId);
9406
9522
  if (!parent) {
9407
9523
  return result;
9408
9524
  }
@@ -9686,7 +9802,7 @@ let SortNodeLayersExecution = class SortNodeLayersExecution {
9686
9802
  }
9687
9803
  _getSortedChildrenNodes(parent) {
9688
9804
  const allElements = this._fNodeElements;
9689
- return this._getChildrenNodes(parent.fId)
9805
+ return this._getChildrenNodes(parent.fId())
9690
9806
  .sort((a, b) => allElements.indexOf(a) - allElements.indexOf(b));
9691
9807
  }
9692
9808
  _getChildrenNodes(fId) {
@@ -9739,7 +9855,7 @@ let SortItemsByParentExecution = class SortItemsByParentExecution {
9739
9855
  }
9740
9856
  _getSortedChildrenItems(fItem) {
9741
9857
  const indexInContainer = this._fItemElements.indexOf(fItem.hostElement);
9742
- return this._getChildrenItems(fItem.fId)
9858
+ return this._getChildrenItems(fItem.fId())
9743
9859
  .filter((child) => this._fItemElements.indexOf(child) < indexInContainer)
9744
9860
  .sort((a, b) => this._fItemElements.indexOf(a) - this._fItemElements.indexOf(b));
9745
9861
  }
@@ -10203,7 +10319,7 @@ class FCanvasComponent extends FCanvasBase {
10203
10319
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCanvasComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10204
10320
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: FCanvasComponent, isStandalone: true, selector: "f-canvas", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fCanvasChange: "fCanvasChange" }, host: { classAttribute: "f-component f-canvas" }, providers: [
10205
10321
  { provide: F_CANVAS, useExisting: FCanvasComponent }
10206
- ], viewQueries: [{ propertyName: "fGroupsContainer", first: true, predicate: ["fGroupsContainer"], descendants: true, isSignal: true }, { propertyName: "fNodesContainer", first: true, predicate: ["fNodesContainer"], descendants: true, isSignal: true }, { propertyName: "fConnectionsContainer", first: true, predicate: ["fConnectionsContainer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-snap-connection\"></ng-content>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host.f-scaled-animate{transition:transform .09s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10322
+ ], viewQueries: [{ propertyName: "fGroupsContainer", first: true, predicate: ["fGroupsContainer"], descendants: true, isSignal: true }, { propertyName: "fNodesContainer", first: true, predicate: ["fNodesContainer"], descendants: true, isSignal: true }, { propertyName: "fConnectionsContainer", first: true, predicate: ["fConnectionsContainer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-snap-connection\"></ng-content>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10207
10323
  }
10208
10324
  __decorate([
10209
10325
  Deprecated('setScale')
@@ -10217,7 +10333,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
10217
10333
  'class': 'f-component f-canvas',
10218
10334
  }, providers: [
10219
10335
  { provide: F_CANVAS, useExisting: FCanvasComponent }
10220
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-snap-connection\"></ng-content>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host.f-scaled-animate{transition:transform .09s}\n"] }]
10336
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-snap-connection\"></ng-content>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}\n"] }]
10221
10337
  }], propDecorators: { setZoom: [], resetZoom: [] } });
10222
10338
 
10223
10339
  const F_CANVAS_PROVIDERS = [
@@ -10236,40 +10352,37 @@ class FMinimapData {
10236
10352
  }
10237
10353
 
10238
10354
  class FMinimapFlowDirective {
10239
- fMinSize = 1000;
10240
- _fMediator = inject(FMediator);
10355
+ fMinSize = input(1000);
10356
+ _mediator = inject(FMediator);
10241
10357
  _elementReference = inject(ElementRef);
10242
10358
  get hostElement() {
10243
10359
  return this._elementReference.nativeElement;
10244
10360
  }
10245
10361
  model = new FMinimapData(this.hostElement);
10246
10362
  redraw() {
10247
- const { scale, viewBox } = this._fMediator.execute(new MinimapCalculateSvgScaleAndViewBoxRequest(this.hostElement, this.fMinSize));
10363
+ const { scale, viewBox } = this._mediator.execute(new MinimapCalculateSvgScaleAndViewBoxRequest(this.hostElement, this.fMinSize()));
10248
10364
  this.model = new FMinimapData(this.hostElement, scale, viewBox);
10249
10365
  setRectToViewBox(viewBox, this.hostElement);
10250
10366
  }
10251
10367
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FMinimapFlowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10252
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FMinimapFlowDirective, selector: "svg[fMinimapFlow]", inputs: { fMinSize: "fMinSize" }, ngImport: i0 });
10368
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: FMinimapFlowDirective, selector: "svg[fMinimapFlow]", inputs: { fMinSize: { classPropertyName: "fMinSize", publicName: "fMinSize", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
10253
10369
  }
10254
10370
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FMinimapFlowDirective, decorators: [{
10255
10371
  type: Directive,
10256
10372
  args: [{
10257
10373
  selector: 'svg[fMinimapFlow]'
10258
10374
  }]
10259
- }], propDecorators: { fMinSize: [{
10260
- type: Input
10261
- }] } });
10375
+ }] });
10262
10376
 
10263
10377
  class FMinimapCanvasDirective {
10264
- _fMediator = inject(FMediator);
10378
+ _mediator = inject(FMediator);
10265
10379
  _elementReference = inject(ElementRef);
10266
10380
  get hostElement() {
10267
10381
  return this._elementReference.nativeElement;
10268
10382
  }
10269
10383
  redraw() {
10270
10384
  this._clearCanvas();
10271
- this._fMediator.execute(new MinimapDrawNodesRequest())
10272
- .forEach((x) => {
10385
+ this._mediator.execute(new MinimapDrawNodesRequest()).forEach((x) => {
10273
10386
  this.hostElement.appendChild(x);
10274
10387
  });
10275
10388
  }
@@ -10287,13 +10400,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
10287
10400
  }] });
10288
10401
 
10289
10402
  class FMinimapViewDirective {
10290
- _fMediator = inject(FMediator);
10403
+ _mediator = inject(FMediator);
10291
10404
  _elementReference = inject(ElementRef);
10292
10405
  get hostElement() {
10293
10406
  return this._elementReference.nativeElement;
10294
10407
  }
10295
10408
  redraw() {
10296
- setRectToElement(this._fMediator.execute(new MinimapCalculateViewBoxRequest()), this.hostElement);
10409
+ setRectToElement(this._mediator.execute(new MinimapCalculateViewBoxRequest()), this.hostElement);
10297
10410
  }
10298
10411
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FMinimapViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10299
10412
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FMinimapViewDirective, selector: "rect[fMinimapView]", host: { classAttribute: "f-component f-minimap-view" }, ngImport: i0 });
@@ -10310,38 +10423,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
10310
10423
 
10311
10424
  class FMinimapComponent {
10312
10425
  _destroyRef = inject(DestroyRef);
10313
- _fMediator = inject(FMediator);
10314
- _fBrowser = inject(BrowserService);
10315
- fMinimapCanvas;
10316
- fMinimapFlow;
10317
- fMinimapView;
10318
- fMinSize = 1000;
10426
+ _mediator = inject(FMediator);
10427
+ _browser = inject(BrowserService);
10428
+ _canvas = viewChild.required(FMinimapCanvasDirective);
10429
+ _flow = viewChild.required(FMinimapFlowDirective);
10430
+ _minimapView = viewChild.required(FMinimapViewDirective);
10431
+ fMinSize = input(1000);
10319
10432
  ngAfterViewInit() {
10320
10433
  this._listenTransformChanges();
10321
10434
  }
10322
10435
  _listenTransformChanges() {
10323
- this._fMediator.execute(new ListenTransformChangesRequest()).pipe(notifyOnStart(), debounceTime(2)).listen(this._destroyRef, () => {
10436
+ this._mediator.execute(new ListenTransformChangesRequest()).pipe(notifyOnStart(), debounceTime(2)).listen(this._destroyRef, () => {
10324
10437
  this._redraw();
10325
10438
  });
10326
10439
  }
10327
10440
  _redraw() {
10328
- if (!this._fBrowser.isBrowser()) {
10441
+ if (!this._browser.isBrowser()) {
10329
10442
  return;
10330
10443
  }
10331
- this.fMinimapFlow.redraw();
10332
- this.fMinimapView.redraw();
10333
- this.fMinimapCanvas.redraw();
10444
+ this._flow().redraw();
10445
+ this._minimapView().redraw();
10446
+ this._canvas().redraw();
10334
10447
  }
10335
10448
  onPointerDown(event) {
10336
- this._fMediator.execute(new MinimapDragPreparationRequest(event, this.fMinimapFlow.model));
10449
+ this._mediator.execute(new MinimapDragPreparationRequest(event, this._flow().model));
10337
10450
  }
10338
10451
  onPointerUp(event) {
10339
- this._fMediator.execute(new MinimapDragFinalizeRequest(event));
10452
+ this._mediator.execute(new MinimapDragFinalizeRequest(event));
10340
10453
  }
10341
10454
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FMinimapComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10342
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FMinimapComponent, selector: "f-minimap", inputs: { fMinSize: "fMinSize" }, host: { classAttribute: "f-component f-minimap" }, providers: [
10455
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: FMinimapComponent, selector: "f-minimap", inputs: { fMinSize: { classPropertyName: "fMinSize", publicName: "fMinSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "f-component f-minimap" }, providers: [
10343
10456
  { provide: F_BEFORE_MAIN_PLUGIN, useExisting: FMinimapComponent },
10344
- ], viewQueries: [{ propertyName: "fMinimapCanvas", first: true, predicate: FMinimapCanvasDirective, descendants: true, static: true }, { propertyName: "fMinimapFlow", first: true, predicate: FMinimapFlowDirective, descendants: true, static: true }, { propertyName: "fMinimapView", first: true, predicate: FMinimapViewDirective, descendants: true, static: true }], exportAs: ["fComponent"], ngImport: i0, template: "<svg fMinimapFlow width=\"100%\" height=\"100%\" fLockedContext [fMinSize]=\"fMinSize\">\n <g fMinimapCanvas></g>\n <rect fMinimapView x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" stroke=\"none\"/>\n</svg>\n\n", styles: [":host{display:block;position:absolute}:host svg{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: FMinimapCanvasDirective, selector: "g[fMinimapCanvas]" }, { kind: "directive", type: FMinimapViewDirective, selector: "rect[fMinimapView]" }, { kind: "directive", type: FMinimapFlowDirective, selector: "svg[fMinimapFlow]", inputs: ["fMinSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10457
+ ], viewQueries: [{ propertyName: "_canvas", first: true, predicate: FMinimapCanvasDirective, descendants: true, isSignal: true }, { propertyName: "_flow", first: true, predicate: FMinimapFlowDirective, descendants: true, isSignal: true }, { propertyName: "_minimapView", first: true, predicate: FMinimapViewDirective, descendants: true, isSignal: true }], exportAs: ["fComponent"], ngImport: i0, template: "<svg fMinimapFlow width=\"100%\" height=\"100%\" fLockedContext [fMinSize]=\"fMinSize()\">\n <g fMinimapCanvas></g>\n <rect fMinimapView x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" stroke=\"none\"/>\n</svg>\n\n", styles: [":host{display:block;position:absolute}:host svg{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: FMinimapCanvasDirective, selector: "g[fMinimapCanvas]" }, { kind: "directive", type: FMinimapViewDirective, selector: "rect[fMinimapView]" }, { kind: "directive", type: FMinimapFlowDirective, selector: "svg[fMinimapFlow]", inputs: ["fMinSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10345
10458
  }
10346
10459
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FMinimapComponent, decorators: [{
10347
10460
  type: Component,
@@ -10349,19 +10462,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
10349
10462
  'class': 'f-component f-minimap',
10350
10463
  }, providers: [
10351
10464
  { provide: F_BEFORE_MAIN_PLUGIN, useExisting: FMinimapComponent },
10352
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg fMinimapFlow width=\"100%\" height=\"100%\" fLockedContext [fMinSize]=\"fMinSize\">\n <g fMinimapCanvas></g>\n <rect fMinimapView x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" stroke=\"none\"/>\n</svg>\n\n", styles: [":host{display:block;position:absolute}:host svg{overflow:hidden}\n"] }]
10353
- }], propDecorators: { fMinimapCanvas: [{
10354
- type: ViewChild,
10355
- args: [FMinimapCanvasDirective, { static: true }]
10356
- }], fMinimapFlow: [{
10357
- type: ViewChild,
10358
- args: [FMinimapFlowDirective, { static: true }]
10359
- }], fMinimapView: [{
10360
- type: ViewChild,
10361
- args: [FMinimapViewDirective, { static: true }]
10362
- }], fMinSize: [{
10363
- type: Input
10364
- }] } });
10465
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg fMinimapFlow width=\"100%\" height=\"100%\" fLockedContext [fMinSize]=\"fMinSize()\">\n <g fMinimapCanvas></g>\n <rect fMinimapView x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" stroke=\"none\"/>\n</svg>\n\n", styles: [":host{display:block;position:absolute}:host svg{overflow:hidden}\n"] }]
10466
+ }] });
10365
10467
 
10366
10468
  const F_MINIMAP_PROVIDERS = [
10367
10469
  FMinimapComponent,
@@ -10432,7 +10534,9 @@ class FFlowComponent extends FFlowBase {
10432
10534
  return this._fMediator.execute(new GetFlowStateRequest());
10433
10535
  }
10434
10536
  selectAll() {
10435
- this._fMediator.execute(new SelectAllRequest());
10537
+ setTimeout(() => {
10538
+ this._fMediator.execute(new SelectAllRequest());
10539
+ });
10436
10540
  }
10437
10541
  /**
10438
10542
  * Programmatically selects nodes and connections by their IDs.
@@ -10447,7 +10551,9 @@ class FFlowComponent extends FFlowBase {
10447
10551
  * triggering a `fSelectionChange` event on the next user interaction.
10448
10552
  */
10449
10553
  select(nodes, connections, isSelectedChanged = true) {
10450
- this._fMediator.execute(new SelectRequest(nodes, connections, isSelectedChanged));
10554
+ setTimeout(() => {
10555
+ this._fMediator.execute(new SelectRequest(nodes, connections, isSelectedChanged));
10556
+ });
10451
10557
  }
10452
10558
  clearSelection() {
10453
10559
  this._fMediator.execute(new ClearSelectionRequest());
@@ -10464,7 +10570,7 @@ class FFlowComponent extends FFlowBase {
10464
10570
  ...COMMON_PROVIDERS,
10465
10571
  ...F_DRAGGABLE_PROVIDERS,
10466
10572
  { provide: F_FLOW, useExisting: FFlowComponent },
10467
- ], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content select=\"f-minimap\"></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10573
+ ], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10468
10574
  }
10469
10575
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FFlowComponent, decorators: [{
10470
10576
  type: Component,
@@ -10479,7 +10585,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
10479
10585
  ...COMMON_PROVIDERS,
10480
10586
  ...F_DRAGGABLE_PROVIDERS,
10481
10587
  { provide: F_FLOW, useExisting: FFlowComponent },
10482
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content select=\"f-minimap\"></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}\n"] }]
10588
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}\n"] }]
10483
10589
  }] });
10484
10590
 
10485
10591
  const F_FLOW_PROVIDERS = [
@@ -10687,5 +10793,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
10687
10793
  * Generated bundle index. Do not edit.
10688
10794
  */
10689
10795
 
10690
- 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, AddZoomToStoreExecution, AddZoomToStoreRequest, ApplyChildResizeRestrictionsExecution, ApplyChildResizeRestrictionsRequest, ApplyParentResizeRestrictionsExecution, ApplyParentResizeRestrictionsRequest, BaseConnectionDragHandler, 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, CalculateClosestInputExecution, CalculateClosestInputRequest, CalculateCommonNodeMoveLimitsExecution, CalculateCommonNodeMoveLimitsRequest, CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, CalculateConnectionLineByBehaviorExecution, CalculateConnectionLineByBehaviorRequest, CalculateFlowPointFromMinimapPointExecution, CalculateFlowPointFromMinimapPointRequest, CalculateInputConnectionsExecution, CalculateInputConnectionsRequest, CalculateNodeMoveLimitsExecution, CalculateNodeMoveLimitsRequest, CalculateNodesBoundingBoxExecution, CalculateNodesBoundingBoxNormalizedPositionExecution, CalculateNodesBoundingBoxNormalizedPositionRequest, CalculateNodesBoundingBoxRequest, CalculateOutputConnectionsExecution, CalculateOutputConnectionsRequest, CenterGroupOrNodeExecution, CenterGroupOrNodeRequest, ClearSelectionExecution, ClearSelectionRequest, CreateConnectionMarkersExecution, CreateConnectionMarkersRequest, CreateMoveNodesDragModelFromSelectionExecution, CreateMoveNodesDragModelFromSelectionRequest, DRAG_AND_DROP_COMMON_PROVIDERS, Deprecated, DragAndDropBase, EFConnectableSide, EFConnectionBehavior, EFConnectionType, EFMarkerType, EFResizeHandleType, EFZoomDirection, EmitSelectionChangeEventExecution, EmitSelectionChangeEventRequest, EndDragSequenceExecution, EndDragSequenceRequest, EventExtensions, FBackgroundBase, FBackgroundComponent, FBezierPathBuilder, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FCanvasDragHandler, FCanvasMoveFinalizeExecution, FCanvasMoveFinalizeRequest, FCanvasMovePreparationExecution, FCanvasMovePreparationRequest, FChannel, FChannelHub, FCirclePatternComponent, FComponentsStore, FConnectionBase, FConnectionCenterDirective, FConnectionComponent, FConnectionDragHandleEndComponent, FConnectionDragHandleStartComponent, FConnectionFactory, FConnectionForCreateComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionTextComponent, FConnectionTextPathDirective, FConnectorBase, FCreateConnectionDragHandler, FCreateConnectionDragHandlerPreparationExecution, FCreateConnectionDragHandlerPreparationRequest, FCreateConnectionEvent, FCreateConnectionFinalizeExecution, FCreateConnectionFinalizeRequest, FCreateConnectionFromOutletPreparationExecution, FCreateConnectionFromOutletPreparationRequest, FCreateConnectionFromOutputPreparationExecution, FCreateConnectionFromOutputPreparationRequest, FCreateConnectionPreparationExecution, FCreateConnectionPreparationRequest, FCreateNodeEvent, FDragBlockerDirective, FDragHandleDirective, FDragHandlerResult, FDragStartedEvent, FDraggableBase, FDraggableDataContext, FDraggableDirective, FDropToGroupEvent, FExternalItemBase, FExternalItemCreatePlaceholderExecution, FExternalItemCreatePlaceholderRequest, FExternalItemCreatePreviewExecution, FExternalItemCreatePreviewRequest, FExternalItemDirective, FExternalItemDragHandler, FExternalItemFinalizeExecution, FExternalItemFinalizeRequest, FExternalItemPlaceholderDirective, FExternalItemPreparationExecution, FExternalItemPreparationRequest, FExternalItemPreviewDirective, FExternalItemService, FFlowBase, FFlowComponent, FFlowModule, FGroupDirective, FLineAlignmentBase, FLineAlignmentComponent, FLineAlignmentDragHandler, FMarkerBase, FMarkerDirective, FMinimapCanvasDirective, FMinimapComponent, FMinimapData, FMinimapDragHandler, FMinimapFlowDirective, FMinimapViewDirective, FMoveNodesEvent, FNodeBase, FNodeDirective, FNodeDropToGroupDragHandler, FNodeDropToGroupFinalizeExecution, FNodeDropToGroupFinalizeRequest, FNodeDropToGroupPreparationExecution, FNodeDropToGroupPreparationRequest, FNodeInputBase, FNodeInputDirective, FNodeIntersectedWithConnections, FNodeMoveDragHandler, FNodeMoveFinalizeExecution, FNodeMoveFinalizeRequest, FNodeMovePreparationExecution, FNodeMovePreparationRequest, FNodeOutletBase, FNodeOutletDirective, FNodeOutputBase, FNodeOutputDirective, FNodeResizeDragHandler, FNodeResizeFinalizeExecution, FNodeResizeFinalizeRequest, FNodeResizePreparationExecution, FNodeResizePreparationRequest, FNodeRotateDragHandler, FNodeRotateFinalizeExecution, FNodeRotateFinalizeRequest, FNodeRotatePreparationExecution, FNodeRotatePreparationRequest, FReassignConnectionDragHandler, FReassignConnectionEvent, FReassignConnectionFinalizeExecution, FReassignConnectionFinalizeRequest, FReassignConnectionPreparationExecution, FReassignConnectionPreparationRequest, FRectPatternComponent, FResizeChannel, FResizeHandleDirective, FRotateHandleDirective, FSegmentPathBuilder, FSelectionAreaBase, FSelectionAreaComponent, FSelectionChangeEvent, FSingleSelectExecution, FSingleSelectRequest, FSnapConnectionComponent, FStraightPathBuilder, FSummaryNodeMoveDragHandler, FZoomBase, FZoomDirective, F_AFTER_MAIN_PLUGIN, F_BACKGROUND, F_BACKGROUND_FEATURES, F_BACKGROUND_PATTERN, F_BACKGROUND_PROVIDERS, F_BEFORE_MAIN_PLUGIN, F_CANVAS, F_CANVAS_FEATURES, F_CANVAS_PROVIDERS, F_CONNECTION_BUILDERS, F_CONNECTION_FEATURES, F_CONNECTION_IDENTIFIERS, F_CONNECTION_PROVIDERS, F_CONNECTORS_FEATURES, F_CONNECTORS_PROVIDERS, F_CSS_CLASS, F_DRAGGABLE_FEATURES, F_DRAGGABLE_PROVIDERS, 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_SELECTED_CLASS, F_SELECTION_AREA_DRAG_AND_DROP_PROVIDERS, F_SELECTION_AREA_PROVIDERS, F_SELECTION_FEATURES, F_STORAGE_PROVIDERS, F_ZOOM, F_ZOOM_FEATURES, F_ZOOM_PROVIDERS, F_ZOOM_TAG, FindInputAtPositionExecution, FindInputAtPositionRequest, FitToFlowExecution, FitToFlowRequest, GET_FLOW_STATE_PROVIDERS, GetAllCanBeConnectedInputsAndRectsExecution, GetAllCanBeConnectedInputsAndRectsRequest, GetCanBeSelectedItemsExecution, GetCanBeSelectedItemsRequest, GetCanvasExecution, GetCanvasRequest, GetConnectorAndRectExecution, GetConnectorAndRectRequest, GetCurrentSelectionExecution, GetCurrentSelectionRequest, GetDeepChildrenNodesAndGroupsExecution, GetDeepChildrenNodesAndGroupsRequest, GetElementRoundedRectExecution, GetElementRoundedRectRequest, GetFirstConnectableOutputExecution, GetFirstConnectableOutputRequest, GetFlowExecution, GetFlowHostElementExecution, GetFlowHostElementRequest, GetFlowRequest, GetFlowStateConnectionsExecution, GetFlowStateConnectionsRequest, GetFlowStateExecution, GetFlowStateNodesExecution, GetFlowStateNodesRequest, GetFlowStateRequest, GetNodePaddingExecution, GetNodePaddingRequest, GetNodeResizeRestrictionsExecution, GetNodeResizeRestrictionsRequest, GetNodesExecution, GetNodesRequest, GetNormalizedChildrenNodesRectExecution, GetNormalizedChildrenNodesRectRequest, GetNormalizedConnectorRectExecution, GetNormalizedConnectorRectRequest, GetNormalizedElementRectExecution, GetNormalizedElementRectRequest, GetNormalizedParentNodeRectExecution, GetNormalizedParentNodeRectRequest, GetNormalizedPointExecution, GetNormalizedPointRequest, GetParentNodesExecution, GetParentNodesRequest, IMouseEvent, IPointerEvent, IPointerUpEvent, ITouchDownEvent, ITouchMoveEvent, InitializeDragSequenceExecution, InitializeDragSequenceRequest, InputCanvasPositionExecution, InputCanvasPositionRequest, InputCanvasScaleExecution, InputCanvasScaleRequest, IsArrayHasParentNodeExecution, IsArrayHasParentNodeRequest, IsConnectionUnderNodeExecution, IsConnectionUnderNodeRequest, IsDragStartedExecution, IsDragStartedRequest, LineAlignmentPreparationExecution, LineAlignmentPreparationRequest, LineElement, LineService, ListenCountChangesExecution, ListenCountChangesRequest, ListenDataChangesExecution, ListenDataChangesRequest, ListenTransformChangesExecution, ListenTransformChangesRequest, LogExecutionTime, MINIMAP_DRAG_FINALIZE_PROVIDERS, MINIMAP_DRAG_PREPARATION_PROVIDERS, MOUSE_EVENT_IGNORE_TIME, MarkAllCanBeConnectedInputsExecution, MarkAllCanBeConnectedInputsRequest, MinimapCalculateSvgScaleAndViewBoxExecution, MinimapCalculateSvgScaleAndViewBoxRequest, MinimapCalculateViewBoxExecution, MinimapCalculateViewBoxRequest, MinimapDragFinalizeExecution, MinimapDragFinalizeRequest, MinimapDragPreparationExecution, MinimapDragPreparationRequest, MinimapDrawNodesExecution, MinimapDrawNodesRequest, MoveFrontElementsBeforeTargetElementExecution, MoveFrontElementsBeforeTargetElementRequest, NODE_DROP_TO_GROUP_PROVIDERS, NODE_PROVIDERS, NODE_RESIZE_PROVIDERS, NODE_ROTATE_PROVIDERS, NotifyDataChangedExecution, NotifyDataChangedRequest, NotifyTransformChangedExecution, NotifyTransformChangedRequest, OnPointerMoveExecution, OnPointerMoveRequest, PointBoundsLimiter, PrepareDragSequenceExecution, PrepareDragSequenceRequest, PreventDefaultIsExternalItemExecution, PreventDefaultIsExternalItemRequest, PutInputConnectionHandlersToArrayExecution, PutInputConnectionHandlersToArrayRequest, PutOutputConnectionHandlersToArrayExecution, PutOutputConnectionHandlersToArrayRequest, RESIZE_DIRECTIONS, 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, RemoveZoomFromStoreExecution, RemoveZoomFromStoreRequest, ResetScaleAndCenterExecution, ResetScaleAndCenterRequest, ResetScaleExecution, ResetScaleRequest, ResetZoomExecution, ResetZoomRequest, SINGLE_SELECT_PROVIDERS, SelectAllExecution, SelectAllRequest, SelectAndUpdateNodeLayerExecution, SelectAndUpdateNodeLayerRequest, SelectExecution, SelectRequest, SelectionAreaDragHandle, SelectionAreaFinalizeExecution, SelectionAreaFinalizeRequest, SelectionAreaPreparationExecution, SelectionAreaPreparationRequest, SetBackgroundTransformExecution, SetBackgroundTransformRequest, SetZoomExecution, SetZoomRequest, SortItemLayersExecution, SortItemLayersRequest, SortItemsByParentExecution, SortItemsByParentRequest, SortNodeLayersExecution, SortNodeLayersRequest, SourceConnectionDragHandler, SourceTargetConnectionDragHandler, StartDragSequenceExecution, StartDragSequenceRequest, TargetConnectionDragHandler, UnmarkAllCanBeConnectedInputsExecution, UnmarkAllCanBeConnectedInputsRequest, UpdateItemAndChildrenLayersExecution, UpdateItemAndChildrenLayersRequest, UpdateNodeWhenStateOrSizeChangedExecution, UpdateNodeWhenStateOrSizeChangedRequest, UpdateScaleExecution, UpdateScaleRequest, createSVGElement, debounceTime, defaultEventTrigger, fixedCenterBehavior, fixedOutboundBehavior, floatingBehavior, getExternalItem, getMarkerEndId, getMarkerSelectedEndId, getMarkerSelectedStartId, getMarkerStartId, infinityMinMax, isDragBlocker, isExternalItem, isMobile, isNode, isNodeOutlet, isNodeOutput, isRotateHandle, isValidEventTrigger, mediatorEffect, mixinChangeSelection, mixinChangeVisibility, notifyOnStart, transitionEnd };
10796
+ 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, AddZoomToStoreExecution, AddZoomToStoreRequest, ApplyChildResizeRestrictionsExecution, ApplyChildResizeRestrictionsRequest, ApplyParentResizeRestrictionsExecution, ApplyParentResizeRestrictionsRequest, BaseConnectionDragHandler, 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, CalculateCommonNodeMoveLimitsExecution, CalculateCommonNodeMoveLimitsRequest, CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, CalculateConnectionLineByBehaviorExecution, CalculateConnectionLineByBehaviorRequest, CalculateFlowPointFromMinimapPointExecution, CalculateFlowPointFromMinimapPointRequest, CalculateInputConnectionsExecution, CalculateInputConnectionsRequest, CalculateNodeMoveLimitsExecution, CalculateNodeMoveLimitsRequest, CalculateNodesBoundingBoxExecution, CalculateNodesBoundingBoxNormalizedPositionExecution, CalculateNodesBoundingBoxNormalizedPositionRequest, CalculateNodesBoundingBoxRequest, CalculateOutputConnectionsExecution, CalculateOutputConnectionsRequest, CenterGroupOrNodeExecution, CenterGroupOrNodeRequest, ClearSelectionExecution, ClearSelectionRequest, CreateConnectionMarkersExecution, CreateConnectionMarkersRequest, CreateMoveNodesDragModelFromSelectionExecution, CreateMoveNodesDragModelFromSelectionRequest, DRAG_AND_DROP_COMMON_PROVIDERS, Deprecated, DragAndDropBase, EFConnectableSide, EFConnectionBehavior, EFConnectionType, EFMarkerType, EFResizeHandleType, EFZoomDirection, EmitSelectionChangeEventExecution, EmitSelectionChangeEventRequest, EndDragSequenceExecution, EndDragSequenceRequest, EventExtensions, FBackgroundBase, FBackgroundComponent, FBezierPathBuilder, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FCanvasDragHandler, FCanvasMoveFinalizeExecution, FCanvasMoveFinalizeRequest, FCanvasMovePreparationExecution, FCanvasMovePreparationRequest, FChannel, FChannelHub, FCirclePatternComponent, FComponentsStore, FConnectionBase, FConnectionCenterDirective, FConnectionComponent, FConnectionDragHandleEndComponent, FConnectionDragHandleStartComponent, FConnectionFactory, FConnectionForCreateComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionTextComponent, FConnectionTextPathDirective, FConnectorBase, FCreateConnectionDragHandler, FCreateConnectionDragHandlerPreparationExecution, FCreateConnectionDragHandlerPreparationRequest, FCreateConnectionEvent, FCreateConnectionFinalizeExecution, FCreateConnectionFinalizeRequest, FCreateConnectionFromOutletPreparationExecution, FCreateConnectionFromOutletPreparationRequest, FCreateConnectionFromOutputPreparationExecution, FCreateConnectionFromOutputPreparationRequest, FCreateConnectionPreparationExecution, FCreateConnectionPreparationRequest, FCreateNodeEvent, FDragBlockerDirective, FDragHandleDirective, FDragHandlerResult, FDragStartedEvent, FDraggableBase, FDraggableDataContext, FDraggableDirective, FDropToGroupEvent, FExternalItemBase, FExternalItemCreatePlaceholderExecution, FExternalItemCreatePlaceholderRequest, FExternalItemCreatePreviewExecution, FExternalItemCreatePreviewRequest, FExternalItemDirective, FExternalItemDragHandler, FExternalItemFinalizeExecution, FExternalItemFinalizeRequest, FExternalItemPlaceholderDirective, FExternalItemPreparationExecution, FExternalItemPreparationRequest, FExternalItemPreviewDirective, FExternalItemService, FFlowBase, FFlowComponent, FFlowModule, FGroupDirective, FLineAlignmentBase, FLineAlignmentComponent, FLineAlignmentDragHandler, FMarkerBase, FMarkerDirective, FMinimapCanvasDirective, FMinimapComponent, FMinimapData, FMinimapDragHandler, FMinimapFlowDirective, FMinimapViewDirective, FMoveNodesEvent, FNodeBase, FNodeDirective, FNodeDropToGroupDragHandler, FNodeDropToGroupFinalizeExecution, FNodeDropToGroupFinalizeRequest, FNodeDropToGroupPreparationExecution, FNodeDropToGroupPreparationRequest, FNodeInputBase, FNodeInputDirective, FNodeIntersectedWithConnections, FNodeMoveDragHandler, FNodeMoveFinalizeExecution, FNodeMoveFinalizeRequest, FNodeMovePreparationExecution, FNodeMovePreparationRequest, FNodeOutletBase, FNodeOutletDirective, FNodeOutputBase, FNodeOutputDirective, FNodeResizeDragHandler, FNodeResizeFinalizeExecution, FNodeResizeFinalizeRequest, FNodeResizePreparationExecution, FNodeResizePreparationRequest, FNodeRotateDragHandler, FNodeRotateFinalizeExecution, FNodeRotateFinalizeRequest, FNodeRotatePreparationExecution, FNodeRotatePreparationRequest, FReassignConnectionDragHandler, FReassignConnectionEvent, FReassignConnectionFinalizeExecution, FReassignConnectionFinalizeRequest, FReassignConnectionPreparationExecution, FReassignConnectionPreparationRequest, FReassignSourceDragHandler, FReassignTargetDragHandler, FRectPatternComponent, FResizeChannel, FResizeHandleDirective, FRotateHandleDirective, FSegmentPathBuilder, FSelectionAreaBase, FSelectionAreaComponent, FSelectionChangeEvent, FSingleSelectExecution, FSingleSelectRequest, FSnapConnectionComponent, FStraightPathBuilder, FSummaryNodeMoveDragHandler, FZoomBase, FZoomDirective, F_AFTER_MAIN_PLUGIN, F_BACKGROUND, F_BACKGROUND_FEATURES, F_BACKGROUND_PATTERN, F_BACKGROUND_PROVIDERS, F_BEFORE_MAIN_PLUGIN, F_CANVAS, F_CANVAS_FEATURES, F_CANVAS_PROVIDERS, F_CONNECTION_BUILDERS, F_CONNECTION_FEATURES, F_CONNECTION_IDENTIFIERS, F_CONNECTION_PROVIDERS, F_CONNECTORS_FEATURES, F_CONNECTORS_PROVIDERS, F_CSS_CLASS, F_DRAGGABLE_FEATURES, F_DRAGGABLE_PROVIDERS, 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_SELECTED_CLASS, F_SELECTION_AREA_DRAG_AND_DROP_PROVIDERS, F_SELECTION_AREA_PROVIDERS, F_SELECTION_FEATURES, F_STORAGE_PROVIDERS, F_ZOOM, F_ZOOM_FEATURES, F_ZOOM_PROVIDERS, F_ZOOM_TAG, FindClosestConnectorExecution, FindClosestConnectorRequest, FindConnectableConnectorUsingPriorityAndPositionExecution, FindConnectableConnectorUsingPriorityAndPositionRequest, FitToFlowExecution, FitToFlowRequest, GET_FLOW_STATE_PROVIDERS, GetAllCanBeConnectedInputsAndRectsExecution, GetAllCanBeConnectedInputsAndRectsRequest, GetAllCanBeConnectedSourceConnectorsAndRectsExecution, GetAllCanBeConnectedSourceConnectorsAndRectsRequest, GetCanBeSelectedItemsExecution, GetCanBeSelectedItemsRequest, GetCanvasExecution, GetCanvasRequest, GetConnectorAndRectExecution, GetConnectorAndRectRequest, GetCurrentSelectionExecution, GetCurrentSelectionRequest, GetDeepChildrenNodesAndGroupsExecution, GetDeepChildrenNodesAndGroupsRequest, GetElementRoundedRectExecution, GetElementRoundedRectRequest, GetFirstConnectableOutputExecution, GetFirstConnectableOutputRequest, GetFlowExecution, GetFlowHostElementExecution, GetFlowHostElementRequest, GetFlowRequest, GetFlowStateConnectionsExecution, GetFlowStateConnectionsRequest, GetFlowStateExecution, GetFlowStateNodesExecution, GetFlowStateNodesRequest, GetFlowStateRequest, GetNodePaddingExecution, GetNodePaddingRequest, GetNodeResizeRestrictionsExecution, GetNodeResizeRestrictionsRequest, GetNodesExecution, GetNodesRequest, GetNormalizedChildrenNodesRectExecution, GetNormalizedChildrenNodesRectRequest, GetNormalizedConnectorRectExecution, GetNormalizedConnectorRectRequest, GetNormalizedElementRectExecution, GetNormalizedElementRectRequest, GetNormalizedParentNodeRectExecution, GetNormalizedParentNodeRectRequest, GetNormalizedPointExecution, GetNormalizedPointRequest, GetParentNodesExecution, GetParentNodesRequest, IMouseEvent, IPointerEvent, IPointerUpEvent, ITouchDownEvent, ITouchMoveEvent, InitializeDragSequenceExecution, InitializeDragSequenceRequest, InputCanvasPositionExecution, InputCanvasPositionRequest, InputCanvasScaleExecution, InputCanvasScaleRequest, IsArrayHasParentNodeExecution, IsArrayHasParentNodeRequest, IsConnectionUnderNodeExecution, IsConnectionUnderNodeRequest, IsDragStartedExecution, IsDragStartedRequest, LineAlignmentPreparationExecution, LineAlignmentPreparationRequest, LineElement, LineService, ListenCountChangesExecution, ListenCountChangesRequest, ListenDataChangesExecution, ListenDataChangesRequest, ListenTransformChangesExecution, ListenTransformChangesRequest, LogExecutionTime, MINIMAP_DRAG_FINALIZE_PROVIDERS, MINIMAP_DRAG_PREPARATION_PROVIDERS, MOUSE_EVENT_IGNORE_TIME, MarkConnectableConnectorsExecution, MarkConnectableConnectorsRequest, MinimapCalculateSvgScaleAndViewBoxExecution, MinimapCalculateSvgScaleAndViewBoxRequest, MinimapCalculateViewBoxExecution, MinimapCalculateViewBoxRequest, MinimapDragFinalizeExecution, MinimapDragFinalizeRequest, MinimapDragPreparationExecution, MinimapDragPreparationRequest, MinimapDrawNodesExecution, MinimapDrawNodesRequest, MoveFrontElementsBeforeTargetElementExecution, MoveFrontElementsBeforeTargetElementRequest, NODE_DROP_TO_GROUP_PROVIDERS, NODE_PROVIDERS, NODE_RESIZE_PROVIDERS, NODE_ROTATE_PROVIDERS, NotifyDataChangedExecution, NotifyDataChangedRequest, NotifyTransformChangedExecution, NotifyTransformChangedRequest, OnPointerMoveExecution, OnPointerMoveRequest, PointBoundsLimiter, PrepareDragSequenceExecution, PrepareDragSequenceRequest, PreventDefaultIsExternalItemExecution, PreventDefaultIsExternalItemRequest, PutInputConnectionHandlersToArrayExecution, PutInputConnectionHandlersToArrayRequest, PutOutputConnectionHandlersToArrayExecution, PutOutputConnectionHandlersToArrayRequest, RESIZE_DIRECTIONS, 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, RemoveZoomFromStoreExecution, RemoveZoomFromStoreRequest, ResetScaleAndCenterExecution, ResetScaleAndCenterRequest, ResetScaleExecution, ResetScaleRequest, ResetZoomExecution, ResetZoomRequest, SINGLE_SELECT_PROVIDERS, SelectAllExecution, SelectAllRequest, SelectAndUpdateNodeLayerExecution, SelectAndUpdateNodeLayerRequest, SelectExecution, SelectRequest, SelectionAreaDragHandle, SelectionAreaFinalizeExecution, SelectionAreaFinalizeRequest, SelectionAreaPreparationExecution, SelectionAreaPreparationRequest, SetBackgroundTransformExecution, SetBackgroundTransformRequest, SetZoomExecution, SetZoomRequest, SortItemLayersExecution, SortItemLayersRequest, SortItemsByParentExecution, SortItemsByParentRequest, SortNodeLayersExecution, SortNodeLayersRequest, SourceConnectionDragHandler, SourceTargetConnectionDragHandler, StartDragSequenceExecution, StartDragSequenceRequest, TargetConnectionDragHandler, UnmarkConnectableConnectorsExecution, UnmarkConnectableConnectorsRequest, UpdateItemAndChildrenLayersExecution, UpdateItemAndChildrenLayersRequest, UpdateNodeWhenStateOrSizeChangedExecution, UpdateNodeWhenStateOrSizeChangedRequest, UpdateScaleExecution, UpdateScaleRequest, createSVGElement, debounceTime, defaultEventTrigger, fixedCenterBehavior, fixedOutboundBehavior, floatingBehavior, getExternalItem, getMarkerEndId, getMarkerSelectedEndId, getMarkerSelectedStartId, getMarkerStartId, infinityMinMax, isClosestConnectorInsideSnapThreshold, isDragBlocker, isDragHandleEnd, isDragHandleStart, isExternalItem, isMobile, isNode, isNodeOutlet, isNodeOutput, isPointerInsideStartOrEndDragHandles, isRotateHandle, isValidEventTrigger, mediatorEffect, mixinChangeSelection, mixinChangeVisibility, notifyOnStart, roundedRectFromPoint, transitionEnd };
10691
10797
  //# sourceMappingURL=foblex-flow.mjs.map