@foblex/flow 17.9.81 → 18.0.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 (742) hide show
  1. package/LICENSE +1 -1
  2. package/domain/css-cls.d.ts +0 -3
  3. package/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.d.ts +3 -3
  4. package/domain/f-connection/add-connection-for-create-to-store/{add-connection-for-create-to-store.execution.d.ts → add-connection-for-create-to-store.d.ts} +4 -4
  5. package/domain/f-connection/add-connection-for-create-to-store/index.d.ts +1 -1
  6. package/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.d.ts +3 -3
  7. package/domain/f-connection/add-connection-marker-to-store/{add-connection-marker-to-store.execution.d.ts → add-connection-marker-to-store.d.ts} +4 -4
  8. package/domain/f-connection/add-connection-marker-to-store/index.d.ts +1 -1
  9. package/domain/f-connection/add-connection-to-store/add-connection-to-store-request.d.ts +3 -3
  10. package/domain/f-connection/add-connection-to-store/{add-connection-to-store.execution.d.ts → add-connection-to-store.d.ts} +4 -4
  11. package/domain/f-connection/add-connection-to-store/index.d.ts +1 -1
  12. package/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.d.ts +3 -3
  13. package/domain/f-connection/add-snap-connection-to-store/{add-snap-connection-to-store.execution.d.ts → add-snap-connection-to-store.d.ts} +4 -4
  14. package/domain/f-connection/add-snap-connection-to-store/index.d.ts +1 -1
  15. package/domain/f-connection/create-connection-markers/create-connection-markers-request.d.ts +3 -3
  16. package/domain/f-connection/create-connection-markers/{create-connection-markers.execution.d.ts → create-connection-markers.d.ts} +7 -8
  17. package/domain/f-connection/create-connection-markers/index.d.ts +1 -1
  18. package/domain/f-connection/index.d.ts +1 -1
  19. package/domain/f-connection/providers.d.ts +11 -11
  20. package/domain/f-connection/redraw-connections/redraw-connections.d.ts +6 -4
  21. package/domain/f-connection/remove-connection-for-create-from-store/index.d.ts +1 -1
  22. package/domain/f-connection/remove-connection-for-create-from-store/{remove-connection-for-create-from-store.execution.d.ts → remove-connection-for-create-from-store.d.ts} +4 -4
  23. package/domain/f-connection/remove-connection-from-store/index.d.ts +1 -1
  24. package/domain/f-connection/remove-connection-from-store/remove-connection-from-store-request.d.ts +3 -3
  25. package/domain/f-connection/remove-connection-from-store/{remove-connection-from-store.execution.d.ts → remove-connection-from-store.d.ts} +4 -5
  26. package/domain/f-connection/remove-connection-marker-from-store/index.d.ts +1 -1
  27. package/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.d.ts +3 -3
  28. package/domain/f-connection/remove-connection-marker-from-store/{remove-connection-marker-from-store.execution.d.ts → remove-connection-marker-from-store.d.ts} +4 -4
  29. package/domain/f-connection/remove-connection-waypoint/index.d.ts +2 -0
  30. package/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint-request.d.ts +6 -0
  31. package/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint.d.ts +11 -0
  32. package/domain/f-connection/remove-snap-connection-from-store/index.d.ts +1 -1
  33. package/domain/f-connection/remove-snap-connection-from-store/{remove-snap-connection-from-store.execution.d.ts → remove-snap-connection-from-store.d.ts} +4 -4
  34. package/domain/f-draggable/on-pointer-move/on-pointer-move.execution.d.ts +1 -1
  35. package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.d.ts +1 -1
  36. package/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state-request.d.ts +3 -0
  37. package/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state.d.ts +14 -0
  38. package/domain/f-flow/calculate-flow-state/calculate-connections-state/index.d.ts +2 -0
  39. package/domain/f-flow/calculate-flow-state/calculate-flow-state-request.d.ts +3 -0
  40. package/domain/f-flow/calculate-flow-state/calculate-flow-state.d.ts +17 -0
  41. package/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state-request.d.ts +6 -0
  42. package/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state.d.ts +15 -0
  43. package/domain/f-flow/calculate-flow-state/calculate-nodes-state/index.d.ts +2 -0
  44. package/domain/f-flow/calculate-flow-state/i-f-flow-state-connection.d.ts +13 -0
  45. package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state-connector.d.ts +1 -1
  46. package/domain/f-flow/{get-flow-state → calculate-flow-state}/index.d.ts +4 -4
  47. package/domain/f-flow/calculate-flow-state/providers.d.ts +7 -0
  48. package/domain/f-flow/index.d.ts +1 -1
  49. package/domain/f-flow/providers.d.ts +1 -1
  50. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.d.ts +1 -1
  51. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.d.ts +1 -1
  52. package/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.d.ts +1 -1
  53. package/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.d.ts +1 -1
  54. package/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.d.ts +1 -1
  55. package/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.d.ts +1 -1
  56. package/domain/f-node/calculate-input-connections/calculate-input-connections.d.ts +1 -1
  57. package/domain/f-node/calculate-output-connections/calculate-output-connections.d.ts +1 -1
  58. package/domain/f-selection/calculate-selectable-items/calculate-selectable-items-request.d.ts +3 -0
  59. package/domain/f-selection/{get-can-be-selected-items/get-can-be-selected-items.execution.d.ts → calculate-selectable-items/calculate-selectable-items.d.ts} +8 -8
  60. package/domain/f-selection/calculate-selectable-items/index.d.ts +3 -0
  61. package/domain/f-selection/index.d.ts +1 -1
  62. package/domain/f-selection/providers.d.ts +2 -2
  63. package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.d.ts +2 -2
  64. package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.d.ts +12 -0
  65. package/domain/f-zoom/add-zoom-to-store/index.d.ts +1 -1
  66. package/domain/f-zoom/providers.d.ts +5 -5
  67. package/domain/f-zoom/remove-zoom-from-store/index.d.ts +1 -1
  68. package/domain/f-zoom/remove-zoom-from-store/{remove-zoom-from-store.execution.d.ts → remove-zoom-from-store.d.ts} +3 -3
  69. package/domain/f-zoom/reset-zoom/index.d.ts +1 -1
  70. package/domain/f-zoom/reset-zoom/reset-zoom.d.ts +13 -0
  71. package/domain/f-zoom/set-zoom/index.d.ts +1 -1
  72. package/domain/f-zoom/set-zoom/{set-zoom.execution.d.ts → set-zoom.d.ts} +6 -6
  73. package/domain/index.d.ts +0 -1
  74. package/domain/providers.d.ts +1 -1
  75. package/drag-toolkit/pointer-events/i-pointer-event.d.ts +6 -4
  76. package/esm2022/domain/css-cls.mjs +1 -4
  77. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.mjs +4 -4
  78. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.mjs +25 -0
  79. package/esm2022/domain/f-connection/add-connection-for-create-to-store/index.mjs +2 -2
  80. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.mjs +4 -4
  81. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.mjs +25 -0
  82. package/esm2022/domain/f-connection/add-connection-marker-to-store/index.mjs +2 -2
  83. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store-request.mjs +4 -4
  84. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.mjs +26 -0
  85. package/esm2022/domain/f-connection/add-connection-to-store/index.mjs +2 -2
  86. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.mjs +4 -4
  87. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.mjs +25 -0
  88. package/esm2022/domain/f-connection/add-snap-connection-to-store/index.mjs +2 -2
  89. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers-request.mjs +4 -4
  90. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.mjs +64 -0
  91. package/esm2022/domain/f-connection/create-connection-markers/index.mjs +2 -2
  92. package/esm2022/domain/f-connection/index.mjs +2 -2
  93. package/esm2022/domain/f-connection/providers.mjs +21 -21
  94. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +24 -21
  95. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/index.mjs +2 -2
  96. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.mjs +25 -0
  97. package/esm2022/domain/f-connection/remove-connection-from-store/index.mjs +2 -2
  98. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store-request.mjs +4 -4
  99. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.mjs +33 -0
  100. package/esm2022/domain/f-connection/remove-connection-marker-from-store/index.mjs +2 -2
  101. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.mjs +4 -4
  102. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.mjs +25 -0
  103. package/esm2022/domain/f-connection/remove-connection-waypoint/index.mjs +3 -0
  104. package/esm2022/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint-request.mjs +10 -0
  105. package/esm2022/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint.mjs +40 -0
  106. package/esm2022/domain/f-connection/remove-snap-connection-from-store/index.mjs +2 -2
  107. package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.mjs +25 -0
  108. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.mjs +1 -1
  109. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.mjs +1 -1
  110. package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store-request.mjs +1 -1
  111. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.execution.mjs +5 -5
  112. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence-request.mjs +1 -1
  113. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.mjs +3 -5
  114. package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state-request.mjs +4 -0
  115. package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state.mjs +38 -0
  116. package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/index.mjs +3 -0
  117. package/esm2022/domain/f-flow/calculate-flow-state/calculate-flow-state-request.mjs +4 -0
  118. package/esm2022/domain/f-flow/calculate-flow-state/calculate-flow-state.mjs +45 -0
  119. package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state-request.mjs +8 -0
  120. package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state.mjs +58 -0
  121. package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/index.mjs +3 -0
  122. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-connection.mjs +2 -0
  123. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-connector.mjs +2 -0
  124. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-node.mjs +2 -0
  125. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state.mjs +2 -0
  126. package/esm2022/domain/f-flow/calculate-flow-state/index.mjs +10 -0
  127. package/esm2022/domain/f-flow/calculate-flow-state/providers.mjs +12 -0
  128. package/esm2022/domain/f-flow/index.mjs +2 -2
  129. package/esm2022/domain/f-flow/providers.mjs +2 -2
  130. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +1 -1
  131. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.mjs +2 -2
  132. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.mjs +2 -2
  133. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.mjs +2 -2
  134. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.mjs +1 -1
  135. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.mjs +2 -2
  136. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.mjs +2 -2
  137. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.mjs +1 -1
  138. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.mjs +1 -1
  139. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +2 -2
  140. package/esm2022/domain/f-selection/calculate-selectable-items/calculate-selectable-items-request.mjs +4 -0
  141. package/esm2022/domain/f-selection/calculate-selectable-items/calculate-selectable-items.mjs +70 -0
  142. package/esm2022/domain/f-selection/calculate-selectable-items/i-can-be-selected-element-and-rect.mjs +2 -0
  143. package/esm2022/domain/f-selection/calculate-selectable-items/index.mjs +4 -0
  144. package/esm2022/domain/f-selection/clear-selection/clear-selection.request.mjs +1 -1
  145. package/esm2022/domain/f-selection/index.mjs +2 -2
  146. package/esm2022/domain/f-selection/providers.mjs +3 -3
  147. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.mjs +4 -4
  148. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.mjs +28 -0
  149. package/esm2022/domain/f-zoom/add-zoom-to-store/index.mjs +2 -2
  150. package/esm2022/domain/f-zoom/providers.mjs +6 -11
  151. package/esm2022/domain/f-zoom/remove-zoom-from-store/index.mjs +2 -2
  152. package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.mjs +28 -0
  153. package/esm2022/domain/f-zoom/reset-zoom/index.mjs +2 -2
  154. package/esm2022/domain/f-zoom/reset-zoom/reset-zoom.mjs +30 -0
  155. package/esm2022/domain/f-zoom/set-zoom/index.mjs +2 -2
  156. package/esm2022/domain/f-zoom/set-zoom/set-zoom.mjs +54 -0
  157. package/esm2022/domain/index.mjs +1 -2
  158. package/esm2022/drag-toolkit/pointer-events/i-pointer-event.mjs +15 -10
  159. package/esm2022/f-canvas/domain/{f-canvas-change.event.mjs → f-canvas-change-event.mjs} +1 -1
  160. package/esm2022/f-canvas/domain/index.mjs +2 -2
  161. package/esm2022/f-canvas/f-canvas-base.mjs +7 -5
  162. package/esm2022/f-canvas/f-canvas.component.mjs +26 -36
  163. package/esm2022/f-connection/f-connection/f-connection.component.mjs +10 -24
  164. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +13 -18
  165. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +9 -15
  166. package/esm2022/f-connection/index.mjs +2 -7
  167. package/esm2022/f-connection/providers.mjs +9 -13
  168. package/esm2022/f-connection-v2/components/connection-content/f-connection-content.mjs +76 -0
  169. package/esm2022/f-connection-v2/components/connection-content/index.mjs +4 -0
  170. package/esm2022/f-connection-v2/components/connection-content/models/f-connection-content-base.mjs +10 -0
  171. package/esm2022/f-connection-v2/components/connection-content/models/index.mjs +2 -0
  172. package/esm2022/f-connection-v2/components/connection-content/utils/i-polyline-content.mjs +2 -0
  173. package/esm2022/f-connection-v2/components/connection-content/utils/index.mjs +6 -0
  174. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-content-align.mjs +6 -0
  175. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-content-layout-engine.mjs +25 -0
  176. package/esm2022/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-place.mjs +2 -2
  177. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/i-sampler-result.mjs +2 -0
  178. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/i-tangent.mjs +2 -0
  179. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/index.mjs +5 -0
  180. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/polyline-sampler.mjs +143 -0
  181. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/polyline.mjs +71 -0
  182. package/esm2022/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-end.mjs +35 -0
  183. package/esm2022/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-start.mjs +35 -0
  184. package/esm2022/f-connection-v2/components/connection-drag-handles/index.mjs +4 -0
  185. package/esm2022/f-connection-v2/components/connection-drag-handles/models/f-connection-drag-handle-base.mjs +17 -0
  186. package/esm2022/f-connection-v2/components/connection-drag-handles/models/index.mjs +2 -0
  187. package/esm2022/f-connection-v2/components/connection-gradient/f-connection-gradient.mjs +54 -0
  188. package/esm2022/f-connection-v2/components/connection-gradient/index.mjs +3 -0
  189. package/esm2022/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.mjs +6 -0
  190. package/esm2022/f-connection-v2/components/connection-gradient/models/index.mjs +2 -0
  191. package/esm2022/f-connection-v2/components/connection-marker/enums/e-f-marker-type.mjs +8 -0
  192. package/esm2022/f-connection-v2/components/connection-marker/enums/index.mjs +2 -0
  193. package/esm2022/f-connection-v2/components/connection-marker/f-connection-marker.mjs +50 -0
  194. package/esm2022/f-connection-v2/components/connection-marker/index.mjs +4 -0
  195. package/esm2022/f-connection-v2/components/connection-marker/models/f-connection-marker-base.mjs +6 -0
  196. package/esm2022/f-connection-v2/components/connection-marker/models/index.mjs +2 -0
  197. package/esm2022/f-connection-v2/components/connection-path/f-connection-path.mjs +66 -0
  198. package/esm2022/f-connection-v2/components/connection-path/index.mjs +3 -0
  199. package/esm2022/f-connection-v2/components/connection-path/models/f-connection-path-base.mjs +6 -0
  200. package/esm2022/f-connection-v2/components/connection-path/models/index.mjs +2 -0
  201. package/esm2022/f-connection-v2/components/connection-selection/f-connection-selection.mjs +34 -0
  202. package/esm2022/f-connection-v2/components/connection-selection/index.mjs +3 -0
  203. package/esm2022/f-connection-v2/components/connection-selection/models/f-connection-selection-base.mjs +6 -0
  204. package/esm2022/f-connection-v2/components/connection-selection/models/index.mjs +2 -0
  205. package/esm2022/f-connection-v2/components/connection-waypoints/f-connection-waypoints.mjs +50 -0
  206. package/esm2022/f-connection-v2/components/connection-waypoints/index.mjs +4 -0
  207. package/esm2022/f-connection-v2/components/connection-waypoints/models/f-connection-waypoints-base.mjs +27 -0
  208. package/esm2022/f-connection-v2/components/connection-waypoints/models/index.mjs +2 -0
  209. package/esm2022/f-connection-v2/components/connection-waypoints/utils/find-existing-waypoint.mjs +7 -0
  210. package/esm2022/f-connection-v2/components/connection-waypoints/utils/find-waypoint-candidate.mjs +7 -0
  211. package/esm2022/f-connection-v2/components/connection-waypoints/utils/index.mjs +5 -0
  212. package/esm2022/f-connection-v2/components/connection-waypoints/utils/is-pointer-inside-point.mjs +4 -0
  213. package/esm2022/f-connection-v2/components/connection-waypoints/utils/pick-waypoint.mjs +16 -0
  214. package/esm2022/f-connection-v2/components/f-connection-base.mjs +112 -0
  215. package/esm2022/f-connection-v2/components/index.mjs +9 -0
  216. package/esm2022/f-connection-v2/enums/e-f-connectable-side.mjs +12 -0
  217. package/esm2022/f-connection-v2/enums/e-f-connection-type.mjs +8 -0
  218. package/esm2022/f-connection-v2/enums/index.mjs +3 -0
  219. package/esm2022/f-connection-v2/index.mjs +5 -0
  220. package/esm2022/f-connection-v2/models/f-connection-components-parent.mjs +5 -0
  221. package/esm2022/f-connection-v2/models/f-connection-waypoints-changed-event.mjs +9 -0
  222. package/esm2022/f-connection-v2/models/index.mjs +3 -0
  223. package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.mjs +15 -0
  224. package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder.mjs +136 -0
  225. package/esm2022/f-connection-v2/utils/connection-behaviour/enums/e-f-connection-behavior.mjs +7 -0
  226. package/esm2022/f-connection-v2/utils/connection-behaviour/enums/e-f-connection-connectable-side.mjs +12 -0
  227. package/esm2022/f-connection-v2/utils/connection-behaviour/enums/index.mjs +3 -0
  228. package/esm2022/f-connection-v2/utils/connection-behaviour/index.mjs +6 -0
  229. package/esm2022/f-connection-v2/utils/connection-behaviour/models/i-calculate-behavior-request.mjs +2 -0
  230. package/esm2022/f-connection-v2/utils/connection-behaviour/models/index.mjs +2 -0
  231. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/fixed-center-behavior.mjs +12 -0
  232. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/fixed-outbound-behavior.mjs +31 -0
  233. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/floating-behavior.mjs +22 -0
  234. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/index.mjs +4 -0
  235. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/calculate-adaptive-curve-data.mjs +74 -0
  236. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/index.mjs +2 -0
  237. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/calculate-bezier-curve-data.mjs +49 -0
  238. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/index.mjs +2 -0
  239. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/index.mjs +6 -0
  240. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/build-corner-mid-points-and-apply-offsets.mjs +50 -0
  241. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/calculate-segment-line-data.mjs +106 -0
  242. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/create-segment-line-path.mjs +46 -0
  243. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/index.mjs +4 -0
  244. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/straight-line/calculate-straight-line-data.mjs +28 -0
  245. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/straight-line/index.mjs +2 -0
  246. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/build-connection-anchors.mjs +4 -0
  247. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-center-between-points.mjs +8 -0
  248. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-curve-candidates.mjs +7 -0
  249. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-polyline-candidates.mjs +39 -0
  250. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/index.mjs +9 -0
  251. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/merge-point-chains.mjs +12 -0
  252. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/multi-cubic.mjs +28 -0
  253. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/normalize-polyline.mjs +30 -0
  254. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/sample-cubic-bezier-uniform.mjs +37 -0
  255. package/esm2022/f-connection-v2/utils/connection-line-builder/connection-line-builder-request.mjs +9 -0
  256. package/esm2022/f-connection-v2/utils/connection-line-builder/connection-line-builder.mjs +50 -0
  257. package/esm2022/f-connection-v2/utils/connection-line-builder/index.mjs +6 -0
  258. package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder-request.mjs +2 -0
  259. package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder-response.mjs +2 -0
  260. package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder.mjs +2 -0
  261. package/esm2022/f-connection-v2/utils/connection-line-builder/models/index.mjs +4 -0
  262. package/esm2022/f-connection-v2/utils/connection-line-builder/providers/f-connection-builders.mjs +3 -0
  263. package/esm2022/f-connection-v2/utils/connection-line-builder/providers/index.mjs +2 -0
  264. package/esm2022/f-connection-v2/utils/create-connection-dom-identifier.mjs +5 -0
  265. package/esm2022/f-connection-v2/utils/create-connection-selection-dom-identifier.mjs +5 -0
  266. package/esm2022/f-connection-v2/utils/create-gradient-dom-identifier.mjs +5 -0
  267. package/esm2022/f-connection-v2/utils/create-gradient-dom-url.mjs +5 -0
  268. package/esm2022/f-connection-v2/utils/index.mjs +7 -0
  269. package/esm2022/f-connectors/f-connector-base.mjs +2 -2
  270. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +2 -2
  271. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +2 -2
  272. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +2 -2
  273. package/esm2022/f-connectors/f-source-connector-base.mjs +8 -1
  274. package/esm2022/f-connectors/index.mjs +1 -2
  275. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +1 -1
  276. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.mjs +1 -8
  277. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +8 -6
  278. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.mjs +6 -3
  279. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +8 -5
  280. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +8 -5
  281. package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.mjs +1 -1
  282. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +22 -27
  283. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.mjs +8 -7
  284. package/esm2022/f-draggable/f-connection/index.mjs +2 -1
  285. package/esm2022/f-draggable/f-connection/move-connection-waypoint/index.mjs +4 -0
  286. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/index.mjs +3 -0
  287. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize-request.mjs +8 -0
  288. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize.mjs +32 -0
  289. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-handler.mjs +49 -0
  290. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/index.mjs +3 -0
  291. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation-request.mjs +10 -0
  292. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation.mjs +65 -0
  293. package/esm2022/f-draggable/f-connection/providers.mjs +5 -2
  294. package/esm2022/f-draggable/f-drag-handler/i-f-drag-handler.mjs +1 -1
  295. package/esm2022/f-draggable/f-draggable-base.mjs +2 -2
  296. package/esm2022/f-draggable/f-draggable.directive.mjs +20 -9
  297. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +6 -3
  298. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/source-connection.drag-handler.mjs +1 -1
  299. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.mjs +1 -1
  300. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/target-connection.drag-handler.mjs +1 -1
  301. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler.mjs +1 -1
  302. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler.mjs +1 -1
  303. package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.mjs +1 -1
  304. package/esm2022/f-draggable/f-node-move/move-drag-handler.mjs +7 -5
  305. package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.mjs +19 -14
  306. package/esm2022/f-draggable/f-node-move/move-preparation/index.mjs +3 -3
  307. package/esm2022/f-draggable/f-node-move/move-preparation/move-node-preparation-request.mjs +10 -0
  308. package/esm2022/f-draggable/f-node-move/move-preparation/move-node-preparation.mjs +81 -0
  309. package/esm2022/f-draggable/f-node-move/move-summary-drag-handler.mjs +1 -1
  310. package/esm2022/f-draggable/f-node-move/providers.mjs +3 -3
  311. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.mjs +1 -1
  312. package/esm2022/f-draggable/index.mjs +3 -2
  313. package/esm2022/f-draggable/pinch-to-zoom/constants/constants.mjs +6 -0
  314. package/esm2022/f-draggable/pinch-to-zoom/constants/index.mjs +2 -0
  315. package/esm2022/f-draggable/pinch-to-zoom/finalize/index.mjs +3 -0
  316. package/esm2022/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize-request.mjs +8 -0
  317. package/esm2022/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize.mjs +31 -0
  318. package/esm2022/f-draggable/pinch-to-zoom/index.mjs +7 -0
  319. package/esm2022/f-draggable/pinch-to-zoom/pinch-to-zoom-handler.mjs +68 -0
  320. package/esm2022/f-draggable/pinch-to-zoom/preparation/index.mjs +3 -0
  321. package/esm2022/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation-request.mjs +8 -0
  322. package/esm2022/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation.mjs +42 -0
  323. package/esm2022/f-draggable/pinch-to-zoom/providers.mjs +4 -0
  324. package/esm2022/f-draggable/pinch-to-zoom/utils/calculate-touch-center.mjs +10 -0
  325. package/esm2022/f-draggable/pinch-to-zoom/utils/calculate-touch-distance.mjs +9 -0
  326. package/esm2022/f-draggable/pinch-to-zoom/utils/index.mjs +3 -0
  327. package/esm2022/f-draggable/providers.mjs +4 -2
  328. package/esm2022/f-draggable/single-select/index.mjs +4 -0
  329. package/esm2022/f-draggable/single-select/providers.mjs +3 -0
  330. package/esm2022/f-draggable/single-select/single-select-request.mjs +10 -0
  331. package/esm2022/f-draggable/single-select/single-select.mjs +139 -0
  332. package/esm2022/f-flow/f-flow.component.mjs +39 -26
  333. package/esm2022/f-flow.module.mjs +38 -37
  334. package/esm2022/f-line-alignment/f-line-alignment-base.mjs +1 -1
  335. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +10 -17
  336. package/esm2022/f-minimap/f-minimap.component.mjs +8 -9
  337. package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +21 -19
  338. package/esm2022/f-storage/f-components-store.mjs +1 -1
  339. package/esm2022/f-storage/features/listen-components-data-changed/index.mjs +2 -2
  340. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes-request.mjs +1 -1
  341. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.mjs +23 -0
  342. package/esm2022/f-storage/features/listen-count-changes/index.mjs +2 -2
  343. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes-request.mjs +1 -1
  344. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.mjs +23 -0
  345. package/esm2022/f-storage/features/listen-transform-changes/index.mjs +3 -3
  346. package/esm2022/f-storage/features/listen-transform-changes/{listen-transform-changes.request.mjs → listen-transform-changes-request.mjs} +1 -1
  347. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.mjs +23 -0
  348. package/esm2022/f-storage/features/notify-data-changed/index.mjs +2 -2
  349. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed-request.mjs +1 -1
  350. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.mjs +22 -0
  351. package/esm2022/f-storage/features/notify-transform-changed/index.mjs +3 -3
  352. package/esm2022/f-storage/features/notify-transform-changed/{notify-transform-changed.request.mjs → notify-transform-changed-request.mjs} +1 -1
  353. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.mjs +22 -0
  354. package/esm2022/f-storage/index.mjs +1 -2
  355. package/esm2022/f-storage/providers.mjs +11 -11
  356. package/esm2022/f-zoom/f-zoom.directive.mjs +3 -13
  357. package/esm2022/public-api.mjs +2 -1
  358. package/esm2022/reactivity/debounce-time.mjs +16 -5
  359. package/esm2022/reactivity/f-channel-hub.mjs +33 -9
  360. package/esm2022/reactivity/index.mjs +2 -1
  361. package/esm2022/reactivity/notify-on-start.mjs +12 -4
  362. package/esm2022/reactivity/take-one.mjs +17 -0
  363. package/esm2022/reactivity/types.mjs +1 -1
  364. package/esm2022/utils/calculate-pointer-in-flow.mjs +9 -0
  365. package/esm2022/utils/index.mjs +2 -1
  366. package/f-canvas/domain/index.d.ts +1 -1
  367. package/f-canvas/f-canvas-base.d.ts +2 -2
  368. package/f-canvas/f-canvas.component.d.ts +2 -9
  369. package/f-connection/f-connection/f-connection.component.d.ts +2 -7
  370. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +2 -6
  371. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +2 -6
  372. package/f-connection/index.d.ts +1 -6
  373. package/f-connection/providers.d.ts +3 -4
  374. package/{f-connection/f-connection-content → f-connection-v2/components/connection-content}/f-connection-content.d.ts +3 -30
  375. package/f-connection-v2/components/connection-content/index.d.ts +3 -0
  376. package/f-connection-v2/components/connection-content/models/f-connection-content-base.d.ts +36 -0
  377. package/f-connection-v2/components/connection-content/models/index.d.ts +1 -0
  378. package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-layout-engine.d.ts +1 -9
  379. package/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-end.d.ts +8 -0
  380. package/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-start.d.ts +8 -0
  381. package/f-connection-v2/components/connection-drag-handles/index.d.ts +3 -0
  382. package/f-connection-v2/components/connection-drag-handles/models/f-connection-drag-handle-base.d.ts +11 -0
  383. package/f-connection-v2/components/connection-drag-handles/models/index.d.ts +1 -0
  384. package/{f-connection/common/f-gradient/f-connection-gradient.component.d.ts → f-connection-v2/components/connection-gradient/f-connection-gradient.d.ts} +5 -6
  385. package/f-connection-v2/components/connection-gradient/index.d.ts +2 -0
  386. package/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.d.ts +8 -0
  387. package/f-connection-v2/components/connection-gradient/models/index.d.ts +1 -0
  388. package/f-connection-v2/components/connection-marker/enums/index.d.ts +1 -0
  389. package/f-connection-v2/components/connection-marker/f-connection-marker.d.ts +17 -0
  390. package/f-connection-v2/components/connection-marker/index.d.ts +3 -0
  391. package/{f-connection/f-marker/f-marker-base.d.ts → f-connection-v2/components/connection-marker/models/f-connection-marker-base.d.ts} +3 -4
  392. package/f-connection-v2/components/connection-marker/models/index.d.ts +1 -0
  393. package/f-connection-v2/components/connection-path/f-connection-path.d.ts +14 -0
  394. package/f-connection-v2/components/connection-path/index.d.ts +2 -0
  395. package/f-connection-v2/components/connection-path/models/f-connection-path-base.d.ts +9 -0
  396. package/f-connection-v2/components/connection-path/models/index.d.ts +1 -0
  397. package/f-connection-v2/components/connection-selection/f-connection-selection.d.ts +9 -0
  398. package/f-connection-v2/components/connection-selection/index.d.ts +2 -0
  399. package/f-connection-v2/components/connection-selection/models/f-connection-selection-base.d.ts +6 -0
  400. package/f-connection-v2/components/connection-selection/models/index.d.ts +1 -0
  401. package/f-connection-v2/components/connection-waypoints/f-connection-waypoints.d.ts +19 -0
  402. package/f-connection-v2/components/connection-waypoints/index.d.ts +3 -0
  403. package/f-connection-v2/components/connection-waypoints/models/f-connection-waypoints-base.d.ts +16 -0
  404. package/f-connection-v2/components/connection-waypoints/models/index.d.ts +1 -0
  405. package/f-connection-v2/components/connection-waypoints/utils/find-existing-waypoint.d.ts +6 -0
  406. package/f-connection-v2/components/connection-waypoints/utils/find-waypoint-candidate.d.ts +6 -0
  407. package/f-connection-v2/components/connection-waypoints/utils/index.d.ts +4 -0
  408. package/f-connection-v2/components/connection-waypoints/utils/is-pointer-inside-point.d.ts +2 -0
  409. package/f-connection-v2/components/connection-waypoints/utils/pick-waypoint.d.ts +17 -0
  410. package/{f-connection/common → f-connection-v2/components}/f-connection-base.d.ts +14 -31
  411. package/f-connection-v2/components/index.d.ts +8 -0
  412. package/f-connection-v2/enums/index.d.ts +2 -0
  413. package/f-connection-v2/index.d.ts +4 -0
  414. package/f-connection-v2/models/f-connection-components-parent.d.ts +15 -0
  415. package/f-connection-v2/models/f-connection-waypoints-changed-event.d.ts +6 -0
  416. package/f-connection-v2/models/index.d.ts +2 -0
  417. package/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.d.ts +11 -0
  418. package/{domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.d.ts → f-connection-v2/utils/connection-behaviour/connection-behaviour-builder.d.ts} +5 -6
  419. package/f-connection-v2/utils/connection-behaviour/enums/index.d.ts +2 -0
  420. package/f-connection-v2/utils/connection-behaviour/index.d.ts +5 -0
  421. package/{domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.d.ts → f-connection-v2/utils/connection-behaviour/models/i-calculate-behavior-request.d.ts} +2 -2
  422. package/f-connection-v2/utils/connection-behaviour/models/index.d.ts +1 -0
  423. package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/fixed-center-behavior.d.ts +2 -2
  424. package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/fixed-outbound-behavior.d.ts +2 -2
  425. package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/floating-behavior.d.ts +2 -2
  426. package/f-connection-v2/utils/connection-behaviour/utils/index.d.ts +3 -0
  427. package/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/calculate-adaptive-curve-data.d.ts +8 -0
  428. package/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/index.d.ts +1 -0
  429. package/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/calculate-bezier-curve-data.d.ts +4 -0
  430. package/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/index.d.ts +1 -0
  431. package/f-connection-v2/utils/connection-line-builder/builders/index.d.ts +5 -0
  432. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/build-corner-mid-points-and-apply-offsets.d.ts +17 -0
  433. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/calculate-segment-line-data.d.ts +6 -0
  434. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/create-segment-line-path.d.ts +2 -0
  435. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/index.d.ts +3 -0
  436. package/{f-connection/common/domain/f-straight.path-builder.d.ts → f-connection-v2/utils/connection-line-builder/builders/straight-line/calculate-straight-line-data.d.ts} +2 -2
  437. package/f-connection-v2/utils/connection-line-builder/builders/straight-line/index.d.ts +1 -0
  438. package/f-connection-v2/utils/connection-line-builder/builders/utils/build-connection-anchors.d.ts +2 -0
  439. package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-center-between-points.d.ts +2 -0
  440. package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-curve-candidates.d.ts +3 -0
  441. package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-polyline-candidates.d.ts +2 -0
  442. package/f-connection-v2/utils/connection-line-builder/builders/utils/index.d.ts +8 -0
  443. package/f-connection-v2/utils/connection-line-builder/builders/utils/merge-point-chains.d.ts +2 -0
  444. package/f-connection-v2/utils/connection-line-builder/builders/utils/multi-cubic.d.ts +10 -0
  445. package/f-connection-v2/utils/connection-line-builder/builders/utils/normalize-polyline.d.ts +2 -0
  446. package/f-connection-v2/utils/connection-line-builder/builders/utils/sample-cubic-bezier-uniform.d.ts +24 -0
  447. package/f-connection-v2/utils/connection-line-builder/connection-line-builder-request.d.ts +7 -0
  448. package/f-connection-v2/utils/connection-line-builder/connection-line-builder.d.ts +13 -0
  449. package/f-connection-v2/utils/connection-line-builder/index.d.ts +5 -0
  450. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder-request.d.ts +2 -1
  451. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder-response.d.ts +2 -2
  452. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder.d.ts +1 -2
  453. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/index.d.ts +1 -4
  454. package/f-connection-v2/utils/connection-line-builder/providers/f-connection-builders.d.ts +4 -0
  455. package/f-connection-v2/utils/connection-line-builder/providers/index.d.ts +1 -0
  456. package/f-connection-v2/utils/create-connection-dom-identifier.d.ts +1 -0
  457. package/f-connection-v2/utils/create-connection-selection-dom-identifier.d.ts +1 -0
  458. package/f-connection-v2/utils/create-gradient-dom-identifier.d.ts +1 -0
  459. package/f-connection-v2/utils/create-gradient-dom-url.d.ts +1 -0
  460. package/f-connection-v2/utils/index.d.ts +6 -0
  461. package/f-connectors/f-connector-base.d.ts +1 -1
  462. package/f-connectors/f-node-input/f-node-input.directive.d.ts +1 -1
  463. package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +1 -1
  464. package/f-connectors/f-node-output/f-node-output.directive.d.ts +1 -1
  465. package/f-connectors/f-source-connector-base.d.ts +3 -0
  466. package/f-connectors/index.d.ts +0 -1
  467. package/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.d.ts +1 -0
  468. package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.d.ts +2 -1
  469. package/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.d.ts +4 -2
  470. package/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.d.ts +4 -2
  471. package/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.d.ts +1 -1
  472. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.d.ts +6 -7
  473. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.d.ts +2 -2
  474. package/f-draggable/f-connection/index.d.ts +1 -0
  475. package/f-draggable/f-connection/move-connection-waypoint/index.d.ts +3 -0
  476. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/index.d.ts +2 -0
  477. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize-request.d.ts +6 -0
  478. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize.d.ts +11 -0
  479. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-handler.d.ts +20 -0
  480. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/index.d.ts +2 -0
  481. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation-request.d.ts +8 -0
  482. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation.d.ts +19 -0
  483. package/f-draggable/f-connection/providers.d.ts +3 -2
  484. package/f-draggable/f-drag-handler/i-f-drag-handler.d.ts +2 -1
  485. package/f-draggable/f-draggable-base.d.ts +3 -1
  486. package/f-draggable/f-draggable.directive.d.ts +5 -1
  487. package/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.d.ts +2 -1
  488. package/f-draggable/f-node-move/connection-drag-handlers/source-connection.drag-handler.d.ts +1 -1
  489. package/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.d.ts +1 -1
  490. package/f-draggable/f-node-move/connection-drag-handlers/target-connection.drag-handler.d.ts +1 -1
  491. package/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler.d.ts +1 -1
  492. package/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.d.ts +1 -1
  493. package/f-draggable/f-node-move/move-drag-handler.d.ts +2 -2
  494. package/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.d.ts +1 -1
  495. package/f-draggable/f-node-move/move-preparation/index.d.ts +2 -2
  496. package/f-draggable/f-node-move/move-preparation/{f-node-move-preparation.request.d.ts → move-node-preparation-request.d.ts} +3 -3
  497. package/f-draggable/f-node-move/move-preparation/move-node-preparation.d.ts +17 -0
  498. package/f-draggable/f-node-move/move-summary-drag-handler.d.ts +3 -3
  499. package/f-draggable/f-node-move/providers.d.ts +2 -2
  500. package/f-draggable/index.d.ts +2 -1
  501. package/f-draggable/pinch-to-zoom/constants/constants.d.ts +5 -0
  502. package/f-draggable/pinch-to-zoom/constants/index.d.ts +1 -0
  503. package/f-draggable/pinch-to-zoom/finalize/index.d.ts +2 -0
  504. package/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize-request.d.ts +6 -0
  505. package/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize.d.ts +11 -0
  506. package/f-draggable/pinch-to-zoom/index.d.ts +6 -0
  507. package/f-draggable/pinch-to-zoom/pinch-to-zoom-handler.d.ts +21 -0
  508. package/f-draggable/pinch-to-zoom/preparation/index.d.ts +2 -0
  509. package/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation-request.d.ts +6 -0
  510. package/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation.d.ts +13 -0
  511. package/f-draggable/pinch-to-zoom/providers.d.ts +3 -0
  512. package/f-draggable/pinch-to-zoom/utils/calculate-touch-center.d.ts +2 -0
  513. package/f-draggable/pinch-to-zoom/utils/calculate-touch-distance.d.ts +1 -0
  514. package/f-draggable/pinch-to-zoom/utils/index.d.ts +2 -0
  515. package/f-draggable/providers.d.ts +1 -1
  516. package/f-draggable/single-select/index.d.ts +3 -0
  517. package/f-draggable/single-select/providers.d.ts +2 -0
  518. package/f-draggable/single-select/single-select-request.d.ts +8 -0
  519. package/f-draggable/{f-single-select/f-single-select.execution.d.ts → single-select/single-select.d.ts} +7 -6
  520. package/f-flow/f-flow.component.d.ts +1 -1
  521. package/f-flow.module.d.ts +36 -37
  522. package/f-line-alignment/f-line-alignment-base.d.ts +3 -4
  523. package/f-line-alignment/f-line-alignment.component.d.ts +3 -4
  524. package/f-minimap/f-minimap.component.d.ts +2 -2
  525. package/f-selection-area/domain/selection-area.drag-handle.d.ts +6 -5
  526. package/f-storage/f-components-store.d.ts +3 -4
  527. package/f-storage/features/listen-components-data-changed/index.d.ts +1 -1
  528. package/f-storage/features/listen-components-data-changed/{listen-data-changes.execution.d.ts → listen-data-changes.d.ts} +3 -3
  529. package/f-storage/features/listen-count-changes/index.d.ts +1 -1
  530. package/f-storage/features/listen-count-changes/{listen-count-changes.execution.d.ts → listen-count-changes.d.ts} +3 -3
  531. package/f-storage/features/listen-transform-changes/index.d.ts +2 -2
  532. package/f-storage/features/listen-transform-changes/{listen-transform-changes.execution.d.ts → listen-transform-changes.d.ts} +4 -4
  533. package/f-storage/features/notify-data-changed/index.d.ts +1 -1
  534. package/f-storage/features/notify-data-changed/{notify-data-changed.execution.d.ts → notify-data-changed.d.ts} +3 -3
  535. package/f-storage/features/notify-transform-changed/index.d.ts +2 -2
  536. package/f-storage/features/notify-transform-changed/{notify-transform-changed.execution.d.ts → notify-transform-changed.d.ts} +4 -4
  537. package/f-storage/index.d.ts +0 -1
  538. package/f-storage/providers.d.ts +6 -6
  539. package/f-zoom/f-zoom.directive.d.ts +0 -4
  540. package/fesm2022/foblex-flow.mjs +4296 -3863
  541. package/fesm2022/foblex-flow.mjs.map +1 -1
  542. package/package.json +1 -1
  543. package/public-api.d.ts +1 -0
  544. package/reactivity/index.d.ts +1 -0
  545. package/reactivity/take-one.d.ts +2 -0
  546. package/reactivity/types.d.ts +6 -1
  547. package/utils/calculate-pointer-in-flow.d.ts +4 -0
  548. package/utils/index.d.ts +1 -0
  549. package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.d.ts +0 -12
  550. package/domain/f-connection/calculate-connection-line-by-behavior/index.d.ts +0 -6
  551. package/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections-request.d.ts +0 -3
  552. package/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.d.ts +0 -14
  553. package/domain/f-flow/get-flow-state/get-flow-state-connections/index.d.ts +0 -2
  554. package/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.d.ts +0 -6
  555. package/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.d.ts +0 -15
  556. package/domain/f-flow/get-flow-state/get-flow-state-nodes/index.d.ts +0 -2
  557. package/domain/f-flow/get-flow-state/get-flow-state.execution.d.ts +0 -15
  558. package/domain/f-flow/get-flow-state/get-flow-state.request.d.ts +0 -3
  559. package/domain/f-flow/get-flow-state/i-f-flow-state-connection.d.ts +0 -9
  560. package/domain/f-flow/get-flow-state/providers.d.ts +0 -7
  561. package/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items-request.d.ts +0 -3
  562. package/domain/f-selection/get-can-be-selected-items/index.d.ts +0 -3
  563. package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.d.ts +0 -12
  564. package/domain/f-zoom/reset-zoom/reset-zoom.execution.d.ts +0 -13
  565. package/domain/i-map.d.ts +0 -1
  566. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.execution.mjs +0 -25
  567. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.execution.mjs +0 -25
  568. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.execution.mjs +0 -26
  569. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.execution.mjs +0 -25
  570. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.mjs +0 -16
  571. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.mjs +0 -145
  572. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/index.mjs +0 -7
  573. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.mjs +0 -2
  574. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-center-behavior.mjs +0 -12
  575. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-outbound-behavior.mjs +0 -31
  576. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/floating-behavior.mjs +0 -22
  577. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +0 -65
  578. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.execution.mjs +0 -25
  579. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.mjs +0 -33
  580. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.execution.mjs +0 -25
  581. package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.execution.mjs +0 -25
  582. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections-request.mjs +0 -4
  583. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.mjs +0 -35
  584. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/index.mjs +0 -3
  585. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.mjs +0 -8
  586. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +0 -58
  587. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/index.mjs +0 -3
  588. package/esm2022/domain/f-flow/get-flow-state/get-flow-state.execution.mjs +0 -39
  589. package/esm2022/domain/f-flow/get-flow-state/get-flow-state.request.mjs +0 -4
  590. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-connection.mjs +0 -2
  591. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-connector.mjs +0 -2
  592. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-node.mjs +0 -2
  593. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state.mjs +0 -2
  594. package/esm2022/domain/f-flow/get-flow-state/index.mjs +0 -10
  595. package/esm2022/domain/f-flow/get-flow-state/providers.mjs +0 -12
  596. package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items-request.mjs +0 -4
  597. package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +0 -66
  598. package/esm2022/domain/f-selection/get-can-be-selected-items/i-can-be-selected-element-and-rect.mjs +0 -2
  599. package/esm2022/domain/f-selection/get-can-be-selected-items/index.mjs +0 -4
  600. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.mjs +0 -28
  601. package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.mjs +0 -28
  602. package/esm2022/domain/f-zoom/reset-zoom/reset-zoom.execution.mjs +0 -30
  603. package/esm2022/domain/f-zoom/set-zoom/set-zoom.execution.mjs +0 -54
  604. package/esm2022/domain/i-map.mjs +0 -2
  605. package/esm2022/f-connection/common/domain/adaptive-curve-builder.mjs +0 -201
  606. package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.mjs +0 -10
  607. package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points.handler.mjs +0 -12
  608. package/esm2022/f-connection/common/domain/calculate-center-between-points/index.mjs +0 -3
  609. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.mjs +0 -8
  610. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.mjs +0 -35
  611. package/esm2022/f-connection/common/domain/calculate-connection-center/index.mjs +0 -3
  612. package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +0 -58
  613. package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +0 -161
  614. package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +0 -16
  615. package/esm2022/f-connection/common/domain/index.mjs +0 -7
  616. package/esm2022/f-connection/common/e-f-connection-behavior.mjs +0 -7
  617. package/esm2022/f-connection/common/e-f-connection-connectable-side.mjs +0 -12
  618. package/esm2022/f-connection/common/e-f-connection-type.mjs +0 -8
  619. package/esm2022/f-connection/common/f-connection-base.mjs +0 -121
  620. package/esm2022/f-connection/common/f-connection-identifiers.mjs +0 -22
  621. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +0 -65
  622. package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +0 -57
  623. package/esm2022/f-connection/common/f-connection-text/i-connection-text.mjs +0 -3
  624. package/esm2022/f-connection/common/f-connection-text/index.mjs +0 -4
  625. package/esm2022/f-connection/common/f-connection.injection-token.mjs +0 -3
  626. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.mjs +0 -37
  627. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.mjs +0 -37
  628. package/esm2022/f-connection/common/f-drag-handle/index.mjs +0 -3
  629. package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +0 -55
  630. package/esm2022/f-connection/common/f-gradient/i-connection-gradient.mjs +0 -3
  631. package/esm2022/f-connection/common/f-gradient/index.mjs +0 -3
  632. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +0 -45
  633. package/esm2022/f-connection/common/f-path/get-path-marker-id.mjs +0 -14
  634. package/esm2022/f-connection/common/f-path/i-connection-path.mjs +0 -3
  635. package/esm2022/f-connection/common/f-path/index.mjs +0 -4
  636. package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +0 -24
  637. package/esm2022/f-connection/common/f-selection/index.mjs +0 -2
  638. package/esm2022/f-connection/common/i-has-connection-color.mjs +0 -2
  639. package/esm2022/f-connection/common/i-has-connection-from-to.mjs +0 -2
  640. package/esm2022/f-connection/common/i-has-connection-text.mjs +0 -2
  641. package/esm2022/f-connection/common/index.mjs +0 -15
  642. package/esm2022/f-connection/f-connection-builder/f-connection-builders.mjs +0 -3
  643. package/esm2022/f-connection/f-connection-builder/f-connection-factory.mjs +0 -26
  644. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-request.mjs +0 -2
  645. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-response.mjs +0 -2
  646. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder.mjs +0 -2
  647. package/esm2022/f-connection/f-connection-builder/i-f-connection-factory-request.mjs +0 -2
  648. package/esm2022/f-connection/f-connection-builder/index.mjs +0 -7
  649. package/esm2022/f-connection/f-connection-center/f-connection-center.directive.mjs +0 -30
  650. package/esm2022/f-connection/f-connection-center/index.mjs +0 -2
  651. package/esm2022/f-connection/f-connection-content/f-connection-content.mjs +0 -102
  652. package/esm2022/f-connection/f-connection-content/index.mjs +0 -3
  653. package/esm2022/f-connection/f-connection-content/polyline-content-engine/i-polyline-content.mjs +0 -2
  654. package/esm2022/f-connection/f-connection-content/polyline-content-engine/index.mjs +0 -6
  655. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-align.mjs +0 -6
  656. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-layout-engine.mjs +0 -28
  657. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-sampler-result.mjs +0 -2
  658. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-tangent.mjs +0 -2
  659. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/index.mjs +0 -5
  660. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline-sampler.mjs +0 -143
  661. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline.mjs +0 -68
  662. package/esm2022/f-connection/f-marker/e-f-marker-type.mjs +0 -8
  663. package/esm2022/f-connection/f-marker/f-marker-base.mjs +0 -5
  664. package/esm2022/f-connection/f-marker/f-marker.directive.mjs +0 -51
  665. package/esm2022/f-connection/f-marker/index.mjs +0 -4
  666. package/esm2022/f-connectors/e-f-connectable-side.mjs +0 -12
  667. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +0 -82
  668. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.mjs +0 -10
  669. package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +0 -138
  670. package/esm2022/f-draggable/f-single-select/f-single-select.request.mjs +0 -10
  671. package/esm2022/f-draggable/f-single-select/index.mjs +0 -4
  672. package/esm2022/f-draggable/f-single-select/providers.mjs +0 -5
  673. package/esm2022/f-storage/f-connectors-store.mjs +0 -11
  674. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.execution.mjs +0 -23
  675. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.execution.mjs +0 -23
  676. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.execution.mjs +0 -23
  677. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.execution.mjs +0 -22
  678. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.execution.mjs +0 -22
  679. package/f-connection/common/domain/adaptive-curve-builder.d.ts +0 -102
  680. package/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.d.ts +0 -7
  681. package/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points.handler.d.ts +0 -6
  682. package/f-connection/common/domain/calculate-center-between-points/index.d.ts +0 -2
  683. package/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.d.ts +0 -6
  684. package/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.d.ts +0 -8
  685. package/f-connection/common/domain/calculate-connection-center/index.d.ts +0 -2
  686. package/f-connection/common/domain/f-bezier.path-builder.d.ts +0 -6
  687. package/f-connection/common/domain/f-segment.path-builder.d.ts +0 -11
  688. package/f-connection/common/domain/index.d.ts +0 -6
  689. package/f-connection/common/f-connection-identifiers.d.ts +0 -8
  690. package/f-connection/common/f-connection-text/f-connection-text-path.directive.d.ts +0 -18
  691. package/f-connection/common/f-connection-text/f-connection-text.component.d.ts +0 -16
  692. package/f-connection/common/f-connection-text/i-connection-text.d.ts +0 -7
  693. package/f-connection/common/f-connection-text/index.d.ts +0 -3
  694. package/f-connection/common/f-connection.injection-token.d.ts +0 -2
  695. package/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.d.ts +0 -13
  696. package/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.d.ts +0 -13
  697. package/f-connection/common/f-drag-handle/index.d.ts +0 -2
  698. package/f-connection/common/f-gradient/i-connection-gradient.d.ts +0 -8
  699. package/f-connection/common/f-gradient/index.d.ts +0 -2
  700. package/f-connection/common/f-path/f-connection-path.component.d.ts +0 -15
  701. package/f-connection/common/f-path/get-path-marker-id.d.ts +0 -4
  702. package/f-connection/common/f-path/i-connection-path.d.ts +0 -9
  703. package/f-connection/common/f-path/index.d.ts +0 -3
  704. package/f-connection/common/f-selection/f-connection-selection.component.d.ts +0 -10
  705. package/f-connection/common/f-selection/index.d.ts +0 -1
  706. package/f-connection/common/i-has-connection-color.d.ts +0 -5
  707. package/f-connection/common/i-has-connection-from-to.d.ts +0 -6
  708. package/f-connection/common/i-has-connection-text.d.ts +0 -4
  709. package/f-connection/common/index.d.ts +0 -14
  710. package/f-connection/f-connection-builder/f-connection-builders.d.ts +0 -4
  711. package/f-connection/f-connection-builder/f-connection-factory.d.ts +0 -9
  712. package/f-connection/f-connection-builder/i-f-connection-factory-request.d.ts +0 -6
  713. package/f-connection/f-connection-center/f-connection-center.directive.d.ts +0 -10
  714. package/f-connection/f-connection-center/index.d.ts +0 -1
  715. package/f-connection/f-connection-content/index.d.ts +0 -2
  716. package/f-connection/f-marker/f-marker.directive.d.ts +0 -18
  717. package/f-connection/f-marker/index.d.ts +0 -3
  718. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.d.ts +0 -20
  719. package/f-draggable/f-single-select/f-single-select.request.d.ts +0 -8
  720. package/f-draggable/f-single-select/index.d.ts +0 -3
  721. package/f-draggable/f-single-select/providers.d.ts +0 -2
  722. package/f-storage/f-connectors-store.d.ts +0 -6
  723. /package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state-node.d.ts +0 -0
  724. /package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state.d.ts +0 -0
  725. /package/domain/f-selection/{get-can-be-selected-items → calculate-selectable-items}/i-can-be-selected-element-and-rect.d.ts +0 -0
  726. /package/f-canvas/domain/{f-canvas-change.event.d.ts → f-canvas-change-event.d.ts} +0 -0
  727. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/i-polyline-content.d.ts +0 -0
  728. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/index.d.ts +0 -0
  729. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-align.d.ts +0 -0
  730. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-place.d.ts +0 -0
  731. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/i-sampler-result.d.ts +0 -0
  732. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/i-tangent.d.ts +0 -0
  733. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/index.d.ts +0 -0
  734. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/polyline-sampler.d.ts +0 -0
  735. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/polyline.d.ts +0 -0
  736. /package/{f-connection/f-marker → f-connection-v2/components/connection-marker/enums}/e-f-marker-type.d.ts +0 -0
  737. /package/{f-connectors → f-connection-v2/enums}/e-f-connectable-side.d.ts +0 -0
  738. /package/{f-connection/common → f-connection-v2/enums}/e-f-connection-type.d.ts +0 -0
  739. /package/{f-connection/common → f-connection-v2/utils/connection-behaviour/enums}/e-f-connection-behavior.d.ts +0 -0
  740. /package/{f-connection/common → f-connection-v2/utils/connection-behaviour/enums}/e-f-connection-connectable-side.d.ts +0 -0
  741. /package/f-storage/features/listen-transform-changes/{listen-transform-changes.request.d.ts → listen-transform-changes-request.d.ts} +0 -0
  742. /package/f-storage/features/notify-transform-changed/{notify-transform-changed.request.d.ts → notify-transform-changed-request.d.ts} +0 -0
