@foblex/flow 17.4.1 → 17.4.3

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 (243) 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-draggable/providers.d.ts +1 -1
  12. package/domain/f-node/calculate-input-connections/calculate-input-connections-request.d.ts +5 -0
  13. package/domain/f-node/calculate-input-connections/calculate-input-connections.execution.d.ts +12 -0
  14. package/domain/f-node/calculate-input-connections/index.d.ts +2 -0
  15. package/domain/f-node/calculate-output-connections/calculate-output-connections-request.d.ts +5 -0
  16. package/domain/f-node/calculate-output-connections/calculate-output-connections.execution.d.ts +12 -0
  17. package/domain/f-node/calculate-output-connections/index.d.ts +2 -0
  18. package/domain/f-node/index.d.ts +2 -0
  19. package/domain/f-node/providers.d.ts +3 -1
  20. package/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.d.ts +1 -1
  21. package/domain/f-selection/providers.d.ts +1 -1
  22. package/domain/get-normalized-element-rect/get-normalized-element-rect.execution.d.ts +5 -3
  23. package/domain/providers.d.ts +1 -2
  24. package/domain/sort-item-layers/sort-item-layers.execution.d.ts +4 -5
  25. package/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.d.ts +6 -9
  26. package/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.d.ts +12 -14
  27. package/domain/update-item-and-children-layers/update-item-and-children-layers.execution.d.ts +15 -16
  28. package/esm2022/domain/css-cls.mjs +4 -1
  29. package/esm2022/domain/f-background/add-background-to-store/add-background-to-store.execution.mjs +1 -1
  30. package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.mjs +15 -19
  31. package/esm2022/domain/f-background/remove-background-from-store/remove-background-from-store.execution.mjs +1 -1
  32. package/esm2022/domain/f-background/set-background-transform/set-background-transform.execution.mjs +1 -1
  33. package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position.execution.mjs +2 -1
  34. package/esm2022/domain/f-canvas/input-canvas-scale/input-canvas-scale.execution.mjs +2 -2
  35. package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.mjs +12 -12
  36. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +1 -1
  37. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +2 -2
  38. package/esm2022/domain/f-connectors/get-connector-and-rect/get-connector-and-rect.execution.mjs +1 -1
  39. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections-request.mjs +7 -0
  40. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.execution.mjs +31 -0
  41. package/esm2022/domain/f-node/calculate-input-connections/index.mjs +3 -0
  42. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections-request.mjs +7 -0
  43. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.execution.mjs +31 -0
  44. package/esm2022/domain/f-node/calculate-output-connections/index.mjs +3 -0
  45. package/esm2022/domain/f-node/index.mjs +3 -1
  46. package/esm2022/domain/f-node/providers.mjs +5 -1
  47. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.mjs +1 -1
  48. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +12 -4
  49. package/esm2022/domain/sort-item-layers/sort-item-layers.execution.mjs +14 -16
  50. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.mjs +21 -27
  51. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.mjs +32 -34
  52. package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.execution.mjs +46 -48
  53. package/esm2022/f-backgroud/f-background.component.mjs +9 -12
  54. package/esm2022/f-backgroud/f-circle-pattern/f-circle-pattern.component.mjs +15 -21
  55. package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +18 -28
  56. package/esm2022/f-canvas/f-canvas-base.mjs +1 -1
  57. package/esm2022/f-canvas/f-canvas.component.mjs +29 -35
  58. package/esm2022/f-canvas/providers.mjs +1 -1
  59. package/esm2022/f-connection/common/f-connection-base.mjs +5 -5
  60. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.mjs +37 -0
  61. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.mjs +37 -0
  62. package/esm2022/f-connection/common/f-drag-handle/index.mjs +3 -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-canvas/f-canvas.drag-handler.mjs +5 -3
  68. package/esm2022/f-draggable/f-canvas/move-preparation/f-canvas-move-preparation.execution.mjs +4 -3
  69. package/esm2022/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.mjs +2 -3
  70. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/drag-handler-preparation/f-create-connection-drag-handler-preparation.execution.mjs +4 -3
  71. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +10 -8
  72. package/esm2022/f-draggable/f-connection/f-create-connection/get-first-connectable-output/get-first-connectable-output.execution.mjs +1 -1
  73. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.mjs +10 -8
  74. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +6 -5
  75. package/esm2022/f-draggable/f-draggable.directive.mjs +9 -9
  76. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.execution.mjs +4 -3
  77. package/esm2022/f-draggable/f-drop-to-group/f-node-drop-to-group.drag-handler.mjs +7 -6
  78. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +9 -8
  79. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/source-connection.drag-handler.mjs +3 -3
  80. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.mjs +3 -3
  81. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/target-connection.drag-handler.mjs +3 -3
  82. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +4 -3
  83. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.mjs +5 -4
  84. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.mjs +5 -4
  85. package/esm2022/f-draggable/f-node-move/f-line-alignment.drag-handler.mjs +5 -5
  86. package/esm2022/f-draggable/f-node-move/f-node-move.drag-handler.mjs +1 -1
  87. package/esm2022/f-draggable/f-node-move/f-summary-node-move.drag-handler.mjs +5 -5
  88. package/esm2022/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.execution.mjs +4 -3
  89. package/esm2022/f-draggable/f-node-move/point-bounds-limiter.mjs +8 -6
  90. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.mjs +2 -2
  91. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.mjs +4 -4
  92. package/esm2022/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.execution.mjs +1 -1
  93. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.execution.mjs +1 -1
  94. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.request.mjs +1 -1
  95. package/esm2022/f-draggable/f-node-resize/f-node-resize.drag-handler.mjs +10 -9
  96. package/esm2022/f-draggable/f-node-resize/resize-preparation/f-node-resize-preparation.execution.mjs +4 -3
  97. package/esm2022/f-draggable/f-node-rotate/calculate-difference-after-rotation.mjs +19 -0
  98. package/esm2022/f-draggable/f-node-rotate/f-node-rotate.drag-handler.mjs +71 -0
  99. package/esm2022/f-draggable/f-node-rotate/index.mjs +5 -0
  100. package/esm2022/f-draggable/f-node-rotate/providers.mjs +7 -0
  101. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.mjs +31 -0
  102. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.request.mjs +7 -0
  103. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/index.mjs +3 -0
  104. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.mjs +87 -0
  105. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.request.mjs +9 -0
  106. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/index.mjs +3 -0
  107. package/esm2022/f-draggable/index.mjs +2 -2
  108. package/esm2022/f-draggable/providers.mjs +3 -1
  109. package/esm2022/f-external-item/domain/create-placeholder/f-external-item-create-placeholder.execution.mjs +1 -1
  110. package/esm2022/f-external-item/domain/create-preview/f-external-item-create-preview.execution.mjs +1 -1
  111. package/esm2022/f-external-item/domain/f-external-item.drag-handler.mjs +9 -6
  112. package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.execution.mjs +1 -1
  113. package/esm2022/f-external-item/domain/preparation/f-external-item-preparation.execution.mjs +4 -3
  114. package/esm2022/f-external-item/f-external-item-placeholder.directive.mjs +1 -1
  115. package/esm2022/f-external-item/f-external-item-preview.directive.mjs +1 -1
  116. package/esm2022/f-external-item/f-external-item.directive.mjs +1 -1
  117. package/esm2022/f-external-item/index.mjs +2 -1
  118. package/esm2022/f-external-item/providers.mjs +5 -0
  119. package/esm2022/f-flow/f-flow-base.mjs +1 -1
  120. package/esm2022/f-flow/f-flow.component.mjs +12 -21
  121. package/esm2022/f-flow.module.mjs +48 -38
  122. package/esm2022/f-line-alignment/f-line-alignment-base.mjs +1 -1
  123. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +5 -7
  124. package/esm2022/f-node/f-drag-handle.directive.mjs +3 -9
  125. package/esm2022/f-node/f-group.directive.mjs +19 -2
  126. package/esm2022/f-node/f-node-base.mjs +6 -2
  127. package/esm2022/f-node/f-node.directive.mjs +19 -2
  128. package/esm2022/f-node/f-resize-handle/f-resize-handle.directive.mjs +13 -24
  129. package/esm2022/f-node/f-rotate-handle/f-rotate-handle.directive.mjs +14 -26
  130. package/esm2022/f-node/f-rotate-handle/index.mjs +2 -1
  131. package/esm2022/f-node/f-rotate-handle/is-rotate-handle.mjs +5 -0
  132. package/esm2022/f-node/providers.mjs +3 -1
  133. package/esm2022/f-zoom/index.mjs +2 -1
  134. package/esm2022/f-zoom/providers.mjs +5 -0
  135. package/esm2022/reactivity/index.mjs +2 -1
  136. package/esm2022/reactivity/mediator-effect.mjs +14 -0
  137. package/f-backgroud/f-background.component.d.ts +4 -5
  138. package/f-backgroud/f-circle-pattern/f-circle-pattern.component.d.ts +9 -10
  139. package/f-backgroud/f-rect-pattern/f-rect-pattern.component.d.ts +11 -12
  140. package/f-backgroud/providers.d.ts +1 -1
  141. package/f-canvas/f-canvas-base.d.ts +5 -5
  142. package/f-canvas/f-canvas.component.d.ts +13 -10
  143. package/f-connection/common/f-connection-base.d.ts +4 -4
  144. package/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.d.ts +13 -0
  145. package/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.d.ts +13 -0
  146. package/f-connection/common/f-drag-handle/index.d.ts +2 -1
  147. package/f-connection/f-connection/f-connection.component.d.ts +2 -2
  148. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +2 -2
  149. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +2 -2
  150. package/f-connection/providers.d.ts +2 -2
  151. package/f-draggable/f-canvas/f-canvas.drag-handler.d.ts +3 -1
  152. package/f-draggable/f-canvas/move-preparation/f-canvas-move-preparation.execution.d.ts +3 -2
  153. package/f-draggable/f-canvas/providers.d.ts +1 -1
  154. package/f-draggable/f-connection/f-create-connection/create-preparation/drag-handler-preparation/f-create-connection-drag-handler-preparation.execution.d.ts +3 -2
  155. package/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.d.ts +5 -4
  156. package/f-draggable/f-connection/f-create-connection/get-first-connectable-output/get-first-connectable-output.execution.d.ts +1 -1
  157. package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.d.ts +5 -4
  158. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.d.ts +4 -3
  159. package/f-draggable/f-connection/providers.d.ts +1 -1
  160. package/f-draggable/f-draggable.directive.d.ts +2 -2
  161. package/f-draggable/f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.execution.d.ts +4 -3
  162. package/f-draggable/f-drop-to-group/f-node-drop-to-group.drag-handler.d.ts +4 -3
  163. package/f-draggable/f-drop-to-group/providers.d.ts +1 -1
  164. package/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.d.ts +4 -3
  165. package/f-draggable/f-node-move/connection-drag-handlers/source-connection.drag-handler.d.ts +2 -1
  166. package/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.d.ts +3 -2
  167. package/f-draggable/f-node-move/connection-drag-handlers/target-connection.drag-handler.d.ts +2 -1
  168. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +4 -3
  169. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.d.ts +2 -1
  170. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.d.ts +2 -1
  171. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
  172. package/f-draggable/f-node-move/f-line-alignment.drag-handler.d.ts +4 -3
  173. package/f-draggable/f-node-move/f-node-move.drag-handler.d.ts +1 -1
  174. package/f-draggable/f-node-move/f-summary-node-move.drag-handler.d.ts +5 -4
  175. package/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.execution.d.ts +5 -4
  176. package/f-draggable/f-node-move/point-bounds-limiter.d.ts +5 -4
  177. package/f-draggable/f-node-move/providers.d.ts +1 -1
  178. package/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.d.ts +3 -2
  179. package/f-draggable/f-node-resize/f-node-resize.drag-handler.d.ts +5 -4
  180. package/f-draggable/f-node-resize/providers.d.ts +1 -1
  181. package/f-draggable/f-node-resize/resize-preparation/f-node-resize-preparation.execution.d.ts +4 -3
  182. package/f-draggable/f-node-rotate/calculate-difference-after-rotation.d.ts +20 -0
  183. package/f-draggable/f-node-rotate/f-node-rotate.drag-handler.d.ts +35 -0
  184. package/f-draggable/f-node-rotate/index.d.ts +4 -0
  185. package/f-draggable/f-node-rotate/providers.d.ts +3 -0
  186. package/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.d.ts +10 -0
  187. package/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.request.d.ts +5 -0
  188. package/f-draggable/f-node-rotate/rotate-finalize/index.d.ts +2 -0
  189. package/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.d.ts +23 -0
  190. package/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.request.d.ts +7 -0
  191. package/f-draggable/f-node-rotate/rotate-preparation/index.d.ts +2 -0
  192. package/f-draggable/index.d.ts +1 -1
  193. package/f-draggable/providers.d.ts +1 -1
  194. package/f-external-item/domain/create-placeholder/f-external-item-create-placeholder.execution.d.ts +2 -2
  195. package/f-external-item/domain/create-preview/f-external-item-create-preview.execution.d.ts +2 -2
  196. package/f-external-item/domain/f-external-item.drag-handler.d.ts +5 -4
  197. package/f-external-item/domain/finalize/f-external-item-finalize.execution.d.ts +5 -5
  198. package/f-external-item/domain/preparation/f-external-item-preparation.execution.d.ts +4 -3
  199. package/f-external-item/domain/providers.d.ts +1 -1
  200. package/f-external-item/f-external-item-placeholder.directive.d.ts +2 -2
  201. package/f-external-item/f-external-item-preview.directive.d.ts +2 -2
  202. package/f-external-item/f-external-item.directive.d.ts +2 -2
  203. package/f-external-item/index.d.ts +1 -0
  204. package/f-external-item/providers.d.ts +2 -0
  205. package/f-flow/f-flow-base.d.ts +3 -3
  206. package/f-flow/f-flow.component.d.ts +8 -10
  207. package/f-flow.module.d.ts +36 -32
  208. package/f-line-alignment/f-line-alignment-base.d.ts +2 -2
  209. package/f-line-alignment/f-line-alignment.component.d.ts +4 -4
  210. package/f-minimap/domain/providers.d.ts +1 -1
  211. package/f-minimap/providers.d.ts +1 -1
  212. package/f-node/f-drag-handle.directive.d.ts +1 -6
  213. package/f-node/f-group.directive.d.ts +6 -3
  214. package/f-node/f-node-base.d.ts +4 -0
  215. package/f-node/f-node.directive.d.ts +6 -3
  216. package/f-node/f-resize-handle/f-resize-handle.directive.d.ts +4 -10
  217. package/f-node/f-rotate-handle/f-rotate-handle.directive.d.ts +4 -8
  218. package/f-node/f-rotate-handle/index.d.ts +1 -0
  219. package/f-node/f-rotate-handle/is-rotate-handle.d.ts +1 -0
  220. package/f-node/providers.d.ts +1 -2
  221. package/f-selection-area/domain/providers.d.ts +1 -1
  222. package/f-storage/providers.d.ts +1 -1
  223. package/f-zoom/index.d.ts +1 -0
  224. package/f-zoom/providers.d.ts +2 -0
  225. package/fesm2022/foblex-flow.mjs +755 -476
  226. package/fesm2022/foblex-flow.mjs.map +1 -1
  227. package/package.json +2 -2
  228. package/reactivity/index.d.ts +1 -0
  229. package/reactivity/mediator-effect.d.ts +2 -0
  230. package/errors/conflict-error.d.ts +0 -6
  231. package/errors/create-error-class.d.ts +0 -1
  232. package/errors/errors.d.ts +0 -3
  233. package/errors/index.d.ts +0 -4
  234. package/errors/not-found-error.d.ts +0 -6
  235. package/esm2022/errors/conflict-error.mjs +0 -7
  236. package/esm2022/errors/create-error-class.mjs +0 -10
  237. package/esm2022/errors/errors.mjs +0 -12
  238. package/esm2022/errors/index.mjs +0 -5
  239. package/esm2022/errors/not-found-error.mjs +0 -7
  240. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle.component.mjs +0 -41
  241. package/esm2022/f-draggable/f-injector.mjs +0 -19
  242. package/f-connection/common/f-drag-handle/f-connection-drag-handle.component.d.ts +0 -17
  243. package/f-draggable/f-injector.d.ts +0 -8
