@foblex/flow 17.4.0 → 17.4.2

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 (212) hide show
  1. package/domain/css-cls.d.ts +3 -0
  2. package/domain/f-background/add-background-to-store/add-background-to-store.execution.d.ts +1 -1
  3. package/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.d.ts +3 -6
  4. package/domain/f-background/remove-background-from-store/remove-background-from-store.execution.d.ts +1 -1
  5. package/domain/f-background/set-background-transform/set-background-transform.execution.d.ts +1 -1
  6. package/domain/f-canvas/input-canvas-position/input-canvas-position.execution.d.ts +1 -1
  7. package/domain/f-canvas/input-canvas-scale/input-canvas-scale.execution.d.ts +1 -1
  8. package/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.d.ts +5 -5
  9. package/domain/f-connection/redraw-connections/redraw-connections.execution.d.ts +2 -2
  10. package/domain/f-connectors/get-connector-and-rect/get-connector-and-rect.execution.d.ts +1 -1
  11. package/domain/f-node/calculate-input-connections/calculate-input-connections-request.d.ts +5 -0
  12. package/domain/f-node/calculate-input-connections/calculate-input-connections.execution.d.ts +12 -0
  13. package/domain/f-node/calculate-input-connections/index.d.ts +2 -0
  14. package/domain/f-node/calculate-output-connections/calculate-output-connections-request.d.ts +5 -0
  15. package/domain/f-node/calculate-output-connections/calculate-output-connections.execution.d.ts +12 -0
  16. package/domain/f-node/calculate-output-connections/index.d.ts +2 -0
  17. package/domain/f-node/index.d.ts +2 -0
  18. package/domain/f-node/providers.d.ts +3 -1
  19. package/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.d.ts +1 -1
  20. package/domain/get-normalized-element-rect/get-normalized-element-rect.execution.d.ts +5 -3
  21. package/domain/providers.d.ts +1 -2
  22. package/domain/sort-item-layers/sort-item-layers.execution.d.ts +4 -5
  23. package/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.d.ts +6 -9
  24. package/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.d.ts +12 -14
  25. package/domain/update-item-and-children-layers/update-item-and-children-layers.execution.d.ts +15 -16
  26. package/esm2022/domain/css-cls.mjs +4 -1
  27. package/esm2022/domain/f-background/add-background-to-store/add-background-to-store.execution.mjs +1 -1
  28. package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.mjs +15 -19
  29. package/esm2022/domain/f-background/remove-background-from-store/remove-background-from-store.execution.mjs +1 -1
  30. package/esm2022/domain/f-background/set-background-transform/set-background-transform.execution.mjs +1 -1
  31. package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position.execution.mjs +2 -1
  32. package/esm2022/domain/f-canvas/input-canvas-scale/input-canvas-scale.execution.mjs +2 -2
  33. package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.mjs +12 -12
  34. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +1 -1
  35. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +2 -2
  36. package/esm2022/domain/f-connectors/get-connector-and-rect/get-connector-and-rect.execution.mjs +1 -1
  37. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections-request.mjs +7 -0
  38. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.execution.mjs +31 -0
  39. package/esm2022/domain/f-node/calculate-input-connections/index.mjs +3 -0
  40. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections-request.mjs +7 -0
  41. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.execution.mjs +31 -0
  42. package/esm2022/domain/f-node/calculate-output-connections/index.mjs +3 -0
  43. package/esm2022/domain/f-node/index.mjs +3 -1
  44. package/esm2022/domain/f-node/providers.mjs +5 -1
  45. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.mjs +1 -1
  46. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +12 -4
  47. package/esm2022/domain/sort-item-layers/sort-item-layers.execution.mjs +14 -16
  48. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.mjs +21 -27
  49. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.mjs +32 -34
  50. package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.execution.mjs +46 -48
  51. package/esm2022/f-backgroud/f-background.component.mjs +9 -12
  52. package/esm2022/f-backgroud/f-circle-pattern/f-circle-pattern.component.mjs +15 -21
  53. package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +18 -28
  54. package/esm2022/f-canvas/f-canvas-base.mjs +1 -1
  55. package/esm2022/f-canvas/f-canvas.component.mjs +29 -35
  56. package/esm2022/f-canvas/providers.mjs +1 -1
  57. package/esm2022/f-connection/common/f-connection-base.mjs +5 -5
  58. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.mjs +37 -0
  59. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.mjs +37 -0
  60. package/esm2022/f-connection/common/f-drag-handle/index.mjs +3 -2
  61. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +2 -2
  62. package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +2 -2
  63. package/esm2022/f-connection/f-connection/f-connection.component.mjs +6 -6
  64. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +6 -6
  65. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +6 -6
  66. package/esm2022/f-connection/providers.mjs +4 -3
  67. package/esm2022/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.mjs +2 -3
  68. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +3 -3
  69. package/esm2022/f-draggable/f-connection/f-create-connection/get-first-connectable-output/get-first-connectable-output.execution.mjs +1 -1
  70. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.mjs +3 -3
  71. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +3 -3
  72. package/esm2022/f-draggable/f-draggable.directive.mjs +8 -2
  73. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +5 -5
  74. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.mjs +1 -1
  75. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +1 -1
  76. package/esm2022/f-draggable/f-node-move/f-line-alignment.drag-handler.mjs +2 -2
  77. package/esm2022/f-draggable/f-node-move/f-node-move.drag-handler.mjs +1 -1
  78. package/esm2022/f-draggable/f-node-move/f-summary-node-move.drag-handler.mjs +1 -1
  79. package/esm2022/f-draggable/f-node-move/point-bounds-limiter.mjs +1 -1
  80. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.mjs +2 -2
  81. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.mjs +4 -4
  82. package/esm2022/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.execution.mjs +1 -1
  83. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.execution.mjs +1 -1
  84. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.request.mjs +1 -1
  85. package/esm2022/f-draggable/f-node-resize/f-node-resize.drag-handler.mjs +7 -6
  86. package/esm2022/f-draggable/f-node-rotate/calculate-difference-after-rotation.mjs +19 -0
  87. package/esm2022/f-draggable/f-node-rotate/f-node-rotate.drag-handler.mjs +69 -0
  88. package/esm2022/f-draggable/f-node-rotate/index.mjs +5 -0
  89. package/esm2022/f-draggable/f-node-rotate/providers.mjs +7 -0
  90. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.mjs +31 -0
  91. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.request.mjs +7 -0
  92. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/index.mjs +3 -0
  93. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.mjs +86 -0
  94. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.request.mjs +9 -0
  95. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/index.mjs +3 -0
  96. package/esm2022/f-draggable/index.mjs +2 -1
  97. package/esm2022/f-draggable/providers.mjs +3 -1
  98. package/esm2022/f-external-item/domain/create-placeholder/f-external-item-create-placeholder.execution.mjs +1 -1
  99. package/esm2022/f-external-item/domain/create-preview/f-external-item-create-preview.execution.mjs +1 -1
  100. package/esm2022/f-external-item/domain/f-external-item.drag-handler.mjs +2 -2
  101. package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.execution.mjs +1 -1
  102. package/esm2022/f-external-item/domain/preparation/f-external-item-preparation.execution.mjs +1 -1
  103. package/esm2022/f-external-item/f-external-item-placeholder.directive.mjs +1 -1
  104. package/esm2022/f-external-item/f-external-item-preview.directive.mjs +1 -1
  105. package/esm2022/f-external-item/f-external-item.directive.mjs +1 -1
  106. package/esm2022/f-external-item/index.mjs +2 -1
  107. package/esm2022/f-external-item/providers.mjs +5 -0
  108. package/esm2022/f-flow/f-flow-base.mjs +1 -1
  109. package/esm2022/f-flow/f-flow.component.mjs +12 -21
  110. package/esm2022/f-flow.module.mjs +48 -38
  111. package/esm2022/f-line-alignment/f-line-alignment-base.mjs +1 -1
  112. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +5 -7
  113. package/esm2022/f-node/f-drag-handle.directive.mjs +3 -9
  114. package/esm2022/f-node/f-group.directive.mjs +19 -2
  115. package/esm2022/f-node/f-node-base.mjs +6 -2
  116. package/esm2022/f-node/f-node.directive.mjs +19 -2
  117. package/esm2022/f-node/f-resize-handle/f-resize-handle.directive.mjs +13 -24
  118. package/esm2022/f-node/f-rotate-handle/f-rotate-handle.directive.mjs +14 -26
  119. package/esm2022/f-node/f-rotate-handle/index.mjs +2 -1
  120. package/esm2022/f-node/f-rotate-handle/is-rotate-handle.mjs +5 -0
  121. package/esm2022/f-node/providers.mjs +3 -1
  122. package/esm2022/f-zoom/index.mjs +2 -1
  123. package/esm2022/f-zoom/providers.mjs +5 -0
  124. package/esm2022/reactivity/index.mjs +2 -1
  125. package/esm2022/reactivity/mediator-effect.mjs +14 -0
  126. package/f-backgroud/f-background.component.d.ts +4 -5
  127. package/f-backgroud/f-circle-pattern/f-circle-pattern.component.d.ts +9 -10
  128. package/f-backgroud/f-rect-pattern/f-rect-pattern.component.d.ts +11 -12
  129. package/f-backgroud/providers.d.ts +1 -1
  130. package/f-canvas/f-canvas-base.d.ts +5 -5
  131. package/f-canvas/f-canvas.component.d.ts +13 -10
  132. package/f-connection/common/f-connection-base.d.ts +4 -4
  133. package/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.d.ts +13 -0
  134. package/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.d.ts +13 -0
  135. package/f-connection/common/f-drag-handle/index.d.ts +2 -1
  136. package/f-connection/f-connection/f-connection.component.d.ts +2 -2
  137. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +2 -2
  138. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +2 -2
  139. package/f-connection/providers.d.ts +2 -2
  140. package/f-draggable/f-connection/f-create-connection/get-first-connectable-output/get-first-connectable-output.execution.d.ts +1 -1
  141. package/f-draggable/f-connection/providers.d.ts +1 -1
  142. package/f-draggable/f-draggable.directive.d.ts +2 -1
  143. package/f-draggable/f-drop-to-group/providers.d.ts +1 -1
  144. package/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.d.ts +2 -2
  145. package/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.d.ts +1 -1
  146. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +3 -3
  147. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
  148. package/f-draggable/f-node-move/f-line-alignment.drag-handler.d.ts +2 -2
  149. package/f-draggable/f-node-move/f-node-move.drag-handler.d.ts +1 -1
  150. package/f-draggable/f-node-move/f-summary-node-move.drag-handler.d.ts +3 -3
  151. package/f-draggable/f-node-move/point-bounds-limiter.d.ts +1 -1
  152. package/f-draggable/f-node-move/providers.d.ts +1 -1
  153. package/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.d.ts +3 -2
  154. package/f-draggable/f-node-resize/f-node-resize.drag-handler.d.ts +3 -3
  155. package/f-draggable/f-node-rotate/calculate-difference-after-rotation.d.ts +20 -0
  156. package/f-draggable/f-node-rotate/f-node-rotate.drag-handler.d.ts +34 -0
  157. package/f-draggable/f-node-rotate/index.d.ts +4 -0
  158. package/f-draggable/f-node-rotate/providers.d.ts +3 -0
  159. package/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.d.ts +10 -0
  160. package/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.request.d.ts +5 -0
  161. package/f-draggable/f-node-rotate/rotate-finalize/index.d.ts +2 -0
  162. package/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.d.ts +22 -0
  163. package/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.request.d.ts +7 -0
  164. package/f-draggable/f-node-rotate/rotate-preparation/index.d.ts +2 -0
  165. package/f-draggable/index.d.ts +1 -0
  166. package/f-draggable/providers.d.ts +1 -1
  167. package/f-external-item/domain/create-placeholder/f-external-item-create-placeholder.execution.d.ts +2 -2
  168. package/f-external-item/domain/create-preview/f-external-item-create-preview.execution.d.ts +2 -2
  169. package/f-external-item/domain/finalize/f-external-item-finalize.execution.d.ts +5 -5
  170. package/f-external-item/domain/preparation/f-external-item-preparation.execution.d.ts +3 -3
  171. package/f-external-item/f-external-item-placeholder.directive.d.ts +2 -2
  172. package/f-external-item/f-external-item-preview.directive.d.ts +2 -2
  173. package/f-external-item/f-external-item.directive.d.ts +2 -2
  174. package/f-external-item/index.d.ts +1 -0
  175. package/f-external-item/providers.d.ts +2 -0
  176. package/f-flow/f-flow-base.d.ts +3 -3
  177. package/f-flow/f-flow.component.d.ts +8 -10
  178. package/f-flow.module.d.ts +36 -32
  179. package/f-line-alignment/f-line-alignment-base.d.ts +2 -2
  180. package/f-line-alignment/f-line-alignment.component.d.ts +4 -4
  181. package/f-minimap/domain/providers.d.ts +1 -1
  182. package/f-minimap/providers.d.ts +1 -1
  183. package/f-node/f-drag-handle.directive.d.ts +1 -6
  184. package/f-node/f-group.directive.d.ts +6 -3
  185. package/f-node/f-node-base.d.ts +4 -0
  186. package/f-node/f-node.directive.d.ts +6 -3
  187. package/f-node/f-resize-handle/f-resize-handle.directive.d.ts +4 -10
  188. package/f-node/f-rotate-handle/f-rotate-handle.directive.d.ts +4 -8
  189. package/f-node/f-rotate-handle/index.d.ts +1 -0
  190. package/f-node/f-rotate-handle/is-rotate-handle.d.ts +1 -0
  191. package/f-node/providers.d.ts +1 -2
  192. package/f-selection-area/domain/providers.d.ts +1 -1
  193. package/f-storage/providers.d.ts +1 -1
  194. package/f-zoom/index.d.ts +1 -0
  195. package/f-zoom/providers.d.ts +2 -0
  196. package/fesm2022/foblex-flow.mjs +676 -409
  197. package/fesm2022/foblex-flow.mjs.map +1 -1
  198. package/package.json +2 -2
  199. package/reactivity/index.d.ts +1 -0
  200. package/reactivity/mediator-effect.d.ts +2 -0
  201. package/errors/conflict-error.d.ts +0 -6
  202. package/errors/create-error-class.d.ts +0 -1
  203. package/errors/errors.d.ts +0 -3
  204. package/errors/index.d.ts +0 -4
  205. package/errors/not-found-error.d.ts +0 -6
  206. package/esm2022/errors/conflict-error.mjs +0 -7
  207. package/esm2022/errors/create-error-class.mjs +0 -10
  208. package/esm2022/errors/errors.mjs +0 -12
  209. package/esm2022/errors/index.mjs +0 -5
  210. package/esm2022/errors/not-found-error.mjs +0 -7
  211. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle.component.mjs +0 -41
  212. package/f-connection/common/f-drag-handle/f-connection-drag-handle.component.d.ts +0 -17
@@ -1,12 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable, Directive, ElementRef, Input, HostBinding, EventEmitter, DestroyRef, booleanAttribute, Output, Inject, Component, ChangeDetectionStrategy, ViewChild, Optional, numberAttribute, ContentChildren, ViewContainerRef, TemplateRef, Injector, NgZone, ContentChild, Renderer2, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, effect, Directive, input, computed, EventEmitter, DestroyRef, booleanAttribute, Input, Output, ElementRef, Inject, Component, ChangeDetectionStrategy, ViewChild, Optional, numberAttribute, ContentChildren, ViewContainerRef, TemplateRef, Injector, NgZone, contentChild, output, viewChild, 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
5
  import * as i2$1 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
- import { normalizeDomElementId, castToEnum, flatMap, isClosestElementHasClass, getDataAttrValueFromClosestElementWithClass, getOrCreateRootNodeForViewRef, deepCloneNode, disableDragInteractions, extendStyles } from '@foblex/utils';
9
+ import { normalizeDomElementId, castToEnum, isClosestElementHasClass, flatMap, getDataAttrValueFromClosestElementWithClass, getOrCreateRootNodeForViewRef, deepCloneNode, disableDragInteractions, extendStyles } from '@foblex/utils';
10
10
  import * as i2 from '@angular/common';
11
11
  import { CommonModule } from '@angular/common';
12
12
  import { DragAndDropBase } from '@foblex/drag-toolkit';
@@ -147,6 +147,18 @@ class FChannelHub {
147
147
  }
148
148
  }
149
149
 