@@ -0,0 +1,6 @@
1
+ export * from './enums';
2
+ export * from './models';
3
+ export * from './utils';
4
+ export * from './connection-behaviour-builder';
5
+ export * from './connection-behaviour-builder-request';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWJlaGF2aW91ci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUV4QixjQUFjLFVBQVUsQ0FBQztBQUV6QixjQUFjLFNBQVMsQ0FBQztBQUV4QixjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VudW1zJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb25uZWN0aW9uLWJlaGF2aW91ci1idWlsZGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb25uZWN0aW9uLWJlaGF2aW91ci1idWlsZGVyLXJlcXVlc3QnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1jYWxjdWxhdGUtYmVoYXZpb3ItcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL3V0aWxzL2Nvbm5lY3Rpb24tYmVoYXZpb3VyL21vZGVscy9pLWNhbGN1bGF0ZS1iZWhhdmlvci1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDYWxjdWxhdGVCZWhhdmlvclJlcXVlc3Qge1xuICBzb3VyY2VSZWN0OiBJUm91bmRlZFJlY3Q7XG4gIHRhcmdldFJlY3Q6IElSb3VuZGVkUmVjdDtcbiAgc291cmNlQ29ubmVjdGFibGVTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZTtcbiAgdGFyZ2V0Q29ubmVjdGFibGVTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './i-calculate-behavior-request';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWJlaGF2aW91ci9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaS1jYWxjdWxhdGUtYmVoYXZpb3ItcmVxdWVzdCc7XG4iXX0=
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Fixed center behavior calculates the connection line
3
+ * It constructs a line between the gravity centers of the connector rectangles
4
+ * @param payload
5
+ */
6
+ export function fixedCenterBehavior({ sourceRect, targetRect }) {
7
+ return {
8
+ point1: sourceRect.gravityCenter,
9
+ point2: targetRect.gravityCenter,
10
+ };
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtY2VudGVyLWJlaGF2aW9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1iZWhhdmlvdXIvdXRpbHMvZml4ZWQtY2VudGVyLWJlaGF2aW9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUE2QjtJQUN2RixPQUFPO1FBQ0wsTUFBTSxFQUFFLFVBQVUsQ0FBQyxhQUFhO1FBQ2hDLE1BQU0sRUFBRSxVQUFVLENBQUMsYUFBYTtLQUNqQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElMaW5lIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJQ2FsY3VsYXRlQmVoYXZpb3JSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWxzJztcblxuLyoqXG4gKiBGaXhlZCBjZW50ZXIgYmVoYXZpb3IgY2FsY3VsYXRlcyB0aGUgY29ubmVjdGlvbiBsaW5lXG4gKiBJdCBjb25zdHJ1Y3RzIGEgbGluZSBiZXR3ZWVuIHRoZSBncmF2aXR5IGNlbnRlcnMgb2YgdGhlIGNvbm5lY3RvciByZWN0YW5nbGVzXG4gKiBAcGFyYW0gcGF5bG9hZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZml4ZWRDZW50ZXJCZWhhdmlvcih7IHNvdXJjZVJlY3QsIHRhcmdldFJlY3QgfTogSUNhbGN1bGF0ZUJlaGF2aW9yUmVxdWVzdCk6IElMaW5lIHtcbiAgcmV0dXJuIHtcbiAgICBwb2ludDE6IHNvdXJjZVJlY3QuZ3Jhdml0eUNlbnRlcixcbiAgICBwb2ludDI6IHRhcmdldFJlY3QuZ3Jhdml0eUNlbnRlcixcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { EFConnectableSide } from '../../../enums';
2
+ /**
3
+ * Fixed outbound behavior calculates the connection line
4
+ * It constructs a line between the specified sides of the output and input rectangles
5
+ * @param payload
6
+ */
7
+ export function fixedOutboundBehavior({ sourceRect, sourceConnectableSide, targetRect, targetConnectableSide, }) {
8
+ return {
9
+ point1: _getPosition(sourceRect, sourceConnectableSide === EFConnectableSide.AUTO
10
+ ? EFConnectableSide.BOTTOM
11
+ : sourceConnectableSide),
12
+ point2: _getPosition(targetRect, targetConnectableSide === EFConnectableSide.AUTO
13
+ ? EFConnectableSide.TOP
14
+ : targetConnectableSide),
15
+ };
16
+ }
17
+ function _getPosition(rect, side) {
18
+ switch (side) {
19
+ case EFConnectableSide.TOP:
20
+ return { x: rect.x + rect.width / 2, y: rect.y };
21
+ case EFConnectableSide.BOTTOM:
22
+ return { x: rect.x + rect.width / 2, y: rect.y + rect.height };
23
+ case EFConnectableSide.LEFT:
24
+ return { x: rect.x, y: rect.y + rect.height / 2 };
25
+ case EFConnectableSide.RIGHT:
26
+ return { x: rect.x + rect.width, y: rect.y + rect.height / 2 };
27
+ default:
28
+ throw new Error(`Unknown side: ${side}`);
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtb3V0Ym91bmQtYmVoYXZpb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWJlaGF2aW91ci91dGlscy9maXhlZC1vdXRib3VuZC1iZWhhdmlvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEVBQ3BDLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsVUFBVSxFQUNWLHFCQUFxQixHQUNLO0lBQzFCLE9BQU87UUFDTCxNQUFNLEVBQUUsWUFBWSxDQUNsQixVQUFVLEVBQ1YscUJBQXFCLEtBQUssaUJBQWlCLENBQUMsSUFBSTtZQUM5QyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTTtZQUMxQixDQUFDLENBQUMscUJBQXFCLENBQzFCO1FBQ0QsTUFBTSxFQUFFLFlBQVksQ0FDbEIsVUFBVSxFQUNWLHFCQUFxQixLQUFLLGlCQUFpQixDQUFDLElBQUk7WUFDOUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUc7WUFDdkIsQ0FBQyxDQUFDLHFCQUFxQixDQUMxQjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBVyxFQUFFLElBQXVCO0lBQ3hELFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDYixLQUFLLGlCQUFpQixDQUFDLEdBQUc7WUFDeEIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsS0FBSyxpQkFBaUIsQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakUsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO1lBQ3pCLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3BELEtBQUssaUJBQWlCLENBQUMsS0FBSztZQUMxQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pFO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElMaW5lLCBJUG9pbnQsIElSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJQ2FsY3VsYXRlQmVoYXZpb3JSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xuXG4vKipcbiAqIEZpeGVkIG91dGJvdW5kIGJlaGF2aW9yIGNhbGN1bGF0ZXMgdGhlIGNvbm5lY3Rpb24gbGluZVxuICogSXQgY29uc3RydWN0cyBhIGxpbmUgYmV0d2VlbiB0aGUgc3BlY2lmaWVkIHNpZGVzIG9mIHRoZSBvdXRwdXQgYW5kIGlucHV0IHJlY3RhbmdsZXNcbiAqIEBwYXJhbSBwYXlsb2FkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXhlZE91dGJvdW5kQmVoYXZpb3Ioe1xuICBzb3VyY2VSZWN0LFxuICBzb3VyY2VDb25uZWN0YWJsZVNpZGUsXG4gIHRhcmdldFJlY3QsXG4gIHRhcmdldENvbm5lY3RhYmxlU2lkZSxcbn06IElDYWxjdWxhdGVCZWhhdmlvclJlcXVlc3QpOiBJTGluZSB7XG4gIHJldHVybiB7XG4gICAgcG9pbnQxOiBfZ2V0UG9zaXRpb24oXG4gICAgICBzb3VyY2VSZWN0LFxuICAgICAgc291cmNlQ29ubmVjdGFibGVTaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5BVVRPXG4gICAgICAgID8gRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NXG4gICAgICAgIDogc291cmNlQ29ubmVjdGFibGVTaWRlLFxuICAgICksXG4gICAgcG9pbnQyOiBfZ2V0UG9zaXRpb24oXG4gICAgICB0YXJnZXRSZWN0LFxuICAgICAgdGFyZ2V0Q29ubmVjdGFibGVTaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5BVVRPXG4gICAgICAgID8gRUZDb25uZWN0YWJsZVNpZGUuVE9QXG4gICAgICAgIDogdGFyZ2V0Q29ubmVjdGFibGVTaWRlLFxuICAgICksXG4gIH07XG59XG5cbmZ1bmN0aW9uIF9nZXRQb3NpdGlvbihyZWN0OiBJUmVjdCwgc2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiBJUG9pbnQge1xuICBzd2l0Y2ggKHNpZGUpIHtcbiAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLlRPUDpcbiAgICAgIHJldHVybiB7IHg6IHJlY3QueCArIHJlY3Qud2lkdGggLyAyLCB5OiByZWN0LnkgfTtcbiAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLkJPVFRPTTpcbiAgICAgIHJldHVybiB7IHg6IHJlY3QueCArIHJlY3Qud2lkdGggLyAyLCB5OiByZWN0LnkgKyByZWN0LmhlaWdodCB9O1xuICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuTEVGVDpcbiAgICAgIHJldHVybiB7IHg6IHJlY3QueCwgeTogcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyIH07XG4gICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5SSUdIVDpcbiAgICAgIHJldHVybiB7IHg6IHJlY3QueCArIHJlY3Qud2lkdGgsIHk6IHJlY3QueSArIHJlY3QuaGVpZ2h0IC8gMiB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2lkZTogJHtzaWRlfWApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { GetIntersections } from '@foblex/2d';
2
+ /**
3
+ * Floating behavior calculates the connection line
4
+ * It constructs a line between the intersections of the connectors rectangles and line from the centers of the connector rectangles
5
+ * @param payload
6
+ */
7
+ export function floatingBehavior({ sourceRect, targetRect }) {
8
+ return _getIntersectionsLine(_fromRoundedRectIntersections(sourceRect, targetRect), _toRoundedRectIntersections(sourceRect, targetRect), sourceRect, targetRect);
9
+ }
10
+ function _fromRoundedRectIntersections(sourceRect, targetRect) {
11
+ return GetIntersections.getRoundedRectIntersections(sourceRect.gravityCenter, targetRect.gravityCenter, sourceRect)[0];
12
+ }
13
+ function _toRoundedRectIntersections(sourceRect, targetRect) {
14
+ return GetIntersections.getRoundedRectIntersections(targetRect.gravityCenter, sourceRect.gravityCenter, targetRect)[0];
15
+ }
16
+ function _getIntersectionsLine(from, to, sourceRect, targetRect) {
17
+ return {
18
+ point1: from ? from : sourceRect.gravityCenter,
19
+ point2: to ? to : targetRect.gravityCenter,
20
+ };
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctYmVoYXZpb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWJlaGF2aW91ci91dGlscy9mbG9hdGluZy1iZWhhdmlvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQStCLE1BQU0sWUFBWSxDQUFDO0FBRzNFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUE2QjtJQUNwRixPQUFPLHFCQUFxQixDQUMxQiw2QkFBNkIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQ3JELDJCQUEyQixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFDbkQsVUFBVSxFQUNWLFVBQVUsQ0FDWCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQUMsVUFBd0IsRUFBRSxVQUF3QjtJQUN2RixPQUFPLGdCQUFnQixDQUFDLDJCQUEyQixDQUNqRCxVQUFVLENBQUMsYUFBYSxFQUN4QixVQUFVLENBQUMsYUFBYSxFQUN4QixVQUFVLENBQ1gsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxTQUFTLDJCQUEyQixDQUFDLFVBQXdCLEVBQUUsVUFBd0I7SUFDckYsT0FBTyxnQkFBZ0IsQ0FBQywyQkFBMkIsQ0FDakQsVUFBVSxDQUFDLGFBQWEsRUFDeEIsVUFBVSxDQUFDLGFBQWEsRUFDeEIsVUFBVSxDQUNYLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FDNUIsSUFBWSxFQUNaLEVBQVUsRUFDVixVQUF3QixFQUN4QixVQUF3QjtJQUV4QixPQUFPO1FBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYTtRQUM5QyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhO0tBQzNDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0SW50ZXJzZWN0aW9ucywgSUxpbmUsIElQb2ludCwgSVJvdW5kZWRSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJQ2FsY3VsYXRlQmVoYXZpb3JSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWxzJztcblxuLyoqXG4gKiBGbG9hdGluZyBiZWhhdmlvciBjYWxjdWxhdGVzIHRoZSBjb25uZWN0aW9uIGxpbmVcbiAqIEl0IGNvbnN0cnVjdHMgYSBsaW5lIGJldHdlZW4gdGhlIGludGVyc2VjdGlvbnMgb2YgdGhlIGNvbm5lY3RvcnMgcmVjdGFuZ2xlcyBhbmQgbGluZSBmcm9tIHRoZSBjZW50ZXJzIG9mIHRoZSBjb25uZWN0b3IgcmVjdGFuZ2xlc1xuICogQHBhcmFtIHBheWxvYWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZsb2F0aW5nQmVoYXZpb3IoeyBzb3VyY2VSZWN0LCB0YXJnZXRSZWN0IH06IElDYWxjdWxhdGVCZWhhdmlvclJlcXVlc3QpOiBJTGluZSB7XG4gIHJldHVybiBfZ2V0SW50ZXJzZWN0aW9uc0xpbmUoXG4gICAgX2Zyb21Sb3VuZGVkUmVjdEludGVyc2VjdGlvbnMoc291cmNlUmVjdCwgdGFyZ2V0UmVjdCksXG4gICAgX3RvUm91bmRlZFJlY3RJbnRlcnNlY3Rpb25zKHNvdXJjZVJlY3QsIHRhcmdldFJlY3QpLFxuICAgIHNvdXJjZVJlY3QsXG4gICAgdGFyZ2V0UmVjdCxcbiAgKTtcbn1cblxuZnVuY3Rpb24gX2Zyb21Sb3VuZGVkUmVjdEludGVyc2VjdGlvbnMoc291cmNlUmVjdDogSVJvdW5kZWRSZWN0LCB0YXJnZXRSZWN0OiBJUm91bmRlZFJlY3QpIHtcbiAgcmV0dXJuIEdldEludGVyc2VjdGlvbnMuZ2V0Um91bmRlZFJlY3RJbnRlcnNlY3Rpb25zKFxuICAgIHNvdXJjZVJlY3QuZ3Jhdml0eUNlbnRlcixcbiAgICB0YXJnZXRSZWN0LmdyYXZpdHlDZW50ZXIsXG4gICAgc291cmNlUmVjdCxcbiAgKVswXTtcbn1cblxuZnVuY3Rpb24gX3RvUm91bmRlZFJlY3RJbnRlcnNlY3Rpb25zKHNvdXJjZVJlY3Q6IElSb3VuZGVkUmVjdCwgdGFyZ2V0UmVjdDogSVJvdW5kZWRSZWN0KSB7XG4gIHJldHVybiBHZXRJbnRlcnNlY3Rpb25zLmdldFJvdW5kZWRSZWN0SW50ZXJzZWN0aW9ucyhcbiAgICB0YXJnZXRSZWN0LmdyYXZpdHlDZW50ZXIsXG4gICAgc291cmNlUmVjdC5ncmF2aXR5Q2VudGVyLFxuICAgIHRhcmdldFJlY3QsXG4gIClbMF07XG59XG5cbmZ1bmN0aW9uIF9nZXRJbnRlcnNlY3Rpb25zTGluZShcbiAgZnJvbTogSVBvaW50LFxuICB0bzogSVBvaW50LFxuICBzb3VyY2VSZWN0OiBJUm91bmRlZFJlY3QsXG4gIHRhcmdldFJlY3Q6IElSb3VuZGVkUmVjdCxcbik6IElMaW5lIHtcbiAgcmV0dXJuIHtcbiAgICBwb2ludDE6IGZyb20gPyBmcm9tIDogc291cmNlUmVjdC5ncmF2aXR5Q2VudGVyLFxuICAgIHBvaW50MjogdG8gPyB0byA6IHRhcmdldFJlY3QuZ3Jhdml0eUNlbnRlcixcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './fixed-center-behavior';
2
+ export * from './fixed-outbound-behavior';
3
+ export * from './floating-behavior';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWJlaGF2aW91ci91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZml4ZWQtY2VudGVyLWJlaGF2aW9yJztcbmV4cG9ydCAqIGZyb20gJy4vZml4ZWQtb3V0Ym91bmQtYmVoYXZpb3InO1xuZXhwb3J0ICogZnJvbSAnLi9mbG9hdGluZy1iZWhhdmlvcic7XG4iXX0=
@@ -0,0 +1,74 @@
1
+ import { buildConnectionAnchors, calculateCurveCandidates, createMultiCubicPath, sampleMultiCubicUniform, } from '../utils';
2
+ import { EFConnectableSide } from '../../../../enums';
3
+ export class CalculateAdaptiveCurveData {
4
+ static _dir(side) {
5
+ switch (side) {
6
+ case EFConnectableSide.LEFT:
7
+ return { x: -1, y: 0 };
8
+ case EFConnectableSide.RIGHT:
9
+ return { x: 1, y: 0 };
10
+ case EFConnectableSide.TOP:
11
+ return { x: 0, y: -1 };
12
+ case EFConnectableSide.BOTTOM:
13
+ return { x: 0, y: 1 };
14
+ case EFConnectableSide.AUTO:
15
+ return { x: 0, y: 0 };
16
+ }
17
+ return { x: 0, y: 0 };
18
+ }
19
+ static _isHorizontal(side) {
20
+ return side === EFConnectableSide.LEFT || side === EFConnectableSide.RIGHT;
21
+ }
22
+ static _handleLength(p0, p3, side, offset) {
23
+ const dx = Math.abs(p3.x - p0.x);
24
+ const dy = Math.abs(p3.y - p0.y);
25
+ const d = Math.hypot(dx, dy);
26
+ const along = side === EFConnectableSide.AUTO ? Math.max(dx, dy) : this._isHorizontal(side) ? dx : dy;
27
+ const MIN = Math.max(8, offset);
28
+ const MAX = offset + 0.5 * d;
29
+ const len = offset * 1.05 + along * 0.3;
30
+ return Math.min(MAX, Math.max(MIN, len));
31
+ }
32
+ static _softControl(side, source, target, handle) {
33
+ const v = this._dir(side);
34
+ const dx = target.x - source.x;
35
+ const dy = target.y - source.y;
36
+ const dist = Math.hypot(dx, dy) || 1;
37
+ const tx = dx / dist;
38
+ const ty = dy / dist;
39
+ if (side === EFConnectableSide.AUTO) {
40
+ return { x: source.x + tx * handle, y: source.y + ty * handle };
41
+ }
42
+ const dot = v.x * tx + v.y * ty;
43
+ const baseBlend = 0.12;
44
+ const extra = Math.max(0, -dot) * 0.08;
45
+ const blend = Math.min(0.2, baseBlend + extra);
46
+ const dirX = v.x * (1 - blend) + tx * blend;
47
+ const dirY = v.y * (1 - blend) + ty * blend;
48
+ const len = Math.hypot(dirX, dirY) || 1;
49
+ return { x: source.x + (dirX / len) * handle, y: source.y + (dirY / len) * handle };
50
+ }
51
+ handle({ source, sourceSide, target, targetSide, offset, waypoints, }) {
52
+ const clampedOffset = Math.max(0, offset ?? 0);
53
+ const anchors = buildConnectionAnchors(source, target, waypoints);
54
+ const segments = [];
55
+ for (let i = 0; i < anchors.length - 1; i++) {
56
+ const a = anchors[i];
57
+ const b = anchors[i + 1];
58
+ const h0 = CalculateAdaptiveCurveData._handleLength(a, b, sourceSide, clampedOffset);
59
+ const h3 = CalculateAdaptiveCurveData._handleLength(b, a, targetSide, clampedOffset);
60
+ const c1 = CalculateAdaptiveCurveData._softControl(sourceSide, a, b, h0);
61
+ const c2 = CalculateAdaptiveCurveData._softControl(targetSide, b, a, h3);
62
+ segments.push({ p0: a, c1, c2, p3: b, chainIndex: i });
63
+ }
64
+ const points = sampleMultiCubicUniform(segments, 12);
65
+ return {
66
+ path: createMultiCubicPath(segments),
67
+ secondPoint: segments[0]?.c1 ?? source,
68
+ penultimatePoint: segments[segments.length - 1]?.c2 ?? target,
69
+ points,
70
+ candidates: calculateCurveCandidates(segments),
71
+ };
72
+ }
73
+ }
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWFkYXB0aXZlLWN1cnZlLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy9hZGFwdGl2ZS1jdXJ2ZS9jYWxjdWxhdGUtYWRhcHRpdmUtY3VydmUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4QixvQkFBb0IsRUFFcEIsdUJBQXVCLEdBQ3hCLE1BQU0sVUFBVSxDQUFDO0FBTWxCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE1BQU0sT0FBTywwQkFBMEI7SUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUF1QjtRQUN6QyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO2dCQUN6QixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN6QixLQUFLLGlCQUFpQixDQUFDLEtBQUs7Z0JBQzFCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN4QixLQUFLLGlCQUFpQixDQUFDLEdBQUc7Z0JBQ3hCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pCLEtBQUssaUJBQWlCLENBQUMsTUFBTTtnQkFDM0IsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3hCLEtBQUssaUJBQWlCLENBQUMsSUFBSTtnQkFDekIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FB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Q0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXpCLE1BQU0sRUFBRSxHQUFHLDBCQUEwQixDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUNyRixNQUFNLEVBQUUsR0FBRywwQkFBMEIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFFckYsTUFBTSxFQUFFLEdBQUcsMEJBQTBCLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sRUFBRSxHQUFHLDBCQUEwQixDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUV6RSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLG9CQUFvQixDQUFDLFFBQVEsQ0FBQztZQUNwQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxNQUFNO1lBQ3RDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxNQUFNO1lBQzdELE1BQU07WUFDTixVQUFVLEVBQUUsd0JBQXdCLENBQUMsUUFBUSxDQUFDO1NBQy9DLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7XG4gIGJ1aWxkQ29ubmVjdGlvbkFuY2hvcnMsXG4gIGNhbGN1bGF0ZUN1cnZlQ2FuZGlkYXRlcyxcbiAgY3JlYXRlTXVsdGlDdWJpY1BhdGgsXG4gIElDdWJpY1NlZ21lbnQsXG4gIHNhbXBsZU11bHRpQ3ViaWNVbmlmb3JtLFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBJRkNvbm5lY3Rpb25CdWlsZGVyLFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCxcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVBZGFwdGl2ZUN1cnZlRGF0YSBpbXBsZW1lbnRzIElGQ29ubmVjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIHN0YXRpYyBfZGlyKHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogSVBvaW50IHtcbiAgICBzd2l0Y2ggKHNpZGUpIHtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuTEVGVDpcbiAgICAgICAgcmV0dXJuIHsgeDogLTEsIHk6IDAgfTtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuUklHSFQ6XG4gICAgICAgIHJldHVybiB7IHg6IDEsIHk6IDAgfTtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuVE9QOlxuICAgICAgICByZXR1cm4geyB4OiAwLCB5OiAtMSB9O1xuICAgICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT006XG4gICAgICAgIHJldHVybiB7IHg6IDAsIHk6IDEgfTtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuQVVUTzpcbiAgICAgICAgcmV0dXJuIHsgeDogMCwgeTogMCB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHg6IDAsIHk6IDAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9pc0hvcml6b250YWwoc2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuTEVGVCB8fCBzaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5SSUdIVDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVMZW5ndGgoXG4gICAgcDA6IElQb2ludCxcbiAgICBwMzogSVBvaW50LFxuICAgIHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLFxuICAgIG9mZnNldDogbnVtYmVyLFxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IGR4ID0gTWF0aC5hYnMocDMueCAtIHAwLngpO1xuICAgIGNvbnN0IGR5ID0gTWF0aC5hYnMocDMueSAtIHAwLnkpO1xuICAgIGNvbnN0IGQgPSBNYXRoLmh5cG90KGR4LCBkeSk7XG5cbiAgICBjb25zdCBhbG9uZyA9XG4gICAgICBzaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5BVVRPID8gTWF0aC5tYXgoZHgsIGR5KSA6IHRoaXMuX2lzSG9yaXpvbnRhbChzaWRlKSA/IGR4IDogZHk7XG5cbiAgICBjb25zdCBNSU4gPSBNYXRoLm1heCg4LCBvZmZzZXQpO1xuICAgIGNvbnN0IE1BWCA9IG9mZnNldCArIDAuNSAqIGQ7XG4gICAgY29uc3QgbGVuID0gb2Zmc2V0ICogMS4wNSArIGFsb25nICogMC4zO1xuXG4gICAgcmV0dXJuIE1hdGgubWluKE1BWCwgTWF0aC5tYXgoTUlOLCBsZW4pKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9zb2Z0Q29udHJvbChcbiAgICBzaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgICBzb3VyY2U6IElQb2ludCxcbiAgICB0YXJnZXQ6IElQb2ludCxcbiAgICBoYW5kbGU6IG51bWJlcixcbiAgKTogSVBvaW50IHtcbiAgICBjb25zdCB2ID0gdGhpcy5fZGlyKHNpZGUpO1xuXG4gICAgY29uc3QgZHggPSB0YXJnZXQueCAtIHNvdXJjZS54O1xuICAgIGNvbnN0IGR5ID0gdGFyZ2V0LnkgLSBzb3VyY2UueTtcbiAgICBjb25zdCBkaXN0ID0gTWF0aC5oeXBvdChkeCwgZHkpIHx8IDE7XG4gICAgY29uc3QgdHggPSBkeCAvIGRpc3Q7XG4gICAgY29uc3QgdHkgPSBkeSAvIGRpc3Q7XG5cbiAgICBpZiAoc2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuQVVUTykge1xuICAgICAgcmV0dXJuIHsgeDogc291cmNlLnggKyB0eCAqIGhhbmRsZSwgeTogc291cmNlLnkgKyB0eSAqIGhhbmRsZSB9O1xuICAgIH1cblxuICAgIGNvbnN0IGRvdCA9IHYueCAqIHR4ICsgdi55ICogdHk7XG5cbiAgICBjb25zdCBiYXNlQmxlbmQgPSAwLjEyO1xuICAgIGNvbnN0IGV4dHJhID0gTWF0aC5tYXgoMCwgLWRvdCkgKiAwLjA4O1xuICAgIGNvbnN0IGJsZW5kID0gTWF0aC5taW4oMC4yLCBiYXNlQmxlbmQgKyBleHRyYSk7XG5cbiAgICBjb25zdCBkaXJYID0gdi54ICogKDEgLSBibGVuZCkgKyB0eCAqIGJsZW5kO1xuICAgIGNvbnN0IGRpclkgPSB2LnkgKiAoMSAtIGJsZW5kKSArIHR5ICogYmxlbmQ7XG4gICAgY29uc3QgbGVuID0gTWF0aC5oeXBvdChkaXJYLCBkaXJZKSB8fCAxO1xuXG4gICAgcmV0dXJuIHsgeDogc291cmNlLnggKyAoZGlyWCAvIGxlbikgKiBoYW5kbGUsIHk6IHNvdXJjZS55ICsgKGRpclkgLyBsZW4pICogaGFuZGxlIH07XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHtcbiAgICBzb3VyY2UsXG4gICAgc291cmNlU2lkZSxcbiAgICB0YXJnZXQsXG4gICAgdGFyZ2V0U2lkZSxcbiAgICBvZmZzZXQsXG4gICAgd2F5cG9pbnRzLFxuICB9OiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCk6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZSB7XG4gICAgY29uc3QgY2xhbXBlZE9mZnNldCA9IE1hdGgubWF4KDAsIG9mZnNldCA/PyAwKTtcblxuICAgIGNvbnN0IGFuY2hvcnMgPSBidWlsZENvbm5lY3Rpb25BbmNob3JzKHNvdXJjZSwgdGFyZ2V0LCB3YXlwb2ludHMpO1xuXG4gICAgY29uc3Qgc2VnbWVudHM6IElDdWJpY1NlZ21lbnRbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbmNob3JzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgY29uc3QgYSA9IGFuY2hvcnNbaV07XG4gICAgICBjb25zdCBiID0gYW5jaG9yc1tpICsgMV07XG5cbiAgICAgIGNvbnN0IGgwID0gQ2FsY3VsYXRlQWRhcHRpdmVDdXJ2ZURhdGEuX2hhbmRsZUxlbmd0aChhLCBiLCBzb3VyY2VTaWRlLCBjbGFtcGVkT2Zmc2V0KTtcbiAgICAgIGNvbnN0IGgzID0gQ2FsY3VsYXRlQWRhcHRpdmVDdXJ2ZURhdGEuX2hhbmRsZUxlbmd0aChiLCBhLCB0YXJnZXRTaWRlLCBjbGFtcGVkT2Zmc2V0KTtcblxuICAgICAgY29uc3QgYzEgPSBDYWxjdWxhdGVBZGFwdGl2ZUN1cnZlRGF0YS5fc29mdENvbnRyb2woc291cmNlU2lkZSwgYSwgYiwgaDApO1xuICAgICAgY29uc3QgYzIgPSBDYWxjdWxhdGVBZGFwdGl2ZUN1cnZlRGF0YS5fc29mdENvbnRyb2wodGFyZ2V0U2lkZSwgYiwgYSwgaDMpO1xuXG4gICAgICBzZWdtZW50cy5wdXNoKHsgcDA6IGEsIGMxLCBjMiwgcDM6IGIsIGNoYWluSW5kZXg6IGkgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9pbnRzID0gc2FtcGxlTXVsdGlDdWJpY1VuaWZvcm0oc2VnbWVudHMsIDEyKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwYXRoOiBjcmVhdGVNdWx0aUN1YmljUGF0aChzZWdtZW50cyksXG4gICAgICBzZWNvbmRQb2ludDogc2VnbWVudHNbMF0/LmMxID8/IHNvdXJjZSxcbiAgICAgIHBlbnVsdGltYXRlUG9pbnQ6IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdPy5jMiA/PyB0YXJnZXQsXG4gICAgICBwb2ludHMsXG4gICAgICBjYW5kaWRhdGVzOiBjYWxjdWxhdGVDdXJ2ZUNhbmRpZGF0ZXMoc2VnbWVudHMpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './calculate-adaptive-curve-data';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy9hZGFwdGl2ZS1jdXJ2ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtYWRhcHRpdmUtY3VydmUtZGF0YSc7XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { buildConnectionAnchors, calculateCurveCandidates, createMultiCubicPath, sampleMultiCubicUniform, } from '../utils';
2
+ import { EFConnectableSide } from '../../../../enums';
3
+ export class CalculateBezierCurveData {
4
+ handle({ source, sourceSide, target, targetSide, offset, waypoints, }) {
5
+ const anchors = buildConnectionAnchors(source, target, waypoints);
6
+ const segments = [];
7
+ for (let i = 0; i < anchors.length - 1; i++) {
8
+ const a = anchors[i];
9
+ const b = anchors[i + 1];
10
+ const c1 = getAnglePoint(sourceSide, a, b, offset ?? 0);
11
+ const c2 = getAnglePoint(targetSide, b, a, offset ?? 0);
12
+ segments.push({ p0: a, c1, c2, p3: b, chainIndex: i });
13
+ }
14
+ const points = sampleMultiCubicUniform(segments, 12);
15
+ return {
16
+ path: createMultiCubicPath(segments),
17
+ secondPoint: segments[0]?.c1 ?? source,
18
+ penultimatePoint: segments[segments.length - 1]?.c2 ?? target,
19
+ points,
20
+ candidates: calculateCurveCandidates(segments),
21
+ };
22
+ }
23
+ }
24
+ function getAnglePoint(side, source, target, offset) {
25
+ const result = { x: source.x, y: source.y };
26
+ switch (side) {
27
+ case EFConnectableSide.LEFT:
28
+ result.x -= getConnectorOffset(source.x - target.x, offset);
29
+ break;
30
+ case EFConnectableSide.RIGHT:
31
+ result.x += getConnectorOffset(target.x - source.x, offset);
32
+ break;
33
+ case EFConnectableSide.TOP:
34
+ result.y -= getConnectorOffset(source.y - target.y, offset);
35
+ break;
36
+ case EFConnectableSide.BOTTOM:
37
+ result.y += getConnectorOffset(target.y - source.y, offset);
38
+ break;
39
+ case EFConnectableSide.AUTO:
40
+ break;
41
+ }
42
+ return result;
43
+ }
44
+ function getConnectorOffset(distance, offset) {
45
+ if (distance >= offset)
46
+ return distance;
47
+ return offset * Math.sqrt(offset - distance);
48
+ }
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWJlemllci1jdXJ2ZS1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvYnVpbGRlcnMvYmV6aWVyLWN1cnZlL2NhbGN1bGF0ZS1iZXppZXItY3VydmUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4QixvQkFBb0IsRUFFcEIsdUJBQXVCLEdBQ3hCLE1BQU0sVUFBVSxDQUFDO0FBTWxCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE1BQU0sT0FBTyx3QkFBd0I7SUFDNUIsTUFBTSxDQUFDLEVBQ1osTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixTQUFTLEdBQ2tCO1FBQzNCLE1BQU0sT0FBTyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFbEUsTUFBTSxRQUFRLEdBQW9CLEVBQUUsQ0FBQztRQUVyQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV6QixNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFeEQsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckQsT0FBTztZQUNMLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7WUFDcEMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksTUFBTTtZQUN0QyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksTUFBTTtZQUM3RCxNQUFNO1lBQ04sVUFBVSxFQUFFLHdCQUF3QixDQUFDLFFBQVEsQ0FBQztTQUMvQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsU0FBUyxhQUFhLENBQ3BCLElBQXVCLEVBQ3ZCLE1BQWMsRUFDZCxNQUFjLEVBQ2QsTUFBYztJQUVkLE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUVwRCxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO1lBQ3pCLE1BQU0sQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVELE1BQU07UUFDUixLQUFLLGlCQUFpQixDQUFDLEtBQUs7WUFDMUIsTUFBTSxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDNUQsTUFBTTtRQUNSLEtBQUssaUJBQWlCLENBQUMsR0FBRztZQUN4QixNQUFNLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM1RCxNQUFNO1FBQ1IsS0FBSyxpQkFBaUIsQ0FBQyxNQUFNO1lBQzNCLE1BQU0sQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVELE1BQU07UUFDUixLQUFLLGlCQUFpQixDQUFDLElBQUk7WUFDekIsTUFBTTtJQUNWLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLE1BQWM7SUFDMUQsSUFBSSxRQUFRLElBQUksTUFBTTtRQUFFLE9BQU8sUUFBUSxDQUFDO0lBRXhDLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7XG4gIGJ1aWxkQ29ubmVjdGlvbkFuY2hvcnMsXG4gIGNhbGN1bGF0ZUN1cnZlQ2FuZGlkYXRlcyxcbiAgY3JlYXRlTXVsdGlDdWJpY1BhdGgsXG4gIElDdWJpY1NlZ21lbnQsXG4gIHNhbXBsZU11bHRpQ3ViaWNVbmlmb3JtLFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBJRkNvbm5lY3Rpb25CdWlsZGVyLFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCxcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVCZXppZXJDdXJ2ZURhdGEgaW1wbGVtZW50cyBJRkNvbm5lY3Rpb25CdWlsZGVyIHtcbiAgcHVibGljIGhhbmRsZSh7XG4gICAgc291cmNlLFxuICAgIHNvdXJjZVNpZGUsXG4gICAgdGFyZ2V0LFxuICAgIHRhcmdldFNpZGUsXG4gICAgb2Zmc2V0LFxuICAgIHdheXBvaW50cyxcbiAgfTogSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QpOiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2Uge1xuICAgIGNvbnN0IGFuY2hvcnMgPSBidWlsZENvbm5lY3Rpb25BbmNob3JzKHNvdXJjZSwgdGFyZ2V0LCB3YXlwb2ludHMpO1xuXG4gICAgY29uc3Qgc2VnbWVudHM6IElDdWJpY1NlZ21lbnRbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbmNob3JzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgY29uc3QgYSA9IGFuY2hvcnNbaV07XG4gICAgICBjb25zdCBiID0gYW5jaG9yc1tpICsgMV07XG5cbiAgICAgIGNvbnN0IGMxID0gZ2V0QW5nbGVQb2ludChzb3VyY2VTaWRlLCBhLCBiLCBvZmZzZXQgPz8gMCk7XG4gICAgICBjb25zdCBjMiA9IGdldEFuZ2xlUG9pbnQodGFyZ2V0U2lkZSwgYiwgYSwgb2Zmc2V0ID8/IDApO1xuXG4gICAgICBzZWdtZW50cy5wdXNoKHsgcDA6IGEsIGMxLCBjMiwgcDM6IGIsIGNoYWluSW5kZXg6IGkgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9pbnRzID0gc2FtcGxlTXVsdGlDdWJpY1VuaWZvcm0oc2VnbWVudHMsIDEyKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwYXRoOiBjcmVhdGVNdWx0aUN1YmljUGF0aChzZWdtZW50cyksXG4gICAgICBzZWNvbmRQb2ludDogc2VnbWVudHNbMF0/LmMxID8/IHNvdXJjZSxcbiAgICAgIHBlbnVsdGltYXRlUG9pbnQ6IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdPy5jMiA/PyB0YXJnZXQsXG4gICAgICBwb2ludHMsXG4gICAgICBjYW5kaWRhdGVzOiBjYWxjdWxhdGVDdXJ2ZUNhbmRpZGF0ZXMoc2VnbWVudHMpLFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0QW5nbGVQb2ludChcbiAgc2lkZTogRUZDb25uZWN0YWJsZVNpZGUsXG4gIHNvdXJjZTogSVBvaW50LFxuICB0YXJnZXQ6IElQb2ludCxcbiAgb2Zmc2V0OiBudW1iZXIsXG4pOiBJUG9pbnQge1xuICBjb25zdCByZXN1bHQ6IElQb2ludCA9IHsgeDogc291cmNlLngsIHk6IHNvdXJjZS55IH07XG5cbiAgc3dpdGNoIChzaWRlKSB7XG4gICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5MRUZUOlxuICAgICAgcmVzdWx0LnggLT0gZ2V0Q29ubmVjdG9yT2Zmc2V0KHNvdXJjZS54IC0gdGFyZ2V0LngsIG9mZnNldCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUOlxuICAgICAgcmVzdWx0LnggKz0gZ2V0Q29ubmVjdG9yT2Zmc2V0KHRhcmdldC54IC0gc291cmNlLngsIG9mZnNldCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLlRPUDpcbiAgICAgIHJlc3VsdC55IC09IGdldENvbm5lY3Rvck9mZnNldChzb3VyY2UueSAtIHRhcmdldC55LCBvZmZzZXQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT006XG4gICAgICByZXN1bHQueSArPSBnZXRDb25uZWN0b3JPZmZzZXQodGFyZ2V0LnkgLSBzb3VyY2UueSwgb2Zmc2V0KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuQVVUTzpcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZ2V0Q29ubmVjdG9yT2Zmc2V0KGRpc3RhbmNlOiBudW1iZXIsIG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKGRpc3RhbmNlID49IG9mZnNldCkgcmV0dXJuIGRpc3RhbmNlO1xuXG4gIHJldHVybiBvZmZzZXQgKiBNYXRoLnNxcnQob2Zmc2V0IC0gZGlzdGFuY2UpO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './calculate-bezier-curve-data';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy9iZXppZXItY3VydmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWJlemllci1jdXJ2ZS1kYXRhJztcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './adaptive-curve';
2
+ export * from './bezier-curve';
3
+ export * from './segment-line';
4
+ export * from './straight-line';
5
+ export * from './utils';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hZGFwdGl2ZS1jdXJ2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jlemllci1jdXJ2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlZ21lbnQtbGluZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmFpZ2h0LWxpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG4iXX0=
@@ -0,0 +1,50 @@
1
+ export function buildCornerMidPointsAndApplyOffsets(params) {
2
+ const { axis, source, target, sourceSide, targetSide, sourceGap, targetGap, sourceDir, targetDir, currentDir, offset, sourceGapOffset, targetGapOffset, } = params;
3
+ const corners = buildCornerPoints(sourceGap, targetGap);
4
+ let midPoints = pickCornerByDirection(axis, sourceDir, currentDir, corners);
5
+ if (sourceSide === targetSide) {
6
+ applySameSideGapOffsetFix(axis, source, target, offset, sourceDir, currentDir, sourceGap, targetGap, sourceGapOffset, targetGapOffset);
7
+ }
8
+ else {
9
+ midPoints = maybeFlipCornerForDifferentSides(axis, sourceDir, targetDir, sourceGap, targetGap, corners, midPoints);
10
+ }
11
+ return midPoints;
12
+ }
13
+ function buildCornerPoints(sourceGap, targetGap) {
14
+ return {
15
+ sourceTarget: [{ x: sourceGap.x, y: targetGap.y }],
16
+ targetSource: [{ x: targetGap.x, y: sourceGap.y }],
17
+ };
18
+ }
19
+ function pickCornerByDirection(axis, sourceDir, currentDir, corners) {
20
+ if (axis === 'x') {
21
+ return sourceDir.x === currentDir ? corners.targetSource : corners.sourceTarget;
22
+ }
23
+ return sourceDir.y === currentDir ? corners.sourceTarget : corners.targetSource;
24
+ }
25
+ function applySameSideGapOffsetFix(axis, source, target, offset, sourceDir, currentDir, sourceGap, targetGap, sourceGapOffset, targetGapOffset) {
26
+ const diff = Math.abs(source[axis] - target[axis]);
27
+ if (diff > offset)
28
+ return;
29
+ const gapOffset = Math.min(offset - 1, offset - diff);
30
+ if (gapOffset <= 0)
31
+ return;
32
+ if (sourceDir[axis] === currentDir) {
33
+ sourceGapOffset[axis] = (sourceGap[axis] > source[axis] ? -1 : 1) * gapOffset;
34
+ }
35
+ else {
36
+ targetGapOffset[axis] = (targetGap[axis] > target[axis] ? -1 : 1) * gapOffset;
37
+ }
38
+ }
39
+ function maybeFlipCornerForDifferentSides(axis, sourceDir, targetDir, sourceGap, targetGap, corners, currentPicked) {
40
+ const opp = axis === 'x' ? 'y' : 'x';
41
+ const isSameDir = sourceDir[axis] === targetDir[opp];
42
+ const sourceGt = sourceGap[opp] > targetGap[opp];
43
+ const sourceLt = sourceGap[opp] < targetGap[opp];
44
+ const flip = (sourceDir[axis] === 1 && ((!isSameDir && sourceGt) || (isSameDir && sourceLt))) ||
45
+ (sourceDir[axis] !== 1 && ((!isSameDir && sourceLt) || (isSameDir && sourceGt)));
46
+ if (!flip)
47
+ return currentPicked;
48
+ return axis === 'x' ? corners.sourceTarget : corners.targetSource;
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY29ybmVyLW1pZC1wb2ludHMtYW5kLWFwcGx5LW9mZnNldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy9zZWdtZW50LWxpbmUvYnVpbGQtY29ybmVyLW1pZC1wb2ludHMtYW5kLWFwcGx5LW9mZnNldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLG1DQUFtQyxDQUFDLE1BbUJuRDtJQUNDLE1BQU0sRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLE1BQU0sRUFDTixVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLGVBQWUsRUFDZixlQUFlLEdBQ2hCLEdBQUcsTUFBTSxDQUFDO0lBRVgsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXhELElBQUksU0FBUyxHQUFHLHFCQUFxQixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRTVFLElBQUksVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzlCLHlCQUF5QixDQUN2QixJQUFJLEVBQ0osTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1QsU0FBUyxFQUNULGVBQWUsRUFDZixlQUFlLENBQ2hCLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLFNBQVMsR0FBRyxnQ0FBZ0MsQ0FDMUMsSUFBSSxFQUNKLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxPQUFPLEVBQ1AsU0FBUyxDQUNWLENBQUM7SUFDSixDQUFD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QUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNoRixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVuRixJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sYUFBYSxDQUFDO0lBRWhDLE9BQU8sSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUNwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29ybmVyTWlkUG9pbnRzQW5kQXBwbHlPZmZzZXRzKHBhcmFtczoge1xuICBheGlzOiAneCcgfCAneSc7XG4gIHNvdXJjZTogSVBvaW50O1xuICB0YXJnZXQ6IElQb2ludDtcblxuICBzb3VyY2VTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZTtcbiAgdGFyZ2V0U2lkZTogRUZDb25uZWN0YWJsZVNpZGU7XG5cbiAgc291cmNlR2FwOiBJUG9pbnQ7XG4gIHRhcmdldEdhcDogSVBvaW50O1xuXG4gIHNvdXJjZURpcjogSVBvaW50O1xuICB0YXJnZXREaXI6IElQb2ludDtcblxuICBjdXJyZW50RGlyOiBudW1iZXI7XG4gIG9mZnNldDogbnVtYmVyO1xuXG4gIHNvdXJjZUdhcE9mZnNldDogSVBvaW50O1xuICB0YXJnZXRHYXBPZmZzZXQ6IElQb2ludDtcbn0pOiBJUG9pbnRbXSB7XG4gIGNvbnN0IHtcbiAgICBheGlzLFxuICAgIHNvdXJjZSxcbiAgICB0YXJnZXQsXG4gICAgc291cmNlU2lkZSxcbiAgICB0YXJnZXRTaWRlLFxuICAgIHNvdXJjZUdhcCxcbiAgICB0YXJnZXRHYXAsXG4gICAgc291cmNlRGlyLFxuICAgIHRhcmdldERpcixcbiAgICBjdXJyZW50RGlyLFxuICAgIG9mZnNldCxcbiAgICBzb3VyY2VHYXBPZmZzZXQsXG4gICAgdGFyZ2V0R2FwT2Zmc2V0LFxuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IGNvcm5lcnMgPSBidWlsZENvcm5lclBvaW50cyhzb3VyY2VHYXAsIHRhcmdldEdhcCk7XG5cbiAgbGV0IG1pZFBvaW50cyA9IHBpY2tDb3JuZXJCeURpcmVjdGlvbihheGlzLCBzb3VyY2VEaXIsIGN1cnJlbnREaXIsIGNvcm5lcnMpO1xuXG4gIGlmIChzb3VyY2VTaWRlID09PSB0YXJnZXRTaWRlKSB7XG4gICAgYXBwbHlTYW1lU2lkZUdhcE9mZnNldEZpeChcbiAgICAgIGF4aXMsXG4gICAgICBzb3VyY2UsXG4gICAgICB0YXJnZXQsXG4gICAgICBvZmZzZXQsXG4gICAgICBzb3VyY2VEaXIsXG4gICAgICBjdXJyZW50RGlyLFxuICAgICAgc291cmNlR2FwLFxuICAgICAgdGFyZ2V0R2FwLFxuICAgICAgc291cmNlR2FwT2Zmc2V0LFxuICAgICAgdGFyZ2V0R2FwT2Zmc2V0LFxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbWlkUG9pbnRzID0gbWF5YmVGbGlwQ29ybmVyRm9yRGlmZmVyZW50U2lkZXMoXG4gICAgICBheGlzLFxuICAgICAgc291cmNlRGlyLFxuICAgICAgdGFyZ2V0RGlyLFxuICAgICAgc291cmNlR2FwLFxuICAgICAgdGFyZ2V0R2FwLFxuICAgICAgY29ybmVycyxcbiAgICAgIG1pZFBvaW50cyxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIG1pZFBvaW50cztcbn1cblxuZnVuY3Rpb24gYnVpbGRDb3JuZXJQb2ludHMoXG4gIHNvdXJjZUdhcDogSVBvaW50LFxuICB0YXJnZXRHYXA6IElQb2ludCxcbik6IHsgc291cmNlVGFyZ2V0OiBJUG9pbnRbXTsgdGFyZ2V0U291cmNlOiBJUG9pbnRbXSB9IHtcbiAgcmV0dXJuIHtcbiAgICBzb3VyY2VUYXJnZXQ6IFt7IHg6IHNvdXJjZUdhcC54LCB5OiB0YXJnZXRHYXAueSB9XSxcbiAgICB0YXJnZXRTb3VyY2U6IFt7IHg6IHRhcmdldEdhcC54LCB5OiBzb3VyY2VHYXAueSB9XSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGlja0Nvcm5lckJ5RGlyZWN0aW9uKFxuICBheGlzOiAneCcgfCAneScsXG4gIHNvdXJjZURpcjogSVBvaW50LFxuICBjdXJyZW50RGlyOiBudW1iZXIsXG4gIGNvcm5lcnM6IHsgc291cmNlVGFyZ2V0OiBJUG9pbnRbXTsgdGFyZ2V0U291cmNlOiBJUG9pbnRbXSB9LFxuKTogSVBvaW50W10ge1xuICBpZiAoYXhpcyA9PT0gJ3gnKSB7XG4gICAgcmV0dXJuIHNvdXJjZURpci54ID09PSBjdXJyZW50RGlyID8gY29ybmVycy50YXJnZXRTb3VyY2UgOiBjb3JuZXJzLnNvdXJjZVRhcmdldDtcbiAgfVxuXG4gIHJldHVybiBzb3VyY2VEaXIueSA9PT0gY3VycmVudERpciA/IGNvcm5lcnMuc291cmNlVGFyZ2V0IDogY29ybmVycy50YXJnZXRTb3VyY2U7XG59XG5cbmZ1bmN0aW9uIGFwcGx5U2FtZVNpZGVHYXBPZmZzZXRGaXgoXG4gIGF4aXM6ICd4JyB8ICd5JyxcbiAgc291cmNlOiBJUG9pbnQsXG4gIHRhcmdldDogSVBvaW50LFxuICBvZmZzZXQ6IG51bWJlcixcbiAgc291cmNlRGlyOiBJUG9pbnQsXG4gIGN1cnJlbnREaXI6IG51bWJlcixcbiAgc291cmNlR2FwOiBJUG9pbnQsXG4gIHRhcmdldEdhcDogSVBvaW50LFxuICBzb3VyY2VHYXBPZmZzZXQ6IElQb2ludCxcbiAgdGFyZ2V0R2FwT2Zmc2V0OiBJUG9pbnQsXG4pOiB2b2lkIHtcbiAgY29uc3QgZGlmZiA9IE1hdGguYWJzKHNvdXJjZVtheGlzXSAtIHRhcmdldFtheGlzXSk7XG4gIGlmIChkaWZmID4gb2Zmc2V0KSByZXR1cm47XG5cbiAgY29uc3QgZ2FwT2Zmc2V0ID0gTWF0aC5taW4ob2Zmc2V0IC0gMSwgb2Zmc2V0IC0gZGlmZik7XG4gIGlmIChnYXBPZmZzZXQgPD0gMCkgcmV0dXJuO1xuXG4gIGlmIChzb3VyY2VEaXJbYXhpc10gPT09IGN1cnJlbnREaXIpIHtcbiAgICBzb3VyY2VHYXBPZmZzZXRbYXhpc10gPSAoc291cmNlR2FwW2F4aXNdID4gc291cmNlW2F4aXNdID8gLTEgOiAxKSAqIGdhcE9mZnNldDtcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXRHYXBPZmZzZXRbYXhpc10gPSAodGFyZ2V0R2FwW2F4aXNdID4gdGFyZ2V0W2F4aXNdID8gLTEgOiAxKSAqIGdhcE9mZnNldDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXliZUZsaXBDb3JuZXJGb3JEaWZmZXJlbnRTaWRlcyhcbiAgYXhpczogJ3gnIHwgJ3knLFxuICBzb3VyY2VEaXI6IElQb2ludCxcbiAgdGFyZ2V0RGlyOiBJUG9pbnQsXG4gIHNvdXJjZUdhcDogSVBvaW50LFxuICB0YXJnZXRHYXA6IElQb2ludCxcbiAgY29ybmVyczogeyBzb3VyY2VUYXJnZXQ6IElQb2ludFtdOyB0YXJnZXRTb3VyY2U6IElQb2ludFtdIH0sXG4gIGN1cnJlbnRQaWNrZWQ6IElQb2ludFtdLFxuKTogSVBvaW50W10ge1xuICBjb25zdCBvcHAgPSBheGlzID09PSAneCcgPyAneScgOiAneCc7XG5cbiAgY29uc3QgaXNTYW1lRGlyID0gc291cmNlRGlyW2F4aXNdID09PSB0YXJnZXREaXJbb3BwXTtcbiAgY29uc3Qgc291cmNlR3QgPSBzb3VyY2VHYXBbb3BwXSA+IHRhcmdldEdhcFtvcHBdO1xuICBjb25zdCBzb3VyY2VMdCA9IHNvdXJjZUdhcFtvcHBdIDwgdGFyZ2V0R2FwW29wcF07XG5cbiAgY29uc3QgZmxpcCA9XG4gICAgKHNvdXJjZURpcltheGlzXSA9PT0gMSAmJiAoKCFpc1NhbWVEaXIgJiYgc291cmNlR3QpIHx8IChpc1NhbWVEaXIgJiYgc291cmNlTHQpKSkgfHxcbiAgICAoc291cmNlRGlyW2F4aXNdICE9PSAxICYmICgoIWlzU2FtZURpciAmJiBzb3VyY2VMdCkgfHwgKGlzU2FtZURpciAmJiBzb3VyY2VHdCkpKTtcblxuICBpZiAoIWZsaXApIHJldHVybiBjdXJyZW50UGlja2VkO1xuXG4gIHJldHVybiBheGlzID09PSAneCcgPyBjb3JuZXJzLnNvdXJjZVRhcmdldCA6IGNvcm5lcnMudGFyZ2V0U291cmNlO1xufVxuIl19
@@ -0,0 +1,106 @@
1
+ import { PointExtensions } from '@foblex/2d';
2
+ import { buildConnectionAnchors, calculateCenterBetweenPoints, calculatePolylineCandidates, mergePointChains, normalizePolyline, } from '../utils';
3
+ import { createSegmentLinePath } from './create-segment-line-path';
4
+ import { EFConnectableSide } from '../../../../enums';
5
+ import { buildCornerMidPointsAndApplyOffsets } from './build-corner-mid-points-and-apply-offsets';
6
+ const CONNECTOR_SIDE_POINT = {
7
+ [EFConnectableSide.LEFT]: PointExtensions.initialize(-1, 0),
8
+ [EFConnectableSide.RIGHT]: PointExtensions.initialize(1, 0),
9
+ [EFConnectableSide.TOP]: PointExtensions.initialize(0, -1),
10
+ [EFConnectableSide.BOTTOM]: PointExtensions.initialize(0, 1),
11
+ [EFConnectableSide.AUTO]: PointExtensions.initialize(0, 0),
12
+ };
13
+ export class CalculateSegmentLineData {
14
+ handle({ source, sourceSide, target, targetSide, waypoints, offset, radius, }) {
15
+ const anchors = buildConnectionAnchors(source, target, waypoints);
16
+ const chains = [];
17
+ const candidates = [];
18
+ for (let i = 0; i < anchors.length - 1; i++) {
19
+ const a = anchors[i];
20
+ const b = anchors[i + 1];
21
+ const points = this._getPathPoints(a, sourceSide, b, targetSide, offset ?? 0);
22
+ chains.push(points);
23
+ candidates.push(...calculatePolylineCandidates(points));
24
+ }
25
+ const polyline = normalizePolyline(mergePointChains(chains));
26
+ const penultimatePoint = polyline.length > 1 ? polyline[polyline.length - 2] : source;
27
+ const secondPoint = polyline.length > 1 ? polyline[1] : target;
28
+ return {
29
+ path: createSegmentLinePath(polyline, radius ?? 0),
30
+ penultimatePoint,
31
+ secondPoint,
32
+ points: polyline,
33
+ candidates,
34
+ };
35
+ }
36
+ _getPathPoints(source, sourceSide, target, targetSide, offset) {
37
+ const sourceDirection = CONNECTOR_SIDE_POINT[sourceSide];
38
+ const targetDirection = CONNECTOR_SIDE_POINT[targetSide];
39
+ const sourceGap = {
40
+ x: source.x + sourceDirection.x * offset,
41
+ y: source.y + sourceDirection.y * offset,
42
+ };
43
+ const targetGap = {
44
+ x: target.x + targetDirection.x * offset,
45
+ y: target.y + targetDirection.y * offset,
46
+ };
47
+ const direction = this._getDirection(sourceGap, sourceSide, targetGap);
48
+ const directionAccessor = direction.x !== 0 ? 'x' : 'y';
49
+ const currentDirection = direction[directionAccessor];
50
+ let points = [];
51
+ const sourceGapOffset = PointExtensions.initialize();
52
+ const targetGapOffset = PointExtensions.initialize();
53
+ const centerBetweenPoints = calculateCenterBetweenPoints(source, target);
54
+ if (sourceDirection[directionAccessor] * targetDirection[directionAccessor] === -1) {
55
+ const verticalSplit = [
56
+ { x: centerBetweenPoints.x, y: sourceGap.y },
57
+ { x: centerBetweenPoints.x, y: targetGap.y },
58
+ ];
59
+ const horizontalSplit = [
60
+ { x: sourceGap.x, y: centerBetweenPoints.y },
61
+ { x: targetGap.x, y: centerBetweenPoints.y },
62
+ ];
63
+ if (sourceDirection[directionAccessor] === currentDirection) {
64
+ points = directionAccessor === 'x' ? verticalSplit : horizontalSplit;
65
+ }
66
+ else {
67
+ points = directionAccessor === 'x' ? horizontalSplit : verticalSplit;
68
+ }
69
+ }
70
+ else {
71
+ points = buildCornerMidPointsAndApplyOffsets({
72
+ axis: directionAccessor,
73
+ source,
74
+ target,
75
+ sourceSide,
76
+ targetSide,
77
+ sourceGap,
78
+ targetGap,
79
+ sourceDir: sourceDirection,
80
+ targetDir: targetDirection,
81
+ currentDir: currentDirection,
82
+ offset,
83
+ sourceGapOffset,
84
+ targetGapOffset,
85
+ });
86
+ }
87
+ return [
88
+ source,
89
+ { x: sourceGap.x + sourceGapOffset.x, y: sourceGap.y + sourceGapOffset.y },
90
+ ...points,
91
+ { x: targetGap.x + targetGapOffset.x, y: targetGap.y + targetGapOffset.y },
92
+ target,
93
+ ];
94
+ }
95
+ _getDirection(source, sourceSide, target) {
96
+ if (sourceSide === EFConnectableSide.LEFT || sourceSide === EFConnectableSide.RIGHT) {
97
+ return source.x < target.x
98
+ ? PointExtensions.initialize(1, 0)
99
+ : PointExtensions.initialize(-1, 0);
100
+ }
101
+ return source.y < target.y
102
+ ? PointExtensions.initialize(0, 1)
103
+ : PointExtensions.initialize(0, -1);
104
+ }
105
+ }
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLXNlZ21lbnQtbGluZS1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvYnVpbGRlcnMvc2VnbWVudC1saW5lL2NhbGN1bGF0ZS1zZWdtZW50LWxpbmUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLDJCQUEyQixFQUMzQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEdBQ2xCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBTW5FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRWxHLE1BQU0sb0JBQW9CLEdBQTJCO0lBQ25ELENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFM0QsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFM0QsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUUxRCxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU1RCxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxF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QUFNLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQge1xuICBidWlsZENvbm5lY3Rpb25BbmNob3JzLFxuICBjYWxjdWxhdGVDZW50ZXJCZXR3ZWVuUG9pbnRzLFxuICBjYWxjdWxhdGVQb2x5bGluZUNhbmRpZGF0ZXMsXG4gIG1lcmdlUG9pbnRDaGFpbnMsXG4gIG5vcm1hbGl6ZVBvbHlsaW5lLFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBjcmVhdGVTZWdtZW50TGluZVBhdGggfSBmcm9tICcuL2NyZWF0ZS1zZWdtZW50LWxpbmUtcGF0aCc7XG5pbXBvcnQge1xuICBJRkNvbm5lY3Rpb25CdWlsZGVyLFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCxcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBidWlsZENvcm5lck1pZFBvaW50c0FuZEFwcGx5T2Zmc2V0cyB9IGZyb20gJy4vYnVpbGQtY29ybmVyLW1pZC1wb2ludHMtYW5kLWFwcGx5LW9mZnNldHMnO1xuXG5jb25zdCBDT05ORUNUT1JfU0lERV9QT0lOVDogUmVjb3JkPHN0cmluZywgSVBvaW50PiA9IHtcbiAgW0VGQ29ubmVjdGFibGVTaWRlLkxFRlRdOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgtMSwgMCksXG5cbiAgW0VGQ29ubmVjdGFibGVTaWRlLlJJR0hUXTogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMSwgMCksXG5cbiAgW0VGQ29ubmVjdGFibGVTaWRlLlRPUF06IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKDAsIC0xKSxcblxuICBbRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NXTogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMCwgMSksXG5cbiAgW0VGQ29ubmVjdGFibGVTaWRlLkFVVE9dOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAwKSxcbn07XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVTZWdtZW50TGluZURhdGEgaW1wbGVtZW50cyBJRkNvbm5lY3Rpb25CdWlsZGVyIHtcbiAgcHVibGljIGhhbmRsZSh7XG4gICAgc291cmNlLFxuICAgIHNvdXJjZVNpZGUsXG4gICAgdGFyZ2V0LFxuICAgIHRhcmdldFNpZGUsXG4gICAgd2F5cG9pbnRzLFxuICAgIG9mZnNldCxcbiAgICByYWRpdXMsXG4gIH06IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0KTogSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlIHtcbiAgICBjb25zdCBhbmNob3JzID0gYnVpbGRDb25uZWN0aW9uQW5jaG9ycyhzb3VyY2UsIHRhcmdldCwgd2F5cG9pbnRzKTtcblxuICAgIGNvbnN0IGNoYWluczogSVBvaW50W11bXSA9IFtdO1xuICAgIGNvbnN0IGNhbmRpZGF0ZXM6IElQb2ludFtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFuY2hvcnMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBjb25zdCBhID0gYW5jaG9yc1tpXTtcbiAgICAgIGNvbnN0IGIgPSBhbmNob3JzW2kgKyAxXTtcblxuICAgICAgY29uc3QgcG9pbnRzID0gdGhpcy5fZ2V0UGF0aFBvaW50cyhhLCBzb3VyY2VTaWRlLCBiLCB0YXJnZXRTaWRlLCBvZmZzZXQgPz8gMCk7XG5cbiAgICAgIGNoYWlucy5wdXNoKHBvaW50cyk7XG4gICAgICBjYW5kaWRhdGVzLnB1c2goLi4uY2FsY3VsYXRlUG9seWxpbmVDYW5kaWRhdGVzKHBvaW50cykpO1xuICAgIH1cblxuICAgIGNvbnN0IHBvbHlsaW5lID0gbm9ybWFsaXplUG9seWxpbmUobWVyZ2VQb2ludENoYWlucyhjaGFpbnMpKTtcblxuICAgIGNvbnN0IHBlbnVsdGltYXRlUG9pbnQgPSBwb2x5bGluZS5sZW5ndGggPiAxID8gcG9seWxpbmVbcG9seWxpbmUubGVuZ3RoIC0gMl0gOiBzb3VyY2U7XG4gICAgY29uc3Qgc2Vjb25kUG9pbnQgPSBwb2x5bGluZS5sZW5ndGggPiAxID8gcG9seWxpbmVbMV0gOiB0YXJnZXQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogY3JlYXRlU2VnbWVudExpbmVQYXRoKHBvbHlsaW5lLCByYWRpdXMgPz8gMCksXG4gICAgICBwZW51bHRpbWF0ZVBvaW50LFxuICAgICAgc2Vjb25kUG9pbnQsXG4gICAgICBwb2ludHM6IHBvbHlsaW5lLFxuICAgICAgY2FuZGlkYXRlcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UGF0aFBvaW50cyhcbiAgICBzb3VyY2U6IElQb2ludCxcbiAgICBzb3VyY2VTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgICB0YXJnZXQ6IElQb2ludCxcbiAgICB0YXJnZXRTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgKTogSVBvaW50W10ge1xuICAgIGNvbnN0IHNvdXJjZURpcmVjdGlvbiA9IENPTk5FQ1RPUl9TSURFX1BPSU5UW3NvdXJjZVNpZGVdO1xuICAgIGNvbnN0IHRhcmdldERpcmVjdGlvbiA9IENPTk5FQ1RPUl9TSURFX1BPSU5UW3RhcmdldFNpZGVdO1xuXG4gICAgY29uc3Qgc291cmNlR2FwOiBJUG9pbnQgPSB7XG4gICAgICB4OiBzb3VyY2UueCArIHNvdXJjZURpcmVjdGlvbi54ICogb2Zmc2V0LFxuICAgICAgeTogc291cmNlLnkgKyBzb3VyY2VEaXJlY3Rpb24ueSAqIG9mZnNldCxcbiAgICB9O1xuICAgIGNvbnN0IHRhcmdldEdhcDogSVBvaW50ID0ge1xuICAgICAgeDogdGFyZ2V0LnggKyB0YXJnZXREaXJlY3Rpb24ueCAqIG9mZnNldCxcbiAgICAgIHk6IHRhcmdldC55ICsgdGFyZ2V0RGlyZWN0aW9uLnkgKiBvZmZzZXQsXG4gICAgfTtcblxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMuX2dldERpcmVjdGlvbihzb3VyY2VHYXAsIHNvdXJjZVNpZGUsIHRhcmdldEdhcCk7XG4gICAgY29uc3QgZGlyZWN0aW9uQWNjZXNzb3I6ICd4JyB8ICd5JyA9IGRpcmVjdGlvbi54ICE9PSAwID8gJ3gnIDogJ3knO1xuICAgIGNvbnN0IGN1cnJlbnREaXJlY3Rpb24gPSBkaXJlY3Rpb25bZGlyZWN0aW9uQWNjZXNzb3JdO1xuXG4gICAgbGV0IHBvaW50czogSVBvaW50W10gPSBbXTtcbiAgICBjb25zdCBzb3VyY2VHYXBPZmZzZXQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICAgIGNvbnN0IHRhcmdldEdhcE9mZnNldCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgICBjb25zdCBjZW50ZXJCZXR3ZWVuUG9pbnRzID0gY2FsY3VsYXRlQ2VudGVyQmV0d2VlblBvaW50cyhzb3VyY2UsIHRhcmdldCk7XG5cbiAgICBpZiAoc291cmNlRGlyZWN0aW9uW2RpcmVjdGlvbkFjY2Vzc29yXSAqIHRhcmdldERpcmVjdGlvbltkaXJlY3Rpb25BY2Nlc3Nvcl0gPT09IC0xKSB7XG4gICAgICBjb25zdCB2ZXJ0aWNhbFNwbGl0OiBJUG9pbnRbXSA9IFtcbiAgICAgICAgeyB4OiBjZW50ZXJCZXR3ZWVuUG9pbnRzLngsIHk6IHNvdXJjZUdhcC55IH0sXG4gICAgICAgIHsgeDogY2VudGVyQmV0d2VlblBvaW50cy54LCB5OiB0YXJnZXRHYXAueSB9LFxuICAgICAgXTtcbiAgICAgIGNvbnN0IGhvcml6b250YWxTcGxpdDogSVBvaW50W10gPSBbXG4gICAgICAgIHsgeDogc291cmNlR2FwLngsIHk6IGNlbnRlckJldHdlZW5Qb2ludHMueSB9LFxuICAgICAgICB7IHg6IHRhcmdldEdhcC54LCB5OiBjZW50ZXJCZXR3ZWVuUG9pbnRzLnkgfSxcbiAgICAgIF07XG5cbiAgICAgIGlmIChzb3VyY2VEaXJlY3Rpb25bZGlyZWN0aW9uQWNjZXNzb3JdID09PSBjdXJyZW50RGlyZWN0aW9uKSB7XG4gICAgICAgIHBvaW50cyA9IGRpcmVjdGlvbkFjY2Vzc29yID09PSAneCcgPyB2ZXJ0aWNhbFNwbGl0IDogaG9yaXpvbnRhbFNwbGl0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9pbnRzID0gZGlyZWN0aW9uQWNjZXNzb3IgPT09ICd4JyA/IGhvcml6b250YWxTcGxpdCA6IHZlcnRpY2FsU3BsaXQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvaW50cyA9IGJ1aWxkQ29ybmVyTWlkUG9pbnRzQW5kQXBwbHlPZmZzZXRzKHtcbiAgICAgICAgYXhpczogZGlyZWN0aW9uQWNjZXNzb3IsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICBzb3VyY2VTaWRlLFxuICAgICAgICB0YXJnZXRTaWRlLFxuICAgICAgICBzb3VyY2VHYXAsXG4gICAgICAgIHRhcmdldEdhcCxcbiAgICAgICAgc291cmNlRGlyOiBzb3VyY2VEaXJlY3Rpb24sXG4gICAgICAgIHRhcmdldERpcjogdGFyZ2V0RGlyZWN0aW9uLFxuICAgICAgICBjdXJyZW50RGlyOiBjdXJyZW50RGlyZWN0aW9uLFxuICAgICAgICBvZmZzZXQsXG4gICAgICAgIHNvdXJjZUdhcE9mZnNldCxcbiAgICAgICAgdGFyZ2V0R2FwT2Zmc2V0LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgIHNvdXJjZSxcbiAgICAgIHsgeDogc291cmNlR2FwLnggKyBzb3VyY2VHYXBPZmZzZXQueCwgeTogc291cmNlR2FwLnkgKyBzb3VyY2VHYXBPZmZzZXQueSB9LFxuICAgICAgLi4ucG9pbnRzLFxuICAgICAgeyB4OiB0YXJnZXRHYXAueCArIHRhcmdldEdhcE9mZnNldC54LCB5OiB0YXJnZXRHYXAueSArIHRhcmdldEdhcE9mZnNldC55IH0sXG4gICAgICB0YXJnZXQsXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERpcmVjdGlvbihzb3VyY2U6IElQb2ludCwgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUsIHRhcmdldDogSVBvaW50KTogSVBvaW50IHtcbiAgICBpZiAoc291cmNlU2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuTEVGVCB8fCBzb3VyY2VTaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5SSUdIVCkge1xuICAgICAgcmV0dXJuIHNvdXJjZS54IDwgdGFyZ2V0LnhcbiAgICAgICAgPyBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgxLCAwKVxuICAgICAgICA6IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKC0xLCAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc291cmNlLnkgPCB0YXJnZXQueVxuICAgICAgPyBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAxKVxuICAgICAgOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAtMSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,46 @@
1
+ const EPS = 1e-6;
2
+ const END_EPS = 0.0002;
3
+ const MIN_VISIBLE = 0.75;
4
+ export function createSegmentLinePath(points, borderRadius) {
5
+ const n = points.length;
6
+ const parts = [];
7
+ parts.push(`M ${points[0].x} ${points[0].y}`);
8
+ for (let i = 1; i < n - 1; i++) {
9
+ parts.push(getBend(points[i - 1], points[i], points[i + 1], borderRadius));
10
+ }
11
+ const last = points[n - 1];
12
+ parts.push(`L ${last.x + END_EPS} ${last.y + END_EPS}`);
13
+ return parts.join(' ');
14
+ }
15
+ function getBend(a, b, c, size) {
16
+ const x = b.x;
17
+ const y = b.y;
18
+ if (size <= 0) {
19
+ return `L ${x} ${y}`;
20
+ }
21
+ const collinearX = Math.abs(a.x - x) <= EPS && Math.abs(x - c.x) <= EPS;
22
+ const collinearY = Math.abs(a.y - y) <= EPS && Math.abs(y - c.y) <= EPS;
23
+ if (collinearX || collinearY) {
24
+ return `L ${x} ${y}`;
25
+ }
26
+ const ab = Math.hypot(x - a.x, y - a.y);
27
+ const bc = Math.hypot(c.x - x, c.y - y);
28
+ const bendSize = Math.min(ab * 0.5, bc * 0.5, size);
29
+ if (bendSize < MIN_VISIBLE) {
30
+ return `L ${x} ${y}`;
31
+ }
32
+ const incomingHorizontal = Math.abs(a.y - y) <= EPS;
33
+ if (incomingHorizontal) {
34
+ const xDir = a.x < c.x ? -1 : 1;
35
+ const yDir = a.y < c.y ? 1 : -1;
36
+ const lx = x + bendSize * xDir;
37
+ const qy = y + bendSize * yDir;
38
+ return `L ${lx} ${y} Q ${x} ${y} ${x} ${qy}`;
39
+ }
40
+ const xDir = a.x < c.x ? 1 : -1;
41
+ const yDir = a.y < c.y ? -1 : 1;
42
+ const ly = y + bendSize * yDir;
43
+ const qx = x + bendSize * xDir;
44
+ return `L ${x} ${ly} Q ${x} ${y} ${qx} ${y}`;
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNlZ21lbnQtbGluZS1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvYnVpbGRlcnMvc2VnbWVudC1saW5lL2NyZWF0ZS1zZWdtZW50LWxpbmUtcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDakIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDO0FBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUV6QixNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBZ0IsRUFBRSxZQUFvQjtJQUMxRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3hCLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztJQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU5QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFB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QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQztJQUMvQixNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQztJQUUvQixPQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbmNvbnN0IEVQUyA9IDFlLTY7XG5jb25zdCBFTkRfRVBTID0gMC4wMDAyO1xuY29uc3QgTUlOX1ZJU0lCTEUgPSAwLjc1O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VnbWVudExpbmVQYXRoKHBvaW50czogSVBvaW50W10sIGJvcmRlclJhZGl1czogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgbiA9IHBvaW50cy5sZW5ndGg7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBwYXJ0cy5wdXNoKGBNICR7cG9pbnRzWzBdLnh9ICR7cG9pbnRzWzBdLnl9YCk7XG5cbiAgZm9yIChsZXQgaSA9IDE7IGkgPCBuIC0gMTsgaSsrKSB7XG4gICAgcGFydHMucHVzaChnZXRCZW5kKHBvaW50c1tpIC0gMV0sIHBvaW50c1tpXSwgcG9pbnRzW2kgKyAxXSwgYm9yZGVyUmFkaXVzKSk7XG4gIH1cblxuICBjb25zdCBsYXN0ID0gcG9pbnRzW24gLSAxXTtcbiAgcGFydHMucHVzaChgTCAke2xhc3QueCArIEVORF9FUFN9ICR7bGFzdC55ICsgRU5EX0VQU31gKTtcblxuICByZXR1cm4gcGFydHMuam9pbignICcpO1xufVxuXG5mdW5jdGlvbiBnZXRCZW5kKGE6IElQb2ludCwgYjogSVBvaW50LCBjOiBJUG9pbnQsIHNpemU6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IHggPSBiLng7XG4gIGNvbnN0IHkgPSBiLnk7XG5cbiAgaWYgKHNpemUgPD0gMCkge1xuICAgIHJldHVybiBgTCAke3h9ICR7eX1gO1xuICB9XG5cbiAgY29uc3QgY29sbGluZWFyWCA9IE1hdGguYWJzKGEueCAtIHgpIDw9IEVQUyAmJiBNYXRoLmFicyh4IC0gYy54KSA8PSBFUFM7XG4gIGNvbnN0IGNvbGxpbmVhclkgPSBNYXRoLmFicyhhLnkgLSB5KSA8PSBFUFMgJiYgTWF0aC5hYnMoeSAtIGMueSkgPD0gRVBTO1xuICBpZiAoY29sbGluZWFyWCB8fCBjb2xsaW5lYXJZKSB7XG4gICAgcmV0dXJuIGBMICR7eH0gJHt5fWA7XG4gIH1cblxuICBjb25zdCBhYiA9IE1hdGguaHlwb3QoeCAtIGEueCwgeSAtIGEueSk7XG4gIGNvbnN0IGJjID0gTWF0aC5oeXBvdChjLnggLSB4LCBjLnkgLSB5KTtcblxuICBjb25zdCBiZW5kU2l6ZSA9IE1hdGgubWluKGFiICogMC41LCBiYyAqIDAuNSwgc2l6ZSk7XG5cbiAgaWYgKGJlbmRTaXplIDwgTUlOX1ZJU0lCTEUpIHtcbiAgICByZXR1cm4gYEwgJHt4fSAke3l9YDtcbiAgfVxuXG4gIGNvbnN0IGluY29taW5nSG9yaXpvbnRhbCA9IE1hdGguYWJzKGEueSAtIHkpIDw9IEVQUztcblxuICBpZiAoaW5jb21pbmdIb3Jpem9udGFsKSB7XG4gICAgY29uc3QgeERpciA9IGEueCA8IGMueCA/IC0xIDogMTtcbiAgICBjb25zdCB5RGlyID0gYS55IDwgYy55ID8gMSA6IC0xO1xuXG4gICAgY29uc3QgbHggPSB4ICsgYmVuZFNpemUgKiB4RGlyO1xuICAgIGNvbnN0IHF5ID0geSArIGJlbmRTaXplICogeURpcjtcblxuICAgIHJldHVybiBgTCAke2x4fSAke3l9IFEgJHt4fSAke3l9ICR7eH0gJHtxeX1gO1xuICB9XG5cbiAgY29uc3QgeERpciA9IGEueCA8IGMueCA/IDEgOiAtMTtcbiAgY29uc3QgeURpciA9IGEueSA8IGMueSA/IC0xIDogMTtcblxuICBjb25zdCBseSA9IHkgKyBiZW5kU2l6ZSAqIHlEaXI7XG4gIGNvbnN0IHF4ID0geCArIGJlbmRTaXplICogeERpcjtcblxuICByZXR1cm4gYEwgJHt4fSAke2x5fSBRICR7eH0gJHt5fSAke3F4fSAke3l9YDtcbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './build-corner-mid-points-and-apply-offsets';
2
+ export * from './calculate-segment-line-data';
3
+ export * from './create-segment-line-path';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy9zZWdtZW50LWxpbmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J1aWxkLWNvcm5lci1taWQtcG9pbnRzLWFuZC1hcHBseS1vZmZzZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLXNlZ21lbnQtbGluZS1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLXNlZ21lbnQtbGluZS1wYXRoJztcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { buildConnectionAnchors } from '../utils';
2
+ const EPS = 0.0002;
3
+ export class CalculateStraightLineData {
4
+ handle(request) {
5
+ const anchors = buildConnectionAnchors(request.source, request.target, request.waypoints);
6
+ const n = anchors.length;
7
+ const p0 = anchors[0];
8
+ let d = `M ${p0.x} ${p0.y}`;
9
+ const candidates = new Array(n - 1);
10
+ for (let i = 0; i < n - 1; i++) {
11
+ const a = anchors[i];
12
+ const b = anchors[i + 1];
13
+ const isLast = i === n - 2;
14
+ const bx = isLast ? b.x + EPS : b.x;
15
+ const by = isLast ? b.y + EPS : b.y;
16
+ d += ` L ${bx} ${by}`;
17
+ candidates[i] = { x: (a.x + b.x) * 0.5, y: (a.y + b.y) * 0.5 };
18
+ }
19
+ return {
20
+ path: d,
21
+ candidates,
22
+ points: anchors,
23
+ secondPoint: anchors[1] ?? request.target,
24
+ penultimatePoint: anchors[n - 2] ?? request.source,
25
+ };
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLXN0cmFpZ2h0LWxpbmUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL3V0aWxzL2Nvbm5lY3Rpb24tbGluZS1idWlsZGVyL2J1aWxkZXJzL3N0cmFpZ2h0LWxpbmUvY2FsY3VsYXRlLXN0cmFpZ2h0LWxpbmUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDO0FBRW5CLE1BQU0sT0FBTyx5QkFBeUI7SUFDN0IsTUFBTSxDQUFDLE9BQW1DO1FBQy9DLE1BQU0sT0FBTyxHQUFHLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFMUYsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUV6QixNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUU1QixNQUFNLFVBQVUsR0FBYSxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFOUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMvQixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV6QixNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEMsQ0FBQyxJQUFJLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBRXRCLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNqRSxDQUFDO1FBRUQsT0FBTztZQUNMLElBQUksRUFBRSxDQUFDO1lBQ1AsVUFBVTtZQUNWLE1BQU0sRUFBRSxPQUFPO1lBQ2YsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTTtZQUN6QyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNO1NBQ25ELENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJRkNvbm5lY3Rpb25CdWlsZGVyLFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCxcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgYnVpbGRDb25uZWN0aW9uQW5jaG9ycyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5jb25zdCBFUFMgPSAwLjAwMDI7XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVTdHJhaWdodExpbmVEYXRhIGltcGxlbWVudHMgSUZDb25uZWN0aW9uQnVpbGRlciB7XG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QpOiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2Uge1xuICAgIGNvbnN0IGFuY2hvcnMgPSBidWlsZENvbm5lY3Rpb25BbmNob3JzKHJlcXVlc3Quc291cmNlLCByZXF1ZXN0LnRhcmdldCwgcmVxdWVzdC53YXlwb2ludHMpO1xuXG4gICAgY29uc3QgbiA9IGFuY2hvcnMubGVuZ3RoO1xuXG4gICAgY29uc3QgcDAgPSBhbmNob3JzWzBdO1xuICAgIGxldCBkID0gYE0gJHtwMC54fSAke3AwLnl9YDtcblxuICAgIGNvbnN0IGNhbmRpZGF0ZXM6IElQb2ludFtdID0gbmV3IEFycmF5KG4gLSAxKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbiAtIDE7IGkrKykge1xuICAgICAgY29uc3QgYSA9IGFuY2hvcnNbaV07XG4gICAgICBjb25zdCBiID0gYW5jaG9yc1tpICsgMV07XG5cbiAgICAgIGNvbnN0IGlzTGFzdCA9IGkgPT09IG4gLSAyO1xuICAgICAgY29uc3QgYnggPSBpc0xhc3QgPyBiLnggKyBFUFMgOiBiLng7XG4gICAgICBjb25zdCBieSA9IGlzTGFzdCA/IGIueSArIEVQUyA6IGIueTtcblxuICAgICAgZCArPSBgIEwgJHtieH0gJHtieX1gO1xuXG4gICAgICBjYW5kaWRhdGVzW2ldID0geyB4OiAoYS54ICsgYi54KSAqIDAuNSwgeTogKGEueSArIGIueSkgKiAwLjUgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogZCxcbiAgICAgIGNhbmRpZGF0ZXMsXG4gICAgICBwb2ludHM6IGFuY2hvcnMsXG4gICAgICBzZWNvbmRQb2ludDogYW5jaG9yc1sxXSA/PyByZXF1ZXN0LnRhcmdldCxcbiAgICAgIHBlbnVsdGltYXRlUG9pbnQ6IGFuY2hvcnNbbiAtIDJdID8/IHJlcXVlc3Quc291cmNlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './calculate-straight-line-data';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy9zdHJhaWdodC1saW5lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0ZS1zdHJhaWdodC1saW5lLWRhdGEnO1xuIl19
@@ -0,0 +1,4 @@
1
+ export function buildConnectionAnchors(source, target, waypoints) {
2
+ return [source, ...(waypoints ?? []), target];
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY29ubmVjdGlvbi1hbmNob3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvYnVpbGRlcnMvdXRpbHMvYnVpbGQtY29ubmVjdGlvbi1hbmNob3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsTUFBYyxFQUNkLE1BQWMsRUFDZCxTQUFvQjtJQUVwQixPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDb25uZWN0aW9uQW5jaG9ycyhcbiAgc291cmNlOiBJUG9pbnQsXG4gIHRhcmdldDogSVBvaW50LFxuICB3YXlwb2ludHM/OiBJUG9pbnRbXSxcbik6IElQb2ludFtdIHtcbiAgcmV0dXJuIFtzb3VyY2UsIC4uLih3YXlwb2ludHMgPz8gW10pLCB0YXJnZXRdO1xufVxuIl19
@@ -0,0 +1,8 @@
1
+ export function calculateCenterBetweenPoints(source, target) {
2
+ const offsetX = Math.abs(target.x - source.x) / 2;
3
+ const centerX = target.x < source.x ? target.x + offsetX : target.x - offsetX;
4
+ const offsetY = Math.abs(target.y - source.y) / 2;
5
+ const centerY = target.y < source.y ? target.y + offsetY : target.y - offsetY;
6
+ return { x: centerX, y: centerY };
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNlbnRlci1iZXR3ZWVuLXBvaW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL3V0aWxzL2Nvbm5lY3Rpb24tbGluZS1idWlsZGVyL2J1aWxkZXJzL3V0aWxzL2NhbGN1bGF0ZS1jZW50ZXItYmV0d2Vlbi1wb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLDRCQUE0QixDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQ3pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBRTlFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBRTlFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVDZW50ZXJCZXR3ZWVuUG9pbnRzKHNvdXJjZTogSVBvaW50LCB0YXJnZXQ6IElQb2ludCk6IElQb2ludCB7XG4gIGNvbnN0IG9mZnNldFggPSBNYXRoLmFicyh0YXJnZXQueCAtIHNvdXJjZS54KSAvIDI7XG4gIGNvbnN0IGNlbnRlclggPSB0YXJnZXQueCA8IHNvdXJjZS54ID8gdGFyZ2V0LnggKyBvZmZzZXRYIDogdGFyZ2V0LnggLSBvZmZzZXRYO1xuXG4gIGNvbnN0IG9mZnNldFkgPSBNYXRoLmFicyh0YXJnZXQueSAtIHNvdXJjZS55KSAvIDI7XG4gIGNvbnN0IGNlbnRlclkgPSB0YXJnZXQueSA8IHNvdXJjZS55ID8gdGFyZ2V0LnkgKyBvZmZzZXRZIDogdGFyZ2V0LnkgLSBvZmZzZXRZO1xuXG4gIHJldHVybiB7IHg6IGNlbnRlclgsIHk6IGNlbnRlclkgfTtcbn1cbiJdfQ==