@foblex/flow 17.6.1 → 17.7.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 (515) hide show
  1. package/domain/css-cls.d.ts +4 -0
  2. package/domain/f-canvas/providers.d.ts +1 -1
  3. package/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.execution.d.ts +1 -1
  4. package/domain/f-connectors/add-output-to-store/add-output-to-store.execution.d.ts +1 -1
  5. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.d.ts +1 -1
  6. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.d.ts +1 -1
  7. package/domain/f-connectors/providers.d.ts +1 -1
  8. package/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.d.ts +1 -1
  9. package/domain/f-draggable/end-drag-sequence/end-drag-sequence.execution.d.ts +1 -1
  10. package/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.d.ts +1 -1
  11. package/domain/f-draggable/is-drag-started/index.d.ts +1 -1
  12. package/domain/f-draggable/is-drag-started/{is-drag-started.execution.d.ts → is-drag-started.d.ts} +3 -3
  13. package/domain/f-draggable/on-pointer-move/on-pointer-move.execution.d.ts +1 -1
  14. package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.d.ts +1 -1
  15. package/domain/f-draggable/providers.d.ts +2 -2
  16. package/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.d.ts +1 -1
  17. package/domain/f-flow/get-flow-state/i-f-flow-state-node.d.ts +2 -1
  18. package/domain/f-flow/get-flow-state/providers.d.ts +1 -1
  19. package/domain/f-flow/providers.d.ts +1 -1
  20. package/domain/f-node/add-node-to-store/{add-node-to-store.execution.d.ts → add-node-to-store.d.ts} +3 -3
  21. package/domain/f-node/add-node-to-store/index.d.ts +1 -1
  22. package/domain/f-node/calculate-input-connections/{calculate-input-connections.execution.d.ts → calculate-input-connections.d.ts} +3 -3
  23. package/domain/f-node/calculate-input-connections/index.d.ts +1 -1
  24. package/domain/f-node/calculate-nodes-bounding-box/{calculate-nodes-bounding-box.execution.d.ts → calculate-nodes-bounding-box.d.ts} +3 -3
  25. package/domain/f-node/calculate-nodes-bounding-box/index.d.ts +1 -1
  26. package/domain/f-node/calculate-nodes-bounding-box-normalized-position/{calculate-nodes-bounding-box-normalized-position.execution.d.ts → calculate-nodes-bounding-box-normalized-position.d.ts} +3 -3
  27. package/domain/f-node/calculate-nodes-bounding-box-normalized-position/index.d.ts +1 -1
  28. package/domain/f-node/calculate-output-connections/{calculate-output-connections.execution.d.ts → calculate-output-connections.d.ts} +3 -3
  29. package/domain/f-node/calculate-output-connections/index.d.ts +1 -1
  30. package/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups-request.d.ts +6 -0
  31. package/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups.d.ts +16 -0
  32. package/domain/f-node/fit-to-child-nodes-and-groups/index.d.ts +2 -0
  33. package/domain/f-node/get-child-node-ids/get-child-node-ids.d.ts +14 -0
  34. package/domain/f-node/get-child-node-ids/get-child-node-ids.request.d.ts +5 -0
  35. package/domain/f-node/get-child-node-ids/index.d.ts +2 -0
  36. package/domain/f-node/get-node-padding/{get-node-padding.execution.d.ts → get-node-padding.d.ts} +3 -3
  37. package/domain/f-node/get-node-padding/index.d.ts +1 -1
  38. package/domain/f-node/get-nodes/{get-nodes.execution.d.ts → get-nodes.d.ts} +3 -3
  39. package/domain/f-node/get-nodes/index.d.ts +1 -1
  40. package/domain/f-node/get-parent-nodes/{get-parent-nodes.execution.d.ts → get-parent-nodes.d.ts} +3 -3
  41. package/domain/f-node/get-parent-nodes/index.d.ts +1 -1
  42. package/domain/f-node/index.d.ts +2 -0
  43. package/domain/f-node/providers.d.ts +13 -11
  44. package/domain/f-node/remove-node-from-store/index.d.ts +1 -1
  45. package/domain/f-node/remove-node-from-store/{remove-node-from-store.execution.d.ts → remove-node-from-store.d.ts} +3 -3
  46. package/domain/f-node/update-node-when-state-or-size-changed/index.d.ts +1 -1
  47. package/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed-request.d.ts +2 -2
  48. package/domain/f-node/update-node-when-state-or-size-changed/{update-node-when-state-or-size-changed.execution.d.ts → update-node-when-state-or-size-changed.d.ts} +6 -4
  49. package/domain/f-selection/clear-selection/clear-selection.execution.d.ts +1 -1
  50. package/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.d.ts +1 -1
  51. package/domain/f-selection/get-current-selection/get-current-selection.execution.d.ts +1 -1
  52. package/domain/f-selection/select/select.execution.d.ts +1 -1
  53. package/domain/f-selection/select-all/select-all.execution.d.ts +1 -1
  54. package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.d.ts +1 -1
  55. package/domain/providers.d.ts +1 -1
  56. package/esm2022/domain/css-cls.mjs +5 -1
  57. package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node.execution.mjs +2 -2
  58. package/esm2022/domain/f-canvas/fit-to-flow/fit-to-flow.execution.mjs +2 -2
  59. package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.mjs +2 -2
  60. package/esm2022/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.execution.mjs +3 -3
  61. package/esm2022/domain/f-connectors/add-output-to-store/add-output-to-store.execution.mjs +3 -3
  62. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.mjs +2 -2
  63. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.mjs +3 -3
  64. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.mjs +3 -3
  65. package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.mjs +4 -4
  66. package/esm2022/domain/f-draggable/end-drag-sequence/end-drag-sequence.execution.mjs +3 -3
  67. package/esm2022/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.mjs +3 -3
  68. package/esm2022/domain/f-draggable/is-drag-started/index.mjs +2 -2
  69. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started-request.mjs +1 -1
  70. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started.mjs +25 -0
  71. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.execution.mjs +5 -5
  72. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.mjs +3 -3
  73. package/esm2022/domain/f-draggable/providers.mjs +3 -3
  74. package/esm2022/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.mjs +5 -5
  75. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +5 -4
  76. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-node.mjs +1 -1
  77. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.mjs +25 -0
  78. package/esm2022/domain/f-node/add-node-to-store/index.mjs +2 -2
  79. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.mjs +34 -0
  80. package/esm2022/domain/f-node/calculate-input-connections/index.mjs +2 -2
  81. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.mjs +33 -0
  82. package/esm2022/domain/f-node/calculate-nodes-bounding-box/index.mjs +2 -2
  83. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.mjs +36 -0
  84. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/index.mjs +2 -2
  85. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.mjs +34 -0
  86. package/esm2022/domain/f-node/calculate-output-connections/index.mjs +2 -2
  87. package/esm2022/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups-request.mjs +8 -0
  88. package/esm2022/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups.mjs +64 -0
  89. package/esm2022/domain/f-node/fit-to-child-nodes-and-groups/index.mjs +3 -0
  90. package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.mjs +45 -0
  91. package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.request.mjs +8 -0
  92. package/esm2022/domain/f-node/get-child-node-ids/index.mjs +3 -0
  93. package/esm2022/domain/f-node/get-node-padding/get-node-padding.mjs +35 -0
  94. package/esm2022/domain/f-node/get-node-padding/index.mjs +2 -2
  95. package/esm2022/domain/f-node/get-nodes/get-nodes.mjs +25 -0
  96. package/esm2022/domain/f-node/get-nodes/index.mjs +2 -2
  97. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.mjs +37 -0
  98. package/esm2022/domain/f-node/get-parent-nodes/index.mjs +2 -2
  99. package/esm2022/domain/f-node/index.mjs +3 -1
  100. package/esm2022/domain/f-node/providers.mjs +25 -21
  101. package/esm2022/domain/f-node/remove-node-from-store/index.mjs +2 -2
  102. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.mjs +25 -0
  103. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/index.mjs +2 -2
  104. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed-request.mjs +4 -4
  105. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +104 -0
  106. package/esm2022/domain/f-selection/clear-selection/clear-selection.execution.mjs +5 -5
  107. package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +5 -5
  108. package/esm2022/domain/f-selection/get-current-selection/get-current-selection.execution.mjs +5 -5
  109. package/esm2022/domain/f-selection/select/select.execution.mjs +7 -7
  110. package/esm2022/domain/f-selection/select-all/select-all.execution.mjs +7 -7
  111. package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.mjs +5 -5
  112. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.mjs +2 -2
  113. package/esm2022/f-canvas/f-canvas.component.mjs +7 -7
  114. package/esm2022/f-connection/common/f-connection-base.mjs +22 -3
  115. package/esm2022/f-connection/common/i-has-connection-color.mjs +1 -1
  116. package/esm2022/f-connection/f-connection/f-connection.component.mjs +16 -31
  117. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +7 -22
  118. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +7 -22
  119. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +13 -13
  120. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.mjs +4 -4
  121. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +8 -8
  122. package/esm2022/f-draggable/f-canvas/f-canvas.drag-handler.mjs +7 -7
  123. package/esm2022/f-draggable/f-canvas/move-finalize/f-canvas-move-finalize.execution.mjs +4 -4
  124. package/esm2022/f-draggable/f-canvas/move-preparation/f-canvas-move-preparation.execution.mjs +11 -11
  125. package/esm2022/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.mjs +8 -8
  126. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/drag-handler-preparation/f-create-connection-drag-handler-preparation.execution.mjs +8 -8
  127. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.mjs +5 -5
  128. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-outlet-preparation/f-create-connection-from-outlet-preparation.execution.mjs +4 -4
  129. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.mjs +4 -4
  130. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +5 -5
  131. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +11 -11
  132. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.mjs +3 -3
  133. package/esm2022/f-draggable/f-draggable-base.mjs +2 -2
  134. package/esm2022/f-draggable/f-draggable-data-context.mjs +2 -1
  135. package/esm2022/f-draggable/f-draggable.directive.mjs +53 -47
  136. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize-request.mjs +8 -0
  137. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize.mjs +69 -0
  138. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/index.mjs +3 -3
  139. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.mjs +8 -0
  140. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation.mjs +101 -0
  141. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/index.mjs +3 -3
  142. package/esm2022/f-draggable/f-drop-to-group/f-node-drop-to-group.drag-handler.mjs +20 -13
  143. package/esm2022/f-draggable/f-drop-to-group/index.mjs +2 -1
  144. package/esm2022/f-draggable/f-drop-to-group/providers.mjs +7 -5
  145. package/esm2022/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/index.mjs +3 -0
  146. package/esm2022/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer-request.mjs +8 -0
  147. package/esm2022/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer.mjs +48 -0
  148. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +10 -10
  149. package/esm2022/f-draggable/f-node-move/constraint/drag-constraint-pipeline.mjs +29 -0
  150. package/esm2022/f-draggable/f-node-move/constraint/expand-rect-from-baseline.mjs +18 -0
  151. package/esm2022/f-draggable/f-node-move/constraint/index.mjs +5 -0
  152. package/esm2022/f-draggable/f-node-move/constraint/rect-constraint.mjs +36 -0
  153. package/esm2022/f-draggable/f-node-move/constraint/snap-to-grid.mjs +36 -0
  154. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-request.mjs +8 -0
  155. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-response.mjs +9 -0
  156. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy.mjs +47 -0
  157. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/index.mjs +4 -0
  158. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits-request.mjs +8 -0
  159. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits.mjs +72 -0
  160. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-drag-limits.mjs +2 -0
  161. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-soft-limit.mjs +2 -0
  162. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/index.mjs +5 -0
  163. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-drag-model-from-selection-request.mjs +8 -0
  164. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-drag-model-from-selection.mjs +88 -0
  165. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler-request.mjs +12 -0
  166. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler.mjs +59 -0
  167. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/index.mjs +3 -0
  168. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler-request.mjs +12 -0
  169. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler.mjs +59 -0
  170. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/index.mjs +3 -0
  171. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler-request.mjs +10 -0
  172. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler.mjs +33 -0
  173. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/index.mjs +3 -0
  174. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings-request.mjs +10 -0
  175. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings-response.mjs +13 -0
  176. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings.mjs +39 -0
  177. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/index.mjs +4 -0
  178. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/i-node-move-limits-and-position.mjs +2 -0
  179. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/i-node-move-limits.mjs +2 -0
  180. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/index.mjs +12 -0
  181. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/providers.mjs +17 -0
  182. package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.mjs +8 -0
  183. package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines.mjs +52 -0
  184. package/esm2022/f-draggable/f-node-move/create-snap-lines/index.mjs +3 -0
  185. package/esm2022/f-draggable/f-node-move/create-snap-lines/snap-lines.drag-handler.mjs +51 -0
  186. package/esm2022/f-draggable/f-node-move/f-move-nodes.event.mjs +8 -2
  187. package/esm2022/f-draggable/f-node-move/index.mjs +8 -7
  188. package/esm2022/f-draggable/f-node-move/move-drag-handler.mjs +95 -0
  189. package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.mjs +38 -49
  190. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +26 -26
  191. package/esm2022/f-draggable/f-node-move/move-summary-drag-handler.mjs +44 -0
  192. package/esm2022/f-draggable/f-node-move/providers.mjs +4 -4
  193. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints-request.mjs +10 -0
  194. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints.mjs +56 -0
  195. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/index.mjs +3 -0
  196. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints-request.mjs +10 -0
  197. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints.mjs +145 -0
  198. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/index.mjs +3 -0
  199. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference-request.mjs +14 -0
  200. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference.mjs +55 -0
  201. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/index.mjs +3 -0
  202. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect-request.mjs +10 -0
  203. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect.mjs +39 -0
  204. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/index.mjs +3 -0
  205. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits-request.mjs +10 -0
  206. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits.mjs +69 -0
  207. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/index.mjs +3 -0
  208. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-constraint.mjs +2 -0
  209. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-limit.mjs +2 -0
  210. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-limits.mjs +2 -0
  211. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-overflow.mjs +2 -0
  212. package/esm2022/f-draggable/f-node-resize/constraint/index.mjs +5 -0
  213. package/esm2022/f-draggable/f-node-resize/index.mjs +8 -8
  214. package/esm2022/f-draggable/f-node-resize/node-resize.drag-handler.mjs +64 -0
  215. package/esm2022/f-draggable/f-node-resize/providers.mjs +15 -17
  216. package/esm2022/f-draggable/f-node-resize/resize-finalize/index.mjs +3 -3
  217. package/esm2022/f-draggable/f-node-resize/resize-finalize/node-resize-finalize-request.mjs +8 -0
  218. package/esm2022/f-draggable/f-node-resize/resize-finalize/node-resize-finalize.mjs +29 -0
  219. package/esm2022/f-draggable/f-node-resize/resize-preparation/index.mjs +3 -3
  220. package/esm2022/f-draggable/f-node-resize/resize-preparation/node-resize-preparation-request.mjs +10 -0
  221. package/esm2022/f-draggable/f-node-resize/resize-preparation/node-resize-preparation.mjs +71 -0
  222. package/esm2022/f-draggable/f-node-rotate/f-node-rotate.drag-handler.mjs +9 -9
  223. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.mjs +4 -4
  224. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.mjs +13 -13
  225. package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +18 -18
  226. package/esm2022/f-external-item/domain/constraint/external-rect-constraint.mjs +44 -0
  227. package/esm2022/f-external-item/domain/constraint/index.mjs +2 -0
  228. package/esm2022/f-external-item/domain/f-external-item.drag-handler.mjs +27 -22
  229. package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.execution.mjs +9 -9
  230. package/esm2022/f-external-item/domain/index.mjs +2 -1
  231. package/esm2022/f-external-item/domain/preparation/f-external-item-preparation.execution.mjs +8 -8
  232. package/esm2022/f-line-alignment/domain/i-snap-coordinate.mjs +2 -0
  233. package/esm2022/f-line-alignment/domain/i-snap-result.mjs +2 -0
  234. package/esm2022/f-line-alignment/domain/index.mjs +5 -5
  235. package/esm2022/f-line-alignment/domain/snap-line-element.mjs +24 -0
  236. package/esm2022/f-line-alignment/domain/snap-line-service.mjs +38 -0
  237. package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.mjs +11 -10
  238. package/esm2022/f-node/f-group.directive.mjs +56 -94
  239. package/esm2022/f-node/f-node-base.mjs +61 -7
  240. package/esm2022/f-node/f-node.directive.mjs +56 -95
  241. package/esm2022/f-node/f-resize-handle/f-resize-handle.directive.mjs +1 -1
  242. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.mjs +4 -4
  243. package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.execution.mjs +9 -9
  244. package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +13 -13
  245. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.execution.mjs +3 -3
  246. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.execution.mjs +3 -3
  247. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.execution.mjs +3 -3
  248. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.execution.mjs +3 -3
  249. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.execution.mjs +3 -3
  250. package/esm2022/mixins/change-selection/change-selection.mjs +2 -2
  251. package/esm2022/mixins/change-selection/i-selectable.mjs +1 -1
  252. package/esm2022/reactivity/f-resize-channel.mjs +1 -1
  253. package/f-canvas/f-canvas.component.d.ts +4 -4
  254. package/f-connection/common/f-connection-base.d.ts +17 -15
  255. package/f-connection/common/i-has-connection-color.d.ts +3 -3
  256. package/f-connection/f-connection/f-connection.component.d.ts +6 -20
  257. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +2 -17
  258. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +2 -17
  259. package/f-connection/providers.d.ts +1 -1
  260. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.d.ts +3 -3
  261. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.d.ts +2 -2
  262. package/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +1 -1
  263. package/f-draggable/domain/providers.d.ts +1 -1
  264. package/f-draggable/f-canvas/f-canvas.drag-handler.d.ts +1 -1
  265. package/f-draggable/f-canvas/move-finalize/f-canvas-move-finalize.execution.d.ts +1 -1
  266. package/f-draggable/f-canvas/move-preparation/f-canvas-move-preparation.execution.d.ts +2 -2
  267. package/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.d.ts +2 -2
  268. package/f-draggable/f-connection/f-create-connection/create-preparation/drag-handler-preparation/f-create-connection-drag-handler-preparation.execution.d.ts +2 -2
  269. package/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.d.ts +2 -2
  270. package/f-draggable/f-connection/f-create-connection/create-preparation/from-outlet-preparation/f-create-connection-from-outlet-preparation.execution.d.ts +1 -1
  271. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.d.ts +1 -1
  272. package/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.d.ts +1 -1
  273. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.d.ts +2 -2
  274. package/f-draggable/f-connection/providers.d.ts +1 -1
  275. package/f-draggable/f-draggable-base.d.ts +4 -4
  276. package/f-draggable/f-draggable-data-context.d.ts +1 -0
  277. package/f-draggable/f-draggable.directive.d.ts +23 -11
  278. package/f-draggable/{f-node-resize/resize-finalize/f-node-resize-finalize.request.d.ts → f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize-request.d.ts} +1 -1
  279. package/f-draggable/f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize.d.ts +16 -0
  280. package/f-draggable/f-drop-to-group/drop-to-group-finalize/index.d.ts +2 -2
  281. package/f-draggable/f-drop-to-group/{drop-to-group-finalize/f-node-drop-to-group-finalize.request.d.ts → drop-to-group-preparation/drop-to-group-preparation-request.d.ts} +1 -1
  282. package/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation.d.ts +29 -0
  283. package/f-draggable/f-drop-to-group/drop-to-group-preparation/index.d.ts +2 -2
  284. package/f-draggable/f-drop-to-group/f-node-drop-to-group.drag-handler.d.ts +4 -4
  285. package/f-draggable/f-drop-to-group/index.d.ts +1 -0
  286. package/f-draggable/f-drop-to-group/providers.d.ts +4 -3
  287. package/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/index.d.ts +2 -0
  288. package/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer-request.d.ts +6 -0
  289. package/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer.d.ts +10 -0
  290. package/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.d.ts +2 -2
  291. package/f-draggable/f-node-move/constraint/drag-constraint-pipeline.d.ts +17 -0
  292. package/f-draggable/f-node-move/constraint/expand-rect-from-baseline.d.ts +3 -0
  293. package/f-draggable/f-node-move/constraint/index.d.ts +4 -0
  294. package/f-draggable/f-node-move/constraint/rect-constraint.d.ts +19 -0
  295. package/f-draggable/f-node-move/constraint/snap-to-grid.d.ts +15 -0
  296. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-request.d.ts +6 -0
  297. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-response.d.ts +6 -0
  298. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy.d.ts +13 -0
  299. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/index.d.ts +3 -0
  300. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits-request.d.ts +6 -0
  301. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits.d.ts +19 -0
  302. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-drag-limits.d.ts +6 -0
  303. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-soft-limit.d.ts +8 -0
  304. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/index.d.ts +4 -0
  305. package/f-draggable/f-node-move/{create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.request.d.ts → create-drag-model-from-selection/create-drag-model-from-selection-request.d.ts} +1 -1
  306. package/f-draggable/f-node-move/create-drag-model-from-selection/create-drag-model-from-selection.d.ts +24 -0
  307. package/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler-request.d.ts +9 -0
  308. package/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler.d.ts +16 -0
  309. package/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/index.d.ts +2 -0
  310. package/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler-request.d.ts +9 -0
  311. package/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler.d.ts +18 -0
  312. package/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/index.d.ts +2 -0
  313. package/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler-request.d.ts +7 -0
  314. package/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler.d.ts +13 -0
  315. package/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/index.d.ts +2 -0
  316. package/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings-request.d.ts +7 -0
  317. package/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings-response.d.ts +9 -0
  318. package/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings.d.ts +13 -0
  319. package/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/index.d.ts +3 -0
  320. package/f-draggable/f-node-move/create-drag-model-from-selection/index.d.ts +11 -0
  321. package/f-draggable/f-node-move/create-drag-model-from-selection/providers.d.ts +8 -0
  322. package/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.d.ts +6 -0
  323. package/f-draggable/f-node-move/create-snap-lines/create-snap-lines.d.ts +19 -0
  324. package/f-draggable/f-node-move/create-snap-lines/index.d.ts +2 -0
  325. package/f-draggable/f-node-move/create-snap-lines/snap-lines.drag-handler.d.ts +16 -0
  326. package/f-draggable/f-node-move/f-move-nodes.event.d.ts +4 -0
  327. package/f-draggable/f-node-move/index.d.ts +7 -6
  328. package/f-draggable/f-node-move/move-drag-handler.d.ts +33 -0
  329. package/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.d.ts +10 -10
  330. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.d.ts +4 -4
  331. package/f-draggable/f-node-move/move-summary-drag-handler.d.ts +22 -0
  332. package/f-draggable/f-node-move/providers.d.ts +2 -2
  333. package/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints-request.d.ts +7 -0
  334. package/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints.d.ts +13 -0
  335. package/f-draggable/f-node-resize/apply-child-resize-constraints/index.d.ts +2 -0
  336. package/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints-request.d.ts +8 -0
  337. package/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints.d.ts +36 -0
  338. package/f-draggable/f-node-resize/apply-parent-resize-constraints/index.d.ts +2 -0
  339. package/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference-request.d.ts +10 -0
  340. package/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference.d.ts +11 -0
  341. package/f-draggable/f-node-resize/calculate-changed-rect-from-difference/index.d.ts +2 -0
  342. package/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect-request.d.ts +7 -0
  343. package/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect.d.ts +15 -0
  344. package/f-draggable/f-node-resize/calculate-direct-children-union-rect/index.d.ts +2 -0
  345. package/f-draggable/f-node-resize/{get-node-resize-restrictions/get-node-resize-restrictions.request.d.ts → calculate-resize-limits/calculate-resize-limits-request.d.ts} +3 -3
  346. package/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits.d.ts +17 -0
  347. package/f-draggable/f-node-resize/calculate-resize-limits/index.d.ts +2 -0
  348. package/f-draggable/f-node-resize/constraint/i-resize-constraint.d.ts +7 -0
  349. package/f-draggable/f-node-resize/constraint/i-resize-limit.d.ts +7 -0
  350. package/f-draggable/f-node-resize/constraint/i-resize-limits.d.ts +5 -0
  351. package/f-draggable/f-node-resize/constraint/i-resize-overflow.d.ts +6 -0
  352. package/f-draggable/f-node-resize/constraint/index.d.ts +4 -0
  353. package/f-draggable/f-node-resize/index.d.ts +7 -7
  354. package/f-draggable/f-node-resize/node-resize.drag-handler.d.ts +25 -0
  355. package/f-draggable/f-node-resize/providers.d.ts +8 -9
  356. package/f-draggable/f-node-resize/resize-finalize/index.d.ts +2 -2
  357. package/f-draggable/{f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.request.d.ts → f-node-resize/resize-finalize/node-resize-finalize-request.d.ts} +2 -2
  358. package/f-draggable/f-node-resize/resize-finalize/node-resize-finalize.d.ts +10 -0
  359. package/f-draggable/f-node-resize/resize-preparation/index.d.ts +2 -2
  360. package/f-draggable/f-node-resize/resize-preparation/{f-node-resize-preparation.request.d.ts → node-resize-preparation-request.d.ts} +1 -1
  361. package/f-draggable/f-node-resize/resize-preparation/node-resize-preparation.d.ts +22 -0
  362. package/f-draggable/f-node-rotate/f-node-rotate.drag-handler.d.ts +2 -2
  363. package/f-draggable/f-node-rotate/providers.d.ts +1 -1
  364. package/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.d.ts +1 -1
  365. package/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.d.ts +2 -2
  366. package/f-draggable/f-single-select/f-single-select.execution.d.ts +2 -2
  367. package/f-draggable/providers.d.ts +1 -1
  368. package/{f-draggable/f-node-move/point-bounds-limiter.d.ts → f-external-item/domain/constraint/external-rect-constraint.d.ts} +4 -4
  369. package/f-external-item/domain/constraint/index.d.ts +1 -0
  370. package/f-external-item/domain/f-external-item.drag-handler.d.ts +6 -5
  371. package/f-external-item/domain/finalize/f-external-item-finalize.execution.d.ts +2 -2
  372. package/f-external-item/domain/index.d.ts +1 -0
  373. package/f-external-item/domain/preparation/f-external-item-preparation.execution.d.ts +2 -2
  374. package/f-line-alignment/domain/{i-nearest-coordinate-result.d.ts → i-snap-coordinate.d.ts} +1 -1
  375. package/f-line-alignment/domain/i-snap-result.d.ts +5 -0
  376. package/f-line-alignment/domain/index.d.ts +4 -4
  377. package/f-line-alignment/domain/{line-element.d.ts → snap-line-element.d.ts} +1 -1
  378. package/f-line-alignment/domain/{line-service.d.ts → snap-line-service.d.ts} +1 -1
  379. package/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.d.ts +2 -2
  380. package/f-minimap/domain/providers.d.ts +1 -1
  381. package/f-node/f-group.directive.d.ts +19 -28
  382. package/f-node/f-node-base.d.ts +26 -17
  383. package/f-node/f-node.directive.d.ts +19 -28
  384. package/f-node/f-resize-handle/f-resize-handle.directive.d.ts +1 -1
  385. package/f-node/providers.d.ts +2 -2
  386. package/f-selection-area/domain/providers.d.ts +1 -1
  387. package/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.d.ts +1 -1
  388. package/f-selection-area/domain/selection-area-preparation/selection-area-preparation.execution.d.ts +2 -2
  389. package/f-selection-area/domain/selection-area.drag-handle.d.ts +3 -3
  390. package/f-storage/features/listen-components-data-changed/listen-data-changes.execution.d.ts +1 -1
  391. package/f-storage/features/listen-count-changes/listen-count-changes.execution.d.ts +1 -1
  392. package/f-storage/features/listen-transform-changes/listen-transform-changes.execution.d.ts +1 -1
  393. package/f-storage/features/notify-data-changed/notify-data-changed.execution.d.ts +1 -1
  394. package/f-storage/features/notify-transform-changed/notify-transform-changed.execution.d.ts +1 -1
  395. package/f-storage/providers.d.ts +1 -1
  396. package/fesm2022/foblex-flow.mjs +2010 -1481
  397. package/fesm2022/foblex-flow.mjs.map +1 -1
  398. package/mixins/change-selection/i-selectable.d.ts +1 -1
  399. package/package.json +1 -1
  400. package/reactivity/f-resize-channel.d.ts +2 -2
  401. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started.execution.mjs +0 -25
  402. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.execution.mjs +0 -25
  403. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.execution.mjs +0 -34
  404. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.execution.mjs +0 -35
  405. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.execution.mjs +0 -36
  406. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.execution.mjs +0 -34
  407. package/esm2022/domain/f-node/get-node-padding/get-node-padding.execution.mjs +0 -35
  408. package/esm2022/domain/f-node/get-nodes/get-nodes.execution.mjs +0 -25
  409. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.execution.mjs +0 -37
  410. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.execution.mjs +0 -25
  411. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.mjs +0 -95
  412. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.execution.mjs +0 -57
  413. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.request.mjs +0 -8
  414. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.execution.mjs +0 -83
  415. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.request.mjs +0 -8
  416. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +0 -110
  417. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.request.mjs +0 -8
  418. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/calculate-common-node-move-limits.execution.mjs +0 -69
  419. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/calculate-common-node-move-limits.request.mjs +0 -8
  420. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/index.mjs +0 -3
  421. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/calculate-node-move-limits.execution.mjs +0 -46
  422. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/calculate-node-move-limits.request.mjs +0 -10
  423. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/index.mjs +0 -3
  424. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/index.mjs +0 -3
  425. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.mjs +0 -60
  426. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.request.mjs +0 -12
  427. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/index.mjs +0 -3
  428. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.mjs +0 -60
  429. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.request.mjs +0 -12
  430. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/i-node-move-limits-and-position.mjs +0 -2
  431. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/i-node-move-limits.mjs +0 -2
  432. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/index.mjs +0 -10
  433. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.mjs +0 -13
  434. package/esm2022/f-draggable/f-node-move/f-line-alignment.drag-handler.mjs +0 -63
  435. package/esm2022/f-draggable/f-node-move/f-node-move.drag-handler.mjs +0 -30
  436. package/esm2022/f-draggable/f-node-move/f-summary-node-move.drag-handler.mjs +0 -33
  437. package/esm2022/f-draggable/f-node-move/line-alignment-preparation/index.mjs +0 -3
  438. package/esm2022/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.execution.mjs +0 -57
  439. package/esm2022/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.request.mjs +0 -10
  440. package/esm2022/f-draggable/f-node-move/point-bounds-limiter.mjs +0 -43
  441. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.mjs +0 -53
  442. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.mjs +0 -10
  443. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/index.mjs +0 -3
  444. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.execution.mjs +0 -49
  445. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.request.mjs +0 -10
  446. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-restrictions/index.mjs +0 -3
  447. package/esm2022/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.execution.mjs +0 -25
  448. package/esm2022/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.request.mjs +0 -14
  449. package/esm2022/f-draggable/f-node-resize/calculate-changed-position/index.mjs +0 -3
  450. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.execution.mjs +0 -34
  451. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.request.mjs +0 -12
  452. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/index.mjs +0 -3
  453. package/esm2022/f-draggable/f-node-resize/f-node-resize.drag-handler.mjs +0 -73
  454. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.mjs +0 -39
  455. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/get-node-resize-restrictions.request.mjs +0 -10
  456. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/i-node-resize-restrictions.mjs +0 -2
  457. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/index.mjs +0 -4
  458. package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +0 -38
  459. package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.mjs +0 -10
  460. package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/index.mjs +0 -3
  461. package/esm2022/f-draggable/f-node-resize/resize-finalize/f-node-resize-finalize.execution.mjs +0 -31
  462. package/esm2022/f-draggable/f-node-resize/resize-finalize/f-node-resize-finalize.request.mjs +0 -8
  463. package/esm2022/f-draggable/f-node-resize/resize-preparation/f-node-resize-preparation.execution.mjs +0 -73
  464. package/esm2022/f-draggable/f-node-resize/resize-preparation/f-node-resize-preparation.request.mjs +0 -10
  465. package/esm2022/f-line-alignment/domain/i-line-alignment-result.mjs +0 -2
  466. package/esm2022/f-line-alignment/domain/i-nearest-coordinate-result.mjs +0 -2
  467. package/esm2022/f-line-alignment/domain/line-element.mjs +0 -24
  468. package/esm2022/f-line-alignment/domain/line-service.mjs +0 -38
  469. package/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.execution.d.ts +0 -15
  470. package/f-draggable/f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.execution.d.ts +0 -22
  471. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +0 -29
  472. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/calculate-common-node-move-limits.execution.d.ts +0 -19
  473. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/calculate-common-node-move-limits.request.d.ts +0 -6
  474. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/index.d.ts +0 -2
  475. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/calculate-node-move-limits.execution.d.ts +0 -15
  476. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/calculate-node-move-limits.request.d.ts +0 -7
  477. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/index.d.ts +0 -2
  478. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/index.d.ts +0 -2
  479. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.d.ts +0 -16
  480. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.request.d.ts +0 -9
  481. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/index.d.ts +0 -2
  482. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.d.ts +0 -18
  483. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.request.d.ts +0 -9
  484. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/index.d.ts +0 -9
  485. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.d.ts +0 -6
  486. package/f-draggable/f-node-move/f-line-alignment.drag-handler.d.ts +0 -21
  487. package/f-draggable/f-node-move/f-node-move.drag-handler.d.ts +0 -16
  488. package/f-draggable/f-node-move/f-summary-node-move.drag-handler.d.ts +0 -17
  489. package/f-draggable/f-node-move/line-alignment-preparation/index.d.ts +0 -2
  490. package/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.execution.d.ts +0 -20
  491. package/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.request.d.ts +0 -8
  492. package/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.d.ts +0 -13
  493. package/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.d.ts +0 -8
  494. package/f-draggable/f-node-resize/apply-child-resize-restrictions/index.d.ts +0 -2
  495. package/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.execution.d.ts +0 -13
  496. package/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.request.d.ts +0 -7
  497. package/f-draggable/f-node-resize/apply-parent-resize-restrictions/index.d.ts +0 -2
  498. package/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.execution.d.ts +0 -10
  499. package/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.request.d.ts +0 -10
  500. package/f-draggable/f-node-resize/calculate-changed-position/index.d.ts +0 -2
  501. package/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.execution.d.ts +0 -10
  502. package/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.request.d.ts +0 -9
  503. package/f-draggable/f-node-resize/calculate-changed-size/index.d.ts +0 -2
  504. package/f-draggable/f-node-resize/f-node-resize.drag-handler.d.ts +0 -27
  505. package/f-draggable/f-node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.d.ts +0 -13
  506. package/f-draggable/f-node-resize/get-node-resize-restrictions/i-node-resize-restrictions.d.ts +0 -6
  507. package/f-draggable/f-node-resize/get-node-resize-restrictions/index.d.ts +0 -3
  508. package/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.d.ts +0 -14
  509. package/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.d.ts +0 -7
  510. package/f-draggable/f-node-resize/get-normalized-children-nodes-rect/index.d.ts +0 -2
  511. package/f-draggable/f-node-resize/resize-finalize/f-node-resize-finalize.execution.d.ts +0 -10
  512. package/f-draggable/f-node-resize/resize-preparation/f-node-resize-preparation.execution.d.ts +0 -22
  513. package/f-line-alignment/domain/i-line-alignment-result.d.ts +0 -5
  514. /package/f-draggable/f-node-move/{create-move-nodes-drag-model-from-selection → create-drag-model-from-selection}/i-node-move-limits-and-position.d.ts +0 -0
  515. /package/f-draggable/f-node-move/{create-move-nodes-drag-model-from-selection → create-drag-model-from-selection}/i-node-move-limits.d.ts +0 -0