150
+ function mediatorEffect(fn, options) {
151
+ let isFirstRun = true;
152
+ return effect(() => {
153
+ const request = fn();
154
+ if (isFirstRun) {
155
+ isFirstRun = false;
156
+ return;
157
+ }
158
+ options?.injector?.get(FMediator).execute(request);
159
+ }, options);
160
+ }
161
+
150
162
  function notifyOnStart() {
151
163
  return callback => {
152
164
  callback();
@@ -306,34 +318,30 @@ class AddPatternToBackgroundRequest {
306
318
 
307
319
  let uniqueId$c = 0;
308
320
  let AddPatternToBackgroundExecution = class AddPatternToBackgroundExecution {
309
- fComponentsStore;
310
- fBrowser;
311
- get fBackground() {
312
- return this.fComponentsStore.fBackground;
313
- }
314
- constructor(fComponentsStore, fBrowser) {
315
- this.fComponentsStore = fComponentsStore;
316
- this.fBrowser = fBrowser;
321
+ _fComponentsStore = inject(FComponentsStore);
322
+ _fBrowser = inject(BrowserService);
323
+ get _fBackground() {
324
+ return this._fComponentsStore.fBackground;
317
325
  }
318
326
  handle(request) {
319
327
  const children = request.fPattern?.hostElement.getElementsByTagName('pattern') || [];
320
328
  const pattern = children.length ? children[0] : undefined;
321
329
  if (pattern) {
322
- const defs = createSVGElement('defs', this.fBrowser);
330
+ const defs = createSVGElement('defs', this._fBrowser);
323
331
  pattern.id = 'f-background-pattern-' + uniqueId$c++;
324
332
  request.fPattern?.hostElement.remove();
325
333
  defs.appendChild(pattern);
326
- this.fBackground.hostElement?.firstChild?.appendChild(defs);
327
- const rect = createSVGElement('rect', this.fBrowser);
334
+ this._fBackground.hostElement?.firstChild?.appendChild(defs);
335
+ const rect = createSVGElement('rect', this._fBrowser);
328
336
  rect.setAttribute('fill', 'url(#' + pattern.id + ')');
329
337
  rect.setAttribute('width', '100%');
330
338
  rect.setAttribute('height', '100%');
331
- this.fBackground.hostElement.firstChild?.appendChild(rect);
332
- const transform = this.fComponentsStore.fCanvas?.transform || TransformModelExtensions.default();
339
+ this._fBackground.hostElement.firstChild?.appendChild(rect);
340
+ const transform = this._fComponentsStore.fCanvas?.transform || TransformModelExtensions.default();
333
341
  request.fPattern?.setTransform(transform);
334
342
  }
335
343
  }
336
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: AddPatternToBackgroundExecution, deps: [{ token: FComponentsStore }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Injectable });
344
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: AddPatternToBackgroundExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
337
345
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: AddPatternToBackgroundExecution });
338
346
  };
339
347
  AddPatternToBackgroundExecution = __decorate([
@@ -341,7 +349,7 @@ AddPatternToBackgroundExecution = __decorate([
341
349
  ], AddPatternToBackgroundExecution);
342
350
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: AddPatternToBackgroundExecution, decorators: [{
343
351
  type: Injectable
344
- }], ctorParameters: () => [{ type: FComponentsStore }, { type: i1.BrowserService }] });
352
+ }] });
345
353
 
346
354
  class RemoveBackgroundFromStoreRequest {
347
355
  fConnection;
@@ -556,6 +564,7 @@ let InputCanvasPositionExecution = class InputCanvasPositionExecution {
556
564
  request.transform.scaledPosition = PointExtensions.initialize();
557
565
  this._fComponentsStore.fCanvas?.redraw();
558
566
  }
567
+ return void 0;
559
568
  }
560
569
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: InputCanvasPositionExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
561
570
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: InputCanvasPositionExecution });
@@ -579,7 +588,7 @@ class InputCanvasScaleRequest {
579
588
  let InputCanvasScaleExecution = class InputCanvasScaleExecution {
580
589
  _fComponentsStore = inject(FComponentsStore);
581
590
  handle(request) {
582
- if (!request.scale) {
591
+ if (!request.scale && request.scale !== 0) {
583
592
  return;
584
593
  }
585
594
  request.transform.scale = request.scale;
@@ -687,28 +696,28 @@ class ResetScaleAndCenterRequest {
687
696
  }
688
697
 
689
698
  let ResetScaleAndCenterExecution = class ResetScaleAndCenterExecution {
699
+ _fMediator = inject(FMediator);
690
700
  _fComponentsStore = inject(FComponentsStore);
691
- get transform() {
701
+ get _transform() {
692
702
  return this._fComponentsStore.fCanvas.transform;
693
703
  }
694
- _fMediator = inject(FMediator);
695
704
  handle(request) {
696
705
  const fNodesRect = this._fMediator.execute(new CalculateNodesBoundingBoxRequest()) || RectExtensions.initialize();
697
706
  if (fNodesRect.width === 0 || fNodesRect.height === 0) {
698
707
  return;
699
708
  }
700
- this.oneToOneCentering(fNodesRect, RectExtensions.fromElement(this._fComponentsStore.fFlow.hostElement), this._fComponentsStore.fNodes.map((x) => x.position));
709
+ this._oneToOneCentering(fNodesRect, RectExtensions.fromElement(this._fComponentsStore.fFlow.hostElement), this._fComponentsStore.fNodes.map((x) => x.position));
701
710
  this._fMediator.execute(new RedrawCanvasWithAnimationRequest(request.animated));
702
711
  }
703
- oneToOneCentering(rect, parentRect, points) {
704
- this.transform.scaledPosition = PointExtensions.initialize();
705
- this.transform.position = this.getZeroPositionWithoutScale(points);
706
- const newX = (parentRect.width - rect.width / this.transform.scale) / 2 - this.transform.position.x;
707
- const newY = (parentRect.height - rect.height / this.transform.scale) / 2 - this.transform.position.y;
708
- this.transform.scale = 1;
709
- this.transform.position = PointExtensions.initialize(newX, newY);
712
+ _oneToOneCentering(rect, parentRect, points) {
713
+ this._transform.scaledPosition = PointExtensions.initialize();
714
+ this._transform.position = this._getZeroPositionWithoutScale(points);
715
+ const newX = (parentRect.width - rect.width / this._transform.scale) / 2 - this._transform.position.x;
716
+ const newY = (parentRect.height - rect.height / this._transform.scale) / 2 - this._transform.position.y;
717
+ this._transform.scale = 1;
718
+ this._transform.position = PointExtensions.initialize(newX, newY);
710
719
  }
711
- getZeroPositionWithoutScale(points) {
720
+ _getZeroPositionWithoutScale(points) {
712
721
  const xPoint = points.length ? Math.min(...points.map((point) => point.x)) : 0;
713
722
  const yPoint = points.length ? Math.min(...points.map((point) => point.y)) : 0;
714
723
  return PointExtensions.initialize(xPoint, yPoint);
@@ -1052,18 +1061,16 @@ var EFResizeHandleType;
1052
1061
  EFResizeHandleType["LEFT_BOTTOM"] = "left-bottom";
1053
1062
  })(EFResizeHandleType || (EFResizeHandleType = {}));
1054
1063
 
1055
- const F_RESIZE_HANDLE = new InjectionToken('F_RESIZE_HANDLE');
1056
1064
  class FResizeHandleDirective {
1057
- _elementReference = inject(ElementRef);
1058
- type = EFResizeHandleType.LEFT_TOP;
1059
- get typeClass() {
1060
- return `f-resize-handle-${EFResizeHandleType[this.type.toUpperCase()]}`;
1061
- }
1062
- get hostElement() {
1063
- return this._elementReference.nativeElement;
1064
- }
1065
+ type = input.required({
1066
+ alias: 'fResizeHandleType',
1067
+ transform: (x) => castToEnum(x, 'fResizeHandleType', EFResizeHandleType)
1068
+ });
1069
+ class = computed(() => {
1070
+ return `f-resize-handle-${EFResizeHandleType[this.type().toUpperCase()]}`;
1071
+ });
1065
1072
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FResizeHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1066
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.4", type: FResizeHandleDirective, selector: "[fResizeHandle]", inputs: { type: ["fResizeHandleType", "type", (x) => castToEnum(x, 'fResizeHandleType', EFResizeHandleType)] }, host: { properties: { "attr.data-f-resize-handle-type": "type.toUpperCase()", "class": "this.typeClass" }, classAttribute: "f-resize-handle f-component" }, providers: [{ provide: F_RESIZE_HANDLE, useExisting: FResizeHandleDirective }], ngImport: i0 });
1073
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: FResizeHandleDirective, selector: "[fResizeHandle]", inputs: { type: { classPropertyName: "type", publicName: "fResizeHandleType", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.data-f-resize-handle-type": "type().toUpperCase()", "class": "class()" }, classAttribute: "f-resize-handle f-component" }, ngImport: i0 });
1067
1074
  }
1068
1075
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FResizeHandleDirective, decorators: [{
1069
1076
  type: Directive,
@@ -1071,57 +1078,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
1071
1078
  selector: "[fResizeHandle]",
1072
1079
  host: {
1073
1080
  class: `f-resize-handle f-component`,
1074
- '[attr.data-f-resize-handle-type]': 'type.toUpperCase()',
1081
+ '[attr.data-f-resize-handle-type]': 'type().toUpperCase()',
1082
+ '[class]': 'class()'
1075
1083
  },
1076
- providers: [{ provide: F_RESIZE_HANDLE, useExisting: FResizeHandleDirective }],
1077
1084
  }]
1078
- }], propDecorators: { type: [{
1079
- type: Input,
1080
- args: [{
1081
- alias: 'fResizeHandleType',
1082
- transform: (x) => castToEnum(x, 'fResizeHandleType', EFResizeHandleType)
1083
- }]
1084
- }], typeClass: [{
1085
- type: HostBinding,
1086
- args: ['class']
1087
- }] } });
1085
+ }] });
1088
1086
 
1089
- // export const F_ROTATE_HANDLE: InjectionToken<FRotateHandleDirective> = new InjectionToken<FRotateHandleDirective>('F_ROTATE_HANDLE');
1090
- //
1091
- // @Directive({
1092
- // selector: "[fRotateHandle]",
1093
- // host: {
1094
- // class: `f-rotate-handle f-component`,
1095
- // '[class.f-rotate-handle-disabled]': 'disabled',
1096
- // },
1097
- // providers: [ { provide: F_ROTATE_HANDLE, useExisting: FRotateHandleDirective } ],
1098
- // })
1099
1087
  class FRotateHandleDirective {
1100
- elementReference;
1101
- isDisabled = false;
1102
- // @Input('fRotateHandleDisabled')
1103
- // public set disabled(isDisabled: boolean | undefined | string) {
1104
- // this.isDisabled = BooleanExtensions.castToBoolean(isDisabled);
1105
- // }
1106
- get disabled() {
1107
- return this.isDisabled;
1108
- }
1109
- get hostElement() {
1110
- return this.elementReference.nativeElement;
1111
- }
1112
- constructor(elementReference) {
1113
- this.elementReference = elementReference;
1114
- }
1088
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FRotateHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1089
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: FRotateHandleDirective, selector: "[fRotateHandle]", host: { classAttribute: "f-rotate-handle f-component" }, ngImport: i0 });
1090
+ }
1091
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FRotateHandleDirective, decorators: [{
1092
+ type: Directive,
1093
+ args: [{
1094
+ selector: "[fRotateHandle]",
1095
+ host: {
1096
+ class: `f-rotate-handle f-component`,
1097
+ },
1098
+ }]
1099
+ }] });
1100
+
1101
+ function isRotateHandle(element) {
1102
+ return isClosestElementHasClass(element, '.f-rotate-handle');
1115
1103
  }
1116
1104
 
1117
- const F_DRAG_HANDLE = new InjectionToken('F_DRAG_HANDLE');
1118
1105
  class FDragHandleDirective {
1119
- _elementReference = inject(ElementRef);
1120
- get hostElement() {
1121
- return this._elementReference.nativeElement;
1122
- }
1123
1106
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDragHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1124
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: FDragHandleDirective, selector: "[fDragHandle]", host: { classAttribute: "f-drag-handle f-component" }, providers: [{ provide: F_DRAG_HANDLE, useExisting: FDragHandleDirective }], ngImport: i0 });
1107
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: FDragHandleDirective, selector: "[fDragHandle]", host: { classAttribute: "f-drag-handle f-component" }, ngImport: i0 });
1125
1108
  }
1126
1109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDragHandleDirective, decorators: [{
1127
1110
  type: Directive,
@@ -1130,7 +1113,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
1130
1113
  host: {
1131
1114
  class: "f-drag-handle f-component"
1132
1115
  },
1133
- providers: [{ provide: F_DRAG_HANDLE, useExisting: FDragHandleDirective }],
1134
1116
  }]
1135
1117
  }] });
1136
1118
 
@@ -1186,6 +1168,7 @@ const MIXIN_BASE$1 = mixinChangeSelection(class {
1186
1168
  class FNodeBase extends MIXIN_BASE$1 {
1187
1169
  stateChanges = new FChannel();
1188
1170
  _position = PointExtensions.initialize();
1171
+ _rotate = 0;
1189
1172
  _size;
1190
1173
  fCanBeResizedByChild = true;
1191
1174
  connectors = [];
@@ -1197,11 +1180,14 @@ class FNodeBase extends MIXIN_BASE$1 {
1197
1180
  this.setStyle('width', '' + this.size.width + 'px');
1198
1181
  this.setStyle('height', '' + this.size.height + 'px');
1199
1182
  }
1200
- this.setStyle('transform', `translate(${this.position.x}px,${this.position.y}px)`);
1183
+ this.setStyle('transform', `translate(${this.position.x}px,${this.position.y}px) rotate(${this.rotate}deg)`);
1201
1184
  }
1202
1185
  updatePosition(position) {
1203
1186
  this._position = position;
1204
1187
  }
1188
+ updateRotate(rotate) {
1189
+ this._rotate = rotate;
1190
+ }
1205
1191
  updateSize(value) {
1206
1192
  this._size = value;
1207
1193
  }
@@ -1241,6 +1227,17 @@ class FGroupDirective extends FNodeBase {
1241
1227
  return this._position;
1242
1228
  }
1243
1229
  positionChange = new EventEmitter();
1230
+ set rotate(value) {
1231
+ if (this._rotate !== value) {
1232
+ this._rotate = value;
1233
+ this.redraw();
1234
+ this.refresh();
1235
+ }
1236
+ }
1237
+ get rotate() {
1238
+ return this._rotate;
1239
+ }
1240
+ rotateChange = new EventEmitter();
1244
1241
  set size(value) {
1245
1242
  if (!this.size || !SizeExtensions.isEqual(this._size, value)) {
1246
1243
  this._size = value;
@@ -1296,7 +1293,7 @@ class FGroupDirective extends FNodeBase {
1296
1293
  this._fMediator.execute(new RemoveNodeFromStoreRequest(this));
1297
1294
  }
1298
1295
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FGroupDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Directive });
1299
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.4", type: FGroupDirective, selector: "[fGroup]", inputs: { fId: ["fGroupId", "fId"], fParentId: ["fGroupParentId", "fParentId"], position: ["fGroupPosition", "position"], size: ["fGroupSize", "size"], fDraggingDisabled: ["fGroupDraggingDisabled", "fDraggingDisabled", booleanAttribute], fSelectionDisabled: ["fGroupSelectionDisabled", "fSelectionDisabled", booleanAttribute], fIncludePadding: ["fIncludePadding", "fIncludePadding", booleanAttribute], fConnectOnNode: ["fConnectOnNode", "fConnectOnNode", booleanAttribute] }, outputs: { positionChange: "fGroupPositionChange", 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: [
1296
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.4", 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] }, 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: [
1300
1297
  { provide: F_NODE, useExisting: FGroupDirective }
1301
1298
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0 });
1302
1299
  }
@@ -1327,6 +1324,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
1327
1324
  }], positionChange: [{
1328
1325
  type: Output,
1329
1326
  args: ['fGroupPositionChange']
1327
+ }], rotate: [{
1328
+ type: Input,
1329
+ args: ['fGroupRotate']
1330
+ }], rotateChange: [{
1331
+ type: Output,
1332
+ args: ['fGroupRotateChange']
1330
1333
  }], size: [{
1331
1334
  type: Input,
1332
1335
  args: ['fGroupSize']
@@ -1371,6 +1374,17 @@ class FNodeDirective extends FNodeBase {
1371
1374
  this.refresh();
1372
1375
  }
1373
1376
  }
1377
+ set rotate(value) {
1378
+ if (this._rotate !== value) {
1379
+ this._rotate = value;
1380
+ this.redraw();
1381
+ this.refresh();
1382
+ }
1383
+ }
1384
+ get rotate() {
1385
+ return this._rotate;
1386
+ }
1387
+ rotateChange = new EventEmitter();
1374
1388
  get size() {
1375
1389
  return this._size;
1376
1390
  }
@@ -1420,7 +1434,7 @@ class FNodeDirective extends FNodeBase {
1420
1434
  this._fMediator.execute(new RemoveNodeFromStoreRequest(this));
1421
1435
  }
1422
1436
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Directive });
1423
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.4", type: FNodeDirective, selector: "[fNode]", inputs: { fId: ["fNodeId", "fId"], fParentId: ["fNodeParentId", "fParentId"], position: ["fNodePosition", "position"], size: ["fNodeSize", "size"], fDraggingDisabled: ["fNodeDraggingDisabled", "fDraggingDisabled", booleanAttribute], fSelectionDisabled: ["fNodeSelectionDisabled", "fSelectionDisabled", booleanAttribute], fIncludePadding: ["fIncludePadding", "fIncludePadding", booleanAttribute], fConnectOnNode: ["fConnectOnNode", "fConnectOnNode", booleanAttribute] }, outputs: { positionChange: "fNodePositionChange", 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: [
1437
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.4", 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] }, 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: [
1424
1438
  { provide: F_NODE, useExisting: FNodeDirective }
1425
1439
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0 });
1426
1440
  }
@@ -1454,6 +1468,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
1454
1468
  }], size: [{
1455
1469
  type: Input,
1456
1470
  args: ['fNodeSize']
1471
+ }], rotate: [{
1472
+ type: Input,
1473
+ args: ['fNodeRotate']
1474
+ }], rotateChange: [{
1475
+ type: Output,
1476
+ args: ['fNodeRotateChange']
1457
1477
  }], sizeChange: [{
1458
1478
  type: Output,
1459
1479
  args: ['fNodeSizeChange']
@@ -1480,6 +1500,7 @@ const F_NODE_PROVIDERS = [
1480
1500
  FNodeDirective,
1481
1501
  FDragHandleDirective,
1482
1502
  FResizeHandleDirective,
1503
+ FRotateHandleDirective,
1483
1504
  ];
1484
1505
 
1485
1506
  let uniqueId$9 = 0;
@@ -2065,17 +2086,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
2065
2086
  args: [FConnectionTextPathDirective, { static: true }]
2066
2087
  }] } });
2067
2088
 
