@foblex/flow 17.0.9 → 17.1.1

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 (311) hide show
  1. package/domain/css-cls.d.ts +13 -0
  2. package/domain/f-connection/index.d.ts +0 -3
  3. package/domain/f-connection/providers.d.ts +1 -4
  4. package/domain/f-connection/redraw-connections/redraw-connections.execution.d.ts +2 -2
  5. package/domain/f-connectors/calculate-closest-input/calculate-closest-input.execution.d.ts +11 -0
  6. package/domain/f-connectors/calculate-closest-input/calculate-closest-input.request.d.ts +7 -0
  7. package/domain/f-connectors/calculate-closest-input/index.d.ts +2 -0
  8. package/domain/f-connectors/find-input-at-position/find-input-at-position.execution.d.ts +24 -0
  9. package/domain/f-connectors/find-input-at-position/find-input-at-position.request.d.ts +8 -0
  10. package/domain/f-connectors/find-input-at-position/index.d.ts +2 -0
  11. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.d.ts +14 -0
  12. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.request.d.ts +5 -0
  13. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/index.d.ts +2 -0
  14. package/domain/f-connectors/get-connector-and-rect/get-connector-and-rect-request.d.ts +5 -0
  15. package/domain/f-connectors/get-connector-and-rect/get-connector-and-rect.execution.d.ts +11 -0
  16. package/domain/f-connectors/get-connector-and-rect/index.d.ts +2 -0
  17. package/domain/{f-connection/find-closest-input → f-connectors}/i-closest-input.d.ts +1 -1
  18. package/domain/{f-connection/get-connector-with-rect/i-connector-with-rect.d.ts → f-connectors/i-connector-and-rect.d.ts} +2 -2
  19. package/domain/f-connectors/index.d.ts +8 -0
  20. package/domain/f-connectors/mark-all-can-be-connected-inputs/index.d.ts +2 -0
  21. package/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.execution.d.ts +10 -0
  22. package/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.request.d.ts +5 -0
  23. package/domain/f-connectors/providers.d.ts +7 -1
  24. package/domain/f-connectors/unmark-all-can-be-connected-inputs/index.d.ts +2 -0
  25. package/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.execution.d.ts +10 -0
  26. package/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.request.d.ts +5 -0
  27. package/domain/f-draggable/providers.d.ts +1 -1
  28. package/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.d.ts +2 -3
  29. package/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.d.ts +2 -2
  30. package/domain/f-flow/get-flow-state/get-flow-state.execution.d.ts +4 -6
  31. package/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.request.d.ts +3 -0
  32. package/domain/f-node/providers.d.ts +1 -1
  33. package/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.d.ts +2 -0
  34. package/domain/f-selection/select/select.execution.d.ts +2 -5
  35. package/domain/f-selection/select-all/select-all.execution.d.ts +2 -5
  36. package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.d.ts +5 -0
  37. package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.d.ts +9 -0
  38. package/domain/f-zoom/add-zoom-to-store/index.d.ts +2 -0
  39. package/domain/f-zoom/f-zoom-tag.d.ts +1 -0
  40. package/domain/f-zoom/index.d.ts +6 -0
  41. package/domain/f-zoom/providers.d.ts +5 -0
  42. package/domain/f-zoom/remove-zoom-from-store/index.d.ts +2 -0
  43. package/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store-request.d.ts +2 -0
  44. package/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.d.ts +9 -0
  45. package/domain/f-zoom/reset-zoom/index.d.ts +2 -0
  46. package/domain/f-zoom/reset-zoom/reset-zoom-request.d.ts +2 -0
  47. package/domain/f-zoom/reset-zoom/reset-zoom.execution.d.ts +10 -0
  48. package/domain/f-zoom/set-zoom/index.d.ts +2 -0
  49. package/domain/f-zoom/set-zoom/set-zoom-request.d.ts +8 -0
  50. package/domain/f-zoom/set-zoom/set-zoom.execution.d.ts +16 -0
  51. package/domain/i-f-action-trigger.d.ts +14 -0
  52. package/domain/index.d.ts +5 -0
  53. package/domain/log-deprecated.d.ts +1 -0
  54. package/domain/log-execution-time.d.ts +1 -0
  55. package/domain/providers.d.ts +1 -1
  56. package/esm2022/domain/css-cls.mjs +14 -0
  57. package/esm2022/domain/f-connection/index.mjs +1 -4
  58. package/esm2022/domain/f-connection/providers.mjs +1 -7
  59. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +9 -9
  60. package/esm2022/domain/f-connectors/calculate-closest-input/calculate-closest-input.execution.mjs +42 -0
  61. package/esm2022/domain/f-connectors/calculate-closest-input/calculate-closest-input.request.mjs +9 -0
  62. package/esm2022/domain/f-connectors/calculate-closest-input/index.mjs +3 -0
  63. package/esm2022/domain/f-connectors/find-input-at-position/find-input-at-position.execution.mjs +89 -0
  64. package/esm2022/domain/f-connectors/find-input-at-position/find-input-at-position.request.mjs +11 -0
  65. package/esm2022/domain/f-connectors/find-input-at-position/index.mjs +3 -0
  66. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.mjs +45 -0
  67. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.request.mjs +7 -0
  68. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/index.mjs +3 -0
  69. package/esm2022/domain/f-connectors/get-connector-and-rect/get-connector-and-rect-request.mjs +7 -0
  70. package/esm2022/domain/f-connectors/get-connector-and-rect/get-connector-and-rect.execution.mjs +28 -0
  71. package/esm2022/domain/f-connectors/get-connector-and-rect/index.mjs +3 -0
  72. package/esm2022/domain/f-connectors/i-closest-input.mjs +2 -0
  73. package/esm2022/domain/f-connectors/i-connector-and-rect.mjs +2 -0
  74. package/esm2022/domain/f-connectors/index.mjs +9 -1
  75. package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/index.mjs +3 -0
  76. package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.execution.mjs +27 -0
  77. package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.request.mjs +7 -0
  78. package/esm2022/domain/f-connectors/providers.mjs +14 -2
  79. package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/index.mjs +3 -0
  80. package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.execution.mjs +27 -0
  81. package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.request.mjs +7 -0
  82. package/esm2022/domain/f-draggable/end-drag-sequence/end-drag-sequence.execution.mjs +3 -2
  83. package/esm2022/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.mjs +3 -2
  84. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.mjs +17 -19
  85. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +5 -5
  86. package/esm2022/domain/f-flow/get-flow-state/get-flow-state.execution.mjs +14 -19
  87. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.execution.mjs +2 -2
  88. package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.execution.mjs +2 -2
  89. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.execution.mjs +4 -4
  90. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.request.mjs +5 -1
  91. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.mjs +39 -5
  92. package/esm2022/domain/f-selection/select/select.execution.mjs +15 -19
  93. package/esm2022/domain/f-selection/select-all/select-all.execution.mjs +15 -19
  94. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.mjs +7 -0
  95. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.mjs +25 -0
  96. package/esm2022/domain/f-zoom/add-zoom-to-store/index.mjs +3 -0
  97. package/esm2022/domain/f-zoom/f-zoom-tag.mjs +2 -0
  98. package/esm2022/domain/f-zoom/index.mjs +7 -0
  99. package/esm2022/domain/f-zoom/providers.mjs +11 -0
  100. package/esm2022/domain/f-zoom/remove-zoom-from-store/index.mjs +3 -0
  101. package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store-request.mjs +3 -0
  102. package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.mjs +25 -0
  103. package/esm2022/domain/f-zoom/reset-zoom/index.mjs +3 -0
  104. package/esm2022/domain/f-zoom/reset-zoom/reset-zoom-request.mjs +3 -0
  105. package/esm2022/domain/f-zoom/reset-zoom/reset-zoom.execution.mjs +27 -0
  106. package/esm2022/domain/f-zoom/set-zoom/index.mjs +3 -0
  107. package/esm2022/domain/f-zoom/set-zoom/set-zoom-request.mjs +13 -0
  108. package/esm2022/domain/f-zoom/set-zoom/set-zoom.execution.mjs +50 -0
  109. package/esm2022/domain/i-f-action-trigger.mjs +11 -0
  110. package/esm2022/domain/index.mjs +6 -1
  111. package/esm2022/domain/log-deprecated.mjs +11 -0
  112. package/esm2022/domain/log-execution-time.mjs +16 -0
  113. package/esm2022/domain/providers.mjs +3 -1
  114. package/esm2022/f-canvas/domain/f-canvas-change.event.mjs +1 -1
  115. package/esm2022/f-canvas/f-canvas-base.mjs +1 -1
  116. package/esm2022/f-canvas/f-canvas.component.mjs +25 -2
  117. package/esm2022/f-connection/f-connection/f-connection.component.mjs +7 -5
  118. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +7 -5
  119. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +9 -6
  120. package/esm2022/f-connectors/f-connector-base.mjs +9 -5
  121. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +23 -23
  122. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +16 -17
  123. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +28 -24
  124. package/esm2022/f-connectors/index.mjs +1 -2
  125. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.mjs +8 -11
  126. package/esm2022/f-draggable/canvas/canvas-move-finalize/index.mjs +1 -2
  127. package/esm2022/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.execution.mjs +36 -19
  128. package/esm2022/f-draggable/canvas/canvas-move-preparation/index.mjs +1 -3
  129. package/esm2022/f-draggable/canvas/canvas.drag-handler.mjs +8 -8
  130. package/esm2022/f-draggable/canvas/providers.mjs +5 -5
  131. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.mjs +13 -10
  132. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.execution.mjs +2 -2
  133. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.request.mjs +4 -4
  134. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.execution.mjs +3 -3
  135. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.execution.mjs +7 -7
  136. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.execution.mjs +5 -5
  137. package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +54 -50
  138. package/esm2022/f-draggable/connections/i-create-reassign-connection-drag-data.mjs +2 -0
  139. package/esm2022/f-draggable/connections/index.mjs +2 -2
  140. package/esm2022/f-draggable/connections/providers.mjs +1 -4
  141. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.mjs +38 -34
  142. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.execution.mjs +1 -1
  143. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.mjs +73 -50
  144. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.mjs +8 -17
  145. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.request.mjs +6 -6
  146. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +25 -19
  147. package/esm2022/f-draggable/f-draggable-data-context.mjs +4 -2
  148. package/esm2022/f-draggable/i-draggable-item.mjs +1 -1
  149. package/esm2022/f-draggable/node/connection-base-drag-handler.mjs +4 -4
  150. package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +5 -7
  151. package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +5 -7
  152. package/esm2022/f-draggable/node/connection.drag-handler.mjs +5 -5
  153. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +37 -22
  154. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-restrictions/calculate-common-node-move-restrictions.execution.mjs +40 -0
  155. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-restrictions/calculate-common-node-move-restrictions.request.mjs +7 -0
  156. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-restrictions/index.mjs +3 -0
  157. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-restrictions/calculate-node-move-restrictions.execution.mjs +42 -0
  158. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-restrictions/calculate-node-move-restrictions.request.mjs +9 -0
  159. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-restrictions/index.mjs +3 -0
  160. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.mjs +16 -21
  161. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.mjs +4 -4
  162. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/i-node-with-distance-restrictions.mjs +1 -1
  163. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/index.mjs +3 -2
  164. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.mjs +5 -3
  165. package/esm2022/f-draggable/node/index.mjs +3 -1
  166. package/esm2022/f-draggable/node/line-alignment-preparation/index.mjs +3 -0
  167. package/esm2022/f-draggable/node/line-alignment-preparation/line-alignment-preparation.execution.mjs +67 -0
  168. package/esm2022/f-draggable/node/line-alignment-preparation/line-alignment-preparation.request.mjs +3 -0
  169. package/esm2022/f-draggable/node/line-alignment.drag-handler.mjs +61 -0
  170. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +5 -3
  171. package/esm2022/f-draggable/node/node-move-preparation/index.mjs +1 -2
  172. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.execution.mjs +26 -21
  173. package/esm2022/f-draggable/node/node-move-preparation/providers.mjs +1 -3
  174. package/esm2022/f-draggable/node/node.drag-handler.mjs +13 -19
  175. package/esm2022/f-draggable/node/providers.mjs +3 -1
  176. package/esm2022/f-line-alignment/f-line-alignment-base.mjs +1 -1
  177. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +12 -78
  178. package/esm2022/f-node/f-group.directive.mjs +9 -7
  179. package/esm2022/f-node/f-node.directive.mjs +10 -8
  180. package/esm2022/f-storage/f-components-store.mjs +3 -1
  181. package/esm2022/f-zoom/e-f-zoom-action.mjs +6 -0
  182. package/esm2022/f-zoom/e-f-zoom-direction.mjs +6 -0
  183. package/esm2022/f-zoom/f-zoom-base.mjs +2 -98
  184. package/esm2022/f-zoom/f-zoom.directive.mjs +139 -21
  185. package/esm2022/f-zoom/index.mjs +3 -1
  186. package/f-backgroud/providers.d.ts +1 -1
  187. package/f-canvas/f-canvas-base.d.ts +2 -2
  188. package/f-canvas/f-canvas.component.d.ts +9 -0
  189. package/f-connection/f-connection/f-connection.component.d.ts +2 -0
  190. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +2 -0
  191. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +3 -0
  192. package/f-connection/providers.d.ts +1 -1
  193. package/f-connectors/f-connector-base.d.ts +4 -2
  194. package/f-connectors/f-node-input/f-node-input.directive.d.ts +6 -6
  195. package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +6 -6
  196. package/f-connectors/f-node-output/f-node-output.directive.d.ts +8 -7
  197. package/f-connectors/index.d.ts +0 -1
  198. package/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.d.ts +1 -3
  199. package/f-draggable/canvas/canvas-move-finalize/index.d.ts +0 -1
  200. package/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.execution.d.ts +7 -6
  201. package/f-draggable/canvas/canvas-move-preparation/index.d.ts +0 -2
  202. package/f-draggable/canvas/canvas.drag-handler.d.ts +2 -2
  203. package/f-draggable/canvas/providers.d.ts +3 -1
  204. package/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.d.ts +3 -2
  205. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.request.d.ts +3 -3
  206. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.execution.d.ts +2 -2
  207. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +14 -15
  208. package/f-draggable/connections/i-create-reassign-connection-drag-data.d.ts +7 -0
  209. package/f-draggable/connections/index.d.ts +1 -1
  210. package/f-draggable/connections/providers.d.ts +1 -2
  211. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.d.ts +13 -13
  212. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +19 -15
  213. package/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.d.ts +3 -6
  214. package/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.request.d.ts +3 -3
  215. package/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +3 -2
  216. package/f-draggable/domain/providers.d.ts +1 -1
  217. package/f-draggable/f-draggable-data-context.d.ts +1 -2
  218. package/f-draggable/i-draggable-item.d.ts +2 -1
  219. package/f-draggable/node/connection-base-drag-handler.d.ts +5 -6
  220. package/f-draggable/node/connection-source.drag-handler.d.ts +3 -4
  221. package/f-draggable/node/connection-target.drag-handler.d.ts +3 -4
  222. package/f-draggable/node/connection.drag-handler.d.ts +3 -3
  223. package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +6 -3
  224. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-restrictions/calculate-common-node-move-restrictions.execution.d.ts +13 -0
  225. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-restrictions/calculate-common-node-move-restrictions.request.d.ts +5 -0
  226. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-restrictions/index.d.ts +2 -0
  227. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-restrictions/calculate-node-move-restrictions.execution.d.ts +12 -0
  228. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/{get-node-move-restrictions/get-node-move-restrictions.request.d.ts → calculate-node-move-restrictions/calculate-node-move-restrictions.request.d.ts} +1 -1
  229. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-restrictions/index.d.ts +2 -0
  230. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.d.ts +4 -6
  231. package/f-draggable/node/create-move-nodes-drag-model-from-selection/i-node-with-distance-restrictions.d.ts +4 -4
  232. package/f-draggable/node/create-move-nodes-drag-model-from-selection/index.d.ts +2 -1
  233. package/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.d.ts +3 -2
  234. package/f-draggable/node/index.d.ts +2 -0
  235. package/f-draggable/node/line-alignment-preparation/index.d.ts +2 -0
  236. package/f-draggable/node/line-alignment-preparation/line-alignment-preparation.execution.d.ts +21 -0
  237. package/f-draggable/node/line-alignment-preparation/line-alignment-preparation.request.d.ts +2 -0
  238. package/f-draggable/node/line-alignment.drag-handler.d.ts +20 -0
  239. package/f-draggable/node/node-move-preparation/index.d.ts +0 -1
  240. package/f-draggable/node/node-move-preparation/node-move-preparation.execution.d.ts +4 -3
  241. package/f-draggable/node/node-move-preparation/providers.d.ts +1 -2
  242. package/f-draggable/node/node.drag-handler.d.ts +4 -7
  243. package/f-draggable/node/providers.d.ts +2 -1
  244. package/f-draggable/providers.d.ts +1 -1
  245. package/f-line-alignment/f-line-alignment-base.d.ts +2 -8
  246. package/f-line-alignment/f-line-alignment.component.d.ts +6 -25
  247. package/f-minimap/providers.d.ts +1 -1
  248. package/f-node/f-group.directive.d.ts +4 -0
  249. package/f-node/f-node.directive.d.ts +4 -0
  250. package/f-node/providers.d.ts +1 -1
  251. package/f-storage/f-components-store.d.ts +4 -0
  252. package/f-storage/providers.d.ts +1 -1
  253. package/f-zoom/e-f-zoom-action.d.ts +4 -0
  254. package/f-zoom/e-f-zoom-direction.d.ts +4 -0
  255. package/f-zoom/f-zoom-base.d.ts +0 -17
  256. package/f-zoom/f-zoom.directive.d.ts +40 -5
  257. package/f-zoom/index.d.ts +2 -0
  258. package/fesm2022/foblex-flow.mjs +1766 -1435
  259. package/fesm2022/foblex-flow.mjs.map +1 -1
  260. package/package.json +2 -2
  261. package/domain/f-connection/find-closest-input/find-closest-input.execution.d.ts +0 -11
  262. package/domain/f-connection/find-closest-input/find-closest-input.request.d.ts +0 -7
  263. package/domain/f-connection/find-closest-input/index.d.ts +0 -3
  264. package/domain/f-connection/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.execution.d.ts +0 -21
  265. package/domain/f-connection/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.request.d.ts +0 -4
  266. package/domain/f-connection/get-all-can-be-connected-input-positions/index.d.ts +0 -2
  267. package/domain/f-connection/get-connector-with-rect/get-connector-with-rect-request.d.ts +0 -5
  268. package/domain/f-connection/get-connector-with-rect/get-connector-with-rect.execution.d.ts +0 -10
  269. package/domain/f-connection/get-connector-with-rect/index.d.ts +0 -3
  270. package/esm2022/domain/f-connection/find-closest-input/find-closest-input.execution.mjs +0 -42
  271. package/esm2022/domain/f-connection/find-closest-input/find-closest-input.request.mjs +0 -9
  272. package/esm2022/domain/f-connection/find-closest-input/i-closest-input.mjs +0 -2
  273. package/esm2022/domain/f-connection/find-closest-input/index.mjs +0 -4
  274. package/esm2022/domain/f-connection/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.execution.mjs +0 -57
  275. package/esm2022/domain/f-connection/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.request.mjs +0 -7
  276. package/esm2022/domain/f-connection/get-all-can-be-connected-input-positions/index.mjs +0 -3
  277. package/esm2022/domain/f-connection/get-connector-with-rect/get-connector-with-rect-request.mjs +0 -7
  278. package/esm2022/domain/f-connection/get-connector-with-rect/get-connector-with-rect.execution.mjs +0 -25
  279. package/esm2022/domain/f-connection/get-connector-with-rect/i-connector-with-rect.mjs +0 -2
  280. package/esm2022/domain/f-connection/get-connector-with-rect/index.mjs +0 -4
  281. package/esm2022/f-connectors/domain/calculate-connector-connectable-side/calculate-connector-connectable-side-request.mjs +0 -9
  282. package/esm2022/f-connectors/domain/calculate-connector-connectable-side/calculate-connector-connectable-side.handler.mjs +0 -38
  283. package/esm2022/f-connectors/domain/calculate-connector-connectable-side/index.mjs +0 -3
  284. package/esm2022/f-connectors/domain/index.mjs +0 -2
  285. package/esm2022/f-draggable/canvas/canvas-move-finalize/providers.mjs +0 -5
  286. package/esm2022/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.validator.mjs +0 -46
  287. package/esm2022/f-draggable/canvas/canvas-move-preparation/providers.mjs +0 -7
  288. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.execution.mjs +0 -88
  289. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.request.mjs +0 -9
  290. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.validator.mjs +0 -36
  291. package/esm2022/f-draggable/connections/get-input-under-pointer/index.mjs +0 -4
  292. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.mjs +0 -42
  293. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.request.mjs +0 -9
  294. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/i-node-move-restrictions.mjs +0 -2
  295. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/index.mjs +0 -4
  296. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.validator.mjs +0 -39
  297. package/f-connectors/domain/calculate-connector-connectable-side/calculate-connector-connectable-side-request.d.ts +0 -6
  298. package/f-connectors/domain/calculate-connector-connectable-side/calculate-connector-connectable-side.handler.d.ts +0 -7
  299. package/f-connectors/domain/calculate-connector-connectable-side/index.d.ts +0 -2
  300. package/f-connectors/domain/index.d.ts +0 -1
  301. package/f-draggable/canvas/canvas-move-finalize/providers.d.ts +0 -2
  302. package/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.validator.d.ts +0 -17
  303. package/f-draggable/canvas/canvas-move-preparation/providers.d.ts +0 -3
  304. package/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.execution.d.ts +0 -27
  305. package/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.request.d.ts +0 -8
  306. package/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.validator.d.ts +0 -13
  307. package/f-draggable/connections/get-input-under-pointer/index.d.ts +0 -3
  308. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.d.ts +0 -12
  309. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/i-node-move-restrictions.d.ts +0 -5
  310. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/index.d.ts +0 -3
  311. package/f-draggable/node/node-move-preparation/node-move-preparation.validator.d.ts +0 -14
