@foblex/flow 12.2.4 → 12.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (584) hide show
  1. package/LICENSE +0 -7
  2. package/README.md +33 -7
  3. package/domain/cast-to-enum.d.ts +1 -0
  4. package/domain/clear-selection/{clear-selection.handler.d.ts → clear-selection.execution.d.ts} +4 -4
  5. package/domain/clear-selection/index.d.ts +1 -1
  6. package/domain/create-connection-markers/{create-connection-markers.handler.d.ts → create-connection-markers.execution.d.ts} +4 -4
  7. package/domain/create-connection-markers/index.d.ts +1 -1
  8. package/domain/get-can-be-selected-items/get-can-be-selected-items-request.d.ts +2 -0
  9. package/{f-draggable/selection-area/get-can-be-selected-items/get-can-be-selected-items.handler.d.ts → domain/get-can-be-selected-items/get-can-be-selected-items.execution.d.ts} +6 -7
  10. package/{f-draggable/selection-area → domain}/get-can-be-selected-items/i-selectable-with-rect.d.ts +1 -1
  11. package/domain/get-can-be-selected-items/index.d.ts +2 -0
  12. package/domain/get-connection-line/get-connection-line.execution.d.ts +13 -0
  13. package/domain/get-connection-line/get-connection-line.request.d.ts +11 -0
  14. package/domain/get-connection-line/index.d.ts +2 -0
  15. package/domain/get-element-rect-in-flow/{get-element-rect-in-flow.handler.d.ts → get-element-rect-in-flow.execution.d.ts} +8 -5
  16. package/domain/get-element-rect-in-flow/index.d.ts +1 -1
  17. package/domain/get-input-rect-in-flow/get-input-rect-in-flow-response.d.ts +3 -3
  18. package/domain/get-input-rect-in-flow/{get-input-rect-in-flow.handler.d.ts → get-input-rect-in-flow.execution.d.ts} +4 -5
  19. package/domain/get-input-rect-in-flow/index.d.ts +1 -1
  20. package/domain/get-nodes-rect/get-nodes-rect.execution.d.ts +12 -0
  21. package/domain/get-nodes-rect/index.d.ts +1 -1
  22. package/domain/get-output-rect-in-flow/get-output-rect-in-flow-response.d.ts +3 -3
  23. package/domain/get-output-rect-in-flow/{get-output-rect-in-flow.handler.d.ts → get-output-rect-in-flow.execution.d.ts} +4 -5
  24. package/domain/get-output-rect-in-flow/index.d.ts +1 -1
  25. package/domain/get-position-in-flow/{get-position-in-flow.handler.d.ts → get-position-in-flow.execution.d.ts} +5 -4
  26. package/domain/get-position-in-flow/index.d.ts +1 -1
  27. package/domain/get-selection/{get-selection.handler.d.ts → get-selection.execution.d.ts} +4 -4
  28. package/domain/get-selection/index.d.ts +1 -1
  29. package/domain/get-value-from-data-attr.d.ts +1 -0
  30. package/domain/index.d.ts +8 -1
  31. package/domain/intersections/e-f-connector-shape.d.ts +3 -0
  32. package/domain/intersections/f-connector-shape.extensions.d.ts +11 -0
  33. package/domain/intersections/i-connector-shape.d.ts +6 -0
  34. package/domain/intersections/index.d.ts +5 -0
  35. package/domain/intersections/intersection-finder.d.ts +67 -0
  36. package/domain/intersections/rounded-rect/i-rounded-rect.d.ts +8 -0
  37. package/domain/intersections/rounded-rect/index.d.ts +2 -0
  38. package/domain/intersections/rounded-rect/rounded-rect.d.ts +22 -0
  39. package/domain/is-connection-under-node/index.d.ts +1 -0
  40. package/{f-draggable/node/domain/is-connection-under-node/is-connection-under-node.handler.d.ts → domain/is-connection-under-node/is-connection-under-node.execution.d.ts} +9 -8
  41. package/domain/is-connection-under-node/is-connection-under-node.request.d.ts +2 -0
  42. package/domain/is-element-with-class.d.ts +1 -0
  43. package/domain/providers.d.ts +17 -14
  44. package/domain/redraw-connections/index.d.ts +1 -1
  45. package/domain/redraw-connections/{redraw-connections.handler.d.ts → redraw-connections.execution.d.ts} +5 -6
  46. package/domain/select/index.d.ts +1 -1
  47. package/domain/select/{select.handler.d.ts → select.execution.d.ts} +4 -4
  48. package/domain/select-all/index.d.ts +1 -1
  49. package/domain/select-all/{select-all.handler.d.ts → select-all.execution.d.ts} +4 -4
  50. package/domain/select-and-update-node-layer/index.d.ts +2 -0
  51. package/domain/select-and-update-node-layer/select-and-update-node-layer.execution.d.ts +16 -0
  52. package/domain/select-and-update-node-layer/select-and-update-node-layer.request.d.ts +5 -0
  53. package/domain/update-item-layer/index.d.ts +1 -1
  54. package/domain/update-item-layer/update-item-layer.execution.d.ts +8 -0
  55. package/esm2022/domain/cast-to-enum.mjs +12 -0
  56. package/esm2022/domain/clear-selection/clear-selection.execution.mjs +28 -0
  57. package/esm2022/domain/clear-selection/index.mjs +2 -2
  58. package/esm2022/domain/create-connection-markers/create-connection-markers.execution.mjs +49 -0
  59. package/esm2022/domain/create-connection-markers/index.mjs +2 -2
  60. package/esm2022/domain/get-can-be-selected-items/get-can-be-selected-items-request.mjs +3 -0
  61. package/esm2022/domain/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +57 -0
  62. package/esm2022/domain/get-can-be-selected-items/i-selectable-with-rect.mjs +2 -0
  63. package/esm2022/domain/get-can-be-selected-items/index.mjs +3 -0
  64. package/esm2022/domain/get-connection-line/get-connection-line.execution.mjs +68 -0
  65. package/esm2022/domain/get-connection-line/get-connection-line.request.mjs +10 -0
  66. package/esm2022/domain/get-connection-line/index.mjs +3 -0
  67. package/esm2022/domain/get-connection.handler.mjs +5 -5
  68. package/esm2022/domain/get-element-rect-in-flow/get-element-rect-in-flow.execution.mjs +41 -0
  69. package/esm2022/domain/get-element-rect-in-flow/index.mjs +2 -2
  70. package/esm2022/domain/get-incoming-connections.handler.mjs +4 -4
  71. package/esm2022/domain/get-input-rect-in-flow/get-input-rect-in-flow-response.mjs +1 -1
  72. package/esm2022/domain/get-input-rect-in-flow/get-input-rect-in-flow.execution.mjs +33 -0
  73. package/esm2022/domain/get-input-rect-in-flow/index.mjs +2 -2
  74. package/esm2022/domain/get-nodes-rect/get-nodes-rect.execution.mjs +29 -0
  75. package/esm2022/domain/get-nodes-rect/index.mjs +2 -2
  76. package/esm2022/domain/get-outgoing-connections.handler.mjs +4 -4
  77. package/esm2022/domain/get-output-rect-in-flow/get-output-rect-in-flow-response.mjs +1 -1
  78. package/esm2022/domain/get-output-rect-in-flow/get-output-rect-in-flow.execution.mjs +37 -0
  79. package/esm2022/domain/get-output-rect-in-flow/index.mjs +2 -2
  80. package/esm2022/domain/get-position-in-flow/get-position-in-flow.execution.mjs +32 -0
  81. package/esm2022/domain/get-position-in-flow/index.mjs +2 -2
  82. package/esm2022/domain/get-selection/get-selection.execution.mjs +35 -0
  83. package/esm2022/domain/get-selection/index.mjs +2 -2
  84. package/esm2022/domain/get-value-from-data-attr.mjs +7 -0
  85. package/esm2022/domain/index.mjs +9 -2
  86. package/esm2022/domain/intersections/e-f-connector-shape.mjs +5 -0
  87. package/esm2022/domain/intersections/f-connector-shape.extensions.mjs +46 -0
  88. package/esm2022/domain/intersections/i-connector-shape.mjs +2 -0
  89. package/esm2022/domain/intersections/index.mjs +6 -0
  90. package/esm2022/domain/intersections/intersection-finder.mjs +156 -0
  91. package/esm2022/domain/intersections/rounded-rect/i-rounded-rect.mjs +2 -0
  92. package/esm2022/domain/intersections/rounded-rect/index.mjs +3 -0
  93. package/esm2022/domain/intersections/rounded-rect/rounded-rect.mjs +45 -0
  94. package/esm2022/domain/is-connection-under-node/index.mjs +2 -0
  95. package/esm2022/domain/is-connection-under-node/is-connection-under-node.execution.mjs +80 -0
  96. package/esm2022/domain/is-connection-under-node/is-connection-under-node.request.mjs +3 -0
  97. package/esm2022/domain/is-element-with-class.mjs +8 -0
  98. package/esm2022/domain/providers.mjs +33 -27
  99. package/esm2022/domain/redraw-connections/index.mjs +2 -2
  100. package/esm2022/domain/redraw-connections/redraw-connections.execution.mjs +60 -0
  101. package/esm2022/domain/select/index.mjs +2 -2
  102. package/esm2022/domain/select/select.execution.mjs +44 -0
  103. package/esm2022/domain/select-all/index.mjs +2 -2
  104. package/esm2022/domain/select-all/select-all.execution.mjs +38 -0
  105. package/esm2022/domain/select-and-update-node-layer/index.mjs +3 -0
  106. package/esm2022/domain/select-and-update-node-layer/select-and-update-node-layer.execution.mjs +37 -0
  107. package/esm2022/domain/select-and-update-node-layer/select-and-update-node-layer.request.mjs +6 -0
  108. package/esm2022/domain/update-item-layer/index.mjs +2 -2
  109. package/esm2022/domain/update-item-layer/update-item-layer.execution.mjs +29 -0
  110. package/esm2022/errors/create-error-class.mjs +1 -2
  111. package/esm2022/f-backgroud/f-background-base.mjs +4 -4
  112. package/esm2022/f-backgroud/f-background.component.mjs +5 -5
  113. package/esm2022/f-backgroud/f-circle-pattern/f-circle-pattern.component.mjs +4 -4
  114. package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +4 -4
  115. package/esm2022/f-backgroud/index.mjs +2 -1
  116. package/esm2022/f-backgroud/providers.mjs +9 -0
  117. package/esm2022/f-canvas/f-canvas-base.mjs +8 -6
  118. package/esm2022/f-canvas/f-canvas.component.mjs +5 -5
  119. package/esm2022/f-canvas/f-zoom/f-zoom.directive.mjs +4 -4
  120. package/esm2022/f-canvas/index.mjs +2 -1
  121. package/esm2022/f-canvas/providers.mjs +7 -0
  122. package/esm2022/f-connection/common/f-connection-base.mjs +25 -25
  123. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +4 -4
  124. package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +11 -11
  125. package/esm2022/f-connection/common/f-connection-text/i-connection-text.mjs +1 -1
  126. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle.component.mjs +4 -4
  127. package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +7 -7
  128. package/esm2022/f-connection/common/f-gradient/i-connection-gradient.mjs +1 -1
  129. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +4 -4
  130. package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +4 -4
  131. package/esm2022/f-connection/common/index.mjs +1 -3
  132. package/esm2022/f-connection/f-connection/f-connection.component.mjs +13 -12
  133. package/esm2022/f-connection/f-connection-builder/f-connection-factory.mjs +4 -4
  134. package/esm2022/f-connection/f-connection-center/f-connection-center.directive.mjs +4 -4
  135. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +12 -11
  136. package/esm2022/f-connection/f-marker/f-marker-base.mjs +4 -4
  137. package/esm2022/f-connection/f-marker/f-marker.directive.mjs +4 -4
  138. package/esm2022/f-connection/index.mjs +2 -1
  139. package/esm2022/f-connection/providers.mjs +18 -0
  140. package/esm2022/f-connectors/f-node-input/f-node-input-base.mjs +4 -4
  141. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +4 -4
  142. package/esm2022/f-connectors/f-node-outlet/f-node-outlet-base.mjs +4 -4
  143. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +4 -4
  144. package/esm2022/f-connectors/f-node-output/f-node-output-base.mjs +4 -4
  145. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +4 -4
  146. package/esm2022/f-connectors/index.mjs +2 -1
  147. package/esm2022/f-connectors/providers.mjs +9 -0
  148. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.mjs +26 -0
  149. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.request.mjs +6 -0
  150. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.validator.mjs +25 -0
  151. package/esm2022/f-draggable/canvas/canvas-move-finalize/index.mjs +5 -0
  152. package/esm2022/f-draggable/canvas/canvas-move-finalize/providers.mjs +7 -0
  153. package/esm2022/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.execution.mjs +36 -0
  154. package/esm2022/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.request.mjs +6 -0
  155. package/esm2022/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.validator.mjs +43 -0
  156. package/esm2022/f-draggable/canvas/canvas-move-preparation/index.mjs +5 -0
  157. package/esm2022/f-draggable/canvas/canvas-move-preparation/providers.mjs +7 -0
  158. package/esm2022/f-draggable/canvas/index.mjs +3 -3
  159. package/esm2022/f-draggable/canvas/providers.mjs +5 -5
  160. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.mjs +55 -0
  161. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.request.mjs +6 -0
  162. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.validator.mjs +25 -0
  163. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/index.mjs +5 -0
  164. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/providers.mjs +7 -0
  165. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.execution.mjs +39 -0
  166. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.request.mjs +8 -0
  167. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/index.mjs +4 -0
  168. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/providers.mjs +5 -0
  169. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.execution.mjs +60 -0
  170. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.request.mjs +6 -0
  171. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/index.mjs +4 -0
  172. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/providers.mjs +5 -0
  173. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.execution.mjs +46 -0
  174. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.request.mjs +6 -0
  175. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.validator.mjs +34 -0
  176. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/index.mjs +5 -0
  177. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/providers.mjs +7 -0
  178. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.execution.mjs +43 -0
  179. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.request.mjs +6 -0
  180. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.validator.mjs +32 -0
  181. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/index.mjs +8 -0
  182. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/providers.mjs +13 -0
  183. package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +11 -9
  184. package/esm2022/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.execution.mjs +43 -0
  185. package/esm2022/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.request.mjs +6 -0
  186. package/esm2022/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.validator.mjs +27 -0
  187. package/esm2022/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/index.mjs +5 -0
  188. package/esm2022/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/providers.mjs +7 -0
  189. package/esm2022/f-draggable/connections/create-connection/index.mjs +4 -4
  190. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.execution.mjs +72 -0
  191. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.request.mjs +7 -0
  192. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.validator.mjs +35 -0
  193. package/esm2022/f-draggable/connections/get-input-under-pointer/index.mjs +5 -0
  194. package/esm2022/f-draggable/connections/get-input-under-pointer/providers.mjs +7 -0
  195. package/esm2022/f-draggable/connections/index.mjs +2 -2
  196. package/esm2022/f-draggable/connections/providers.mjs +10 -11
  197. package/esm2022/f-draggable/connections/reassign-connection/index.mjs +3 -3
  198. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/index.mjs +5 -0
  199. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/providers.mjs +7 -0
  200. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.mjs +50 -0
  201. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.request.mjs +6 -0
  202. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.validator.mjs +25 -0
  203. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/index.mjs +5 -0
  204. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/providers.mjs +7 -0
  205. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.execution.mjs +59 -0
  206. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.request.mjs +6 -0
  207. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.validator.mjs +42 -0
  208. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.mjs +10 -11
  209. package/esm2022/f-draggable/e-f-draggable-type.mjs +3 -1
  210. package/esm2022/f-draggable/external-item/external-item-finalize/external-item-finalize.execution.mjs +55 -0
  211. package/esm2022/f-draggable/external-item/external-item-finalize/external-item-finalize.request.mjs +6 -0
  212. package/esm2022/f-draggable/external-item/external-item-finalize/external-item-finalize.validator.mjs +25 -0
  213. package/esm2022/f-draggable/external-item/external-item-finalize/index.mjs +5 -0
  214. package/esm2022/f-draggable/external-item/external-item-finalize/providers.mjs +7 -0
  215. package/esm2022/f-draggable/external-item/external-item-preparation/external-item-preparation.execution.mjs +41 -0
  216. package/esm2022/f-draggable/external-item/external-item-preparation/external-item-preparation.request.mjs +6 -0
  217. package/esm2022/f-draggable/external-item/external-item-preparation/external-item-preparation.validator.mjs +29 -0
  218. package/esm2022/f-draggable/external-item/external-item-preparation/index.mjs +5 -0
  219. package/esm2022/f-draggable/external-item/external-item-preparation/providers.mjs +7 -0
  220. package/esm2022/f-draggable/external-item/index.mjs +3 -3
  221. package/esm2022/f-draggable/external-item/providers.mjs +5 -5
  222. package/esm2022/f-draggable/f-draggable-base.mjs +6 -7
  223. package/esm2022/f-draggable/f-draggable-data-context.mjs +4 -4
  224. package/esm2022/f-draggable/f-draggable.directive.mjs +31 -29
  225. package/esm2022/f-draggable/i-can-run-outside-angular.mjs +2 -0
  226. package/esm2022/f-draggable/index.mjs +4 -1
  227. package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +8 -10
  228. package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +8 -10
  229. package/esm2022/f-draggable/node/connection.drag-handler.mjs +8 -8
  230. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +92 -0
  231. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.request.mjs +3 -0
  232. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/index.mjs +4 -0
  233. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.mjs +5 -0
  234. package/esm2022/f-draggable/node/index.mjs +4 -4
  235. package/esm2022/f-draggable/node/node-move-finalize/index.mjs +5 -0
  236. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +51 -0
  237. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.request.mjs +6 -0
  238. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.validator.mjs +25 -0
  239. package/esm2022/f-draggable/node/node-move-finalize/providers.mjs +7 -0
  240. package/esm2022/f-draggable/node/node-move-preparation/index.mjs +5 -0
  241. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.execution.mjs +60 -0
  242. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.request.mjs +6 -0
  243. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.validator.mjs +41 -0
  244. package/esm2022/f-draggable/node/node-move-preparation/providers.mjs +7 -0
  245. package/esm2022/f-draggable/node/node.drag-handler.mjs +2 -2
  246. package/esm2022/f-draggable/node/providers.mjs +7 -7
  247. package/esm2022/f-draggable/node-resize/index.mjs +5 -0
  248. package/esm2022/f-draggable/node-resize/node-resize-finalize/index.mjs +5 -0
  249. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.execution.mjs +26 -0
  250. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.request.mjs +6 -0
  251. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.validator.mjs +25 -0
  252. package/esm2022/f-draggable/node-resize/node-resize-finalize/providers.mjs +7 -0
  253. package/esm2022/f-draggable/node-resize/node-resize-preparation/index.mjs +5 -0
  254. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.execution.mjs +52 -0
  255. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.request.mjs +6 -0
  256. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.validator.mjs +41 -0
  257. package/esm2022/f-draggable/node-resize/node-resize-preparation/providers.mjs +7 -0
  258. package/esm2022/f-draggable/node-resize/node-resize.drag-handler.mjs +49 -0
  259. package/esm2022/f-draggable/node-resize/providers.mjs +7 -0
  260. package/esm2022/f-draggable/providers.mjs +17 -0
  261. package/esm2022/f-draggable/selection-area/index.mjs +3 -4
  262. package/esm2022/f-draggable/selection-area/providers.mjs +5 -7
  263. package/esm2022/f-draggable/selection-area/selection-area-finalize/index.mjs +5 -0
  264. package/esm2022/f-draggable/selection-area/selection-area-finalize/providers.mjs +7 -0
  265. package/esm2022/f-draggable/selection-area/selection-area-finalize/selection-area-finalize.execution.mjs +26 -0
  266. package/esm2022/f-draggable/selection-area/selection-area-finalize/selection-area-finalize.request.mjs +6 -0
  267. package/esm2022/f-draggable/selection-area/selection-area-finalize/selection-area-finalize.validator.mjs +25 -0
  268. package/esm2022/f-draggable/selection-area/selection-area-preparation/index.mjs +5 -0
  269. package/esm2022/f-draggable/selection-area/selection-area-preparation/providers.mjs +7 -0
  270. package/esm2022/f-draggable/selection-area/selection-area-preparation/selection-area-preparation.execution.mjs +38 -0
  271. package/esm2022/f-draggable/selection-area/selection-area-preparation/selection-area-preparation.request.mjs +6 -0
  272. package/esm2022/f-draggable/selection-area/selection-area-preparation/selection-area-preparation.validator.mjs +30 -0
  273. package/esm2022/f-draggable/selection-area/selection-area.drag-handle.mjs +5 -5
  274. package/esm2022/f-draggable/single-select/index.mjs +4 -2
  275. package/esm2022/f-draggable/single-select/providers.mjs +5 -3
  276. package/esm2022/f-draggable/single-select/single-select.execution.mjs +80 -0
  277. package/esm2022/f-draggable/single-select/single-select.request.mjs +6 -0
  278. package/esm2022/f-draggable/single-select/single-select.validator.mjs +24 -0
  279. package/esm2022/f-external-item/f-external-item-base.mjs +4 -4
  280. package/esm2022/f-external-item/f-external-item.directive.mjs +4 -4
  281. package/esm2022/f-external-item/f-external-item.service.mjs +4 -4
  282. package/esm2022/f-external-item/index.mjs +2 -1
  283. package/esm2022/f-external-item/providers.mjs +5 -0
  284. package/esm2022/f-flow/f-flow.component.mjs +9 -19
  285. package/esm2022/f-flow/index.mjs +2 -1
  286. package/esm2022/f-flow/providers.mjs +5 -0
  287. package/esm2022/f-flow.module.mjs +58 -107
  288. package/esm2022/f-line-alignment/domain/nearest-coordinate.mjs +14 -13
  289. package/esm2022/f-line-alignment/f-line-alignment-base.mjs +4 -4
  290. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +12 -12
  291. package/esm2022/f-line-alignment/index.mjs +2 -1
  292. package/esm2022/f-line-alignment/providers.mjs +5 -0
  293. package/esm2022/f-node/f-drag-handle/f-drag-handle.directive.mjs +8 -26
  294. package/esm2022/f-node/f-drag-handle/index.mjs +1 -2
  295. package/esm2022/f-node/f-node-base.mjs +8 -4
  296. package/esm2022/f-node/f-node.directive.mjs +24 -7
  297. package/esm2022/f-node/f-resize-handle/e-f-resize-handle-type.mjs +8 -0
  298. package/esm2022/f-node/f-resize-handle/f-resize-handle.directive.mjs +55 -0
  299. package/esm2022/f-node/f-resize-handle/index.mjs +3 -0
  300. package/esm2022/f-node/f-rotate-handle/f-rotate-handle.directive.mjs +27 -0
  301. package/esm2022/f-node/f-rotate-handle/index.mjs +2 -0
  302. package/esm2022/f-node/index.mjs +4 -1
  303. package/esm2022/f-node/providers.mjs +10 -0
  304. package/esm2022/f-selection-area/f-selection-area-base.mjs +4 -4
  305. package/esm2022/f-selection-area/f-selection-area.component.mjs +4 -4
  306. package/esm2022/f-selection-area/index.mjs +2 -1
  307. package/esm2022/f-selection-area/providers.mjs +5 -0
  308. package/esm2022/f-storage/f-components-store.mjs +4 -5
  309. package/esm2022/infrastructure/f-mediator/f-execution-register.mjs +7 -0
  310. package/esm2022/infrastructure/f-mediator/f-flow-mediator.mjs +29 -0
  311. package/esm2022/infrastructure/f-mediator/f-validator-register.mjs +7 -0
  312. package/esm2022/infrastructure/f-mediator/index.mjs +4 -0
  313. package/esm2022/infrastructure/index.mjs +3 -0
  314. package/esm2022/infrastructure/pipeline/i-execution.mjs +2 -0
  315. package/esm2022/infrastructure/pipeline/i-validator.mjs +2 -0
  316. package/esm2022/infrastructure/pipeline/index.mjs +4 -0
  317. package/esm2022/infrastructure/pipeline/pipeline.mjs +19 -0
  318. package/esm2022/public-api.mjs +2 -3
  319. package/f-backgroud/index.d.ts +1 -0
  320. package/f-backgroud/providers.d.ts +4 -0
  321. package/f-canvas/f-canvas-base.d.ts +1 -0
  322. package/f-canvas/f-canvas.component.d.ts +1 -1
  323. package/f-canvas/index.d.ts +1 -0
  324. package/f-canvas/providers.d.ts +3 -0
  325. package/f-connection/common/f-connection-base.d.ts +8 -6
  326. package/f-connection/common/f-connection-text/f-connection-text.component.d.ts +2 -2
  327. package/f-connection/common/f-connection-text/i-connection-text.d.ts +2 -2
  328. package/f-connection/common/f-gradient/f-connection-gradient.component.d.ts +2 -2
  329. package/f-connection/common/f-gradient/i-connection-gradient.d.ts +2 -2
  330. package/f-connection/common/index.d.ts +0 -2
  331. package/f-connection/index.d.ts +1 -0
  332. package/f-connection/providers.d.ts +6 -0
  333. package/f-connectors/index.d.ts +1 -0
  334. package/f-connectors/providers.d.ts +4 -0
  335. package/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.d.ts +11 -0
  336. package/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.request.d.ts +5 -0
  337. package/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.validator.d.ts +11 -0
  338. package/f-draggable/canvas/canvas-move-finalize/index.d.ts +4 -0
  339. package/f-draggable/canvas/canvas-move-finalize/providers.d.ts +3 -0
  340. package/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.execution.d.ts +14 -0
  341. package/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.request.d.ts +5 -0
  342. package/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.validator.d.ts +17 -0
  343. package/f-draggable/canvas/canvas-move-preparation/index.d.ts +4 -0
  344. package/f-draggable/canvas/canvas-move-preparation/providers.d.ts +3 -0
  345. package/f-draggable/canvas/index.d.ts +2 -2
  346. package/f-draggable/canvas/providers.d.ts +1 -3
  347. package/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.d.ts +21 -0
  348. package/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.request.d.ts +5 -0
  349. package/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.validator.d.ts +11 -0
  350. package/f-draggable/connections/create-connection/create-connection-finalize/index.d.ts +4 -0
  351. package/f-draggable/connections/create-connection/create-connection-finalize/providers.d.ts +3 -0
  352. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.execution.d.ts +16 -0
  353. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.request.d.ts +8 -0
  354. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/index.d.ts +3 -0
  355. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/providers.d.ts +2 -0
  356. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.execution.d.ts +15 -0
  357. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.request.d.ts +5 -0
  358. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/index.d.ts +3 -0
  359. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/providers.d.ts +2 -0
  360. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.execution.d.ts +15 -0
  361. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.request.d.ts +5 -0
  362. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.validator.d.ts +14 -0
  363. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/index.d.ts +4 -0
  364. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/providers.d.ts +3 -0
  365. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.execution.d.ts +16 -0
  366. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.request.d.ts +5 -0
  367. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.validator.d.ts +15 -0
  368. package/f-draggable/connections/create-connection/create-connection-preparation/index.d.ts +7 -0
  369. package/f-draggable/connections/create-connection/create-connection-preparation/providers.d.ts +3 -0
  370. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +1 -1
  371. package/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.execution.d.ts +16 -0
  372. package/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.request.d.ts +5 -0
  373. package/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.validator.d.ts +12 -0
  374. package/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/index.d.ts +4 -0
  375. package/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/providers.d.ts +3 -0
  376. package/f-draggable/connections/create-connection/index.d.ts +3 -3
  377. package/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.execution.d.ts +22 -0
  378. package/f-draggable/connections/{find-inputs-under-pointer/find-inputs-under-pointer.request.d.ts → get-input-under-pointer/get-input-under-pointer.request.d.ts} +1 -1
  379. package/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.validator.d.ts +13 -0
  380. package/f-draggable/connections/get-input-under-pointer/index.d.ts +4 -0
  381. package/f-draggable/connections/get-input-under-pointer/providers.d.ts +3 -0
  382. package/f-draggable/connections/index.d.ts +1 -1
  383. package/f-draggable/connections/providers.d.ts +1 -4
  384. package/f-draggable/connections/reassign-connection/index.d.ts +2 -2
  385. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/index.d.ts +4 -0
  386. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/providers.d.ts +3 -0
  387. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.d.ts +19 -0
  388. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.request.d.ts +5 -0
  389. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.validator.d.ts +11 -0
  390. package/f-draggable/connections/reassign-connection/reassign-connection-preparation/index.d.ts +4 -0
  391. package/f-draggable/connections/reassign-connection/reassign-connection-preparation/providers.d.ts +3 -0
  392. package/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.execution.d.ts +21 -0
  393. package/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.request.d.ts +5 -0
  394. package/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.validator.d.ts +18 -0
  395. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +1 -1
  396. package/f-draggable/e-f-draggable-type.d.ts +2 -0
  397. package/f-draggable/external-item/external-item-finalize/external-item-finalize.execution.d.ts +21 -0
  398. package/f-draggable/external-item/external-item-finalize/external-item-finalize.request.d.ts +5 -0
  399. package/f-draggable/external-item/external-item-finalize/external-item-finalize.validator.d.ts +11 -0
  400. package/f-draggable/external-item/external-item-finalize/index.d.ts +4 -0
  401. package/f-draggable/external-item/external-item-finalize/providers.d.ts +3 -0
  402. package/f-draggable/external-item/external-item-preparation/external-item-preparation.execution.d.ts +17 -0
  403. package/f-draggable/external-item/external-item-preparation/external-item-preparation.request.d.ts +5 -0
  404. package/f-draggable/external-item/external-item-preparation/external-item-preparation.validator.d.ts +12 -0
  405. package/f-draggable/external-item/external-item-preparation/index.d.ts +4 -0
  406. package/f-draggable/external-item/external-item-preparation/providers.d.ts +3 -0
  407. package/f-draggable/external-item/index.d.ts +2 -2
  408. package/f-draggable/external-item/providers.d.ts +1 -3
  409. package/f-draggable/f-draggable-base.d.ts +2 -3
  410. package/f-draggable/f-draggable.directive.d.ts +3 -4
  411. package/f-draggable/i-can-run-outside-angular.d.ts +3 -0
  412. package/f-draggable/index.d.ts +3 -0
  413. package/f-draggable/node/connection-source.drag-handler.d.ts +1 -1
  414. package/f-draggable/node/connection-target.drag-handler.d.ts +1 -1
  415. package/f-draggable/node/connection.drag-handler.d.ts +2 -2
  416. package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +27 -0
  417. package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.request.d.ts +2 -0
  418. package/f-draggable/node/create-move-nodes-drag-model-from-selection/index.d.ts +3 -0
  419. package/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.d.ts +2 -0
  420. package/f-draggable/node/index.d.ts +3 -3
  421. package/f-draggable/node/node-move-finalize/index.d.ts +4 -0
  422. package/f-draggable/node/node-move-finalize/node-move-finalize.execution.d.ts +17 -0
  423. package/f-draggable/node/node-move-finalize/node-move-finalize.request.d.ts +5 -0
  424. package/f-draggable/node/node-move-finalize/node-move-finalize.validator.d.ts +11 -0
  425. package/f-draggable/node/node-move-finalize/providers.d.ts +3 -0
  426. package/f-draggable/node/node-move-preparation/index.d.ts +4 -0
  427. package/f-draggable/node/node-move-preparation/node-move-preparation.execution.d.ts +21 -0
  428. package/f-draggable/node/node-move-preparation/node-move-preparation.request.d.ts +5 -0
  429. package/f-draggable/node/node-move-preparation/node-move-preparation.validator.d.ts +17 -0
  430. package/f-draggable/node/node-move-preparation/providers.d.ts +3 -0
  431. package/f-draggable/node/providers.d.ts +1 -4
  432. package/f-draggable/node-resize/index.d.ts +4 -0
  433. package/f-draggable/node-resize/node-resize-finalize/index.d.ts +4 -0
  434. package/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.execution.d.ts +11 -0
  435. package/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.request.d.ts +5 -0
  436. package/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.validator.d.ts +11 -0
  437. package/f-draggable/node-resize/node-resize-finalize/providers.d.ts +3 -0
  438. package/f-draggable/node-resize/node-resize-preparation/index.d.ts +4 -0
  439. package/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.execution.d.ts +18 -0
  440. package/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.request.d.ts +5 -0
  441. package/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.validator.d.ts +17 -0
  442. package/f-draggable/node-resize/node-resize-preparation/providers.d.ts +3 -0
  443. package/f-draggable/node-resize/node-resize.drag-handler.d.ts +19 -0
  444. package/f-draggable/node-resize/providers.d.ts +1 -0
  445. package/f-draggable/providers.d.ts +1 -0
  446. package/f-draggable/selection-area/index.d.ts +2 -3
  447. package/f-draggable/selection-area/providers.d.ts +1 -4
  448. package/f-draggable/selection-area/selection-area-finalize/index.d.ts +4 -0
  449. package/f-draggable/selection-area/selection-area-finalize/providers.d.ts +3 -0
  450. package/f-draggable/selection-area/selection-area-finalize/selection-area-finalize.execution.d.ts +11 -0
  451. package/f-draggable/selection-area/selection-area-finalize/selection-area-finalize.request.d.ts +5 -0
  452. package/f-draggable/selection-area/selection-area-finalize/selection-area-finalize.validator.d.ts +11 -0
  453. package/f-draggable/selection-area/selection-area-preparation/index.d.ts +4 -0
  454. package/f-draggable/selection-area/selection-area-preparation/providers.d.ts +3 -0
  455. package/f-draggable/selection-area/selection-area-preparation/selection-area-preparation.execution.d.ts +15 -0
  456. package/f-draggable/selection-area/selection-area-preparation/selection-area-preparation.request.d.ts +5 -0
  457. package/f-draggable/selection-area/selection-area-preparation/selection-area-preparation.validator.d.ts +12 -0
  458. package/f-draggable/selection-area/selection-area.drag-handle.d.ts +3 -3
  459. package/f-draggable/single-select/index.d.ts +3 -1
  460. package/f-draggable/single-select/providers.d.ts +3 -2
  461. package/f-draggable/single-select/{single-select.on-pointer-down.d.ts → single-select.execution.d.ts} +7 -7
  462. package/f-draggable/single-select/single-select.request.d.ts +5 -0
  463. package/f-draggable/single-select/single-select.validator.d.ts +11 -0
  464. package/f-external-item/index.d.ts +1 -0
  465. package/f-external-item/providers.d.ts +2 -0
  466. package/f-flow/f-flow.component.d.ts +1 -1
  467. package/f-flow/index.d.ts +1 -0
  468. package/f-flow/providers.d.ts +2 -0
  469. package/f-flow.module.d.ts +26 -26
  470. package/f-line-alignment/domain/nearest-coordinate.d.ts +3 -1
  471. package/f-line-alignment/f-line-alignment.component.d.ts +3 -2
  472. package/f-line-alignment/index.d.ts +1 -0
  473. package/f-line-alignment/providers.d.ts +2 -0
  474. package/f-node/f-drag-handle/f-drag-handle.directive.d.ts +4 -9
  475. package/f-node/f-drag-handle/index.d.ts +0 -1
  476. package/f-node/f-node-base.d.ts +6 -2
  477. package/f-node/f-node.directive.d.ts +6 -2
  478. package/f-node/f-resize-handle/e-f-resize-handle-type.d.ts +6 -0
  479. package/f-node/f-resize-handle/f-resize-handle.directive.d.ts +19 -0
  480. package/f-node/f-resize-handle/index.d.ts +2 -0
  481. package/f-node/f-rotate-handle/f-rotate-handle.directive.d.ts +9 -0
  482. package/f-node/f-rotate-handle/index.d.ts +1 -0
  483. package/f-node/index.d.ts +3 -0
  484. package/f-node/providers.d.ts +4 -0
  485. package/f-selection-area/index.d.ts +1 -0
  486. package/f-selection-area/providers.d.ts +2 -0
  487. package/f-storage/f-components-store.d.ts +0 -2
  488. package/fesm2022/foblex-flow.mjs +4287 -3174
  489. package/fesm2022/foblex-flow.mjs.map +1 -1
  490. package/infrastructure/f-mediator/f-execution-register.d.ts +5 -0
  491. package/{f-mediator → infrastructure/f-mediator}/f-flow-mediator.d.ts +3 -3
  492. package/infrastructure/f-mediator/f-validator-register.d.ts +5 -0
  493. package/infrastructure/f-mediator/index.d.ts +3 -0
  494. package/infrastructure/index.d.ts +2 -0
  495. package/infrastructure/pipeline/i-execution.d.ts +3 -0
  496. package/infrastructure/pipeline/i-validator.d.ts +3 -0
  497. package/infrastructure/pipeline/index.d.ts +3 -0
  498. package/infrastructure/pipeline/pipeline.d.ts +11 -0
  499. package/package.json +2 -2
  500. package/public-api.d.ts +1 -2
  501. package/domain/get-connection-vector/get-connection-vector.handler.d.ts +0 -12
  502. package/domain/get-connection-vector/get-connection-vector.request.d.ts +0 -11
  503. package/domain/get-connection-vector/index.d.ts +0 -2
  504. package/domain/get-nodes-rect/get-nodes-rect.handler.d.ts +0 -11
  505. package/domain/update-item-layer/update-item-layer.handler.d.ts +0 -8
  506. package/esm2022/domain/clear-selection/clear-selection.handler.mjs +0 -28
  507. package/esm2022/domain/create-connection-markers/create-connection-markers.handler.mjs +0 -49
  508. package/esm2022/domain/get-connection-vector/get-connection-vector.handler.mjs +0 -79
  509. package/esm2022/domain/get-connection-vector/get-connection-vector.request.mjs +0 -10
  510. package/esm2022/domain/get-connection-vector/index.mjs +0 -3
  511. package/esm2022/domain/get-element-rect-in-flow/get-element-rect-in-flow.handler.mjs +0 -34
  512. package/esm2022/domain/get-input-rect-in-flow/get-input-rect-in-flow.handler.mjs +0 -34
  513. package/esm2022/domain/get-nodes-rect/get-nodes-rect.handler.mjs +0 -30
  514. package/esm2022/domain/get-output-rect-in-flow/get-output-rect-in-flow.handler.mjs +0 -37
  515. package/esm2022/domain/get-position-in-flow/get-position-in-flow.handler.mjs +0 -32
  516. package/esm2022/domain/get-selection/get-selection.handler.mjs +0 -35
  517. package/esm2022/domain/redraw-connections/redraw-connections.handler.mjs +0 -60
  518. package/esm2022/domain/select/select.handler.mjs +0 -44
  519. package/esm2022/domain/select-all/select-all.handler.mjs +0 -38
  520. package/esm2022/domain/update-item-layer/update-item-layer.handler.mjs +0 -29
  521. package/esm2022/f-connection/common/cast-to-connection-behavior.mjs +0 -9
  522. package/esm2022/f-connection/common/cast-to-connection-type.mjs +0 -9
  523. package/esm2022/f-draggable/canvas/canvas.on-pointer-up.mjs +0 -23
  524. package/esm2022/f-draggable/canvas/canvas.prepare-drag-sequence.mjs +0 -37
  525. package/esm2022/f-draggable/connections/create-connection/create-connection.on-pointer-up.mjs +0 -48
  526. package/esm2022/f-draggable/connections/create-connection/create-connection.prepare-drag-sequence.mjs +0 -85
  527. package/esm2022/f-draggable/connections/create-connection/find-first-can-be-connected-output-by-outlet/find-first-can-be-connected-output-by-outlet.handler.mjs +0 -34
  528. package/esm2022/f-draggable/connections/create-connection/find-first-can-be-connected-output-by-outlet/index.mjs +0 -2
  529. package/esm2022/f-draggable/connections/find-inputs-under-pointer/find-inputs-under-pointer.handler.mjs +0 -54
  530. package/esm2022/f-draggable/connections/find-inputs-under-pointer/find-inputs-under-pointer.request.mjs +0 -7
  531. package/esm2022/f-draggable/connections/find-inputs-under-pointer/first-not-connected-input-of-node-under-pointer/first-not-connected-input-of-node-under-pointer.handler.mjs +0 -34
  532. package/esm2022/f-draggable/connections/find-inputs-under-pointer/first-not-connected-input-of-node-under-pointer/index.mjs +0 -2
  533. package/esm2022/f-draggable/connections/find-inputs-under-pointer/index.mjs +0 -4
  534. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.on-pointer-up.mjs +0 -36
  535. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.prepare-drag-sequence.mjs +0 -53
  536. package/esm2022/f-draggable/external-item/external-item.on-pointer-up.mjs +0 -45
  537. package/esm2022/f-draggable/external-item/external-item.prepare-drag-sequence.mjs +0 -44
  538. package/esm2022/f-draggable/node/domain/is-connection-under-node/index.mjs +0 -2
  539. package/esm2022/f-draggable/node/domain/is-connection-under-node/is-connection-under-node.handler.mjs +0 -73
  540. package/esm2022/f-draggable/node/node.on-pointer-up.mjs +0 -41
  541. package/esm2022/f-draggable/node/node.prepare-drag-sequence.mjs +0 -101
  542. package/esm2022/f-draggable/selection-area/get-can-be-selected-items/get-can-be-selected-items.handler.mjs +0 -55
  543. package/esm2022/f-draggable/selection-area/get-can-be-selected-items/i-selectable-with-rect.mjs +0 -2
  544. package/esm2022/f-draggable/selection-area/get-can-be-selected-items/index.mjs +0 -3
  545. package/esm2022/f-draggable/selection-area/selection-area.on-pointer-up.mjs +0 -23
  546. package/esm2022/f-draggable/selection-area/selection-area.prepare-drag-sequence.mjs +0 -32
  547. package/esm2022/f-draggable/single-select/single-select.on-pointer-down.mjs +0 -75
  548. package/esm2022/f-group/f-group-base.mjs +0 -6
  549. package/esm2022/f-group/f-group.directive.mjs +0 -110
  550. package/esm2022/f-group/index.mjs +0 -4
  551. package/esm2022/f-group/is-group.mjs +0 -4
  552. package/esm2022/f-mediator/f-flow-mediator.mjs +0 -24
  553. package/esm2022/f-mediator/f-handler-register.mjs +0 -7
  554. package/esm2022/f-mediator/index.mjs +0 -3
  555. package/esm2022/f-node/f-drag-handle/is-drag-handle.mjs +0 -20
  556. package/f-connection/common/cast-to-connection-behavior.d.ts +0 -2
  557. package/f-connection/common/cast-to-connection-type.d.ts +0 -2
  558. package/f-draggable/canvas/canvas.on-pointer-up.d.ts +0 -10
  559. package/f-draggable/canvas/canvas.prepare-drag-sequence.d.ts +0 -13
  560. package/f-draggable/connections/create-connection/create-connection.on-pointer-up.d.ts +0 -16
  561. package/f-draggable/connections/create-connection/create-connection.prepare-drag-sequence.d.ts +0 -20
  562. package/f-draggable/connections/create-connection/find-first-can-be-connected-output-by-outlet/find-first-can-be-connected-output-by-outlet.handler.d.ts +0 -13
  563. package/f-draggable/connections/create-connection/find-first-can-be-connected-output-by-outlet/index.d.ts +0 -1
  564. package/f-draggable/connections/find-inputs-under-pointer/find-inputs-under-pointer.handler.d.ts +0 -18
  565. package/f-draggable/connections/find-inputs-under-pointer/first-not-connected-input-of-node-under-pointer/first-not-connected-input-of-node-under-pointer.handler.d.ts +0 -13
  566. package/f-draggable/connections/find-inputs-under-pointer/first-not-connected-input-of-node-under-pointer/index.d.ts +0 -1
  567. package/f-draggable/connections/find-inputs-under-pointer/index.d.ts +0 -3
  568. package/f-draggable/connections/reassign-connection/reassign-connection.on-pointer-up.d.ts +0 -15
  569. package/f-draggable/connections/reassign-connection/reassign-connection.prepare-drag-sequence.d.ts +0 -18
  570. package/f-draggable/external-item/external-item.on-pointer-up.d.ts +0 -16
  571. package/f-draggable/external-item/external-item.prepare-drag-sequence.d.ts +0 -16
  572. package/f-draggable/node/domain/is-connection-under-node/index.d.ts +0 -1
  573. package/f-draggable/node/node.on-pointer-up.d.ts +0 -15
  574. package/f-draggable/node/node.prepare-drag-sequence.d.ts +0 -22
  575. package/f-draggable/selection-area/get-can-be-selected-items/index.d.ts +0 -2
  576. package/f-draggable/selection-area/selection-area.on-pointer-up.d.ts +0 -10
  577. package/f-draggable/selection-area/selection-area.prepare-drag-sequence.d.ts +0 -15
  578. package/f-group/f-group-base.d.ts +0 -6
  579. package/f-group/f-group.directive.d.ts +0 -31
  580. package/f-group/index.d.ts +0 -3
  581. package/f-group/is-group.d.ts +0 -1
  582. package/f-mediator/f-handler-register.d.ts +0 -5
  583. package/f-mediator/index.d.ts +0 -2
  584. package/f-node/f-drag-handle/is-drag-handle.d.ts +0 -1