2068
- const F_CONNECTION_DRAG_HANDLE_CLASS = 'f-connection-drag-handle';
2069
- class FConnectionDragHandleComponent {
2070
- elementReference;
2089
+ const F_CSS_CLASS = {
2090
+ DRAG_AND_DROP: {
2091
+ DRAGGING: 'f-dragging',
2092
+ CONNECTIONS_DRAGGING: 'f-connections-dragging',
2093
+ },
2094
+ CONNECTOR: {
2095
+ OUTPUT_CONNECTED: 'f-node-output-connected',
2096
+ OUTPUT_NOT_CONNECTABLE: 'f-node-output-not-connectable',
2097
+ INPUT_CONNECTED: 'f-node-input-connected',
2098
+ INPUT_NOT_CONNECTABLE: 'f-node-input-not-connectable',
2099
+ INPUT_CAN_BE_CONNECTED_TO: 'f-node-input-can-be-connected-to',
2100
+ },
2101
+ CONNECTION: {
2102
+ DRAG_HANDLE: 'f-connection-drag-handle',
2103
+ }
2104
+ };
2105
+
2106
+ class FConnectionDragHandleStartComponent {
2107
+ _elementReference = inject(ElementRef);
2108
+ class = F_CSS_CLASS.CONNECTION.DRAG_HANDLE;
2071
2109
  point;
2072
- radius = 8;
2073
- class = F_CONNECTION_DRAG_HANDLE_CLASS;
2074
2110
  get hostElement() {
2075
- return this.elementReference.nativeElement;
2111
+ return this._elementReference.nativeElement;
2076
2112
  }
2077
- constructor(elementReference) {
2078
- this.elementReference = elementReference;
2113
+ redraw(penultimatePoint, startPoint) {
2114
+ this.point = this._calculateCircleCenter(penultimatePoint, startPoint, 8);
2115
+ this.hostElement.setAttribute('cx', this.point.x.toString());
2116
+ this.hostElement.setAttribute('cy', this.point.y.toString());
2117
+ }
2118
+ _calculateCircleCenter(start, end, radius) {
2119
+ const direction = { x: end.x - start.x, y: end.y - start.y };
2120
+ const length = Math.sqrt(direction.x * direction.x + direction.y * direction.y) || 1;
2121
+ const unitDirection = { x: direction.x / length, y: direction.y / length };
2122
+ const scaledDirection = { x: unitDirection.x * radius, y: unitDirection.y * radius };
2123
+ return { x: end.x - scaledDirection.x, y: end.y - scaledDirection.y };
2124
+ }
2125
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionDragHandleStartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2126
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FConnectionDragHandleStartComponent, selector: "circle[f-connection-drag-handle-start]", host: { properties: { "class": "class" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2127
+ }
2128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionDragHandleStartComponent, decorators: [{
2129
+ type: Component,
2130
+ args: [{
2131
+ selector: "circle[f-connection-drag-handle-start]",
2132
+ template: '',
2133
+ changeDetection: ChangeDetectionStrategy.OnPush,
2134
+ host: {
2135
+ '[class]': 'class'
2136
+ }
2137
+ }]
2138
+ }] });
2139
+
2140
+ class FConnectionDragHandleEndComponent {
2141
+ _elementReference = inject(ElementRef);
2142
+ class = F_CSS_CLASS.CONNECTION.DRAG_HANDLE;
2143
+ point;
2144
+ get hostElement() {
2145
+ return this._elementReference.nativeElement;
2079
2146
  }
2080
2147
  redraw(penultimatePoint, endPoint) {
2081
2148
  this.point = this._calculateCircleCenter(penultimatePoint, endPoint, 8);
@@ -2089,20 +2156,20 @@ class FConnectionDragHandleComponent {
2089
2156
  const scaledDirection = { x: unitDirection.x * radius, y: unitDirection.y * radius };
2090
2157
  return { x: end.x - scaledDirection.x, y: end.y - scaledDirection.y };
2091
2158
  }
2092
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionDragHandleComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2093
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]", host: { properties: { "class": "class" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2159
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionDragHandleEndComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2160
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]", host: { properties: { "class": "class" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2094
2161
  }
2095
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionDragHandleComponent, decorators: [{
2162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionDragHandleEndComponent, decorators: [{
2096
2163
  type: Component,
2097
2164
  args: [{
2098
- selector: "circle[f-connection-drag-handle]",
2165
+ selector: "circle[f-connection-drag-handle-end]",
2099
2166
  template: '',
2100
2167
  changeDetection: ChangeDetectionStrategy.OnPush,
2101
2168
  host: {
2102
2169
  '[class]': 'class'
2103
2170
  }
2104
2171
  }]
2105
- }], ctorParameters: () => [{ type: i0.ElementRef }] });
2172
+ }] });
2106
2173
 
2107
2174
  const CONNECTION_GRADIENT = new InjectionToken('CONNECTION_GRADIENT');
2108
2175
 
@@ -2214,7 +2281,7 @@ class FConnectionPathComponent {
2214
2281
  this.hostElement.setAttribute('marker-end', `url(#${getMarkerEndId(this.base.fId)})`);
2215
2282
  }
2216
2283
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionPathComponent, deps: [{ token: i0.ElementRef }, { token: F_CONNECTION }], target: i0.ɵɵFactoryTarget.Component });
2217
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", 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}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2284
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", 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 });
2218
2285
  }
2219
2286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionPathComponent, decorators: [{
2220
2287
  type: Component,
@@ -2223,7 +2290,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
2223
2290
  '[attr.id]': 'attrConnectionId',
2224
2291
  '[attr.data-f-path-id]': 'fPathId',
2225
2292
  '[attr.stroke]': 'linkToGradient',
2226
- }, providers: [{ provide: CONNECTION_PATH, useExisting: FConnectionPathComponent }], styles: [":host{fill:none}\n"] }]
2293
+ }, providers: [{ provide: CONNECTION_PATH, useExisting: FConnectionPathComponent }], styles: [":host{fill:none;pointer-events:stroke}\n"] }]
2227
2294
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
2228
2295
  type: Inject,
2229
2296
  args: [F_CONNECTION]
@@ -2246,14 +2313,14 @@ class FConnectionSelectionComponent {
2246
2313
  this.hostElement.setAttribute("d", `${path}`);
2247
2314
  }
2248
2315
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionSelectionComponent, deps: [{ token: i0.ElementRef }, { token: F_CONNECTION }], target: i0.ɵɵFactoryTarget.Component });
2249
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]", host: { properties: { "attr.id": "connectionForSelectionId" }, classAttribute: "f-component f-connection-selection" }, ngImport: i0, template: '', isInline: true, styles: [":host{fill:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2316
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]", host: { properties: { "attr.id": "connectionForSelectionId" }, classAttribute: "f-component f-connection-selection" }, ngImport: i0, template: '', isInline: true, styles: [":host{fill:none;pointer-events:stroke}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2250
2317
  }
2251
2318
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionSelectionComponent, decorators: [{
2252
2319
  type: Component,
2253
2320
  args: [{ selector: "path[fConnectionSelection]", template: '', changeDetection: ChangeDetectionStrategy.OnPush, host: {
2254
2321
  class: "f-component f-connection-selection",
2255
2322
  '[attr.id]': 'connectionForSelectionId',
2256
- }, styles: [":host{fill:none}\n"] }]
2323
+ }, styles: [":host{fill:none;pointer-events:stroke}\n"] }]
2257
2324
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
2258
2325
  type: Inject,
2259
2326
  args: [F_CONNECTION]
@@ -2314,11 +2381,11 @@ class FConnectionBase extends MIXIN_BASE {
2314
2381
  isContains(element) {
2315
2382
  return (this.hostElement.firstChild?.lastChild).contains(element);
2316
2383
  }
2317
- setLine(source, sourceSide, target, targetSide) {
2318
- this.line = LineExtensions.initialize(source, target);
2319
- const pathResult = this.getPathResult(source, sourceSide, target, targetSide);
2384
+ setLine({ point1, point2 }, sourceSide, targetSide) {
2385
+ this.line = LineExtensions.initialize(point1, point2);
2386
+ const pathResult = this.getPathResult(point1, sourceSide, point2, targetSide);
2320
2387
  this.path = pathResult.path;
2321
- this.penultimatePoint = pathResult.penultimatePoint || source;
2388
+ this.penultimatePoint = pathResult.penultimatePoint || point1;
2322
2389
  this.fConnectionCenter?.nativeElement?.setAttribute('style', this.getTransform(pathResult.connectionCenter));
2323
2390
  }
2324
2391
  getPathResult(source, sourceSide, target, targetSide) {
@@ -2420,13 +2487,13 @@ class FConnectionForCreateComponent extends FConnectionBase {
2420
2487
  this._fMediator.execute(new RemoveConnectionForCreateFromStoreRequest());
2421
2488
  }
2422
2489
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionForCreateComponent, deps: [{ token: i0.ElementRef }, { token: FConnectionFactory }], target: i0.ɵɵFactoryTarget.Component });
2423
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.4", 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: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true }], usesInheritance: true, 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 r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}: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: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2490
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.4", 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 });
2424
2491
  }
2425
2492
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionForCreateComponent, decorators: [{
2426
2493
  type: Component,
2427
2494
  args: [{ selector: "f-connection-for-create", changeDetection: ChangeDetectionStrategy.OnPush, host: {
2428
2495
  class: "f-component f-connection f-connection-for-create"
2429
- }, 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 r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center{pointer-events:all}\n"] }]
2496
+ }, 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"] }]
2430
2497
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FConnectionFactory }], propDecorators: { fStartColor: [{
2431
2498
  type: Input
2432
2499
  }], fEndColor: [{
@@ -2453,7 +2520,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
2453
2520
  args: [CONNECTION_GRADIENT, { static: true }]
2454
2521
  }], fDragHandle: [{
2455
2522
  type: ViewChild,
2456
- args: [FConnectionDragHandleComponent, { static: true }]
2523
+ args: [FConnectionDragHandleEndComponent, { static: true }]
2457
2524
  }], fSelection: [{
2458
2525
  type: ViewChild,
2459
2526
  args: [FConnectionSelectionComponent, { static: true }]
@@ -2508,7 +2575,7 @@ class FConnectionComponent extends FConnectionBase {
2508
2575
  this._fMediator.execute(new RemoveConnectionFromStoreRequest(this));
2509
2576
  }
2510
2577
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionComponent, deps: [{ token: i0.ElementRef }, { token: FConnectionFactory }], target: i0.ɵɵFactoryTarget.Component });
2511
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.4", type: FConnectionComponent, selector: "f-connection", inputs: { fId: ["fConnectionId", "fId"], fText: "fText", fTextStartOffset: "fTextStartOffset", fStartColor: "fStartColor", fEndColor: "fEndColor", fOutputId: "fOutputId", fInputId: "fInputId", fRadius: ["fRadius", "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: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true }], exportAs: ["fComponent"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <ng-content></ng-content>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2578
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.4", type: FConnectionComponent, selector: "f-connection", inputs: { fId: ["fConnectionId", "fId"], fText: "fText", fTextStartOffset: "fTextStartOffset", fStartColor: "fStartColor", fEndColor: "fEndColor", fOutputId: "fOutputId", fInputId: "fInputId", fRadius: ["fRadius", "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 });
2512
2579
  }
2513
2580
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FConnectionComponent, decorators: [{
2514
2581
  type: Component,
@@ -2517,7 +2584,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
2517
2584
  class: "f-component f-connection",
2518
2585
  '[class.f-connection-selection-disabled]': 'fSelectionDisabled',
2519
2586
  '[class.f-connection-reassign-disabled]': 'fDraggingDisabled',
2520
- }, 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 r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center{pointer-events:all}\n"] }]
2587
+ }, 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"] }]
2521
2588
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FConnectionFactory }], propDecorators: { fId: [{
2522
2589
  type: Input,
2523
2590
  args: ['fConnectionId']
@@ -2561,7 +2628,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
2561
2628
  args: [CONNECTION_GRADIENT, { static: true }]
2562
2629
  }], fDragHandle: [{
2563
2630
  type: ViewChild,
2564
- args: [FConnectionDragHandleComponent, { static: true }]
2631
+ args: [FConnectionDragHandleEndComponent, { static: true }]
2565
2632
  }], fSelection: [{
2566
2633
  type: ViewChild,
2567
2634
  args: [FConnectionSelectionComponent, { static: true }]
@@ -2691,13 +2758,13 @@ class FSnapConnectionComponent extends FConnectionBase {
2691
2758
  this._fMediator.execute(new RemoveSnapConnectionFromStoreRequest());
2692
2759
  }
2693
2760
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FSnapConnectionComponent, deps: [{ token: i0.ElementRef }, { token: FConnectionFactory }], target: i0.ɵɵFactoryTarget.Component });
2694
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.4", 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: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true }], usesInheritance: true, 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 r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}: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: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2761
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.4", 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 });
2695
2762
  }
2696
2763
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FSnapConnectionComponent, decorators: [{
2697
2764
  type: Component,
2698
2765
  args: [{ selector: "f-snap-connection", changeDetection: ChangeDetectionStrategy.OnPush, host: {
2699
2766
  class: "f-component f-connection f-snap-connection"
2700
- }, 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 r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center{pointer-events:all}\n"] }]
2767
+ }, 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"] }]
2701
2768
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FConnectionFactory }], propDecorators: { fStartColor: [{
2702
2769
  type: Input
2703
2770
  }], fEndColor: [{
@@ -2727,7 +2794,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
2727
2794
  args: [CONNECTION_GRADIENT, { static: true }]
2728
2795
  }], fDragHandle: [{
2729
2796
  type: ViewChild,
2730
- args: [FConnectionDragHandleComponent, { static: true }]
2797
+ args: [FConnectionDragHandleEndComponent, { static: true }]
2731
2798
  }], fSelection: [{
2732
2799
  type: ViewChild,
2733
2800
  args: [FConnectionSelectionComponent, { static: true }]
@@ -2745,7 +2812,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
2745
2812
  const F_CONNECTION_PROVIDERS = [
2746
2813
  FConnectionTextComponent,
2747
2814
  FConnectionTextPathDirective,
2748
- FConnectionDragHandleComponent,
2815
+ FConnectionDragHandleStartComponent,
2816
+ FConnectionDragHandleEndComponent,
2749
2817
  FConnectionGradientComponent,
2750
2818
  FConnectionPathComponent,
2751
2819
  FConnectionSelectionComponent,
@@ -2840,8 +2908,10 @@ let GetNormalizedElementRectExecution = class GetNormalizedElementRectExecution
2840
2908
  handle(request) {
2841
2909
  const systemRect = this._getElementRoundedRect(request);
2842
2910
  const position = this._normalizePosition(systemRect);
2843
- const size = this._normalizeSize(systemRect);
2844
- return new RoundedRect(position.x, position.y, size.width, size.height, systemRect.radius1, systemRect.radius2, systemRect.radius3, systemRect.radius4);
2911
+ const unscaledSize = this._unscaleSize(systemRect);
2912
+ const unscaledRect = this._getUnscaledRect(position, unscaledSize, systemRect);
2913
+ const offsetSize = this._getOffsetSize(request.element, unscaledSize);
2914
+ return RoundedRect.fromCenter(unscaledRect, offsetSize.width, offsetSize.height);
2845
2915
  }
2846
2916
  _getElementRoundedRect(request) {
2847
2917
  return request.isRoundedRect ? this._fMediator.execute(new GetElementRoundedRectRequest(request.element)) : RoundedRect.fromRect(RectExtensions.fromElement(request.element));
@@ -2849,9 +2919,15 @@ let GetNormalizedElementRectExecution = class GetNormalizedElementRectExecution
2849
2919
  _normalizePosition(rect) {
2850
2920
  return Point.fromPoint(rect).elementTransform(this._fComponentsStore.flowHost).sub(this._transform.scaledPosition).sub(this._transform.position).div(this._transform.scale);
2851
2921
  }
2852
- _normalizeSize(rect) {
2922
+ _unscaleSize(rect) {
2853
2923
  return SizeExtensions.initialize(rect.width / this._transform.scale, rect.height / this._transform.scale);
2854
2924
  }
2925
+ _getUnscaledRect(position, size, rect) {
2926
+ return new RoundedRect(position.x, position.y, size.width, size.height, rect.radius1, rect.radius2, rect.radius3, rect.radius4);
2927
+ }
2928
+ _getOffsetSize(element, size) {
2929
+ return SizeExtensions.offsetFromElement(element) || size;
2930
+ }
2855
2931
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNormalizedElementRectExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2856
2932
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNormalizedElementRectExecution });
2857
2933
  };
@@ -2900,7 +2976,7 @@ let RedrawConnectionsExecution = class RedrawConnectionsExecution {
2900
2976
  fInput.setConnected(fOutput);
2901
2977
  const line = this._getLine(fOutput, fInput, fConnection);
2902
2978
  this._setMarkers(fConnection);
2903
- fConnection.setLine(line.point1, fOutput.fConnectableSide, line.point2, fInput.fConnectableSide);
2979
+ fConnection.setLine(line, fOutput.fConnectableSide, fInput.fConnectableSide);
2904
2980
  fConnection.initialize();
2905
2981
  fConnection.isSelected() ? fConnection.markAsSelected() : null;
2906
2982
  }
@@ -3305,20 +3381,6 @@ class MarkAllCanBeConnectedInputsRequest {
3305
3381
  }
3306
3382
  }
3307
3383
 
3308
- const F_CSS_CLASS = {
3309
- DRAG_AND_DROP: {
3310
- DRAGGING: 'f-dragging',
3311
- CONNECTIONS_DRAGGING: 'f-connections-dragging',
3312
- },
3313
- CONNECTOR: {
3314
- OUTPUT_CONNECTED: 'f-node-output-connected',
3315
- OUTPUT_NOT_CONNECTABLE: 'f-node-output-not-connectable',
3316
- INPUT_CONNECTED: 'f-node-input-connected',
3317
- INPUT_NOT_CONNECTABLE: 'f-node-input-not-connectable',
3318
- INPUT_CAN_BE_CONNECTED_TO: 'f-node-input-can-be-connected-to',
3319
- }
3320
- };
3321
-
3322
3384
  let MarkAllCanBeConnectedInputsExecution = class MarkAllCanBeConnectedInputsExecution {
3323
3385
  _fComponentsStore = inject(FComponentsStore);
3324
3386
  handle(payload) {
@@ -3794,38 +3856,6 @@ class FCreateConnectionFinalizeRequest {
3794
3856
  }
3795
3857
  }
3796
3858
 
3797
- function createErrorClass(impl) {
3798
- const _super = (instance) => {
3799
- Error.call(instance);
3800
- };
3801
- const constructor = impl(_super);
3802
- constructor.prototype = Object.create(Error.prototype);
3803
- constructor.prototype.constructor = constructor;
3804
- return constructor;
3805
- }
3806
-
3807
- const NotFoundError = createErrorClass((_super) => function error(message) {
3808
- _super(this);
3809
- this.message = message || 'The requested resource was not found.';
3810
- this.code = 404;
3811
- });
3812
-
3813
- const ConflictError = createErrorClass((_super) => function error(message) {
3814
- _super(this);
3815
- this.message = message || 'Conflict error occurred.';
3816
- this.code = 409;
3817
- });
3818
-
3819
- function OutputNotFound(id) {
3820
- return new NotFoundError(`Output with fOutputId ${id} not found. Make sure there is no f-connection to a non-existent fOutput.`);
3821
- }
3822
- function InputNotFound(id) {
3823
- return new NotFoundError(`Input with fInputId ${id} not found. Make sure there is no f-connection to a non-existent fInput.`);
3824
- }
3825
- function RequiredOutput() {
3826
- return new ConflictError(`The fNode must contain at least one fOutput if there is an fOutlet`);
3827
- }
3828
-
3829
3859
  class GetFirstConnectableOutputRequest {
3830
3860
  fOutlet;
3831
3861
  constructor(fOutlet) {
@@ -3962,14 +3992,14 @@ class FCreateConnectionDragHandler {
3962
3992
  }
3963
3993
  _drawConnectionForCreate(toConnectorRect, fSide) {
3964
3994
  const line = this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this._fOutputWithRect.fRect, toConnectorRect, this._fConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, fSide));
3965
- this._fConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, fSide);
3995
+ this._fConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fSide);
3966
3996
  this._fConnection.redraw();
3967
3997
  }
3968
3998
  _drawSnapConnection(fClosestInput) {
3969
3999
  if (fClosestInput) {
3970
4000
  const line = this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this._fOutputWithRect.fRect, fClosestInput.fRect, this._fSnapConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide));
3971
4001
  this._fSnapConnection.show();
3972
- this._fSnapConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, fClosestInput.fConnector.fConnectableSide);
4002
+ this._fSnapConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide);
3973
4003
  this._fSnapConnection.redraw();
