@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,85 +1,89 @@
1
- import { FindClosestInputRequest, GetAllCanBeConnectedInputPositionsRequest, CalculateConnectionLineByBehaviorRequest, GetConnectorWithRectRequest } from '../../../domain';
1
+ import { CalculateClosestInputRequest, GetAllCanBeConnectedInputsAndRectsRequest, CalculateConnectionLineByBehaviorRequest, GetConnectorAndRectRequest, MarkAllCanBeConnectedInputsRequest, UnmarkAllCanBeConnectedInputsRequest } from '../../../domain';
2
2
  import { EFConnectableSide } from '../../../f-connectors';
3
- import { RoundedRect, PointExtensions, RectExtensions, Point, } from '@foblex/2d';
3
+ import { RoundedRect, PointExtensions, RectExtensions } from '@foblex/2d';
4
4
  export class CreateConnectionDragHandler {
5
- fMediator;
6
- fComponentsStore;
7
- fOutput;
8
- onPointerDownPosition;
9
- toConnectorRect = new RoundedRect();
10
- get fConnection() {
11
- return this.fComponentsStore.fTempConnection;
5
+ _fMediator;
6
+ _fComponentsStore;
7
+ _fOutput;
8
+ _toConnectorRect = new RoundedRect();
9
+ get _fConnection() {
10
+ return this._fComponentsStore.fTempConnection;
12
11
  }
13
- get fSnapConnection() {
14
- return this.fComponentsStore.fSnapConnection;
12
+ get _fSnapConnection() {
13
+ return this._fComponentsStore.fSnapConnection;
15
14
  }
16
- fOutputWithRect;
17
- canBeConnectedInputs = [];
18
- constructor(fMediator, fComponentsStore, fOutput, onPointerDownPosition) {
19
- this.fMediator = fMediator;
20
- this.fComponentsStore = fComponentsStore;
21
- this.fOutput = fOutput;
22
- this.onPointerDownPosition = onPointerDownPosition;
15
+ _fOutputWithRect;
16
+ _canBeConnectedInputs = [];
17
+ constructor(_fMediator, _fComponentsStore, _fOutput, _onPointerDownPosition) {
18
+ this._fMediator = _fMediator;
19
+ this._fComponentsStore = _fComponentsStore;
20
+ this._fOutput = _fOutput;
21
+ this._toConnectorRect = RoundedRect.fromRect(RectExtensions.initialize(_onPointerDownPosition.x, _onPointerDownPosition.y));
23
22
  }
24
23
  prepareDragSequence() {
24
+ this._getAndMarkCanBeConnectedInputs();
25
25
  this._initializeSnapConnection();
26
26
  this._initializeConnectionForCreate();
27
- this.canBeConnectedInputs = this.fMediator.send(new GetAllCanBeConnectedInputPositionsRequest(this.fOutput.fId));
28
- this.fOutputWithRect = this.fMediator.send(new GetConnectorWithRectRequest(this.fOutput));
29
- this.toConnectorRect = RoundedRect.fromRect(RectExtensions.initialize(this.onPointerDownPosition.x, this.onPointerDownPosition.y));
30
- this.fConnection.show();
27
+ this._fOutputWithRect = this._fMediator.execute(new GetConnectorAndRectRequest(this._fOutput));
28
+ this._fConnection.show();
31
29
  this.onPointerMove(PointExtensions.initialize());
32
30
  }
31
+ _getAndMarkCanBeConnectedInputs() {
32
+ this._canBeConnectedInputs = this._fMediator.execute(new GetAllCanBeConnectedInputsAndRectsRequest(this._fOutput));
33
+ this._fMediator.execute(new MarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
34
+ }
33
35
  _initializeSnapConnection() {
34
- if (!this.fSnapConnection) {
36
+ if (!this._fSnapConnection) {
35
37
  return;
36
38
  }
37
- this.fSnapConnection.fOutputId = this.fOutput.fId;
38
- this.fSnapConnection.initialize();
39
+ this._fSnapConnection.fOutputId = this._fOutput.fId;
40
+ this._fSnapConnection.initialize();
39
41
  }
40
42
  _initializeConnectionForCreate() {
41
- this.fConnection.fOutputId = this.fOutput.fId;
42
- this.fConnection.initialize();
43
+ this._fConnection.fOutputId = this._fOutput.fId;
44
+ this._fConnection.initialize();
43
45
  }
44
46
  onPointerMove(difference) {
45
47
  const fClosestInput = this._findClosestInput(difference);
46
- this._drawConnectionForCreate(this.toConnectorRect.addPoint(difference), fClosestInput?.fConnector.fConnectableSide || EFConnectableSide.TOP);
47
- if (this.fSnapConnection) {
48
+ this._drawConnectionForCreate(this._toConnectorRect.addPoint(difference), fClosestInput?.fConnector.fConnectableSide || EFConnectableSide.TOP);
49
+ if (this._fSnapConnection) {
48
50
  this._drawSnapConnection(this._getClosestInputForSnapConnection(fClosestInput));
49
51
  }
50
52
  }
51
- _drawConnectionForCreate(fInputRect, fSide) {
52
- const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fInputRect, this.fConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, fSide));
53
- this.fConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, fSide);
54
- this.fConnection.redraw();
53
+ _drawConnectionForCreate(toConnectorRect, fSide) {
54
+ const line = this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this._fOutputWithRect.fRect, toConnectorRect, this._fConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, fSide));
55
+ this._fConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, fSide);
56
+ this._fConnection.redraw();
55
57
  }
56
58
  _drawSnapConnection(fClosestInput) {
57
59
  if (fClosestInput) {
58
- const line = this.fMediator.send(new CalculateConnectionLineByBehaviorRequest(this.fOutputWithRect.fRect, fClosestInput.fRect, this.fSnapConnection.fBehavior, this.fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide));
59
- this.fSnapConnection.show();
60
- this.fSnapConnection.setLine(line.point1, this.fOutputWithRect.fConnector.fConnectableSide, line.point2, fClosestInput.fConnector.fConnectableSide);
61
- this.fSnapConnection.redraw();
60
+ const line = this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this._fOutputWithRect.fRect, fClosestInput.fRect, this._fSnapConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide));
61
+ this._fSnapConnection.show();
62
+ this._fSnapConnection.setLine(line.point1, this._fOutputWithRect.fConnector.fConnectableSide, line.point2, fClosestInput.fConnector.fConnectableSide);
63
+ this._fSnapConnection.redraw();
62
64
  }
63
65
  else {
64
- this.fSnapConnection?.hide();
65
- }
66
- }
67
- getClosetInput(difference) {
68
- if (!this.fSnapConnection) {
69
- return undefined;
66
+ this._fSnapConnection?.hide();
70
67
  }
71
- return this._getClosestInputForSnapConnection(this._findClosestInput(difference));
72
68
  }
73
69
  _findClosestInput(difference) {
74
- return this.fMediator.send(new FindClosestInputRequest(Point.fromPoint(this.toConnectorRect).add(difference), this.canBeConnectedInputs));
70
+ return this._fMediator.execute(new CalculateClosestInputRequest(this._toConnectorRect.addPoint(difference), this._canBeConnectedInputs));
75
71
  }
76
72
  _getClosestInputForSnapConnection(fClosestInput) {
77
- return fClosestInput && fClosestInput.distance < this.fSnapConnection.fSnapThreshold ? fClosestInput : undefined;
73
+ return fClosestInput && fClosestInput.distance < this._fSnapConnection.fSnapThreshold ? fClosestInput : undefined;
78
74
  }
