@foblex/flow 12.5.1 → 12.6.0

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 (393) hide show
  1. package/README.md +2 -2
  2. package/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.d.ts +13 -0
  3. package/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.request.d.ts +4 -0
  4. package/domain/get-deep-children-nodes-and-groups/index.d.ts +2 -0
  5. package/domain/get-nodes-rect/get-nodes-rect.execution.d.ts +2 -2
  6. package/domain/get-scaled-node-rects-with-flow-position/get-scaled-node-rects-with-flow-position.execution.d.ts +14 -0
  7. package/domain/get-scaled-node-rects-with-flow-position/get-scaled-node-rects-with-flow-position.request.d.ts +2 -0
  8. package/domain/get-scaled-node-rects-with-flow-position/index.d.ts +2 -0
  9. package/domain/index.d.ts +4 -5
  10. package/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +1 -5
  11. package/domain/providers.d.ts +5 -6
  12. package/domain/select-and-update-node-layer/select-and-update-node-layer.execution.d.ts +1 -3
  13. package/domain/sort-item-layers/index.d.ts +4 -0
  14. package/domain/sort-item-layers/sort-item-layers.execution.d.ts +12 -0
  15. package/domain/sort-item-layers/sort-item-layers.request.d.ts +2 -0
  16. package/domain/sort-item-layers/sort-items-by-parent/index.d.ts +2 -0
  17. package/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.d.ts +20 -0
  18. package/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.request.d.ts +4 -0
  19. package/domain/sort-item-layers/sort-node-layers-by-groups/index.d.ts +2 -0
  20. package/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.d.ts +21 -0
  21. package/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.request.d.ts +2 -0
  22. package/domain/update-item-and-children-layers/index.d.ts +3 -0
  23. package/domain/update-item-and-children-layers/move-front-elements-before-target-element/index.d.ts +2 -0
  24. package/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.execution.d.ts +8 -0
  25. package/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.request.d.ts +8 -0
  26. package/domain/update-item-and-children-layers/update-item-and-children-layers.execution.d.ts +25 -0
  27. package/domain/{update-item-layer/update-item-layer.request.d.ts → update-item-and-children-layers/update-item-and-children-layers.request.d.ts} +1 -1
  28. package/esm2022/domain/clear-selection/clear-selection.execution.mjs +2 -4
  29. package/esm2022/domain/create-connection-markers/create-connection-markers.execution.mjs +2 -2
  30. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.mjs +36 -0
  31. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.request.mjs +7 -0
  32. package/esm2022/domain/get-deep-children-nodes-and-groups/index.mjs +3 -0
  33. package/esm2022/domain/get-nodes-rect/get-nodes-rect.execution.mjs +1 -1
  34. package/esm2022/domain/get-scaled-node-rects-with-flow-position/get-scaled-node-rects-with-flow-position.execution.mjs +35 -0
  35. package/esm2022/domain/get-scaled-node-rects-with-flow-position/get-scaled-node-rects-with-flow-position.request.mjs +3 -0
  36. package/esm2022/domain/get-scaled-node-rects-with-flow-position/index.mjs +3 -0
  37. package/esm2022/domain/index.mjs +5 -6
  38. package/esm2022/domain/is-connection-under-node/is-connection-under-node.execution.mjs +14 -20
  39. package/esm2022/domain/providers.mjs +12 -11
  40. package/esm2022/domain/redraw-connections/redraw-connections.execution.mjs +1 -1
  41. package/esm2022/domain/select/select.execution.mjs +2 -2
  42. package/esm2022/domain/select-all/select-all.execution.mjs +1 -1
  43. package/esm2022/domain/select-and-update-node-layer/select-and-update-node-layer.execution.mjs +7 -10
  44. package/esm2022/domain/sort-item-layers/index.mjs +5 -0
  45. package/esm2022/domain/sort-item-layers/sort-item-layers.execution.mjs +32 -0
  46. package/esm2022/domain/sort-item-layers/sort-item-layers.request.mjs +3 -0
  47. package/esm2022/domain/sort-item-layers/sort-items-by-parent/index.mjs +3 -0
  48. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.mjs +61 -0
  49. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.request.mjs +8 -0
  50. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/index.mjs +3 -0
  51. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.mjs +62 -0
  52. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.request.mjs +3 -0
  53. package/esm2022/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.mjs +2 -2
  54. package/esm2022/domain/update-item-and-children-layers/index.mjs +4 -0
  55. package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/index.mjs +3 -0
  56. package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.execution.mjs +30 -0
  57. package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.request.mjs +14 -0
  58. package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.execution.mjs +99 -0
  59. package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.request.mjs +9 -0
  60. package/esm2022/f-canvas/f-canvas-base.mjs +1 -1
  61. package/esm2022/f-canvas/f-canvas.component.mjs +9 -5
  62. package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +2 -2
  63. package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +3 -2
  64. package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +2 -2
  65. package/esm2022/f-connection/common/f-connection-base.mjs +5 -3
  66. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +2 -2
  67. package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +2 -2
  68. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle.component.mjs +3 -3
  69. package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +2 -2
  70. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +8 -8
  71. package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +2 -2
  72. package/esm2022/f-connection/common/i-has-connection-from-to.mjs +1 -1
  73. package/esm2022/f-connection/common/mixins/change-connection-selection.mixin.mjs +2 -1
  74. package/esm2022/f-connection/f-connection/f-connection.component.mjs +22 -17
  75. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-response.mjs +1 -1
  76. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +19 -12
  77. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.mjs +2 -4
  78. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.validator.mjs +3 -3
  79. package/esm2022/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.validator.mjs +6 -1
  80. package/esm2022/f-draggable/canvas/canvas.drag-handler.mjs +1 -3
  81. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.validator.mjs +3 -3
  82. package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +1 -3
  83. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.mjs +2 -2
  84. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.validator.mjs +3 -3
  85. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.execution.mjs +3 -3
  86. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.mjs +1 -3
  87. package/esm2022/f-draggable/domain/convert-computed-to-pixels/convert-computed-to-pixels-request.mjs +13 -0
  88. package/esm2022/f-draggable/domain/convert-computed-to-pixels/convert-computed-to-pixels.execution.mjs +49 -0
  89. package/esm2022/f-draggable/domain/convert-computed-to-pixels/index.mjs +3 -0
  90. package/esm2022/f-draggable/domain/get-node-padding/get-node-padding.execution.mjs +38 -0
  91. package/esm2022/f-draggable/domain/get-node-padding/get-node-padding.request.mjs +9 -0
  92. package/esm2022/f-draggable/domain/get-node-padding/index.mjs +3 -0
  93. package/esm2022/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.execution.mjs +30 -0
  94. package/esm2022/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.request.mjs +7 -0
  95. package/esm2022/f-draggable/domain/get-normalized-node-rect/index.mjs +3 -0
  96. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +50 -0
  97. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.mjs +7 -0
  98. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/index.mjs +3 -0
  99. package/esm2022/f-draggable/domain/get-parent-nodes/get-parent-nodes.execution.mjs +37 -0
  100. package/esm2022/f-draggable/domain/get-parent-nodes/get-parent-nodes.request.mjs +7 -0
  101. package/esm2022/f-draggable/domain/get-parent-nodes/index.mjs +3 -0
  102. package/esm2022/f-draggable/domain/index.mjs +8 -0
  103. package/esm2022/f-draggable/domain/is-array-has-parent-node/index.mjs +3 -0
  104. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.mjs +35 -0
  105. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.request.mjs +9 -0
  106. package/esm2022/f-draggable/domain/providers.mjs +15 -0
  107. package/esm2022/f-draggable/f-draggable-base.mjs +8 -3
  108. package/esm2022/f-draggable/f-draggable-data-context.mjs +1 -2
  109. package/esm2022/f-draggable/f-draggable.directive.mjs +3 -7
  110. package/esm2022/f-draggable/i-draggable-item.mjs +1 -1
  111. package/esm2022/f-draggable/index.mjs +2 -4
  112. package/esm2022/f-draggable/node/connection-base-drag-handler.mjs +42 -0
  113. package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +14 -26
  114. package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +14 -26
  115. package/esm2022/f-draggable/node/connection.drag-handler.mjs +16 -24
  116. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +46 -56
  117. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.mjs +45 -0
  118. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.request.mjs +9 -0
  119. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/i-node-move-restrictions.mjs +2 -0
  120. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/index.mjs +4 -0
  121. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/index.mjs +3 -0
  122. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.mjs +72 -0
  123. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.request.mjs +11 -0
  124. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/index.mjs +3 -0
  125. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.mjs +72 -0
  126. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.request.mjs +11 -0
  127. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/i-node-with-distance-restrictions.mjs +2 -0
  128. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/index.mjs +5 -1
  129. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.mjs +7 -1
  130. package/esm2022/f-draggable/node/index.mjs +3 -1
  131. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +2 -2
  132. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.validator.mjs +3 -3
  133. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.execution.mjs +3 -4
  134. package/esm2022/f-draggable/node/node-resize-by-child.drag-handler.mjs +13 -0
  135. package/esm2022/f-draggable/node/node.drag-handler.mjs +21 -7
  136. package/esm2022/f-draggable/node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.mjs +49 -0
  137. package/esm2022/f-draggable/node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.mjs +9 -0
  138. package/esm2022/f-draggable/node-resize/apply-child-resize-restrictions/index.mjs +3 -0
  139. package/esm2022/f-draggable/node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.execution.mjs +49 -0
  140. package/esm2022/f-draggable/node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.request.mjs +9 -0
  141. package/esm2022/f-draggable/node-resize/apply-parent-resize-restrictions/index.mjs +3 -0
  142. package/esm2022/f-draggable/node-resize/calculate-changed-position/calculate-changed-position.execution.mjs +25 -0
  143. package/esm2022/f-draggable/node-resize/calculate-changed-position/calculate-changed-position.request.mjs +13 -0
  144. package/esm2022/f-draggable/node-resize/calculate-changed-position/index.mjs +3 -0
  145. package/esm2022/f-draggable/node-resize/calculate-changed-size/calculate-changed-size.execution.mjs +34 -0
  146. package/esm2022/f-draggable/node-resize/calculate-changed-size/calculate-changed-size.request.mjs +11 -0
  147. package/esm2022/f-draggable/node-resize/calculate-changed-size/index.mjs +3 -0
  148. package/esm2022/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.mjs +32 -0
  149. package/esm2022/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.request.mjs +9 -0
  150. package/esm2022/f-draggable/node-resize/get-node-resize-restrictions/i-node-resize-restrictions.mjs +2 -0
  151. package/esm2022/f-draggable/node-resize/get-node-resize-restrictions/index.mjs +4 -0
  152. package/esm2022/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +42 -0
  153. package/esm2022/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.mjs +9 -0
  154. package/esm2022/f-draggable/node-resize/get-normalized-children-nodes-rect/index.mjs +3 -0
  155. package/esm2022/f-draggable/node-resize/index.mjs +8 -1
  156. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.validator.mjs +3 -3
  157. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.execution.mjs +2 -2
  158. package/esm2022/f-draggable/node-resize/node-resize.drag-handler.mjs +38 -39
  159. package/esm2022/f-draggable/node-resize/providers.mjs +13 -1
  160. package/esm2022/f-draggable/node-resize/resize-direction.mjs +8 -0
  161. package/esm2022/f-draggable/providers.mjs +7 -5
  162. package/esm2022/f-draggable/single-select/single-select.execution.mjs +11 -11
  163. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.execution.mjs +58 -0
  164. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.request.mjs +7 -0
  165. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.validator.mjs +26 -0
  166. package/esm2022/f-external-item/domain/external-item-finalize/index.mjs +5 -0
  167. package/esm2022/f-external-item/domain/external-item-finalize/providers.mjs +7 -0
  168. package/esm2022/f-external-item/domain/external-item-preparation/external-item-preparation.execution.mjs +44 -0
  169. package/esm2022/f-external-item/domain/external-item-preparation/external-item-preparation.request.mjs +7 -0
  170. package/esm2022/f-external-item/domain/external-item-preparation/external-item-preparation.validator.mjs +30 -0
  171. package/esm2022/f-external-item/domain/external-item-preparation/index.mjs +5 -0
  172. package/esm2022/f-external-item/domain/external-item-preparation/providers.mjs +7 -0
  173. package/esm2022/f-external-item/domain/external-item.drag-handler.mjs +36 -0
  174. package/esm2022/f-external-item/domain/f-create-node.event.mjs +9 -0
  175. package/esm2022/f-external-item/domain/index.mjs +6 -0
  176. package/esm2022/f-external-item/domain/providers.mjs +7 -0
  177. package/esm2022/f-external-item/index.mjs +2 -1
  178. package/esm2022/f-flow/f-flow.component.mjs +15 -7
  179. package/esm2022/f-flow.module.mjs +7 -6
  180. package/esm2022/f-line-alignment/domain/line-service.mjs +3 -1
  181. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +2 -2
  182. package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +1 -3
  183. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.validator.mjs +2 -2
  184. package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +9 -11
  185. package/esm2022/f-minimap/f-minimap-flow.directive.mjs +3 -2
  186. package/esm2022/f-node/domain/index.mjs +3 -0
  187. package/esm2022/f-node/domain/is-group.mjs +4 -0
  188. package/esm2022/f-node/domain/is-node.mjs +4 -0
  189. package/esm2022/f-node/f-group.directive.mjs +147 -0
  190. package/esm2022/f-node/f-node-base.mjs +2 -1
  191. package/esm2022/f-node/f-node.directive.mjs +12 -4
  192. package/esm2022/f-node/index.mjs +3 -2
  193. package/esm2022/f-node/providers.mjs +3 -2
  194. package/esm2022/f-selection-area/domain/index.mjs +5 -2
  195. package/esm2022/f-selection-area/domain/providers.mjs +7 -0
  196. package/esm2022/f-selection-area/domain/selection-area-finalize/index.mjs +5 -0
  197. package/esm2022/f-selection-area/domain/selection-area-finalize/providers.mjs +7 -0
  198. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.mjs +27 -0
  199. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.request.mjs +7 -0
  200. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.validator.mjs +26 -0
  201. package/esm2022/f-selection-area/domain/selection-area-preparation/index.mjs +5 -0
  202. package/esm2022/f-selection-area/domain/selection-area-preparation/providers.mjs +7 -0
  203. package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.execution.mjs +41 -0
  204. package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.request.mjs +9 -0
  205. package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.validator.mjs +30 -0
  206. package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +52 -0
  207. package/esm2022/f-selection-area/f-selection-area-base.mjs +2 -3
  208. package/esm2022/f-selection-area/f-selection-area.component.mjs +20 -13
  209. package/esm2022/f-storage/f-components-store.mjs +14 -4
  210. package/f-canvas/f-canvas-base.d.ts +1 -0
  211. package/f-canvas/f-canvas.component.d.ts +2 -1
  212. package/f-connection/common/f-connection-base.d.ts +2 -1
  213. package/f-connection/common/f-drag-handle/f-connection-drag-handle.component.d.ts +1 -1
  214. package/f-connection/common/i-has-connection-from-to.d.ts +1 -1
  215. package/f-connection/common/mixins/change-connection-selection.mixin.d.ts +1 -0
  216. package/f-connection/f-connection/f-connection.component.d.ts +4 -3
  217. package/f-connection/f-connection-builder/i-f-connection-builder-response.d.ts +1 -0
  218. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +4 -3
  219. package/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.validator.d.ts +1 -0
  220. package/f-draggable/canvas/canvas.drag-handler.d.ts +0 -2
  221. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +0 -2
  222. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +0 -2
  223. package/f-draggable/domain/convert-computed-to-pixels/convert-computed-to-pixels-request.d.ts +7 -0
  224. package/f-draggable/domain/convert-computed-to-pixels/convert-computed-to-pixels.execution.d.ts +12 -0
  225. package/f-draggable/domain/convert-computed-to-pixels/index.d.ts +2 -0
  226. package/f-draggable/domain/get-node-padding/get-node-padding.execution.d.ts +12 -0
  227. package/f-draggable/domain/get-node-padding/get-node-padding.request.d.ts +7 -0
  228. package/f-draggable/domain/get-node-padding/index.d.ts +2 -0
  229. package/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.execution.d.ts +13 -0
  230. package/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.request.d.ts +5 -0
  231. package/f-draggable/domain/get-normalized-node-rect/index.d.ts +2 -0
  232. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.d.ts +17 -0
  233. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.d.ts +5 -0
  234. package/f-draggable/domain/get-normalized-parent-node-rect/index.d.ts +2 -0
  235. package/f-draggable/domain/get-parent-nodes/get-parent-nodes.execution.d.ts +13 -0
  236. package/f-draggable/domain/get-parent-nodes/get-parent-nodes.request.d.ts +5 -0
  237. package/f-draggable/domain/get-parent-nodes/index.d.ts +2 -0
  238. package/f-draggable/domain/index.d.ts +7 -0
  239. package/f-draggable/domain/is-array-has-parent-node/index.d.ts +2 -0
  240. package/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.d.ts +13 -0
  241. package/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.request.d.ts +6 -0
  242. package/f-draggable/domain/providers.d.ts +7 -0
  243. package/f-draggable/f-draggable-base.d.ts +2 -1
  244. package/f-draggable/f-draggable-data-context.d.ts +0 -2
  245. package/f-draggable/f-draggable.directive.d.ts +1 -1
  246. package/f-draggable/i-draggable-item.d.ts +0 -2
  247. package/f-draggable/index.d.ts +1 -3
  248. package/f-draggable/node/connection-base-drag-handler.d.ts +23 -0
  249. package/f-draggable/node/connection-source.drag-handler.d.ts +6 -12
  250. package/f-draggable/node/connection-target.drag-handler.d.ts +6 -12
  251. package/f-draggable/node/connection.drag-handler.d.ts +7 -10
  252. package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +4 -6
  253. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.d.ts +13 -0
  254. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.request.d.ts +6 -0
  255. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/i-node-move-restrictions.d.ts +5 -0
  256. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/index.d.ts +3 -0
  257. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/index.d.ts +2 -0
  258. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.d.ts +22 -0
  259. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.request.d.ts +8 -0
  260. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/index.d.ts +2 -0
  261. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.d.ts +22 -0
  262. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.request.d.ts +8 -0
  263. package/f-draggable/node/create-move-nodes-drag-model-from-selection/i-node-with-distance-restrictions.d.ts +6 -0
  264. package/f-draggable/node/create-move-nodes-drag-model-from-selection/index.d.ts +4 -0
  265. package/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.d.ts +4 -1
  266. package/f-draggable/node/index.d.ts +2 -0
  267. package/f-draggable/node/node-resize-by-child.drag-handler.d.ts +10 -0
  268. package/f-draggable/node/node.drag-handler.d.ts +6 -3
  269. package/f-draggable/node/providers.d.ts +1 -1
  270. package/f-draggable/node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.d.ts +13 -0
  271. package/f-draggable/node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.d.ts +6 -0
  272. package/f-draggable/node-resize/apply-child-resize-restrictions/index.d.ts +2 -0
  273. package/f-draggable/node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.execution.d.ts +13 -0
  274. package/f-draggable/node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.request.d.ts +6 -0
  275. package/f-draggable/node-resize/apply-parent-resize-restrictions/index.d.ts +2 -0
  276. package/f-draggable/node-resize/calculate-changed-position/calculate-changed-position.execution.d.ts +10 -0
  277. package/f-draggable/node-resize/calculate-changed-position/calculate-changed-position.request.d.ts +9 -0
  278. package/f-draggable/node-resize/calculate-changed-position/index.d.ts +2 -0
  279. package/f-draggable/node-resize/calculate-changed-size/calculate-changed-size.execution.d.ts +10 -0
  280. package/f-draggable/node-resize/calculate-changed-size/calculate-changed-size.request.d.ts +8 -0
  281. package/f-draggable/node-resize/calculate-changed-size/index.d.ts +2 -0
  282. package/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.d.ts +11 -0
  283. package/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.request.d.ts +7 -0
  284. package/f-draggable/node-resize/get-node-resize-restrictions/i-node-resize-restrictions.d.ts +5 -0
  285. package/f-draggable/node-resize/get-node-resize-restrictions/index.d.ts +3 -0
  286. package/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.d.ts +15 -0
  287. package/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.d.ts +7 -0
  288. package/f-draggable/node-resize/get-normalized-children-nodes-rect/index.d.ts +2 -0
  289. package/f-draggable/node-resize/index.d.ts +7 -0
  290. package/f-draggable/node-resize/node-resize.drag-handler.d.ts +11 -10
  291. package/f-draggable/node-resize/providers.d.ts +7 -1
  292. package/f-draggable/node-resize/resize-direction.d.ts +18 -0
  293. package/f-draggable/providers.d.ts +1 -1
  294. package/f-draggable/single-select/single-select.execution.d.ts +2 -3
  295. package/{f-draggable/external-item → f-external-item/domain}/external-item-finalize/external-item-finalize.execution.d.ts +1 -1
  296. package/{f-draggable/external-item → f-external-item/domain}/external-item-finalize/external-item-finalize.validator.d.ts +1 -1
  297. package/{f-draggable/external-item → f-external-item/domain}/external-item-preparation/external-item-preparation.execution.d.ts +1 -1
  298. package/{f-draggable/external-item → f-external-item/domain}/external-item.drag-handler.d.ts +1 -3
  299. package/f-external-item/domain/providers.d.ts +1 -0
  300. package/f-external-item/index.d.ts +1 -0
  301. package/f-flow/f-flow.component.d.ts +2 -1
  302. package/f-flow.module.d.ts +8 -7
  303. package/f-minimap/domain/f-minimap.drag-handler.d.ts +1 -2
  304. package/f-minimap/f-minimap-canvas.directive.d.ts +1 -3
  305. package/f-node/domain/index.d.ts +2 -0
  306. package/f-node/domain/is-group.d.ts +1 -0
  307. package/f-node/f-group.directive.d.ts +40 -0
  308. package/f-node/f-node-base.d.ts +3 -0
  309. package/f-node/f-node.directive.d.ts +6 -4
  310. package/f-node/index.d.ts +2 -1
  311. package/f-node/providers.d.ts +2 -1
  312. package/f-selection-area/domain/index.d.ts +4 -1
  313. package/f-selection-area/domain/providers.d.ts +1 -0
  314. package/{f-draggable/selection-area → f-selection-area/domain}/selection-area-finalize/selection-area-finalize.execution.d.ts +1 -1
  315. package/{f-draggable/selection-area → f-selection-area/domain}/selection-area-finalize/selection-area-finalize.validator.d.ts +1 -1
  316. package/{f-draggable/selection-area → f-selection-area/domain}/selection-area-preparation/selection-area-preparation.execution.d.ts +1 -1
  317. package/f-selection-area/domain/selection-area-preparation/selection-area-preparation.request.d.ts +7 -0
  318. package/{f-draggable/selection-area → f-selection-area/domain}/selection-area-preparation/selection-area-preparation.validator.d.ts +1 -1
  319. package/{f-draggable/selection-area → f-selection-area/domain}/selection-area.drag-handle.d.ts +4 -5
  320. package/f-selection-area/f-selection-area-base.d.ts +2 -5
  321. package/f-selection-area/f-selection-area.component.d.ts +9 -6
  322. package/f-storage/f-components-store.d.ts +6 -2
  323. package/fesm2022/foblex-flow.mjs +2108 -1005
  324. package/fesm2022/foblex-flow.mjs.map +1 -1
  325. package/package.json +3 -3
  326. package/domain/get-connection.handler.d.ts +0 -12
  327. package/domain/get-external-nodes-rect/get-external-nodes-rect.execution.d.ts +0 -14
  328. package/domain/get-external-nodes-rect/get-external-nodes-rect.request.d.ts +0 -2
  329. package/domain/get-external-nodes-rect/index.d.ts +0 -2
  330. package/domain/get-incoming-connections.handler.d.ts +0 -13
  331. package/domain/get-outgoing-connections.handler.d.ts +0 -13
  332. package/domain/update-item-layer/index.d.ts +0 -2
  333. package/domain/update-item-layer/update-item-layer.execution.d.ts +0 -8
  334. package/esm2022/domain/get-connection.handler.mjs +0 -21
  335. package/esm2022/domain/get-external-nodes-rect/get-external-nodes-rect.execution.mjs +0 -35
  336. package/esm2022/domain/get-external-nodes-rect/get-external-nodes-rect.request.mjs +0 -3
  337. package/esm2022/domain/get-external-nodes-rect/index.mjs +0 -3
  338. package/esm2022/domain/get-incoming-connections.handler.mjs +0 -24
  339. package/esm2022/domain/get-outgoing-connections.handler.mjs +0 -24
  340. package/esm2022/domain/update-item-layer/index.mjs +0 -3
  341. package/esm2022/domain/update-item-layer/update-item-layer.execution.mjs +0 -28
  342. package/esm2022/domain/update-item-layer/update-item-layer.request.mjs +0 -9
  343. package/esm2022/f-draggable/e-f-draggable-type.mjs +0 -13
  344. package/esm2022/f-draggable/external-item/external-item-finalize/external-item-finalize.execution.mjs +0 -58
  345. package/esm2022/f-draggable/external-item/external-item-finalize/external-item-finalize.request.mjs +0 -7
  346. package/esm2022/f-draggable/external-item/external-item-finalize/external-item-finalize.validator.mjs +0 -26
  347. package/esm2022/f-draggable/external-item/external-item-finalize/index.mjs +0 -5
  348. package/esm2022/f-draggable/external-item/external-item-finalize/providers.mjs +0 -7
  349. package/esm2022/f-draggable/external-item/external-item-preparation/external-item-preparation.execution.mjs +0 -44
  350. package/esm2022/f-draggable/external-item/external-item-preparation/external-item-preparation.request.mjs +0 -7
  351. package/esm2022/f-draggable/external-item/external-item-preparation/external-item-preparation.validator.mjs +0 -30
  352. package/esm2022/f-draggable/external-item/external-item-preparation/index.mjs +0 -5
  353. package/esm2022/f-draggable/external-item/external-item-preparation/providers.mjs +0 -7
  354. package/esm2022/f-draggable/external-item/external-item.drag-handler.mjs +0 -38
  355. package/esm2022/f-draggable/external-item/f-create-node.event.mjs +0 -9
  356. package/esm2022/f-draggable/external-item/index.mjs +0 -6
  357. package/esm2022/f-draggable/external-item/providers.mjs +0 -7
  358. package/esm2022/f-draggable/selection-area/index.mjs +0 -5
  359. package/esm2022/f-draggable/selection-area/providers.mjs +0 -7
  360. package/esm2022/f-draggable/selection-area/selection-area-finalize/index.mjs +0 -5
  361. package/esm2022/f-draggable/selection-area/selection-area-finalize/providers.mjs +0 -7
  362. package/esm2022/f-draggable/selection-area/selection-area-finalize/selection-area-finalize.execution.mjs +0 -27
  363. package/esm2022/f-draggable/selection-area/selection-area-finalize/selection-area-finalize.request.mjs +0 -7
  364. package/esm2022/f-draggable/selection-area/selection-area-finalize/selection-area-finalize.validator.mjs +0 -26
  365. package/esm2022/f-draggable/selection-area/selection-area-preparation/index.mjs +0 -5
  366. package/esm2022/f-draggable/selection-area/selection-area-preparation/providers.mjs +0 -7
  367. package/esm2022/f-draggable/selection-area/selection-area-preparation/selection-area-preparation.execution.mjs +0 -41
  368. package/esm2022/f-draggable/selection-area/selection-area-preparation/selection-area-preparation.request.mjs +0 -7
  369. package/esm2022/f-draggable/selection-area/selection-area-preparation/selection-area-preparation.validator.mjs +0 -31
  370. package/esm2022/f-draggable/selection-area/selection-area.drag-handle.mjs +0 -57
  371. package/esm2022/f-node/is-node.mjs +0 -4
  372. package/esm2022/f-selection-area/domain/i-selection-area-rect.mjs +0 -2
  373. package/f-draggable/e-f-draggable-type.d.ts +0 -11
  374. package/f-draggable/external-item/providers.d.ts +0 -1
  375. package/f-draggable/selection-area/index.d.ts +0 -4
  376. package/f-draggable/selection-area/providers.d.ts +0 -1
  377. package/f-draggable/selection-area/selection-area-preparation/selection-area-preparation.request.d.ts +0 -5
  378. package/f-selection-area/domain/i-selection-area-rect.d.ts +0 -6
  379. /package/{f-draggable/external-item → f-external-item/domain}/external-item-finalize/external-item-finalize.request.d.ts +0 -0
  380. /package/{f-draggable/external-item → f-external-item/domain}/external-item-finalize/index.d.ts +0 -0
  381. /package/{f-draggable/external-item → f-external-item/domain}/external-item-finalize/providers.d.ts +0 -0
  382. /package/{f-draggable/external-item → f-external-item/domain}/external-item-preparation/external-item-preparation.request.d.ts +0 -0
  383. /package/{f-draggable/external-item → f-external-item/domain}/external-item-preparation/external-item-preparation.validator.d.ts +0 -0
  384. /package/{f-draggable/external-item → f-external-item/domain}/external-item-preparation/index.d.ts +0 -0
  385. /package/{f-draggable/external-item → f-external-item/domain}/external-item-preparation/providers.d.ts +0 -0
  386. /package/{f-draggable/external-item → f-external-item/domain}/f-create-node.event.d.ts +0 -0
  387. /package/{f-draggable/external-item → f-external-item/domain}/index.d.ts +0 -0
  388. /package/f-node/{is-node.d.ts → domain/is-node.d.ts} +0 -0
  389. /package/{f-draggable/selection-area → f-selection-area/domain}/selection-area-finalize/index.d.ts +0 -0
  390. /package/{f-draggable/selection-area → f-selection-area/domain}/selection-area-finalize/providers.d.ts +0 -0
  391. /package/{f-draggable/selection-area → f-selection-area/domain}/selection-area-finalize/selection-area-finalize.request.d.ts +0 -0
  392. /package/{f-draggable/selection-area → f-selection-area/domain}/selection-area-preparation/index.d.ts +0 -0
  393. /package/{f-draggable/selection-area → f-selection-area/domain}/selection-area-preparation/providers.d.ts +0 -0