3974
4004
  }
3975
4005
  else {
@@ -4010,7 +4040,7 @@ let FCreateConnectionFinalizeExecution = class FCreateConnectionFinalizeExecutio
4010
4040
  }
4011
4041
  getTargetOutput(output) {
4012
4042
  if (!output) {
4013
- throw OutputNotFound(this._fResult.getData().fOutputId);
4043
+ throw new Error(`Output with fOutputId ${this._fResult.getData().fOutputId} not found. Make sure there is no f-connection to a non-existent fOutput.`);
4014
4044
  }
4015
4045
  return isNodeOutlet(output.hostElement) ? this._fMediator.execute(new GetFirstConnectableOutputRequest(output)) : output;
4016
4046
  }
@@ -4300,7 +4330,7 @@ class FReassignConnectionDragHandler {
4300
4330
  }
4301
4331
  _drawConnection(difference, fSide) {
4302
4332
  const line = this._getLineToPointer(difference, fSide);
4303
- this._fConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, fSide);
4333
+ this._fConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fSide);
4304
4334
  this._fConnection.redraw();
4305
4335
  }
4306
4336
  _getLineToPointer(difference, fSide) {
@@ -4310,7 +4340,7 @@ class FReassignConnectionDragHandler {
4310
4340
  if (fClosestInput) {
4311
4341
  const line = this._getLineToClosestInput(fClosestInput);
4312
4342
  this._fSnapConnection.show();
4313
- this._fSnapConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, fClosestInput.fConnector.fConnectableSide);
4343
+ this._fSnapConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide);
4314
4344
  this._fSnapConnection.redraw();
4315
4345
  }
4316
4346
  else {
@@ -4453,14 +4483,14 @@ let FReassignConnectionPreparationExecution = class FReassignConnectionPreparati
4453
4483
  }
4454
4484
  _getConnectionsFromPoint(position) {
4455
4485
  return this._fConnections.filter((x) => {
4456
- return this._isPointInsideCircle(position, x.fDragHandle.point) && !x.fDraggingDisabled;
4486
+ return x.fDragHandle?.point && this._isPointInsideCircle(position, x.fDragHandle.point) && !x.fDraggingDisabled;
4457
4487
  });
4458
4488
  }
4459
4489
  _isPointInsideCircle(point, circleCenter) {
4460
4490
  return (point.x - circleCenter.x) ** 2 + (point.y - circleCenter.y) ** 2 <= 8 ** 2;
4461
4491
  }
4462
4492
  _updateConnectionLayer() {
4463
- this._fMediator.execute(new UpdateItemAndChildrenLayersRequest(this._fConnection, this._fComponentsStore.fCanvas.fConnectionsContainer.nativeElement));
4493
+ this._fMediator.execute(new UpdateItemAndChildrenLayersRequest(this._fConnection, this._fComponentsStore.fCanvas.fConnectionsContainer().nativeElement));
4464
4494
  }
4465
4495
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FReassignConnectionPreparationExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4466
4496
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FReassignConnectionPreparationExecution });
@@ -4553,18 +4583,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
4553
4583
  class BaseConnectionDragHandler {
4554
4584
  fConnection;
4555
4585
  _fMediator = fInject(FMediator);
4556
- _fComponentStore = fInject(FComponentsStore);
4586
+ _fComponentsStore = fInject(FComponentsStore);
4557
4587
  _fOutputWithRect;
4558
4588
  _fInputWithRect;
4559
4589
  get _fOutput() {
4560
- const result = this._fComponentStore.fOutputs.find((x) => x.fId === this.fConnection.fOutputId);
4590
+ const result = this._fComponentsStore.fOutputs.find((x) => x.fId === this.fConnection.fOutputId);
4561
4591
  if (!result) {
4562
4592
  throw new Error(this._connectorNotFoundPrefix(`fOutput with id ${this.fConnection.fOutputId} not found`));
4563
4593
  }
4564
4594
  return result;
4565
4595
  }
4566
4596
  get _fInput() {
4567
- const result = this._fComponentStore.fInputs.find((x) => x.fId === this.fConnection.fInputId);
4597
+ const result = this._fComponentsStore.fInputs.find((x) => x.fId === this.fConnection.fInputId);
4568
4598
  if (!result) {
4569
4599
  throw new Error(this._connectorNotFoundPrefix(`fInput with id ${this.fConnection.fInputId} not found`));
4570
4600
  }
@@ -4593,7 +4623,7 @@ class BaseConnectionDragHandler {
4593
4623
  return this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(RoundedRect.fromRoundedRect(this._fOutputWithRect.fRect).addPoint(this._sourceDifference), RoundedRect.fromRoundedRect(this._fInputWithRect.fRect).addPoint(this._targetDifference), this.fConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, this._fInputWithRect.fConnector.fConnectableSide));
4594
4624
  }
4595
4625
  _redrawConnection(line) {
4596
- this.fConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, this._fInputWithRect.fConnector.fConnectableSide);
4626
+ this.fConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, this._fInputWithRect.fConnector.fConnectableSide);
4597
4627
  this.fConnection.redraw();
4598
4628
  }
4599
4629
  _connectorNotFoundPrefix(message) {
@@ -5143,7 +5173,7 @@ class FLineAlignmentDragHandler {
5143
5173
  }
5144
5174
  findNearestCoordinate(difference) {
5145
5175
  const rect = RectExtensions.addPoint(this._draggedNodeRect, difference);
5146
- return findClosestAlignment(this._rects, rect, this._fComponentsStore.fLineAlignment.fAlignThreshold);
5176
+ return findClosestAlignment(this._rects, rect, this._fComponentsStore.fLineAlignment.fAlignThreshold());
5147
5177
  }
5148
5178
  onPointerUp() {
5149
5179
  this._lineService.hideVerticalLine();
@@ -5226,7 +5256,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
5226
5256
  }] });
5227
5257
 
5228
5258
  class FLineAlignmentComponent extends FLineAlignmentBase {
5229
- fAlignThreshold = 10;
5259
+ fAlignThreshold = input(10, { transform: numberAttribute });
5230
5260
  _fMediator = inject(FMediator);
5231
5261
  _elementReference = inject(ElementRef);
5232
5262
  get hostElement() {
@@ -5239,7 +5269,7 @@ class FLineAlignmentComponent extends FLineAlignmentBase {
5239
5269
  this._fMediator.execute(new RemoveLineAlignmentFromStoreRequest());
5240
5270
  }
5241
5271
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FLineAlignmentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5242
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FLineAlignmentComponent, selector: "f-line-alignment", inputs: { fAlignThreshold: "fAlignThreshold" }, host: { classAttribute: "f-line-alignment f-component" }, providers: [
5272
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: FLineAlignmentComponent, selector: "f-line-alignment", inputs: { fAlignThreshold: { classPropertyName: "fAlignThreshold", publicName: "fAlignThreshold", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "f-line-alignment f-component" }, providers: [
5243
5273
  { provide: F_LINE_ALIGNMENT, useExisting: FLineAlignmentComponent }
5244
5274
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "", isInline: true, styles: [":host{display:block;position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}\n"] });
5245
5275
  }
@@ -5250,9 +5280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
5250
5280
  }, providers: [
5251
5281
  { provide: F_LINE_ALIGNMENT, useExisting: FLineAlignmentComponent }
5252
5282
  ], styles: [":host{display:block;position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}\n"] }]
5253
- }], propDecorators: { fAlignThreshold: [{
5254
- type: Input
5255
- }] } });
5283
+ }] });
5256
5284
 
5257
5285
  const F_LINE_ALIGNMENT_PROVIDERS = [
5258
5286
  FLineAlignmentComponent
@@ -5599,17 +5627,17 @@ const NODE_DROP_TO_GROUP_PROVIDERS = [
5599
5627
 
5600
5628
  class ApplyChildResizeRestrictionsRequest {
5601
5629
  rect;
5602
- restrictionsRect;
5603
- constructor(rect, restrictionsRect) {
5630
+ restrictions;
5631
+ constructor(rect, restrictions) {
5604
5632
  this.rect = rect;
5605
- this.restrictionsRect = restrictionsRect;
5633
+ this.restrictions = restrictions;
5606
5634
  }
5607
5635
  }
5608
5636
 
5609
5637
  const CHILD_RESIZE_OFFSET = 0;
5610
5638
  let ApplyChildResizeRestrictionsExecution = class ApplyChildResizeRestrictionsExecution {
5611
5639
  handle(request) {
5612
- this._apply(request.rect, request.restrictionsRect);
5640
+ this._apply(request.rect, request.restrictions.childrenBounds);
5613
5641
  }
5614
5642
  _apply(rect, restrictionsRect) {
5615
5643
  this._restrictLeft(rect, restrictionsRect);
@@ -5895,9 +5923,10 @@ class FNodeResizeDragHandler {
5895
5923
  this._applyResizeChanges(this._calculateChangedRect(difference));
5896
5924
  }
5897
5925
  _calculateChangedRect(difference) {
5898
- return this._calculatePosition(difference, this._calculateSize(difference, this._resizeRestrictions.minimumSize));
5926
+ const changedSize = this._calculateSize(difference);
5927
+ return this._calculatePosition(difference, changedSize);
5899
5928
  }
5900
- _calculateSize(difference, minimumSize) {
5929
+ _calculateSize(difference) {
5901
5930
  return this._fMediator.execute(new CalculateChangedSizeRequest(this._originalRect, difference, this._fResizeHandleType));
5902
5931
  }
5903
5932
  _calculatePosition(difference, changedSize) {
@@ -5905,7 +5934,7 @@ class FNodeResizeDragHandler {
5905
5934
  }
5906
5935
  _applyResizeChanges(changedRect) {
5907
5936
  if (this._resizeRestrictions.childrenBounds) {
5908
- this._applyChildRestrictions(changedRect, this._resizeRestrictions.childrenBounds);
5937
+ this._applyChildRestrictions(changedRect);
5909
5938
  }
5910
5939
  this._applyParentRestrictions(changedRect, this._resizeRestrictions.parentBounds);
5911
5940
  this._updateNodeRendering(changedRect);
@@ -5915,8 +5944,8 @@ class FNodeResizeDragHandler {
5915
5944
  this._fNode.updateSize(changedRect);
5916
5945
  this._fNode.redraw();
5917
5946
  }
5918
- _applyChildRestrictions(changedRect, restrictions) {
5919
- this._fMediator.execute(new ApplyChildResizeRestrictionsRequest(changedRect, restrictions));
5947
+ _applyChildRestrictions(changedRect) {
5948
+ this._fMediator.execute(new ApplyChildResizeRestrictionsRequest(changedRect, this._resizeRestrictions));
5920
5949
  }
5921
5950
  _applyParentRestrictions(changedRect, restrictions) {
5922
5951
  this._fMediator.execute(new ApplyParentResizeRestrictionsRequest(changedRect, restrictions));
@@ -6031,6 +6060,204 @@ const NODE_RESIZE_PROVIDERS = [
6031
6060
  FNodeResizePreparationExecution,
6032
6061
  ];
6033
6062
 
6063
+ class FNodeRotateFinalizeRequest {
6064
+ event;
6065
+ constructor(event) {
6066
+ this.event = event;
6067
+ }
6068
+ }
6069
+
6070
+ function calculateDifferenceAfterRotation(position, rotation, pivot) {
6071
+ const { x: newX, y: newY } = calculatePositionAfterRotation(position, rotation, pivot);
6072
+ const dx = newX - position.x;
6073
+ const dy = newY - position.y;
6074
+ return { x: dx, y: dy };
6075
+ }
6076
+ function calculatePositionAfterRotation(position, rotation, pivot) {
6077
+ const translatedX = position.x - pivot.x;
6078
+ const translatedY = position.y - pivot.y;
6079
+ const theta = rotation * Math.PI / 180;
6080
+ const cosTheta = Math.cos(theta);
6081
+ const sinTheta = Math.sin(theta);
6082
+ const rotatedX = translatedX * cosTheta - translatedY * sinTheta;
6083
+ const rotatedY = translatedX * sinTheta + translatedY * cosTheta;
6084
+ const newX = rotatedX + pivot.x;
6085
+ const newY = rotatedY + pivot.y;
6086
+ return { x: newX, y: newY };
6087
+ }
6088
+
6089
+ class FNodeRotateDragHandler {
6090
+ _fNode;
6091
+ _fSourceHandlers;
6092
+ _fTargetHandlers;
6093
+ _fComponentsStore = fInject(FComponentsStore);
6094
+ _fMediator = fInject(FMediator);
6095
+ _fDraggableDataContext = fInject(FDraggableDataContext);
6096
+ fEventType = 'node-rotate';
6097
+ fData;
6098
+ _initialRotationToX = 0;
6099
+ _startRotation = 0;
6100
+ _onDownPoint;
6101
+ _fNodeRect;
6102
+ get _transform() {
6103
+ return this._fComponentsStore.fCanvas.transform;
6104
+ }
6105
+ constructor(_fNode, _fSourceHandlers, _fTargetHandlers) {
6106
+ this._fNode = _fNode;
6107
+ this._fSourceHandlers = _fSourceHandlers;
6108
+ this._fTargetHandlers = _fTargetHandlers;
6109
+ this._startRotation = this._fNode.rotate;
6110
+ this.fData = {
6111
+ fNodeId: _fNode.fId,
6112
+ };
6113
+ }
6114
+ prepareDragSequence() {
6115
+ this._fNodeRect = this._getOriginalNodeRect();
6116
+ this._onDownPoint = this._calculateDownPoint();
6117
+ this._initialRotationToX = this._calculateAngleBetweenVectors(this._onDownPoint) - this._startRotation;
6118
+ }
6119
+ _getOriginalNodeRect() {
6120
+ return this._fMediator.execute(new GetNormalizedElementRectRequest(this._fNode.hostElement, false));
6121
+ }
6122
+ _calculateDownPoint() {
6123
+ return PointExtensions.sub(this._fDraggableDataContext.onPointerDownPosition, PointExtensions.sum(this._transform.position, this._transform.scaledPosition));
6124
+ }
6125
+ _calculateAngleBetweenVectors(position) {
6126
+ return Math.atan2(position.y - this._fNodeRect.gravityCenter.y, position.x - this._fNodeRect.gravityCenter.x) * (180 / Math.PI);
6127
+ }
6128
+ onPointerMove(difference) {
6129
+ const position = PointExtensions.sum(this._onDownPoint, difference);
6130
+ const rotation = this._calculateAngleBetweenVectors(position) - this._initialRotationToX;
6131
+ this._updateNodeRendering(rotation);
6132
+ this._fSourceHandlers.forEach((x) => {
6133
+ x.connection.setSourceDifference(this._calculateDifferenceAfterRotation(x.connector, rotation));
6134
+ });
6135
+ this._fTargetHandlers.forEach((x) => {
6136
+ x.connection.setTargetDifference(this._calculateDifferenceAfterRotation(x.connector, rotation));
6137
+ });
6138
+ }
6139
+ _updateNodeRendering(rotation) {
6140
+ this._fNode.updateRotate(rotation);
6141
+ this._fNode.redraw();
6142
+ }
6143
+ _calculateDifferenceAfterRotation(position, rotation) {
6144
+ return calculateDifferenceAfterRotation(position, rotation - this._startRotation, this._fNodeRect.gravityCenter);
6145
+ }
6146
+ onPointerUp() {
6147
+ this._fNode.rotateChange.emit(this._fNode.rotate);
6148
+ }
6149
+ }
6150
+
6151
+ let FNodeRotateFinalizeExecution = class FNodeRotateFinalizeExecution {
6152
+ _fDraggableDataContext = inject(FDraggableDataContext);
6153
+ handle(request) {
6154
+ if (!this._isValid()) {
6155
+ return;
6156
+ }
6157
+ this._fDraggableDataContext.draggableItems.forEach((x) => {
6158
+ x.onPointerUp?.();
6159
+ });
6160
+ }
6161
+ _isValid() {
6162
+ return this._fDraggableDataContext.draggableItems.some((x) => x instanceof FNodeRotateDragHandler);
6163
+ }
6164
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotateFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6165
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotateFinalizeExecution });
6166
+ };
6167
+ FNodeRotateFinalizeExecution = __decorate([
6168
+ FExecutionRegister(FNodeRotateFinalizeRequest)
6169
+ ], FNodeRotateFinalizeExecution);
6170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotateFinalizeExecution, decorators: [{
6171
+ type: Injectable
6172
+ }] });
6173
+
6174
+ class FNodeRotatePreparationRequest {
6175
+ event;
6176
+ fTrigger;
6177
+ constructor(event, fTrigger) {
6178
+ this.event = event;
6179
+ this.fTrigger = fTrigger;
6180
+ }
6181
+ }
6182
+
6183
+ let FNodeRotatePreparationExecution = class FNodeRotatePreparationExecution {
6184
+ _fMediator = inject(FMediator);
6185
+ _fComponentsStore = inject(FComponentsStore);
6186
+ _fDraggableDataContext = inject(FDraggableDataContext);
6187
+ get _transform() {
6188
+ return this._fComponentsStore.fCanvas.transform;
6189
+ }
6190
+ get _fHost() {
6191
+ return this._fComponentsStore.fFlow.hostElement;
6192
+ }
6193
+ _fNode;
6194
+ handle(request) {
6195
+ if (!this._isValid(request) || !this._isValidTrigger(request)) {
6196
+ return;
6197
+ }
6198
+ this._selectAndUpdateNodeLayer();
6199
+ this._fDraggableDataContext.onPointerDownScale = this._transform.scale;
6200
+ this._fDraggableDataContext.onPointerDownPosition = Point.fromPoint(request.event.getPosition())
6201
+ .elementTransform(this._fHost).div(this._transform.scale);
6202
+ this._fDraggableDataContext.draggableItems = [
6203
+ new FNodeRotateDragHandler(this._fNode, this._calculateOutputConnectionsDragHandlers(), this._calculateInputConnectionsDragHandlers())
6204
+ ];
6205
+ }
6206
+ _isValid(request) {
6207
+ return this._fDraggableDataContext.isEmpty()
6208
+ && isRotateHandle(request.event.targetElement)
6209
+ && this._isNodeCanBeDragged(this._getNode(request.event.targetElement));
6210
+ }
6211
+ _isNodeCanBeDragged(fNode) {
6212
+ return !!fNode && !fNode.fDraggingDisabled;
6213
+ }
6214
+ _getNode(element) {
6215
+ this._fNode = this._fComponentsStore
6216
+ .fNodes.find(x => x.isContains(element));
6217
+ return this._fNode;
6218
+ }
6219
+ _isValidTrigger(request) {
6220
+ return isValidEventTrigger(request.event.originalEvent, request.fTrigger);
6221
+ }
6222
+ _selectAndUpdateNodeLayer() {
6223
+ this._fMediator.execute(new SelectAndUpdateNodeLayerRequest(this._fNode));
6224
+ }
6225
+ _calculateInputConnectionsDragHandlers() {
6226
+ return this._fMediator.execute(new CalculateInputConnectionsRequest(this._fNode)).map((x) => {
6227
+ const connector = this._fComponentsStore.fInputs.find((y) => y.fId === x.fInputId).hostElement;
6228
+ return {
6229
+ connection: new TargetConnectionDragHandler(x),
6230
+ connector: this._fMediator.execute(new GetNormalizedElementRectRequest(connector, false)).gravityCenter
6231
+ };
6232
+ });
6233
+ }
6234
+ _calculateOutputConnectionsDragHandlers() {
6235
+ return this._fMediator.execute(new CalculateOutputConnectionsRequest(this._fNode)).map((x) => {
6236
+ const connector = this._fComponentsStore.fOutputs.find((y) => y.fId === x.fOutputId).hostElement;
6237
+ return {
6238
+ connection: new SourceConnectionDragHandler(x),
6239
+ connector: this._fMediator.execute(new GetNormalizedElementRectRequest(connector, false)).gravityCenter
6240
+ };
6241
+ });
6242
+ }
6243
+ _getOriginalNodeRect() {
6244
+ return this._fMediator.execute(new GetNormalizedElementRectRequest(this._fNode.hostElement, false));
6245
+ }
6246
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotatePreparationExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6247
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotatePreparationExecution });
6248
+ };
6249
+ FNodeRotatePreparationExecution = __decorate([
6250
+ FExecutionRegister(FNodeRotatePreparationRequest)
6251
+ ], FNodeRotatePreparationExecution);
6252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotatePreparationExecution, decorators: [{
6253
+ type: Injectable
6254
+ }] });
6255
+
6256
+ const NODE_ROTATE_PROVIDERS = [
6257
+ FNodeRotateFinalizeExecution,
6258
+ FNodeRotatePreparationExecution,
6259
+ ];
6260
+
6034
6261
  class FSingleSelectRequest {
6035
6262
  event;
6036
6263
  fMultiSelectTrigger;
@@ -6314,7 +6541,7 @@ class FExternalItemDragHandler {
6314
6541
  }
6315
6542
  _createAndAppendPlaceholder() {
6316
6543
  this._placeholder = this._fMediator.execute(new FExternalItemCreatePlaceholderRequest(this._fExternalItem));
6317
- this._fItemHost.parentElement.replaceChild(this._placeholder, this._fItemHost);
6544
+ this._fBrowser.document.body.appendChild(this._fItemHost.parentElement.replaceChild(this._placeholder, this._fItemHost));
6318
6545
  }
6319
6546
  _matchElementSize(target, sourceRect) {
6320
6547
  target.style.width = `${sourceRect.width}px`;
@@ -6647,6 +6874,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
6647
6874
  }]
6648
6875
  }] });