79
75
  onPointerUp() {
80
- this.fConnection.redraw();
81
- this.fConnection.hide();
82
- this.fSnapConnection?.hide();
76
+ this._fConnection.redraw();
77
+ this._fConnection.hide();
78
+ this._fSnapConnection?.hide();
79
+ this._fMediator.execute(new UnmarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
80
+ }
81
+ getData() {
82
+ return {
83
+ toConnectorRect: this._toConnectorRect,
84
+ fOutputId: this._fOutput.fId,
85
+ canBeConnectedInputs: this._canBeConnectedInputs
86
+ };
83
87
  }
84
88
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9jcmVhdGUtY29ubmVjdGlvbi9jcmVhdGUtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qix5Q0FBeUMsRUFDekMsd0NBQXdDLEVBQ3hDLDJCQUEyQixFQUU1QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxpQkFBaUIsRUFBa0IsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsV0FBVyxFQUFpQixlQUFlLEVBQUUsY0FBYyxFQUFFLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQztBQUdqRyxNQUFNLE9BQU8sMkJBQTJCO0lBaUI1QjtJQUNBO0lBQ0E7SUFDQTtJQWxCRixlQUFlLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7SUFFekQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWdCLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVksZUFBZTtRQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUEyQyxDQUFDO0lBQzNFLENBQUM7SUFFTyxlQUFlLENBQXNCO0lBRXJDLG9CQUFvQixHQUF5QixFQUFFLENBQUM7SUFFeEQsWUFDVSxTQUFvQixFQUNwQixnQkFBa0MsRUFDbEMsT0FBdUIsRUFDdkIscUJBQTZCO1FBSDdCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQVE7SUFFdkMsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixJQUFJLENB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QUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNwSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRHJhZ2dhYmxlSXRlbSB9IGZyb20gJy4uLy4uL2ktZHJhZ2dhYmxlLWl0ZW0nO1xuaW1wb3J0IHtcbiAgRmluZENsb3Nlc3RJbnB1dFJlcXVlc3QsXG4gIEdldEFsbENhbkJlQ29ubmVjdGVkSW5wdXRQb3NpdGlvbnNSZXF1ZXN0LFxuICBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0LFxuICBHZXRDb25uZWN0b3JXaXRoUmVjdFJlcXVlc3QsXG4gIElDb25uZWN0b3JXaXRoUmVjdCwgSUNsb3Nlc3RJbnB1dFxufSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlLCBGU25hcENvbm5lY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUsIEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgUm91bmRlZFJlY3QsIElMaW5lLCBJUG9pbnQsIFBvaW50RXh0ZW5zaW9ucywgUmVjdEV4dGVuc2lvbnMsIFBvaW50LCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVDb25uZWN0aW9uRHJhZ0hhbmRsZXIgaW1wbGVtZW50cyBJRHJhZ2dhYmxlSXRlbSB7XG5cbiAgcHJpdmF0ZSB0b0Nvbm5lY3RvclJlY3Q6IFJvdW5kZWRSZWN0ID0gbmV3IFJvdW5kZWRSZWN0KCk7XG5cbiAgcHVibGljIGdldCBmQ29ubmVjdGlvbigpOiBGQ29ubmVjdGlvbkJhc2Uge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZlRlbXBDb25uZWN0aW9uITtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGZTbmFwQ29ubmVjdGlvbigpOiBGU25hcENvbm5lY3Rpb25Db21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZlNuYXBDb25uZWN0aW9uIGFzIEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgZk91dHB1dFdpdGhSZWN0ITogSUNvbm5lY3RvcldpdGhSZWN0O1xuXG4gIHByaXZhdGUgY2FuQmVDb25uZWN0ZWRJbnB1dHM6IElDb25uZWN0b3JXaXRoUmVjdFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZNZWRpYXRvcixcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmT3V0cHV0OiBGQ29ubmVjdG9yQmFzZSxcbiAgICBwcml2YXRlIG9uUG9pbnRlckRvd25Qb3NpdGlvbjogSVBvaW50LFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuX2luaXRpYWxpemVTbmFwQ29ubmVjdGlvbigpO1xuICAgIHRoaXMuX2luaXRpYWxpemVDb25uZWN0aW9uRm9yQ3JlYXRlKCk7XG5cbiAgICB0aGlzLmNhbkJlQ29ubmVjdGVkSW5wdXRzID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJQ29ubmVjdG9yV2l0aFJlY3RbXT4oXG4gICAgICBuZXcgR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dFBvc2l0aW9uc1JlcXVlc3QodGhpcy5mT3V0cHV0LmZJZClcbiAgICApO1xuXG4gICAgdGhpcy5mT3V0cHV0V2l0aFJlY3QgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElDb25uZWN0b3JXaXRoUmVjdD4obmV3IEdldENvbm5lY3RvcldpdGhSZWN0UmVxdWVzdCh0aGlzLmZPdXRwdXQpKTtcblxuICAgIHRoaXMudG9Db25uZWN0b3JSZWN0ID0gUm91bmRlZFJlY3QuZnJvbVJlY3QoXG4gICAgICBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKHRoaXMub25Qb2ludGVyRG93blBvc2l0aW9uLngsIHRoaXMub25Qb2ludGVyRG93blBvc2l0aW9uLnkpXG4gICAgKTtcblxuICAgIHRoaXMuZkNvbm5lY3Rpb24uc2hvdygpO1xuICAgIHRoaXMub25Qb2ludGVyTW92ZShQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVTbmFwQ29ubmVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZlNuYXBDb25uZWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZlNuYXBDb25uZWN0aW9uLmZPdXRwdXRJZCA9IHRoaXMuZk91dHB1dC5mSWQ7XG4gICAgdGhpcy5mU25hcENvbm5lY3Rpb24uaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZUNvbm5lY3Rpb25Gb3JDcmVhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5mQ29ubmVjdGlvbi5mT3V0cHV0SWQgPSB0aGlzLmZPdXRwdXQuZklkO1xuICAgIHRoaXMuZkNvbm5lY3Rpb24uaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgZkNsb3Nlc3RJbnB1dCA9IHRoaXMuX2ZpbmRDbG9zZXN0SW5wdXQoZGlmZmVyZW5jZSk7XG5cbiAgICB0aGlzLl9kcmF3Q29ubmVjdGlvbkZvckNyZWF0ZSh0aGlzLnRvQ29ubmVjdG9yUmVjdC5hZGRQb2ludChkaWZmZXJlbmNlKSwgZkNsb3Nlc3RJbnB1dD8uZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlIHx8IEVGQ29ubmVjdGFibGVTaWRlLlRPUCk7XG5cbiAgICBpZiAodGhpcy5mU25hcENvbm5lY3Rpb24pIHtcbiAgICAgIHRoaXMuX2RyYXdTbmFwQ29ubmVjdGlvbih0aGlzLl9nZXRDbG9zZXN0SW5wdXRGb3JTbmFwQ29ubmVjdGlvbihmQ2xvc2VzdElucHV0KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZHJhd0Nvbm5lY3Rpb25Gb3JDcmVhdGUoZklucHV0UmVjdDogUm91bmRlZFJlY3QsIGZTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElMaW5lPihuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdChcbiAgICAgICAgdGhpcy5mT3V0cHV0V2l0aFJlY3QuZlJlY3QsXG4gICAgICAgIGZJbnB1dFJlY3QsXG4gICAgICAgIHRoaXMuZkNvbm5lY3Rpb24uZkJlaGF2aW9yLFxuICAgICAgICB0aGlzLmZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICAgIGZTaWRlXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuZkNvbm5lY3Rpb24uc2V0TGluZShsaW5lLnBvaW50MSwgdGhpcy5mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLCBsaW5lLnBvaW50MiwgZlNpZGUpO1xuICAgIHRoaXMuZkNvbm5lY3Rpb24ucmVkcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3U25hcENvbm5lY3Rpb24oZkNsb3Nlc3RJbnB1dDogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChmQ2xvc2VzdElucHV0KSB7XG4gICAgICBjb25zdCBsaW5lID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJTGluZT4obmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25MaW5lQnlCZWhhdmlvclJlcXVlc3QoXG4gICAgICAgICAgdGhpcy5mT3V0cHV0V2l0aFJlY3QuZlJlY3QsXG4gICAgICAgICAgZkNsb3Nlc3RJbnB1dC5mUmVjdCxcbiAgICAgICAgICB0aGlzLmZTbmFwQ29ubmVjdGlvbiEuZkJlaGF2aW9yLFxuICAgICAgICAgIHRoaXMuZk91dHB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgICBmQ2xvc2VzdElucHV0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgdGhpcy5mU25hcENvbm5lY3Rpb24hLnNob3coKTtcbiAgICAgIHRoaXMuZlNuYXBDb25uZWN0aW9uIS5zZXRMaW5lKGxpbmUucG9pbnQxLCB0aGlzLmZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsIGxpbmUucG9pbnQyLCBmQ2xvc2VzdElucHV0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgICB0aGlzLmZTbmFwQ29ubmVjdGlvbiEucmVkcmF3KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZlNuYXBDb25uZWN0aW9uPy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENsb3NldElucHV0KGRpZmZlcmVuY2U6IElQb2ludCk6IElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5mU25hcENvbm5lY3Rpb24pIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2dldENsb3Nlc3RJbnB1dEZvclNuYXBDb25uZWN0aW9uKHRoaXMuX2ZpbmRDbG9zZXN0SW5wdXQoZGlmZmVyZW5jZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluZENsb3Nlc3RJbnB1dChkaWZmZXJlbmNlOiBJUG9pbnQpOiBJQ2xvc2VzdElucHV0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJQ2xvc2VzdElucHV0IHwgdW5kZWZpbmVkPihcbiAgICAgIG5ldyBGaW5kQ2xvc2VzdElucHV0UmVxdWVzdChcbiAgICAgICAgUG9pbnQuZnJvbVBvaW50KHRoaXMudG9Db25uZWN0b3JSZWN0KS5hZGQoZGlmZmVyZW5jZSksXG4gICAgICAgIHRoaXMuY2FuQmVDb25uZWN0ZWRJbnB1dHMsXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENsb3Nlc3RJbnB1dEZvclNuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQ6IElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQpOiBJQ2xvc2VzdElucHV0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZkNsb3Nlc3RJbnB1dCAmJiBmQ2xvc2VzdElucHV0LmRpc3RhbmNlIDwgdGhpcy5mU25hcENvbm5lY3Rpb24hLmZTbmFwVGhyZXNob2xkID8gZkNsb3Nlc3RJbnB1dCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICB0aGlzLmZDb25uZWN0aW9uLnJlZHJhdygpO1xuICAgIHRoaXMuZkNvbm5lY3Rpb24uaGlkZSgpO1xuICAgIHRoaXMuZlNuYXBDb25uZWN0aW9uPy5oaWRlKCk7XG4gIH1cbn1cbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9jcmVhdGUtY29ubmVjdGlvbi9jcmVhdGUtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qix5Q0FBeUMsRUFDekMsd0NBQXdDLEVBQ3hDLDBCQUEwQixFQUNRLGtDQUFrQyxFQUFFLG9DQUFvQyxFQUMzRyxNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDTCxpQkFBaUIsRUFHbEIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsV0FBVyxFQUFpQixlQUFlLEVBQUUsY0FBYyxFQUFnQixNQUFNLFlBQVksQ0FBQztBQUl2RyxNQUFNLE9BQU8sMkJBQTJCO0lBaUI1QjtJQUNBO0lBQ0E7SUFqQk8sZ0JBQWdCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUV0RCxJQUFZLFlBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZ0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBWSxnQkFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBMkMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sZ0JBQWdCLENBQXFCO0lBRXJDLHFCQUFxQixHQUF3QixFQUFFLENBQUM7SUFFeEQsWUFDVSxVQUFxQixFQUNyQixpQkFBbUMsRUFDbkMsUUFBcUQsRUFDN0Qsc0JBQThCO1FBSHRCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUE2QztRQUc3RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FDMUMsY0FB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QyxTQUFTLENBQUM7SUFDckgsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUU5QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDckIsSUFBSSxvQ0FBb0MsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDOUYsQ0FBQztJQUNKLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTztZQUNMLGVBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3RDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7WUFDNUIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtTQUNqRCxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuLi8uLi9pLWRyYWdnYWJsZS1pdGVtJztcbmltcG9ydCB7XG4gIENhbGN1bGF0ZUNsb3Nlc3RJbnB1dFJlcXVlc3QsXG4gIEdldEFsbENhbkJlQ29ubmVjdGVkSW5wdXRzQW5kUmVjdHNSZXF1ZXN0LFxuICBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0LFxuICBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCxcbiAgSUNvbm5lY3RvckFuZFJlY3QsIElDbG9zZXN0SW5wdXQsIE1hcmtBbGxDYW5CZUNvbm5lY3RlZElucHV0c1JlcXVlc3QsIFVubWFya0FsbENhbkJlQ29ubmVjdGVkSW5wdXRzUmVxdWVzdFxufSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlLCBGU25hcENvbm5lY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHtcbiAgRUZDb25uZWN0YWJsZVNpZGUsXG4gIEZOb2RlT3V0bGV0RGlyZWN0aXZlLFxuICBGTm9kZU91dHB1dERpcmVjdGl2ZVxufSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBSb3VuZGVkUmVjdCwgSUxpbmUsIElQb2ludCwgUG9pbnRFeHRlbnNpb25zLCBSZWN0RXh0ZW5zaW9ucywgSVJvdW5kZWRSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IElDcmVhdGVSZWFzc2lnbkNvbm5lY3Rpb25EcmFnRGF0YSB9IGZyb20gJy4uL2ktY3JlYXRlLXJlYXNzaWduLWNvbm5lY3Rpb24tZHJhZy1kYXRhJztcblxuZXhwb3J0IGNsYXNzIENyZWF0ZUNvbm5lY3Rpb25EcmFnSGFuZGxlciBpbXBsZW1lbnRzIElEcmFnZ2FibGVJdGVtPElDcmVhdGVSZWFzc2lnbkNvbm5lY3Rpb25EcmFnRGF0YT4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RvQ29ubmVjdG9yUmVjdCA9IG5ldyBSb3VuZGVkUmVjdCgpO1xuXG4gIHByaXZhdGUgZ2V0IF9mQ29ubmVjdGlvbigpOiBGQ29ubmVjdGlvbkJhc2Uge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZUZW1wQ29ubmVjdGlvbiE7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZlNuYXBDb25uZWN0aW9uKCk6IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZlNuYXBDb25uZWN0aW9uIGFzIEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgX2ZPdXRwdXRXaXRoUmVjdCE6IElDb25uZWN0b3JBbmRSZWN0O1xuXG4gIHByaXZhdGUgX2NhbkJlQ29ubmVjdGVkSW5wdXRzOiBJQ29ubmVjdG9yQW5kUmVjdFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZk1lZGlhdG9yOiBGTWVkaWF0b3IsXG4gICAgcHJpdmF0ZSBfZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwcml2YXRlIF9mT3V0cHV0OiBGTm9kZU91dHB1dERpcmVjdGl2ZSB8IEZOb2RlT3V0bGV0RGlyZWN0aXZlLFxuICAgIF9vblBvaW50ZXJEb3duUG9zaXRpb246IElQb2ludCxcbiAgKSB7XG4gICAgdGhpcy5fdG9Db25uZWN0b3JSZWN0ID0gUm91bmRlZFJlY3QuZnJvbVJlY3QoXG4gICAgICBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKF9vblBvaW50ZXJEb3duUG9zaXRpb24ueCwgX29uUG9pbnRlckRvd25Qb3NpdGlvbi55KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9nZXRBbmRNYXJrQ2FuQmVDb25uZWN0ZWRJbnB1dHMoKTtcbiAgICB0aGlzLl9pbml0aWFsaXplU25hcENvbm5lY3Rpb24oKTtcbiAgICB0aGlzLl9pbml0aWFsaXplQ29ubmVjdGlvbkZvckNyZWF0ZSgpO1xuXG4gICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0ID0gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvckFuZFJlY3Q+KG5ldyBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCh0aGlzLl9mT3V0cHV0KSk7XG5cbiAgICB0aGlzLl9mQ29ubmVjdGlvbi5zaG93KCk7XG4gICAgdGhpcy5vblBvaW50ZXJNb3ZlKFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QW5kTWFya0NhbkJlQ29ubmVjdGVkSW5wdXRzKCk6IHZvaWQge1xuICAgIHRoaXMuX2NhbkJlQ29ubmVjdGVkSW5wdXRzID0gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvckFuZFJlY3RbXT4oXG4gICAgICBuZXcgR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNBbmRSZWN0c1JlcXVlc3QodGhpcy5fZk91dHB1dClcbiAgICApO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgTWFya0FsbENhbkJlQ29ubmVjdGVkSW5wdXRzUmVxdWVzdCh0aGlzLl9jYW5CZUNvbm5lY3RlZElucHV0cy5tYXAoKHgpID0+IHguZkNvbm5lY3RvcikpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVTbmFwQ29ubmVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2ZTbmFwQ29ubmVjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24uZk91dHB1dElkID0gdGhpcy5fZk91dHB1dC5mSWQ7XG4gICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVDb25uZWN0aW9uRm9yQ3JlYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZDb25uZWN0aW9uLmZPdXRwdXRJZCA9IHRoaXMuX2ZPdXRwdXQuZklkO1xuICAgIHRoaXMuX2ZDb25uZWN0aW9uLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIGNvbnN0IGZDbG9zZXN0SW5wdXQgPSB0aGlzLl9maW5kQ2xvc2VzdElucHV0KGRpZmZlcmVuY2UpO1xuXG4gICAgdGhpcy5fZHJhd0Nvbm5lY3Rpb25Gb3JDcmVhdGUoXG4gICAgICB0aGlzLl90b0Nvbm5lY3RvclJlY3QuYWRkUG9pbnQoZGlmZmVyZW5jZSksXG4gICAgICBmQ2xvc2VzdElucHV0Py5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUgfHwgRUZDb25uZWN0YWJsZVNpZGUuVE9QXG4gICAgKTtcblxuICAgIGlmICh0aGlzLl9mU25hcENvbm5lY3Rpb24pIHtcbiAgICAgIHRoaXMuX2RyYXdTbmFwQ29ubmVjdGlvbih0aGlzLl9nZXRDbG9zZXN0SW5wdXRGb3JTbmFwQ29ubmVjdGlvbihmQ2xvc2VzdElucHV0KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZHJhd0Nvbm5lY3Rpb25Gb3JDcmVhdGUodG9Db25uZWN0b3JSZWN0OiBJUm91bmRlZFJlY3QsIGZTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJTGluZT4obmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25MaW5lQnlCZWhhdmlvclJlcXVlc3QoXG4gICAgICAgIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mUmVjdCxcbiAgICAgICAgdG9Db25uZWN0b3JSZWN0LFxuICAgICAgICB0aGlzLl9mQ29ubmVjdGlvbi5mQmVoYXZpb3IsXG4gICAgICAgIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICAgIGZTaWRlXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuX2ZDb25uZWN0aW9uLnNldExpbmUobGluZS5wb2ludDEsIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsIGxpbmUucG9pbnQyLCBmU2lkZSk7XG4gICAgdGhpcy5fZkNvbm5lY3Rpb24ucmVkcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3U25hcENvbm5lY3Rpb24oZkNsb3Nlc3RJbnB1dDogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChmQ2xvc2VzdElucHV0KSB7XG4gICAgICBjb25zdCBsaW5lID0gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUxpbmU+KG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0KFxuICAgICAgICAgIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mUmVjdCxcbiAgICAgICAgICBmQ2xvc2VzdElucHV0LmZSZWN0LFxuICAgICAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEuZkJlaGF2aW9yLFxuICAgICAgICAgIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICAgICAgZkNsb3Nlc3RJbnB1dC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEuc2hvdygpO1xuICAgICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uIS5zZXRMaW5lKGxpbmUucG9pbnQxLCB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLCBsaW5lLnBvaW50MiwgZkNsb3Nlc3RJbnB1dC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUpO1xuICAgICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uIS5yZWRyYXcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uPy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZmluZENsb3Nlc3RJbnB1dChkaWZmZXJlbmNlOiBJUG9pbnQpOiBJQ2xvc2VzdElucHV0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZD4oXG4gICAgICBuZXcgQ2FsY3VsYXRlQ2xvc2VzdElucHV0UmVxdWVzdChcbiAgICAgICAgdGhpcy5fdG9Db25uZWN0b3JSZWN0LmFkZFBvaW50KGRpZmZlcmVuY2UpLFxuICAgICAgICB0aGlzLl9jYW5CZUNvbm5lY3RlZElucHV0cyxcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q2xvc2VzdElucHV0Rm9yU25hcENvbm5lY3Rpb24oZkNsb3Nlc3RJbnB1dDogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCk6IElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBmQ2xvc2VzdElucHV0ICYmIGZDbG9zZXN0SW5wdXQuZGlzdGFuY2UgPCB0aGlzLl9mU25hcENvbm5lY3Rpb24hLmZTbmFwVGhyZXNob2xkID8gZkNsb3Nlc3RJbnB1dCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mQ29ubmVjdGlvbi5yZWRyYXcoKTtcbiAgICB0aGlzLl9mQ29ubmVjdGlvbi5oaWRlKCk7XG4gICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uPy5oaWRlKCk7XG5cbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBVbm1hcmtBbGxDYW5CZUNvbm5lY3RlZElucHV0c1JlcXVlc3QodGhpcy5fY2FuQmVDb25uZWN0ZWRJbnB1dHMubWFwKCh4KSA9PiB4LmZDb25uZWN0b3IpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF0YSgpOiBJQ3JlYXRlUmVhc3NpZ25Db25uZWN0aW9uRHJhZ0RhdGEge1xuICAgIHJldHVybiB7XG4gICAgICB0b0Nvbm5lY3RvclJlY3Q6IHRoaXMuX3RvQ29ubmVjdG9yUmVjdCxcbiAgICAgIGZPdXRwdXRJZDogdGhpcy5fZk91dHB1dC5mSWQsXG4gICAgICBjYW5CZUNvbm5lY3RlZElucHV0czogdGhpcy5fY2FuQmVDb25uZWN0ZWRJbnB1dHNcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1jcmVhdGUtcmVhc3NpZ24tY29ubmVjdGlvbi1kcmFnLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2ktY3JlYXRlLXJlYXNzaWduLWNvbm5lY3Rpb24tZHJhZy1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSUNvbm5lY3RvckFuZFJlY3QgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDcmVhdGVSZWFzc2lnbkNvbm5lY3Rpb25EcmFnRGF0YSB7XG5cbiAgdG9Db25uZWN0b3JSZWN0OiBSb3VuZGVkUmVjdDtcblxuICBmT3V0cHV0SWQ6IHN0cmluZztcblxuICBjYW5CZUNvbm5lY3RlZElucHV0czogSUNvbm5lY3RvckFuZFJlY3RbXTtcbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  export * from './create-connection';
2
- export * from './get-input-under-pointer';
3
2
  export * from './reassign-connection';
3
+ export * from './i-create-reassign-connection-drag-data';
4
4
  export * from './providers';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtY29ubmVjdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWlucHV0LXVuZGVyLXBvaW50ZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL3JlYXNzaWduLWNvbm5lY3Rpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxjQUFjLDBDQUEwQyxDQUFDO0FBRXpELGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtY29ubmVjdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vcmVhc3NpZ24tY29ubmVjdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vaS1jcmVhdGUtcmVhc3NpZ24tY29ubmVjdGlvbi1kcmFnLWRhdGEnO1xuXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XG4iXX0=
@@ -1,9 +1,6 @@
1
1
  import { CreateConnectionDragHandlerExecution, CreateConnectionFinalizeExecution, CreateConnectionFromOutletPreparationExecution, CreateConnectionFromOutputPreparationExecution, CreateConnectionFromOutputPreparationValidator, CreateConnectionPreparationExecution, GetCanBeConnectedOutputByOutletExecution, GetCanBeConnectedOutputByOutletValidator } from './create-connection';
2
2
  import { ReassignConnectionFinalizeExecution, ReassignConnectionPreparationExecution, } from './reassign-connection';
3
- import { GetInputUnderPointerExecution, GetInputUnderPointerValidator } from './get-input-under-pointer';
4
3
  export const CONNECTIONS_PROVIDERS = [
5
- GetInputUnderPointerExecution,
6
- GetInputUnderPointerValidator,
7
4
  CreateConnectionFinalizeExecution,
8
5
  CreateConnectionDragHandlerExecution,
9
6
  CreateConnectionFromOutletPreparationExecution,
@@ -15,4 +12,4 @@ export const CONNECTIONS_PROVIDERS = [
15
12
  ReassignConnectionFinalizeExecution,
16
13
  ReassignConnectionPreparationExecution,
17
14
  ];
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG9DQUFvQyxFQUNwQyxpQ0FBaUMsRUFDakMsOENBQThDLEVBQzlDLDhDQUE4QyxFQUM5Qyw4Q0FBOEMsRUFDOUMsb0NBQW9DLEVBQ3BDLHdDQUF3QyxFQUN4Qyx3Q0FBd0MsRUFDekMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLHNDQUFzQyxHQUN2QyxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpHLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBRW5DLDZCQUE2QjtJQUU3Qiw2QkFBNkI7SUFFN0IsaUNBQWlDO0lBRWpDLG9DQUFvQztJQUVwQyw4Q0FBOEM7SUFFOUMsd0NBQXdDO0lBRXhDLHdDQUF3QztJQUV4Qyw4Q0FBOEM7SUFFOUMsOENBQThDO0lBRTlDLG9DQUFvQztJQUVwQyxtQ0FBbUM7SUFFbkMsc0NBQXNDO0NBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDcmVhdGVDb25uZWN0aW9uRHJhZ0hhbmRsZXJFeGVjdXRpb24sXG4gIENyZWF0ZUNvbm5lY3Rpb25GaW5hbGl6ZUV4ZWN1dGlvbixcbiAgQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRsZXRQcmVwYXJhdGlvbkV4ZWN1dGlvbixcbiAgQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRwdXRQcmVwYXJhdGlvbkV4ZWN1dGlvbixcbiAgQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRwdXRQcmVwYXJhdGlvblZhbGlkYXRvcixcbiAgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uRXhlY3V0aW9uLFxuICBHZXRDYW5CZUNvbm5lY3RlZE91dHB1dEJ5T3V0bGV0RXhlY3V0aW9uLFxuICBHZXRDYW5CZUNvbm5lY3RlZE91dHB1dEJ5T3V0bGV0VmFsaWRhdG9yXG59IGZyb20gJy4vY3JlYXRlLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHtcbiAgUmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVFeGVjdXRpb24sXG4gIFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uRXhlY3V0aW9uLFxufSBmcm9tICcuL3JlYXNzaWduLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgR2V0SW5wdXRVbmRlclBvaW50ZXJFeGVjdXRpb24sIEdldElucHV0VW5kZXJQb2ludGVyVmFsaWRhdG9yIH0gZnJvbSAnLi9nZXQtaW5wdXQtdW5kZXItcG9pbnRlcic7XG5cbmV4cG9ydCBjb25zdCBDT05ORUNUSU9OU19QUk9WSURFUlMgPSBbXG5cbiAgR2V0SW5wdXRVbmRlclBvaW50ZXJFeGVjdXRpb24sXG5cbiAgR2V0SW5wdXRVbmRlclBvaW50ZXJWYWxpZGF0b3IsXG5cbiAgQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplRXhlY3V0aW9uLFxuXG4gIENyZWF0ZUNvbm5lY3Rpb25EcmFnSGFuZGxlckV4ZWN1dGlvbixcblxuICBDcmVhdGVDb25uZWN0aW9uRnJvbU91dGxldFByZXBhcmF0aW9uRXhlY3V0aW9uLFxuXG4gIEdldENhbkJlQ29ubmVjdGVkT3V0cHV0QnlPdXRsZXRFeGVjdXRpb24sXG5cbiAgR2V0Q2FuQmVDb25uZWN0ZWRPdXRwdXRCeU91dGxldFZhbGlkYXRvcixcblxuICBDcmVhdGVDb25uZWN0aW9uRnJvbU91dHB1dFByZXBhcmF0aW9uRXhlY3V0aW9uLFxuXG4gIENyZWF0ZUNvbm5lY3Rpb25Gcm9tT3V0cHV0UHJlcGFyYXRpb25WYWxpZGF0b3IsXG5cbiAgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uRXhlY3V0aW9uLFxuXG4gIFJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplRXhlY3V0aW9uLFxuXG4gIFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uRXhlY3V0aW9uLFxuXTtcbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG9DQUFvQyxFQUNwQyxpQ0FBaUMsRUFDakMsOENBQThDLEVBQzlDLDhDQUE4QyxFQUM5Qyw4Q0FBOEMsRUFDOUMsb0NBQW9DLEVBQ3BDLHdDQUF3QyxFQUN4Qyx3Q0FBd0MsRUFDekMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLHNDQUFzQyxHQUN2QyxNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBRW5DLGlDQUFpQztJQUVqQyxvQ0FBb0M7SUFFcEMsOENBQThDO0lBRTlDLHdDQUF3QztJQUV4Qyx3Q0FBd0M7SUFFeEMsOENBQThDO0lBRTlDLDhDQUE4QztJQUU5QyxvQ0FBb0M7SUFFcEMsbUNBQW1DO0lBRW5DLHNDQUFzQztDQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ3JlYXRlQ29ubmVjdGlvbkRyYWdIYW5kbGVyRXhlY3V0aW9uLFxuICBDcmVhdGVDb25uZWN0aW9uRmluYWxpemVFeGVjdXRpb24sXG4gIENyZWF0ZUNvbm5lY3Rpb25Gcm9tT3V0bGV0UHJlcGFyYXRpb25FeGVjdXRpb24sXG4gIENyZWF0ZUNvbm5lY3Rpb25Gcm9tT3V0cHV0UHJlcGFyYXRpb25FeGVjdXRpb24sXG4gIENyZWF0ZUNvbm5lY3Rpb25Gcm9tT3V0cHV0UHJlcGFyYXRpb25WYWxpZGF0b3IsXG4gIENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJhdGlvbkV4ZWN1dGlvbixcbiAgR2V0Q2FuQmVDb25uZWN0ZWRPdXRwdXRCeU91dGxldEV4ZWN1dGlvbixcbiAgR2V0Q2FuQmVDb25uZWN0ZWRPdXRwdXRCeU91dGxldFZhbGlkYXRvclxufSBmcm9tICcuL2NyZWF0ZS1jb25uZWN0aW9uJztcbmltcG9ydCB7XG4gIFJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplRXhlY3V0aW9uLFxuICBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvbkV4ZWN1dGlvbixcbn0gZnJvbSAnLi9yZWFzc2lnbi1jb25uZWN0aW9uJztcblxuZXhwb3J0IGNvbnN0IENPTk5FQ1RJT05TX1BST1ZJREVSUyA9IFtcblxuICBDcmVhdGVDb25uZWN0aW9uRmluYWxpemVFeGVjdXRpb24sXG5cbiAgQ3JlYXRlQ29ubmVjdGlvbkRyYWdIYW5kbGVyRXhlY3V0aW9uLFxuXG4gIENyZWF0ZUNvbm5lY3Rpb25Gcm9tT3V0bGV0UHJlcGFyYXRpb25FeGVjdXRpb24sXG5cbiAgR2V0Q2FuQmVDb25uZWN0ZWRPdXRwdXRCeU91dGxldEV4ZWN1dGlvbixcblxuICBHZXRDYW5CZUNvbm5lY3RlZE91dHB1dEJ5T3V0bGV0VmFsaWRhdG9yLFxuXG4gIENyZWF0ZUNvbm5lY3Rpb25Gcm9tT3V0cHV0UHJlcGFyYXRpb25FeGVjdXRpb24sXG5cbiAgQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRwdXRQcmVwYXJhdGlvblZhbGlkYXRvcixcblxuICBDcmVhdGVDb25uZWN0aW9uUHJlcGFyYXRpb25FeGVjdXRpb24sXG5cbiAgUmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVFeGVjdXRpb24sXG5cbiAgUmVhc3NpZ25Db25uZWN0aW9uUHJlcGFyYXRpb25FeGVjdXRpb24sXG5dO1xuIl19
@@ -1,53 +1,57 @@
1
1
  import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
2
+ import { inject, Injectable } from '@angular/core';
3
3
  import { ReassignConnectionFinalizeRequest } from './reassign-connection-finalize.request';
4
- import { FExecutionRegister } from '@foblex/mediator';
4
+ import { FComponentsStore } from '../../../../f-storage';
5
+ import { FDraggableDataContext } from '../../../f-draggable-data-context';
6
+ import { FExecutionRegister, FMediator } from '@foblex/mediator';
5
7
  import { ReassignConnectionDragHandler } from '../reassign-connection.drag-handler';
6
8
  import { FReassignConnectionEvent } from '../f-reassign-connection.event';
7
- import { GetInputUnderPointerRequest } from '../../get-input-under-pointer';
9
+ import { FindInputAtPositionRequest } from '../../../../domain';
8
10
  import * as i0 from "@angular/core";
9
- import * as i1 from "../../../../f-storage";
10
- import * as i2 from "../../../f-draggable-data-context";
11
- import * as i3 from "@foblex/mediator";
12
11
  let ReassignConnectionFinalizeExecution = class ReassignConnectionFinalizeExecution {
13
- fComponentsStore;
14
- fDraggableDataContext;
15
- fMediator;
16
- get fDraggable() {
17
- return this.fComponentsStore.fDraggable;
12
+ _fMediator = inject(FMediator);
13
+ _fComponentsStore = inject(FComponentsStore);
14
+ _fDraggableDataContext = inject(FDraggableDataContext);
15
+ get _fDraggable() {
16
+ return this._fComponentsStore.fDraggable;
18
17
  }
19
- get dragHandler() {
20
- return this.fDraggableDataContext.draggableItems[0];
21
- }
22
- constructor(fComponentsStore, fDraggableDataContext, fMediator) {
23
- this.fComponentsStore = fComponentsStore;
24
- this.fDraggableDataContext = fDraggableDataContext;
25
- this.fMediator = fMediator;
18
+ get _fDragHandler() {
19
+ return this._fDraggableDataContext.draggableItems[0];
26
20
  }
27
21
  handle(request) {
28
- if (!this._isValid()) {
22
+ if (!this._isDroppedConnectionReassignEvent()) {
29
23
  return;
30
24
  }
31
- this.emitEvent(request.event);
32
- this.dragHandler.onPointerUp();
25
+ this._applyReassignEvent(request.event);
26
+ this._fDragHandler.onPointerUp();
33
27
  }
34
- _isValid() {
35
- return this.fDraggableDataContext.draggableItems.some((x) => x instanceof ReassignConnectionDragHandler);
28
+ _isDroppedConnectionReassignEvent() {
29
+ return this._fDraggableDataContext.draggableItems.some((x) => x instanceof ReassignConnectionDragHandler);
36
30
  }
37
- emitEvent(event) {
38
- const input = this.getInputUnderPointer(event);
39
- if (!!input && !this.isReassignToDifferentInput(input)) {
31
+ _applyReassignEvent(event) {
32
+ const fInput = this._getInputUnderPointer(event);
33
+ if (!!fInput && !this._isReassignToDifferentInput(fInput)) {
40
34
  return;
41
35
  }
42
- this.fDraggable.fReassignConnection.emit(new FReassignConnectionEvent(this.dragHandler.fConnection.fId, this.dragHandler.fConnection.fOutputId, this.dragHandler.fConnection.fInputId, input?.fId, event.getPosition()));
36
+ this._emitReassignConnectionEvent(event, fInput);
37
+ }
38
+ _getInputUnderPointer(event) {
39
+ return this._fMediator.send(new FindInputAtPositionRequest(event.getPosition(), this._getDragHandlerData().toConnectorRect, this._getDragHandlerData().canBeConnectedInputs));
40
+ }
41
+ _isReassignToDifferentInput(fInput) {
42
+ return this._fDragHandler.getConnection().fInputId !== fInput.fId;
43
+ }
44
+ _emitReassignConnectionEvent(event, fInput) {
45
+ this._fDraggable.fReassignConnection.emit(this._getEventData(event, fInput));
43
46
  }
44
- getInputUnderPointer(event) {
45
- return this.fMediator.send(new GetInputUnderPointerRequest(event, this.dragHandler));
47
+ _getEventData(event, fInput) {
48
+ const fConnection = this._fDragHandler.getConnection();
49
+ return new FReassignConnectionEvent(fConnection.fId, fConnection.fOutputId, fConnection.fInputId, fInput?.fId, event.getPosition());
46
50
  }
47
- isReassignToDifferentInput(inputsUnderPointer) {
48
- return this.dragHandler.fConnection.fInputId !== inputsUnderPointer.fId;
51
+ _getDragHandlerData() {
52
+ return this._fDragHandler.getData();
49
53
  }
50
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeExecution, deps: [{ token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }, { token: i3.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
51
55
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeExecution });
52
56
  };
53
57
  ReassignConnectionFinalizeExecution = __decorate([
@@ -56,5 +60,5 @@ ReassignConnectionFinalizeExecution = __decorate([
56
60
  export { ReassignConnectionFinalizeExecution };
57
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionFinalizeExecution, decorators: [{
58
62
  type: Injectable
59
- }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.FMediator }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi1maW5hbGl6ZS5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL3JlYXNzaWduLWNvbm5lY3Rpb24vcmVhc3NpZ24tY29ubmVjdGlvbi1maW5hbGl6ZS9yZWFzc2lnbi1jb25uZWN0aW9uLWZpbmFsaXplLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUczRixPQUFPLEVBQUUsa0JBQWtCLEVBQXlCLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHMUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBSXJFLElBQU0sbUNBQW1DLEdBQXpDLE1BQU0sbUNBQW1DO0lBV3BDO0lBQ0E7SUFDQTtJQVhWLElBQVksVUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFXLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVksV0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUUsQ0FBQyxDQUFtQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxZQUNVLGdCQUFrQyxFQUNsQyxxQkFBNEMsRUFDNUMsU0FBb0I7UUFGcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFFOUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUEwQztRQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxRQUFRO1FBQ2QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDbkQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSw2QkFBNkIsQ0FDbEQsQ0FBQztJQUNKLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQ0UsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsRUFDbEQsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQ3RDLElBQUksd0JBQXdCLENBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQ3JDLEtBQUssRUFBRSxHQUFHLEVBQ1YsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUNwQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBb0I7UUFDL0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBNkIsSUFBSSwyQkFBMkIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVPLDBCQUEwQixDQUFDLGtCQUFrQztRQUNuRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsS0FBSyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7SUFDMUUsQ0FBQzt1R0F2RFUsbUNBQW1DOzJHQUFuQyxtQ0FBbUM7O0FBQW5DLG1DQUFtQztJQUQvQyxrQkFBa0IsQ0FBQyxpQ0FBaUMsQ0FBQztHQUN6QyxtQ0FBbUMsQ0F3RC9DOzsyRkF4RFksbUNBQW1DO2tCQUYvQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVSZXF1ZXN0IH0gZnJvbSAnLi9yZWFzc2lnbi1jb25uZWN0aW9uLWZpbmFsaXplLnJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IFJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vcmVhc3NpZ24tY29ubmVjdGlvbi5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRkRyYWdnYWJsZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZS1iYXNlJztcbmltcG9ydCB7IEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudCB9IGZyb20gJy4uL2YtcmVhc3NpZ24tY29ubmVjdGlvbi5ldmVudCc7XG5pbXBvcnQgeyBJUG9pbnRlckV2ZW50IH0gZnJvbSAnQGZvYmxleC9kcmFnLXRvb2xraXQnO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgR2V0SW5wdXRVbmRlclBvaW50ZXJSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZ2V0LWlucHV0LXVuZGVyLXBvaW50ZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKFJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBSZWFzc2lnbkNvbm5lY3Rpb25GaW5hbGl6ZUV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248UmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVSZXF1ZXN0LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgZkRyYWdnYWJsZSgpOiBGRHJhZ2dhYmxlQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlITtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGRyYWdIYW5kbGVyKCk6IFJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXNbIDAgXSBhcyBSZWFzc2lnbkNvbm5lY3Rpb25EcmFnSGFuZGxlcjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGTWVkaWF0b3JcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IFJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNWYWxpZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZW1pdEV2ZW50KHJlcXVlc3QuZXZlbnQpO1xuICAgIHRoaXMuZHJhZ0hhbmRsZXIub25Qb2ludGVyVXAoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLnNvbWUoXG4gICAgICAoeCkgPT4geCBpbnN0YW5jZW9mIFJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEV2ZW50KGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmdldElucHV0VW5kZXJQb2ludGVyKGV2ZW50KTtcbiAgICBpZiAoXG4gICAgICAhIWlucHV0ICYmICF0aGlzLmlzUmVhc3NpZ25Ub0RpZmZlcmVudElucHV0KGlucHV0KVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZEcmFnZ2FibGUuZlJlYXNzaWduQ29ubmVjdGlvbi5lbWl0KFxuICAgICAgbmV3IEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudChcbiAgICAgICAgdGhpcy5kcmFnSGFuZGxlci5mQ29ubmVjdGlvbi5mSWQsXG4gICAgICAgIHRoaXMuZHJhZ0hhbmRsZXIuZkNvbm5lY3Rpb24uZk91dHB1dElkLFxuICAgICAgICB0aGlzLmRyYWdIYW5kbGVyLmZDb25uZWN0aW9uLmZJbnB1dElkLFxuICAgICAgICBpbnB1dD8uZklkLFxuICAgICAgICBldmVudC5nZXRQb3NpdGlvbigpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5wdXRVbmRlclBvaW50ZXIoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiBGQ29ubmVjdG9yQmFzZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQ8RkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQ+KG5ldyBHZXRJbnB1dFVuZGVyUG9pbnRlclJlcXVlc3QoZXZlbnQsIHRoaXMuZHJhZ0hhbmRsZXIpKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSZWFzc2lnblRvRGlmZmVyZW50SW5wdXQoaW5wdXRzVW5kZXJQb2ludGVyOiBGQ29ubmVjdG9yQmFzZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRyYWdIYW5kbGVyLmZDb25uZWN0aW9uLmZJbnB1dElkICE9PSBpbnB1dHNVbmRlclBvaW50ZXIuZklkO1xuICB9XG59XG4iXX0=
63
+ }] });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi1maW5hbGl6ZS5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL3JlYXNzaWduLWNvbm5lY3Rpb24vcmVhc3NpZ24tY29ubmVjdGlvbi1maW5hbGl6ZS9yZWFzc2lnbi1jb25uZWN0aW9uLWZpbmFsaXplLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUl6RCxJQUFNLG1DQUFtQyxHQUF6QyxNQUFNLG1DQUFtQztJQUV0QyxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRS9ELElBQVksV0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFXLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVksYUFBYTtRQUN2QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUUsQ0FBQyxDQUFtQyxDQUFDO0lBQzFGLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBMEM7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxFQUFFLENBQUM7WUFDOUMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVPLGlDQUFpQztRQUN2QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNwRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLDZCQUE2QixDQUNsRCxDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQW9CO1FBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxJQUNFLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsTUFBTSxDQUFDLEVBQ3JELENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQW9CO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLElBQUksMEJBQTBCLENBQzVCLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFDbkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsZUFBZSxFQUMxQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxvQkFBb0IsQ0FDaEQsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLDJCQUEyQixDQUFDLE1BQXNCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNwRSxDQUFDO0lBRU8sNEJBQTRCLENBQUMsS0FBb0IsRUFBRSxNQUF1QjtRQUNoRixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBb0IsRUFBRSxNQUF1QjtRQUNqRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXZELE9BQU8sSUFBSSx3QkFBd0IsQ0FDakMsV0FBVyxDQUFDLEdBQUcsRUFDZixXQUFXLENBQUMsU0FBUyxFQUNyQixXQUFXLENBQUMsUUFBUSxFQUNwQixNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FDakMsQ0FBQztJQUNKLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RDLENBQUM7dUdBckVVLG1DQUFtQzsyR0FBbkMsbUNBQW1DOztBQUFuQyxtQ0FBbUM7SUFEL0Msa0JBQWtCLENBQUMsaUNBQWlDLENBQUM7R0FDekMsbUNBQW1DLENBc0UvQzs7MkZBdEVZLG1DQUFtQztrQkFGL0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVSZXF1ZXN0IH0gZnJvbSAnLi9yZWFzc2lnbi1jb25uZWN0aW9uLWZpbmFsaXplLnJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IFJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vcmVhc3NpZ24tY29ubmVjdGlvbi5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRkRyYWdnYWJsZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZS1iYXNlJztcbmltcG9ydCB7IEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudCB9IGZyb20gJy4uL2YtcmVhc3NpZ24tY29ubmVjdGlvbi5ldmVudCc7XG5pbXBvcnQgeyBJUG9pbnRlckV2ZW50IH0gZnJvbSAnQGZvYmxleC9kcmFnLXRvb2xraXQnO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRmluZElucHV0QXRQb3NpdGlvblJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKFJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBSZWFzc2lnbkNvbm5lY3Rpb25GaW5hbGl6ZUV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248UmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVSZXF1ZXN0LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgX2ZDb21wb25lbnRzU3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgX2ZEcmFnZ2FibGVEYXRhQ29udGV4dCA9IGluamVjdChGRHJhZ2dhYmxlRGF0YUNvbnRleHQpO1xuXG4gIHByaXZhdGUgZ2V0IF9mRHJhZ2dhYmxlKCk6IEZEcmFnZ2FibGVCYXNlIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlITtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9mRHJhZ0hhbmRsZXIoKTogUmVhc3NpZ25Db25uZWN0aW9uRHJhZ0hhbmRsZXIge1xuICAgIHJldHVybiB0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXNbIDAgXSBhcyBSZWFzc2lnbkNvbm5lY3Rpb25EcmFnSGFuZGxlcjtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogUmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVSZXF1ZXN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc0Ryb3BwZWRDb25uZWN0aW9uUmVhc3NpZ25FdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2FwcGx5UmVhc3NpZ25FdmVudChyZXF1ZXN0LmV2ZW50KTtcbiAgICB0aGlzLl9mRHJhZ0hhbmRsZXIub25Qb2ludGVyVXAoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzRHJvcHBlZENvbm5lY3Rpb25SZWFzc2lnbkV2ZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuc29tZShcbiAgICAgICh4KSA9PiB4IGluc3RhbmNlb2YgUmVhc3NpZ25Db25uZWN0aW9uRHJhZ0hhbmRsZXJcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlSZWFzc2lnbkV2ZW50KGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZklucHV0ID0gdGhpcy5fZ2V0SW5wdXRVbmRlclBvaW50ZXIoZXZlbnQpO1xuICAgIGlmIChcbiAgICAgICEhZklucHV0ICYmICF0aGlzLl9pc1JlYXNzaWduVG9EaWZmZXJlbnRJbnB1dChmSW5wdXQpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2VtaXRSZWFzc2lnbkNvbm5lY3Rpb25FdmVudChldmVudCwgZklucHV0KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldElucHV0VW5kZXJQb2ludGVyKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogRkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3Iuc2VuZDxGQ29ubmVjdG9yQmFzZSB8IHVuZGVmaW5lZD4oXG4gICAgICBuZXcgRmluZElucHV0QXRQb3NpdGlvblJlcXVlc3QoXG4gICAgICAgIGV2ZW50LmdldFBvc2l0aW9uKCksXG4gICAgICAgIHRoaXMuX2dldERyYWdIYW5kbGVyRGF0YSgpLnRvQ29ubmVjdG9yUmVjdCxcbiAgICAgICAgdGhpcy5fZ2V0RHJhZ0hhbmRsZXJEYXRhKCkuY2FuQmVDb25uZWN0ZWRJbnB1dHNcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNSZWFzc2lnblRvRGlmZmVyZW50SW5wdXQoZklucHV0OiBGQ29ubmVjdG9yQmFzZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mRHJhZ0hhbmRsZXIuZ2V0Q29ubmVjdGlvbigpLmZJbnB1dElkICE9PSBmSW5wdXQuZklkO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdFJlYXNzaWduQ29ubmVjdGlvbkV2ZW50KGV2ZW50OiBJUG9pbnRlckV2ZW50LCBmSW5wdXQ/OiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQge1xuICAgIHRoaXMuX2ZEcmFnZ2FibGUuZlJlYXNzaWduQ29ubmVjdGlvbi5lbWl0KHRoaXMuX2dldEV2ZW50RGF0YShldmVudCwgZklucHV0KSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRFdmVudERhdGEoZXZlbnQ6IElQb2ludGVyRXZlbnQsIGZJbnB1dD86IEZDb25uZWN0b3JCYXNlKTogRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50IHtcbiAgICBjb25zdCBmQ29ubmVjdGlvbiA9IHRoaXMuX2ZEcmFnSGFuZGxlci5nZXRDb25uZWN0aW9uKCk7XG5cbiAgICByZXR1cm4gbmV3IEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudChcbiAgICAgIGZDb25uZWN0aW9uLmZJZCxcbiAgICAgIGZDb25uZWN0aW9uLmZPdXRwdXRJZCxcbiAgICAgIGZDb25uZWN0aW9uLmZJbnB1dElkLFxuICAgICAgZklucHV0Py5mSWQsIGV2ZW50LmdldFBvc2l0aW9uKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RHJhZ0hhbmRsZXJEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9mRHJhZ0hhbmRsZXIuZ2V0RGF0YSgpO1xuICB9XG59XG4iXX0=
@@ -69,4 +69,4 @@ export { ReassignConnectionPreparationExecution };
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReassignConnectionPreparationExecution, decorators: [{
70
70
  type: Injectable
71
71
  }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi1wcmVwYXJhdGlvbi5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL3JlYXNzaWduLWNvbm5lY3Rpb24vcmVhc3NpZ24tY29ubmVjdGlvbi1wcmVwYXJhdGlvbi9yZWFzc2lnbi1jb25uZWN0aW9uLXByZXBhcmF0aW9uLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakcsT0FBTyxFQUEyQixLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBRTdFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUk3RSxJQUFNLHNDQUFzQyxHQUE1QyxNQUFNLHNDQUFzQztJQUV6QyxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRXZELFlBQVksQ0FBOEI7SUFFbEQsSUFBWSxVQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQVEsQ0FBQyxT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QUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUNyQixJQUFJLGtDQUFrQyxDQUNwQyxJQUFJLENBQUMsWUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFRLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUN4RixDQUNGLENBQUM7SUFDSixDQUFDO3VHQXBFVSxzQ0FBc0M7MkdBQXRDLHNDQUFzQzs7QUFBdEMsc0NBQXNDO0lBRGxELGtCQUFrQixDQUFDLG9DQUFvQyxDQUFDO0dBQzVDLHNDQUFzQyxDQXFFbEQ7OzJGQXJFWSxzQ0FBc0M7a0JBRmxELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vcmVhc3NpZ24tY29ubmVjdGlvbi1wcmVwYXJhdGlvbi5yZXF1ZXN0JztcbmltcG9ydCB7IElQb2ludCwgSVRyYW5zZm9ybU1vZGVsLCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgVXBkYXRlSXRlbUFuZENoaWxkcmVuTGF5ZXJzUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IFJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vcmVhc3NpZ24tY29ubmVjdGlvbi5kcmFnLWhhbmRsZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvbkV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248UmVhc3NpZ25Db25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgX2ZDb21wb25lbnRzU3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgX2ZEcmFnZ2FibGVEYXRhQ29udGV4dCA9IGluamVjdChGRHJhZ2dhYmxlRGF0YUNvbnRleHQpO1xuXG4gIHByaXZhdGUgX2ZDb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBnZXQgX3RyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnRyYW5zZm9ybTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9mSG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2ZDb25uZWN0aW9ucygpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNvbm5lY3Rpb25zO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWQocmVxdWVzdCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blNjYWxlID0gdGhpcy5fdHJhbnNmb3JtLnNjYWxlO1xuICAgIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24gPSBQb2ludC5mcm9tUG9pbnQocmVxdWVzdC5ldmVudC5nZXRQb3NpdGlvbigpKVxuICAgICAgLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5fZkhvc3QpLmRpdih0aGlzLl90cmFuc2Zvcm0uc2NhbGUpO1xuICAgIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcyA9IFtcbiAgICAgIG5ldyBSZWFzc2lnbkNvbm5lY3Rpb25EcmFnSGFuZGxlcih0aGlzLl9mTWVkaWF0b3IsIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUsIHRoaXMuX2ZDb25uZWN0aW9uISlcbiAgICBdO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl91cGRhdGVDb25uZWN0aW9uTGF5ZXIoKSk7XG4gIH1cblxuICBwcml2YXRlIF9pc1ZhbGlkKHJlcXVlc3Q6IFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuX2ZDb25uZWN0aW9uID0gdGhpcy5fZ2V0Q29ubmVjdGlvblRvUmVhc3NpZ24odGhpcy5fZ2V0UG9pbnRJbkZsb3cocmVxdWVzdCkpO1xuICAgIHJldHVybiAhIXRoaXMuX2ZDb25uZWN0aW9uICYmICF0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UG9pbnRJbkZsb3cocmVxdWVzdDogUmVhc3NpZ25Db25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0KTogSVBvaW50IHtcbiAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHJlcXVlc3QuZXZlbnQuZ2V0UG9zaXRpb24oKSlcbiAgICAgIC5lbGVtZW50VHJhbnNmb3JtKHRoaXMuX2ZIb3N0KVxuICAgICAgLnN1Yih0aGlzLl90cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24pLnN1Yih0aGlzLl90cmFuc2Zvcm0ucG9zaXRpb24pXG4gICAgICAuZGl2KHRoaXMuX3RyYW5zZm9ybS5zY2FsZSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb25uZWN0aW9uVG9SZWFzc2lnbihwb3NpdGlvbjogSVBvaW50KTogRkNvbm5lY3Rpb25CYXNlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjb25uZWN0aW9ucyA9IHRoaXMuX2dldENvbm5lY3Rpb25zRnJvbVBvaW50KHBvc2l0aW9uKTtcbiAgICByZXR1cm4gY29ubmVjdGlvbnMubGVuZ3RoID8gY29ubmVjdGlvbnNbMF0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb25uZWN0aW9uc0Zyb21Qb2ludChwb3NpdGlvbjogSVBvaW50KTogRkNvbm5lY3Rpb25CYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9mQ29ubmVjdGlvbnMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5faXNQb2ludEluc2lkZUNpcmNsZShwb3NpdGlvbiwgeC5mRHJhZ0hhbmRsZS5wb2ludCkgJiYgIXguZkRyYWdnaW5nRGlzYWJsZWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pc1BvaW50SW5zaWRlQ2lyY2xlKHBvaW50OiBJUG9pbnQsIGNpcmNsZUNlbnRlcjogSVBvaW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChwb2ludC54IC0gY2lyY2xlQ2VudGVyLngpICoqIDIgKyAocG9pbnQueSAtIGNpcmNsZUNlbnRlci55KSAqKiAyIDw9IDggKiogMjtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNvbm5lY3Rpb25MYXllcigpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihcbiAgICAgIG5ldyBVcGRhdGVJdGVtQW5kQ2hpbGRyZW5MYXllcnNSZXF1ZXN0KFxuICAgICAgICB0aGlzLl9mQ29ubmVjdGlvbiEsIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEuZkNvbm5lY3Rpb25zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnRcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi1wcmVwYXJhdGlvbi5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL3JlYXNzaWduLWNvbm5lY3Rpb24vcmVhc3NpZ24tY29ubmVjdGlvbi1wcmVwYXJhdGlvbi9yZWFzc2lnbi1jb25uZWN0aW9uLXByZXBhcmF0aW9uLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakcsT0FBTyxFQUEyQixLQUFLLEVBQW1CLE1BQU0sWUFBWSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFJN0UsSUFBTSxzQ0FBc0MsR0FBNUMsTUFBTSxzQ0FBc0M7SUFFekMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixpQkFBaUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3QyxzQkFBc0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUV2RCxZQUFZLENBQThCO0lBRWxELElBQVksVUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFRLENBQUMs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Q0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDckIsSUFBSSxrQ0FBa0MsQ0FDcEMsSUFBSSxDQUFDLFlBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBUSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FDeEYsQ0FDRixDQUFDO0lBQ0osQ0FBQzt1R0FwRVUsc0NBQXNDOzJHQUF0QyxzQ0FBc0M7O0FBQXRDLHNDQUFzQztJQURsRCxrQkFBa0IsQ0FBQyxvQ0FBb0MsQ0FBQztHQUM1QyxzQ0FBc0MsQ0FxRWxEOzsyRkFyRVksc0NBQXNDO2tCQUZsRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuL3JlYXNzaWduLWNvbm5lY3Rpb24tcHJlcGFyYXRpb24ucmVxdWVzdCc7XG5pbXBvcnQgeyBJUG9pbnQsIElUcmFuc2Zvcm1Nb2RlbCwgUG9pbnQsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgVXBkYXRlSXRlbUFuZENoaWxkcmVuTGF5ZXJzUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IFJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vcmVhc3NpZ24tY29ubmVjdGlvbi5kcmFnLWhhbmRsZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvbkV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248UmVhc3NpZ25Db25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgX2ZDb21wb25lbnRzU3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgX2ZEcmFnZ2FibGVEYXRhQ29udGV4dCA9IGluamVjdChGRHJhZ2dhYmxlRGF0YUNvbnRleHQpO1xuXG4gIHByaXZhdGUgX2ZDb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBnZXQgX3RyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnRyYW5zZm9ybTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9mSG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2ZDb25uZWN0aW9ucygpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNvbm5lY3Rpb25zO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWQocmVxdWVzdCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blNjYWxlID0gdGhpcy5fdHJhbnNmb3JtLnNjYWxlO1xuICAgIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24gPSBQb2ludC5mcm9tUG9pbnQocmVxdWVzdC5ldmVudC5nZXRQb3NpdGlvbigpKVxuICAgICAgLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5fZkhvc3QpLmRpdih0aGlzLl90cmFuc2Zvcm0uc2NhbGUpO1xuICAgIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcyA9IFtcbiAgICAgIG5ldyBSZWFzc2lnbkNvbm5lY3Rpb25EcmFnSGFuZGxlcih0aGlzLl9mTWVkaWF0b3IsIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUsIHRoaXMuX2ZDb25uZWN0aW9uISlcbiAgICBdO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl91cGRhdGVDb25uZWN0aW9uTGF5ZXIoKSk7XG4gIH1cblxuICBwcml2YXRlIF9pc1ZhbGlkKHJlcXVlc3Q6IFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuX2ZDb25uZWN0aW9uID0gdGhpcy5fZ2V0Q29ubmVjdGlvblRvUmVhc3NpZ24odGhpcy5fZ2V0UG9pbnRJbkZsb3cocmVxdWVzdCkpO1xuICAgIHJldHVybiAhIXRoaXMuX2ZDb25uZWN0aW9uICYmICF0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UG9pbnRJbkZsb3cocmVxdWVzdDogUmVhc3NpZ25Db25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0KTogSVBvaW50IHtcbiAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHJlcXVlc3QuZXZlbnQuZ2V0UG9zaXRpb24oKSlcbiAgICAgIC5lbGVtZW50VHJhbnNmb3JtKHRoaXMuX2ZIb3N0KVxuICAgICAgLnN1Yih0aGlzLl90cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24pLnN1Yih0aGlzLl90cmFuc2Zvcm0ucG9zaXRpb24pXG4gICAgICAuZGl2KHRoaXMuX3RyYW5zZm9ybS5zY2FsZSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb25uZWN0aW9uVG9SZWFzc2lnbihwb3NpdGlvbjogSVBvaW50KTogRkNvbm5lY3Rpb25CYXNlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjb25uZWN0aW9ucyA9IHRoaXMuX2dldENvbm5lY3Rpb25zRnJvbVBvaW50KHBvc2l0aW9uKTtcbiAgICByZXR1cm4gY29ubmVjdGlvbnMubGVuZ3RoID8gY29ubmVjdGlvbnNbMF0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb25uZWN0aW9uc0Zyb21Qb2ludChwb3NpdGlvbjogSVBvaW50KTogRkNvbm5lY3Rpb25CYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9mQ29ubmVjdGlvbnMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5faXNQb2ludEluc2lkZUNpcmNsZShwb3NpdGlvbiwgeC5mRHJhZ0hhbmRsZS5wb2ludCkgJiYgIXguZkRyYWdnaW5nRGlzYWJsZWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pc1BvaW50SW5zaWRlQ2lyY2xlKHBvaW50OiBJUG9pbnQsIGNpcmNsZUNlbnRlcjogSVBvaW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChwb2ludC54IC0gY2lyY2xlQ2VudGVyLngpICoqIDIgKyAocG9pbnQueSAtIGNpcmNsZUNlbnRlci55KSAqKiAyIDw9IDggKiogMjtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNvbm5lY3Rpb25MYXllcigpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihcbiAgICAgIG5ldyBVcGRhdGVJdGVtQW5kQ2hpbGRyZW5MYXllcnNSZXF1ZXN0KFxuICAgICAgICB0aGlzLl9mQ29ubmVjdGlvbiEsIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEuZkNvbm5lY3Rpb25zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnRcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=