@foblex/flow 17.7.0 → 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 (512) 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-connection/common/f-connection-base.mjs +22 -3
  114. package/esm2022/f-connection/common/i-has-connection-color.mjs +1 -1
  115. package/esm2022/f-connection/f-connection/f-connection.component.mjs +16 -31
  116. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +7 -22
  117. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +7 -22
  118. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +13 -13
  119. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.mjs +4 -4
  120. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +8 -8
  121. package/esm2022/f-draggable/f-canvas/f-canvas.drag-handler.mjs +7 -7
  122. package/esm2022/f-draggable/f-canvas/move-finalize/f-canvas-move-finalize.execution.mjs +4 -4
  123. package/esm2022/f-draggable/f-canvas/move-preparation/f-canvas-move-preparation.execution.mjs +11 -11
  124. package/esm2022/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.mjs +8 -8
  125. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/drag-handler-preparation/f-create-connection-drag-handler-preparation.execution.mjs +8 -8
  126. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.mjs +5 -5
  127. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-outlet-preparation/f-create-connection-from-outlet-preparation.execution.mjs +4 -4
  128. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.mjs +4 -4
  129. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +5 -5
  130. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +11 -11
  131. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.mjs +3 -3
  132. package/esm2022/f-draggable/f-draggable-base.mjs +2 -2
  133. package/esm2022/f-draggable/f-draggable-data-context.mjs +2 -1
  134. package/esm2022/f-draggable/f-draggable.directive.mjs +53 -47
  135. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize-request.mjs +8 -0
  136. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize.mjs +69 -0
  137. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/index.mjs +3 -3
  138. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.mjs +8 -0
  139. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation.mjs +101 -0
  140. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/index.mjs +3 -3
  141. package/esm2022/f-draggable/f-drop-to-group/f-node-drop-to-group.drag-handler.mjs +20 -13
  142. package/esm2022/f-draggable/f-drop-to-group/index.mjs +2 -1
  143. package/esm2022/f-draggable/f-drop-to-group/providers.mjs +7 -5
  144. package/esm2022/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/index.mjs +3 -0
  145. package/esm2022/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer-request.mjs +8 -0
  146. package/esm2022/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer.mjs +48 -0
  147. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +10 -10
  148. package/esm2022/f-draggable/f-node-move/constraint/drag-constraint-pipeline.mjs +29 -0
  149. package/esm2022/f-draggable/f-node-move/constraint/expand-rect-from-baseline.mjs +18 -0
  150. package/esm2022/f-draggable/f-node-move/constraint/index.mjs +5 -0
  151. package/esm2022/f-draggable/f-node-move/constraint/rect-constraint.mjs +36 -0
  152. package/esm2022/f-draggable/f-node-move/constraint/snap-to-grid.mjs +36 -0
  153. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-request.mjs +8 -0
  154. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-response.mjs +9 -0
  155. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy.mjs +47 -0
  156. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/index.mjs +4 -0
  157. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits-request.mjs +8 -0
  158. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits.mjs +72 -0
  159. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-drag-limits.mjs +2 -0
  160. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-soft-limit.mjs +2 -0
  161. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/index.mjs +5 -0
  162. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-drag-model-from-selection-request.mjs +8 -0
  163. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-drag-model-from-selection.mjs +88 -0
  164. 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
  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.mjs +59 -0
  166. 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
  167. 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
  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.mjs +59 -0
  169. 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
  170. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler-request.mjs +10 -0
  171. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler.mjs +33 -0
  172. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/index.mjs +3 -0
  173. 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
  174. 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
  175. 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
  176. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/index.mjs +4 -0
  177. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/i-node-move-limits-and-position.mjs +2 -0
  178. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/i-node-move-limits.mjs +2 -0
  179. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/index.mjs +12 -0
  180. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/providers.mjs +17 -0
  181. package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.mjs +8 -0
  182. package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines.mjs +52 -0
  183. package/esm2022/f-draggable/f-node-move/create-snap-lines/index.mjs +3 -0
  184. package/esm2022/f-draggable/f-node-move/create-snap-lines/snap-lines.drag-handler.mjs +51 -0
  185. package/esm2022/f-draggable/f-node-move/f-move-nodes.event.mjs +8 -2
  186. package/esm2022/f-draggable/f-node-move/index.mjs +8 -7
  187. package/esm2022/f-draggable/f-node-move/move-drag-handler.mjs +95 -0
  188. package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.mjs +38 -49
  189. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +26 -26
  190. package/esm2022/f-draggable/f-node-move/move-summary-drag-handler.mjs +44 -0
  191. package/esm2022/f-draggable/f-node-move/providers.mjs +4 -4
  192. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints-request.mjs +10 -0
  193. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints.mjs +56 -0
  194. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/index.mjs +3 -0
  195. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints-request.mjs +10 -0
  196. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints.mjs +145 -0
  197. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/index.mjs +3 -0
  198. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference-request.mjs +14 -0
  199. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference.mjs +55 -0
  200. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/index.mjs +3 -0
  201. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect-request.mjs +10 -0
  202. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect.mjs +39 -0
  203. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/index.mjs +3 -0
  204. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits-request.mjs +10 -0
  205. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits.mjs +69 -0
  206. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/index.mjs +3 -0
  207. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-constraint.mjs +2 -0
  208. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-limit.mjs +2 -0
  209. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-limits.mjs +2 -0
  210. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-overflow.mjs +2 -0
  211. package/esm2022/f-draggable/f-node-resize/constraint/index.mjs +5 -0
  212. package/esm2022/f-draggable/f-node-resize/index.mjs +8 -8
  213. package/esm2022/f-draggable/f-node-resize/node-resize.drag-handler.mjs +64 -0
  214. package/esm2022/f-draggable/f-node-resize/providers.mjs +15 -17
  215. package/esm2022/f-draggable/f-node-resize/resize-finalize/index.mjs +3 -3
  216. package/esm2022/f-draggable/f-node-resize/resize-finalize/node-resize-finalize-request.mjs +8 -0
  217. package/esm2022/f-draggable/f-node-resize/resize-finalize/node-resize-finalize.mjs +29 -0
  218. package/esm2022/f-draggable/f-node-resize/resize-preparation/index.mjs +3 -3
  219. package/esm2022/f-draggable/f-node-resize/resize-preparation/node-resize-preparation-request.mjs +10 -0
  220. package/esm2022/f-draggable/f-node-resize/resize-preparation/node-resize-preparation.mjs +71 -0
  221. package/esm2022/f-draggable/f-node-rotate/f-node-rotate.drag-handler.mjs +9 -9
  222. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.mjs +4 -4
  223. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.mjs +13 -13
  224. package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +18 -18
  225. package/esm2022/f-external-item/domain/constraint/external-rect-constraint.mjs +44 -0
  226. package/esm2022/f-external-item/domain/constraint/index.mjs +2 -0
  227. package/esm2022/f-external-item/domain/f-external-item.drag-handler.mjs +27 -22
  228. package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.execution.mjs +9 -9
  229. package/esm2022/f-external-item/domain/index.mjs +2 -1
  230. package/esm2022/f-external-item/domain/preparation/f-external-item-preparation.execution.mjs +8 -8
  231. package/esm2022/f-line-alignment/domain/i-snap-coordinate.mjs +2 -0
  232. package/esm2022/f-line-alignment/domain/i-snap-result.mjs +2 -0
  233. package/esm2022/f-line-alignment/domain/index.mjs +5 -5
  234. package/esm2022/f-line-alignment/domain/snap-line-element.mjs +24 -0
  235. package/esm2022/f-line-alignment/domain/snap-line-service.mjs +38 -0
  236. package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.mjs +11 -10
  237. package/esm2022/f-node/f-group.directive.mjs +56 -94
  238. package/esm2022/f-node/f-node-base.mjs +61 -7
  239. package/esm2022/f-node/f-node.directive.mjs +56 -95
  240. package/esm2022/f-node/f-resize-handle/f-resize-handle.directive.mjs +1 -1
  241. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.mjs +4 -4
  242. package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.execution.mjs +9 -9
  243. package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +13 -13
  244. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.execution.mjs +3 -3
  245. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.execution.mjs +3 -3
  246. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.execution.mjs +3 -3
  247. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.execution.mjs +3 -3
  248. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.execution.mjs +3 -3
  249. package/esm2022/mixins/change-selection/change-selection.mjs +2 -2
  250. package/esm2022/mixins/change-selection/i-selectable.mjs +1 -1
  251. package/esm2022/reactivity/f-resize-channel.mjs +1 -1
  252. package/f-connection/common/f-connection-base.d.ts +17 -15
  253. package/f-connection/common/i-has-connection-color.d.ts +3 -3
  254. package/f-connection/f-connection/f-connection.component.d.ts +6 -20
  255. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +2 -17
  256. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +2 -17
  257. package/f-connection/providers.d.ts +1 -1
  258. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.d.ts +3 -3
  259. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.d.ts +2 -2
  260. package/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +1 -1
  261. package/f-draggable/domain/providers.d.ts +1 -1
  262. package/f-draggable/f-canvas/f-canvas.drag-handler.d.ts +1 -1
  263. package/f-draggable/f-canvas/move-finalize/f-canvas-move-finalize.execution.d.ts +1 -1
  264. package/f-draggable/f-canvas/move-preparation/f-canvas-move-preparation.execution.d.ts +2 -2
  265. package/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.d.ts +2 -2
  266. package/f-draggable/f-connection/f-create-connection/create-preparation/drag-handler-preparation/f-create-connection-drag-handler-preparation.execution.d.ts +2 -2
  267. package/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.d.ts +2 -2
  268. package/f-draggable/f-connection/f-create-connection/create-preparation/from-outlet-preparation/f-create-connection-from-outlet-preparation.execution.d.ts +1 -1
  269. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.d.ts +1 -1
  270. package/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.d.ts +1 -1
  271. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.d.ts +2 -2
  272. package/f-draggable/f-connection/providers.d.ts +1 -1
  273. package/f-draggable/f-draggable-base.d.ts +4 -4
  274. package/f-draggable/f-draggable-data-context.d.ts +1 -0
  275. package/f-draggable/f-draggable.directive.d.ts +23 -11
  276. 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
  277. package/f-draggable/f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize.d.ts +16 -0
  278. package/f-draggable/f-drop-to-group/drop-to-group-finalize/index.d.ts +2 -2
  279. 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
  280. package/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation.d.ts +29 -0
  281. package/f-draggable/f-drop-to-group/drop-to-group-preparation/index.d.ts +2 -2
  282. package/f-draggable/f-drop-to-group/f-node-drop-to-group.drag-handler.d.ts +4 -4
  283. package/f-draggable/f-drop-to-group/index.d.ts +1 -0
  284. package/f-draggable/f-drop-to-group/providers.d.ts +4 -3
  285. package/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/index.d.ts +2 -0
  286. package/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer-request.d.ts +6 -0
  287. package/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer.d.ts +10 -0
  288. package/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.d.ts +2 -2
  289. package/f-draggable/f-node-move/constraint/drag-constraint-pipeline.d.ts +17 -0
  290. package/f-draggable/f-node-move/constraint/expand-rect-from-baseline.d.ts +3 -0
  291. package/f-draggable/f-node-move/constraint/index.d.ts +4 -0
  292. package/f-draggable/f-node-move/constraint/rect-constraint.d.ts +19 -0
  293. package/f-draggable/f-node-move/constraint/snap-to-grid.d.ts +15 -0
  294. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-request.d.ts +6 -0
  295. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-response.d.ts +6 -0
  296. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy.d.ts +13 -0
  297. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/index.d.ts +3 -0
  298. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits-request.d.ts +6 -0
  299. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits.d.ts +19 -0
  300. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-drag-limits.d.ts +6 -0
  301. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-soft-limit.d.ts +8 -0
  302. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/index.d.ts +4 -0
  303. 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
  304. package/f-draggable/f-node-move/create-drag-model-from-selection/create-drag-model-from-selection.d.ts +24 -0
  305. 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
  306. 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
  307. 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
  308. 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
  309. 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
  310. 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
  311. package/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler-request.d.ts +7 -0
  312. package/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler.d.ts +13 -0
  313. package/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/index.d.ts +2 -0
  314. 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
  315. 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
  316. 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
  317. package/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/index.d.ts +3 -0
  318. package/f-draggable/f-node-move/create-drag-model-from-selection/index.d.ts +11 -0
  319. package/f-draggable/f-node-move/create-drag-model-from-selection/providers.d.ts +8 -0
  320. package/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.d.ts +6 -0
  321. package/f-draggable/f-node-move/create-snap-lines/create-snap-lines.d.ts +19 -0
  322. package/f-draggable/f-node-move/create-snap-lines/index.d.ts +2 -0
  323. package/f-draggable/f-node-move/create-snap-lines/snap-lines.drag-handler.d.ts +16 -0
  324. package/f-draggable/f-node-move/f-move-nodes.event.d.ts +4 -0
  325. package/f-draggable/f-node-move/index.d.ts +7 -6
  326. package/f-draggable/f-node-move/move-drag-handler.d.ts +33 -0
  327. package/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.d.ts +10 -10
  328. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.d.ts +4 -4
  329. package/f-draggable/f-node-move/move-summary-drag-handler.d.ts +22 -0
  330. package/f-draggable/f-node-move/providers.d.ts +2 -2
  331. package/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints-request.d.ts +7 -0
  332. package/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints.d.ts +13 -0
  333. package/f-draggable/f-node-resize/apply-child-resize-constraints/index.d.ts +2 -0
  334. package/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints-request.d.ts +8 -0
  335. package/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints.d.ts +36 -0
  336. package/f-draggable/f-node-resize/apply-parent-resize-constraints/index.d.ts +2 -0
  337. package/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference-request.d.ts +10 -0
  338. package/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference.d.ts +11 -0
  339. package/f-draggable/f-node-resize/calculate-changed-rect-from-difference/index.d.ts +2 -0
  340. package/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect-request.d.ts +7 -0
  341. package/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect.d.ts +15 -0
  342. package/f-draggable/f-node-resize/calculate-direct-children-union-rect/index.d.ts +2 -0
  343. 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
  344. package/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits.d.ts +17 -0
  345. package/f-draggable/f-node-resize/calculate-resize-limits/index.d.ts +2 -0
  346. package/f-draggable/f-node-resize/constraint/i-resize-constraint.d.ts +7 -0
  347. package/f-draggable/f-node-resize/constraint/i-resize-limit.d.ts +7 -0
  348. package/f-draggable/f-node-resize/constraint/i-resize-limits.d.ts +5 -0
  349. package/f-draggable/f-node-resize/constraint/i-resize-overflow.d.ts +6 -0
  350. package/f-draggable/f-node-resize/constraint/index.d.ts +4 -0
  351. package/f-draggable/f-node-resize/index.d.ts +7 -7
  352. package/f-draggable/f-node-resize/node-resize.drag-handler.d.ts +25 -0
  353. package/f-draggable/f-node-resize/providers.d.ts +8 -9
  354. package/f-draggable/f-node-resize/resize-finalize/index.d.ts +2 -2
  355. 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
  356. package/f-draggable/f-node-resize/resize-finalize/node-resize-finalize.d.ts +10 -0
  357. package/f-draggable/f-node-resize/resize-preparation/index.d.ts +2 -2
  358. package/f-draggable/f-node-resize/resize-preparation/{f-node-resize-preparation.request.d.ts → node-resize-preparation-request.d.ts} +1 -1
  359. package/f-draggable/f-node-resize/resize-preparation/node-resize-preparation.d.ts +22 -0
  360. package/f-draggable/f-node-rotate/f-node-rotate.drag-handler.d.ts +2 -2
  361. package/f-draggable/f-node-rotate/providers.d.ts +1 -1
  362. package/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.d.ts +1 -1
  363. package/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.d.ts +2 -2
  364. package/f-draggable/f-single-select/f-single-select.execution.d.ts +2 -2
  365. package/f-draggable/providers.d.ts +1 -1
  366. package/{f-draggable/f-node-move/point-bounds-limiter.d.ts → f-external-item/domain/constraint/external-rect-constraint.d.ts} +4 -4
  367. package/f-external-item/domain/constraint/index.d.ts +1 -0
  368. package/f-external-item/domain/f-external-item.drag-handler.d.ts +6 -5
  369. package/f-external-item/domain/finalize/f-external-item-finalize.execution.d.ts +2 -2
  370. package/f-external-item/domain/index.d.ts +1 -0
  371. package/f-external-item/domain/preparation/f-external-item-preparation.execution.d.ts +2 -2
  372. package/f-line-alignment/domain/{i-nearest-coordinate-result.d.ts → i-snap-coordinate.d.ts} +1 -1
  373. package/f-line-alignment/domain/i-snap-result.d.ts +5 -0
  374. package/f-line-alignment/domain/index.d.ts +4 -4
  375. package/f-line-alignment/domain/{line-element.d.ts → snap-line-element.d.ts} +1 -1
  376. package/f-line-alignment/domain/{line-service.d.ts → snap-line-service.d.ts} +1 -1
  377. package/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.d.ts +2 -2
  378. package/f-minimap/domain/providers.d.ts +1 -1
  379. package/f-node/f-group.directive.d.ts +19 -28
  380. package/f-node/f-node-base.d.ts +26 -17
  381. package/f-node/f-node.directive.d.ts +19 -28
  382. package/f-node/f-resize-handle/f-resize-handle.directive.d.ts +1 -1
  383. package/f-node/providers.d.ts +2 -2
  384. package/f-selection-area/domain/providers.d.ts +1 -1
  385. package/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.d.ts +1 -1
  386. package/f-selection-area/domain/selection-area-preparation/selection-area-preparation.execution.d.ts +2 -2
  387. package/f-selection-area/domain/selection-area.drag-handle.d.ts +3 -3
  388. package/f-storage/features/listen-components-data-changed/listen-data-changes.execution.d.ts +1 -1
  389. package/f-storage/features/listen-count-changes/listen-count-changes.execution.d.ts +1 -1
  390. package/f-storage/features/listen-transform-changes/listen-transform-changes.execution.d.ts +1 -1
  391. package/f-storage/features/notify-data-changed/notify-data-changed.execution.d.ts +1 -1
  392. package/f-storage/features/notify-transform-changed/notify-transform-changed.execution.d.ts +1 -1
  393. package/fesm2022/foblex-flow.mjs +2004 -1475
  394. package/fesm2022/foblex-flow.mjs.map +1 -1
  395. package/mixins/change-selection/i-selectable.d.ts +1 -1
  396. package/package.json +1 -1
  397. package/reactivity/f-resize-channel.d.ts +2 -2
  398. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started.execution.mjs +0 -25
  399. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.execution.mjs +0 -25
  400. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.execution.mjs +0 -34
  401. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.execution.mjs +0 -35
  402. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.execution.mjs +0 -36
  403. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.execution.mjs +0 -34
  404. package/esm2022/domain/f-node/get-node-padding/get-node-padding.execution.mjs +0 -35
  405. package/esm2022/domain/f-node/get-nodes/get-nodes.execution.mjs +0 -25
  406. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.execution.mjs +0 -37
  407. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.execution.mjs +0 -25
  408. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.mjs +0 -95
  409. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.execution.mjs +0 -57
  410. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.request.mjs +0 -8
  411. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.execution.mjs +0 -83
  412. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.request.mjs +0 -8
  413. 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
  414. 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
  415. 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
  416. 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
  417. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/index.mjs +0 -3
  418. 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
  419. 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
  420. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/index.mjs +0 -3
  421. 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
  422. 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
  423. 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
  424. 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
  425. 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
  426. 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
  427. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/i-node-move-limits-and-position.mjs +0 -2
  428. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/i-node-move-limits.mjs +0 -2
  429. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/index.mjs +0 -10
  430. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.mjs +0 -13
  431. package/esm2022/f-draggable/f-node-move/f-line-alignment.drag-handler.mjs +0 -63
  432. package/esm2022/f-draggable/f-node-move/f-node-move.drag-handler.mjs +0 -30
  433. package/esm2022/f-draggable/f-node-move/f-summary-node-move.drag-handler.mjs +0 -33
  434. package/esm2022/f-draggable/f-node-move/line-alignment-preparation/index.mjs +0 -3
  435. package/esm2022/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.execution.mjs +0 -57
  436. package/esm2022/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.request.mjs +0 -10
  437. package/esm2022/f-draggable/f-node-move/point-bounds-limiter.mjs +0 -43
  438. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.mjs +0 -53
  439. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.mjs +0 -10
  440. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/index.mjs +0 -3
  441. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.execution.mjs +0 -49
  442. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.request.mjs +0 -10
  443. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-restrictions/index.mjs +0 -3
  444. package/esm2022/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.execution.mjs +0 -25
  445. package/esm2022/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.request.mjs +0 -14
  446. package/esm2022/f-draggable/f-node-resize/calculate-changed-position/index.mjs +0 -3
  447. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.execution.mjs +0 -34
  448. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.request.mjs +0 -12
  449. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/index.mjs +0 -3
  450. package/esm2022/f-draggable/f-node-resize/f-node-resize.drag-handler.mjs +0 -73
  451. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.mjs +0 -39
  452. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/get-node-resize-restrictions.request.mjs +0 -10
  453. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/i-node-resize-restrictions.mjs +0 -2
  454. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/index.mjs +0 -4
  455. package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +0 -38
  456. package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.mjs +0 -10
  457. package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/index.mjs +0 -3
  458. package/esm2022/f-draggable/f-node-resize/resize-finalize/f-node-resize-finalize.execution.mjs +0 -31
  459. package/esm2022/f-draggable/f-node-resize/resize-finalize/f-node-resize-finalize.request.mjs +0 -8
  460. package/esm2022/f-draggable/f-node-resize/resize-preparation/f-node-resize-preparation.execution.mjs +0 -73
  461. package/esm2022/f-draggable/f-node-resize/resize-preparation/f-node-resize-preparation.request.mjs +0 -10
  462. package/esm2022/f-line-alignment/domain/i-line-alignment-result.mjs +0 -2
  463. package/esm2022/f-line-alignment/domain/i-nearest-coordinate-result.mjs +0 -2
  464. package/esm2022/f-line-alignment/domain/line-element.mjs +0 -24
  465. package/esm2022/f-line-alignment/domain/line-service.mjs +0 -38
  466. package/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.execution.d.ts +0 -15
  467. package/f-draggable/f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.execution.d.ts +0 -22
  468. 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
  469. 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
  470. 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
  471. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/index.d.ts +0 -2
  472. 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
  473. 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
  474. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/index.d.ts +0 -2
  475. 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
  476. 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
  477. 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
  478. 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
  479. 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
  480. 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
  481. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/index.d.ts +0 -9
  482. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.d.ts +0 -6
  483. package/f-draggable/f-node-move/f-line-alignment.drag-handler.d.ts +0 -21
  484. package/f-draggable/f-node-move/f-node-move.drag-handler.d.ts +0 -16
  485. package/f-draggable/f-node-move/f-summary-node-move.drag-handler.d.ts +0 -17
  486. package/f-draggable/f-node-move/line-alignment-preparation/index.d.ts +0 -2
  487. package/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.execution.d.ts +0 -20
  488. package/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.request.d.ts +0 -8
  489. package/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.d.ts +0 -13
  490. package/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.d.ts +0 -8
  491. package/f-draggable/f-node-resize/apply-child-resize-restrictions/index.d.ts +0 -2
  492. package/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.execution.d.ts +0 -13
  493. package/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.request.d.ts +0 -7
  494. package/f-draggable/f-node-resize/apply-parent-resize-restrictions/index.d.ts +0 -2
  495. package/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.execution.d.ts +0 -10
  496. package/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.request.d.ts +0 -10
  497. package/f-draggable/f-node-resize/calculate-changed-position/index.d.ts +0 -2
  498. package/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.execution.d.ts +0 -10
  499. package/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.request.d.ts +0 -9
  500. package/f-draggable/f-node-resize/calculate-changed-size/index.d.ts +0 -2
  501. package/f-draggable/f-node-resize/f-node-resize.drag-handler.d.ts +0 -27
  502. package/f-draggable/f-node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.d.ts +0 -13
  503. package/f-draggable/f-node-resize/get-node-resize-restrictions/i-node-resize-restrictions.d.ts +0 -6
  504. package/f-draggable/f-node-resize/get-node-resize-restrictions/index.d.ts +0 -3
  505. package/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.d.ts +0 -14
  506. package/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.d.ts +0 -7
  507. package/f-draggable/f-node-resize/get-normalized-children-nodes-rect/index.d.ts +0 -2
  508. package/f-draggable/f-node-resize/resize-finalize/f-node-resize-finalize.execution.d.ts +0 -10
  509. package/f-draggable/f-node-resize/resize-preparation/f-node-resize-preparation.execution.d.ts +0 -22
  510. package/f-line-alignment/domain/i-line-alignment-result.d.ts +0 -5
  511. /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
  512. /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