6649
6876
 
6877
+ const F_EXTERNAL_ITEM_PROVIDERS = [
6878
+ FExternalItemDirective
6879
+ ];
6880
+
6650
6881
  const F_BEFORE_MAIN_PLUGIN = new InjectionToken('F_BEFORE_MAIN_PLUGIN');
6651
6882
  const F_AFTER_MAIN_PLUGIN = new InjectionToken('F_AFTER_MAIN_PLUGIN');
6652
6883
 
@@ -6667,6 +6898,7 @@ class FDraggableDirective extends FDraggableBase {
6667
6898
  fReassignConnectionTrigger = defaultEventTrigger;
6668
6899
  fCreateConnectionTrigger = defaultEventTrigger;
6669
6900
  fNodeResizeTrigger = defaultEventTrigger;
6901
+ fNodeRotateTrigger = defaultEventTrigger;
6670
6902
  fNodeMoveTrigger = defaultEventTrigger;
6671
6903
  fCanvasMoveTrigger = defaultEventTrigger;
6672
6904
  fExternalItemTrigger = defaultEventTrigger;
@@ -6712,6 +6944,7 @@ class FDraggableDirective extends FDraggableBase {
6712
6944
  prepareDragSequence(event) {
6713
6945
  this._beforePlugins.forEach((p) => p.prepareDragSequence?.(event));
6714
6946
  this._fMediator.execute(new FNodeResizePreparationRequest(event, this.fNodeResizeTrigger));
6947
+ this._fMediator.execute(new FNodeRotatePreparationRequest(event, this.fNodeRotateTrigger));
6715
6948
  this._fMediator.execute(new FNodeMovePreparationRequest(event, this.fNodeMoveTrigger));
6716
6949
  this._fMediator.execute(new FNodeDropToGroupPreparationRequest(event));
6717
6950
  this._fMediator.execute(new FCanvasMovePreparationRequest(event, this.fCanvasMoveTrigger));
@@ -6730,6 +6963,7 @@ class FDraggableDirective extends FDraggableBase {
6730
6963
  this._fMediator.execute(new FReassignConnectionFinalizeRequest(event));
6731
6964
  this._fMediator.execute(new FCreateConnectionFinalizeRequest(event));
6732
6965
  this._fMediator.execute(new FNodeResizeFinalizeRequest(event));
6966
+ this._fMediator.execute(new FNodeRotateFinalizeRequest(event));
6733
6967
  this._fMediator.execute(new FNodeMoveFinalizeRequest(event));
6734
6968
  this._fMediator.execute(new FNodeDropToGroupFinalizeRequest(event));
6735
6969
  this._fMediator.execute(new FCanvasMoveFinalizeRequest(event));
@@ -6749,7 +6983,7 @@ class FDraggableDirective extends FDraggableBase {
6749
6983
  FInjector.clear();
6750
6984
  }
6751
6985
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDraggableDirective, deps: [{ token: NgZone, optional: true }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Directive });
6752
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.4", type: FDraggableDirective, selector: "f-flow[fDraggable]", inputs: { disabled: ["fDraggableDisabled", "disabled", booleanAttribute], fMultiSelectTrigger: "fMultiSelectTrigger", fReassignConnectionTrigger: "fReassignConnectionTrigger", fCreateConnectionTrigger: "fCreateConnectionTrigger", fNodeResizeTrigger: "fNodeResizeTrigger", fNodeMoveTrigger: "fNodeMoveTrigger", fCanvasMoveTrigger: "fCanvasMoveTrigger", fExternalItemTrigger: "fExternalItemTrigger", fEmitOnNodeIntersect: ["fEmitOnNodeIntersect", "fEmitOnNodeIntersect", booleanAttribute], vCellSize: ["vCellSize", "vCellSize", numberAttribute], hCellSize: ["hCellSize", "hCellSize", numberAttribute], fCellSizeWhileDragging: ["fCellSizeWhileDragging", "fCellSizeWhileDragging", booleanAttribute] }, outputs: { fSelectionChange: "fSelectionChange", fNodeIntersectedWithConnections: "fNodeIntersectedWithConnections", fCreateNode: "fCreateNode", fReassignConnection: "fReassignConnection", fCreateConnection: "fCreateConnection", fDropToGroup: "fDropToGroup", fDragStarted: "fDragStarted", fDragEnded: "fDragEnded" }, providers: [FDragHandlerResult], queries: [{ propertyName: "_beforePlugins", predicate: F_BEFORE_MAIN_PLUGIN, descendants: true }, { propertyName: "_afterPlugins", predicate: F_AFTER_MAIN_PLUGIN, descendants: true }], exportAs: ["fDraggable"], usesInheritance: true, ngImport: i0 });
6986
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.4", type: FDraggableDirective, selector: "f-flow[fDraggable]", inputs: { disabled: ["fDraggableDisabled", "disabled", booleanAttribute], fMultiSelectTrigger: "fMultiSelectTrigger", fReassignConnectionTrigger: "fReassignConnectionTrigger", fCreateConnectionTrigger: "fCreateConnectionTrigger", fNodeResizeTrigger: "fNodeResizeTrigger", fNodeRotateTrigger: "fNodeRotateTrigger", fNodeMoveTrigger: "fNodeMoveTrigger", fCanvasMoveTrigger: "fCanvasMoveTrigger", fExternalItemTrigger: "fExternalItemTrigger", fEmitOnNodeIntersect: ["fEmitOnNodeIntersect", "fEmitOnNodeIntersect", booleanAttribute], vCellSize: ["vCellSize", "vCellSize", numberAttribute], hCellSize: ["hCellSize", "hCellSize", numberAttribute], fCellSizeWhileDragging: ["fCellSizeWhileDragging", "fCellSizeWhileDragging", booleanAttribute] }, outputs: { fSelectionChange: "fSelectionChange", fNodeIntersectedWithConnections: "fNodeIntersectedWithConnections", fCreateNode: "fCreateNode", fReassignConnection: "fReassignConnection", fCreateConnection: "fCreateConnection", fDropToGroup: "fDropToGroup", fDragStarted: "fDragStarted", fDragEnded: "fDragEnded" }, providers: [FDragHandlerResult], queries: [{ propertyName: "_beforePlugins", predicate: F_BEFORE_MAIN_PLUGIN, descendants: true }, { propertyName: "_afterPlugins", predicate: F_AFTER_MAIN_PLUGIN, descendants: true }], exportAs: ["fDraggable"], usesInheritance: true, ngImport: i0 });
6753
6987
  }
6754
6988
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDraggableDirective, decorators: [{
6755
6989
  type: Directive,
@@ -6774,6 +7008,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
6774
7008
  type: Input
6775
7009
  }], fNodeResizeTrigger: [{
6776
7010
  type: Input
7011
+ }], fNodeRotateTrigger: [{
7012
+ type: Input
6777
7013
  }], fNodeMoveTrigger: [{
6778
7014
  type: Input
6779
7015
  }], fCanvasMoveTrigger: [{
@@ -7382,6 +7618,7 @@ const F_DRAGGABLE_PROVIDERS = [
7382
7618
  ...NODE_PROVIDERS,
7383
7619
  ...NODE_DROP_TO_GROUP_PROVIDERS,
7384
7620
  ...NODE_RESIZE_PROVIDERS,
7621
+ ...NODE_ROTATE_PROVIDERS,
7385
7622
  ...F_SELECTION_AREA_DRAG_AND_DROP_PROVIDERS,
7386
7623
  ...F_MINIMAP_DRAG_AND_DROP_PROVIDERS
7387
7624
  ];
@@ -7655,61 +7892,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
7655
7892
  }], ctorParameters: () => [{ type: FComponentsStore }] });
7656
7893
 