@@ -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, Injector, ViewContainerRef, TemplateRef, 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
 
@@ -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) {
@@ -3671,29 +3733,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
3671
3733
  type: Injectable
3672
3734
  }] });
3673
3735
 
3674
- class FInjector {
3675
- static _injector;
3676
- static set(injector) {
3677
- this._injector = injector;
3678
- }
3679
- static clear() {
3680
- this._injector = undefined;
3681
- }
3682
- static get() {
3683
- if (!this._injector) {
3684
- throw new Error('No injector available');
3685
- }
3686
- return this._injector;
3687
- }
3688
- }
3689
- function fInject(token) {
3690
- return FInjector.get().get(token);
3691
- }
3692
-
3693
3736
  class FCanvasDragHandler {
3694
3737
  fEventType = 'canvas-move';
3695
- _fComponentsStore = fInject(FComponentsStore);
3738
+ _fComponentsStore;
3696
3739
  _onPointerDownPosition = PointExtensions.initialize();
3740
+ constructor(_injector) {
3741
+ this._fComponentsStore = _injector.get(FComponentsStore);
3742
+ }
3697
3743
  prepareDragSequence() {
3698
3744
  this._onPointerDownPosition = this._fComponentsStore.fCanvas.transform.position;
3699
3745
  }
@@ -3739,6 +3785,7 @@ class FCanvasMovePreparationRequest {
3739
3785
  let FCanvasMovePreparationExecution = class FCanvasMovePreparationExecution {
3740
3786
  _fComponentsStore = inject(FComponentsStore);
3741
3787
  _fDraggableDataContext = inject(FDraggableDataContext);
3788
+ _injector = inject(Injector);
3742
3789
  get _fHost() {
3743
3790
  return this._fComponentsStore.fFlow.hostElement;
3744
3791
  }
@@ -3749,7 +3796,7 @@ let FCanvasMovePreparationExecution = class FCanvasMovePreparationExecution {
3749
3796
  this._fDraggableDataContext.onPointerDownScale = 1;
3750
3797
  this._fDraggableDataContext.onPointerDownPosition = Point.fromPoint(request.event.getPosition())
3751
3798
  .elementTransform(this._fHost);
3752
- this._fDraggableDataContext.draggableItems = [new FCanvasDragHandler()];
3799
+ this._fDraggableDataContext.draggableItems = [new FCanvasDragHandler(this._injector)];
3753
3800
  }
3754
3801
  _isValid(request) {
3755
3802
  return this._fDraggableDataContext.isEmpty() &&
@@ -3794,38 +3841,6 @@ class FCreateConnectionFinalizeRequest {
3794
3841
  }
3795
3842
  }
3796
3843
 
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
3844
  class GetFirstConnectableOutputRequest {
3830
3845
  fOutlet;
3831
3846
  constructor(fOutlet) {
@@ -3906,9 +3921,9 @@ class FCreateConnectionDragHandler {
3906
3921
  _fOutputOrOutlet;
3907
3922
  fEventType = 'create-connection';
3908
3923
  fData;
3909
- _fResult = fInject((FDragHandlerResult));
3910
- _fMediator = fInject(FMediator);
3911
- _fComponentsStore = fInject(FComponentsStore);
3924
+ _fResult;
3925
+ _fMediator;
3926
+ _fComponentsStore;
3912
3927
  _toConnectorRect = new RoundedRect();
3913
3928
  get _fConnection() {
3914
3929
  return this._fComponentsStore.fTempConnection;
@@ -3918,8 +3933,11 @@ class FCreateConnectionDragHandler {
3918
3933
  }
3919
3934
  _fOutputWithRect;
3920
3935
  _canBeConnectedInputs = [];
3921
- constructor(_fOutputOrOutlet, _onPointerDownPosition) {
3936
+ constructor(_injector, _fOutputOrOutlet, _onPointerDownPosition) {
3922
3937
  this._fOutputOrOutlet = _fOutputOrOutlet;
3938
+ this._fResult = _injector.get(FDragHandlerResult);
3939
+ this._fMediator = _injector.get(FMediator);
3940
+ this._fComponentsStore = _injector.get(FComponentsStore);
3923
3941
  this._toConnectorRect = RoundedRect.fromRect(RectExtensions.initialize(_onPointerDownPosition.x, _onPointerDownPosition.y));
3924
3942
  this.fData = {
3925
3943
  fOutputOrOutletId: this._fOutputOrOutlet.fId,
@@ -3962,14 +3980,14 @@ class FCreateConnectionDragHandler {
3962
3980
  }
3963
3981
  _drawConnectionForCreate(toConnectorRect, fSide) {
3964
3982
  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);
3983
+ this._fConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fSide);
3966
3984
  this._fConnection.redraw();
3967
3985
  }
3968
3986
  _drawSnapConnection(fClosestInput) {
3969
3987
  if (fClosestInput) {
3970
3988
  const line = this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this._fOutputWithRect.fRect, fClosestInput.fRect, this._fSnapConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide));
3971
3989
  this._fSnapConnection.show();
3972
- this._fSnapConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, fClosestInput.fConnector.fConnectableSide);
3990
+ this._fSnapConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide);
3973
3991
  this._fSnapConnection.redraw();
3974
3992
  }
3975
3993
  else {
@@ -4010,7 +4028,7 @@ let FCreateConnectionFinalizeExecution = class FCreateConnectionFinalizeExecutio
4010
4028
  }
4011
4029
  getTargetOutput(output) {
4012
4030
  if (!output) {
4013
- throw OutputNotFound(this._fResult.getData().fOutputId);
4031
+ 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
4032
  }
4015
4033
  return isNodeOutlet(output.hostElement) ? this._fMediator.execute(new GetFirstConnectableOutputRequest(output)) : output;
4016
4034
  }
@@ -4048,6 +4066,7 @@ class FCreateConnectionDragHandlerPreparationRequest {
4048
4066
  let FCreateConnectionDragHandlerPreparationExecution = class FCreateConnectionDragHandlerPreparationExecution {
4049
4067
  _fComponentsStore = inject(FComponentsStore);
4050
4068
  _fDraggableDataContext = inject(FDraggableDataContext);
4069
+ _injector = inject(Injector);
4051
4070
  get _fHost() {
4052
4071
  return this._fComponentsStore.fFlow.hostElement;
4053
4072
  }
@@ -4062,7 +4081,7 @@ let FCreateConnectionDragHandlerPreparationExecution = class FCreateConnectionDr
4062
4081
  const positionRelativeToCanvasComponent = Point.fromPoint(positionRelativeToFlowComponent).mult(this._transform.scale)
4063
4082
  .sub(this._transform.position).sub(this._transform.scaledPosition).div(this._transform.scale);
4064
4083
  this._fDraggableDataContext.draggableItems = [
4065
- new FCreateConnectionDragHandler(request.fOutputOrOutlet, positionRelativeToCanvasComponent)
4084
+ new FCreateConnectionDragHandler(this._injector, request.fOutputOrOutlet, positionRelativeToCanvasComponent)
4066
4085
  ];
4067
4086
  }
4068
4087
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FCreateConnectionDragHandlerPreparationExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -4238,9 +4257,9 @@ class FReassignConnectionDragHandler {
4238
4257
  _fConnection;
4239
4258
  fEventType = 'reassign-connection';
4240
4259
  fData;
4241
- _fResult = fInject((FDragHandlerResult));
4242
- _fMediator = fInject(FMediator);
4243
- _fComponentsStore = fInject(FComponentsStore);
4260
+ _fResult;
4261
+ _fMediator;
4262
+ _fComponentsStore;
4244
4263
  _toConnectorRect = new RoundedRect();
4245
4264
  get _fSnapConnection() {
4246
4265
  return this._fComponentsStore.fSnapConnection;
@@ -4262,8 +4281,11 @@ class FReassignConnectionDragHandler {
4262
4281
  }
4263
4282
  return result;
4264
4283
  }
4265
- constructor(_fConnection) {
4284
+ constructor(_injector, _fConnection) {
4266
4285
  this._fConnection = _fConnection;
4286
+ this._fResult = _injector.get(FDragHandlerResult);
4287
+ this._fMediator = _injector.get(FMediator);
4288
+ this._fComponentsStore = _injector.get(FComponentsStore);
4267
4289
  this._toConnectorRect = RoundedRect.fromRect(RectExtensions.initialize(this._fConnection.line.point2.x, this._fConnection.line.point2.y));
4268
4290
  this.fData = {
4269
4291
  fConnectionId: this._fConnection.fId
@@ -4300,7 +4322,7 @@ class FReassignConnectionDragHandler {
4300
4322
  }
4301
4323
  _drawConnection(difference, fSide) {
4302
4324
  const line = this._getLineToPointer(difference, fSide);
4303
- this._fConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, fSide);
4325
+ this._fConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fSide);
4304
4326
  this._fConnection.redraw();
4305
4327
  }
4306
4328
  _getLineToPointer(difference, fSide) {
@@ -4310,7 +4332,7 @@ class FReassignConnectionDragHandler {
4310
4332
  if (fClosestInput) {
4311
4333
  const line = this._getLineToClosestInput(fClosestInput);
4312
4334
  this._fSnapConnection.show();
4313
- this._fSnapConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, fClosestInput.fConnector.fConnectableSide);
4335
+ this._fSnapConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide);
4314
4336
  this._fSnapConnection.redraw();
4315
4337
  }
4316
4338
  else {
@@ -4412,6 +4434,7 @@ let FReassignConnectionPreparationExecution = class FReassignConnectionPreparati
4412
4434
  _fMediator = inject(FMediator);
4413
4435
  _fComponentsStore = inject(FComponentsStore);
4414
4436
  _fDraggableDataContext = inject(FDraggableDataContext);
4437
+ _injector = inject(Injector);
4415
4438
  _fConnection;
4416
4439
  get _transform() {
4417
4440
  return this._fComponentsStore.fCanvas.transform;
@@ -4430,7 +4453,7 @@ let FReassignConnectionPreparationExecution = class FReassignConnectionPreparati
4430
4453
  this._fDraggableDataContext.onPointerDownPosition = Point.fromPoint(request.event.getPosition())
4431
4454
  .elementTransform(this._fHost).div(this._transform.scale);
4432
4455
  this._fDraggableDataContext.draggableItems = [
4433
- new FReassignConnectionDragHandler(this._fConnection)
4456
+ new FReassignConnectionDragHandler(this._injector, this._fConnection)
4434
4457
  ];
4435
4458
  setTimeout(() => this._updateConnectionLayer());
4436
4459
  }
@@ -4453,14 +4476,14 @@ let FReassignConnectionPreparationExecution = class FReassignConnectionPreparati
4453
4476
  }
4454
4477
  _getConnectionsFromPoint(position) {
4455
4478
  return this._fConnections.filter((x) => {
4456
- return this._isPointInsideCircle(position, x.fDragHandle.point) && !x.fDraggingDisabled;
4479
+ return x.fDragHandle?.point && this._isPointInsideCircle(position, x.fDragHandle.point) && !x.fDraggingDisabled;
4457
4480
  });
4458
4481
  }
4459
4482
  _isPointInsideCircle(point, circleCenter) {
4460
4483
  return (point.x - circleCenter.x) ** 2 + (point.y - circleCenter.y) ** 2 <= 8 ** 2;
4461
4484
  }
4462
4485
  _updateConnectionLayer() {
4463
- this._fMediator.execute(new UpdateItemAndChildrenLayersRequest(this._fConnection, this._fComponentsStore.fCanvas.fConnectionsContainer.nativeElement));
4486
+ this._fMediator.execute(new UpdateItemAndChildrenLayersRequest(this._fConnection, this._fComponentsStore.fCanvas.fConnectionsContainer().nativeElement));
4464
4487
  }
4465
4488
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FReassignConnectionPreparationExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4466
4489
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FReassignConnectionPreparationExecution });
@@ -4492,8 +4515,8 @@ class FNodeDropToGroupFinalizeRequest {
4492
4515
 
4493
4516
  class FNodeDropToGroupDragHandler {
4494
4517
  notDraggedNodesRects;
4495
- _fComponentsStore = fInject(FComponentsStore);
4496
- _fDraggableDataContext = fInject(FDraggableDataContext);
4518
+ _fComponentsStore;
4519
+ _fDraggableDataContext;
4497
4520
  fEventType = 'move-node-to-parent';
4498
4521
  _DEBOUNCE_TIME = 15;
4499
4522
  get _transform() {
@@ -4502,8 +4525,10 @@ class FNodeDropToGroupDragHandler {
4502
4525
  _onPointerDownPosition = PointExtensions.initialize();
4503
4526
  _debounceTimer = null;
4504
4527
  fNodeWithRect = null;
4505
- constructor(notDraggedNodesRects) {
4528
+ constructor(_injector, notDraggedNodesRects) {
4506
4529
  this.notDraggedNodesRects = notDraggedNodesRects;
4530
+ this._fComponentsStore = _injector.get(FComponentsStore);
4531
+ this._fDraggableDataContext = _injector.get(FDraggableDataContext);
4507
4532
  this._onPointerDownPosition = this._fDraggableDataContext.onPointerDownPosition;
4508
4533
  }
4509
4534
  _toggleParentNode(difference) {
@@ -4548,23 +4573,23 @@ class FNodeDropToGroupDragHandler {
4548
4573
  }
4549
4574
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeDropToGroupDragHandler, decorators: [{
4550
4575
  type: Directive
4551
- }], ctorParameters: () => [{ type: undefined }] });
4576
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: undefined }] });
4552
4577
 
4553
4578
  class BaseConnectionDragHandler {
4554
4579
  fConnection;
4555
- _fMediator = fInject(FMediator);
4556
- _fComponentStore = fInject(FComponentsStore);
4580
+ _fMediator;
4581
+ _fComponentsStore;
4557
4582
  _fOutputWithRect;
4558
4583
  _fInputWithRect;
4559
4584
  get _fOutput() {
4560
- const result = this._fComponentStore.fOutputs.find((x) => x.fId === this.fConnection.fOutputId);
4585
+ const result = this._fComponentsStore.fOutputs.find((x) => x.fId === this.fConnection.fOutputId);
4561
4586
  if (!result) {
4562
4587
  throw new Error(this._connectorNotFoundPrefix(`fOutput with id ${this.fConnection.fOutputId} not found`));
4563
4588
  }
4564
4589
  return result;
4565
4590
  }
4566
4591
  get _fInput() {
4567
- const result = this._fComponentStore.fInputs.find((x) => x.fId === this.fConnection.fInputId);
4592
+ const result = this._fComponentsStore.fInputs.find((x) => x.fId === this.fConnection.fInputId);
4568
4593
  if (!result) {
4569
4594
  throw new Error(this._connectorNotFoundPrefix(`fInput with id ${this.fConnection.fInputId} not found`));
4570
4595
  }
@@ -4572,8 +4597,10 @@ class BaseConnectionDragHandler {
4572
4597
  }
4573
4598
  _sourceDifference = PointExtensions.initialize();
4574
4599
  _targetDifference = PointExtensions.initialize();
4575
- constructor(fConnection) {
4600
+ constructor(_injector, fConnection) {
4576
4601
  this.fConnection = fConnection;
4602
+ this._fMediator = _injector.get(FMediator);
4603
+ this._fComponentsStore = _injector.get(FComponentsStore);
4577
4604
  this._initialize();
4578
4605
  }
4579
4606
  _initialize() {
@@ -4593,7 +4620,7 @@ class BaseConnectionDragHandler {
4593
4620
  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
4621
  }
4595
4622
  _redrawConnection(line) {
4596
- this.fConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, this._fInputWithRect.fConnector.fConnectableSide);
4623
+ this.fConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, this._fInputWithRect.fConnector.fConnectableSide);
4597
4624
  this.fConnection.redraw();
4598
4625
  }
4599
4626
  _connectorNotFoundPrefix(message) {
@@ -4602,8 +4629,8 @@ class BaseConnectionDragHandler {
4602
4629
  }
4603
4630
 
4604
4631
  class SourceConnectionDragHandler extends BaseConnectionDragHandler {
4605
- constructor(fConnection) {
4606
- super(fConnection);
4632
+ constructor(injector, fConnection) {
4633
+ super(injector, fConnection);
4607
4634
  }
4608
4635
  setSourceDifference(difference) {
4609
4636
  super.setSourceDifference(difference);
@@ -4613,8 +4640,8 @@ class SourceConnectionDragHandler extends BaseConnectionDragHandler {
4613
4640
 
4614
4641
  class SourceTargetConnectionDragHandler extends BaseConnectionDragHandler {
4615
4642
  _callTracker = new Map();
4616
- constructor(fConnection) {
4617
- super(fConnection);
4643
+ constructor(injector, fConnection) {
4644
+ super(injector, fConnection);
4618
4645
  }
4619
4646
  setSourceDifference(difference) {
4620
4647
  super.setSourceDifference(difference);
@@ -4633,8 +4660,8 @@ class SourceTargetConnectionDragHandler extends BaseConnectionDragHandler {
4633
4660
  }
4634
4661
 
4635
4662
  class TargetConnectionDragHandler extends BaseConnectionDragHandler {
4636
- constructor(fConnection) {
4637
- super(fConnection);
4663
+ constructor(injector, fConnection) {
4664
+ super(injector, fConnection);
4638
4665
  }
4639
4666
  setTargetDifference(difference) {
4640
4667
  super.setTargetDifference(difference);
@@ -4724,6 +4751,7 @@ class PutInputConnectionHandlersToArrayRequest {
4724
4751
 
4725
4752
  let PutInputConnectionHandlersToArrayExecution = class PutInputConnectionHandlersToArrayExecution {
4726
4753
  _fComponentsStore = inject(FComponentsStore);
4754
+ _injector = inject(Injector);
4727
4755
  get _fConnections() {
4728
4756
  return this._fComponentsStore.fConnections;
4729
4757
  }
@@ -4755,10 +4783,10 @@ let PutInputConnectionHandlersToArrayExecution = class PutInputConnectionHandler
4755
4783
  _createConnectionHandler(outputIds, fConnection) {
4756
4784
  let result;
4757
4785
  if (outputIds.includes(fConnection.fOutputId)) {
4758
- result = new SourceTargetConnectionDragHandler(fConnection);
4786
+ result = new SourceTargetConnectionDragHandler(this._injector, fConnection);
4759
4787
  }
4760
4788
  else {
4761
- result = new TargetConnectionDragHandler(fConnection);
4789
+ result = new TargetConnectionDragHandler(this._injector, fConnection);
4762
4790
  }
4763
4791
  return result;
4764
4792
  }
@@ -4785,6 +4813,7 @@ class PutOutputConnectionHandlersToArrayRequest {
4785
4813
 
4786
4814
  let PutOutputConnectionHandlersToArrayExecution = class PutOutputConnectionHandlersToArrayExecution {
4787
4815
  _fComponentsStore = inject(FComponentsStore);
4816
+ _injector = inject(Injector);
4788
4817
  get _fConnections() {
4789
4818
  return this._fComponentsStore.fConnections;
4790
4819
  }
@@ -4816,10 +4845,10 @@ let PutOutputConnectionHandlersToArrayExecution = class PutOutputConnectionHandl
4816
4845
  _createConnectionHandler(inputIds, fConnection) {
4817
4846
  let result;
4818
4847
  if (inputIds.includes(fConnection.fInputId)) {
4819
- result = new SourceTargetConnectionDragHandler(fConnection);
4848
+ result = new SourceTargetConnectionDragHandler(this._injector, fConnection);
4820
4849
  }
4821
4850
  else {
4822
- result = new SourceConnectionDragHandler(fConnection);
4851
+ result = new SourceConnectionDragHandler(this._injector, fConnection);
4823
4852
  }
4824
4853
  return result;
4825
4854
  }
@@ -4921,12 +4950,15 @@ class FNodeMoveDragHandler {
4921
4950
  class PointBoundsLimiter {
4922
4951
  _onPointerDown;
4923
4952
  _limit;
4924
- _fComponentsStore = fInject(FComponentsStore);
4925
- _vCellSize = this._fComponentsStore.fDraggable.vCellSize;
4926
- _hCellSize = this._fComponentsStore.fDraggable.hCellSize;
4927
- constructor(_onPointerDown, _limit) {
4953
+ _fComponentsStore;
4954
+ _vCellSize;
4955
+ _hCellSize;
4956
+ constructor(_injector, _onPointerDown, _limit) {
4928
4957
  this._onPointerDown = _onPointerDown;
4929
4958
  this._limit = _limit;
4959
+ this._fComponentsStore = _injector.get(FComponentsStore);
4960
+ this._vCellSize = this._fComponentsStore.fDraggable.vCellSize;
4961
+ this._hCellSize = this._fComponentsStore.fDraggable.hCellSize;
4930
4962
  }
4931
4963
  limit(difference, adjustCellSize) {
4932
4964
  const { min, max } = this._limit;
@@ -4963,13 +4995,14 @@ class FSummaryNodeMoveDragHandler {
4963
4995
  commonRect;
4964
4996
  fEventType = 'move-node';
4965
4997
  fData;
4966
- _fComponentStore = fInject(FComponentsStore);
4998
+ _fComponentStore;
4967
4999
  _fBoundsLimiter;
4968
- constructor(limits, fHandlers, commonRect) {
5000
+ constructor(_injector, limits, fHandlers, commonRect) {
4969
5001
  this.limits = limits;
4970
5002
  this.fHandlers = fHandlers;
4971
5003
  this.commonRect = commonRect;
4972
- this._fBoundsLimiter = new PointBoundsLimiter(this.commonRect, limits);
5004
+ this._fComponentStore = _injector.get(FComponentsStore);
5005
+ this._fBoundsLimiter = new PointBoundsLimiter(_injector, this.commonRect, limits);
4973
5006
  this.fData = {
4974
5007
  fNodeIds: this.fHandlers.map((x) => x.fNode.fId)
4975
5008
  };
@@ -4991,13 +5024,14 @@ let CreateMoveNodesDragModelFromSelectionExecution = class CreateMoveNodesDragMo
4991
5024
  _fMediator = inject(FMediator);
4992
5025
  _fComponentsStore = inject(FComponentsStore);
4993
5026
  _fDraggableDataContext = inject(FDraggableDataContext);
5027
+ _injector = inject(Injector);
4994
5028
  handle(request) {
4995
5029
  const fDraggedNodes = this._getDraggedNodes(request.nodeWithDisabledSelection);
4996
5030
  const fNodesToDrag = this._getNodesToDragWithCommonLimits(fDraggedNodes);
4997
5031
  const fDragHandlers = this._mapToNodeDragHandlers(fNodesToDrag);
4998
5032
  this._setConnectionsHandlersToNodes(fDragHandlers, this._getAllOutputIds(fNodesToDrag), this._getAllInputIds(fNodesToDrag));
4999
5033
  const commonLimits = this._calculateCommonLimits(this._getNodesMoveLimits(fNodesToDrag, [], fDraggedNodes));
5000
- return new FSummaryNodeMoveDragHandler(commonLimits, fDragHandlers, this._getDraggedNodesBoundingRect(fNodesToDrag));
5034
+ return new FSummaryNodeMoveDragHandler(this._injector, commonLimits, fDragHandlers, this._getDraggedNodesBoundingRect(fNodesToDrag));
5001
5035
  }
5002
5036
  _getDraggedNodes(nodeWithDisabledSelection) {
5003
5037
  const result = this._getNodesFromSelection();
@@ -5102,15 +5136,16 @@ class FLineAlignmentDragHandler {
5102
5136
  _rects;
5103
5137
  _restrictions;
5104
5138
  fEventType = 'line-alignment';
5105
- _fComponentsStore = fInject(FComponentsStore);
5139
+ _fComponentsStore;
5106
5140
  _debounceTimer = null;
5107
5141
  _transform;
5108
- constructor(_lineService, _size, _draggedNodeRect, _rects, _restrictions) {
5142
+ constructor(_injector, _lineService, _size, _draggedNodeRect, _rects, _restrictions) {
5109
5143
  this._lineService = _lineService;
5110
5144
  this._size = _size;
5111
5145
  this._draggedNodeRect = _draggedNodeRect;
5112
5146
  this._rects = _rects;
5113
5147
  this._restrictions = _restrictions;
5148
+ this._fComponentsStore = _injector.get(FComponentsStore);
5114
5149
  this._transform = this._fComponentsStore.fCanvas?.transform;
5115
5150
  }
5116
5151
  onPointerMove(difference) {
@@ -5143,7 +5178,7 @@ class FLineAlignmentDragHandler {
5143
5178
  }
5144
5179
  findNearestCoordinate(difference) {
5145
5180
  const rect = RectExtensions.addPoint(this._draggedNodeRect, difference);
5146
- return findClosestAlignment(this._rects, rect, this._fComponentsStore.fLineAlignment.fAlignThreshold);
5181
+ return findClosestAlignment(this._rects, rect, this._fComponentsStore.fLineAlignment.fAlignThreshold());
5147
5182
  }
5148
5183
  onPointerUp() {
5149
5184
  this._lineService.hideVerticalLine();
@@ -5226,7 +5261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
5226
5261
  }] });
5227
5262
 
5228
5263
  class FLineAlignmentComponent extends FLineAlignmentBase {
5229
- fAlignThreshold = 10;
5264
+ fAlignThreshold = input(10, { transform: numberAttribute });
5230
5265
  _fMediator = inject(FMediator);
5231
5266
  _elementReference = inject(ElementRef);
5232
5267
  get hostElement() {
@@ -5239,7 +5274,7 @@ class FLineAlignmentComponent extends FLineAlignmentBase {
5239
5274
  this._fMediator.execute(new RemoveLineAlignmentFromStoreRequest());
5240
5275
  }
5241
5276
  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: [
5277
+ 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
5278
  { provide: F_LINE_ALIGNMENT, useExisting: FLineAlignmentComponent }
5244
5279
  ], 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
5280
  }
@@ -5250,9 +5285,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
5250
5285
  }, providers: [
5251
5286
  { provide: F_LINE_ALIGNMENT, useExisting: FLineAlignmentComponent }
5252
5287
  ], 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
- }] } });
5288
+ }] });
5256
5289
 
5257
5290
  const F_LINE_ALIGNMENT_PROVIDERS = [
5258
5291
  FLineAlignmentComponent
@@ -5263,12 +5296,13 @@ let LineAlignmentPreparationExecution = class LineAlignmentPreparationExecution
5263
5296
  _fComponentsStore = inject(FComponentsStore);
5264
5297
  _fDraggableDataContext = inject(FDraggableDataContext);
5265
5298
  _fBrowser = inject(BrowserService);
5299
+ _injector = inject(Injector);
5266
5300
  _lineService;
5267
5301
  handle(request) {
5268
5302
  this._addLineAlignmentDragHandler(request.fNodes, request.commonRect);
5269
5303
  }
5270
5304
  _addLineAlignmentDragHandler(fNodes, commonRect) {
5271
- this._fDraggableDataContext.draggableItems.push(new FLineAlignmentDragHandler(this._lineService || this._createLineService(), this._getFlowHostSize(), commonRect, this._getStaticNodeRects(fNodes), this._getCommonRestrictions()));
5305
+ this._fDraggableDataContext.draggableItems.push(new FLineAlignmentDragHandler(this._injector, this._lineService || this._createLineService(), this._getFlowHostSize(), commonRect, this._getStaticNodeRects(fNodes), this._getCommonRestrictions()));
5272
5306
  }
5273
5307
  _getFlowHostSize() {
5274
5308
  return this._fMediator.execute(new GetFlowHostElementRequest())
@@ -5534,6 +5568,7 @@ let FNodeDropToGroupPreparationExecution = class FNodeDropToGroupPreparationExec
5534
5568
  _fMediator = inject(FMediator);
5535
5569
  _fDraggableDataContext = inject(FDraggableDataContext);
5536
5570
  _fComponentsStore = inject(FComponentsStore);
5571
+ _injector = inject(Injector);
5537
5572
  get _fNodes() {
5538
5573
  return this._fComponentsStore.fNodes;
5539
5574
  }
@@ -5552,7 +5587,7 @@ let FNodeDropToGroupPreparationExecution = class FNodeDropToGroupPreparationExec
5552
5587
  if (!fNode) {
5553
5588
  throw new Error('Node not found');
5554
5589
  }
5555
- this._fDraggableDataContext.draggableItems.push(new FNodeDropToGroupDragHandler(this._getNotDraggedNodesRects()));
5590
+ this._fDraggableDataContext.draggableItems.push(new FNodeDropToGroupDragHandler(this._injector, this._getNotDraggedNodesRects()));
5556
5591
  }
5557
5592
  _isValid() {
5558
5593
  return this._fDraggableDataContext.draggableItems
@@ -5599,17 +5634,17 @@ const NODE_DROP_TO_GROUP_PROVIDERS = [
5599
5634
 
5600
5635
  class ApplyChildResizeRestrictionsRequest {
5601
5636
  rect;
5602
- restrictionsRect;
5603
- constructor(rect, restrictionsRect) {
5637
+ restrictions;
5638
+ constructor(rect, restrictions) {
5604
5639
  this.rect = rect;
5605
- this.restrictionsRect = restrictionsRect;
5640
+ this.restrictions = restrictions;
5606
5641
  }
5607
5642
  }
5608
5643
 
5609
5644
  const CHILD_RESIZE_OFFSET = 0;
5610
5645
  let ApplyChildResizeRestrictionsExecution = class ApplyChildResizeRestrictionsExecution {
5611
5646
  handle(request) {
5612
- this._apply(request.rect, request.restrictionsRect);
5647
+ this._apply(request.rect, request.restrictions.childrenBounds);
5613
5648
  }
5614
5649
  _apply(rect, restrictionsRect) {
5615
5650
  this._restrictLeft(rect, restrictionsRect);
@@ -5871,15 +5906,16 @@ class FNodeResizeDragHandler {
5871
5906
  _fResizeHandleType;
5872
5907
  fEventType = 'node-resize';
5873
5908
  fData;
5874
- _fMediator = fInject(FMediator);
5909
+ _fMediator;
5875
5910
  _originalRect;
5876
5911
  _resizeRestrictions;
5877
- constructor(_fNode, _fResizeHandleType) {
5912
+ constructor(_injector, _fNode, _fResizeHandleType) {
5878
5913
  this._fNode = _fNode;
5879
5914
  this._fResizeHandleType = _fResizeHandleType;
5880
5915
  this.fData = {
5881
5916
  fNodeId: _fNode.fId,
5882
5917
  };
5918
+ this._fMediator = _injector.get(FMediator);
5883
5919
  }
5884
5920
  prepareDragSequence() {
5885
5921
  this._originalRect = this._getOriginalNodeRect();
@@ -5895,9 +5931,10 @@ class FNodeResizeDragHandler {
5895
5931
  this._applyResizeChanges(this._calculateChangedRect(difference));
5896
5932
  }
5897
5933
  _calculateChangedRect(difference) {
5898
- return this._calculatePosition(difference, this._calculateSize(difference, this._resizeRestrictions.minimumSize));
5934
+ const changedSize = this._calculateSize(difference);
5935
+ return this._calculatePosition(difference, changedSize);
5899
5936
  }
5900
- _calculateSize(difference, minimumSize) {
5937
+ _calculateSize(difference) {
5901
5938
  return this._fMediator.execute(new CalculateChangedSizeRequest(this._originalRect, difference, this._fResizeHandleType));
5902
5939
  }
5903
5940
  _calculatePosition(difference, changedSize) {
@@ -5905,7 +5942,7 @@ class FNodeResizeDragHandler {
5905
5942
  }
5906
5943
  _applyResizeChanges(changedRect) {
5907
5944
  if (this._resizeRestrictions.childrenBounds) {
5908
- this._applyChildRestrictions(changedRect, this._resizeRestrictions.childrenBounds);
5945
+ this._applyChildRestrictions(changedRect);
5909
5946
  }
5910
5947
  this._applyParentRestrictions(changedRect, this._resizeRestrictions.parentBounds);
5911
5948
  this._updateNodeRendering(changedRect);
@@ -5915,8 +5952,8 @@ class FNodeResizeDragHandler {
5915
5952
  this._fNode.updateSize(changedRect);
5916
5953
  this._fNode.redraw();
5917
5954
  }
5918
- _applyChildRestrictions(changedRect, restrictions) {
5919
- this._fMediator.execute(new ApplyChildResizeRestrictionsRequest(changedRect, restrictions));
5955
+ _applyChildRestrictions(changedRect) {
5956
+ this._fMediator.execute(new ApplyChildResizeRestrictionsRequest(changedRect, this._resizeRestrictions));
5920
5957
  }
5921
5958
  _applyParentRestrictions(changedRect, restrictions) {
5922
5959
  this._fMediator.execute(new ApplyParentResizeRestrictionsRequest(changedRect, restrictions));
@@ -5965,6 +6002,7 @@ let FNodeResizePreparationExecution = class FNodeResizePreparationExecution {
5965
6002
  _fMediator = inject(FMediator);
5966
6003
  _fComponentsStore = inject(FComponentsStore);
5967
6004
  _fDraggableDataContext = inject(FDraggableDataContext);
6005
+ _injector = inject(Injector);
5968
6006
  get _transform() {
5969
6007
  return this._fComponentsStore.fCanvas.transform;
5970
6008
  }
@@ -5982,7 +6020,7 @@ let FNodeResizePreparationExecution = class FNodeResizePreparationExecution {
5982
6020
  .elementTransform(this._fHost).div(this._transform.scale);
5983
6021
  const resizeHandleType = EFResizeHandleType[this._getHandleType(request.event.targetElement)];
5984
6022
  this._fDraggableDataContext.draggableItems = [
5985
- new FNodeResizeDragHandler(this._fNode, resizeHandleType)
6023
+ new FNodeResizeDragHandler(this._injector, this._fNode, resizeHandleType)
5986
6024
  ];
5987
6025
  }
5988
6026
  _isValid(request) {
@@ -6031,6 +6069,208 @@ const NODE_RESIZE_PROVIDERS = [
6031
6069
  FNodeResizePreparationExecution,
6032
6070
  ];
6033
6071
 
6072
+ class FNodeRotateFinalizeRequest {
6073
+ event;
6074
+ constructor(event) {
6075
+ this.event = event;
6076
+ }
6077
+ }
6078
+
6079
+ function calculateDifferenceAfterRotation(position, rotation, pivot) {
6080
+ const { x: newX, y: newY } = calculatePositionAfterRotation(position, rotation, pivot);
6081
+ const dx = newX - position.x;
6082
+ const dy = newY - position.y;
6083
+ return { x: dx, y: dy };
6084
+ }
6085
+ function calculatePositionAfterRotation(position, rotation, pivot) {
6086
+ const translatedX = position.x - pivot.x;
6087
+ const translatedY = position.y - pivot.y;
6088
+ const theta = rotation * Math.PI / 180;
6089
+ const cosTheta = Math.cos(theta);
6090
+ const sinTheta = Math.sin(theta);
6091
+ const rotatedX = translatedX * cosTheta - translatedY * sinTheta;
6092
+ const rotatedY = translatedX * sinTheta + translatedY * cosTheta;
6093
+ const newX = rotatedX + pivot.x;
6094
+ const newY = rotatedY + pivot.y;
6095
+ return { x: newX, y: newY };
6096
+ }
6097
+
6098
+ class FNodeRotateDragHandler {
6099
+ _fNode;
6100
+ _fSourceHandlers;
6101
+ _fTargetHandlers;
6102
+ _fComponentsStore;
6103
+ _fMediator;
6104
+ _fDraggableDataContext;
6105
+ fEventType = 'node-rotate';
6106
+ fData;
6107
+ _initialRotationToX = 0;
6108
+ _startRotation = 0;
6109
+ _onDownPoint;
6110
+ _fNodeRect;
6111
+ get _transform() {
6112
+ return this._fComponentsStore.fCanvas.transform;
6113
+ }
6114
+ constructor(_injector, _fNode, _fSourceHandlers, _fTargetHandlers) {
6115
+ this._fNode = _fNode;
6116
+ this._fSourceHandlers = _fSourceHandlers;
6117
+ this._fTargetHandlers = _fTargetHandlers;
6118
+ this._startRotation = this._fNode.rotate;
6119
+ this.fData = {
6120
+ fNodeId: _fNode.fId,
6121
+ };
6122
+ this._fComponentsStore = _injector.get(FComponentsStore);
6123
+ this._fMediator = _injector.get(FMediator);
6124
+ this._fDraggableDataContext = _injector.get(FDraggableDataContext);
6125
+ }
6126
+ prepareDragSequence() {
6127
+ this._fNodeRect = this._getOriginalNodeRect();
6128
+ this._onDownPoint = this._calculateDownPoint();
6129
+ this._initialRotationToX = this._calculateAngleBetweenVectors(this._onDownPoint) - this._startRotation;
6130
+ }
6131
+ _getOriginalNodeRect() {
6132
+ return this._fMediator.execute(new GetNormalizedElementRectRequest(this._fNode.hostElement, false));
6133
+ }
6134
+ _calculateDownPoint() {
6135
+ return PointExtensions.sub(this._fDraggableDataContext.onPointerDownPosition, PointExtensions.sum(this._transform.position, this._transform.scaledPosition));
6136
+ }
6137
+ _calculateAngleBetweenVectors(position) {
6138
+ return Math.atan2(position.y - this._fNodeRect.gravityCenter.y, position.x - this._fNodeRect.gravityCenter.x) * (180 / Math.PI);
6139
+ }
6140
+ onPointerMove(difference) {
6141
+ const position = PointExtensions.sum(this._onDownPoint, difference);
6142
+ const rotation = this._calculateAngleBetweenVectors(position) - this._initialRotationToX;
6143
+ this._updateNodeRendering(rotation);
6144
+ this._fSourceHandlers.forEach((x) => {
6145
+ x.connection.setSourceDifference(this._calculateDifferenceAfterRotation(x.connector, rotation));
6146
+ });
6147
+ this._fTargetHandlers.forEach((x) => {
6148
+ x.connection.setTargetDifference(this._calculateDifferenceAfterRotation(x.connector, rotation));
6149
+ });
6150
+ }
6151
+ _updateNodeRendering(rotation) {
6152
+ this._fNode.updateRotate(rotation);
6153
+ this._fNode.redraw();
6154
+ }
6155
+ _calculateDifferenceAfterRotation(position, rotation) {
6156
+ return calculateDifferenceAfterRotation(position, rotation - this._startRotation, this._fNodeRect.gravityCenter);
6157
+ }
6158
+ onPointerUp() {
6159
+ this._fNode.rotateChange.emit(this._fNode.rotate);
6160
+ }
6161
+ }
6162
+
6163
+ let FNodeRotateFinalizeExecution = class FNodeRotateFinalizeExecution {
6164
+ _fDraggableDataContext = inject(FDraggableDataContext);
6165
+ handle(request) {
6166
+ if (!this._isValid()) {
6167
+ return;
6168
+ }
6169
+ this._fDraggableDataContext.draggableItems.forEach((x) => {
6170
+ x.onPointerUp?.();
6171
+ });
6172
+ }
6173
+ _isValid() {
6174
+ return this._fDraggableDataContext.draggableItems.some((x) => x instanceof FNodeRotateDragHandler);
6175
+ }
6176
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotateFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6177
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotateFinalizeExecution });
6178
+ };
6179
+ FNodeRotateFinalizeExecution = __decorate([
6180
+ FExecutionRegister(FNodeRotateFinalizeRequest)
6181
+ ], FNodeRotateFinalizeExecution);
6182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotateFinalizeExecution, decorators: [{
6183
+ type: Injectable
6184
+ }] });
6185
+
6186
+ class FNodeRotatePreparationRequest {
6187
+ event;
6188
+ fTrigger;
6189
+ constructor(event, fTrigger) {
6190
+ this.event = event;
6191
+ this.fTrigger = fTrigger;
6192
+ }
6193
+ }
6194
+
6195
+ let FNodeRotatePreparationExecution = class FNodeRotatePreparationExecution {
6196
+ _fMediator = inject(FMediator);
6197
+ _fComponentsStore = inject(FComponentsStore);
6198
+ _fDraggableDataContext = inject(FDraggableDataContext);
6199
+ _injector = inject(Injector);
6200
+ get _transform() {
6201
+ return this._fComponentsStore.fCanvas.transform;
6202
+ }
6203
+ get _fHost() {
6204
+ return this._fComponentsStore.fFlow.hostElement;
6205
+ }
6206
+ _fNode;
6207
+ handle(request) {
6208
+ if (!this._isValid(request) || !this._isValidTrigger(request)) {
6209
+ return;
6210
+ }
6211
+ this._selectAndUpdateNodeLayer();
6212
+ this._fDraggableDataContext.onPointerDownScale = this._transform.scale;
6213
+ this._fDraggableDataContext.onPointerDownPosition = Point.fromPoint(request.event.getPosition())
6214
+ .elementTransform(this._fHost).div(this._transform.scale);
6215
+ this._fDraggableDataContext.draggableItems = [
6216
+ new FNodeRotateDragHandler(this._injector, this._fNode, this._calculateOutputConnectionsDragHandlers(), this._calculateInputConnectionsDragHandlers())
6217
+ ];
6218
+ }
6219
+ _isValid(request) {
6220
+ return this._fDraggableDataContext.isEmpty()
6221
+ && isRotateHandle(request.event.targetElement)
6222
+ && this._isNodeCanBeDragged(this._getNode(request.event.targetElement));
6223
+ }
6224
+ _isNodeCanBeDragged(fNode) {
6225
+ return !!fNode && !fNode.fDraggingDisabled;
6226
+ }
6227
+ _getNode(element) {
6228
+ this._fNode = this._fComponentsStore
6229
+ .fNodes.find(x => x.isContains(element));
6230
+ return this._fNode;
6231
+ }
6232
+ _isValidTrigger(request) {
6233
+ return isValidEventTrigger(request.event.originalEvent, request.fTrigger);
6234
+ }
6235
+ _selectAndUpdateNodeLayer() {
6236
+ this._fMediator.execute(new SelectAndUpdateNodeLayerRequest(this._fNode));
6237
+ }
6238
+ _calculateInputConnectionsDragHandlers() {
6239
+ return this._fMediator.execute(new CalculateInputConnectionsRequest(this._fNode)).map((x) => {
6240
+ const connector = this._fComponentsStore.fInputs.find((y) => y.fId === x.fInputId).hostElement;
6241
+ return {
6242
+ connection: new TargetConnectionDragHandler(this._injector, x),
6243
+ connector: this._fMediator.execute(new GetNormalizedElementRectRequest(connector, false)).gravityCenter
6244
+ };
6245
+ });
6246
+ }
6247
+ _calculateOutputConnectionsDragHandlers() {
6248
+ return this._fMediator.execute(new CalculateOutputConnectionsRequest(this._fNode)).map((x) => {
6249
+ const connector = this._fComponentsStore.fOutputs.find((y) => y.fId === x.fOutputId).hostElement;
6250
+ return {
6251
+ connection: new SourceConnectionDragHandler(this._injector, x),
6252
+ connector: this._fMediator.execute(new GetNormalizedElementRectRequest(connector, false)).gravityCenter
6253
+ };
6254
+ });
6255
+ }
6256
+ _getOriginalNodeRect() {
6257
+ return this._fMediator.execute(new GetNormalizedElementRectRequest(this._fNode.hostElement, false));
6258
+ }
6259
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotatePreparationExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6260
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotatePreparationExecution });
6261
+ };
6262
+ FNodeRotatePreparationExecution = __decorate([
6263
+ FExecutionRegister(FNodeRotatePreparationRequest)
6264
+ ], FNodeRotatePreparationExecution);
6265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FNodeRotatePreparationExecution, decorators: [{
6266
+ type: Injectable
6267
+ }] });
6268
+
6269
+ const NODE_ROTATE_PROVIDERS = [
6270
+ FNodeRotateFinalizeExecution,
6271
+ FNodeRotatePreparationExecution,
6272
+ ];
6273
+
6034
6274
  class FSingleSelectRequest {
6035
6275
  event;
6036
6276
  fMultiSelectTrigger;
@@ -6285,18 +6525,21 @@ class FExternalItemDragHandler {
6285
6525
  _fExternalItem;
6286
6526
  fEventType = 'external-item';
6287
6527
  fData;
6288
- _fResult = fInject((FDragHandlerResult));
6289
- _fMediator = fInject(FMediator);
6290
- _fBrowser = fInject(BrowserService);
6528
+ _fResult;
6529
+ _fMediator;
6530
+ _fBrowser;
6291
6531
  _preview;
6292
6532
  _placeholder;
6293
6533
  _onPointerDownRect = RectExtensions.initialize();
6294
6534
  get _fItemHost() {
6295
6535
  return this._fExternalItem.hostElement;
6296
6536
  }
6297
- constructor(_fExternalItem) {
6537
+ constructor(_injector, _fExternalItem) {
6298
6538
  this._fExternalItem = _fExternalItem;
6299
6539
  this.fData = { fData: _fExternalItem.fData };
6540
+ this._fResult = _injector.get(FDragHandlerResult);
6541
+ this._fMediator = _injector.get(FMediator);
6542
+ this._fBrowser = _injector.get(BrowserService);
6300
6543
  }
6301
6544
  prepareDragSequence() {
6302
6545
  this._onPointerDownRect = this._getExternalItemRect();
@@ -6419,6 +6662,7 @@ let FExternalItemPreparationExecution = class FExternalItemPreparationExecution
6419
6662
  _fExternalItemService = inject(FExternalItemService);
6420
6663
  _fDraggableDataContext = inject(FDraggableDataContext);
6421
6664
  _fComponentsStore = inject(FComponentsStore);
6665
+ _injector = inject(Injector);
6422
6666
  get _fHost() {
6423
6667
  return this._fComponentsStore.fFlow.hostElement;
6424
6668
  }
@@ -6429,7 +6673,7 @@ let FExternalItemPreparationExecution = class FExternalItemPreparationExecution
6429
6673
  this._fDraggableDataContext.onPointerDownScale = 1;
6430
6674
  this._fDraggableDataContext.onPointerDownPosition = Point.fromPoint(request.event.getPosition()).elementTransform(this._fHost);
6431
6675
  this._fDraggableDataContext.draggableItems = [
6432
- new FExternalItemDragHandler(this._getExternalItem(request.event.targetElement))
6676
+ new FExternalItemDragHandler(this._injector, this._getExternalItem(request.event.targetElement))
6433
6677
  ];
6434
6678
  }
6435
6679
  _isValid(request) {
@@ -6647,6 +6891,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
6647
6891
  }]
6648
6892
  }] });
6649
6893
 
6894
+ const F_EXTERNAL_ITEM_PROVIDERS = [
6895
+ FExternalItemDirective
6896
+ ];
6897
+
6650
6898
  const F_BEFORE_MAIN_PLUGIN = new InjectionToken('F_BEFORE_MAIN_PLUGIN');
6651
6899
  const F_AFTER_MAIN_PLUGIN = new InjectionToken('F_AFTER_MAIN_PLUGIN');
6652
6900
 
@@ -6656,7 +6904,6 @@ class FDraggableDirective extends FDraggableBase {
6656
6904
  _fResult = inject(FDragHandlerResult);
6657
6905
  _fMediator = inject(FMediator);
6658
6906
  _fPlatform = inject(PlatformService);
6659
- _injector = inject(Injector);
6660
6907
  disabled = false;
6661
6908
  get hostElement() {
6662
6909
  return this._elementReference.nativeElement;
@@ -6667,6 +6914,7 @@ class FDraggableDirective extends FDraggableBase {
6667
6914
  fReassignConnectionTrigger = defaultEventTrigger;
6668
6915
  fCreateConnectionTrigger = defaultEventTrigger;
6669
6916
  fNodeResizeTrigger = defaultEventTrigger;
6917
+ fNodeRotateTrigger = defaultEventTrigger;
6670
6918
  fNodeMoveTrigger = defaultEventTrigger;
6671
6919
  fCanvasMoveTrigger = defaultEventTrigger;
6672
6920
  fExternalItemTrigger = defaultEventTrigger;
@@ -6695,7 +6943,6 @@ class FDraggableDirective extends FDraggableBase {
6695
6943
  super.subscribe(this._fBrowser.document);
6696
6944
  }
6697
6945
  onPointerDown(event) {
6698
- FInjector.set(this._injector);
6699
6946
  this._fResult.clear();
6700
6947
  this._fMediator.execute(new InitializeDragSequenceRequest());
6701
6948
  this._beforePlugins.forEach((p) => p.onPointerDown?.(event));
@@ -6712,6 +6959,7 @@ class FDraggableDirective extends FDraggableBase {
6712
6959
  prepareDragSequence(event) {
6713
6960
  this._beforePlugins.forEach((p) => p.prepareDragSequence?.(event));
6714
6961
  this._fMediator.execute(new FNodeResizePreparationRequest(event, this.fNodeResizeTrigger));
6962
+ this._fMediator.execute(new FNodeRotatePreparationRequest(event, this.fNodeRotateTrigger));
6715
6963
  this._fMediator.execute(new FNodeMovePreparationRequest(event, this.fNodeMoveTrigger));
6716
6964
  this._fMediator.execute(new FNodeDropToGroupPreparationRequest(event));
6717
6965
  this._fMediator.execute(new FCanvasMovePreparationRequest(event, this.fCanvasMoveTrigger));
@@ -6730,26 +6978,24 @@ class FDraggableDirective extends FDraggableBase {
6730
6978
  this._fMediator.execute(new FReassignConnectionFinalizeRequest(event));
6731
6979
  this._fMediator.execute(new FCreateConnectionFinalizeRequest(event));
6732
6980
  this._fMediator.execute(new FNodeResizeFinalizeRequest(event));
6981
+ this._fMediator.execute(new FNodeRotateFinalizeRequest(event));
6733
6982
  this._fMediator.execute(new FNodeMoveFinalizeRequest(event));
6734
6983
  this._fMediator.execute(new FNodeDropToGroupFinalizeRequest(event));
6735
6984
  this._fMediator.execute(new FCanvasMoveFinalizeRequest(event));
6736
6985
  this._fMediator.execute(new FExternalItemFinalizeRequest(event));
6737
6986
  this._afterPlugins.forEach((x) => x.onPointerUp?.(event));
6738
6987
  this._fMediator.execute(new EndDragSequenceRequest());
6739
- FInjector.clear();
6740
6988
  }
6741
6989
  finalizeDragSequence() {
6742
6990
  this._fMediator.execute(new EmitSelectionChangeEventRequest());
6743
- FInjector.clear();
6744
6991
  this._fResult.clear();
6745
6992
  }
6746
6993
  ngOnDestroy() {
6747
6994
  this._fMediator.execute(new RemoveDndFromStoreRequest());
6748
6995
  super.unsubscribe();
6749
- FInjector.clear();
6750
6996
  }
6751
6997
  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 });
6998
+ 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
6999
  }
6754
7000
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDraggableDirective, decorators: [{
6755
7001
  type: Directive,
@@ -6774,6 +7020,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
6774
7020
  type: Input
6775
7021
  }], fNodeResizeTrigger: [{
6776
7022
  type: Input
7023
+ }], fNodeRotateTrigger: [{
7024
+ type: Input
6777
7025
  }], fNodeMoveTrigger: [{
6778
7026
  type: Input
6779
7027
  }], fCanvasMoveTrigger: [{
@@ -7382,6 +7630,7 @@ const F_DRAGGABLE_PROVIDERS = [
7382
7630
  ...NODE_PROVIDERS,
7383
7631
  ...NODE_DROP_TO_GROUP_PROVIDERS,
7384
7632
  ...NODE_RESIZE_PROVIDERS,
7633
+ ...NODE_ROTATE_PROVIDERS,
7385
7634
  ...F_SELECTION_AREA_DRAG_AND_DROP_PROVIDERS,
7386
7635
  ...F_MINIMAP_DRAG_AND_DROP_PROVIDERS
7387
7636
  ];
@@ -7655,61 +7904,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
7655
7904
  }], ctorParameters: () => [{ type: FComponentsStore }] });
7656
7905
 
7657
7906
  let UpdateItemAndChildrenLayersExecution = class UpdateItemAndChildrenLayersExecution {
7658
- fComponentsStore;
7659
- fMediator;
7660
- get fGroupsContainer() {
7661
- return this.fComponentsStore.fCanvas.fGroupsContainer.nativeElement;
7907
+ _fMediator = inject(FMediator);
7908
+ _fComponentsStore = inject(FComponentsStore);
7909
+ get _fCanvas() {
7910
+ return this._fComponentsStore.fCanvas;
7662
7911
  }
7663
- get fNodesContainer() {
7664
- return this.fComponentsStore.fCanvas.fNodesContainer.nativeElement;
7912
+ get _fGroupsContainer() {
7913
+ return this._fCanvas.fGroupsContainer().nativeElement;
7665
7914
  }
7666
- get fConnectionsContainer() {
7667
- return this.fComponentsStore.fCanvas.fConnectionsContainer.nativeElement;
7915
+ get _fNodesContainer() {
7916
+ return this._fCanvas.fNodesContainer().nativeElement;
7668
7917
  }
7669
- constructor(fComponentsStore, fMediator) {
7670
- this.fComponentsStore = fComponentsStore;
7671
- this.fMediator = fMediator;
7918
+ get _fConnectionsContainer() {
7919
+ return this._fCanvas.fConnectionsContainer().nativeElement;
7672
7920
  }
7673
7921
  handle(request) {
7674
7922
  switch (request.itemContainer) {
7675
- case this.fGroupsContainer:
7676
- this.handleGroup(request);
7923
+ case this._fGroupsContainer:
7924
+ this._handleGroup(request);
7677
7925
  break;
7678
- case this.fNodesContainer:
7679
- this.handleNode(request);
7926
+ case this._fNodesContainer:
7927
+ this._handleNode(request);
7680
7928
  break;
7681
- case this.fConnectionsContainer:
7682
- this.handleConnection(request);
7929
+ case this._fConnectionsContainer:
7930
+ this._handleConnection(request);
7683
7931
  break;
7684
7932
  default:
7685
7933
  throw new Error('Unknown container');
7686
7934
  }
7687
7935
  }
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);
7936
+ _handleGroup(request) {
7937
+ const childrenNodesAndGroups = this._getChildrenNodesAndGroups(request.item.fId);
7938
+ const childrenGroups = this._getChildrenGroups(childrenNodesAndGroups);
7939
+ this._updateLayers(this._fGroupsContainer, request.item.hostElement, childrenGroups);
7940
+ const childrenNodes = this._getChildrenNodes(childrenNodesAndGroups);
7693
7941
  if (childrenNodes.length) {
7694
- this.updateLayers(this.fNodesContainer, childrenNodes[0], childrenNodes);
7942
+ this._updateLayers(this._fNodesContainer, childrenNodes[0], childrenNodes);
7695
7943
  }
7696
7944
  }
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);
7945
+ _handleNode(request) {
7946
+ const childrenNodesAndGroups = this._getChildrenNodesAndGroups(request.item.fId);
7947
+ const childrenNodes = this._getChildrenNodes(childrenNodesAndGroups);
7948
+ this._updateLayers(request.itemContainer, request.item.hostElement, childrenNodes);
7701
7949
  }
7702
- handleConnection(request) {
7703
- this.updateLayers(request.itemContainer, request.item.hostElement, []);
7950
+ _handleConnection(request) {
7951
+ this._updateLayers(request.itemContainer, request.item.hostElement, []);
7704
7952
  }
7705
- updateLayers(itemContainer, item, elementsThatShouldBeInFront) {
7953
+ _updateLayers(itemContainer, item, elementsThatShouldBeInFront) {
7706
7954
  const allElements = Array.from(itemContainer.children);
7707
7955
  const targetIndex = allElements.findIndex((x) => x === item);
7708
- if (this.isAnythingNeedToBeMoved(allElements, targetIndex, elementsThatShouldBeInFront)) {
7709
- this.fMediator.execute(new MoveFrontElementsBeforeTargetElementRequest(itemContainer, allElements, elementsThatShouldBeInFront, targetIndex));
7956
+ if (this._isAnythingNeedToBeMoved(allElements, targetIndex, elementsThatShouldBeInFront)) {
7957
+ this._fMediator.execute(new MoveFrontElementsBeforeTargetElementRequest(itemContainer, allElements, elementsThatShouldBeInFront, targetIndex));
7710
7958
  }
7711
7959
  }
7712
- isAnythingNeedToBeMoved(allElements, targetIndex, elementsThatShouldBeInFront) {
7960
+ _isAnythingNeedToBeMoved(allElements, targetIndex, elementsThatShouldBeInFront) {
7713
7961
  for (let i = targetIndex + 1; i < allElements.length; i++) {
7714
7962
  if (!elementsThatShouldBeInFront.includes(allElements[i])) {
7715
7963
  return true;
@@ -7717,20 +7965,20 @@ let UpdateItemAndChildrenLayersExecution = class UpdateItemAndChildrenLayersExec
7717
7965
  }
7718
7966
  return false;
7719
7967
  }
7720
- getChildrenGroups(elements) {
7721
- const allElements = Array.from(this.fGroupsContainer.children);
7722
- return elements.filter((x) => this.fGroupsContainer.contains(x))
7968
+ _getChildrenGroups(elements) {
7969
+ const allElements = Array.from(this._fGroupsContainer.children);
7970
+ return elements.filter((x) => this._fGroupsContainer.contains(x))
7723
7971
  .sort((a, b) => allElements.indexOf(a) - allElements.indexOf(b));
7724
7972
  }
7725
- getChildrenNodes(elements) {
7726
- const allElements = Array.from(this.fNodesContainer.children);
7727
- return elements.filter((x) => this.fNodesContainer.contains(x))
7973
+ _getChildrenNodes(elements) {
7974
+ const allElements = Array.from(this._fNodesContainer.children);
7975
+ return elements.filter((x) => this._fNodesContainer.contains(x))
7728
7976
  .sort((a, b) => allElements.indexOf(a) - allElements.indexOf(b));
7729
7977
  }
7730
- getChildrenNodesAndGroups(fId) {
7731
- return this.fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId)).map((x) => x.hostElement);
7978
+ _getChildrenNodesAndGroups(fId) {
7979
+ return this._fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId)).map((x) => x.hostElement);
7732
7980
  }
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 });
7981
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: UpdateItemAndChildrenLayersExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7734
7982
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: UpdateItemAndChildrenLayersExecution });
7735
7983
  };
7736
7984
  UpdateItemAndChildrenLayersExecution = __decorate([
@@ -7738,7 +7986,7 @@ UpdateItemAndChildrenLayersExecution = __decorate([
7738
7986
  ], UpdateItemAndChildrenLayersExecution);
7739
7987
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: UpdateItemAndChildrenLayersExecution, decorators: [{
7740
7988
  type: Injectable
7741
- }], ctorParameters: () => [{ type: FComponentsStore }, { type: i2$1.FMediator }] });
7989
+ }] });
7742
7990
 
7743
7991
  let SelectAndUpdateNodeLayerExecution = class SelectAndUpdateNodeLayerExecution {
7744
7992
  fDraggableDataContext;
@@ -8266,6 +8514,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
8266
8514
  type: Injectable
8267
8515
  }] });
8268
8516
 
8517
+ class CalculateInputConnectionsRequest {
8518
+ fNode;
8519
+ constructor(fNode) {
8520
+ this.fNode = fNode;
8521
+ }
8522
+ }
8523
+
8524
+ let CalculateInputConnectionsExecution = class CalculateInputConnectionsExecution {
8525
+ _fComponentsStore = inject(FComponentsStore);
8526
+ handle(request) {
8527
+ return this._calculateConnections(new Set(this._calculateConnectors(request.fNode)));
8528
+ }
8529
+ _calculateConnectors(fNode) {
8530
+ return this._fComponentsStore.fInputs
8531
+ .filter((x) => fNode.isContains(x.hostElement))
8532
+ .map((x) => x.fId);
8533
+ }
8534
+ _calculateConnections(ids) {
8535
+ return this._fComponentsStore.fConnections
8536
+ .filter((x) => ids.has(x.fInputId));
8537
+ }
8538
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateInputConnectionsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8539
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateInputConnectionsExecution });
8540
+ };
8541
+ CalculateInputConnectionsExecution = __decorate([
8542
+ FExecutionRegister(CalculateInputConnectionsRequest)
8543
+ ], CalculateInputConnectionsExecution);
8544
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateInputConnectionsExecution, decorators: [{
8545
+ type: Injectable
8546
+ }] });
8547
+
8269
8548
  class CalculateNodesBoundingBoxRequest {
8270
8549
  }
8271
8550
 
@@ -8322,6 +8601,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
8322
8601
  type: Injectable
8323
8602
  }] });
8324
8603
 
8604
+ class CalculateOutputConnectionsRequest {
8605
+ fNode;
8606
+ constructor(fNode) {
8607
+ this.fNode = fNode;
8608
+ }
8609
+ }
8610
+
8611
+ let CalculateOutputConnectionsExecution = class CalculateOutputConnectionsExecution {
8612
+ _fComponentsStore = inject(FComponentsStore);
8613
+ handle(request) {
8614
+ return this._calculateConnections(new Set(this._calculateConnectors(request.fNode)));
8615
+ }
8616
+ _calculateConnectors(fNode) {
8617
+ return this._fComponentsStore.fOutputs
8618
+ .filter((x) => fNode.isContains(x.hostElement))
8619
+ .map((x) => x.fId);
8620
+ }
8621
+ _calculateConnections(ids) {
8622
+ return this._fComponentsStore.fConnections
8623
+ .filter((x) => ids.has(x.fOutputId));
8624
+ }
8625
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateOutputConnectionsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8626
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateOutputConnectionsExecution });
8627
+ };
8628
+ CalculateOutputConnectionsExecution = __decorate([
8629
+ FExecutionRegister(CalculateOutputConnectionsRequest)
8630
+ ], CalculateOutputConnectionsExecution);
8631
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CalculateOutputConnectionsExecution, decorators: [{
8632
+ type: Injectable
8633
+ }] });
8634
+
8325
8635
  class GetNodePaddingRequest {
8326
8636
  fNode;
8327
8637
  rect;
@@ -8500,8 +8810,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
8500
8810
 
8501
8811
  const F_NODE_FEATURES = [
8502
8812
  AddNodeToStoreExecution,
8813
+ CalculateInputConnectionsExecution,
8503
8814
  CalculateNodesBoundingBoxExecution,
8504
8815
  CalculateNodesBoundingBoxNormalizedPositionExecution,
8816
+ CalculateOutputConnectionsExecution,
8505
8817
  GetNodePaddingExecution,
8506
8818
  GetNodesExecution,
8507
8819
  GetParentNodesExecution,
@@ -8668,48 +8980,47 @@ class SortNodeLayersRequest {
8668
8980
  }
8669
8981
 
8670
8982
  let SortNodeLayersExecution = class SortNodeLayersExecution {
8671
- fComponentsStore;
8672
- fMediator;
8673
- fBrowser;
8674
- get fGroupsContainer() {
8675
- return this.fComponentsStore.fCanvas.fGroupsContainer.nativeElement;
8983
+ _fMediator = inject(FMediator);
8984
+ _fComponentsStore = inject(FComponentsStore);
8985
+ _fBrowser = inject(BrowserService);
8986
+ get _fCanvas() {
8987
+ return this._fComponentsStore.fCanvas;
8676
8988
  }
8677
- get fNodesContainer() {
8678
- return this.fComponentsStore.fCanvas.fNodesContainer.nativeElement;
8989
+ get _fGroupsContainer() {
8990
+ return this._fCanvas.fGroupsContainer().nativeElement;
8679
8991
  }
8680
- get fNodesContainerElements() {
8681
- return Array.from(this.fNodesContainer.children);
8992
+ get _fNodesContainer() {
8993
+ return this._fCanvas.fNodesContainer().nativeElement;
8682
8994
  }
8683
- constructor(fComponentsStore, fMediator, fBrowser) {
8684
- this.fComponentsStore = fComponentsStore;
8685
- this.fMediator = fMediator;
8686
- this.fBrowser = fBrowser;
8995
+ get _fNodeElements() {
8996
+ return Array.from(this._fNodesContainer.children);
8687
8997
  }
8688
8998
  handle(request) {
8689
- this.getGroups().forEach((parent) => {
8690
- this.moveChildrenNodes(this.getSortedChildrenNodes(parent));
8999
+ this._getGroups().forEach((parent) => {
9000
+ this._moveChildrenNodes(this._getSortedChildrenNodes(parent));
8691
9001
  });
8692
9002
  }
8693
- getGroups() {
8694
- return this.fComponentsStore.fNodes.filter((x) => this.fGroupsContainer.contains(x.hostElement));
9003
+ _getGroups() {
9004
+ return this._fComponentsStore.fNodes
9005
+ .filter((x) => this._fGroupsContainer.contains(x.hostElement));
8695
9006
  }
8696
- getSortedChildrenNodes(parent) {
8697
- const allElements = this.fNodesContainerElements;
8698
- return this.getChildrenNodes(parent.fId)
9007
+ _getSortedChildrenNodes(parent) {
9008
+ const allElements = this._fNodeElements;
9009
+ return this._getChildrenNodes(parent.fId)
8699
9010
  .sort((a, b) => allElements.indexOf(a) - allElements.indexOf(b));
8700
9011
  }
8701
- getChildrenNodes(fId) {
8702
- return this.fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId))
8703
- .filter((x) => this.fNodesContainer.contains(x.hostElement)).map((x) => x.hostElement);
9012
+ _getChildrenNodes(fId) {
9013
+ return this._fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId))
9014
+ .filter((x) => this._fNodesContainer.contains(x.hostElement)).map((x) => x.hostElement);
8704
9015
  }
8705
- moveChildrenNodes(sortedChildrenGroups) {
8706
- const fragment = this.fBrowser.document.createDocumentFragment();
9016
+ _moveChildrenNodes(sortedChildrenGroups) {
9017
+ const fragment = this._fBrowser.document.createDocumentFragment();
8707
9018
  sortedChildrenGroups.forEach((childGroup) => {
8708
9019
  fragment.appendChild(childGroup); // Append automatically removes the element from its current position
8709
9020
  });
8710
- this.fNodesContainer.appendChild(fragment);
9021
+ this._fNodesContainer.appendChild(fragment);
8711
9022
  }
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 });
9023
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortNodeLayersExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8713
9024
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortNodeLayersExecution });
8714
9025
  };
8715
9026
  SortNodeLayersExecution = __decorate([
@@ -8717,7 +9028,7 @@ SortNodeLayersExecution = __decorate([
8717
9028
  ], SortNodeLayersExecution);
8718
9029
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortNodeLayersExecution, decorators: [{
8719
9030
  type: Injectable
8720
- }], ctorParameters: () => [{ type: FComponentsStore }, { type: i2$1.FMediator }, { type: i1.BrowserService }] });
9031
+ }] });
8721
9032
 
8722
9033
  class SortItemsByParentRequest {
8723
9034
  fItemsContainer;
@@ -8728,27 +9039,22 @@ class SortItemsByParentRequest {
8728
9039
  }
8729
9040
 
8730
9041
  let SortItemsByParentExecution = class SortItemsByParentExecution {
8731
- fComponentsStore;
8732
- fMediator;
8733
- fBrowser;
8734
- fItemsContainer;
9042
+ _fMediator = inject(FMediator);
9043
+ _fComponentsStore = inject(FComponentsStore);
9044
+ _fBrowser = inject(BrowserService);
9045
+ _fItemsContainer;
8735
9046
  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;
9047
+ return Array.from(this._fItemsContainer.children);
8742
9048
  }
8743
9049
  handle(request) {
8744
- this.fItemsContainer = request.fItemsContainer;
9050
+ this._fItemsContainer = request.fItemsContainer;
8745
9051
  this._getItemsOfContainer().forEach((fItem) => {
8746
- this.moveChildrenItems(this._getSortedChildrenItems(fItem), fItem);
9052
+ this._moveChildrenItems(this._getSortedChildrenItems(fItem), fItem);
8747
9053
  });
8748
9054
  }
8749
9055
  _getItemsOfContainer() {
8750
- return this.fComponentsStore.fNodes
8751
- .filter((x) => this.fItemsContainer.contains(x.hostElement));
9056
+ return this._fComponentsStore.fNodes
9057
+ .filter((x) => this._fItemsContainer.contains(x.hostElement));
8752
9058
  }
8753
9059
  _getSortedChildrenItems(fItem) {
8754
9060
  const indexInContainer = this._fItemElements.indexOf(fItem.hostElement);
@@ -8757,18 +9063,18 @@ let SortItemsByParentExecution = class SortItemsByParentExecution {
8757
9063
  .sort((a, b) => this._fItemElements.indexOf(a) - this._fItemElements.indexOf(b));
8758
9064
  }
8759
9065
  _getChildrenItems(fId) {
8760
- return this.fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId))
8761
- .filter((x) => this.fItemsContainer.contains(x.hostElement)).map((x) => x.hostElement);
9066
+ return this._fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId))
9067
+ .filter((x) => this._fItemsContainer.contains(x.hostElement)).map((x) => x.hostElement);
8762
9068
  }
8763
- moveChildrenItems(sortedChildrenItems, parent) {
9069
+ _moveChildrenItems(sortedChildrenItems, parent) {
8764
9070
  let nextSibling = parent.hostElement.nextElementSibling;
8765
- const fragment = this.fBrowser.document.createDocumentFragment();
9071
+ const fragment = this._fBrowser.document.createDocumentFragment();
8766
9072
  sortedChildrenItems.forEach((child) => {
8767
9073
  fragment.appendChild(child); // Append automatically removes the element from its current position
8768
9074
  });
8769
- this.fItemsContainer.insertBefore(fragment, nextSibling);
9075
+ this._fItemsContainer.insertBefore(fragment, nextSibling);
8770
9076
  }
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 });
9077
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemsByParentExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8772
9078
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemsByParentExecution });
8773
9079
  };
8774
9080
  SortItemsByParentExecution = __decorate([
@@ -8776,27 +9082,26 @@ SortItemsByParentExecution = __decorate([
8776
9082
  ], SortItemsByParentExecution);
8777
9083
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemsByParentExecution, decorators: [{
8778
9084
  type: Injectable
8779
- }], ctorParameters: () => [{ type: FComponentsStore }, { type: i2$1.FMediator }, { type: i1.BrowserService }] });
9085
+ }] });
8780
9086
 
8781
9087
  class SortItemLayersRequest {
8782
9088
  }
8783
9089
 
8784
9090
  let SortItemLayersExecution = class SortItemLayersExecution {
8785
- fMediator;
8786
- fComponentsStore;
8787
- constructor(fMediator, fComponentsStore) {
8788
- this.fMediator = fMediator;
8789
- this.fComponentsStore = fComponentsStore;
9091
+ _fMediator = inject(FMediator);
9092
+ _fComponentsStore = inject(FComponentsStore);
9093
+ get _fCanvas() {
9094
+ return this._fComponentsStore.fCanvas;
8790
9095
  }
8791
9096
  handle(request) {
8792
- if (!this.fComponentsStore.fCanvas) {
9097
+ if (!this._fComponentsStore.fCanvas) {
8793
9098
  return;
8794
9099
  }
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));
9100
+ this._fMediator.execute(new SortItemsByParentRequest(this._fCanvas.fGroupsContainer().nativeElement));
9101
+ this._fMediator.execute(new SortNodeLayersRequest());
9102
+ this._fMediator.execute(new SortItemsByParentRequest(this._fCanvas.fNodesContainer().nativeElement));
8798
9103
  }
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 });
9104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemLayersExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8800
9105
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemLayersExecution });
8801
9106
  };
