@foblex/flow 18.1.2 → 18.2.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 (1057) hide show
  1. package/README.md +80 -34
  2. package/domain/f-canvas/add-canvas-to-store/add-canvas-to-store-request.d.ts +2 -2
  3. package/domain/f-canvas/add-canvas-to-store/add-canvas-to-store.d.ts +12 -0
  4. package/domain/f-canvas/add-canvas-to-store/index.d.ts +1 -1
  5. package/domain/f-canvas/center-group-or-node/center-group-or-node.d.ts +17 -0
  6. package/domain/f-canvas/center-group-or-node/index.d.ts +1 -1
  7. package/domain/f-canvas/fit-to-flow/fit-to-flow-request.d.ts +2 -2
  8. package/domain/f-canvas/fit-to-flow/fit-to-flow.d.ts +17 -0
  9. package/domain/f-canvas/fit-to-flow/index.d.ts +1 -1
  10. package/domain/f-canvas/index.d.ts +0 -1
  11. package/domain/f-canvas/input-canvas-position/index.d.ts +1 -1
  12. package/domain/f-canvas/input-canvas-position/input-canvas-position-request.d.ts +2 -2
  13. package/domain/f-canvas/input-canvas-position/input-canvas-position.d.ts +13 -0
  14. package/domain/f-canvas/input-canvas-scale/index.d.ts +1 -1
  15. package/domain/f-canvas/input-canvas-scale/input-canvas-scale.d.ts +13 -0
  16. package/domain/f-canvas/providers.d.ts +11 -12
  17. package/domain/f-canvas/redraw-canvas-with-animation/index.d.ts +1 -1
  18. package/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation.d.ts +17 -0
  19. package/domain/f-canvas/remove-canvas-from-store/index.d.ts +1 -1
  20. package/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store.d.ts +12 -0
  21. package/domain/f-canvas/reset-scale/index.d.ts +1 -1
  22. package/domain/f-canvas/reset-scale/reset-scale.d.ts +13 -0
  23. package/domain/f-canvas/reset-scale-and-center/index.d.ts +1 -1
  24. package/domain/f-canvas/reset-scale-and-center/reset-scale-and-center-request.d.ts +1 -1
  25. package/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.d.ts +17 -0
  26. package/domain/f-canvas/update-scale/index.d.ts +1 -1
  27. package/domain/f-canvas/update-scale/update-scale-request.d.ts +2 -2
  28. package/domain/f-canvas/update-scale/update-scale.d.ts +14 -0
  29. package/domain/f-connection/redraw-connections/redraw-connections.d.ts +17 -2
  30. package/domain/f-connectors/add-connector-to-store/add-connector-to-store.d.ts +2 -0
  31. package/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.d.ts +30 -0
  32. package/domain/f-connectors/find-connectable-connector-using-priority-and-position/index.d.ts +2 -2
  33. package/domain/f-connectors/providers.d.ts +2 -2
  34. package/domain/f-connectors/remove-connector-from-store/remove-connector-from-store.d.ts +2 -0
  35. package/domain/f-draggable/add-dnd-to-store/add-dnd-to-store.d.ts +12 -0
  36. package/domain/f-draggable/add-dnd-to-store/index.d.ts +1 -1
  37. package/domain/f-draggable/initialize-drag-sequence/index.d.ts +1 -1
  38. package/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.d.ts +12 -0
  39. package/domain/f-draggable/is-drag-started/is-drag-started.d.ts +1 -1
  40. package/domain/f-draggable/on-pointer-move/index.d.ts +1 -1
  41. package/domain/f-draggable/on-pointer-move/on-pointer-move.d.ts +19 -0
  42. package/domain/f-draggable/prepare-drag-sequence/index.d.ts +1 -1
  43. package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.d.ts +14 -0
  44. package/domain/f-draggable/providers.d.ts +6 -6
  45. package/domain/f-draggable/remove-dnd-from-store/index.d.ts +1 -1
  46. package/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store.d.ts +12 -0
  47. package/domain/f-flow/add-flow-to-store/add-flow-to-store.d.ts +12 -0
  48. package/domain/f-flow/add-flow-to-store/index.d.ts +1 -1
  49. package/domain/f-flow/get-flow/get-flow.d.ts +13 -0
  50. package/domain/f-flow/get-flow/index.d.ts +1 -1
  51. package/domain/f-flow/providers.d.ts +4 -4
  52. package/domain/f-flow/remove-flow-from-store/index.d.ts +1 -1
  53. package/domain/f-flow/remove-flow-from-store/remove-flow-from-store.d.ts +12 -0
  54. package/domain/f-node/add-node-to-store/add-node-to-store.d.ts +1 -0
  55. package/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.d.ts +2 -2
  56. package/domain/f-node/calculate-nodes-bounding-box/index.d.ts +1 -1
  57. package/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.d.ts +3 -1
  58. package/domain/f-node/calculate-nodes-bounding-box-normalized-position/index.d.ts +1 -1
  59. package/domain/f-node/get-child-node-ids/get-child-node-ids.d.ts +1 -1
  60. package/domain/f-node/get-child-node-ids/index.d.ts +1 -1
  61. package/domain/f-node/get-node-padding/get-node-padding.d.ts +8 -3
  62. package/domain/f-node/get-node-padding/index.d.ts +1 -1
  63. package/domain/f-node/get-parent-nodes/get-parent-nodes.d.ts +1 -1
  64. package/domain/f-node/get-parent-nodes/index.d.ts +1 -1
  65. package/domain/f-node/remove-node-from-store/remove-node-from-store.d.ts +1 -0
  66. package/domain/f-selection/calculate-selectable-items/calculate-selectable-items.d.ts +0 -1
  67. package/domain/f-selection/clear-selection/clear-selection.d.ts +12 -0
  68. package/domain/f-selection/clear-selection/index.d.ts +2 -2
  69. package/domain/f-selection/get-current-selection/get-current-selection.d.ts +16 -0
  70. package/domain/f-selection/get-current-selection/index.d.ts +2 -2
  71. package/domain/f-selection/index.d.ts +1 -1
  72. package/domain/f-selection/providers.d.ts +4 -4
  73. package/domain/f-selection/select-items/index.d.ts +2 -0
  74. package/domain/f-selection/select-items/select.d.ts +13 -0
  75. package/domain/f-zoom/set-zoom/set-zoom-request.d.ts +4 -4
  76. package/domain/f-zoom/set-zoom/set-zoom.d.ts +3 -0
  77. package/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups-request.d.ts +5 -0
  78. package/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.d.ts +15 -0
  79. package/domain/get-deep-children-nodes-and-groups/index.d.ts +2 -2
  80. package/domain/get-normalized-connector-rect/get-normalized-connector-rect-request.d.ts +3 -2
  81. package/domain/get-normalized-connector-rect/get-normalized-connector-rect.d.ts +26 -0
  82. package/domain/get-normalized-connector-rect/index.d.ts +1 -1
  83. package/domain/get-normalized-element-rect/get-normalized-element-rect.d.ts +22 -0
  84. package/domain/get-normalized-element-rect/index.d.ts +1 -1
  85. package/domain/get-normalized-point/get-normalized-point-request.d.ts +1 -1
  86. package/domain/get-normalized-point/get-normalized-point.d.ts +15 -0
  87. package/domain/get-normalized-point/index.d.ts +1 -1
  88. package/domain/index.d.ts +1 -2
  89. package/domain/minimap/f-minimap-state.d.ts +7 -0
  90. package/domain/minimap/index.d.ts +5 -0
  91. package/domain/minimap/minimap-calculate-view-rect/index.d.ts +2 -0
  92. package/domain/minimap/minimap-calculate-view-rect/minimap-calculate-view-rect-request.d.ts +3 -0
  93. package/domain/minimap/minimap-calculate-view-rect/minimap-calculate-view-rect.d.ts +10 -0
  94. package/domain/minimap/minimap-calculate-viewport/i-minimap-viewport.d.ts +5 -0
  95. package/domain/minimap/minimap-calculate-viewport/index.d.ts +3 -0
  96. package/domain/minimap/minimap-calculate-viewport/minimap-calculate-viewport-request.d.ts +6 -0
  97. package/domain/minimap/minimap-calculate-viewport/minimap-calculate-viewport.d.ts +17 -0
  98. package/domain/minimap/minimap-draw-nodes/index.d.ts +2 -0
  99. package/domain/minimap/minimap-draw-nodes/minimap-draw-nodes.d.ts +13 -0
  100. package/domain/minimap/providers.d.ts +4 -0
  101. package/domain/providers.d.ts +6 -7
  102. package/domain/sort-item-layers/sort-item-layers.d.ts +1 -1
  103. package/domain/sort-item-layers/sort-items-by-parent/index.d.ts +2 -2
  104. package/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent-request.d.ts +5 -0
  105. package/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.d.ts +20 -0
  106. package/domain/sort-item-layers/sort-node-layers-by-groups/index.d.ts +2 -2
  107. package/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.d.ts +24 -0
  108. package/esm2022/domain/f-canvas/add-canvas-to-store/add-canvas-to-store-request.mjs +4 -4
  109. package/esm2022/domain/f-canvas/add-canvas-to-store/add-canvas-to-store.mjs +25 -0
  110. package/esm2022/domain/f-canvas/add-canvas-to-store/index.mjs +2 -2
  111. package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node.mjs +46 -0
  112. package/esm2022/domain/f-canvas/center-group-or-node/index.mjs +2 -2
  113. package/esm2022/domain/f-canvas/fit-to-flow/fit-to-flow-request.mjs +1 -1
  114. package/esm2022/domain/f-canvas/fit-to-flow/fit-to-flow.mjs +58 -0
  115. package/esm2022/domain/f-canvas/fit-to-flow/index.mjs +2 -2
  116. package/esm2022/domain/f-canvas/index.mjs +1 -2
  117. package/esm2022/domain/f-canvas/input-canvas-position/index.mjs +2 -2
  118. package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position-request.mjs +1 -1
  119. package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position.mjs +36 -0
  120. package/esm2022/domain/f-canvas/input-canvas-scale/index.mjs +2 -2
  121. package/esm2022/domain/f-canvas/input-canvas-scale/input-canvas-scale.mjs +30 -0
  122. package/esm2022/domain/f-canvas/providers.mjs +21 -23
  123. package/esm2022/domain/f-canvas/redraw-canvas-with-animation/index.mjs +2 -2
  124. package/esm2022/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation.mjs +40 -0
  125. package/esm2022/domain/f-canvas/remove-canvas-from-store/index.mjs +2 -2
  126. package/esm2022/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store.mjs +25 -0
  127. package/esm2022/domain/f-canvas/reset-scale/index.mjs +2 -2
  128. package/esm2022/domain/f-canvas/reset-scale/reset-scale.mjs +30 -0
  129. package/esm2022/domain/f-canvas/reset-scale-and-center/index.mjs +2 -2
  130. package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center-request.mjs +1 -1
  131. package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.mjs +50 -0
  132. package/esm2022/domain/f-canvas/update-scale/index.mjs +2 -2
  133. package/esm2022/domain/f-canvas/update-scale/update-scale-request.mjs +1 -1
  134. package/esm2022/domain/f-canvas/update-scale/update-scale.mjs +37 -0
  135. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.mjs +2 -2
  136. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.mjs +2 -2
  137. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +173 -17
  138. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.mjs +2 -2
  139. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.mjs +2 -2
  140. package/esm2022/domain/f-connectors/add-connector-to-store/add-connector-to-store.mjs +13 -5
  141. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position-request.mjs +10 -0
  142. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.mjs +98 -0
  143. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/index.mjs +3 -3
  144. package/esm2022/domain/f-connectors/get-connector-rect-reference/get-connector-rect-reference.mjs +1 -1
  145. package/esm2022/domain/f-connectors/providers.mjs +3 -3
  146. package/esm2022/domain/f-connectors/remove-connector-from-store/remove-connector-from-store.mjs +13 -5
  147. package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store.mjs +25 -0
  148. package/esm2022/domain/f-draggable/add-dnd-to-store/index.mjs +2 -2
  149. package/esm2022/domain/f-draggable/initialize-drag-sequence/index.mjs +2 -2
  150. package/esm2022/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.mjs +25 -0
  151. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started.mjs +2 -2
  152. package/esm2022/domain/f-draggable/on-pointer-move/index.mjs +2 -2
  153. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.mjs +46 -0
  154. package/esm2022/domain/f-draggable/prepare-drag-sequence/index.mjs +2 -2
  155. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.mjs +30 -0
  156. package/esm2022/domain/f-draggable/providers.mjs +11 -11
  157. package/esm2022/domain/f-draggable/remove-dnd-from-store/index.mjs +2 -2
  158. package/esm2022/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store.mjs +25 -0
  159. package/esm2022/domain/f-flow/add-flow-to-store/add-flow-to-store.mjs +25 -0
  160. package/esm2022/domain/f-flow/add-flow-to-store/index.mjs +2 -2
  161. package/esm2022/domain/f-flow/get-flow/get-flow.mjs +29 -0
  162. package/esm2022/domain/f-flow/get-flow/index.mjs +2 -2
  163. package/esm2022/domain/f-flow/providers.mjs +7 -7
  164. package/esm2022/domain/f-flow/remove-flow-from-store/index.mjs +2 -2
  165. package/esm2022/domain/f-flow/remove-flow-from-store/remove-flow-from-store.mjs +25 -0
  166. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.mjs +6 -3
  167. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +1 -1
  168. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box-request.mjs +4 -0
  169. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.mjs +3 -3
  170. package/esm2022/domain/f-node/calculate-nodes-bounding-box/index.mjs +2 -2
  171. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position-request.mjs +8 -0
  172. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.mjs +17 -8
  173. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/index.mjs +2 -2
  174. package/esm2022/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups.mjs +2 -2
  175. package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids-request.mjs +8 -0
  176. package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.mjs +2 -2
  177. package/esm2022/domain/f-node/get-child-node-ids/index.mjs +2 -2
  178. package/esm2022/domain/f-node/get-node-padding/get-node-padding-request.mjs +10 -0
  179. package/esm2022/domain/f-node/get-node-padding/get-node-padding.mjs +6 -4
  180. package/esm2022/domain/f-node/get-node-padding/index.mjs +2 -2
  181. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes-request.mjs +8 -0
  182. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.mjs +2 -2
  183. package/esm2022/domain/f-node/get-parent-nodes/index.mjs +2 -2
  184. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.mjs +6 -3
  185. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +7 -6
  186. package/esm2022/domain/f-selection/calculate-selectable-items/calculate-selectable-items.mjs +3 -7
  187. package/esm2022/domain/f-selection/clear-selection/clear-selection-request.mjs +4 -0
  188. package/esm2022/domain/f-selection/clear-selection/clear-selection.mjs +27 -0
  189. package/esm2022/domain/f-selection/clear-selection/index.mjs +3 -3
  190. package/esm2022/domain/f-selection/get-current-selection/get-current-selection-request.mjs +4 -0
  191. package/esm2022/domain/f-selection/get-current-selection/get-current-selection.mjs +45 -0
  192. package/esm2022/domain/f-selection/get-current-selection/index.mjs +3 -3
  193. package/esm2022/domain/f-selection/index.mjs +2 -2
  194. package/esm2022/domain/f-selection/providers.mjs +7 -7
  195. package/esm2022/domain/f-selection/select-items/index.mjs +3 -0
  196. package/esm2022/domain/f-selection/select-items/select-request.mjs +12 -0
  197. package/esm2022/domain/f-selection/select-items/select.mjs +45 -0
  198. package/esm2022/domain/f-zoom/set-zoom/set-zoom-request.mjs +1 -1
  199. package/esm2022/domain/f-zoom/set-zoom/set-zoom.mjs +62 -4
  200. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups-request.mjs +8 -0
  201. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.mjs +38 -0
  202. package/esm2022/domain/get-deep-children-nodes-and-groups/index.mjs +3 -3
  203. package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect-request.mjs +4 -2
  204. package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect.mjs +71 -0
  205. package/esm2022/domain/get-normalized-connector-rect/index.mjs +2 -2
  206. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.mjs +60 -0
  207. package/esm2022/domain/get-normalized-element-rect/index.mjs +2 -2
  208. package/esm2022/domain/get-normalized-point/get-normalized-point-request.mjs +1 -1
  209. package/esm2022/domain/get-normalized-point/get-normalized-point.mjs +28 -0
  210. package/esm2022/domain/get-normalized-point/index.mjs +2 -2
  211. package/esm2022/domain/index.mjs +2 -3
  212. package/esm2022/domain/minimap/f-minimap-state.mjs +12 -0
  213. package/esm2022/domain/minimap/index.mjs +6 -0
  214. package/esm2022/domain/minimap/minimap-calculate-view-rect/index.mjs +3 -0
  215. package/esm2022/domain/minimap/minimap-calculate-view-rect/minimap-calculate-view-rect-request.mjs +4 -0
  216. package/esm2022/domain/minimap/minimap-calculate-view-rect/minimap-calculate-view-rect.mjs +32 -0
  217. package/esm2022/domain/minimap/minimap-calculate-viewport/i-minimap-viewport.mjs +2 -0
  218. package/esm2022/domain/minimap/minimap-calculate-viewport/index.mjs +4 -0
  219. package/esm2022/domain/minimap/minimap-calculate-viewport/minimap-calculate-viewport-request.mjs +10 -0
  220. package/esm2022/domain/minimap/minimap-calculate-viewport/minimap-calculate-viewport.mjs +62 -0
  221. package/esm2022/domain/minimap/minimap-draw-nodes/index.mjs +3 -0
  222. package/esm2022/domain/minimap/minimap-draw-nodes/minimap-draw-nodes-request.mjs +4 -0
  223. package/esm2022/domain/minimap/minimap-draw-nodes/minimap-draw-nodes.mjs +52 -0
  224. package/esm2022/domain/minimap/providers.mjs +9 -0
  225. package/esm2022/domain/providers.mjs +16 -14
  226. package/esm2022/domain/sort-item-layers/sort-item-layers.mjs +9 -5
  227. package/esm2022/domain/sort-item-layers/sort-items-by-parent/index.mjs +3 -3
  228. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent-request.mjs +8 -0
  229. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.mjs +124 -0
  230. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/index.mjs +3 -3
  231. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers-request.mjs +4 -0
  232. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.mjs +65 -0
  233. package/esm2022/f-cache/config/f-cache-options.mjs +20 -0
  234. package/esm2022/f-cache/config/index.mjs +2 -0
  235. package/esm2022/f-cache/features/f-cache-connectors/index.mjs +3 -0
  236. package/esm2022/f-cache/features/f-cache-connectors/register-connector/index.mjs +3 -0
  237. package/esm2022/f-cache/features/f-cache-connectors/register-connector/register-connector-request.mjs +14 -0
  238. package/esm2022/f-cache/features/f-cache-connectors/register-connector/register-connector.mjs +51 -0
  239. package/esm2022/f-cache/features/f-cache-connectors/unregister-connector/index.mjs +3 -0
  240. package/esm2022/f-cache/features/f-cache-connectors/unregister-connector/unregister-connector-request.mjs +10 -0
  241. package/esm2022/f-cache/features/f-cache-connectors/unregister-connector/unregister-connector.mjs +49 -0
  242. package/esm2022/f-cache/features/f-cache-nodes/index.mjs +4 -0
  243. package/esm2022/f-cache/features/f-cache-nodes/invalidate-node/index.mjs +3 -0
  244. package/esm2022/f-cache/features/f-cache-nodes/invalidate-node/invalidate-node-request.mjs +10 -0
  245. package/esm2022/f-cache/features/f-cache-nodes/invalidate-node/invalidate-node.mjs +41 -0
  246. package/esm2022/f-cache/features/f-cache-nodes/register-node/index.mjs +3 -0
  247. package/esm2022/f-cache/features/f-cache-nodes/register-node/register-node-request.mjs +12 -0
  248. package/esm2022/f-cache/features/f-cache-nodes/register-node/register-node.mjs +30 -0
  249. package/esm2022/f-cache/features/f-cache-nodes/unregister-node/index.mjs +3 -0
  250. package/esm2022/f-cache/features/f-cache-nodes/unregister-node/unregister-node-request.mjs +8 -0
  251. package/esm2022/f-cache/features/f-cache-nodes/unregister-node/unregister-node.mjs +43 -0
  252. package/esm2022/f-cache/features/f-cache-rects/get-cached-rect/get-cached-rect-request.mjs +8 -0
  253. package/esm2022/f-cache/features/f-cache-rects/get-cached-rect/get-cached-rect.mjs +38 -0
  254. package/esm2022/f-cache/features/f-cache-rects/get-cached-rect/index.mjs +3 -0
  255. package/esm2022/f-cache/features/f-cache-rects/index.mjs +5 -0
  256. package/esm2022/f-cache/features/f-cache-rects/set-connector-rect/index.mjs +3 -0
  257. package/esm2022/f-cache/features/f-cache-rects/set-connector-rect/set-connector-rect-request.mjs +12 -0
  258. package/esm2022/f-cache/features/f-cache-rects/set-connector-rect/set-connector-rect.mjs +33 -0
  259. package/esm2022/f-cache/features/f-cache-rects/set-node-rect/index.mjs +3 -0
  260. package/esm2022/f-cache/features/f-cache-rects/set-node-rect/set-node-rect-request.mjs +10 -0
  261. package/esm2022/f-cache/features/f-cache-rects/set-node-rect/set-node-rect.mjs +64 -0
  262. package/esm2022/f-cache/features/f-cache-rects/update-rect-by-element/index.mjs +3 -0
  263. package/esm2022/f-cache/features/f-cache-rects/update-rect-by-element/update-rect-by-element-request.mjs +10 -0
  264. package/esm2022/f-cache/features/f-cache-rects/update-rect-by-element/update-rect-by-element.mjs +42 -0
  265. package/esm2022/f-cache/features/index.mjs +4 -0
  266. package/esm2022/f-cache/index.mjs +5 -0
  267. package/esm2022/f-cache/model/f-cache-connector-key.mjs +6 -0
  268. package/esm2022/f-cache/model/f-cache-connector.mjs +17 -0
  269. package/esm2022/f-cache/model/f-cache-node.mjs +13 -0
  270. package/esm2022/f-cache/model/f-cache.mjs +15 -0
  271. package/esm2022/f-cache/model/i-f-cache-node-ref.mjs +2 -0
  272. package/esm2022/f-cache/model/index.mjs +6 -0
  273. package/esm2022/f-cache/providers.mjs +15 -0
  274. package/esm2022/f-canvas/f-canvas.component.mjs +9 -7
  275. package/esm2022/f-connection/f-connection/f-connection.component.mjs +3 -3
  276. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +3 -3
  277. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +3 -3
  278. package/esm2022/f-connection-v2/components/connection-content/f-connection-content.mjs +3 -3
  279. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-content-place.mjs +3 -3
  280. package/esm2022/f-connection-v2/components/connection-waypoints/f-connection-waypoints.mjs +3 -3
  281. package/esm2022/f-connection-worker/features/calculate-connection-worker-connector-rect/calculate-connection-worker-connector-rect-request.mjs +10 -0
  282. package/esm2022/f-connection-worker/features/calculate-connection-worker-connector-rect/calculate-connection-worker-connector-rect.mjs +31 -0
  283. package/esm2022/f-connection-worker/features/calculate-connection-worker-connector-rect/index.mjs +3 -0
  284. package/esm2022/f-connection-worker/features/calculate-connection-worker-payload-item/calculate-connection-worker-payload-item-request.mjs +10 -0
  285. package/esm2022/f-connection-worker/features/calculate-connection-worker-payload-item/calculate-connection-worker-payload-item.mjs +45 -0
  286. package/esm2022/f-connection-worker/features/calculate-connection-worker-payload-item/index.mjs +3 -0
  287. package/esm2022/f-connection-worker/features/calculate-connections-using-connection-worker/calculate-connections-using-connection-worker-request.mjs +10 -0
  288. package/esm2022/f-connection-worker/features/calculate-connections-using-connection-worker/calculate-connections-using-connection-worker.mjs +41 -0
  289. package/esm2022/f-connection-worker/features/calculate-connections-using-connection-worker/index.mjs +3 -0
  290. package/esm2022/f-connection-worker/features/connection-worker-run/connection-worker-run-request.mjs +8 -0
  291. package/esm2022/f-connection-worker/features/connection-worker-run/connection-worker-run.mjs +59 -0
  292. package/esm2022/f-connection-worker/features/connection-worker-run/index.mjs +3 -0
  293. package/esm2022/f-connection-worker/features/disable-connection-worker/disable-connection-worker-request.mjs +8 -0
  294. package/esm2022/f-connection-worker/features/disable-connection-worker/disable-connection-worker.mjs +25 -0
  295. package/esm2022/f-connection-worker/features/disable-connection-worker/index.mjs +3 -0
  296. package/esm2022/f-connection-worker/features/ensure-connection-worker/ensure-connection-worker-request.mjs +4 -0
  297. package/esm2022/f-connection-worker/features/ensure-connection-worker/ensure-connection-worker.mjs +61 -0
  298. package/esm2022/f-connection-worker/features/ensure-connection-worker/index.mjs +3 -0
  299. package/esm2022/f-connection-worker/features/handle-connection-worker-message/handle-connection-worker-message-request.mjs +8 -0
  300. package/esm2022/f-connection-worker/features/handle-connection-worker-message/handle-connection-worker-message.mjs +34 -0
  301. package/esm2022/f-connection-worker/features/handle-connection-worker-message/index.mjs +3 -0
  302. package/esm2022/f-connection-worker/features/index.mjs +13 -0
  303. package/esm2022/f-connection-worker/features/is-connection-worker-enabled/index.mjs +3 -0
  304. package/esm2022/f-connection-worker/features/is-connection-worker-enabled/is-connection-worker-enabled-request.mjs +4 -0
  305. package/esm2022/f-connection-worker/features/is-connection-worker-enabled/is-connection-worker-enabled.mjs +34 -0
  306. package/esm2022/f-connection-worker/features/reset-connection-worker-runtime/index.mjs +3 -0
  307. package/esm2022/f-connection-worker/features/reset-connection-worker-runtime/reset-connection-worker-runtime-request.mjs +8 -0
  308. package/esm2022/f-connection-worker/features/reset-connection-worker-runtime/reset-connection-worker-runtime.mjs +22 -0
  309. package/esm2022/f-connection-worker/features/resolve-connection-worker-connectors/index.mjs +3 -0
  310. package/esm2022/f-connection-worker/features/resolve-connection-worker-connectors/resolve-connection-worker-connectors-request.mjs +8 -0
  311. package/esm2022/f-connection-worker/features/resolve-connection-worker-connectors/resolve-connection-worker-connectors.mjs +27 -0
  312. package/esm2022/f-connection-worker/features/resolve-connection-worker-context/index.mjs +3 -0
  313. package/esm2022/f-connection-worker/features/resolve-connection-worker-context/resolve-connection-worker-context-request.mjs +10 -0
  314. package/esm2022/f-connection-worker/features/resolve-connection-worker-context/resolve-connection-worker-context.mjs +36 -0
  315. package/esm2022/f-connection-worker/features/should-use-connection-worker/index.mjs +3 -0
  316. package/esm2022/f-connection-worker/features/should-use-connection-worker/should-use-connection-worker-request.mjs +8 -0
  317. package/esm2022/f-connection-worker/features/should-use-connection-worker/should-use-connection-worker.mjs +22 -0
  318. package/esm2022/f-connection-worker/index.mjs +4 -0
  319. package/esm2022/f-connection-worker/model/f-connection-worker.mjs +23 -0
  320. package/esm2022/f-connection-worker/model/i-f-connection-worker-rect.mjs +2 -0
  321. package/esm2022/f-connection-worker/model/i-f-connection-worker-request-item.mjs +2 -0
  322. package/esm2022/f-connection-worker/model/i-f-connection-worker-response.mjs +2 -0
  323. package/esm2022/f-connection-worker/model/i-f-connection-worker-result-item.mjs +2 -0
  324. package/esm2022/f-connection-worker/model/index.mjs +7 -0
  325. package/esm2022/f-connection-worker/model/t-f-connection-worker-pending-request.mjs +2 -0
  326. package/esm2022/f-connection-worker/providers.mjs +18 -0
  327. package/esm2022/f-draggable/connection/drag-connection-waypoint/drag-connection-waypoint-preparation/drag-connection-waypoint-preparation.mjs +2 -2
  328. package/esm2022/f-draggable/connection/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.mjs +2 -2
  329. package/esm2022/f-draggable/domain/detect-connections-under-drag-node/detect-connections-under-drag-node.mjs +2 -2
  330. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect-request.mjs +8 -0
  331. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.mjs +67 -0
  332. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/index.mjs +3 -3
  333. package/esm2022/f-draggable/domain/is-array-has-parent-node/index.mjs +3 -3
  334. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node-request.mjs +10 -0
  335. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.mjs +26 -0
  336. package/esm2022/f-draggable/domain/providers.mjs +5 -5
  337. package/esm2022/f-draggable/drag-external-item/constraints/external-rect-constraint.mjs +46 -0
  338. package/esm2022/f-draggable/drag-external-item/constraints/index.mjs +2 -0
  339. package/esm2022/f-draggable/drag-external-item/drag-external-item-create-placeholder/drag-external-item-create-placeholder-request.mjs +8 -0
  340. package/esm2022/f-draggable/drag-external-item/drag-external-item-create-placeholder/drag-external-item-create-placeholder.mjs +42 -0
  341. package/esm2022/f-draggable/drag-external-item/drag-external-item-create-placeholder/index.mjs +3 -0
  342. package/esm2022/f-draggable/drag-external-item/drag-external-item-create-preview/drag-external-item-create-preview-request.mjs +8 -0
  343. package/esm2022/f-draggable/drag-external-item/drag-external-item-create-preview/drag-external-item-create-preview.mjs +53 -0
  344. package/esm2022/f-draggable/drag-external-item/drag-external-item-create-preview/index.mjs +3 -0
  345. package/esm2022/f-draggable/drag-external-item/drag-external-item-finalize/drag-external-item-finalize-request.mjs +8 -0
  346. package/esm2022/f-draggable/drag-external-item/drag-external-item-finalize/drag-external-item-finalize.mjs +75 -0
  347. package/esm2022/f-draggable/drag-external-item/drag-external-item-finalize/index.mjs +3 -0
  348. package/esm2022/f-draggable/drag-external-item/drag-external-item-handler/drag-external-item-handler.mjs +206 -0
  349. package/esm2022/f-draggable/drag-external-item/drag-external-item-handler/index.mjs +2 -0
  350. package/esm2022/f-draggable/drag-external-item/drag-external-item-preparation/drag-external-item-preparation-request.mjs +10 -0
  351. package/esm2022/f-draggable/drag-external-item/drag-external-item-preparation/drag-external-item-preparation.mjs +55 -0
  352. package/esm2022/f-draggable/drag-external-item/drag-external-item-preparation/index.mjs +3 -0
  353. package/esm2022/f-draggable/drag-external-item/f-create-node-event.mjs +35 -0
  354. package/esm2022/f-draggable/drag-external-item/f-drag-external-item-start-event-data.mjs +7 -0
  355. package/esm2022/f-draggable/drag-external-item/i-drag-external-item-drag-result.mjs +2 -0
  356. package/esm2022/f-draggable/drag-external-item/index.mjs +13 -0
  357. package/esm2022/f-draggable/drag-external-item/is-drag-external-item-handler.mjs +7 -0
  358. package/esm2022/f-draggable/drag-external-item/prevent-default-is-external-item/index.mjs +3 -0
  359. package/esm2022/f-draggable/drag-external-item/prevent-default-is-external-item/prevent-default-is-external-item-request.mjs +8 -0
  360. package/esm2022/f-draggable/drag-external-item/prevent-default-is-external-item/prevent-default-is-external-item.mjs +38 -0
  361. package/esm2022/f-draggable/drag-external-item/providers.mjs +13 -0
  362. package/esm2022/f-draggable/drag-minimap/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point-request.mjs +14 -0
  363. package/esm2022/f-draggable/drag-minimap/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.mjs +39 -0
  364. package/esm2022/f-draggable/drag-minimap/calculate-flow-point-from-minimap-point/index.mjs +3 -0
  365. package/esm2022/f-draggable/drag-minimap/drag-minimap-finalize/drag-minimap-finalize-request.mjs +8 -0
  366. package/esm2022/f-draggable/drag-minimap/drag-minimap-finalize/drag-minimap-finalize.mjs +30 -0
  367. package/esm2022/f-draggable/drag-minimap/drag-minimap-finalize/index.mjs +3 -0
  368. package/esm2022/f-draggable/drag-minimap/drag-minimap-handler/drag-minimap-handler.mjs +52 -0
  369. package/esm2022/f-draggable/drag-minimap/drag-minimap-handler/index.mjs +2 -0
  370. package/esm2022/f-draggable/drag-minimap/drag-minimap-preparation/drag-minimap-preparation-request.mjs +8 -0
  371. package/esm2022/f-draggable/drag-minimap/drag-minimap-preparation/drag-minimap-preparation.mjs +68 -0
  372. package/esm2022/f-draggable/drag-minimap/drag-minimap-preparation/index.mjs +3 -0
  373. package/esm2022/f-draggable/drag-minimap/index.mjs +7 -0
  374. package/esm2022/f-draggable/drag-minimap/is-drag-minimap-handler.mjs +7 -0
  375. package/esm2022/f-draggable/drag-minimap/providers.mjs +9 -0
  376. package/esm2022/f-draggable/drag-node/attach-drag-node-handler-from-selection/attach-drag-node-handler-from-selection.mjs +1 -1
  377. package/esm2022/f-draggable/drag-node/attach-drag-node-handler-from-selection/attach-soft-parent-connection-drag-handlers-to-node/attach-soft-parent-connection-drag-handlers-to-node-request.mjs +18 -0
  378. package/esm2022/f-draggable/drag-node/attach-drag-node-handler-from-selection/attach-soft-parent-connection-drag-handlers-to-node/attach-soft-parent-connection-drag-handlers-to-node.mjs +95 -0
  379. package/esm2022/f-draggable/drag-node/attach-drag-node-handler-from-selection/attach-soft-parent-connection-drag-handlers-to-node/index.mjs +3 -0
  380. package/esm2022/f-draggable/drag-node/attach-drag-node-handler-from-selection/create-drag-node-handler/create-drag-node-handler.mjs +23 -4
  381. package/esm2022/f-draggable/drag-node/attach-drag-node-handler-from-selection/index.mjs +2 -1
  382. package/esm2022/f-draggable/drag-node/attach-drag-node-handler-from-selection/providers.mjs +3 -1
  383. package/esm2022/f-draggable/drag-node/drag-node-dependent-connection-handlers/drag-node-connection-handler-base.mjs +7 -1
  384. package/esm2022/f-draggable/drag-node/drag-node-finalize/drag-node-finalize.mjs +3 -3
  385. package/esm2022/f-draggable/drag-node/drag-node-handler/drag-node-handler.mjs +5 -4
  386. package/esm2022/f-draggable/drag-node/drag-node-handler/drag-node-item-handler.mjs +49 -5
  387. package/esm2022/f-draggable/drag-node/drag-node-handler/i-soft-parent-connection-handlers.mjs +2 -0
  388. package/esm2022/f-draggable/drag-node/drag-node-handler/index.mjs +2 -1
  389. package/esm2022/f-draggable/drag-node/index.mjs +2 -1
  390. package/esm2022/f-draggable/drag-node/is-drag-node-handler.mjs +7 -0
  391. package/esm2022/f-draggable/drop-to-group/drop-to-group-handler/drop-to-group-handler.mjs +11 -9
  392. package/esm2022/f-draggable/drop-to-group/drop-to-group-preparation/drop-to-group-preparation.mjs +4 -15
  393. package/esm2022/f-draggable/f-draggable-base.mjs +1 -1
  394. package/esm2022/f-draggable/f-draggable.directive.mjs +16 -29
  395. package/esm2022/f-draggable/index.mjs +5 -4
  396. package/esm2022/f-draggable/infrastructure/drag-handler-injector.mjs +16 -1
  397. package/esm2022/f-draggable/pinch-to-zoom/index.mjs +3 -3
  398. package/esm2022/f-draggable/pinch-to-zoom/pinch-to-zoom-finalize/index.mjs +3 -0
  399. package/esm2022/f-draggable/pinch-to-zoom/pinch-to-zoom-finalize/pinch-to-zoom-finalize-request.mjs +8 -0
  400. package/esm2022/f-draggable/pinch-to-zoom/pinch-to-zoom-finalize/pinch-to-zoom-finalize.mjs +31 -0
  401. package/esm2022/f-draggable/pinch-to-zoom/pinch-to-zoom-preparation/index.mjs +3 -0
  402. package/esm2022/f-draggable/pinch-to-zoom/pinch-to-zoom-preparation/pinch-to-zoom-preparation-request.mjs +8 -0
  403. package/esm2022/f-draggable/pinch-to-zoom/pinch-to-zoom-preparation/pinch-to-zoom-preparation.mjs +47 -0
  404. package/esm2022/f-draggable/pinch-to-zoom/providers.mjs +3 -3
  405. package/esm2022/f-draggable/providers.mjs +7 -7
  406. package/esm2022/f-draggable/resize-node/apply-child-resize-constraints/apply-child-resize-constraints-request.mjs +10 -0
  407. package/esm2022/f-draggable/resize-node/apply-child-resize-constraints/apply-child-resize-constraints.mjs +57 -0
  408. package/esm2022/f-draggable/resize-node/apply-child-resize-constraints/index.mjs +3 -0
  409. package/esm2022/f-draggable/resize-node/apply-parent-resize-constraints/apply-parent-resize-constraints-request.mjs +10 -0
  410. package/esm2022/f-draggable/resize-node/apply-parent-resize-constraints/apply-parent-resize-constraints.mjs +150 -0
  411. package/esm2022/f-draggable/resize-node/apply-parent-resize-constraints/index.mjs +3 -0
  412. package/esm2022/f-draggable/resize-node/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference-request.mjs +14 -0
  413. package/esm2022/f-draggable/resize-node/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference.mjs +55 -0
  414. package/esm2022/f-draggable/resize-node/calculate-changed-rect-from-difference/index.mjs +3 -0
  415. package/esm2022/f-draggable/resize-node/calculate-direct-children-union-rect/calculate-direct-children-union-rect-request.mjs +10 -0
  416. package/esm2022/f-draggable/resize-node/calculate-direct-children-union-rect/calculate-direct-children-union-rect.mjs +38 -0
  417. package/esm2022/f-draggable/resize-node/calculate-direct-children-union-rect/index.mjs +3 -0
  418. package/esm2022/f-draggable/resize-node/calculate-resize-limits/calculate-resize-limits-request.mjs +10 -0
  419. package/esm2022/f-draggable/resize-node/calculate-resize-limits/calculate-resize-limits.mjs +69 -0
  420. package/esm2022/f-draggable/resize-node/calculate-resize-limits/index.mjs +3 -0
  421. package/esm2022/f-draggable/resize-node/constraint/i-resize-constraint.mjs +2 -0
  422. package/esm2022/f-draggable/resize-node/constraint/i-resize-limit.mjs +2 -0
  423. package/esm2022/f-draggable/resize-node/constraint/i-resize-limits.mjs +2 -0
  424. package/esm2022/f-draggable/resize-node/constraint/i-resize-overflow.mjs +2 -0
  425. package/esm2022/f-draggable/resize-node/constraint/index.mjs +6 -0
  426. package/esm2022/f-draggable/resize-node/constraint/resize-direction.mjs +12 -0
  427. package/esm2022/f-draggable/resize-node/f-resize-node-start-event-data.mjs +7 -0
  428. package/esm2022/f-draggable/resize-node/index.mjs +13 -0
  429. package/esm2022/f-draggable/resize-node/is-resize-node-handler.mjs +7 -0
  430. package/esm2022/f-draggable/resize-node/providers.mjs +19 -0
  431. package/esm2022/f-draggable/resize-node/resize-node-finalize/index.mjs +3 -0
  432. package/esm2022/f-draggable/resize-node/resize-node-finalize/resize-node-finalize-request.mjs +8 -0
  433. package/esm2022/f-draggable/resize-node/resize-node-finalize/resize-node-finalize.mjs +29 -0
  434. package/esm2022/f-draggable/resize-node/resize-node-handler/i-resize-node-connection-handlers.mjs +2 -0
  435. package/esm2022/f-draggable/resize-node/resize-node-handler/index.mjs +4 -0
  436. package/esm2022/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/index.mjs +5 -0
  437. package/esm2022/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-both-sides-handler.mjs +31 -0
  438. package/esm2022/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-handler-base.mjs +53 -0
  439. package/esm2022/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-source-handler.mjs +15 -0
  440. package/esm2022/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-target-handler.mjs +15 -0
  441. package/esm2022/f-draggable/resize-node/resize-node-handler/resize-node-handler.mjs +116 -0
  442. package/esm2022/f-draggable/resize-node/resize-preparation/attach-resize-connection-drag-handlers-to-node/attach-resize-connection-drag-handlers-to-node-request.mjs +10 -0
  443. package/esm2022/f-draggable/resize-node/resize-preparation/attach-resize-connection-drag-handlers-to-node/attach-resize-connection-drag-handlers-to-node.mjs +99 -0
  444. package/esm2022/f-draggable/resize-node/resize-preparation/attach-resize-connection-drag-handlers-to-node/index.mjs +3 -0
  445. package/esm2022/f-draggable/resize-node/resize-preparation/index.mjs +4 -0
  446. package/esm2022/f-draggable/resize-node/resize-preparation/resize-node-preparation-request.mjs +10 -0
  447. package/esm2022/f-draggable/resize-node/resize-preparation/resize-node-preparation.mjs +77 -0
  448. package/esm2022/f-draggable/rotate-node/calculate-difference-after-rotation.mjs +19 -0
  449. package/esm2022/f-draggable/rotate-node/f-rotate-node-start-event-data.mjs +7 -0
  450. package/esm2022/f-draggable/rotate-node/index.mjs +8 -0
  451. package/esm2022/f-draggable/rotate-node/is-rotate-node-handler.mjs +7 -0
  452. package/esm2022/f-draggable/rotate-node/providers.mjs +4 -0
  453. package/esm2022/f-draggable/rotate-node/rotate-node-finalize/index.mjs +3 -0
  454. package/esm2022/f-draggable/rotate-node/rotate-node-finalize/rotate-node-finalize-request.mjs +8 -0
  455. package/esm2022/f-draggable/rotate-node/rotate-node-finalize/rotate-node-finalize.mjs +31 -0
  456. package/esm2022/f-draggable/rotate-node/rotate-node-handler/index.mjs +2 -0
  457. package/esm2022/f-draggable/rotate-node/rotate-node-handler/rotate-node-handler.mjs +89 -0
  458. package/esm2022/f-draggable/rotate-node/rotate-node-preparation/index.mjs +3 -0
  459. package/esm2022/f-draggable/rotate-node/rotate-node-preparation/rotate-node-preparation-request.mjs +10 -0
  460. package/esm2022/f-draggable/rotate-node/rotate-node-preparation/rotate-node-preparation.mjs +99 -0
  461. package/esm2022/f-draggable/selection-area/selection-area-handler/selection-area-handler.mjs +2 -2
  462. package/esm2022/f-external-item/f-external-item-base.mjs +5 -2
  463. package/esm2022/f-external-item/f-external-item-placeholder.mjs +26 -0
  464. package/esm2022/f-external-item/f-external-item-preview.mjs +26 -0
  465. package/esm2022/f-external-item/f-external-item.mjs +63 -0
  466. package/esm2022/f-external-item/f-external-item.service.mjs +37 -11
  467. package/esm2022/f-external-item/index.mjs +4 -6
  468. package/esm2022/f-external-item/is-external-item.mjs +6 -3
  469. package/esm2022/f-external-item/providers.mjs +3 -5
  470. package/esm2022/f-flow/f-flow-base.mjs +2 -2
  471. package/esm2022/f-flow/f-flow.component.mjs +51 -28
  472. package/esm2022/f-flow.module.mjs +24 -20
  473. package/esm2022/f-magnetic-lines/f-magnetic-lines.mjs +4 -4
  474. package/esm2022/f-magnetic-rects/f-magnetic-rects.mjs +4 -4
  475. package/esm2022/f-minimap/f-minimap-base.mjs +12 -0
  476. package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +12 -8
  477. package/esm2022/f-minimap/f-minimap-flow.directive.mjs +7 -6
  478. package/esm2022/f-minimap/f-minimap-view.directive.mjs +5 -4
  479. package/esm2022/f-minimap/f-minimap.component.mjs +25 -16
  480. package/esm2022/f-minimap/index.mjs +2 -2
  481. package/esm2022/f-node/f-group.directive.mjs +4 -1
  482. package/esm2022/f-node/f-node.directive.mjs +4 -1
  483. package/esm2022/f-storage/f-components-store.mjs +34 -11
  484. package/esm2022/f-storage/features/emit-connections-changes/emit-connections-changes-request.mjs +4 -0
  485. package/esm2022/f-storage/features/emit-connections-changes/emit-connections-changes.mjs +22 -0
  486. package/esm2022/f-storage/features/emit-connections-changes/index.mjs +3 -0
  487. package/esm2022/f-storage/features/index.mjs +4 -4
  488. package/esm2022/f-storage/features/listen-connections-changes/index.mjs +3 -0
  489. package/esm2022/f-storage/features/listen-connections-changes/listen-connections-changes-request.mjs +8 -0
  490. package/esm2022/f-storage/features/listen-connections-changes/listen-connections-changes.mjs +25 -0
  491. package/esm2022/f-storage/features/listen-nodes-changes/index.mjs +3 -0
  492. package/esm2022/f-storage/features/listen-nodes-changes/listen-nodes-changes-request.mjs +4 -0
  493. package/esm2022/f-storage/features/listen-nodes-changes/listen-nodes-changes.mjs +23 -0
  494. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.mjs +3 -3
  495. package/esm2022/f-storage/providers.mjs +6 -6
  496. package/esm2022/f-virtual/f-virtual-for.mjs +86 -0
  497. package/esm2022/f-virtual/index.mjs +3 -0
  498. package/esm2022/f-virtual/providers.mjs +3 -0
  499. package/esm2022/f-zoom/f-zoom.directive.mjs +17 -9
  500. package/esm2022/public-api.mjs +4 -1
  501. package/esm2022/reactivity/after-next-paint.mjs +27 -0
  502. package/esm2022/reactivity/index.mjs +2 -1
  503. package/esm2022/utils/calculate-pointer-in-flow.mjs +6 -3
  504. package/f-cache/config/f-cache-options.d.ts +6 -0
  505. package/f-cache/config/index.d.ts +1 -0
  506. package/f-cache/features/f-cache-connectors/index.d.ts +2 -0
  507. package/f-cache/features/f-cache-connectors/register-connector/index.d.ts +2 -0
  508. package/f-cache/features/f-cache-connectors/register-connector/register-connector-request.d.ts +8 -0
  509. package/f-cache/features/f-cache-connectors/register-connector/register-connector.d.ts +12 -0
  510. package/f-cache/features/f-cache-connectors/unregister-connector/index.d.ts +2 -0
  511. package/f-cache/features/f-cache-connectors/unregister-connector/unregister-connector-request.d.ts +6 -0
  512. package/f-cache/features/f-cache-connectors/unregister-connector/unregister-connector.d.ts +12 -0
  513. package/f-cache/features/f-cache-nodes/index.d.ts +3 -0
  514. package/f-cache/features/f-cache-nodes/invalidate-node/index.d.ts +2 -0
  515. package/f-cache/features/f-cache-nodes/invalidate-node/invalidate-node-request.d.ts +6 -0
  516. package/f-cache/features/f-cache-nodes/invalidate-node/invalidate-node.d.ts +10 -0
  517. package/f-cache/features/f-cache-nodes/register-node/index.d.ts +2 -0
  518. package/f-cache/features/f-cache-nodes/register-node/register-node-request.d.ts +8 -0
  519. package/f-cache/features/f-cache-nodes/register-node/register-node.d.ts +10 -0
  520. package/f-cache/features/f-cache-nodes/unregister-node/index.d.ts +2 -0
  521. package/f-cache/features/f-cache-nodes/unregister-node/unregister-node-request.d.ts +5 -0
  522. package/f-cache/features/f-cache-nodes/unregister-node/unregister-node.d.ts +11 -0
  523. package/f-cache/features/f-cache-rects/get-cached-rect/get-cached-rect-request.d.ts +5 -0
  524. package/f-cache/features/f-cache-rects/get-cached-rect/get-cached-rect.d.ts +11 -0
  525. package/f-cache/features/f-cache-rects/get-cached-rect/index.d.ts +2 -0
  526. package/f-cache/features/f-cache-rects/index.d.ts +4 -0
  527. package/f-cache/features/f-cache-rects/set-connector-rect/index.d.ts +2 -0
  528. package/f-cache/features/f-cache-rects/set-connector-rect/set-connector-rect-request.d.ts +8 -0
  529. package/f-cache/features/f-cache-rects/set-connector-rect/set-connector-rect.d.ts +10 -0
  530. package/f-cache/features/f-cache-rects/set-node-rect/index.d.ts +2 -0
  531. package/f-cache/features/f-cache-rects/set-node-rect/set-node-rect-request.d.ts +7 -0
  532. package/f-cache/features/f-cache-rects/set-node-rect/set-node-rect.d.ts +11 -0
  533. package/f-cache/features/f-cache-rects/update-rect-by-element/index.d.ts +2 -0
  534. package/f-cache/features/f-cache-rects/update-rect-by-element/update-rect-by-element-request.d.ts +7 -0
  535. package/f-cache/features/f-cache-rects/update-rect-by-element/update-rect-by-element.d.ts +10 -0
  536. package/f-cache/features/index.d.ts +3 -0
  537. package/f-cache/index.d.ts +4 -0
  538. package/f-cache/model/f-cache-connector-key.d.ts +4 -0
  539. package/f-cache/model/f-cache-connector.d.ts +11 -0
  540. package/f-cache/model/f-cache-node.d.ts +9 -0
  541. package/f-cache/model/f-cache.d.ts +12 -0
  542. package/f-cache/model/i-f-cache-node-ref.d.ts +6 -0
  543. package/f-cache/model/index.d.ts +5 -0
  544. package/f-cache/providers.d.ts +3 -0
  545. package/f-connection-worker/features/calculate-connection-worker-connector-rect/calculate-connection-worker-connector-rect-request.d.ts +8 -0
  546. package/f-connection-worker/features/calculate-connection-worker-connector-rect/calculate-connection-worker-connector-rect.d.ts +12 -0
  547. package/f-connection-worker/features/calculate-connection-worker-connector-rect/index.d.ts +2 -0
  548. package/f-connection-worker/features/calculate-connection-worker-payload-item/calculate-connection-worker-payload-item-request.d.ts +8 -0
  549. package/f-connection-worker/features/calculate-connection-worker-payload-item/calculate-connection-worker-payload-item.d.ts +10 -0
  550. package/f-connection-worker/features/calculate-connection-worker-payload-item/index.d.ts +2 -0
  551. package/f-connection-worker/features/calculate-connections-using-connection-worker/calculate-connections-using-connection-worker-request.d.ts +8 -0
  552. package/f-connection-worker/features/calculate-connections-using-connection-worker/calculate-connections-using-connection-worker.d.ts +12 -0
  553. package/f-connection-worker/features/calculate-connections-using-connection-worker/index.d.ts +2 -0
  554. package/f-connection-worker/features/connection-worker-run/connection-worker-run-request.d.ts +6 -0
  555. package/f-connection-worker/features/connection-worker-run/connection-worker-run.d.ts +12 -0
  556. package/f-connection-worker/features/connection-worker-run/index.d.ts +2 -0
  557. package/f-connection-worker/features/disable-connection-worker/disable-connection-worker-request.d.ts +5 -0
  558. package/f-connection-worker/features/disable-connection-worker/disable-connection-worker.d.ts +10 -0
  559. package/f-connection-worker/features/disable-connection-worker/index.d.ts +2 -0
  560. package/f-connection-worker/features/ensure-connection-worker/ensure-connection-worker-request.d.ts +3 -0
  561. package/f-connection-worker/features/ensure-connection-worker/ensure-connection-worker.d.ts +13 -0
  562. package/f-connection-worker/features/ensure-connection-worker/index.d.ts +2 -0
  563. package/f-connection-worker/features/handle-connection-worker-message/handle-connection-worker-message-request.d.ts +6 -0
  564. package/f-connection-worker/features/handle-connection-worker-message/handle-connection-worker-message.d.ts +9 -0
  565. package/f-connection-worker/features/handle-connection-worker-message/index.d.ts +2 -0
  566. package/f-connection-worker/features/index.d.ts +12 -0
  567. package/f-connection-worker/features/is-connection-worker-enabled/index.d.ts +2 -0
  568. package/f-connection-worker/features/is-connection-worker-enabled/is-connection-worker-enabled-request.d.ts +3 -0
  569. package/f-connection-worker/features/is-connection-worker-enabled/is-connection-worker-enabled.d.ts +11 -0
  570. package/f-connection-worker/features/reset-connection-worker-runtime/index.d.ts +2 -0
  571. package/f-connection-worker/features/reset-connection-worker-runtime/reset-connection-worker-runtime-request.d.ts +5 -0
  572. package/f-connection-worker/features/reset-connection-worker-runtime/reset-connection-worker-runtime.d.ts +9 -0
  573. package/f-connection-worker/features/resolve-connection-worker-connectors/index.d.ts +2 -0
  574. package/f-connection-worker/features/resolve-connection-worker-connectors/resolve-connection-worker-connectors-request.d.ts +11 -0
  575. package/f-connection-worker/features/resolve-connection-worker-connectors/resolve-connection-worker-connectors.d.ts +9 -0
  576. package/f-connection-worker/features/resolve-connection-worker-context/index.d.ts +2 -0
  577. package/f-connection-worker/features/resolve-connection-worker-context/resolve-connection-worker-context-request.d.ts +13 -0
  578. package/f-connection-worker/features/resolve-connection-worker-context/resolve-connection-worker-context.d.ts +10 -0
  579. package/f-connection-worker/features/should-use-connection-worker/index.d.ts +2 -0
  580. package/f-connection-worker/features/should-use-connection-worker/should-use-connection-worker-request.d.ts +5 -0
  581. package/f-connection-worker/features/should-use-connection-worker/should-use-connection-worker.d.ts +9 -0
  582. package/f-connection-worker/index.d.ts +3 -0
  583. package/f-connection-worker/model/f-connection-worker.d.ts +12 -0
  584. package/f-connection-worker/model/i-f-connection-worker-rect.d.ts +6 -0
  585. package/f-connection-worker/model/i-f-connection-worker-request-item.d.ts +11 -0
  586. package/f-connection-worker/model/i-f-connection-worker-response.d.ts +6 -0
  587. package/f-connection-worker/model/i-f-connection-worker-result-item.d.ts +8 -0
  588. package/f-connection-worker/model/index.d.ts +6 -0
  589. package/f-connection-worker/model/t-f-connection-worker-pending-request.d.ts +5 -0
  590. package/f-connection-worker/providers.d.ts +3 -0
  591. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.d.ts +15 -0
  592. package/f-draggable/domain/get-normalized-parent-node-rect/index.d.ts +2 -2
  593. package/f-draggable/domain/is-array-has-parent-node/index.d.ts +2 -2
  594. package/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.d.ts +10 -0
  595. package/f-draggable/domain/providers.d.ts +3 -3
  596. package/f-draggable/drag-external-item/drag-external-item-create-placeholder/drag-external-item-create-placeholder-request.d.ts +6 -0
  597. package/f-draggable/drag-external-item/drag-external-item-create-placeholder/drag-external-item-create-placeholder.d.ts +13 -0
  598. package/f-draggable/drag-external-item/drag-external-item-create-placeholder/index.d.ts +2 -0
  599. package/f-draggable/drag-external-item/drag-external-item-create-preview/drag-external-item-create-preview-request.d.ts +6 -0
  600. package/f-draggable/drag-external-item/drag-external-item-create-preview/drag-external-item-create-preview.d.ts +14 -0
  601. package/f-draggable/drag-external-item/drag-external-item-create-preview/index.d.ts +2 -0
  602. package/f-draggable/drag-external-item/drag-external-item-finalize/drag-external-item-finalize-request.d.ts +6 -0
  603. package/f-draggable/drag-external-item/drag-external-item-finalize/drag-external-item-finalize.d.ts +21 -0
  604. package/f-draggable/drag-external-item/drag-external-item-finalize/index.d.ts +2 -0
  605. package/f-draggable/drag-external-item/drag-external-item-handler/drag-external-item-handler.d.ts +50 -0
  606. package/f-draggable/drag-external-item/drag-external-item-handler/index.d.ts +1 -0
  607. package/f-draggable/drag-external-item/drag-external-item-preparation/drag-external-item-preparation-request.d.ts +8 -0
  608. package/f-draggable/drag-external-item/drag-external-item-preparation/drag-external-item-preparation.d.ts +15 -0
  609. package/f-draggable/drag-external-item/drag-external-item-preparation/index.d.ts +2 -0
  610. package/f-draggable/drag-external-item/f-create-node-event.d.ts +18 -0
  611. package/f-draggable/drag-external-item/f-drag-external-item-start-event-data.d.ts +4 -0
  612. package/f-draggable/drag-external-item/i-drag-external-item-drag-result.d.ts +5 -0
  613. package/f-draggable/drag-external-item/index.d.ts +12 -0
  614. package/f-draggable/drag-external-item/is-drag-external-item-handler.d.ts +5 -0
  615. package/f-draggable/drag-external-item/prevent-default-is-external-item/index.d.ts +2 -0
  616. package/f-draggable/drag-external-item/prevent-default-is-external-item/prevent-default-is-external-item-request.d.ts +5 -0
  617. package/f-draggable/drag-external-item/prevent-default-is-external-item/prevent-default-is-external-item.d.ts +10 -0
  618. package/f-draggable/drag-external-item/providers.d.ts +6 -0
  619. package/f-draggable/drag-minimap/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point-request.d.ts +10 -0
  620. package/f-draggable/drag-minimap/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.d.ts +16 -0
  621. package/f-draggable/drag-minimap/calculate-flow-point-from-minimap-point/index.d.ts +2 -0
  622. package/f-draggable/drag-minimap/drag-minimap-finalize/drag-minimap-finalize-request.d.ts +6 -0
  623. package/f-draggable/drag-minimap/drag-minimap-finalize/drag-minimap-finalize.d.ts +10 -0
  624. package/f-draggable/drag-minimap/drag-minimap-finalize/index.d.ts +2 -0
  625. package/f-draggable/drag-minimap/drag-minimap-handler/drag-minimap-handler.d.ts +23 -0
  626. package/f-draggable/drag-minimap/drag-minimap-handler/index.d.ts +1 -0
  627. package/f-draggable/drag-minimap/drag-minimap-preparation/drag-minimap-preparation-request.d.ts +6 -0
  628. package/f-draggable/drag-minimap/drag-minimap-preparation/drag-minimap-preparation.d.ts +16 -0
  629. package/f-draggable/drag-minimap/drag-minimap-preparation/index.d.ts +2 -0
  630. package/f-draggable/drag-minimap/index.d.ts +6 -0
  631. package/f-draggable/drag-minimap/is-drag-minimap-handler.d.ts +5 -0
  632. package/f-draggable/drag-minimap/providers.d.ts +4 -0
  633. package/f-draggable/drag-node/attach-drag-node-handler-from-selection/attach-soft-parent-connection-drag-handlers-to-node/attach-soft-parent-connection-drag-handlers-to-node-request.d.ts +19 -0
  634. package/f-draggable/drag-node/attach-drag-node-handler-from-selection/attach-soft-parent-connection-drag-handlers-to-node/attach-soft-parent-connection-drag-handlers-to-node.d.ts +15 -0
  635. package/f-draggable/drag-node/attach-drag-node-handler-from-selection/attach-soft-parent-connection-drag-handlers-to-node/index.d.ts +2 -0
  636. package/f-draggable/drag-node/attach-drag-node-handler-from-selection/create-drag-node-handler/create-drag-node-handler.d.ts +2 -0
  637. package/f-draggable/drag-node/attach-drag-node-handler-from-selection/index.d.ts +1 -0
  638. package/f-draggable/drag-node/attach-drag-node-handler-from-selection/providers.d.ts +2 -1
  639. package/f-draggable/drag-node/drag-node-dependent-connection-handlers/drag-node-connection-handler-base.d.ts +1 -0
  640. package/f-draggable/drag-node/drag-node-handler/drag-node-item-handler.d.ts +6 -0
  641. package/f-draggable/drag-node/drag-node-handler/i-soft-parent-connection-handlers.d.ts +12 -0
  642. package/f-draggable/drag-node/drag-node-handler/index.d.ts +1 -0
  643. package/f-draggable/drag-node/index.d.ts +1 -0
  644. package/f-draggable/drag-node/is-drag-node-handler.d.ts +5 -0
  645. package/f-draggable/drag-node/providers.d.ts +1 -1
  646. package/f-draggable/drop-to-group/drop-to-group-handler/drop-to-group-handler.d.ts +2 -3
  647. package/f-draggable/drop-to-group/drop-to-group-preparation/drop-to-group-preparation.d.ts +0 -3
  648. package/f-draggable/f-draggable-base.d.ts +1 -1
  649. package/f-draggable/f-draggable.directive.d.ts +2 -4
  650. package/f-draggable/index.d.ts +4 -3
  651. package/f-draggable/pinch-to-zoom/index.d.ts +2 -2
  652. package/f-draggable/pinch-to-zoom/providers.d.ts +2 -2
  653. package/f-draggable/providers.d.ts +1 -1
  654. package/f-draggable/resize-node/apply-parent-resize-constraints/apply-parent-resize-constraints-request.d.ts +8 -0
  655. package/f-draggable/resize-node/apply-parent-resize-constraints/apply-parent-resize-constraints.d.ts +37 -0
  656. package/f-draggable/resize-node/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference.d.ts +11 -0
  657. package/f-draggable/resize-node/calculate-resize-limits/calculate-resize-limits-request.d.ts +8 -0
  658. package/f-draggable/resize-node/constraint/i-resize-constraint.d.ts +7 -0
  659. package/f-draggable/resize-node/constraint/i-resize-limit.d.ts +7 -0
  660. package/f-draggable/resize-node/constraint/i-resize-limits.d.ts +5 -0
  661. package/f-draggable/resize-node/constraint/index.d.ts +5 -0
  662. package/f-draggable/resize-node/f-resize-node-start-event-data.d.ts +4 -0
  663. package/f-draggable/resize-node/index.d.ts +12 -0
  664. package/f-draggable/resize-node/is-resize-node-handler.d.ts +5 -0
  665. package/f-draggable/resize-node/providers.d.ts +9 -0
  666. package/f-draggable/resize-node/resize-node-finalize/index.d.ts +2 -0
  667. package/f-draggable/resize-node/resize-node-finalize/resize-node-finalize-request.d.ts +6 -0
  668. package/f-draggable/resize-node/resize-node-finalize/resize-node-finalize.d.ts +10 -0
  669. package/f-draggable/resize-node/resize-node-handler/i-resize-node-connection-handlers.d.ts +10 -0
  670. package/f-draggable/resize-node/resize-node-handler/index.d.ts +3 -0
  671. package/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/index.d.ts +4 -0
  672. package/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-both-sides-handler.d.ts +12 -0
  673. package/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-handler-base.d.ts +20 -0
  674. package/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-source-handler.d.ts +8 -0
  675. package/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-target-handler.d.ts +8 -0
  676. package/f-draggable/resize-node/resize-node-handler/resize-node-handler.d.ts +35 -0
  677. package/f-draggable/resize-node/resize-preparation/attach-resize-connection-drag-handlers-to-node/attach-resize-connection-drag-handlers-to-node-request.d.ts +8 -0
  678. package/f-draggable/resize-node/resize-preparation/attach-resize-connection-drag-handlers-to-node/attach-resize-connection-drag-handlers-to-node.d.ts +16 -0
  679. package/f-draggable/resize-node/resize-preparation/attach-resize-connection-drag-handlers-to-node/index.d.ts +2 -0
  680. package/f-draggable/resize-node/resize-preparation/index.d.ts +3 -0
  681. package/f-draggable/resize-node/resize-preparation/resize-node-preparation-request.d.ts +8 -0
  682. package/f-draggable/resize-node/resize-preparation/resize-node-preparation.d.ts +17 -0
  683. package/f-draggable/rotate-node/f-rotate-node-start-event-data.d.ts +4 -0
  684. package/f-draggable/rotate-node/index.d.ts +7 -0
  685. package/f-draggable/rotate-node/is-rotate-node-handler.d.ts +5 -0
  686. package/f-draggable/rotate-node/providers.d.ts +3 -0
  687. package/f-draggable/rotate-node/rotate-node-finalize/index.d.ts +2 -0
  688. package/f-draggable/rotate-node/rotate-node-finalize/rotate-node-finalize-request.d.ts +6 -0
  689. package/f-draggable/rotate-node/rotate-node-finalize/rotate-node-finalize.d.ts +10 -0
  690. package/f-draggable/rotate-node/rotate-node-handler/index.d.ts +1 -0
  691. package/f-draggable/rotate-node/rotate-node-handler/rotate-node-handler.d.ts +43 -0
  692. package/f-draggable/rotate-node/rotate-node-preparation/index.d.ts +2 -0
  693. package/f-draggable/rotate-node/rotate-node-preparation/rotate-node-preparation-request.d.ts +8 -0
  694. package/f-draggable/rotate-node/rotate-node-preparation/rotate-node-preparation.d.ts +18 -0
  695. package/f-external-item/f-external-item-base.d.ts +10 -10
  696. package/f-external-item/f-external-item-placeholder.d.ts +10 -0
  697. package/f-external-item/f-external-item-preview.d.ts +10 -0
  698. package/f-external-item/f-external-item.d.ts +23 -0
  699. package/f-external-item/f-external-item.service.d.ts +10 -3
  700. package/f-external-item/index.d.ts +3 -5
  701. package/f-external-item/is-external-item.d.ts +1 -1
  702. package/f-external-item/providers.d.ts +2 -2
  703. package/f-flow/f-flow-base.d.ts +2 -1
  704. package/f-flow/f-flow.component.d.ts +12 -7
  705. package/f-flow.module.d.ts +21 -20
  706. package/f-minimap/f-minimap-base.d.ts +10 -0
  707. package/f-minimap/f-minimap-canvas.directive.d.ts +3 -2
  708. package/f-minimap/f-minimap-flow.directive.d.ts +3 -3
  709. package/f-minimap/f-minimap-view.directive.d.ts +1 -1
  710. package/f-minimap/f-minimap.component.d.ts +10 -7
  711. package/f-minimap/index.d.ts +1 -1
  712. package/f-storage/f-components-store.d.ts +15 -6
  713. package/f-storage/features/emit-connections-changes/emit-connections-changes-request.d.ts +3 -0
  714. package/f-storage/features/emit-connections-changes/emit-connections-changes.d.ts +9 -0
  715. package/f-storage/features/emit-connections-changes/index.d.ts +2 -0
  716. package/f-storage/features/index.d.ts +3 -3
  717. package/f-storage/features/listen-connections-changes/index.d.ts +2 -0
  718. package/f-storage/features/listen-connections-changes/listen-connections-changes-request.d.ts +5 -0
  719. package/f-storage/features/listen-connections-changes/listen-connections-changes.d.ts +10 -0
  720. package/f-storage/features/listen-nodes-changes/index.d.ts +2 -0
  721. package/f-storage/features/listen-nodes-changes/listen-nodes-changes-request.d.ts +3 -0
  722. package/f-storage/features/listen-nodes-changes/listen-nodes-changes.d.ts +10 -0
  723. package/f-storage/features/listen-transform-changes/listen-transform-changes.d.ts +1 -1
  724. package/f-storage/providers.d.ts +3 -3
  725. package/f-virtual/f-virtual-for.d.ts +21 -0
  726. package/f-virtual/index.d.ts +2 -0
  727. package/f-virtual/providers.d.ts +2 -0
  728. package/f-zoom/f-zoom.directive.d.ts +1 -0
  729. package/fesm2022/foblex-flow.mjs +8290 -6296
  730. package/fesm2022/foblex-flow.mjs.map +1 -1
  731. package/package.json +8 -5
  732. package/public-api.d.ts +3 -0
  733. package/reactivity/after-next-paint.d.ts +2 -0
  734. package/reactivity/index.d.ts +1 -0
  735. package/utils/calculate-pointer-in-flow.d.ts +1 -3
  736. package/domain/drag-rect-cache.d.ts +0 -8
  737. package/domain/f-canvas/add-canvas-to-store/add-canvas-to-store.execution.d.ts +0 -12
  738. package/domain/f-canvas/center-group-or-node/center-group-or-node.execution.d.ts +0 -18
  739. package/domain/f-canvas/fit-to-flow/fit-to-flow.execution.d.ts +0 -17
  740. package/domain/f-canvas/get-canvas/get-canvas-request.d.ts +0 -3
  741. package/domain/f-canvas/get-canvas/get-canvas.execution.d.ts +0 -13
  742. package/domain/f-canvas/get-canvas/index.d.ts +0 -2
  743. package/domain/f-canvas/input-canvas-position/input-canvas-position.execution.d.ts +0 -12
  744. package/domain/f-canvas/input-canvas-scale/input-canvas-scale.execution.d.ts +0 -13
  745. package/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation.execution.d.ts +0 -17
  746. package/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store.execution.d.ts +0 -12
  747. package/domain/f-canvas/reset-scale/reset-scale.execution.d.ts +0 -13
  748. package/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.d.ts +0 -17
  749. package/domain/f-canvas/update-scale/update-scale.execution.d.ts +0 -14
  750. package/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.d.ts +0 -30
  751. package/domain/f-draggable/add-dnd-to-store/add-dnd-to-store.execution.d.ts +0 -12
  752. package/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.d.ts +0 -12
  753. package/domain/f-draggable/on-pointer-move/on-pointer-move.execution.d.ts +0 -19
  754. package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.d.ts +0 -14
  755. package/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store.execution.d.ts +0 -12
  756. package/domain/f-flow/add-flow-to-store/add-flow-to-store.execution.d.ts +0 -12
  757. package/domain/f-flow/get-flow/get-flow.execution.d.ts +0 -13
  758. package/domain/f-flow/remove-flow-from-store/remove-flow-from-store.execution.d.ts +0 -12
  759. package/domain/f-selection/clear-selection/clear-selection.execution.d.ts +0 -12
  760. package/domain/f-selection/get-current-selection/get-current-selection.execution.d.ts +0 -16
  761. package/domain/f-selection/select/index.d.ts +0 -2
  762. package/domain/f-selection/select/select.execution.d.ts +0 -13
  763. package/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.d.ts +0 -15
  764. package/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.request.d.ts +0 -5
  765. package/domain/get-element-rounded-rect/get-element-rounded-rect-request.d.ts +0 -5
  766. package/domain/get-element-rounded-rect/get-element-rounded-rect.execution.d.ts +0 -17
  767. package/domain/get-element-rounded-rect/index.d.ts +0 -2
  768. package/domain/get-normalized-connector-rect/get-normalized-connector-rect.execution.d.ts +0 -22
  769. package/domain/get-normalized-element-rect/get-normalized-element-rect.execution.d.ts +0 -22
  770. package/domain/get-normalized-point/get-normalized-point.execution.d.ts +0 -16
  771. package/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.d.ts +0 -22
  772. package/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.request.d.ts +0 -5
  773. package/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.d.ts +0 -24
  774. package/esm2022/domain/drag-rect-cache.mjs +0 -19
  775. package/esm2022/domain/f-canvas/add-canvas-to-store/add-canvas-to-store.execution.mjs +0 -25
  776. package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node.execution.mjs +0 -46
  777. package/esm2022/domain/f-canvas/fit-to-flow/fit-to-flow.execution.mjs +0 -58
  778. package/esm2022/domain/f-canvas/get-canvas/get-canvas-request.mjs +0 -4
  779. package/esm2022/domain/f-canvas/get-canvas/get-canvas.execution.mjs +0 -29
  780. package/esm2022/domain/f-canvas/get-canvas/index.mjs +0 -3
  781. package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position.execution.mjs +0 -35
  782. package/esm2022/domain/f-canvas/input-canvas-scale/input-canvas-scale.execution.mjs +0 -30
  783. package/esm2022/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation.execution.mjs +0 -40
  784. package/esm2022/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store.execution.mjs +0 -25
  785. package/esm2022/domain/f-canvas/reset-scale/reset-scale.execution.mjs +0 -30
  786. package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.mjs +0 -50
  787. package/esm2022/domain/f-canvas/update-scale/update-scale.execution.mjs +0 -36
  788. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.mjs +0 -101
  789. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.request.mjs +0 -10
  790. package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store.execution.mjs +0 -25
  791. package/esm2022/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.mjs +0 -25
  792. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.execution.mjs +0 -46
  793. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.mjs +0 -30
  794. package/esm2022/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store.execution.mjs +0 -25
  795. package/esm2022/domain/f-flow/add-flow-to-store/add-flow-to-store.execution.mjs +0 -25
  796. package/esm2022/domain/f-flow/get-flow/get-flow.execution.mjs +0 -29
  797. package/esm2022/domain/f-flow/remove-flow-from-store/remove-flow-from-store.execution.mjs +0 -25
  798. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.request.mjs +0 -4
  799. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.request.mjs +0 -8
  800. package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.request.mjs +0 -8
  801. package/esm2022/domain/f-node/get-node-padding/get-node-padding.request.mjs +0 -10
  802. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.request.mjs +0 -8
  803. package/esm2022/domain/f-selection/clear-selection/clear-selection.execution.mjs +0 -27
  804. package/esm2022/domain/f-selection/clear-selection/clear-selection.request.mjs +0 -4
  805. package/esm2022/domain/f-selection/get-current-selection/get-current-selection.execution.mjs +0 -44
  806. package/esm2022/domain/f-selection/get-current-selection/get-current-selection.request.mjs +0 -4
  807. package/esm2022/domain/f-selection/select/index.mjs +0 -3
  808. package/esm2022/domain/f-selection/select/select.execution.mjs +0 -45
  809. package/esm2022/domain/f-selection/select/select.request.mjs +0 -12
  810. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.mjs +0 -36
  811. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.request.mjs +0 -8
  812. package/esm2022/domain/get-element-rounded-rect/get-element-rounded-rect-request.mjs +0 -8
  813. package/esm2022/domain/get-element-rounded-rect/get-element-rounded-rect.execution.mjs +0 -36
  814. package/esm2022/domain/get-element-rounded-rect/index.mjs +0 -3
  815. package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect.execution.mjs +0 -54
  816. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +0 -53
  817. package/esm2022/domain/get-normalized-point/get-normalized-point.execution.mjs +0 -56
  818. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.mjs +0 -61
  819. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.request.mjs +0 -8
  820. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.mjs +0 -65
  821. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.request.mjs +0 -4
  822. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +0 -67
  823. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.mjs +0 -8
  824. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.mjs +0 -26
  825. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.request.mjs +0 -10
  826. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints-request.mjs +0 -10
  827. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints.mjs +0 -57
  828. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/index.mjs +0 -3
  829. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints-request.mjs +0 -10
  830. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints.mjs +0 -147
  831. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/index.mjs +0 -3
  832. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference-request.mjs +0 -14
  833. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference.mjs +0 -55
  834. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/index.mjs +0 -3
  835. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect-request.mjs +0 -10
  836. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect.mjs +0 -38
  837. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/index.mjs +0 -3
  838. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits-request.mjs +0 -10
  839. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits.mjs +0 -69
  840. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/index.mjs +0 -3
  841. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-constraint.mjs +0 -2
  842. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-limit.mjs +0 -2
  843. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-limits.mjs +0 -2
  844. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-overflow.mjs +0 -2
  845. package/esm2022/f-draggable/f-node-resize/constraint/index.mjs +0 -5
  846. package/esm2022/f-draggable/f-node-resize/i-node-resize-event-data.mjs +0 -2
  847. package/esm2022/f-draggable/f-node-resize/index.mjs +0 -13
  848. package/esm2022/f-draggable/f-node-resize/node-resize.drag-handler.mjs +0 -66
  849. package/esm2022/f-draggable/f-node-resize/providers.mjs +0 -17
  850. package/esm2022/f-draggable/f-node-resize/resize-direction.mjs +0 -12
  851. package/esm2022/f-draggable/f-node-resize/resize-finalize/index.mjs +0 -3
  852. package/esm2022/f-draggable/f-node-resize/resize-finalize/node-resize-finalize-request.mjs +0 -8
  853. package/esm2022/f-draggable/f-node-resize/resize-finalize/node-resize-finalize.mjs +0 -29
  854. package/esm2022/f-draggable/f-node-resize/resize-preparation/index.mjs +0 -3
  855. package/esm2022/f-draggable/f-node-resize/resize-preparation/node-resize-preparation-request.mjs +0 -10
  856. package/esm2022/f-draggable/f-node-resize/resize-preparation/node-resize-preparation.mjs +0 -69
  857. package/esm2022/f-draggable/f-node-rotate/calculate-difference-after-rotation.mjs +0 -19
  858. package/esm2022/f-draggable/f-node-rotate/f-node-rotate.drag-handler.mjs +0 -75
  859. package/esm2022/f-draggable/f-node-rotate/i-node-rotate-event-data.mjs +0 -2
  860. package/esm2022/f-draggable/f-node-rotate/index.mjs +0 -6
  861. package/esm2022/f-draggable/f-node-rotate/providers.mjs +0 -7
  862. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.mjs +0 -32
  863. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.request.mjs +0 -8
  864. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/index.mjs +0 -3
  865. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.mjs +0 -94
  866. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.request.mjs +0 -10
  867. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/index.mjs +0 -3
  868. package/esm2022/f-draggable/i-f-drag-and-drop-plugin.mjs +0 -4
  869. package/esm2022/f-draggable/pinch-to-zoom/finalize/index.mjs +0 -3
  870. package/esm2022/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize-request.mjs +0 -8
  871. package/esm2022/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize.mjs +0 -31
  872. package/esm2022/f-draggable/pinch-to-zoom/preparation/index.mjs +0 -3
  873. package/esm2022/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation-request.mjs +0 -8
  874. package/esm2022/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation.mjs +0 -47
  875. package/esm2022/f-external-item/domain/constraint/external-rect-constraint.mjs +0 -44
  876. package/esm2022/f-external-item/domain/constraint/index.mjs +0 -2
  877. package/esm2022/f-external-item/domain/create-placeholder/f-external-item-create-placeholder.execution.mjs +0 -41
  878. package/esm2022/f-external-item/domain/create-placeholder/f-external-item-create-placeholder.request.mjs +0 -8
  879. package/esm2022/f-external-item/domain/create-placeholder/index.mjs +0 -3
  880. package/esm2022/f-external-item/domain/create-preview/f-external-item-create-preview.execution.mjs +0 -52
  881. package/esm2022/f-external-item/domain/create-preview/f-external-item-create-preview.request.mjs +0 -8
  882. package/esm2022/f-external-item/domain/create-preview/index.mjs +0 -3
  883. package/esm2022/f-external-item/domain/f-create-node.event.mjs +0 -13
  884. package/esm2022/f-external-item/domain/f-external-item.drag-handler.mjs +0 -104
  885. package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.execution.mjs +0 -75
  886. package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.request.mjs +0 -8
  887. package/esm2022/f-external-item/domain/finalize/index.mjs +0 -3
  888. package/esm2022/f-external-item/domain/i-f-external-item-drag-result.mjs +0 -2
  889. package/esm2022/f-external-item/domain/index.mjs +0 -11
  890. package/esm2022/f-external-item/domain/preparation/f-external-item-preparation.execution.mjs +0 -56
  891. package/esm2022/f-external-item/domain/preparation/f-external-item-preparation.request.mjs +0 -10
  892. package/esm2022/f-external-item/domain/preparation/index.mjs +0 -3
  893. package/esm2022/f-external-item/domain/prevent-default-is-external-item/index.mjs +0 -3
  894. package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.execution.mjs +0 -37
  895. package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.request.mjs +0 -8
  896. package/esm2022/f-external-item/domain/providers.mjs +0 -13
  897. package/esm2022/f-external-item/f-external-item-placeholder.directive.mjs +0 -26
  898. package/esm2022/f-external-item/f-external-item-preview.directive.mjs +0 -26
  899. package/esm2022/f-external-item/f-external-item-token.mjs +0 -3
  900. package/esm2022/f-external-item/f-external-item.directive.mjs +0 -59
  901. package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.execution.mjs +0 -39
  902. package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.request.mjs +0 -14
  903. package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/index.mjs +0 -3
  904. package/esm2022/f-minimap/domain/f-minimap-data.mjs +0 -12
  905. package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +0 -45
  906. package/esm2022/f-minimap/domain/index.mjs +0 -10
  907. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/i-f-minimap-scale-and-view-box.mjs +0 -2
  908. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/index.mjs +0 -4
  909. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.execution.mjs +0 -73
  910. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.request.mjs +0 -10
  911. package/esm2022/f-minimap/domain/minimap-calculate-view-box/index.mjs +0 -3
  912. package/esm2022/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.mjs +0 -42
  913. package/esm2022/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.request.mjs +0 -4
  914. package/esm2022/f-minimap/domain/minimap-drag-finalize/index.mjs +0 -4
  915. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.mjs +0 -32
  916. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.request.mjs +0 -8
  917. package/esm2022/f-minimap/domain/minimap-drag-finalize/providers.mjs +0 -5
  918. package/esm2022/f-minimap/domain/minimap-drag-preparation/index.mjs +0 -4
  919. package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.mjs +0 -54
  920. package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.request.mjs +0 -10
  921. package/esm2022/f-minimap/domain/minimap-drag-preparation/providers.mjs +0 -5
  922. package/esm2022/f-minimap/domain/minimap-draw-nodes/index.mjs +0 -3
  923. package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.mjs +0 -70
  924. package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.request.mjs +0 -4
  925. package/esm2022/f-minimap/domain/providers.mjs +0 -15
  926. package/esm2022/f-storage/features/listen-count-changes/index.mjs +0 -3
  927. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes-request.mjs +0 -4
  928. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.mjs +0 -23
  929. package/esm2022/f-storage/features/listen-data-changed/index.mjs +0 -3
  930. package/esm2022/f-storage/features/listen-data-changed/listen-data-changes-request.mjs +0 -8
  931. package/esm2022/f-storage/features/listen-data-changed/listen-data-changes.mjs +0 -25
  932. package/esm2022/f-storage/features/notify-data-changed/index.mjs +0 -3
  933. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed-request.mjs +0 -4
  934. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.mjs +0 -22
  935. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.d.ts +0 -15
  936. package/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.d.ts +0 -10
  937. package/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints-request.d.ts +0 -8
  938. package/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints.d.ts +0 -36
  939. package/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference.d.ts +0 -11
  940. package/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits-request.d.ts +0 -8
  941. package/f-draggable/f-node-resize/constraint/i-resize-constraint.d.ts +0 -7
  942. package/f-draggable/f-node-resize/constraint/i-resize-limit.d.ts +0 -7
  943. package/f-draggable/f-node-resize/constraint/i-resize-limits.d.ts +0 -5
  944. package/f-draggable/f-node-resize/constraint/index.d.ts +0 -4
  945. package/f-draggable/f-node-resize/i-node-resize-event-data.d.ts +0 -3
  946. package/f-draggable/f-node-resize/index.d.ts +0 -12
  947. package/f-draggable/f-node-resize/node-resize.drag-handler.d.ts +0 -29
  948. package/f-draggable/f-node-resize/providers.d.ts +0 -8
  949. package/f-draggable/f-node-resize/resize-finalize/index.d.ts +0 -2
  950. package/f-draggable/f-node-resize/resize-finalize/node-resize-finalize-request.d.ts +0 -6
  951. package/f-draggable/f-node-resize/resize-finalize/node-resize-finalize.d.ts +0 -10
  952. package/f-draggable/f-node-resize/resize-preparation/index.d.ts +0 -2
  953. package/f-draggable/f-node-resize/resize-preparation/node-resize-preparation-request.d.ts +0 -8
  954. package/f-draggable/f-node-resize/resize-preparation/node-resize-preparation.d.ts +0 -21
  955. package/f-draggable/f-node-rotate/f-node-rotate.drag-handler.d.ts +0 -39
  956. package/f-draggable/f-node-rotate/i-node-rotate-event-data.d.ts +0 -3
  957. package/f-draggable/f-node-rotate/index.d.ts +0 -5
  958. package/f-draggable/f-node-rotate/providers.d.ts +0 -3
  959. package/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.d.ts +0 -10
  960. package/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.request.d.ts +0 -6
  961. package/f-draggable/f-node-rotate/rotate-finalize/index.d.ts +0 -2
  962. package/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.d.ts +0 -23
  963. package/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.request.d.ts +0 -8
  964. package/f-draggable/f-node-rotate/rotate-preparation/index.d.ts +0 -2
  965. package/f-draggable/i-f-drag-and-drop-plugin.d.ts +0 -10
  966. package/f-external-item/domain/create-placeholder/f-external-item-create-placeholder.execution.d.ts +0 -13
  967. package/f-external-item/domain/create-placeholder/f-external-item-create-placeholder.request.d.ts +0 -6
  968. package/f-external-item/domain/create-placeholder/index.d.ts +0 -2
  969. package/f-external-item/domain/create-preview/f-external-item-create-preview.execution.d.ts +0 -14
  970. package/f-external-item/domain/create-preview/f-external-item-create-preview.request.d.ts +0 -6
  971. package/f-external-item/domain/create-preview/index.d.ts +0 -2
  972. package/f-external-item/domain/f-create-node.event.d.ts +0 -8
  973. package/f-external-item/domain/f-external-item.drag-handler.d.ts +0 -35
  974. package/f-external-item/domain/finalize/f-external-item-finalize.execution.d.ts +0 -22
  975. package/f-external-item/domain/finalize/f-external-item-finalize.request.d.ts +0 -6
  976. package/f-external-item/domain/finalize/index.d.ts +0 -2
  977. package/f-external-item/domain/i-f-external-item-drag-result.d.ts +0 -5
  978. package/f-external-item/domain/index.d.ts +0 -10
  979. package/f-external-item/domain/preparation/f-external-item-preparation.execution.d.ts +0 -18
  980. package/f-external-item/domain/preparation/f-external-item-preparation.request.d.ts +0 -8
  981. package/f-external-item/domain/preparation/index.d.ts +0 -2
  982. package/f-external-item/domain/prevent-default-is-external-item/index.d.ts +0 -2
  983. package/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.execution.d.ts +0 -10
  984. package/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.request.d.ts +0 -5
  985. package/f-external-item/domain/providers.d.ts +0 -6
  986. package/f-external-item/f-external-item-placeholder.directive.d.ts +0 -10
  987. package/f-external-item/f-external-item-preview.directive.d.ts +0 -10
  988. package/f-external-item/f-external-item-token.d.ts +0 -3
  989. package/f-external-item/f-external-item.directive.d.ts +0 -20
  990. package/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.execution.d.ts +0 -16
  991. package/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.request.d.ts +0 -10
  992. package/f-minimap/domain/calculate-flow-point-from-minimap-point/index.d.ts +0 -2
  993. package/f-minimap/domain/f-minimap-data.d.ts +0 -7
  994. package/f-minimap/domain/f-minimap.drag-handler.d.ts +0 -22
  995. package/f-minimap/domain/index.d.ts +0 -9
  996. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/i-f-minimap-scale-and-view-box.d.ts +0 -5
  997. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/index.d.ts +0 -3
  998. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.execution.d.ts +0 -22
  999. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.request.d.ts +0 -6
  1000. package/f-minimap/domain/minimap-calculate-view-box/index.d.ts +0 -2
  1001. package/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.d.ts +0 -14
  1002. package/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.request.d.ts +0 -3
  1003. package/f-minimap/domain/minimap-drag-finalize/index.d.ts +0 -3
  1004. package/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.d.ts +0 -10
  1005. package/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.request.d.ts +0 -6
  1006. package/f-minimap/domain/minimap-drag-finalize/providers.d.ts +0 -2
  1007. package/f-minimap/domain/minimap-drag-preparation/index.d.ts +0 -3
  1008. package/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.d.ts +0 -15
  1009. package/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.request.d.ts +0 -8
  1010. package/f-minimap/domain/minimap-drag-preparation/providers.d.ts +0 -2
  1011. package/f-minimap/domain/minimap-draw-nodes/index.d.ts +0 -2
  1012. package/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.d.ts +0 -19
  1013. package/f-minimap/domain/providers.d.ts +0 -5
  1014. package/f-storage/features/listen-count-changes/index.d.ts +0 -2
  1015. package/f-storage/features/listen-count-changes/listen-count-changes-request.d.ts +0 -3
  1016. package/f-storage/features/listen-count-changes/listen-count-changes.d.ts +0 -10
  1017. package/f-storage/features/listen-data-changed/index.d.ts +0 -2
  1018. package/f-storage/features/listen-data-changed/listen-data-changes-request.d.ts +0 -5
  1019. package/f-storage/features/listen-data-changed/listen-data-changes.d.ts +0 -10
  1020. package/f-storage/features/notify-data-changed/index.d.ts +0 -2
  1021. package/f-storage/features/notify-data-changed/notify-data-changed-request.d.ts +0 -3
  1022. package/f-storage/features/notify-data-changed/notify-data-changed.d.ts +0 -9
  1023. /package/domain/f-connectors/find-connectable-connector-using-priority-and-position/{find-connectable-connector-using-priority-and-position.request.d.ts → find-connectable-connector-using-priority-and-position-request.d.ts} +0 -0
  1024. /package/domain/f-node/calculate-nodes-bounding-box/{calculate-nodes-bounding-box.request.d.ts → calculate-nodes-bounding-box-request.d.ts} +0 -0
  1025. /package/domain/f-node/calculate-nodes-bounding-box-normalized-position/{calculate-nodes-bounding-box-normalized-position.request.d.ts → calculate-nodes-bounding-box-normalized-position-request.d.ts} +0 -0
  1026. /package/domain/f-node/get-child-node-ids/{get-child-node-ids.request.d.ts → get-child-node-ids-request.d.ts} +0 -0
  1027. /package/domain/f-node/get-node-padding/{get-node-padding.request.d.ts → get-node-padding-request.d.ts} +0 -0
  1028. /package/domain/f-node/get-parent-nodes/{get-parent-nodes.request.d.ts → get-parent-nodes-request.d.ts} +0 -0
  1029. /package/domain/f-selection/clear-selection/{clear-selection.request.d.ts → clear-selection-request.d.ts} +0 -0
  1030. /package/domain/f-selection/get-current-selection/{get-current-selection.request.d.ts → get-current-selection-request.d.ts} +0 -0
  1031. /package/domain/f-selection/{select/select.request.d.ts → select-items/select-request.d.ts} +0 -0
  1032. /package/{f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.request.d.ts → domain/minimap/minimap-draw-nodes/minimap-draw-nodes-request.d.ts} +0 -0
  1033. /package/domain/sort-item-layers/sort-node-layers-by-groups/{sort-node-layers.request.d.ts → sort-node-layers-request.d.ts} +0 -0
  1034. /package/f-draggable/domain/get-normalized-parent-node-rect/{get-normalized-parent-node-rect.request.d.ts → get-normalized-parent-node-rect-request.d.ts} +0 -0
  1035. /package/f-draggable/domain/is-array-has-parent-node/{is-array-has-parent-node.request.d.ts → is-array-has-parent-node-request.d.ts} +0 -0
  1036. /package/{f-external-item/domain/constraint → f-draggable/drag-external-item/constraints}/external-rect-constraint.d.ts +0 -0
  1037. /package/{f-external-item/domain/constraint → f-draggable/drag-external-item/constraints}/index.d.ts +0 -0
  1038. /package/f-draggable/pinch-to-zoom/{finalize → pinch-to-zoom-finalize}/index.d.ts +0 -0
  1039. /package/f-draggable/pinch-to-zoom/{finalize → pinch-to-zoom-finalize}/pinch-to-zoom-finalize-request.d.ts +0 -0
  1040. /package/f-draggable/pinch-to-zoom/{finalize → pinch-to-zoom-finalize}/pinch-to-zoom-finalize.d.ts +0 -0
  1041. /package/f-draggable/pinch-to-zoom/{preparation → pinch-to-zoom-preparation}/index.d.ts +0 -0
  1042. /package/f-draggable/pinch-to-zoom/{preparation → pinch-to-zoom-preparation}/pinch-to-zoom-preparation-request.d.ts +0 -0
  1043. /package/f-draggable/pinch-to-zoom/{preparation → pinch-to-zoom-preparation}/pinch-to-zoom-preparation.d.ts +0 -0
  1044. /package/f-draggable/{f-node-resize → resize-node}/apply-child-resize-constraints/apply-child-resize-constraints-request.d.ts +0 -0
  1045. /package/f-draggable/{f-node-resize → resize-node}/apply-child-resize-constraints/apply-child-resize-constraints.d.ts +0 -0
  1046. /package/f-draggable/{f-node-resize → resize-node}/apply-child-resize-constraints/index.d.ts +0 -0
  1047. /package/f-draggable/{f-node-resize → resize-node}/apply-parent-resize-constraints/index.d.ts +0 -0
  1048. /package/f-draggable/{f-node-resize → resize-node}/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference-request.d.ts +0 -0
  1049. /package/f-draggable/{f-node-resize → resize-node}/calculate-changed-rect-from-difference/index.d.ts +0 -0
  1050. /package/f-draggable/{f-node-resize → resize-node}/calculate-direct-children-union-rect/calculate-direct-children-union-rect-request.d.ts +0 -0
  1051. /package/f-draggable/{f-node-resize → resize-node}/calculate-direct-children-union-rect/calculate-direct-children-union-rect.d.ts +0 -0
  1052. /package/f-draggable/{f-node-resize → resize-node}/calculate-direct-children-union-rect/index.d.ts +0 -0
  1053. /package/f-draggable/{f-node-resize → resize-node}/calculate-resize-limits/calculate-resize-limits.d.ts +0 -0
  1054. /package/f-draggable/{f-node-resize → resize-node}/calculate-resize-limits/index.d.ts +0 -0
  1055. /package/f-draggable/{f-node-resize → resize-node}/constraint/i-resize-overflow.d.ts +0 -0
  1056. /package/f-draggable/{f-node-resize → resize-node/constraint}/resize-direction.d.ts +0 -0
  1057. /package/f-draggable/{f-node-rotate → rotate-node}/calculate-difference-after-rotation.d.ts +0 -0