@@ -1,79 +1,102 @@
1
- import { FindClosestInputRequest, GetAllCanBeConnectedInputPositionsRequest, CalculateConnectionLineByBehaviorRequest, GetConnectorWithRectRequest } from '../../../domain';
2
- import { Point, RectExtensions, RoundedRect } from '@foblex/2d';
1
+ import { CalculateClosestInputRequest, GetAllCanBeConnectedInputsAndRectsRequest, CalculateConnectionLineByBehaviorRequest, GetConnectorAndRectRequest, MarkAllCanBeConnectedInputsRequest, UnmarkAllCanBeConnectedInputsRequest } from '../../../domain';
2
+ import { RectExtensions, RoundedRect } from '@foblex/2d';
3
3
  export class ReassignConnectionDragHandler {
4
- fMediator;
5
- fComponentsStore;
6
- fConnection;
7
- toConnectorRect = new RoundedRect();
8
- get fSnapConnection() {
9
- return this.fComponentsStore.fSnapConnection;
10
- }
11
- fOutputWithRect;
12
- fInputWithRect;
13
- canBeConnectedInputs = [];
14
- constructor(fMediator, fComponentsStore, fConnection) {
15
- this.fMediator = fMediator;
16
- this.fComponentsStore = fComponentsStore;
17
- this.fConnection = fConnection;
4
+ _fMediator;
5
+ _fComponentsStore;
6
+ _fConnection;
7
+ _toConnectorRect = new RoundedRect();
8
+ get _fSnapConnection() {
9
+ return this._fComponentsStore.fSnapConnection;
10
+ }
11
+ _fOutputWithRect;
12
+ _fInputWithRect;
13
+ _canBeConnectedInputs = [];
14
+ get _fOutput() {
15
+ const result = this._fComponentsStore.fOutputs.find((x) => x.fId === this._fConnection.fOutputId);
16
+ if (!result) {
17
+ throw new Error('Connection output not found');
18
+ }
19
+ return result;
20
+ }
21
+ get _fInput() {
22
+ const result = this._fComponentsStore.fInputs.find((x) => x.fId === this._fConnection.fInputId);
23
+ if (!result) {
24
+ throw new Error('Connection input not found');
25
+ }
26
+ return result;
27
+ }
28
+ constructor(_fMediator, _fComponentsStore, _fConnection) {
29
+ this._fMediator = _fMediator;
30
+ this._fComponentsStore = _fComponentsStore;
31
+ this._fConnection = _fConnection;
32
+ this._toConnectorRect = RoundedRect.fromRect(RectExtensions.initialize(this._fConnection.line.point2.x, this._fConnection.line.point2.y));
18
33
  }
19
34
  prepareDragSequence() {
35
+ this._getAndMarkCanBeConnectedInputs();
20
36
  this._initializeSnapConnection();
21
- this.canBeConnectedInputs = this.fMediator.send(new GetAllCanBeConnectedInputPositionsRequest(this.fConnection.fOutputId));
22
- this.fOutputWithRect = this.fMediator.send(new GetConnectorWithRectRequest(this.getOutput()));
23
- this.fInputWithRect = this.fMediator.send(new GetConnectorWithRectRequest(this.getInput()));
24
- this.toConnectorRect = RoundedRect.fromRect(RectExtensions.initialize(this.fConnection.line.point2.x, this.fConnection.line.point2.y));
37
+ this._fOutputWithRect = this._fMediator.execute(new GetConnectorAndRectRequest(this._fOutput));
38
+ this._fInputWithRect = this._fMediator.execute(new GetConnectorAndRectRequest(this._fInput));
39
+ }
40
+ _getAndMarkCanBeConnectedInputs() {
41
+ this._canBeConnectedInputs = this._fMediator.execute(new GetAllCanBeConnectedInputsAndRectsRequest(this._fOutput));
42
+ this._fMediator.execute(new MarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
25
43
  }
26
44
  _initializeSnapConnection() {
27
- if (!this.fSnapConnection) {
45
+ if (!this._fSnapConnection) {
28
46
  return;
29
47
  }
30
- this.fSnapConnection.fOutputId = this.fConnection.fOutputId;
31
- this.fSnapConnection.initialize();
32
- }
33
- getOutput() {
34
- return this.fComponentsStore.fOutputs.find((x) => x.fId === this.fConnection.fOutputId);
35
- }
36
- getInput() {
37
- return this.fComponentsStore.fInputs.find((x) => x.fId === this.fConnection.fInputId);
48
+ this._fSnapConnection.fOutputId = this._fConnection.fOutputId;
49
+ this._fSnapConnection.initialize();
38
50
  }
39
51
  onPointerMove(difference) {
40
52
  const fClosestInput = this._findClosestInput(difference);
41
- this._drawConnection(this.toConnectorRect.addPoint(difference), fClosestInput?.fConnector.fConnectableSide || this.fInputWithRect.fConnector.fConnectableSide);
42
- if (this.fSnapConnection) {
53
+ this._drawConnection(this._toConnectorRect.addPoint(difference), fClosestInput?.fConnector.fConnectableSide || this._fInputWithRect.fConnector.fConnectableSide);
54
+ if (this._fSnapConnection) {
43
55
  this._drawSnapConnection(this._getClosestInputForSnapConnection(fClosestInput));
44
56
  }
45
57
  }
46
- _drawConnection(fInputRect, fSide) {
47
- const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fInputRect, this.fConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, fSide));
48
- this.fConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, fSide);
49
- this.fConnection.redraw();
58
+ _drawConnection(difference, fSide) {
59
+ const line = this._getLineToPointer(difference, fSide);
60
+ this._fConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, fSide);
61
+ this._fConnection.redraw();
62
+ }
63
+ _getLineToPointer(difference, fSide) {
64
+ return this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this._fOutputWithRect.fRect, RoundedRect.fromRect(RectExtensions.initialize(difference.x, difference.y)), this._fConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, fSide));
50
65
  }
51
66
  _drawSnapConnection(fClosestInput) {
52
67
  if (fClosestInput) {
53
- const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fClosestInput.fRect, this.fSnapConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide));
54
- this.fSnapConnection.show();
55
- this.fSnapConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, fClosestInput.fConnector.fConnectableSide);
56
- this.fSnapConnection.redraw();
68
+ const line = this._getLineToClosestInput(fClosestInput);
69
+ this._fSnapConnection.show();
70
+ this._fSnapConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, fClosestInput.fConnector.fConnectableSide);
71
+ this._fSnapConnection.redraw();
57
72
  }
58
73
  else {
59
- this.fSnapConnection?.hide();
74
+ this._fSnapConnection?.hide();
60
75
  }
61
76
  }
62
- getClosetInput(difference) {
63
- if (!this.fSnapConnection) {
64
- return undefined;
65
- }
66
- return this._getClosestInputForSnapConnection(this._findClosestInput(difference));
77
+ _getLineToClosestInput(fClosestInput) {
78
+ return this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this._fOutputWithRect.fRect, fClosestInput.fRect, this._fSnapConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide));
67
79
  }
68
80
  _findClosestInput(difference) {
69
- return this.fMediator.send(new FindClosestInputRequest(Point.fromPoint(this.toConnectorRect).add(difference), this.canBeConnectedInputs));
81
+ return this._fMediator.execute(new CalculateClosestInputRequest(this._toConnectorRect.addPoint(difference), this._canBeConnectedInputs));
70
82
  }
71
83
  _getClosestInputForSnapConnection(fClosestInput) {
72
- return fClosestInput && fClosestInput.distance < this.fSnapConnection.fSnapThreshold ? fClosestInput : undefined;
84
+ return fClosestInput && fClosestInput.distance < this._fSnapConnection.fSnapThreshold ? fClosestInput : undefined;
73
85
  }