8802
9107
  SortItemLayersExecution = __decorate([
@@ -8804,7 +9109,7 @@ SortItemLayersExecution = __decorate([
8804
9109
  ], SortItemLayersExecution);
8805
9110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SortItemLayersExecution, decorators: [{
8806
9111
  type: Injectable
8807
- }], ctorParameters: () => [{ type: i2$1.FMediator }, { type: FComponentsStore }] });
9112
+ }] });
8808
9113
 
8809
9114
  function createSVGElement(tag, fBrowser) {
8810
9115
  return fBrowser.document.createElementNS('http://www.w3.org/2000/svg', tag);
@@ -8873,26 +9178,25 @@ const COMMON_PROVIDERS = [
8873
9178
 
8874
9179
  let uniqueId$2 = 0;
8875
9180
  class FRectPatternComponent {
8876
- _fBrowser;
8877
9181
  _destroyRef = inject(DestroyRef);
8878
9182
  _elementReference = inject(ElementRef);
9183
+ _fBrowser = inject(BrowserService);
8879
9184
  _stateChanges = new FChannel();
8880
9185
  get hostElement() {
8881
9186
  return this._elementReference.nativeElement;
8882
9187
  }
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;
9188
+ id = input(`f-pattern-${uniqueId$2++}`);
9189
+ vColor = input('rgba(0,0,0,0.1)');
9190
+ hColor = input('rgba(0,0,0,0.1)');
9191
+ vSize = input(20, { transform: numberAttribute });
9192
+ hSize = input(20, { transform: numberAttribute });
8888
9193
  _transform = TransformModelExtensions.default();
8889
9194
  _position = PointExtensions.initialize();
8890
- _size = SizeExtensions.initialize(this.hSize, this.vSize);
9195
+ _size = SizeExtensions.initialize(this.hSize(), this.vSize());
8891
9196
  _pattern;
8892
9197
  _vLine;
8893
9198
  _hLine;
8894
- constructor(_fBrowser) {
8895
- this._fBrowser = _fBrowser;
9199
+ constructor() {
8896
9200
  this._createPattern();
8897
9201
  }
8898
9202
  _createPattern() {
@@ -8918,13 +9222,13 @@ class FRectPatternComponent {
8918
9222
  _redraw() {
8919
9223
  this._calculatePattern();
8920
9224
  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);
9225
+ this.redrawLine(this._vLine, this.vColor(), this._size.width, 0, this._size.width, this._size.height);
9226
+ this.redrawLine(this._hLine, this.hColor(), 0, this._size.height, this._size.width, this._size.height);
8923
9227
  }
8924
9228
  _calculatePattern() {
8925
9229
  this._position.x = this._transform.position.x + this._transform.scaledPosition.x;
8926
9230
  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);
9231
+ this._size = SizeExtensions.initialize(this.hSize() * this._transform.scale, this.vSize() * this._transform.scale);
8928
9232
  }
8929
9233
  _redrawPattern() {
8930
9234
  this._pattern.setAttribute('x', `${this._position.x}`);
@@ -8946,8 +9250,8 @@ class FRectPatternComponent {
8946
9250
  _refresh() {
8947
9251
  this._stateChanges.notify();
8948
9252
  }
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: [
9253
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FRectPatternComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9254
+ 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
9255
  { provide: F_BACKGROUND_PATTERN, useExisting: FRectPatternComponent }
8952
9256
  ], usesOnChanges: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
8953
9257
  }
@@ -8956,6 +9260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
8956
9260
  args: [{
8957
9261
  selector: "f-rect-pattern",
8958
9262
  template: ``,
9263
+ standalone: true,
8959
9264
  host: {
8960
9265
  '[attr.id]': 'id'
8961
9266
  },
@@ -8964,37 +9269,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
8964
9269
  ],
8965
9270
  changeDetection: ChangeDetectionStrategy.OnPush
8966
9271
  }]
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
- }] } });
9272
+ }], ctorParameters: () => [] });
8978
9273
 
