@foblex/flow 17.9.21 → 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 (752) hide show
  1. package/LICENSE +1 -1
  2. package/domain/css-cls.d.ts +0 -3
  3. package/domain/f-background/add-pattern-to-background/{add-pattern-to-background.execution.d.ts → add-pattern-to-background.d.ts} +4 -3
  4. package/domain/f-background/add-pattern-to-background/index.d.ts +1 -1
  5. package/domain/f-background/providers.d.ts +2 -2
  6. package/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.d.ts +3 -3
  7. 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
  8. package/domain/f-connection/add-connection-for-create-to-store/index.d.ts +1 -1
  9. package/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.d.ts +3 -3
  10. 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
  11. package/domain/f-connection/add-connection-marker-to-store/index.d.ts +1 -1
  12. package/domain/f-connection/add-connection-to-store/add-connection-to-store-request.d.ts +3 -3
  13. package/domain/f-connection/add-connection-to-store/{add-connection-to-store.execution.d.ts → add-connection-to-store.d.ts} +4 -4
  14. package/domain/f-connection/add-connection-to-store/index.d.ts +1 -1
  15. package/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.d.ts +3 -3
  16. 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
  17. package/domain/f-connection/add-snap-connection-to-store/index.d.ts +1 -1
  18. package/domain/f-connection/create-connection-markers/create-connection-markers-request.d.ts +3 -3
  19. package/domain/f-connection/create-connection-markers/{create-connection-markers.execution.d.ts → create-connection-markers.d.ts} +7 -8
  20. package/domain/f-connection/create-connection-markers/index.d.ts +1 -1
  21. package/domain/f-connection/index.d.ts +1 -1
  22. package/domain/f-connection/providers.d.ts +11 -11
  23. package/domain/f-connection/redraw-connections/redraw-connections.d.ts +6 -4
  24. package/domain/f-connection/remove-connection-for-create-from-store/index.d.ts +1 -1
  25. 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
  26. package/domain/f-connection/remove-connection-from-store/index.d.ts +1 -1
  27. package/domain/f-connection/remove-connection-from-store/remove-connection-from-store-request.d.ts +3 -3
  28. package/domain/f-connection/remove-connection-from-store/{remove-connection-from-store.execution.d.ts → remove-connection-from-store.d.ts} +4 -5
  29. package/domain/f-connection/remove-connection-marker-from-store/index.d.ts +1 -1
  30. package/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.d.ts +3 -3
  31. 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
  32. package/domain/f-connection/remove-connection-waypoint/index.d.ts +2 -0
  33. package/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint-request.d.ts +6 -0
  34. package/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint.d.ts +11 -0
  35. package/domain/f-connection/remove-snap-connection-from-store/index.d.ts +1 -1
  36. 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
  37. package/domain/f-draggable/on-pointer-move/on-pointer-move.execution.d.ts +1 -1
  38. package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.d.ts +1 -1
  39. package/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state-request.d.ts +3 -0
  40. package/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state.d.ts +14 -0
  41. package/domain/f-flow/calculate-flow-state/calculate-connections-state/index.d.ts +2 -0
  42. package/domain/f-flow/calculate-flow-state/calculate-flow-state-request.d.ts +3 -0
  43. package/domain/f-flow/calculate-flow-state/calculate-flow-state.d.ts +17 -0
  44. package/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state-request.d.ts +6 -0
  45. package/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state.d.ts +15 -0
  46. package/domain/f-flow/calculate-flow-state/calculate-nodes-state/index.d.ts +2 -0
  47. package/domain/f-flow/calculate-flow-state/i-f-flow-state-connection.d.ts +13 -0
  48. package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state-connector.d.ts +1 -1
  49. package/domain/f-flow/{get-flow-state → calculate-flow-state}/index.d.ts +4 -4
  50. package/domain/f-flow/calculate-flow-state/providers.d.ts +7 -0
  51. package/domain/f-flow/index.d.ts +1 -1
  52. package/domain/f-flow/providers.d.ts +1 -1
  53. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.d.ts +1 -1
  54. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.d.ts +1 -1
  55. package/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.d.ts +1 -1
  56. package/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.d.ts +1 -1
  57. package/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.d.ts +1 -1
  58. package/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.d.ts +1 -1
  59. package/domain/f-node/calculate-input-connections/calculate-input-connections.d.ts +1 -1
  60. package/domain/f-node/calculate-output-connections/calculate-output-connections.d.ts +1 -1
  61. package/domain/f-selection/calculate-selectable-items/calculate-selectable-items-request.d.ts +3 -0
  62. 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
  63. package/domain/f-selection/calculate-selectable-items/index.d.ts +3 -0
  64. package/domain/f-selection/index.d.ts +1 -1
  65. package/domain/f-selection/providers.d.ts +2 -2
  66. package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.d.ts +2 -2
  67. package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.d.ts +12 -0
  68. package/domain/f-zoom/add-zoom-to-store/index.d.ts +1 -1
  69. package/domain/f-zoom/providers.d.ts +5 -5
  70. package/domain/f-zoom/remove-zoom-from-store/index.d.ts +1 -1
  71. package/domain/f-zoom/remove-zoom-from-store/{remove-zoom-from-store.execution.d.ts → remove-zoom-from-store.d.ts} +3 -3
  72. package/domain/f-zoom/reset-zoom/index.d.ts +1 -1
  73. package/domain/f-zoom/reset-zoom/reset-zoom.d.ts +13 -0
  74. package/domain/f-zoom/set-zoom/index.d.ts +1 -1
  75. package/domain/f-zoom/set-zoom/{set-zoom.execution.d.ts → set-zoom.d.ts} +6 -6
  76. package/domain/index.d.ts +0 -1
  77. package/domain/providers.d.ts +1 -1
  78. package/drag-toolkit/pointer-events/i-pointer-event.d.ts +6 -4
  79. package/esm2022/domain/css-cls.mjs +1 -4
  80. package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.mjs +56 -0
  81. package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.request.mjs +1 -1
  82. package/esm2022/domain/f-background/add-pattern-to-background/index.mjs +2 -2
  83. package/esm2022/domain/f-background/providers.mjs +3 -3
  84. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.mjs +4 -4
  85. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.mjs +25 -0
  86. package/esm2022/domain/f-connection/add-connection-for-create-to-store/index.mjs +2 -2
  87. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.mjs +4 -4
  88. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.mjs +25 -0
  89. package/esm2022/domain/f-connection/add-connection-marker-to-store/index.mjs +2 -2
  90. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store-request.mjs +4 -4
  91. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.mjs +26 -0
  92. package/esm2022/domain/f-connection/add-connection-to-store/index.mjs +2 -2
  93. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.mjs +4 -4
  94. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.mjs +25 -0
  95. package/esm2022/domain/f-connection/add-snap-connection-to-store/index.mjs +2 -2
  96. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers-request.mjs +4 -4
  97. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.mjs +64 -0
  98. package/esm2022/domain/f-connection/create-connection-markers/index.mjs +2 -2
  99. package/esm2022/domain/f-connection/index.mjs +2 -2
  100. package/esm2022/domain/f-connection/providers.mjs +21 -21
  101. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +24 -21
  102. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/index.mjs +2 -2
  103. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.mjs +25 -0
  104. package/esm2022/domain/f-connection/remove-connection-from-store/index.mjs +2 -2
  105. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store-request.mjs +4 -4
  106. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.mjs +33 -0
  107. package/esm2022/domain/f-connection/remove-connection-marker-from-store/index.mjs +2 -2
  108. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.mjs +4 -4
  109. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.mjs +25 -0
  110. package/esm2022/domain/f-connection/remove-connection-waypoint/index.mjs +3 -0
  111. package/esm2022/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint-request.mjs +10 -0
  112. package/esm2022/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint.mjs +40 -0
  113. package/esm2022/domain/f-connection/remove-snap-connection-from-store/index.mjs +2 -2
  114. package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.mjs +25 -0
  115. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.mjs +1 -1
  116. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.mjs +1 -1
  117. package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store-request.mjs +1 -1
  118. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.execution.mjs +5 -5
  119. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence-request.mjs +1 -1
  120. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.mjs +3 -5
  121. package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state-request.mjs +4 -0
  122. package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state.mjs +38 -0
  123. package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/index.mjs +3 -0
  124. package/esm2022/domain/f-flow/calculate-flow-state/calculate-flow-state-request.mjs +4 -0
  125. package/esm2022/domain/f-flow/calculate-flow-state/calculate-flow-state.mjs +45 -0
  126. package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state-request.mjs +8 -0
  127. package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state.mjs +58 -0
  128. package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/index.mjs +3 -0
  129. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-connection.mjs +2 -0
  130. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-connector.mjs +2 -0
  131. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-node.mjs +2 -0
  132. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state.mjs +2 -0
  133. package/esm2022/domain/f-flow/calculate-flow-state/index.mjs +10 -0
  134. package/esm2022/domain/f-flow/calculate-flow-state/providers.mjs +12 -0
  135. package/esm2022/domain/f-flow/index.mjs +2 -2
  136. package/esm2022/domain/f-flow/providers.mjs +2 -2
  137. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +1 -1
  138. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.mjs +2 -2
  139. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.mjs +2 -2
  140. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.mjs +2 -2
  141. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.mjs +1 -1
  142. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.mjs +2 -2
  143. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.mjs +2 -2
  144. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.mjs +1 -1
  145. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.mjs +1 -1
  146. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +2 -2
  147. package/esm2022/domain/f-selection/calculate-selectable-items/calculate-selectable-items-request.mjs +4 -0
  148. package/esm2022/domain/f-selection/calculate-selectable-items/calculate-selectable-items.mjs +70 -0
  149. package/esm2022/domain/f-selection/calculate-selectable-items/i-can-be-selected-element-and-rect.mjs +2 -0
  150. package/esm2022/domain/f-selection/calculate-selectable-items/index.mjs +4 -0
  151. package/esm2022/domain/f-selection/clear-selection/clear-selection.request.mjs +1 -1
  152. package/esm2022/domain/f-selection/index.mjs +2 -2
  153. package/esm2022/domain/f-selection/providers.mjs +3 -3
  154. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.mjs +4 -4
  155. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.mjs +28 -0
  156. package/esm2022/domain/f-zoom/add-zoom-to-store/index.mjs +2 -2
  157. package/esm2022/domain/f-zoom/providers.mjs +6 -11
  158. package/esm2022/domain/f-zoom/remove-zoom-from-store/index.mjs +2 -2
  159. package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.mjs +28 -0
  160. package/esm2022/domain/f-zoom/reset-zoom/index.mjs +2 -2
  161. package/esm2022/domain/f-zoom/reset-zoom/reset-zoom.mjs +30 -0
  162. package/esm2022/domain/f-zoom/set-zoom/index.mjs +2 -2
  163. package/esm2022/domain/f-zoom/set-zoom/set-zoom.mjs +54 -0
  164. package/esm2022/domain/index.mjs +1 -2
  165. package/esm2022/drag-toolkit/event.extensions.mjs +2 -2
  166. package/esm2022/drag-toolkit/pointer-events/i-pointer-event.mjs +15 -10
  167. package/esm2022/f-canvas/domain/{f-canvas-change.event.mjs → f-canvas-change-event.mjs} +1 -1
  168. package/esm2022/f-canvas/domain/index.mjs +2 -2
  169. package/esm2022/f-canvas/f-canvas-base.mjs +7 -5
  170. package/esm2022/f-canvas/f-canvas.component.mjs +26 -36
  171. package/esm2022/f-connection/f-connection/f-connection.component.mjs +10 -24
  172. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +13 -18
  173. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +9 -15
  174. package/esm2022/f-connection/index.mjs +2 -7
  175. package/esm2022/f-connection/providers.mjs +9 -13
  176. package/esm2022/f-connection-v2/components/connection-content/f-connection-content.mjs +76 -0
  177. package/esm2022/f-connection-v2/components/connection-content/index.mjs +4 -0
  178. package/esm2022/f-connection-v2/components/connection-content/models/f-connection-content-base.mjs +10 -0
  179. package/esm2022/f-connection-v2/components/connection-content/models/index.mjs +2 -0
  180. package/esm2022/f-connection-v2/components/connection-content/utils/i-polyline-content.mjs +2 -0
  181. package/esm2022/f-connection-v2/components/connection-content/utils/index.mjs +6 -0
  182. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-content-align.mjs +6 -0
  183. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-content-layout-engine.mjs +25 -0
  184. package/esm2022/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-place.mjs +2 -2
  185. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/i-sampler-result.mjs +2 -0
  186. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/i-tangent.mjs +2 -0
  187. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/index.mjs +5 -0
  188. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/polyline-sampler.mjs +143 -0
  189. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/polyline.mjs +71 -0
  190. package/esm2022/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-end.mjs +35 -0
  191. package/esm2022/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-start.mjs +35 -0
  192. package/esm2022/f-connection-v2/components/connection-drag-handles/index.mjs +4 -0
  193. package/esm2022/f-connection-v2/components/connection-drag-handles/models/f-connection-drag-handle-base.mjs +17 -0
  194. package/esm2022/f-connection-v2/components/connection-drag-handles/models/index.mjs +2 -0
  195. package/esm2022/f-connection-v2/components/connection-gradient/f-connection-gradient.mjs +54 -0
  196. package/esm2022/f-connection-v2/components/connection-gradient/index.mjs +3 -0
  197. package/esm2022/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.mjs +6 -0
  198. package/esm2022/f-connection-v2/components/connection-gradient/models/index.mjs +2 -0
  199. package/esm2022/f-connection-v2/components/connection-marker/enums/e-f-marker-type.mjs +8 -0
  200. package/esm2022/f-connection-v2/components/connection-marker/enums/index.mjs +2 -0
  201. package/esm2022/f-connection-v2/components/connection-marker/f-connection-marker.mjs +50 -0
  202. package/esm2022/f-connection-v2/components/connection-marker/index.mjs +4 -0
  203. package/esm2022/f-connection-v2/components/connection-marker/models/f-connection-marker-base.mjs +6 -0
  204. package/esm2022/f-connection-v2/components/connection-marker/models/index.mjs +2 -0
  205. package/esm2022/f-connection-v2/components/connection-path/f-connection-path.mjs +66 -0
  206. package/esm2022/f-connection-v2/components/connection-path/index.mjs +3 -0
  207. package/esm2022/f-connection-v2/components/connection-path/models/f-connection-path-base.mjs +6 -0
  208. package/esm2022/f-connection-v2/components/connection-path/models/index.mjs +2 -0
  209. package/esm2022/f-connection-v2/components/connection-selection/f-connection-selection.mjs +34 -0
  210. package/esm2022/f-connection-v2/components/connection-selection/index.mjs +3 -0
  211. package/esm2022/f-connection-v2/components/connection-selection/models/f-connection-selection-base.mjs +6 -0
  212. package/esm2022/f-connection-v2/components/connection-selection/models/index.mjs +2 -0
  213. package/esm2022/f-connection-v2/components/connection-waypoints/f-connection-waypoints.mjs +50 -0
  214. package/esm2022/f-connection-v2/components/connection-waypoints/index.mjs +4 -0
  215. package/esm2022/f-connection-v2/components/connection-waypoints/models/f-connection-waypoints-base.mjs +27 -0
  216. package/esm2022/f-connection-v2/components/connection-waypoints/models/index.mjs +2 -0
  217. package/esm2022/f-connection-v2/components/connection-waypoints/utils/find-existing-waypoint.mjs +7 -0
  218. package/esm2022/f-connection-v2/components/connection-waypoints/utils/find-waypoint-candidate.mjs +7 -0
  219. package/esm2022/f-connection-v2/components/connection-waypoints/utils/index.mjs +5 -0
  220. package/esm2022/f-connection-v2/components/connection-waypoints/utils/is-pointer-inside-point.mjs +4 -0
  221. package/esm2022/f-connection-v2/components/connection-waypoints/utils/pick-waypoint.mjs +16 -0
  222. package/esm2022/f-connection-v2/components/f-connection-base.mjs +112 -0
  223. package/esm2022/f-connection-v2/components/index.mjs +9 -0
  224. package/esm2022/f-connection-v2/enums/e-f-connectable-side.mjs +12 -0
  225. package/esm2022/f-connection-v2/enums/e-f-connection-type.mjs +8 -0
  226. package/esm2022/f-connection-v2/enums/index.mjs +3 -0
  227. package/esm2022/f-connection-v2/index.mjs +5 -0
  228. package/esm2022/f-connection-v2/models/f-connection-components-parent.mjs +5 -0
  229. package/esm2022/f-connection-v2/models/f-connection-waypoints-changed-event.mjs +9 -0
  230. package/esm2022/f-connection-v2/models/index.mjs +3 -0
  231. package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.mjs +15 -0
  232. package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder.mjs +136 -0
  233. package/esm2022/f-connection-v2/utils/connection-behaviour/enums/e-f-connection-behavior.mjs +7 -0
  234. package/esm2022/f-connection-v2/utils/connection-behaviour/enums/e-f-connection-connectable-side.mjs +12 -0
  235. package/esm2022/f-connection-v2/utils/connection-behaviour/enums/index.mjs +3 -0
  236. package/esm2022/f-connection-v2/utils/connection-behaviour/index.mjs +6 -0
  237. package/esm2022/f-connection-v2/utils/connection-behaviour/models/i-calculate-behavior-request.mjs +2 -0
  238. package/esm2022/f-connection-v2/utils/connection-behaviour/models/index.mjs +2 -0
  239. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/fixed-center-behavior.mjs +12 -0
  240. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/fixed-outbound-behavior.mjs +31 -0
  241. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/floating-behavior.mjs +22 -0
  242. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/index.mjs +4 -0
  243. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/calculate-adaptive-curve-data.mjs +74 -0
  244. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/index.mjs +2 -0
  245. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/calculate-bezier-curve-data.mjs +49 -0
  246. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/index.mjs +2 -0
  247. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/index.mjs +6 -0
  248. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/build-corner-mid-points-and-apply-offsets.mjs +50 -0
  249. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/calculate-segment-line-data.mjs +106 -0
  250. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/create-segment-line-path.mjs +46 -0
  251. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/index.mjs +4 -0
  252. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/straight-line/calculate-straight-line-data.mjs +28 -0
  253. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/straight-line/index.mjs +2 -0
  254. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/build-connection-anchors.mjs +4 -0
  255. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-center-between-points.mjs +8 -0
  256. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-curve-candidates.mjs +7 -0
  257. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-polyline-candidates.mjs +39 -0
  258. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/index.mjs +9 -0
  259. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/merge-point-chains.mjs +12 -0
  260. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/multi-cubic.mjs +28 -0
  261. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/normalize-polyline.mjs +30 -0
  262. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/sample-cubic-bezier-uniform.mjs +37 -0
  263. package/esm2022/f-connection-v2/utils/connection-line-builder/connection-line-builder-request.mjs +9 -0
  264. package/esm2022/f-connection-v2/utils/connection-line-builder/connection-line-builder.mjs +50 -0
  265. package/esm2022/f-connection-v2/utils/connection-line-builder/index.mjs +6 -0
  266. package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder-request.mjs +2 -0
  267. package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder-response.mjs +2 -0
  268. package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder.mjs +2 -0
  269. package/esm2022/f-connection-v2/utils/connection-line-builder/models/index.mjs +4 -0
  270. package/esm2022/f-connection-v2/utils/connection-line-builder/providers/f-connection-builders.mjs +3 -0
  271. package/esm2022/f-connection-v2/utils/connection-line-builder/providers/index.mjs +2 -0
  272. package/esm2022/f-connection-v2/utils/create-connection-dom-identifier.mjs +5 -0
  273. package/esm2022/f-connection-v2/utils/create-connection-selection-dom-identifier.mjs +5 -0
  274. package/esm2022/f-connection-v2/utils/create-gradient-dom-identifier.mjs +5 -0
  275. package/esm2022/f-connection-v2/utils/create-gradient-dom-url.mjs +5 -0
  276. package/esm2022/f-connection-v2/utils/index.mjs +7 -0
  277. package/esm2022/f-connectors/f-connector-base.mjs +2 -2
  278. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +2 -2
  279. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +2 -2
  280. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +2 -2
  281. package/esm2022/f-connectors/f-source-connector-base.mjs +8 -1
  282. package/esm2022/f-connectors/index.mjs +1 -2
  283. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +1 -1
  284. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.mjs +1 -8
  285. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +8 -6
  286. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.mjs +6 -3
  287. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +8 -5
  288. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +8 -5
  289. package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.mjs +1 -1
  290. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +22 -27
  291. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.mjs +8 -7
  292. package/esm2022/f-draggable/f-connection/index.mjs +2 -1
  293. package/esm2022/f-draggable/f-connection/move-connection-waypoint/index.mjs +4 -0
  294. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/index.mjs +3 -0
  295. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize-request.mjs +8 -0
  296. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize.mjs +32 -0
  297. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-handler.mjs +49 -0
  298. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/index.mjs +3 -0
  299. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation-request.mjs +10 -0
  300. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation.mjs +65 -0
  301. package/esm2022/f-draggable/f-connection/providers.mjs +5 -2
  302. package/esm2022/f-draggable/f-drag-handler/i-f-drag-handler.mjs +1 -1
  303. package/esm2022/f-draggable/f-draggable-base.mjs +2 -2
  304. package/esm2022/f-draggable/f-draggable.directive.mjs +20 -9
  305. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +6 -3
  306. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/source-connection.drag-handler.mjs +1 -1
  307. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.mjs +1 -1
  308. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/target-connection.drag-handler.mjs +1 -1
  309. 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
  310. 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
  311. package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.mjs +1 -1
  312. package/esm2022/f-draggable/f-node-move/move-drag-handler.mjs +7 -5
  313. package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.mjs +19 -14
  314. package/esm2022/f-draggable/f-node-move/move-preparation/index.mjs +3 -3
  315. package/esm2022/f-draggable/f-node-move/move-preparation/move-node-preparation-request.mjs +10 -0
  316. package/esm2022/f-draggable/f-node-move/move-preparation/move-node-preparation.mjs +81 -0
  317. package/esm2022/f-draggable/f-node-move/move-summary-drag-handler.mjs +1 -1
  318. package/esm2022/f-draggable/f-node-move/providers.mjs +3 -3
  319. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.mjs +1 -1
  320. package/esm2022/f-draggable/index.mjs +3 -2
  321. package/esm2022/f-draggable/pinch-to-zoom/constants/constants.mjs +6 -0
  322. package/esm2022/f-draggable/pinch-to-zoom/constants/index.mjs +2 -0
  323. package/esm2022/f-draggable/pinch-to-zoom/finalize/index.mjs +3 -0
  324. package/esm2022/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize-request.mjs +8 -0
  325. package/esm2022/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize.mjs +31 -0
  326. package/esm2022/f-draggable/pinch-to-zoom/index.mjs +7 -0
  327. package/esm2022/f-draggable/pinch-to-zoom/pinch-to-zoom-handler.mjs +68 -0
  328. package/esm2022/f-draggable/pinch-to-zoom/preparation/index.mjs +3 -0
  329. package/esm2022/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation-request.mjs +8 -0
  330. package/esm2022/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation.mjs +42 -0
  331. package/esm2022/f-draggable/pinch-to-zoom/providers.mjs +4 -0
  332. package/esm2022/f-draggable/pinch-to-zoom/utils/calculate-touch-center.mjs +10 -0
  333. package/esm2022/f-draggable/pinch-to-zoom/utils/calculate-touch-distance.mjs +9 -0
  334. package/esm2022/f-draggable/pinch-to-zoom/utils/index.mjs +3 -0
  335. package/esm2022/f-draggable/providers.mjs +4 -2
  336. package/esm2022/f-draggable/single-select/index.mjs +4 -0
  337. package/esm2022/f-draggable/single-select/providers.mjs +3 -0
  338. package/esm2022/f-draggable/single-select/single-select-request.mjs +10 -0
  339. package/esm2022/f-draggable/single-select/single-select.mjs +139 -0
  340. package/esm2022/f-flow/f-flow.component.mjs +39 -26
  341. package/esm2022/f-flow.module.mjs +38 -37
  342. package/esm2022/f-line-alignment/f-line-alignment-base.mjs +1 -1
  343. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +10 -17
  344. package/esm2022/f-minimap/f-minimap.component.mjs +8 -9
  345. package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +21 -19
  346. package/esm2022/f-storage/f-components-store.mjs +1 -1
  347. package/esm2022/f-storage/features/listen-components-data-changed/index.mjs +2 -2
  348. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes-request.mjs +1 -1
  349. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.mjs +23 -0
  350. package/esm2022/f-storage/features/listen-count-changes/index.mjs +2 -2
  351. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes-request.mjs +1 -1
  352. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.mjs +23 -0
  353. package/esm2022/f-storage/features/listen-transform-changes/index.mjs +3 -3
  354. package/esm2022/f-storage/features/listen-transform-changes/{listen-transform-changes.request.mjs → listen-transform-changes-request.mjs} +1 -1
  355. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.mjs +23 -0
  356. package/esm2022/f-storage/features/notify-data-changed/index.mjs +2 -2
  357. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed-request.mjs +1 -1
  358. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.mjs +22 -0
  359. package/esm2022/f-storage/features/notify-transform-changed/index.mjs +3 -3
  360. package/esm2022/f-storage/features/notify-transform-changed/{notify-transform-changed.request.mjs → notify-transform-changed-request.mjs} +1 -1
  361. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.mjs +22 -0
  362. package/esm2022/f-storage/index.mjs +1 -2
  363. package/esm2022/f-storage/providers.mjs +11 -11
  364. package/esm2022/f-zoom/f-zoom.directive.mjs +44 -45
  365. package/esm2022/public-api.mjs +2 -1
  366. package/esm2022/reactivity/debounce-time.mjs +16 -5
  367. package/esm2022/reactivity/f-channel-hub.mjs +33 -9
  368. package/esm2022/reactivity/index.mjs +2 -1
  369. package/esm2022/reactivity/notify-on-start.mjs +12 -4
  370. package/esm2022/reactivity/take-one.mjs +17 -0
  371. package/esm2022/reactivity/types.mjs +1 -1
  372. package/esm2022/utils/calculate-pointer-in-flow.mjs +9 -0
  373. package/esm2022/utils/index.mjs +2 -1
  374. package/f-canvas/domain/index.d.ts +1 -1
  375. package/f-canvas/f-canvas-base.d.ts +2 -2
  376. package/f-canvas/f-canvas.component.d.ts +3 -10
  377. package/f-connection/f-connection/f-connection.component.d.ts +2 -7
  378. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +2 -6
  379. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +2 -6
  380. package/f-connection/index.d.ts +1 -6
  381. package/f-connection/providers.d.ts +3 -4
  382. package/{f-connection/f-connection-content → f-connection-v2/components/connection-content}/f-connection-content.d.ts +3 -30
  383. package/f-connection-v2/components/connection-content/index.d.ts +3 -0
  384. package/f-connection-v2/components/connection-content/models/f-connection-content-base.d.ts +36 -0
  385. package/f-connection-v2/components/connection-content/models/index.d.ts +1 -0
  386. package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-layout-engine.d.ts +1 -9
  387. package/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-end.d.ts +8 -0
  388. package/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-start.d.ts +8 -0
  389. package/f-connection-v2/components/connection-drag-handles/index.d.ts +3 -0
  390. package/f-connection-v2/components/connection-drag-handles/models/f-connection-drag-handle-base.d.ts +11 -0
  391. package/f-connection-v2/components/connection-drag-handles/models/index.d.ts +1 -0
  392. 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
  393. package/f-connection-v2/components/connection-gradient/index.d.ts +2 -0
  394. package/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.d.ts +8 -0
  395. package/f-connection-v2/components/connection-gradient/models/index.d.ts +1 -0
  396. package/f-connection-v2/components/connection-marker/enums/index.d.ts +1 -0
  397. package/f-connection-v2/components/connection-marker/f-connection-marker.d.ts +17 -0
  398. package/f-connection-v2/components/connection-marker/index.d.ts +3 -0
  399. 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
  400. package/f-connection-v2/components/connection-marker/models/index.d.ts +1 -0
  401. package/f-connection-v2/components/connection-path/f-connection-path.d.ts +14 -0
  402. package/f-connection-v2/components/connection-path/index.d.ts +2 -0
  403. package/f-connection-v2/components/connection-path/models/f-connection-path-base.d.ts +9 -0
  404. package/f-connection-v2/components/connection-path/models/index.d.ts +1 -0
  405. package/f-connection-v2/components/connection-selection/f-connection-selection.d.ts +9 -0
  406. package/f-connection-v2/components/connection-selection/index.d.ts +2 -0
  407. package/f-connection-v2/components/connection-selection/models/f-connection-selection-base.d.ts +6 -0
  408. package/f-connection-v2/components/connection-selection/models/index.d.ts +1 -0
  409. package/f-connection-v2/components/connection-waypoints/f-connection-waypoints.d.ts +19 -0
  410. package/f-connection-v2/components/connection-waypoints/index.d.ts +3 -0
  411. package/f-connection-v2/components/connection-waypoints/models/f-connection-waypoints-base.d.ts +16 -0
  412. package/f-connection-v2/components/connection-waypoints/models/index.d.ts +1 -0
  413. package/f-connection-v2/components/connection-waypoints/utils/find-existing-waypoint.d.ts +6 -0
  414. package/f-connection-v2/components/connection-waypoints/utils/find-waypoint-candidate.d.ts +6 -0
  415. package/f-connection-v2/components/connection-waypoints/utils/index.d.ts +4 -0
  416. package/f-connection-v2/components/connection-waypoints/utils/is-pointer-inside-point.d.ts +2 -0
  417. package/f-connection-v2/components/connection-waypoints/utils/pick-waypoint.d.ts +17 -0
  418. package/{f-connection/common → f-connection-v2/components}/f-connection-base.d.ts +14 -31
  419. package/f-connection-v2/components/index.d.ts +8 -0
  420. package/f-connection-v2/enums/index.d.ts +2 -0
  421. package/f-connection-v2/index.d.ts +4 -0
  422. package/f-connection-v2/models/f-connection-components-parent.d.ts +15 -0
  423. package/f-connection-v2/models/f-connection-waypoints-changed-event.d.ts +6 -0
  424. package/f-connection-v2/models/index.d.ts +2 -0
  425. package/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.d.ts +11 -0
  426. 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
  427. package/f-connection-v2/utils/connection-behaviour/enums/index.d.ts +2 -0
  428. package/f-connection-v2/utils/connection-behaviour/index.d.ts +5 -0
  429. 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
  430. package/f-connection-v2/utils/connection-behaviour/models/index.d.ts +1 -0
  431. package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/fixed-center-behavior.d.ts +2 -2
  432. package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/fixed-outbound-behavior.d.ts +2 -2
  433. package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/floating-behavior.d.ts +2 -2
  434. package/f-connection-v2/utils/connection-behaviour/utils/index.d.ts +3 -0
  435. package/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/calculate-adaptive-curve-data.d.ts +8 -0
  436. package/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/index.d.ts +1 -0
  437. package/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/calculate-bezier-curve-data.d.ts +4 -0
  438. package/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/index.d.ts +1 -0
  439. package/f-connection-v2/utils/connection-line-builder/builders/index.d.ts +5 -0
  440. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/build-corner-mid-points-and-apply-offsets.d.ts +17 -0
  441. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/calculate-segment-line-data.d.ts +6 -0
  442. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/create-segment-line-path.d.ts +2 -0
  443. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/index.d.ts +3 -0
  444. 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
  445. package/f-connection-v2/utils/connection-line-builder/builders/straight-line/index.d.ts +1 -0
  446. package/f-connection-v2/utils/connection-line-builder/builders/utils/build-connection-anchors.d.ts +2 -0
  447. package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-center-between-points.d.ts +2 -0
  448. package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-curve-candidates.d.ts +3 -0
  449. package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-polyline-candidates.d.ts +2 -0
  450. package/f-connection-v2/utils/connection-line-builder/builders/utils/index.d.ts +8 -0
  451. package/f-connection-v2/utils/connection-line-builder/builders/utils/merge-point-chains.d.ts +2 -0
  452. package/f-connection-v2/utils/connection-line-builder/builders/utils/multi-cubic.d.ts +10 -0
  453. package/f-connection-v2/utils/connection-line-builder/builders/utils/normalize-polyline.d.ts +2 -0
  454. package/f-connection-v2/utils/connection-line-builder/builders/utils/sample-cubic-bezier-uniform.d.ts +24 -0
  455. package/f-connection-v2/utils/connection-line-builder/connection-line-builder-request.d.ts +7 -0
  456. package/f-connection-v2/utils/connection-line-builder/connection-line-builder.d.ts +13 -0
  457. package/f-connection-v2/utils/connection-line-builder/index.d.ts +5 -0
  458. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder-request.d.ts +2 -1
  459. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder-response.d.ts +2 -2
  460. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder.d.ts +1 -2
  461. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/index.d.ts +1 -4
  462. package/f-connection-v2/utils/connection-line-builder/providers/f-connection-builders.d.ts +4 -0
  463. package/f-connection-v2/utils/connection-line-builder/providers/index.d.ts +1 -0
  464. package/f-connection-v2/utils/create-connection-dom-identifier.d.ts +1 -0
  465. package/f-connection-v2/utils/create-connection-selection-dom-identifier.d.ts +1 -0
  466. package/f-connection-v2/utils/create-gradient-dom-identifier.d.ts +1 -0
  467. package/f-connection-v2/utils/create-gradient-dom-url.d.ts +1 -0
  468. package/f-connection-v2/utils/index.d.ts +6 -0
  469. package/f-connectors/f-connector-base.d.ts +1 -1
  470. package/f-connectors/f-node-input/f-node-input.directive.d.ts +1 -1
  471. package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +1 -1
  472. package/f-connectors/f-node-output/f-node-output.directive.d.ts +1 -1
  473. package/f-connectors/f-source-connector-base.d.ts +3 -0
  474. package/f-connectors/index.d.ts +0 -1
  475. package/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.d.ts +1 -0
  476. package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.d.ts +2 -1
  477. package/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.d.ts +4 -2
  478. package/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.d.ts +4 -2
  479. package/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.d.ts +1 -1
  480. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.d.ts +6 -7
  481. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.d.ts +2 -2
  482. package/f-draggable/f-connection/index.d.ts +1 -0
  483. package/f-draggable/f-connection/move-connection-waypoint/index.d.ts +3 -0
  484. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/index.d.ts +2 -0
  485. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize-request.d.ts +6 -0
  486. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize.d.ts +11 -0
  487. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-handler.d.ts +20 -0
  488. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/index.d.ts +2 -0
  489. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation-request.d.ts +8 -0
  490. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation.d.ts +19 -0
  491. package/f-draggable/f-connection/providers.d.ts +3 -2
  492. package/f-draggable/f-drag-handler/i-f-drag-handler.d.ts +2 -1
  493. package/f-draggable/f-draggable-base.d.ts +3 -1
  494. package/f-draggable/f-draggable.directive.d.ts +5 -1
  495. package/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.d.ts +2 -1
  496. package/f-draggable/f-node-move/connection-drag-handlers/source-connection.drag-handler.d.ts +1 -1
  497. package/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.d.ts +1 -1
  498. package/f-draggable/f-node-move/connection-drag-handlers/target-connection.drag-handler.d.ts +1 -1
  499. 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
  500. package/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.d.ts +1 -1
  501. package/f-draggable/f-node-move/move-drag-handler.d.ts +2 -2
  502. package/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.d.ts +1 -1
  503. package/f-draggable/f-node-move/move-preparation/index.d.ts +2 -2
  504. package/f-draggable/f-node-move/move-preparation/{f-node-move-preparation.request.d.ts → move-node-preparation-request.d.ts} +3 -3
  505. package/f-draggable/f-node-move/move-preparation/move-node-preparation.d.ts +17 -0
  506. package/f-draggable/f-node-move/move-summary-drag-handler.d.ts +3 -3
  507. package/f-draggable/f-node-move/providers.d.ts +2 -2
  508. package/f-draggable/index.d.ts +2 -1
  509. package/f-draggable/pinch-to-zoom/constants/constants.d.ts +5 -0
  510. package/f-draggable/pinch-to-zoom/constants/index.d.ts +1 -0
  511. package/f-draggable/pinch-to-zoom/finalize/index.d.ts +2 -0
  512. package/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize-request.d.ts +6 -0
  513. package/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize.d.ts +11 -0
  514. package/f-draggable/pinch-to-zoom/index.d.ts +6 -0
  515. package/f-draggable/pinch-to-zoom/pinch-to-zoom-handler.d.ts +21 -0
  516. package/f-draggable/pinch-to-zoom/preparation/index.d.ts +2 -0
  517. package/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation-request.d.ts +6 -0
  518. package/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation.d.ts +13 -0
  519. package/f-draggable/pinch-to-zoom/providers.d.ts +3 -0
  520. package/f-draggable/pinch-to-zoom/utils/calculate-touch-center.d.ts +2 -0
  521. package/f-draggable/pinch-to-zoom/utils/calculate-touch-distance.d.ts +1 -0
  522. package/f-draggable/pinch-to-zoom/utils/index.d.ts +2 -0
  523. package/f-draggable/providers.d.ts +1 -1
  524. package/f-draggable/single-select/index.d.ts +3 -0
  525. package/f-draggable/single-select/providers.d.ts +2 -0
  526. package/f-draggable/single-select/single-select-request.d.ts +8 -0
  527. package/f-draggable/{f-single-select/f-single-select.execution.d.ts → single-select/single-select.d.ts} +7 -6
  528. package/f-flow/f-flow.component.d.ts +1 -1
  529. package/f-flow.module.d.ts +36 -37
  530. package/f-line-alignment/f-line-alignment-base.d.ts +3 -4
  531. package/f-line-alignment/f-line-alignment.component.d.ts +3 -4
  532. package/f-minimap/f-minimap.component.d.ts +2 -2
  533. package/f-selection-area/domain/selection-area.drag-handle.d.ts +6 -5
  534. package/f-storage/f-components-store.d.ts +3 -4
  535. package/f-storage/features/listen-components-data-changed/index.d.ts +1 -1
  536. package/f-storage/features/listen-components-data-changed/{listen-data-changes.execution.d.ts → listen-data-changes.d.ts} +3 -3
  537. package/f-storage/features/listen-count-changes/index.d.ts +1 -1
  538. package/f-storage/features/listen-count-changes/{listen-count-changes.execution.d.ts → listen-count-changes.d.ts} +3 -3
  539. package/f-storage/features/listen-transform-changes/index.d.ts +2 -2
  540. package/f-storage/features/listen-transform-changes/{listen-transform-changes.execution.d.ts → listen-transform-changes.d.ts} +4 -4
  541. package/f-storage/features/notify-data-changed/index.d.ts +1 -1
  542. package/f-storage/features/notify-data-changed/{notify-data-changed.execution.d.ts → notify-data-changed.d.ts} +3 -3
  543. package/f-storage/features/notify-transform-changed/index.d.ts +2 -2
  544. package/f-storage/features/notify-transform-changed/{notify-transform-changed.execution.d.ts → notify-transform-changed.d.ts} +4 -4
  545. package/f-storage/index.d.ts +0 -1
  546. package/f-storage/providers.d.ts +6 -6
  547. package/f-zoom/f-zoom.directive.d.ts +11 -14
  548. package/fesm2022/foblex-flow.mjs +4354 -3905
  549. package/fesm2022/foblex-flow.mjs.map +1 -1
  550. package/package.json +2 -2
  551. package/public-api.d.ts +1 -0
  552. package/reactivity/index.d.ts +1 -0
  553. package/reactivity/take-one.d.ts +2 -0
  554. package/reactivity/types.d.ts +6 -1
  555. package/schematics/collection.json +6 -1
  556. package/utils/calculate-pointer-in-flow.d.ts +4 -0
  557. package/utils/index.d.ts +1 -0
  558. package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.d.ts +0 -12
  559. package/domain/f-connection/calculate-connection-line-by-behavior/index.d.ts +0 -6
  560. package/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections-request.d.ts +0 -3
  561. package/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.d.ts +0 -14
  562. package/domain/f-flow/get-flow-state/get-flow-state-connections/index.d.ts +0 -2
  563. package/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.d.ts +0 -6
  564. package/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.d.ts +0 -15
  565. package/domain/f-flow/get-flow-state/get-flow-state-nodes/index.d.ts +0 -2
  566. package/domain/f-flow/get-flow-state/get-flow-state.execution.d.ts +0 -15
  567. package/domain/f-flow/get-flow-state/get-flow-state.request.d.ts +0 -3
  568. package/domain/f-flow/get-flow-state/i-f-flow-state-connection.d.ts +0 -9
  569. package/domain/f-flow/get-flow-state/providers.d.ts +0 -7
  570. package/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items-request.d.ts +0 -3
  571. package/domain/f-selection/get-can-be-selected-items/index.d.ts +0 -3
  572. package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.d.ts +0 -12
  573. package/domain/f-zoom/reset-zoom/reset-zoom.execution.d.ts +0 -13
  574. package/domain/i-map.d.ts +0 -1
  575. package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.mjs +0 -48
  576. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.execution.mjs +0 -25
  577. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.execution.mjs +0 -25
  578. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.execution.mjs +0 -26
  579. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.execution.mjs +0 -25
  580. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.mjs +0 -16
  581. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.mjs +0 -145
  582. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/index.mjs +0 -7
  583. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.mjs +0 -2
  584. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-center-behavior.mjs +0 -12
  585. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-outbound-behavior.mjs +0 -31
  586. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/floating-behavior.mjs +0 -22
  587. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +0 -65
  588. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.execution.mjs +0 -25
  589. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.mjs +0 -33
  590. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.execution.mjs +0 -25
  591. package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.execution.mjs +0 -25
  592. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections-request.mjs +0 -4
  593. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.mjs +0 -35
  594. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/index.mjs +0 -3
  595. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.mjs +0 -8
  596. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +0 -58
  597. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/index.mjs +0 -3
  598. package/esm2022/domain/f-flow/get-flow-state/get-flow-state.execution.mjs +0 -39
  599. package/esm2022/domain/f-flow/get-flow-state/get-flow-state.request.mjs +0 -4
  600. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-connection.mjs +0 -2
  601. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-connector.mjs +0 -2
  602. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-node.mjs +0 -2
  603. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state.mjs +0 -2
  604. package/esm2022/domain/f-flow/get-flow-state/index.mjs +0 -10
  605. package/esm2022/domain/f-flow/get-flow-state/providers.mjs +0 -12
  606. package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items-request.mjs +0 -4
  607. package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +0 -66
  608. package/esm2022/domain/f-selection/get-can-be-selected-items/i-can-be-selected-element-and-rect.mjs +0 -2
  609. package/esm2022/domain/f-selection/get-can-be-selected-items/index.mjs +0 -4
  610. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.mjs +0 -28
  611. package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.mjs +0 -28
  612. package/esm2022/domain/f-zoom/reset-zoom/reset-zoom.execution.mjs +0 -30
  613. package/esm2022/domain/f-zoom/set-zoom/set-zoom.execution.mjs +0 -54
  614. package/esm2022/domain/i-map.mjs +0 -2
  615. package/esm2022/f-connection/common/domain/adaptive-curve-builder.mjs +0 -201
  616. package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.mjs +0 -10
  617. package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points.handler.mjs +0 -12
  618. package/esm2022/f-connection/common/domain/calculate-center-between-points/index.mjs +0 -3
  619. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.mjs +0 -8
  620. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.mjs +0 -35
  621. package/esm2022/f-connection/common/domain/calculate-connection-center/index.mjs +0 -3
  622. package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +0 -58
  623. package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +0 -161
  624. package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +0 -16
  625. package/esm2022/f-connection/common/domain/index.mjs +0 -7
  626. package/esm2022/f-connection/common/e-f-connection-behavior.mjs +0 -7
  627. package/esm2022/f-connection/common/e-f-connection-connectable-side.mjs +0 -12
  628. package/esm2022/f-connection/common/e-f-connection-type.mjs +0 -8
  629. package/esm2022/f-connection/common/f-connection-base.mjs +0 -121
  630. package/esm2022/f-connection/common/f-connection-identifiers.mjs +0 -22
  631. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +0 -65
  632. package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +0 -57
  633. package/esm2022/f-connection/common/f-connection-text/i-connection-text.mjs +0 -3
  634. package/esm2022/f-connection/common/f-connection-text/index.mjs +0 -4
  635. package/esm2022/f-connection/common/f-connection.injection-token.mjs +0 -3
  636. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.mjs +0 -37
  637. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.mjs +0 -37
  638. package/esm2022/f-connection/common/f-drag-handle/index.mjs +0 -3
  639. package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +0 -55
  640. package/esm2022/f-connection/common/f-gradient/i-connection-gradient.mjs +0 -3
  641. package/esm2022/f-connection/common/f-gradient/index.mjs +0 -3
  642. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +0 -45
  643. package/esm2022/f-connection/common/f-path/get-path-marker-id.mjs +0 -14
  644. package/esm2022/f-connection/common/f-path/i-connection-path.mjs +0 -3
  645. package/esm2022/f-connection/common/f-path/index.mjs +0 -4
  646. package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +0 -24
  647. package/esm2022/f-connection/common/f-selection/index.mjs +0 -2
  648. package/esm2022/f-connection/common/i-has-connection-color.mjs +0 -2
  649. package/esm2022/f-connection/common/i-has-connection-from-to.mjs +0 -2
  650. package/esm2022/f-connection/common/i-has-connection-text.mjs +0 -2
  651. package/esm2022/f-connection/common/index.mjs +0 -15
  652. package/esm2022/f-connection/f-connection-builder/f-connection-builders.mjs +0 -3
  653. package/esm2022/f-connection/f-connection-builder/f-connection-factory.mjs +0 -26
  654. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-request.mjs +0 -2
  655. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-response.mjs +0 -2
  656. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder.mjs +0 -2
  657. package/esm2022/f-connection/f-connection-builder/i-f-connection-factory-request.mjs +0 -2
  658. package/esm2022/f-connection/f-connection-builder/index.mjs +0 -7
  659. package/esm2022/f-connection/f-connection-center/f-connection-center.directive.mjs +0 -30
  660. package/esm2022/f-connection/f-connection-center/index.mjs +0 -2
  661. package/esm2022/f-connection/f-connection-content/f-connection-content.mjs +0 -102
  662. package/esm2022/f-connection/f-connection-content/index.mjs +0 -3
  663. package/esm2022/f-connection/f-connection-content/polyline-content-engine/i-polyline-content.mjs +0 -2
  664. package/esm2022/f-connection/f-connection-content/polyline-content-engine/index.mjs +0 -6
  665. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-align.mjs +0 -6
  666. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-layout-engine.mjs +0 -28
  667. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-sampler-result.mjs +0 -2
  668. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-tangent.mjs +0 -2
  669. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/index.mjs +0 -5
  670. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline-sampler.mjs +0 -143
  671. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline.mjs +0 -68
  672. package/esm2022/f-connection/f-marker/e-f-marker-type.mjs +0 -8
  673. package/esm2022/f-connection/f-marker/f-marker-base.mjs +0 -5
  674. package/esm2022/f-connection/f-marker/f-marker.directive.mjs +0 -51
  675. package/esm2022/f-connection/f-marker/index.mjs +0 -4
  676. package/esm2022/f-connectors/e-f-connectable-side.mjs +0 -12
  677. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +0 -82
  678. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.mjs +0 -10
  679. package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +0 -138
  680. package/esm2022/f-draggable/f-single-select/f-single-select.request.mjs +0 -10
  681. package/esm2022/f-draggable/f-single-select/index.mjs +0 -4
  682. package/esm2022/f-draggable/f-single-select/providers.mjs +0 -5
  683. package/esm2022/f-storage/f-connectors-store.mjs +0 -11
  684. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.execution.mjs +0 -23
  685. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.execution.mjs +0 -23
  686. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.execution.mjs +0 -23
  687. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.execution.mjs +0 -22
  688. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.execution.mjs +0 -22
  689. package/f-connection/common/domain/adaptive-curve-builder.d.ts +0 -102
  690. package/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.d.ts +0 -7
  691. package/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points.handler.d.ts +0 -6
  692. package/f-connection/common/domain/calculate-center-between-points/index.d.ts +0 -2
  693. package/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.d.ts +0 -6
  694. package/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.d.ts +0 -8
  695. package/f-connection/common/domain/calculate-connection-center/index.d.ts +0 -2
  696. package/f-connection/common/domain/f-bezier.path-builder.d.ts +0 -6
  697. package/f-connection/common/domain/f-segment.path-builder.d.ts +0 -11
  698. package/f-connection/common/domain/index.d.ts +0 -6
  699. package/f-connection/common/f-connection-identifiers.d.ts +0 -8
  700. package/f-connection/common/f-connection-text/f-connection-text-path.directive.d.ts +0 -18
  701. package/f-connection/common/f-connection-text/f-connection-text.component.d.ts +0 -16
  702. package/f-connection/common/f-connection-text/i-connection-text.d.ts +0 -7
  703. package/f-connection/common/f-connection-text/index.d.ts +0 -3
  704. package/f-connection/common/f-connection.injection-token.d.ts +0 -2
  705. package/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.d.ts +0 -13
  706. package/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.d.ts +0 -13
  707. package/f-connection/common/f-drag-handle/index.d.ts +0 -2
  708. package/f-connection/common/f-gradient/i-connection-gradient.d.ts +0 -8
  709. package/f-connection/common/f-gradient/index.d.ts +0 -2
  710. package/f-connection/common/f-path/f-connection-path.component.d.ts +0 -15
  711. package/f-connection/common/f-path/get-path-marker-id.d.ts +0 -4
  712. package/f-connection/common/f-path/i-connection-path.d.ts +0 -9
  713. package/f-connection/common/f-path/index.d.ts +0 -3
  714. package/f-connection/common/f-selection/f-connection-selection.component.d.ts +0 -10
  715. package/f-connection/common/f-selection/index.d.ts +0 -1
  716. package/f-connection/common/i-has-connection-color.d.ts +0 -5
  717. package/f-connection/common/i-has-connection-from-to.d.ts +0 -6
  718. package/f-connection/common/i-has-connection-text.d.ts +0 -4
  719. package/f-connection/common/index.d.ts +0 -14
  720. package/f-connection/f-connection-builder/f-connection-builders.d.ts +0 -4
  721. package/f-connection/f-connection-builder/f-connection-factory.d.ts +0 -9
  722. package/f-connection/f-connection-builder/i-f-connection-factory-request.d.ts +0 -6
  723. package/f-connection/f-connection-center/f-connection-center.directive.d.ts +0 -10
  724. package/f-connection/f-connection-center/index.d.ts +0 -1
  725. package/f-connection/f-connection-content/index.d.ts +0 -2
  726. package/f-connection/f-marker/f-marker.directive.d.ts +0 -18
  727. package/f-connection/f-marker/index.d.ts +0 -3
  728. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.d.ts +0 -20
  729. package/f-draggable/f-single-select/f-single-select.request.d.ts +0 -8
  730. package/f-draggable/f-single-select/index.d.ts +0 -3
  731. package/f-draggable/f-single-select/providers.d.ts +0 -2
  732. package/f-storage/f-connectors-store.d.ts +0 -6
  733. /package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state-node.d.ts +0 -0
  734. /package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state.d.ts +0 -0
  735. /package/domain/f-selection/{get-can-be-selected-items → calculate-selectable-items}/i-can-be-selected-element-and-rect.d.ts +0 -0
  736. /package/f-canvas/domain/{f-canvas-change.event.d.ts → f-canvas-change-event.d.ts} +0 -0
  737. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/i-polyline-content.d.ts +0 -0
  738. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/index.d.ts +0 -0
  739. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-align.d.ts +0 -0
  740. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-place.d.ts +0 -0
  741. /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
  742. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/i-tangent.d.ts +0 -0
  743. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/index.d.ts +0 -0
  744. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/polyline-sampler.d.ts +0 -0
  745. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/polyline.d.ts +0 -0
  746. /package/{f-connection/f-marker → f-connection-v2/components/connection-marker/enums}/e-f-marker-type.d.ts +0 -0
  747. /package/{f-connectors → f-connection-v2/enums}/e-f-connectable-side.d.ts +0 -0
  748. /package/{f-connection/common → f-connection-v2/enums}/e-f-connection-type.d.ts +0 -0
  749. /package/{f-connection/common → f-connection-v2/utils/connection-behaviour/enums}/e-f-connection-behavior.d.ts +0 -0
  750. /package/{f-connection/common → f-connection-v2/utils/connection-behaviour/enums}/e-f-connection-connectable-side.d.ts +0 -0
  751. /package/f-storage/features/listen-transform-changes/{listen-transform-changes.request.d.ts → listen-transform-changes-request.d.ts} +0 -0
  752. /package/f-storage/features/notify-transform-changed/{notify-transform-changed.request.d.ts → notify-transform-changed-request.d.ts} +0 -0