74
86
  onPointerUp() {
75
- this._drawConnection(this.fInputWithRect.fRect, this.fInputWithRect.fConnector.fConnectableSide);
76
- this.fSnapConnection?.hide();
87
+ this._drawConnection(this._fInputWithRect.fRect, this._fInputWithRect.fConnector.fConnectableSide);
88
+ this._fSnapConnection?.hide();
89
+ this._fMediator.execute(new UnmarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
90
+ }
91
+ getData() {
92
+ return {
93
+ toConnectorRect: this._toConnectorRect,
94
+ fOutputId: this._fConnection.fOutputId,
95
+ canBeConnectedInputs: this._canBeConnectedInputs
96
+ };
97
+ }
98
+ getConnection() {
99
+ return this._fConnection;
77
100
  }
78
101
  }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL3JlYXNzaWduLWNvbm5lY3Rpb24vcmVhc3NpZ24tY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qix5Q0FBeUMsRUFDekMsd0NBQXdDLEVBQUUsMkJBQTJCLEVBRXRFLE1BQU0saUJBQWlCLENBQUM7QUFJekIsT0FBTyxFQUErQixLQUFLLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUc3RixNQUFNLE9BQU8sNkJBQTZCO0lBYzlCO0lBQ0E7SUFDRDtJQWRGLGVBQWUsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUV4RCxJQUFZLGVBQWU7UUFDekIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBMkMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sZUFBZSxDQUFzQjtJQUNyQyxjQUFjLENBQXNCO0lBRXBDLG9CQUFvQixHQUF5QixFQUFFLENBQUM7SUFFeEQsWUFDVSxTQUFvQixFQUNwQixnQkFBa0MsRUFDbkMsV0FBNEI7UUFGM0IsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ25DLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtJQUVyQyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDN0MsSUFBSSx5Q0FBeUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUMxRSxDQUFDO1FBRUYsSUFBSSxDQUFDLGVB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QyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNwSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRHJhZ2dhYmxlSXRlbSB9IGZyb20gJy4uLy4uL2ktZHJhZ2dhYmxlLWl0ZW0nO1xuaW1wb3J0IHtcbiAgRmluZENsb3Nlc3RJbnB1dFJlcXVlc3QsXG4gIEdldEFsbENhbkJlQ29ubmVjdGVkSW5wdXRQb3NpdGlvbnNSZXF1ZXN0LFxuICBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0LCBHZXRDb25uZWN0b3JXaXRoUmVjdFJlcXVlc3QsXG4gIElDb25uZWN0b3JXaXRoUmVjdCwgSUNsb3Nlc3RJbnB1dFxufSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlLCBGU25hcENvbm5lY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUsIEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgSUxpbmUsIElQb2ludCwgSVJvdW5kZWRSZWN0LCBQb2ludCwgUmVjdEV4dGVuc2lvbnMsIFJvdW5kZWRSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcblxuZXhwb3J0IGNsYXNzIFJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyIGltcGxlbWVudHMgSURyYWdnYWJsZUl0ZW0ge1xuXG4gIHB1YmxpYyB0b0Nvbm5lY3RvclJlY3Q6IFJvdW5kZWRSZWN0ID0gbmV3IFJvdW5kZWRSZWN0KCk7XG5cbiAgcHJpdmF0ZSBnZXQgZlNuYXBDb25uZWN0aW9uKCk6IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mU25hcENvbm5lY3Rpb24gYXMgRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBmT3V0cHV0V2l0aFJlY3QhOiBJQ29ubmVjdG9yV2l0aFJlY3Q7XG4gIHByaXZhdGUgZklucHV0V2l0aFJlY3QhOiBJQ29ubmVjdG9yV2l0aFJlY3Q7XG5cbiAgcHJpdmF0ZSBjYW5CZUNvbm5lY3RlZElucHV0czogSUNvbm5lY3RvcldpdGhSZWN0W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZNZWRpYXRvcjogRk1lZGlhdG9yLFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwdWJsaWMgZkNvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbml0aWFsaXplU25hcENvbm5lY3Rpb24oKTtcblxuICAgIHRoaXMuY2FuQmVDb25uZWN0ZWRJbnB1dHMgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElDb25uZWN0b3JXaXRoUmVjdFtdPihcbiAgICAgIG5ldyBHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0UG9zaXRpb25zUmVxdWVzdCh0aGlzLmZDb25uZWN0aW9uLmZPdXRwdXRJZClcbiAgICApO1xuXG4gICAgdGhpcy5mT3V0cHV0V2l0aFJlY3QgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElDb25uZWN0b3JXaXRoUmVjdD4obmV3IEdldENvbm5lY3RvcldpdGhSZWN0UmVxdWVzdCh0aGlzLmdldE91dHB1dCgpKSk7XG4gICAgdGhpcy5mSW5wdXRXaXRoUmVjdCA9IHRoaXMuZk1lZGlhdG9yLnNlbmQ8SUNvbm5lY3RvcldpdGhSZWN0PihuZXcgR2V0Q29ubmVjdG9yV2l0aFJlY3RSZXF1ZXN0KHRoaXMuZ2V0SW5wdXQoKSkpO1xuICAgIHRoaXMudG9Db25uZWN0b3JSZWN0ID0gUm91bmRlZFJlY3QuZnJvbVJlY3QoXG4gICAgICBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKHRoaXMuZkNvbm5lY3Rpb24ubGluZS5wb2ludDIueCwgdGhpcy5mQ29ubmVjdGlvbi5saW5lLnBvaW50Mi55KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0aWFsaXplU25hcENvbm5lY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZTbmFwQ29ubmVjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZTbmFwQ29ubmVjdGlvbi5mT3V0cHV0SWQgPSB0aGlzLmZDb25uZWN0aW9uLmZPdXRwdXRJZDtcbiAgICB0aGlzLmZTbmFwQ29ubmVjdGlvbi5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwcml2YXRlIGdldE91dHB1dCgpOiBGQ29ubmVjdG9yQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mT3V0cHV0cy5maW5kKCh4KSA9PiB4LmZJZCA9PT0gdGhpcy5mQ29ubmVjdGlvbi5mT3V0cHV0SWQpITtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5wdXQoKTogRkNvbm5lY3RvckJhc2Uge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZklucHV0cy5maW5kKCh4KSA9PiB4LmZJZCA9PT0gdGhpcy5mQ29ubmVjdGlvbi5mSW5wdXRJZCkhXG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmQ2xvc2VzdElucHV0ID0gdGhpcy5fZmluZENsb3Nlc3RJbnB1dChkaWZmZXJlbmNlKTtcblxuICAgIHRoaXMuX2RyYXdDb25uZWN0aW9uKFxuICAgICAgdGhpcy50b0Nvbm5lY3RvclJlY3QuYWRkUG9pbnQoZGlmZmVyZW5jZSksXG4gICAgICBmQ2xvc2VzdElucHV0Py5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUgfHwgdGhpcy5mSW5wdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGVcbiAgICApO1xuICAgIGlmICh0aGlzLmZTbmFwQ29ubmVjdGlvbikge1xuICAgICAgdGhpcy5fZHJhd1NuYXBDb25uZWN0aW9uKHRoaXMuX2dldENsb3Nlc3RJbnB1dEZvclNuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kcmF3Q29ubmVjdGlvbihmSW5wdXRSZWN0OiBJUm91bmRlZFJlY3QsIGZTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElMaW5lPihuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdChcbiAgICAgICAgdGhpcy5mT3V0cHV0V2l0aFJlY3QuZlJlY3QsXG4gICAgICAgIGZJbnB1dFJlY3QsXG4gICAgICAgIHRoaXMuZkNvbm5lY3Rpb24uZkJlaGF2aW9yLFxuICAgICAgICB0aGlzLmZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICAgIGZTaWRlXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuZkNvbm5lY3Rpb24uc2V0TGluZShsaW5lLnBvaW50MSwgdGhpcy5mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLCBsaW5lLnBvaW50MiwgZlNpZGUpO1xuICAgIHRoaXMuZkNvbm5lY3Rpb24ucmVkcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3U25hcENvbm5lY3Rpb24oZkNsb3Nlc3RJbnB1dDogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChmQ2xvc2VzdElucHV0KSB7XG4gICAgICBjb25zdCBsaW5lID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJTGluZT4obmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25MaW5lQnlCZWhhdmlvclJlcXVlc3QoXG4gICAgICAgICAgdGhpcy5mT3V0cHV0V2l0aFJlY3QuZlJlY3QsXG4gICAgICAgICAgZkNsb3Nlc3RJbnB1dC5mUmVjdCxcbiAgICAgICAgICB0aGlzLmZTbmFwQ29ubmVjdGlvbiEuZkJlaGF2aW9yLFxuICAgICAgICAgIHRoaXMuZk91dHB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgICBmQ2xvc2VzdElucHV0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgdGhpcy5mU25hcENvbm5lY3Rpb24hLnNob3coKTtcbiAgICAgIHRoaXMuZlNuYXBDb25uZWN0aW9uIS5zZXRMaW5lKGxpbmUucG9pbnQxLCB0aGlzLmZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsIGxpbmUucG9pbnQyLCBmQ2xvc2VzdElucHV0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgICB0aGlzLmZTbmFwQ29ubmVjdGlvbiEucmVkcmF3KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZlNuYXBDb25uZWN0aW9uPy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENsb3NldElucHV0KGRpZmZlcmVuY2U6IElQb2ludCk6IElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5mU25hcENvbm5lY3Rpb24pIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9nZXRDbG9zZXN0SW5wdXRGb3JTbmFwQ29ubmVjdGlvbih0aGlzLl9maW5kQ2xvc2VzdElucHV0KGRpZmZlcmVuY2UpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRDbG9zZXN0SW5wdXQoZGlmZmVyZW5jZTogSVBvaW50KTogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQ8SUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZD4oXG4gICAgICBuZXcgRmluZENsb3Nlc3RJbnB1dFJlcXVlc3QoXG4gICAgICAgIFBvaW50LmZyb21Qb2ludCh0aGlzLnRvQ29ubmVjdG9yUmVjdCkuYWRkKGRpZmZlcmVuY2UpLFxuICAgICAgICB0aGlzLmNhbkJlQ29ubmVjdGVkSW5wdXRzLFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDbG9zZXN0SW5wdXRGb3JTbmFwQ29ubmVjdGlvbihmQ2xvc2VzdElucHV0OiBJQ2xvc2VzdElucHV0IHwgdW5kZWZpbmVkKTogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGZDbG9zZXN0SW5wdXQgJiYgZkNsb3Nlc3RJbnB1dC5kaXN0YW5jZSA8IHRoaXMuZlNuYXBDb25uZWN0aW9uIS5mU25hcFRocmVzaG9sZCA/IGZDbG9zZXN0SW5wdXQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fZHJhd0Nvbm5lY3Rpb24odGhpcy5mSW5wdXRXaXRoUmVjdC5mUmVjdCwgdGhpcy5mSW5wdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUpO1xuICAgIHRoaXMuZlNuYXBDb25uZWN0aW9uPy5oaWRlKCk7XG4gIH1cbn1cbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL3JlYXNzaWduLWNvbm5lY3Rpb24vcmVhc3NpZ24tY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qix5Q0FBeUMsRUFDekMsd0NBQXdDLEVBQUUsMEJBQTBCLEVBQ2xDLGtDQUFrQyxFQUFFLG9DQUFvQyxFQUMzRyxNQUFNLGlCQUFpQixDQUFDO0FBSXpCLE9BQU8sRUFBaUIsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUl4RSxNQUFNLE9BQU8sNkJBQTZCO0lBOEI5QjtJQUNBO0lBQ0E7SUE5Qk8sZ0JBQWdCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUV0RCxJQUFZLGdCQUFnQjtRQUMxQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUEyQyxDQUFDO0lBQzVFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBcUI7SUFDckMsZUFBZSxDQUFxQjtJQUVwQyxxQkFBcUIsR0FBd0IsRUFBRSxDQUFDO0lBRXhELElBQVksUUFBUTtRQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQVksT0FBTztRQUNqQixN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QUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQzlGLENBQUM7SUFDSixDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU87WUFDTCxlQUFlLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN0QyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTO1lBQ3RDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7U0FDakQsQ0FBQztJQUNKLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRHJhZ2dhYmxlSXRlbSB9IGZyb20gJy4uLy4uL2ktZHJhZ2dhYmxlLWl0ZW0nO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ2xvc2VzdElucHV0UmVxdWVzdCxcbiAgR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNBbmRSZWN0c1JlcXVlc3QsXG4gIENhbGN1bGF0ZUNvbm5lY3Rpb25MaW5lQnlCZWhhdmlvclJlcXVlc3QsIEdldENvbm5lY3RvckFuZFJlY3RSZXF1ZXN0LFxuICBJQ29ubmVjdG9yQW5kUmVjdCwgSUNsb3Nlc3RJbnB1dCwgTWFya0FsbENhbkJlQ29ubmVjdGVkSW5wdXRzUmVxdWVzdCwgVW5tYXJrQWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNSZXF1ZXN0XG59IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UsIEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSwgRkNvbm5lY3RvckJhc2UsIEZOb2RlT3V0cHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgSUxpbmUsIElQb2ludCwgUmVjdEV4dGVuc2lvbnMsIFJvdW5kZWRSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IElDcmVhdGVSZWFzc2lnbkNvbm5lY3Rpb25EcmFnRGF0YSB9IGZyb20gJy4uL2ktY3JlYXRlLXJlYXNzaWduLWNvbm5lY3Rpb24tZHJhZy1kYXRhJztcblxuZXhwb3J0IGNsYXNzIFJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyIGltcGxlbWVudHMgSURyYWdnYWJsZUl0ZW08SUNyZWF0ZVJlYXNzaWduQ29ubmVjdGlvbkRyYWdEYXRhPiB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdG9Db25uZWN0b3JSZWN0ID0gbmV3IFJvdW5kZWRSZWN0KCk7XG5cbiAgcHJpdmF0ZSBnZXQgX2ZTbmFwQ29ubmVjdGlvbigpOiBGU25hcENvbm5lY3Rpb25Db21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZTbmFwQ29ubmVjdGlvbiBhcyBGU25hcENvbm5lY3Rpb25Db21wb25lbnQ7XG4gIH1cblxuICBwcml2YXRlIF9mT3V0cHV0V2l0aFJlY3QhOiBJQ29ubmVjdG9yQW5kUmVjdDtcbiAgcHJpdmF0ZSBfZklucHV0V2l0aFJlY3QhOiBJQ29ubmVjdG9yQW5kUmVjdDtcblxuICBwcml2YXRlIF9jYW5CZUNvbm5lY3RlZElucHV0czogSUNvbm5lY3RvckFuZFJlY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2V0IF9mT3V0cHV0KCk6IEZDb25uZWN0b3JCYXNlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZPdXRwdXRzLmZpbmQoKHgpID0+IHguZklkID09PSB0aGlzLl9mQ29ubmVjdGlvbi5mT3V0cHV0SWQpO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gb3V0cHV0IG5vdCBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2ZJbnB1dCgpOiBGQ29ubmVjdG9yQmFzZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mSW5wdXRzLmZpbmQoKHgpID0+IHguZklkID09PSB0aGlzLl9mQ29ubmVjdGlvbi5mSW5wdXRJZCk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29ubmVjdGlvbiBpbnB1dCBub3QgZm91bmQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2ZNZWRpYXRvcjogRk1lZGlhdG9yLFxuICAgIHByaXZhdGUgX2ZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBfZkNvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSxcbiAgKSB7XG4gICAgdGhpcy5fdG9Db25uZWN0b3JSZWN0ID0gUm91bmRlZFJlY3QuZnJvbVJlY3QoXG4gICAgICBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKHRoaXMuX2ZDb25uZWN0aW9uLmxpbmUucG9pbnQyLngsIHRoaXMuX2ZDb25uZWN0aW9uLmxpbmUucG9pbnQyLnkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuX2dldEFuZE1hcmtDYW5CZUNvbm5lY3RlZElucHV0cygpO1xuICAgIHRoaXMuX2luaXRpYWxpemVTbmFwQ29ubmVjdGlvbigpO1xuXG4gICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0ID0gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvckFuZFJlY3Q+KG5ldyBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCh0aGlzLl9mT3V0cHV0KSk7XG4gICAgdGhpcy5fZklucHV0V2l0aFJlY3QgPSB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJQ29ubmVjdG9yQW5kUmVjdD4obmV3IEdldENvbm5lY3RvckFuZFJlY3RSZXF1ZXN0KHRoaXMuX2ZJbnB1dCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QW5kTWFya0NhbkJlQ29ubmVjdGVkSW5wdXRzKCk6IHZvaWQge1xuICAgIHRoaXMuX2NhbkJlQ29ubmVjdGVkSW5wdXRzID0gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvckFuZFJlY3RbXT4oXG4gICAgICBuZXcgR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNBbmRSZWN0c1JlcXVlc3QodGhpcy5fZk91dHB1dCBhcyBGTm9kZU91dHB1dERpcmVjdGl2ZSlcbiAgICApO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgTWFya0FsbENhbkJlQ29ubmVjdGVkSW5wdXRzUmVxdWVzdCh0aGlzLl9jYW5CZUNvbm5lY3RlZElucHV0cy5tYXAoKHgpID0+IHguZkNvbm5lY3RvcikpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVTbmFwQ29ubmVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2ZTbmFwQ29ubmVjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24uZk91dHB1dElkID0gdGhpcy5fZkNvbm5lY3Rpb24uZk91dHB1dElkO1xuICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbi5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmQ2xvc2VzdElucHV0ID0gdGhpcy5fZmluZENsb3Nlc3RJbnB1dChkaWZmZXJlbmNlKTtcblxuICAgIHRoaXMuX2RyYXdDb25uZWN0aW9uKFxuICAgICAgdGhpcy5fdG9Db25uZWN0b3JSZWN0LmFkZFBvaW50KGRpZmZlcmVuY2UpLFxuICAgICAgZkNsb3Nlc3RJbnB1dD8uZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlIHx8IHRoaXMuX2ZJbnB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZVxuICAgICk7XG4gICAgaWYgKHRoaXMuX2ZTbmFwQ29ubmVjdGlvbikge1xuICAgICAgdGhpcy5fZHJhd1NuYXBDb25uZWN0aW9uKHRoaXMuX2dldENsb3Nlc3RJbnB1dEZvclNuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kcmF3Q29ubmVjdGlvbihkaWZmZXJlbmNlOiBJUG9pbnQsIGZTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLl9nZXRMaW5lVG9Qb2ludGVyKGRpZmZlcmVuY2UsIGZTaWRlKTtcbiAgICB0aGlzLl9mQ29ubmVjdGlvbi5zZXRMaW5lKGxpbmUucG9pbnQxLCB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLCBsaW5lLnBvaW50MiwgZlNpZGUpO1xuICAgIHRoaXMuX2ZDb25uZWN0aW9uLnJlZHJhdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TGluZVRvUG9pbnRlcihkaWZmZXJlbmNlOiBJUG9pbnQsIGZTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IElMaW5lIHtcbiAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUxpbmU+KG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0KFxuICAgICAgICB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZlJlY3QsXG4gICAgICAgIFJvdW5kZWRSZWN0LmZyb21SZWN0KFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoZGlmZmVyZW5jZS54LCBkaWZmZXJlbmNlLnkpKSxcbiAgICAgICAgdGhpcy5fZkNvbm5lY3Rpb24uZkJlaGF2aW9yLFxuICAgICAgICB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgICBmU2lkZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3U25hcENvbm5lY3Rpb24oZkNsb3Nlc3RJbnB1dDogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChmQ2xvc2VzdElucHV0KSB7XG4gICAgICBjb25zdCBsaW5lID0gdGhpcy5fZ2V0TGluZVRvQ2xvc2VzdElucHV0KGZDbG9zZXN0SW5wdXQpO1xuICAgICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uIS5zaG93KCk7XG4gICAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24hLnNldExpbmUobGluZS5wb2ludDEsIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsIGxpbmUucG9pbnQyLCBmQ2xvc2VzdElucHV0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24hLnJlZHJhdygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24/LmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRMaW5lVG9DbG9zZXN0SW5wdXQoZkNsb3Nlc3RJbnB1dDogSUNsb3Nlc3RJbnB1dCk6IElMaW5lIHtcbiAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUxpbmU+KG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0KFxuICAgICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0LmZSZWN0LFxuICAgICAgZkNsb3Nlc3RJbnB1dC5mUmVjdCxcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEuZkJlaGF2aW9yLFxuICAgICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgIGZDbG9zZXN0SW5wdXQuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlXG4gICAgKSk7XG4gIH1cblxuICBwcml2YXRlIF9maW5kQ2xvc2VzdElucHV0KGRpZmZlcmVuY2U6IElQb2ludCk6IElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJQ2xvc2VzdElucHV0IHwgdW5kZWZpbmVkPihcbiAgICAgIG5ldyBDYWxjdWxhdGVDbG9zZXN0SW5wdXRSZXF1ZXN0KFxuICAgICAgICB0aGlzLl90b0Nvbm5lY3RvclJlY3QuYWRkUG9pbnQoZGlmZmVyZW5jZSksXG4gICAgICAgIHRoaXMuX2NhbkJlQ29ubmVjdGVkSW5wdXRzLFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDbG9zZXN0SW5wdXRGb3JTbmFwQ29ubmVjdGlvbihmQ2xvc2VzdElucHV0OiBJQ2xvc2VzdElucHV0IHwgdW5kZWZpbmVkKTogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGZDbG9zZXN0SW5wdXQgJiYgZkNsb3Nlc3RJbnB1dC5kaXN0YW5jZSA8IHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEuZlNuYXBUaHJlc2hvbGQgPyBmQ2xvc2VzdElucHV0IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlclVwKCk6IHZvaWQge1xuICAgIHRoaXMuX2RyYXdDb25uZWN0aW9uKHRoaXMuX2ZJbnB1dFdpdGhSZWN0LmZSZWN0LCB0aGlzLl9mSW5wdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUpO1xuICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbj8uaGlkZSgpO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgVW5tYXJrQWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNSZXF1ZXN0KHRoaXMuX2NhbkJlQ29ubmVjdGVkSW5wdXRzLm1hcCgoeCkgPT4geC5mQ29ubmVjdG9yKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldERhdGEoKTogSUNyZWF0ZVJlYXNzaWduQ29ubmVjdGlvbkRyYWdEYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgdG9Db25uZWN0b3JSZWN0OiB0aGlzLl90b0Nvbm5lY3RvclJlY3QsXG4gICAgICBmT3V0cHV0SWQ6IHRoaXMuX2ZDb25uZWN0aW9uLmZPdXRwdXRJZCxcbiAgICAgIGNhbkJlQ29ubmVjdGVkSW5wdXRzOiB0aGlzLl9jYW5CZUNvbm5lY3RlZElucHV0c1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29ubmVjdGlvbigpOiBGQ29ubmVjdGlvbkJhc2Uge1xuICAgIHJldHVybiB0aGlzLl9mQ29ubmVjdGlvbjtcbiAgfVxufVxuIl19