8979
9274
  let uniqueId$1 = 0;
8980
9275
  class FCirclePatternComponent {
8981
- _fBrowser;
8982
9276
  _destroyRef = inject(DestroyRef);
8983
9277
  _elementReference = inject(ElementRef);
9278
+ _fBrowser = inject(BrowserService);
8984
9279
  _stateChanges = new FChannel();
8985
9280
  get hostElement() {
8986
9281
  return this._elementReference.nativeElement;
8987
9282
  }
8988
- id = `f-pattern-${uniqueId$1++}`;
8989
- color = 'rgba(0,0,0,0.1)';
8990
- radius = 20;
9283
+ id = input(`f-pattern-${uniqueId$1++}`);
9284
+ color = input('rgba(0,0,0,0.1)');
9285
+ radius = input(20, { transform: numberAttribute });
8991
9286
  _scaledRadius = 20;
8992
9287
  _transform = TransformModelExtensions.default();
8993
9288
  _position = PointExtensions.initialize();
8994
9289
  _pattern;
8995
9290
  _circle;
8996
- constructor(_fBrowser) {
8997
- this._fBrowser = _fBrowser;
9291
+ constructor() {
8998
9292
  this._createPattern();
8999
9293
  }
9000
9294
  _createPattern() {
@@ -9023,7 +9317,7 @@ class FCirclePatternComponent {
9023
9317
  _calculatePattern() {
9024
9318
  this._position.x = this._transform.position.x + this._transform.scaledPosition.x;
9025
9319
  this._position.y = this._transform.position.y + this._transform.scaledPosition.y;
9026
- this._scaledRadius = this.radius * this._transform.scale;
9320
+ this._scaledRadius = this.radius() * this._transform.scale;
9027
9321
  }
9028
9322
  _redrawPattern() {
9029
9323
  this._pattern.setAttribute('x', `${this._position.x}`);
@@ -9032,10 +9326,10 @@ class FCirclePatternComponent {
9032
9326
  this._pattern.setAttribute('height', `${this._scaledRadius}`);
9033
9327
  }
9034
9328
  _redrawElement() {
9035
- this._circle.setAttribute('fill', this.color);
9329
+ this._circle.setAttribute('fill', this.color());
9036
9330
  this._circle.setAttribute('cx', `${this._scaledRadius / 2}`);
9037
9331
  this._circle.setAttribute('cy', `${this._scaledRadius / 2}`);
9038
- this._circle.setAttribute('r', `${this._scaledRadius / this.radius}`);
9332
+ this._circle.setAttribute('r', `${this._scaledRadius / this.radius()}`);
9039
9333
  }
9040
9334
  setTransform(transform) {
9041
9335
  this._transform = transform;
@@ -9044,8 +9338,8 @@ class FCirclePatternComponent {
9044
9338
  _refresh() {
9045
9339
  this._stateChanges.notify();
9046
9340
  }
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: [
9341
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FCirclePatternComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9342
+ 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
9343
  { provide: F_BACKGROUND_PATTERN, useExisting: FCirclePatternComponent }
9050
9344
  ], usesOnChanges: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
9051
9345
  }
@@ -9054,6 +9348,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9054
9348
  args: [{
9055
9349
  selector: "f-circle-pattern",
9056
9350
  template: ``,
9351
+ standalone: true,
9057
9352
  host: {
9058
9353
  '[attr.id]': 'id'
9059
9354
  },
@@ -9062,13 +9357,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9062
9357
  ],
9063
9358
  changeDetection: ChangeDetectionStrategy.OnPush
9064
9359
  }]
9065
- }], ctorParameters: () => [{ type: i1.BrowserService }], propDecorators: { id: [{
9066
- type: Input
9067
- }], color: [{
9068
- type: Input
9069
- }], radius: [{
9070
- type: Input
9071
- }] } });
9360
+ }], ctorParameters: () => [] });
9072
9361
 