@@ -1,17 +1,17 @@
1
- import { booleanAttribute, ContentChildren, Directive, ElementRef, EventEmitter, inject, Inject, Input, NgZone, numberAttribute, Optional, Output } from "@angular/core";
1
+ import { booleanAttribute, ContentChildren, Directive, ElementRef, EventEmitter, inject, Inject, input, Input, NgZone, numberAttribute, Optional, Output } from "@angular/core";
2
2
  import { FDraggableBase } from './f-draggable-base';
3
3
  import { FNodeMoveFinalizeRequest, FNodeMovePreparationRequest } from './f-node-move';
4
4
  import { FCanvasMoveFinalizeRequest, FCanvasMovePreparationRequest } from './f-canvas';
5
- import { FReassignConnectionPreparationRequest, FReassignConnectionFinalizeRequest, FCreateConnectionPreparationRequest, FCreateConnectionFinalizeRequest } from './f-connection';
5
+ import { FCreateConnectionFinalizeRequest, FCreateConnectionPreparationRequest, FReassignConnectionFinalizeRequest, FReassignConnectionPreparationRequest } from './f-connection';
6
6
  import { FMediator } from '@foblex/mediator';
7
- import { AddDndToStoreRequest, EmitSelectionChangeEventRequest, PrepareDragSequenceRequest, RemoveDndFromStoreRequest, EndDragSequenceRequest, InitializeDragSequenceRequest, OnPointerMoveRequest, defaultEventTrigger } from '../domain';
7
+ import { AddDndToStoreRequest, defaultEventTrigger, EmitSelectionChangeEventRequest, EndDragSequenceRequest, InitializeDragSequenceRequest, OnPointerMoveRequest, PrepareDragSequenceRequest, RemoveDndFromStoreRequest } from '../domain';
8
8
  import { FExternalItemFinalizeRequest, FExternalItemPreparationRequest, PreventDefaultIsExternalItemRequest } from '../f-external-item';
9
9
  import { FSingleSelectRequest } from './f-single-select';
10
- import { FNodeResizeFinalizeRequest, FNodeResizePreparationRequest } from './f-node-resize';
10
+ import { NodeResizeFinalizeRequest, NodeResizePreparationRequest } from './f-node-resize';
11
11
  import { F_AFTER_MAIN_PLUGIN, F_BEFORE_MAIN_PLUGIN } from './i-f-drag-and-drop-plugin';
12
12
  import { EOperationSystem, PlatformService } from '@foblex/platform';
13
13
  import { FDragHandlerResult } from './f-drag-handler';
14
- import { FNodeDropToGroupFinalizeRequest, FNodeDropToGroupPreparationRequest } from './f-drop-to-group';
14
+ import { DropToGroupFinalizeRequest, DropToGroupPreparationRequest } from './f-drop-to-group';
15
15
  import { FNodeRotateFinalizeRequest, FNodeRotatePreparationRequest } from './f-node-rotate';
16
16
  import { isDragBlocker } from "./is-drag-blocker";
17
17
  import * as i0 from "@angular/core";