@@ -13,7 +13,7 @@ let SubscribeOnTransformChangesExecution = class SubscribeOnTransformChangesExec
13
13
  this.fComponentsStore = fComponentsStore;
14
14
  }
15
15
  handle(request) {
16
- return merge(this.fTransformStore.changes, this.fComponentsStore.changes);
16
+ return merge(this.fTransformStore.changes, this.fComponentsStore.componentsData$, this.fComponentsStore.componentsCount$);
17
17
  }
18
18
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SubscribeOnTransformChangesExecution, deps: [{ token: i1.FTransformStore }, { token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
19
19
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SubscribeOnTransformChangesExecution });
@@ -25,4 +25,4 @@ export { SubscribeOnTransformChangesExecution };
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SubscribeOnTransformChangesExecution, decorators: [{
26
26
  type: Injectable
27
27
  }], ctorParameters: () => [{ type: i1.FTransformStore }, { type: i1.FComponentsStore }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaWJlLW9uLXRyYW5zZm9ybS1jaGFuZ2VzLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL3N1YnNjcmliZS1vbi10cmFuc2Zvcm0tY2hhbmdlcy9zdWJzY3JpYmUtb24tdHJhbnNmb3JtLWNoYW5nZXMuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sc0JBQXNCLENBQUM7OztBQUkvRCxJQUFNLG9DQUFvQyxHQUExQyxNQUFNLG9DQUFvQztJQUlyQztJQUNBO0lBRlYsWUFDVSxlQUFnQyxFQUNoQyxnQkFBa0M7UUFEbEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFNUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUEyQztRQUN2RCxPQUFPLEtBQUssQ0FDVixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FDOUIsQ0FBQztJQUNKLENBQUM7dUdBZFUsb0NBQW9DOzJHQUFwQyxvQ0FBb0M7O0FBQXBDLG9DQUFvQztJQURoRCxrQkFBa0IsQ0FBQyxrQ0FBa0MsQ0FBQztHQUMxQyxvQ0FBb0MsQ0FlaEQ7OzJGQWZZLG9DQUFvQztrQkFGaEQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmliZU9uVHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QgfSBmcm9tICcuL3N1YnNjcmliZS1vbi10cmFuc2Zvcm0tY2hhbmdlcy5yZXF1ZXN0JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlLCBGVHJhbnNmb3JtU3RvcmUgfSBmcm9tICcuLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnLi4vLi4vaW5mcmFzdHJ1Y3R1cmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKFN1YnNjcmliZU9uVHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QpXG5leHBvcnQgY2xhc3MgU3Vic2NyaWJlT25UcmFuc2Zvcm1DaGFuZ2VzRXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxTdWJzY3JpYmVPblRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0LCBPYnNlcnZhYmxlPHZvaWQ+PiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmVHJhbnNmb3JtU3RvcmU6IEZUcmFuc2Zvcm1TdG9yZSxcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmVcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IFN1YnNjcmliZU9uVHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gbWVyZ2UoXG4gICAgICB0aGlzLmZUcmFuc2Zvcm1TdG9yZS5jaGFuZ2VzLFxuICAgICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmNoYW5nZXNcbiAgICApO1xuICB9XG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaWJlLW9uLXRyYW5zZm9ybS1jaGFuZ2VzLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL3N1YnNjcmliZS1vbi10cmFuc2Zvcm0tY2hhbmdlcy9zdWJzY3JpYmUtb24tdHJhbnNmb3JtLWNoYW5nZXMuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sc0JBQXNCLENBQUM7OztBQUkvRCxJQUFNLG9DQUFvQyxHQUExQyxNQUFNLG9DQUFvQztJQUlyQztJQUNBO0lBRlYsWUFDVSxlQUFnQyxFQUNoQyxnQkFBa0M7UUFEbEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFNUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUEyQztRQUN2RCxPQUFPLEtBQUssQ0FDVixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUN2QyxDQUFDO0lBQ0osQ0FBQzt1R0FmVSxvQ0FBb0M7MkdBQXBDLG9DQUFvQzs7QUFBcEMsb0NBQW9DO0lBRGhELGtCQUFrQixDQUFDLGtDQUFrQyxDQUFDO0dBQzFDLG9DQUFvQyxDQWdCaEQ7OzJGQWhCWSxvQ0FBb0M7a0JBRmhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpYmVPblRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0IH0gZnJvbSAnLi9zdWJzY3JpYmUtb24tdHJhbnNmb3JtLWNoYW5nZXMucmVxdWVzdCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSwgRlRyYW5zZm9ybVN0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJy4uLy4uL2luZnJhc3RydWN0dXJlJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihTdWJzY3JpYmVPblRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIFN1YnNjcmliZU9uVHJhbnNmb3JtQ2hhbmdlc0V4ZWN1dGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248U3Vic2NyaWJlT25UcmFuc2Zvcm1DaGFuZ2VzUmVxdWVzdCwgT2JzZXJ2YWJsZTx2b2lkPj4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZlRyYW5zZm9ybVN0b3JlOiBGVHJhbnNmb3JtU3RvcmUsXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBTdWJzY3JpYmVPblRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIG1lcmdlKFxuICAgICAgdGhpcy5mVHJhbnNmb3JtU3RvcmUuY2hhbmdlcyxcbiAgICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5jb21wb25lbnRzRGF0YSQsXG4gICAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuY29tcG9uZW50c0NvdW50JFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './move-front-elements-before-target-element';
2
+ export * from './update-item-and-children-layers.execution';
3
+ export * from './update-item-and-children-layers.request';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi91cGRhdGUtaXRlbS1hbmQtY2hpbGRyZW4tbGF5ZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUU1RCxjQUFjLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb3ZlLWZyb250LWVsZW1lbnRzLWJlZm9yZS10YXJnZXQtZWxlbWVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdXBkYXRlLWl0ZW0tYW5kLWNoaWxkcmVuLWxheWVycy5leGVjdXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL3VwZGF0ZS1pdGVtLWFuZC1jaGlsZHJlbi1sYXllcnMucmVxdWVzdCc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './move-front-elements-before-target-element.execution';
2
+ export * from './move-front-elements-before-target-element.request';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi91cGRhdGUtaXRlbS1hbmQtY2hpbGRyZW4tbGF5ZXJzL21vdmUtZnJvbnQtZWxlbWVudHMtYmVmb3JlLXRhcmdldC1lbGVtZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdURBQXVELENBQUM7QUFFdEUsY0FBYyxxREFBcUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQuZXhlY3V0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb3ZlLWZyb250LWVsZW1lbnRzLWJlZm9yZS10YXJnZXQtZWxlbWVudC5yZXF1ZXN0JztcbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { __decorate } from "tslib";
2
+ import { MoveFrontElementsBeforeTargetElementRequest } from './move-front-elements-before-target-element.request';
3
+ import { Injectable } from '@angular/core';
4
+ import { FExecutionRegister } from '../../../infrastructure';
5
+ import * as i0 from "@angular/core";
6
+ let MoveFrontElementsBeforeTargetElementExecution = class MoveFrontElementsBeforeTargetElementExecution {
7
+ handle(request) {
8
+ const elementsToMove = [];
9
+ for (let i = request.targetIndex + 1; i < request.allElements.length; i++) {
10
+ const element = request.allElements[i];
11
+ if (!request.elementsThatShouldBeInFront.includes(element)) {
12
+ elementsToMove.push(element);
13
+ }
14
+ }
15
+ elementsToMove.forEach((x) => {
16
+ request.fItemsContainer.removeChild(x);
17
+ request.fItemsContainer.insertBefore(x, request.allElements[request.targetIndex]);
18
+ });
19
+ }
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: MoveFrontElementsBeforeTargetElementExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: MoveFrontElementsBeforeTargetElementExecution });
22
+ };
23
+ MoveFrontElementsBeforeTargetElementExecution = __decorate([
24
+ FExecutionRegister(MoveFrontElementsBeforeTargetElementRequest)
25
+ ], MoveFrontElementsBeforeTargetElementExecution);
26
+ export { MoveFrontElementsBeforeTargetElementExecution };
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: MoveFrontElementsBeforeTargetElementExecution, decorators: [{
28
+ type: Injectable
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vdXBkYXRlLWl0ZW0tYW5kLWNoaWxkcmVuLWxheWVycy9tb3ZlLWZyb250LWVsZW1lbnRzLWJlZm9yZS10YXJnZXQtZWxlbWVudC9tb3ZlLWZyb250LWVsZW1lbnRzLWJlZm9yZS10YXJnZXQtZWxlbWVudC5leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2xILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0seUJBQXlCLENBQUM7O0FBSWxFLElBQU0sNkNBQTZDLEdBQW5ELE1BQU0sNkNBQTZDO0lBRWpELE1BQU0sQ0FBQyxPQUFvRDtRQUNoRSxNQUFNLGNBQWMsR0FBYyxFQUFFLENBQUM7UUFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFFLENBQUMsQ0FBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzNELGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7UUFDRCxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsT0FBTyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBRSxDQUFDLENBQUM7UUFDdEYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWRVLDZDQUE2QzsyR0FBN0MsNkNBQTZDOztBQUE3Qyw2Q0FBNkM7SUFEekQsa0JBQWtCLENBQUMsMkNBQTJDLENBQUM7R0FDbkQsNkNBQTZDLENBZXpEOzsyRkFmWSw2Q0FBNkM7a0JBRnpELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb3ZlRnJvbnRFbGVtZW50c0JlZm9yZVRhcmdldEVsZW1lbnRSZXF1ZXN0IH0gZnJvbSAnLi9tb3ZlLWZyb250LWVsZW1lbnRzLWJlZm9yZS10YXJnZXQtZWxlbWVudC5yZXF1ZXN0JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJy4uLy4uLy4uL2luZnJhc3RydWN0dXJlJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihNb3ZlRnJvbnRFbGVtZW50c0JlZm9yZVRhcmdldEVsZW1lbnRSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIE1vdmVGcm9udEVsZW1lbnRzQmVmb3JlVGFyZ2V0RWxlbWVudEV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248TW92ZUZyb250RWxlbWVudHNCZWZvcmVUYXJnZXRFbGVtZW50UmVxdWVzdCwgdm9pZD4ge1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogTW92ZUZyb250RWxlbWVudHNCZWZvcmVUYXJnZXRFbGVtZW50UmVxdWVzdCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRzVG9Nb3ZlOiBFbGVtZW50W10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gcmVxdWVzdC50YXJnZXRJbmRleCArIDE7IGkgPCByZXF1ZXN0LmFsbEVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gcmVxdWVzdC5hbGxFbGVtZW50c1sgaSBdO1xuICAgICAgaWYgKCFyZXF1ZXN0LmVsZW1lbnRzVGhhdFNob3VsZEJlSW5Gcm9udC5pbmNsdWRlcyhlbGVtZW50KSkge1xuICAgICAgICBlbGVtZW50c1RvTW92ZS5wdXNoKGVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICBlbGVtZW50c1RvTW92ZS5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICByZXF1ZXN0LmZJdGVtc0NvbnRhaW5lci5yZW1vdmVDaGlsZCh4KTtcbiAgICAgIHJlcXVlc3QuZkl0ZW1zQ29udGFpbmVyLmluc2VydEJlZm9yZSh4LCByZXF1ZXN0LmFsbEVsZW1lbnRzWyByZXF1ZXN0LnRhcmdldEluZGV4IF0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,14 @@
1
+ export class MoveFrontElementsBeforeTargetElementRequest {
2
+ fItemsContainer;
3
+ allElements;
4
+ elementsThatShouldBeInFront;
5
+ targetIndex;
6
+ constructor(fItemsContainer, // fGroupsContainer || fNodesContainer || fConnectionsContainer
7
+ allElements, elementsThatShouldBeInFront, targetIndex) {
8
+ this.fItemsContainer = fItemsContainer;
9
+ this.allElements = allElements;
10
+ this.elementsThatShouldBeInFront = elementsThatShouldBeInFront;
11
+ this.targetIndex = targetIndex;
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQucmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL3VwZGF0ZS1pdGVtLWFuZC1jaGlsZHJlbi1sYXllcnMvbW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQvbW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQucmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sMkNBQTJDO0lBRzdDO0lBQ0E7SUFDQTtJQUNBO0lBSlQsWUFDUyxlQUE0QixFQUFFLCtEQUErRDtJQUM3RixXQUFzQixFQUN0QiwyQkFBc0MsRUFDdEMsV0FBbUI7UUFIbkIsb0JBQWUsR0FBZixlQUFlLENBQWE7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQVc7UUFDdEIsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUFXO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUFRO0lBRTVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNb3ZlRnJvbnRFbGVtZW50c0JlZm9yZVRhcmdldEVsZW1lbnRSZXF1ZXN0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZkl0ZW1zQ29udGFpbmVyOiBIVE1MRWxlbWVudCwgLy8gZkdyb3Vwc0NvbnRhaW5lciB8fCBmTm9kZXNDb250YWluZXIgfHwgZkNvbm5lY3Rpb25zQ29udGFpbmVyXG4gICAgcHVibGljIGFsbEVsZW1lbnRzOiBFbGVtZW50W10sXG4gICAgcHVibGljIGVsZW1lbnRzVGhhdFNob3VsZEJlSW5Gcm9udDogRWxlbWVudFtdLFxuICAgIHB1YmxpYyB0YXJnZXRJbmRleDogbnVtYmVyXG4gICkge1xuICB9XG59XG4iXX0=
@@ -0,0 +1,99 @@
1
+ import { __decorate } from "tslib";
2
+ import { UpdateItemAndChildrenLayersRequest } from './update-item-and-children-layers.request';
3
+ import { Injectable } from '@angular/core';
4
+ import { FExecutionRegister } from '../../infrastructure';
5
+ import { GetDeepChildrenNodesAndGroupsRequest } from '../get-deep-children-nodes-and-groups';
6
+ import { MoveFrontElementsBeforeTargetElementRequest } from './move-front-elements-before-target-element';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../f-storage";
9
+ import * as i2 from "../../infrastructure";
10
+ import * as i3 from "@foblex/core";
11
+ let UpdateItemAndChildrenLayersExecution = class UpdateItemAndChildrenLayersExecution {
12
+ fComponentsStore;
13
+ fMediator;
14
+ windowService;
15
+ get fGroupsContainer() {
16
+ return this.fComponentsStore.fCanvas.fGroupsContainer.nativeElement;
17
+ }
18
+ get fNodesContainer() {
19
+ return this.fComponentsStore.fCanvas.fNodesContainer.nativeElement;
20
+ }
21
+ get fConnectionsContainer() {
22
+ return this.fComponentsStore.fCanvas.fConnectionsContainer.nativeElement;
23
+ }
24
+ constructor(fComponentsStore, fMediator, windowService) {
25
+ this.fComponentsStore = fComponentsStore;
26
+ this.fMediator = fMediator;
27
+ this.windowService = windowService;
28
+ }
29
+ handle(request) {
30
+ switch (request.itemContainer) {
31
+ case this.fGroupsContainer:
32
+ this.handleGroup(request);
33
+ break;
34
+ case this.fNodesContainer:
35
+ this.handleNode(request);
36
+ break;
37
+ case this.fConnectionsContainer:
38
+ this.handleConnection(request);
39
+ break;
40
+ default:
41
+ throw new Error('Unknown container');
42
+ }
43
+ }
44
+ handleGroup(request) {
45
+ const childrenNodesAndGroups = this.getChildrenNodesAndGroups(request.item.fId);
46
+ const childrenGroups = this.getChildrenGroups(childrenNodesAndGroups);
47
+ this.updateLayers(this.fGroupsContainer, request.item.hostElement, childrenGroups);
48
+ const childrenNodes = this.getChildrenNodes(childrenNodesAndGroups);
49
+ if (childrenNodes.length) {
50
+ this.updateLayers(this.fNodesContainer, childrenNodes[0], childrenNodes);
51
+ }
52
+ }
53
+ handleNode(request) {
54
+ const childrenNodesAndGroups = this.getChildrenNodesAndGroups(request.item.fId);
55
+ const childrenNodes = this.getChildrenNodes(childrenNodesAndGroups);
56
+ this.updateLayers(request.itemContainer, request.item.hostElement, childrenNodes);
57
+ }
58
+ handleConnection(request) {
59
+ this.updateLayers(request.itemContainer, request.item.hostElement, []);
60
+ }
61
+ updateLayers(itemContainer, item, elementsThatShouldBeInFront) {
62
+ const allElements = Array.from(itemContainer.children);
63
+ const targetIndex = allElements.findIndex((x) => x === item);
64
+ if (this.isAnythingNeedToBeMoved(allElements, targetIndex, elementsThatShouldBeInFront)) {
65
+ this.fMediator.send(new MoveFrontElementsBeforeTargetElementRequest(itemContainer, allElements, elementsThatShouldBeInFront, targetIndex));
66
+ }
67
+ }
68
+ isAnythingNeedToBeMoved(allElements, targetIndex, elementsThatShouldBeInFront) {
69
+ for (let i = targetIndex + 1; i < allElements.length; i++) {
70
+ if (!elementsThatShouldBeInFront.includes(allElements[i])) {
71
+ return true;
72
+ }
73
+ }
74
+ return false;
75
+ }
76
+ getChildrenGroups(elements) {
77
+ const allElements = Array.from(this.fGroupsContainer.children);
78
+ return elements.filter((x) => this.fGroupsContainer.contains(x))
79
+ .sort((a, b) => allElements.indexOf(a) - allElements.indexOf(b));
80
+ }
81
+ getChildrenNodes(elements) {
82
+ const allElements = Array.from(this.fNodesContainer.children);
83
+ return elements.filter((x) => this.fNodesContainer.contains(x))
84
+ .sort((a, b) => allElements.indexOf(a) - allElements.indexOf(b));
85
+ }
86
+ getChildrenNodesAndGroups(fId) {
87
+ return this.fMediator.send(new GetDeepChildrenNodesAndGroupsRequest(fId)).map((x) => x.hostElement);
88
+ }
89
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: UpdateItemAndChildrenLayersExecution, deps: [{ token: i1.FComponentsStore }, { token: i2.FFlowMediator }, { token: i3.WindowService }], target: i0.ɵɵFactoryTarget.Injectable });
90
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: UpdateItemAndChildrenLayersExecution });
91
+ };
92
+ UpdateItemAndChildrenLayersExecution = __decorate([
93
+ FExecutionRegister(UpdateItemAndChildrenLayersRequest)
94
+ ], UpdateItemAndChildrenLayersExecution);
95
+ export { UpdateItemAndChildrenLayersExecution };
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: UpdateItemAndChildrenLayersExecution, decorators: [{
97
+ type: Injectable
98
+ }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FFlowMediator }, { type: i3.WindowService }] });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWl0ZW0tYW5kLWNoaWxkcmVuLWxheWVycy5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi91cGRhdGUtaXRlbS1hbmQtY2hpbGRyZW4tbGF5ZXJzL3VwZGF0ZS1pdGVtLWFuZC1jaGlsZHJlbi1sYXllcnMuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBNkIsTUFBTSxzQkFBc0IsQ0FBQztBQUdyRixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUU3RixPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFJbkcsSUFBTSxvQ0FBb0MsR0FBMUMsTUFBTSxvQ0FBb0M7SUFlckM7SUFDQTtJQUNBO0lBZlYsSUFBWSxnQkFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBWSxlQUFlO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFZLHFCQUFxQjtRQUMvQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDO0lBQzVFLENBQUM7SUFFRCxZQUNVLGdCQUFrQyxFQUNsQyxTQUF3QixFQUN4QixhQUE0QjtRQUY1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsa0JB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QUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkgsQ0FBQzt1R0EzRlUsb0NBQW9DOzJHQUFwQyxvQ0FBb0M7O0FBQXBDLG9DQUFvQztJQURoRCxrQkFBa0IsQ0FBQyxrQ0FBa0MsQ0FBQztHQUMxQyxvQ0FBb0MsQ0E0RmhEOzsyRkE1Rlksb0NBQW9DO2tCQUZoRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXBkYXRlSXRlbUFuZENoaWxkcmVuTGF5ZXJzUmVxdWVzdCB9IGZyb20gJy4vdXBkYXRlLWl0ZW0tYW5kLWNoaWxkcmVuLWxheWVycy5yZXF1ZXN0JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRkZsb3dNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJy4uLy4uL2luZnJhc3RydWN0dXJlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEdldERlZXBDaGlsZHJlbk5vZGVzQW5kR3JvdXBzUmVxdWVzdCB9IGZyb20gJy4uL2dldC1kZWVwLWNoaWxkcmVuLW5vZGVzLWFuZC1ncm91cHMnO1xuaW1wb3J0IHsgV2luZG93U2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBNb3ZlRnJvbnRFbGVtZW50c0JlZm9yZVRhcmdldEVsZW1lbnRSZXF1ZXN0IH0gZnJvbSAnLi9tb3ZlLWZyb250LWVsZW1lbnRzLWJlZm9yZS10YXJnZXQtZWxlbWVudCc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoVXBkYXRlSXRlbUFuZENoaWxkcmVuTGF5ZXJzUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBVcGRhdGVJdGVtQW5kQ2hpbGRyZW5MYXllcnNFeGVjdXRpb24gaW1wbGVtZW50cyBJRXhlY3V0aW9uPFVwZGF0ZUl0ZW1BbmRDaGlsZHJlbkxheWVyc1JlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIGdldCBmR3JvdXBzQ29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLmZHcm91cHNDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGZOb2Rlc0NvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS5mTm9kZXNDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGZDb25uZWN0aW9uc0NvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS5mQ29ubmVjdGlvbnNDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwcml2YXRlIGZNZWRpYXRvcjogRkZsb3dNZWRpYXRvcixcbiAgICBwcml2YXRlIHdpbmRvd1NlcnZpY2U6IFdpbmRvd1NlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IFVwZGF0ZUl0ZW1BbmRDaGlsZHJlbkxheWVyc1JlcXVlc3QpOiB2b2lkIHtcblxuICAgIHN3aXRjaCAocmVxdWVzdC5pdGVtQ29udGFpbmVyKSB7XG4gICAgICBjYXNlIHRoaXMuZkdyb3Vwc0NvbnRhaW5lcjpcbiAgICAgICAgdGhpcy5oYW5kbGVHcm91cChyZXF1ZXN0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHRoaXMuZk5vZGVzQ29udGFpbmVyOlxuICAgICAgICB0aGlzLmhhbmRsZU5vZGUocmVxdWVzdCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0aGlzLmZDb25uZWN0aW9uc0NvbnRhaW5lcjpcbiAgICAgICAgdGhpcy5oYW5kbGVDb25uZWN0aW9uKHJlcXVlc3QpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBjb250YWluZXInKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUdyb3VwKHJlcXVlc3Q6IFVwZGF0ZUl0ZW1BbmRDaGlsZHJlbkxheWVyc1JlcXVlc3QpOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGVzQW5kR3JvdXBzID0gdGhpcy5nZXRDaGlsZHJlbk5vZGVzQW5kR3JvdXBzKHJlcXVlc3QuaXRlbS5mSWQpO1xuICAgIGNvbnN0IGNoaWxkcmVuR3JvdXBzID0gdGhpcy5nZXRDaGlsZHJlbkdyb3VwcyhjaGlsZHJlbk5vZGVzQW5kR3JvdXBzKTtcbiAgICB0aGlzLnVwZGF0ZUxheWVycyh0aGlzLmZHcm91cHNDb250YWluZXIsIHJlcXVlc3QuaXRlbS5ob3N0RWxlbWVudCBhcyBIVE1MRWxlbWVudCwgY2hpbGRyZW5Hcm91cHMpO1xuICAgIGNvbnN0IGNoaWxkcmVuTm9kZXMgPSB0aGlzLmdldENoaWxkcmVuTm9kZXMoY2hpbGRyZW5Ob2Rlc0FuZEdyb3Vwcyk7XG4gICAgaWYgKGNoaWxkcmVuTm9kZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnVwZGF0ZUxheWVycyh0aGlzLmZOb2Rlc0NvbnRhaW5lciwgY2hpbGRyZW5Ob2Rlc1sgMCBdLCBjaGlsZHJlbk5vZGVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5vZGUocmVxdWVzdDogVXBkYXRlSXRlbUFuZENoaWxkcmVuTGF5ZXJzUmVxdWVzdCk6IHZvaWQge1xuICAgIGNvbnN0IGNoaWxkcmVuTm9kZXNBbmRHcm91cHMgPSB0aGlzLmdldENoaWxkcmVuTm9kZXNBbmRHcm91cHMocmVxdWVzdC5pdGVtLmZJZCk7XG4gICAgY29uc3QgY2hpbGRyZW5Ob2RlcyA9IHRoaXMuZ2V0Q2hpbGRyZW5Ob2RlcyhjaGlsZHJlbk5vZGVzQW5kR3JvdXBzKTtcbiAgICB0aGlzLnVwZGF0ZUxheWVycyhyZXF1ZXN0Lml0ZW1Db250YWluZXIsIHJlcXVlc3QuaXRlbS5ob3N0RWxlbWVudCBhcyBIVE1MRWxlbWVudCwgY2hpbGRyZW5Ob2Rlcyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNvbm5lY3Rpb24ocmVxdWVzdDogVXBkYXRlSXRlbUFuZENoaWxkcmVuTGF5ZXJzUmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlTGF5ZXJzKHJlcXVlc3QuaXRlbUNvbnRhaW5lciwgcmVxdWVzdC5pdGVtLmhvc3RFbGVtZW50IGFzIEhUTUxFbGVtZW50LCBbXSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUxheWVycyhpdGVtQ29udGFpbmVyOiBIVE1MRWxlbWVudCwgaXRlbTogSFRNTEVsZW1lbnQsIGVsZW1lbnRzVGhhdFNob3VsZEJlSW5Gcm9udDogSFRNTEVsZW1lbnRbXSk6IHZvaWQge1xuICAgIGNvbnN0IGFsbEVsZW1lbnRzID0gQXJyYXkuZnJvbShpdGVtQ29udGFpbmVyLmNoaWxkcmVuKSBhcyBIVE1MRWxlbWVudFtdO1xuICAgIGNvbnN0IHRhcmdldEluZGV4ID0gYWxsRWxlbWVudHMuZmluZEluZGV4KCh4KSA9PiB4ID09PSBpdGVtKTtcbiAgICBpZiAodGhpcy5pc0FueXRoaW5nTmVlZFRvQmVNb3ZlZChhbGxFbGVtZW50cywgdGFyZ2V0SW5kZXgsIGVsZW1lbnRzVGhhdFNob3VsZEJlSW5Gcm9udCkpIHtcbiAgICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQoXG4gICAgICAgIG5ldyBNb3ZlRnJvbnRFbGVtZW50c0JlZm9yZVRhcmdldEVsZW1lbnRSZXF1ZXN0KGl0ZW1Db250YWluZXIsIGFsbEVsZW1lbnRzLCBlbGVtZW50c1RoYXRTaG91bGRCZUluRnJvbnQsIHRhcmdldEluZGV4KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzQW55dGhpbmdOZWVkVG9CZU1vdmVkKGFsbEVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLCB0YXJnZXRJbmRleDogbnVtYmVyLCBlbGVtZW50c1RoYXRTaG91bGRCZUluRnJvbnQ6IEhUTUxFbGVtZW50W10pOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpID0gdGFyZ2V0SW5kZXggKyAxOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghZWxlbWVudHNUaGF0U2hvdWxkQmVJbkZyb250LmluY2x1ZGVzKGFsbEVsZW1lbnRzWyBpIF0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldENoaWxkcmVuR3JvdXBzKGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgY29uc3QgYWxsRWxlbWVudHMgPSBBcnJheS5mcm9tKHRoaXMuZkdyb3Vwc0NvbnRhaW5lci5jaGlsZHJlbikgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICByZXR1cm4gZWxlbWVudHMuZmlsdGVyKCh4KSA9PiB0aGlzLmZHcm91cHNDb250YWluZXIuY29udGFpbnMoeCkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYWxsRWxlbWVudHMuaW5kZXhPZihhKSAtIGFsbEVsZW1lbnRzLmluZGV4T2YoYikpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDaGlsZHJlbk5vZGVzKGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgY29uc3QgYWxsRWxlbWVudHMgPSBBcnJheS5mcm9tKHRoaXMuZk5vZGVzQ29udGFpbmVyLmNoaWxkcmVuKSBhcyBIVE1MRWxlbWVudFtdO1xuICAgIHJldHVybiBlbGVtZW50cy5maWx0ZXIoKHgpID0+IHRoaXMuZk5vZGVzQ29udGFpbmVyLmNvbnRhaW5zKHgpKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGFsbEVsZW1lbnRzLmluZGV4T2YoYSkgLSBhbGxFbGVtZW50cy5pbmRleE9mKGIpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2hpbGRyZW5Ob2Rlc0FuZEdyb3VwcyhmSWQ6IHN0cmluZyk6IEhUTUxFbGVtZW50W10ge1xuICAgIHJldHVybiB0aGlzLmZNZWRpYXRvci5zZW5kPEZOb2RlQmFzZVtdPihuZXcgR2V0RGVlcENoaWxkcmVuTm9kZXNBbmRHcm91cHNSZXF1ZXN0KGZJZCkpLm1hcCgoeCkgPT4geC5ob3N0RWxlbWVudCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ export class UpdateItemAndChildrenLayersRequest {
2
+ item;
3
+ itemContainer;
4
+ constructor(item, itemContainer) {
5
+ this.item = item;
6
+ this.itemContainer = itemContainer;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWl0ZW0tYW5kLWNoaWxkcmVuLWxheWVycy5yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vdXBkYXRlLWl0ZW0tYW5kLWNoaWxkcmVuLWxheWVycy91cGRhdGUtaXRlbS1hbmQtY2hpbGRyZW4tbGF5ZXJzLnJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFPLGtDQUFrQztJQUdwQztJQUNBO0lBRlQsWUFDUyxJQUFpQixFQUNqQixhQUEwQjtRQUQxQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLGtCQUFhLEdBQWIsYUFBYSxDQUFhO0lBRW5DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTZWxlY3RhYmxlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0aW9uJztcbmV4cG9ydCBjbGFzcyBVcGRhdGVJdGVtQW5kQ2hpbGRyZW5MYXllcnNSZXF1ZXN0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaXRlbTogSVNlbGVjdGFibGUsXG4gICAgcHVibGljIGl0ZW1Db250YWluZXI6IEhUTUxFbGVtZW50LFxuICApIHtcbiAgfVxufVxuIl19
@@ -25,4 +25,4 @@ export class FCanvasBase extends MIXIN_BASE {
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FCanvasBase, decorators: [{
26
26
  type: Directive
27
27
  }], ctorParameters: () => [] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jYW52YXMvZi1jYW52YXMtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRVksZUFBZSxFQUNoQyx3QkFBd0IsRUFFeEIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3ZCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQTRCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRzlDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBYyxVQUFVLENBQUMsQ0FBQztBQUVwRSxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FDbEMsZ0JBQWdCLENBQ1osc0JBQXNCLENBQ2xCLGVBQWUsQ0FDWDtJQUVhO0lBRFgsWUFDVyxTQUEwQjtRQUExQixjQUFTLEdBQVQsU0FBUyxDQUFpQjtJQUVyQyxDQUFDO0NBQ0YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBR3RCLE1BQU0sT0FBZ0IsV0FDbEIsU0FBUSxVQUFVO0lBYXBCO1FBQ0UsS0FBSyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQU1NLFlBQVk7UUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ25CLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FDekUsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckYsQ0FBQzt1R0E5Qm1CLFdBQVc7MkZBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEaEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElIYXNIb3N0RWxlbWVudCxcbiAgSVRyYW5zZm9ybU1vZGVsLCBQb2ludEV4dGVuc2lvbnMsXG4gIFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucyxcbiAgSUNhbkNoYW5nZVBvc2l0aW9uLCBJQ2FuQ2hhbmdlWm9vbSwgSUNhbkZpdFRvUGFyZW50LCBJQ2FuT25lVG9PbmVDZW50ZXJpbmcsXG4gIG1peGluQ2hhbmdlUG9zaXRpb24sXG4gIG1peGluQ2hhbmdlWm9vbSxcbiAgbWl4aW5GaXRUb1BhcmVudCxcbiAgbWl4aW5PbmVUb09uZUNlbnRlcmluZywgSVBvaW50XG59IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDYW52YXNDaGFuZ2VFdmVudCB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uL2Ytbm9kZSc7XG5cbmV4cG9ydCBjb25zdCBGX0NBTlZBUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGQ2FudmFzQmFzZT4oJ0ZfQ0FOVkFTJyk7XG5cbmNvbnN0IE1JWElOX0JBU0UgPSBtaXhpbkNoYW5nZVBvc2l0aW9uKFxuICAgIG1peGluRml0VG9QYXJlbnQoXG4gICAgICAgIG1peGluT25lVG9PbmVDZW50ZXJpbmcoXG4gICAgICAgICAgICBtaXhpbkNoYW5nZVpvb20oXG4gICAgICAgICAgICAgICAgY2xhc3Mge1xuICAgICAgICAgICAgICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgcHVibGljIHRyYW5zZm9ybTogSVRyYW5zZm9ybU1vZGVsXG4gICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSkpKTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkNhbnZhc0Jhc2VcbiAgICBleHRlbmRzIE1JWElOX0JBU0VcbiAgICBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCwgSUNhbkNoYW5nZVBvc2l0aW9uLCBJQ2FuRml0VG9QYXJlbnQsIElDYW5PbmVUb09uZUNlbnRlcmluZywgSUNhbkNoYW5nZVpvb20ge1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ2FudmFzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk5vZGVzOiBGTm9kZUJhc2VbXTtcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmTm9kZXNDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ29ubmVjdGlvbnNDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMuZGVmYXVsdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWRyYXcoKTogdm9pZDtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVkcmF3V2l0aEFuaW1hdGlvbigpOiB2b2lkO1xuXG4gIHB1YmxpYyBjb21wbGV0ZURyYWcoKTogdm9pZCB7XG4gICAgdGhpcy5mQ2FudmFzQ2hhbmdlLmVtaXQoXG4gICAgICAgIG5ldyBGQ2FudmFzQ2hhbmdlRXZlbnQodGhpcy5nZXRDYW52YXNQb3NpdGlvbigpLCB0aGlzLnRyYW5zZm9ybS5zY2FsZSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYW52YXNQb3NpdGlvbigpOiBJUG9pbnQge1xuICAgIHJldHVybiBQb2ludEV4dGVuc2lvbnMuc3VtKHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLCB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbik7XG4gIH1cbn1cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jYW52YXMvZi1jYW52YXMtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRVksZUFBZSxFQUNoQyx3QkFBd0IsRUFFeEIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3ZCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQTRCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRzlDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBYyxVQUFVLENBQUMsQ0FBQztBQUVwRSxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FDbEMsZ0JBQWdCLENBQ1osc0JBQXNCLENBQ2xCLGVBQWUsQ0FDWDtJQUVhO0lBRFgsWUFDVyxTQUEwQjtRQUExQixjQUFTLEdBQVQsU0FBUyxDQUFpQjtJQUVyQyxDQUFDO0NBQ0YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBR3RCLE1BQU0sT0FBZ0IsV0FDbEIsU0FBUSxVQUFVO0lBZXBCO1FBQ0UsS0FBSyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQU1NLFlBQVk7UUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ25CLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FDekUsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckYsQ0FBQzt1R0FoQ21CLFdBQVc7MkZBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEaEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElIYXNIb3N0RWxlbWVudCxcbiAgSVRyYW5zZm9ybU1vZGVsLCBQb2ludEV4dGVuc2lvbnMsXG4gIFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucyxcbiAgSUNhbkNoYW5nZVBvc2l0aW9uLCBJQ2FuQ2hhbmdlWm9vbSwgSUNhbkZpdFRvUGFyZW50LCBJQ2FuT25lVG9PbmVDZW50ZXJpbmcsXG4gIG1peGluQ2hhbmdlUG9zaXRpb24sXG4gIG1peGluQ2hhbmdlWm9vbSxcbiAgbWl4aW5GaXRUb1BhcmVudCxcbiAgbWl4aW5PbmVUb09uZUNlbnRlcmluZywgSVBvaW50XG59IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDYW52YXNDaGFuZ2VFdmVudCB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uL2Ytbm9kZSc7XG5cbmV4cG9ydCBjb25zdCBGX0NBTlZBUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGQ2FudmFzQmFzZT4oJ0ZfQ0FOVkFTJyk7XG5cbmNvbnN0IE1JWElOX0JBU0UgPSBtaXhpbkNoYW5nZVBvc2l0aW9uKFxuICAgIG1peGluRml0VG9QYXJlbnQoXG4gICAgICAgIG1peGluT25lVG9PbmVDZW50ZXJpbmcoXG4gICAgICAgICAgICBtaXhpbkNoYW5nZVpvb20oXG4gICAgICAgICAgICAgICAgY2xhc3Mge1xuICAgICAgICAgICAgICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgcHVibGljIHRyYW5zZm9ybTogSVRyYW5zZm9ybU1vZGVsXG4gICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSkpKTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkNhbnZhc0Jhc2VcbiAgICBleHRlbmRzIE1JWElOX0JBU0VcbiAgICBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCwgSUNhbkNoYW5nZVBvc2l0aW9uLCBJQ2FuRml0VG9QYXJlbnQsIElDYW5PbmVUb09uZUNlbnRlcmluZywgSUNhbkNoYW5nZVpvb20ge1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ2FudmFzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk5vZGVzOiBGTm9kZUJhc2VbXTtcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmR3JvdXBzQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk5vZGVzQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25zQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLmRlZmF1bHQoKSk7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgcmVkcmF3KCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlZHJhd1dpdGhBbmltYXRpb24oKTogdm9pZDtcblxuICBwdWJsaWMgY29tcGxldGVEcmFnKCk6IHZvaWQge1xuICAgIHRoaXMuZkNhbnZhc0NoYW5nZS5lbWl0KFxuICAgICAgICBuZXcgRkNhbnZhc0NoYW5nZUV2ZW50KHRoaXMuZ2V0Q2FudmFzUG9zaXRpb24oKSwgdGhpcy50cmFuc2Zvcm0uc2NhbGUpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FudmFzUG9zaXRpb24oKTogSVBvaW50IHtcbiAgICByZXR1cm4gUG9pbnRFeHRlbnNpb25zLnN1bSh0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbiwgdGhpcy50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24pO1xuICB9XG59XG4iXX0=
@@ -34,6 +34,7 @@ export class FCanvasComponent extends FCanvasBase {
34
34
  get hostElement() {
35
35
  return this.elementReference.nativeElement;
36
36
  }
37
+ fGroupsContainer;
37
38
  fNodesContainer;
38
39
  fConnectionsContainer;
39
40
  constructor(elementReference, fMediator, fComponentsStore) {
@@ -58,7 +59,7 @@ export class FCanvasComponent extends FCanvasBase {
58
59
  }, 150);
59
60
  }
60
61
  fitToScreen(toCenter = PointExtensions.initialize(), animated = true) {
61
- const fNodesRect = this.fMediator.send(new GetNodesRectRequest());
62
+ const fNodesRect = this.fMediator.send(new GetNodesRectRequest()) || RectExtensions.initialize();
62
63
  if (fNodesRect.width === 0 || fNodesRect.height === 0) {
63
64
  return;
64
65
  }
@@ -69,7 +70,7 @@ export class FCanvasComponent extends FCanvasBase {
69
70
  this.completeDrag();
70
71
  }
71
72
  oneToOne() {
72
- const fNodesRect = this.fMediator.send(new GetNodesRectRequest());
73
+ const fNodesRect = this.fMediator.send(new GetNodesRectRequest()) || RectExtensions.initialize();
73
74
  if (fNodesRect.width === 0 || fNodesRect.height === 0) {
74
75
  return;
75
76
  }
@@ -80,19 +81,22 @@ export class FCanvasComponent extends FCanvasBase {
80
81
  this.completeDrag();
81
82
  }
82
83
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FCanvasComponent, deps: [{ token: i0.ElementRef }, { token: i1.FFlowMediator }, { token: i2.FComponentsStore }], target: i0.ɵɵFactoryTarget.Component });
83
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: FCanvasComponent, selector: "f-canvas", inputs: { position: "position", scale: "scale" }, outputs: { fCanvasChange: "fCanvasChange" }, host: { classAttribute: "f-component f-canvas" }, providers: [{ provide: F_CANVAS, useExisting: FCanvasComponent }], viewQueries: [{ propertyName: "fNodesContainer", first: true, predicate: ["fNodesContainer"], descendants: true, static: true }, { propertyName: "fConnectionsContainer", first: true, predicate: ["fConnectionsContainer"], descendants: true, static: true }], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div #fConnectionsContainer>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n <div #fNodesContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host.f-scaled-animate{transition:transform .09s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
84
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: FCanvasComponent, selector: "f-canvas", inputs: { position: "position", scale: "scale" }, outputs: { fCanvasChange: "fCanvasChange" }, host: { classAttribute: "f-component f-canvas" }, providers: [{ provide: F_CANVAS, useExisting: FCanvasComponent }], viewQueries: [{ propertyName: "fGroupsContainer", first: true, predicate: ["fGroupsContainer"], descendants: true, static: true }, { propertyName: "fNodesContainer", first: true, predicate: ["fNodesContainer"], descendants: true, static: true }, { propertyName: "fConnectionsContainer", first: true, predicate: ["fConnectionsContainer"], descendants: true, static: true }], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host.f-scaled-animate{transition:transform .09s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
84
85
  }
85
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FCanvasComponent, decorators: [{
86
87
  type: Component,
87
88
  args: [{ selector: 'f-canvas', exportAs: 'fComponent', host: {
88
89
  'class': 'f-component f-canvas',
89
- }, providers: [{ provide: F_CANVAS, useExisting: FCanvasComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <div #fConnectionsContainer>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n <div #fNodesContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host.f-scaled-animate{transition:transform .09s}\n"] }]
90
+ }, providers: [{ provide: F_CANVAS, useExisting: FCanvasComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host.f-scaled-animate{transition:transform .09s}\n"] }]
90
91
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FFlowMediator }, { type: i2.FComponentsStore }], propDecorators: { fCanvasChange: [{
91
92
  type: Output
92
93
  }], position: [{
93
94
  type: Input
94
95
  }], scale: [{
95
96
  type: Input
97
+ }], fGroupsContainer: [{
98
+ type: ViewChild,
99
+ args: ['fGroupsContainer', { static: true }]
96
100
  }], fNodesContainer: [{
97
101
  type: ViewChild,
98
102
  args: ['fNodesContainer', { static: true }]
@@ -100,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
100
104
  type: ViewChild,
101
105
  args: ['fConnectionsContainer', { static: true }]
102
106
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsR0FDdEUsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFBRSxRQUFRLEVBQ3RCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFpQixLQUFLLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUsvRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFhN0UsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQVc7SUEwQ3JDO0lBQ0E7SUFDQTtJQXpDTSxhQUFhLEdBQXFDLElBQUksWUFBWSxFQUFzQixDQUFDO0lBRXpHLElBQ1csUUFBUSxDQUFDLEtBQXlCO1FBQzNDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUNoQyxJQUFJ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QyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlCLHFCQUFxQjtzQkFEcEMsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgRkNhbnZhc0Jhc2UsIEZfQ0FOVkFTXG59IGZyb20gJy4vZi1jYW52YXMtYmFzZSc7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBQb2ludCwgUG9pbnRFeHRlbnNpb25zLCBSZWN0RXh0ZW5zaW9ucywgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEZDYW52YXNDaGFuZ2VFdmVudCB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi9pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQgeyBFbWl0VHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QsIEdldE5vZGVzUmVjdFJlcXVlc3QgfSBmcm9tICcuLi9kb21haW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmLWNhbnZhcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLWNhbnZhcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9mLWNhbnZhcy5jb21wb25lbnQuc2NzcycgXSxcbiAgZXhwb3J0QXM6ICdmQ29tcG9uZW50JyxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLWNvbXBvbmVudCBmLWNhbnZhcycsXG4gIH0sXG4gIHByb3ZpZGVyczogWyB7IHByb3ZpZGU6IEZfQ0FOVkFTLCB1c2VFeGlzdGluZzogRkNhbnZhc0NvbXBvbmVudCB9IF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGQ2FudmFzQ29tcG9uZW50IGV4dGVuZHMgRkNhbnZhc0Jhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNhbnZhc0NoYW5nZTogRXZlbnRFbWl0dGVyPEZDYW52YXNDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZDYW52YXNDaGFuZ2VFdmVudD4oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBvc2l0aW9uKHZhbHVlOiBJUG9pbnQgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLnN1bSh0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbiwgdGhpcy50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24pO1xuICAgIGlmICghUG9pbnRFeHRlbnNpb25zLmlzRXF1YWwocG9zaXRpb24sIHZhbHVlKSkge1xuICAgICAgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24gPSB2YWx1ZTtcbiAgICAgIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzY2FsZSh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRyYW5zZm9ybS5zY2FsZSA9IHZhbHVlO1xuICAgIHRoaXMucmVkcmF3KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGZOb2RlcygpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mTm9kZXM7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAVmlld0NoaWxkKCdmTm9kZXNDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVzQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnZkNvbm5lY3Rpb25zQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZDb25uZWN0aW9uc0NvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZGbG93TWVkaWF0b3IsXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZCYWNrZ3JvdW5kPy5zZXRUcmFuc2Zvcm0odGhpcy50cmFuc2Zvcm0pO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgYHRyYW5zZm9ybTogJHsgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLnRvU3RyaW5nKHRoaXMudHJhbnNmb3JtKSB9YCk7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgRW1pdFRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhd1dpdGhBbmltYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZCYWNrZ3JvdW5kPy5zZXRUcmFuc2Zvcm0odGhpcy50cmFuc2Zvcm0pO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgYHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLWluLW91dDsgdHJhbnNmb3JtOiAkeyBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMudG9TdHJpbmcodGhpcy50cmFuc2Zvcm0pIH1gKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgfSwgMTUwKTtcbiAgfVxuXG4gIHB1YmxpYyBmaXRUb1NjcmVlbih0b0NlbnRlcjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKSwgYW5pbWF0ZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgY29uc3QgZk5vZGVzUmVjdCA9IHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBHZXROb2Rlc1JlY3RSZXF1ZXN0KCkpO1xuICAgIGlmIChmTm9kZXNSZWN0LndpZHRoID09PSAwIHx8IGZOb2Rlc1JlY3QuaGVpZ2h0ID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5maXRUb1BhcmVudChcbiAgICAgIGZOb2Rlc1JlY3QsXG4gICAgICBSZWN0RXh0ZW5zaW9ucy5mcm9tRWxlbWVudCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50KSxcbiAgICAgIHRoaXMuZk5vZGVzLm1hcCgoeCkgPT4ge1xuICAgICAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHgucG9zaXRpb24pXG4gICAgICB9KSxcbiAgICAgIHRvQ2VudGVyXG4gICAgKTtcbiAgICBhbmltYXRlZCA/IHRoaXMucmVkcmF3V2l0aEFuaW1hdGlvbigpIDogdGhpcy5yZWRyYXcoKTtcbiAgICB0aGlzLmNvbXBsZXRlRHJhZygpO1xuICB9XG5cbiAgcHVibGljIG9uZVRvT25lKCk6IHZvaWQge1xuICAgIGNvbnN0IGZOb2Rlc1JlY3QgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElSZWN0PihuZXcgR2V0Tm9kZXNSZWN0UmVxdWVzdCgpKTtcbiAgICBpZiAoZk5vZGVzUmVjdC53aWR0aCA9PT0gMCB8fCBmTm9kZXNSZWN0LmhlaWdodCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uZVRvT25lQ2VudGVyaW5nKFxuICAgICAgZk5vZGVzUmVjdCxcbiAgICAgIFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQpLFxuICAgICAgdGhpcy5mTm9kZXMubWFwKCh4KSA9PiB7XG4gICAgICAgIHJldHVybiBQb2ludC5mcm9tUG9pbnQoeC5wb3NpdGlvbilcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnJlZHJhd1dpdGhBbmltYXRpb24oKTtcbiAgICB0aGlzLmNvbXBsZXRlRHJhZygpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyPlxuICAgIDxkaXYgI2ZDb25uZWN0aW9uc0NvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1jb25uZWN0aW9uXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWNvbm5lY3Rpb24tZm9yLWNyZWF0ZVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICNmTm9kZXNDb250YWluZXI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmR3JvdXBdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZk5vZGVdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsR0FDdEUsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFBRSxRQUFRLEVBQ3RCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFpQixLQUFLLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUsvRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFhN0UsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQVc7SUE2Q3JDO0lBQ0E7SUFDQTtJQTVDTSxhQUFhLEdBQXFDLElBQUksWUFBWSxFQUFzQixDQUFDO0lBRXpHLElBQ1csUUFBUSxDQUFDLEtBQXlCO1FBQzNDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUNoQyxJQUFJ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SSxRQUFRO3NCQURsQixLQUFLO2dCQWNLLEtBQUs7c0JBRGYsS0FBSztnQkFrQlUsZ0JBQWdCO3NCQUQvQixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJL0IsZUFBZTtzQkFEOUIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlCLHFCQUFxQjtzQkFEcEMsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgRkNhbnZhc0Jhc2UsIEZfQ0FOVkFTXG59IGZyb20gJy4vZi1jYW52YXMtYmFzZSc7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBQb2ludCwgUG9pbnRFeHRlbnNpb25zLCBSZWN0RXh0ZW5zaW9ucywgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEZDYW52YXNDaGFuZ2VFdmVudCB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi9pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQgeyBFbWl0VHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QsIEdldE5vZGVzUmVjdFJlcXVlc3QgfSBmcm9tICcuLi9kb21haW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmLWNhbnZhcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLWNhbnZhcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9mLWNhbnZhcy5jb21wb25lbnQuc2NzcycgXSxcbiAgZXhwb3J0QXM6ICdmQ29tcG9uZW50JyxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLWNvbXBvbmVudCBmLWNhbnZhcycsXG4gIH0sXG4gIHByb3ZpZGVyczogWyB7IHByb3ZpZGU6IEZfQ0FOVkFTLCB1c2VFeGlzdGluZzogRkNhbnZhc0NvbXBvbmVudCB9IF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGQ2FudmFzQ29tcG9uZW50IGV4dGVuZHMgRkNhbnZhc0Jhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNhbnZhc0NoYW5nZTogRXZlbnRFbWl0dGVyPEZDYW52YXNDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZDYW52YXNDaGFuZ2VFdmVudD4oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBvc2l0aW9uKHZhbHVlOiBJUG9pbnQgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLnN1bSh0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbiwgdGhpcy50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24pO1xuICAgIGlmICghUG9pbnRFeHRlbnNpb25zLmlzRXF1YWwocG9zaXRpb24sIHZhbHVlKSkge1xuICAgICAgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24gPSB2YWx1ZTtcbiAgICAgIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzY2FsZSh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRyYW5zZm9ybS5zY2FsZSA9IHZhbHVlO1xuICAgIHRoaXMucmVkcmF3KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGZOb2RlcygpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mTm9kZXM7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAVmlld0NoaWxkKCdmR3JvdXBzQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZHcm91cHNDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdmTm9kZXNDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVzQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnZkNvbm5lY3Rpb25zQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZDb25uZWN0aW9uc0NvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZGbG93TWVkaWF0b3IsXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZCYWNrZ3JvdW5kPy5zZXRUcmFuc2Zvcm0odGhpcy50cmFuc2Zvcm0pO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgYHRyYW5zZm9ybTogJHsgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLnRvU3RyaW5nKHRoaXMudHJhbnNmb3JtKSB9YCk7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgRW1pdFRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhd1dpdGhBbmltYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZCYWNrZ3JvdW5kPy5zZXRUcmFuc2Zvcm0odGhpcy50cmFuc2Zvcm0pO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgYHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLWluLW91dDsgdHJhbnNmb3JtOiAkeyBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMudG9TdHJpbmcodGhpcy50cmFuc2Zvcm0pIH1gKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgfSwgMTUwKTtcbiAgfVxuXG4gIHB1YmxpYyBmaXRUb1NjcmVlbih0b0NlbnRlcjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKSwgYW5pbWF0ZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgY29uc3QgZk5vZGVzUmVjdCA9IHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3QgfCBudWxsPihuZXcgR2V0Tm9kZXNSZWN0UmVxdWVzdCgpKSB8fCBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gICAgaWYgKGZOb2Rlc1JlY3Qud2lkdGggPT09IDAgfHwgZk5vZGVzUmVjdC5oZWlnaHQgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpdFRvUGFyZW50KFxuICAgICAgZk5vZGVzUmVjdCxcbiAgICAgIFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQpLFxuICAgICAgdGhpcy5mTm9kZXMubWFwKCh4KSA9PiB7XG4gICAgICAgIHJldHVybiBQb2ludC5mcm9tUG9pbnQoeC5wb3NpdGlvbilcbiAgICAgIH0pLFxuICAgICAgdG9DZW50ZXJcbiAgICApO1xuICAgIGFuaW1hdGVkID8gdGhpcy5yZWRyYXdXaXRoQW5pbWF0aW9uKCkgOiB0aGlzLnJlZHJhdygpO1xuICAgIHRoaXMuY29tcGxldGVEcmFnKCk7XG4gIH1cblxuICBwdWJsaWMgb25lVG9PbmUoKTogdm9pZCB7XG4gICAgY29uc3QgZk5vZGVzUmVjdCA9IHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3QgfCBudWxsPihuZXcgR2V0Tm9kZXNSZWN0UmVxdWVzdCgpKSB8fCBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gICAgaWYgKGZOb2Rlc1JlY3Qud2lkdGggPT09IDAgfHwgZk5vZGVzUmVjdC5oZWlnaHQgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vbmVUb09uZUNlbnRlcmluZyhcbiAgICAgIGZOb2Rlc1JlY3QsXG4gICAgICBSZWN0RXh0ZW5zaW9ucy5mcm9tRWxlbWVudCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50KSxcbiAgICAgIHRoaXMuZk5vZGVzLm1hcCgoeCkgPT4ge1xuICAgICAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHgucG9zaXRpb24pXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5yZWRyYXdXaXRoQW5pbWF0aW9uKCk7XG4gICAgdGhpcy5jb21wbGV0ZURyYWcoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPGRpdiAjZkdyb3Vwc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZkdyb3VwXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgI2ZDb25uZWN0aW9uc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWNvbm5lY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1jb25uZWN0aW9uLWZvci1jcmVhdGVcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgI2ZOb2Rlc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZk5vZGVdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -31,7 +31,7 @@ export class FBezierPathBuilder {
31
31
  const targetAnglePoint = FBezierPathBuilder.getAnglePoint(targetSide, target, source, offset);
32
32
  const path = `M ${source.x} ${source.y} C ${sourceAnglePoint.x} ${sourceAnglePoint.y}, ${targetAnglePoint.x} ${targetAnglePoint.y}, ${target.x + 0.0002} ${target.y + 0.0002}`;
33
33
  const connectionCenter = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest([source, sourceAnglePoint, targetAnglePoint, target]));
34
- return { path, connectionCenter };
34
+ return { path, connectionCenter, penultimatePoint: targetAnglePoint };
35
35
  }
36
36
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1iZXppZXIucGF0aC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2RvbWFpbi9mLWJlemllci5wYXRoLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFPbkgsTUFBTSxPQUFPLGtCQUFrQjtJQUVyQixNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBZ0IsRUFBRSxNQUFjO1FBQ2hFLElBQUksUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUF1QixFQUFFLE1BQWMsRUFBRSxNQUFjLEVBQUUsTUFBYztRQUVsRyxJQUFJLE1BQU0sR0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFbEQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssaUJBQWlCLENBQUMsSUFBSTtnQkFDekIsTUFBTSxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQy9FLE1BQU07WUFDUixLQUFLLGlCQUFpQixDQUFDLEtBQUs7Z0JBQzFCLE1BQU0sQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRSxNQUFNO1lBQ1IsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHO2dCQUN4QixNQUFNLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDL0UsTUFBTTtZQUNSLEtBQUssaUJBQWlCLENBQUMsTUFBTTtnQkFDM0IsTUFBTSxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQy9FLE1BQU07UUFDVixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFtQztRQUMvQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUVuRSxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RixNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RixNQUFNLElBQUksR0FBRyxLQUFNLE1BQU0sQ0FBQyxDQUFFLElBQUssTUFBTSxDQUFDLENBQUUsTUFBTyxnQkFBZ0IsQ0FBQyxDQUFFLElBQUssZ0JBQWdCLENBQUMsQ0FBRSxLQUFNLGdCQUFnQixDQUFDLENBQUUsSUFBSyxnQkFBZ0IsQ0FBQyxDQUFFLEtBQU0sTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFPLElBQUssTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFPLEVBQUUsQ0FBQztRQUUvTCxNQUFNLGdCQUFnQixHQUFHLElBQUksZ0NBQWdDLEVBQUUsQ0FBQyxNQUFNLENBQ3BFLElBQUksZ0NBQWdDLENBQUMsQ0FBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFFLENBQUMsQ0FDN0YsQ0FBQztRQUVGLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlckhhbmRsZXIsIENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXInO1xuaW1wb3J0IHtcbiAgSUZDb25uZWN0aW9uQnVpbGRlcixcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QsXG4gIElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZVxufSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24tYnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBGQmV6aWVyUGF0aEJ1aWxkZXIgaW1wbGVtZW50cyBJRkNvbm5lY3Rpb25CdWlsZGVyIHtcblxuICBwcml2YXRlIHN0YXRpYyBnZXRDb25uZWN0b3JPZmZzZXQoZGlzdGFuY2U6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChkaXN0YW5jZSA+PSBvZmZzZXQpIHtcbiAgICAgIHJldHVybiBkaXN0YW5jZTtcbiAgICB9XG4gICAgcmV0dXJuIG9mZnNldCAqIE1hdGguc3FydChvZmZzZXQgLSBkaXN0YW5jZSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRBbmdsZVBvaW50KHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLCBzb3VyY2U6IElQb2ludCwgdGFyZ2V0OiBJUG9pbnQsIG9mZnNldDogbnVtYmVyKTogSVBvaW50IHtcblxuICAgIGxldCByZXN1bHQ6IElQb2ludCA9IHsgeDogc291cmNlLngsIHk6IHNvdXJjZS55IH07XG5cbiAgICBzd2l0Y2ggKHNpZGUpIHtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuTEVGVDpcbiAgICAgICAgcmVzdWx0LnggLT0gRkJlemllclBhdGhCdWlsZGVyLmdldENvbm5lY3Rvck9mZnNldChzb3VyY2UueCAtIHRhcmdldC54LCBvZmZzZXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuUklHSFQ6XG4gICAgICAgIHJlc3VsdC54ICs9IEZCZXppZXJQYXRoQnVpbGRlci5nZXRDb25uZWN0b3JPZmZzZXQodGFyZ2V0LnggLSBzb3VyY2UueCwgb2Zmc2V0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLlRPUDpcbiAgICAgICAgcmVzdWx0LnkgLT0gRkJlemllclBhdGhCdWlsZGVyLmdldENvbm5lY3Rvck9mZnNldChzb3VyY2UueSAtIHRhcmdldC55LCBvZmZzZXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NOlxuICAgICAgICByZXN1bHQueSArPSBGQmV6aWVyUGF0aEJ1aWxkZXIuZ2V0Q29ubmVjdG9yT2Zmc2V0KHRhcmdldC55IC0gc291cmNlLnksIG9mZnNldCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0KTogSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlIHtcbiAgICBjb25zdCB7IHNvdXJjZSwgc291cmNlU2lkZSwgdGFyZ2V0LCB0YXJnZXRTaWRlLCBvZmZzZXQgfSA9IHJlcXVlc3Q7XG5cbiAgICBjb25zdCBzb3VyY2VBbmdsZVBvaW50ID0gRkJlemllclBhdGhCdWlsZGVyLmdldEFuZ2xlUG9pbnQoc291cmNlU2lkZSwgc291cmNlLCB0YXJnZXQsIG9mZnNldCk7XG5cbiAgICBjb25zdCB0YXJnZXRBbmdsZVBvaW50ID0gRkJlemllclBhdGhCdWlsZGVyLmdldEFuZ2xlUG9pbnQodGFyZ2V0U2lkZSwgdGFyZ2V0LCBzb3VyY2UsIG9mZnNldCk7XG5cbiAgICBjb25zdCBwYXRoID0gYE0gJHsgc291cmNlLnggfSAkeyBzb3VyY2UueSB9IEMgJHsgc291cmNlQW5nbGVQb2ludC54IH0gJHsgc291cmNlQW5nbGVQb2ludC55IH0sICR7IHRhcmdldEFuZ2xlUG9pbnQueCB9ICR7IHRhcmdldEFuZ2xlUG9pbnQueSB9LCAkeyB0YXJnZXQueCArIDAuMDAwMiB9ICR7IHRhcmdldC55ICsgMC4wMDAyIH1gO1xuXG4gICAgY29uc3QgY29ubmVjdGlvbkNlbnRlciA9IG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlcigpLmhhbmRsZShcbiAgICAgIG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVyUmVxdWVzdChbIHNvdXJjZSwgc291cmNlQW5nbGVQb2ludCwgdGFyZ2V0QW5nbGVQb2ludCwgdGFyZ2V0IF0pXG4gICAgKTtcblxuICAgIHJldHVybiB7IHBhdGgsIGNvbm5lY3Rpb25DZW50ZXIgfTtcbiAgfVxufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1iZXppZXIucGF0aC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2RvbWFpbi9mLWJlemllci5wYXRoLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFPbkgsTUFBTSxPQUFPLGtCQUFrQjtJQUVyQixNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBZ0IsRUFBRSxNQUFjO1FBQ2hFLElBQUksUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUF1QixFQUFFLE1BQWMsRUFBRSxNQUFjLEVBQUUsTUFBYztRQUVsRyxJQUFJLE1BQU0sR0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFbEQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssaUJBQWlCLENBQUMsSUFBSTtnQkFDekIsTUFBTSxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQy9FLE1BQU07WUFDUixLQUFLLGlCQUFpQixDQUFDLEtBQUs7Z0JBQzFCLE1BQU0sQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRSxNQUFNO1lBQ1IsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHO2dCQUN4QixNQUFNLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDL0UsTUFBTTtZQUNSLEtBQUssaUJBQWlCLENBQUMsTUFBTTtnQkFDM0IsTUFBTSxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQy9FLE1BQU07UUFDVixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFtQztRQUMvQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUVuRSxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RixNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RixNQUFNLElBQUksR0FBRyxLQUFNLE1BQU0sQ0FBQyxDQUFFLElBQUssTUFBTSxDQUFDLENBQUUsTUFBTyxnQkFBZ0IsQ0FBQyxDQUFFLElBQUssZ0JBQWdCLENBQUMsQ0FBRSxLQUFNLGdCQUFnQixDQUFDLENBQUUsSUFBSyxnQkFBZ0IsQ0FBQyxDQUFFLEtBQU0sTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFPLElBQUssTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFPLEVBQUUsQ0FBQztRQUUvTCxNQUFNLGdCQUFnQixHQUFHLElBQUksZ0NBQWdDLEVBQUUsQ0FBQyxNQUFNLENBQ3BFLElBQUksZ0NBQWdDLENBQUMsQ0FBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFFLENBQUMsQ0FDN0YsQ0FBQztRQUVGLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlckhhbmRsZXIsIENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXInO1xuaW1wb3J0IHtcbiAgSUZDb25uZWN0aW9uQnVpbGRlcixcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QsXG4gIElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZVxufSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24tYnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBGQmV6aWVyUGF0aEJ1aWxkZXIgaW1wbGVtZW50cyBJRkNvbm5lY3Rpb25CdWlsZGVyIHtcblxuICBwcml2YXRlIHN0YXRpYyBnZXRDb25uZWN0b3JPZmZzZXQoZGlzdGFuY2U6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChkaXN0YW5jZSA+PSBvZmZzZXQpIHtcbiAgICAgIHJldHVybiBkaXN0YW5jZTtcbiAgICB9XG4gICAgcmV0dXJuIG9mZnNldCAqIE1hdGguc3FydChvZmZzZXQgLSBkaXN0YW5jZSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRBbmdsZVBvaW50KHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLCBzb3VyY2U6IElQb2ludCwgdGFyZ2V0OiBJUG9pbnQsIG9mZnNldDogbnVtYmVyKTogSVBvaW50IHtcblxuICAgIGxldCByZXN1bHQ6IElQb2ludCA9IHsgeDogc291cmNlLngsIHk6IHNvdXJjZS55IH07XG5cbiAgICBzd2l0Y2ggKHNpZGUpIHtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuTEVGVDpcbiAgICAgICAgcmVzdWx0LnggLT0gRkJlemllclBhdGhCdWlsZGVyLmdldENvbm5lY3Rvck9mZnNldChzb3VyY2UueCAtIHRhcmdldC54LCBvZmZzZXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuUklHSFQ6XG4gICAgICAgIHJlc3VsdC54ICs9IEZCZXppZXJQYXRoQnVpbGRlci5nZXRDb25uZWN0b3JPZmZzZXQodGFyZ2V0LnggLSBzb3VyY2UueCwgb2Zmc2V0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLlRPUDpcbiAgICAgICAgcmVzdWx0LnkgLT0gRkJlemllclBhdGhCdWlsZGVyLmdldENvbm5lY3Rvck9mZnNldChzb3VyY2UueSAtIHRhcmdldC55LCBvZmZzZXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NOlxuICAgICAgICByZXN1bHQueSArPSBGQmV6aWVyUGF0aEJ1aWxkZXIuZ2V0Q29ubmVjdG9yT2Zmc2V0KHRhcmdldC55IC0gc291cmNlLnksIG9mZnNldCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0KTogSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlIHtcbiAgICBjb25zdCB7IHNvdXJjZSwgc291cmNlU2lkZSwgdGFyZ2V0LCB0YXJnZXRTaWRlLCBvZmZzZXQgfSA9IHJlcXVlc3Q7XG5cbiAgICBjb25zdCBzb3VyY2VBbmdsZVBvaW50ID0gRkJlemllclBhdGhCdWlsZGVyLmdldEFuZ2xlUG9pbnQoc291cmNlU2lkZSwgc291cmNlLCB0YXJnZXQsIG9mZnNldCk7XG5cbiAgICBjb25zdCB0YXJnZXRBbmdsZVBvaW50ID0gRkJlemllclBhdGhCdWlsZGVyLmdldEFuZ2xlUG9pbnQodGFyZ2V0U2lkZSwgdGFyZ2V0LCBzb3VyY2UsIG9mZnNldCk7XG5cbiAgICBjb25zdCBwYXRoID0gYE0gJHsgc291cmNlLnggfSAkeyBzb3VyY2UueSB9IEMgJHsgc291cmNlQW5nbGVQb2ludC54IH0gJHsgc291cmNlQW5nbGVQb2ludC55IH0sICR7IHRhcmdldEFuZ2xlUG9pbnQueCB9ICR7IHRhcmdldEFuZ2xlUG9pbnQueSB9LCAkeyB0YXJnZXQueCArIDAuMDAwMiB9ICR7IHRhcmdldC55ICsgMC4wMDAyIH1gO1xuXG4gICAgY29uc3QgY29ubmVjdGlvbkNlbnRlciA9IG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlcigpLmhhbmRsZShcbiAgICAgIG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVyUmVxdWVzdChbIHNvdXJjZSwgc291cmNlQW5nbGVQb2ludCwgdGFyZ2V0QW5nbGVQb2ludCwgdGFyZ2V0IF0pXG4gICAgKTtcblxuICAgIHJldHVybiB7IHBhdGgsIGNvbm5lY3Rpb25DZW50ZXIsIHBlbnVsdGltYXRlUG9pbnQ6IHRhcmdldEFuZ2xlUG9pbnQgfTtcbiAgfVxufVxuIl19
@@ -14,7 +14,8 @@ export class FSegmentPathBuilder {
14
14
  const { source, sourceSide, target, targetSide } = request;
15
15
  const { points, center } = this.getPathPoints(source, sourceSide, target, targetSide, request.offset);
16
16
  const path = this.buildPath(points, request.radius);
17
- return { path, connectionCenter: center };
17
+ const penultimatePoint = points.length > 1 ? points[points.length - 2] : source;
18
+ return { path, connectionCenter: center, penultimatePoint };
18
19
  }
19
20
  getPathPoints(source, sourceSide, target, targetSide, offset) {
20
21
  const sourceDirection = CONNECTOR_SIDE_POINT[sourceSide];
@@ -138,4 +139,4 @@ export class FSegmentPathBuilder {
138
139
  return `L${point.x + 0.0002} ${point.y + 0.0002}`;
139
140
  }
140
141
  }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zZWdtZW50LnBhdGgtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9kb21haW4vZi1zZWdtZW50LnBhdGgtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLG1DQUFtQyxFQUNwQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBT25ILE1BQU0sb0JBQW9CLEdBQWlCO0lBRXpDLENBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFFLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFN0QsQ0FBRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUUsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFN0QsQ0FBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUUsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU1RCxDQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBRSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU5RCxDQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBRSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztDQUM3RCxDQUFDO0FBRUYsTUFBTSxPQUFPLG1CQUFtQjtJQUV2QixNQUFNLENBQUMsT0FBbUM7UUFDL0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxV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Q0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTWFwLCBJUG9pbnQsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDZW50ZXJCZXR3ZWVuUG9pbnRzSGFuZGxlcixcbiAgQ2FsY3VsYXRlQ2VudGVyQmV0d2VlblBvaW50c1JlcXVlc3Rcbn0gZnJvbSAnLi9jYWxjdWxhdGUtY2VudGVyLWJldHdlZW4tcG9pbnRzJztcbmltcG9ydCB7IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJIYW5kbGVyLCBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVyUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3Rpb24tY2VudGVyJztcbmltcG9ydCB7XG4gIElGQ29ubmVjdGlvbkJ1aWxkZXIsXG4gIElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0LFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2Vcbn0gZnJvbSAnLi4vLi4vZi1jb25uZWN0aW9uLWJ1aWxkZXInO1xuXG5jb25zdCBDT05ORUNUT1JfU0lERV9QT0lOVDogSU1hcDxJUG9pbnQ+ID0ge1xuXG4gIFsgRUZDb25uZWN0YWJsZVNpZGUuTEVGVCBdOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgtMSwgMCksXG5cbiAgWyBFRkNvbm5lY3RhYmxlU2lkZS5SSUdIVCBdOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgxLCAwKSxcblxuICBbIEVGQ29ubmVjdGFibGVTaWRlLlRPUCBdOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAtMSksXG5cbiAgWyBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT00gXTogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMCwgMSksXG5cbiAgWyBFRkNvbm5lY3RhYmxlU2lkZS5BVVRPIF06IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKDAsIDApLFxufTtcblxuZXhwb3J0IGNsYXNzIEZTZWdtZW50UGF0aEJ1aWxkZXIgaW1wbGVtZW50cyBJRkNvbm5lY3Rpb25CdWlsZGVyIHtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0KTogSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlIHtcbiAgICBjb25zdCB7IHNvdXJjZSwgc291cmNlU2lkZSwgdGFyZ2V0LCB0YXJnZXRTaWRlIH0gPSByZXF1ZXN0O1xuXG4gICAgY29uc3QgeyBwb2ludHMsIGNlbnRlciB9ID0gdGhpcy5nZXRQYXRoUG9pbnRzKFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHNvdXJjZVNpZGUsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgdGFyZ2V0U2lkZSxcbiAgICAgICAgcmVxdWVzdC5vZmZzZXRcbiAgICApO1xuXG4gICAgY29uc3QgcGF0aCA9IHRoaXMuYnVpbGRQYXRoKHBvaW50cywgcmVxdWVzdC5yYWRpdXMpO1xuXG4gICAgcmV0dXJuIHsgcGF0aCwgY29ubmVjdGlvbkNlbnRlcjogY2VudGVyIH07XG4gIH1cblxuICBwcml2YXRlIGdldFBhdGhQb2ludHMoXG4gICAgICBzb3VyY2U6IElQb2ludCwgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUsIHRhcmdldDogSVBvaW50LCB0YXJnZXRTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSwgb2Zmc2V0OiBudW1iZXJcbiAgKTogeyBwb2ludHM6IElQb2ludFtdLCBjZW50ZXI6IElQb2ludCB9IHtcblxuICAgIGNvbnN0IHNvdXJjZURpcmVjdGlvbiA9IENPTk5FQ1RPUl9TSURFX1BPSU5UWyBzb3VyY2VTaWRlIF07XG4gICAgY29uc3QgdGFyZ2V0RGlyZWN0aW9uID0gQ09OTkVDVE9SX1NJREVfUE9JTlRbIHRhcmdldFNpZGUgXTtcblxuICAgIGNvbnN0IHNvdXJjZUdhcDogSVBvaW50ID0geyB4OiBzb3VyY2UueCArIHNvdXJjZURpcmVjdGlvbi54ICogb2Zmc2V0LCB5OiBzb3VyY2UueSArIHNvdXJjZURpcmVjdGlvbi55ICogb2Zmc2V0IH07XG4gICAgY29uc3QgdGFyZ2V0R2FwOiBJUG9pbnQgPSB7IHg6IHRhcmdldC54ICsgdGFyZ2V0RGlyZWN0aW9uLnggKiBvZmZzZXQsIHk6IHRhcmdldC55ICsgdGFyZ2V0RGlyZWN0aW9uLnkgKiBvZmZzZXQgfTtcblxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMuZ2V0RGlyZWN0aW9uKHNvdXJjZUdhcCwgc291cmNlU2lkZSwgdGFyZ2V0R2FwKTtcbiAgICBjb25zdCBkaXJlY3Rpb25BY2Nlc3NvciA9IGRpcmVjdGlvbi54ICE9PSAwID8gJ3gnIDogJ3knO1xuICAgIGNvbnN0IGN1cnJlbnREaXJlY3Rpb24gPSBkaXJlY3Rpb25bIGRpcmVjdGlvbkFjY2Vzc29yIF07XG5cbiAgICBsZXQgcG9pbnRzOiBJUG9pbnRbXSA9IFtdO1xuICAgIGNvbnN0IHNvdXJjZUdhcE9mZnNldCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gICAgY29uc3QgdGFyZ2V0R2FwT2Zmc2V0ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICAgIGNvbnN0IGNlbnRlckJldHdlZW5Qb2ludHMgPSBuZXcgQ2FsY3VsYXRlQ2VudGVyQmV0d2VlblBvaW50c0hhbmRsZXIoKS5oYW5kbGUoXG4gICAgICAgIG5ldyBDYWxjdWxhdGVDZW50ZXJCZXR3ZWVuUG9pbnRzUmVxdWVzdChzb3VyY2UsIHRhcmdldClcbiAgICApO1xuXG4gICAgaWYgKHNvdXJjZURpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXSAqIHRhcmdldERpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9PT0gLTEpIHtcbiAgICAgIGNvbnN0IHZlcnRpY2FsU3BsaXQ6IElQb2ludFtdID0gW1xuICAgICAgICB7IHg6IGNlbnRlckJldHdlZW5Qb2ludHMueCwgeTogc291cmNlR2FwLnkgfSxcbiAgICAgICAgeyB4OiBjZW50ZXJCZXR3ZWVuUG9pbnRzLngsIHk6IHRhcmdldEdhcC55IH0sXG4gICAgICBdO1xuICAgICAgY29uc3QgaG9yaXpvbnRhbFNwbGl0OiBJUG9pbnRbXSA9IFtcbiAgICAgICAgeyB4OiBzb3VyY2VHYXAueCwgeTogY2VudGVyQmV0d2VlblBvaW50cy55IH0sXG4gICAgICAgIHsgeDogdGFyZ2V0R2FwLngsIHk6IGNlbnRlckJldHdlZW5Qb2ludHMueSB9LFxuICAgICAgXTtcblxuICAgICAgaWYgKHNvdXJjZURpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9PT0gY3VycmVudERpcmVjdGlvbikge1xuICAgICAgICBwb2ludHMgPSBkaXJlY3Rpb25BY2Nlc3NvciA9PT0gJ3gnID8gdmVydGljYWxTcGxpdCA6IGhvcml6b250YWxTcGxpdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvaW50cyA9IGRpcmVjdGlvbkFjY2Vzc29yID09PSAneCcgPyBob3Jpem9udGFsU3BsaXQgOiB2ZXJ0aWNhbFNwbGl0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzb3VyY2VUYXJnZXQ6IElQb2ludFtdID0gWyB7IHg6IHNvdXJjZUdhcC54LCB5OiB0YXJnZXRHYXAueSB9IF07XG4gICAgICBjb25zdCB0YXJnZXRTb3VyY2U6IElQb2ludFtdID0gWyB7IHg6IHRhcmdldEdhcC54LCB5OiBzb3VyY2VHYXAueSB9IF07XG5cbiAgICAgIGlmIChkaXJlY3Rpb25BY2Nlc3NvciA9PT0gJ3gnKSB7XG4gICAgICAgIHBvaW50cyA9IHNvdXJjZURpcmVjdGlvbi54ID09PSBjdXJyZW50RGlyZWN0aW9uID8gdGFyZ2V0U291cmNlIDogc291cmNlVGFyZ2V0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9pbnRzID0gc291cmNlRGlyZWN0aW9uLnkgPT09IGN1cnJlbnREaXJlY3Rpb24gPyBzb3VyY2VUYXJnZXQgOiB0YXJnZXRTb3VyY2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChzb3VyY2VTaWRlID09PSB0YXJnZXRTaWRlKSB7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBNYXRoLmFicyhzb3VyY2VbIGRpcmVjdGlvbkFjY2Vzc29yIF0gLSB0YXJnZXRbIGRpcmVjdGlvbkFjY2Vzc29yIF0pO1xuXG4gICAgICAgIGlmIChkaWZmIDw9IG9mZnNldCkge1xuICAgICAgICAgIGNvbnN0IGdhcE9mZnNldCA9IE1hdGgubWluKG9mZnNldCAtIDEsIG9mZnNldCAtIGRpZmYpO1xuICAgICAgICAgIGlmIChzb3VyY2VEaXJlY3Rpb25bIGRpcmVjdGlvbkFjY2Vzc29yIF0gPT09IGN1cnJlbnREaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIHNvdXJjZUdhcE9mZnNldFsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9IChzb3VyY2VHYXBbIGRpcmVjdGlvbkFjY2Vzc29yIF0gPiBzb3VyY2VbIGRpcmVjdGlvbkFjY2Vzc29yIF0gPyAtMSA6IDEpICogZ2FwT2Zmc2V0O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXRHYXBPZmZzZXRbIGRpcmVjdGlvbkFjY2Vzc29yIF0gPSAodGFyZ2V0R2FwWyBkaXJlY3Rpb25BY2Nlc3NvciBdID4gdGFyZ2V0WyBkaXJlY3Rpb25BY2Nlc3NvciBdID8gLTEgOiAxKSAqIGdhcE9mZnNldDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNvdXJjZVNpZGUgIT09IHRhcmdldFNpZGUpIHtcbiAgICAgICAgY29uc3QgZGlyQWNjZXNzb3JPcHBvc2l0ZSA9IGRpcmVjdGlvbkFjY2Vzc29yID09PSAneCcgPyAneScgOiAneCc7XG4gICAgICAgIGNvbnN0IGlzU2FtZURpciA9IHNvdXJjZURpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9PT0gdGFyZ2V0RGlyZWN0aW9uWyBkaXJBY2Nlc3Nvck9wcG9zaXRlIF07XG4gICAgICAgIGNvbnN0IHNvdXJjZUd0VGFyZ2V0T3BwbyA9IHNvdXJjZUdhcFsgZGlyQWNjZXNzb3JPcHBvc2l0ZSBdID4gdGFyZ2V0R2FwWyBkaXJBY2Nlc3Nvck9wcG9zaXRlIF07XG4gICAgICAgIGNvbnN0IHNvdXJjZUx0VGFyZ2V0T3BwbyA9IHNvdXJjZUdhcFsgZGlyQWNjZXNzb3JPcHBvc2l0ZSBdIDwgdGFyZ2V0R2FwWyBkaXJBY2Nlc3Nvck9wcG9zaXRlIF07XG4gICAgICAgIGNvbnN0IGZsaXBTb3VyY2VUYXJnZXQgPVxuICAgICAgICAgICAgKHNvdXJjZURpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9PT0gMSAmJlxuICAgICAgICAgICAgICAgICgoIWlzU2FtZURpciAmJiBzb3VyY2VHdFRhcmdldE9wcG8pIHx8IChpc1NhbWVEaXIgJiYgc291cmNlTHRUYXJnZXRPcHBvKSkpIHx8XG4gICAgICAgICAgICAoc291cmNlRGlyZWN0aW9uWyBkaXJlY3Rpb25BY2Nlc3NvciBdICE9PSAxICYmXG4gICAgICAgICAgICAgICAgKCghaXNTYW1lRGlyICYmIHNvdXJjZUx0VGFyZ2V0T3BwbykgfHwgKGlzU2FtZURpciAmJiBzb3VyY2VHdFRhcmdldE9wcG8pKSk7XG5cbiAgICAgICAgaWYgKGZsaXBTb3VyY2VUYXJnZXQpIHtcbiAgICAgICAgICBwb2ludHMgPSBkaXJlY3Rpb25BY2Nlc3NvciA9PT0gJ3gnID8gc291cmNlVGFyZ2V0IDogdGFyZ2V0U291cmNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aFBvaW50cyA9IFtcbiAgICAgIHNvdXJjZSxcbiAgICAgIHsgeDogc291cmNlR2FwLnggKyBzb3VyY2VHYXBPZmZzZXQueCwgeTogc291cmNlR2FwLnkgKyBzb3VyY2VHYXBPZmZzZXQueSB9LFxuICAgICAgLi4ucG9pbnRzLFxuICAgICAgeyB4OiB0YXJnZXRHYXAueCArIHRhcmdldEdhcE9mZnNldC54LCB5OiB0YXJnZXRHYXAueSArIHRhcmdldEdhcE9mZnNldC55IH0sXG4gICAgICB0YXJnZXQsXG4gICAgXTtcblxuICAgIGNvbnN0IGNlbnRlciA9IG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlcigpLmhhbmRsZShcbiAgICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0KHBhdGhQb2ludHMpXG4gICAgKTtcblxuICAgIHJldHVybiB7IHBvaW50czogcGF0aFBvaW50cywgY2VudGVyOiBjZW50ZXIgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlyZWN0aW9uKHNvdXJjZTogSVBvaW50LCBzb3VyY2VTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSwgdGFyZ2V0OiBJUG9pbnQpOiBJUG9pbnQge1xuICAgIGlmIChzb3VyY2VTaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5MRUZUIHx8IHNvdXJjZVNpZGUgPT09IEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUKSB7XG4gICAgICByZXR1cm4gc291cmNlLnggPCB0YXJnZXQueCA/IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKDEsIDApIDogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoLTEsIDApO1xuICAgIH1cbiAgICByZXR1cm4gc291cmNlLnkgPCB0YXJnZXQueSA/IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKDAsIDEpIDogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMCwgLTEpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXN0YW5jZShhOiBJUG9pbnQsIGI6IElQb2ludCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyhiLnggLSBhLngsIDIpICsgTWF0aC5wb3coYi55IC0gYS55LCAyKSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUGF0aChwb2ludHM6IElQb2ludFtdLCBib3JkZXJSYWRpdXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgbGV0IHBhdGggPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcCA9IHBvaW50c1sgaSBdO1xuICAgICAgbGV0IHNlZ21lbnQgPSAnJztcblxuICAgICAgaWYgKGkgPiAwICYmIGkgPCBwb2ludHMubGVuZ3RoIC0gMSkge1xuICAgICAgICBzZWdtZW50ID0gdGhpcy5nZXRCZW5kKHBvaW50c1sgaSAtIDEgXSwgcCwgcG9pbnRzWyBpICsgMSBdLCBib3JkZXJSYWRpdXMpO1xuICAgICAgfSBlbHNlIGlmIChpID09PSBwb2ludHMubGVuZ3RoIC0gMSkge1xuICAgICAgICBzZWdtZW50ID0gdGhpcy5idWlsZExhc3RMaW5lU2VnbWVudChpLCBwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlZ21lbnQgPSB0aGlzLmJ1aWxkTW92ZU9yTGluZVNlZ21lbnQoaSwgcCk7XG4gICAgICB9XG4gICAgICBwYXRoICs9IHNlZ21lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICBwcml2YXRlIGdldEJlbmQoYTogSVBvaW50LCBiOiBJUG9pbnQsIGM6IElQb2ludCwgc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBiZW5kU2l6ZSA9IE1hdGgubWluKHRoaXMuZGlzdGFuY2UoYSwgYikgLyAyLCB0aGlzLmRpc3RhbmNlKGIsIGMpIC8gMiwgc2l6ZSk7XG4gICAgY29uc3QgeyB4LCB5IH0gPSBiO1xuXG4gICAgaWYgKChhLnggPT09IHggJiYgeCA9PT0gYy54KSB8fCAoYS55ID09PSB5ICYmIHkgPT09IGMueSkpIHtcbiAgICAgIHJldHVybiBgTCR7IHggfSAkeyB5IH1gO1xuICAgIH1cblxuICAgIGlmIChhLnkgPT09IHkpIHtcbiAgICAgIGNvbnN0IHhEaXIgPSBhLnggPCBjLnggPyAtMSA6IDE7XG4gICAgICBjb25zdCB5RGlyID0gYS55IDwgYy55ID8gMSA6IC0xO1xuICAgICAgcmV0dXJuIGBMICR7IHggKyBiZW5kU2l6ZSAqIHhEaXIgfSwkeyB5IH1RICR7IHggfSwkeyB5IH0gJHsgeCB9LCR7IHkgKyBiZW5kU2l6ZSAqIHlEaXIgfWA7XG4gICAgfVxuXG4gICAgY29uc3QgeERpciA9IGEueCA8IGMueCA/IDEgOiAtMTtcbiAgICBjb25zdCB5RGlyID0gYS55IDwgYy55ID8gLTEgOiAxO1xuICAgIHJldHVybiBgTCAkeyB4IH0sJHsgeSArIGJlbmRTaXplICogeURpciB9USAkeyB4IH0sJHsgeSB9ICR7IHggKyBiZW5kU2l6ZSAqIHhEaXIgfSwkeyB5IH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZE1vdmVPckxpbmVTZWdtZW50KGluZGV4OiBudW1iZXIsIHBvaW50OiBJUG9pbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHsgaW5kZXggPT09IDAgPyAnTScgOiAnTCcgfSR7IHBvaW50LnggfSAkeyBwb2ludC55IH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZExhc3RMaW5lU2VnbWVudChpbmRleDogbnVtYmVyLCBwb2ludDogSVBvaW50KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYEwkeyBwb2ludC54ICsgMC4wMDAyIH0gJHsgcG9pbnQueSArIDAuMDAwMiB9YDtcbiAgfVxufVxuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zZWdtZW50LnBhdGgtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9kb21haW4vZi1zZWdtZW50LnBhdGgtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLG1DQUFtQyxFQUNwQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBT25ILE1BQU0sb0JBQW9CLEdBQWlCO0lBRXpDLENBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFFLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFN0QsQ0FBRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUUsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFN0QsQ0FBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUUsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU1RCxDQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBRSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU5RCxDQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBRSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztDQUM3RCxDQUFDO0FBRUYsTUFBTSxPQUFPLG1CQUFtQjtJQUV2QixNQUFNLENBQUMsT0FBbUM7UUFDL0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxV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QUM7SUFDakUsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3ZELE9BQU8sSUFBSyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU8sSUFBSyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU8sRUFBRSxDQUFDO0lBQ3hELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElNYXAsIElQb2ludCwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7XG4gIENhbGN1bGF0ZUNlbnRlckJldHdlZW5Qb2ludHNIYW5kbGVyLFxuICBDYWxjdWxhdGVDZW50ZXJCZXR3ZWVuUG9pbnRzUmVxdWVzdFxufSBmcm9tICcuL2NhbGN1bGF0ZS1jZW50ZXItYmV0d2Vlbi1wb2ludHMnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlckhhbmRsZXIsIENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXInO1xuaW1wb3J0IHtcbiAgSUZDb25uZWN0aW9uQnVpbGRlcixcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QsXG4gIElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZVxufSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24tYnVpbGRlcic7XG5cbmNvbnN0IENPTk5FQ1RPUl9TSURFX1BPSU5UOiBJTWFwPElQb2ludD4gPSB7XG5cbiAgWyBFRkNvbm5lY3RhYmxlU2lkZS5MRUZUIF06IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKC0xLCAwKSxcblxuICBbIEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUIF06IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKDEsIDApLFxuXG4gIFsgRUZDb25uZWN0YWJsZVNpZGUuVE9QIF06IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKDAsIC0xKSxcblxuICBbIEVGQ29ubmVjdGFibGVTaWRlLkJPVFRPTSBdOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAxKSxcblxuICBbIEVGQ29ubmVjdGFibGVTaWRlLkFVVE8gXTogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMCwgMCksXG59O1xuXG5leHBvcnQgY2xhc3MgRlNlZ21lbnRQYXRoQnVpbGRlciBpbXBsZW1lbnRzIElGQ29ubmVjdGlvbkJ1aWxkZXIge1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QpOiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2Uge1xuICAgIGNvbnN0IHsgc291cmNlLCBzb3VyY2VTaWRlLCB0YXJnZXQsIHRhcmdldFNpZGUgfSA9IHJlcXVlc3Q7XG5cbiAgICBjb25zdCB7IHBvaW50cywgY2VudGVyIH0gPSB0aGlzLmdldFBhdGhQb2ludHMoXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgc291cmNlU2lkZSxcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICB0YXJnZXRTaWRlLFxuICAgICAgICByZXF1ZXN0Lm9mZnNldFxuICAgICk7XG5cbiAgICBjb25zdCBwYXRoID0gdGhpcy5idWlsZFBhdGgocG9pbnRzLCByZXF1ZXN0LnJhZGl1cyk7XG5cbiAgICBjb25zdCBwZW51bHRpbWF0ZVBvaW50ID0gcG9pbnRzLmxlbmd0aCA+IDEgPyBwb2ludHNbIHBvaW50cy5sZW5ndGggLSAyIF0gOiBzb3VyY2U7XG5cbiAgICByZXR1cm4geyBwYXRoLCBjb25uZWN0aW9uQ2VudGVyOiBjZW50ZXIsIHBlbnVsdGltYXRlUG9pbnQgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF0aFBvaW50cyhcbiAgICAgIHNvdXJjZTogSVBvaW50LCBzb3VyY2VTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSwgdGFyZ2V0OiBJUG9pbnQsIHRhcmdldFNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLCBvZmZzZXQ6IG51bWJlclxuICApOiB7IHBvaW50czogSVBvaW50W10sIGNlbnRlcjogSVBvaW50IH0ge1xuXG4gICAgY29uc3Qgc291cmNlRGlyZWN0aW9uID0gQ09OTkVDVE9SX1NJREVfUE9JTlRbIHNvdXJjZVNpZGUgXTtcbiAgICBjb25zdCB0YXJnZXREaXJlY3Rpb24gPSBDT05ORUNUT1JfU0lERV9QT0lOVFsgdGFyZ2V0U2lkZSBdO1xuXG4gICAgY29uc3Qgc291cmNlR2FwOiBJUG9pbnQgPSB7IHg6IHNvdXJjZS54ICsgc291cmNlRGlyZWN0aW9uLnggKiBvZmZzZXQsIHk6IHNvdXJjZS55ICsgc291cmNlRGlyZWN0aW9uLnkgKiBvZmZzZXQgfTtcbiAgICBjb25zdCB0YXJnZXRHYXA6IElQb2ludCA9IHsgeDogdGFyZ2V0LnggKyB0YXJnZXREaXJlY3Rpb24ueCAqIG9mZnNldCwgeTogdGFyZ2V0LnkgKyB0YXJnZXREaXJlY3Rpb24ueSAqIG9mZnNldCB9O1xuXG4gICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5nZXREaXJlY3Rpb24oc291cmNlR2FwLCBzb3VyY2VTaWRlLCB0YXJnZXRHYXApO1xuICAgIGNvbnN0IGRpcmVjdGlvbkFjY2Vzc29yID0gZGlyZWN0aW9uLnggIT09IDAgPyAneCcgOiAneSc7XG4gICAgY29uc3QgY3VycmVudERpcmVjdGlvbiA9IGRpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXTtcblxuICAgIGxldCBwb2ludHM6IElQb2ludFtdID0gW107XG4gICAgY29uc3Qgc291cmNlR2FwT2Zmc2V0ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgICBjb25zdCB0YXJnZXRHYXBPZmZzZXQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gICAgY29uc3QgY2VudGVyQmV0d2VlblBvaW50cyA9IG5ldyBDYWxjdWxhdGVDZW50ZXJCZXR3ZWVuUG9pbnRzSGFuZGxlcigpLmhhbmRsZShcbiAgICAgICAgbmV3IENhbGN1bGF0ZUNlbnRlckJldHdlZW5Qb2ludHNSZXF1ZXN0KHNvdXJjZSwgdGFyZ2V0KVxuICAgICk7XG5cbiAgICBpZiAoc291cmNlRGlyZWN0aW9uWyBkaXJlY3Rpb25BY2Nlc3NvciBdICogdGFyZ2V0RGlyZWN0aW9uWyBkaXJlY3Rpb25BY2Nlc3NvciBdID09PSAtMSkge1xuICAgICAgY29uc3QgdmVydGljYWxTcGxpdDogSVBvaW50W10gPSBbXG4gICAgICAgIHsgeDogY2VudGVyQmV0d2VlblBvaW50cy54LCB5OiBzb3VyY2VHYXAueSB9LFxuICAgICAgICB7IHg6IGNlbnRlckJldHdlZW5Qb2ludHMueCwgeTogdGFyZ2V0R2FwLnkgfSxcbiAgICAgIF07XG4gICAgICBjb25zdCBob3Jpem9udGFsU3BsaXQ6IElQb2ludFtdID0gW1xuICAgICAgICB7IHg6IHNvdXJjZUdhcC54LCB5OiBjZW50ZXJCZXR3ZWVuUG9pbnRzLnkgfSxcbiAgICAgICAgeyB4OiB0YXJnZXRHYXAueCwgeTogY2VudGVyQmV0d2VlblBvaW50cy55IH0sXG4gICAgICBdO1xuXG4gICAgICBpZiAoc291cmNlRGlyZWN0aW9uWyBkaXJlY3Rpb25BY2Nlc3NvciBdID09PSBjdXJyZW50RGlyZWN0aW9uKSB7XG4gICAgICAgIHBvaW50cyA9IGRpcmVjdGlvbkFjY2Vzc29yID09PSAneCcgPyB2ZXJ0aWNhbFNwbGl0IDogaG9yaXpvbnRhbFNwbGl0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9pbnRzID0gZGlyZWN0aW9uQWNjZXNzb3IgPT09ICd4JyA/IGhvcml6b250YWxTcGxpdCA6IHZlcnRpY2FsU3BsaXQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNvdXJjZVRhcmdldDogSVBvaW50W10gPSBbIHsgeDogc291cmNlR2FwLngsIHk6IHRhcmdldEdhcC55IH0gXTtcbiAgICAgIGNvbnN0IHRhcmdldFNvdXJjZTogSVBvaW50W10gPSBbIHsgeDogdGFyZ2V0R2FwLngsIHk6IHNvdXJjZUdhcC55IH0gXTtcblxuICAgICAgaWYgKGRpcmVjdGlvbkFjY2Vzc29yID09PSAneCcpIHtcbiAgICAgICAgcG9pbnRzID0gc291cmNlRGlyZWN0aW9uLnggPT09IGN1cnJlbnREaXJlY3Rpb24gPyB0YXJnZXRTb3VyY2UgOiBzb3VyY2VUYXJnZXQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb2ludHMgPSBzb3VyY2VEaXJlY3Rpb24ueSA9PT0gY3VycmVudERpcmVjdGlvbiA/IHNvdXJjZVRhcmdldCA6IHRhcmdldFNvdXJjZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNvdXJjZVNpZGUgPT09IHRhcmdldFNpZGUpIHtcbiAgICAgICAgY29uc3QgZGlmZiA9IE1hdGguYWJzKHNvdXJjZVsgZGlyZWN0aW9uQWNjZXNzb3IgXSAtIHRhcmdldFsgZGlyZWN0aW9uQWNjZXNzb3IgXSk7XG5cbiAgICAgICAgaWYgKGRpZmYgPD0gb2Zmc2V0KSB7XG4gICAgICAgICAgY29uc3QgZ2FwT2Zmc2V0ID0gTWF0aC5taW4ob2Zmc2V0IC0gMSwgb2Zmc2V0IC0gZGlmZik7XG4gICAgICAgICAgaWYgKHNvdXJjZURpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9PT0gY3VycmVudERpcmVjdGlvbikge1xuICAgICAgICAgICAgc291cmNlR2FwT2Zmc2V0WyBkaXJlY3Rpb25BY2Nlc3NvciBdID0gKHNvdXJjZUdhcFsgZGlyZWN0aW9uQWNjZXNzb3IgXSA+IHNvdXJjZVsgZGlyZWN0aW9uQWNjZXNzb3IgXSA/IC0xIDogMSkgKiBnYXBPZmZzZXQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRhcmdldEdhcE9mZnNldFsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9ICh0YXJnZXRHYXBbIGRpcmVjdGlvbkFjY2Vzc29yIF0gPiB0YXJnZXRbIGRpcmVjdGlvbkFjY2Vzc29yIF0gPyAtMSA6IDEpICogZ2FwT2Zmc2V0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc291cmNlU2lkZSAhPT0gdGFyZ2V0U2lkZSkge1xuICAgICAgICBjb25zdCBkaXJBY2Nlc3Nvck9wcG9zaXRlID0gZGlyZWN0aW9uQWNjZXNzb3IgPT09ICd4JyA/ICd5JyA6ICd4JztcbiAgICAgICAgY29uc3QgaXNTYW1lRGlyID0gc291cmNlRGlyZWN0aW9uWyBkaXJlY3Rpb25BY2Nlc3NvciBdID09PSB0YXJnZXREaXJlY3Rpb25bIGRpckFjY2Vzc29yT3Bwb3NpdGUgXTtcbiAgICAgICAgY29uc3Qgc291cmNlR3RUYXJnZXRPcHBvID0gc291cmNlR2FwWyBkaXJBY2Nlc3Nvck9wcG9zaXRlIF0gPiB0YXJnZXRHYXBbIGRpckFjY2Vzc29yT3Bwb3NpdGUgXTtcbiAgICAgICAgY29uc3Qgc291cmNlTHRUYXJnZXRPcHBvID0gc291cmNlR2FwWyBkaXJBY2Nlc3Nvck9wcG9zaXRlIF0gPCB0YXJnZXRHYXBbIGRpckFjY2Vzc29yT3Bwb3NpdGUgXTtcbiAgICAgICAgY29uc3QgZmxpcFNvdXJjZVRhcmdldCA9XG4gICAgICAgICAgICAoc291cmNlRGlyZWN0aW9uWyBkaXJlY3Rpb25BY2Nlc3NvciBdID09PSAxICYmXG4gICAgICAgICAgICAgICAgKCghaXNTYW1lRGlyICYmIHNvdXJjZUd0VGFyZ2V0T3BwbykgfHwgKGlzU2FtZURpciAmJiBzb3VyY2VMdFRhcmdldE9wcG8pKSkgfHxcbiAgICAgICAgICAgIChzb3VyY2VEaXJlY3Rpb25bIGRpcmVjdGlvbkFjY2Vzc29yIF0gIT09IDEgJiZcbiAgICAgICAgICAgICAgICAoKCFpc1NhbWVEaXIgJiYgc291cmNlTHRUYXJnZXRPcHBvKSB8fCAoaXNTYW1lRGlyICYmIHNvdXJjZUd0VGFyZ2V0T3BwbykpKTtcblxuICAgICAgICBpZiAoZmxpcFNvdXJjZVRhcmdldCkge1xuICAgICAgICAgIHBvaW50cyA9IGRpcmVjdGlvbkFjY2Vzc29yID09PSAneCcgPyBzb3VyY2VUYXJnZXQgOiB0YXJnZXRTb3VyY2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwYXRoUG9pbnRzID0gW1xuICAgICAgc291cmNlLFxuICAgICAgeyB4OiBzb3VyY2VHYXAueCArIHNvdXJjZUdhcE9mZnNldC54LCB5OiBzb3VyY2VHYXAueSArIHNvdXJjZUdhcE9mZnNldC55IH0sXG4gICAgICAuLi5wb2ludHMsXG4gICAgICB7IHg6IHRhcmdldEdhcC54ICsgdGFyZ2V0R2FwT2Zmc2V0LngsIHk6IHRhcmdldEdhcC55ICsgdGFyZ2V0R2FwT2Zmc2V0LnkgfSxcbiAgICAgIHRhcmdldCxcbiAgICBdO1xuXG4gICAgY29uc3QgY2VudGVyID0gbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJIYW5kbGVyKCkuaGFuZGxlKFxuICAgICAgICBuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlclJlcXVlc3QocGF0aFBvaW50cylcbiAgICApO1xuXG4gICAgcmV0dXJuIHsgcG9pbnRzOiBwYXRoUG9pbnRzLCBjZW50ZXI6IGNlbnRlciB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaXJlY3Rpb24oc291cmNlOiBJUG9pbnQsIHNvdXJjZVNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLCB0YXJnZXQ6IElQb2ludCk6IElQb2ludCB7XG4gICAgaWYgKHNvdXJjZVNpZGUgPT09IEVGQ29ubmVjdGFibGVTaWRlLkxFRlQgfHwgc291cmNlU2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuUklHSFQpIHtcbiAgICAgIHJldHVybiBzb3VyY2UueCA8IHRhcmdldC54ID8gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMSwgMCkgOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgtMSwgMCk7XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2UueSA8IHRhcmdldC55ID8gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMCwgMSkgOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAtMSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3RhbmNlKGE6IElQb2ludCwgYjogSVBvaW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KGIueCAtIGEueCwgMikgKyBNYXRoLnBvdyhiLnkgLSBhLnksIDIpKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRQYXRoKHBvaW50czogSVBvaW50W10sIGJvcmRlclJhZGl1czogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBsZXQgcGF0aCA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBwID0gcG9pbnRzWyBpIF07XG4gICAgICBsZXQgc2VnbWVudCA9ICcnO1xuXG4gICAgICBpZiAoaSA+IDAgJiYgaSA8IHBvaW50cy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHNlZ21lbnQgPSB0aGlzLmdldEJlbmQocG9pbnRzWyBpIC0gMSBdLCBwLCBwb2ludHNbIGkgKyAxIF0sIGJvcmRlclJhZGl1cyk7XG4gICAgICB9IGVsc2UgaWYgKGkgPT09IHBvaW50cy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHNlZ21lbnQgPSB0aGlzLmJ1aWxkTGFzdExpbmVTZWdtZW50KGksIHApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VnbWVudCA9IHRoaXMuYnVpbGRNb3ZlT3JMaW5lU2VnbWVudChpLCBwKTtcbiAgICAgIH1cbiAgICAgIHBhdGggKz0gc2VnbWVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QmVuZChhOiBJUG9pbnQsIGI6IElQb2ludCwgYzogSVBvaW50LCBzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJlbmRTaXplID0gTWF0aC5taW4odGhpcy5kaXN0YW5jZShhLCBiKSAvIDIsIHRoaXMuZGlzdGFuY2UoYiwgYykgLyAyLCBzaXplKTtcbiAgICBjb25zdCB7IHgsIHkgfSA9IGI7XG5cbiAgICBpZiAoKGEueCA9PT0geCAmJiB4ID09PSBjLngpIHx8IChhLnkgPT09IHkgJiYgeSA9PT0gYy55KSkge1xuICAgICAgcmV0dXJuIGBMJHsgeCB9ICR7IHkgfWA7XG4gICAgfVxuXG4gICAgaWYgKGEueSA9PT0geSkge1xuICAgICAgY29uc3QgeERpciA9IGEueCA8IGMueCA/IC0xIDogMTtcbiAgICAgIGNvbnN0IHlEaXIgPSBhLnkgPCBjLnkgPyAxIDogLTE7XG4gICAgICByZXR1cm4gYEwgJHsgeCArIGJlbmRTaXplICogeERpciB9LCR7IHkgfVEgJHsgeCB9LCR7IHkgfSAkeyB4IH0sJHsgeSArIGJlbmRTaXplICogeURpciB9YDtcbiAgICB9XG5cbiAgICBjb25zdCB4RGlyID0gYS54IDwgYy54ID8gMSA6IC0xO1xuICAgIGNvbnN0IHlEaXIgPSBhLnkgPCBjLnkgPyAtMSA6IDE7XG4gICAgcmV0dXJuIGBMICR7IHggfSwkeyB5ICsgYmVuZFNpemUgKiB5RGlyIH1RICR7IHggfSwkeyB5IH0gJHsgeCArIGJlbmRTaXplICogeERpciB9LCR7IHkgfWA7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTW92ZU9yTGluZVNlZ21lbnQoaW5kZXg6IG51bWJlciwgcG9pbnQ6IElQb2ludCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAkeyBpbmRleCA9PT0gMCA/ICdNJyA6ICdMJyB9JHsgcG9pbnQueCB9ICR7IHBvaW50LnkgfWA7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTGFzdExpbmVTZWdtZW50KGluZGV4OiBudW1iZXIsIHBvaW50OiBJUG9pbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgTCR7IHBvaW50LnggKyAwLjAwMDIgfSAkeyBwb2ludC55ICsgMC4wMDAyIH1gO1xuICB9XG59XG4iXX0=
@@ -4,7 +4,7 @@ export class FStraightPathBuilder {
4
4
  const { source, target } = request;
5
5
  const path = `M ${source.x} ${source.y} L ${target.x + 0.0002} ${target.y + 0.0002}`;
6
6
  const connectionCenter = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest([source, target]));
7
- return { path, connectionCenter };
7
+ return { path, connectionCenter, penultimatePoint: source };
8
8
  }
9
9
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zdHJhaWdodC5wYXRoLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZG9tYWluL2Ytc3RyYWlnaHQucGF0aC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBT25ILE1BQU0sT0FBTyxvQkFBb0I7SUFFeEIsTUFBTSxDQUFDLE9BQW1DO1FBQy9DLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ25DLE1BQU0sSUFBSSxHQUFHLEtBQU0sTUFBTSxDQUFDLENBQUUsSUFBSyxNQUFNLENBQUMsQ0FBRSxNQUFPLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTyxJQUFLLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTyxFQUFFLENBQUM7UUFFN0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGdDQUFnQyxFQUFFLENBQUMsTUFBTSxDQUNsRSxJQUFJLGdDQUFnQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQ3pELENBQUM7UUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFDcEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlckhhbmRsZXIsIENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXInO1xuaW1wb3J0IHtcbiAgSUZDb25uZWN0aW9uQnVpbGRlcixcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QsXG4gIElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZVxufSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24tYnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBGU3RyYWlnaHRQYXRoQnVpbGRlciBpbXBsZW1lbnRzIElGQ29ubmVjdGlvbkJ1aWxkZXIge1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QpOiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2Uge1xuICAgIGNvbnN0IHsgc291cmNlLCB0YXJnZXQgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgcGF0aCA9IGBNICR7IHNvdXJjZS54IH0gJHsgc291cmNlLnkgfSBMICR7IHRhcmdldC54ICsgMC4wMDAyIH0gJHsgdGFyZ2V0LnkgKyAwLjAwMDIgfWA7XG5cbiAgICBjb25zdCBjb25uZWN0aW9uQ2VudGVyID0gbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJIYW5kbGVyKCkuaGFuZGxlKFxuICAgICAgICBuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlclJlcXVlc3QoW3NvdXJjZSwgdGFyZ2V0XSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHsgcGF0aCwgY29ubmVjdGlvbkNlbnRlciB9O1xuICB9XG59XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zdHJhaWdodC5wYXRoLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZG9tYWluL2Ytc3RyYWlnaHQucGF0aC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBT25ILE1BQU0sT0FBTyxvQkFBb0I7SUFFeEIsTUFBTSxDQUFDLE9BQW1DO1FBQy9DLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ25DLE1BQU0sSUFBSSxHQUFHLEtBQU0sTUFBTSxDQUFDLENBQUUsSUFBSyxNQUFNLENBQUMsQ0FBRSxNQUFPLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTyxJQUFLLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTyxFQUFFLENBQUM7UUFFN0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGdDQUFnQyxFQUFFLENBQUMsTUFBTSxDQUNsRSxJQUFJLGdDQUFnQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQ3pELENBQUM7UUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJIYW5kbGVyLCBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVyUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3Rpb24tY2VudGVyJztcbmltcG9ydCB7XG4gIElGQ29ubmVjdGlvbkJ1aWxkZXIsXG4gIElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0LFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2Vcbn0gZnJvbSAnLi4vLi4vZi1jb25uZWN0aW9uLWJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgRlN0cmFpZ2h0UGF0aEJ1aWxkZXIgaW1wbGVtZW50cyBJRkNvbm5lY3Rpb25CdWlsZGVyIHtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0KTogSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlIHtcbiAgICBjb25zdCB7IHNvdXJjZSwgdGFyZ2V0IH0gPSByZXF1ZXN0O1xuICAgIGNvbnN0IHBhdGggPSBgTSAkeyBzb3VyY2UueCB9ICR7IHNvdXJjZS55IH0gTCAkeyB0YXJnZXQueCArIDAuMDAwMiB9ICR7IHRhcmdldC55ICsgMC4wMDAyIH1gO1xuXG4gICAgY29uc3QgY29ubmVjdGlvbkNlbnRlciA9IG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlcigpLmhhbmRsZShcbiAgICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0KFtzb3VyY2UsIHRhcmdldF0pXG4gICAgKTtcblxuICAgIHJldHVybiB7IHBhdGgsIGNvbm5lY3Rpb25DZW50ZXIsIHBlbnVsdGltYXRlUG9pbnQ6IHNvdXJjZSB9O1xuICB9XG59XG4iXX0=