9073
9362
  const F_BACKGROUND = new InjectionToken('F_BACKGROUND');
9074
9363
  class FBackgroundBase {
@@ -9080,36 +9369,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9080
9369
  }] });
9081
9370
 
9082
9371
  class FBackgroundComponent extends FBackgroundBase {
9372
+ _fMediator = inject(FMediator);
9083
9373
  _elementReference = inject(ElementRef);
9084
9374
  get hostElement() {
9085
9375
  return this._elementReference.nativeElement;
9086
9376
  }
9087
- fBackgroundPattern;
9088
- _fMediator = inject(FMediator);
9377
+ fBackgroundPattern = contentChild(F_BACKGROUND_PATTERN);
9089
9378
  ngOnInit() {
9090
9379
  this._fMediator.execute(new AddBackgroundToStoreRequest(this));
9091
9380
  }
9092
9381
  ngAfterContentInit() {
9093
- this._fMediator.execute(new AddPatternToBackgroundRequest(this.fBackgroundPattern));
9382
+ this._fMediator.execute(new AddPatternToBackgroundRequest(this.fBackgroundPattern()));
9094
9383
  }
9095
9384
  setTransform(transform) {
9096
- this.fBackgroundPattern?.setTransform(transform);
9385
+ this.fBackgroundPattern()?.setTransform(transform);
9097
9386
  }
9098
9387
  ngOnDestroy() {
9099
9388
  this._fMediator.execute(new RemoveBackgroundFromStoreRequest(this));
9100
9389
  }
9101
9390
  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 });