@@ -1,58 +0,0 @@
1
- import { EFConnectableSide } from '../../../f-connectors';
2
- import { CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, } from './calculate-connection-center';
3
- export class FBezierPathBuilder {
4
- static _getConnectorOffset(distance, offset) {
5
- if (distance >= offset) {
6
- return distance;
7
- }
8
- return offset * Math.sqrt(offset - distance);
9
- }
10
- static _getAnglePoint(side, source, target, offset) {
11
- const result = { x: source.x, y: source.y };
12
- switch (side) {
13
- case EFConnectableSide.LEFT:
14
- result.x -= FBezierPathBuilder._getConnectorOffset(source.x - target.x, offset);
15
- break;
16
- case EFConnectableSide.RIGHT:
17
- result.x += FBezierPathBuilder._getConnectorOffset(target.x - source.x, offset);
18
- break;
19
- case EFConnectableSide.TOP:
20
- result.y -= FBezierPathBuilder._getConnectorOffset(source.y - target.y, offset);
21
- break;
22
- case EFConnectableSide.BOTTOM:
23
- result.y += FBezierPathBuilder._getConnectorOffset(target.y - source.y, offset);
24
- break;
25
- }
26
- return result;
27
- }
28
- handle(request) {
29
- const { source, sourceSide, target, targetSide, offset } = request;
30
- const sourceAnglePoint = FBezierPathBuilder._getAnglePoint(sourceSide, source, target, offset);
31
- const targetAnglePoint = FBezierPathBuilder._getAnglePoint(targetSide, target, source, offset);
32
- const path = `M ${source.x} ${source.y} C ${sourceAnglePoint.x} ${sourceAnglePoint.y}, ${targetAnglePoint.x} ${targetAnglePoint.y}, ${target.x + 0.0002} ${target.y + 0.0002}`;
33
- const connectionCenter = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest([source, sourceAnglePoint, targetAnglePoint, target]));
34
- return {
35
- path,
36
- connectionCenter,
37
- penultimatePoint: targetAnglePoint,
38
- secondPoint: sourceAnglePoint,
39
- points: _sampleCubic(source, sourceAnglePoint, targetAnglePoint, target, 32),
40
- };
41
- }
42
- }
43
- function bez3(p0, p1, p2, p3, t) {
44
- const u = 1 - t, tt = t * t, uu = u * u, uuu = uu * u, ttt = tt * t;
45
- return {
46
- x: uuu * p0.x + 3 * uu * t * p1.x + 3 * u * tt * p2.x + ttt * p3.x,
47
- y: uuu * p0.y + 3 * uu * t * p1.y + 3 * u * tt * p2.y + ttt * p3.y,
48
- };
49
- }
50
- function _sampleCubic(p0, p1, p2, p3, samples = 32) {
51
- const out = new Array(samples + 1);
52
- out[0] = { ...p0 };
53
- for (let i = 1; i <= samples; i++) {
54
- out[i] = bez3(p0, p1, p2, p3, i / samples);
55
- }
56
- return out;
57
- }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1iZXppZXIucGF0aC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2RvbWFpbi9mLWJlemllci5wYXRoLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsR0FDakMsTUFBTSwrQkFBK0IsQ0FBQztBQU92QyxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFnQixFQUFFLE1BQWM7UUFDakUsSUFBSSxRQUFRLElBQUksTUFBTSxFQUFFLENBQUM7WUFDdkIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVELE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxNQUFNLENBQUMsY0FBYyxDQUMzQixJQUF1QixFQUN2QixNQUFjLEVBQ2QsTUFBYyxFQUNkLE1BQWM7UUFFZCxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcEQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssaUJBQWlCLENBQUMsSUFBSTtnQkFDekIsTUFBTSxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2hGLE1BQU07WUFDUixLQUFLLGlCQUFpQixDQUFDLEtBQUs7Z0JBQzFCLE1BQU0sQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsbUJBQW1C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LENBQUM7S0FDbkUsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsT0FBTyxHQUFHLEVBQUU7SUFDaEYsTUFBTSxHQUFHLEdBQWEsSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2xDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlcixcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlclJlcXVlc3QsXG59IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3Rpb24tY2VudGVyJztcbmltcG9ydCB7XG4gIElGQ29ubmVjdGlvbkJ1aWxkZXIsXG4gIElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0LFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2UsXG59IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbi1idWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIEZCZXppZXJQYXRoQnVpbGRlciBpbXBsZW1lbnRzIElGQ29ubmVjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIHN0YXRpYyBfZ2V0Q29ubmVjdG9yT2Zmc2V0KGRpc3RhbmNlOiBudW1iZXIsIG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoZGlzdGFuY2UgPj0gb2Zmc2V0KSB7XG4gICAgICByZXR1cm4gZGlzdGFuY2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mZnNldCAqIE1hdGguc3FydChvZmZzZXQgLSBkaXN0YW5jZSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfZ2V0QW5nbGVQb2ludChcbiAgICBzaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgICBzb3VyY2U6IElQb2ludCxcbiAgICB0YXJnZXQ6IElQb2ludCxcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgKTogSVBvaW50IHtcbiAgICBjb25zdCByZXN1bHQ6IElQb2ludCA9IHsgeDogc291cmNlLngsIHk6IHNvdXJjZS55IH07XG5cbiAgICBzd2l0Y2ggKHNpZGUpIHtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuTEVGVDpcbiAgICAgICAgcmVzdWx0LnggLT0gRkJlemllclBhdGhCdWlsZGVyLl9nZXRDb25uZWN0b3JPZmZzZXQoc291cmNlLnggLSB0YXJnZXQueCwgb2Zmc2V0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUOlxuICAgICAgICByZXN1bHQueCArPSBGQmV6aWVyUGF0aEJ1aWxkZXIuX2dldENvbm5lY3Rvck9mZnNldCh0YXJnZXQueCAtIHNvdXJjZS54LCBvZmZzZXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuVE9QOlxuICAgICAgICByZXN1bHQueSAtPSBGQmV6aWVyUGF0aEJ1aWxkZXIuX2dldENvbm5lY3Rvck9mZnNldChzb3VyY2UueSAtIHRhcmdldC55LCBvZmZzZXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NOlxuICAgICAgICByZXN1bHQueSArPSBGQmV6aWVyUGF0aEJ1aWxkZXIuX2dldENvbm5lY3Rvck9mZnNldCh0YXJnZXQueSAtIHNvdXJjZS55LCBvZmZzZXQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCk6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZSB7XG4gICAgY29uc3QgeyBzb3VyY2UsIHNvdXJjZVNpZGUsIHRhcmdldCwgdGFyZ2V0U2lkZSwgb2Zmc2V0IH0gPSByZXF1ZXN0O1xuXG4gICAgY29uc3Qgc291cmNlQW5nbGVQb2ludCA9IEZCZXppZXJQYXRoQnVpbGRlci5fZ2V0QW5nbGVQb2ludChzb3VyY2VTaWRlLCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0KTtcblxuICAgIGNvbnN0IHRhcmdldEFuZ2xlUG9pbnQgPSBGQmV6aWVyUGF0aEJ1aWxkZXIuX2dldEFuZ2xlUG9pbnQodGFyZ2V0U2lkZSwgdGFyZ2V0LCBzb3VyY2UsIG9mZnNldCk7XG5cbiAgICBjb25zdCBwYXRoID0gYE0gJHtzb3VyY2UueH0gJHtzb3VyY2UueX0gQyAke3NvdXJjZUFuZ2xlUG9pbnQueH0gJHtzb3VyY2VBbmdsZVBvaW50Lnl9LCAke3RhcmdldEFuZ2xlUG9pbnQueH0gJHt0YXJnZXRBbmdsZVBvaW50Lnl9LCAke3RhcmdldC54ICsgMC4wMDAyfSAke3RhcmdldC55ICsgMC4wMDAyfWA7XG5cbiAgICBjb25zdCBjb25uZWN0aW9uQ2VudGVyID0gbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJIYW5kbGVyKCkuaGFuZGxlKFxuICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0KFtzb3VyY2UsIHNvdXJjZUFuZ2xlUG9pbnQsIHRhcmdldEFuZ2xlUG9pbnQsIHRhcmdldF0pLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aCxcbiAgICAgIGNvbm5lY3Rpb25DZW50ZXIsXG4gICAgICBwZW51bHRpbWF0ZVBvaW50OiB0YXJnZXRBbmdsZVBvaW50LFxuICAgICAgc2Vjb25kUG9pbnQ6IHNvdXJjZUFuZ2xlUG9pbnQsXG4gICAgICBwb2ludHM6IF9zYW1wbGVDdWJpYyhzb3VyY2UsIHNvdXJjZUFuZ2xlUG9pbnQsIHRhcmdldEFuZ2xlUG9pbnQsIHRhcmdldCwgMzIpLFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gYmV6MyhwMDogSVBvaW50LCBwMTogSVBvaW50LCBwMjogSVBvaW50LCBwMzogSVBvaW50LCB0OiBudW1iZXIpOiBJUG9pbnQge1xuICBjb25zdCB1ID0gMSAtIHQsXG4gICAgdHQgPSB0ICogdCxcbiAgICB1dSA9IHUgKiB1LFxuICAgIHV1dSA9IHV1ICogdSxcbiAgICB0dHQgPSB0dCAqIHQ7XG5cbiAgcmV0dXJuIHtcbiAgICB4OiB1dXUgKiBwMC54ICsgMyAqIHV1ICogdCAqIHAxLnggKyAzICogdSAqIHR0ICogcDIueCArIHR0dCAqIHAzLngsXG4gICAgeTogdXV1ICogcDAueSArIDMgKiB1dSAqIHQgKiBwMS55ICsgMyAqIHUgKiB0dCAqIHAyLnkgKyB0dHQgKiBwMy55LFxuICB9O1xufVxuXG5mdW5jdGlvbiBfc2FtcGxlQ3ViaWMocDA6IElQb2ludCwgcDE6IElQb2ludCwgcDI6IElQb2ludCwgcDM6IElQb2ludCwgc2FtcGxlcyA9IDMyKTogSVBvaW50W10ge1xuICBjb25zdCBvdXQ6IElQb2ludFtdID0gbmV3IEFycmF5KHNhbXBsZXMgKyAxKTtcbiAgb3V0WzBdID0geyAuLi5wMCB9O1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSBzYW1wbGVzOyBpKyspIHtcbiAgICBvdXRbaV0gPSBiZXozKHAwLCBwMSwgcDIsIHAzLCBpIC8gc2FtcGxlcyk7XG4gIH1cblxuICByZXR1cm4gb3V0O1xufVxuIl19
@@ -1,161 +0,0 @@
1
- import { PointExtensions } from '@foblex/2d';
2
- import { EFConnectableSide } from '../../../f-connectors';
3
- import { CalculateCenterBetweenPointsHandler, CalculateCenterBetweenPointsRequest, } from './calculate-center-between-points';
4
- import { CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, } from './calculate-connection-center';
5
- const CONNECTOR_SIDE_POINT = {
6
- [EFConnectableSide.LEFT]: PointExtensions.initialize(-1, 0),
7
- [EFConnectableSide.RIGHT]: PointExtensions.initialize(1, 0),
8
- [EFConnectableSide.TOP]: PointExtensions.initialize(0, -1),
9
- [EFConnectableSide.BOTTOM]: PointExtensions.initialize(0, 1),
10
- [EFConnectableSide.AUTO]: PointExtensions.initialize(0, 0),
11
- };
12
- export class FSegmentPathBuilder {
13
- handle(request) {
14
- const { source, sourceSide, target, targetSide } = request;
15
- const { points, center } = this._getPathPoints(source, sourceSide, target, targetSide, request.offset);
16
- const path = this._buildPath(points, request.radius);
17
- const penultimatePoint = points.length > 1 ? points[points.length - 2] : source;
18
- const secondPoint = points.length > 1 ? points[1] : target;
19
- return {
20
- path,
21
- connectionCenter: center,
22
- penultimatePoint,
23
- secondPoint,
24
- points,
25
- };
26
- }
27
- _getPathPoints(source, sourceSide, target, targetSide, offset) {
28
- const sourceDirection = CONNECTOR_SIDE_POINT[sourceSide];
29
- const targetDirection = CONNECTOR_SIDE_POINT[targetSide];
30
- const sourceGap = {
31
- x: source.x + sourceDirection.x * offset,
32
- y: source.y + sourceDirection.y * offset,
33
- };
34
- const targetGap = {
35
- x: target.x + targetDirection.x * offset,
36
- y: target.y + targetDirection.y * offset,
37
- };
38
- const direction = this._getDirection(sourceGap, sourceSide, targetGap);
39
- const directionAccessor = direction.x !== 0 ? 'x' : 'y';
40
- const currentDirection = direction[directionAccessor];
41
- let points = [];
42
- const sourceGapOffset = PointExtensions.initialize();
43
- const targetGapOffset = PointExtensions.initialize();
44
- const centerBetweenPoints = new CalculateCenterBetweenPointsHandler().handle(new CalculateCenterBetweenPointsRequest(source, target));
45
- if (sourceDirection[directionAccessor] * targetDirection[directionAccessor] === -1) {
46
- const verticalSplit = [
47
- { x: centerBetweenPoints.x, y: sourceGap.y },
48
- { x: centerBetweenPoints.x, y: targetGap.y },
49
- ];
50
- const horizontalSplit = [
51
- { x: sourceGap.x, y: centerBetweenPoints.y },
52
- { x: targetGap.x, y: centerBetweenPoints.y },
53
- ];
54
- if (sourceDirection[directionAccessor] === currentDirection) {
55
- points = directionAccessor === 'x' ? verticalSplit : horizontalSplit;
56
- }
57
- else {
58
- points = directionAccessor === 'x' ? horizontalSplit : verticalSplit;
59
- }
60
- }
61
- else {
62
- const sourceTarget = [{ x: sourceGap.x, y: targetGap.y }];
63
- const targetSource = [{ x: targetGap.x, y: sourceGap.y }];
64
- if (directionAccessor === 'x') {
65
- points = sourceDirection.x === currentDirection ? targetSource : sourceTarget;
66
- }
67
- else {
68
- points = sourceDirection.y === currentDirection ? sourceTarget : targetSource;
69
- }
70
- if (sourceSide === targetSide) {
71
- const diff = Math.abs(source[directionAccessor] - target[directionAccessor]);
72
- if (diff <= offset) {
73
- const gapOffset = Math.min(offset - 1, offset - diff);
74
- if (sourceDirection[directionAccessor] === currentDirection) {
75
- sourceGapOffset[directionAccessor] =
76
- (sourceGap[directionAccessor] > source[directionAccessor] ? -1 : 1) * gapOffset;
77
- }
78
- else {
79
- targetGapOffset[directionAccessor] =
80
- (targetGap[directionAccessor] > target[directionAccessor] ? -1 : 1) * gapOffset;
81
- }
82
- }
83
- }
84
- if (sourceSide !== targetSide) {
85
- const dirAccessorOpposite = directionAccessor === 'x' ? 'y' : 'x';
86
- const isSameDir = sourceDirection[directionAccessor] === targetDirection[dirAccessorOpposite];
87
- const sourceGtTargetOppo = sourceGap[dirAccessorOpposite] > targetGap[dirAccessorOpposite];
88
- const sourceLtTargetOppo = sourceGap[dirAccessorOpposite] < targetGap[dirAccessorOpposite];
89
- const flipSourceTarget = (sourceDirection[directionAccessor] === 1 &&
90
- ((!isSameDir && sourceGtTargetOppo) || (isSameDir && sourceLtTargetOppo))) ||
91
- (sourceDirection[directionAccessor] !== 1 &&
92
- ((!isSameDir && sourceLtTargetOppo) || (isSameDir && sourceGtTargetOppo)));
93
- if (flipSourceTarget) {
94
- points = directionAccessor === 'x' ? sourceTarget : targetSource;
95
- }
96
- }
97
- }
98
- const pathPoints = [
99
- source,
100
- { x: sourceGap.x + sourceGapOffset.x, y: sourceGap.y + sourceGapOffset.y },
101
- ...points,
102
- { x: targetGap.x + targetGapOffset.x, y: targetGap.y + targetGapOffset.y },
103
- target,
104
- ];
105
- const center = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest(pathPoints));
106
- return { points: pathPoints, center };
107
- }
108
- _getDirection(source, sourceSide, target) {
109
- if (sourceSide === EFConnectableSide.LEFT || sourceSide === EFConnectableSide.RIGHT) {
110
- return source.x < target.x
111
- ? PointExtensions.initialize(1, 0)
112
- : PointExtensions.initialize(-1, 0);
113
- }
114
- return source.y < target.y
115
- ? PointExtensions.initialize(0, 1)
116
- : PointExtensions.initialize(0, -1);
117
- }
118
- _distance(a, b) {
119
- return Math.sqrt(Math.pow(b.x - a.x, 2) + Math.pow(b.y - a.y, 2));
120
- }
121
- _buildPath(points, borderRadius) {
122
- let path = '';
123
- for (let i = 0; i < points.length; i++) {
124
- const p = points[i];
125
- let segment = '';
126
- if (i > 0 && i < points.length - 1) {
127
- segment = this._getBend(points[i - 1], p, points[i + 1], borderRadius);
128
- }
129
- else if (i === points.length - 1) {
130
- segment = this._buildLastLineSegment(i, p);
131
- }
132
- else {
133
- segment = this._buildMoveOrLineSegment(i, p);
134
- }
135
- path += segment;
136
- }
137
- return path;
138
- }
139
- _getBend(a, b, c, size) {
140
- const bendSize = Math.min(this._distance(a, b) / 2, this._distance(b, c) / 2, size);
141
- const { x, y } = b;
142
- if ((a.x === x && x === c.x) || (a.y === y && y === c.y)) {
143
- return `L${x} ${y}`;
144
- }
145
- if (a.y === y) {
146
- const xDir = a.x < c.x ? -1 : 1;
147
- const yDir = a.y < c.y ? 1 : -1;
148
- return `L ${x + bendSize * xDir},${y}Q ${x},${y} ${x},${y + bendSize * yDir}`;
149
- }
150
- const xDir = a.x < c.x ? 1 : -1;
151
- const yDir = a.y < c.y ? -1 : 1;
152
- return `L ${x},${y + bendSize * yDir}Q ${x},${y} ${x + bendSize * xDir},${y}`;
153
- }
154
- _buildMoveOrLineSegment(index, point) {
155
- return `${index === 0 ? 'M' : 'L'}${point.x} ${point.y}`;
156
- }
157
- _buildLastLineSegment(index, point) {
158
- return `L${point.x + 0.0002} ${point.y + 0.0002}`;
159
- }
160
- }
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zZWdtZW50LnBhdGgtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9kb21haW4vZi1zZWdtZW50LnBhdGgtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFDTCxtQ0FBbUMsRUFDbkMsbUNBQW1DLEdBQ3BDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsR0FDakMsTUFBTSwrQkFBK0IsQ0FBQztBQVF2QyxNQUFNLG9CQUFvQixHQUFpQjtJQUN6QyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTNELENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTNELENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFMUQsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFNUQsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Q0FDM0QsQ0FBQztBQUVGLE1BQU0sT0FBTyxtQkFBbUI7SUFDdkIsTUFBTSxDQUFDLE9BQW1DO1FBQy9DLE1BQU0sRUFBRSxNQUFNLEVBQUUs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QUFhLEVBQUUsS0FBYTtRQUMxRCxPQUFPLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3hELE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDZW50ZXJCZXR3ZWVuUG9pbnRzSGFuZGxlcixcbiAgQ2FsY3VsYXRlQ2VudGVyQmV0d2VlblBvaW50c1JlcXVlc3QsXG59IGZyb20gJy4vY2FsY3VsYXRlLWNlbnRlci1iZXR3ZWVuLXBvaW50cyc7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlcixcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlclJlcXVlc3QsXG59IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3Rpb24tY2VudGVyJztcbmltcG9ydCB7XG4gIElGQ29ubmVjdGlvbkJ1aWxkZXIsXG4gIElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0LFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2UsXG59IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbi1idWlsZGVyJztcbmltcG9ydCB7IElNYXAgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuXG5jb25zdCBDT05ORUNUT1JfU0lERV9QT0lOVDogSU1hcDxJUG9pbnQ+ID0ge1xuICBbRUZDb25uZWN0YWJsZVNpZGUuTEVGVF06IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKC0xLCAwKSxcblxuICBbRUZDb25uZWN0YWJsZVNpZGUuUklHSFRdOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgxLCAwKSxcblxuICBbRUZDb25uZWN0YWJsZVNpZGUuVE9QXTogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMCwgLTEpLFxuXG4gIFtFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT01dOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAxKSxcblxuICBbRUZDb25uZWN0YWJsZVNpZGUuQVVUT106IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKDAsIDApLFxufTtcblxuZXhwb3J0IGNsYXNzIEZTZWdtZW50UGF0aEJ1aWxkZXIgaW1wbGVtZW50cyBJRkNvbm5lY3Rpb25CdWlsZGVyIHtcbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCk6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZSB7XG4gICAgY29uc3QgeyBzb3VyY2UsIHNvdXJjZVNpZGUsIHRhcmdldCwgdGFyZ2V0U2lkZSB9ID0gcmVxdWVzdDtcblxuICAgIGNvbnN0IHsgcG9pbnRzLCBjZW50ZXIgfSA9IHRoaXMuX2dldFBhdGhQb2ludHMoXG4gICAgICBzb3VyY2UsXG4gICAgICBzb3VyY2VTaWRlLFxuICAgICAgdGFyZ2V0LFxuICAgICAgdGFyZ2V0U2lkZSxcbiAgICAgIHJlcXVlc3Qub2Zmc2V0LFxuICAgICk7XG5cbiAgICBjb25zdCBwYXRoID0gdGhpcy5fYnVpbGRQYXRoKHBvaW50cywgcmVxdWVzdC5yYWRpdXMpO1xuXG4gICAgY29uc3QgcGVudWx0aW1hdGVQb2ludCA9IHBvaW50cy5sZW5ndGggPiAxID8gcG9pbnRzW3BvaW50cy5sZW5ndGggLSAyXSA6IHNvdXJjZTtcbiAgICBjb25zdCBzZWNvbmRQb2ludCA9IHBvaW50cy5sZW5ndGggPiAxID8gcG9pbnRzWzFdIDogdGFyZ2V0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGgsXG4gICAgICBjb25uZWN0aW9uQ2VudGVyOiBjZW50ZXIsXG4gICAgICBwZW51bHRpbWF0ZVBvaW50LFxuICAgICAgc2Vjb25kUG9pbnQsXG4gICAgICBwb2ludHMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBhdGhQb2ludHMoXG4gICAgc291cmNlOiBJUG9pbnQsXG4gICAgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUsXG4gICAgdGFyZ2V0OiBJUG9pbnQsXG4gICAgdGFyZ2V0U2lkZTogRUZDb25uZWN0YWJsZVNpZGUsXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICk6IHsgcG9pbnRzOiBJUG9pbnRbXTsgY2VudGVyOiBJUG9pbnQgfSB7XG4gICAgY29uc3Qgc291cmNlRGlyZWN0aW9uID0gQ09OTkVDVE9SX1NJREVfUE9JTlRbc291cmNlU2lkZV07XG4gICAgY29uc3QgdGFyZ2V0RGlyZWN0aW9uID0gQ09OTkVDVE9SX1NJREVfUE9JTlRbdGFyZ2V0U2lkZV07XG5cbiAgICBjb25zdCBzb3VyY2VHYXA6IElQb2ludCA9IHtcbiAgICAgIHg6IHNvdXJjZS54ICsgc291cmNlRGlyZWN0aW9uLnggKiBvZmZzZXQsXG4gICAgICB5OiBzb3VyY2UueSArIHNvdXJjZURpcmVjdGlvbi55ICogb2Zmc2V0LFxuICAgIH07XG4gICAgY29uc3QgdGFyZ2V0R2FwOiBJUG9pbnQgPSB7XG4gICAgICB4OiB0YXJnZXQueCArIHRhcmdldERpcmVjdGlvbi54ICogb2Zmc2V0LFxuICAgICAgeTogdGFyZ2V0LnkgKyB0YXJnZXREaXJlY3Rpb24ueSAqIG9mZnNldCxcbiAgICB9O1xuXG4gICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5fZ2V0RGlyZWN0aW9uKHNvdXJjZUdhcCwgc291cmNlU2lkZSwgdGFyZ2V0R2FwKTtcbiAgICBjb25zdCBkaXJlY3Rpb25BY2Nlc3NvciA9IGRpcmVjdGlvbi54ICE9PSAwID8gJ3gnIDogJ3knO1xuICAgIGNvbnN0IGN1cnJlbnREaXJlY3Rpb24gPSBkaXJlY3Rpb25bZGlyZWN0aW9uQWNjZXNzb3JdO1xuXG4gICAgbGV0IHBvaW50czogSVBvaW50W10gPSBbXTtcbiAgICBjb25zdCBzb3VyY2VHYXBPZmZzZXQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICAgIGNvbnN0IHRhcmdldEdhcE9mZnNldCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgICBjb25zdCBjZW50ZXJCZXR3ZWVuUG9pbnRzID0gbmV3IENhbGN1bGF0ZUNlbnRlckJldHdlZW5Qb2ludHNIYW5kbGVyKCkuaGFuZGxlKFxuICAgICAgbmV3IENhbGN1bGF0ZUNlbnRlckJldHdlZW5Qb2ludHNSZXF1ZXN0KHNvdXJjZSwgdGFyZ2V0KSxcbiAgICApO1xuXG4gICAgaWYgKHNvdXJjZURpcmVjdGlvbltkaXJlY3Rpb25BY2Nlc3Nvcl0gKiB0YXJnZXREaXJlY3Rpb25bZGlyZWN0aW9uQWNjZXNzb3JdID09PSAtMSkge1xuICAgICAgY29uc3QgdmVydGljYWxTcGxpdDogSVBvaW50W10gPSBbXG4gICAgICAgIHsgeDogY2VudGVyQmV0d2VlblBvaW50cy54LCB5OiBzb3VyY2VHYXAueSB9LFxuICAgICAgICB7IHg6IGNlbnRlckJldHdlZW5Qb2ludHMueCwgeTogdGFyZ2V0R2FwLnkgfSxcbiAgICAgIF07XG4gICAgICBjb25zdCBob3Jpem9udGFsU3BsaXQ6IElQb2ludFtdID0gW1xuICAgICAgICB7IHg6IHNvdXJjZUdhcC54LCB5OiBjZW50ZXJCZXR3ZWVuUG9pbnRzLnkgfSxcbiAgICAgICAgeyB4OiB0YXJnZXRHYXAueCwgeTogY2VudGVyQmV0d2VlblBvaW50cy55IH0sXG4gICAgICBdO1xuXG4gICAgICBpZiAoc291cmNlRGlyZWN0aW9uW2RpcmVjdGlvbkFjY2Vzc29yXSA9PT0gY3VycmVudERpcmVjdGlvbikge1xuICAgICAgICBwb2ludHMgPSBkaXJlY3Rpb25BY2Nlc3NvciA9PT0gJ3gnID8gdmVydGljYWxTcGxpdCA6IGhvcml6b250YWxTcGxpdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvaW50cyA9IGRpcmVjdGlvbkFjY2Vzc29yID09PSAneCcgPyBob3Jpem9udGFsU3BsaXQgOiB2ZXJ0aWNhbFNwbGl0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzb3VyY2VUYXJnZXQ6IElQb2ludFtdID0gW3sgeDogc291cmNlR2FwLngsIHk6IHRhcmdldEdhcC55IH1dO1xuICAgICAgY29uc3QgdGFyZ2V0U291cmNlOiBJUG9pbnRbXSA9IFt7IHg6IHRhcmdldEdhcC54LCB5OiBzb3VyY2VHYXAueSB9XTtcblxuICAgICAgaWYgKGRpcmVjdGlvbkFjY2Vzc29yID09PSAneCcpIHtcbiAgICAgICAgcG9pbnRzID0gc291cmNlRGlyZWN0aW9uLnggPT09IGN1cnJlbnREaXJlY3Rpb24gPyB0YXJnZXRTb3VyY2UgOiBzb3VyY2VUYXJnZXQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb2ludHMgPSBzb3VyY2VEaXJlY3Rpb24ueSA9PT0gY3VycmVudERpcmVjdGlvbiA/IHNvdXJjZVRhcmdldCA6IHRhcmdldFNvdXJjZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNvdXJjZVNpZGUgPT09IHRhcmdldFNpZGUpIHtcbiAgICAgICAgY29uc3QgZGlmZiA9IE1hdGguYWJzKHNvdXJjZVtkaXJlY3Rpb25BY2Nlc3Nvcl0gLSB0YXJnZXRbZGlyZWN0aW9uQWNjZXNzb3JdKTtcblxuICAgICAgICBpZiAoZGlmZiA8PSBvZmZzZXQpIHtcbiAgICAgICAgICBjb25zdCBnYXBPZmZzZXQgPSBNYXRoLm1pbihvZmZzZXQgLSAxLCBvZmZzZXQgLSBkaWZmKTtcbiAgICAgICAgICBpZiAoc291cmNlRGlyZWN0aW9uW2RpcmVjdGlvbkFjY2Vzc29yXSA9PT0gY3VycmVudERpcmVjdGlvbikge1xuICAgICAgICAgICAgc291cmNlR2FwT2Zmc2V0W2RpcmVjdGlvbkFjY2Vzc29yXSA9XG4gICAgICAgICAgICAgIChzb3VyY2VHYXBbZGlyZWN0aW9uQWNjZXNzb3JdID4gc291cmNlW2RpcmVjdGlvbkFjY2Vzc29yXSA/IC0xIDogMSkgKiBnYXBPZmZzZXQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRhcmdldEdhcE9mZnNldFtkaXJlY3Rpb25BY2Nlc3Nvcl0gPVxuICAgICAgICAgICAgICAodGFyZ2V0R2FwW2RpcmVjdGlvbkFjY2Vzc29yXSA+IHRhcmdldFtkaXJlY3Rpb25BY2Nlc3Nvcl0gPyAtMSA6IDEpICogZ2FwT2Zmc2V0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc291cmNlU2lkZSAhPT0gdGFyZ2V0U2lkZSkge1xuICAgICAgICBjb25zdCBkaXJBY2Nlc3Nvck9wcG9zaXRlID0gZGlyZWN0aW9uQWNjZXNzb3IgPT09ICd4JyA/ICd5JyA6ICd4JztcbiAgICAgICAgY29uc3QgaXNTYW1lRGlyID1cbiAgICAgICAgICBzb3VyY2VEaXJlY3Rpb25bZGlyZWN0aW9uQWNjZXNzb3JdID09PSB0YXJnZXREaXJlY3Rpb25bZGlyQWNjZXNzb3JPcHBvc2l0ZV07XG4gICAgICAgIGNvbnN0IHNvdXJjZUd0VGFyZ2V0T3BwbyA9IHNvdXJjZUdhcFtkaXJBY2Nlc3Nvck9wcG9zaXRlXSA+IHRhcmdldEdhcFtkaXJBY2Nlc3Nvck9wcG9zaXRlXTtcbiAgICAgICAgY29uc3Qgc291cmNlTHRUYXJnZXRPcHBvID0gc291cmNlR2FwW2RpckFjY2Vzc29yT3Bwb3NpdGVdIDwgdGFyZ2V0R2FwW2RpckFjY2Vzc29yT3Bwb3NpdGVdO1xuICAgICAgICBjb25zdCBmbGlwU291cmNlVGFyZ2V0ID1cbiAgICAgICAgICAoc291cmNlRGlyZWN0aW9uW2RpcmVjdGlvbkFjY2Vzc29yXSA9PT0gMSAmJlxuICAgICAgICAgICAgKCghaXNTYW1lRGlyICYmIHNvdXJjZUd0VGFyZ2V0T3BwbykgfHwgKGlzU2FtZURpciAmJiBzb3VyY2VMdFRhcmdldE9wcG8pKSkgfHxcbiAgICAgICAgICAoc291cmNlRGlyZWN0aW9uW2RpcmVjdGlvbkFjY2Vzc29yXSAhPT0gMSAmJlxuICAgICAgICAgICAgKCghaXNTYW1lRGlyICYmIHNvdXJjZUx0VGFyZ2V0T3BwbykgfHwgKGlzU2FtZURpciAmJiBzb3VyY2VHdFRhcmdldE9wcG8pKSk7XG5cbiAgICAgICAgaWYgKGZsaXBTb3VyY2VUYXJnZXQpIHtcbiAgICAgICAgICBwb2ludHMgPSBkaXJlY3Rpb25BY2Nlc3NvciA9PT0gJ3gnID8gc291cmNlVGFyZ2V0IDogdGFyZ2V0U291cmNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aFBvaW50cyA9IFtcbiAgICAgIHNvdXJjZSxcbiAgICAgIHsgeDogc291cmNlR2FwLnggKyBzb3VyY2VHYXBPZmZzZXQueCwgeTogc291cmNlR2FwLnkgKyBzb3VyY2VHYXBPZmZzZXQueSB9LFxuICAgICAgLi4ucG9pbnRzLFxuICAgICAgeyB4OiB0YXJnZXRHYXAueCArIHRhcmdldEdhcE9mZnNldC54LCB5OiB0YXJnZXRHYXAueSArIHRhcmdldEdhcE9mZnNldC55IH0sXG4gICAgICB0YXJnZXQsXG4gICAgXTtcblxuICAgIGNvbnN0IGNlbnRlciA9IG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlcigpLmhhbmRsZShcbiAgICAgIG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVyUmVxdWVzdChwYXRoUG9pbnRzKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHsgcG9pbnRzOiBwYXRoUG9pbnRzLCBjZW50ZXIgfTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERpcmVjdGlvbihzb3VyY2U6IElQb2ludCwgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUsIHRhcmdldDogSVBvaW50KTogSVBvaW50IHtcbiAgICBpZiAoc291cmNlU2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuTEVGVCB8fCBzb3VyY2VTaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5SSUdIVCkge1xuICAgICAgcmV0dXJuIHNvdXJjZS54IDwgdGFyZ2V0LnhcbiAgICAgICAgPyBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgxLCAwKVxuICAgICAgICA6IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKC0xLCAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc291cmNlLnkgPCB0YXJnZXQueVxuICAgICAgPyBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAxKVxuICAgICAgOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAtMSk7XG4gIH1cblxuICBwcml2YXRlIF9kaXN0YW5jZShhOiBJUG9pbnQsIGI6IElQb2ludCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyhiLnggLSBhLngsIDIpICsgTWF0aC5wb3coYi55IC0gYS55LCAyKSk7XG4gIH1cblxuICBwcml2YXRlIF9idWlsZFBhdGgocG9pbnRzOiBJUG9pbnRbXSwgYm9yZGVyUmFkaXVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCBwYXRoID0gJyc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHAgPSBwb2ludHNbaV07XG4gICAgICBsZXQgc2VnbWVudCA9ICcnO1xuXG4gICAgICBpZiAoaSA+IDAgJiYgaSA8IHBvaW50cy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHNlZ21lbnQgPSB0aGlzLl9nZXRCZW5kKHBvaW50c1tpIC0gMV0sIHAsIHBvaW50c1tpICsgMV0sIGJvcmRlclJhZGl1cyk7XG4gICAgICB9IGVsc2UgaWYgKGkgPT09IHBvaW50cy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHNlZ21lbnQgPSB0aGlzLl9idWlsZExhc3RMaW5lU2VnbWVudChpLCBwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlZ21lbnQgPSB0aGlzLl9idWlsZE1vdmVPckxpbmVTZWdtZW50KGksIHApO1xuICAgICAgfVxuICAgICAgcGF0aCArPSBzZWdtZW50O1xuICAgIH1cblxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QmVuZChhOiBJUG9pbnQsIGI6IElQb2ludCwgYzogSVBvaW50LCBzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJlbmRTaXplID0gTWF0aC5taW4odGhpcy5fZGlzdGFuY2UoYSwgYikgLyAyLCB0aGlzLl9kaXN0YW5jZShiLCBjKSAvIDIsIHNpemUpO1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gYjtcblxuICAgIGlmICgoYS54ID09PSB4ICYmIHggPT09IGMueCkgfHwgKGEueSA9PT0geSAmJiB5ID09PSBjLnkpKSB7XG4gICAgICByZXR1cm4gYEwke3h9ICR7eX1gO1xuICAgIH1cblxuICAgIGlmIChhLnkgPT09IHkpIHtcbiAgICAgIGNvbnN0IHhEaXIgPSBhLnggPCBjLnggPyAtMSA6IDE7XG4gICAgICBjb25zdCB5RGlyID0gYS55IDwgYy55ID8gMSA6IC0xO1xuXG4gICAgICByZXR1cm4gYEwgJHt4ICsgYmVuZFNpemUgKiB4RGlyfSwke3l9USAke3h9LCR7eX0gJHt4fSwke3kgKyBiZW5kU2l6ZSAqIHlEaXJ9YDtcbiAgICB9XG5cbiAgICBjb25zdCB4RGlyID0gYS54IDwgYy54ID8gMSA6IC0xO1xuICAgIGNvbnN0IHlEaXIgPSBhLnkgPCBjLnkgPyAtMSA6IDE7XG5cbiAgICByZXR1cm4gYEwgJHt4fSwke3kgKyBiZW5kU2l6ZSAqIHlEaXJ9USAke3h9LCR7eX0gJHt4ICsgYmVuZFNpemUgKiB4RGlyfSwke3l9YDtcbiAgfVxuXG4gIHByaXZhdGUgX2J1aWxkTW92ZU9yTGluZVNlZ21lbnQoaW5kZXg6IG51bWJlciwgcG9pbnQ6IElQb2ludCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2luZGV4ID09PSAwID8gJ00nIDogJ0wnfSR7cG9pbnQueH0gJHtwb2ludC55fWA7XG4gIH1cblxuICBwcml2YXRlIF9idWlsZExhc3RMaW5lU2VnbWVudChpbmRleDogbnVtYmVyLCBwb2ludDogSVBvaW50KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYEwke3BvaW50LnggKyAwLjAwMDJ9ICR7cG9pbnQueSArIDAuMDAwMn1gO1xuICB9XG59XG4iXX0=
@@ -1,16 +0,0 @@
1
- import { CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, } from './calculate-connection-center';
2
- export class FStraightPathBuilder {
3
- handle(request) {
4
- const { source, target } = request;
5
- const path = `M ${source.x} ${source.y} L ${target.x + 0.0002} ${target.y + 0.0002}`;
6
- const connectionCenter = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest([source, target]));
7
- return {
8
- path,
9
- connectionCenter,
10
- penultimatePoint: source,
11
- secondPoint: target,
12
- points: [source, connectionCenter, target],
13
- };
14
- }
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zdHJhaWdodC5wYXRoLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZG9tYWluL2Ytc3RyYWlnaHQucGF0aC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsZ0NBQWdDLEdBQ2pDLE1BQU0sK0JBQStCLENBQUM7QUFPdkMsTUFBTSxPQUFPLG9CQUFvQjtJQUN4QixNQUFNLENBQUMsT0FBbUM7UUFDL0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDbkMsTUFBTSxJQUFJLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLE1BQU0sTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUVyRixNQUFNLGdCQUFnQixHQUFHLElBQUksZ0NBQWdDLEVBQUUsQ0FBQyxNQUFNLENBQ3BFLElBQUksZ0NBQWdDLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDdkQsQ0FBQztRQUVGLE9BQU87WUFDTCxJQUFJO1lBQ0osZ0JBQWdCO1lBQ2hCLGdCQUFnQixFQUFFLE1BQU07WUFDeEIsV0FBVyxFQUFFLE1BQU07WUFDbkIsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztTQUMzQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlckhhbmRsZXIsXG4gIENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0LFxufSBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0aW9uLWNlbnRlcic7XG5pbXBvcnQge1xuICBJRkNvbm5lY3Rpb25CdWlsZGVyLFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCxcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24tYnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBGU3RyYWlnaHRQYXRoQnVpbGRlciBpbXBsZW1lbnRzIElGQ29ubmVjdGlvbkJ1aWxkZXIge1xuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0KTogSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlIHtcbiAgICBjb25zdCB7IHNvdXJjZSwgdGFyZ2V0IH0gPSByZXF1ZXN0O1xuICAgIGNvbnN0IHBhdGggPSBgTSAke3NvdXJjZS54fSAke3NvdXJjZS55fSBMICR7dGFyZ2V0LnggKyAwLjAwMDJ9ICR7dGFyZ2V0LnkgKyAwLjAwMDJ9YDtcblxuICAgIGNvbnN0IGNvbm5lY3Rpb25DZW50ZXIgPSBuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlckhhbmRsZXIoKS5oYW5kbGUoXG4gICAgICBuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlclJlcXVlc3QoW3NvdXJjZSwgdGFyZ2V0XSksXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwYXRoLFxuICAgICAgY29ubmVjdGlvbkNlbnRlcixcbiAgICAgIHBlbnVsdGltYXRlUG9pbnQ6IHNvdXJjZSxcbiAgICAgIHNlY29uZFBvaW50OiB0YXJnZXQsXG4gICAgICBwb2ludHM6IFtzb3VyY2UsIGNvbm5lY3Rpb25DZW50ZXIsIHRhcmdldF0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,7 +0,0 @@
1
- export * from './calculate-center-between-points';
2
- export * from './calculate-connection-center';
3
- export * from './adaptive-curve-builder';
4
- export * from './f-bezier.path-builder';
5
- export * from './f-segment.path-builder';
6
- export * from './f-straight.path-builder';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY2VudGVyLWJldHdlZW4tcG9pbnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2FkYXB0aXZlLWN1cnZlLWJ1aWxkZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtYmV6aWVyLnBhdGgtYnVpbGRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zZWdtZW50LnBhdGgtYnVpbGRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zdHJhaWdodC5wYXRoLWJ1aWxkZXInO1xuIl19
@@ -1,7 +0,0 @@
1
- export var EFConnectionBehavior;
2
- (function (EFConnectionBehavior) {
3
- EFConnectionBehavior["FIXED"] = "fixed";
4
- EFConnectionBehavior["FIXED_CENTER"] = "fixed_center";
5
- EFConnectionBehavior["FLOATING"] = "floating";
6
- })(EFConnectionBehavior || (EFConnectionBehavior = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1mLWNvbm5lY3Rpb24tYmVoYXZpb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZS1mLWNvbm5lY3Rpb24tYmVoYXZpb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksb0JBT1g7QUFQRCxXQUFZLG9CQUFvQjtJQUU5Qix1Q0FBZSxDQUFBO0lBRWYscURBQTZCLENBQUE7SUFFN0IsNkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVBXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFPL0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFRkNvbm5lY3Rpb25CZWhhdmlvciB7XG5cbiAgRklYRUQgPSAnZml4ZWQnLFxuXG4gIEZJWEVEX0NFTlRFUiA9ICdmaXhlZF9jZW50ZXInLFxuXG4gIEZMT0FUSU5HID0gJ2Zsb2F0aW5nJyxcbn1cbiJdfQ==
@@ -1,12 +0,0 @@
1
- export var EFConnectionConnectableSide;
2
- (function (EFConnectionConnectableSide) {
3
- EFConnectionConnectableSide["DEFAULT"] = "default";
4
- EFConnectionConnectableSide["TOP"] = "top";
5
- EFConnectionConnectableSide["BOTTOM"] = "bottom";
6
- EFConnectionConnectableSide["LEFT"] = "left";
7
- EFConnectionConnectableSide["RIGHT"] = "right";
8
- EFConnectionConnectableSide["CALCULATE"] = "calculate";
9
- EFConnectionConnectableSide["CALCULATE_HORIZONTAL"] = "calculate_horizontal";
10
- EFConnectionConnectableSide["CALCULATE_VERTICAL"] = "calculate_vertical";
11
- })(EFConnectionConnectableSide || (EFConnectionConnectableSide = {}));
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1mLWNvbm5lY3Rpb24tY29ubmVjdGFibGUtc2lkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9lLWYtY29ubmVjdGlvbi1jb25uZWN0YWJsZS1zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLDJCQWdCWDtBQWhCRCxXQUFZLDJCQUEyQjtJQUNyQyxrREFBbUIsQ0FBQTtJQUVuQiwwQ0FBVyxDQUFBO0lBRVgsZ0RBQWlCLENBQUE7SUFFakIsNENBQWEsQ0FBQTtJQUViLDhDQUFlLENBQUE7SUFFZixzREFBdUIsQ0FBQTtJQUV2Qiw0RUFBNkMsQ0FBQTtJQUU3Qyx3RUFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBaEJXLDJCQUEyQixLQUEzQiwyQkFBMkIsUUFnQnRDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlIHtcbiAgREVGQVVMVCA9ICdkZWZhdWx0JyxcblxuICBUT1AgPSAndG9wJyxcblxuICBCT1RUT00gPSAnYm90dG9tJyxcblxuICBMRUZUID0gJ2xlZnQnLFxuXG4gIFJJR0hUID0gJ3JpZ2h0JyxcblxuICBDQUxDVUxBVEUgPSAnY2FsY3VsYXRlJyxcblxuICBDQUxDVUxBVEVfSE9SSVpPTlRBTCA9ICdjYWxjdWxhdGVfaG9yaXpvbnRhbCcsXG5cbiAgQ0FMQ1VMQVRFX1ZFUlRJQ0FMID0gJ2NhbGN1bGF0ZV92ZXJ0aWNhbCcsXG59XG4iXX0=
@@ -1,8 +0,0 @@
1
- export var EFConnectionType;
2
- (function (EFConnectionType) {
3
- EFConnectionType["SEGMENT"] = "segment";
4
- EFConnectionType["STRAIGHT"] = "straight";
5
- EFConnectionType["BEZIER"] = "bezier";
6
- EFConnectionType["ADAPTIVE_CURVE"] = "adaptive-curve";
7
- })(EFConnectionType || (EFConnectionType = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1mLWNvbm5lY3Rpb24tdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9lLWYtY29ubmVjdGlvbi10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQVFYO0FBUkQsV0FBWSxnQkFBZ0I7SUFDMUIsdUNBQW1CLENBQUE7SUFFbkIseUNBQXFCLENBQUE7SUFFckIscUNBQWlCLENBQUE7SUFFakIscURBQWlDLENBQUE7QUFDbkMsQ0FBQyxFQVJXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFRM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFRkNvbm5lY3Rpb25UeXBlIHtcbiAgU0VHTUVOVCA9ICdzZWdtZW50JyxcblxuICBTVFJBSUdIVCA9ICdzdHJhaWdodCcsXG5cbiAgQkVaSUVSID0gJ2JlemllcicsXG5cbiAgQURBUFRJVkVfQ1VSVkUgPSAnYWRhcHRpdmUtY3VydmUnLFxufVxuIl19
@@ -1,121 +0,0 @@
1
- import { contentChildren, Directive, ElementRef, inject, input, signal, viewChild, } from '@angular/core';
2
- import { LineExtensions, PointExtensions } from '@foblex/2d';
3
- import { CONNECTION_PATH } from './f-path';
4
- import { CONNECTION_GRADIENT } from './f-gradient';
5
- import { FConnectionDragHandleEndComponent, FConnectionDragHandleStartComponent, } from './f-drag-handle';
6
- import { FConnectionSelectionComponent } from './f-selection';
7
- import { CONNECTION_TEXT } from './f-connection-text';
8
- import { EFConnectableSide } from '../../f-connectors';
9
- import { FConnectionFactory } from '../f-connection-builder';
10
- import { mixinChangeSelection, mixinChangeVisibility, } from '../../mixins';
11
- import { FConnectionCenterDirective } from '../f-connection-center';
12
- import { ConnectionContentLayoutEngine, FConnectionContent } from '../f-connection-content';
13
- import { EFConnectionConnectableSide } from './e-f-connection-connectable-side';
14
- import * as i0 from "@angular/core";
15
- const MIXIN_BASE = mixinChangeSelection(mixinChangeVisibility(class {
16
- hostElement;
17
- constructor(hostElement) {
18
- this.hostElement = hostElement;
19
- }
20
- }));
21
- export class FConnectionBase extends MIXIN_BASE {
22
- _connectionFactory = inject(FConnectionFactory);
23
- fStartColor = input('black');
24
- fEndColor = input('black');
25
- path = '';
26
- line = LineExtensions.initialize();
27
- fReassignableStart = signal(false);
28
- fDraggingDisabled = signal(false);
29
- fSelectionDisabled = signal(false);
30
- fDefs = viewChild.required('defs');
31
- fPath = viewChild.required(CONNECTION_PATH);
32
- fGradient = viewChild.required(CONNECTION_GRADIENT);
33
- fDragHandleStart = viewChild(FConnectionDragHandleStartComponent);
34
- fDragHandleEnd = viewChild.required(FConnectionDragHandleEndComponent);
35
- fSelection = viewChild.required(FConnectionSelectionComponent);
36
- fTextComponent = viewChild.required(CONNECTION_TEXT);
37
- fConnectionCenter = viewChild('fConnectionCenter');
38
- fConnectionCenters = contentChildren(FConnectionCenterDirective, {
39
- descendants: true,
40
- });
41
- fConnectionContents = contentChildren(FConnectionContent, {
42
- descendants: true,
43
- });
44
- fInputSide = signal(EFConnectionConnectableSide.DEFAULT);
45
- _sourceSide = EFConnectableSide.AUTO;
46
- fOutputSide = signal(EFConnectionConnectableSide.DEFAULT);
47
- _targetSide = EFConnectableSide.AUTO;
48
- _penultimatePoint = PointExtensions.initialize();
49
- _secondPoint = PointExtensions.initialize();
50
- constructor() {
51
- super(inject((ElementRef)).nativeElement);
52
- }
53
- initialize() {
54
- this.fPath().initialize();
55
- this.fGradient().initialize();
56
- this.redraw();
57
- }
58
- isContains(element) {
59
- return (this.hostElement.firstChild?.lastChild).contains(element);
60
- }
61
- setLine({ point1, point2 }) {
62
- this.line = LineExtensions.initialize(point1, point2);
63
- const pathResult = this._getPathResult(point1, point2);
64
- this.path = pathResult.path;
65
- this._penultimatePoint = pathResult.penultimatePoint || point1;
66
- this._secondPoint = pathResult.secondPoint || point2;
67
- new ConnectionContentLayoutEngine().layout(this.line, pathResult, this._contents());
68
- this.fConnectionCenter()?.nativeElement?.setAttribute('style', this._createTransformString(pathResult.connectionCenter));
69
- }
70
- _contents() {
71
- return Array.from(this.fConnectionContents()?.values() ?? []);
72
- }
73
- _getPathResult(source, target) {
74
- const radius = this.fRadius > 0 ? this.fRadius : 0;
75
- const offset = this.fOffset > 0 ? this.fOffset : 1;
76
- return this._connectionFactory.handle({
77
- type: this.fType,
78
- payload: {
79
- source,
80
- sourceSide: this._sourceSide,
81
- target,
82
- targetSide: this._targetSide,
83
- radius,
84
- offset,
85
- },
86
- });
87
- }
88
- _createTransformString(position, rotate = 0) {
89
- return `position: absolute; pointer-events: all; transform: translate(-50%, -50%) rotate(${rotate}deg); left: ${position.x}px; top: ${position.y}px`;
90
- }
91
- markChildrenAsSelected() {
92
- this.fPath().select();
93
- }
94
- unmarkChildrenAsSelected() {
95
- this.fPath().deselect();
96
- }
97
- redraw() {
98
- this.fPath().setPath(this.path);
99
- this.fSelection().setPath(this.path);
100
- this.fGradient().redraw(this.line);
101
- this.fDragHandleEnd().redraw(this._penultimatePoint, this.line.point2);
102
- this.fDragHandleStart()?.redraw(this._secondPoint, this.line.point1);
103
- this.fTextComponent().redraw(this.line);
104
- }
105
- /**
106
- * Applies the resolved sides to the connection. Don't call this method directly; it's used internally.
107
- *
108
- * @param sourceSide The resolved side for the source element.
109
- * @param targetSide The resolved side for the target element.
110
- */
111
- _applyResolvedSidesToConnection(sourceSide, targetSide) {
112
- this._sourceSide = sourceSide;
113
- this._targetSide = targetSide;
114
- }
115
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
116
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: FConnectionBase, inputs: { fStartColor: { classPropertyName: "fStartColor", publicName: "fStartColor", isSignal: true, isRequired: false, transformFunction: null }, fEndColor: { classPropertyName: "fEndColor", publicName: "fEndColor", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true, isSignal: true }, { propertyName: "fConnectionContents", predicate: FConnectionContent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, isSignal: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, isSignal: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, isSignal: true }, { propertyName: "fDragHandleStart", first: true, predicate: FConnectionDragHandleStartComponent, descendants: true, isSignal: true }, { propertyName: "fDragHandleEnd", first: true, predicate: FConnectionDragHandleEndComponent, descendants: true, isSignal: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, isSignal: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, isSignal: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });
117
- }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionBase, decorators: [{
119
- type: Directive
120
- }], ctorParameters: () => [] });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1jb25uZWN0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWlCLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFNNUUsT0FBTyxFQUFFLGVBQWUsRUFBbUIsTUFBTSxVQUFVLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUN4RSxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLG1DQUFtQyxHQUNwQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFHTCxvQkFBb0IsRUFDcEIscUJBQXFCLEdBQ3RCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUVoRixNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FDckMscUJBQXFCLENBQ25CO0lBQ3FCO0lBQW5CLFlBQW1CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztDQUNoRCxDQUNGLENBQ0YsQ0FBQztBQUdGLE1BQU0sT0FBZ0IsZUFDcEIsU0FBUSxVQUFVO0lBU0Qsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFJakQsV0FBVyxHQUFHLEtBQUssQ0FBUyxPQUFPLENBQUMsQ0FBQztJQUVyQyxTQUFTLEdBQUcsS0FBSyxDQUFTLE9BQU8sQ0FBQyxDQUFDO0lBVXpDLElBQUksR0FBVyxFQUFFLENBQUM7SUFFckIsSUFBSSxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUUxQixrQkFBa0IsR0FBb0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBELGlCQUFpQixHQUFvQixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFMUMsa0JBQWtCLEdBQW9CLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQVE3RCxLQUFLLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBNkIsTUFBTSxDQUFDLENBQUM7SUFFL0QsS0FBSyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWtCLGVBQWUsQ0FBQyxDQUFDO0lBRTdELFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFzQixtQkFBbUIsQ0FBQyxDQUFDO0lBRXpFLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBRWxFLGNBQWMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFFdkUsVUFBVSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUUvRCxjQUFjLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBa0IsZUFBZSxDQUFDLENBQUM7SUFNdEUsaUJBQWlCLEdBQUcsU0FBUyxDQUE2QixtQkFBbUIsQ0FBQyxDQUFDO0lBRS9FLGtCQUFrQixHQUFHLGVBQWUsQ0FBQywwQkFBMEIsRUFBRTtRQUMvRSxXQUFXLEVBQUUsSUFBSTtLQUNsQixDQUFDLENBQUM7SUFFYSxtQkFBbUIsR0FBRyxlQUFlLENBQUMsa0JBQWtCLEVBQUU7UUFDeEUsV0FBVyxFQUFFLElBQUk7S0FDbEIsQ0FBQyxDQUFDO0lBRWEsVUFBVSxHQUF3QyxNQUFNLENBQ3RFLDJCQUEyQixDQUFDLE9BQU8sQ0FDcEMsQ0FBQztJQUVNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFFN0IsV0FBVyxHQUF3QyxNQUFNLENBQ3ZFLDJCQUEyQixDQUFDLE9BQU8sQ0FDcEMsQ0FBQztJQUVNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFFckMsaUJBQWlCLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pELFlBQVksR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFcEQ7UUFDRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sVUFBVSxDQUFDLE9BQWlDO1FBQ2pELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxTQUF5QixDQUFBLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTSxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFTO1FBQ3RDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDO1FBQy9ELElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7UUFFckQsSUFBSSw2QkFBNkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUVwRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUNuRCxPQUFPLEVBQ1AsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVPLFNBQVM7UUFDZixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUNuRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO1lBQ3BDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixPQUFPLEVBQUU7Z0JBQ1AsTUFBTTtnQkFDTixVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzVCLE1BQU07Z0JBQ04sVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM1QixNQUFNO2dCQUNOLE1BQU07YUFDUDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxRQUFnQixFQUFFLFNBQWlCLENBQUM7UUFDakUsT0FBTyxvRkFBb0YsTUFBTSxlQUFlLFFBQVEsQ0FBQyxDQUFDLFlBQVksUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZKLENBQUM7SUFFZSxzQkFBc0I7UUFDcEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFZSx3QkFBd0I7UUFDdEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLCtCQUErQixDQUNwQyxVQUE2QixFQUM3QixVQUE2QjtRQUU3QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO3dHQTFLbUIsZUFBZTs0RkFBZixlQUFlLHVWQThEa0IsMEJBQTBCLHlGQUl6QixrQkFBa0IsdU1BdEJaLGVBQWUsNEZBRVAsbUJBQW1CLG1HQUUxQyxtQ0FBbUMsaUdBRTVCLGlDQUFpQyw2RkFFckMsNkJBQTZCLGlHQUVSLGVBQWU7OzRGQXREaEUsZUFBZTtrQkFEcEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBzaWduYWwsXG4gIFNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaW5lLCBJUG9pbnQsIExpbmVFeHRlbnNpb25zLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEVGQ29ubmVjdGlvbkJlaGF2aW9yIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi1iZWhhdmlvcic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi10eXBlJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uQ29sb3IgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tY29sb3InO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8gfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tZnJvbS10byc7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvblRleHQgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQgeyBDT05ORUNUSU9OX1BBVEgsIElDb25uZWN0aW9uUGF0aCB9IGZyb20gJy4vZi1wYXRoJztcbmltcG9ydCB7IENPTk5FQ1RJT05fR1JBRElFTlQsIElDb25uZWN0aW9uR3JhZGllbnQgfSBmcm9tICcuL2YtZ3JhZGllbnQnO1xuaW1wb3J0IHtcbiAgRkNvbm5lY3Rpb25EcmFnSGFuZGxlRW5kQ29tcG9uZW50LFxuICBGQ29ubmVjdGlvbkRyYWdIYW5kbGVTdGFydENvbXBvbmVudCxcbn0gZnJvbSAnLi9mLWRyYWctaGFuZGxlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uU2VsZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9mLXNlbGVjdGlvbic7XG5pbXBvcnQgeyBDT05ORUNUSU9OX1RFWFQsIElDb25uZWN0aW9uVGV4dCB9IGZyb20gJy4vZi1jb25uZWN0aW9uLXRleHQnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25GYWN0b3J5IH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLWJ1aWxkZXInO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcbmltcG9ydCB7XG4gIElTZWxlY3RhYmxlLFxuICBJQ2FuQ2hhbmdlVmlzaWJpbGl0eSxcbiAgbWl4aW5DaGFuZ2VTZWxlY3Rpb24sXG4gIG1peGluQ2hhbmdlVmlzaWJpbGl0eSxcbn0gZnJvbSAnLi4vLi4vbWl4aW5zJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQ2VudGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLWNlbnRlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uQ29udGVudExheW91dEVuZ2luZSwgRkNvbm5lY3Rpb25Db250ZW50IH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLWNvbnRlbnQnO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi1jb25uZWN0YWJsZS1zaWRlJztcblxuY29uc3QgTUlYSU5fQkFTRSA9IG1peGluQ2hhbmdlU2VsZWN0aW9uKFxuICBtaXhpbkNoYW5nZVZpc2liaWxpdHkoXG4gICAgY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IocHVibGljIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCkge31cbiAgICB9LFxuICApLFxuKTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkNvbm5lY3Rpb25CYXNlXG4gIGV4dGVuZHMgTUlYSU5fQkFTRVxuICBpbXBsZW1lbnRzXG4gICAgSUhhc0hvc3RFbGVtZW50LFxuICAgIElTZWxlY3RhYmxlLFxuICAgIElDYW5DaGFuZ2VWaXNpYmlsaXR5LFxuICAgIElIYXNDb25uZWN0aW9uQ29sb3IsXG4gICAgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8sXG4gICAgSUhhc0Nvbm5lY3Rpb25UZXh0XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nvbm5lY3Rpb25GYWN0b3J5ID0gaW5qZWN0KEZDb25uZWN0aW9uRmFjdG9yeSk7XG5cbiAgcHVibGljIGFic3RyYWN0IG92ZXJyaWRlIGZJZDogU2lnbmFsPHN0cmluZz47XG5cbiAgcHVibGljIHJlYWRvbmx5IGZTdGFydENvbG9yID0gaW5wdXQ8c3RyaW5nPignYmxhY2snKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkVuZENvbG9yID0gaW5wdXQ8c3RyaW5nPignYmxhY2snKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk91dHB1dElkOiBTaWduYWw8c3RyaW5nPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZklucHV0SWQ6IFNpZ25hbDxzdHJpbmc+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmUmFkaXVzOiBudW1iZXI7XG5cbiAgcHVibGljIGFic3RyYWN0IGZPZmZzZXQ6IG51bWJlcjtcblxuICBwcm90ZWN0ZWQgcGF0aDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIGxpbmUgPSBMaW5lRXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZSZWFzc2lnbmFibGVTdGFydDogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkRyYWdnaW5nRGlzYWJsZWQ6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGZTZWxlY3Rpb25EaXNhYmxlZDogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgYm91bmRpbmdFbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGZCZWhhdmlvcjogRUZDb25uZWN0aW9uQmVoYXZpb3I7XG5cbiAgcHVibGljIGFic3RyYWN0IGZUeXBlOiBFRkNvbm5lY3Rpb25UeXBlIHwgc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBmRGVmcyA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPFNWR0RlZnNFbGVtZW50Pj4oJ2RlZnMnKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZlBhdGggPSB2aWV3Q2hpbGQucmVxdWlyZWQ8SUNvbm5lY3Rpb25QYXRoPihDT05ORUNUSU9OX1BBVEgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmR3JhZGllbnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8SUNvbm5lY3Rpb25HcmFkaWVudD4oQ09OTkVDVElPTl9HUkFESUVOVCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZEcmFnSGFuZGxlU3RhcnQgPSB2aWV3Q2hpbGQoRkNvbm5lY3Rpb25EcmFnSGFuZGxlU3RhcnRDb21wb25lbnQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmRHJhZ0hhbmRsZUVuZCA9IHZpZXdDaGlsZC5yZXF1aXJlZChGQ29ubmVjdGlvbkRyYWdIYW5kbGVFbmRDb21wb25lbnQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmU2VsZWN0aW9uID0gdmlld0NoaWxkLnJlcXVpcmVkKEZDb25uZWN0aW9uU2VsZWN0aW9uQ29tcG9uZW50KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZlRleHRDb21wb25lbnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8SUNvbm5lY3Rpb25UZXh0PihDT05ORUNUSU9OX1RFWFQpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVGV4dDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVGV4dFN0YXJ0T2Zmc2V0OiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZDb25uZWN0aW9uQ2VudGVyID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PignZkNvbm5lY3Rpb25DZW50ZXInKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkNvbm5lY3Rpb25DZW50ZXJzID0gY29udGVudENoaWxkcmVuKEZDb25uZWN0aW9uQ2VudGVyRGlyZWN0aXZlLCB7XG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBmQ29ubmVjdGlvbkNvbnRlbnRzID0gY29udGVudENoaWxkcmVuKEZDb25uZWN0aW9uQ29udGVudCwge1xuICAgIGRlc2NlbmRhbnRzOiB0cnVlLFxuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZklucHV0U2lkZTogU2lnbmFsPEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZT4gPSBzaWduYWwoXG4gICAgRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlLkRFRkFVTFQsXG4gICk7XG5cbiAgcHJpdmF0ZSBfc291cmNlU2lkZSA9IEVGQ29ubmVjdGFibGVTaWRlLkFVVE87XG5cbiAgcHVibGljIHJlYWRvbmx5IGZPdXRwdXRTaWRlOiBTaWduYWw8RUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlPiA9IHNpZ25hbChcbiAgICBFRkNvbm5lY3Rpb25Db25uZWN0YWJsZVNpZGUuREVGQVVMVCxcbiAgKTtcblxuICBwcml2YXRlIF90YXJnZXRTaWRlID0gRUZDb25uZWN0YWJsZVNpZGUuQVVUTztcblxuICBwcml2YXRlIF9wZW51bHRpbWF0ZVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgcHJpdmF0ZSBfc2Vjb25kUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy5mUGF0aCgpLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLmZHcmFkaWVudCgpLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9XG5cbiAgcHVibGljIGlzQ29udGFpbnMoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmhvc3RFbGVtZW50LmZpcnN0Q2hpbGQ/Lmxhc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuY29udGFpbnMoZWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGluZSh7IHBvaW50MSwgcG9pbnQyIH06IElMaW5lKTogdm9pZCB7XG4gICAgdGhpcy5saW5lID0gTGluZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZShwb2ludDEsIHBvaW50Mik7XG5cbiAgICBjb25zdCBwYXRoUmVzdWx0ID0gdGhpcy5fZ2V0UGF0aFJlc3VsdChwb2ludDEsIHBvaW50Mik7XG5cbiAgICB0aGlzLnBhdGggPSBwYXRoUmVzdWx0LnBhdGg7XG4gICAgdGhpcy5fcGVudWx0aW1hdGVQb2ludCA9IHBhdGhSZXN1bHQucGVudWx0aW1hdGVQb2ludCB8fCBwb2ludDE7XG4gICAgdGhpcy5fc2Vjb25kUG9pbnQgPSBwYXRoUmVzdWx0LnNlY29uZFBvaW50IHx8IHBvaW50MjtcblxuICAgIG5ldyBDb25uZWN0aW9uQ29udGVudExheW91dEVuZ2luZSgpLmxheW91dCh0aGlzLmxpbmUsIHBhdGhSZXN1bHQsIHRoaXMuX2NvbnRlbnRzKCkpO1xuXG4gICAgdGhpcy5mQ29ubmVjdGlvbkNlbnRlcigpPy5uYXRpdmVFbGVtZW50Py5zZXRBdHRyaWJ1dGUoXG4gICAgICAnc3R5bGUnLFxuICAgICAgdGhpcy5fY3JlYXRlVHJhbnNmb3JtU3RyaW5nKHBhdGhSZXN1bHQuY29ubmVjdGlvbkNlbnRlciksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbnRlbnRzKCk6IEZDb25uZWN0aW9uQ29udGVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZDb25uZWN0aW9uQ29udGVudHMoKT8udmFsdWVzKCkgPz8gW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UGF0aFJlc3VsdChzb3VyY2U6IElQb2ludCwgdGFyZ2V0OiBJUG9pbnQpIHtcbiAgICBjb25zdCByYWRpdXMgPSB0aGlzLmZSYWRpdXMgPiAwID8gdGhpcy5mUmFkaXVzIDogMDtcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmZPZmZzZXQgPiAwID8gdGhpcy5mT2Zmc2V0IDogMTtcblxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uRmFjdG9yeS5oYW5kbGUoe1xuICAgICAgdHlwZTogdGhpcy5mVHlwZSxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgc291cmNlLFxuICAgICAgICBzb3VyY2VTaWRlOiB0aGlzLl9zb3VyY2VTaWRlLFxuICAgICAgICB0YXJnZXQsXG4gICAgICAgIHRhcmdldFNpZGU6IHRoaXMuX3RhcmdldFNpZGUsXG4gICAgICAgIHJhZGl1cyxcbiAgICAgICAgb2Zmc2V0LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZVRyYW5zZm9ybVN0cmluZyhwb3NpdGlvbjogSVBvaW50LCByb3RhdGU6IG51bWJlciA9IDApOiBzdHJpbmcge1xuICAgIHJldHVybiBgcG9zaXRpb246IGFic29sdXRlOyBwb2ludGVyLWV2ZW50czogYWxsOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoJHtyb3RhdGV9ZGVnKTsgbGVmdDogJHtwb3NpdGlvbi54fXB4OyB0b3A6ICR7cG9zaXRpb24ueX1weGA7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgbWFya0NoaWxkcmVuQXNTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoKCkuc2VsZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdW5tYXJrQ2hpbGRyZW5Bc1NlbGVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGgoKS5kZXNlbGVjdCgpO1xuICB9XG5cbiAgcHVibGljIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoKCkuc2V0UGF0aCh0aGlzLnBhdGgpO1xuICAgIHRoaXMuZlNlbGVjdGlvbigpLnNldFBhdGgodGhpcy5wYXRoKTtcbiAgICB0aGlzLmZHcmFkaWVudCgpLnJlZHJhdyh0aGlzLmxpbmUpO1xuICAgIHRoaXMuZkRyYWdIYW5kbGVFbmQoKS5yZWRyYXcodGhpcy5fcGVudWx0aW1hdGVQb2ludCwgdGhpcy5saW5lLnBvaW50Mik7XG4gICAgdGhpcy5mRHJhZ0hhbmRsZVN0YXJ0KCk/LnJlZHJhdyh0aGlzLl9zZWNvbmRQb2ludCwgdGhpcy5saW5lLnBvaW50MSk7XG4gICAgdGhpcy5mVGV4dENvbXBvbmVudCgpLnJlZHJhdyh0aGlzLmxpbmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIHJlc29sdmVkIHNpZGVzIHRvIHRoZSBjb25uZWN0aW9uLiBEb24ndCBjYWxsIHRoaXMgbWV0aG9kIGRpcmVjdGx5OyBpdCdzIHVzZWQgaW50ZXJuYWxseS5cbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZVNpZGUgVGhlIHJlc29sdmVkIHNpZGUgZm9yIHRoZSBzb3VyY2UgZWxlbWVudC5cbiAgICogQHBhcmFtIHRhcmdldFNpZGUgVGhlIHJlc29sdmVkIHNpZGUgZm9yIHRoZSB0YXJnZXQgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBfYXBwbHlSZXNvbHZlZFNpZGVzVG9Db25uZWN0aW9uKFxuICAgIHNvdXJjZVNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLFxuICAgIHRhcmdldFNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9zb3VyY2VTaWRlID0gc291cmNlU2lkZTtcbiAgICB0aGlzLl90YXJnZXRTaWRlID0gdGFyZ2V0U2lkZTtcbiAgfVxufVxuIl19
@@ -1,22 +0,0 @@
1
- import { normalizeDomElementId } from '@foblex/utils';
2
- export const F_CONNECTION_IDENTIFIERS = {
3
- textId(connectionId) {
4
- return normalizeDomElementId('connection_text_' + connectionId);
5
- },
6
- connectionForSelectionId(connectionId) {
7
- return normalizeDomElementId('connection_for_selection_' + connectionId);
8
- },
9
- connectionId(connectionId) {
10
- return normalizeDomElementId('connection_' + connectionId);
11
- },
12
- gradientId(connectionId) {
13
- return normalizeDomElementId('connection_gradient_' + connectionId);
14
- },
15
- linkToGradient(connectionId) {
16
- return `url(#${F_CONNECTION_IDENTIFIERS.gradientId(connectionId)})`;
17
- },
18
- linkToConnection(connectionId) {
19
- return `#${F_CONNECTION_IDENTIFIERS.connectionId(connectionId)}`;
20
- },
21
- };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWlkZW50aWZpZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2YtY29ubmVjdGlvbi1pZGVudGlmaWVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFFdEMsTUFBTSxDQUFDLFlBQW9CO1FBQ3pCLE9BQU8scUJBQXFCLENBQUMsa0JBQWtCLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELHdCQUF3QixDQUFDLFlBQW9CO1FBQzNDLE9BQU8scUJBQXFCLENBQUMsMkJBQTJCLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELFlBQVksQ0FBQyxZQUFvQjtRQUMvQixPQUFPLHFCQUFxQixDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsVUFBVSxDQUFDLFlBQW9CO1FBQzdCLE9BQU8scUJBQXFCLENBQUMsc0JBQXNCLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELGNBQWMsQ0FBQyxZQUFvQjtRQUNqQyxPQUFPLFFBQVMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBRSxHQUFHLENBQUM7SUFDeEUsQ0FBQztJQUNELGdCQUFnQixDQUFDLFlBQW9CO1FBQ25DLE9BQU8sSUFBSyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFFLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0NBQ0YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZURvbUVsZW1lbnRJZCB9IGZyb20gJ0Bmb2JsZXgvdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgRl9DT05ORUNUSU9OX0lERU5USUZJRVJTID0ge1xuXG4gIHRleHRJZChjb25uZWN0aW9uSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZURvbUVsZW1lbnRJZCgnY29ubmVjdGlvbl90ZXh0XycgKyBjb25uZWN0aW9uSWQpO1xuICB9LFxuICBjb25uZWN0aW9uRm9yU2VsZWN0aW9uSWQoY29ubmVjdGlvbklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBub3JtYWxpemVEb21FbGVtZW50SWQoJ2Nvbm5lY3Rpb25fZm9yX3NlbGVjdGlvbl8nICsgY29ubmVjdGlvbklkKTtcbiAgfSxcbiAgY29ubmVjdGlvbklkKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbm9ybWFsaXplRG9tRWxlbWVudElkKCdjb25uZWN0aW9uXycgKyBjb25uZWN0aW9uSWQpO1xuICB9LFxuICBncmFkaWVudElkKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbm9ybWFsaXplRG9tRWxlbWVudElkKCdjb25uZWN0aW9uX2dyYWRpZW50XycgKyBjb25uZWN0aW9uSWQpO1xuICB9LFxuICBsaW5rVG9HcmFkaWVudChjb25uZWN0aW9uSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB1cmwoIyR7IEZfQ09OTkVDVElPTl9JREVOVElGSUVSUy5ncmFkaWVudElkKGNvbm5lY3Rpb25JZCkgfSlgO1xuICB9LFxuICBsaW5rVG9Db25uZWN0aW9uKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCMkeyBGX0NPTk5FQ1RJT05fSURFTlRJRklFUlMuY29ubmVjdGlvbklkKGNvbm5lY3Rpb25JZCkgfWA7XG4gIH0sXG59XG4iXX0=
@@ -1,65 +0,0 @@
1
- import { Directive, ElementRef, inject } from '@angular/core';
2
- import { F_CONNECTION_IDENTIFIERS } from '../f-connection-identifiers';
3
- import { F_CONNECTION } from '../f-connection.injection-token';
4
- import { BrowserService } from '@foblex/platform';
5
- import * as i0 from "@angular/core";
6
- export class FConnectionTextPathDirective {
7
- hostElement = inject((ElementRef)).nativeElement;
8
- _base = inject(F_CONNECTION);
9
- _browser = inject(BrowserService);
10
- get linkToConnection() {
11
- return F_CONNECTION_IDENTIFIERS.linkToConnection(this._base.fId() + this._base.fOutputId() + this._base.fInputId());
12
- }
13
- symbolWidth = 8;
14
- fontSize = '12px';
15
- ngOnInit() {
16
- this.hostElement.setAttribute('text-anchor', `middle`);
17
- this.symbolWidth = this._getSymbolWidth(this._base.fText || '');
18
- }
19
- getBBox() {
20
- return this.hostElement.getBBox();
21
- }
22
- redraw() {
23
- this.hostElement.setAttribute('startOffset', this._base.fTextStartOffset || '50%');
24
- }
25
- _getFontStyles(element) {
26
- const computedStyles = this._browser.window.getComputedStyle(element);
27
- return {
28
- fontSize: computedStyles.fontSize,
29
- fontFamily: computedStyles.fontFamily,
30
- };
31
- }
32
- _getSymbolWidth(name) {
33
- const text = name || 'connection';
34
- const { fontFamily, fontSize } = this._getFontStyles(this.hostElement);
35
- this.fontSize = fontSize || '12px';
36
- const canvas = this._browser.document.createElement('canvas');
37
- let context;
38
- try {
39
- context = canvas.getContext('2d');
40
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
41
- }
42
- catch (e) {
43
- context = null;
44
- }
45
- if (!context) {
46
- return 0;
47
- }
48
- context.font = `${fontSize} ${fontFamily}`;
49
- const metrics = context.measureText(text);
50
- const symbolWidth = metrics.width / text.length;
51
- return symbolWidth;
52
- }
53
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionTextPathDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
54
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionTextPathDirective, selector: "textPath[f-connection-text-path]", host: { properties: { "attr.href": "linkToConnection" } }, ngImport: i0 });
55
- }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionTextPathDirective, decorators: [{
57
- type: Directive,
58
- args: [{
59
- selector: 'textPath[f-connection-text-path]',
60
- host: {
61
- '[attr.href]': 'linkToConnection',
62
- },
63
- }]
64
- }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLXRleHQtcGF0aC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1jb25uZWN0aW9uLXRleHQvZi1jb25uZWN0aW9uLXRleHQtcGF0aC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUcvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBU2xELE1BQU0sT0FBTyw0QkFBNEI7SUFDdkIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQThCLENBQUEsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUNsRSxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBOEMsQ0FBQztJQUMxRSxRQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRW5ELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sd0JBQXdCLENBQUMsZ0JBQWdCLENBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVcsR0FBVyxDQUFDLENBQUM7SUFDeEIsUUFBUSxHQUFXLE1BQU0sQ0FBQztJQUUxQixRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTyxjQUFjLENBQUMsT0FBMkI7UUFDaEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEUsT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUTtZQUNqQyxVQUFVLEVBQUUsY0FBYyxDQUFDLFVBQVU7U0FDdEMsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBWTtRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksWUFBWSxDQUFDO1FBQ2xDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksTUFBTSxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLE9BQU8sQ0FBQztRQUVaLElBQUksQ0FBQztZQUNILE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLDZEQUE2RDtRQUMvRCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDakIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxRQUFRLElBQUksVUFBVSxFQUFFLENBQUM7UUFFM0MsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFaEQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzt3R0EzRFUsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7OzRGQUE1Qiw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsSUFBSSxFQUFFO3dCQUNKLGFBQWEsRUFBRSxrQkFBa0I7cUJBQ2xDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX0lERU5USUZJRVJTIH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLWlkZW50aWZpZXJzJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTiB9IGZyb20gJy4uL2YtY29ubmVjdGlvbi5pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25UZXh0IH0gZnJvbSAnLi4vaS1oYXMtY29ubmVjdGlvbi10ZXh0JztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uRnJvbVRvIH0gZnJvbSAnLi4vaS1oYXMtY29ubmVjdGlvbi1mcm9tLXRvJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBJSGFzSG9zdEVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9pLWhhcy1ob3N0LWVsZW1lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICd0ZXh0UGF0aFtmLWNvbm5lY3Rpb24tdGV4dC1wYXRoXScsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuaHJlZl0nOiAnbGlua1RvQ29ubmVjdGlvbicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEZDb25uZWN0aW9uVGV4dFBhdGhEaXJlY3RpdmUgaW1wbGVtZW50cyBJSGFzSG9zdEVsZW1lbnQsIE9uSW5pdCB7XG4gIHB1YmxpYyByZWFkb25seSBob3N0RWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmPFNWR1RleHRQYXRoRWxlbWVudD4pLm5hdGl2ZUVsZW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Jhc2UgPSBpbmplY3QoRl9DT05ORUNUSU9OKSBhcyBJSGFzQ29ubmVjdGlvblRleHQgJiBJSGFzQ29ubmVjdGlvbkZyb21UbztcbiAgcHJpdmF0ZSByZWFkb25seSBfYnJvd3NlciA9IGluamVjdChCcm93c2VyU2VydmljZSk7XG5cbiAgcHVibGljIGdldCBsaW5rVG9Db25uZWN0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEZfQ09OTkVDVElPTl9JREVOVElGSUVSUy5saW5rVG9Db25uZWN0aW9uKFxuICAgICAgdGhpcy5fYmFzZS5mSWQoKSArIHRoaXMuX2Jhc2UuZk91dHB1dElkKCkgKyB0aGlzLl9iYXNlLmZJbnB1dElkKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzeW1ib2xXaWR0aDogbnVtYmVyID0gODtcbiAgcHVibGljIGZvbnRTaXplOiBzdHJpbmcgPSAnMTJweCc7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCd0ZXh0LWFuY2hvcicsIGBtaWRkbGVgKTtcbiAgICB0aGlzLnN5bWJvbFdpZHRoID0gdGhpcy5fZ2V0U3ltYm9sV2lkdGgodGhpcy5fYmFzZS5mVGV4dCB8fCAnJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QkJveCgpOiBET01SZWN0IHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RWxlbWVudC5nZXRCQm94KCk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdGFydE9mZnNldCcsIHRoaXMuX2Jhc2UuZlRleHRTdGFydE9mZnNldCB8fCAnNTAlJyk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRGb250U3R5bGVzKGVsZW1lbnQ6IFNWR1RleHRQYXRoRWxlbWVudCk6IHsgZm9udFNpemU6IHN0cmluZzsgZm9udEZhbWlseTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGVzID0gdGhpcy5fYnJvd3Nlci53aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICBmb250U2l6ZTogY29tcHV0ZWRTdHlsZXMuZm9udFNpemUsXG4gICAgICBmb250RmFtaWx5OiBjb21wdXRlZFN0eWxlcy5mb250RmFtaWx5LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIF9nZXRTeW1ib2xXaWR0aChuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IHRleHQgPSBuYW1lIHx8ICdjb25uZWN0aW9uJztcbiAgICBjb25zdCB7IGZvbnRGYW1pbHksIGZvbnRTaXplIH0gPSB0aGlzLl9nZXRGb250U3R5bGVzKHRoaXMuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMuZm9udFNpemUgPSBmb250U2l6ZSB8fCAnMTJweCc7XG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5fYnJvd3Nlci5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICBsZXQgY29udGV4dDtcblxuICAgIHRyeSB7XG4gICAgICBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29udGV4dCA9IG51bGw7XG4gICAgfVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29udGV4dC5mb250ID0gYCR7Zm9udFNpemV9ICR7Zm9udEZhbWlseX1gO1xuXG4gICAgY29uc3QgbWV0cmljcyA9IGNvbnRleHQubWVhc3VyZVRleHQodGV4dCk7XG4gICAgY29uc3Qgc3ltYm9sV2lkdGggPSBtZXRyaWNzLndpZHRoIC8gdGV4dC5sZW5ndGg7XG5cbiAgICByZXR1cm4gc3ltYm9sV2lkdGg7XG4gIH1cbn1cbiJdfQ==