7657
7894
  let UpdateItemAndChildrenLayersExecution = class UpdateItemAndChildrenLayersExecution {
7658
- fComponentsStore;
7659
- fMediator;
7660
- get fGroupsContainer() {
7661
- return this.fComponentsStore.fCanvas.fGroupsContainer.nativeElement;
7895
+ _fMediator = inject(FMediator);
7896
+ _fComponentsStore = inject(FComponentsStore);
7897
+ get _fCanvas() {
7898
+ return this._fComponentsStore.fCanvas;
7662
7899
  }
7663
- get fNodesContainer() {
7664
- return this.fComponentsStore.fCanvas.fNodesContainer.nativeElement;
7900
+ get _fGroupsContainer() {
7901
+ return this._fCanvas.fGroupsContainer().nativeElement;
7665
7902
  }
7666
- get fConnectionsContainer() {
7667
- return this.fComponentsStore.fCanvas.fConnectionsContainer.nativeElement;
7903
+ get _fNodesContainer() {
7904
+ return this._fCanvas.fNodesContainer().nativeElement;
7668
7905
  }
7669
- constructor(fComponentsStore, fMediator) {
7670
- this.fComponentsStore = fComponentsStore;
7671
- this.fMediator = fMediator;
7906
+ get _fConnectionsContainer() {
7907
+ return this._fCanvas.fConnectionsContainer().nativeElement;
7672
7908
  }
7673
7909
  handle(request) {
7674
7910
  switch (request.itemContainer) {
7675
- case this.fGroupsContainer:
7676
- this.handleGroup(request);
7911
+ case this._fGroupsContainer:
7912
+ this._handleGroup(request);
7677
7913
  break;
7678
- case this.fNodesContainer:
7679
- this.handleNode(request);
7914
+ case this._fNodesContainer:
7915
+ this._handleNode(request);
7680
7916
  break;
7681
- case this.fConnectionsContainer:
7682
- this.handleConnection(request);
7917
+ case this._fConnectionsContainer:
7918
+ this._handleConnection(request);
7683
7919
  break;
7684
7920
  default:
7685
7921
  throw new Error('Unknown container');
7686
7922
  }
7687
7923
  }
7688
- handleGroup(request) {
7689
- const childrenNodesAndGroups = this.getChildrenNodesAndGroups(request.item.fId);
7690
- const childrenGroups = this.getChildrenGroups(childrenNodesAndGroups);
7691
- this.updateLayers(this.fGroupsContainer, request.item.hostElement, childrenGroups);
7692
- const childrenNodes = this.getChildrenNodes(childrenNodesAndGroups);
7924
+ _handleGroup(request) {
7925
+ const childrenNodesAndGroups = this._getChildrenNodesAndGroups(request.item.fId);
7926
+ const childrenGroups = this._getChildrenGroups(childrenNodesAndGroups);
7927
+ this._updateLayers(this._fGroupsContainer, request.item.hostElement, childrenGroups);
7928
+ const childrenNodes = this._getChildrenNodes(childrenNodesAndGroups);
7693
7929
  if (childrenNodes.length) {
7694
- this.updateLayers(this.fNodesContainer, childrenNodes[0], childrenNodes);
7930
+ this._updateLayers(this._fNodesContainer, childrenNodes[0], childrenNodes);
7695
7931
  }
7696
7932
  }
7697
- handleNode(request) {
7698
- const childrenNodesAndGroups = this.getChildrenNodesAndGroups(request.item.fId);
7699
- const childrenNodes = this.getChildrenNodes(childrenNodesAndGroups);
7700
- this.updateLayers(request.itemContainer, request.item.hostElement, childrenNodes);
7933
+ _handleNode(request) {
7934
+ const childrenNodesAndGroups = this._getChildrenNodesAndGroups(request.item.fId);
7935
+ const childrenNodes = this._getChildrenNodes(childrenNodesAndGroups);
7936
+ this._updateLayers(request.itemContainer, request.item.hostElement, childrenNodes);
7701
7937
  }
7702
- handleConnection(request) {
7703
- this.updateLayers(request.itemContainer, request.item.hostElement, []);
7938
+ _handleConnection(request) {
7939
+ this._updateLayers(request.itemContainer, request.item.hostElement, []);
7704
7940
  }
7705
- updateLayers(itemContainer, item, elementsThatShouldBeInFront) {
7941
+ _updateLayers(itemContainer, item, elementsThatShouldBeInFront) {
7706
7942
  const allElements = Array.from(itemContainer.children);
7707
7943
  const targetIndex = allElements.findIndex((x) => x === item);
7708
- if (this.isAnythingNeedToBeMoved(allElements, targetIndex, elementsThatShouldBeInFront)) {
7709
- this.fMediator.execute(new MoveFrontElementsBeforeTargetElementRequest(itemContainer, allElements, elementsThatShouldBeInFront, targetIndex));
7944
+ if (this._isAnythingNeedToBeMoved(allElements, targetIndex, elementsThatShouldBeInFront)) {
7945
+ this._fMediator.execute(new MoveFrontElementsBeforeTargetElementRequest(itemContainer, allElements, elementsThatShouldBeInFront, targetIndex));
7710
7946
  }
7711
7947
  }
7712
- isAnythingNeedToBeMoved(allElements, targetIndex, elementsThatShouldBeInFront) {
7948
+ _isAnythingNeedToBeMoved(allElements, targetIndex, elementsThatShouldBeInFront) {
7713
7949
  for (let i = targetIndex + 1; i < allElements.length; i++) {
7714
7950
  if (!elementsThatShouldBeInFront.includes(allElements[i])) {
7715
7951
  return true;
@@ -7717,20 +7953,20 @@ let UpdateItemAndChildrenLayersExecution = class UpdateItemAndChildrenLayersExec
7717
7953
  }
7718
7954
  return false;
7719
7955
  }
7720
- getChildrenGroups(elements) {
7721
- const allElements = Array.from(this.fGroupsContainer.children);
7722
- return elements.filter((x) => this.fGroupsContainer.contains(x))
7956
+ _getChildrenGroups(elements) {
7957
+ const allElements = Array.from(this._fGroupsContainer.children);
7958
+ return elements.filter((x) => this._fGroupsContainer.contains(x))
7723
7959
  .sort((a, b) => allElements.indexOf(a) - allElements.indexOf(b));
7724
7960
  }
7725
- getChildrenNodes(elements) {
7726
- const allElements = Array.from(this.fNodesContainer.children);
7727
- return elements.filter((x) => this.fNodesContainer.contains(x))
7961
+ _getChildrenNodes(elements) {
7962
+ const allElements = Array.from(this._fNodesContainer.children);
7963
+ return elements.filter((x) => this._fNodesContainer.contains(x))
7728
7964
  .sort((a, b) => allElements.indexOf(a) - allElements.indexOf(b));
7729
7965
  }
7730
- getChildrenNodesAndGroups(fId) {
7731
- return this.fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId)).map((x) => x.hostElement);
7966
+ _getChildrenNodesAndGroups(fId) {
7967
+ return this._fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId)).map((x) => x.hostElement);
7732
7968
  }
7733
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: UpdateItemAndChildrenLayersExecution, deps: [{ token: FComponentsStore }, { token: i2$1.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
7969
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: UpdateItemAndChildrenLayersExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7734
7970
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: UpdateItemAndChildrenLayersExecution });
7735
7971
  };
7736
7972
  UpdateItemAndChildrenLayersExecution = __decorate([
@@ -7738,7 +7974,7 @@ UpdateItemAndChildrenLayersExecution = __decorate([
7738
7974
  ], UpdateItemAndChildrenLayersExecution);
7739
7975
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: UpdateItemAndChildrenLayersExecution, decorators: [{
7740
7976
  type: Injectable
7741
- }], ctorParameters: () => [{ type: FComponentsStore }, { type: i2$1.FMediator }] });
7977
+ }] });
7742
7978
 
7743
7979
  let SelectAndUpdateNodeLayerExecution = class SelectAndUpdateNodeLayerExecution {
7744
7980
  fDraggableDataContext;
@@ -8266,6 +8502,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
8266
8502
  type: Injectable
8267
8503
  }] });
8268
8504
 
8505
+ class CalculateInputConnectionsRequest {
8506
+ fNode;
8507
+ constructor(fNode) {
8508
+ this.fNode = fNode;
8509
+ }
8510
+ }
8511
+
8512
+ let CalculateInputConnectionsExecution = class CalculateInputConnectionsExecution {
8513
+ _fComponentsStore = inject(FComponentsStore);
8514
+ handle(request) {
8515
+ return this._calculateConnections(new Set(this._calculateConnectors(request.fNode)));
8516
+ }
8517
+ _calculateConnectors(fNode) {
8518
+ return this._fComponentsStore.fInputs
8519
+ .filter((x) => fNode.isContains(x.hostElement))
8520
+ .map((x) => x.fId);
8521
+ }
8522
+ _calculateConnections(ids) {
8523
+ return this._fComponentsStore.fConnections
8524
+ .filter((x) => ids.has(x.fInputId));
8525
+ }
8526
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateInputConnectionsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8527
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateInputConnectionsExecution });
8528
+ };
8529
+ CalculateInputConnectionsExecution = __decorate([
8530
+ FExecutionRegister(CalculateInputConnectionsRequest)
8531
+ ], CalculateInputConnectionsExecution);
8532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateInputConnectionsExecution, decorators: [{
8533
+ type: Injectable
8534
+ }] });
8535
+
8269
8536
  class CalculateNodesBoundingBoxRequest {
8270
8537
  }
8271
8538
 
@@ -8322,6 +8589,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
8322
8589
  type: Injectable
8323
8590
  }] });
8324
8591
 
8592
+ class CalculateOutputConnectionsRequest {
8593
+ fNode;
8594
+ constructor(fNode) {
8595
+ this.fNode = fNode;
8596
+ }
8597
+ }
8598
+
8599
+ let CalculateOutputConnectionsExecution = class CalculateOutputConnectionsExecution {
8600
+ _fComponentsStore = inject(FComponentsStore);
8601
+ handle(request) {
8602
+ return this._calculateConnections(new Set(this._calculateConnectors(request.fNode)));
8603
+ }
8604
+ _calculateConnectors(fNode) {
8605
+ return this._fComponentsStore.fOutputs
8606
+ .filter((x) => fNode.isContains(x.hostElement))
8607
+ .map((x) => x.fId);
8608
+ }
8609
+ _calculateConnections(ids) {
8610
+ return this._fComponentsStore.fConnections
8611
+ .filter((x) => ids.has(x.fOutputId));
8612
+ }
8613
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateOutputConnectionsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8614
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateOutputConnectionsExecution });
8615
+ };
8616
+ CalculateOutputConnectionsExecution = __decorate([
8617
+ FExecutionRegister(CalculateOutputConnectionsRequest)
8618
+ ], CalculateOutputConnectionsExecution);
8619
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateOutputConnectionsExecution, decorators: [{
8620
+ type: Injectable
8621
+ }] });
8622
+
8325
8623
  class GetNodePaddingRequest {
8326
8624
  fNode;
8327
8625
  rect;
@@ -8500,8 +8798,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
8500
8798
 
8501
8799
  const F_NODE_FEATURES = [
8502
8800
  AddNodeToStoreExecution,
8801
+ CalculateInputConnectionsExecution,
8503
8802
  CalculateNodesBoundingBoxExecution,
8504
8803
  CalculateNodesBoundingBoxNormalizedPositionExecution,
8804
+ CalculateOutputConnectionsExecution,
8505
8805
  GetNodePaddingExecution,
8506
8806
  GetNodesExecution,
8507
8807
  GetParentNodesExecution,
@@ -8668,48 +8968,47 @@ class SortNodeLayersRequest {
8668
8968
  }
8669
8969
 
8670
8970
  let SortNodeLayersExecution = class SortNodeLayersExecution {
8671
- fComponentsStore;
8672
- fMediator;
8673
- fBrowser;
8674
- get fGroupsContainer() {
8675
- return this.fComponentsStore.fCanvas.fGroupsContainer.nativeElement;
8971
+ _fMediator = inject(FMediator);
8972
+ _fComponentsStore = inject(FComponentsStore);
8973
+ _fBrowser = inject(BrowserService);
8974
+ get _fCanvas() {
8975
+ return this._fComponentsStore.fCanvas;
8676
8976
  }
8677
- get fNodesContainer() {
8678
- return this.fComponentsStore.fCanvas.fNodesContainer.nativeElement;
8977
+ get _fGroupsContainer() {
8978
+ return this._fCanvas.fGroupsContainer().nativeElement;
8679
8979
  }
8680
- get fNodesContainerElements() {
8681
- return Array.from(this.fNodesContainer.children);
8980
+ get _fNodesContainer() {
8981
+ return this._fCanvas.fNodesContainer().nativeElement;
8682
8982
  }
8683
- constructor(fComponentsStore, fMediator, fBrowser) {
8684
- this.fComponentsStore = fComponentsStore;
8685
- this.fMediator = fMediator;
8686
- this.fBrowser = fBrowser;
8983
+ get _fNodeElements() {
8984
+ return Array.from(this._fNodesContainer.children);
8687
8985
  }
8688
8986
  handle(request) {
8689
- this.getGroups().forEach((parent) => {
8690
- this.moveChildrenNodes(this.getSortedChildrenNodes(parent));
8987
+ this._getGroups().forEach((parent) => {
8988
+ this._moveChildrenNodes(this._getSortedChildrenNodes(parent));
8691
8989
  });
8692
8990
  }
8693
- getGroups() {
8694
- return this.fComponentsStore.fNodes.filter((x) => this.fGroupsContainer.contains(x.hostElement));
8991
+ _getGroups() {
8992
+ return this._fComponentsStore.fNodes
8993
+ .filter((x) => this._fGroupsContainer.contains(x.hostElement));
8695
8994
  }
8696
- getSortedChildrenNodes(parent) {
8697
- const allElements = this.fNodesContainerElements;
8698
- return this.getChildrenNodes(parent.fId)
8995
+ _getSortedChildrenNodes(parent) {
8996
+ const allElements = this._fNodeElements;
8997
+ return this._getChildrenNodes(parent.fId)
8699
8998
  .sort((a, b) => allElements.indexOf(a) - allElements.indexOf(b));
8700
8999
  }
8701
- getChildrenNodes(fId) {
8702
- return this.fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId))
8703
- .filter((x) => this.fNodesContainer.contains(x.hostElement)).map((x) => x.hostElement);
9000
+ _getChildrenNodes(fId) {
9001
+ return this._fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId))
9002
+ .filter((x) => this._fNodesContainer.contains(x.hostElement)).map((x) => x.hostElement);
8704
9003
  }
8705
- moveChildrenNodes(sortedChildrenGroups) {
8706
- const fragment = this.fBrowser.document.createDocumentFragment();
9004
+ _moveChildrenNodes(sortedChildrenGroups) {
9005
+ const fragment = this._fBrowser.document.createDocumentFragment();
8707
9006
  sortedChildrenGroups.forEach((childGroup) => {
8708
9007
  fragment.appendChild(childGroup); // Append automatically removes the element from its current position
8709
9008
  });
8710
- this.fNodesContainer.appendChild(fragment);
9009
+ this._fNodesContainer.appendChild(fragment);
8711
9010
  }
8712
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortNodeLayersExecution, deps: [{ token: FComponentsStore }, { token: i2$1.FMediator }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Injectable });
9011
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortNodeLayersExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8713
9012
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortNodeLayersExecution });
8714
9013
  };
8715
9014
  SortNodeLayersExecution = __decorate([
@@ -8717,7 +9016,7 @@ SortNodeLayersExecution = __decorate([
8717
9016
  ], SortNodeLayersExecution);
8718
9017
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortNodeLayersExecution, decorators: [{
8719
9018
  type: Injectable
8720
- }], ctorParameters: () => [{ type: FComponentsStore }, { type: i2$1.FMediator }, { type: i1.BrowserService }] });
9019
+ }] });
8721
9020
 
8722
9021
  class SortItemsByParentRequest {
8723
9022
  fItemsContainer;
@@ -8728,27 +9027,22 @@ class SortItemsByParentRequest {
8728
9027
  }
8729
9028
 
8730
9029
  let SortItemsByParentExecution = class SortItemsByParentExecution {
8731
- fComponentsStore;
8732
- fMediator;
8733
- fBrowser;
8734
- fItemsContainer;
9030
+ _fMediator = inject(FMediator);
9031
+ _fComponentsStore = inject(FComponentsStore);
9032
+ _fBrowser = inject(BrowserService);
9033
+ _fItemsContainer;
8735
9034
  get _fItemElements() {
8736
- return Array.from(this.fItemsContainer.children);
8737
- }
8738
- constructor(fComponentsStore, fMediator, fBrowser) {
8739
- this.fComponentsStore = fComponentsStore;
8740
- this.fMediator = fMediator;
8741
- this.fBrowser = fBrowser;
9035
+ return Array.from(this._fItemsContainer.children);
8742
9036
  }
8743
9037
  handle(request) {
8744
- this.fItemsContainer = request.fItemsContainer;
9038
+ this._fItemsContainer = request.fItemsContainer;
8745
9039
  this._getItemsOfContainer().forEach((fItem) => {
8746
- this.moveChildrenItems(this._getSortedChildrenItems(fItem), fItem);
9040
+ this._moveChildrenItems(this._getSortedChildrenItems(fItem), fItem);
8747
9041
  });
8748
9042
  }
8749
9043
  _getItemsOfContainer() {
8750
- return this.fComponentsStore.fNodes
8751
- .filter((x) => this.fItemsContainer.contains(x.hostElement));
9044
+ return this._fComponentsStore.fNodes
9045
+ .filter((x) => this._fItemsContainer.contains(x.hostElement));
8752
9046
  }
8753
9047
  _getSortedChildrenItems(fItem) {
8754
9048
  const indexInContainer = this._fItemElements.indexOf(fItem.hostElement);
@@ -8757,18 +9051,18 @@ let SortItemsByParentExecution = class SortItemsByParentExecution {
8757
9051
  .sort((a, b) => this._fItemElements.indexOf(a) - this._fItemElements.indexOf(b));
8758
9052
  }
8759
9053
  _getChildrenItems(fId) {
8760
- return this.fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId))
8761
- .filter((x) => this.fItemsContainer.contains(x.hostElement)).map((x) => x.hostElement);
9054
+ return this._fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId))
9055
+ .filter((x) => this._fItemsContainer.contains(x.hostElement)).map((x) => x.hostElement);
8762
9056
  }
8763
- moveChildrenItems(sortedChildrenItems, parent) {
9057
+ _moveChildrenItems(sortedChildrenItems, parent) {
8764
9058
  let nextSibling = parent.hostElement.nextElementSibling;
8765
- const fragment = this.fBrowser.document.createDocumentFragment();
9059
+ const fragment = this._fBrowser.document.createDocumentFragment();
8766
9060
  sortedChildrenItems.forEach((child) => {
8767
9061
  fragment.appendChild(child); // Append automatically removes the element from its current position
8768
9062
  });
8769
- this.fItemsContainer.insertBefore(fragment, nextSibling);
9063
+ this._fItemsContainer.insertBefore(fragment, nextSibling);
8770
9064
  }
8771
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemsByParentExecution, deps: [{ token: FComponentsStore }, { token: i2$1.FMediator }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Injectable });
9065
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemsByParentExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8772
9066
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemsByParentExecution });
8773
9067
  };
8774
9068
  SortItemsByParentExecution = __decorate([
@@ -8776,27 +9070,26 @@ SortItemsByParentExecution = __decorate([
8776
9070
  ], SortItemsByParentExecution);
8777
9071
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemsByParentExecution, decorators: [{
8778
9072
  type: Injectable
8779
- }], ctorParameters: () => [{ type: FComponentsStore }, { type: i2$1.FMediator }, { type: i1.BrowserService }] });
9073
+ }] });
8780
9074
 
8781
9075
  class SortItemLayersRequest {
8782
9076
  }
8783
9077
 
8784
9078
  let SortItemLayersExecution = class SortItemLayersExecution {
8785
- fMediator;
8786
- fComponentsStore;
8787
- constructor(fMediator, fComponentsStore) {
8788
- this.fMediator = fMediator;
8789
- this.fComponentsStore = fComponentsStore;
9079
+ _fMediator = inject(FMediator);
9080
+ _fComponentsStore = inject(FComponentsStore);
9081
+ get _fCanvas() {
9082
+ return this._fComponentsStore.fCanvas;
8790
9083
  }
8791
9084
  handle(request) {
8792
- if (!this.fComponentsStore.fCanvas) {
9085
+ if (!this._fComponentsStore.fCanvas) {
8793
9086
  return;
8794
9087
  }
8795
- this.fMediator.execute(new SortItemsByParentRequest(this.fComponentsStore.fCanvas.fGroupsContainer.nativeElement));
8796
- this.fMediator.execute(new SortNodeLayersRequest());
8797
- this.fMediator.execute(new SortItemsByParentRequest(this.fComponentsStore.fCanvas.fNodesContainer.nativeElement));
9088
+ this._fMediator.execute(new SortItemsByParentRequest(this._fCanvas.fGroupsContainer().nativeElement));
9089
+ this._fMediator.execute(new SortNodeLayersRequest());
9090
+ this._fMediator.execute(new SortItemsByParentRequest(this._fCanvas.fNodesContainer().nativeElement));
8798
9091
  }
8799
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemLayersExecution, deps: [{ token: i2$1.FMediator }, { token: FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
9092
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemLayersExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8800
9093
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemLayersExecution });
8801
9094
  };
8802
9095
  SortItemLayersExecution = __decorate([
@@ -8804,7 +9097,7 @@ SortItemLayersExecution = __decorate([
8804
9097
  ], SortItemLayersExecution);
8805
9098
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemLayersExecution, decorators: [{
8806
9099
  type: Injectable
8807
- }], ctorParameters: () => [{ type: i2$1.FMediator }, { type: FComponentsStore }] });
9100
+ }] });
8808
9101
 