9391
+ 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
9392
  }
9104
9393
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FBackgroundComponent, decorators: [{
9105
9394
  type: Component,
9106
- args: [{ selector: "f-background", template: "<svg><ng-content></ng-content></svg>", host: {
9395
+ args: [{ selector: "f-background", template: "<svg><ng-content></ng-content></svg>", standalone: true, host: {
9107
9396
  'class': 'f-component f-background'
9108
9397
  }, 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
- }] } });
9398
+ }] });
9113
9399
 
9114
9400
  const F_BACKGROUND_PROVIDERS = [
9115
9401
  FBackgroundComponent,
@@ -9146,23 +9432,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9146
9432
  }] });
9147
9433
 
9148
9434
  class FCanvasComponent extends FCanvasBase {
9435
+ _fMediator = inject(FMediator);
9149
9436
  _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
- }
9437
+ _injector = inject(Injector);
9438
+ fCanvasChange = output();
9439
+ position = input(PointExtensions.initialize(), { transform: PointExtensions.castToPoint });
9440
+ scale = input(1, { transform: numberAttribute });
9157
9441
  get hostElement() {
9158
9442
  return this._elementReference.nativeElement;
9159
9443
  }
9160
- fGroupsContainer;
9161
- fNodesContainer;
9162
- fConnectionsContainer;
9163
- _fMediator = inject(FMediator);
9444
+ fGroupsContainer = viewChild.required('fGroupsContainer');
9445
+ fNodesContainer = viewChild.required('fNodesContainer');
9446
+ fConnectionsContainer = viewChild.required('fConnectionsContainer');
9164
9447
  ngOnInit() {
9165
9448
  this._fMediator.execute(new AddCanvasToStoreRequest(this));
9449
+ this._positionChange();
9450
+ this._scaleChange();
9451
+ }
9452
+ _positionChange() {
9453
+ effect(() => {
9454
+ this._fMediator.execute(new InputCanvasPositionRequest(this.transform, this.position()));
9455
+ }, { injector: this._injector });
9456
+ }
9457
+ _scaleChange() {
9458
+ effect(() => {
9459
+ this._fMediator.execute(new InputCanvasScaleRequest(this.transform, this.scale()));
9460
+ }, { injector: this._injector });
9166
9461
  }