@@ -4,7 +4,8 @@ export * from './create-drag-node-handler';
4
4
  export * from './read-node-bounds-with-paddings';
5
5
  export * from './attach-target-connection-drag-handlers-to-node';
6
6
  export * from './attach-source-connection-drag-handlers-to-node';
7
+ export * from './attach-soft-parent-connection-drag-handlers-to-node';
7
8
  export * from './providers';
8
9
  export * from './attach-drag-node-handler-from-selection';
9
10
  export * from './attach-drag-node-handler-from-selection-request';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RyYWctbm9kZS9hdHRhY2gtZHJhZy1ub2RlLWhhbmRsZXItZnJvbS1zZWxlY3Rpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLGtEQUFrRCxDQUFDO0FBRWpFLGNBQWMsa0RBQWtELENBQUM7QUFFakUsY0FBYyxhQUFhLENBQUM7QUFFNUIsY0FBYywyQ0FBMkMsQ0FBQztBQUUxRCxjQUFjLG1EQUFtRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtZHJhZy1ub2RlLWhpZXJhcmNoeSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQtZHJhZy1ub2RlLWNvbnN0cmFpbnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtZHJhZy1ub2RlLWhhbmRsZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL3JlYWQtbm9kZS1ib3VuZHMtd2l0aC1wYWRkaW5ncyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYXR0YWNoLXRhcmdldC1jb25uZWN0aW9uLWRyYWctaGFuZGxlcnMtdG8tbm9kZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYXR0YWNoLXNvdXJjZS1jb25uZWN0aW9uLWRyYWctaGFuZGxlcnMtdG8tbm9kZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcblxuZXhwb3J0ICogZnJvbSAnLi9hdHRhY2gtZHJhZy1ub2RlLWhhbmRsZXItZnJvbS1zZWxlY3Rpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2F0dGFjaC1kcmFnLW5vZGUtaGFuZGxlci1mcm9tLXNlbGVjdGlvbi1yZXF1ZXN0JztcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RyYWctbm9kZS9hdHRhY2gtZHJhZy1ub2RlLWhhbmRsZXItZnJvbS1zZWxlY3Rpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLGtEQUFrRCxDQUFDO0FBRWpFLGNBQWMsa0RBQWtELENBQUM7QUFFakUsY0FBYyx1REFBdUQsQ0FBQztBQUV0RSxjQUFjLGFBQWEsQ0FBQztBQUU1QixjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGNBQWMsbURBQW1ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1kcmFnLW5vZGUtaGllcmFyY2h5JztcblxuZXhwb3J0ICogZnJvbSAnLi9idWlsZC1kcmFnLW5vZGUtY29uc3RyYWludHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1kcmFnLW5vZGUtaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vcmVhZC1ub2RlLWJvdW5kcy13aXRoLXBhZGRpbmdzJztcblxuZXhwb3J0ICogZnJvbSAnLi9hdHRhY2gtdGFyZ2V0LWNvbm5lY3Rpb24tZHJhZy1oYW5kbGVycy10by1ub2RlJztcblxuZXhwb3J0ICogZnJvbSAnLi9hdHRhY2gtc291cmNlLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGVycy10by1ub2RlJztcblxuZXhwb3J0ICogZnJvbSAnLi9hdHRhY2gtc29mdC1wYXJlbnQtY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzLXRvLW5vZGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYXR0YWNoLWRyYWctbm9kZS1oYW5kbGVyLWZyb20tc2VsZWN0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9hdHRhY2gtZHJhZy1ub2RlLWhhbmRsZXItZnJvbS1zZWxlY3Rpb24tcmVxdWVzdCc7XG4iXX0=