@@ -1,34 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../../../f-storage";
4
- export class FirstNotConnectedInputOfNodeUnderPointerHandler {
5
- get fNodes() {
6
- return this.fComponentsStore.fNodes;
7
- }
8
- get fInputs() {
9
- return this.fComponentsStore.fInputs;
10
- }
11
- constructor(fComponentsStore) {
12
- this.fComponentsStore = fComponentsStore;
13
- }
14
- handle(event) {
15
- const position = event.getPosition();
16
- const elementsFromPoint = document.elementsFromPoint(position.x, position.y);
17
- const nodes = elementsFromPoint.map((element) => {
18
- return this.fNodes.find((x) => x.isContains(element));
19
- }).filter((x) => !!x);
20
- const inputs = nodes.map((x) => {
21
- return this.fInputs.filter((i) => x.isContains(i.hostElement)).find((i) => {
22
- return !i.isConnected && i.canBeConnected;
23
- });
24
- });
25
- const result = inputs.find((x) => !!x);
26
- return result;
27
- }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FirstNotConnectedInputOfNodeUnderPointerHandler, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FirstNotConnectedInputOfNodeUnderPointerHandler }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FirstNotConnectedInputOfNodeUnderPointerHandler, decorators: [{
32
- type: Injectable
33
- }], ctorParameters: () => [{ type: i1.FComponentsStore }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyc3Qtbm90LWNvbm5lY3RlZC1pbnB1dC1vZi1ub2RlLXVuZGVyLXBvaW50ZXIuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvY29ubmVjdGlvbnMvZmluZC1pbnB1dHMtdW5kZXItcG9pbnRlci9maXJzdC1ub3QtY29ubmVjdGVkLWlucHV0LW9mLW5vZGUtdW5kZXItcG9pbnRlci9maXJzdC1ub3QtY29ubmVjdGVkLWlucHV0LW9mLW5vZGUtdW5kZXItcG9pbnRlci5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sK0NBQStDO0lBRzFELElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVksT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQ1ksZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFOUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFvQjtRQUNoQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFrQixDQUFDO1FBRTlGLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzlDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUN2RCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFFckMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hFLE9BQU8sQ0FBRSxDQUFvQixDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs4R0FoQ1UsK0NBQStDO2tIQUEvQywrQ0FBK0M7OzJGQUEvQywrQ0FBK0M7a0JBRDNELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgSVBvaW50ZXJFdmVudCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlLCBGTm9kZUlucHV0QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLW5vZGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmlyc3ROb3RDb25uZWN0ZWRJbnB1dE9mTm9kZVVuZGVyUG9pbnRlckhhbmRsZXJcbiAgaW1wbGVtZW50cyBJSGFuZGxlcjxJUG9pbnRlckV2ZW50LCBGQ29ubmVjdG9yQmFzZSB8IHVuZGVmaW5lZD4ge1xuXG4gIHByaXZhdGUgZ2V0IGZOb2RlcygpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mTm9kZXM7XG4gIH1cblxuICBwcml2YXRlIGdldCBmSW5wdXRzKCk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZklucHV0cztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShldmVudDogSVBvaW50ZXJFdmVudCk6IEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IGV2ZW50LmdldFBvc2l0aW9uKCk7XG4gICAgY29uc3QgZWxlbWVudHNGcm9tUG9pbnQgPSBkb2N1bWVudC5lbGVtZW50c0Zyb21Qb2ludChwb3NpdGlvbi54LCBwb3NpdGlvbi55KSBhcyBIVE1MRWxlbWVudFtdO1xuXG4gICAgY29uc3Qgbm9kZXMgPSBlbGVtZW50c0Zyb21Qb2ludC5tYXAoKGVsZW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZOb2Rlcy5maW5kKCh4KSA9PiB4LmlzQ29udGFpbnMoZWxlbWVudCkpXG4gICAgfSkuZmlsdGVyKCh4KSA9PiAhIXgpIGFzIEZOb2RlQmFzZVtdO1xuXG4gICAgY29uc3QgaW5wdXRzID0gbm9kZXMubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5mSW5wdXRzLmZpbHRlcigoaSkgPT4geC5pc0NvbnRhaW5zKGkuaG9zdEVsZW1lbnQpKS5maW5kKChpKSA9PiB7XG4gICAgICAgIHJldHVybiAhKGkgYXMgRk5vZGVJbnB1dEJhc2UpLmlzQ29ubmVjdGVkICYmIGkuY2FuQmVDb25uZWN0ZWQ7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBpbnB1dHMuZmluZCgoeCkgPT4gISF4KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './first-not-connected-input-of-node-under-pointer.handler';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2ZpbmQtaW5wdXRzLXVuZGVyLXBvaW50ZXIvZmlyc3Qtbm90LWNvbm5lY3RlZC1pbnB1dC1vZi1ub2RlLXVuZGVyLXBvaW50ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyREFBMkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmlyc3Qtbm90LWNvbm5lY3RlZC1pbnB1dC1vZi1ub2RlLXVuZGVyLXBvaW50ZXIuaGFuZGxlcic7XG4iXX0=
@@ -1,4 +0,0 @@
1
- export * from './first-not-connected-input-of-node-under-pointer';
2
- export * from './find-inputs-under-pointer.request';
3
- export * from './find-inputs-under-pointer.handler';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2ZpbmQtaW5wdXRzLXVuZGVyLXBvaW50ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpcnN0LW5vdC1jb25uZWN0ZWQtaW5wdXQtb2Ytbm9kZS11bmRlci1wb2ludGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZmluZC1pbnB1dHMtdW5kZXItcG9pbnRlci5yZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vZmluZC1pbnB1dHMtdW5kZXItcG9pbnRlci5oYW5kbGVyJztcbiJdfQ==
@@ -1,36 +0,0 @@
1
- import { EFDraggableType } from '../../e-f-draggable-type';
2
- import { FindInputsUnderPointerRequest, FReassignConnectionEvent } from '../index';
3
- import { Injectable } from '@angular/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../../f-storage";
6
- import * as i2 from "../../f-draggable-data-context";
7
- import * as i3 from "../index";
8
- export class ReassignConnectionOnPointerUp {
9
- get fDraggable() {
10
- return this.fComponentsStore.fDraggable;
11
- }
12
- constructor(fComponentsStore, fDraggableDataContext, findInputsUnderPointerHandler) {
13
- this.fComponentsStore = fComponentsStore;
14
- this.fDraggableDataContext = fDraggableDataContext;
15
- this.findInputsUnderPointerHandler = findInputsUnderPointerHandler;
16
- }
17
- handle(event) {
18
- const isReassignConnection = this.fDraggableDataContext.draggableItems.some((x) => x.type === EFDraggableType.REASSIGN_CONNECTION);
19
- if (isReassignConnection) {
20
- const handler = this.fDraggableDataContext.draggableItems[0];
21
- const inputsUnderPointer = this.findInputsUnderPointerHandler.handle(new FindInputsUnderPointerRequest(event, handler));
22
- if (inputsUnderPointer.length > 0) {
23
- if (handler.connection.fInputId !== inputsUnderPointer[0]?.id) {
24
- this.fDraggable.fReassignConnection.emit(new FReassignConnectionEvent(handler.connection.fConnectionId, handler.connection.fOutputId, handler.connection.fInputId, inputsUnderPointer[0]?.id));
25
- }
26
- }
27
- handler.complete();
28
- }
29
- }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ReassignConnectionOnPointerUp, deps: [{ token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }, { token: i3.FindInputsUnderPointerHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
31
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ReassignConnectionOnPointerUp }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ReassignConnectionOnPointerUp, decorators: [{
34
- type: Injectable
35
- }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.FindInputsUnderPointerHandler }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi5vbi1wb2ludGVyLXVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9yZWFzc2lnbi1jb25uZWN0aW9uL3JlYXNzaWduLWNvbm5lY3Rpb24ub24tcG9pbnRlci11cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUVMLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDekIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFNM0MsTUFBTSxPQUFPLDZCQUE2QjtJQUd4QyxJQUFZLFVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVyxDQUFDO0lBQzNDLENBQUM7SUFFRCxZQUNZLGdCQUFrQyxFQUNsQyxxQkFBNEMsRUFDNUMsNkJBQTREO1FBRjVELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQStCO0lBRXhFLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBb0I7UUFDaEMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuSSxJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBRSxDQUFDLENBQW1DLENBQUM7WUFFaEcsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUNsRSxJQUFJLDZCQUE2QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FDbEQsQ0FBQztZQUVGLElBQUksa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxLQUFLLGtCQUFrQixDQUFFLENBQUMsQ0FBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO29CQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDdEMsSUFBSSx3QkFBd0IsQ0FDMUIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQzlELE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUMzQixrQkFBa0IsQ0FBRSxDQUFDLENBQUUsRUFBRSxFQUFFLENBQzVCLENBQ0YsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQzs4R0FwQ1UsNkJBQTZCO2tIQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgSVBvaW50ZXJFdmVudCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBSZWFzc2lnbkNvbm5lY3Rpb25EcmFnSGFuZGxlciB9IGZyb20gJy4vcmVhc3NpZ24tY29ubmVjdGlvbi5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRUZEcmFnZ2FibGVUeXBlIH0gZnJvbSAnLi4vLi4vZS1mLWRyYWdnYWJsZS10eXBlJztcbmltcG9ydCB7XG4gIEZpbmRJbnB1dHNVbmRlclBvaW50ZXJIYW5kbGVyLFxuICBGaW5kSW5wdXRzVW5kZXJQb2ludGVyUmVxdWVzdCxcbiAgRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50XG59IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IEZEcmFnZ2FibGVCYXNlIH0gZnJvbSAnLi4vLi4vZi1kcmFnZ2FibGUtYmFzZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJVcFxuICBpbXBsZW1lbnRzIElIYW5kbGVyPElQb2ludGVyRXZlbnQsIHZvaWQ+IHtcblxuICBwcml2YXRlIGdldCBmRHJhZ2dhYmxlKCk6IEZEcmFnZ2FibGVCYXNlIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZEcmFnZ2FibGUhO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBmaW5kSW5wdXRzVW5kZXJQb2ludGVySGFuZGxlcjogRmluZElucHV0c1VuZGVyUG9pbnRlckhhbmRsZXJcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaXNSZWFzc2lnbkNvbm5lY3Rpb24gPSB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5zb21lKCh4KSA9PiB4LnR5cGUgPT09IEVGRHJhZ2dhYmxlVHlwZS5SRUFTU0lHTl9DT05ORUNUSU9OKTtcbiAgICBpZiAoaXNSZWFzc2lnbkNvbm5lY3Rpb24pIHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtc1sgMCBdIGFzIFJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyO1xuXG4gICAgICBjb25zdCBpbnB1dHNVbmRlclBvaW50ZXIgPSB0aGlzLmZpbmRJbnB1dHNVbmRlclBvaW50ZXJIYW5kbGVyLmhhbmRsZShcbiAgICAgICAgbmV3IEZpbmRJbnB1dHNVbmRlclBvaW50ZXJSZXF1ZXN0KGV2ZW50LCBoYW5kbGVyKVxuICAgICAgKTtcblxuICAgICAgaWYgKGlucHV0c1VuZGVyUG9pbnRlci5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChoYW5kbGVyLmNvbm5lY3Rpb24uZklucHV0SWQgIT09IGlucHV0c1VuZGVyUG9pbnRlclsgMCBdPy5pZCkge1xuICAgICAgICAgIHRoaXMuZkRyYWdnYWJsZS5mUmVhc3NpZ25Db25uZWN0aW9uLmVtaXQoXG4gICAgICAgICAgICBuZXcgRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50KFxuICAgICAgICAgICAgICBoYW5kbGVyLmNvbm5lY3Rpb24uZkNvbm5lY3Rpb25JZCwgaGFuZGxlci5jb25uZWN0aW9uLmZPdXRwdXRJZCxcbiAgICAgICAgICAgICAgaGFuZGxlci5jb25uZWN0aW9uLmZJbnB1dElkLFxuICAgICAgICAgICAgICBpbnB1dHNVbmRlclBvaW50ZXJbIDAgXT8uaWRcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBoYW5kbGVyLmNvbXBsZXRlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,53 +0,0 @@
1
- import { Point } from '@foblex/core';
2
- import { Injectable } from '@angular/core';
3
- import { ReassignConnectionDragHandler } from './reassign-connection.drag-handler';
4
- import { UpdateItemLayerRequest } from '../../../domain';
5
- import { F_CONNECTION_DRAG_HANDLE_CLASS } from '../../../f-connection';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../f-storage";
8
- import * as i2 from "../../f-draggable-data-context";
9
- import * as i3 from "../../../domain";
10
- import * as i4 from "../../../f-mediator";
11
- export class ReassignConnectionPrepareDragSequence {
12
- get transform() {
13
- return this.fComponentsStore.fCanvas.transform;
14
- }
15
- get flowHost() {
16
- return this.fComponentsStore.fFlow.hostElement;
17
- }
18
- constructor(fComponentsStore, fDraggableDataContext, getConnectionHandler, fMediator) {
19
- this.fComponentsStore = fComponentsStore;
20
- this.fDraggableDataContext = fDraggableDataContext;
21
- this.getConnectionHandler = getConnectionHandler;
22
- this.fMediator = fMediator;
23
- }
24
- handle(event) {
25
- const pointerPositionInFlow = Point.fromPoint(event.getPosition()).elementTransform(this.flowHost);
26
- const position = event.getPosition();
27
- const allElements = document.elementsFromPoint(position.x, position.y);
28
- const dragHandlesOfConnections = allElements.filter((x) => {
29
- return !!this.getConnectionHandler.handle(x) && x.classList.contains(F_CONNECTION_DRAG_HANDLE_CLASS);
30
- });
31
- let connectionToReassign;
32
- if (dragHandlesOfConnections.length) {
33
- const connections = dragHandlesOfConnections.map((x) => this.getConnectionHandler.handle(x)).filter((x) => !x?.fDraggingDisabled);
34
- if (connections.length) {
35
- connectionToReassign = this.getConnectionHandler.handle(dragHandlesOfConnections[0]);
36
- }
37
- }
38
- if (connectionToReassign && !this.fDraggableDataContext.draggableItems.length) {
39
- this.fMediator.send(new UpdateItemLayerRequest(connectionToReassign, this.fComponentsStore.fCanvas.fConnectionsContainer.nativeElement));
40
- this.fDraggableDataContext.onPointerDownScale = this.transform.scale;
41
- this.fDraggableDataContext.onPointerDownPosition = pointerPositionInFlow.div(this.transform.scale);
42
- this.fDraggableDataContext.draggableItems = [
43
- new ReassignConnectionDragHandler(this.fMediator, connectionToReassign)
44
- ];
45
- }
46
- }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ReassignConnectionPrepareDragSequence, deps: [{ token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }, { token: i3.GetConnectionHandler }, { token: i4.FFlowMediator }], target: i0.ɵɵFactoryTarget.Injectable }); }
48
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ReassignConnectionPrepareDragSequence }); }
49
- }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ReassignConnectionPrepareDragSequence, decorators: [{
51
- type: Injectable
52
- }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.GetConnectionHandler }, { type: i4.FFlowMediator }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi5wcmVwYXJlLWRyYWctc2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL3JlYXNzaWduLWNvbm5lY3Rpb24vcmVhc3NpZ24tY29ubmVjdGlvbi5wcmVwYXJlLWRyYWctc2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QyxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQ2lCLHNCQUFzQixFQUM3QyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSw4QkFBOEIsRUFBbUIsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7O0FBSXhGLE1BQU0sT0FBTyxxQ0FBcUM7SUFHaEQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxTQUFTLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUNZLGdCQUFrQyxFQUNsQyxxQkFBNEMsRUFDNUMsb0JBQTBDLEVBQzFDLFNBQXdCO1FBSHhCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGNBQVMsR0FBVCxTQUFTLENBQWU7SUFFcEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFvQjtRQUVoQyxNQUFNLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkUsTUFBTSx3QkFBd0IsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUN0SCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksb0JBQWlELENBQUM7UUFDdEQsSUFBSSx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQyxNQUFNLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2pKLElBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFFLENBQUMsQ0FBaUIsQ0FBQyxDQUFDO1lBQ3hHLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxvQkFBb0IsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDOUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2pCLElBQUksc0JBQXNCLENBQ3hCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUN6RixDQUNGLENBQUM7WUFDRixJQUFJLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFFckUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRW5HLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEdBQUc7Z0JBQzFDLElBQUksNkJBQTZCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQzthQUN4RSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7OEdBbkRVLHFDQUFxQztrSEFBckMscUNBQXFDOzsyRkFBckMscUNBQXFDO2tCQURqRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUhhbmRsZXIsIElQb2ludGVyRXZlbnQsIElUcmFuc2Zvcm1Nb2RlbCwgUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgUmVhc3NpZ25Db25uZWN0aW9uRHJhZ0hhbmRsZXIgfSBmcm9tICcuL3JlYXNzaWduLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7XG4gIEdldENvbm5lY3Rpb25IYW5kbGVyLCBVcGRhdGVJdGVtTGF5ZXJSZXF1ZXN0XG59IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fRFJBR19IQU5ETEVfQ0xBU1MsIEZDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGRmxvd01lZGlhdG9yIH0gZnJvbSAnLi4vLi4vLi4vZi1tZWRpYXRvcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlXG4gICAgaW1wbGVtZW50cyBJSGFuZGxlcjxJUG9pbnRlckV2ZW50LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBwcml2YXRlIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGdldENvbm5lY3Rpb25IYW5kbGVyOiBHZXRDb25uZWN0aW9uSGFuZGxlcixcbiAgICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuXG4gICAgY29uc3QgcG9pbnRlclBvc2l0aW9uSW5GbG93ID0gUG9pbnQuZnJvbVBvaW50KGV2ZW50LmdldFBvc2l0aW9uKCkpLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5mbG93SG9zdCk7XG4gICAgY29uc3QgcG9zaXRpb24gPSBldmVudC5nZXRQb3NpdGlvbigpO1xuICAgIGNvbnN0IGFsbEVsZW1lbnRzID0gZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQocG9zaXRpb24ueCwgcG9zaXRpb24ueSk7XG5cbiAgICBjb25zdCBkcmFnSGFuZGxlc09mQ29ubmVjdGlvbnMgPSBhbGxFbGVtZW50cy5maWx0ZXIoKHgpID0+IHtcbiAgICAgIHJldHVybiAhIXRoaXMuZ2V0Q29ubmVjdGlvbkhhbmRsZXIuaGFuZGxlKHggYXMgSFRNTEVsZW1lbnQpICYmIHguY2xhc3NMaXN0LmNvbnRhaW5zKEZfQ09OTkVDVElPTl9EUkFHX0hBTkRMRV9DTEFTUyk7XG4gICAgfSk7XG5cbiAgICBsZXQgY29ubmVjdGlvblRvUmVhc3NpZ246IEZDb25uZWN0aW9uQmFzZSB8IHVuZGVmaW5lZDtcbiAgICBpZiAoZHJhZ0hhbmRsZXNPZkNvbm5lY3Rpb25zLmxlbmd0aCkge1xuICAgICAgY29uc3QgY29ubmVjdGlvbnMgPSBkcmFnSGFuZGxlc09mQ29ubmVjdGlvbnMubWFwKCh4KSA9PiB0aGlzLmdldENvbm5lY3Rpb25IYW5kbGVyLmhhbmRsZSh4IGFzIEhUTUxFbGVtZW50KSkuZmlsdGVyKCh4KSA9PiAheD8uZkRyYWdnaW5nRGlzYWJsZWQpO1xuICAgICAgaWYoY29ubmVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbm5lY3Rpb25Ub1JlYXNzaWduID0gdGhpcy5nZXRDb25uZWN0aW9uSGFuZGxlci5oYW5kbGUoZHJhZ0hhbmRsZXNPZkNvbm5lY3Rpb25zWyAwIF0gYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb25uZWN0aW9uVG9SZWFzc2lnbiAmJiAhdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KFxuICAgICAgICBuZXcgVXBkYXRlSXRlbUxheWVyUmVxdWVzdChcbiAgICAgICAgICBjb25uZWN0aW9uVG9SZWFzc2lnbiwgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLmZDb25uZWN0aW9uc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50XG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUgPSB0aGlzLnRyYW5zZm9ybS5zY2FsZTtcblxuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uID0gcG9pbnRlclBvc2l0aW9uSW5GbG93LmRpdih0aGlzLnRyYW5zZm9ybS5zY2FsZSk7XG5cbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zID0gW1xuICAgICAgICBuZXcgUmVhc3NpZ25Db25uZWN0aW9uRHJhZ0hhbmRsZXIodGhpcy5mTWVkaWF0b3IsIGNvbm5lY3Rpb25Ub1JlYXNzaWduKVxuICAgICAgXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { Point } from '@foblex/core';
2
- import { Injectable } from '@angular/core';
3
- import { EFDraggableType } from '../e-f-draggable-type';
4
- import { FCreateNodeEvent } from './f-create-node.event';
5
- import { GetElementRectInFlowRequest } from '../../domain';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../f-storage";
8
- import * as i2 from "../f-draggable-data-context";
9
- import * as i3 from "../../f-mediator";
10
- export class ExternalItemOnPointerUp {
11
- get flowHost() {
12
- return this.fComponentsStore.fFlow.hostElement;
13
- }
14
- get fCreateNode() {
15
- return this.fComponentsStore.fDraggable.fCreateNode;
16
- }
17
- constructor(fComponentsStore, fDraggableDataContext, fMediator) {
18
- this.fComponentsStore = fComponentsStore;
19
- this.fDraggableDataContext = fDraggableDataContext;
20
- this.fMediator = fMediator;
21
- }
22
- handle(event) {
23
- const pointerPositionInFlow = Point.fromPoint(event.getPosition()).elementTransform(this.flowHost);
24
- let difference = pointerPositionInFlow.div(this.fDraggableDataContext.onPointerDownScale).sub(this.fDraggableDataContext.onPointerDownPosition);
25
- const isDragPaletteItem = this.fDraggableDataContext.draggableItems.some((x) => x.type === EFDraggableType.PALETTE_ITEM);
26
- if (isDragPaletteItem) {
27
- const dragHandler = this.fDraggableDataContext.draggableItems[0];
28
- dragHandler.move(difference);
29
- let elementsFromPoint = document.elementsFromPoint(event.getPosition().x, event.getPosition().y);
30
- elementsFromPoint = elementsFromPoint.filter((x, i) => !x.closest('.f-external-item'));
31
- const isPointerInCanvasRect = elementsFromPoint.length ? this.flowHost.contains(elementsFromPoint[0]) : false;
32
- if (isPointerInCanvasRect) {
33
- const rectInCanvas = this.fMediator.send(new GetElementRectInFlowRequest(dragHandler.placeholder));
34
- this.fCreateNode.emit(new FCreateNodeEvent(rectInCanvas, dragHandler.externalItem.fData));
35
- }
36
- dragHandler.complete();
37
- }
38
- }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ExternalItemOnPointerUp, deps: [{ token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }, { token: i3.FFlowMediator }], target: i0.ɵɵFactoryTarget.Injectable }); }
40
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ExternalItemOnPointerUp }); }
41
- }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ExternalItemOnPointerUp, decorators: [{
43
- type: Injectable
44
- }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.FFlowMediator }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtaXRlbS5vbi1wb2ludGVyLXVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9leHRlcm5hbC1pdGVtL2V4dGVybmFsLWl0ZW0ub24tcG9pbnRlci11cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQUczRCxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFZLFdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVyxDQUFDLFdBQVcsQ0FBQztJQUN2RCxDQUFDO0lBRUQsWUFDVSxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFNBQXdCO1FBRnhCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxjQUFTLEdBQVQsU0FBUyxDQUFlO0lBRWxDLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBb0I7UUFDaEMsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRyxJQUFJLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRWhKLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXpILElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFFLENBQUMsQ0FBNkIsQ0FBQTtZQUM3RixXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTdCLElBQUksaUJBQWlCLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pHLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7WUFFdkYsTUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM5RyxJQUFJLHFCQUFxQixFQUFFLENBQUM7Z0JBQzFCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFRLElBQUksMkJBQTJCLENBQUMsV0FBVyxDQUFDLFdBQVksQ0FBQyxDQUFDLENBQUM7Z0JBQzNHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUNuQixJQUFJLGdCQUFnQixDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUNuRSxDQUFDO1lBQ0osQ0FBQztZQUVELFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQzs4R0F4Q1UsdUJBQXVCO2tIQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgSVBvaW50ZXJFdmVudCwgSVJlY3QsIFBvaW50IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgRUZEcmFnZ2FibGVUeXBlIH0gZnJvbSAnLi4vZS1mLWRyYWdnYWJsZS10eXBlJztcbmltcG9ydCB7IEV4dGVybmFsSXRlbURyYWdIYW5kbGVyIH0gZnJvbSAnLi9leHRlcm5hbC1pdGVtLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBGQ3JlYXRlTm9kZUV2ZW50IH0gZnJvbSAnLi9mLWNyZWF0ZS1ub2RlLmV2ZW50JztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi8uLi9mLW1lZGlhdG9yJztcbmltcG9ydCB7IEdldEVsZW1lbnRSZWN0SW5GbG93UmVxdWVzdCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFeHRlcm5hbEl0ZW1PblBvaW50ZXJVcCBpbXBsZW1lbnRzIElIYW5kbGVyPElQb2ludGVyRXZlbnQsIHZvaWQ+IHtcblxuICBwcml2YXRlIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBmQ3JlYXRlTm9kZSgpOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZU5vZGVFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkRyYWdnYWJsZSEuZkNyZWF0ZU5vZGU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICBwcml2YXRlIGZNZWRpYXRvcjogRkZsb3dNZWRpYXRvclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkZsb3cgPSBQb2ludC5mcm9tUG9pbnQoZXZlbnQuZ2V0UG9zaXRpb24oKSkuZWxlbWVudFRyYW5zZm9ybSh0aGlzLmZsb3dIb3N0KTtcbiAgICBsZXQgZGlmZmVyZW5jZSA9IHBvaW50ZXJQb3NpdGlvbkluRmxvdy5kaXYodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blNjYWxlKS5zdWIodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uKTtcblxuICAgIGNvbnN0IGlzRHJhZ1BhbGV0dGVJdGVtID0gdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuc29tZSgoeCkgPT4geC50eXBlID09PSBFRkRyYWdnYWJsZVR5cGUuUEFMRVRURV9JVEVNKTtcblxuICAgIGlmIChpc0RyYWdQYWxldHRlSXRlbSkge1xuICAgICAgY29uc3QgZHJhZ0hhbmRsZXIgPSB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtc1sgMCBdIGFzIEV4dGVybmFsSXRlbURyYWdIYW5kbGVyXG4gICAgICBkcmFnSGFuZGxlci5tb3ZlKGRpZmZlcmVuY2UpO1xuXG4gICAgICBsZXQgZWxlbWVudHNGcm9tUG9pbnQgPSBkb2N1bWVudC5lbGVtZW50c0Zyb21Qb2ludChldmVudC5nZXRQb3NpdGlvbigpLngsIGV2ZW50LmdldFBvc2l0aW9uKCkueSk7XG4gICAgICBlbGVtZW50c0Zyb21Qb2ludCA9IGVsZW1lbnRzRnJvbVBvaW50LmZpbHRlcigoeCwgaSkgPT4gIXguY2xvc2VzdCgnLmYtZXh0ZXJuYWwtaXRlbScpKTtcblxuICAgICAgY29uc3QgaXNQb2ludGVySW5DYW52YXNSZWN0ID0gZWxlbWVudHNGcm9tUG9pbnQubGVuZ3RoID8gdGhpcy5mbG93SG9zdC5jb250YWlucyhlbGVtZW50c0Zyb21Qb2ludFswXSkgOiBmYWxzZTtcbiAgICAgIGlmIChpc1BvaW50ZXJJbkNhbnZhc1JlY3QpIHtcbiAgICAgICAgY29uc3QgcmVjdEluQ2FudmFzID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJUmVjdD4obmV3IEdldEVsZW1lbnRSZWN0SW5GbG93UmVxdWVzdChkcmFnSGFuZGxlci5wbGFjZWhvbGRlciEpKTtcbiAgICAgICAgdGhpcy5mQ3JlYXRlTm9kZS5lbWl0KFxuICAgICAgICAgIG5ldyBGQ3JlYXRlTm9kZUV2ZW50KHJlY3RJbkNhbnZhcywgZHJhZ0hhbmRsZXIuZXh0ZXJuYWxJdGVtLmZEYXRhKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBkcmFnSGFuZGxlci5jb21wbGV0ZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,44 +0,0 @@
1
- import { Point } from '@foblex/core';
2
- import { Injectable } from '@angular/core';
3
- import { ExternalItemDragHandler } from './external-item.drag-handler';
4
- import { getExternalItem, isExternalItem } from '../../f-external-item';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../f-storage";
7
- import * as i2 from "../f-draggable-data-context";
8
- import * as i3 from "../../f-external-item";
9
- export class ExternalItemPrepareDragSequence {
10
- get transform() {
11
- return this.fComponentsStore.fCanvas.transform;
12
- }
13
- get flowHost() {
14
- return this.fComponentsStore.fFlow.hostElement;
15
- }
16
- constructor(fComponentsStore, fDraggableDataContext, fExternalItemService) {
17
- this.fComponentsStore = fComponentsStore;
18
- this.fDraggableDataContext = fDraggableDataContext;
19
- this.fExternalItemService = fExternalItemService;
20
- }
21
- handle(event) {
22
- if (isExternalItem(event.targetElement)) {
23
- const item = this.fExternalItemService.getItem(getExternalItem(event.targetElement));
24
- if (!item) {
25
- throw new Error('External item not found');
26
- }
27
- if (item.fDisabled) {
28
- return;
29
- }
30
- const pointerPositionInFlow = Point.fromPoint(event.getPosition()).elementTransform(this.flowHost);
31
- this.fDraggableDataContext.onPointerDownScale = 1;
32
- this.fDraggableDataContext.onPointerDownPosition = pointerPositionInFlow.div(1);
33
- this.fDraggableDataContext.draggableItems = [
34
- new ExternalItemDragHandler(item)
35
- ];
36
- }
37
- }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ExternalItemPrepareDragSequence, deps: [{ token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }, { token: i3.FExternalItemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
39
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ExternalItemPrepareDragSequence }); }
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ExternalItemPrepareDragSequence, decorators: [{
42
- type: Injectable
43
- }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.FExternalItemService }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtaXRlbS5wcmVwYXJlLWRyYWctc2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2V4dGVybmFsLWl0ZW0vZXh0ZXJuYWwtaXRlbS5wcmVwYXJlLWRyYWctc2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QyxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQXdCLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFHOUYsTUFBTSxPQUFPLCtCQUErQjtJQUUxQyxJQUFZLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQU0sQ0FBQyxXQUFXLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQ1UsZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1QyxvQkFBMEM7UUFGMUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7SUFFcEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFvQjtRQUNoQyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUV4QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNyRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRW5HLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7WUFFbEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVoRixJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxHQUFHO2dCQUMxQyxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQzthQUNsQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7OEdBdkNVLCtCQUErQjtrSEFBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUhhbmRsZXIsIElQb2ludGVyRXZlbnQsIElUcmFuc2Zvcm1Nb2RlbCwgUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgRXh0ZXJuYWxJdGVtRHJhZ0hhbmRsZXIgfSBmcm9tICcuL2V4dGVybmFsLWl0ZW0uZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEZFeHRlcm5hbEl0ZW1TZXJ2aWNlLCBnZXRFeHRlcm5hbEl0ZW0sIGlzRXh0ZXJuYWxJdGVtIH0gZnJvbSAnLi4vLi4vZi1leHRlcm5hbC1pdGVtJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV4dGVybmFsSXRlbVByZXBhcmVEcmFnU2VxdWVuY2UgaW1wbGVtZW50cyBJSGFuZGxlcjxJUG9pbnRlckV2ZW50LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBwcml2YXRlIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICBwcml2YXRlIGZFeHRlcm5hbEl0ZW1TZXJ2aWNlOiBGRXh0ZXJuYWxJdGVtU2VydmljZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoaXNFeHRlcm5hbEl0ZW0oZXZlbnQudGFyZ2V0RWxlbWVudCkpIHtcblxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZkV4dGVybmFsSXRlbVNlcnZpY2UuZ2V0SXRlbShnZXRFeHRlcm5hbEl0ZW0oZXZlbnQudGFyZ2V0RWxlbWVudCkpO1xuICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXh0ZXJuYWwgaXRlbSBub3QgZm91bmQnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW0uZkRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcG9pbnRlclBvc2l0aW9uSW5GbG93ID0gUG9pbnQuZnJvbVBvaW50KGV2ZW50LmdldFBvc2l0aW9uKCkpLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5mbG93SG9zdCk7XG5cbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25TY2FsZSA9IDE7XG5cbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbiA9IHBvaW50ZXJQb3NpdGlvbkluRmxvdy5kaXYoMSk7XG5cbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zID0gW1xuICAgICAgICBuZXcgRXh0ZXJuYWxJdGVtRHJhZ0hhbmRsZXIoaXRlbSlcbiAgICAgIF07XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './is-connection-under-node.handler';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL25vZGUvZG9tYWluL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pcy1jb25uZWN0aW9uLXVuZGVyLW5vZGUuaGFuZGxlcic7XG4iXX0=
@@ -1,73 +0,0 @@
1
- import { RectExtensions } from '@foblex/core';
2
- import { Injectable } from '@angular/core';
3
- import { EFDraggableType } from '../../../e-f-draggable-type';
4
- import { GetElementRectInFlowRequest } from '../../../../domain';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../../../f-storage";
7
- import * as i2 from "../../../f-draggable-data-context";
8
- import * as i3 from "../../../../f-mediator";
9
- import * as i4 from "../../../../domain";
10
- export class IsConnectionUnderNodeHandler {
11
- get transform() {
12
- return this.fComponentsStore.fCanvas.transform;
13
- }
14
- get flowHost() {
15
- return this.fComponentsStore.fFlow.hostElement;
16
- }
17
- constructor(fComponentsStore, fDraggableDataContext, fMediator, getOutgoingConnectionsHandler, getIncomingConnectionsHandler) {
18
- this.fComponentsStore = fComponentsStore;
19
- this.fDraggableDataContext = fDraggableDataContext;
20
- this.fMediator = fMediator;
21
- this.getOutgoingConnectionsHandler = getOutgoingConnectionsHandler;
22
- this.getIncomingConnectionsHandler = getIncomingConnectionsHandler;
23
- }
24
- handle() {
25
- const isValid = this.isValidRequest();
26
- if (!isValid) {
27
- return;
28
- }
29
- const fNode = this.fDraggableDataContext.draggableItems[0].fNode;
30
- const outputsOfNode = this.getOutputsForNode(fNode);
31
- const inputsOfNode = this.getInputsForNode(fNode);
32
- const isCantBeConnectedByOutput = outputsOfNode.some((x) => !x.canBeConnected);
33
- const isCantBeConnectedByInput = this.fComponentsStore.fConnections.some((x) => {
34
- return inputsOfNode.find((input) => input.id === x.fInputId);
35
- });
36
- if (!isCantBeConnectedByInput && outputsOfNode.length && !isCantBeConnectedByOutput && inputsOfNode.length) {
37
- const output = outputsOfNode[0];
38
- const input = inputsOfNode[0];
39
- const outgoingConnections = this.getOutgoingConnectionsHandler.handle([output]);
40
- const incomingConnections = this.getIncomingConnectionsHandler.handle([input]);
41
- if (outgoingConnections.length === 0 && incomingConnections.length === 0) {
42
- const connections = this.findConnectionsUnderNode(fNode);
43
- if (connections.length) {
44
- //TODO: need to implement
45
- }
46
- }
47
- }
48
- }
49
- isValidRequest() {
50
- const result = this.fDraggableDataContext.draggableItems.length === 1 &&
51
- this.fDraggableDataContext.draggableItems[0].type === EFDraggableType.NODE;
52
- return result;
53
- }
54
- getOutputsForNode(node) {
55
- return this.fComponentsStore.fOutputs.filter((x) => node.isContains(x.hostElement));
56
- }
57
- getInputsForNode(node) {
58
- return this.fComponentsStore.fInputs.filter((x) => node.isContains(x.hostElement));
59
- }
60
- findConnectionsUnderNode(node) {
61
- const nodeRect = this.fMediator.send(new GetElementRectInFlowRequest(node.hostElement));
62
- return this.fComponentsStore.fConnections.filter((x) => {
63
- const intersection = RectExtensions.intersectionWithVector(nodeRect, x.vector.point1, x.vector.point2);
64
- return (intersection || []).length > 0;
65
- });
66
- }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: IsConnectionUnderNodeHandler, deps: [{ token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }, { token: i3.FFlowMediator }, { token: i4.GetOutgoingConnectionsHandler }, { token: i4.GetIncomingConnectionsHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
68
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: IsConnectionUnderNodeHandler }); }
69
- }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: IsConnectionUnderNodeHandler, decorators: [{
71
- type: Injectable
72
- }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.FFlowMediator }, { type: i4.GetOutgoingConnectionsHandler }, { type: i4.GetIncomingConnectionsHandler }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29ubmVjdGlvbi11bmRlci1ub2RlLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL25vZGUvZG9tYWluL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZS9pcy1jb25uZWN0aW9uLXVuZGVyLW5vZGUuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsMkJBQTJCLEVBRzVCLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQU81QixNQUFNLE9BQU8sNEJBQTRCO0lBRXZDLElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFZLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBTSxDQUFDLFdBQVcsQ0FBQztJQUNsRCxDQUFDO0lBRUQsWUFDWSxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFNBQXdCLEVBQ3hCLDZCQUE0RCxFQUM1RCw2QkFBNEQ7UUFKNUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsa0NBQTZCLEdBQTdCLDZCQUE2QixDQUErQjtRQUM1RCxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQStCO0lBRXhFLENBQUM7SUFFTSxNQUFNO1FBRVgsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxP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QUFDLEVBQUUsRUFBRTtZQUNyRCxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkcsT0FBTyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F6RVUsNEJBQTRCO2tIQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgSVJlY3QsIElUcmFuc2Zvcm1Nb2RlbCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgTm9kZURyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vbm9kZS5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRUZEcmFnZ2FibGVUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZS1mLWRyYWdnYWJsZS10eXBlJztcbmltcG9ydCB7XG4gIEdldEVsZW1lbnRSZWN0SW5GbG93UmVxdWVzdCxcbiAgR2V0SW5jb21pbmdDb25uZWN0aW9uc0hhbmRsZXIsXG4gIEdldE91dGdvaW5nQ29ubmVjdGlvbnNIYW5kbGVyXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi9mLW1lZGlhdG9yJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElzQ29ubmVjdGlvblVuZGVyTm9kZUhhbmRsZXIgaW1wbGVtZW50cyBJSGFuZGxlcjx2b2lkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBwcml2YXRlIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGZNZWRpYXRvcjogRkZsb3dNZWRpYXRvcixcbiAgICAgIHByaXZhdGUgZ2V0T3V0Z29pbmdDb25uZWN0aW9uc0hhbmRsZXI6IEdldE91dGdvaW5nQ29ubmVjdGlvbnNIYW5kbGVyLFxuICAgICAgcHJpdmF0ZSBnZXRJbmNvbWluZ0Nvbm5lY3Rpb25zSGFuZGxlcjogR2V0SW5jb21pbmdDb25uZWN0aW9uc0hhbmRsZXJcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKCk6IHZvaWQge1xuXG4gICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuaXNWYWxpZFJlcXVlc3QoKTtcbiAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmTm9kZSA9ICh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtc1sgMCBdIGFzIE5vZGVEcmFnSGFuZGxlcikuZk5vZGU7XG5cbiAgICBjb25zdCBvdXRwdXRzT2ZOb2RlID0gdGhpcy5nZXRPdXRwdXRzRm9yTm9kZShmTm9kZSk7XG4gICAgY29uc3QgaW5wdXRzT2ZOb2RlID0gdGhpcy5nZXRJbnB1dHNGb3JOb2RlKGZOb2RlKTtcblxuICAgIGNvbnN0IGlzQ2FudEJlQ29ubmVjdGVkQnlPdXRwdXQgPSBvdXRwdXRzT2ZOb2RlLnNvbWUoKHgpID0+ICF4LmNhbkJlQ29ubmVjdGVkKTtcblxuICAgIGNvbnN0IGlzQ2FudEJlQ29ubmVjdGVkQnlJbnB1dCA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ29ubmVjdGlvbnMuc29tZSgoeCkgPT4ge1xuICAgICAgcmV0dXJuIGlucHV0c09mTm9kZS5maW5kKChpbnB1dCkgPT4gaW5wdXQuaWQgPT09IHguZklucHV0SWQpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFpc0NhbnRCZUNvbm5lY3RlZEJ5SW5wdXQgJiYgb3V0cHV0c09mTm9kZS5sZW5ndGggJiYgIWlzQ2FudEJlQ29ubmVjdGVkQnlPdXRwdXQgJiYgaW5wdXRzT2ZOb2RlLmxlbmd0aCkge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c09mTm9kZVsgMCBdO1xuICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dHNPZk5vZGVbIDAgXTtcbiAgICAgIGNvbnN0IG91dGdvaW5nQ29ubmVjdGlvbnMgPSB0aGlzLmdldE91dGdvaW5nQ29ubmVjdGlvbnNIYW5kbGVyLmhhbmRsZShbIG91dHB1dCBdKTtcbiAgICAgIGNvbnN0IGluY29taW5nQ29ubmVjdGlvbnMgPSB0aGlzLmdldEluY29taW5nQ29ubmVjdGlvbnNIYW5kbGVyLmhhbmRsZShbIGlucHV0IF0pO1xuICAgICAgaWYgKG91dGdvaW5nQ29ubmVjdGlvbnMubGVuZ3RoID09PSAwICYmIGluY29taW5nQ29ubmVjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25zID0gdGhpcy5maW5kQ29ubmVjdGlvbnNVbmRlck5vZGUoZk5vZGUpO1xuICAgICAgICBpZiAoY29ubmVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgLy9UT0RPOiBuZWVkIHRvIGltcGxlbWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkUmVxdWVzdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXN1bHQgPVxuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXNbIDAgXS50eXBlID09PSBFRkRyYWdnYWJsZVR5cGUuTk9ERTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldE91dHB1dHNGb3JOb2RlKG5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk91dHB1dHMuZmlsdGVyKCh4KSA9PiBub2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnB1dHNGb3JOb2RlKG5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZklucHV0cy5maWx0ZXIoKHgpID0+IG5vZGUuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRDb25uZWN0aW9uc1VuZGVyTm9kZShub2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgY29uc3Qgbm9kZVJlY3QgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElSZWN0PihuZXcgR2V0RWxlbWVudFJlY3RJbkZsb3dSZXF1ZXN0KG5vZGUuaG9zdEVsZW1lbnQpKTtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDb25uZWN0aW9ucy5maWx0ZXIoKHgpID0+IHtcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IFJlY3RFeHRlbnNpb25zLmludGVyc2VjdGlvbldpdGhWZWN0b3Iobm9kZVJlY3QsIHgudmVjdG9yLnBvaW50MSwgeC52ZWN0b3IucG9pbnQyKTtcbiAgICAgIHJldHVybiAoaW50ZXJzZWN0aW9uIHx8IFtdKS5sZW5ndGggPiAwXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,41 +0,0 @@
1
- import { Point } from '@foblex/core';
2
- import { EFDraggableType } from '../e-f-draggable-type';
3
- import { Injectable } from '@angular/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../f-storage";
6
- import * as i2 from "../f-draggable-data-context";
7
- import * as i3 from "./domain/is-connection-under-node";
8
- export class NodeOnPointerUp {
9
- get flowHost() {
10
- return this.fComponentsStore.fFlow.hostElement;
11
- }
12
- constructor(fComponentsStore, fDraggableDataContext, isConnectionUnderNodeHandler) {
13
- this.fComponentsStore = fComponentsStore;
14
- this.fDraggableDataContext = fDraggableDataContext;
15
- this.isConnectionUnderNodeHandler = isConnectionUnderNodeHandler;
16
- }
17
- handle(event) {
18
- const pointerPositionInFlow = Point.fromPoint(event.getPosition()).elementTransform(this.flowHost);
19
- let difference = pointerPositionInFlow.div(this.fDraggableDataContext.onPointerDownScale).sub(this.fDraggableDataContext.onPointerDownPosition);
20
- const isDragNodes = this.fDraggableDataContext.draggableItems.some((x) => x.type === EFDraggableType.NODE);
21
- if (isDragNodes) {
22
- const nearestIntersection = this.fDraggableDataContext.fLineAlignment?.findNearestCoordinate(difference);
23
- if (nearestIntersection) {
24
- difference.x = nearestIntersection.xResult.value ? (difference.x - nearestIntersection.xResult.distance) : difference.x;
25
- difference.y = nearestIntersection.yResult.value ? (difference.y - nearestIntersection.yResult.distance) : difference.y;
26
- }
27
- this.fDraggableDataContext.draggableItems.forEach((x) => {
28
- x.move(difference);
29
- x.complete?.();
30
- });
31
- this.isConnectionUnderNodeHandler.handle();
32
- this.fDraggableDataContext.fLineAlignment?.complete();
33
- }
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: NodeOnPointerUp, deps: [{ token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }, { token: i3.IsConnectionUnderNodeHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
36
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: NodeOnPointerUp }); }
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: NodeOnPointerUp, decorators: [{
39
- type: Injectable
40
- }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.IsConnectionUnderNodeHandler }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5vbi1wb2ludGVyLXVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9ub2RlL25vZGUub24tcG9pbnRlci11cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFJM0MsTUFBTSxPQUFPLGVBQWU7SUFHMUIsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQU0sQ0FBQyxXQUFXLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQ1ksZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1Qyw0QkFBMEQ7UUFGMUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7SUFFdEUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFvQjtRQUNoQyxNQUFNLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25HLElBQUksVUFBVSxHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFaEosTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztnQkFDeEIsVUFBVSxDQUFDLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFFBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUN6SCxVQUFVLENBQUMsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsUUFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDM0gsQ0FBQztZQUNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RELENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7OEdBakNVLGVBQWU7a0hBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnRlckV2ZW50LCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBFRkRyYWdnYWJsZVR5cGUgfSBmcm9tICcuLi9lLWYtZHJhZ2dhYmxlLXR5cGUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXNDb25uZWN0aW9uVW5kZXJOb2RlSGFuZGxlciB9IGZyb20gJy4vZG9tYWluL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb2RlT25Qb2ludGVyVXBcbiAgICBpbXBsZW1lbnRzIElIYW5kbGVyPElQb2ludGVyRXZlbnQsIHZvaWQ+IHtcblxuICBwcml2YXRlIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGlzQ29ubmVjdGlvblVuZGVyTm9kZUhhbmRsZXI6IElzQ29ubmVjdGlvblVuZGVyTm9kZUhhbmRsZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluRmxvdyA9IFBvaW50LmZyb21Qb2ludChldmVudC5nZXRQb3NpdGlvbigpKS5lbGVtZW50VHJhbnNmb3JtKHRoaXMuZmxvd0hvc3QpO1xuICAgIGxldCBkaWZmZXJlbmNlID0gcG9pbnRlclBvc2l0aW9uSW5GbG93LmRpdih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpLnN1Yih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuXG4gICAgY29uc3QgaXNEcmFnTm9kZXMgPSB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5zb21lKCh4KSA9PiB4LnR5cGUgPT09IEVGRHJhZ2dhYmxlVHlwZS5OT0RFKTtcblxuICAgIGlmIChpc0RyYWdOb2Rlcykge1xuICAgICAgY29uc3QgbmVhcmVzdEludGVyc2VjdGlvbiA9IHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmZMaW5lQWxpZ25tZW50Py5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gICAgICBpZiAobmVhcmVzdEludGVyc2VjdGlvbikge1xuICAgICAgICBkaWZmZXJlbmNlLnggPSBuZWFyZXN0SW50ZXJzZWN0aW9uLnhSZXN1bHQudmFsdWUgPyAoZGlmZmVyZW5jZS54IC0gbmVhcmVzdEludGVyc2VjdGlvbi54UmVzdWx0LmRpc3RhbmNlISkgOiBkaWZmZXJlbmNlLng7XG4gICAgICAgIGRpZmZlcmVuY2UueSA9IG5lYXJlc3RJbnRlcnNlY3Rpb24ueVJlc3VsdC52YWx1ZSA/IChkaWZmZXJlbmNlLnkgLSBuZWFyZXN0SW50ZXJzZWN0aW9uLnlSZXN1bHQuZGlzdGFuY2UhKSA6IGRpZmZlcmVuY2UueTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgeC5tb3ZlKGRpZmZlcmVuY2UpO1xuICAgICAgICB4LmNvbXBsZXRlPy4oKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5pc0Nvbm5lY3Rpb25VbmRlck5vZGVIYW5kbGVyLmhhbmRsZSgpO1xuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZkxpbmVBbGlnbm1lbnQ/LmNvbXBsZXRlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,101 +0,0 @@
1
- import { Point } from '@foblex/core';
2
- import { Injectable } from '@angular/core';
3
- import { EFDraggableType } from '../e-f-draggable-type';
4
- import { NodeDragHandler } from './node.drag-handler';
5
- import { ConnectionTargetDragHandler } from './connection-target.drag-handler';
6
- import { ConnectionSourceDragHandler } from './connection-source.drag-handler';
7
- import { ConnectionDragHandler } from './connection.drag-handler';
8
- import { UpdateItemLayerRequest } from '../../domain';
9
- import { isNodeDragHandle } from '../../f-node';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "../../f-storage";
12
- import * as i2 from "../f-draggable-data-context";
13
- import * as i3 from "../../domain";
14
- import * as i4 from "../../f-mediator";
15
- export class NodePrepareDragSequence {
16
- get transform() {
17
- return this.fComponentsStore.fCanvas.transform;
18
- }
19
- get flowHost() {
20
- return this.fComponentsStore.fFlow.hostElement;
21
- }
22
- constructor(fComponentsStore, fDraggableDataContext, getOutgoingConnectionsHandler, getIncomingConnectionsHandler, fMediator) {
23
- this.fComponentsStore = fComponentsStore;
24
- this.fDraggableDataContext = fDraggableDataContext;
25
- this.getOutgoingConnectionsHandler = getOutgoingConnectionsHandler;
26
- this.getIncomingConnectionsHandler = getIncomingConnectionsHandler;
27
- this.fMediator = fMediator;
28
- }
29
- handle(event) {
30
- const node = this.fComponentsStore.findNode(event.targetElement);
31
- const pointerPositionInFlow = Point.fromPoint(event.getPosition()).elementTransform(this.flowHost);
32
- if (node && !node.fDraggingDisabled && !this.fDraggableDataContext.draggableItems.length) {
33
- if (isNodeDragHandle(event.targetElement)) {
34
- if (!this.fDraggableDataContext.selectedItems.includes(node) && !node.fSelectionDisabled) {
35
- this.fDraggableDataContext.selectedItems.push(node);
36
- node.select();
37
- this.fDraggableDataContext.isSelectedChanged = true;
38
- }
39
- this.fMediator.send(new UpdateItemLayerRequest(node, this.fComponentsStore.fCanvas.fNodesContainer.nativeElement));
40
- const itemsToDrag = this.calculateDraggableConnectionsAndNodes();
41
- const draggedNodes = itemsToDrag.filter((x) => {
42
- return x.type === EFDraggableType.NODE;
43
- }).map((x) => x.fNode);
44
- this.fDraggableDataContext.fLineAlignment?.initialize(this.fComponentsStore.fNodes, draggedNodes);
45
- this.fDraggableDataContext.onPointerDownScale = this.transform.scale;
46
- this.fDraggableDataContext.onPointerDownPosition = pointerPositionInFlow.div(this.transform.scale);
47
- this.fDraggableDataContext.draggableItems = itemsToDrag;
48
- }
49
- }
50
- }
51
- calculateDraggableConnectionsAndNodes() {
52
- let itemsToDrag = [];
53
- const selectedNodes = this.fDraggableDataContext.selectedItems.map((x) => {
54
- return this.fComponentsStore.findNode(x.hostElement);
55
- }).filter((x) => !!x);
56
- const nodeDragHandlers = selectedNodes.map((x) => new NodeDragHandler(this.fDraggableDataContext, x));
57
- itemsToDrag = nodeDragHandlers;
58
- const allOutputIds = selectedNodes.reduce((result, x) => {
59
- return result.concat(this.getOutputsForNode(x));
60
- }, []).map((x) => x.id);
61
- const allInputIds = selectedNodes.reduce((result, x) => {
62
- return result.concat(this.getInputsForNode(x));
63
- }, []).map((x) => x.id);
64
- nodeDragHandlers.forEach((nodeHandler) => {
65
- const outputConnections = this.getOutgoingConnectionsHandler.handle(this.getOutputsForNode(nodeHandler.fNode));
66
- outputConnections.forEach((c) => {
67
- if (allInputIds.includes(c.fInputId)) {
68
- itemsToDrag.push(new ConnectionDragHandler(this.fMediator, c));
69
- }
70
- else {
71
- itemsToDrag.push(new ConnectionSourceDragHandler(this.fMediator, c));
72
- }
73
- });
74
- const inputConnections = this.getIncomingConnectionsHandler.handle(this.getInputsForNode(nodeHandler.fNode));
75
- inputConnections.forEach((c) => {
76
- if (allOutputIds.includes(c.fOutputId)) {
77
- const index = itemsToDrag.findIndex((x) => x.type === EFDraggableType.CONNECTION && x.connection.fConnectionId === c.fConnectionId);
78
- if (index !== -1) {
79
- itemsToDrag.push(new ConnectionDragHandler(this.fMediator, c));
80
- }
81
- }
82
- else {
83
- itemsToDrag.push(new ConnectionTargetDragHandler(this.fMediator, c));
84
- }
85
- });
86
- });
87
- return itemsToDrag;
88
- }
89
- getInputsForNode(node) {
90
- return this.fComponentsStore.fInputs.filter((x) => node.isContains(x.hostElement));
91
- }
92
- getOutputsForNode(node) {
93
- return this.fComponentsStore.fOutputs.filter((x) => node.isContains(x.hostElement));
94
- }
95
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: NodePrepareDragSequence, deps: [{ token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }, { token: i3.GetOutgoingConnectionsHandler }, { token: i3.GetIncomingConnectionsHandler }, { token: i4.FFlowMediator }], target: i0.ɵɵFactoryTarget.Injectable }); }
96
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: NodePrepareDragSequence }); }
97
- }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: NodePrepareDragSequence, decorators: [{
99
- type: Injectable
100
- }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.GetOutgoingConnectionsHandler }, { type: i3.GetIncomingConnectionsHandler }, { type: i4.FFlowMediator }] });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5wcmVwYXJlLWRyYWctc2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL25vZGUvbm9kZS5wcmVwYXJlLWRyYWctc2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QyxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFHTCxzQkFBc0IsRUFDdkIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFLM0QsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxJQUFZLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQU0sQ0FBQyxXQUFXLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQ1ksZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1Qyw2QkFBNEQsRUFDNUQsNkJBQTRELEVBQzVELFNBQXdCO1FBSnhCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1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QUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQWU7UUFDdkMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDOzhHQXZHVSx1QkFBdUI7a0hBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnRlckV2ZW50LCBJVHJhbnNmb3JtTW9kZWwsIFBvaW50IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IElEcmFnZ2FibGVJdGVtIH0gZnJvbSAnLi4vaS1kcmFnZ2FibGUtaXRlbSc7XG5pbXBvcnQgeyBFRkRyYWdnYWJsZVR5cGUgfSBmcm9tICcuLi9lLWYtZHJhZ2dhYmxlLXR5cGUnO1xuaW1wb3J0IHsgTm9kZURyYWdIYW5kbGVyIH0gZnJvbSAnLi9ub2RlLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uVGFyZ2V0RHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Nvbm5lY3Rpb24tdGFyZ2V0LmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uU291cmNlRHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Nvbm5lY3Rpb24tc291cmNlLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Nvbm5lY3Rpb24uZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7XG4gIEdldEluY29taW5nQ29ubmVjdGlvbnNIYW5kbGVyLFxuICBHZXRPdXRnb2luZ0Nvbm5lY3Rpb25zSGFuZGxlcixcbiAgVXBkYXRlSXRlbUxheWVyUmVxdWVzdFxufSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRk5vZGVCYXNlLCBpc05vZGVEcmFnSGFuZGxlIH0gZnJvbSAnLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi8uLi9mLW1lZGlhdG9yJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vZGVQcmVwYXJlRHJhZ1NlcXVlbmNlIGltcGxlbWVudHMgSUhhbmRsZXI8SVBvaW50ZXJFdmVudCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZmxvd0hvc3QoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBnZXRPdXRnb2luZ0Nvbm5lY3Rpb25zSGFuZGxlcjogR2V0T3V0Z29pbmdDb25uZWN0aW9uc0hhbmRsZXIsXG4gICAgICBwcml2YXRlIGdldEluY29taW5nQ29ubmVjdGlvbnNIYW5kbGVyOiBHZXRJbmNvbWluZ0Nvbm5lY3Rpb25zSGFuZGxlcixcbiAgICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5maW5kTm9kZShldmVudC50YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkZsb3cgPSBQb2ludC5mcm9tUG9pbnQoZXZlbnQuZ2V0UG9zaXRpb24oKSkuZWxlbWVudFRyYW5zZm9ybSh0aGlzLmZsb3dIb3N0KTtcblxuICAgIGlmIChub2RlICYmICFub2RlLmZEcmFnZ2luZ0Rpc2FibGVkICYmICF0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGlmIChpc05vZGVEcmFnSGFuZGxlKGV2ZW50LnRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgIGlmICghdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhub2RlKSAmJiAhbm9kZS5mU2VsZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnB1c2gobm9kZSk7XG4gICAgICAgICAgbm9kZS5zZWxlY3QoKTtcbiAgICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc1NlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgVXBkYXRlSXRlbUxheWVyUmVxdWVzdChub2RlLCB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEuZk5vZGVzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpKTtcbiAgICAgICAgY29uc3QgaXRlbXNUb0RyYWc6IElEcmFnZ2FibGVJdGVtW10gPSB0aGlzLmNhbGN1bGF0ZURyYWdnYWJsZUNvbm5lY3Rpb25zQW5kTm9kZXMoKTtcblxuICAgICAgICBjb25zdCBkcmFnZ2VkTm9kZXMgPSBpdGVtc1RvRHJhZy5maWx0ZXIoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4geC50eXBlID09PSBFRkRyYWdnYWJsZVR5cGUuTk9ERTtcbiAgICAgICAgfSkubWFwKCh4KSA9PiAoeCBhcyBOb2RlRHJhZ0hhbmRsZXIpLmZOb2RlKTtcblxuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5mTGluZUFsaWdubWVudD8uaW5pdGlhbGl6ZSh0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzLCBkcmFnZ2VkTm9kZXMpO1xuXG4gICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25TY2FsZSA9IHRoaXMudHJhbnNmb3JtLnNjYWxlO1xuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24gPSBwb2ludGVyUG9zaXRpb25JbkZsb3cuZGl2KHRoaXMudHJhbnNmb3JtLnNjYWxlKTtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMgPSBpdGVtc1RvRHJhZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZURyYWdnYWJsZUNvbm5lY3Rpb25zQW5kTm9kZXMoKTogSURyYWdnYWJsZUl0ZW1bXSB7XG4gICAgbGV0IGl0ZW1zVG9EcmFnOiBJRHJhZ2dhYmxlSXRlbVtdID0gW107XG5cbiAgICBjb25zdCBzZWxlY3RlZE5vZGVzID0gdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZmluZE5vZGUoeC5ob3N0RWxlbWVudCk7XG4gICAgfSkuZmlsdGVyKCh4KSA9PiAhIXgpIGFzIEZOb2RlQmFzZVtdO1xuXG4gICAgY29uc3Qgbm9kZURyYWdIYW5kbGVycyA9IHNlbGVjdGVkTm9kZXMubWFwKCh4KSA9PiBuZXcgTm9kZURyYWdIYW5kbGVyKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LCB4KSk7XG4gICAgaXRlbXNUb0RyYWcgPSBub2RlRHJhZ0hhbmRsZXJzO1xuXG4gICAgY29uc3QgYWxsT3V0cHV0SWRzOiBhbnlbXSA9IHNlbGVjdGVkTm9kZXMucmVkdWNlKChyZXN1bHQ6IEZDb25uZWN0b3JCYXNlW10sIHg6IEZOb2RlQmFzZSkgPT4ge1xuICAgICAgcmV0dXJuIHJlc3VsdC5jb25jYXQodGhpcy5nZXRPdXRwdXRzRm9yTm9kZSh4KSk7XG4gICAgfSwgW10pLm1hcCgoeCkgPT4geC5pZCk7XG5cbiAgICBjb25zdCBhbGxJbnB1dElkczogYW55W10gPSBzZWxlY3RlZE5vZGVzLnJlZHVjZSgocmVzdWx0OiBGQ29ubmVjdG9yQmFzZVtdLCB4OiBGTm9kZUJhc2UpID0+IHtcbiAgICAgIHJldHVybiByZXN1bHQuY29uY2F0KHRoaXMuZ2V0SW5wdXRzRm9yTm9kZSh4KSk7XG4gICAgfSwgW10pLm1hcCgoeCkgPT4geC5pZCk7XG5cbiAgICBub2RlRHJhZ0hhbmRsZXJzLmZvckVhY2goKG5vZGVIYW5kbGVyKSA9PiB7XG4gICAgICBjb25zdCBvdXRwdXRDb25uZWN0aW9ucyA9IHRoaXMuZ2V0T3V0Z29pbmdDb25uZWN0aW9uc0hhbmRsZXIuaGFuZGxlKHRoaXMuZ2V0T3V0cHV0c0Zvck5vZGUobm9kZUhhbmRsZXIuZk5vZGUpKTtcbiAgICAgIG91dHB1dENvbm5lY3Rpb25zLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgaWYgKGFsbElucHV0SWRzLmluY2x1ZGVzKGMuZklucHV0SWQpKSB7XG4gICAgICAgICAgaXRlbXNUb0RyYWcucHVzaChcbiAgICAgICAgICAgICAgbmV3IENvbm5lY3Rpb25EcmFnSGFuZGxlcih0aGlzLmZNZWRpYXRvciwgYylcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1zVG9EcmFnLnB1c2goXG4gICAgICAgICAgICAgIG5ldyBDb25uZWN0aW9uU291cmNlRHJhZ0hhbmRsZXIodGhpcy5mTWVkaWF0b3IsIGMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBjb25zdCBpbnB1dENvbm5lY3Rpb25zID0gdGhpcy5nZXRJbmNvbWluZ0Nvbm5lY3Rpb25zSGFuZGxlci5oYW5kbGUodGhpcy5nZXRJbnB1dHNGb3JOb2RlKG5vZGVIYW5kbGVyLmZOb2RlKSk7XG4gICAgICBpbnB1dENvbm5lY3Rpb25zLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgaWYgKGFsbE91dHB1dElkcy5pbmNsdWRlcyhjLmZPdXRwdXRJZCkpIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW1zVG9EcmFnLmZpbmRJbmRleCgoeCkgPT4geC50eXBlID09PSBFRkRyYWdnYWJsZVR5cGUuQ09OTkVDVElPTiAmJiAoeCBhcyBDb25uZWN0aW9uRHJhZ0hhbmRsZXIpLmNvbm5lY3Rpb24uZkNvbm5lY3Rpb25JZCA9PT0gYy5mQ29ubmVjdGlvbklkKTtcbiAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBpdGVtc1RvRHJhZy5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBDb25uZWN0aW9uRHJhZ0hhbmRsZXIodGhpcy5mTWVkaWF0b3IsIGMpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtc1RvRHJhZy5wdXNoKFxuICAgICAgICAgICAgICBuZXcgQ29ubmVjdGlvblRhcmdldERyYWdIYW5kbGVyKHRoaXMuZk1lZGlhdG9yLCBjKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBpdGVtc1RvRHJhZztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5wdXRzRm9yTm9kZShub2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZJbnB1dHMuZmlsdGVyKCh4KSA9PiBub2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdXRwdXRzRm9yTm9kZShub2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZPdXRwdXRzLmZpbHRlcigoeCkgPT4gbm9kZS5pc0NvbnRhaW5zKHguaG9zdEVsZW1lbnQpKTtcbiAgfVxufVxuIl19