9167
9462
  redraw() {
9168
9463
  this._fMediator.execute(new SetBackgroundTransformRequest(this.transform));
@@ -9175,13 +9470,13 @@ class FCanvasComponent extends FCanvasBase {
9175
9470
  transitionEnd(this.hostElement, () => this.redraw());
9176
9471
  }
9177
9472
  centerGroupOrNode(id, animated = true) {
9178
- this._fMediator.execute(new CenterGroupOrNodeRequest(id, animated));
9473
+ setTimeout(() => this._fMediator.execute(new CenterGroupOrNodeRequest(id, animated)));
9179
9474
  }
9180
9475
  fitToScreen(toCenter = PointExtensions.initialize(), animated = true) {
9181
- this._fMediator.execute(new FitToFlowRequest(toCenter, animated));
9476
+ setTimeout(() => this._fMediator.execute(new FitToFlowRequest(toCenter, animated)));
9182
9477
  }
9183
9478
  resetScaleAndCenter(animated = true) {
9184
- this._fMediator.execute(new ResetScaleAndCenterRequest(animated));
9479
+ setTimeout(() => this._fMediator.execute(new ResetScaleAndCenterRequest(animated)));
9185
9480
  }
9186
9481
  getScale() {
9187
9482
  return this.transform.scale || 1;
@@ -9208,9 +9503,9 @@ class FCanvasComponent extends FCanvasBase {
9208
9503
  this._fMediator.execute(new RemoveCanvasFromStoreRequest());
9209
9504
  }
9210
9505
  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: [
9506
+ 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
9507
  { 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 });
9508
+ ], 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
9509
  }