@@ -0,0 +1,39 @@
1
+ import { __decorate } from "tslib";
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { GetNodeBoundingIncludePaddingsRequest } from './get-node-bounding-include-paddings-request';
4
+ import { RectExtensions } from '@foblex/2d';
5
+ import { FExecutionRegister, FMediator } from '@foblex/mediator';
6
+ import { GetNodePaddingRequest, GetNormalizedElementRectRequest } from "../../../../domain";
7
+ import { GetNodeBoundingIncludePaddingsResponse } from "./get-node-bounding-include-paddings-response";
8
+ import * as i0 from "@angular/core";
9
+ let GetNodeBoundingIncludePaddings = class GetNodeBoundingIncludePaddings {
10
+ _mediator = inject(FMediator);
11
+ handle({ nodeOrGroup, childrenPaddings }) {
12
+ return this._rect(nodeOrGroup, childrenPaddings);
13
+ }
14
+ _rect(nodeOrGroup, childrenPaddings) {
15
+ const boundingRect = this._boundingRect(nodeOrGroup);
16
+ let paddings = this._paddings(nodeOrGroup, boundingRect);
17
+ paddings[0] += childrenPaddings[0];
18
+ paddings[1] += childrenPaddings[1];
19
+ paddings[2] += childrenPaddings[2];
20
+ paddings[3] += childrenPaddings[3];
21
+ return new GetNodeBoundingIncludePaddingsResponse(nodeOrGroup, boundingRect, RectExtensions.initialize(boundingRect.x + paddings[0], boundingRect.y + paddings[1], boundingRect.width - paddings[0] - paddings[2], boundingRect.height - paddings[1] - paddings[3]), paddings);
22
+ }
23
+ _boundingRect(nodeOrGroup) {
24
+ return this._mediator.execute(new GetNormalizedElementRectRequest(nodeOrGroup.hostElement));
25
+ }
26
+ _paddings(nodeOrGroup, rect) {
27
+ return this._mediator.execute(new GetNodePaddingRequest(nodeOrGroup, rect));
28
+ }
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNodeBoundingIncludePaddings, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
30
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNodeBoundingIncludePaddings });
31
+ };
32
+ GetNodeBoundingIncludePaddings = __decorate([
33
+ FExecutionRegister(GetNodeBoundingIncludePaddingsRequest)
34
+ ], GetNodeBoundingIncludePaddings);
35
+ export { GetNodeBoundingIncludePaddings };
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNodeBoundingIncludePaddings, decorators: [{
37
+ type: Injectable
38
+ }] });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5vZGUtYm91bmRpbmctaW5jbHVkZS1wYWRkaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY3JlYXRlLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb24vZ2V0LW5vZGUtYm91bmRpbmctaW5jbHVkZS1wYWRkaW5ncy9nZXQtbm9kZS1ib3VuZGluZy1pbmNsdWRlLXBhZGRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRyxPQUFPLEVBQVEsY0FBYyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxTQUFTLEVBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUUzRSxPQUFPLEVBQUMscUJBQXFCLEVBQUUsK0JBQStCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRixPQUFPLEVBQUMsc0NBQXNDLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQzs7QUFJOUYsSUFBTSw4QkFBOEIsR0FBcEMsTUFBTSw4QkFBOEI7SUFHeEIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV4QyxNQUFNLENBQUMsRUFBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQXdDO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sS0FBSyxDQUFDLFdBQXNCLEVBQUUsZ0JBQWtEO1FBQ3RGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDekQsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxzQ0FBc0MsQ0FDL0MsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLENBQUMsVUFBVSxDQUN2QixZQUFZLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDNUIsWUFBWSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQzVCLFlBQVksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDOUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUNoRCxFQUNELFFBQVEsQ0FDVCxDQUFBO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxXQUFzQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFRLElBQUksK0JBQStCLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVPLFNBQVMsQ0FBQyxXQUFzQixFQUFFLElBQVc7UUFDbkQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBbUMsSUFBSSxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNoSCxDQUFDO3dHQW5DVSw4QkFBOEI7NEdBQTlCLDhCQUE4Qjs7QUFBOUIsOEJBQThCO0lBRDFDLGtCQUFrQixDQUFDLHFDQUFxQyxDQUFDO0dBQzdDLDhCQUE4QixDQW9DMUM7OzRGQXBDWSw4QkFBOEI7a0JBRjFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0dldE5vZGVCb3VuZGluZ0luY2x1ZGVQYWRkaW5nc1JlcXVlc3R9IGZyb20gJy4vZ2V0LW5vZGUtYm91bmRpbmctaW5jbHVkZS1wYWRkaW5ncy1yZXF1ZXN0JztcbmltcG9ydCB7SVJlY3QsIFJlY3RFeHRlbnNpb25zfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7RkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb259IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtGTm9kZUJhc2V9IGZyb20gXCIuLi8uLi8uLi8uLi9mLW5vZGVcIjtcbmltcG9ydCB7R2V0Tm9kZVBhZGRpbmdSZXF1ZXN0LCBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0fSBmcm9tIFwiLi4vLi4vLi4vLi4vZG9tYWluXCI7XG5pbXBvcnQge0dldE5vZGVCb3VuZGluZ0luY2x1ZGVQYWRkaW5nc1Jlc3BvbnNlfSBmcm9tIFwiLi9nZXQtbm9kZS1ib3VuZGluZy1pbmNsdWRlLXBhZGRpbmdzLXJlc3BvbnNlXCI7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoR2V0Tm9kZUJvdW5kaW5nSW5jbHVkZVBhZGRpbmdzUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBHZXROb2RlQm91bmRpbmdJbmNsdWRlUGFkZGluZ3NcbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPEdldE5vZGVCb3VuZGluZ0luY2x1ZGVQYWRkaW5nc1JlcXVlc3QsIEdldE5vZGVCb3VuZGluZ0luY2x1ZGVQYWRkaW5nc1Jlc3BvbnNlPiB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwdWJsaWMgaGFuZGxlKHtub2RlT3JHcm91cCwgY2hpbGRyZW5QYWRkaW5nc306IEdldE5vZGVCb3VuZGluZ0luY2x1ZGVQYWRkaW5nc1JlcXVlc3QpOiBHZXROb2RlQm91bmRpbmdJbmNsdWRlUGFkZGluZ3NSZXNwb25zZSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlY3Qobm9kZU9yR3JvdXAsIGNoaWxkcmVuUGFkZGluZ3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVjdChub2RlT3JHcm91cDogRk5vZGVCYXNlLCBjaGlsZHJlblBhZGRpbmdzOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSk6IEdldE5vZGVCb3VuZGluZ0luY2x1ZGVQYWRkaW5nc1Jlc3BvbnNlIHtcbiAgICBjb25zdCBib3VuZGluZ1JlY3QgPSB0aGlzLl9ib3VuZGluZ1JlY3Qobm9kZU9yR3JvdXApO1xuICAgIGxldCBwYWRkaW5ncyA9IHRoaXMuX3BhZGRpbmdzKG5vZGVPckdyb3VwLCBib3VuZGluZ1JlY3QpO1xuICAgIHBhZGRpbmdzWzBdICs9IGNoaWxkcmVuUGFkZGluZ3NbMF07XG4gICAgcGFkZGluZ3NbMV0gKz0gY2hpbGRyZW5QYWRkaW5nc1sxXTtcbiAgICBwYWRkaW5nc1syXSArPSBjaGlsZHJlblBhZGRpbmdzWzJdO1xuICAgIHBhZGRpbmdzWzNdICs9IGNoaWxkcmVuUGFkZGluZ3NbM107XG4gICAgcmV0dXJuIG5ldyBHZXROb2RlQm91bmRpbmdJbmNsdWRlUGFkZGluZ3NSZXNwb25zZShcbiAgICAgIG5vZGVPckdyb3VwLFxuICAgICAgYm91bmRpbmdSZWN0LFxuICAgICAgUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShcbiAgICAgICAgYm91bmRpbmdSZWN0LnggKyBwYWRkaW5nc1swXSxcbiAgICAgICAgYm91bmRpbmdSZWN0LnkgKyBwYWRkaW5nc1sxXSxcbiAgICAgICAgYm91bmRpbmdSZWN0LndpZHRoIC0gcGFkZGluZ3NbMF0gLSBwYWRkaW5nc1syXSxcbiAgICAgICAgYm91bmRpbmdSZWN0LmhlaWdodCAtIHBhZGRpbmdzWzFdIC0gcGFkZGluZ3NbM11cbiAgICAgICksXG4gICAgICBwYWRkaW5nc1xuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgX2JvdW5kaW5nUmVjdChub2RlT3JHcm91cDogRk5vZGVCYXNlKTogSVJlY3Qge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElSZWN0PihuZXcgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdChub2RlT3JHcm91cC5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGFkZGluZ3Mobm9kZU9yR3JvdXA6IEZOb2RlQmFzZSwgcmVjdDogSVJlY3QpOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSB7XG4gICAgcmV0dXJuIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8W251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0+KG5ldyBHZXROb2RlUGFkZGluZ1JlcXVlc3Qobm9kZU9yR3JvdXAsIHJlY3QpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './get-node-bounding-include-paddings';
2
+ export * from './get-node-bounding-include-paddings-request';
3
+ export * from './get-node-bounding-include-paddings-response';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL2NyZWF0ZS1kcmFnLW1vZGVsLWZyb20tc2VsZWN0aW9uL2dldC1ub2RlLWJvdW5kaW5nLWluY2x1ZGUtcGFkZGluZ3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLDhDQUE4QyxDQUFBO0FBRTVELGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dldC1ub2RlLWJvdW5kaW5nLWluY2x1ZGUtcGFkZGluZ3MnO1xuXG5leHBvcnQgKiBmcm9tICcuL2dldC1ub2RlLWJvdW5kaW5nLWluY2x1ZGUtcGFkZGluZ3MtcmVxdWVzdCdcblxuZXhwb3J0ICogZnJvbSAnLi9nZXQtbm9kZS1ib3VuZGluZy1pbmNsdWRlLXBhZGRpbmdzLXJlc3BvbnNlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1ub2RlLW1vdmUtbGltaXRzLWFuZC1wb3NpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY3JlYXRlLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb24vaS1ub2RlLW1vdmUtbGltaXRzLWFuZC1wb3NpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJTm9kZU1vdmVMaW1pdHMgfSBmcm9tICcuL2ktbm9kZS1tb3ZlLWxpbWl0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5vZGVNb3ZlTGltaXRzQW5kUG9zaXRpb24gZXh0ZW5kcyBJTm9kZU1vdmVMaW1pdHMge1xuXG4gIHBvc2l0aW9uOiBJUG9pbnQ7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1ub2RlLW1vdmUtbGltaXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9jcmVhdGUtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvbi9pLW5vZGUtbW92ZS1saW1pdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElNaW5NYXhQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElOb2RlTW92ZUxpbWl0cyBleHRlbmRzIElNaW5NYXhQb2ludCB7XG5cbn1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ export * from './build-drag-hierarchy';
2
+ export * from './calculate-drag-limits';
3
+ export * from './create-summary-drag-handler';
4
+ export * from './get-node-bounding-include-paddings';
5
+ export * from './create-input-connection-handler-and-set-to-node-handler';
6
+ export * from './create-output-connection-handler-and-set-to-node-handler';
7
+ export * from './providers';
8
+ export * from './create-drag-model-from-selection';
9
+ export * from './create-drag-model-from-selection-request';
10
+ export * from './i-node-move-limits';
11
+ export * from './i-node-move-limits-and-position';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL2NyZWF0ZS1kcmFnLW1vZGVsLWZyb20tc2VsZWN0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsY0FBYywyREFBMkQsQ0FBQztBQUUxRSxjQUFjLDREQUE0RCxDQUFDO0FBRTNFLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUUzRCxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J1aWxkLWRyYWctaGllcmFyY2h5JztcblxuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtZHJhZy1saW1pdHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1zdW1tYXJ5LWRyYWctaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2V0LW5vZGUtYm91bmRpbmctaW5jbHVkZS1wYWRkaW5ncyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLWlucHV0LWNvbm5lY3Rpb24taGFuZGxlci1hbmQtc2V0LXRvLW5vZGUtaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLW91dHB1dC1jb25uZWN0aW9uLWhhbmRsZXItYW5kLXNldC10by1ub2RlLWhhbmRsZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1kcmFnLW1vZGVsLWZyb20tc2VsZWN0aW9uLXJlcXVlc3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ktbm9kZS1tb3ZlLWxpbWl0cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vaS1ub2RlLW1vdmUtbGltaXRzLWFuZC1wb3NpdGlvbic7XG5cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { CreateDragModelFromSelection } from './create-drag-model-from-selection';
2
+ import { CreateInputConnectionHandlerAndSetToNodeHandler } from './create-input-connection-handler-and-set-to-node-handler';
3
+ import { CreateOutputConnectionHandlerAndSetToNodeHandler } from './create-output-connection-handler-and-set-to-node-handler';
4
+ import { BuildDragHierarchy } from "./build-drag-hierarchy";
5
+ import { CalculateDragLimits } from "./calculate-drag-limits";
6
+ import { CreateSummaryDragHandler } from "./create-summary-drag-handler";
7
+ import { GetNodeBoundingIncludePaddings } from "./get-node-bounding-include-paddings";
8
+ export const CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS = [
9
+ BuildDragHierarchy,
10
+ CalculateDragLimits,
11
+ CreateSummaryDragHandler,
12
+ CreateInputConnectionHandlerAndSetToNodeHandler,
13
+ CreateOutputConnectionHandlerAndSetToNodeHandler,
14
+ GetNodeBoundingIncludePaddings,
15
+ CreateDragModelFromSelection,
16
+ ];
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9jcmVhdGUtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvbi9wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDaEYsT0FBTyxFQUFDLCtDQUErQyxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDMUgsT0FBTyxFQUFDLGdEQUFnRCxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDNUgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFcEYsTUFBTSxDQUFDLE1BQU0sb0RBQW9ELEdBQUc7SUFFbEUsa0JBQWtCO0lBRWxCLG1CQUFtQjtJQUVuQix3QkFBd0I7SUFFeEIsK0NBQStDO0lBRS9DLGdEQUFnRDtJQUVoRCw4QkFBOEI7SUFFOUIsNEJBQTRCO0NBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NyZWF0ZURyYWdNb2RlbEZyb21TZWxlY3Rpb259IGZyb20gJy4vY3JlYXRlLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb24nO1xuaW1wb3J0IHtDcmVhdGVJbnB1dENvbm5lY3Rpb25IYW5kbGVyQW5kU2V0VG9Ob2RlSGFuZGxlcn0gZnJvbSAnLi9jcmVhdGUtaW5wdXQtY29ubmVjdGlvbi1oYW5kbGVyLWFuZC1zZXQtdG8tbm9kZS1oYW5kbGVyJztcbmltcG9ydCB7Q3JlYXRlT3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyfSBmcm9tICcuL2NyZWF0ZS1vdXRwdXQtY29ubmVjdGlvbi1oYW5kbGVyLWFuZC1zZXQtdG8tbm9kZS1oYW5kbGVyJztcbmltcG9ydCB7QnVpbGREcmFnSGllcmFyY2h5fSBmcm9tIFwiLi9idWlsZC1kcmFnLWhpZXJhcmNoeVwiO1xuaW1wb3J0IHtDYWxjdWxhdGVEcmFnTGltaXRzfSBmcm9tIFwiLi9jYWxjdWxhdGUtZHJhZy1saW1pdHNcIjtcbmltcG9ydCB7Q3JlYXRlU3VtbWFyeURyYWdIYW5kbGVyfSBmcm9tIFwiLi9jcmVhdGUtc3VtbWFyeS1kcmFnLWhhbmRsZXJcIjtcbmltcG9ydCB7R2V0Tm9kZUJvdW5kaW5nSW5jbHVkZVBhZGRpbmdzfSBmcm9tIFwiLi9nZXQtbm9kZS1ib3VuZGluZy1pbmNsdWRlLXBhZGRpbmdzXCI7XG5cbmV4cG9ydCBjb25zdCBDUkVBVEVfTU9WRV9OT0RFX0RSQUdfTU9ERUxfRlJPTV9TRUxFQ1RJT05fUFJPVklERVJTID0gW1xuXG4gIEJ1aWxkRHJhZ0hpZXJhcmNoeSxcblxuICBDYWxjdWxhdGVEcmFnTGltaXRzLFxuXG4gIENyZWF0ZVN1bW1hcnlEcmFnSGFuZGxlcixcblxuICBDcmVhdGVJbnB1dENvbm5lY3Rpb25IYW5kbGVyQW5kU2V0VG9Ob2RlSGFuZGxlcixcblxuICBDcmVhdGVPdXRwdXRDb25uZWN0aW9uSGFuZGxlckFuZFNldFRvTm9kZUhhbmRsZXIsXG5cbiAgR2V0Tm9kZUJvdW5kaW5nSW5jbHVkZVBhZGRpbmdzLFxuXG4gIENyZWF0ZURyYWdNb2RlbEZyb21TZWxlY3Rpb24sXG5dO1xuIl19
@@ -0,0 +1,8 @@
1
+ export class CreateSnapLinesRequest {
2
+ summaryHandler;
3
+ static fToken = Symbol('CreateSnapLinesRequest');
4
+ constructor(summaryHandler) {
5
+ this.summaryHandler = summaryHandler;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNuYXAtbGluZXMtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY3JlYXRlLXNuYXAtbGluZXMvY3JlYXRlLXNuYXAtbGluZXMtcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sc0JBQXNCO0lBSWY7SUFIbEIsTUFBTSxDQUFVLE1BQU0sR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUUxRCxZQUNrQixjQUFzQztRQUF0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7SUFFeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW92ZVN1bW1hcnlEcmFnSGFuZGxlcn0gZnJvbSBcIi4uL21vdmUtc3VtbWFyeS1kcmFnLWhhbmRsZXJcIjtcblxuZXhwb3J0IGNsYXNzIENyZWF0ZVNuYXBMaW5lc1JlcXVlc3Qge1xuICBzdGF0aWMgcmVhZG9ubHkgZlRva2VuID0gU3ltYm9sKCdDcmVhdGVTbmFwTGluZXNSZXF1ZXN0Jyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHN1bW1hcnlIYW5kbGVyOiBNb3ZlU3VtbWFyeURyYWdIYW5kbGVyLFxuICApIHtcbiAgfVxufVxuIl19
@@ -0,0 +1,52 @@
1
+ import { __decorate } from "tslib";
2
+ import { inject, Injectable, Injector } from '@angular/core';
3
+ import { CreateSnapLinesRequest } from './create-snap-lines-request';
4
+ import { FExecutionRegister, FMediator } from '@foblex/mediator';
5
+ import { GetFlowHostElementRequest } from '../../../domain';
6
+ import { GetNormalizedElementRectRequest } from '../../../domain';
7
+ import { FComponentsStore } from '../../../f-storage';
8
+ import { SnapLinesDragHandler } from './snap-lines.drag-handler';
9
+ import { SnapLineService } from '../../../f-line-alignment';
10
+ import { BrowserService } from '@foblex/platform';
11
+ import * as i0 from "@angular/core";
12
+ let CreateSnapLines = class CreateSnapLines {
13
+ _mediator = inject(FMediator);
14
+ _store = inject(FComponentsStore);
15
+ _browser = inject(BrowserService);
16
+ _injector = inject(Injector);
17
+ _lineService;
18
+ handle({ summaryHandler }) {
19
+ this._addLineAlignmentDragHandler(summaryHandler);
20
+ }
21
+ _addLineAlignmentDragHandler(handler) {
22
+ handler.setLineAlignment(new SnapLinesDragHandler(this._injector, this._lineService || this._createLineService(), this._getFlowHostSize(), this._collectNotDraggedNodeRects(this._allDraggedNodes(handler))));
23
+ }
24
+ _allDraggedNodes(handler) {
25
+ return handler.allDraggedNodeHandlers.map((x) => x.nodeOrGroup);
26
+ }
27
+ _getFlowHostSize() {
28
+ return this._mediator.execute(new GetFlowHostElementRequest()).getBoundingClientRect();
29
+ }
30
+ _createLineService() {
31
+ this._lineService = new SnapLineService(this._browser, this._store.fLineAlignment.hostElement);
32
+ return this._lineService;
33
+ }
34
+ _collectNotDraggedNodeRects(allDraggedNodes) {
35
+ return this._calculateNotDraggedNodes(allDraggedNodes).map((x) => {
36
+ return this._mediator.execute(new GetNormalizedElementRectRequest(x.hostElement));
37
+ });
38
+ }
39
+ _calculateNotDraggedNodes(allDraggedNodes) {
40
+ return this._store.fNodes.filter((x) => !allDraggedNodes.includes(x));
41
+ }
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateSnapLines, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateSnapLines });
44
+ };
45
+ CreateSnapLines = __decorate([
46
+ FExecutionRegister(CreateSnapLinesRequest)
47
+ ], CreateSnapLines);
48
+ export { CreateSnapLines };
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateSnapLines, decorators: [{
50
+ type: Injectable
51
+ }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNuYXAtbGluZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL2NyZWF0ZS1zbmFwLWxpbmVzL2NyZWF0ZS1zbmFwLWxpbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsT0FBTyxFQUFDLGtCQUFrQixFQUFFLFNBQVMsRUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQzNFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRS9ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7O0FBSXpDLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFFVCxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsQyxRQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEMsWUFBWSxDQUE4QjtJQUUzQyxNQUFNLENBQUMsRUFBQyxjQUFjLEVBQXlCO1FBQ3BELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sNEJBQTRCLENBQUMsT0FBK0I7UUFDbEUsT0FBTyxDQUFDLGdCQUFnQixDQUN0QixJQUFJLG9CQUFvQixDQUN0QixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQzlDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUN2QixJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ2pFLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUErQjtRQUN0RCxPQUFPLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQWMsSUFBSSx5QkFBeUIsRUFBRSxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUN0RyxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVPLDJCQUEyQixDQUFDLGVBQTRCO1FBQzlELE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9ELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQVEsSUFBSSwrQkFBK0IsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxlQUE0QjtRQUM1RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQzt3R0E3Q1UsZUFBZTs0R0FBZixlQUFlOztBQUFmLGVBQWU7SUFEM0Isa0JBQWtCLENBQUMsc0JBQXNCLENBQUM7R0FDOUIsZUFBZSxDQThDM0I7OzRGQTlDWSxlQUFlO2tCQUYzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q3JlYXRlU25hcExpbmVzUmVxdWVzdH0gZnJvbSAnLi9jcmVhdGUtc25hcC1saW5lcy1yZXF1ZXN0JztcbmltcG9ydCB7SVJlY3QsIElTaXplfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7RkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb259IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtHZXRGbG93SG9zdEVsZW1lbnRSZXF1ZXN0fSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHtHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0fSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHtGQ29tcG9uZW50c1N0b3JlfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHtNb3ZlU3VtbWFyeURyYWdIYW5kbGVyfSBmcm9tICcuLi8uLi9pbmRleCc7XG5pbXBvcnQge1NuYXBMaW5lc0RyYWdIYW5kbGVyfSBmcm9tICcuL3NuYXAtbGluZXMuZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7Rk5vZGVCYXNlfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHtTbmFwTGluZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2YtbGluZS1hbGlnbm1lbnQnO1xuaW1wb3J0IHtCcm93c2VyU2VydmljZX0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoQ3JlYXRlU25hcExpbmVzUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBDcmVhdGVTbmFwTGluZXMgaW1wbGVtZW50cyBJRXhlY3V0aW9uPENyZWF0ZVNuYXBMaW5lc1JlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYnJvd3NlciA9IGluamVjdChCcm93c2VyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwcml2YXRlIF9saW5lU2VydmljZTogU25hcExpbmVTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBoYW5kbGUoe3N1bW1hcnlIYW5kbGVyfTogQ3JlYXRlU25hcExpbmVzUmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMuX2FkZExpbmVBbGlnbm1lbnREcmFnSGFuZGxlcihzdW1tYXJ5SGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIF9hZGRMaW5lQWxpZ25tZW50RHJhZ0hhbmRsZXIoaGFuZGxlcjogTW92ZVN1bW1hcnlEcmFnSGFuZGxlcik6IHZvaWQge1xuICAgIGhhbmRsZXIuc2V0TGluZUFsaWdubWVudChcbiAgICAgIG5ldyBTbmFwTGluZXNEcmFnSGFuZGxlcihcbiAgICAgICAgdGhpcy5faW5qZWN0b3IsXG4gICAgICAgIHRoaXMuX2xpbmVTZXJ2aWNlIHx8IHRoaXMuX2NyZWF0ZUxpbmVTZXJ2aWNlKCksXG4gICAgICAgIHRoaXMuX2dldEZsb3dIb3N0U2l6ZSgpLFxuICAgICAgICB0aGlzLl9jb2xsZWN0Tm90RHJhZ2dlZE5vZGVSZWN0cyh0aGlzLl9hbGxEcmFnZ2VkTm9kZXMoaGFuZGxlcikpLFxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgX2FsbERyYWdnZWROb2RlcyhoYW5kbGVyOiBNb3ZlU3VtbWFyeURyYWdIYW5kbGVyKTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiBoYW5kbGVyLmFsbERyYWdnZWROb2RlSGFuZGxlcnMubWFwKCh4KSA9PiB4Lm5vZGVPckdyb3VwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEZsb3dIb3N0U2l6ZSgpOiBJU2l6ZSB7XG4gICAgcmV0dXJuIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SFRNTEVsZW1lbnQ+KG5ldyBHZXRGbG93SG9zdEVsZW1lbnRSZXF1ZXN0KCkpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlTGluZVNlcnZpY2UoKTogU25hcExpbmVTZXJ2aWNlIHtcbiAgICB0aGlzLl9saW5lU2VydmljZSA9IG5ldyBTbmFwTGluZVNlcnZpY2UodGhpcy5fYnJvd3NlciwgdGhpcy5fc3RvcmUuZkxpbmVBbGlnbm1lbnQhLmhvc3RFbGVtZW50KTtcbiAgICByZXR1cm4gdGhpcy5fbGluZVNlcnZpY2U7XG4gIH1cblxuICBwcml2YXRlIF9jb2xsZWN0Tm90RHJhZ2dlZE5vZGVSZWN0cyhhbGxEcmFnZ2VkTm9kZXM6IEZOb2RlQmFzZVtdKTogSVJlY3RbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbGN1bGF0ZU5vdERyYWdnZWROb2RlcyhhbGxEcmFnZ2VkTm9kZXMpLm1hcCgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SVJlY3Q+KG5ldyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0KHguaG9zdEVsZW1lbnQpKTtcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlTm90RHJhZ2dlZE5vZGVzKGFsbERyYWdnZWROb2RlczogRk5vZGVCYXNlW10pOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZOb2Rlcy5maWx0ZXIoKHgpID0+ICFhbGxEcmFnZ2VkTm9kZXMuaW5jbHVkZXMoeCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './create-snap-lines';
2
+ export * from './create-snap-lines-request';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL2NyZWF0ZS1zbmFwLWxpbmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLXNuYXAtbGluZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1zbmFwLWxpbmVzLXJlcXVlc3QnO1xuIl19
@@ -0,0 +1,51 @@
1
+ import { findClosestAlignment } from '@foblex/2d';
2
+ import { FComponentsStore } from '../../../f-storage';
3
+ export class SnapLinesDragHandler {
4
+ _lineService;
5
+ _size;
6
+ _rects;
7
+ _debounceTimer = null;
8
+ _canvasTransform;
9
+ _alignThreshold = 10;
10
+ constructor(injector, _lineService, _size, _rects) {
11
+ this._lineService = _lineService;
12
+ this._size = _size;
13
+ this._rects = _rects;
14
+ const store = injector.get(FComponentsStore);
15
+ this._alignThreshold = store.fLineAlignment.fAlignThreshold();
16
+ this._canvasTransform = store.fCanvas?.transform;
17
+ }
18
+ drawGuidesFor(_draggedRect) {
19
+ if (this._debounceTimer) {
20
+ clearTimeout(this._debounceTimer);
21
+ }
22
+ this._debounceTimer = setTimeout(() => this._renderGuides(_draggedRect), 15);
23
+ }
24
+ _renderGuides(_draggedRect) {
25
+ const intersect = this.findClosestAlignment(_draggedRect);
26
+ if (intersect.xResult.value !== undefined) {
27
+ this._lineService.drawVerticalLine(intersect.xResult.value, this._size, this._canvasTransform);
28
+ }
29
+ else {
30
+ this._lineService.hideVerticalLine();
31
+ }
32
+ if (intersect.yResult.value !== undefined) {
33
+ this._lineService.drawHorizontalLine(intersect.yResult.value, this._size, this._canvasTransform);
34
+ }
35
+ else {
36
+ this._lineService.hideHorizontalLine();
37
+ }
38
+ }
39
+ findClosestAlignment(_draggedRect) {
40
+ return findClosestAlignment(this._rects, _draggedRect, this._alignThreshold);
41
+ }
42
+ clearGuides() {
43
+ this._lineService.hideVerticalLine();
44
+ this._lineService.hideHorizontalLine();
45
+ if (this._debounceTimer) {
46
+ clearTimeout(this._debounceTimer);
47
+ this._debounceTimer = null;
48
+ }
49
+ }
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcC1saW5lcy5kcmFnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL2NyZWF0ZS1zbmFwLWxpbmVzL3NuYXAtbGluZXMuZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxvQkFBb0IsRUFBZ0MsTUFBTSxZQUFZLENBQUM7QUFDL0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFJcEQsTUFBTSxPQUFPLG9CQUFvQjtJQVNyQjtJQUNBO0lBQ0E7SUFURixjQUFjLEdBQVEsSUFBSSxDQUFDO0lBRWxCLGdCQUFnQixDQUFrQjtJQUNsQyxlQUFlLEdBQVcsRUFBRSxDQUFDO0lBRTlDLFlBQ0UsUUFBa0IsRUFDVixZQUE2QixFQUM3QixLQUFZLEVBQ1osTUFBZTtRQUZmLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUV2QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsY0FBZSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVUsQ0FBQztJQUNwRCxDQUFDO0lBRU0sYUFBYSxDQUFDLFlBQW1CO1FBQ3RDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVPLGFBQWEsQ0FBQyxZQUFtQjtRQUN2QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUQsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakcsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25HLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRU0sb0JBQW9CLENBQUMsWUFBbUI7UUFDN0MsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUV2QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2ZpbmRDbG9zZXN0QWxpZ25tZW50LCBJUmVjdCwgSVNpemUsIElUcmFuc2Zvcm1Nb2RlbH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQge0ZDb21wb25lbnRzU3RvcmV9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQge0lTbmFwUmVzdWx0LCBTbmFwTGluZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2YtbGluZS1hbGlnbm1lbnQnO1xuaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBTbmFwTGluZXNEcmFnSGFuZGxlciB7XG5cbiAgcHJpdmF0ZSBfZGVib3VuY2VUaW1lcjogYW55ID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jYW52YXNUcmFuc2Zvcm06IElUcmFuc2Zvcm1Nb2RlbDtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWxpZ25UaHJlc2hvbGQ6IG51bWJlciA9IDEwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9saW5lU2VydmljZTogU25hcExpbmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3NpemU6IElTaXplLFxuICAgIHByaXZhdGUgX3JlY3RzOiBJUmVjdFtdLFxuICApIHtcbiAgICBjb25zdCBzdG9yZSA9IGluamVjdG9yLmdldChGQ29tcG9uZW50c1N0b3JlKTtcbiAgICB0aGlzLl9hbGlnblRocmVzaG9sZCA9IHN0b3JlLmZMaW5lQWxpZ25tZW50IS5mQWxpZ25UaHJlc2hvbGQoKTtcbiAgICB0aGlzLl9jYW52YXNUcmFuc2Zvcm0gPSBzdG9yZS5mQ2FudmFzPy50cmFuc2Zvcm0hO1xuICB9XG5cbiAgcHVibGljIGRyYXdHdWlkZXNGb3IoX2RyYWdnZWRSZWN0OiBJUmVjdCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kZWJvdW5jZVRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fZGVib3VuY2VUaW1lcik7XG4gICAgfVxuXG4gICAgdGhpcy5fZGVib3VuY2VUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fcmVuZGVyR3VpZGVzKF9kcmFnZ2VkUmVjdCksIDE1KTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckd1aWRlcyhfZHJhZ2dlZFJlY3Q6IElSZWN0KTogdm9pZCB7XG4gICAgY29uc3QgaW50ZXJzZWN0ID0gdGhpcy5maW5kQ2xvc2VzdEFsaWdubWVudChfZHJhZ2dlZFJlY3QpO1xuICAgIGlmIChpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9saW5lU2VydmljZS5kcmF3VmVydGljYWxMaW5lKGludGVyc2VjdC54UmVzdWx0LnZhbHVlLCB0aGlzLl9zaXplLCB0aGlzLl9jYW52YXNUcmFuc2Zvcm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saW5lU2VydmljZS5oaWRlVmVydGljYWxMaW5lKCk7XG4gICAgfVxuICAgIGlmIChpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9saW5lU2VydmljZS5kcmF3SG9yaXpvbnRhbExpbmUoaW50ZXJzZWN0LnlSZXN1bHQudmFsdWUsIHRoaXMuX3NpemUsIHRoaXMuX2NhbnZhc1RyYW5zZm9ybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xpbmVTZXJ2aWNlLmhpZGVIb3Jpem9udGFsTGluZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kQ2xvc2VzdEFsaWdubWVudChfZHJhZ2dlZFJlY3Q6IElSZWN0KTogSVNuYXBSZXN1bHQge1xuICAgIHJldHVybiBmaW5kQ2xvc2VzdEFsaWdubWVudCh0aGlzLl9yZWN0cywgX2RyYWdnZWRSZWN0LCB0aGlzLl9hbGlnblRocmVzaG9sZCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJHdWlkZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fbGluZVNlcnZpY2UuaGlkZVZlcnRpY2FsTGluZSgpO1xuICAgIHRoaXMuX2xpbmVTZXJ2aWNlLmhpZGVIb3Jpem9udGFsTGluZSgpO1xuXG4gICAgaWYgKHRoaXMuX2RlYm91bmNlVGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9kZWJvdW5jZVRpbWVyKTtcbiAgICAgIHRoaXMuX2RlYm91bmNlVGltZXIgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,7 +1,13 @@
1
+ /**
2
+ * Event that is emitted when nodes and groups are moved.
3
+ * It contains the moved nodes and groups and their new positions.
4
+ */
1
5
  export class FMoveNodesEvent {
2
6
  fNodes;
3
- constructor(fNodes) {
7
+ constructor(
8
+ // Moved nodes and groups
9
+ fNodes) {
4
10
  this.fNodes = fNodes;
5
11
  }
6
12
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1tb3ZlLW5vZGVzLmV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9mLW1vdmUtbm9kZXMuZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGVBQWU7SUFHakI7SUFEVCxZQUNTLE1BQTBDO1FBQTFDLFdBQU0sR0FBTixNQUFNLENBQW9DO0lBRW5ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SVBvaW50fSBmcm9tICdAZm9ibGV4LzJkJztcblxuZXhwb3J0IGNsYXNzIEZNb3ZlTm9kZXNFdmVudCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGZOb2RlczogeyBpZDogc3RyaW5nOyBwb3NpdGlvbjogSVBvaW50IH1bXSxcbiAgKSB7XG4gIH1cbn1cbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1tb3ZlLW5vZGVzLmV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9mLW1vdmUtbm9kZXMuZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFJakI7SUFGVDtJQUNFLHlCQUF5QjtJQUNsQixNQUEwQztRQUExQyxXQUFNLEdBQU4sTUFBTSxDQUFvQztJQUVuRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lQb2ludH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbi8qKlxuICogRXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gbm9kZXMgYW5kIGdyb3VwcyBhcmUgbW92ZWQuXG4gKiBJdCBjb250YWlucyB0aGUgbW92ZWQgbm9kZXMgYW5kIGdyb3VwcyBhbmQgdGhlaXIgbmV3IHBvc2l0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEZNb3ZlTm9kZXNFdmVudCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gTW92ZWQgbm9kZXMgYW5kIGdyb3Vwc1xuICAgIHB1YmxpYyBmTm9kZXM6IHsgaWQ6IHN0cmluZzsgcG9zaXRpb246IElQb2ludCB9W10sXG4gICkge1xuICB9XG59XG4iXX0=
@@ -1,12 +1,13 @@
1
1
  export * from './connection-drag-handlers';
2
- export * from './create-move-nodes-drag-model-from-selection';
3
- export * from './line-alignment-preparation';
2
+ export * from './constraint';
3
+ export * from './create-drag-model-from-selection';
4
+ export * from './create-snap-lines';
4
5
  export * from './move-preparation';
5
6
  export * from './move-finalize';
6
- export * from './f-line-alignment.drag-handler';
7
+ export * from './create-snap-lines/snap-lines.drag-handler';
7
8
  export * from './f-move-nodes.event';
8
- export * from './f-node-move.drag-handler';
9
- export * from './point-bounds-limiter';
9
+ export * from './move-drag-handler';
10
10
  export * from './providers';
11
- export * from './f-summary-node-move.drag-handler';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsc0JBQXNCLENBQUM7QUFFckMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb24tZHJhZy1oYW5kbGVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLW1vdmUtbm9kZXMtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGluZS1hbGlnbm1lbnQtcHJlcGFyYXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL21vdmUtcHJlcGFyYXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL21vdmUtZmluYWxpemUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtbGluZS1hbGlnbm1lbnQuZHJhZy1oYW5kbGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLW1vdmUtbm9kZXMuZXZlbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytbm9kZS1tb3ZlLmRyYWctaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vcG9pbnQtYm91bmRzLWxpbWl0ZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zdW1tYXJ5LW5vZGUtbW92ZS5kcmFnLWhhbmRsZXInO1xuXG4iXX0=
11
+ export * from './move-summary-drag-handler';
12
+ export * from './constraint/snap-to-grid';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxjQUFjLENBQUM7QUFFN0IsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxjQUFjLDZDQUE2QyxDQUFDO0FBRTVELGNBQWMsc0JBQXNCLENBQUM7QUFFckMsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxjQUFjLGFBQWEsQ0FBQztBQUU1QixjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb24tZHJhZy1oYW5kbGVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29uc3RyYWludCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1zbmFwLWxpbmVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb3ZlLXByZXBhcmF0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb3ZlLWZpbmFsaXplJztcblxuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtc25hcC1saW5lcy9zbmFwLWxpbmVzLmRyYWctaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1tb3ZlLW5vZGVzLmV2ZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9tb3ZlLWRyYWctaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb3ZlLXN1bW1hcnktZHJhZy1oYW5kbGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb25zdHJhaW50L3NuYXAtdG8tZ3JpZCc7XG5cbiJdfQ==
@@ -0,0 +1,95 @@
1
+ import { PointExtensions, RectExtensions } from '@foblex/2d';
2
+ import { F_CSS_CLASS, GetNormalizedElementRectRequest } from "../../domain";
3
+ import { DragConstraintPipeline, expandRectFromBaseline } from "./constraint";
4
+ import { FMediator } from "@foblex/mediator";
5
+ export class MoveDragHandler {
6
+ _injector;
7
+ nodeOrGroup;
8
+ childrenNodeAndGroups;
9
+ fSourceHandlers;
10
+ fTargetHandlers;
11
+ fEventType = 'move-node';
12
+ _startPosition = PointExtensions.initialize();
13
+ _startRect = RectExtensions.initialize();
14
+ _applyConstraints = (difference) => difference;
15
+ _lastSoftResults = [];
16
+ _pipeline;
17
+ _limits = null;
18
+ _lastPosition = PointExtensions.initialize();
19
+ constructor(_injector, nodeOrGroup, childrenNodeAndGroups = [], fSourceHandlers = [], fTargetHandlers = []) {
20
+ this._injector = _injector;
21
+ this.nodeOrGroup = nodeOrGroup;
22
+ this.childrenNodeAndGroups = childrenNodeAndGroups;
23
+ this.fSourceHandlers = fSourceHandlers;
24
+ this.fTargetHandlers = fTargetHandlers;
25
+ this._startRect = _injector.get(FMediator).execute(new GetNormalizedElementRectRequest(nodeOrGroup.hostElement));
26
+ this._startPosition = { ...nodeOrGroup._position };
27
+ }
28
+ setLimits(limits) {
29
+ this._limits = limits;
30
+ this._pipeline = new DragConstraintPipeline(this._injector, this._startPosition, limits);
31
+ this._applyConstraints = (difference) => {
32
+ const summary = this._pipeline.apply(difference);
33
+ this._applySoftExpansions(summary.soft);
34
+ return summary.hardDifference;
35
+ };
36
+ }
37
+ _applySoftExpansions(softResults) {
38
+ this._lastSoftResults = softResults;
39
+ this._lastSoftResults.forEach((result, index) => {
40
+ const softLimit = this._limits.soft[index];
41
+ const expandedRect = expandRectFromBaseline(softLimit.boundingRect, result.overflow, result.edges);
42
+ this._commitParentRect(softLimit.nodeOrGroup, expandedRect);
43
+ });
44
+ }
45
+ _commitParentRect(parent, rect) {
46
+ parent.updateSize({ width: rect.width, height: rect.height });
47
+ parent.updatePosition({ x: rect.x, y: rect.y });
48
+ parent.redraw();
49
+ }
50
+ getLastRect() {
51
+ return RectExtensions.initialize(this._lastPosition.x, this._lastPosition.y, this._startRect.width, this._startRect.height);
52
+ }
53
+ prepareDragSequence() {
54
+ this.childrenNodeAndGroups.forEach((x) => x.prepareDragSequence());
55
+ this.nodeOrGroup.hostElement.classList.add(F_CSS_CLASS.DRAG_AND_DROP.DRAGGING);
56
+ }
57
+ onPointerMove(difference) {
58
+ const differenceWithRestrictions = this._applyConstraints(difference);
59
+ this.childrenNodeAndGroups.forEach((x) => x.onPointerMove(differenceWithRestrictions));
60
+ this._redraw(this._nodeOrGroupNewPosition(differenceWithRestrictions));
61
+ this.fSourceHandlers.forEach((x) => x.setSourceDifference(differenceWithRestrictions));
62
+ this.fTargetHandlers.forEach((x) => x.setTargetDifference(differenceWithRestrictions));
63
+ }
64
+ assignFinalConstraints() {
65
+ this._applyConstraints = (difference) => {
66
+ const summary = this._pipeline.finalize(difference);
67
+ this._applySoftExpansions(summary.soft);
68
+ return summary.hardDifference;
69
+ };
70
+ }
71
+ _nodeOrGroupNewPosition(difference) {
72
+ return PointExtensions.sum(this._startPosition, difference);
73
+ }
74
+ _redraw(position) {
75
+ this._lastPosition = position;
76
+ this.nodeOrGroup.updatePosition(position);
77
+ this.nodeOrGroup.redraw();
78
+ }
79
+ onPointerUp() {
80
+ this.childrenNodeAndGroups.forEach((x) => x.onPointerUp());
81
+ this.nodeOrGroup.position.set(this.nodeOrGroup._position);
82
+ this.nodeOrGroup.hostElement.classList.remove(F_CSS_CLASS.DRAG_AND_DROP.DRAGGING);
83
+ this._emitEventIfNodeExpanded();
84
+ }
85
+ _emitEventIfNodeExpanded() {
86
+ this._lastSoftResults.forEach((result, index) => {
87
+ const softLimit = this._limits.soft[index];
88
+ const expandedRect = expandRectFromBaseline(softLimit.boundingRect, result.overflow, result.edges);
89
+ if (result.overflow.x || result.overflow.y) {
90
+ softLimit.nodeOrGroup.sizeChange.emit(expandedRect);
91
+ }
92
+ });
93
+ }
94
+ }
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1kcmFnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL21vdmUtZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLGNBQWMsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUkxRSxPQUFPLEVBQUMsV0FBVyxFQUFFLCtCQUErQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRzFFLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBb0IsTUFBTSxjQUFjLENBQUM7QUFDL0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxlQUFlO0lBZVA7SUFDVjtJQUNBO0lBQ0E7SUFDQTtJQWpCTyxVQUFVLEdBQUcsV0FBVyxDQUFDO0lBRXhCLGNBQWMsR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDOUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUVsRCxpQkFBaUIsR0FBbUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQztJQUUvRSxnQkFBZ0IsR0FBd0IsRUFBRSxDQUFDO0lBQzNDLFNBQVMsQ0FBMEI7SUFDbkMsT0FBTyxHQUF1QixJQUFJLENBQUM7SUFDbkMsYUFBYSxHQUFHLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUVyRCxZQUNtQixTQUFtQixFQUM3QixXQUFzQixFQUN0Qix3QkFBMkMsRUFBRSxFQUM3QyxrQkFBK0MsRUFBRSxFQUNqRCxrQkFBK0MsRUFBRTtRQUp2QyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQzdCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO1FBQ3RCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7UUFDN0Msb0JBQWUsR0FBZixlQUFlLENBQWtDO1FB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QUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM5QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxNQUFNLFlBQVksR0FBRyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25HLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsU0FBUyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SVBvaW50LCBJUmVjdCwgUG9pbnRFeHRlbnNpb25zLCBSZWN0RXh0ZW5zaW9uc30gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQge0lGRHJhZ0hhbmRsZXJ9IGZyb20gJy4uL2YtZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7Rk5vZGVCYXNlfSBmcm9tICcuLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHtCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyfSBmcm9tICcuL2Nvbm5lY3Rpb24tZHJhZy1oYW5kbGVycyc7XG5pbXBvcnQge0ZfQ1NTX0NMQVNTLCBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0fSBmcm9tIFwiLi4vLi4vZG9tYWluXCI7XG5pbXBvcnQge0luamVjdG9yfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtJRHJhZ0xpbWl0c30gZnJvbSBcIi4vY3JlYXRlLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb25cIjtcbmltcG9ydCB7RHJhZ0NvbnN0cmFpbnRQaXBlbGluZSwgZXhwYW5kUmVjdEZyb21CYXNlbGluZSwgSUNvbnN0cmFpbnRSZXN1bHR9IGZyb20gXCIuL2NvbnN0cmFpbnRcIjtcbmltcG9ydCB7Rk1lZGlhdG9yfSBmcm9tIFwiQGZvYmxleC9tZWRpYXRvclwiO1xuXG5leHBvcnQgY2xhc3MgTW92ZURyYWdIYW5kbGVyIGltcGxlbWVudHMgSUZEcmFnSGFuZGxlciB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZFdmVudFR5cGUgPSAnbW92ZS1ub2RlJztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGFydFBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhcnRSZWN0ID0gUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByaXZhdGUgX2FwcGx5Q29uc3RyYWludHM6IChkaWZmZXJlbmNlOiBJUG9pbnQpID0+IElQb2ludCA9IChkaWZmZXJlbmNlKSA9PiBkaWZmZXJlbmNlO1xuXG4gIHByaXZhdGUgX2xhc3RTb2Z0UmVzdWx0czogSUNvbnN0cmFpbnRSZXN1bHRbXSA9IFtdO1xuICBwcml2YXRlIF9waXBlbGluZSE6IERyYWdDb25zdHJhaW50UGlwZWxpbmU7XG4gIHByaXZhdGUgX2xpbWl0czogSURyYWdMaW1pdHMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbGFzdFBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHVibGljIG5vZGVPckdyb3VwOiBGTm9kZUJhc2UsXG4gICAgcHVibGljIGNoaWxkcmVuTm9kZUFuZEdyb3VwczogTW92ZURyYWdIYW5kbGVyW10gPSBbXSxcbiAgICBwdWJsaWMgZlNvdXJjZUhhbmRsZXJzOiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyW10gPSBbXSxcbiAgICBwdWJsaWMgZlRhcmdldEhhbmRsZXJzOiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyW10gPSBbXSxcbiAgKSB7XG4gICAgdGhpcy5fc3RhcnRSZWN0ID0gX2luamVjdG9yLmdldChGTWVkaWF0b3IpLmV4ZWN1dGUobmV3IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3Qobm9kZU9yR3JvdXAuaG9zdEVsZW1lbnQpKVxuICAgIHRoaXMuX3N0YXJ0UG9zaXRpb24gPSB7Li4ubm9kZU9yR3JvdXAuX3Bvc2l0aW9ufTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaW1pdHMobGltaXRzOiBJRHJhZ0xpbWl0cyk6IHZvaWQge1xuICAgIHRoaXMuX2xpbWl0cyA9IGxpbWl0cztcbiAgICB0aGlzLl9waXBlbGluZSA9IG5ldyBEcmFnQ29uc3RyYWludFBpcGVsaW5lKHRoaXMuX2luamVjdG9yLCB0aGlzLl9zdGFydFBvc2l0aW9uLCBsaW1pdHMpO1xuXG4gICAgdGhpcy5fYXBwbHlDb25zdHJhaW50cyA9IChkaWZmZXJlbmNlOiBJUG9pbnQpID0+IHtcbiAgICAgIGNvbnN0IHN1bW1hcnkgPSB0aGlzLl9waXBlbGluZS5hcHBseShkaWZmZXJlbmNlKTtcbiAgICAgIHRoaXMuX2FwcGx5U29mdEV4cGFuc2lvbnMoc3VtbWFyeS5zb2Z0KTtcbiAgICAgIHJldHVybiBzdW1tYXJ5LmhhcmREaWZmZXJlbmNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5U29mdEV4cGFuc2lvbnMoXG4gICAgc29mdFJlc3VsdHM6IElDb25zdHJhaW50UmVzdWx0W11cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fbGFzdFNvZnRSZXN1bHRzID0gc29mdFJlc3VsdHM7XG4gICAgdGhpcy5fbGFzdFNvZnRSZXN1bHRzLmZvckVhY2goKHJlc3VsdCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHNvZnRMaW1pdCA9IHRoaXMuX2xpbWl0cyEuc29mdFtpbmRleF07XG4gICAgICBjb25zdCBleHBhbmRlZFJlY3QgPSBleHBhbmRSZWN0RnJvbUJhc2VsaW5lKHNvZnRMaW1pdC5ib3VuZGluZ1JlY3QsIHJlc3VsdC5vdmVyZmxvdywgcmVzdWx0LmVkZ2VzKTtcbiAgICAgIHRoaXMuX2NvbW1pdFBhcmVudFJlY3Qoc29mdExpbWl0Lm5vZGVPckdyb3VwLCBleHBhbmRlZFJlY3QpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tbWl0UGFyZW50UmVjdChwYXJlbnQ6IEZOb2RlQmFzZSwgcmVjdDogSVJlY3QpOiB2b2lkIHtcbiAgICBwYXJlbnQudXBkYXRlU2l6ZSh7d2lkdGg6IHJlY3Qud2lkdGgsIGhlaWdodDogcmVjdC5oZWlnaHR9KTtcbiAgICBwYXJlbnQudXBkYXRlUG9zaXRpb24oe3g6IHJlY3QueCwgeTogcmVjdC55fSk7XG4gICAgcGFyZW50LnJlZHJhdygpO1xuICB9XG5cbiAgcHVibGljIGdldExhc3RSZWN0KCk6IElSZWN0IHtcbiAgICByZXR1cm4gUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSh0aGlzLl9sYXN0UG9zaXRpb24ueCwgdGhpcy5fbGFzdFBvc2l0aW9uLnksIHRoaXMuX3N0YXJ0UmVjdC53aWR0aCwgdGhpcy5fc3RhcnRSZWN0LmhlaWdodCk7XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNoaWxkcmVuTm9kZUFuZEdyb3Vwcy5mb3JFYWNoKCh4KSA9PiB4LnByZXBhcmVEcmFnU2VxdWVuY2UoKSk7XG4gICAgdGhpcy5ub2RlT3JHcm91cC5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKEZfQ1NTX0NMQVNTLkRSQUdfQU5EX0RST1AuRFJBR0dJTkcpO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgZGlmZmVyZW5jZVdpdGhSZXN0cmljdGlvbnMgPSB0aGlzLl9hcHBseUNvbnN0cmFpbnRzKGRpZmZlcmVuY2UpO1xuXG4gICAgdGhpcy5jaGlsZHJlbk5vZGVBbmRHcm91cHMuZm9yRWFjaCgoeCkgPT4geC5vblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2VXaXRoUmVzdHJpY3Rpb25zKSk7XG4gICAgdGhpcy5fcmVkcmF3KHRoaXMuX25vZGVPckdyb3VwTmV3UG9zaXRpb24oZGlmZmVyZW5jZVdpdGhSZXN0cmljdGlvbnMpKTtcblxuICAgIHRoaXMuZlNvdXJjZUhhbmRsZXJzLmZvckVhY2goKHgpID0+IHguc2V0U291cmNlRGlmZmVyZW5jZShkaWZmZXJlbmNlV2l0aFJlc3RyaWN0aW9ucykpO1xuICAgIHRoaXMuZlRhcmdldEhhbmRsZXJzLmZvckVhY2goKHgpID0+IHguc2V0VGFyZ2V0RGlmZmVyZW5jZShkaWZmZXJlbmNlV2l0aFJlc3RyaWN0aW9ucykpO1xuICB9XG5cbiAgcHVibGljIGFzc2lnbkZpbmFsQ29uc3RyYWludHMoKTogdm9pZCB7XG4gICAgdGhpcy5fYXBwbHlDb25zdHJhaW50cyA9IChkaWZmZXJlbmNlOiBJUG9pbnQpID0+IHtcbiAgICAgIGNvbnN0IHN1bW1hcnkgPSB0aGlzLl9waXBlbGluZS5maW5hbGl6ZShkaWZmZXJlbmNlKTtcbiAgICAgIHRoaXMuX2FwcGx5U29mdEV4cGFuc2lvbnMoc3VtbWFyeS5zb2Z0KTtcbiAgICAgIHJldHVybiBzdW1tYXJ5LmhhcmREaWZmZXJlbmNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX25vZGVPckdyb3VwTmV3UG9zaXRpb24oZGlmZmVyZW5jZTogSVBvaW50KTogSVBvaW50IHtcbiAgICByZXR1cm4gUG9pbnRFeHRlbnNpb25zLnN1bSh0aGlzLl9zdGFydFBvc2l0aW9uLCBkaWZmZXJlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlZHJhdyhwb3NpdGlvbjogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fbGFzdFBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgdGhpcy5ub2RlT3JHcm91cC51cGRhdGVQb3NpdGlvbihwb3NpdGlvbik7XG4gICAgdGhpcy5ub2RlT3JHcm91cC5yZWRyYXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoaWxkcmVuTm9kZUFuZEdyb3Vwcy5mb3JFYWNoKCh4KSA9PiB4Lm9uUG9pbnRlclVwKCkpO1xuICAgIHRoaXMubm9kZU9yR3JvdXAucG9zaXRpb24uc2V0KHRoaXMubm9kZU9yR3JvdXAuX3Bvc2l0aW9uKTtcbiAgICB0aGlzLm5vZGVPckdyb3VwLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoRl9DU1NfQ0xBU1MuRFJBR19BTkRfRFJPUC5EUkFHR0lORyk7XG4gICAgdGhpcy5fZW1pdEV2ZW50SWZOb2RlRXhwYW5kZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRFdmVudElmTm9kZUV4cGFuZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX2xhc3RTb2Z0UmVzdWx0cy5mb3JFYWNoKChyZXN1bHQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzb2Z0TGltaXQgPSB0aGlzLl9saW1pdHMhLnNvZnRbaW5kZXhdO1xuICAgICAgY29uc3QgZXhwYW5kZWRSZWN0ID0gZXhwYW5kUmVjdEZyb21CYXNlbGluZShzb2Z0TGltaXQuYm91bmRpbmdSZWN0LCByZXN1bHQub3ZlcmZsb3csIHJlc3VsdC5lZGdlcyk7XG4gICAgICBpZiAocmVzdWx0Lm92ZXJmbG93LnggfHwgcmVzdWx0Lm92ZXJmbG93LnkpIHtcbiAgICAgICAgc29mdExpbWl0Lm5vZGVPckdyb3VwLnNpemVDaGFuZ2UuZW1pdChleHBhbmRlZFJlY3QpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -6,64 +6,39 @@ import { FExecutionRegister, FMediator } from '@foblex/mediator';
6
6
  import { FComponentsStore } from '../../../f-storage';
7
7
  import { FDraggableDataContext } from '../../f-draggable-data-context';
8
8
  import { IsConnectionUnderNodeRequest } from '../../domain';
9
- import { FNodeDropToGroupDragHandler } from '../../f-drop-to-group';
10
- import { FLineAlignmentDragHandler } from '../f-line-alignment.drag-handler';
11
- import { FSummaryNodeMoveDragHandler } from '../f-summary-node-move.drag-handler';
9
+ import { MoveSummaryDragHandler } from '../move-summary-drag-handler';
12
10
  import { FMoveNodesEvent } from "../f-move-nodes.event";
13
11
  import * as i0 from "@angular/core";
14
12
  let FNodeMoveFinalizeExecution = class FNodeMoveFinalizeExecution {
15
- _fMediator = inject(FMediator);
16
- _fComponentsStore = inject(FComponentsStore);
17
- _fDraggableDataContext = inject(FDraggableDataContext);
13
+ _mediator = inject(FMediator);
14
+ _store = inject(FComponentsStore);
15
+ _dragContext = inject(FDraggableDataContext);
16
+ _summaryHandler;
18
17
  get _fHost() {
19
- return this._fComponentsStore.fFlow.hostElement;
18
+ return this._store.fFlow.hostElement;
20
19
  }
21
- handle(request) {
20
+ handle({ event }) {
22
21
  if (!this._isValid()) {
23
22
  return;
24
23
  }
25
- const difference = this._getDifferenceWithLineAlignment(this._getDifferenceBetweenPreparationAndFinalize(request.event.getPosition()));
26
- const firstNodeOrGroup = this._fDraggableDataContext.draggableItems
27
- .find((x) => x instanceof FSummaryNodeMoveDragHandler);
28
- this._finalizeMove(firstNodeOrGroup.calculateRestrictedDifference(difference));
24
+ const difference = this._getDifferenceBetweenPreparationAndFinalize(event.getPosition());
25
+ const snapLinesDifference = this._applySnapLinesDifference(difference, this._getSnapLinesResult(difference));
26
+ this._finalizeMove(snapLinesDifference);
29
27
  this._applyConnectionUnderDroppedNode();
30
28
  }
31
29
  _isValid() {
32
- return this._fDraggableDataContext.draggableItems.some((x) => x instanceof FSummaryNodeMoveDragHandler);
33
- }
34
- _finalizeMove(difference) {
35
- this._getItems().forEach((x) => {
36
- x.onPointerMove({ ...difference });
37
- x.onPointerUp?.();
38
- });
39
- if (this._getItems().length) {
40
- const event = this._getItems()[0].fData.fNodeIds.map((id) => {
41
- return {
42
- id,
43
- position: this._fComponentsStore.fNodes.find(x => x.fId() === id).position,
44
- };
45
- });
46
- this._fComponentsStore.fDraggable?.fMoveNodes.emit(new FMoveNodesEvent(event));
47
- }
48
- }
49
- _getItems() {
50
- return this._fDraggableDataContext.draggableItems
51
- .filter((x) => !(x instanceof FNodeDropToGroupDragHandler));
30
+ this._summaryHandler = this._dragContext.draggableItems.find((x) => x instanceof MoveSummaryDragHandler);
31
+ return !!this._summaryHandler;
52
32
  }
53
33
  _getDifferenceBetweenPreparationAndFinalize(position) {
54
34
  return Point.fromPoint(position).elementTransform(this._fHost)
55
- .div(this._fDraggableDataContext.onPointerDownScale)
56
- .sub(this._fDraggableDataContext.onPointerDownPosition);
35
+ .div(this._dragContext.onPointerDownScale)
36
+ .sub(this._dragContext.onPointerDownPosition);
57
37
  }
58
- _getDifferenceWithLineAlignment(difference) {
59
- return this._applyLineAlignmentDifference(difference, this._getLineAlignmentDifference(difference));
38
+ _getSnapLinesResult(difference) {
39
+ return this._summaryHandler?.findClosestAlignment(difference);
60
40
  }
61
- _getLineAlignmentDifference(difference) {
62
- return this._fDraggableDataContext.draggableItems
63
- .find((x) => x instanceof FLineAlignmentDragHandler)
64
- ?.findNearestCoordinate(difference);
65
- }
66
- _applyLineAlignmentDifference(difference, intersection) {
41
+ _applySnapLinesDifference(difference, intersection) {
67
42
  if (intersection) {
68
43
  difference.x = this._isIntersectValue(intersection.xResult) ? (difference.x - intersection.xResult.distance) : difference.x;
69
44
  difference.y = this._isIntersectValue(intersection.yResult) ? (difference.y - intersection.yResult.distance) : difference.y;
@@ -73,17 +48,31 @@ let FNodeMoveFinalizeExecution = class FNodeMoveFinalizeExecution {
73
48
  _isIntersectValue(result) {
74
49
  return result.value !== undefined && result.value !== null;
75
50
  }
51
+ _finalizeMove(snappedDifference) {
52
+ this._summaryHandler?.rootHandlers.forEach((x) => x.assignFinalConstraints());
53
+ this._summaryHandler.onPointerMove({ ...snappedDifference });
54
+ this._summaryHandler.onPointerUp?.();
55
+ this._store.fDraggable?.fMoveNodes.emit(this._createMoveNodesEvent());
56
+ }
57
+ _createMoveNodesEvent() {
58
+ const eventNodes = this._summaryHandler.fData.fNodeIds.map((id) => {
59
+ return {
60
+ id,
61
+ position: this._store.fNodes.find(x => x.fId() === id)._position,
62
+ };
63
+ });
64
+ return new FMoveNodesEvent(eventNodes);
65
+ }
76
66
  _applyConnectionUnderDroppedNode() {
77
- if (this._isDraggedJustOneNode() && this._fComponentsStore.fDraggable?.fEmitOnNodeIntersect) {
78
- const fNode = this._getFirstNodeOrGroup();
79
- setTimeout(() => this._fMediator.execute(new IsConnectionUnderNodeRequest(fNode)));
67
+ if (this._isDraggedJustOneNode() && this._store.fDraggable?.fEmitOnNodeIntersect) {
68
+ setTimeout(() => this._mediator.execute(new IsConnectionUnderNodeRequest(this._firstNodeOrGroup())));
80
69
  }
81
70
  }
82
71
  _isDraggedJustOneNode() {
83
- return this._fDraggableDataContext.draggableItems[0].fHandlers.length === 1;
72
+ return this._summaryHandler.rootHandlers.length === 1;
84
73
  }
85
- _getFirstNodeOrGroup() {
86
- return this._fDraggableDataContext.draggableItems[0].fHandlers[0].fNode;
74
+ _firstNodeOrGroup() {
75
+ return this._summaryHandler.rootHandlers[0].nodeOrGroup;
87
76
  }
88
77
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FNodeMoveFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
89
78
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FNodeMoveFinalizeExecution });
@@ -95,4 +84,4 @@ export { FNodeMoveFinalizeExecution };
95
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FNodeMoveFinalizeExecution, decorators: [{
96
85
  type: Injectable
97
86
  }] });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLW1vdmUtZmluYWxpemUuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9tb3ZlLWZpbmFsaXplL2Ytbm9kZS1tb3ZlLWZpbmFsaXplLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFTLEtBQUssRUFBQyxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDM0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUNMLDRCQUE0QixFQUM3QixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUVoRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBSS9DLElBQU0sMEJBQTBCLEdBQWhDLE1BQU0sMEJBQTBCO0lBRTdCLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0Msc0JBQXNCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFL0QsSUFB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QUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7SUFDSCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLE9BQVEsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQWlDLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixPQUFRLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDM0csQ0FBQzt3R0FsR1UsMEJBQTBCOzRHQUExQiwwQkFBMEI7O0FBQTFCLDBCQUEwQjtJQUR0QyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQztHQUNoQywwQkFBMEIsQ0FtR3RDOzs0RkFuR1ksMEJBQTBCO2tCQUZ0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3R9IGZyb20gJy4vZi1ub2RlLW1vdmUtZmluYWxpemUucmVxdWVzdCc7XG5pbXBvcnQge0lQb2ludCwgUG9pbnR9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHtGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbn0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQge0ZDb21wb25lbnRzU3RvcmV9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQge0ZEcmFnZ2FibGVEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7XG4gIElzQ29ubmVjdGlvblVuZGVyTm9kZVJlcXVlc3Rcbn0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7SUZEcmFnSGFuZGxlcn0gZnJvbSAnLi4vLi4vZi1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHtGTm9kZURyb3BUb0dyb3VwRHJhZ0hhbmRsZXJ9IGZyb20gJy4uLy4uL2YtZHJvcC10by1ncm91cCc7XG5pbXBvcnQge0lMaW5lQWxpZ25tZW50UmVzdWx0LCBJTmVhcmVzdENvb3JkaW5hdGVSZXN1bHR9IGZyb20gJy4uLy4uLy4uL2YtbGluZS1hbGlnbm1lbnQnO1xuaW1wb3J0IHtGTGluZUFsaWdubWVudERyYWdIYW5kbGVyfSBmcm9tICcuLi9mLWxpbmUtYWxpZ25tZW50LmRyYWctaGFuZGxlcic7XG5pbXBvcnQge0ZTdW1tYXJ5Tm9kZU1vdmVEcmFnSGFuZGxlcn0gZnJvbSAnLi4vZi1zdW1tYXJ5LW5vZGUtbW92ZS5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHtGTm9kZUJhc2V9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQge0ZNb3ZlTm9kZXNFdmVudH0gZnJvbSBcIi4uL2YtbW92ZS1ub2Rlcy5ldmVudFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEZOb2RlTW92ZUZpbmFsaXplUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBGTm9kZU1vdmVGaW5hbGl6ZUV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248Rk5vZGVNb3ZlRmluYWxpemVSZXF1ZXN0LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgX2ZDb21wb25lbnRzU3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgX2ZEcmFnZ2FibGVEYXRhQ29udGV4dCA9IGluamVjdChGRHJhZ2dhYmxlRGF0YUNvbnRleHQpO1xuXG4gIHByaXZhdGUgZ2V0IF9mSG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBGTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkaWZmZXJlbmNlID0gdGhpcy5fZ2V0RGlmZmVyZW5jZVdpdGhMaW5lQWxpZ25tZW50KFxuICAgICAgdGhpcy5fZ2V0RGlmZmVyZW5jZUJldHdlZW5QcmVwYXJhdGlvbkFuZEZpbmFsaXplKHJlcXVlc3QuZXZlbnQuZ2V0UG9zaXRpb24oKSlcbiAgICApO1xuXG4gICAgY29uc3QgZmlyc3ROb2RlT3JHcm91cDogRlN1bW1hcnlOb2RlTW92ZURyYWdIYW5kbGVyID0gdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zXG4gICAgICAuZmluZCgoeCkgPT4geCBpbnN0YW5jZW9mIEZTdW1tYXJ5Tm9kZU1vdmVEcmFnSGFuZGxlcikhO1xuXG4gICAgdGhpcy5fZmluYWxpemVNb3ZlKGZpcnN0Tm9kZU9yR3JvdXAuY2FsY3VsYXRlUmVzdHJpY3RlZERpZmZlcmVuY2UoZGlmZmVyZW5jZSkpO1xuXG4gICAgdGhpcy5fYXBwbHlDb25uZWN0aW9uVW5kZXJEcm9wcGVkTm9kZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLnNvbWUoKHgpID0+IHggaW5zdGFuY2VvZiBGU3VtbWFyeU5vZGVNb3ZlRHJhZ0hhbmRsZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluYWxpemVNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuX2dldEl0ZW1zKCkuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgeC5vblBvaW50ZXJNb3ZlKHsuLi5kaWZmZXJlbmNlfSk7XG4gICAgICB4Lm9uUG9pbnRlclVwPy4oKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLl9nZXRJdGVtcygpLmxlbmd0aCkge1xuICAgICAgY29uc3QgZXZlbnQgPSB0aGlzLl9nZXRJdGVtcygpWzBdLmZEYXRhLmZOb2RlSWRzLm1hcCgoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHBvc2l0aW9uOiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZOb2Rlcy5maW5kKHggPT4geC5mSWQoKSA9PT0gaWQpIS5wb3NpdGlvbixcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZEcmFnZ2FibGU/LmZNb3ZlTm9kZXMuZW1pdChuZXcgRk1vdmVOb2Rlc0V2ZW50KGV2ZW50KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SXRlbXMoKTogSUZEcmFnSGFuZGxlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zXG4gICAgICAuZmlsdGVyKCh4KSA9PiAhKHggaW5zdGFuY2VvZiBGTm9kZURyb3BUb0dyb3VwRHJhZ0hhbmRsZXIpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERpZmZlcmVuY2VCZXR3ZWVuUHJlcGFyYXRpb25BbmRGaW5hbGl6ZShwb3NpdGlvbjogSVBvaW50KTogUG9pbnQge1xuICAgIHJldHVybiBQb2ludC5mcm9tUG9pbnQocG9zaXRpb24pLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5fZkhvc3QpXG4gICAgICAuZGl2KHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpXG4gICAgICAuc3ViKHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGlmZmVyZW5jZVdpdGhMaW5lQWxpZ25tZW50KGRpZmZlcmVuY2U6IElQb2ludCk6IElQb2ludCB7XG5cbiAgICByZXR1cm4gdGhpcy5fYXBwbHlMaW5lQWxpZ25tZW50RGlmZmVyZW5jZShcbiAgICAgIGRpZmZlcmVuY2UsXG4gICAgICB0aGlzLl9nZXRMaW5lQWxpZ25tZW50RGlmZmVyZW5jZShkaWZmZXJlbmNlKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRMaW5lQWxpZ25tZW50RGlmZmVyZW5jZShkaWZmZXJlbmNlOiBJUG9pbnQpOiBJTGluZUFsaWdubWVudFJlc3VsdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtc1xuICAgICAgLmZpbmQoKHgpID0+IHggaW5zdGFuY2VvZiBGTGluZUFsaWdubWVudERyYWdIYW5kbGVyKVxuICAgICAgPy5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseUxpbmVBbGlnbm1lbnREaWZmZXJlbmNlKGRpZmZlcmVuY2U6IElQb2ludCwgaW50ZXJzZWN0aW9uOiBJTGluZUFsaWdubWVudFJlc3VsdCB8IHVuZGVmaW5lZCk6IElQb2ludCB7XG4gICAgaWYgKGludGVyc2VjdGlvbikge1xuICAgICAgZGlmZmVyZW5jZS54ID0gdGhpcy5faXNJbnRlcnNlY3RWYWx1ZShpbnRlcnNlY3Rpb24ueFJlc3VsdCkgPyAoZGlmZmVyZW5jZS54IC0gaW50ZXJzZWN0aW9uLnhSZXN1bHQuZGlzdGFuY2UhKSA6IGRpZmZlcmVuY2UueDtcbiAgICAgIGRpZmZlcmVuY2UueSA9IHRoaXMuX2lzSW50ZXJzZWN0VmFsdWUoaW50ZXJzZWN0aW9uLnlSZXN1bHQpID8gKGRpZmZlcmVuY2UueSAtIGludGVyc2VjdGlvbi55UmVzdWx0LmRpc3RhbmNlISkgOiBkaWZmZXJlbmNlLnk7XG4gICAgfVxuICAgIHJldHVybiBkaWZmZXJlbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNJbnRlcnNlY3RWYWx1ZShyZXN1bHQ6IElOZWFyZXN0Q29vcmRpbmF0ZVJlc3VsdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByZXN1bHQudmFsdWUgIT09IHVuZGVmaW5lZCAmJiByZXN1bHQudmFsdWUgIT09IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseUNvbm5lY3Rpb25VbmRlckRyb3BwZWROb2RlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc0RyYWdnZWRKdXN0T25lTm9kZSgpICYmIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkRyYWdnYWJsZT8uZkVtaXRPbk5vZGVJbnRlcnNlY3QpIHtcblxuICAgICAgY29uc3QgZk5vZGUgPSB0aGlzLl9nZXRGaXJzdE5vZGVPckdyb3VwKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKG5ldyBJc0Nvbm5lY3Rpb25VbmRlck5vZGVSZXF1ZXN0KGZOb2RlKSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzRHJhZ2dlZEp1c3RPbmVOb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zWzBdIGFzIEZTdW1tYXJ5Tm9kZU1vdmVEcmFnSGFuZGxlcikuZkhhbmRsZXJzLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEZpcnN0Tm9kZU9yR3JvdXAoKTogRk5vZGVCYXNlIHtcbiAgICByZXR1cm4gKHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtc1swXSBhcyBGU3VtbWFyeU5vZGVNb3ZlRHJhZ0hhbmRsZXIpLmZIYW5kbGVyc1swXS5mTm9kZTtcbiAgfVxufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLW1vdmUtZmluYWxpemUuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9tb3ZlLWZpbmFsaXplL2Ytbm9kZS1tb3ZlLWZpbmFsaXplLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFTLEtBQUssRUFBQyxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDM0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUNMLDRCQUE0QixFQUM3QixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUVwRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBSS9DLElBQU0sMEJBQTBCLEdBQWhDLE1BQU0sMEJBQTBCO0lBRXBCLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLFlBQVksR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUV0RCxlQUFlLENBQXFDO0lBRTVELElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBTSxDQUFDLFdBQVcsQ0FBQztJQUN4QyxDQUFDO0lBRU0sTUFB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RyxDQUFDLENBQUMsRUFBVSxFQUFFLEVBQUU7WUFDekUsT0FBTztnQkFDTCxFQUFFO2dCQUNGLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFFLENBQUMsU0FBUzthQUNsRSxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxnQ0FBZ0M7UUFDdEMsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO1lBQ2pGLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLDRCQUE0QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLENBQUM7SUFDSCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGVBQWdCLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDM0QsQ0FBQzt3R0FsRlUsMEJBQTBCOzRHQUExQiwwQkFBMEI7O0FBQTFCLDBCQUEwQjtJQUR0QyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQztHQUNoQywwQkFBMEIsQ0FtRnRDOzs0RkFuRlksMEJBQTBCO2tCQUZ0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3R9IGZyb20gJy4vZi1ub2RlLW1vdmUtZmluYWxpemUucmVxdWVzdCc7XG5pbXBvcnQge0lQb2ludCwgUG9pbnR9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHtGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbn0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQge0ZDb21wb25lbnRzU3RvcmV9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQge0ZEcmFnZ2FibGVEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7XG4gIElzQ29ubmVjdGlvblVuZGVyTm9kZVJlcXVlc3Rcbn0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7SVNuYXBSZXN1bHQsIElTbmFwQ29vcmRpbmF0ZX0gZnJvbSAnLi4vLi4vLi4vZi1saW5lLWFsaWdubWVudCc7XG5pbXBvcnQge01vdmVTdW1tYXJ5RHJhZ0hhbmRsZXJ9IGZyb20gJy4uL21vdmUtc3VtbWFyeS1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHtGTm9kZUJhc2V9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQge0ZNb3ZlTm9kZXNFdmVudH0gZnJvbSBcIi4uL2YtbW92ZS1ub2Rlcy5ldmVudFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEZOb2RlTW92ZUZpbmFsaXplUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBGTm9kZU1vdmVGaW5hbGl6ZUV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248Rk5vZGVNb3ZlRmluYWxpemVSZXF1ZXN0LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdDb250ZXh0ID0gaW5qZWN0KEZEcmFnZ2FibGVEYXRhQ29udGV4dCk7XG5cbiAgcHJpdmF0ZSBfc3VtbWFyeUhhbmRsZXI6IE1vdmVTdW1tYXJ5RHJhZ0hhbmRsZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBnZXQgX2ZIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUuZkZsb3chLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGhhbmRsZSh7IGV2ZW50IH06IEZOb2RlTW92ZUZpbmFsaXplUmVxdWVzdCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNWYWxpZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGRpZmZlcmVuY2UgPSB0aGlzLl9nZXREaWZmZXJlbmNlQmV0d2VlblByZXBhcmF0aW9uQW5kRmluYWxpemUoZXZlbnQuZ2V0UG9zaXRpb24oKSk7XG5cbiAgICBjb25zdCBzbmFwTGluZXNEaWZmZXJlbmNlID0gdGhpcy5fYXBwbHlTbmFwTGluZXNEaWZmZXJlbmNlKGRpZmZlcmVuY2UsIHRoaXMuX2dldFNuYXBMaW5lc1Jlc3VsdChkaWZmZXJlbmNlKSlcblxuICAgIHRoaXMuX2ZpbmFsaXplTW92ZShzbmFwTGluZXNEaWZmZXJlbmNlKTtcblxuICAgIHRoaXMuX2FwcGx5Q29ubmVjdGlvblVuZGVyRHJvcHBlZE5vZGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgdGhpcy5fc3VtbWFyeUhhbmRsZXIgPSB0aGlzLl9kcmFnQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5maW5kKCh4KSA9PiB4IGluc3RhbmNlb2YgTW92ZVN1bW1hcnlEcmFnSGFuZGxlcik7XG4gICAgcmV0dXJuICEhdGhpcy5fc3VtbWFyeUhhbmRsZXI7XG4gIH1cblxuICBwcml2YXRlIF9nZXREaWZmZXJlbmNlQmV0d2VlblByZXBhcmF0aW9uQW5kRmluYWxpemUocG9zaXRpb246IElQb2ludCk6IFBvaW50IHtcbiAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHBvc2l0aW9uKS5lbGVtZW50VHJhbnNmb3JtKHRoaXMuX2ZIb3N0KVxuICAgICAgLmRpdih0aGlzLl9kcmFnQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpXG4gICAgICAuc3ViKHRoaXMuX2RyYWdDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbik7XG4gIH1cblxuICBwcml2YXRlIF9nZXRTbmFwTGluZXNSZXN1bHQoZGlmZmVyZW5jZTogSVBvaW50KTogSVNuYXBSZXN1bHQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zdW1tYXJ5SGFuZGxlcj8uZmluZENsb3Nlc3RBbGlnbm1lbnQoZGlmZmVyZW5jZSk7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseVNuYXBMaW5lc0RpZmZlcmVuY2UoZGlmZmVyZW5jZTogSVBvaW50LCBpbnRlcnNlY3Rpb246IElTbmFwUmVzdWx0IHwgdW5kZWZpbmVkKTogSVBvaW50IHtcbiAgICBpZiAoaW50ZXJzZWN0aW9uKSB7XG4gICAgICBkaWZmZXJlbmNlLnggPSB0aGlzLl9pc0ludGVyc2VjdFZhbHVlKGludGVyc2VjdGlvbi54UmVzdWx0KSA/IChkaWZmZXJlbmNlLnggLSBpbnRlcnNlY3Rpb24ueFJlc3VsdC5kaXN0YW5jZSEpIDogZGlmZmVyZW5jZS54O1xuICAgICAgZGlmZmVyZW5jZS55ID0gdGhpcy5faXNJbnRlcnNlY3RWYWx1ZShpbnRlcnNlY3Rpb24ueVJlc3VsdCkgPyAoZGlmZmVyZW5jZS55IC0gaW50ZXJzZWN0aW9uLnlSZXN1bHQuZGlzdGFuY2UhKSA6IGRpZmZlcmVuY2UueTtcbiAgICB9XG4gICAgcmV0dXJuIGRpZmZlcmVuY2U7XG4gIH1cblxuICBwcml2YXRlIF9pc0ludGVyc2VjdFZhbHVlKHJlc3VsdDogSVNuYXBDb29yZGluYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHJlc3VsdC52YWx1ZSAhPT0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmFsaXplTW92ZShzbmFwcGVkRGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fc3VtbWFyeUhhbmRsZXI/LnJvb3RIYW5kbGVycy5mb3JFYWNoKCh4KSA9PiB4LmFzc2lnbkZpbmFsQ29uc3RyYWludHMoKSk7XG4gICAgdGhpcy5fc3VtbWFyeUhhbmRsZXIhLm9uUG9pbnRlck1vdmUoey4uLnNuYXBwZWREaWZmZXJlbmNlfSk7XG4gICAgdGhpcy5fc3VtbWFyeUhhbmRsZXIhLm9uUG9pbnRlclVwPy4oKTtcblxuICAgIHRoaXMuX3N0b3JlLmZEcmFnZ2FibGU/LmZNb3ZlTm9kZXMuZW1pdCh0aGlzLl9jcmVhdGVNb3ZlTm9kZXNFdmVudCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU1vdmVOb2Rlc0V2ZW50KCk6IEZNb3ZlTm9kZXNFdmVudCB7XG4gICAgY29uc3QgZXZlbnROb2RlcyA9IHRoaXMuX3N1bW1hcnlIYW5kbGVyIS5mRGF0YS5mTm9kZUlkcy5tYXAoKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy5fc3RvcmUuZk5vZGVzLmZpbmQoeCA9PiB4LmZJZCgpID09PSBpZCkhLl9wb3NpdGlvbixcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IEZNb3ZlTm9kZXNFdmVudChldmVudE5vZGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5Q29ubmVjdGlvblVuZGVyRHJvcHBlZE5vZGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzRHJhZ2dlZEp1c3RPbmVOb2RlKCkgJiYgdGhpcy5fc3RvcmUuZkRyYWdnYWJsZT8uZkVtaXRPbk5vZGVJbnRlcnNlY3QpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgSXNDb25uZWN0aW9uVW5kZXJOb2RlUmVxdWVzdCh0aGlzLl9maXJzdE5vZGVPckdyb3VwKCkpKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNEcmFnZ2VkSnVzdE9uZU5vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N1bW1hcnlIYW5kbGVyIS5yb290SGFuZGxlcnMubGVuZ3RoID09PSAxO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlyc3ROb2RlT3JHcm91cCgpOiBGTm9kZUJhc2Uge1xuICAgIHJldHVybiB0aGlzLl9zdW1tYXJ5SGFuZGxlciEucm9vdEhhbmRsZXJzWzBdLm5vZGVPckdyb3VwO1xuICB9XG59XG4iXX0=