8809
9102
  function createSVGElement(tag, fBrowser) {
8810
9103
  return fBrowser.document.createElementNS('http://www.w3.org/2000/svg', tag);
@@ -8873,26 +9166,25 @@ const COMMON_PROVIDERS = [
8873
9166
 
8874
9167
  let uniqueId$2 = 0;
8875
9168
  class FRectPatternComponent {
8876
- _fBrowser;
8877
9169
  _destroyRef = inject(DestroyRef);
8878
9170
  _elementReference = inject(ElementRef);
9171
+ _fBrowser = inject(BrowserService);
8879
9172
  _stateChanges = new FChannel();
8880
9173
  get hostElement() {
8881
9174
  return this._elementReference.nativeElement;
8882
9175
  }
8883
- id = `f-pattern-${uniqueId$2++}`;
8884
- vColor = 'rgba(0,0,0,0.1)';
8885
- hColor = 'rgba(0,0,0,0.1)';
8886
- vSize = 20;
8887
- hSize = 20;
9176
+ id = input(`f-pattern-${uniqueId$2++}`);
9177
+ vColor = input('rgba(0,0,0,0.1)');
9178
+ hColor = input('rgba(0,0,0,0.1)');
9179
+ vSize = input(20, { transform: numberAttribute });
9180
+ hSize = input(20, { transform: numberAttribute });
8888
9181
  _transform = TransformModelExtensions.default();
8889
9182
  _position = PointExtensions.initialize();
8890
- _size = SizeExtensions.initialize(this.hSize, this.vSize);
9183
+ _size = SizeExtensions.initialize(this.hSize(), this.vSize());
8891
9184
  _pattern;
8892
9185
  _vLine;
8893
9186
  _hLine;
8894
- constructor(_fBrowser) {
8895
- this._fBrowser = _fBrowser;
9187
+ constructor() {
8896
9188
  this._createPattern();
8897
9189
  }
8898
9190
  _createPattern() {
@@ -8918,13 +9210,13 @@ class FRectPatternComponent {
8918
9210
  _redraw() {
8919
9211
  this._calculatePattern();
8920
9212
  this._redrawPattern();
8921
- this.redrawLine(this._vLine, this.vColor, this._size.width, 0, this._size.width, this._size.height);
8922
- this.redrawLine(this._hLine, this.hColor, 0, this._size.height, this._size.width, this._size.height);
9213
+ this.redrawLine(this._vLine, this.vColor(), this._size.width, 0, this._size.width, this._size.height);
9214
+ this.redrawLine(this._hLine, this.hColor(), 0, this._size.height, this._size.width, this._size.height);
8923
9215
  }
8924
9216
  _calculatePattern() {
8925
9217
  this._position.x = this._transform.position.x + this._transform.scaledPosition.x;
8926
9218
  this._position.y = this._transform.position.y + this._transform.scaledPosition.y;
8927
- this._size = SizeExtensions.initialize(this.hSize * this._transform.scale, this.vSize * this._transform.scale);
9219
+ this._size = SizeExtensions.initialize(this.hSize() * this._transform.scale, this.vSize() * this._transform.scale);
8928
9220
  }
8929
9221
  _redrawPattern() {
8930
9222
  this._pattern.setAttribute('x', `${this._position.x}`);
@@ -8946,8 +9238,8 @@ class FRectPatternComponent {
8946
9238
  _refresh() {
8947
9239
  this._stateChanges.notify();
8948
9240
  }
8949
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FRectPatternComponent, deps: [{ token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Component });
8950
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FRectPatternComponent, selector: "f-rect-pattern", inputs: { id: "id", vColor: "vColor", hColor: "hColor", vSize: "vSize", hSize: "hSize" }, host: { properties: { "attr.id": "id" } }, providers: [
9241
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FRectPatternComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9242
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: FRectPatternComponent, isStandalone: true, selector: "f-rect-pattern", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, vColor: { classPropertyName: "vColor", publicName: "vColor", isSignal: true, isRequired: false, transformFunction: null }, hColor: { classPropertyName: "hColor", publicName: "hColor", isSignal: true, isRequired: false, transformFunction: null }, vSize: { classPropertyName: "vSize", publicName: "vSize", isSignal: true, isRequired: false, transformFunction: null }, hSize: { classPropertyName: "hSize", publicName: "hSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "id" } }, providers: [
8951
9243
  { provide: F_BACKGROUND_PATTERN, useExisting: FRectPatternComponent }
8952
9244
  ], usesOnChanges: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
8953
9245
  }
@@ -8956,6 +9248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
8956
9248
  args: [{
8957
9249
  selector: "f-rect-pattern",
8958
9250
  template: ``,
9251
+ standalone: true,
8959
9252
  host: {
8960
9253
  '[attr.id]': 'id'
8961
9254
  },
@@ -8964,37 +9257,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
8964
9257
  ],
8965
9258
  changeDetection: ChangeDetectionStrategy.OnPush
8966
9259
  }]
8967
- }], ctorParameters: () => [{ type: i1.BrowserService }], propDecorators: { id: [{
8968
- type: Input
8969
- }], vColor: [{
8970
- type: Input
8971
- }], hColor: [{
8972
- type: Input
8973
- }], vSize: [{
8974
- type: Input
8975
- }], hSize: [{
8976
- type: Input
8977
- }] } });
9260
+ }], ctorParameters: () => [] });
8978
9261
 
8979
9262
  let uniqueId$1 = 0;
8980
9263
  class FCirclePatternComponent {
8981
- _fBrowser;
8982
9264
  _destroyRef = inject(DestroyRef);
8983
9265
  _elementReference = inject(ElementRef);
9266
+ _fBrowser = inject(BrowserService);
8984
9267
  _stateChanges = new FChannel();
8985
9268
  get hostElement() {
8986
9269
  return this._elementReference.nativeElement;
8987
9270
  }
8988
- id = `f-pattern-${uniqueId$1++}`;
8989
- color = 'rgba(0,0,0,0.1)';
8990
- radius = 20;
9271
+ id = input(`f-pattern-${uniqueId$1++}`);
9272
+ color = input('rgba(0,0,0,0.1)');
9273
+ radius = input(20, { transform: numberAttribute });
8991
9274
  _scaledRadius = 20;
8992
9275
  _transform = TransformModelExtensions.default();
8993
9276
  _position = PointExtensions.initialize();
8994
9277
  _pattern;
8995
9278
  _circle;
8996
- constructor(_fBrowser) {
8997
- this._fBrowser = _fBrowser;
9279
+ constructor() {
8998
9280
  this._createPattern();
8999
9281
  }
9000
9282
  _createPattern() {
@@ -9023,7 +9305,7 @@ class FCirclePatternComponent {
9023
9305
  _calculatePattern() {
9024
9306
  this._position.x = this._transform.position.x + this._transform.scaledPosition.x;
9025
9307
  this._position.y = this._transform.position.y + this._transform.scaledPosition.y;
9026
- this._scaledRadius = this.radius * this._transform.scale;
9308
+ this._scaledRadius = this.radius() * this._transform.scale;
9027
9309
  }
9028
9310
  _redrawPattern() {
9029
9311
  this._pattern.setAttribute('x', `${this._position.x}`);
@@ -9032,10 +9314,10 @@ class FCirclePatternComponent {
9032
9314
  this._pattern.setAttribute('height', `${this._scaledRadius}`);
9033
9315
  }
9034
9316
  _redrawElement() {
9035
- this._circle.setAttribute('fill', this.color);
9317
+ this._circle.setAttribute('fill', this.color());
9036
9318
  this._circle.setAttribute('cx', `${this._scaledRadius / 2}`);
9037
9319
  this._circle.setAttribute('cy', `${this._scaledRadius / 2}`);
9038
- this._circle.setAttribute('r', `${this._scaledRadius / this.radius}`);
9320
+ this._circle.setAttribute('r', `${this._scaledRadius / this.radius()}`);
9039
9321
  }
9040
9322
  setTransform(transform) {
9041
9323
  this._transform = transform;
@@ -9044,8 +9326,8 @@ class FCirclePatternComponent {
9044
9326
  _refresh() {
9045
9327
  this._stateChanges.notify();
9046
9328
  }
9047
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FCirclePatternComponent, deps: [{ token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Component });
9048
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FCirclePatternComponent, selector: "f-circle-pattern", inputs: { id: "id", color: "color", radius: "radius" }, host: { properties: { "attr.id": "id" } }, providers: [
9329
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FCirclePatternComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9330
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: FCirclePatternComponent, isStandalone: true, selector: "f-circle-pattern", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "id" } }, providers: [
9049
9331
  { provide: F_BACKGROUND_PATTERN, useExisting: FCirclePatternComponent }
9050
9332
  ], usesOnChanges: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
9051
9333
  }
@@ -9054,6 +9336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9054
9336
  args: [{
9055
9337
  selector: "f-circle-pattern",
9056
9338
  template: ``,
9339
+ standalone: true,
9057
9340
  host: {
9058
9341
  '[attr.id]': 'id'
9059
9342
  },
@@ -9062,13 +9345,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9062
9345
  ],
9063
9346
  changeDetection: ChangeDetectionStrategy.OnPush
9064
9347
  }]
9065
- }], ctorParameters: () => [{ type: i1.BrowserService }], propDecorators: { id: [{
9066
- type: Input
9067
- }], color: [{
9068
- type: Input
9069
- }], radius: [{
9070
- type: Input
9071
- }] } });
9348
+ }], ctorParameters: () => [] });
9072
9349
 
9073
9350
  const F_BACKGROUND = new InjectionToken('F_BACKGROUND');
9074
9351
  class FBackgroundBase {
@@ -9080,36 +9357,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9080
9357
  }] });
9081
9358
 
9082
9359
  class FBackgroundComponent extends FBackgroundBase {
9360
+ _fMediator = inject(FMediator);
9083
9361
  _elementReference = inject(ElementRef);
9084
9362
  get hostElement() {
9085
9363
  return this._elementReference.nativeElement;
9086
9364
  }
9087
- fBackgroundPattern;
9088
- _fMediator = inject(FMediator);
9365
+ fBackgroundPattern = contentChild(F_BACKGROUND_PATTERN);
9089
9366
  ngOnInit() {
9090
9367
  this._fMediator.execute(new AddBackgroundToStoreRequest(this));
9091
9368
  }
9092
9369
  ngAfterContentInit() {
9093
- this._fMediator.execute(new AddPatternToBackgroundRequest(this.fBackgroundPattern));
9370
+ this._fMediator.execute(new AddPatternToBackgroundRequest(this.fBackgroundPattern()));
9094
9371
  }
9095
9372
  setTransform(transform) {
9096
- this.fBackgroundPattern?.setTransform(transform);
9373
+ this.fBackgroundPattern()?.setTransform(transform);
9097
9374
  }
9098
9375
  ngOnDestroy() {
9099
9376
  this._fMediator.execute(new RemoveBackgroundFromStoreRequest(this));
9100
9377
  }
9101
9378
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FBackgroundComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
9102
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FBackgroundComponent, selector: "f-background", host: { classAttribute: "f-component f-background" }, providers: [{ provide: F_BACKGROUND, useExisting: FBackgroundComponent }], queries: [{ propertyName: "fBackgroundPattern", first: true, predicate: F_BACKGROUND_PATTERN, descendants: true }], usesInheritance: true, ngImport: i0, template: "<svg><ng-content></ng-content></svg>", isInline: true, styles: [":host{position:absolute;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host svg{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9379
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: FBackgroundComponent, isStandalone: true, selector: "f-background", host: { classAttribute: "f-component f-background" }, providers: [{ provide: F_BACKGROUND, useExisting: FBackgroundComponent }], queries: [{ propertyName: "fBackgroundPattern", first: true, predicate: F_BACKGROUND_PATTERN, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<svg><ng-content></ng-content></svg>", isInline: true, styles: [":host{position:absolute;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host svg{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9103
9380
  }
9104
9381
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FBackgroundComponent, decorators: [{
9105
9382
  type: Component,
9106
- args: [{ selector: "f-background", template: "<svg><ng-content></ng-content></svg>", host: {
9383
+ args: [{ selector: "f-background", template: "<svg><ng-content></ng-content></svg>", standalone: true, host: {
9107
9384
  'class': 'f-component f-background'
9108
9385
  }, providers: [{ provide: F_BACKGROUND, useExisting: FBackgroundComponent }], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{position:absolute;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host svg{width:100%;height:100%}\n"] }]
9109
- }], propDecorators: { fBackgroundPattern: [{
9110
- type: ContentChild,
9111
- args: [F_BACKGROUND_PATTERN, { static: false }]
9112
- }] } });
9386
+ }] });
9113
9387
 
9114
9388
  const F_BACKGROUND_PROVIDERS = [
9115
9389
  FBackgroundComponent,
@@ -9146,23 +9420,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9146
9420
  }] });
9147
9421
 
9148
9422
  class FCanvasComponent extends FCanvasBase {
9423
+ _fMediator = inject(FMediator);
9149
9424
  _elementReference = inject(ElementRef);
9150
- fCanvasChange = new EventEmitter();
9151
- set position(value) {
9152
- this._fMediator.execute(new InputCanvasPositionRequest(this.transform, PointExtensions.castToPoint(value)));
9153
- }
9154
- set scale(value) {
9155
- this._fMediator.execute(new InputCanvasScaleRequest(this.transform, value));
9156
- }
9425
+ _injector = inject(Injector);
9426
+ fCanvasChange = output();
9427
+ position = input(PointExtensions.initialize(), { transform: PointExtensions.castToPoint });
9428
+ scale = input(1, { transform: numberAttribute });
9157
9429
  get hostElement() {
9158
9430
  return this._elementReference.nativeElement;
9159
9431
  }
9160
- fGroupsContainer;
9161
- fNodesContainer;
9162
- fConnectionsContainer;
9163
- _fMediator = inject(FMediator);
9432
+ fGroupsContainer = viewChild.required('fGroupsContainer');
9433
+ fNodesContainer = viewChild.required('fNodesContainer');
9434
+ fConnectionsContainer = viewChild.required('fConnectionsContainer');
9164
9435
  ngOnInit() {
9165
9436
  this._fMediator.execute(new AddCanvasToStoreRequest(this));
9437
+ this._positionChange();
9438
+ this._scaleChange();
9439
+ }
9440
+ _positionChange() {
9441
+ effect(() => {
9442
+ this._fMediator.execute(new InputCanvasPositionRequest(this.transform, this.position()));
9443
+ }, { injector: this._injector });
9444
+ }
9445
+ _scaleChange() {
9446
+ effect(() => {
9447
+ this._fMediator.execute(new InputCanvasScaleRequest(this.transform, this.scale()));
9448
+ }, { injector: this._injector });
9166
9449
  }
9167
9450
  redraw() {
9168
9451
  this._fMediator.execute(new SetBackgroundTransformRequest(this.transform));
@@ -9175,13 +9458,13 @@ class FCanvasComponent extends FCanvasBase {
9175
9458
  transitionEnd(this.hostElement, () => this.redraw());
9176
9459
  }
9177
9460
  centerGroupOrNode(id, animated = true) {
9178
- this._fMediator.execute(new CenterGroupOrNodeRequest(id, animated));
9461
+ setTimeout(() => this._fMediator.execute(new CenterGroupOrNodeRequest(id, animated)));
9179
9462
  }
9180
9463
  fitToScreen(toCenter = PointExtensions.initialize(), animated = true) {
9181
- this._fMediator.execute(new FitToFlowRequest(toCenter, animated));
9464
+ setTimeout(() => this._fMediator.execute(new FitToFlowRequest(toCenter, animated)));
9182
9465
  }
9183
9466
  resetScaleAndCenter(animated = true) {
9184
- this._fMediator.execute(new ResetScaleAndCenterRequest(animated));
9467
+ setTimeout(() => this._fMediator.execute(new ResetScaleAndCenterRequest(animated)));
9185
9468
  }
9186
9469
  getScale() {
9187
9470
  return this.transform.scale || 1;
@@ -9208,9 +9491,9 @@ class FCanvasComponent extends FCanvasBase {
9208
9491
  this._fMediator.execute(new RemoveCanvasFromStoreRequest());
9209
9492
  }
9210
9493
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FCanvasComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
9211
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FCanvasComponent, selector: "f-canvas", inputs: { position: "position", scale: "scale" }, outputs: { fCanvasChange: "fCanvasChange" }, host: { classAttribute: "f-component f-canvas" }, providers: [
9494
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", 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 } }, outputs: { fCanvasChange: "fCanvasChange" }, host: { classAttribute: "f-component f-canvas" }, providers: [
9212
9495
  { provide: F_CANVAS, useExisting: FCanvasComponent }
9213
- ], viewQueries: [{ propertyName: "fGroupsContainer", first: true, predicate: ["fGroupsContainer"], descendants: true, static: true }, { propertyName: "fNodesContainer", first: true, predicate: ["fNodesContainer"], descendants: true, static: true }, { propertyName: "fConnectionsContainer", first: true, predicate: ["fConnectionsContainer"], descendants: true, static: true }], exportAs: ["fComponent"], 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 });
9496
+ ], 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 });
9214
9497
  }