9215
9510
  __decorate([
9216
9511
  Deprecated('setScale')
@@ -9220,27 +9515,12 @@ __decorate([
9220
9515
  ], FCanvasComponent.prototype, "resetZoom", null);
9221
9516
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FCanvasComponent, decorators: [{
9222
9517
  type: Component,
9223
- args: [{ selector: 'f-canvas', exportAs: 'fComponent', host: {
9518
+ args: [{ selector: 'f-canvas', standalone: true, host: {
9224
9519
  'class': 'f-component f-canvas',
9225
9520
  }, providers: [
9226
9521
  { provide: F_CANVAS, useExisting: FCanvasComponent }
9227
9522
  ], 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: [] } });
9523
+ }], propDecorators: { setZoom: [], resetZoom: [] } });
9244
9524
 
9245
9525
  const F_CANVAS_PROVIDERS = [
9246
9526
  FCanvasComponent,
@@ -9396,25 +9676,21 @@ class FFlowBase {
9396
9676
 
9397
9677
  let uniqueId = 0;
9398
9678
  class FFlowComponent extends FFlowBase {
9399
- fBrowser;
9400
9679
  _destroyRef = inject(DestroyRef);
9401
9680
  _fMediator = inject(FMediator);
9681
+ _browserService = inject(BrowserService);
9402
9682
  _elementReference = inject(ElementRef);
9403
- fId = `f-flow-${uniqueId++}`;
9683
+ fId = input(`f-flow-${uniqueId++}`, { alias: 'fFlowId' });
9404
9684
  get hostElement() {
9405
9685
  return this._elementReference.nativeElement;
9406
9686
  }
9407
- fLoaded = new EventEmitter();
9687
+ fLoaded = output();
9408
9688
  _isLoaded = false;
9409
- constructor(fBrowser) {
9410
- super();
9411
- this.fBrowser = fBrowser;
9412
- }
9413
9689
  ngOnInit() {
9414
9690
  this._fMediator.execute(new AddFlowToStoreRequest(this));
9415
9691
  }
9416
9692
  ngAfterContentInit() {
9417
- if (!this.fBrowser.isBrowser()) {
9693
+ if (!this._browserService.isBrowser()) {
9418
9694
  return;
9419
9695
  }
9420
9696
  this._listenCountChanges();
@@ -9467,8 +9743,8 @@ class FFlowComponent extends FFlowBase {
9467
9743
  ngOnDestroy() {
9468
9744
  this._fMediator.execute(new RemoveFlowFromStoreRequest());
9469
9745
  }
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: [
9746
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FFlowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
9747
+ 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
9748
  FMediator,
9473
9749
  ...F_STORAGE_PROVIDERS,
9474
9750
  FDraggableDataContext,
@@ -9480,8 +9756,8 @@ class FFlowComponent extends FFlowBase {
9480
9756
  }
9481
9757
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FFlowComponent, decorators: [{
9482
9758
  type: Component,
9483
- args: [{ selector: 'f-flow', host: {
9484
- '[attr.id]': 'fId',
9759
+ args: [{ selector: 'f-flow', standalone: true, host: {
9760
+ '[attr.id]': 'fId()',
9485
9761
  class: "f-component f-flow",
9486
9762
  }, providers: [
9487
9763
  FMediator,
@@ -9492,12 +9768,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9492
9768
  ...F_DRAGGABLE_PROVIDERS,
9493
9769
  { provide: F_FLOW, useExisting: FFlowComponent },
9494
9770
  ], 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
- }] } });
9771
+ }] });
9501
9772
 
9502
9773
  const F_FLOW_PROVIDERS = [
9503
9774
  FFlowComponent
@@ -9650,20 +9921,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9650
9921
  args: [{ alias: 'fZoomDblClickStep', transform: numberAttribute }]
9651
9922
  }], getScale: [] } });
9652
9923
 
9924
+ const F_ZOOM_PROVIDERS = [
9925
+ FZoomDirective
9926
+ ];
9927
+
9653
9928
  class FFlowModule {
9654
9929
  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] });
9930
+ 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
9931
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FFlowModule, imports: [CommonModule] });
9657
9932
  }
9658
9933
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FFlowModule, decorators: [{
9659
9934
  type: NgModule,
9660
9935
  args: [{
9661
9936
  declarations: [
9662
- ...F_BACKGROUND_PROVIDERS,
9663
- ...F_CANVAS_PROVIDERS,
9664
9937
  ...F_CONNECTION_PROVIDERS,
9665
9938
  ...F_CONNECTORS_PROVIDERS,
9666
- ...F_FLOW_PROVIDERS,
9667
9939
  ...F_LINE_ALIGNMENT_PROVIDERS,
9668
9940
  ...F_MINIMAP_PROVIDERS,
9669
9941
  ...F_NODE_PROVIDERS,
@@ -9671,14 +9943,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9671
9943
  FDraggableDirective,
9672
9944
  ],
9673
9945
  imports: [
9946
+ ...F_FLOW_PROVIDERS,
9947
+ ...F_CANVAS_PROVIDERS,
9948
+ ...F_BACKGROUND_PROVIDERS,
9949
+ ...F_ZOOM_PROVIDERS,
9950
+ ...F_EXTERNAL_ITEM_PROVIDERS,
9674
9951
  CommonModule,
9675
9952
  ],
9676
9953
  exports: [
9677
- ...F_BACKGROUND_PROVIDERS,
9954
+ ...F_FLOW_PROVIDERS,
9678
9955
  ...F_CANVAS_PROVIDERS,
9956
+ ...F_BACKGROUND_PROVIDERS,
9957
+ ...F_ZOOM_PROVIDERS,
9958
+ ...F_EXTERNAL_ITEM_PROVIDERS,
9679
9959
  ...F_CONNECTION_PROVIDERS,
9680
9960
  ...F_CONNECTORS_PROVIDERS,
9681
- ...F_FLOW_PROVIDERS,
9682
9961
  ...F_LINE_ALIGNMENT_PROVIDERS,
9683
9962
  ...F_MINIMAP_PROVIDERS,
9684
9963
  ...F_NODE_PROVIDERS,
@@ -9692,5 +9971,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
9692
9971
  * Generated bundle index. Do not edit.
9693
9972
  */
9694
9973
 
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 };
9974
+ 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, 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, fixedCenterBehavior, fixedOutboundBehavior, floatingBehavior, getExternalItem, getMarkerEndId, getMarkerSelectedEndId, getMarkerSelectedStartId, getMarkerStartId, isExternalItem, isMobile, isNode, isNodeOutlet, isNodeOutput, isRotateHandle, isValidEventTrigger, mediatorEffect, mixinChangeSelection, mixinChangeVisibility, notifyOnStart, transitionEnd };
9696
9975
  //# sourceMappingURL=foblex-flow.mjs.map