@@ -2,27 +2,18 @@ import { __decorate } from "tslib";
2
2
  import { Injectable } from '@angular/core';
3
3
  import { IsArrayHasParentNodeRequest } from './is-array-has-parent-node.request';
4
4
  import { FExecutionRegister } from '@foblex/mediator';
5
- import { GetParentNodesRequest } from '../../../domain/f-node/get-parent-nodes';
6
5
  import * as i0 from "@angular/core";
7
- import * as i1 from "@foblex/mediator";
8
6
  let IsArrayHasParentNodeExecution = class IsArrayHasParentNodeExecution {
9
- fMediator;
10
- constructor(fMediator) {
11
- this.fMediator = fMediator;
12
- }
13
7
  handle(request) {
14
- return this.isParentNodeInArray(this.getParentNodeIds(request.fNode), request.fNodes);
15
- }
16
- getParentNodeIds(fNode) {
17
- return this.getParentNodes(fNode).map((x) => x.fId);
8
+ return this._isParentNodeInArray(this._getParentNodeIds(request.fParentNodes), request.fDraggedNodes);
18
9
  }
19
- getParentNodes(fNode) {
20
- return this.fMediator.send(new GetParentNodesRequest(fNode));
10
+ _getParentNodeIds(fParentNodes) {
11
+ return fParentNodes.map((x) => x.fId);
21
12
  }
22
- isParentNodeInArray(parentNodeIds, fNodes) {
23
- return fNodes.some((x) => parentNodeIds.includes(x.fId));
13
+ _isParentNodeInArray(parentNodeIds, fDraggedNodes) {
14
+ return fDraggedNodes.some((x) => parentNodeIds.includes(x.fId));
24
15
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IsArrayHasParentNodeExecution, deps: [{ token: i1.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IsArrayHasParentNodeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
17
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IsArrayHasParentNodeExecution });
27
18
  };
28
19
  IsArrayHasParentNodeExecution = __decorate([
@@ -31,5 +22,5 @@ IsArrayHasParentNodeExecution = __decorate([
31
22
  export { IsArrayHasParentNodeExecution };
32
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IsArrayHasParentNodeExecution, decorators: [{
33
24
  type: Injectable
34
- }], ctorParameters: () => [{ type: i1.FMediator }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYXJyYXktaGFzLXBhcmVudC1ub2RlLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZG9tYWluL2lzLWFycmF5LWhhcy1wYXJlbnQtbm9kZS9pcy1hcnJheS1oYXMtcGFyZW50LW5vZGUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBeUIsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7O0FBSXpFLElBQU0sNkJBQTZCLEdBQW5DLE1BQU0sNkJBQTZCO0lBSTlCO0lBRFYsWUFDVSxTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBRTlCLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBb0M7UUFDaEQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWdCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQWdCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQWMsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxhQUF1QixFQUFFLE1BQW1CO1FBQ3RFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO3VHQXRCVSw2QkFBNkI7MkdBQTdCLDZCQUE2Qjs7QUFBN0IsNkJBQTZCO0lBRHpDLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDO0dBQ25DLDZCQUE2QixDQXVCekM7OzJGQXZCWSw2QkFBNkI7a0JBRnpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJc0FycmF5SGFzUGFyZW50Tm9kZVJlcXVlc3QgfSBmcm9tICcuL2lzLWFycmF5LWhhcy1wYXJlbnQtbm9kZS5yZXF1ZXN0JztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgR2V0UGFyZW50Tm9kZXNSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Ytbm9kZS9nZXQtcGFyZW50LW5vZGVzJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihJc0FycmF5SGFzUGFyZW50Tm9kZVJlcXVlc3QpXG5leHBvcnQgY2xhc3MgSXNBcnJheUhhc1BhcmVudE5vZGVFeGVjdXRpb25cbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPElzQXJyYXlIYXNQYXJlbnROb2RlUmVxdWVzdCwgYm9vbGVhbj4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGTWVkaWF0b3JcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IElzQXJyYXlIYXNQYXJlbnROb2RlUmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzUGFyZW50Tm9kZUluQXJyYXkodGhpcy5nZXRQYXJlbnROb2RlSWRzKHJlcXVlc3QuZk5vZGUpLCByZXF1ZXN0LmZOb2Rlcyk7XG4gIH1cblxuICBwcml2YXRlIGdldFBhcmVudE5vZGVJZHMoZk5vZGU6IEZOb2RlQmFzZSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQYXJlbnROb2RlcyhmTm9kZSkubWFwKCh4KSA9PiB4LmZJZCk7XG4gIH1cblxuICBwcml2YXRlIGdldFBhcmVudE5vZGVzKGZOb2RlOiBGTm9kZUJhc2UpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQ8Rk5vZGVCYXNlW10+KG5ldyBHZXRQYXJlbnROb2Rlc1JlcXVlc3QoZk5vZGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNQYXJlbnROb2RlSW5BcnJheShwYXJlbnROb2RlSWRzOiBzdHJpbmdbXSwgZk5vZGVzOiBGTm9kZUJhc2VbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmTm9kZXMuc29tZSgoeCkgPT4gcGFyZW50Tm9kZUlkcy5pbmNsdWRlcyh4LmZJZCkpO1xuICB9XG59XG5cblxuIl19
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYXJyYXktaGFzLXBhcmVudC1ub2RlLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZG9tYWluL2lzLWFycmF5LWhhcy1wYXJlbnQtbm9kZS9pcy1hcnJheS1oYXMtcGFyZW50LW5vZGUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDOztBQUszRCxJQUFNLDZCQUE2QixHQUFuQyxNQUFNLDZCQUE2QjtJQUdqQyxNQUFNLENBQUMsT0FBb0M7UUFDaEQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFlBQXlCO1FBQ2pELE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxhQUF1QixFQUFFLGFBQTBCO1FBQzlFLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO3VHQWJVLDZCQUE2QjsyR0FBN0IsNkJBQTZCOztBQUE3Qiw2QkFBNkI7SUFEekMsa0JBQWtCLENBQUMsMkJBQTJCLENBQUM7R0FDbkMsNkJBQTZCLENBY3pDOzsyRkFkWSw2QkFBNkI7a0JBRnpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJc0FycmF5SGFzUGFyZW50Tm9kZVJlcXVlc3QgfSBmcm9tICcuL2lzLWFycmF5LWhhcy1wYXJlbnQtbm9kZS5yZXF1ZXN0JztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihJc0FycmF5SGFzUGFyZW50Tm9kZVJlcXVlc3QpXG5leHBvcnQgY2xhc3MgSXNBcnJheUhhc1BhcmVudE5vZGVFeGVjdXRpb25cbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPElzQXJyYXlIYXNQYXJlbnROb2RlUmVxdWVzdCwgYm9vbGVhbj4ge1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogSXNBcnJheUhhc1BhcmVudE5vZGVSZXF1ZXN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzUGFyZW50Tm9kZUluQXJyYXkodGhpcy5fZ2V0UGFyZW50Tm9kZUlkcyhyZXF1ZXN0LmZQYXJlbnROb2RlcyksIHJlcXVlc3QuZkRyYWdnZWROb2Rlcyk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRQYXJlbnROb2RlSWRzKGZQYXJlbnROb2RlczogRk5vZGVCYXNlW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGZQYXJlbnROb2Rlcy5tYXAoKHgpID0+IHguZklkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzUGFyZW50Tm9kZUluQXJyYXkocGFyZW50Tm9kZUlkczogc3RyaW5nW10sIGZEcmFnZ2VkTm9kZXM6IEZOb2RlQmFzZVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZEcmFnZ2VkTm9kZXMuc29tZSgoeCkgPT4gcGFyZW50Tm9kZUlkcy5pbmNsdWRlcyh4LmZJZCkpO1xuICB9XG59XG5cblxuIl19
@@ -1,9 +1,9 @@
1
1
  export class IsArrayHasParentNodeRequest {
2
- fNode;
3
- fNodes;
4
- constructor(fNode, fNodes) {
5
- this.fNode = fNode;
6
- this.fNodes = fNodes;
2
+ fParentNodes;
3
+ fDraggedNodes;
4
+ constructor(fParentNodes, fDraggedNodes) {
5
+ this.fParentNodes = fParentNodes;
6
+ this.fDraggedNodes = fDraggedNodes;
7
7
  }
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYXJyYXktaGFzLXBhcmVudC1ub2RlLnJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RvbWFpbi9pcy1hcnJheS1oYXMtcGFyZW50LW5vZGUvaXMtYXJyYXktaGFzLXBhcmVudC1ub2RlLnJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDJCQUEyQjtJQUc3QjtJQUNBO0lBRlQsWUFDUyxLQUFnQixFQUNoQixNQUFtQjtRQURuQixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQWE7SUFFNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcblxuZXhwb3J0IGNsYXNzIElzQXJyYXlIYXNQYXJlbnROb2RlUmVxdWVzdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGZOb2RlOiBGTm9kZUJhc2UsXG4gICAgcHVibGljIGZOb2RlczogRk5vZGVCYXNlW11cbiAgKSB7XG4gIH1cbn1cbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYXJyYXktaGFzLXBhcmVudC1ub2RlLnJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RvbWFpbi9pcy1hcnJheS1oYXMtcGFyZW50LW5vZGUvaXMtYXJyYXktaGFzLXBhcmVudC1ub2RlLnJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDJCQUEyQjtJQUc3QjtJQUNBO0lBRlQsWUFDUyxZQUF5QixFQUN6QixhQUEwQjtRQUQxQixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBYTtJQUVuQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuXG5leHBvcnQgY2xhc3MgSXNBcnJheUhhc1BhcmVudE5vZGVSZXF1ZXN0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZlBhcmVudE5vZGVzOiBGTm9kZUJhc2VbXSxcbiAgICBwdWJsaWMgZkRyYWdnZWROb2RlczogRk5vZGVCYXNlW11cbiAgKSB7XG4gIH1cbn1cbiJdfQ==
@@ -11,27 +11,30 @@ let IsConnectionUnderNodeExecution = class IsConnectionUnderNodeExecution {
11
11
  _fMediator = inject(FMediator);
12
12
  _fComponentsStore = inject(FComponentsStore);
13
13
  handle(request) {
14
- const fNode = request.fNode;
15
- const fOutputConnectors = this._getNodeOutputConnectors(fNode);
16
- const fInputConnectors = this._getNodeInputConnectors(fNode);
17
- const canBeConnectedOutputs = fOutputConnectors.filter((x) => x.canBeConnected);
18
- const canBeConnectedInputs = fInputConnectors.filter((x) => x.canBeConnected);
19
- if (canBeConnectedOutputs.length && canBeConnectedInputs.length) {
20
- const fOutputConnections = this._getOutputConnectionsId(canBeConnectedOutputs);
21
- const fInputConnections = this._getInputConnectionsId(canBeConnectedInputs);
22
- const fConnectionsUnderNode = this._calculateConnectionsUnderNode(fNode).filter((x) => {
23
- return !fOutputConnections.includes(x.fId) && !fInputConnections.includes(x.fId);
24
- });
25
- if (fConnectionsUnderNode.length) {
26
- this._fComponentsStore.fDraggable?.fNodeIntersectedWithConnections.emit(new FNodeIntersectedWithConnections(fNode.fId, fConnectionsUnderNode.map((x) => x.fId)));
27
- }
14
+ const fOutputConnectors = this._getOutputConnectors(request.fNode);
15
+ const fInputConnectors = this._getInputConnectors(request.fNode);
16
+ if (!fOutputConnectors.length || !fInputConnectors.length) {
17
+ return;
28
18
  }
19
+ const fOutputConnections = this._getOutputConnectionsId(fOutputConnectors);
20
+ const fInputConnections = this._getInputConnectionsId(fInputConnectors);
21
+ const fConnectionsUnderNode = this._calculateConnectionsUnderNode(request.fNode).filter((x) => {
22
+ return !fOutputConnections.includes(x.fId) && !fInputConnections.includes(x.fId);
23
+ });
24
+ if (!fConnectionsUnderNode.length) {
25
+ return;
26
+ }
27
+ this._emitNodeIntersectedWithConnections(request.fNode, fConnectionsUnderNode);
29
28
  }
30
- _getNodeOutputConnectors(fNode) {
31
- return this._fComponentsStore.fOutputs.filter((x) => fNode.isContains(x.hostElement));
29
+ _getOutputConnectors(fNode) {
30
+ return this._fComponentsStore.fOutputs.filter((x) => {
31
+ return fNode.isContains(x.hostElement) && x.canBeConnected;
32
+ });
32
33
  }
33
- _getNodeInputConnectors(fNode) {
34
- return this._fComponentsStore.fInputs.filter((x) => fNode.isContains(x.hostElement));
34
+ _getInputConnectors(fNode) {
35
+ return this._fComponentsStore.fInputs.filter((x) => {
36
+ return fNode.isContains(x.hostElement) && x.canBeConnected;
37
+ });
35
38
  }
36
39
  _getOutputConnectionsId(connectors) {
37
40
  const connectorsId = this._getConnectorsId(connectors);
@@ -55,6 +58,9 @@ let IsConnectionUnderNodeExecution = class IsConnectionUnderNodeExecution {
55
58
  _isConnectionHasIntersectionsWithNode(fConnection, fNodeRect) {
56
59
  return GetIntersections.getRoundedRectIntersectionsWithSVGPath(fConnection.fPath.hostElement, fNodeRect).length > 0;
57
60
  }
61
+ _emitNodeIntersectedWithConnections(fNode, fConnections) {
62
+ this._fComponentsStore.fDraggable?.fNodeIntersectedWithConnections.emit(new FNodeIntersectedWithConnections(fNode.fId, fConnections.map((x) => x.fId)));
63
+ }
58
64
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IsConnectionUnderNodeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
59
65
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IsConnectionUnderNodeExecution });
60
66
  };
@@ -65,4 +71,4 @@ export { IsConnectionUnderNodeExecution };
65
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IsConnectionUnderNodeExecution, decorators: [{
66
72
  type: Injectable
67
73
  }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29ubmVjdGlvbi11bmRlci1ub2RlLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZG9tYWluL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZS9pcy1jb25uZWN0aW9uLXVuZGVyLW5vZGUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sWUFBWSxDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJOUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSTNELElBQU0sOEJBQThCLEdBQXBDLE1BQU0sOEJBQThCO0lBRWpDLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0IsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFOUMsTUFBTSxDQUFDLE9BQXFDO1FBQ2pELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFFNUIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0QsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0QsTUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FB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Q0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyw4QkFBOEIsQ0FBQyxLQUFnQjtRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBZSxJQUFJLCtCQUErQixDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNuSCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUNBQXFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDckgsQ0FBQztJQUVPLHFDQUFxQyxDQUFDLFdBQTRCLEVBQUUsU0FBdUI7UUFDakcsT0FBTyxnQkFBZ0IsQ0FBQyxzQ0FBc0MsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3RILENBQUM7dUdBbkVVLDhCQUE4QjsyR0FBOUIsOEJBQThCOztBQUE5Qiw4QkFBOEI7SUFEMUMsa0JBQWtCLENBQUMsNEJBQTRCLENBQUM7R0FDcEMsOEJBQThCLENBb0UxQzs7MkZBcEVZLDhCQUE4QjtrQkFGMUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldEludGVyc2VjdGlvbnMsIElSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgSXNDb25uZWN0aW9uVW5kZXJOb2RlUmVxdWVzdCB9IGZyb20gJy4vaXMtY29ubmVjdGlvbi11bmRlci1ub2RlLnJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zIH0gZnJvbSAnLi4vLi4vaW5kZXgnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihJc0Nvbm5lY3Rpb25VbmRlck5vZGVSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIElzQ29ubmVjdGlvblVuZGVyTm9kZUV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248SXNDb25uZWN0aW9uVW5kZXJOb2RlUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIHByaXZhdGUgX2ZDb21wb25lbnRzU3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBJc0Nvbm5lY3Rpb25VbmRlck5vZGVSZXF1ZXN0KTogdm9pZCB7XG4gICAgY29uc3QgZk5vZGUgPSByZXF1ZXN0LmZOb2RlO1xuXG4gICAgY29uc3QgZk91dHB1dENvbm5lY3RvcnMgPSB0aGlzLl9nZXROb2RlT3V0cHV0Q29ubmVjdG9ycyhmTm9kZSk7XG4gICAgY29uc3QgZklucHV0Q29ubmVjdG9ycyA9IHRoaXMuX2dldE5vZGVJbnB1dENvbm5lY3RvcnMoZk5vZGUpO1xuXG4gICAgY29uc3QgY2FuQmVDb25uZWN0ZWRPdXRwdXRzID0gZk91dHB1dENvbm5lY3RvcnMuZmlsdGVyKCh4KSA9PiB4LmNhbkJlQ29ubmVjdGVkKTtcbiAgICBjb25zdCBjYW5CZUNvbm5lY3RlZElucHV0cyA9IGZJbnB1dENvbm5lY3RvcnMuZmlsdGVyKCh4KSA9PiB4LmNhbkJlQ29ubmVjdGVkKTtcblxuICAgIGlmIChjYW5CZUNvbm5lY3RlZE91dHB1dHMubGVuZ3RoICYmIGNhbkJlQ29ubmVjdGVkSW5wdXRzLmxlbmd0aCkge1xuXG4gICAgICBjb25zdCBmT3V0cHV0Q29ubmVjdGlvbnMgPSB0aGlzLl9nZXRPdXRwdXRDb25uZWN0aW9uc0lkKGNhbkJlQ29ubmVjdGVkT3V0cHV0cyk7XG4gICAgICBjb25zdCBmSW5wdXRDb25uZWN0aW9ucyA9IHRoaXMuX2dldElucHV0Q29ubmVjdGlvbnNJZChjYW5CZUNvbm5lY3RlZElucHV0cyk7XG4gICAgICBjb25zdCBmQ29ubmVjdGlvbnNVbmRlck5vZGUgPSB0aGlzLl9jYWxjdWxhdGVDb25uZWN0aW9uc1VuZGVyTm9kZShmTm9kZSkuZmlsdGVyKCh4KSA9PiB7XG4gICAgICAgIHJldHVybiAhZk91dHB1dENvbm5lY3Rpb25zLmluY2x1ZGVzKHguZklkKSAmJiAhZklucHV0Q29ubmVjdGlvbnMuaW5jbHVkZXMoeC5mSWQpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChmQ29ubmVjdGlvbnNVbmRlck5vZGUubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkRyYWdnYWJsZT8uZk5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucy5lbWl0KFxuICAgICAgICAgIG5ldyBGTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zKFxuICAgICAgICAgICAgZk5vZGUuZklkLFxuICAgICAgICAgICAgZkNvbm5lY3Rpb25zVW5kZXJOb2RlLm1hcCgoeCkgPT4geC5mSWQpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vZGVPdXRwdXRDb25uZWN0b3JzKGZOb2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mT3V0cHV0cy5maWx0ZXIoKHgpID0+IGZOb2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Tm9kZUlucHV0Q29ubmVjdG9ycyhmTm9kZTogRk5vZGVCYXNlKTogRkNvbm5lY3RvckJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZklucHV0cy5maWx0ZXIoKHgpID0+IGZOb2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0T3V0cHV0Q29ubmVjdGlvbnNJZChjb25uZWN0b3JzOiBGQ29ubmVjdG9yQmFzZVtdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGNvbm5lY3RvcnNJZCA9IHRoaXMuX2dldENvbm5lY3RvcnNJZChjb25uZWN0b3JzKTtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mQ29ubmVjdGlvbnNcbiAgICAgIC5maWx0ZXIoKHgpID0+IGNvbm5lY3RvcnNJZC5pbmNsdWRlcyh4LmZPdXRwdXRJZCkpXG4gICAgICAubWFwKCh4KSA9PiB4LmZJZCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnB1dENvbm5lY3Rpb25zSWQoY29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjb25uZWN0b3JzSWQgPSB0aGlzLl9nZXRDb25uZWN0b3JzSWQoY29ubmVjdG9ycyk7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNvbm5lY3Rpb25zXG4gICAgICAuZmlsdGVyKCh4KSA9PiBjb25uZWN0b3JzSWQuaW5jbHVkZXMoeC5mSW5wdXRJZCkpXG4gICAgICAubWFwKCh4KSA9PiB4LmZJZCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb25uZWN0b3JzSWQoY29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gY29ubmVjdG9ycy5tYXAoKHgpID0+IHguZklkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZUNvbm5lY3Rpb25zVW5kZXJOb2RlKGZOb2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgY29uc3QgZk5vZGVSZWN0ID0gdGhpcy5fZk1lZGlhdG9yLnNlbmQ8SVJvdW5kZWRSZWN0PihuZXcgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdChmTm9kZS5ob3N0RWxlbWVudCwgdHJ1ZSkpO1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZDb25uZWN0aW9ucy5maWx0ZXIoKHgpID0+IHRoaXMuX2lzQ29ubmVjdGlvbkhhc0ludGVyc2VjdGlvbnNXaXRoTm9kZSh4LCBmTm9kZVJlY3QpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQ29ubmVjdGlvbkhhc0ludGVyc2VjdGlvbnNXaXRoTm9kZShmQ29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLCBmTm9kZVJlY3Q6IElSb3VuZGVkUmVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBHZXRJbnRlcnNlY3Rpb25zLmdldFJvdW5kZWRSZWN0SW50ZXJzZWN0aW9uc1dpdGhTVkdQYXRoKGZDb25uZWN0aW9uLmZQYXRoLmhvc3RFbGVtZW50LCBmTm9kZVJlY3QpLmxlbmd0aCA+IDA7XG4gIH1cbn1cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29ubmVjdGlvbi11bmRlci1ub2RlLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZG9tYWluL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZS9pcy1jb25uZWN0aW9uLXVuZGVyLW5vZGUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sWUFBWSxDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJOUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSTNELElBQU0sOEJBQThCLEdBQXBDLE1BQU0sOEJBQThCO0lBRWpDLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFOUMsTUFBTSxDQUFDLE9BQXFDO1FBRWpELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFD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QUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRU8scUNBQXFDLENBQUMsV0FBNEIsRUFBRSxTQUF1QjtRQUNqRyxPQUFPLGdCQUFnQixDQUFDLHNDQUFzQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEgsQ0FBQztJQUVPLG1DQUFtQyxDQUFDLEtBQWdCLEVBQUUsWUFBK0I7UUFDM0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSwrQkFBK0IsQ0FBQyxJQUFJLENBQ3JFLElBQUksK0JBQStCLENBQ2pDLEtBQUssQ0FBQyxHQUFHLEVBQ1QsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUMvQixDQUNGLENBQUM7SUFDSixDQUFDO3VHQTFFVSw4QkFBOEI7MkdBQTlCLDhCQUE4Qjs7QUFBOUIsOEJBQThCO0lBRDFDLGtCQUFrQixDQUFDLDRCQUE0QixDQUFDO0dBQ3BDLDhCQUE4QixDQTJFMUM7OzJGQTNFWSw4QkFBOEI7a0JBRjFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZXRJbnRlcnNlY3Rpb25zLCBJUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IElzQ29ubmVjdGlvblVuZGVyTm9kZVJlcXVlc3QgfSBmcm9tICcuL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZS5yZXF1ZXN0JztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRk5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucyB9IGZyb20gJy4uLy4uL2luZGV4JztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoSXNDb25uZWN0aW9uVW5kZXJOb2RlUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBJc0Nvbm5lY3Rpb25VbmRlck5vZGVFeGVjdXRpb24gaW1wbGVtZW50cyBJRXhlY3V0aW9uPElzQ29ubmVjdGlvblVuZGVyTm9kZVJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSBfZkNvbXBvbmVudHNTdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IElzQ29ubmVjdGlvblVuZGVyTm9kZVJlcXVlc3QpOiB2b2lkIHtcblxuICAgIGNvbnN0IGZPdXRwdXRDb25uZWN0b3JzID0gdGhpcy5fZ2V0T3V0cHV0Q29ubmVjdG9ycyhyZXF1ZXN0LmZOb2RlKTtcbiAgICBjb25zdCBmSW5wdXRDb25uZWN0b3JzID0gdGhpcy5fZ2V0SW5wdXRDb25uZWN0b3JzKHJlcXVlc3QuZk5vZGUpO1xuXG4gICAgaWYgKCFmT3V0cHV0Q29ubmVjdG9ycy5sZW5ndGggfHwgIWZJbnB1dENvbm5lY3RvcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZk91dHB1dENvbm5lY3Rpb25zID0gdGhpcy5fZ2V0T3V0cHV0Q29ubmVjdGlvbnNJZChmT3V0cHV0Q29ubmVjdG9ycyk7XG4gICAgY29uc3QgZklucHV0Q29ubmVjdGlvbnMgPSB0aGlzLl9nZXRJbnB1dENvbm5lY3Rpb25zSWQoZklucHV0Q29ubmVjdG9ycyk7XG5cbiAgICBjb25zdCBmQ29ubmVjdGlvbnNVbmRlck5vZGUgPSB0aGlzLl9jYWxjdWxhdGVDb25uZWN0aW9uc1VuZGVyTm9kZShyZXF1ZXN0LmZOb2RlKS5maWx0ZXIoKHgpID0+IHtcbiAgICAgIHJldHVybiAhZk91dHB1dENvbm5lY3Rpb25zLmluY2x1ZGVzKHguZklkKSAmJiAhZklucHV0Q29ubmVjdGlvbnMuaW5jbHVkZXMoeC5mSWQpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFmQ29ubmVjdGlvbnNVbmRlck5vZGUubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fZW1pdE5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucyhyZXF1ZXN0LmZOb2RlLCBmQ29ubmVjdGlvbnNVbmRlck5vZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0T3V0cHV0Q29ubmVjdG9ycyhmTm9kZTogRk5vZGVCYXNlKTogRkNvbm5lY3RvckJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZk91dHB1dHMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gZk5vZGUuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSAmJiB4LmNhbkJlQ29ubmVjdGVkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SW5wdXRDb25uZWN0b3JzKGZOb2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mSW5wdXRzLmZpbHRlcigoeCkgPT4ge1xuICAgICAgcmV0dXJuIGZOb2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkgJiYgeC5jYW5CZUNvbm5lY3RlZDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE91dHB1dENvbm5lY3Rpb25zSWQoY29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjb25uZWN0b3JzSWQgPSB0aGlzLl9nZXRDb25uZWN0b3JzSWQoY29ubmVjdG9ycyk7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNvbm5lY3Rpb25zXG4gICAgICAuZmlsdGVyKCh4KSA9PiBjb25uZWN0b3JzSWQuaW5jbHVkZXMoeC5mT3V0cHV0SWQpKVxuICAgICAgLm1hcCgoeCkgPT4geC5mSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SW5wdXRDb25uZWN0aW9uc0lkKGNvbm5lY3RvcnM6IEZDb25uZWN0b3JCYXNlW10pOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY29ubmVjdG9yc0lkID0gdGhpcy5fZ2V0Q29ubmVjdG9yc0lkKGNvbm5lY3RvcnMpO1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZDb25uZWN0aW9uc1xuICAgICAgLmZpbHRlcigoeCkgPT4gY29ubmVjdG9yc0lkLmluY2x1ZGVzKHguZklucHV0SWQpKVxuICAgICAgLm1hcCgoeCkgPT4geC5mSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29ubmVjdG9yc0lkKGNvbm5lY3RvcnM6IEZDb25uZWN0b3JCYXNlW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGNvbm5lY3RvcnMubWFwKCh4KSA9PiB4LmZJZCk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVDb25uZWN0aW9uc1VuZGVyTm9kZShmTm9kZTogRk5vZGVCYXNlKTogRkNvbm5lY3Rpb25CYXNlW10ge1xuICAgIGNvbnN0IGZOb2RlUmVjdCA9IHRoaXMuX2ZNZWRpYXRvci5zZW5kPElSb3VuZGVkUmVjdD4obmV3IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QoZk5vZGUuaG9zdEVsZW1lbnQsIHRydWUpKTtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mQ29ubmVjdGlvbnMuZmlsdGVyKCh4KSA9PiB0aGlzLl9pc0Nvbm5lY3Rpb25IYXNJbnRlcnNlY3Rpb25zV2l0aE5vZGUoeCwgZk5vZGVSZWN0KSk7XG4gIH1cblxuICBwcml2YXRlIF9pc0Nvbm5lY3Rpb25IYXNJbnRlcnNlY3Rpb25zV2l0aE5vZGUoZkNvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSwgZk5vZGVSZWN0OiBJUm91bmRlZFJlY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gR2V0SW50ZXJzZWN0aW9ucy5nZXRSb3VuZGVkUmVjdEludGVyc2VjdGlvbnNXaXRoU1ZHUGF0aChmQ29ubmVjdGlvbi5mUGF0aC5ob3N0RWxlbWVudCwgZk5vZGVSZWN0KS5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdE5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucyhmTm9kZTogRk5vZGVCYXNlLCBmQ29ubmVjdGlvbnM6IEZDb25uZWN0aW9uQmFzZVtdKTogdm9pZCB7XG4gICAgdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlPy5mTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zLmVtaXQoXG4gICAgICBuZXcgRk5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucyhcbiAgICAgICAgZk5vZGUuZklkLFxuICAgICAgICBmQ29ubmVjdGlvbnMubWFwKCh4KSA9PiB4LmZJZClcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -7,7 +7,6 @@ export class FDraggableDataContext {
7
7
  onPointerDownScale = 1;
8
8
  onPointerDownPosition = new Point(0, 0);
9
9
  draggableItems = [];
10
- fLineAlignment;
11
10
  reset() {
12
11
  this.draggableItems = [];
13
12
  this.onPointerDownScale = 1;
@@ -16,10 +15,13 @@ export class FDraggableDataContext {
16
15
  markSelectionAsChanged() {
17
16
  this.isSelectedChanged = true;
18
17
  }
18
+ isEmpty() {
19
+ return !this.draggableItems.length;
20
+ }
19
21
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDraggableDataContext, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
22
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDraggableDataContext });
21
23
  }
22
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDraggableDataContext, decorators: [{
23
25
  type: Injectable
24
26
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQU1uQyxNQUFNLE9BQU8scUJBQXFCO0lBRXpCLGFBQWEsR0FBMEIsRUFBRSxDQUFDO0lBRTFDLGlCQUFpQixHQUFZLEtBQUssQ0FBQztJQUVuQyxrQkFBa0IsR0FBVyxDQUFDLENBQUM7SUFFL0IscUJBQXFCLEdBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRS9DLGNBQWMsR0FBcUIsRUFBRSxDQUFDO0lBRXRDLGNBQWMsQ0FBaUM7SUFFL0MsS0FBSztRQUNWLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sc0JBQXNCO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQzt1R0F0QlUscUJBQXFCOzJHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuL2ktZHJhZ2dhYmxlLWl0ZW0nO1xuaW1wb3J0IHsgRkxpbmVBbGlnbm1lbnRCYXNlIH0gZnJvbSAnLi4vZi1saW5lLWFsaWdubWVudCc7XG5pbXBvcnQgeyBJQ2FuQ2hhbmdlU2VsZWN0aW9uIH0gZnJvbSAnLi4vbWl4aW5zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZEcmFnZ2FibGVEYXRhQ29udGV4dCB7XG5cbiAgcHVibGljIHNlbGVjdGVkSXRlbXM6IElDYW5DaGFuZ2VTZWxlY3Rpb25bXSA9IFtdO1xuXG4gIHB1YmxpYyBpc1NlbGVjdGVkQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBvblBvaW50ZXJEb3duU2NhbGU6IG51bWJlciA9IDE7XG5cbiAgcHVibGljIG9uUG9pbnRlckRvd25Qb3NpdGlvbjogUG9pbnQgPSBuZXcgUG9pbnQoMCwgMCk7XG5cbiAgcHVibGljIGRyYWdnYWJsZUl0ZW1zOiBJRHJhZ2dhYmxlSXRlbVtdID0gW107XG5cbiAgcHVibGljIGZMaW5lQWxpZ25tZW50OiBGTGluZUFsaWdubWVudEJhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuZHJhZ2dhYmxlSXRlbXMgPSBbXTtcbiAgICB0aGlzLm9uUG9pbnRlckRvd25TY2FsZSA9IDE7XG4gICAgdGhpcy5vblBvaW50ZXJEb3duUG9zaXRpb24gPSBuZXcgUG9pbnQoMCwgMCk7XG4gIH1cblxuICBwdWJsaWMgbWFya1NlbGVjdGlvbkFzQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzU2VsZWN0ZWRDaGFuZ2VkID0gdHJ1ZTtcbiAgfVxufVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUtuQyxNQUFNLE9BQU8scUJBQXFCO0lBRXpCLGFBQWEsR0FBMEIsRUFBRSxDQUFDO0lBRTFDLGlCQUFpQixHQUFZLEtBQUssQ0FBQztJQUVuQyxrQkFBa0IsR0FBVyxDQUFDLENBQUM7SUFFL0IscUJBQXFCLEdBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRS9DLGNBQWMsR0FBcUIsRUFBRSxDQUFDO0lBRXRDLEtBQUs7UUFDVixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ3JDLENBQUM7dUdBeEJVLHFCQUFxQjsyR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IElEcmFnZ2FibGVJdGVtIH0gZnJvbSAnLi9pLWRyYWdnYWJsZS1pdGVtJztcbmltcG9ydCB7IElDYW5DaGFuZ2VTZWxlY3Rpb24gfSBmcm9tICcuLi9taXhpbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRkRyYWdnYWJsZURhdGFDb250ZXh0IHtcblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogSUNhbkNoYW5nZVNlbGVjdGlvbltdID0gW107XG5cbiAgcHVibGljIGlzU2VsZWN0ZWRDaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIG9uUG9pbnRlckRvd25TY2FsZTogbnVtYmVyID0gMTtcblxuICBwdWJsaWMgb25Qb2ludGVyRG93blBvc2l0aW9uOiBQb2ludCA9IG5ldyBQb2ludCgwLCAwKTtcblxuICBwdWJsaWMgZHJhZ2dhYmxlSXRlbXM6IElEcmFnZ2FibGVJdGVtW10gPSBbXTtcblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5kcmFnZ2FibGVJdGVtcyA9IFtdO1xuICAgIHRoaXMub25Qb2ludGVyRG93blNjYWxlID0gMTtcbiAgICB0aGlzLm9uUG9pbnRlckRvd25Qb3NpdGlvbiA9IG5ldyBQb2ludCgwLCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBtYXJrU2VsZWN0aW9uQXNDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaXNTZWxlY3RlZENoYW5nZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmRyYWdnYWJsZUl0ZW1zLmxlbmd0aDtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1kcmFnZ2FibGUtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvaS1kcmFnZ2FibGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURyYWdnYWJsZUl0ZW0ge1xuXG4gIHByZXBhcmVEcmFnU2VxdWVuY2U/KCk6IHZvaWQ7XG5cbiAgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkO1xuXG4gIG9uUG9pbnRlclVwPygpOiB2b2lkO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1kcmFnZ2FibGUtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvaS1kcmFnZ2FibGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURyYWdnYWJsZUl0ZW08VERhdGEgPSBhbnk+IHtcblxuICBwcmVwYXJlRHJhZ1NlcXVlbmNlPygpOiB2b2lkO1xuXG4gIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZDtcblxuICBvblBvaW50ZXJVcD8oKTogdm9pZDtcblxuICBnZXREYXRhPygpOiBURGF0YTtcbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Directive } from '@angular/core';
2
- import { GetConnectorWithRectRequest } from '../../domain';
2
+ import { GetConnectorAndRectRequest } from '../../domain';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@foblex/mediator";
5
5
  import * as i2 from "../../f-storage";
@@ -16,8 +16,8 @@ export class ConnectionBaseDragHandler {
16
16
  this.connection = connection;
17
17
  }
18
18
  prepareDragSequence() {
19
- this.fOutputWithRect = this.fMediator.send(new GetConnectorWithRectRequest(this.getOutput()));
20
- this.fInputWithRect = this.fMediator.send(new GetConnectorWithRectRequest(this.getInput()));
19
+ this.fOutputWithRect = this.fMediator.send(new GetConnectorAndRectRequest(this.getOutput()));
20
+ this.fInputWithRect = this.fMediator.send(new GetConnectorAndRectRequest(this.getInput()));
21
21
  }
22
22
  getOutput() {
23
23
  const result = this.fComponentsStore.fOutputs.find((x) => x.fId === this.connection.fOutputId);
@@ -52,4 +52,4 @@ export class ConnectionBaseDragHandler {
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ConnectionBaseDragHandler, decorators: [{
53
53
  type: Directive
54
54
  }], ctorParameters: () => [{ type: i1.FMediator }, { type: i2.FComponentsStore }, { type: i3.FConnectionBase }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1iYXNlLWRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvbm9kZS9jb25uZWN0aW9uLWJhc2UtZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJMUMsT0FBTyxFQUFFLDJCQUEyQixFQUFzQixNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFHL0UsTUFBTSxPQUFnQix5QkFBeUI7SUFNakM7SUFDQTtJQUNIO0lBTkMsZUFBZSxDQUFzQjtJQUNyQyxjQUFjLENBQXNCO0lBRTlDLFlBQ1ksU0FBb0IsRUFDcEIsZ0JBQWtDLEVBQ3JDLFVBQTJCO1FBRnhCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFpQjtJQUVwQyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQXFCLElBQUksMkJBQTJCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFxQixJQUFJLDJCQUEyQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEgsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBRSxDQUFDO1FBQ2hHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG1CQUFvQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM1RyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLFFBQVE7UUFDZCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBRSxDQUFDO1FBQzlGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFtQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMxRyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLHVCQUF1QixDQUFDLE9BQWU7UUFDN0MsT0FBTyx5REFBMEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFVLGVBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUyxLQUFNLE9BQVEsZ0ZBQWdGLENBQUM7SUFDck8sQ0FBQztJQUlTLHVCQUF1QixDQUFDLFVBQWtCLEVBQUUsWUFBbUM7UUFDdkYsT0FBTztZQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzNFLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVFLENBQUE7SUFDSCxDQUFDO0lBRVMsZ0JBQWdCLENBQUMsSUFBVztRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNySixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7dUdBakRtQix5QkFBeUI7MkZBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEOUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEcmFnZ2FibGVJdGVtIH0gZnJvbSAnLi4vaS1kcmFnZ2FibGUtaXRlbSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElOb2RlTW92ZVJlc3RyaWN0aW9ucyB9IGZyb20gJy4vY3JlYXRlLW1vdmUtbm9kZXMtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvbic7XG5pbXBvcnQgeyBJTGluZSwgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEdldENvbm5lY3RvcldpdGhSZWN0UmVxdWVzdCwgSUNvbm5lY3RvcldpdGhSZWN0IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29ubmVjdGlvbkJhc2VEcmFnSGFuZGxlciBpbXBsZW1lbnRzIElEcmFnZ2FibGVJdGVtIHtcblxuICBwcm90ZWN0ZWQgZk91dHB1dFdpdGhSZWN0ITogSUNvbm5lY3RvcldpdGhSZWN0O1xuICBwcm90ZWN0ZWQgZklucHV0V2l0aFJlY3QhOiBJQ29ubmVjdG9yV2l0aFJlY3Q7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmTWVkaWF0b3I6IEZNZWRpYXRvcixcbiAgICBwcm90ZWN0ZWQgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwdWJsaWMgY29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuZk91dHB1dFdpdGhSZWN0ID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJQ29ubmVjdG9yV2l0aFJlY3Q+KG5ldyBHZXRDb25uZWN0b3JXaXRoUmVjdFJlcXVlc3QodGhpcy5nZXRPdXRwdXQoKSkpO1xuICAgIHRoaXMuZklucHV0V2l0aFJlY3QgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElDb25uZWN0b3JXaXRoUmVjdD4obmV3IEdldENvbm5lY3RvcldpdGhSZWN0UmVxdWVzdCh0aGlzLmdldElucHV0KCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3V0cHV0KCk6IEZDb25uZWN0b3JCYXNlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk91dHB1dHMuZmluZCgoeCkgPT4geC5mSWQgPT09IHRoaXMuY29ubmVjdGlvbi5mT3V0cHV0SWQpITtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuY29ubmVjdG9yTm90Rm91bmRQcmVmaXgoYGZPdXRwdXQgd2l0aCBpZCAkeyB0aGlzLmNvbm5lY3Rpb24uZk91dHB1dElkIH0gbm90IGZvdW5kYCkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnB1dCgpOiBGQ29ubmVjdG9yQmFzZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZJbnB1dHMuZmluZCgoeCkgPT4geC5mSWQgPT09IHRoaXMuY29ubmVjdGlvbi5mSW5wdXRJZCkhO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5jb25uZWN0b3JOb3RGb3VuZFByZWZpeChgZklucHV0IHdpdGggaWQgJHsgdGhpcy5jb25uZWN0aW9uLmZJbnB1dElkIH0gbm90IGZvdW5kYCkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBjb25uZWN0b3JOb3RGb3VuZFByZWZpeChtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgQ29ubmVjdGlvbkRyYWdIYW5kbGVyIEVycm9yOiBDb25uZWN0aW9uIEZyb20gKGZPdXRwdXQpJHsgdGhpcy5jb25uZWN0aW9uLmZPdXRwdXRJZCB9IFRvIChmSW5wdXQpJHsgdGhpcy5jb25uZWN0aW9uLmZJbnB1dElkIH0uICR7IG1lc3NhZ2UgfS4gUGxlYXNlIGVuc3VyZSB0aGF0IGFsbCBmLWNvbm5lY3Rpb25zIGFyZSBhc3NvY2lhdGVkIHdpdGggZXhpc3RpbmcgY29ubmVjdG9yc2A7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3Qgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBnZXRSZXN0cmljdGVkRGlmZmVyZW5jZShkaWZmZXJlbmNlOiBJUG9pbnQsIHJlc3RyaWN0aW9uczogSU5vZGVNb3ZlUmVzdHJpY3Rpb25zKTogSVBvaW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgeDogTWF0aC5taW4oTWF0aC5tYXgoZGlmZmVyZW5jZS54LCByZXN0cmljdGlvbnMubWluLngpLCByZXN0cmljdGlvbnMubWF4LngpLFxuICAgICAgeTogTWF0aC5taW4oTWF0aC5tYXgoZGlmZmVyZW5jZS55LCByZXN0cmljdGlvbnMubWluLnkpLCByZXN0cmljdGlvbnMubWF4LnkpXG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlZHJhd0Nvbm5lY3Rpb24obGluZTogSUxpbmUpOiB2b2lkIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uc2V0TGluZShsaW5lLnBvaW50MSwgdGhpcy5mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLCBsaW5lLnBvaW50MiwgdGhpcy5mSW5wdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUpO1xuICAgIHRoaXMuY29ubmVjdGlvbi5yZWRyYXcoKTtcbiAgfVxufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1iYXNlLWRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvbm9kZS9jb25uZWN0aW9uLWJhc2UtZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsT0FBTyxFQUFFLDBCQUEwQixFQUFxQixNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFHN0UsTUFBTSxPQUFnQix5QkFBeUI7SUFNakM7SUFDQTtJQUNIO0lBTkMsZUFBZSxDQUFxQjtJQUNwQyxjQUFjLENBQXFCO0lBRTdDLFlBQ1ksU0FBb0IsRUFDcEIsZ0JBQWtDLEVBQ3JDLFVBQTJCO1FBRnhCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFpQjtJQUVwQyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQW9CLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFvQixJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBRSxDQUFDO1FBQ2hHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG1CQUFvQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM1RyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLFFBQVE7UUFDZCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBRSxDQUFDO1FBQzlGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFtQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMxRyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLHVCQUF1QixDQUFDLE9BQWU7UUFDN0MsT0FBTyx5REFBMEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFVLGVBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUyxLQUFNLE9BQVEsZ0ZBQWdGLENBQUM7SUFDck8sQ0FBQztJQUlTLHVCQUF1QixDQUFDLFVBQWtCLEVBQUUsWUFBMEI7UUFDOUUsT0FBTztZQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzNFLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVFLENBQUE7SUFDSCxDQUFDO0lBRVMsZ0JBQWdCLENBQUMsSUFBVztRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNySixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7dUdBakRtQix5QkFBeUI7MkZBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEOUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEcmFnZ2FibGVJdGVtIH0gZnJvbSAnLi4vaS1kcmFnZ2FibGUtaXRlbSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaW5lLCBJTWluTWF4UG9pbnQsIElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCwgSUNvbm5lY3RvckFuZFJlY3QgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb25uZWN0aW9uQmFzZURyYWdIYW5kbGVyIGltcGxlbWVudHMgSURyYWdnYWJsZUl0ZW0ge1xuXG4gIHByb3RlY3RlZCBmT3V0cHV0V2l0aFJlY3QhOiBJQ29ubmVjdG9yQW5kUmVjdDtcbiAgcHJvdGVjdGVkIGZJbnB1dFdpdGhSZWN0ITogSUNvbm5lY3RvckFuZFJlY3Q7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmTWVkaWF0b3I6IEZNZWRpYXRvcixcbiAgICBwcm90ZWN0ZWQgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwdWJsaWMgY29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuZk91dHB1dFdpdGhSZWN0ID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJQ29ubmVjdG9yQW5kUmVjdD4obmV3IEdldENvbm5lY3RvckFuZFJlY3RSZXF1ZXN0KHRoaXMuZ2V0T3V0cHV0KCkpKTtcbiAgICB0aGlzLmZJbnB1dFdpdGhSZWN0ID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJQ29ubmVjdG9yQW5kUmVjdD4obmV3IEdldENvbm5lY3RvckFuZFJlY3RSZXF1ZXN0KHRoaXMuZ2V0SW5wdXQoKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdXRwdXQoKTogRkNvbm5lY3RvckJhc2Uge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mT3V0cHV0cy5maW5kKCh4KSA9PiB4LmZJZCA9PT0gdGhpcy5jb25uZWN0aW9uLmZPdXRwdXRJZCkhO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5jb25uZWN0b3JOb3RGb3VuZFByZWZpeChgZk91dHB1dCB3aXRoIGlkICR7IHRoaXMuY29ubmVjdGlvbi5mT3V0cHV0SWQgfSBub3QgZm91bmRgKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldElucHV0KCk6IEZDb25uZWN0b3JCYXNlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZDb21wb25lbnRzU3RvcmUuZklucHV0cy5maW5kKCh4KSA9PiB4LmZJZCA9PT0gdGhpcy5jb25uZWN0aW9uLmZJbnB1dElkKSE7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcih0aGlzLmNvbm5lY3Rvck5vdEZvdW5kUHJlZml4KGBmSW5wdXQgd2l0aCBpZCAkeyB0aGlzLmNvbm5lY3Rpb24uZklucHV0SWQgfSBub3QgZm91bmRgKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGNvbm5lY3Rvck5vdEZvdW5kUHJlZml4KG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBDb25uZWN0aW9uRHJhZ0hhbmRsZXIgRXJyb3I6IENvbm5lY3Rpb24gRnJvbSAoZk91dHB1dCkkeyB0aGlzLmNvbm5lY3Rpb24uZk91dHB1dElkIH0gVG8gKGZJbnB1dCkkeyB0aGlzLmNvbm5lY3Rpb24uZklucHV0SWQgfS4gJHsgbWVzc2FnZSB9LiBQbGVhc2UgZW5zdXJlIHRoYXQgYWxsIGYtY29ubmVjdGlvbnMgYXJlIGFzc29jaWF0ZWQgd2l0aCBleGlzdGluZyBjb25uZWN0b3JzYDtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBvblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGdldFJlc3RyaWN0ZWREaWZmZXJlbmNlKGRpZmZlcmVuY2U6IElQb2ludCwgcmVzdHJpY3Rpb25zOiBJTWluTWF4UG9pbnQpOiBJUG9pbnQge1xuICAgIHJldHVybiB7XG4gICAgICB4OiBNYXRoLm1pbihNYXRoLm1heChkaWZmZXJlbmNlLngsIHJlc3RyaWN0aW9ucy5taW4ueCksIHJlc3RyaWN0aW9ucy5tYXgueCksXG4gICAgICB5OiBNYXRoLm1pbihNYXRoLm1heChkaWZmZXJlbmNlLnksIHJlc3RyaWN0aW9ucy5taW4ueSksIHJlc3RyaWN0aW9ucy5tYXgueSlcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVkcmF3Q29ubmVjdGlvbihsaW5lOiBJTGluZSk6IHZvaWQge1xuICAgIHRoaXMuY29ubmVjdGlvbi5zZXRMaW5lKGxpbmUucG9pbnQxLCB0aGlzLmZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsIGxpbmUucG9pbnQyLCB0aGlzLmZJbnB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgdGhpcy5jb25uZWN0aW9uLnJlZHJhdygpO1xuICB9XG59XG4iXX0=
@@ -2,18 +2,16 @@ import { RoundedRect } from '@foblex/2d';
2
2
  import { CalculateConnectionLineByBehaviorRequest } from '../../domain';
3
3
  import { ConnectionBaseDragHandler } from './connection-base-drag-handler';
4
4
  export class ConnectionSourceDragHandler extends ConnectionBaseDragHandler {
5
- minDistance;
6
- maxDistance;
7
- constructor(fMediator, fComponentsStore, connection, minDistance, maxDistance) {
5
+ restrictions;
6
+ constructor(fMediator, fComponentsStore, connection, restrictions) {
8
7
  super(fMediator, fComponentsStore, connection);
9
- this.minDistance = minDistance;
10
- this.maxDistance = maxDistance;
8
+ this.restrictions = restrictions;
11
9
  }
12
10
  onPointerMove(difference) {
13
11
  this.redrawConnection(this.getNewLineValue(difference));
14
12
  }
15
13
  getNewLineValue(difference) {
16
- return this.fMediator.execute(new CalculateConnectionLineByBehaviorRequest(RoundedRect.fromRoundedRect(this.fOutputWithRect.fRect).addPoint(this.getRestrictedDifference({ ...difference }, { min: this.minDistance, max: this.maxDistance })), this.fInputWithRect.fRect, this.connection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, this.fInputWithRect.fConnector.fConnectableSide));
14
+ return this.fMediator.execute(new CalculateConnectionLineByBehaviorRequest(RoundedRect.fromRoundedRect(this.fOutputWithRect.fRect).addPoint(this.getRestrictedDifference({ ...difference }, this.restrictions)), this.fInputWithRect.fRect, this.connection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, this.fInputWithRect.fConnector.fConnectableSide));
17
15
  }
18
16
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1zb3VyY2UuZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9ub2RlL2Nvbm5lY3Rpb24tc291cmNlLmRyYWctaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RCxPQUFPLEVBQ0wsd0NBQXdDLEVBQ3pDLE1BQU0sY0FBYyxDQUFDO0FBR3RCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx5QkFBeUI7SUFNL0Q7SUFDQTtJQUxULFlBQ0UsU0FBb0IsRUFDcEIsZ0JBQWtDLEVBQ2xDLFVBQTJCLEVBQ3BCLFdBQW1CLEVBQ25CLFdBQW1CO1FBRTFCLEtBQUssQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFIeEMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7SUFHNUIsQ0FBQztJQUVlLGFBQWEsQ0FBQyxVQUFrQjtRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxlQUFlLENBQUMsVUFBa0I7UUFDeEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBUSxJQUFJLHdDQUF3QyxDQUMvRSxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFDbkssSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQ2hELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElMaW5lLCBJUG9pbnQsIFJvdW5kZWRSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0XG59IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uQmFzZURyYWdIYW5kbGVyIH0gZnJvbSAnLi9jb25uZWN0aW9uLWJhc2UtZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi9mLXN0b3JhZ2UnO1xuXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvblNvdXJjZURyYWdIYW5kbGVyIGV4dGVuZHMgQ29ubmVjdGlvbkJhc2VEcmFnSGFuZGxlciB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZk1lZGlhdG9yOiBGTWVkaWF0b3IsXG4gICAgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBjb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICAgcHVibGljIG1pbkRpc3RhbmNlOiBJUG9pbnQsXG4gICAgcHVibGljIG1heERpc3RhbmNlOiBJUG9pbnRcbiAgKSB7XG4gICAgc3VwZXIoZk1lZGlhdG9yLCBmQ29tcG9uZW50c1N0b3JlLCBjb25uZWN0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMucmVkcmF3Q29ubmVjdGlvbih0aGlzLmdldE5ld0xpbmVWYWx1ZShkaWZmZXJlbmNlKSk7XG4gIH1cblxuICBwcml2YXRlIGdldE5ld0xpbmVWYWx1ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiBJTGluZSB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLmV4ZWN1dGU8SUxpbmU+KG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0KFxuICAgICAgUm91bmRlZFJlY3QuZnJvbVJvdW5kZWRSZWN0KHRoaXMuZk91dHB1dFdpdGhSZWN0LmZSZWN0KS5hZGRQb2ludCh0aGlzLmdldFJlc3RyaWN0ZWREaWZmZXJlbmNlKHsgLi4uZGlmZmVyZW5jZSB9LCB7IG1pbjogdGhpcy5taW5EaXN0YW5jZSwgbWF4OiB0aGlzLm1heERpc3RhbmNlIH0pKSxcbiAgICAgIHRoaXMuZklucHV0V2l0aFJlY3QuZlJlY3QsXG4gICAgICB0aGlzLmNvbm5lY3Rpb24uZkJlaGF2aW9yLFxuICAgICAgdGhpcy5mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgdGhpcy5mSW5wdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGVcbiAgICApKTtcbiAgfVxufVxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1zb3VyY2UuZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9ub2RlL2Nvbm5lY3Rpb24tc291cmNlLmRyYWctaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0RSxPQUFPLEVBQ0wsd0NBQXdDLEVBQ3pDLE1BQU0sY0FBYyxDQUFDO0FBR3RCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx5QkFBeUI7SUFNL0Q7SUFKVCxZQUNFLFNBQW9CLEVBQ3BCLGdCQUFrQyxFQUNsQyxVQUEyQixFQUNwQixZQUEwQjtRQUVqQyxLQUFLLENBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRnhDLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBR25DLENBQUM7SUFFZSxhQUFhLENBQUMsVUFBa0I7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8sZUFBZSxDQUFDLFVBQWtCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQVEsSUFBSSx3Q0FBd0MsQ0FDL0UsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUNwSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxpbmUsIElNaW5NYXhQb2ludCwgSVBvaW50LCBSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdFxufSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQ29ubmVjdGlvbkJhc2VEcmFnSGFuZGxlciB9IGZyb20gJy4vY29ubmVjdGlvbi1iYXNlLWRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcblxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25Tb3VyY2VEcmFnSGFuZGxlciBleHRlbmRzIENvbm5lY3Rpb25CYXNlRHJhZ0hhbmRsZXIge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZNZWRpYXRvcjogRk1lZGlhdG9yLFxuICAgIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgY29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICAgIHB1YmxpYyByZXN0cmljdGlvbnM6IElNaW5NYXhQb2ludCxcbiAgKSB7XG4gICAgc3VwZXIoZk1lZGlhdG9yLCBmQ29tcG9uZW50c1N0b3JlLCBjb25uZWN0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMucmVkcmF3Q29ubmVjdGlvbih0aGlzLmdldE5ld0xpbmVWYWx1ZShkaWZmZXJlbmNlKSk7XG4gIH1cblxuICBwcml2YXRlIGdldE5ld0xpbmVWYWx1ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiBJTGluZSB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLmV4ZWN1dGU8SUxpbmU+KG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0KFxuICAgICAgUm91bmRlZFJlY3QuZnJvbVJvdW5kZWRSZWN0KHRoaXMuZk91dHB1dFdpdGhSZWN0LmZSZWN0KS5hZGRQb2ludCh0aGlzLmdldFJlc3RyaWN0ZWREaWZmZXJlbmNlKHsgLi4uZGlmZmVyZW5jZSB9LCB0aGlzLnJlc3RyaWN0aW9ucykpLFxuICAgICAgdGhpcy5mSW5wdXRXaXRoUmVjdC5mUmVjdCxcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5mQmVoYXZpb3IsXG4gICAgICB0aGlzLmZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICB0aGlzLmZJbnB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZVxuICAgICkpO1xuICB9XG59XG4iXX0=
@@ -2,18 +2,16 @@ import { RoundedRect } from '@foblex/2d';
2
2
  import { CalculateConnectionLineByBehaviorRequest, } from '../../domain';
3
3
  import { ConnectionBaseDragHandler } from './connection-base-drag-handler';
4
4
  export class ConnectionTargetDragHandler extends ConnectionBaseDragHandler {
5
- minDistance;
6
- maxDistance;
7
- constructor(fMediator, fComponentsStore, connection, minDistance, maxDistance) {
5
+ restrictions;
6
+ constructor(fMediator, fComponentsStore, connection, restrictions) {
8
7
  super(fMediator, fComponentsStore, connection);
9
- this.minDistance = minDistance;
10
- this.maxDistance = maxDistance;
8
+ this.restrictions = restrictions;
11
9
  }
12
10
  onPointerMove(difference) {
13
11
  this.redrawConnection(this.getNewLineValue(difference));
14
12
  }
15
13
  getNewLineValue(difference) {
16
- return this.fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, RoundedRect.fromRoundedRect(this.fInputWithRect.fRect).addPoint(this.getRestrictedDifference({ ...difference }, { min: this.minDistance, max: this.maxDistance })), this.connection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, this.fInputWithRect.fConnector.fConnectableSide));
14
+ return this.fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, RoundedRect.fromRoundedRect(this.fInputWithRect.fRect).addPoint(this.getRestrictedDifference({ ...difference }, this.restrictions)), this.connection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, this.fInputWithRect.fConnector.fConnectableSide));
17
15
  }
18
16
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi10YXJnZXQuZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9ub2RlL2Nvbm5lY3Rpb24tdGFyZ2V0LmRyYWctaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RCxPQUFPLEVBQ0wsd0NBQXdDLEdBQ3pDLE1BQU0sY0FBYyxDQUFDO0FBR3RCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx5QkFBeUI7SUFNL0Q7SUFDQTtJQUxULFlBQ0UsU0FBb0IsRUFDcEIsZ0JBQWtDLEVBQ2xDLFVBQTJCLEVBQ3BCLFdBQW1CLEVBQ25CLFdBQW1CO1FBRTFCLEtBQUssQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFIeEMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7SUFHNUIsQ0FBQztJQUVlLGFBQWEsQ0FBQyxVQUFrQjtRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxlQUFlLENBQUMsVUFBa0I7UUFDeEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBUSxJQUFJLHdDQUF3QyxDQUMvRSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFDMUIsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQ2xLLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQ2hELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElMaW5lLCBJUG9pbnQsIFJvdW5kZWRSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0LFxufSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQ29ubmVjdGlvbkJhc2VEcmFnSGFuZGxlciB9IGZyb20gJy4vY29ubmVjdGlvbi1iYXNlLWRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcblxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25UYXJnZXREcmFnSGFuZGxlciBleHRlbmRzIENvbm5lY3Rpb25CYXNlRHJhZ0hhbmRsZXIge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZNZWRpYXRvcjogRk1lZGlhdG9yLFxuICAgIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgY29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICAgIHB1YmxpYyBtaW5EaXN0YW5jZTogSVBvaW50LFxuICAgIHB1YmxpYyBtYXhEaXN0YW5jZTogSVBvaW50XG4gICkge1xuICAgIHN1cGVyKGZNZWRpYXRvciwgZkNvbXBvbmVudHNTdG9yZSwgY29ubmVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLnJlZHJhd0Nvbm5lY3Rpb24odGhpcy5nZXROZXdMaW5lVmFsdWUoZGlmZmVyZW5jZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROZXdMaW5lVmFsdWUoZGlmZmVyZW5jZTogSVBvaW50KTogSUxpbmUge1xuICAgIHJldHVybiB0aGlzLmZNZWRpYXRvci5leGVjdXRlPElMaW5lPihuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdChcbiAgICAgIHRoaXMuZk91dHB1dFdpdGhSZWN0LmZSZWN0LFxuICAgICAgUm91bmRlZFJlY3QuZnJvbVJvdW5kZWRSZWN0KHRoaXMuZklucHV0V2l0aFJlY3QuZlJlY3QpLmFkZFBvaW50KHRoaXMuZ2V0UmVzdHJpY3RlZERpZmZlcmVuY2UoeyAuLi5kaWZmZXJlbmNlIH0sIHsgbWluOiB0aGlzLm1pbkRpc3RhbmNlLCBtYXg6IHRoaXMubWF4RGlzdGFuY2UgfSkpLFxuICAgICAgdGhpcy5jb25uZWN0aW9uLmZCZWhhdmlvcixcbiAgICAgIHRoaXMuZk91dHB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgIHRoaXMuZklucHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlXG4gICAgKSk7XG4gIH1cbn1cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi10YXJnZXQuZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9ub2RlL2Nvbm5lY3Rpb24tdGFyZ2V0LmRyYWctaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0RSxPQUFPLEVBQ0wsd0NBQXdDLEdBQ3pDLE1BQU0sY0FBYyxDQUFDO0FBR3RCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx5QkFBeUI7SUFNL0Q7SUFKVCxZQUNFLFNBQW9CLEVBQ3BCLGdCQUFrQyxFQUNsQyxVQUEyQixFQUNwQixZQUEwQjtRQUVqQyxLQUFLLENBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRnhDLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBR25DLENBQUM7SUFFZSxhQUFhLENBQUMsVUFBa0I7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8sZUFBZSxDQUFDLFVBQWtCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQVEsSUFBSSx3Q0FBd0MsQ0FDL0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQzFCLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFDbkksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxpbmUsIElNaW5NYXhQb2ludCwgSVBvaW50LCBSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IENvbm5lY3Rpb25CYXNlRHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Nvbm5lY3Rpb24tYmFzZS1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5cbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uVGFyZ2V0RHJhZ0hhbmRsZXIgZXh0ZW5kcyBDb25uZWN0aW9uQmFzZURyYWdIYW5kbGVyIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmTWVkaWF0b3I6IEZNZWRpYXRvcixcbiAgICBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIGNvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSxcbiAgICBwdWJsaWMgcmVzdHJpY3Rpb25zOiBJTWluTWF4UG9pbnQsXG4gICkge1xuICAgIHN1cGVyKGZNZWRpYXRvciwgZkNvbXBvbmVudHNTdG9yZSwgY29ubmVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLnJlZHJhd0Nvbm5lY3Rpb24odGhpcy5nZXROZXdMaW5lVmFsdWUoZGlmZmVyZW5jZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROZXdMaW5lVmFsdWUoZGlmZmVyZW5jZTogSVBvaW50KTogSUxpbmUge1xuICAgIHJldHVybiB0aGlzLmZNZWRpYXRvci5leGVjdXRlPElMaW5lPihuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdChcbiAgICAgIHRoaXMuZk91dHB1dFdpdGhSZWN0LmZSZWN0LFxuICAgICAgUm91bmRlZFJlY3QuZnJvbVJvdW5kZWRSZWN0KHRoaXMuZklucHV0V2l0aFJlY3QuZlJlY3QpLmFkZFBvaW50KHRoaXMuZ2V0UmVzdHJpY3RlZERpZmZlcmVuY2UoeyAuLi5kaWZmZXJlbmNlIH0sIHRoaXMucmVzdHJpY3Rpb25zKSksXG4gICAgICB0aGlzLmNvbm5lY3Rpb24uZkJlaGF2aW9yLFxuICAgICAgdGhpcy5mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgdGhpcy5mSW5wdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGVcbiAgICApKTtcbiAgfVxufVxuIl19
@@ -7,11 +7,11 @@ export class ConnectionDragHandler extends ConnectionBaseDragHandler {
7
7
  constructor(fMediator, fComponentsStore, connection) {
8
8
  super(fMediator, fComponentsStore, connection);
9
9
  }
10
- setOutputRestrictions(min, max) {
11
- this.sourceRestrictions = { min, max };
10
+ setOutputRestrictions(restrictions) {
11
+ this.sourceRestrictions = restrictions;
12
12
  }
13
- setInputRestrictions(min, max) {
14
- this.targetRestrictions = { min, max };
13
+ setInputRestrictions(restrictions) {
14
+ this.targetRestrictions = restrictions;
15
15
  }
16
16
  onPointerMove(difference) {
17
17
  this.redrawConnection(this.getNewLineValue(difference));
@@ -20,4 +20,4 @@ export class ConnectionDragHandler extends ConnectionBaseDragHandler {
20
20
  return this.fMediator.execute(new CalculateConnectionLineByBehaviorRequest(RoundedRect.fromRoundedRect(this.fOutputWithRect.fRect).addPoint(this.getRestrictedDifference({ ...difference }, this.sourceRestrictions)), RoundedRect.fromRoundedRect(this.fInputWithRect.fRect).addPoint(this.getRestrictedDifference({ ...difference }, this.targetRestrictions)), this.connection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, this.fInputWithRect.fConnector.fConnectableSide));
21
21
  }
22
22
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL25vZGUvY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHeEQsT0FBTyxFQUNMLHdDQUF3QyxHQUN6QyxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUkzRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEseUJBQXlCO0lBRTFELGtCQUFrQixDQUF5QjtJQUMzQyxrQkFBa0IsQ0FBeUI7SUFFbkQsWUFDRSxTQUFvQixFQUNwQixnQkFBa0MsRUFDbEMsVUFBMkI7UUFFM0IsS0FBSyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0scUJBQXFCLENBQUMsR0FBVyxFQUFFLEdBQVc7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVlLGFBQWEsQ0FBQyxVQUFrQjtRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxlQUFlLENBQUMsVUFBa0I7UUFDeEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBUSxJQUFJLHdDQUF3QyxDQUMvRSxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFDMUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQ3pJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQ2hELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElMaW5lLCBJUG9pbnQsIFJvdW5kZWRSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0LFxufSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ29ubmVjdGlvbkJhc2VEcmFnSGFuZGxlciB9IGZyb20gJy4vY29ubmVjdGlvbi1iYXNlLWRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBJTm9kZU1vdmVSZXN0cmljdGlvbnMgfSBmcm9tICcuL2NyZWF0ZS1tb3ZlLW5vZGVzLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5cbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uRHJhZ0hhbmRsZXIgZXh0ZW5kcyBDb25uZWN0aW9uQmFzZURyYWdIYW5kbGVyIHtcblxuICBwcml2YXRlIHNvdXJjZVJlc3RyaWN0aW9ucyE6IElOb2RlTW92ZVJlc3RyaWN0aW9ucztcbiAgcHJpdmF0ZSB0YXJnZXRSZXN0cmljdGlvbnMhOiBJTm9kZU1vdmVSZXN0cmljdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZk1lZGlhdG9yOiBGTWVkaWF0b3IsXG4gICAgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBjb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICkge1xuICAgIHN1cGVyKGZNZWRpYXRvciwgZkNvbXBvbmVudHNTdG9yZSwgY29ubmVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc2V0T3V0cHV0UmVzdHJpY3Rpb25zKG1pbjogSVBvaW50LCBtYXg6IElQb2ludCkge1xuICAgIHRoaXMuc291cmNlUmVzdHJpY3Rpb25zID0geyBtaW4sIG1heCB9O1xuICB9XG5cbiAgcHVibGljIHNldElucHV0UmVzdHJpY3Rpb25zKG1pbjogSVBvaW50LCBtYXg6IElQb2ludCkge1xuICAgIHRoaXMudGFyZ2V0UmVzdHJpY3Rpb25zID0geyBtaW4sIG1heCB9O1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5yZWRyYXdDb25uZWN0aW9uKHRoaXMuZ2V0TmV3TGluZVZhbHVlKGRpZmZlcmVuY2UpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TmV3TGluZVZhbHVlKGRpZmZlcmVuY2U6IElQb2ludCk6IElMaW5lIHtcbiAgICByZXR1cm4gdGhpcy5mTWVkaWF0b3IuZXhlY3V0ZTxJTGluZT4obmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25MaW5lQnlCZWhhdmlvclJlcXVlc3QoXG4gICAgICBSb3VuZGVkUmVjdC5mcm9tUm91bmRlZFJlY3QodGhpcy5mT3V0cHV0V2l0aFJlY3QuZlJlY3QpLmFkZFBvaW50KHRoaXMuZ2V0UmVzdHJpY3RlZERpZmZlcmVuY2UoeyAuLi5kaWZmZXJlbmNlIH0sIHRoaXMuc291cmNlUmVzdHJpY3Rpb25zKSksXG4gICAgICBSb3VuZGVkUmVjdC5mcm9tUm91bmRlZFJlY3QodGhpcy5mSW5wdXRXaXRoUmVjdC5mUmVjdCkuYWRkUG9pbnQodGhpcy5nZXRSZXN0cmljdGVkRGlmZmVyZW5jZSh7IC4uLmRpZmZlcmVuY2UgfSwgdGhpcy50YXJnZXRSZXN0cmljdGlvbnMpKSxcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5mQmVoYXZpb3IsXG4gICAgICB0aGlzLmZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICB0aGlzLmZJbnB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZVxuICAgICkpO1xuICB9XG59XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL25vZGUvY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUErQixXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHdEUsT0FBTyxFQUNMLHdDQUF3QyxHQUN6QyxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUczRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEseUJBQXlCO0lBRTFELGtCQUFrQixDQUFnQjtJQUNsQyxrQkFBa0IsQ0FBZ0I7SUFFMUMsWUFDRSxTQUFvQixFQUNwQixnQkFBa0MsRUFDbEMsVUFBMkI7UUFFM0IsS0FBSyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0scUJBQXFCLENBQUMsWUFBMEI7UUFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBRU0sb0JBQW9CLENBQUMsWUFBMEI7UUFDcEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBRWUsYUFBYSxDQUFDLFVBQWtCO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLGVBQWUsQ0FBQyxVQUFrQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFRLElBQUksd0NBQXdDLENBQy9FLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUMxSSxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFDekksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxpbmUsIElNaW5NYXhQb2ludCwgSVBvaW50LCBSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENvbm5lY3Rpb25CYXNlRHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Nvbm5lY3Rpb24tYmFzZS1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5cbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uRHJhZ0hhbmRsZXIgZXh0ZW5kcyBDb25uZWN0aW9uQmFzZURyYWdIYW5kbGVyIHtcblxuICBwcml2YXRlIHNvdXJjZVJlc3RyaWN0aW9ucyE6IElNaW5NYXhQb2ludDtcbiAgcHJpdmF0ZSB0YXJnZXRSZXN0cmljdGlvbnMhOiBJTWluTWF4UG9pbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZk1lZGlhdG9yOiBGTWVkaWF0b3IsXG4gICAgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBjb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICkge1xuICAgIHN1cGVyKGZNZWRpYXRvciwgZkNvbXBvbmVudHNTdG9yZSwgY29ubmVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc2V0T3V0cHV0UmVzdHJpY3Rpb25zKHJlc3RyaWN0aW9uczogSU1pbk1heFBvaW50KSB7XG4gICAgdGhpcy5zb3VyY2VSZXN0cmljdGlvbnMgPSByZXN0cmljdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgc2V0SW5wdXRSZXN0cmljdGlvbnMocmVzdHJpY3Rpb25zOiBJTWluTWF4UG9pbnQpIHtcbiAgICB0aGlzLnRhcmdldFJlc3RyaWN0aW9ucyA9IHJlc3RyaWN0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMucmVkcmF3Q29ubmVjdGlvbih0aGlzLmdldE5ld0xpbmVWYWx1ZShkaWZmZXJlbmNlKSk7XG4gIH1cblxuICBwcml2YXRlIGdldE5ld0xpbmVWYWx1ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiBJTGluZSB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLmV4ZWN1dGU8SUxpbmU+KG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0KFxuICAgICAgUm91bmRlZFJlY3QuZnJvbVJvdW5kZWRSZWN0KHRoaXMuZk91dHB1dFdpdGhSZWN0LmZSZWN0KS5hZGRQb2ludCh0aGlzLmdldFJlc3RyaWN0ZWREaWZmZXJlbmNlKHsgLi4uZGlmZmVyZW5jZSB9LCB0aGlzLnNvdXJjZVJlc3RyaWN0aW9ucykpLFxuICAgICAgUm91bmRlZFJlY3QuZnJvbVJvdW5kZWRSZWN0KHRoaXMuZklucHV0V2l0aFJlY3QuZlJlY3QpLmFkZFBvaW50KHRoaXMuZ2V0UmVzdHJpY3RlZERpZmZlcmVuY2UoeyAuLi5kaWZmZXJlbmNlIH0sIHRoaXMudGFyZ2V0UmVzdHJpY3Rpb25zKSksXG4gICAgICB0aGlzLmNvbm5lY3Rpb24uZkJlaGF2aW9yLFxuICAgICAgdGhpcy5mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgdGhpcy5mSW5wdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGVcbiAgICApKTtcbiAgfVxufVxuIl19