@@ -5,13 +5,15 @@ import { CreateDragNodeHierarchy } from './create-drag-node-hierarchy';
5
5
  import { BuildDragNodeConstraints } from './build-drag-node-constraints';
6
6
  import { CreateDragNodeHandler } from './create-drag-node-handler';
7
7
  import { ReadNodeBoundsWithPaddings } from './read-node-bounds-with-paddings';
8
+ import { AttachSoftParentConnectionDragHandlersToNode } from './attach-soft-parent-connection-drag-handlers-to-node';
8
9
  export const CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS = [
9
10
  CreateDragNodeHierarchy,
10
11
  BuildDragNodeConstraints,
11
12
  CreateDragNodeHandler,
12
13
  AttachTargetConnectionDragHandlersToNode,
13
14
  AttachSourceConnectionDragHandlersToNode,
15
+ AttachSoftParentConnectionDragHandlersToNode,
14
16
  ReadNodeBoundsWithPaddings,
15
17
  AttachDragNodeHandlerFromSelection,
16
18
  ];
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9kcmFnLW5vZGUvYXR0YWNoLWRyYWctbm9kZS1oYW5kbGVyLWZyb20tc2VsZWN0aW9uL3Byb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSxvREFBb0QsR0FBRztJQUNsRSx1QkFBdUI7SUFFdkIsd0JBQXdCO0lBRXhCLHFCQUFxQjtJQUVyQix3Q0FBd0M7SUFFeEMsd0NBQXdDO0lBRXhDLDBCQUEwQjtJQUUxQixrQ0FBa0M7Q0FDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dGFjaERyYWdOb2RlSGFuZGxlckZyb21TZWxlY3Rpb24gfSBmcm9tICcuL2F0dGFjaC1kcmFnLW5vZGUtaGFuZGxlci1mcm9tLXNlbGVjdGlvbic7XG5pbXBvcnQgeyBBdHRhY2hUYXJnZXRDb25uZWN0aW9uRHJhZ0hhbmRsZXJzVG9Ob2RlIH0gZnJvbSAnLi9hdHRhY2gtdGFyZ2V0LWNvbm5lY3Rpb24tZHJhZy1oYW5kbGVycy10by1ub2RlJztcbmltcG9ydCB7IEF0dGFjaFNvdXJjZUNvbm5lY3Rpb25EcmFnSGFuZGxlcnNUb05vZGUgfSBmcm9tICcuL2F0dGFjaC1zb3VyY2UtY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzLXRvLW5vZGUnO1xuaW1wb3J0IHsgQ3JlYXRlRHJhZ05vZGVIaWVyYXJjaHkgfSBmcm9tICcuL2NyZWF0ZS1kcmFnLW5vZGUtaGllcmFyY2h5JztcbmltcG9ydCB7IEJ1aWxkRHJhZ05vZGVDb25zdHJhaW50cyB9IGZyb20gJy4vYnVpbGQtZHJhZy1ub2RlLWNvbnN0cmFpbnRzJztcbmltcG9ydCB7IENyZWF0ZURyYWdOb2RlSGFuZGxlciB9IGZyb20gJy4vY3JlYXRlLWRyYWctbm9kZS1oYW5kbGVyJztcbmltcG9ydCB7IFJlYWROb2RlQm91bmRzV2l0aFBhZGRpbmdzIH0gZnJvbSAnLi9yZWFkLW5vZGUtYm91bmRzLXdpdGgtcGFkZGluZ3MnO1xuXG5leHBvcnQgY29uc3QgQ1JFQVRFX01PVkVfTk9ERV9EUkFHX01PREVMX0ZST01fU0VMRUNUSU9OX1BST1ZJREVSUyA9IFtcbiAgQ3JlYXRlRHJhZ05vZGVIaWVyYXJjaHksXG5cbiAgQnVpbGREcmFnTm9kZUNvbnN0cmFpbnRzLFxuXG4gIENyZWF0ZURyYWdOb2RlSGFuZGxlcixcblxuICBBdHRhY2hUYXJnZXRDb25uZWN0aW9uRHJhZ0hhbmRsZXJzVG9Ob2RlLFxuXG4gIEF0dGFjaFNvdXJjZUNvbm5lY3Rpb25EcmFnSGFuZGxlcnNUb05vZGUsXG5cbiAgUmVhZE5vZGVCb3VuZHNXaXRoUGFkZGluZ3MsXG5cbiAgQXR0YWNoRHJhZ05vZGVIYW5kbGVyRnJvbVNlbGVjdGlvbixcbl07XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9kcmFnLW5vZGUvYXR0YWNoLWRyYWctbm9kZS1oYW5kbGVyLWZyb20tc2VsZWN0aW9uL3Byb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNENBQTRDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVySCxNQUFNLENBQUMsTUFBTSxvREFBb0QsR0FBRztJQUNsRSx1QkFBdUI7SUFFdkIsd0JBQXdCO0lBRXhCLHFCQUFxQjtJQUVyQix3Q0FBd0M7SUFFeEMsd0NBQXdDO0lBRXhDLDRDQUE0QztJQUU1QywwQkFBMEI7SUFFMUIsa0NBQWtDO0NBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRhY2hEcmFnTm9kZUhhbmRsZXJGcm9tU2VsZWN0aW9uIH0gZnJvbSAnLi9hdHRhY2gtZHJhZy1ub2RlLWhhbmRsZXItZnJvbS1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgQXR0YWNoVGFyZ2V0Q29ubmVjdGlvbkRyYWdIYW5kbGVyc1RvTm9kZSB9IGZyb20gJy4vYXR0YWNoLXRhcmdldC1jb25uZWN0aW9uLWRyYWctaGFuZGxlcnMtdG8tbm9kZSc7XG5pbXBvcnQgeyBBdHRhY2hTb3VyY2VDb25uZWN0aW9uRHJhZ0hhbmRsZXJzVG9Ob2RlIH0gZnJvbSAnLi9hdHRhY2gtc291cmNlLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGVycy10by1ub2RlJztcbmltcG9ydCB7IENyZWF0ZURyYWdOb2RlSGllcmFyY2h5IH0gZnJvbSAnLi9jcmVhdGUtZHJhZy1ub2RlLWhpZXJhcmNoeSc7XG5pbXBvcnQgeyBCdWlsZERyYWdOb2RlQ29uc3RyYWludHMgfSBmcm9tICcuL2J1aWxkLWRyYWctbm9kZS1jb25zdHJhaW50cyc7XG5pbXBvcnQgeyBDcmVhdGVEcmFnTm9kZUhhbmRsZXIgfSBmcm9tICcuL2NyZWF0ZS1kcmFnLW5vZGUtaGFuZGxlcic7XG5pbXBvcnQgeyBSZWFkTm9kZUJvdW5kc1dpdGhQYWRkaW5ncyB9IGZyb20gJy4vcmVhZC1ub2RlLWJvdW5kcy13aXRoLXBhZGRpbmdzJztcbmltcG9ydCB7IEF0dGFjaFNvZnRQYXJlbnRDb25uZWN0aW9uRHJhZ0hhbmRsZXJzVG9Ob2RlIH0gZnJvbSAnLi9hdHRhY2gtc29mdC1wYXJlbnQtY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzLXRvLW5vZGUnO1xuXG5leHBvcnQgY29uc3QgQ1JFQVRFX01PVkVfTk9ERV9EUkFHX01PREVMX0ZST01fU0VMRUNUSU9OX1BST1ZJREVSUyA9IFtcbiAgQ3JlYXRlRHJhZ05vZGVIaWVyYXJjaHksXG5cbiAgQnVpbGREcmFnTm9kZUNvbnN0cmFpbnRzLFxuXG4gIENyZWF0ZURyYWdOb2RlSGFuZGxlcixcblxuICBBdHRhY2hUYXJnZXRDb25uZWN0aW9uRHJhZ0hhbmRsZXJzVG9Ob2RlLFxuXG4gIEF0dGFjaFNvdXJjZUNvbm5lY3Rpb25EcmFnSGFuZGxlcnNUb05vZGUsXG5cbiAgQXR0YWNoU29mdFBhcmVudENvbm5lY3Rpb25EcmFnSGFuZGxlcnNUb05vZGUsXG5cbiAgUmVhZE5vZGVCb3VuZHNXaXRoUGFkZGluZ3MsXG5cbiAgQXR0YWNoRHJhZ05vZGVIYW5kbGVyRnJvbVNlbGVjdGlvbixcbl07XG4iXX0=
@@ -4,6 +4,7 @@ import { GetConnectorRectReferenceRequest } from '../../../domain';
4
4
  import { FComponentsStore } from '../../../f-storage';