@@ -71,14 +71,14 @@ export class FDraggableDirective extends FDraggableBase {
71
71
  _fBrowser;
72
72
  _elementReference = inject(ElementRef);
73
73
  _fResult = inject(FDragHandlerResult);
74
- _fMediator = inject(FMediator);
75
- _fPlatform = inject(PlatformService);
74
+ _mediator = inject(FMediator);
75
+ _platform = inject(PlatformService);
76
76
  disabled = false;
77
77
  get hostElement() {
78
78
  return this._elementReference.nativeElement;
79
79
  }
80
80
  fMultiSelectTrigger = (event) => {
81
- return (this._fPlatform.getOS() === EOperationSystem.MAC_OS) ? event.metaKey : event.ctrlKey;
81
+ return (this._platform.getOS() === EOperationSystem.MAC_OS) ? event.metaKey : event.ctrlKey;
82
82
  };
83
83
  fReassignConnectionTrigger = defaultEventTrigger;
84
84
  fCreateConnectionTrigger = defaultEventTrigger;
@@ -95,9 +95,24 @@ export class FDraggableDirective extends FDraggableBase {
95
95
  fReassignConnection = new EventEmitter();
96
96
  fCreateConnection = new EventEmitter();
97
97
  fDropToGroup = new EventEmitter();
98
- vCellSize = 1;
99
- hCellSize = 1;
100
- fCellSizeWhileDragging = false;
98
+ /**
99
+ * Defines the vertical cell size for the grid.
100
+ * This value is used to snap nodes to a vertical grid while dragging.
101
+ * The default value is `1`, which means that nodes will snap to every pixel vertically.
102
+ */
103
+ vCellSize = input(1, { transform: (value) => numberAttribute(value, 1) });
104
+ /**
105
+ * Defines the horizontal cell size for the grid.
106
+ * This value is used to snap nodes to a horizontal grid while dragging.
107
+ * The default value is `1`, which means that nodes will snap to every pixel horizontally.
108
+ */
109
+ hCellSize = input(1, { transform: (value) => numberAttribute(value, 1) });
110
+ /**
111
+ * Defines whether the cell size should be applied while dragging.
112
+ * If set to `true`, the dragged nodes will snap to the grid defined by `vCellSize` and `hCellSize`.
113
+ * If set to `false`, the nodes will move freely without snapping to the grid.
114
+ */
115
+ fCellSizeWhileDragging = input(false, { transform: (value) => booleanAttribute(value) });
101
116
  fDragStarted = new EventEmitter();
102
117
  fDragEnded = new EventEmitter();
103
118
  _beforePlugins;
@@ -107,7 +122,7 @@ export class FDraggableDirective extends FDraggableBase {
107
122
  this._fBrowser = _fBrowser;
108
123
  }
109
124
  ngOnInit() {
110
- this._fMediator.execute(new AddDndToStoreRequest(this));
125
+ this._mediator.execute(new AddDndToStoreRequest(this));
111
126
  }
112
127
  ngAfterViewInit() {
113
128
  super.subscribe(this._fBrowser.document);
@@ -117,11 +132,11 @@ export class FDraggableDirective extends FDraggableBase {
117
132
  return false;
118
133
  }
119
134
  this._fResult.clear();
120
- this._fMediator.execute(new InitializeDragSequenceRequest());
135
+ this._mediator.execute(new InitializeDragSequenceRequest());
121
136
  this._beforePlugins.forEach((p) => p.onPointerDown?.(event));
122
- this._fMediator.execute(new FSingleSelectRequest(event, this.fMultiSelectTrigger));
123
- this._fMediator.execute(new FReassignConnectionPreparationRequest(event, this.fReassignConnectionTrigger));
124
- this._fMediator.execute(new FCreateConnectionPreparationRequest(event, this.fCreateConnectionTrigger));
137
+ this._mediator.execute(new FSingleSelectRequest(event, this.fMultiSelectTrigger));
138
+ this._mediator.execute(new FReassignConnectionPreparationRequest(event, this.fReassignConnectionTrigger));
139
+ this._mediator.execute(new FCreateConnectionPreparationRequest(event, this.fCreateConnectionTrigger));
125
140
  this._afterPlugins.forEach((p) => p.onPointerDown?.(event));
126
141
  const isMouseLeftOrTouch = event.isMouseLeftButton();
127
142
  if (!isMouseLeftOrTouch) {
@@ -131,44 +146,44 @@ export class FDraggableDirective extends FDraggableBase {
131
146
  }
132
147
  prepareDragSequence(event) {
133
148
  this._beforePlugins.forEach((p) => p.prepareDragSequence?.(event));
134
- this._fMediator.execute(new FNodeResizePreparationRequest(event, this.fNodeResizeTrigger));
135
- this._fMediator.execute(new FNodeRotatePreparationRequest(event, this.fNodeRotateTrigger));
136
- this._fMediator.execute(new FNodeMovePreparationRequest(event, this.fNodeMoveTrigger));
137
- this._fMediator.execute(new FExternalItemPreparationRequest(event, this.fExternalItemTrigger));
138
- this._fMediator.execute(new FNodeDropToGroupPreparationRequest(event));
139
- this._fMediator.execute(new FCanvasMovePreparationRequest(event, this.fCanvasMoveTrigger));
149
+ this._mediator.execute(new NodeResizePreparationRequest(event, this.fNodeResizeTrigger));
150
+ this._mediator.execute(new FNodeRotatePreparationRequest(event, this.fNodeRotateTrigger));
151
+ this._mediator.execute(new FNodeMovePreparationRequest(event, this.fNodeMoveTrigger));
152
+ this._mediator.execute(new FExternalItemPreparationRequest(event, this.fExternalItemTrigger));
153
+ this._mediator.execute(new DropToGroupPreparationRequest(event));
154
+ this._mediator.execute(new FCanvasMovePreparationRequest(event, this.fCanvasMoveTrigger));
140
155
  this._afterPlugins.forEach((p) => p.prepareDragSequence?.(event));
141
- this._fMediator.execute(new PrepareDragSequenceRequest());
156
+ this._mediator.execute(new PrepareDragSequenceRequest());
142
157
  }
143
158
  onSelect(event) {
144
- this._fMediator.execute(new PreventDefaultIsExternalItemRequest(event));
159
+ this._mediator.execute(new PreventDefaultIsExternalItemRequest(event));
145
160
  }
146
161
  onPointerMove(event) {
147
- this._fMediator.execute(new OnPointerMoveRequest(event));
162
+ this._mediator.execute(new OnPointerMoveRequest(event));
148
163
  }
149
164
  onPointerUp(event) {
150
165
  this._beforePlugins.forEach((x) => x.onPointerUp?.(event));
151
- this._fMediator.execute(new FReassignConnectionFinalizeRequest(event));
152
- this._fMediator.execute(new FCreateConnectionFinalizeRequest(event));
153
- this._fMediator.execute(new FNodeResizeFinalizeRequest(event));
154
- this._fMediator.execute(new FNodeRotateFinalizeRequest(event));
155
- this._fMediator.execute(new FNodeMoveFinalizeRequest(event));
156
- this._fMediator.execute(new FExternalItemFinalizeRequest(event));
157
- this._fMediator.execute(new FNodeDropToGroupFinalizeRequest(event));
158
- this._fMediator.execute(new FCanvasMoveFinalizeRequest(event));
166
+ this._mediator.execute(new FReassignConnectionFinalizeRequest(event));
167
+ this._mediator.execute(new FCreateConnectionFinalizeRequest(event));
168
+ this._mediator.execute(new NodeResizeFinalizeRequest(event));
169
+ this._mediator.execute(new FNodeRotateFinalizeRequest(event));
170
+ this._mediator.execute(new FNodeMoveFinalizeRequest(event));
171
+ this._mediator.execute(new FExternalItemFinalizeRequest(event));
172
+ this._mediator.execute(new DropToGroupFinalizeRequest(event));
173
+ this._mediator.execute(new FCanvasMoveFinalizeRequest(event));
159
174
  this._afterPlugins.forEach((x) => x.onPointerUp?.(event));
160
- this._fMediator.execute(new EndDragSequenceRequest());
175
+ this._mediator.execute(new EndDragSequenceRequest());
161
176
  }
162
177
  finalizeDragSequence() {
163
- this._fMediator.execute(new EmitSelectionChangeEventRequest());
178
+ this._mediator.execute(new EmitSelectionChangeEventRequest());
164
179
  this._fResult.clear();
165
180
  }
166
181
  ngOnDestroy() {
167
- this._fMediator.execute(new RemoveDndFromStoreRequest());
182
+ this._mediator.execute(new RemoveDndFromStoreRequest());
168
183
  super.unsubscribe();
169
184
  }
170
185
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FDraggableDirective, deps: [{ token: NgZone, optional: true }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Directive });
171
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.13", type: FDraggableDirective, selector: "f-flow[fDraggable]", inputs: { disabled: ["fDraggableDisabled", "disabled", booleanAttribute], fMultiSelectTrigger: "fMultiSelectTrigger", fReassignConnectionTrigger: "fReassignConnectionTrigger", fCreateConnectionTrigger: "fCreateConnectionTrigger", fNodeResizeTrigger: "fNodeResizeTrigger", fNodeRotateTrigger: "fNodeRotateTrigger", fNodeMoveTrigger: "fNodeMoveTrigger", fCanvasMoveTrigger: "fCanvasMoveTrigger", fExternalItemTrigger: "fExternalItemTrigger", fEmitOnNodeIntersect: ["fEmitOnNodeIntersect", "fEmitOnNodeIntersect", booleanAttribute], vCellSize: ["vCellSize", "vCellSize", numberAttribute], hCellSize: ["hCellSize", "hCellSize", numberAttribute], fCellSizeWhileDragging: ["fCellSizeWhileDragging", "fCellSizeWhileDragging", booleanAttribute] }, outputs: { fSelectionChange: "fSelectionChange", fNodeIntersectedWithConnections: "fNodeIntersectedWithConnections", fCreateNode: "fCreateNode", fMoveNodes: "fMoveNodes", fReassignConnection: "fReassignConnection", fCreateConnection: "fCreateConnection", fDropToGroup: "fDropToGroup", fDragStarted: "fDragStarted", fDragEnded: "fDragEnded" }, providers: [FDragHandlerResult], queries: [{ propertyName: "_beforePlugins", predicate: F_BEFORE_MAIN_PLUGIN, descendants: true }, { propertyName: "_afterPlugins", predicate: F_AFTER_MAIN_PLUGIN, descendants: true }], exportAs: ["fDraggable"], usesInheritance: true, ngImport: i0 });
186
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: FDraggableDirective, selector: "f-flow[fDraggable]", inputs: { disabled: { classPropertyName: "disabled", publicName: "fDraggableDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fMultiSelectTrigger: { classPropertyName: "fMultiSelectTrigger", publicName: "fMultiSelectTrigger", isSignal: false, isRequired: false, transformFunction: null }, fReassignConnectionTrigger: { classPropertyName: "fReassignConnectionTrigger", publicName: "fReassignConnectionTrigger", isSignal: false, isRequired: false, transformFunction: null }, fCreateConnectionTrigger: { classPropertyName: "fCreateConnectionTrigger", publicName: "fCreateConnectionTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeResizeTrigger: { classPropertyName: "fNodeResizeTrigger", publicName: "fNodeResizeTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeRotateTrigger: { classPropertyName: "fNodeRotateTrigger", publicName: "fNodeRotateTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeMoveTrigger: { classPropertyName: "fNodeMoveTrigger", publicName: "fNodeMoveTrigger", isSignal: false, isRequired: false, transformFunction: null }, fCanvasMoveTrigger: { classPropertyName: "fCanvasMoveTrigger", publicName: "fCanvasMoveTrigger", isSignal: false, isRequired: false, transformFunction: null }, fExternalItemTrigger: { classPropertyName: "fExternalItemTrigger", publicName: "fExternalItemTrigger", isSignal: false, isRequired: false, transformFunction: null }, fEmitOnNodeIntersect: { classPropertyName: "fEmitOnNodeIntersect", publicName: "fEmitOnNodeIntersect", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, vCellSize: { classPropertyName: "vCellSize", publicName: "vCellSize", isSignal: true, isRequired: false, transformFunction: null }, hCellSize: { classPropertyName: "hCellSize", publicName: "hCellSize", isSignal: true, isRequired: false, transformFunction: null }, fCellSizeWhileDragging: { classPropertyName: "fCellSizeWhileDragging", publicName: "fCellSizeWhileDragging", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fSelectionChange: "fSelectionChange", fNodeIntersectedWithConnections: "fNodeIntersectedWithConnections", fCreateNode: "fCreateNode", fMoveNodes: "fMoveNodes", fReassignConnection: "fReassignConnection", fCreateConnection: "fCreateConnection", fDropToGroup: "fDropToGroup", fDragStarted: "fDragStarted", fDragEnded: "fDragEnded" }, providers: [FDragHandlerResult], queries: [{ propertyName: "_beforePlugins", predicate: F_BEFORE_MAIN_PLUGIN, descendants: true }, { propertyName: "_afterPlugins", predicate: F_AFTER_MAIN_PLUGIN, descendants: true }], exportAs: ["fDraggable"], usesInheritance: true, ngImport: i0 });
172
187
  }
173
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FDraggableDirective, decorators: [{
174
189
  type: Directive,
@@ -218,15 +233,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
218
233
  type: Output
219
234
  }], fDropToGroup: [{
220
235
  type: Output
221
- }], vCellSize: [{
222
- type: Input,
223
- args: [{ transform: numberAttribute }]
224
- }], hCellSize: [{
225
- type: Input,
226
- args: [{ transform: numberAttribute }]
227
- }], fCellSizeWhileDragging: [{
228
- type: Input,
229
- args: [{ transform: booleanAttribute }]
230
236
  }], fDragStarted: [{
231
237
  type: Output
232
238
  }], fDragEnded: [{
@@ -238,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
238
244
  type: ContentChildren,
239
245
  args: [F_AFTER_MAIN_PLUGIN, { descendants: true }]
240
246
  }] } });
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNVLGdCQUFnQixFQUFFLGVBQWUsRUFDaEQsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFDNUIsS0FBSyxFQUNMLE1BQU0sRUFBRSxlQUFlLEVBRWYsUUFBUSxFQUFFLE1BQU0sRUFDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsMkJBQTJCLEVBQzVCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQywwQkFBMEIsRUFBRSw2QkFBNkIsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNyRixPQUFPLEVBR0wscUNBQXFDLEVBQ3JDLGtDQUFrQyxFQUNsQyxtQ0FBbUMsRUFDbkMsZ0NBQWdDLEVBQ2pDLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsK0JBQStCLEVBQy9CLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixvQkFBb0IsRUFBZ0MsbUJBQW1CLEVBQ3hFLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsK0JBQStCLEVBRS9CLG1DQUFtQyxFQUNwQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBQywwQkFBMEIsRUFBRSw2QkFBNkIsRUFBQyxN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QUFNO2dCQUlTLGlCQUFpQjtzQkFEaEMsTUFBTTtnQkFJUyxZQUFZO3NCQUQzQixNQUFNO2dCQUlTLFNBQVM7c0JBRHhCLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDO2dCQUluQixTQUFTO3NCQUR4QixLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLGVBQWUsRUFBQztnQkFJbkIsc0JBQXNCO3NCQURyQyxLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDO2dCQUlwQixZQUFZO3NCQUQzQixNQUFNO2dCQUlTLFVBQVU7c0JBRHpCLE1BQU07Z0JBSUMsY0FBYztzQkFEckIsZUFBZTt1QkFBQyxvQkFBb0IsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUM7Z0JBSWxELGFBQWE7c0JBRHBCLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCwgYm9vbGVhbkF0dHJpYnV0ZSwgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsIG51bWJlckF0dHJpYnV0ZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFF1ZXJ5TGlzdFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtGRHJhZ2dhYmxlQmFzZX0gZnJvbSAnLi9mLWRyYWdnYWJsZS1iYXNlJztcbmltcG9ydCB7XG4gIEZNb3ZlTm9kZXNFdmVudCxcbiAgRk5vZGVNb3ZlRmluYWxpemVSZXF1ZXN0LFxuICBGTm9kZU1vdmVQcmVwYXJhdGlvblJlcXVlc3Rcbn0gZnJvbSAnLi9mLW5vZGUtbW92ZSc7XG5pbXBvcnQge0ZDYW52YXNNb3ZlRmluYWxpemVSZXF1ZXN0LCBGQ2FudmFzTW92ZVByZXBhcmF0aW9uUmVxdWVzdH0gZnJvbSAnLi9mLWNhbnZhcyc7XG5pbXBvcnQge1xuICBGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50LFxuICBGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQsXG4gIEZSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QsXG4gIEZSZWFzc2lnbkNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QsXG4gIEZDcmVhdGVDb25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0LFxuICBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdFxufSBmcm9tICcuL2YtY29ubmVjdGlvbic7XG5pbXBvcnQge0ZTZWxlY3Rpb25DaGFuZ2VFdmVudH0gZnJvbSAnLi9mLXNlbGVjdGlvbi1jaGFuZ2UtZXZlbnQnO1xuaW1wb3J0IHtGTWVkaWF0b3J9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkRG5kVG9TdG9yZVJlcXVlc3QsXG4gIEVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudFJlcXVlc3QsXG4gIFByZXBhcmVEcmFnU2VxdWVuY2VSZXF1ZXN0LFxuICBSZW1vdmVEbmRGcm9tU3RvcmVSZXF1ZXN0LFxuICBFbmREcmFnU2VxdWVuY2VSZXF1ZXN0LFxuICBJbml0aWFsaXplRHJhZ1NlcXVlbmNlUmVxdWVzdCxcbiAgT25Qb2ludGVyTW92ZVJlcXVlc3QsIEZFdmVudFRyaWdnZXIsIEZUcmlnZ2VyRXZlbnQsIGRlZmF1bHRFdmVudFRyaWdnZXJcbn0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7XG4gIEZFeHRlcm5hbEl0ZW1GaW5hbGl6ZVJlcXVlc3QsXG4gIEZFeHRlcm5hbEl0ZW1QcmVwYXJhdGlvblJlcXVlc3QsXG4gIEZDcmVhdGVOb2RlRXZlbnQsXG4gIFByZXZlbnREZWZhdWx0SXNFeHRlcm5hbEl0ZW1SZXF1ZXN0XG59IGZyb20gJy4uL2YtZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQge0ZTaW5nbGVTZWxlY3RSZXF1ZXN0fSBmcm9tICcuL2Ytc2luZ2xlLXNlbGVjdCc7XG5pbXBvcnQge0ZOb2RlUmVzaXplRmluYWxpemVSZXF1ZXN0LCBGTm9kZVJlc2l6ZVByZXBhcmF0aW9uUmVxdWVzdH0gZnJvbSAnLi9mLW5vZGUtcmVzaXplJztcbmltcG9ydCB7Rl9BRlRFUl9NQUlOX1BMVUdJTiwgRl9CRUZPUkVfTUFJTl9QTFVHSU4sIElGRHJhZ0FuZERyb3BQbHVnaW59IGZyb20gJy4vaS1mLWRyYWctYW5kLWRyb3AtcGx1Z2luJztcbmltcG9ydCB7QnJvd3NlclNlcnZpY2UsIEVPcGVyYXRpb25TeXN0ZW0sIFBsYXRmb3JtU2VydmljZX0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQge0ZEcmFnU3RhcnRlZEV2ZW50LCBGTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQge0ZEcmFnSGFuZGxlclJlc3VsdH0gZnJvbSAnLi9mLWRyYWctaGFuZGxlcic7XG5pbXBvcnQge1xuICBGRHJvcFRvR3JvdXBFdmVudCxcbiAgRk5vZGVEcm9wVG9Hcm91cEZpbmFsaXplUmVxdWVzdCxcbiAgRk5vZGVEcm9wVG9Hcm91cFByZXBhcmF0aW9uUmVxdWVzdFxufSBmcm9tICcuL2YtZHJvcC10by1ncm91cCc7XG5pbXBvcnQge0ZOb2RlUm90YXRlRmluYWxpemVSZXF1ZXN0LCBGTm9kZVJvdGF0ZVByZXBhcmF0aW9uUmVxdWVzdH0gZnJvbSAnLi9mLW5vZGUtcm90YXRlJztcbmltcG9ydCB7SUNhblJ1bk91dHNpZGVBbmd1bGFyLCBJUG9pbnRlckV2ZW50fSBmcm9tIFwiLi4vZHJhZy10b29sa2l0XCI7XG5pbXBvcnQge2lzRHJhZ0Jsb2NrZXJ9IGZyb20gXCIuL2lzLWRyYWctYmxvY2tlclwiO1xuLy8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4vLyDilIIgICAgICAgIEFuZ3VsYXIgUmVhbG0gICAgICAgICDilIJcbi8vIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgIOKUglxuLy8g4pSCICDilIIgIEZEcmFnZ2FibGVEaXJlY3RpdmUgICDilIIgIOKUglxuLy8g4pSCICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggIOKUglxuLy8g4pSCICAgICAgICAgICAgIOKUgiBleHRlbmRzICAgICAgICDilIJcbi8vIOKUgiAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pa84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICDilIJcbi8vIOKUgiAg4pSCICAgICBGRHJhZ2dhYmxlQmFzZSAgICAg4pSCICDilIJcbi8vIOKUgiAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICDilIJcbi8vIOKUgiAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgICAgICAgICAgICAg4pSCIG92ZXJyaWRlcyAgICAgIOKUglxuLy8g4pSCICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilrzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgIOKUglxuLy8g4pSCICDilIIgICBEcmFnQW5kRHJvcEJhc2UgICAgICDilIIgIOKUglxuLy8g4pSCICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggIOKUglxuLy8g4pSCICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgIHN1YnNjcmliZXMgdG8gICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAg4pSM4pSA4pSA4pSA4pSA4pa84pSA4pSA4pSA4pSA4pSQICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAg4pSCIERvY3VtZW504pSCICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgIOKUglxuLy8g4pSCICDilIIgICAgICAgRk1lZGlhdG9yICAgICAgICDilILil4TilIDilKzilIDilIDilIDilIDilJBcbi8vIOKUgiAg4pSU4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICDilIIgICAg4pSCXG4vLyDilIIgICAgICAgIOKUgiAgICAgICAg4pSCICAgICAgICAgICAg4pSCICAgIOKUglxuLy8g4pSCICAgZXhlY3V0ZXMgICBleGVjdXRlcyAgICAgICAg4pSCICAgIOKUglxuLy8g4pSCICAgRipSZXF1ZXN0ICAgRipFdmVudCAgICAgICAg4pSCICAgIOKUglxuLy8g4pSCICAgICAgICDilIIgICAgICAgIOKUgiAgICAgICAgICAgIOKUgiAgICDilIJcbi8vIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUtOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUtOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUtOKUgOKUgOKUgOKUgOKUmFxuLy9cbi8vXG4vLyDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJBcbi8vIOKUgiAgICAgICBEcmFnICYgRHJvcCBSdW50aW1lIExheWVyICAgICAg4pSCXG4vLyDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICBFdmVudHMgZnJvbSBET006ICAgICAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgICAtIG1vdXNlZG93biAvIHRvdWNoc3RhcnQgICAgICAgICAg4pSCXG4vLyDilIIgICAgLSBtb3VzZW1vdmUgLyB0b3VjaG1vdmUgICAgICAgICAgIOKUglxuLy8g4pSCICAgIC0gcG9pbnRlcnVwICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgIOKGkyBSb3V0ZWQgdG8gICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgICAg4pSCXG4vLyDilIIgIOKUgiAgICAgRHJhZ0FuZERyb3BCYXNlICAgICAgICAgIOKUgiAgICDilIJcbi8vIOKUgiAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAgIOKUglxuLy8g4pSCICAgICAgICDilrIgICAgICAgICAgICAg4payICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgICAgICAgIOKUgiAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgIGNoZWNrRHJhZyAgICAgb25Qb2ludGVyTW92ZSAgICAgICAg4pSCXG4vLyDilIIgICBTZXF1ZW5jZSAgICAgICsgRmluYWxpemF0aW9uICAgICAgIOKUglxuLy8g4pSCICAgVG8gU3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcImYtZmxvd1tmRHJhZ2dhYmxlXVwiLFxuICBleHBvcnRBczogJ2ZEcmFnZ2FibGUnLFxuICBwcm92aWRlcnM6IFtGRHJhZ0hhbmRsZXJSZXN1bHRdXG59KVxuZXhwb3J0IGNsYXNzIEZEcmFnZ2FibGVEaXJlY3RpdmUgZXh0ZW5kcyBGRHJhZ2dhYmxlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9lbGVtZW50UmVmZXJlbmNlID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIHByaXZhdGUgX2ZSZXN1bHQgPSBpbmplY3QoRkRyYWdIYW5kbGVyUmVzdWx0KTtcbiAgcHJpdmF0ZSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgX2ZQbGF0Zm9ybSA9IGluamVjdChQbGF0Zm9ybVNlcnZpY2UpO1xuXG4gIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLCBhbGlhczogJ2ZEcmFnZ2FibGVEaXNhYmxlZCd9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZNdWx0aVNlbGVjdFRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSAoZXZlbnQ6IEZUcmlnZ2VyRXZlbnQpID0+IHtcbiAgICByZXR1cm4gKHRoaXMuX2ZQbGF0Zm9ybS5nZXRPUygpID09PSBFT3BlcmF0aW9uU3lzdGVtLk1BQ19PUykgPyBldmVudC5tZXRhS2V5IDogZXZlbnQuY3RybEtleTtcbiAgfTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZlJlYXNzaWduQ29ubmVjdGlvblRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmQ3JlYXRlQ29ubmVjdGlvblRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmTm9kZVJlc2l6ZVRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmTm9kZVJvdGF0ZVRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmTm9kZU1vdmVUcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyID0gZGVmYXVsdEV2ZW50VHJpZ2dlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZkNhbnZhc01vdmVUcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyID0gZGVmYXVsdEV2ZW50VHJpZ2dlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZkV4dGVybmFsSXRlbVRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXI8Rk5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucz4oKTtcblxuICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pXG4gIHB1YmxpYyBvdmVycmlkZSBmRW1pdE9uTm9kZUludGVyc2VjdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNyZWF0ZU5vZGUgPSBuZXcgRXZlbnRFbWl0dGVyPEZDcmVhdGVOb2RlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmTW92ZU5vZGVzID0gbmV3IEV2ZW50RW1pdHRlcjxGTW92ZU5vZGVzRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmUmVhc3NpZ25Db25uZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ3JlYXRlQ29ubmVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8RkNyZWF0ZUNvbm5lY3Rpb25FdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZEcm9wVG9Hcm91cCA9IG5ldyBFdmVudEVtaXR0ZXI8RkRyb3BUb0dyb3VwRXZlbnQ+KCk7XG5cbiAgQElucHV0KHt0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZX0pXG4gIHB1YmxpYyBvdmVycmlkZSB2Q2VsbFNpemUgPSAxO1xuXG4gIEBJbnB1dCh7dHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGV9KVxuICBwdWJsaWMgb3ZlcnJpZGUgaENlbGxTaXplID0gMTtcblxuICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQ2VsbFNpemVXaGlsZURyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmRHJhZ1N0YXJ0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZEcmFnU3RhcnRlZEV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkRyYWdFbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKEZfQkVGT1JFX01BSU5fUExVR0lOLCB7ZGVzY2VuZGFudHM6IHRydWV9KVxuICBwcml2YXRlIF9iZWZvcmVQbHVnaW5zITogUXVlcnlMaXN0PElGRHJhZ0FuZERyb3BQbHVnaW4+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRl9BRlRFUl9NQUlOX1BMVUdJTiwge2Rlc2NlbmRhbnRzOiB0cnVlfSlcbiAgcHJpdmF0ZSBfYWZ0ZXJQbHVnaW5zITogUXVlcnlMaXN0PElGRHJhZ0FuZERyb3BQbHVnaW4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTmdab25lKSBAT3B0aW9uYWwoKSBuZ1pvbmU6IElDYW5SdW5PdXRzaWRlQW5ndWxhcixcbiAgICBwcml2YXRlIF9mQnJvd3NlcjogQnJvd3NlclNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKG5nWm9uZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEFkZERuZFRvU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIuc3Vic2NyaWJlKHRoaXMuX2ZCcm93c2VyLmRvY3VtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJEb3duKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKGlzRHJhZ0Jsb2NrZXIoZXZlbnQudGFyZ2V0RWxlbWVudCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLl9mUmVzdWx0LmNsZWFyKCk7XG5cbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgSW5pdGlhbGl6ZURyYWdTZXF1ZW5jZVJlcXVlc3QoKSk7XG5cbiAgICB0aGlzLl9iZWZvcmVQbHVnaW5zLmZvckVhY2goKHApID0+IHAub25Qb2ludGVyRG93bj8uKGV2ZW50KSk7XG5cbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRlNpbmdsZVNlbGVjdFJlcXVlc3QoZXZlbnQsIHRoaXMuZk11bHRpU2VsZWN0VHJpZ2dlcikpO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZlJlYXNzaWduQ29ubmVjdGlvblRyaWdnZXIpKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mQ3JlYXRlQ29ubmVjdGlvblRyaWdnZXIpKTtcblxuICAgIHRoaXMuX2FmdGVyUGx1Z2lucy5mb3JFYWNoKChwKSA9PiBwLm9uUG9pbnRlckRvd24/LihldmVudCkpO1xuXG4gICAgY29uc3QgaXNNb3VzZUxlZnRPclRvdWNoID0gZXZlbnQuaXNNb3VzZUxlZnRCdXR0b24oKTtcbiAgICBpZiAoIWlzTW91c2VMZWZ0T3JUb3VjaCkge1xuICAgICAgdGhpcy5maW5hbGl6ZURyYWdTZXF1ZW5jZSgpO1xuICAgIH1cbiAgICByZXR1cm4gaXNNb3VzZUxlZnRPclRvdWNoO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHByZXBhcmVEcmFnU2VxdWVuY2UoZXZlbnQ6IElQb2ludGVyRXZlbnQpIHtcblxuICAgIHRoaXMuX2JlZm9yZVBsdWdpbnMuZm9yRWFjaCgocCkgPT4gcC5wcmVwYXJlRHJhZ1NlcXVlbmNlPy4oZXZlbnQpKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGTm9kZVJlc2l6ZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mTm9kZVJlc2l6ZVRyaWdnZXIpKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGTm9kZVJvdGF0ZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mTm9kZVJvdGF0ZVRyaWdnZXIpKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGTm9kZU1vdmVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZk5vZGVNb3ZlVHJpZ2dlcikpO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZFeHRlcm5hbEl0ZW1QcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZkV4dGVybmFsSXRlbVRyaWdnZXIpKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGTm9kZURyb3BUb0dyb3VwUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRkNhbnZhc01vdmVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZkNhbnZhc01vdmVUcmlnZ2VyKSk7XG5cbiAgICB0aGlzLl9hZnRlclBsdWdpbnMuZm9yRWFjaCgocCkgPT4gcC5wcmVwYXJlRHJhZ1NlcXVlbmNlPy4oZXZlbnQpKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBQcmVwYXJlRHJhZ1NlcXVlbmNlUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvblNlbGVjdChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgUHJldmVudERlZmF1bHRJc0V4dGVybmFsSXRlbVJlcXVlc3QoZXZlbnQpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IE9uUG9pbnRlck1vdmVSZXF1ZXN0KGV2ZW50KSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyVXAoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9iZWZvcmVQbHVnaW5zLmZvckVhY2goKHgpID0+IHgub25Qb2ludGVyVXA/LihldmVudCkpO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZSZWFzc2lnbkNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZOb2RlUmVzaXplRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRk5vZGVSb3RhdGVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGRXh0ZXJuYWxJdGVtRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRk5vZGVEcm9wVG9Hcm91cEZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZDYW52YXNNb3ZlRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLl9hZnRlclBsdWdpbnMuZm9yRWFjaCgoeCkgPT4geC5vblBvaW50ZXJVcD8uKGV2ZW50KSk7XG5cbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRW5kRHJhZ1NlcXVlbmNlUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaW5hbGl6ZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50UmVxdWVzdCgpKTtcblxuICAgIHRoaXMuX2ZSZXN1bHQuY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgUmVtb3ZlRG5kRnJvbVN0b3JlUmVxdWVzdCgpKTtcbiAgICBzdXBlci51bnN1YnNjcmliZSgpO1xuICB9XG59XG5cbiJdfQ==
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixlQUFlLEVBR2YsUUFBUSxFQUNSLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFrQix3QkFBd0IsRUFBRSwyQkFBMkIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUMsMEJBQTBCLEVBQUUsNkJBQTZCLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDckYsT0FBTyxFQUVMLGdDQUFnQyxFQUNoQyxtQ0FBbUMsRUFFbkMsa0NBQWtDLEVBQ2xDLHFDQUFxQyxFQUN0QyxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQiwrQkFBK0IsRUFDL0Isc0JBQXNCLEVBR3RCLDZCQUE2QixFQUM3QixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUMxQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBRUwsNEJBQTRCLEVBQzVCLCtCQUErQixFQUMvQixtQ0FBbUMsRUFDcEMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMseUJBQXlCLEVBQUUsNEJBQTRC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QjtzQkFEeEIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFJQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBSVUsZ0JBQWdCO3NCQUQvQixNQUFNO2dCQUlTLCtCQUErQjtzQkFEOUMsTUFBTTtnQkFJUyxvQkFBb0I7c0JBRG5DLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBSXBCLFdBQVc7c0JBRDFCLE1BQU07Z0JBSVMsVUFBVTtzQkFEekIsTUFBTTtnQkFJUyxtQkFBbUI7c0JBRGxDLE1BQU07Z0JBSVMsaUJBQWlCO3NCQURoQyxNQUFNO2dCQUlTLFlBQVk7c0JBRDNCLE1BQU07Z0JBeUJTLFlBQVk7c0JBRDNCLE1BQU07Z0JBSVMsVUFBVTtzQkFEekIsTUFBTTtnQkFJQyxjQUFjO3NCQURyQixlQUFlO3VCQUFDLG9CQUFvQixFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQztnQkFJbEQsYUFBYTtzQkFEcEIsZUFBZTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIEluamVjdCxcbiAgaW5wdXQsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtGRHJhZ2dhYmxlQmFzZX0gZnJvbSAnLi9mLWRyYWdnYWJsZS1iYXNlJztcbmltcG9ydCB7Rk1vdmVOb2Rlc0V2ZW50LCBGTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3QsIEZOb2RlTW92ZVByZXBhcmF0aW9uUmVxdWVzdH0gZnJvbSAnLi9mLW5vZGUtbW92ZSc7XG5pbXBvcnQge0ZDYW52YXNNb3ZlRmluYWxpemVSZXF1ZXN0LCBGQ2FudmFzTW92ZVByZXBhcmF0aW9uUmVxdWVzdH0gZnJvbSAnLi9mLWNhbnZhcyc7XG5pbXBvcnQge1xuICBGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50LFxuICBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdCxcbiAgRkNyZWF0ZUNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QsXG4gIEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudCxcbiAgRlJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdCxcbiAgRlJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdFxufSBmcm9tICcuL2YtY29ubmVjdGlvbic7XG5pbXBvcnQge0ZTZWxlY3Rpb25DaGFuZ2VFdmVudH0gZnJvbSAnLi9mLXNlbGVjdGlvbi1jaGFuZ2UtZXZlbnQnO1xuaW1wb3J0IHtGTWVkaWF0b3J9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkRG5kVG9TdG9yZVJlcXVlc3QsXG4gIGRlZmF1bHRFdmVudFRyaWdnZXIsXG4gIEVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudFJlcXVlc3QsXG4gIEVuZERyYWdTZXF1ZW5jZVJlcXVlc3QsXG4gIEZFdmVudFRyaWdnZXIsXG4gIEZUcmlnZ2VyRXZlbnQsXG4gIEluaXRpYWxpemVEcmFnU2VxdWVuY2VSZXF1ZXN0LFxuICBPblBvaW50ZXJNb3ZlUmVxdWVzdCxcbiAgUHJlcGFyZURyYWdTZXF1ZW5jZVJlcXVlc3QsXG4gIFJlbW92ZURuZEZyb21TdG9yZVJlcXVlc3Rcbn0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7XG4gIEZDcmVhdGVOb2RlRXZlbnQsXG4gIEZFeHRlcm5hbEl0ZW1GaW5hbGl6ZVJlcXVlc3QsXG4gIEZFeHRlcm5hbEl0ZW1QcmVwYXJhdGlvblJlcXVlc3QsXG4gIFByZXZlbnREZWZhdWx0SXNFeHRlcm5hbEl0ZW1SZXF1ZXN0XG59IGZyb20gJy4uL2YtZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQge0ZTaW5nbGVTZWxlY3RSZXF1ZXN0fSBmcm9tICcuL2Ytc2luZ2xlLXNlbGVjdCc7XG5pbXBvcnQge05vZGVSZXNpemVGaW5hbGl6ZVJlcXVlc3QsIE5vZGVSZXNpemVQcmVwYXJhdGlvblJlcXVlc3R9IGZyb20gJy4vZi1ub2RlLXJlc2l6ZSc7XG5pbXBvcnQge0ZfQUZURVJfTUFJTl9QTFVHSU4sIEZfQkVGT1JFX01BSU5fUExVR0lOLCBJRkRyYWdBbmREcm9wUGx1Z2lufSBmcm9tICcuL2ktZi1kcmFnLWFuZC1kcm9wLXBsdWdpbic7XG5pbXBvcnQge0Jyb3dzZXJTZXJ2aWNlLCBFT3BlcmF0aW9uU3lzdGVtLCBQbGF0Zm9ybVNlcnZpY2V9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHtGRHJhZ1N0YXJ0ZWRFdmVudCwgRk5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9uc30gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHtGRHJhZ0hhbmRsZXJSZXN1bHR9IGZyb20gJy4vZi1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHtcbiAgRkRyb3BUb0dyb3VwRXZlbnQsXG4gIERyb3BUb0dyb3VwRmluYWxpemVSZXF1ZXN0LFxuICBEcm9wVG9Hcm91cFByZXBhcmF0aW9uUmVxdWVzdFxufSBmcm9tICcuL2YtZHJvcC10by1ncm91cCc7XG5pbXBvcnQge0ZOb2RlUm90YXRlRmluYWxpemVSZXF1ZXN0LCBGTm9kZVJvdGF0ZVByZXBhcmF0aW9uUmVxdWVzdH0gZnJvbSAnLi9mLW5vZGUtcm90YXRlJztcbmltcG9ydCB7SUNhblJ1bk91dHNpZGVBbmd1bGFyLCBJUG9pbnRlckV2ZW50fSBmcm9tIFwiLi4vZHJhZy10b29sa2l0XCI7XG5pbXBvcnQge2lzRHJhZ0Jsb2NrZXJ9IGZyb20gXCIuL2lzLWRyYWctYmxvY2tlclwiO1xuXG4vLyDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJBcbi8vIOKUgiAgICAgICAgQW5ndWxhciBSZWFsbSAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAg4pSCXG4vLyDilIIgIOKUgiAgRkRyYWdnYWJsZURpcmVjdGl2ZSAgIOKUgiAg4pSCXG4vLyDilIIgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAg4pSCXG4vLyDilIIgICAgICAgICAgICAg4pSCIGV4dGVuZHMgICAgICAgIOKUglxuLy8g4pSCICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilrzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgIOKUglxuLy8g4pSCICDilIIgICAgIEZEcmFnZ2FibGVCYXNlICAgICDilIIgIOKUglxuLy8g4pSCICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggIOKUglxuLy8g4pSCICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAgICAgICDilIIgb3ZlcnJpZGVzICAgICAg4pSCXG4vLyDilIIgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKWvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAg4pSCXG4vLyDilIIgIOKUgiAgIERyYWdBbmREcm9wQmFzZSAgICAgIOKUgiAg4pSCXG4vLyDilIIgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAg4pSCXG4vLyDilIIgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgc3Vic2NyaWJlcyB0byAgICAgICAgICAg4pSCXG4vLyDilIIgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICDilIzilIDilIDilIDilIDilrzilIDilIDilIDilIDilJAgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICDilIIgRG9jdW1lbnTilIIgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAg4pSCXG4vLyDilIIgIOKUgiAgICAgICBGTWVkaWF0b3IgICAgICAgIOKUguKXhOKUgOKUrOKUgOKUgOKUgOKUgOKUkFxuLy8g4pSCICDilJTilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggIOKUgiAgICDilIJcbi8vIOKUgiAgICAgICAg4pSCICAgICAgICDilIIgICAgICAgICAgICDilIIgICAg4pSCXG4vLyDilIIgICBleGVjdXRlcyAgIGV4ZWN1dGVzICAgICAgICDilIIgICAg4pSCXG4vLyDilIIgICBGKlJlcXVlc3QgICBGKkV2ZW50ICAgICAgICDilIIgICAg4pSCXG4vLyDilIIgICAgICAgIOKUgiAgICAgICAg4pSCICAgICAgICAgICAg4pSCICAgIOKUglxuLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSYXG4vL1xuLy9cbi8vIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuLy8g4pSCICAgICAgIERyYWcgJiBEcm9wIFJ1bnRpbWUgTGF5ZXIgICAgICDilIJcbi8vIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgIEV2ZW50cyBmcm9tIERPTTogICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgIC0gbW91c2Vkb3duIC8gdG91Y2hzdGFydCAgICAgICAgICDilIJcbi8vIOKUgiAgICAtIG1vdXNlbW92ZSAvIHRvdWNobW92ZSAgICAgICAgICAg4pSCXG4vLyDilIIgICAgLSBwb2ludGVydXAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAg4oaTIFJvdXRlZCB0byAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAgICDilIJcbi8vIOKUgiAg4pSCICAgICBEcmFnQW5kRHJvcEJhc2UgICAgICAgICAg4pSCICAgIOKUglxuLy8g4pSCICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAg4pSCXG4vLyDilIIgICAgICAgIOKWsiAgICAgICAgICAgICDilrIgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAg4pSCICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgY2hlY2tEcmFnICAgICBvblBvaW50ZXJNb3ZlICAgICAgICDilIJcbi8vIOKUgiAgIFNlcXVlbmNlICAgICAgKyBGaW5hbGl6YXRpb24gICAgICAg4pSCXG4vLyDilIIgICBUbyBTdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiZi1mbG93W2ZEcmFnZ2FibGVdXCIsXG4gIGV4cG9ydEFzOiAnZkRyYWdnYWJsZScsXG4gIHByb3ZpZGVyczogW0ZEcmFnSGFuZGxlclJlc3VsdF1cbn0pXG5leHBvcnQgY2xhc3MgRkRyYWdnYWJsZURpcmVjdGl2ZSBleHRlbmRzIEZEcmFnZ2FibGVCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWZlcmVuY2UgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZlJlc3VsdCA9IGluamVjdChGRHJhZ0hhbmRsZXJSZXN1bHQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wbGF0Zm9ybSA9IGluamVjdChQbGF0Zm9ybVNlcnZpY2UpO1xuXG4gIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLCBhbGlhczogJ2ZEcmFnZ2FibGVEaXNhYmxlZCd9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZNdWx0aVNlbGVjdFRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSAoZXZlbnQ6IEZUcmlnZ2VyRXZlbnQpID0+IHtcbiAgICByZXR1cm4gKHRoaXMuX3BsYXRmb3JtLmdldE9TKCkgPT09IEVPcGVyYXRpb25TeXN0ZW0uTUFDX09TKSA/IGV2ZW50Lm1ldGFLZXkgOiBldmVudC5jdHJsS2V5O1xuICB9O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmUmVhc3NpZ25Db25uZWN0aW9uVHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IGRlZmF1bHRFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZDcmVhdGVDb25uZWN0aW9uVHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IGRlZmF1bHRFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZOb2RlUmVzaXplVHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IGRlZmF1bHRFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZOb2RlUm90YXRlVHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IGRlZmF1bHRFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZOb2RlTW92ZVRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmQ2FudmFzTW92ZVRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmRXh0ZXJuYWxJdGVtVHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IGRlZmF1bHRFdmVudFRyaWdnZXI7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmU2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zID0gbmV3IEV2ZW50RW1pdHRlcjxGTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zPigpO1xuXG4gIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSlcbiAgcHVibGljIG92ZXJyaWRlIGZFbWl0T25Ob2RlSW50ZXJzZWN0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ3JlYXRlTm9kZSA9IG5ldyBFdmVudEVtaXR0ZXI8RkNyZWF0ZU5vZGVFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZNb3ZlTm9kZXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZNb3ZlTm9kZXNFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZSZWFzc2lnbkNvbm5lY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZDcmVhdGVDb25uZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkRyb3BUb0dyb3VwID0gbmV3IEV2ZW50RW1pdHRlcjxGRHJvcFRvR3JvdXBFdmVudD4oKTtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgdmVydGljYWwgY2VsbCBzaXplIGZvciB0aGUgZ3JpZC5cbiAgICogVGhpcyB2YWx1ZSBpcyB1c2VkIHRvIHNuYXAgbm9kZXMgdG8gYSB2ZXJ0aWNhbCBncmlkIHdoaWxlIGRyYWdnaW5nLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgMWAsIHdoaWNoIG1lYW5zIHRoYXQgbm9kZXMgd2lsbCBzbmFwIHRvIGV2ZXJ5IHBpeGVsIHZlcnRpY2FsbHkuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgdkNlbGxTaXplID0gaW5wdXQoMSwge3RyYW5zZm9ybTogKHZhbHVlOiBhbnkpID0+IG51bWJlckF0dHJpYnV0ZSh2YWx1ZSwgMSl9KTtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgaG9yaXpvbnRhbCBjZWxsIHNpemUgZm9yIHRoZSBncmlkLlxuICAgKiBUaGlzIHZhbHVlIGlzIHVzZWQgdG8gc25hcCBub2RlcyB0byBhIGhvcml6b250YWwgZ3JpZCB3aGlsZSBkcmFnZ2luZy5cbiAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgYDFgLCB3aGljaCBtZWFucyB0aGF0IG5vZGVzIHdpbGwgc25hcCB0byBldmVyeSBwaXhlbCBob3Jpem9udGFsbHkuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgaENlbGxTaXplID0gaW5wdXQoMSwge3RyYW5zZm9ybTogKHZhbHVlOiBhbnkpID0+IG51bWJlckF0dHJpYnV0ZSh2YWx1ZSwgMSl9KTtcblxuICAvKipcbiAgICogRGVmaW5lcyB3aGV0aGVyIHRoZSBjZWxsIHNpemUgc2hvdWxkIGJlIGFwcGxpZWQgd2hpbGUgZHJhZ2dpbmcuXG4gICAqIElmIHNldCB0byBgdHJ1ZWAsIHRoZSBkcmFnZ2VkIG5vZGVzIHdpbGwgc25hcCB0byB0aGUgZ3JpZCBkZWZpbmVkIGJ5IGB2Q2VsbFNpemVgIGFuZCBgaENlbGxTaXplYC5cbiAgICogSWYgc2V0IHRvIGBmYWxzZWAsIHRoZSBub2RlcyB3aWxsIG1vdmUgZnJlZWx5IHdpdGhvdXQgc25hcHBpbmcgdG8gdGhlIGdyaWQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZkNlbGxTaXplV2hpbGVEcmFnZ2luZyA9IGlucHV0KGZhbHNlLCB7dHJhbnNmb3JtOiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSl9KTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZEcmFnU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RkRyYWdTdGFydGVkRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmRHJhZ0VuZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRl9CRUZPUkVfTUFJTl9QTFVHSU4sIHtkZXNjZW5kYW50czogdHJ1ZX0pXG4gIHByaXZhdGUgX2JlZm9yZVBsdWdpbnMhOiBRdWVyeUxpc3Q8SUZEcmFnQW5kRHJvcFBsdWdpbj47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihGX0FGVEVSX01BSU5fUExVR0lOLCB7ZGVzY2VuZGFudHM6IHRydWV9KVxuICBwcml2YXRlIF9hZnRlclBsdWdpbnMhOiBRdWVyeUxpc3Q8SUZEcmFnQW5kRHJvcFBsdWdpbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChOZ1pvbmUpIEBPcHRpb25hbCgpIG5nWm9uZTogSUNhblJ1bk91dHNpZGVBbmd1bGFyLFxuICAgIHByaXZhdGUgX2ZCcm93c2VyOiBCcm93c2VyU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIobmdab25lKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBBZGREbmRUb1N0b3JlUmVxdWVzdCh0aGlzKSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLnN1YnNjcmliZSh0aGlzLl9mQnJvd3Nlci5kb2N1bWVudCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyRG93bihldmVudDogSVBvaW50ZXJFdmVudCk6IGJvb2xlYW4ge1xuICAgIGlmIChpc0RyYWdCbG9ja2VyKGV2ZW50LnRhcmdldEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5fZlJlc3VsdC5jbGVhcigpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgSW5pdGlhbGl6ZURyYWdTZXF1ZW5jZVJlcXVlc3QoKSk7XG5cbiAgICB0aGlzLl9iZWZvcmVQbHVnaW5zLmZvckVhY2goKHApID0+IHAub25Qb2ludGVyRG93bj8uKGV2ZW50KSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGU2luZ2xlU2VsZWN0UmVxdWVzdChldmVudCwgdGhpcy5mTXVsdGlTZWxlY3RUcmlnZ2VyKSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGUmVhc3NpZ25Db25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50LCB0aGlzLmZSZWFzc2lnbkNvbm5lY3Rpb25UcmlnZ2VyKSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mQ3JlYXRlQ29ubmVjdGlvblRyaWdnZXIpKTtcblxuICAgIHRoaXMuX2FmdGVyUGx1Z2lucy5mb3JFYWNoKChwKSA9PiBwLm9uUG9pbnRlckRvd24/LihldmVudCkpO1xuXG4gICAgY29uc3QgaXNNb3VzZUxlZnRPclRvdWNoID0gZXZlbnQuaXNNb3VzZUxlZnRCdXR0b24oKTtcbiAgICBpZiAoIWlzTW91c2VMZWZ0T3JUb3VjaCkge1xuICAgICAgdGhpcy5maW5hbGl6ZURyYWdTZXF1ZW5jZSgpO1xuICAgIH1cbiAgICByZXR1cm4gaXNNb3VzZUxlZnRPclRvdWNoO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHByZXBhcmVEcmFnU2VxdWVuY2UoZXZlbnQ6IElQb2ludGVyRXZlbnQpIHtcblxuICAgIHRoaXMuX2JlZm9yZVBsdWdpbnMuZm9yRWFjaCgocCkgPT4gcC5wcmVwYXJlRHJhZ1NlcXVlbmNlPy4oZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IE5vZGVSZXNpemVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZk5vZGVSZXNpemVUcmlnZ2VyKSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGTm9kZVJvdGF0ZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mTm9kZVJvdGF0ZVRyaWdnZXIpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZOb2RlTW92ZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mTm9kZU1vdmVUcmlnZ2VyKSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGRXh0ZXJuYWxJdGVtUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50LCB0aGlzLmZFeHRlcm5hbEl0ZW1UcmlnZ2VyKSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBEcm9wVG9Hcm91cFByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRkNhbnZhc01vdmVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZkNhbnZhc01vdmVUcmlnZ2VyKSk7XG5cbiAgICB0aGlzLl9hZnRlclBsdWdpbnMuZm9yRWFjaCgocCkgPT4gcC5wcmVwYXJlRHJhZ1NlcXVlbmNlPy4oZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFByZXBhcmVEcmFnU2VxdWVuY2VSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFByZXZlbnREZWZhdWx0SXNFeHRlcm5hbEl0ZW1SZXF1ZXN0KGV2ZW50KSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IE9uUG9pbnRlck1vdmVSZXF1ZXN0KGV2ZW50KSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyVXAoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9iZWZvcmVQbHVnaW5zLmZvckVhY2goKHgpID0+IHgub25Qb2ludGVyVXA/LihldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRlJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRkNyZWF0ZUNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IE5vZGVSZXNpemVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZOb2RlUm90YXRlRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZFeHRlcm5hbEl0ZW1GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IERyb3BUb0dyb3VwRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGQ2FudmFzTW92ZUZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fYWZ0ZXJQbHVnaW5zLmZvckVhY2goKHgpID0+IHgub25Qb2ludGVyVXA/LihldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRW5kRHJhZ1NlcXVlbmNlUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaW5hbGl6ZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBFbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnRSZXF1ZXN0KCkpO1xuXG4gICAgdGhpcy5fZlJlc3VsdC5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFJlbW92ZURuZEZyb21TdG9yZVJlcXVlc3QoKSk7XG4gICAgc3VwZXIudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuXG4iXX0=
@@ -0,0 +1,8 @@
1
+ export class DropToGroupFinalizeRequest {
2
+ event;
3
+ static fToken = Symbol('DropToGroupFinalizeRequest');
4
+ constructor(event) {
5
+ this.event = event;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC10by1ncm91cC1maW5hbGl6ZS1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyb3AtdG8tZ3JvdXAvZHJvcC10by1ncm91cC1maW5hbGl6ZS9kcm9wLXRvLWdyb3VwLWZpbmFsaXplLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDBCQUEwQjtJQUk1QjtJQUhULE1BQU0sQ0FBVSxNQUFNLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFFOUQsWUFDUyxLQUFvQjtRQUFwQixVQUFLLEdBQUwsS0FBSyxDQUFlO0lBRTdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lQb2ludGVyRXZlbnR9IGZyb20gXCIuLi8uLi8uLi9kcmFnLXRvb2xraXRcIjtcblxuZXhwb3J0IGNsYXNzIERyb3BUb0dyb3VwRmluYWxpemVSZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnRHJvcFRvR3JvdXBGaW5hbGl6ZVJlcXVlc3QnKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZXZlbnQ6IElQb2ludGVyRXZlbnRcbiAgKSB7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,69 @@
1
+ import { __decorate } from "tslib";
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { DropToGroupFinalizeRequest } from './drop-to-group-finalize-request';
4
+ import { FExecutionRegister } from '@foblex/mediator';
5
+ import { FDraggableDataContext } from '../../f-draggable-data-context';
6
+ import { FNodeDropToGroupDragHandler } from '../f-node-drop-to-group.drag-handler';
7
+ import { FComponentsStore } from '../../../f-storage';
8
+ import { MoveSummaryDragHandler } from '../../f-node-move';
9
+ import { FDropToGroupEvent } from '../f-drop-to-group.event';
10
+ import * as i0 from "@angular/core";
11
+ let DropToGroupFinalize = class DropToGroupFinalize {
12
+ _dragContext = inject(FDraggableDataContext);
13
+ _store = inject(FComponentsStore);
14
+ handle(request) {
15
+ if (!this._isValid()) {
16
+ return;
17
+ }
18
+ const item = this._getDragHandleItem();
19
+ if (item.fNodeWithRect) {
20
+ this._emitDroppedChildrenEvent(item.fNodeWithRect.node.fId(), request.event);
21
+ }
22
+ item.onPointerUp?.();
23
+ }
24
+ _isValid() {
25
+ return this._dragContext.draggableItems
26
+ .some((x) => x instanceof FNodeDropToGroupDragHandler);
27
+ }
28
+ _emitDroppedChildrenEvent(fTargetId, event) {
29
+ this._store.fDraggable?.fDropToGroup.emit(new FDropToGroupEvent(fTargetId, this._getDroppedIds(), event.getPosition()));
30
+ }
31
+ _getDragHandleItem() {
32
+ const result = this._findDragHandleItem();
33
+ if (!result) {
34
+ throw new Error('NodeDragToParentDragHandler not found');
35
+ }
36
+ return result;
37
+ }
38
+ _findDragHandleItem() {
39
+ return this._dragContext.draggableItems
40
+ .find((x) => x instanceof FNodeDropToGroupDragHandler);
41
+ }
42
+ _getDroppedIds() {
43
+ const nodeOrGroups = this._getSummaryHandler().allDraggedNodeHandlers
44
+ .map((x) => x.nodeOrGroup);
45
+ const idSet = new Set(nodeOrGroups.map(n => n.fId()));
46
+ return nodeOrGroups.filter(node => {
47
+ const parentId = node.fParentId();
48
+ return !parentId || !idSet.has(parentId);
49
+ }).map(node => node.fId());
50
+ }
51
+ _getSummaryHandler() {
52
+ const result = this._dragContext.draggableItems
53
+ .find((x) => x instanceof MoveSummaryDragHandler);
54
+ if (!result) {
55
+ throw new Error('Drop To Group can`t be used without MoveSummaryDragHandler');
56
+ }
57
+ return result;
58
+ }
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropToGroupFinalize, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
60
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropToGroupFinalize });
61
+ };
62
+ DropToGroupFinalize = __decorate([
63
+ FExecutionRegister(DropToGroupFinalizeRequest)
64
+ ], DropToGroupFinalize);
65
+ export { DropToGroupFinalize };
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropToGroupFinalize, decorators: [{
67
+ type: Injectable
68
+ }] });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC10by1ncm91cC1maW5hbGl6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1kcm9wLXRvLWdyb3VwL2Ryb3AtdG8tZ3JvdXAtZmluYWxpemUvZHJvcC10by1ncm91cC1maW5hbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGtCQUFrQixFQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDakYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7O0FBS3BELElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW1CO0lBR2IsWUFBWSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU1QyxNQUFNLENBQUMsT0FBbUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLFFBQVE7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYzthQUNwQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSwyQkFBMkIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxTQUFpQixFQUFFLEtBQW9CO1FBQ3ZFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQ3ZDLElBQUksaUJBQWlCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDN0UsQ0FBQztJQUNKLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjO2FBQ3BDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLDJCQUEyQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsc0JBQXNCO2FBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTdCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXRELE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWM7YUFDNUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksc0JBQXNCLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7d0dBNURVLG1CQUFtQjs0R0FBbkIsbUJBQW1COztBQUFuQixtQkFBbUI7SUFEL0Isa0JBQWtCLENBQUMsMEJBQTBCLENBQUM7R0FDbEMsbUJBQW1CLENBNkQvQjs7NEZBN0RZLG1CQUFtQjtrQkFGL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RHJvcFRvR3JvdXBGaW5hbGl6ZVJlcXVlc3R9IGZyb20gJy4vZHJvcC10by1ncm91cC1maW5hbGl6ZS1yZXF1ZXN0JztcbmltcG9ydCB7RkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9ufSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7RkRyYWdnYWJsZURhdGFDb250ZXh0fSBmcm9tICcuLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtGTm9kZURyb3BUb0dyb3VwRHJhZ0hhbmRsZXJ9IGZyb20gJy4uL2Ytbm9kZS1kcm9wLXRvLWdyb3VwLmRyYWctaGFuZGxlcic7XG5pbXBvcnQge0ZDb21wb25lbnRzU3RvcmV9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQge01vdmVTdW1tYXJ5RHJhZ0hhbmRsZXJ9IGZyb20gJy4uLy4uL2Ytbm9kZS1tb3ZlJztcbmltcG9ydCB7RkRyb3BUb0dyb3VwRXZlbnR9IGZyb20gJy4uL2YtZHJvcC10by1ncm91cC5ldmVudCc7XG5pbXBvcnQge0lQb2ludGVyRXZlbnR9IGZyb20gXCIuLi8uLi8uLi9kcmFnLXRvb2xraXRcIjtcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihEcm9wVG9Hcm91cEZpbmFsaXplUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBEcm9wVG9Hcm91cEZpbmFsaXplXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxEcm9wVG9Hcm91cEZpbmFsaXplUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdDb250ZXh0ID0gaW5qZWN0KEZEcmFnZ2FibGVEYXRhQ29udGV4dCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogRHJvcFRvR3JvdXBGaW5hbGl6ZVJlcXVlc3QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpdGVtID0gdGhpcy5fZ2V0RHJhZ0hhbmRsZUl0ZW0oKTtcbiAgICBpZiAoaXRlbS5mTm9kZVdpdGhSZWN0KSB7XG4gICAgICB0aGlzLl9lbWl0RHJvcHBlZENoaWxkcmVuRXZlbnQoaXRlbS5mTm9kZVdpdGhSZWN0Lm5vZGUuZklkKCksIHJlcXVlc3QuZXZlbnQpO1xuICAgIH1cbiAgICBpdGVtLm9uUG9pbnRlclVwPy4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RyYWdDb250ZXh0LmRyYWdnYWJsZUl0ZW1zXG4gICAgICAuc29tZSgoeCkgPT4geCBpbnN0YW5jZW9mIEZOb2RlRHJvcFRvR3JvdXBEcmFnSGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0RHJvcHBlZENoaWxkcmVuRXZlbnQoZlRhcmdldElkOiBzdHJpbmcsIGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fc3RvcmUuZkRyYWdnYWJsZT8uZkRyb3BUb0dyb3VwLmVtaXQoXG4gICAgICBuZXcgRkRyb3BUb0dyb3VwRXZlbnQoZlRhcmdldElkLCB0aGlzLl9nZXREcm9wcGVkSWRzKCksIGV2ZW50LmdldFBvc2l0aW9uKCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERyYWdIYW5kbGVJdGVtKCk6IEZOb2RlRHJvcFRvR3JvdXBEcmFnSGFuZGxlciB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZmluZERyYWdIYW5kbGVJdGVtKCk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm9kZURyYWdUb1BhcmVudERyYWdIYW5kbGVyIG5vdCBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluZERyYWdIYW5kbGVJdGVtKCk6IEZOb2RlRHJvcFRvR3JvdXBEcmFnSGFuZGxlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2RyYWdDb250ZXh0LmRyYWdnYWJsZUl0ZW1zXG4gICAgICAuZmluZCgoeCkgPT4geCBpbnN0YW5jZW9mIEZOb2RlRHJvcFRvR3JvdXBEcmFnSGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIF9nZXREcm9wcGVkSWRzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBub2RlT3JHcm91cHMgPSB0aGlzLl9nZXRTdW1tYXJ5SGFuZGxlcigpLmFsbERyYWdnZWROb2RlSGFuZGxlcnNcbiAgICAgIC5tYXAoKHgpID0+IHgubm9kZU9yR3JvdXApO1xuXG4gICAgY29uc3QgaWRTZXQgPSBuZXcgU2V0KG5vZGVPckdyb3Vwcy5tYXAobiA9PiBuLmZJZCgpKSk7XG5cbiAgICByZXR1cm4gbm9kZU9yR3JvdXBzLmZpbHRlcihub2RlID0+IHtcbiAgICAgIGNvbnN0IHBhcmVudElkID0gbm9kZS5mUGFyZW50SWQoKTtcbiAgICAgIHJldHVybiAhcGFyZW50SWQgfHwgIWlkU2V0LmhhcyhwYXJlbnRJZCk7XG4gICAgfSkubWFwKG5vZGUgPT4gbm9kZS5mSWQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdW1tYXJ5SGFuZGxlcigpOiBNb3ZlU3VtbWFyeURyYWdIYW5kbGVyIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9kcmFnQ29udGV4dC5kcmFnZ2FibGVJdGVtc1xuICAgICAgLmZpbmQoKHgpID0+IHggaW5zdGFuY2VvZiBNb3ZlU3VtbWFyeURyYWdIYW5kbGVyKTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEcm9wIFRvIEdyb3VwIGNhbmB0IGJlIHVzZWQgd2l0aG91dCBNb3ZlU3VtbWFyeURyYWdIYW5kbGVyJyk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
- export * from './f-node-drop-to-group-finalize.execution';
2
- export * from './f-node-drop-to-group-finalize.request';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtZHJvcC10by1ncm91cC9kcm9wLXRvLWdyb3VwLWZpbmFsaXplL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZi1ub2RlLWRyb3AtdG8tZ3JvdXAtZmluYWxpemUuZXhlY3V0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLW5vZGUtZHJvcC10by1ncm91cC1maW5hbGl6ZS5yZXF1ZXN0JztcbiJdfQ==
1
+ export * from './drop-to-group-finalize';
2
+ export * from './drop-to-group-finalize-request';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtZHJvcC10by1ncm91cC9kcm9wLXRvLWdyb3VwLWZpbmFsaXplL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJvcC10by1ncm91cC1maW5hbGl6ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHJvcC10by1ncm91cC1maW5hbGl6ZS1yZXF1ZXN0JztcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export class DropToGroupPreparationRequest {
2
+ event;
3
+ static fToken = Symbol('DropToGroupPreparationRequest');
4
+ constructor(event) {
5
+ this.event = event;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC10by1ncm91cC1wcmVwYXJhdGlvbi1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyb3AtdG8tZ3JvdXAvZHJvcC10by1ncm91cC1wcmVwYXJhdGlvbi9kcm9wLXRvLWdyb3VwLXByZXBhcmF0aW9uLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDZCQUE2QjtJQUkvQjtJQUhULE1BQU0sQ0FBVSxNQUFNLEdBQUcsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFFakUsWUFDUyxLQUFvQjtRQUFwQixVQUFLLEdBQUwsS0FBSyxDQUFlO0lBRTdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lQb2ludGVyRXZlbnR9IGZyb20gXCIuLi8uLi8uLi9kcmFnLXRvb2xraXRcIjtcblxuZXhwb3J0IGNsYXNzIERyb3BUb0dyb3VwUHJlcGFyYXRpb25SZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnRHJvcFRvR3JvdXBQcmVwYXJhdGlvblJlcXVlc3QnKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZXZlbnQ6IElQb2ludGVyRXZlbnRcbiAgKSB7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,101 @@
1
+ import { __decorate } from "tslib";
2
+ import { inject, Injectable, Injector } from '@angular/core';
3
+ import { DropToGroupPreparationRequest } from './drop-to-group-preparation-request';
4
+ import { FExecutionRegister, FMediator } from '@foblex/mediator';
5
+ import { FComponentsStore } from '../../../f-storage';
6
+ import { PointExtensions, RectExtensions } from '@foblex/2d';
7
+ import { GetChildNodeIdsRequest, GetNormalizedElementRectRequest, GetParentNodesRequest } from '../../../domain';
8
+ import { FGroupDirective } from '../../../f-node';
9
+ import { FDraggableDataContext } from '../../f-draggable-data-context';
10
+ import { FNodeDropToGroupDragHandler } from '../f-node-drop-to-group.drag-handler';
11
+ import { MoveSummaryDragHandler } from '../../f-node-move';
12
+ import { FExternalItemDragHandler } from "../../../f-external-item";
13
+ import { SortContainersForDropByLayerRequest } from "../sort-containers-for-drop-by-layer";
14
+ import * as i0 from "@angular/core";
15
+ let DropToGroupPreparation = class DropToGroupPreparation {
16
+ _mediator = inject(FMediator);
17
+ _dragContext = inject(FDraggableDataContext);
18
+ _store = inject(FComponentsStore);
19
+ _injector = inject(Injector);
20
+ get _allNodesAndGroups() {
21
+ return this._store.fNodes;
22
+ }
23
+ get _canvasTransform() {
24
+ return this._store.fCanvas.transform;
25
+ }
26
+ get _canvasPosition() {
27
+ return PointExtensions.sum(this._canvasTransform.position, this._canvasTransform.scaledPosition);
28
+ }
29
+ handle({ event }) {
30
+ if (!this._canPrepareDropToGroup()) {
31
+ return;
32
+ }
33
+ const _dragTarget = this._allNodesAndGroups.find((x) => x.isContains(event.targetElement));
34
+ if (!_dragTarget && !this._isExternalItemDragHandler()) {
35
+ throw new Error('Drag target node not found');
36
+ }
37
+ let targetRects = this._mediator.execute(new SortContainersForDropByLayerRequest(this._collectGroupingTargetRects()));
38
+ if (_dragTarget) {
39
+ // We can drop items only to children of direct parent
40
+ const childIds = this._mediator.execute(new GetChildNodeIdsRequest(_dragTarget.fParentId()));
41
+ if (childIds.length) {
42
+ targetRects = targetRects.filter(t => childIds.includes(t.node.fId()));
43
+ }
44
+ }
45
+ this._dragContext.draggableItems.push(new FNodeDropToGroupDragHandler(this._injector, targetRects));
46
+ }
47
+ _canPrepareDropToGroup() {
48
+ return this._isNodeDragHandler() || this._isExternalItemDragHandler();
49
+ }
50
+ _isNodeDragHandler() {
51
+ return this._dragContext.draggableItems
52
+ .some((x) => x instanceof MoveSummaryDragHandler);
53
+ }
54
+ _isExternalItemDragHandler() {
55
+ return this._dragContext.draggableItems
56
+ .some((x) => x instanceof FExternalItemDragHandler);
57
+ }
58
+ _collectGroupingTargetRects() {
59
+ const dragged = this._draggedNodes();
60
+ const draggingGroup = dragged.some((x) => x instanceof FGroupDirective);
61
+ const draggedNodes = this._draggedNodesWithParents(dragged);
62
+ return this._eligibleTargets(draggedNodes, draggingGroup).map((node) => {
63
+ const rect = this._mediator.execute(new GetNormalizedElementRectRequest(node.hostElement));
64
+ return { node, rect: this._toCanvasRect(rect) };
65
+ });
66
+ }
67
+ _draggedNodes() {
68
+ return this._dragContext.draggableItems
69
+ .find((x) => x instanceof MoveSummaryDragHandler)
70
+ ?.allDraggedNodeHandlers.map((x) => x.nodeOrGroup) || [];
71
+ }
72
+ /**
73
+ * Returns the list of dragged nodes extended with all of their parent nodes.
74
+ *
75
+ * This ensures that parent nodes are excluded from the potential drop targets,
76
+ * since they already act as containers for the dragged elements.
77
+ */
78
+ _draggedNodesWithParents(nodes) {
79
+ return nodes.reduce((result, x) => {
80
+ result.push(x, ...this._mediator.execute(new GetParentNodesRequest(x)));
81
+ return result;
82
+ }, []);
83
+ }
84
+ _eligibleTargets(dragged, draggingGroup) {
85
+ const nonDragged = this._allNodesAndGroups.filter(x => !dragged.includes(x));
86
+ return draggingGroup ? nonDragged.filter(x => x instanceof FGroupDirective) : nonDragged;
87
+ }
88
+ _toCanvasRect(rect) {
89
+ return RectExtensions.initialize(rect.x * this._canvasTransform.scale + this._canvasPosition.x, rect.y * this._canvasTransform.scale + this._canvasPosition.y, rect.width * this._canvasTransform.scale, rect.height * this._canvasTransform.scale);
90
+ }
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropToGroupPreparation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
92
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropToGroupPreparation });
93
+ };
94
+ DropToGroupPreparation = __decorate([
95
+ FExecutionRegister(DropToGroupPreparationRequest)
96
+ ], DropToGroupPreparation);
97
+ export { DropToGroupPreparation };
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropToGroupPreparation, decorators: [{
99
+ type: Injectable
100
+ }] });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC10by1ncm91cC1wcmVwYXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1kcm9wLXRvLWdyb3VwL2Ryb3AtdG8tZ3JvdXAtcHJlcGFyYXRpb24vZHJvcC10by1ncm91cC1wcmVwYXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxTQUFTLEVBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLEVBQWlDLGVBQWUsRUFBRSxjQUFjLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDM0YsT0FBTyxFQUFDLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLHFCQUFxQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0csT0FBTyxFQUFDLGVBQWUsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLHNDQUFzQyxDQUFDOztBQUlsRixJQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUFzQjtJQUdoQixTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lB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Q0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RSxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQzNGLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBVztRQUMvQixPQUFPLGNBQWMsQ0FBQyxVQUFVLENBQzlCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsRUFDN0QsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUM3RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FDMUMsQ0FBQztJQUNKLENBQUM7d0dBM0dVLHNCQUFzQjs0R0FBdEIsc0JBQXNCOztBQUF0QixzQkFBc0I7SUFEbEMsa0JBQWtCLENBQUMsNkJBQTZCLENBQUM7R0FDckMsc0JBQXNCLENBNEdsQzs7NEZBNUdZLHNCQUFzQjtrQkFGbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Ryb3BUb0dyb3VwUHJlcGFyYXRpb25SZXF1ZXN0fSBmcm9tICcuL2Ryb3AtdG8tZ3JvdXAtcHJlcGFyYXRpb24tcmVxdWVzdCc7XG5pbXBvcnQge0ZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9ufSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7RkNvbXBvbmVudHNTdG9yZX0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7SU5vZGVXaXRoUmVjdH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7SVBvaW50LCBJUmVjdCwgSVRyYW5zZm9ybU1vZGVsLCBQb2ludEV4dGVuc2lvbnMsIFJlY3RFeHRlbnNpb25zfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7R2V0Q2hpbGROb2RlSWRzUmVxdWVzdCwgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdCwgR2V0UGFyZW50Tm9kZXNSZXF1ZXN0fSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHtGR3JvdXBEaXJlY3RpdmUsIEZOb2RlQmFzZX0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7RkRyYWdnYWJsZURhdGFDb250ZXh0fSBmcm9tICcuLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtGTm9kZURyb3BUb0dyb3VwRHJhZ0hhbmRsZXJ9IGZyb20gJy4uL2Ytbm9kZS1kcm9wLXRvLWdyb3VwLmRyYWctaGFuZGxlcic7XG5pbXBvcnQge01vdmVTdW1tYXJ5RHJhZ0hhbmRsZXJ9IGZyb20gJy4uLy4uL2Ytbm9kZS1tb3ZlJztcbmltcG9ydCB7RkV4dGVybmFsSXRlbURyYWdIYW5kbGVyfSBmcm9tIFwiLi4vLi4vLi4vZi1leHRlcm5hbC1pdGVtXCI7XG5pbXBvcnQge1NvcnRDb250YWluZXJzRm9yRHJvcEJ5TGF5ZXJSZXF1ZXN0fSBmcm9tIFwiLi4vc29ydC1jb250YWluZXJzLWZvci1kcm9wLWJ5LWxheWVyXCI7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoRHJvcFRvR3JvdXBQcmVwYXJhdGlvblJlcXVlc3QpXG5leHBvcnQgY2xhc3MgRHJvcFRvR3JvdXBQcmVwYXJhdGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248RHJvcFRvR3JvdXBQcmVwYXJhdGlvblJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kcmFnQ29udGV4dCA9IGluamVjdChGRHJhZ2dhYmxlRGF0YUNvbnRleHQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHByaXZhdGUgZ2V0IF9hbGxOb2Rlc0FuZEdyb3VwcygpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZOb2RlcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9jYW52YXNUcmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2NhbnZhc1Bvc2l0aW9uKCk6IElQb2ludCB7XG4gICAgcmV0dXJuIFBvaW50RXh0ZW5zaW9ucy5zdW0odGhpcy5fY2FudmFzVHJhbnNmb3JtLnBvc2l0aW9uLCB0aGlzLl9jYW52YXNUcmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24pXG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHtldmVudH06IERyb3BUb0dyb3VwUHJlcGFyYXRpb25SZXF1ZXN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9jYW5QcmVwYXJlRHJvcFRvR3JvdXAoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBfZHJhZ1RhcmdldCA9IHRoaXMuX2FsbE5vZGVzQW5kR3JvdXBzLmZpbmQoKHgpID0+XG4gICAgICB4LmlzQ29udGFpbnMoZXZlbnQudGFyZ2V0RWxlbWVudClcbiAgICApO1xuXG4gICAgaWYgKCFfZHJhZ1RhcmdldCAmJiAhdGhpcy5faXNFeHRlcm5hbEl0ZW1EcmFnSGFuZGxlcigpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RyYWcgdGFyZ2V0IG5vZGUgbm90IGZvdW5kJyk7XG4gICAgfVxuXG4gICAgbGV0IHRhcmdldFJlY3RzID0gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTxJTm9kZVdpdGhSZWN0W10+KFxuICAgICAgbmV3IFNvcnRDb250YWluZXJzRm9yRHJvcEJ5TGF5ZXJSZXF1ZXN0KHRoaXMuX2NvbGxlY3RHcm91cGluZ1RhcmdldFJlY3RzKCkpXG4gICAgKTtcblxuICAgIGlmIChfZHJhZ1RhcmdldCkge1xuICAgICAgLy8gV2UgY2FuIGRyb3AgaXRlbXMgb25seSB0byBjaGlsZHJlbiBvZiBkaXJlY3QgcGFyZW50XG4gICAgICBjb25zdCBjaGlsZElkcyA9IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8c3RyaW5nW10+KG5ldyBHZXRDaGlsZE5vZGVJZHNSZXF1ZXN0KF9kcmFnVGFyZ2V0LmZQYXJlbnRJZCgpKSk7XG4gICAgICBpZiAoY2hpbGRJZHMubGVuZ3RoKSB7XG4gICAgICAgIHRhcmdldFJlY3RzID0gdGFyZ2V0UmVjdHMuZmlsdGVyKHQgPT4gY2hpbGRJZHMuaW5jbHVkZXModC5ub2RlLmZJZCgpKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fZHJhZ0NvbnRleHQuZHJhZ2dhYmxlSXRlbXMucHVzaChuZXcgRk5vZGVEcm9wVG9Hcm91cERyYWdIYW5kbGVyKFxuICAgICAgdGhpcy5faW5qZWN0b3IsXG4gICAgICB0YXJnZXRSZWN0c1xuICAgICkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FuUHJlcGFyZURyb3BUb0dyb3VwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc05vZGVEcmFnSGFuZGxlcigpIHx8IHRoaXMuX2lzRXh0ZXJuYWxJdGVtRHJhZ0hhbmRsZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzTm9kZURyYWdIYW5kbGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kcmFnQ29udGV4dC5kcmFnZ2FibGVJdGVtc1xuICAgICAgLnNvbWUoKHgpID0+IHggaW5zdGFuY2VvZiBNb3ZlU3VtbWFyeURyYWdIYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzRXh0ZXJuYWxJdGVtRHJhZ0hhbmRsZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RyYWdDb250ZXh0LmRyYWdnYWJsZUl0ZW1zXG4gICAgICAuc29tZSgoeCkgPT4geCBpbnN0YW5jZW9mIEZFeHRlcm5hbEl0ZW1EcmFnSGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIF9jb2xsZWN0R3JvdXBpbmdUYXJnZXRSZWN0cygpOiBJTm9kZVdpdGhSZWN0W10ge1xuICAgIGNvbnN0IGRyYWdnZWQgPSB0aGlzLl9kcmFnZ2VkTm9kZXMoKTtcbiAgICBjb25zdCBkcmFnZ2luZ0dyb3VwID0gZHJhZ2dlZC5zb21lKCh4KSA9PiB4IGluc3RhbmNlb2YgRkdyb3VwRGlyZWN0aXZlKTtcblxuICAgIGNvbnN0IGRyYWdnZWROb2RlcyA9IHRoaXMuX2RyYWdnZWROb2Rlc1dpdGhQYXJlbnRzKGRyYWdnZWQpO1xuXG4gICAgcmV0dXJuIHRoaXMuX2VsaWdpYmxlVGFyZ2V0cyhkcmFnZ2VkTm9kZXMsIGRyYWdnaW5nR3JvdXApLm1hcCgobm9kZSkgPT4ge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SVJlY3Q+KG5ldyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0KG5vZGUuaG9zdEVsZW1lbnQpKTtcbiAgICAgIHJldHVybiB7bm9kZSwgcmVjdDogdGhpcy5fdG9DYW52YXNSZWN0KHJlY3QpfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2RyYWdnZWROb2RlcygpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2RyYWdDb250ZXh0LmRyYWdnYWJsZUl0ZW1zXG4gICAgICAuZmluZCgoeCkgPT4geCBpbnN0YW5jZW9mIE1vdmVTdW1tYXJ5RHJhZ0hhbmRsZXIpXG4gICAgICA/LmFsbERyYWdnZWROb2RlSGFuZGxlcnMubWFwKCh4KSA9PiB4Lm5vZGVPckdyb3VwKSB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGRyYWdnZWQgbm9kZXMgZXh0ZW5kZWQgd2l0aCBhbGwgb2YgdGhlaXIgcGFyZW50IG5vZGVzLlxuICAgKlxuICAgKiBUaGlzIGVuc3VyZXMgdGhhdCBwYXJlbnQgbm9kZXMgYXJlIGV4Y2x1ZGVkIGZyb20gdGhlIHBvdGVudGlhbCBkcm9wIHRhcmdldHMsXG4gICAqIHNpbmNlIHRoZXkgYWxyZWFkeSBhY3QgYXMgY29udGFpbmVycyBmb3IgdGhlIGRyYWdnZWQgZWxlbWVudHMuXG4gICAqL1xuICBwcml2YXRlIF9kcmFnZ2VkTm9kZXNXaXRoUGFyZW50cyhub2RlczogRk5vZGVCYXNlW10pOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIG5vZGVzLnJlZHVjZSgocmVzdWx0OiBGTm9kZUJhc2VbXSwgeDogRk5vZGVCYXNlKSA9PiB7XG4gICAgICByZXN1bHQucHVzaCh4LCAuLi50aGlzLl9tZWRpYXRvci5leGVjdXRlPEZOb2RlQmFzZVtdPihuZXcgR2V0UGFyZW50Tm9kZXNSZXF1ZXN0KHgpKSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VsaWdpYmxlVGFyZ2V0cyhkcmFnZ2VkOiBGTm9kZUJhc2VbXSwgZHJhZ2dpbmdHcm91cDogYm9vbGVhbik6IEZOb2RlQmFzZVtdIHtcbiAgICBjb25zdCBub25EcmFnZ2VkID0gdGhpcy5fYWxsTm9kZXNBbmRHcm91cHMuZmlsdGVyKHggPT4gIWRyYWdnZWQuaW5jbHVkZXMoeCkpO1xuICAgIHJldHVybiBkcmFnZ2luZ0dyb3VwID8gbm9uRHJhZ2dlZC5maWx0ZXIoeCA9PiB4IGluc3RhbmNlb2YgRkdyb3VwRGlyZWN0aXZlKSA6IG5vbkRyYWdnZWQ7XG4gIH1cblxuICBwcml2YXRlIF90b0NhbnZhc1JlY3QocmVjdDogSVJlY3QpOiBJUmVjdCB7XG4gICAgcmV0dXJuIFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoXG4gICAgICByZWN0LnggKiB0aGlzLl9jYW52YXNUcmFuc2Zvcm0uc2NhbGUgKyB0aGlzLl9jYW52YXNQb3NpdGlvbi54LFxuICAgICAgcmVjdC55ICogdGhpcy5fY2FudmFzVHJhbnNmb3JtLnNjYWxlICsgdGhpcy5fY2FudmFzUG9zaXRpb24ueSxcbiAgICAgIHJlY3Qud2lkdGggKiB0aGlzLl9jYW52YXNUcmFuc2Zvcm0uc2NhbGUsXG4gICAgICByZWN0LmhlaWdodCAqIHRoaXMuX2NhbnZhc1RyYW5zZm9ybS5zY2FsZVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
- export * from './f-node-drop-to-group-preparation.execution';
2
- export * from './f-node-drop-to-group-preparation.request';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtZHJvcC10by1ncm91cC9kcm9wLXRvLWdyb3VwLXByZXBhcmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOENBQThDLENBQUM7QUFFN0QsY0FBYyw0Q0FBNEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZi1ub2RlLWRyb3AtdG8tZ3JvdXAtcHJlcGFyYXRpb24uZXhlY3V0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLW5vZGUtZHJvcC10by1ncm91cC1wcmVwYXJhdGlvbi5yZXF1ZXN0JztcbiJdfQ==
1
+ export * from './drop-to-group-preparation';
2
+ export * from './drop-to-group-preparation-request';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtZHJvcC10by1ncm91cC9kcm9wLXRvLWdyb3VwLXByZXBhcmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJvcC10by1ncm91cC1wcmVwYXJhdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHJvcC10by1ncm91cC1wcmVwYXJhdGlvbi1yZXF1ZXN0JztcbiJdfQ==