9215
9498
  __decorate([
9216
9499
  Deprecated('setScale')
@@ -9220,27 +9503,12 @@ __decorate([
9220
9503
  ], FCanvasComponent.prototype, "resetZoom", null);
9221
9504
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FCanvasComponent, decorators: [{
9222
9505
  type: Component,
9223
- args: [{ selector: 'f-canvas', exportAs: 'fComponent', host: {
9506
+ args: [{ selector: 'f-canvas', standalone: true, host: {
9224
9507
  'class': 'f-component f-canvas',
9225
9508
  }, providers: [
9226
9509
  { provide: F_CANVAS, useExisting: FCanvasComponent }
9227
9510
  ], 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"] }]
9228
- }], propDecorators: { fCanvasChange: [{
9229
- type: Output
9230
- }], position: [{
9231
- type: Input
9232
- }], scale: [{
9233
- type: Input
9234
- }], fGroupsContainer: [{
9235
- type: ViewChild,
9236
- args: ['fGroupsContainer', { static: true }]
9237
- }], fNodesContainer: [{
9238
- type: ViewChild,
9239
- args: ['fNodesContainer', { static: true }]
9240
- }], fConnectionsContainer: [{
9241
- type: ViewChild,
9242
- args: ['fConnectionsContainer', { static: true }]
9243
- }], setZoom: [], resetZoom: [] } });
9511
+ }], propDecorators: { setZoom: [], resetZoom: [] } });
9244
9512
 
9245
9513
  const F_CANVAS_PROVIDERS = [
9246
9514
  FCanvasComponent,
@@ -9396,25 +9664,21 @@ class FFlowBase {
9396
9664
 
9397
9665
  let uniqueId = 0;
9398
9666
  class FFlowComponent extends FFlowBase {
9399
- fBrowser;
9400
9667
  _destroyRef = inject(DestroyRef);
9401
9668
  _fMediator = inject(FMediator);
9669
+ _browserService = inject(BrowserService);
9402
9670
  _elementReference = inject(ElementRef);
9403
- fId = `f-flow-${uniqueId++}`;
9671
+ fId = input(`f-flow-${uniqueId++}`, { alias: 'fFlowId' });
9404
9672
  get hostElement() {
9405
9673
  return this._elementReference.nativeElement;
9406
9674
  }
9407
- fLoaded = new EventEmitter();
9675
+ fLoaded = output();
9408
9676
  _isLoaded = false;
9409
- constructor(fBrowser) {
9410
- super();
9411
- this.fBrowser = fBrowser;
9412
- }
9413
9677
  ngOnInit() {
9414
9678
  this._fMediator.execute(new AddFlowToStoreRequest(this));
9415
9679
  }
9416
9680
  ngAfterContentInit() {
9417
- if (!this.fBrowser.isBrowser()) {
9681
+ if (!this._browserService.isBrowser()) {
9418
9682
  return;
9419
9683
  }
9420
9684
  this._listenCountChanges();
@@ -9467,8 +9731,8 @@ class FFlowComponent extends FFlowBase {
9467
9731
  ngOnDestroy() {
9468
9732
  this._fMediator.execute(new RemoveFlowFromStoreRequest());
9469
9733
  }
9470
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FFlowComponent, deps: [{ token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Component });
9471
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FFlowComponent, selector: "f-flow", inputs: { fId: ["fFlowId", "fId"] }, outputs: { fLoaded: "fLoaded" }, host: { properties: { "attr.id": "fId" }, classAttribute: "f-component f-flow" }, providers: [
9734
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FFlowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
9735
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: FFlowComponent, isStandalone: true, selector: "f-flow", inputs: { fId: { classPropertyName: "fId", publicName: "fFlowId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fLoaded: "fLoaded" }, host: { properties: { "attr.id": "fId()" }, classAttribute: "f-component f-flow" }, providers: [
9472
9736
  FMediator,
9473
9737
  ...F_STORAGE_PROVIDERS,
9474
9738
  FDraggableDataContext,
@@ -9480,8 +9744,8 @@ class FFlowComponent extends FFlowBase {
9480
9744
  }
9481
9745
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FFlowComponent, decorators: [{
9482
9746
  type: Component,
9483
- args: [{ selector: 'f-flow', host: {
9484
- '[attr.id]': 'fId',
9747
+ args: [{ selector: 'f-flow', standalone: true, host: {
9748
+ '[attr.id]': 'fId()',
9485
9749
  class: "f-component f-flow",
9486
9750
  }, providers: [
9487
9751
  FMediator,
@@ -9492,12 +9756,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9492
9756
  ...F_DRAGGABLE_PROVIDERS,
9493
9757
  { provide: F_FLOW, useExisting: FFlowComponent },
9494
9758
  ], 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"] }]
9495
- }], ctorParameters: () => [{ type: i1.BrowserService }], propDecorators: { fId: [{
9496
- type: Input,
9497
- args: ['fFlowId']
9498
- }], fLoaded: [{
9499
- type: Output
9500
- }] } });
9759
+ }] });
9501
9760
 
9502
9761
  const F_FLOW_PROVIDERS = [
9503
9762
  FFlowComponent
@@ -9650,20 +9909,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9650
9909
  args: [{ alias: 'fZoomDblClickStep', transform: numberAttribute }]
9651
9910
  }], getScale: [] } });
9652
9911
 
9912
+ const F_ZOOM_PROVIDERS = [
9913
+ FZoomDirective
9914
+ ];
9915
+
9653
9916
  class FFlowModule {
9654
9917
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FFlowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9655
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.4", ngImport: i0, type: FFlowModule, declarations: [FBackgroundComponent, FRectPatternComponent, FCirclePatternComponent, FCanvasComponent, FConnectionTextComponent, FConnectionTextPathDirective, FConnectionDragHandleComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionComponent, FConnectionCenterDirective, FConnectionForCreateComponent, FMarkerDirective, FSnapConnectionComponent, FNodeInputDirective, FNodeOutletDirective, FNodeOutputDirective, FFlowComponent, FLineAlignmentComponent, FMinimapComponent, FMinimapCanvasDirective, FMinimapViewDirective, FMinimapFlowDirective, FGroupDirective, FNodeDirective, FDragHandleDirective, FResizeHandleDirective, FSelectionAreaComponent, FDraggableDirective], imports: [CommonModule], exports: [FBackgroundComponent, FRectPatternComponent, FCirclePatternComponent, FCanvasComponent, FConnectionTextComponent, FConnectionTextPathDirective, FConnectionDragHandleComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionComponent, FConnectionCenterDirective, FConnectionForCreateComponent, FMarkerDirective, FSnapConnectionComponent, FNodeInputDirective, FNodeOutletDirective, FNodeOutputDirective, FFlowComponent, FLineAlignmentComponent, FMinimapComponent, FMinimapCanvasDirective, FMinimapViewDirective, FMinimapFlowDirective, FGroupDirective, FNodeDirective, FDragHandleDirective, FResizeHandleDirective, FSelectionAreaComponent, FDraggableDirective] });
9918
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.4", ngImport: i0, type: FFlowModule, declarations: [FConnectionTextComponent, FConnectionTextPathDirective, FConnectionDragHandleStartComponent, FConnectionDragHandleEndComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionComponent, FConnectionCenterDirective, FConnectionForCreateComponent, FMarkerDirective, FSnapConnectionComponent, FNodeInputDirective, FNodeOutletDirective, FNodeOutputDirective, FLineAlignmentComponent, FMinimapComponent, FMinimapCanvasDirective, FMinimapViewDirective, FMinimapFlowDirective, FGroupDirective, FNodeDirective, FDragHandleDirective, FResizeHandleDirective, FRotateHandleDirective, FSelectionAreaComponent, FDraggableDirective], imports: [FFlowComponent, FCanvasComponent, FBackgroundComponent, FRectPatternComponent, FCirclePatternComponent, FZoomDirective, FExternalItemDirective, CommonModule], exports: [FFlowComponent, FCanvasComponent, FBackgroundComponent, FRectPatternComponent, FCirclePatternComponent, FZoomDirective, FExternalItemDirective, FConnectionTextComponent, FConnectionTextPathDirective, FConnectionDragHandleStartComponent, FConnectionDragHandleEndComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionComponent, FConnectionCenterDirective, FConnectionForCreateComponent, FMarkerDirective, FSnapConnectionComponent, FNodeInputDirective, FNodeOutletDirective, FNodeOutputDirective, FLineAlignmentComponent, FMinimapComponent, FMinimapCanvasDirective, FMinimapViewDirective, FMinimapFlowDirective, FGroupDirective, FNodeDirective, FDragHandleDirective, FResizeHandleDirective, FRotateHandleDirective, FSelectionAreaComponent, FDraggableDirective] });
9656
9919
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FFlowModule, imports: [CommonModule] });
9657
9920
  }
9658
9921
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FFlowModule, decorators: [{
9659
9922
  type: NgModule,
9660
9923
  args: [{
9661
9924
  declarations: [
9662
- ...F_BACKGROUND_PROVIDERS,
9663
- ...F_CANVAS_PROVIDERS,
9664
9925
  ...F_CONNECTION_PROVIDERS,
9665
9926
  ...F_CONNECTORS_PROVIDERS,
9666
- ...F_FLOW_PROVIDERS,
9667
9927
  ...F_LINE_ALIGNMENT_PROVIDERS,
9668
9928
  ...F_MINIMAP_PROVIDERS,
9669
9929
  ...F_NODE_PROVIDERS,
@@ -9671,14 +9931,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9671
9931
  FDraggableDirective,
9672
9932
  ],
9673
9933
  imports: [
9934
+ ...F_FLOW_PROVIDERS,
9935
+ ...F_CANVAS_PROVIDERS,
9936
+ ...F_BACKGROUND_PROVIDERS,
9937
+ ...F_ZOOM_PROVIDERS,
9938
+ ...F_EXTERNAL_ITEM_PROVIDERS,
9674
9939
  CommonModule,
9675
9940
  ],
9676
9941
  exports: [
9677
- ...F_BACKGROUND_PROVIDERS,
9942
+ ...F_FLOW_PROVIDERS,
9678
9943
  ...F_CANVAS_PROVIDERS,
9944
+ ...F_BACKGROUND_PROVIDERS,
9945
+ ...F_ZOOM_PROVIDERS,
9946
+ ...F_EXTERNAL_ITEM_PROVIDERS,
9679
9947
  ...F_CONNECTION_PROVIDERS,
9680
9948
  ...F_CONNECTORS_PROVIDERS,
9681
- ...F_FLOW_PROVIDERS,
9682
9949
  ...F_LINE_ALIGNMENT_PROVIDERS,
9683
9950
  ...F_MINIMAP_PROVIDERS,
9684
9951
  ...F_NODE_PROVIDERS,
@@ -9692,5 +9959,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9692
9959
  * Generated bundle index. Do not edit.
9693
9960
  */
9694
9961
 
9695
- 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, CalculateNodeMoveLimitsExecution, CalculateNodeMoveLimitsRequest, CalculateNodesBoundingBoxExecution, CalculateNodesBoundingBoxNormalizedPositionExecution, CalculateNodesBoundingBoxNormalizedPositionRequest, CalculateNodesBoundingBoxRequest, CenterGroupOrNodeExecution, CenterGroupOrNodeRequest, ClearSelectionExecution, ClearSelectionRequest, CreateConnectionMarkersExecution, CreateConnectionMarkersRequest, CreateMoveNodesDragModelFromSelectionExecution, CreateMoveNodesDragModelFromSelectionRequest, DRAG_AND_DROP_COMMON_PROVIDERS, Deprecated, EFConnectableSide, EFConnectionBehavior, EFConnectionType, EFMarkerType, EFResizeHandleType, EFZoomDirection, EmitSelectionChangeEventExecution, EmitSelectionChangeEventRequest, EndDragSequenceExecution, EndDragSequenceRequest, FBackgroundBase, FBackgroundComponent, FBezierPathBuilder, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FCanvasDragHandler, FCanvasMoveFinalizeExecution, FCanvasMoveFinalizeRequest, FCanvasMovePreparationExecution, FCanvasMovePreparationRequest, FChannel, FChannelHub, FCirclePatternComponent, FComponentsStore, FConnectionBase, FConnectionCenterDirective, FConnectionComponent, FConnectionDragHandleComponent, FConnectionFactory, FConnectionForCreateComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionTextComponent, FConnectionTextPathDirective, FConnectorBase, FCreateConnectionDragHandler, FCreateConnectionDragHandlerPreparationExecution, FCreateConnectionDragHandlerPreparationRequest, FCreateConnectionEvent, FCreateConnectionFinalizeExecution, FCreateConnectionFinalizeRequest, FCreateConnectionFromOutletPreparationExecution, FCreateConnectionFromOutletPreparationRequest, FCreateConnectionFromOutputPreparationExecution, FCreateConnectionFromOutputPreparationRequest, FCreateConnectionPreparationExecution, FCreateConnectionPreparationRequest, FCreateNodeEvent, 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, FInjector, FLineAlignmentBase, FLineAlignmentComponent, FLineAlignmentDragHandler, FMarkerBase, FMarkerDirective, FMinimapCanvasDirective, FMinimapComponent, FMinimapData, FMinimapDragHandler, FMinimapFlowDirective, FMinimapViewDirective, FNodeBase, FNodeDirective, FNodeDropToGroupDragHandler, FNodeDropToGroupFinalizeExecution, FNodeDropToGroupFinalizeRequest, FNodeDropToGroupPreparationExecution, FNodeDropToGroupPreparationRequest, FNodeInputBase, FNodeInputDirective, FNodeIntersectedWithConnections, FNodeMoveDragHandler, FNodeMoveFinalizeExecution, FNodeMoveFinalizeRequest, FNodeMovePreparationExecution, FNodeMovePreparationRequest, FNodeOutletBase, FNodeOutletDirective, FNodeOutputBase, FNodeOutputDirective, FNodeResizeDragHandler, FNodeResizeFinalizeExecution, FNodeResizeFinalizeRequest, FNodeResizePreparationExecution, FNodeResizePreparationRequest, 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_DRAG_HANDLE_CLASS, 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_DRAG_HANDLE, F_EXTERNAL_ITEM, F_EXTERNAL_ITEM_DRAG_AND_DROP_PROVIDERS, F_FLOW, F_FLOW_FEATURES, F_FLOW_PROVIDERS, F_LINE_ALIGNMENT, F_LINE_ALIGNMENT_FEATURES, F_LINE_ALIGNMENT_PROVIDERS, F_MARKER, F_MINIMAP_DRAG_AND_DROP_PROVIDERS, F_MINIMAP_PROVIDERS, F_NODE, F_NODE_FEATURES, F_NODE_INPUT, F_NODE_OUTLET, F_NODE_OUTPUT, F_NODE_PROVIDERS, F_RESIZE_HANDLE, F_SELECTED_CLASS, F_SELECTION_AREA_DRAG_AND_DROP_PROVIDERS, F_SELECTION_AREA_PROVIDERS, F_SELECTION_FEATURES, F_STORAGE_PROVIDERS, F_ZOOM, F_ZOOM_FEATURES, 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, GetNormalizedElementRectExecution, GetNormalizedElementRectRequest, GetNormalizedParentNodeRectExecution, GetNormalizedParentNodeRectRequest, GetNormalizedPointExecution, GetNormalizedPointRequest, GetParentNodesExecution, GetParentNodesRequest, 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, MarkAllCanBeConnectedInputsExecution, MarkAllCanBeConnectedInputsRequest, MinimapCalculateSvgScaleAndViewBoxExecution, MinimapCalculateSvgScaleAndViewBoxRequest, MinimapCalculateViewBoxExecution, MinimapCalculateViewBoxRequest, MinimapDragFinalizeExecution, MinimapDragFinalizeRequest, MinimapDragPreparationExecution, MinimapDragPreparationRequest, MinimapDrawNodesExecution, MinimapDrawNodesRequest, MoveFrontElementsBeforeTargetElementExecution, MoveFrontElementsBeforeTargetElementRequest, NODE_DROP_TO_GROUP_PROVIDERS, NODE_PROVIDERS, NODE_RESIZE_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, fInject, fixedCenterBehavior, fixedOutboundBehavior, floatingBehavior, getExternalItem, getMarkerEndId, getMarkerSelectedEndId, getMarkerSelectedStartId, getMarkerStartId, isExternalItem, isMobile, isNode, isNodeOutlet, isNodeOutput, isValidEventTrigger, mixinChangeSelection, mixinChangeVisibility, notifyOnStart, transitionEnd };
9962
+ 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, EFConnectableSide, EFConnectionBehavior, EFConnectionType, EFMarkerType, EFResizeHandleType, EFZoomDirection, EmitSelectionChangeEventExecution, EmitSelectionChangeEventRequest, EndDragSequenceExecution, EndDragSequenceRequest, 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, 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, FInjector, FLineAlignmentBase, FLineAlignmentComponent, FLineAlignmentDragHandler, FMarkerBase, FMarkerDirective, FMinimapCanvasDirective, FMinimapComponent, FMinimapData, FMinimapDragHandler, FMinimapFlowDirective, FMinimapViewDirective, 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, GetNormalizedElementRectExecution, GetNormalizedElementRectRequest, GetNormalizedParentNodeRectExecution, GetNormalizedParentNodeRectRequest, GetNormalizedPointExecution, GetNormalizedPointRequest, GetParentNodesExecution, GetParentNodesRequest, 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, 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, fInject, fixedCenterBehavior, fixedOutboundBehavior, floatingBehavior, getExternalItem, getMarkerEndId, getMarkerSelectedEndId, getMarkerSelectedStartId, getMarkerStartId, isExternalItem, isMobile, isNode, isNodeOutlet, isNodeOutput, isRotateHandle, isValidEventTrigger, mediatorEffect, mixinChangeSelection, mixinChangeVisibility, notifyOnStart, transitionEnd };
9696
9963
  //# sourceMappingURL=foblex-flow.mjs.map