5
5
  import { inject } from '@angular/core';
6
6
  import { ConnectionBehaviourBuilder, ConnectionBehaviourBuilderRequest, } from '../../../f-connection-v2';
7
+ import { SetFCacheConnectorRectRequest } from '../../../f-cache';
7
8
  export class DragNodeConnectionHandlerBase {
8
9
  _mediator = inject(FMediator);
9
10
  _store = inject(FComponentsStore);
@@ -24,9 +25,11 @@ export class DragNodeConnectionHandlerBase {
24
25
  }
25
26
  setSourceDelta(delta) {
26
27
  this._sourceDelta = delta;
28
+ this._mediator.execute(new SetFCacheConnectorRectRequest(this._source.fId(), this._source.kind, this._withDelta(this._sourceRef.rect, delta)));
27
29
  }
28
30
  setTargetDelta(delta) {
29
31
  this._targetDelta = delta;
32
+ this._mediator.execute(new SetFCacheConnectorRectRequest(this._target.fId(), this._target.kind, this._withDelta(this._targetRef.rect, delta)));
30
33
  }
31
34
  redraw() {
32
35
  const line = this._buildLine();
@@ -41,5 +44,8 @@ export class DragNodeConnectionHandlerBase {
41
44
  _readRectRef(connector) {
42
45
  return this._mediator.execute(new GetConnectorRectReferenceRequest(connector));
43
46
  }
47
+ _withDelta(rect, delta) {
48
+ return RoundedRect.fromRoundedRect(rect).addPoint(delta);
49
+ }
44
50
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1ub2RlLWNvbm5lY3Rpb24taGFuZGxlci1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9kcmFnLW5vZGUvZHJhZy1ub2RlLWRlcGVuZGVudC1jb25uZWN0aW9uLWhhbmRsZXJzL2RyYWctbm9kZS1jb25uZWN0aW9uLWhhbmRsZXItYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBcUIsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsaUNBQWlDLEdBRWxDLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsTUFBTSxPQUFPLDZCQUE2QjtJQUN2QixTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsQyxVQUFVLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFFekQsT0FBTyxDQUFrQjtJQUN6QixPQUFPLENBQWtCO0lBRXpCLFVBQVUsQ0FBcUI7SUFDL0IsVUFBVSxDQUFxQjtJQUUvQixZQUFZLEdBQVcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BELFlBQVksR0FBVyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFckQsVUFBVSxDQUFtQjtJQUU3QixVQUFVLENBQUMsVUFBMkI7UUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFFN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFhO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFTSxjQUFjLENBQUMsS0FBYTtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRVMsTUFBTTtRQUNkLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQzNFLElBQUksQ0FBQyxZQUFZLENBQ2xCLENBQUM7UUFDRixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUMzRSxJQUFJLENBQUMsWUFBWSxDQUNsQixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDM0IsSUFBSSxpQ0FBaUMsQ0FDbkMsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FDM0MsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLFlBQVksQ0FBQyxTQUF5QjtRQUM1QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQixJQUFJLGdDQUFnQyxDQUFDLFNBQVMsQ0FBQyxDQUNoRCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxpbmUsIElQb2ludCwgUG9pbnRFeHRlbnNpb25zLCBSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBHZXRDb25uZWN0b3JSZWN0UmVmZXJlbmNlUmVxdWVzdCwgSUNvbm5lY3RvclJlY3RSZWYgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyLFxuICBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlclJlcXVlc3QsXG4gIEZDb25uZWN0aW9uQmFzZSxcbn0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0aW9uLXYyJztcblxuZXhwb3J0IGNsYXNzIERyYWdOb2RlQ29ubmVjdGlvbkhhbmRsZXJCYXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2JlaGF2aW91ciA9IGluamVjdChDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlcik7XG5cbiAgcHJpdmF0ZSBfc291cmNlITogRkNvbm5lY3RvckJhc2U7XG4gIHByaXZhdGUgX3RhcmdldCE6IEZDb25uZWN0b3JCYXNlO1xuXG4gIHByaXZhdGUgX3NvdXJjZVJlZiE6IElDb25uZWN0b3JSZWN0UmVmO1xuICBwcml2YXRlIF90YXJnZXRSZWYhOiBJQ29ubmVjdG9yUmVjdFJlZjtcblxuICBwcml2YXRlIF9zb3VyY2VEZWx0YTogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgcHJpdmF0ZSBfdGFyZ2V0RGVsdGE6IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHVibGljIGNvbm5lY3Rpb24hOiBGQ29ubmVjdGlvbkJhc2U7XG5cbiAgcHVibGljIGluaXRpYWxpemUoY29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlKTogdm9pZCB7XG4gICAgdGhpcy5jb25uZWN0aW9uID0gY29ubmVjdGlvbjtcblxuICAgIHRoaXMuX3NvdXJjZSA9IHRoaXMuX3N0b3JlLm91dHB1dHMucmVxdWlyZSh0aGlzLmNvbm5lY3Rpb24uZk91dHB1dElkKCkpO1xuICAgIHRoaXMuX3RhcmdldCA9IHRoaXMuX3N0b3JlLmlucHV0cy5yZXF1aXJlKHRoaXMuY29ubmVjdGlvbi5mSW5wdXRJZCgpKTtcblxuICAgIHRoaXMuX3NvdXJjZVJlZiA9IHRoaXMuX3JlYWRSZWN0UmVmKHRoaXMuX3NvdXJjZSk7XG4gICAgdGhpcy5fdGFyZ2V0UmVmID0gdGhpcy5fcmVhZFJlY3RSZWYodGhpcy5fdGFyZ2V0KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTb3VyY2VEZWx0YShkZWx0YTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fc291cmNlRGVsdGEgPSBkZWx0YTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUYXJnZXREZWx0YShkZWx0YTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fdGFyZ2V0RGVsdGEgPSBkZWx0YTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWRyYXcoKTogdm9pZCB7XG4gICAgY29uc3QgbGluZSA9IHRoaXMuX2J1aWxkTGluZSgpO1xuICAgIHRoaXMuY29ubmVjdGlvbi5zZXRMaW5lKGxpbmUpO1xuICAgIHRoaXMuY29ubmVjdGlvbi5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2J1aWxkTGluZSgpOiBJTGluZSB7XG4gICAgY29uc3Qgc291cmNlUmVjdCA9IFJvdW5kZWRSZWN0LmZyb21Sb3VuZGVkUmVjdCh0aGlzLl9zb3VyY2VSZWYucmVjdCkuYWRkUG9pbnQoXG4gICAgICB0aGlzLl9zb3VyY2VEZWx0YSxcbiAgICApO1xuICAgIGNvbnN0IHRhcmdldFJlY3QgPSBSb3VuZGVkUmVjdC5mcm9tUm91bmRlZFJlY3QodGhpcy5fdGFyZ2V0UmVmLnJlY3QpLmFkZFBvaW50KFxuICAgICAgdGhpcy5fdGFyZ2V0RGVsdGEsXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLl9iZWhhdmlvdXIuaGFuZGxlKFxuICAgICAgbmV3IENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyUmVxdWVzdChcbiAgICAgICAgc291cmNlUmVjdCxcbiAgICAgICAgdGFyZ2V0UmVjdCxcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICB0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICAgIHRoaXMuX3RhcmdldFJlZi5jb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWRSZWN0UmVmKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpOiBJQ29ubmVjdG9yUmVjdFJlZiB7XG4gICAgcmV0dXJuIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvclJlY3RSZWY+KFxuICAgICAgbmV3IEdldENvbm5lY3RvclJlY3RSZWZlcmVuY2VSZXF1ZXN0KGNvbm5lY3RvciksXG4gICAgKTtcbiAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1ub2RlLWNvbm5lY3Rpb24taGFuZGxlci1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9kcmFnLW5vZGUvZHJhZy1ub2RlLWRlcGVuZGVudC1jb25uZWN0aW9uLWhhbmRsZXJzL2RyYWctbm9kZS1jb25uZWN0aW9uLWhhbmRsZXItYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBcUIsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsaUNBQWlDLEdBRWxDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakUsTUFBTSxPQUFPLDZCQUE2QjtJQUN2QixTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsQyxVQUFVLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFFekQsT0FBTyxDQUFrQjtJQUN6QixPQUFPLENBQWtCO0lBRXpCLFVBQVUsQ0FBcUI7SUFDL0IsVUFBVSxDQUFxQjtJQUUvQixZQUFZLEdBQVcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BELFlBQVksR0FBVyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFckQsVUFBVSxDQUFtQjtJQUU3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IHsgSUxpbmUsIElQb2ludCwgUG9pbnRFeHRlbnNpb25zLCBSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBHZXRDb25uZWN0b3JSZWN0UmVmZXJlbmNlUmVxdWVzdCwgSUNvbm5lY3RvclJlY3RSZWYgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyLFxuICBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlclJlcXVlc3QsXG4gIEZDb25uZWN0aW9uQmFzZSxcbn0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0aW9uLXYyJztcbmltcG9ydCB7IFNldEZDYWNoZUNvbm5lY3RvclJlY3RSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZi1jYWNoZSc7XG5cbmV4cG9ydCBjbGFzcyBEcmFnTm9kZUNvbm5lY3Rpb25IYW5kbGVyQmFzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9iZWhhdmlvdXIgPSBpbmplY3QoQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXIpO1xuXG4gIHByaXZhdGUgX3NvdXJjZSE6IEZDb25uZWN0b3JCYXNlO1xuICBwcml2YXRlIF90YXJnZXQhOiBGQ29ubmVjdG9yQmFzZTtcblxuICBwcml2YXRlIF9zb3VyY2VSZWYhOiBJQ29ubmVjdG9yUmVjdFJlZjtcbiAgcHJpdmF0ZSBfdGFyZ2V0UmVmITogSUNvbm5lY3RvclJlY3RSZWY7XG5cbiAgcHJpdmF0ZSBfc291cmNlRGVsdGE6IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gIHByaXZhdGUgX3RhcmdldERlbHRhOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHB1YmxpYyBjb25uZWN0aW9uITogRkNvbm5lY3Rpb25CYXNlO1xuXG4gIHB1YmxpYyBpbml0aWFsaXplKGNvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSk6IHZvaWQge1xuICAgIHRoaXMuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247XG5cbiAgICB0aGlzLl9zb3VyY2UgPSB0aGlzLl9zdG9yZS5vdXRwdXRzLnJlcXVpcmUodGhpcy5jb25uZWN0aW9uLmZPdXRwdXRJZCgpKTtcbiAgICB0aGlzLl90YXJnZXQgPSB0aGlzLl9zdG9yZS5pbnB1dHMucmVxdWlyZSh0aGlzLmNvbm5lY3Rpb24uZklucHV0SWQoKSk7XG5cbiAgICB0aGlzLl9zb3VyY2VSZWYgPSB0aGlzLl9yZWFkUmVjdFJlZih0aGlzLl9zb3VyY2UpO1xuICAgIHRoaXMuX3RhcmdldFJlZiA9IHRoaXMuX3JlYWRSZWN0UmVmKHRoaXMuX3RhcmdldCk7XG4gIH1cblxuICBwdWJsaWMgc2V0U291cmNlRGVsdGEoZGVsdGE6IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuX3NvdXJjZURlbHRhID0gZGVsdGE7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBTZXRGQ2FjaGVDb25uZWN0b3JSZWN0UmVxdWVzdChcbiAgICAgICAgdGhpcy5fc291cmNlLmZJZCgpLFxuICAgICAgICB0aGlzLl9zb3VyY2Uua2luZCxcbiAgICAgICAgdGhpcy5fd2l0aERlbHRhKHRoaXMuX3NvdXJjZVJlZi5yZWN0LCBkZWx0YSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0VGFyZ2V0RGVsdGEoZGVsdGE6IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuX3RhcmdldERlbHRhID0gZGVsdGE7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBTZXRGQ2FjaGVDb25uZWN0b3JSZWN0UmVxdWVzdChcbiAgICAgICAgdGhpcy5fdGFyZ2V0LmZJZCgpLFxuICAgICAgICB0aGlzLl90YXJnZXQua2luZCxcbiAgICAgICAgdGhpcy5fd2l0aERlbHRhKHRoaXMuX3RhcmdldFJlZi5yZWN0LCBkZWx0YSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVkcmF3KCk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLl9idWlsZExpbmUoKTtcbiAgICB0aGlzLmNvbm5lY3Rpb24uc2V0TGluZShsaW5lKTtcbiAgICB0aGlzLmNvbm5lY3Rpb24ucmVkcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIF9idWlsZExpbmUoKTogSUxpbmUge1xuICAgIGNvbnN0IHNvdXJjZVJlY3QgPSBSb3VuZGVkUmVjdC5mcm9tUm91bmRlZFJlY3QodGhpcy5fc291cmNlUmVmLnJlY3QpLmFkZFBvaW50KFxuICAgICAgdGhpcy5fc291cmNlRGVsdGEsXG4gICAgKTtcbiAgICBjb25zdCB0YXJnZXRSZWN0ID0gUm91bmRlZFJlY3QuZnJvbVJvdW5kZWRSZWN0KHRoaXMuX3RhcmdldFJlZi5yZWN0KS5hZGRQb2ludChcbiAgICAgIHRoaXMuX3RhcmdldERlbHRhLFxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5fYmVoYXZpb3VyLmhhbmRsZShcbiAgICAgIG5ldyBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlclJlcXVlc3QoXG4gICAgICAgIHNvdXJjZVJlY3QsXG4gICAgICAgIHRhcmdldFJlY3QsXG4gICAgICAgIHRoaXMuY29ubmVjdGlvbixcbiAgICAgICAgdGhpcy5fc291cmNlUmVmLmNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgICB0aGlzLl90YXJnZXRSZWYuY29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFkUmVjdFJlZihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogSUNvbm5lY3RvclJlY3RSZWYge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JSZWN0UmVmPihcbiAgICAgIG5ldyBHZXRDb25uZWN0b3JSZWN0UmVmZXJlbmNlUmVxdWVzdChjb25uZWN0b3IpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF93aXRoRGVsdGEocmVjdDogSUNvbm5lY3RvclJlY3RSZWZbJ3JlY3QnXSwgZGVsdGE6IElQb2ludCk6IElDb25uZWN0b3JSZWN0UmVmWydyZWN0J10ge1xuICAgIHJldHVybiBSb3VuZGVkUmVjdC5mcm9tUm91bmRlZFJlY3QocmVjdCkuYWRkUG9pbnQoZGVsdGEpO1xuICB9XG59XG4iXX0=
@@ -6,8 +6,8 @@ import { FExecutionRegister, FMediator } from '@foblex/mediator';
6
6
  import { FComponentsStore } from '../../../f-storage';
7
7
  import { FDraggableDataContext } from '../../f-draggable-data-context';
8
8
  import { DetectConnectionsUnderDragNodeRequest } from '../../domain';
9
- import { DragNodeHandler } from '../drag-node-handler';
10
9
  import { FMoveNodesEvent } from '../f-move-nodes-event';
10
+ import { isDragNodeHandler } from '../is-drag-node-handler';
11
11
  import * as i0 from "@angular/core";
12
12
  let DragNodeFinalize = class DragNodeFinalize {
13
13
  _mediator = inject(FMediator);
@@ -26,7 +26,7 @@ let DragNodeFinalize = class DragNodeFinalize {
26
26
  this._emitNodeIntersectIfNeeded(this._dragHandler);
27
27
  }
28
28
  _getDragHandler() {
29
- return this._dragSession.draggableItems.find((x) => x instanceof DragNodeHandler);
29
+ return this._dragSession.draggableItems.find(isDragNodeHandler);
30
30
  }
31
31
  _buildDragDelta(pointerPosition) {
32
32
  return Point.fromPoint(pointerPosition)
@@ -101,4 +101,4 @@ export { DragNodeFinalize };
101
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragNodeFinalize, decorators: [{
102
102
  type: Injectable
103
103
  }] });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1ub2RlLWZpbmFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9kcmFnLW5vZGUvZHJhZy1ub2RlLWZpbmFsaXplL2RyYWctbm9kZS1maW5hbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFVLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTWpELElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBQ1YsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbEMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRXRELFlBQVksQ0FBK0I7SUFFNUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUEyQjtRQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlB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QUEwQixDQUFDLE9BQXdCO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO1lBQzFGLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUF3QixDQUFDO1FBRTlELGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxxQ0FBcUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUMvRSxDQUFDO0lBQ0osQ0FBQztJQUVPLHFCQUFxQixDQUFDLE9BQXdCO1FBQ3BELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7d0dBL0dVLGdCQUFnQjs0R0FBaEIsZ0JBQWdCOztBQUFoQixnQkFBZ0I7SUFENUIsa0JBQWtCLENBQUMsdUJBQXVCLENBQUM7R0FDL0IsZ0JBQWdCLENBZ0g1Qjs7NEZBaEhZLGdCQUFnQjtrQkFGNUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJhZ05vZGVGaW5hbGl6ZVJlcXVlc3QgfSBmcm9tICcuL2RyYWctbm9kZS1maW5hbGl6ZS1yZXF1ZXN0JztcbmltcG9ydCB7IElQb2ludCwgUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBEZXRlY3RDb25uZWN0aW9uc1VuZGVyRHJhZ05vZGVSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IERyYWdOb2RlSGFuZGxlciB9IGZyb20gJy4uL2RyYWctbm9kZS1oYW5kbGVyJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGTW92ZU5vZGVzRXZlbnQgfSBmcm9tICcuLi9mLW1vdmUtbm9kZXMtZXZlbnQnO1xuaW1wb3J0IHsgSU1hZ25ldGljQXhpc0d1aWRlLCBJTWFnbmV0aWNHdWlkZXNSZXN1bHQgfSBmcm9tICcuLi9tYWduZXRpYy1saW5lcyc7XG5pbXBvcnQgeyBJTWFnbmV0aWNSZWN0c1Jlc3VsdCB9IGZyb20gJy4uL21hZ25ldGljLXJlY3RzJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihEcmFnTm9kZUZpbmFsaXplUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBEcmFnTm9kZUZpbmFsaXplIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxEcmFnTm9kZUZpbmFsaXplUmVxdWVzdCwgdm9pZD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ1Nlc3Npb24gPSBpbmplY3QoRkRyYWdnYWJsZURhdGFDb250ZXh0KTtcblxuICBwcml2YXRlIF9kcmFnSGFuZGxlcj86IERyYWdOb2RlSGFuZGxlciB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgaGFuZGxlKHsgZXZlbnQgfTogRHJhZ05vZGVGaW5hbGl6ZVJlcXVlc3QpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnSGFuZGxlciA9IHRoaXMuX2dldERyYWdIYW5kbGVyKCk7XG4gICAgaWYgKCF0aGlzLl9kcmFnSGFuZGxlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbHRhID0gdGhpcy5fYnVpbGREcmFnRGVsdGEoZXZlbnQuZ2V0UG9zaXRpb24oKSk7XG4gICAgY29uc3Qgc25hcHMgPSB0aGlzLl9kcmFnSGFuZGxlci5jYWxjdWxhdGVNYWduZXRpY1NuYXBzKGRlbHRhKTtcbiAgICBjb25zdCBzbmFwcGVkRGVsdGEgPSB0aGlzLl9hcHBseVNuYXBUb0RlbHRhKGRlbHRhLCBzbmFwcy5saW5lcywgc25hcHMucmVjdHMpO1xuXG4gICAgdGhpcy5fZmluYWxpemVNb3ZlKHRoaXMuX2RyYWdIYW5kbGVyLCBzbmFwcGVkRGVsdGEpO1xuICAgIHRoaXMuX2VtaXROb2RlSW50ZXJzZWN0SWZOZWVkZWQodGhpcy5fZHJhZ0hhbmRsZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RHJhZ0hhbmRsZXIoKTogRHJhZ05vZGVIYW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZHJhZ1Nlc3Npb24uZHJhZ2dhYmxlSXRlbXMuZmluZCgoeCkgPT4geCBpbnN0YW5jZW9mIERyYWdOb2RlSGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIF9idWlsZERyYWdEZWx0YShwb2ludGVyUG9zaXRpb246IElQb2ludCk6IFBvaW50IHtcbiAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHBvaW50ZXJQb3NpdGlvbilcbiAgICAgIC5lbGVtZW50VHJhbnNmb3JtKHRoaXMuX3N0b3JlLmZsb3dIb3N0KVxuICAgICAgLmRpdih0aGlzLl9kcmFnU2Vzc2lvbi5vblBvaW50ZXJEb3duU2NhbGUpXG4gICAgICAuc3ViKHRoaXMuX2RyYWdTZXNzaW9uLm9uUG9pbnRlckRvd25Qb3NpdGlvbik7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseVNuYXBUb0RlbHRhKFxuICAgIGRlbHRhOiBJUG9pbnQsXG4gICAgbGluZVNuYXA/OiBJTWFnbmV0aWNHdWlkZXNSZXN1bHQsXG4gICAgcmVjdFNuYXA/OiBJTWFnbmV0aWNSZWN0c1Jlc3VsdCxcbiAgKTogSVBvaW50IHtcbiAgICBsZXQgeCA9IGRlbHRhLng7XG4gICAgbGV0IHkgPSBkZWx0YS55O1xuXG4gICAgaWYgKGxpbmVTbmFwKSB7XG4gICAgICB4ID0gdGhpcy5faGFzTGluZVNuYXBWYWx1ZShsaW5lU25hcC54KSA/IGRlbHRhLnggLSAobGluZVNuYXAueC5kZWx0YSB8fCAwKSA6IHg7XG4gICAgICB5ID0gdGhpcy5faGFzTGluZVNuYXBWYWx1ZShsaW5lU25hcC55KSA/IGRlbHRhLnkgLSAobGluZVNuYXAueS5kZWx0YSB8fCAwKSA6IHk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2hhc1JlY3RTbmFwVmFsdWUocmVjdFNuYXApKSB7XG4gICAgICBpZiAocmVjdFNuYXAuYXhpcyA9PT0gJ3gnKSB7XG4gICAgICAgIHggPSBkZWx0YS54IC0gcmVjdFNuYXAuZGVsdGE7XG4gICAgICAgIHkgPSBkZWx0YS55IC0gKHJlY3RTbmFwLmNyb3NzRGVsdGEgPz8gMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB5ID0gZGVsdGEueSAtIHJlY3RTbmFwLmRlbHRhO1xuICAgICAgICB4ID0gZGVsdGEueCAtIChyZWN0U25hcC5jcm9zc0RlbHRhID8/IDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IHgsIHkgfTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhc0xpbmVTbmFwVmFsdWUocmVzdWx0OiBJTWFnbmV0aWNBeGlzR3VpZGUpOiBib29sZWFuIHtcbiAgICAvLyBkaXN0YW5jZSBpcyBhc3N1bWVkIHRvIGV4aXN0IHdoZW4gdmFsdWUgaXMgZGVmaW5lZCAoYXMgaW4geW91ciBjdXJyZW50IGxvZ2ljKVxuICAgIHJldHVybiByZXN1bHQuZ3VpZGUgIT09IHVuZGVmaW5lZCAmJiByZXN1bHQuZ3VpZGUgIT09IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9oYXNSZWN0U25hcFZhbHVlKFxuICAgIHJlc3VsdD86IElNYWduZXRpY1JlY3RzUmVzdWx0LFxuICApOiByZXN1bHQgaXMgSU1hZ25ldGljUmVjdHNSZXN1bHQgJiB7IGF4aXM6ICd4JyB8ICd5JzsgZGVsdGE6IG51bWJlciB9IHtcbiAgICByZXR1cm4gISFyZXN1bHQgJiYgcmVzdWx0LmF4aXMgIT09IHVuZGVmaW5lZCAmJiByZXN1bHQuZGVsdGEgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmFsaXplTW92ZShoYW5kbGVyOiBEcmFnTm9kZUhhbmRsZXIsIGRlbHRhOiBJUG9pbnQpOiB2b2lkIHtcbiAgICAvLyBmaW5hbGl6ZSBjb25zdHJhaW50cyBmb3Igcm9vdHNcbiAgICBmb3IgKGNvbnN0IHJvb3Qgb2YgaGFuZGxlci5yb290cykge1xuICAgICAgcm9vdC5maW5hbGl6ZUNvbnN0cmFpbnRzKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlci5vblBvaW50ZXJNb3ZlKGRlbHRhKTtcbiAgICBoYW5kbGVyLm9uUG9pbnRlclVwPy4oKTtcblxuICAgIHRoaXMuX3N0b3JlLmZEcmFnZ2FibGU/LmZNb3ZlTm9kZXMuZW1pdCh0aGlzLl9idWlsZE1vdmVOb2Rlc0V2ZW50KGhhbmRsZXIpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2J1aWxkTW92ZU5vZGVzRXZlbnQoaGFuZGxlcjogRHJhZ05vZGVIYW5kbGVyKTogRk1vdmVOb2Rlc0V2ZW50IHtcbiAgICAvLyBQcmVmZXIgbmV3IGV2ZW50IHNoYXBlOiBraW5kL2RhdGFcbiAgICAvLyBidXQga2VlcCBiYWNrd2FyZCBjb21wYXQ6IGZEYXRhXG4gICAgY29uc3QgZHJhZ0V2ZW50ID0gaGFuZGxlci5nZXRFdmVudCgpO1xuICAgIGNvbnN0IGRhdGEgPSBkcmFnRXZlbnQuZGF0YSA/PyBkcmFnRXZlbnQuZkRhdGE7XG5cbiAgICBjb25zdCBpZHM6IHN0cmluZ1tdID0gZGF0YT8uZk5vZGVJZHMgPz8gW107XG5cbiAgICBjb25zdCBub2RlcyA9IGlkcy5tYXAoKGlkKSA9PiAoe1xuICAgICAgaWQsXG4gICAgICBwb3NpdGlvbjogdGhpcy5fc3RvcmUubm9kZXMuZ2V0KGlkKT8uX3Bvc2l0aW9uIGFzIElQb2ludCxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gbmV3IEZNb3ZlTm9kZXNFdmVudChub2Rlcyk7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0Tm9kZUludGVyc2VjdElmTmVlZGVkKGhhbmRsZXI6IERyYWdOb2RlSGFuZGxlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNEcmFnZ2VkSnVzdE9uZU5vZGUoaGFuZGxlcikgfHwgIXRoaXMuX3N0b3JlLmZEcmFnZ2FibGU/LmZFbWl0T25Ob2RlSW50ZXJzZWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZU9yR3JvdXAgPSBoYW5kbGVyLnJvb3RzWzBdLm5vZGVPckdyb3VwIGFzIEZOb2RlQmFzZTtcblxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+XG4gICAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBEZXRlY3RDb25uZWN0aW9uc1VuZGVyRHJhZ05vZGVSZXF1ZXN0KG5vZGVPckdyb3VwKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzRHJhZ2dlZEp1c3RPbmVOb2RlKGhhbmRsZXI6IERyYWdOb2RlSGFuZGxlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYW5kbGVyLnJvb3RzLmxlbmd0aCA9PT0gMTtcbiAgfVxufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1ub2RlLWZpbmFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9kcmFnLW5vZGUvZHJhZy1ub2RlLWZpbmFsaXplL2RyYWctbm9kZS1maW5hbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFVLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFJckQsSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFDVixTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsQyxZQUFZLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFdEQsWUFBWSxDQUErQjtJQUU1QyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQTJCO1FBQzlDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMs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LElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFLENBQUM7WUFDMUYsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQXdCLENBQUM7UUFFOUQsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLHFDQUFxQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQy9FLENBQUM7SUFDSixDQUFDO0lBRU8scUJBQXFCLENBQUMsT0FBd0I7UUFDcEQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzt3R0EvR1UsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7O0FBQWhCLGdCQUFnQjtJQUQ1QixrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQztHQUMvQixnQkFBZ0IsQ0FnSDVCOzs0RkFoSFksZ0JBQWdCO2tCQUY1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEcmFnTm9kZUZpbmFsaXplUmVxdWVzdCB9IGZyb20gJy4vZHJhZy1ub2RlLWZpbmFsaXplLXJlcXVlc3QnO1xuaW1wb3J0IHsgSVBvaW50LCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IERldGVjdENvbm5lY3Rpb25zVW5kZXJEcmFnTm9kZVJlcXVlc3QgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRHJhZ05vZGVIYW5kbGVyIH0gZnJvbSAnLi4vZHJhZy1ub2RlLWhhbmRsZXInO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZNb3ZlTm9kZXNFdmVudCB9IGZyb20gJy4uL2YtbW92ZS1ub2Rlcy1ldmVudCc7XG5pbXBvcnQgeyBJTWFnbmV0aWNBeGlzR3VpZGUsIElNYWduZXRpY0d1aWRlc1Jlc3VsdCB9IGZyb20gJy4uL21hZ25ldGljLWxpbmVzJztcbmltcG9ydCB7IElNYWduZXRpY1JlY3RzUmVzdWx0IH0gZnJvbSAnLi4vbWFnbmV0aWMtcmVjdHMnO1xuaW1wb3J0IHsgaXNEcmFnTm9kZUhhbmRsZXIgfSBmcm9tICcuLi9pcy1kcmFnLW5vZGUtaGFuZGxlcic7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoRHJhZ05vZGVGaW5hbGl6ZVJlcXVlc3QpXG5leHBvcnQgY2xhc3MgRHJhZ05vZGVGaW5hbGl6ZSBpbXBsZW1lbnRzIElFeGVjdXRpb248RHJhZ05vZGVGaW5hbGl6ZVJlcXVlc3QsIHZvaWQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdTZXNzaW9uID0gaW5qZWN0KEZEcmFnZ2FibGVEYXRhQ29udGV4dCk7XG5cbiAgcHJpdmF0ZSBfZHJhZ0hhbmRsZXI/OiBEcmFnTm9kZUhhbmRsZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGhhbmRsZSh7IGV2ZW50IH06IERyYWdOb2RlRmluYWxpemVSZXF1ZXN0KTogdm9pZCB7XG4gICAgdGhpcy5fZHJhZ0hhbmRsZXIgPSB0aGlzLl9nZXREcmFnSGFuZGxlcigpO1xuICAgIGlmICghdGhpcy5fZHJhZ0hhbmRsZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZWx0YSA9IHRoaXMuX2J1aWxkRHJhZ0RlbHRhKGV2ZW50LmdldFBvc2l0aW9uKCkpO1xuICAgIGNvbnN0IHNuYXBzID0gdGhpcy5fZHJhZ0hhbmRsZXIuY2FsY3VsYXRlTWFnbmV0aWNTbmFwcyhkZWx0YSk7XG4gICAgY29uc3Qgc25hcHBlZERlbHRhID0gdGhpcy5fYXBwbHlTbmFwVG9EZWx0YShkZWx0YSwgc25hcHMubGluZXMsIHNuYXBzLnJlY3RzKTtcblxuICAgIHRoaXMuX2ZpbmFsaXplTW92ZSh0aGlzLl9kcmFnSGFuZGxlciwgc25hcHBlZERlbHRhKTtcbiAgICB0aGlzLl9lbWl0Tm9kZUludGVyc2VjdElmTmVlZGVkKHRoaXMuX2RyYWdIYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERyYWdIYW5kbGVyKCk6IERyYWdOb2RlSGFuZGxlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2RyYWdTZXNzaW9uLmRyYWdnYWJsZUl0ZW1zLmZpbmQoaXNEcmFnTm9kZUhhbmRsZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGREcmFnRGVsdGEocG9pbnRlclBvc2l0aW9uOiBJUG9pbnQpOiBQb2ludCB7XG4gICAgcmV0dXJuIFBvaW50LmZyb21Qb2ludChwb2ludGVyUG9zaXRpb24pXG4gICAgICAuZWxlbWVudFRyYW5zZm9ybSh0aGlzLl9zdG9yZS5mbG93SG9zdClcbiAgICAgIC5kaXYodGhpcy5fZHJhZ1Nlc3Npb24ub25Qb2ludGVyRG93blNjYWxlKVxuICAgICAgLnN1Yih0aGlzLl9kcmFnU2Vzc2lvbi5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlTbmFwVG9EZWx0YShcbiAgICBkZWx0YTogSVBvaW50LFxuICAgIGxpbmVTbmFwPzogSU1hZ25ldGljR3VpZGVzUmVzdWx0LFxuICAgIHJlY3RTbmFwPzogSU1hZ25ldGljUmVjdHNSZXN1bHQsXG4gICk6IElQb2ludCB7XG4gICAgbGV0IHggPSBkZWx0YS54O1xuICAgIGxldCB5ID0gZGVsdGEueTtcblxuICAgIGlmIChsaW5lU25hcCkge1xuICAgICAgeCA9IHRoaXMuX2hhc0xpbmVTbmFwVmFsdWUobGluZVNuYXAueCkgPyBkZWx0YS54IC0gKGxpbmVTbmFwLnguZGVsdGEgfHwgMCkgOiB4O1xuICAgICAgeSA9IHRoaXMuX2hhc0xpbmVTbmFwVmFsdWUobGluZVNuYXAueSkgPyBkZWx0YS55IC0gKGxpbmVTbmFwLnkuZGVsdGEgfHwgMCkgOiB5O1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9oYXNSZWN0U25hcFZhbHVlKHJlY3RTbmFwKSkge1xuICAgICAgaWYgKHJlY3RTbmFwLmF4aXMgPT09ICd4Jykge1xuICAgICAgICB4ID0gZGVsdGEueCAtIHJlY3RTbmFwLmRlbHRhO1xuICAgICAgICB5ID0gZGVsdGEueSAtIChyZWN0U25hcC5jcm9zc0RlbHRhID8/IDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgeSA9IGRlbHRhLnkgLSByZWN0U25hcC5kZWx0YTtcbiAgICAgICAgeCA9IGRlbHRhLnggLSAocmVjdFNuYXAuY3Jvc3NEZWx0YSA/PyAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyB4LCB5IH07XG4gIH1cblxuICBwcml2YXRlIF9oYXNMaW5lU25hcFZhbHVlKHJlc3VsdDogSU1hZ25ldGljQXhpc0d1aWRlKTogYm9vbGVhbiB7XG4gICAgLy8gZGlzdGFuY2UgaXMgYXNzdW1lZCB0byBleGlzdCB3aGVuIHZhbHVlIGlzIGRlZmluZWQgKGFzIGluIHlvdXIgY3VycmVudCBsb2dpYylcbiAgICByZXR1cm4gcmVzdWx0Lmd1aWRlICE9PSB1bmRlZmluZWQgJiYgcmVzdWx0Lmd1aWRlICE9PSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFzUmVjdFNuYXBWYWx1ZShcbiAgICByZXN1bHQ/OiBJTWFnbmV0aWNSZWN0c1Jlc3VsdCxcbiAgKTogcmVzdWx0IGlzIElNYWduZXRpY1JlY3RzUmVzdWx0ICYgeyBheGlzOiAneCcgfCAneSc7IGRlbHRhOiBudW1iZXIgfSB7XG4gICAgcmV0dXJuICEhcmVzdWx0ICYmIHJlc3VsdC5heGlzICE9PSB1bmRlZmluZWQgJiYgcmVzdWx0LmRlbHRhICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIF9maW5hbGl6ZU1vdmUoaGFuZGxlcjogRHJhZ05vZGVIYW5kbGVyLCBkZWx0YTogSVBvaW50KTogdm9pZCB7XG4gICAgLy8gZmluYWxpemUgY29uc3RyYWludHMgZm9yIHJvb3RzXG4gICAgZm9yIChjb25zdCByb290IG9mIGhhbmRsZXIucm9vdHMpIHtcbiAgICAgIHJvb3QuZmluYWxpemVDb25zdHJhaW50cygpO1xuICAgIH1cblxuICAgIGhhbmRsZXIub25Qb2ludGVyTW92ZShkZWx0YSk7XG4gICAgaGFuZGxlci5vblBvaW50ZXJVcD8uKCk7XG5cbiAgICB0aGlzLl9zdG9yZS5mRHJhZ2dhYmxlPy5mTW92ZU5vZGVzLmVtaXQodGhpcy5fYnVpbGRNb3ZlTm9kZXNFdmVudChoYW5kbGVyKSk7XG4gIH1cblxuICBwcml2YXRlIF9idWlsZE1vdmVOb2Rlc0V2ZW50KGhhbmRsZXI6IERyYWdOb2RlSGFuZGxlcik6IEZNb3ZlTm9kZXNFdmVudCB7XG4gICAgLy8gUHJlZmVyIG5ldyBldmVudCBzaGFwZToga2luZC9kYXRhXG4gICAgLy8gYnV0IGtlZXAgYmFja3dhcmQgY29tcGF0OiBmRGF0YVxuICAgIGNvbnN0IGRyYWdFdmVudCA9IGhhbmRsZXIuZ2V0RXZlbnQoKTtcbiAgICBjb25zdCBkYXRhID0gZHJhZ0V2ZW50LmRhdGEgPz8gZHJhZ0V2ZW50LmZEYXRhO1xuXG4gICAgY29uc3QgaWRzOiBzdHJpbmdbXSA9IGRhdGE/LmZOb2RlSWRzID8/IFtdO1xuXG4gICAgY29uc3Qgbm9kZXMgPSBpZHMubWFwKChpZCkgPT4gKHtcbiAgICAgIGlkLFxuICAgICAgcG9zaXRpb246IHRoaXMuX3N0b3JlLm5vZGVzLmdldChpZCk/Ll9wb3NpdGlvbiBhcyBJUG9pbnQsXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIG5ldyBGTW92ZU5vZGVzRXZlbnQobm9kZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdE5vZGVJbnRlcnNlY3RJZk5lZWRlZChoYW5kbGVyOiBEcmFnTm9kZUhhbmRsZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzRHJhZ2dlZEp1c3RPbmVOb2RlKGhhbmRsZXIpIHx8ICF0aGlzLl9zdG9yZS5mRHJhZ2dhYmxlPy5mRW1pdE9uTm9kZUludGVyc2VjdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGVPckdyb3VwID0gaGFuZGxlci5yb290c1swXS5ub2RlT3JHcm91cCBhcyBGTm9kZUJhc2U7XG5cbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PlxuICAgICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgRGV0ZWN0Q29ubmVjdGlvbnNVbmRlckRyYWdOb2RlUmVxdWVzdChub2RlT3JHcm91cCkpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc0RyYWdnZWRKdXN0T25lTm9kZShoYW5kbGVyOiBEcmFnTm9kZUhhbmRsZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFuZGxlci5yb290cy5sZW5ndGggPT09IDE7XG4gIH1cbn1cbiJdfQ==
@@ -2,10 +2,11 @@ import { RectExtensions } from '@foblex/2d';
2
2
  import { Injectable } from '@angular/core';
3
3
  import { DragHandlerBase } from '../../infrastructure';
4
4
  import { FDragNodeStartEventData } from '../f-drag-node-start-event-data';
5
+ import { DRAG_NODE_HANDLER_KIND, DRAG_NODE_HANDLER_TYPE } from '../is-drag-node-handler';
5
6
  import * as i0 from "@angular/core";
6
7
  export class DragNodeHandler extends DragHandlerBase {
7
- type = 'move-node';
8
- kind = 'drag-node';
8
+ type = DRAG_NODE_HANDLER_TYPE;
9
+ kind = DRAG_NODE_HANDLER_KIND;
9
10
  data() {
10
11
  return new FDragNodeStartEventData(this.items.map((x) => x.nodeOrGroup.fId()));
11
12
  }
@@ -79,7 +80,7 @@ export class DragNodeHandler extends DragHandlerBase {
79
80
  }
80
81
  }
81
82
  destroy() {
82
- for (const root of this.roots) {
83
+ for (const root of this.roots ?? []) {
83
84
  root.destroy?.();
84
85
  }
85
86
  }
@@ -89,4 +90,4 @@ export class DragNodeHandler extends DragHandlerBase {
89
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragNodeHandler, decorators: [{
90
91
  type: Injectable
91
92
  }] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1ub2RlLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RyYWctbm9kZS9kcmFnLW5vZGUtaGFuZGxlci9kcmFnLW5vZGUtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFLMUUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBd0M7SUFDeEQsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUNuQixJQUFJLEdBQUcsV0FBVyxDQUFDO0lBRW5CLElBQUk7UUFDckIsT0FBTyxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sY0FBYyxHQUFnQyxJQUFJLENBQUM7SUFDbkQsY0FBYyxHQUFnQyxJQUFJLENBQUM7SUFFM0Qsa0VBQWtFO0lBQzNELEtBQUssQ0FBeUI7SUFDckMseUVBQXlFO0lBQ2xFLEtBQUssQ0FBeUI7SUFFOUIsVUFBVTtJQUNmLGtFQUFrRTtJQUNsRSxLQUE0QjtJQUM1Qix5RUFBeUU7SUFDekUsS0FBNEI7UUFFNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLE9BQTZCO1FBQ25ELElBQUksQ0FBQyxjQUFj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b250ZW50IjpbImltcG9ydCB7IElQb2ludCwgSVJlY3QsIFJlY3RFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBEcmFnTm9kZUl0ZW1IYW5kbGVyIH0gZnJvbSAnLi9kcmFnLW5vZGUtaXRlbS1oYW5kbGVyJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERyYWdIYW5kbGVyQmFzZSB9IGZyb20gJy4uLy4uL2luZnJhc3RydWN0dXJlJztcbmltcG9ydCB7IEZEcmFnTm9kZVN0YXJ0RXZlbnREYXRhIH0gZnJvbSAnLi4vZi1kcmFnLW5vZGUtc3RhcnQtZXZlbnQtZGF0YSc7XG5pbXBvcnQgeyBJTWFnbmV0aWNHdWlkZXNSZXN1bHQsIE1hZ25ldGljTGluZXNIYW5kbGVyIH0gZnJvbSAnLi4vbWFnbmV0aWMtbGluZXMnO1xuaW1wb3J0IHsgSU1hZ25ldGljUmVjdHNSZXN1bHQsIE1hZ25ldGljUmVjdHNIYW5kbGVyIH0gZnJvbSAnLi4vbWFnbmV0aWMtcmVjdHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRHJhZ05vZGVIYW5kbGVyIGV4dGVuZHMgRHJhZ0hhbmRsZXJCYXNlPEZEcmFnTm9kZVN0YXJ0RXZlbnREYXRhPiB7XG4gIHByb3RlY3RlZCByZWFkb25seSB0eXBlID0gJ21vdmUtbm9kZSc7XG4gIHByb3RlY3RlZCByZWFkb25seSBraW5kID0gJ2RyYWctbm9kZSc7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRhdGEoKTogRkRyYWdOb2RlU3RhcnRFdmVudERhdGEge1xuICAgIHJldHVybiBuZXcgRkRyYWdOb2RlU3RhcnRFdmVudERhdGEodGhpcy5pdGVtcy5tYXAoKHgpID0+IHgubm9kZU9yR3JvdXAuZklkKCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgX21hZ25ldGljTGluZXM6IE1hZ25ldGljTGluZXNIYW5kbGVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX21hZ25ldGljUmVjdHM6IE1hZ25ldGljUmVjdHNIYW5kbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIEV2ZXJ5IGRyYWdnZWQgaXRlbSAobm9kZXMgKyBncm91cHMgaW5jbHVkaW5nIGRlZXAgY2hpbGRyZW4pICovXG4gIHB1YmxpYyBpdGVtcyE6IERyYWdOb2RlSXRlbUhhbmRsZXJbXTtcbiAgLyoqIFJvb3RzIG9mIGRyYWcgaGllcmFyY2h5ICh0b3AtbGV2ZWwgaXRlbXMgd2l0aG91dCBzZWxlY3RlZCBwYXJlbnRzKSAqL1xuICBwdWJsaWMgcm9vdHMhOiBEcmFnTm9kZUl0ZW1IYW5kbGVyW107XG5cbiAgcHVibGljIGluaXRpYWxpemUoXG4gICAgLyoqIEV2ZXJ5IGRyYWdnZWQgaXRlbSAobm9kZXMgKyBncm91cHMgaW5jbHVkaW5nIGRlZXAgY2hpbGRyZW4pICovXG4gICAgaXRlbXM6IERyYWdOb2RlSXRlbUhhbmRsZXJbXSxcbiAgICAvKiogUm9vdHMgb2YgZHJhZyBoaWVyYXJjaHkgKHRvcC1sZXZlbCBpdGVtcyB3aXRob3V0IHNlbGVjdGVkIHBhcmVudHMpICovXG4gICAgcm9vdHM6IERyYWdOb2RlSXRlbUhhbmRsZXJbXSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xuICAgIHRoaXMucm9vdHMgPSByb290cztcbiAgfVxuXG4gIHB1YmxpYyBzZXRNYWduZXRpY0xpbmVzKGhhbmRsZXI6IE1hZ25ldGljTGluZXNIYW5kbGVyKTogdm9pZCB7XG4gICAgdGhpcy5fbWFnbmV0aWNMaW5lcyA9IGhhbmRsZXI7XG4gIH1cblxuICBwdWJsaWMgc2V0TWFnbmV0aWNSZWN0cyhoYW5kbGVyOiBNYWduZXRpY1JlY3RzSGFuZGxlcik6IHZvaWQge1xuICAgIHRoaXMuX21hZ25ldGljUmVjdHMgPSBoYW5kbGVyO1xuICB9XG5cbiAgcHVibGljIGNhbGN1bGF0ZU1hZ25ldGljTGluZXNHdWlkZXMoZGVsdGE6IElQb2ludCk6IElNYWduZXRpY0d1aWRlc1Jlc3VsdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlTWFnbmV0aWNTbmFwcyhkZWx0YSkubGluZXM7XG4gIH1cblxuICBwdWJsaWMgY2FsY3VsYXRlTWFnbmV0aWNTbmFwcyhkZWx0YTogSVBvaW50KToge1xuICAgIGxpbmVzPzogSU1hZ25ldGljR3VpZGVzUmVzdWx0O1xuICAgIHJlY3RzPzogSU1hZ25ldGljUmVjdHNSZXN1bHQ7XG4gIH0ge1xuICAgIC8vIHByZXZpZXcgbW92ZSByb290cyB0byB1cGRhdGUgdGhlaXIgbGFzdCByZWN0c1xuICAgIHRoaXMuX3ByZXZpZXdSb290cyhkZWx0YSk7XG5cbiAgICBjb25zdCBkcmFnZ2VkUmVjdCA9IHRoaXMuX3Jvb3RzVW5pb25SZWN0KCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGluZXM6IHRoaXMuX21hZ25ldGljTGluZXM/Ll9jb21wdXRlR3VpZGVzKGRyYWdnZWRSZWN0KSxcbiAgICAgIHJlY3RzOiB0aGlzLl9tYWduZXRpY1JlY3RzPy5fY29tcHV0ZVJlY3RzKGRyYWdnZWRSZWN0KSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHByZXBhcmVEcmFnU2VxdWVuY2UoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCByb290IG9mIHRoaXMucm9vdHMpIHtcbiAgICAgIHJvb3QucHJlcGFyZURyYWdTZXF1ZW5jZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGRlbHRhOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9wcmV2aWV3Um9vdHMoZGVsdGEpO1xuXG4gICAgY29uc3QgZHJhZ2dlZFJlY3QgPSB0aGlzLl9yb290c1VuaW9uUmVjdCgpO1xuICAgIHRoaXMuX21hZ25ldGljTGluZXM/LnNjaGVkdWxlUmVuZGVyKGRyYWdnZWRSZWN0KTtcbiAgICB0aGlzLl9tYWduZXRpY1JlY3RzPy5zY2hlZHVsZVJlbmRlcihkcmFnZ2VkUmVjdCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyVXAoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCByb290IG9mIHRoaXMucm9vdHMpIHtcbiAgICAgIHJvb3Qub25Qb2ludGVyVXAoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9tYWduZXRpY0xpbmVzPy5jbGVhckd1aWRlcygpO1xuICAgIHRoaXMuX21hZ25ldGljUmVjdHM/LmNsZWFyR3VpZGVzKCk7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMuX3JlZnJlc2hEcmFnZ2VkTm9kZXMoKSk7XG4gIH1cblxuICBwcml2YXRlIF9wcmV2aWV3Um9vdHMoZGVsdGE6IElQb2ludCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgcm9vdCBvZiB0aGlzLnJvb3RzKSB7XG4gICAgICByb290Lm9uUG9pbnRlck1vdmUoZGVsdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Jvb3RzVW5pb25SZWN0KCk6IElSZWN0IHtcbiAgICBsZXQgcmVzdWx0OiBJUmVjdCB8IG51bGwgPSBudWxsO1xuXG4gICAgZm9yIChjb25zdCByb290IG9mIHRoaXMucm9vdHMpIHtcbiAgICAgIGNvbnN0IHJlY3QgPSByb290LmdldExhc3RSZWN0KCk7XG4gICAgICByZXN1bHQgPSByZXN1bHQgPyBSZWN0RXh0ZW5zaW9ucy51bmlvbihbcmVzdWx0LCByZWN0XSkgOiByZWN0O1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQgPz8gUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVmcmVzaERyYWdnZWROb2RlcygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHsgbm9kZU9yR3JvdXAgfSBvZiB0aGlzLnJvb3RzKSB7XG4gICAgICBub2RlT3JHcm91cC5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCByb290IG9mIHRoaXMucm9vdHMpIHtcbiAgICAgIHJvb3QuZGVzdHJveT8uKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1ub2RlLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RyYWctbm9kZS9kcmFnLW5vZGUtaGFuZGxlci9kcmFnLW5vZGUtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUcxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFHekYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBd0M7SUFDeEQsSUFBSSxHQUFHLHNCQUFzQixDQUFDO0lBQzlCLElBQUksR0FBRyxzQkFBc0IsQ0FBQztJQUU5QixJQUFJO1FBQ3JCLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVPLGNBQWMsR0FBZ0MsSUFBSSxDQUFDO0lBQ25ELGNBQWMsR0FBZ0MsSUFBSSxDQUFDO0lBRTNELGtFQUFrRTtJQUMzRCxLQUFLLENBQXlCO0lBQ3JDLHlFQUF5RTtJQUNsRSxLQUFLLENBQXlCO0lBRTlCLFVBQVU7SUFDZixrRUFBa0U7SUFDbEUsS0FBNEI7SUFDNUIseUVBQXlFO0lBQ3pFLEtBQTRCO1FBRTVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FB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QUFDO0lBQ0gsQ0FBQzt3R0F4R1UsZUFBZTs0R0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50LCBJUmVjdCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IERyYWdOb2RlSXRlbUhhbmRsZXIgfSBmcm9tICcuL2RyYWctbm9kZS1pdGVtLWhhbmRsZXInO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJhZ0hhbmRsZXJCYXNlIH0gZnJvbSAnLi4vLi4vaW5mcmFzdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgRkRyYWdOb2RlU3RhcnRFdmVudERhdGEgfSBmcm9tICcuLi9mLWRyYWctbm9kZS1zdGFydC1ldmVudC1kYXRhJztcbmltcG9ydCB7IElNYWduZXRpY0d1aWRlc1Jlc3VsdCwgTWFnbmV0aWNMaW5lc0hhbmRsZXIgfSBmcm9tICcuLi9tYWduZXRpYy1saW5lcyc7XG5pbXBvcnQgeyBJTWFnbmV0aWNSZWN0c1Jlc3VsdCwgTWFnbmV0aWNSZWN0c0hhbmRsZXIgfSBmcm9tICcuLi9tYWduZXRpYy1yZWN0cyc7XG5pbXBvcnQgeyBEUkFHX05PREVfSEFORExFUl9LSU5ELCBEUkFHX05PREVfSEFORExFUl9UWVBFIH0gZnJvbSAnLi4vaXMtZHJhZy1ub2RlLWhhbmRsZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRHJhZ05vZGVIYW5kbGVyIGV4dGVuZHMgRHJhZ0hhbmRsZXJCYXNlPEZEcmFnTm9kZVN0YXJ0RXZlbnREYXRhPiB7XG4gIHByb3RlY3RlZCByZWFkb25seSB0eXBlID0gRFJBR19OT0RFX0hBTkRMRVJfVFlQRTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGtpbmQgPSBEUkFHX05PREVfSEFORExFUl9LSU5EO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkYXRhKCk6IEZEcmFnTm9kZVN0YXJ0RXZlbnREYXRhIHtcbiAgICByZXR1cm4gbmV3IEZEcmFnTm9kZVN0YXJ0RXZlbnREYXRhKHRoaXMuaXRlbXMubWFwKCh4KSA9PiB4Lm5vZGVPckdyb3VwLmZJZCgpKSk7XG4gIH1cblxuICBwcml2YXRlIF9tYWduZXRpY0xpbmVzOiBNYWduZXRpY0xpbmVzSGFuZGxlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9tYWduZXRpY1JlY3RzOiBNYWduZXRpY1JlY3RzSGFuZGxlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBFdmVyeSBkcmFnZ2VkIGl0ZW0gKG5vZGVzICsgZ3JvdXBzIGluY2x1ZGluZyBkZWVwIGNoaWxkcmVuKSAqL1xuICBwdWJsaWMgaXRlbXMhOiBEcmFnTm9kZUl0ZW1IYW5kbGVyW107XG4gIC8qKiBSb290cyBvZiBkcmFnIGhpZXJhcmNoeSAodG9wLWxldmVsIGl0ZW1zIHdpdGhvdXQgc2VsZWN0ZWQgcGFyZW50cykgKi9cbiAgcHVibGljIHJvb3RzITogRHJhZ05vZGVJdGVtSGFuZGxlcltdO1xuXG4gIHB1YmxpYyBpbml0aWFsaXplKFxuICAgIC8qKiBFdmVyeSBkcmFnZ2VkIGl0ZW0gKG5vZGVzICsgZ3JvdXBzIGluY2x1ZGluZyBkZWVwIGNoaWxkcmVuKSAqL1xuICAgIGl0ZW1zOiBEcmFnTm9kZUl0ZW1IYW5kbGVyW10sXG4gICAgLyoqIFJvb3RzIG9mIGRyYWcgaGllcmFyY2h5ICh0b3AtbGV2ZWwgaXRlbXMgd2l0aG91dCBzZWxlY3RlZCBwYXJlbnRzKSAqL1xuICAgIHJvb3RzOiBEcmFnTm9kZUl0ZW1IYW5kbGVyW10sXG4gICk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcbiAgICB0aGlzLnJvb3RzID0gcm9vdHM7XG4gIH1cblxuICBwdWJsaWMgc2V0TWFnbmV0aWNMaW5lcyhoYW5kbGVyOiBNYWduZXRpY0xpbmVzSGFuZGxlcik6IHZvaWQge1xuICAgIHRoaXMuX21hZ25ldGljTGluZXMgPSBoYW5kbGVyO1xuICB9XG5cbiAgcHVibGljIHNldE1hZ25ldGljUmVjdHMoaGFuZGxlcjogTWFnbmV0aWNSZWN0c0hhbmRsZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9tYWduZXRpY1JlY3RzID0gaGFuZGxlcjtcbiAgfVxuXG4gIHB1YmxpYyBjYWxjdWxhdGVNYWduZXRpY0xpbmVzR3VpZGVzKGRlbHRhOiBJUG9pbnQpOiBJTWFnbmV0aWNHdWlkZXNSZXN1bHQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZU1hZ25ldGljU25hcHMoZGVsdGEpLmxpbmVzO1xuICB9XG5cbiAgcHVibGljIGNhbGN1bGF0ZU1hZ25ldGljU25hcHMoZGVsdGE6IElQb2ludCk6IHtcbiAgICBsaW5lcz86IElNYWduZXRpY0d1aWRlc1Jlc3VsdDtcbiAgICByZWN0cz86IElNYWduZXRpY1JlY3RzUmVzdWx0O1xuICB9IHtcbiAgICAvLyBwcmV2aWV3IG1vdmUgcm9vdHMgdG8gdXBkYXRlIHRoZWlyIGxhc3QgcmVjdHNcbiAgICB0aGlzLl9wcmV2aWV3Um9vdHMoZGVsdGEpO1xuXG4gICAgY29uc3QgZHJhZ2dlZFJlY3QgPSB0aGlzLl9yb290c1VuaW9uUmVjdCgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmVzOiB0aGlzLl9tYWduZXRpY0xpbmVzPy5fY29tcHV0ZUd1aWRlcyhkcmFnZ2VkUmVjdCksXG4gICAgICByZWN0czogdGhpcy5fbWFnbmV0aWNSZWN0cz8uX2NvbXB1dGVSZWN0cyhkcmFnZ2VkUmVjdCksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgcm9vdCBvZiB0aGlzLnJvb3RzKSB7XG4gICAgICByb290LnByZXBhcmVEcmFnU2VxdWVuY2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShkZWx0YTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fcHJldmlld1Jvb3RzKGRlbHRhKTtcblxuICAgIGNvbnN0IGRyYWdnZWRSZWN0ID0gdGhpcy5fcm9vdHNVbmlvblJlY3QoKTtcbiAgICB0aGlzLl9tYWduZXRpY0xpbmVzPy5zY2hlZHVsZVJlbmRlcihkcmFnZ2VkUmVjdCk7XG4gICAgdGhpcy5fbWFnbmV0aWNSZWN0cz8uc2NoZWR1bGVSZW5kZXIoZHJhZ2dlZFJlY3QpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlclVwKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgcm9vdCBvZiB0aGlzLnJvb3RzKSB7XG4gICAgICByb290Lm9uUG9pbnRlclVwKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fbWFnbmV0aWNMaW5lcz8uY2xlYXJHdWlkZXMoKTtcbiAgICB0aGlzLl9tYWduZXRpY1JlY3RzPy5jbGVhckd1aWRlcygpO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLl9yZWZyZXNoRHJhZ2dlZE5vZGVzKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJldmlld1Jvb3RzKGRlbHRhOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHJvb3Qgb2YgdGhpcy5yb290cykge1xuICAgICAgcm9vdC5vblBvaW50ZXJNb3ZlKGRlbHRhKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yb290c1VuaW9uUmVjdCgpOiBJUmVjdCB7XG4gICAgbGV0IHJlc3VsdDogSVJlY3QgfCBudWxsID0gbnVsbDtcblxuICAgIGZvciAoY29uc3Qgcm9vdCBvZiB0aGlzLnJvb3RzKSB7XG4gICAgICBjb25zdCByZWN0ID0gcm9vdC5nZXRMYXN0UmVjdCgpO1xuICAgICAgcmVzdWx0ID0gcmVzdWx0ID8gUmVjdEV4dGVuc2lvbnMudW5pb24oW3Jlc3VsdCwgcmVjdF0pIDogcmVjdDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0ID8/IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlZnJlc2hEcmFnZ2VkTm9kZXMoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCB7IG5vZGVPckdyb3VwIH0gb2YgdGhpcy5yb290cykge1xuICAgICAgbm9kZU9yR3JvdXAucmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkZXN0cm95KCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgcm9vdCBvZiB0aGlzLnJvb3RzID8/IFtdKSB7XG4gICAgICByb290LmRlc3Ryb3k/LigpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -2,15 +2,17 @@ import { PointExtensions, RectExtensions } from '@foblex/2d';
2
2
  import { FMediator } from '@foblex/mediator';
3
3
  import { DragHandlerBase } from '../../infrastructure';
4
4
  import { DragNodeDeltaConstraints, expandRectByOverflow, } from '../drag-node-constraint';
5
- import { F_CSS_CLASS, GetNormalizedElementRectRequest } from '../../../domain';
5
+ import { F_CSS_CLASS, GetConnectorRectReferenceRequest, GetNormalizedElementRectRequest, } from '../../../domain';
6
+ import { SetFCacheNodeRectRequest } from '../../../f-cache';
7
+ import { DRAG_NODE_HANDLER_KIND, DRAG_NODE_HANDLER_TYPE } from '../is-drag-node-handler';
6
8
  export class DragNodeItemHandler extends DragHandlerBase {
7
9
  _injector;
8
10
  nodeOrGroup;
9
11
  children;
10
12
  sourceConnectionHandlers;
11
13
  targetConnectionHandlers;
12
- type = 'move-node';
13
- kind = 'drag-node';
14
+ type = DRAG_NODE_HANDLER_TYPE;
15
+ kind = DRAG_NODE_HANDLER_KIND;
14
16
  _startPosition = PointExtensions.initialize();
15
17
  _startRect = RectExtensions.initialize();
16
18
  _applyConstraints = (delta) => delta;
@@ -18,6 +20,7 @@ export class DragNodeItemHandler extends DragHandlerBase {
18
20
  _deltaConstraints;
19
21
  _constraints;
20
22
  _lastPosition = PointExtensions.initialize();
23
+ _softParentConnectionHandlers = [];
21
24
  _mediator;
22
25
  constructor(_injector, nodeOrGroup, children = [], sourceConnectionHandlers = [], targetConnectionHandlers = []) {
23
26
  super();
@@ -39,6 +42,9 @@ export class DragNodeItemHandler extends DragHandlerBase {
39
42
  return summary.hardDelta;
40
43
  };
41
44
  }
45
+ setSoftParentConnectionHandlers(handlers) {
46
+ this._softParentConnectionHandlers = handlers;
47
+ }
42
48
  finalizeConstraints() {
43
49
  // in finalize we force snap and commit expansions based on finalized delta
44
50
  this._applyConstraints = (delta) => {
@@ -83,6 +89,7 @@ export class DragNodeItemHandler extends DragHandlerBase {
83
89
  _redraw(position) {
84
90
  this._lastPosition = position;
85
91
  this.nodeOrGroup.updatePosition(position);
92
+ this._mediator.execute(new SetFCacheNodeRectRequest(this.nodeOrGroup.fId(), RectExtensions.initialize(position.x, position.y, this._startRect.width, this._startRect.height)));
86
93
  this.nodeOrGroup.redraw();
87
94
  }
88
95
  _applySoftExpansions(results) {
@@ -91,13 +98,49 @@ export class DragNodeItemHandler extends DragHandlerBase {
91
98
  const r = results[i];
92
99
  const soft = this._constraints.soft[i];
93
100
  const expandedRect = expandRectByOverflow(soft.boundingRect, r.overflow, r.edges);
94
- this._commitParentRect(soft.nodeOrGroup, expandedRect);
101
+ if (this._commitParentRect(soft.nodeOrGroup, expandedRect)) {
102
+ this._updateParentConnectionHandlers(i);
103
+ }
95
104
  }
96
105
  }
97
106
  _commitParentRect(parent, rect) {
107
+ const changed = parent._position.x !== rect.x ||
108
+ parent._position.y !== rect.y ||
109
+ parent._size?.width !== rect.width ||
110
+ parent._size?.height !== rect.height;
98
111
  parent.updateSize({ width: rect.width, height: rect.height });
99
112
  parent.updatePosition({ x: rect.x, y: rect.y });
113
+ this._mediator.execute(new SetFCacheNodeRectRequest(parent.fId(), rect));
100
114
  parent.redraw();
115
+ return changed;
116
+ }
117
+ _updateParentConnectionHandlers(softConstraintIndex) {
118
+ const handlers = this._softParentConnectionHandlers[softConstraintIndex];
119
+ if (!handlers) {
120
+ return;
121
+ }
122
+ const currentRectByConnectorId = new Map();
123
+ for (const source of handlers.source) {
124
+ const currentRect = this._readConnectorRect(source.connector, currentRectByConnectorId);
125
+ source.handler.setSourceDelta(this._buildDelta(source.baselineRect, currentRect));
126
+ }
127
+ for (const target of handlers.target) {
128
+ const currentRect = this._readConnectorRect(target.connector, currentRectByConnectorId);
129
+ target.handler.setTargetDelta(this._buildDelta(target.baselineRect, currentRect));
130
+ }
131
+ }
132
+ _readConnectorRect(connector, cache) {
133
+ const cacheKey = `${connector.kind}::${connector.fId()}`;
134
+ const cached = cache.get(cacheKey);
135
+ if (cached) {
136
+ return cached;
137
+ }
138
+ const rect = this._mediator.execute(new GetConnectorRectReferenceRequest(connector)).rect;
139
+ cache.set(cacheKey, rect);
140
+ return rect;
141
+ }
142
+ _buildDelta(baselineRect, currentRect) {
143
+ return PointExtensions.initialize(currentRect.x - baselineRect.x, currentRect.y - baselineRect.y);
101
144
  }
102
145
  _emitExpandedEvent() {
103
146
  for (let i = 0; i < this._lastSoftResults.length; i++) {
@@ -120,6 +163,7 @@ export class DragNodeItemHandler extends DragHandlerBase {
120
163
  // this._constraints = null;
121
164
  this._lastSoftResults = [];
122
165
  this._applyConstraints = (d) => d;
166
+ this._softParentConnectionHandlers = [];
123
167
  }
124
168
  }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1ub2RlLWl0ZW0taGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZHJhZy1ub2RlL2RyYWctbm9kZS1oYW5kbGVyL2RyYWctbm9kZS1pdGVtLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsR0FHckIsTUFBTSx5QkFBeUIsQ0FBQztBQUdqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0UsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQXdCO0lBa0I1QztJQUNEO0lBRVQ7SUFDQTtJQUNBO0lBdEJVLElBQUksR0FBRyxXQUFXLENBQUM7SUFDbkIsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUVyQixjQUFjLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlDLFVBQVUsR0FBRyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFbEQsaUJBQWlCLEdBQThCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUFFaEUsZ0JBQWdCLEdBQXdCLEVBQUUsQ0FBQztJQUMzQyxpQkFBaUIsQ0FBNEI7SUFFN0MsWUFBWSxDQUE2QjtJQUN6QyxhQUFhLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXBDLFNBQVMsQ0FBWTtJQUV0QyxZQUNtQixTQUFtQixFQUNwQixXQUFzQixFQUUvQixXQUFrQyxFQUFFLEVBQ3BDLDJCQUE0RCxFQUFFLEVBQzlELDJC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USxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVsRixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFFZSxPQUFPO1FBQ3JCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUM7UUFFbkMsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50LCBJUmVjdCwgUG9pbnRFeHRlbnNpb25zLCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRHJhZ0hhbmRsZXJCYXNlIH0gZnJvbSAnLi4vLi4vaW5mcmFzdHJ1Y3R1cmUnO1xuaW1wb3J0IHtcbiAgRHJhZ05vZGVEZWx0YUNvbnN0cmFpbnRzLFxuICBleHBhbmRSZWN0QnlPdmVyZmxvdyxcbiAgSURlbHRhQ2xhbXBSZXN1bHQsXG4gIElEcmFnTm9kZURlbHRhQ29uc3RyYWludHMsXG59IGZyb20gJy4uL2RyYWctbm9kZS1jb25zdHJhaW50JztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBEcmFnTm9kZUNvbm5lY3Rpb25IYW5kbGVyQmFzZSB9IGZyb20gJy4uL2RyYWctbm9kZS1kZXBlbmRlbnQtY29ubmVjdGlvbi1oYW5kbGVycyc7XG5pbXBvcnQgeyBGX0NTU19DTEFTUywgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cbmV4cG9ydCBjbGFzcyBEcmFnTm9kZUl0ZW1IYW5kbGVyIGV4dGVuZHMgRHJhZ0hhbmRsZXJCYXNlPHVua25vd24+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHR5cGUgPSAnbW92ZS1ub2RlJztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGtpbmQgPSAnZHJhZy1ub2RlJztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGFydFBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhcnRSZWN0ID0gUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByaXZhdGUgX2FwcGx5Q29uc3RyYWludHM6IChkZWx0YTogSVBvaW50KSA9PiBJUG9pbnQgPSAoZGVsdGEpID0+IGRlbHRhO1xuXG4gIHByaXZhdGUgX2xhc3RTb2Z0UmVzdWx0czogSURlbHRhQ2xhbXBSZXN1bHRbXSA9IFtdO1xuICBwcml2YXRlIF9kZWx0YUNvbnN0cmFpbnRzITogRHJhZ05vZGVEZWx0YUNvbnN0cmFpbnRzO1xuXG4gIHByaXZhdGUgX2NvbnN0cmFpbnRzITogSURyYWdOb2RlRGVsdGFDb25zdHJhaW50cztcbiAgcHJpdmF0ZSBfbGFzdFBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvcjogRk1lZGlhdG9yO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwdWJsaWMgcmVhZG9ubHkgbm9kZU9yR3JvdXA6IEZOb2RlQmFzZSxcblxuICAgIHB1YmxpYyBjaGlsZHJlbjogRHJhZ05vZGVJdGVtSGFuZGxlcltdID0gW10sXG4gICAgcHVibGljIHNvdXJjZUNvbm5lY3Rpb25IYW5kbGVyczogRHJhZ05vZGVDb25uZWN0aW9uSGFuZGxlckJhc2VbXSA9IFtdLFxuICAgIHB1YmxpYyB0YXJnZXRDb25uZWN0aW9uSGFuZGxlcnM6IERyYWdOb2RlQ29ubmVjdGlvbkhhbmRsZXJCYXNlW10gPSBbXSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX21lZGlhdG9yID0gX2luamVjdG9yLmdldChGTWVkaWF0b3IpO1xuXG4gICAgdGhpcy5fc3RhcnRSZWN0ID0gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0KG5vZGVPckdyb3VwLmhvc3RFbGVtZW50KSxcbiAgICApO1xuICAgIHRoaXMuX3N0YXJ0UG9zaXRpb24gPSB7IC4uLm5vZGVPckdyb3VwLl9wb3NpdGlvbiB9O1xuICB9XG5cbiAgcHVibGljIHNldENvbnN0cmFpbnRzKGNvbnN0cmFpbnRzOiBJRHJhZ05vZGVEZWx0YUNvbnN0cmFpbnRzKTogdm9pZCB7XG4gICAgdGhpcy5fY29uc3RyYWludHMgPSBjb25zdHJhaW50cztcbiAgICB0aGlzLl9kZWx0YUNvbnN0cmFpbnRzID0gbmV3IERyYWdOb2RlRGVsdGFDb25zdHJhaW50cyhcbiAgICAgIHRoaXMuX2luamVjdG9yLFxuICAgICAgdGhpcy5fc3RhcnRQb3NpdGlvbixcbiAgICAgIGNvbnN0cmFpbnRzLFxuICAgICk7XG5cbiAgICB0aGlzLl9hcHBseUNvbnN0cmFpbnRzID0gKGRpZmZlcmVuY2UpID0+IHtcbiAgICAgIGNvbnN0IHN1bW1hcnkgPSB0aGlzLl9kZWx0YUNvbnN0cmFpbnRzLmFwcGx5KGRpZmZlcmVuY2UpO1xuICAgICAgdGhpcy5fYXBwbHlTb2Z0RXhwYW5zaW9ucyhzdW1tYXJ5LnNvZnQpO1xuXG4gICAgICByZXR1cm4gc3VtbWFyeS5oYXJkRGVsdGE7XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5hbGl6ZUNvbnN0cmFpbnRzKCk6IHZvaWQge1xuICAgIC8vIGluIGZpbmFsaXplIHdlIGZvcmNlIHNuYXAgYW5kIGNvbW1pdCBleHBhbnNpb25zIGJhc2VkIG9uIGZpbmFsaXplZCBkZWx0YVxuICAgIHRoaXMuX2FwcGx5Q29uc3RyYWludHMgPSAoZGVsdGEpID0+IHtcbiAgICAgIGNvbnN0IHN1bW1hcnkgPSB0aGlzLl9kZWx0YUNvbnN0cmFpbnRzLmZpbmFsaXplKGRlbHRhKTtcbiAgICAgIHRoaXMuX2FwcGx5U29mdEV4cGFuc2lvbnMoc3VtbWFyeS5zb2Z0KTtcblxuICAgICAgcmV0dXJuIHN1bW1hcnkuaGFyZERlbHRhO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFzdFJlY3QoKTogSVJlY3Qge1xuICAgIHJldHVybiBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKFxuICAgICAgdGhpcy5fbGFzdFBvc2l0aW9uLngsXG4gICAgICB0aGlzLl9sYXN0UG9zaXRpb24ueSxcbiAgICAgIHRoaXMuX3N0YXJ0UmVjdC53aWR0aCxcbiAgICAgIHRoaXMuX3N0YXJ0UmVjdC5oZWlnaHQsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgY2hpbGQucHJlcGFyZURyYWdTZXF1ZW5jZSgpO1xuICAgIH1cblxuICAgIHRoaXMubm9kZU9yR3JvdXAuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChGX0NTU19DTEFTUy5EUkFHX0FORF9EUk9QLkRSQUdHSU5HKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGRlbHRhOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb25zdHJhaW5lZCA9IHRoaXMuX2FwcGx5Q29uc3RyYWludHMoZGVsdGEpO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICBjaGlsZC5vblBvaW50ZXJNb3ZlKGNvbnN0cmFpbmVkKTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZWRyYXcodGhpcy5fc3RhcnRQbHVzKGNvbnN0cmFpbmVkKSk7XG5cbiAgICBmb3IgKGNvbnN0IGggb2YgdGhpcy5zb3VyY2VDb25uZWN0aW9uSGFuZGxlcnMpIHtcbiAgICAgIGguc2V0U291cmNlRGVsdGEoY29uc3RyYWluZWQpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGggb2YgdGhpcy50YXJnZXRDb25uZWN0aW9uSGFuZGxlcnMpIHtcbiAgICAgIGguc2V0VGFyZ2V0RGVsdGEoY29uc3RyYWluZWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkLm9uUG9pbnRlclVwKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub2RlT3JHcm91cC5wb3NpdGlvbi5zZXQodGhpcy5ub2RlT3JHcm91cC5fcG9zaXRpb24pO1xuICAgIHRoaXMubm9kZU9yR3JvdXAuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShGX0NTU19DTEFTUy5EUkFHX0FORF9EUk9QLkRSQUdHSU5HKTtcblxuICAgIHRoaXMuX2VtaXRFeHBhbmRlZEV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF9zdGFydFBsdXMoZGVsdGE6IElQb2ludCk6IElQb2ludCB7XG4gICAgcmV0dXJuIFBvaW50RXh0ZW5zaW9ucy5zdW0odGhpcy5fc3RhcnRQb3NpdGlvbiwgZGVsdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVkcmF3KHBvc2l0aW9uOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXN0UG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICB0aGlzLm5vZGVPckdyb3VwLnVwZGF0ZVBvc2l0aW9uKHBvc2l0aW9uKTtcbiAgICB0aGlzLm5vZGVPckdyb3VwLnJlZHJhdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlTb2Z0RXhwYW5zaW9ucyhyZXN1bHRzOiBJRGVsdGFDbGFtcFJlc3VsdFtdKTogdm9pZCB7XG4gICAgdGhpcy5fbGFzdFNvZnRSZXN1bHRzID0gcmVzdWx0cztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgciA9IHJlc3VsdHNbaV07XG4gICAgICBjb25zdCBzb2Z0ID0gdGhpcy5fY29uc3RyYWludHMuc29mdFtpXTtcblxuICAgICAgY29uc3QgZXhwYW5kZWRSZWN0ID0gZXhwYW5kUmVjdEJ5T3ZlcmZsb3coc29mdC5ib3VuZGluZ1JlY3QsIHIub3ZlcmZsb3csIHIuZWRnZXMpO1xuXG4gICAgICB0aGlzLl9jb21taXRQYXJlbnRSZWN0KHNvZnQubm9kZU9yR3JvdXAsIGV4cGFuZGVkUmVjdCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY29tbWl0UGFyZW50UmVjdChwYXJlbnQ6IEZOb2RlQmFzZSwgcmVjdDogSVJlY3QpOiB2b2lkIHtcbiAgICBwYXJlbnQudXBkYXRlU2l6ZSh7IHdpZHRoOiByZWN0LndpZHRoLCBoZWlnaHQ6IHJlY3QuaGVpZ2h0IH0pO1xuICAgIHBhcmVudC51cGRhdGVQb3NpdGlvbih7IHg6IHJlY3QueCwgeTogcmVjdC55IH0pO1xuICAgIHBhcmVudC5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRFeHBhbmRlZEV2ZW50KCk6IHZvaWQge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fbGFzdFNvZnRSZXN1bHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCByID0gdGhpcy5fbGFzdFNvZnRSZXN1bHRzW2ldO1xuICAgICAgaWYgKCFyLm92ZXJmbG93LnggJiYgIXIub3ZlcmZsb3cueSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc29mdCA9IHRoaXMuX2NvbnN0cmFpbnRzLnNvZnRbaV07XG4gICAgICBjb25zdCBleHBhbmRlZFJlY3QgPSBleHBhbmRSZWN0QnlPdmVyZmxvdyhzb2Z0LmJvdW5kaW5nUmVjdCwgci5vdmVyZmxvdywgci5lZGdlcyk7XG5cbiAgICAgIHNvZnQubm9kZU9yR3JvdXAuc2l6ZUNoYW5nZS5lbWl0KGV4cGFuZGVkUmVjdCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICBjaGlsZC5kZXN0cm95Py4oKTtcbiAgICB9XG5cbiAgICB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgdGhpcy5zb3VyY2VDb25uZWN0aW9uSGFuZGxlcnMgPSBbXTtcbiAgICB0aGlzLnRhcmdldENvbm5lY3Rpb25IYW5kbGVycyA9IFtdO1xuXG4gICAgLy8gdGhpcy5fY29uc3RyYWludHMgPSBudWxsO1xuICAgIHRoaXMuX2xhc3RTb2Z0UmVzdWx0cyA9IFtdO1xuICAgIHRoaXMuX2FwcGx5Q29uc3RyYWludHMgPSAoZCkgPT4gZDtcbiAgfVxufVxuIl19
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1ub2RlLWl0ZW0taGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZHJhZy1ub2RlL2RyYWctbm9kZS1oYW5kbGVyL2RyYWctbm9kZS1pdGVtLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUErQixlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsR0FHckIsTUFBTSx5QkFBeUIsQ0FBQztBQUdqQyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGdDQUFnQyxFQUNoQywrQkFBK0IsR0FFaEMsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBd0I7SUFtQjVDO0lBQ0Q7SUFFVDtJQUNBO0lBQ0E7SUF2QlUsSUFBSSxHQUFHLHNCQUFzQixDQUFDO0lBQzlCLElBQUksR0FBRyxzQkFBc0IsQ0FBQztJQUVoQyxjQUFjLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlDLFVBQVUsR0FBRyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFbEQsaUJBQWlCLEdBQThCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUFFaEUsZ0JBQWdCLEdBQXdCLEVBQUUsQ0FBQztJQUMzQyxpQkFBaUIsQ0FBNEI7SUFFN0MsWUFBWSxDQUE2QjtJQUN6QyxhQUFhLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzdDLDZCQUE2QixHQUFnQyxFQUFFLENBQUM7SUFFdkQsU0FBUyxDQUFZO0lBRXRDLFlBQ21CLFNBQW1CLEVBQ3BCLFdBQXNCLEVBRS9CLFdBQWtDLEVBQUUsRUFDcEMsMkJBQTRELEVBQUUsRUFDOUQsMkJBQTRELEVBQUU7UUFFckUsS0FBSyxFQUFFLENBQUM7UUFQUyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO1FBRS9CLGFBQVEsR0FBUixRQUFRLENBQTRCO1FBQ3BDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBc0M7UUFDOUQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFzQztRQUlyRSxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDdEMsSUFBSSwrQkFBK0IsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQzdELENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsR0FBRyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxXQUFzQztRQUMxRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSx3QkFBd0IsQ0FDbkQsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsY0FBYyxFQUNuQixXQUFXLENBQ1osQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV4QyxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDM0IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLCtCQUErQixDQUFDLFFBQXFDO1FBQzFFLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxRQUFRLENBQUM7SUFDaEQsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QiwyRUFBMkU7UUFDM0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXhDLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUMzQixDQUFDLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLGNBQWMsQ0FBQyxVQUFVLENBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVlLG1CQUFtQjtRQUNqQyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFZSxhQUFhLENBQUMsS0FBYTtRQUN6QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEQsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFM0MsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUM5QyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQzlDLENBQUMsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFZSxXQUFXO1FBQ3pCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBYTtRQUM5QixPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sT0FBTyxDQUFDLFFBQWdCO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUNwQixJQUFJLHdCQUF3QixDQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxFQUN0QixjQUFjLENBQUMsVUFBVSxDQUN2QixRQUFRLENBQUMsQ0FBQyxFQUNWLFFBQVEsQ0FBQyxDQUFDLEVBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUN2QixDQUNGLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE9BQTRCO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7UUFFaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFdkMsTUFBTSxZQUFZLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVsRixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQzNELElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxNQUFpQixFQUFFLElBQVc7UUFDdEQsTUFBTSxPQUFPLEdBQ1gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDN0IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDN0IsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUs7WUFDbEMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUV2QyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6RSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLCtCQUErQixDQUFDLG1CQUEyQjtRQUNqRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7UUFFakUsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztZQUN4RixNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBRUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztZQUN4RixNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUN4QixTQUF5QixFQUN6QixLQUFnQztRQUVoQyxNQUFNLFFBQVEsR0FBRyxHQUFHLFNBQVMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDekQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUNqQyxJQUFJLGdDQUFnQyxDQUFDLFNBQVMsQ0FBQyxDQUNoRCxDQUFDLElBQUksQ0FBQztRQUNQLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFdBQVcsQ0FBQyxZQUEwQixFQUFFLFdBQXlCO1FBQ3ZFLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FDL0IsV0FBVyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxFQUM5QixXQUFXLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQy9CLENBQUM7SUFDSixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLFNBQVM7WUFDWCxDQUFDO1lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsTUFBTSxZQUFZLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVsRixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFFZSxPQUFPO1FBQ3JCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUM7UUFFbkMsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJUm91bmRlZFJlY3QsIFBvaW50RXh0ZW5zaW9ucywgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IERyYWdIYW5kbGVyQmFzZSB9IGZyb20gJy4uLy4uL2luZnJhc3RydWN0dXJlJztcbmltcG9ydCB7XG4gIERyYWdOb2RlRGVsdGFDb25zdHJhaW50cyxcbiAgZXhwYW5kUmVjdEJ5T3ZlcmZsb3csXG4gIElEZWx0YUNsYW1wUmVzdWx0LFxuICBJRHJhZ05vZGVEZWx0YUNvbnN0cmFpbnRzLFxufSBmcm9tICcuLi9kcmFnLW5vZGUtY29uc3RyYWludCc7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgRHJhZ05vZGVDb25uZWN0aW9uSGFuZGxlckJhc2UgfSBmcm9tICcuLi9kcmFnLW5vZGUtZGVwZW5kZW50LWNvbm5lY3Rpb24taGFuZGxlcnMnO1xuaW1wb3J0IHtcbiAgRl9DU1NfQ0xBU1MsXG4gIEdldENvbm5lY3RvclJlY3RSZWZlcmVuY2VSZXF1ZXN0LFxuICBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0LFxuICBJQ29ubmVjdG9yUmVjdFJlZixcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IElQYXJlbnRDb25uZWN0aW9uSGFuZGxlcnMgfSBmcm9tICcuL2ktc29mdC1wYXJlbnQtY29ubmVjdGlvbi1oYW5kbGVycyc7XG5pbXBvcnQgeyBTZXRGQ2FjaGVOb2RlUmVjdFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9mLWNhY2hlJztcbmltcG9ydCB7IERSQUdfTk9ERV9IQU5ETEVSX0tJTkQsIERSQUdfTk9ERV9IQU5ETEVSX1RZUEUgfSBmcm9tICcuLi9pcy1kcmFnLW5vZGUtaGFuZGxlcic7XG5cbmV4cG9ydCBjbGFzcyBEcmFnTm9kZUl0ZW1IYW5kbGVyIGV4dGVuZHMgRHJhZ0hhbmRsZXJCYXNlPHVua25vd24+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHR5cGUgPSBEUkFHX05PREVfSEFORExFUl9UWVBFO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkga2luZCA9IERSQUdfTk9ERV9IQU5ETEVSX0tJTkQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhcnRQb3NpdGlvbiA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXJ0UmVjdCA9IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIF9hcHBseUNvbnN0cmFpbnRzOiAoZGVsdGE6IElQb2ludCkgPT4gSVBvaW50ID0gKGRlbHRhKSA9PiBkZWx0YTtcblxuICBwcml2YXRlIF9sYXN0U29mdFJlc3VsdHM6IElEZWx0YUNsYW1wUmVzdWx0W10gPSBbXTtcbiAgcHJpdmF0ZSBfZGVsdGFDb25zdHJhaW50cyE6IERyYWdOb2RlRGVsdGFDb25zdHJhaW50cztcblxuICBwcml2YXRlIF9jb25zdHJhaW50cyE6IElEcmFnTm9kZURlbHRhQ29uc3RyYWludHM7XG4gIHByaXZhdGUgX2xhc3RQb3NpdGlvbiA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gIHByaXZhdGUgX3NvZnRQYXJlbnRDb25uZWN0aW9uSGFuZGxlcnM6IElQYXJlbnRDb25uZWN0aW9uSGFuZGxlcnNbXSA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yOiBGTWVkaWF0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHB1YmxpYyByZWFkb25seSBub2RlT3JHcm91cDogRk5vZGVCYXNlLFxuXG4gICAgcHVibGljIGNoaWxkcmVuOiBEcmFnTm9kZUl0ZW1IYW5kbGVyW10gPSBbXSxcbiAgICBwdWJsaWMgc291cmNlQ29ubmVjdGlvbkhhbmRsZXJzOiBEcmFnTm9kZUNvbm5lY3Rpb25IYW5kbGVyQmFzZVtdID0gW10sXG4gICAgcHVibGljIHRhcmdldENvbm5lY3Rpb25IYW5kbGVyczogRHJhZ05vZGVDb25uZWN0aW9uSGFuZGxlckJhc2VbXSA9IFtdLFxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IgPSBfaW5qZWN0b3IuZ2V0KEZNZWRpYXRvcik7XG5cbiAgICB0aGlzLl9zdGFydFJlY3QgPSB0aGlzLl9tZWRpYXRvci5leGVjdXRlKFxuICAgICAgbmV3IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3Qobm9kZU9yR3JvdXAuaG9zdEVsZW1lbnQpLFxuICAgICk7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IHsgLi4ubm9kZU9yR3JvdXAuX3Bvc2l0aW9uIH07XG4gIH1cblxuICBwdWJsaWMgc2V0Q29uc3RyYWludHMoY29uc3RyYWludHM6IElEcmFnTm9kZURlbHRhQ29uc3RyYWludHMpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzO1xuICAgIHRoaXMuX2RlbHRhQ29uc3RyYWludHMgPSBuZXcgRHJhZ05vZGVEZWx0YUNvbnN0cmFpbnRzKFxuICAgICAgdGhpcy5faW5qZWN0b3IsXG4gICAgICB0aGlzLl9zdGFydFBvc2l0aW9uLFxuICAgICAgY29uc3RyYWludHMsXG4gICAgKTtcblxuICAgIHRoaXMuX2FwcGx5Q29uc3RyYWludHMgPSAoZGlmZmVyZW5jZSkgPT4ge1xuICAgICAgY29uc3Qgc3VtbWFyeSA9IHRoaXMuX2RlbHRhQ29uc3RyYWludHMuYXBwbHkoZGlmZmVyZW5jZSk7XG4gICAgICB0aGlzLl9hcHBseVNvZnRFeHBhbnNpb25zKHN1bW1hcnkuc29mdCk7XG5cbiAgICAgIHJldHVybiBzdW1tYXJ5LmhhcmREZWx0YTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNldFNvZnRQYXJlbnRDb25uZWN0aW9uSGFuZGxlcnMoaGFuZGxlcnM6IElQYXJlbnRDb25uZWN0aW9uSGFuZGxlcnNbXSk6IHZvaWQge1xuICAgIHRoaXMuX3NvZnRQYXJlbnRDb25uZWN0aW9uSGFuZGxlcnMgPSBoYW5kbGVycztcbiAgfVxuXG4gIHB1YmxpYyBmaW5hbGl6ZUNvbnN0cmFpbnRzKCk6IHZvaWQge1xuICAgIC8vIGluIGZpbmFsaXplIHdlIGZvcmNlIHNuYXAgYW5kIGNvbW1pdCBleHBhbnNpb25zIGJhc2VkIG9uIGZpbmFsaXplZCBkZWx0YVxuICAgIHRoaXMuX2FwcGx5Q29uc3RyYWludHMgPSAoZGVsdGEpID0+IHtcbiAgICAgIGNvbnN0IHN1bW1hcnkgPSB0aGlzLl9kZWx0YUNvbnN0cmFpbnRzLmZpbmFsaXplKGRlbHRhKTtcbiAgICAgIHRoaXMuX2FwcGx5U29mdEV4cGFuc2lvbnMoc3VtbWFyeS5zb2Z0KTtcblxuICAgICAgcmV0dXJuIHN1bW1hcnkuaGFyZERlbHRhO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFzdFJlY3QoKTogSVJlY3Qge1xuICAgIHJldHVybiBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKFxuICAgICAgdGhpcy5fbGFzdFBvc2l0aW9uLngsXG4gICAgICB0aGlzLl9sYXN0UG9zaXRpb24ueSxcbiAgICAgIHRoaXMuX3N0YXJ0UmVjdC53aWR0aCxcbiAgICAgIHRoaXMuX3N0YXJ0UmVjdC5oZWlnaHQsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgY2hpbGQucHJlcGFyZURyYWdTZXF1ZW5jZSgpO1xuICAgIH1cblxuICAgIHRoaXMubm9kZU9yR3JvdXAuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChGX0NTU19DTEFTUy5EUkFHX0FORF9EUk9QLkRSQUdHSU5HKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGRlbHRhOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb25zdHJhaW5lZCA9IHRoaXMuX2FwcGx5Q29uc3RyYWludHMoZGVsdGEpO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICBjaGlsZC5vblBvaW50ZXJNb3ZlKGNvbnN0cmFpbmVkKTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZWRyYXcodGhpcy5fc3RhcnRQbHVzKGNvbnN0cmFpbmVkKSk7XG5cbiAgICBmb3IgKGNvbnN0IGggb2YgdGhpcy5zb3VyY2VDb25uZWN0aW9uSGFuZGxlcnMpIHtcbiAgICAgIGguc2V0U291cmNlRGVsdGEoY29uc3RyYWluZWQpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGggb2YgdGhpcy50YXJnZXRDb25uZWN0aW9uSGFuZGxlcnMpIHtcbiAgICAgIGguc2V0VGFyZ2V0RGVsdGEoY29uc3RyYWluZWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkLm9uUG9pbnRlclVwKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub2RlT3JHcm91cC5wb3NpdGlvbi5zZXQodGhpcy5ub2RlT3JHcm91cC5fcG9zaXRpb24pO1xuICAgIHRoaXMubm9kZU9yR3JvdXAuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShGX0NTU19DTEFTUy5EUkFHX0FORF9EUk9QLkRSQUdHSU5HKTtcblxuICAgIHRoaXMuX2VtaXRFeHBhbmRlZEV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF9zdGFydFBsdXMoZGVsdGE6IElQb2ludCk6IElQb2ludCB7XG4gICAgcmV0dXJuIFBvaW50RXh0ZW5zaW9ucy5zdW0odGhpcy5fc3RhcnRQb3NpdGlvbiwgZGVsdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVkcmF3KHBvc2l0aW9uOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXN0UG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICB0aGlzLm5vZGVPckdyb3VwLnVwZGF0ZVBvc2l0aW9uKHBvc2l0aW9uKTtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKFxuICAgICAgbmV3IFNldEZDYWNoZU5vZGVSZWN0UmVxdWVzdChcbiAgICAgICAgdGhpcy5ub2RlT3JHcm91cC5mSWQoKSxcbiAgICAgICAgUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShcbiAgICAgICAgICBwb3NpdGlvbi54LFxuICAgICAgICAgIHBvc2l0aW9uLnksXG4gICAgICAgICAgdGhpcy5fc3RhcnRSZWN0LndpZHRoLFxuICAgICAgICAgIHRoaXMuX3N0YXJ0UmVjdC5oZWlnaHQsXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gICAgdGhpcy5ub2RlT3JHcm91cC5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5U29mdEV4cGFuc2lvbnMocmVzdWx0czogSURlbHRhQ2xhbXBSZXN1bHRbXSk6IHZvaWQge1xuICAgIHRoaXMuX2xhc3RTb2Z0UmVzdWx0cyA9IHJlc3VsdHM7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3VsdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHIgPSByZXN1bHRzW2ldO1xuICAgICAgY29uc3Qgc29mdCA9IHRoaXMuX2NvbnN0cmFpbnRzLnNvZnRbaV07XG5cbiAgICAgIGNvbnN0IGV4cGFuZGVkUmVjdCA9IGV4cGFuZFJlY3RCeU92ZXJmbG93KHNvZnQuYm91bmRpbmdSZWN0LCByLm92ZXJmbG93LCByLmVkZ2VzKTtcblxuICAgICAgaWYgKHRoaXMuX2NvbW1pdFBhcmVudFJlY3Qoc29mdC5ub2RlT3JHcm91cCwgZXhwYW5kZWRSZWN0KSkge1xuICAgICAgICB0aGlzLl91cGRhdGVQYXJlbnRDb25uZWN0aW9uSGFuZGxlcnMoaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY29tbWl0UGFyZW50UmVjdChwYXJlbnQ6IEZOb2RlQmFzZSwgcmVjdDogSVJlY3QpOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGFuZ2VkID1cbiAgICAgIHBhcmVudC5fcG9zaXRpb24ueCAhPT0gcmVjdC54IHx8XG4gICAgICBwYXJlbnQuX3Bvc2l0aW9uLnkgIT09IHJlY3QueSB8fFxuICAgICAgcGFyZW50Ll9zaXplPy53aWR0aCAhPT0gcmVjdC53aWR0aCB8fFxuICAgICAgcGFyZW50Ll9zaXplPy5oZWlnaHQgIT09IHJlY3QuaGVpZ2h0O1xuXG4gICAgcGFyZW50LnVwZGF0ZVNpemUoeyB3aWR0aDogcmVjdC53aWR0aCwgaGVpZ2h0OiByZWN0LmhlaWdodCB9KTtcbiAgICBwYXJlbnQudXBkYXRlUG9zaXRpb24oeyB4OiByZWN0LngsIHk6IHJlY3QueSB9KTtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBTZXRGQ2FjaGVOb2RlUmVjdFJlcXVlc3QocGFyZW50LmZJZCgpLCByZWN0KSk7XG4gICAgcGFyZW50LnJlZHJhdygpO1xuXG4gICAgcmV0dXJuIGNoYW5nZWQ7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVQYXJlbnRDb25uZWN0aW9uSGFuZGxlcnMoc29mdENvbnN0cmFpbnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgaGFuZGxlcnMgPSB0aGlzLl9zb2Z0UGFyZW50Q29ubmVjdGlvbkhhbmRsZXJzW3NvZnRDb25zdHJhaW50SW5kZXhdO1xuICAgIGlmICghaGFuZGxlcnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50UmVjdEJ5Q29ubmVjdG9ySWQgPSBuZXcgTWFwPHN0cmluZywgSVJvdW5kZWRSZWN0PigpO1xuXG4gICAgZm9yIChjb25zdCBzb3VyY2Ugb2YgaGFuZGxlcnMuc291cmNlKSB7XG4gICAgICBjb25zdCBjdXJyZW50UmVjdCA9IHRoaXMuX3JlYWRDb25uZWN0b3JSZWN0KHNvdXJjZS5jb25uZWN0b3IsIGN1cnJlbnRSZWN0QnlDb25uZWN0b3JJZCk7XG4gICAgICBzb3VyY2UuaGFuZGxlci5zZXRTb3VyY2VEZWx0YSh0aGlzLl9idWlsZERlbHRhKHNvdXJjZS5iYXNlbGluZVJlY3QsIGN1cnJlbnRSZWN0KSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB0YXJnZXQgb2YgaGFuZGxlcnMudGFyZ2V0KSB7XG4gICAgICBjb25zdCBjdXJyZW50UmVjdCA9IHRoaXMuX3JlYWRDb25uZWN0b3JSZWN0KHRhcmdldC5jb25uZWN0b3IsIGN1cnJlbnRSZWN0QnlDb25uZWN0b3JJZCk7XG4gICAgICB0YXJnZXQuaGFuZGxlci5zZXRUYXJnZXREZWx0YSh0aGlzLl9idWlsZERlbHRhKHRhcmdldC5iYXNlbGluZVJlY3QsIGN1cnJlbnRSZWN0KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVhZENvbm5lY3RvclJlY3QoXG4gICAgY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSxcbiAgICBjYWNoZTogTWFwPHN0cmluZywgSVJvdW5kZWRSZWN0PixcbiAgKTogSVJvdW5kZWRSZWN0IHtcbiAgICBjb25zdCBjYWNoZUtleSA9IGAke2Nvbm5lY3Rvci5raW5kfTo6JHtjb25uZWN0b3IuZklkKCl9YDtcbiAgICBjb25zdCBjYWNoZWQgPSBjYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHJldHVybiBjYWNoZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvclJlY3RSZWY+KFxuICAgICAgbmV3IEdldENvbm5lY3RvclJlY3RSZWZlcmVuY2VSZXF1ZXN0KGNvbm5lY3RvciksXG4gICAgKS5yZWN0O1xuICAgIGNhY2hlLnNldChjYWNoZUtleSwgcmVjdCk7XG5cbiAgICByZXR1cm4gcmVjdDtcbiAgfVxuXG4gIHByaXZhdGUgX2J1aWxkRGVsdGEoYmFzZWxpbmVSZWN0OiBJUm91bmRlZFJlY3QsIGN1cnJlbnRSZWN0OiBJUm91bmRlZFJlY3QpOiBJUG9pbnQge1xuICAgIHJldHVybiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShcbiAgICAgIGN1cnJlbnRSZWN0LnggLSBiYXNlbGluZVJlY3QueCxcbiAgICAgIGN1cnJlbnRSZWN0LnkgLSBiYXNlbGluZVJlY3QueSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdEV4cGFuZGVkRXZlbnQoKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9sYXN0U29mdFJlc3VsdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHIgPSB0aGlzLl9sYXN0U29mdFJlc3VsdHNbaV07XG4gICAgICBpZiAoIXIub3ZlcmZsb3cueCAmJiAhci5vdmVyZmxvdy55KSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzb2Z0ID0gdGhpcy5fY29uc3RyYWludHMuc29mdFtpXTtcbiAgICAgIGNvbnN0IGV4cGFuZGVkUmVjdCA9IGV4cGFuZFJlY3RCeU92ZXJmbG93KHNvZnQuYm91bmRpbmdSZWN0LCByLm92ZXJmbG93LCByLmVkZ2VzKTtcblxuICAgICAgc29mdC5ub2RlT3JHcm91cC5zaXplQ2hhbmdlLmVtaXQoZXhwYW5kZWRSZWN0KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkLmRlc3Ryb3k/LigpO1xuICAgIH1cblxuICAgIHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgICB0aGlzLnNvdXJjZUNvbm5lY3Rpb25IYW5kbGVycyA9IFtdO1xuICAgIHRoaXMudGFyZ2V0Q29ubmVjdGlvbkhhbmRsZXJzID0gW107XG5cbiAgICAvLyB0aGlzLl9jb25zdHJhaW50cyA9IG51bGw7XG4gICAgdGhpcy5fbGFzdFNvZnRSZXN1bHRzID0gW107XG4gICAgdGhpcy5fYXBwbHlDb25zdHJhaW50cyA9IChkKSA9PiBkO1xuICAgIHRoaXMuX3NvZnRQYXJlbnRDb25uZWN0aW9uSGFuZGxlcnMgPSBbXTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1zb2Z0LXBhcmVudC1jb25uZWN0aW9uLWhhbmRsZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9kcmFnLW5vZGUvZHJhZy1ub2RlLWhhbmRsZXIvaS1zb2Z0LXBhcmVudC1jb25uZWN0aW9uLWhhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IERyYWdOb2RlQ29ubmVjdGlvbkhhbmRsZXJCYXNlIH0gZnJvbSAnLi4vZHJhZy1ub2RlLWRlcGVuZGVudC1jb25uZWN0aW9uLWhhbmRsZXJzJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBJUGFyZW50Q29ubmVjdGlvbkVuZHBvaW50SGFuZGxlciB7XG4gIGhhbmRsZXI6IERyYWdOb2RlQ29ubmVjdGlvbkhhbmRsZXJCYXNlO1xuICBjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlO1xuICBiYXNlbGluZVJlY3Q6IElSb3VuZGVkUmVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGFyZW50Q29ubmVjdGlvbkhhbmRsZXJzIHtcbiAgc291cmNlOiBJUGFyZW50Q29ubmVjdGlvbkVuZHBvaW50SGFuZGxlcltdO1xuICB0YXJnZXQ6IElQYXJlbnRDb25uZWN0aW9uRW5kcG9pbnRIYW5kbGVyW107XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
1
  export * from './drag-node-handler';
2
2
  export * from './drag-node-item-handler';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RyYWctbm9kZS9kcmFnLW5vZGUtaGFuZGxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RyYWctbm9kZS1oYW5kbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1ub2RlLWl0ZW0taGFuZGxlcic7XG4iXX0=
3
+ export * from './i-soft-parent-connection-handlers';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RyYWctbm9kZS9kcmFnLW5vZGUtaGFuZGxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJhZy1ub2RlLWhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLW5vZGUtaXRlbS1oYW5kbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vaS1zb2Z0LXBhcmVudC1jb25uZWN0aW9uLWhhbmRsZXJzJztcbiJdfQ==
@@ -8,5 +8,6 @@ export * from './drag-node-handler';
8
8
  export * from './drag-node-preparation';
9
9
  export * from './f-move-nodes-event';
10
10
  export * from './f-drag-node-start-event-data';
11
+ export * from './is-drag-node-handler';
11
12
  export * from './providers';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RyYWctbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGNBQWMsa0JBQWtCLENBQUM7QUFFakMsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdHRhY2gtZHJhZy1ub2RlLWhhbmRsZXItZnJvbS1zZWxlY3Rpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL21hZ25ldGljLWxpbmVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9tYWduZXRpYy1yZWN0cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1ub2RlLWNvbnN0cmFpbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RyYWctbm9kZS1kZXBlbmRlbnQtY29ubmVjdGlvbi1oYW5kbGVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1ub2RlLWZpbmFsaXplJztcblxuZXhwb3J0ICogZnJvbSAnLi9kcmFnLW5vZGUtaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1ub2RlLXByZXBhcmF0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLW1vdmUtbm9kZXMtZXZlbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZHJhZy1ub2RlLXN0YXJ0LWV2ZW50LWRhdGEnO1xuXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RyYWctbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGNBQWMsa0JBQWtCLENBQUM7QUFFakMsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F0dGFjaC1kcmFnLW5vZGUtaGFuZGxlci1mcm9tLXNlbGVjdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbWFnbmV0aWMtbGluZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL21hZ25ldGljLXJlY3RzJztcblxuZXhwb3J0ICogZnJvbSAnLi9kcmFnLW5vZGUtY29uc3RyYWludCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1ub2RlLWRlcGVuZGVudC1jb25uZWN0aW9uLWhhbmRsZXJzJztcblxuZXhwb3J0ICogZnJvbSAnLi9kcmFnLW5vZGUtZmluYWxpemUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RyYWctbm9kZS1oYW5kbGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9kcmFnLW5vZGUtcHJlcGFyYXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtbW92ZS1ub2Rlcy1ldmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1kcmFnLW5vZGUtc3RhcnQtZXZlbnQtZGF0YSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vaXMtZHJhZy1ub2RlLWhhbmRsZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XG4iXX0=
@@ -0,0 +1,7 @@
1
+ export const DRAG_NODE_HANDLER_TYPE = 'move-node';
2
+ export const DRAG_NODE_HANDLER_KIND = 'drag-node';
3
+ export function isDragNodeHandler(value) {
4
+ return (value.getEvent().kind === DRAG_NODE_HANDLER_KIND ||
5
+ value.getEvent().fEventType === DRAG_NODE_HANDLER_TYPE);
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZHJhZy1ub2RlLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RyYWctbm9kZS9pcy1kcmFnLW5vZGUtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxXQUFXLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsV0FBVyxDQUFDO0FBRWxELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUErQjtJQUMvRCxPQUFPLENBQ0wsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksS0FBSyxzQkFBc0I7UUFDaEQsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsS0FBSyxzQkFBc0IsQ0FDdkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEcmFnSGFuZGxlckJhc2UgfSBmcm9tICcuLi9pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQgeyBEcmFnTm9kZUhhbmRsZXIgfSBmcm9tICcuL2RyYWctbm9kZS1oYW5kbGVyJztcblxuZXhwb3J0IGNvbnN0IERSQUdfTk9ERV9IQU5ETEVSX1RZUEUgPSAnbW92ZS1ub2RlJztcbmV4cG9ydCBjb25zdCBEUkFHX05PREVfSEFORExFUl9LSU5EID0gJ2RyYWctbm9kZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RyYWdOb2RlSGFuZGxlcih2YWx1ZTogRHJhZ0hhbmRsZXJCYXNlPHVua25vd24+KTogdmFsdWUgaXMgRHJhZ05vZGVIYW5kbGVyIHtcbiAgcmV0dXJuIChcbiAgICB2YWx1ZS5nZXRFdmVudCgpLmtpbmQgPT09IERSQUdfTk9ERV9IQU5ETEVSX0tJTkQgfHxcbiAgICB2YWx1ZS5nZXRFdmVudCgpLmZFdmVudFR5cGUgPT09IERSQUdfTk9ERV9IQU5ETEVSX1RZUEVcbiAgKTtcbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { inject, Injectable } from '@angular/core';
2
- import { Point, PointExtensions, RectExtensions } from '@foblex/2d';
2
+ import { Point, RectExtensions } from '@foblex/2d';
3
3
  import { DragHandlerBase } from '../../infrastructure';
4
4
  import { FComponentsStore } from '../../../f-storage';
5
5
  import { FDraggableDataContext } from '../../f-draggable-data-context';
@@ -10,14 +10,13 @@ export class DropToGroupHandler extends DragHandlerBase {
10
10
  /** Legacy identifier (external compatibility). */
11
11
  type = 'move-node-to-parent';
12
12
  /** New identifier. */
13
- kind = 'drop-to-group';
13
+ kind = 'assign-to-container';
14
14
  _store = inject(FComponentsStore);
15
15
  _dragSession = inject(FDraggableDataContext);
16
16
  get _transform() {
17
17
  return this._store.transform;
18
18
  }
19
19
  _candidateGroups = [];
20
- _pointerDownInFlow = PointExtensions.initialize();
21
20
  _debounceTimer = null;
22
21
  _activeTarget = null;
23
22
  /** Read-only access for finalize stage. */
@@ -25,7 +24,6 @@ export class DropToGroupHandler extends DragHandlerBase {
25
24
  return this._activeTarget;
26
25
  }
27
26
  initialize(candidateGroups) {
28
- this._pointerDownInFlow = this._dragSession.onPointerDownPosition;
29
27
  this._candidateGroups = candidateGroups;
30
28
  }
31
29
  prepareDragSequence() {
@@ -50,8 +48,8 @@ export class DropToGroupHandler extends DragHandlerBase {
50
48
  }
51
49
  }
52
50
  _updateActiveTarget(difference) {
53
- const pointerInCanvas = this._getPointerInCanvas(difference);
54
- const next = this._findTargetUnderPointer(pointerInCanvas);
51
+ const pointerInFlow = this._getPointerInFlow(difference);
52
+ const next = this._findTargetUnderPointer(pointerInFlow);
55
53
  if (next) {
56
54
  this._setActiveTarget(next);
57
55
  }
@@ -59,8 +57,12 @@ export class DropToGroupHandler extends DragHandlerBase {
59
57
  this._clearActiveTarget();
60
58
  }
61
59
  }
62
- _getPointerInCanvas(difference) {
63
- return Point.fromPoint(this._pointerDownInFlow).add(difference).mult(this._transform.scale);
60
+ _getPointerInFlow(difference) {
61
+ const pointerInScaledFlow = Point.fromPoint(this._dragSession.onPointerDownPosition).add(difference);
62
+ const transformOffsetInFlow = Point.fromPoint(this._transform.position)
63
+ .add(this._transform.scaledPosition)
64
+ .div(this._transform.scale);
65
+ return pointerInScaledFlow.sub(transformOffsetInFlow);
64
66
  }
65
67
  _findTargetUnderPointer(pointer) {
66
68
  return this._candidateGroups.find((x) => RectExtensions.isIncludePoint(x.rect, pointer));
@@ -83,4 +85,4 @@ export class DropToGroupHandler extends DragHandlerBase {
83
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropToGroupHandler, decorators: [{
84
86
  type: Injectable
85
87
  }] });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC10by1ncm91cC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9kcm9wLXRvLWdyb3VwL2Ryb3AtdG8tZ3JvdXAtaGFuZGxlci9kcm9wLXRvLWdyb3VwLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUEyQixLQUFLLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUU5QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFHdEIsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGVBQXdCO0lBQzlELGtEQUFrRDtJQUMvQixJQUFJLEdBQUcscUJBQXFCLENBQUM7SUFDaEQsc0JBQXNCO0lBQ0gsSUFBSSxHQUFHLGVBQWUsQ0FBQztJQUV6QixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbEMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRTlELElBQVksVUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFTyxnQkFBZ0IsR0FBb0IsRUFBRSxDQUFDO0lBRXZDLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNsRCxjQUFjLEdBQXlDLElBQUksQ0FBQztJQUU1RCxhQUFhLEdBQXlCLElBQUksQ0FBQztJQUVuRCwyQ0FBMkM7SUFDM0MsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRU0sVUFBVSxDQUFDLGVBQWdDO1FBQ2hELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDO1FBQ2xFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7SUFDMUMsQ0FBQztJQUVlLG1CQUFtQjtRQUNqQyxLQUFLLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVlLGFBQWEsQ0FBQyxVQUFrQjtRQUM5QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVlLFdBQVc7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFMUIsS0FBSyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxVQUFrQjtRQUM1QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTNELElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFVBQWtCO1FBQzVDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVPLHVCQUF1QixDQUFDLE9BQWU7UUFDN0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBcUI7UUFDNUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0MsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQzt3R0F6RlUsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQb2ludCwgSVRyYW5zZm9ybU1vZGVsLCBQb2ludCwgUG9pbnRFeHRlbnNpb25zLCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRHJhZ0hhbmRsZXJCYXNlIH0gZnJvbSAnLi4vLi4vaW5mcmFzdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBJTm9kZVdpdGhSZWN0IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBGX0NTU19DTEFTUyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cbmNvbnN0IERFQk9VTkNFX01TID0gMTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERyb3BUb0dyb3VwSGFuZGxlciBleHRlbmRzIERyYWdIYW5kbGVyQmFzZTx1bmtub3duPiB7XG4gIC8qKiBMZWdhY3kgaWRlbnRpZmllciAoZXh0ZXJuYWwgY29tcGF0aWJpbGl0eSkuICovXG4gIHByb3RlY3RlZCByZWFkb25seSB0eXBlID0gJ21vdmUtbm9kZS10by1wYXJlbnQnO1xuICAvKiogTmV3IGlkZW50aWZpZXIuICovXG4gIHByb3RlY3RlZCByZWFkb25seSBraW5kID0gJ2Ryb3AtdG8tZ3JvdXAnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kcmFnU2Vzc2lvbiA9IGluamVjdChGRHJhZ2dhYmxlRGF0YUNvbnRleHQpO1xuXG4gIHByaXZhdGUgZ2V0IF90cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUudHJhbnNmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FuZGlkYXRlR3JvdXBzOiBJTm9kZVdpdGhSZWN0W10gPSBbXTtcblxuICBwcml2YXRlIF9wb2ludGVyRG93bkluRmxvdyA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gIHByaXZhdGUgX2RlYm91bmNlVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlVGFyZ2V0OiBJTm9kZVdpdGhSZWN0IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFJlYWQtb25seSBhY2Nlc3MgZm9yIGZpbmFsaXplIHN0YWdlLiAqL1xuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhcmdldCgpOiBJTm9kZVdpdGhSZWN0IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVRhcmdldDtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKGNhbmRpZGF0ZUdyb3VwczogSU5vZGVXaXRoUmVjdFtdKSB7XG4gICAgdGhpcy5fcG9pbnRlckRvd25JbkZsb3cgPSB0aGlzLl9kcmFnU2Vzc2lvbi5vblBvaW50ZXJEb3duUG9zaXRpb247XG4gICAgdGhpcy5fY2FuZGlkYXRlR3JvdXBzID0gY2FuZGlkYXRlR3JvdXBzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHByZXBhcmVEcmFnU2VxdWVuY2UoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCB7IG5vZGUgfSBvZiB0aGlzLl9jYW5kaWRhdGVHcm91cHMpIHtcbiAgICAgIG5vZGUuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChGX0NTU19DTEFTUy5HUk9VUElORy5EUk9QX0FDVElWRSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2RlYm91bmNlVGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9kZWJvdW5jZVRpbWVyKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kZWJvdW5jZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLl91cGRhdGVBY3RpdmVUYXJnZXQoZGlmZmVyZW5jZSksIERFQk9VTkNFX01TKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbGVhckFjdGl2ZVRhcmdldCgpO1xuXG4gICAgZm9yIChjb25zdCB7IG5vZGUgfSBvZiB0aGlzLl9jYW5kaWRhdGVHcm91cHMpIHtcbiAgICAgIG5vZGUuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShGX0NTU19DTEFTUy5HUk9VUElORy5EUk9QX0FDVElWRSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2RlYm91bmNlVGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9kZWJvdW5jZVRpbWVyKTtcbiAgICAgIHRoaXMuX2RlYm91bmNlVGltZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUFjdGl2ZVRhcmdldChkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludGVySW5DYW52YXMgPSB0aGlzLl9nZXRQb2ludGVySW5DYW52YXMoZGlmZmVyZW5jZSk7XG4gICAgY29uc3QgbmV4dCA9IHRoaXMuX2ZpbmRUYXJnZXRVbmRlclBvaW50ZXIocG9pbnRlckluQ2FudmFzKTtcblxuICAgIGlmIChuZXh0KSB7XG4gICAgICB0aGlzLl9zZXRBY3RpdmVUYXJnZXQobmV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NsZWFyQWN0aXZlVGFyZ2V0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UG9pbnRlckluQ2FudmFzKGRpZmZlcmVuY2U6IElQb2ludCk6IElQb2ludCB7XG4gICAgcmV0dXJuIFBvaW50LmZyb21Qb2ludCh0aGlzLl9wb2ludGVyRG93bkluRmxvdykuYWRkKGRpZmZlcmVuY2UpLm11bHQodGhpcy5fdHJhbnNmb3JtLnNjYWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRUYXJnZXRVbmRlclBvaW50ZXIocG9pbnRlcjogSVBvaW50KTogSU5vZGVXaXRoUmVjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbmRpZGF0ZUdyb3Vwcy5maW5kKCh4KSA9PiBSZWN0RXh0ZW5zaW9ucy5pc0luY2x1ZGVQb2ludCh4LnJlY3QsIHBvaW50ZXIpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEFjdGl2ZVRhcmdldCh0YXJnZXQ6IElOb2RlV2l0aFJlY3QpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlVGFyZ2V0Py5ub2RlID09PSB0YXJnZXQubm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2NsZWFyQWN0aXZlVGFyZ2V0KCk7XG4gICAgdGhpcy5fYWN0aXZlVGFyZ2V0ID0gdGFyZ2V0O1xuICAgIHRhcmdldC5ub2RlLnNldENsYXNzKEZfQ1NTX0NMQVNTLkdST1VQSU5HLk9WRVJfQk9VTkRBUlkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYXJBY3RpdmVUYXJnZXQoKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aXZlVGFyZ2V0Py5ub2RlLnJlbW92ZUNsYXNzKEZfQ1NTX0NMQVNTLkdST1VQSU5HLk9WRVJfQk9VTkRBUlkpO1xuICAgIHRoaXMuX2FjdGl2ZVRhcmdldCA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC10by1ncm91cC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9kcm9wLXRvLWdyb3VwL2Ryb3AtdG8tZ3JvdXAtaGFuZGxlci9kcm9wLXRvLWdyb3VwLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUEyQixLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTlDLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQztBQUd0QixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZUFBd0I7SUFDOUQsa0RBQWtEO0lBQy9CLElBQUksR0FBRyxxQkFBcUIsQ0FBQztJQUNoRCxzQkFBc0I7SUFDSCxJQUFJLEdBQUcscUJBQXFCLENBQUM7SUFFL0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLFlBQVksR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUU5RCxJQUFZLFVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRU8sZ0JBQWdCLEdBQW9CLEVBQUUsQ0FBQztJQUV2QyxjQUFjLEdBQXlDLElBQUksQ0FBQztJQUU1RCxhQUFhLEdBQXlCLElBQUksQ0FBQztJQUVuRCwyQ0FBMkM7SUFDM0MsSUFBVyxZQUFZ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QyxhQUFhLEdBQUcsTUFBTSxDQUFDO1FBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO3dHQTlGVSxrQkFBa0I7NEdBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBvaW50LCBJVHJhbnNmb3JtTW9kZWwsIFBvaW50LCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRHJhZ0hhbmRsZXJCYXNlIH0gZnJvbSAnLi4vLi4vaW5mcmFzdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBJTm9kZVdpdGhSZWN0IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBGX0NTU19DTEFTUyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cbmNvbnN0IERFQk9VTkNFX01TID0gMTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERyb3BUb0dyb3VwSGFuZGxlciBleHRlbmRzIERyYWdIYW5kbGVyQmFzZTx1bmtub3duPiB7XG4gIC8qKiBMZWdhY3kgaWRlbnRpZmllciAoZXh0ZXJuYWwgY29tcGF0aWJpbGl0eSkuICovXG4gIHByb3RlY3RlZCByZWFkb25seSB0eXBlID0gJ21vdmUtbm9kZS10by1wYXJlbnQnO1xuICAvKiogTmV3IGlkZW50aWZpZXIuICovXG4gIHByb3RlY3RlZCByZWFkb25seSBraW5kID0gJ2Fzc2lnbi10by1jb250YWluZXInO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kcmFnU2Vzc2lvbiA9IGluamVjdChGRHJhZ2dhYmxlRGF0YUNvbnRleHQpO1xuXG4gIHByaXZhdGUgZ2V0IF90cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUudHJhbnNmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FuZGlkYXRlR3JvdXBzOiBJTm9kZVdpdGhSZWN0W10gPSBbXTtcblxuICBwcml2YXRlIF9kZWJvdW5jZVRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX2FjdGl2ZVRhcmdldDogSU5vZGVXaXRoUmVjdCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBSZWFkLW9ubHkgYWNjZXNzIGZvciBmaW5hbGl6ZSBzdGFnZS4gKi9cbiAgcHVibGljIGdldCBhY3RpdmVUYXJnZXQoKTogSU5vZGVXaXRoUmVjdCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVUYXJnZXQ7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZShjYW5kaWRhdGVHcm91cHM6IElOb2RlV2l0aFJlY3RbXSkge1xuICAgIHRoaXMuX2NhbmRpZGF0ZUdyb3VwcyA9IGNhbmRpZGF0ZUdyb3VwcztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgeyBub2RlIH0gb2YgdGhpcy5fY2FuZGlkYXRlR3JvdXBzKSB7XG4gICAgICBub2RlLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoRl9DU1NfQ0xBU1MuR1JPVVBJTkcuRFJPUF9BQ1RJVkUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kZWJvdW5jZVRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fZGVib3VuY2VUaW1lcik7XG4gICAgfVxuXG4gICAgdGhpcy5fZGVib3VuY2VUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fdXBkYXRlQWN0aXZlVGFyZ2V0KGRpZmZlcmVuY2UpLCBERUJPVU5DRV9NUyk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xlYXJBY3RpdmVUYXJnZXQoKTtcblxuICAgIGZvciAoY29uc3QgeyBub2RlIH0gb2YgdGhpcy5fY2FuZGlkYXRlR3JvdXBzKSB7XG4gICAgICBub2RlLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoRl9DU1NfQ0xBU1MuR1JPVVBJTkcuRFJPUF9BQ1RJVkUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9kZWJvdW5jZVRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fZGVib3VuY2VUaW1lcik7XG4gICAgICB0aGlzLl9kZWJvdW5jZVRpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBY3RpdmVUYXJnZXQoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9pbnRlckluRmxvdyA9IHRoaXMuX2dldFBvaW50ZXJJbkZsb3coZGlmZmVyZW5jZSk7XG4gICAgY29uc3QgbmV4dCA9IHRoaXMuX2ZpbmRUYXJnZXRVbmRlclBvaW50ZXIocG9pbnRlckluRmxvdyk7XG5cbiAgICBpZiAobmV4dCkge1xuICAgICAgdGhpcy5fc2V0QWN0aXZlVGFyZ2V0KG5leHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jbGVhckFjdGl2ZVRhcmdldCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFBvaW50ZXJJbkZsb3coZGlmZmVyZW5jZTogSVBvaW50KTogSVBvaW50IHtcbiAgICBjb25zdCBwb2ludGVySW5TY2FsZWRGbG93ID0gUG9pbnQuZnJvbVBvaW50KHRoaXMuX2RyYWdTZXNzaW9uLm9uUG9pbnRlckRvd25Qb3NpdGlvbikuYWRkKFxuICAgICAgZGlmZmVyZW5jZSxcbiAgICApO1xuICAgIGNvbnN0IHRyYW5zZm9ybU9mZnNldEluRmxvdyA9IFBvaW50LmZyb21Qb2ludCh0aGlzLl90cmFuc2Zvcm0ucG9zaXRpb24pXG4gICAgICAuYWRkKHRoaXMuX3RyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbilcbiAgICAgIC5kaXYodGhpcy5fdHJhbnNmb3JtLnNjYWxlKTtcblxuICAgIHJldHVybiBwb2ludGVySW5TY2FsZWRGbG93LnN1Yih0cmFuc2Zvcm1PZmZzZXRJbkZsb3cpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluZFRhcmdldFVuZGVyUG9pbnRlcihwb2ludGVyOiBJUG9pbnQpOiBJTm9kZVdpdGhSZWN0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fY2FuZGlkYXRlR3JvdXBzLmZpbmQoKHgpID0+IFJlY3RFeHRlbnNpb25zLmlzSW5jbHVkZVBvaW50KHgucmVjdCwgcG9pbnRlcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QWN0aXZlVGFyZ2V0KHRhcmdldDogSU5vZGVXaXRoUmVjdCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9hY3RpdmVUYXJnZXQ/Lm5vZGUgPT09IHRhcmdldC5ub2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fY2xlYXJBY3RpdmVUYXJnZXQoKTtcbiAgICB0aGlzLl9hY3RpdmVUYXJnZXQgPSB0YXJnZXQ7XG4gICAgdGFyZ2V0Lm5vZGUuc2V0Q2xhc3MoRl9DU1NfQ0xBU1MuR1JPVVBJTkcuT1ZFUl9CT1VOREFSWSk7XG4gIH1cblxuICBwcml2YXRlIF9jbGVhckFjdGl2ZVRhcmdldCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hY3RpdmVUYXJnZXQ/Lm5vZGUucmVtb3ZlQ2xhc3MoRl9DU1NfQ0xBU1MuR1JPVVBJTkcuT1ZFUl9CT1VOREFSWSk7XG4gICAgdGhpcy5fYWN0aXZlVGFyZ2V0ID0gbnVsbDtcbiAgfVxufVxuIl19