@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,5 +1,5 @@
1
1
  import { PolylineContentAlign } from './polyline-content-align';
2
- import { DragRectCache } from '../../../domain';
2
+ import { DragRectCache } from '../../../../domain';
3
3
  /**
4
4
  * Encapsulates placement logic for a single content item along the path.
5
5
  */
@@ -63,4 +63,4 @@ export class PolylineContentPlace {
63
63
  return result;
64
64
  }
65
65
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUtY29udGVudC1wbGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi1jb250ZW50L3BvbHlsaW5lLWNvbnRlbnQtZW5naW5lL3BvbHlsaW5lLWNvbnRlbnQtcGxhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQUN4QixPQUFPLENBQ1osT0FBd0IsRUFDeEIsT0FBeUI7UUFFekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNuRCxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5RCxtQkFBbUI7UUFDbkIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFL0MsdUJBQXVCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUN2QyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBRXZDLGFBQWE7UUFDYixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMs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SSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWYsSUFBSSxLQUFLLEtBQUssb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVELE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9seWxpbmVDb250ZW50IH0gZnJvbSAnLi9pLXBvbHlsaW5lLWNvbnRlbnQnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBQb2x5bGluZVNhbXBsZXIgfSBmcm9tICcuL3BvbHlsaW5lLXNhbXBsZXInO1xuaW1wb3J0IHsgUG9seWxpbmVDb250ZW50QWxpZ24gfSBmcm9tICcuL3BvbHlsaW5lLWNvbnRlbnQtYWxpZ24nO1xuaW1wb3J0IHsgRHJhZ1JlY3RDYWNoZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cbi8qKlxuICogRW5jYXBzdWxhdGVzIHBsYWNlbWVudCBsb2dpYyBmb3IgYSBzaW5nbGUgY29udGVudCBpdGVtIGFsb25nIHRoZSBwYXRoLlxuICovXG5leHBvcnQgY2xhc3MgUG9seWxpbmVDb250ZW50UGxhY2Uge1xuICBwdWJsaWMgY29tcHV0ZShcbiAgICBzYW1wbGVyOiBQb2x5bGluZVNhbXBsZXIsXG4gICAgY29udGVudDogSVBvbHlsaW5lQ29udGVudCxcbiAgKTogeyBwb3NpdGlvbjogSVBvaW50OyByb3RhdGlvbkRlZzogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHByb2dyZXNzID0gdGhpcy5fY2xhbXAwMShjb250ZW50LnBvc2l0aW9uKCkpO1xuICAgIGNvbnN0IHsgcG9pbnQsIHRhbmdlbnQgfSA9IHNhbXBsZXIuZ2V0UG9pbnRBdExlbmd0aChwcm9ncmVzcyk7XG5cbiAgICAvLyBMZWZ0LWhhbmQgbm9ybWFsXG4gICAgY29uc3Qgbm9ybWFsID0geyB4OiAtdGFuZ2VudC55LCB5OiB0YW5nZW50LnggfTtcblxuICAgIC8vIEFwcGx5IGxhdGVyYWwgb2Zmc2V0XG4gICAgY29uc3QgbGF0ZXJhbCA9IGNvbnRlbnQub2Zmc2V0KCkgPz8gMDtcbiAgICBjb25zdCB4ID0gcG9pbnQueCArIG5vcm1hbC54ICogbGF0ZXJhbDtcbiAgICBjb25zdCB5ID0gcG9pbnQueSArIG5vcm1hbC55ICogbGF0ZXJhbDtcblxuICAgIC8vIEVkZ2UgZ3VhcmRcbiAgICBjb25zdCBwcm9qZWN0ZWRTaXplID0gdGhpcy5fc2l6ZUFsb25nRGlyZWN0aW9uKGNvbnRlbnQuaG9zdEVsZW1lbnQsIHRhbmdlbnQpO1xuICAgIGNvbnN0IGhhbGZFeHRlbnQgPSBwcm9qZWN0ZWRTaXplICogMC41O1xuXG4gICAgY29uc3QgZGlzdGFuY2VGcm9tU3RhcnQgPSBwcm9ncmVzcyAqIHNhbXBsZXIudG90YWxMZW5ndGg7XG4gICAgY29uc3QgZGlzdGFuY2VGcm9tRW5kID0gc2FtcGxlci50b3RhbExlbmd0aCAtIGRpc3RhbmNlRnJvbVN0YXJ0O1xuXG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9hcHBseUVkZ2VHdWFyZChcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgdGFuZ2VudCxcbiAgICAgIGRpc3RhbmNlRnJvbVN0YXJ0LFxuICAgICAgZGlzdGFuY2VGcm9tRW5kLFxuICAgICAgaGFsZkV4dGVudCxcbiAgICApO1xuXG4gICAgY29uc3Qgcm90YXRpb25EZWcgPSB0aGlzLl9jYWxjdWxhdGVDb250ZW50Um90YXRpb24oY29udGVudC5hbGlnbigpLCB0YW5nZW50KTtcblxuICAgIHJldHVybiB7IHBvc2l0aW9uLCByb3RhdGlvbkRlZyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xhbXAwMSh2OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB2IDw9IDAgPyAwIDogdiA+PSAxID8gMSA6IHY7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseUVkZ2VHdWFyZChcbiAgICB4OiBudW1iZXIsXG4gICAgeTogbnVtYmVyLFxuICAgIHRhbmdlbnQ6IElQb2ludCxcbiAgICBkaXN0YW5jZUZyb21TdGFydDogbnVtYmVyLFxuICAgIGRpc3RhbmNlRnJvbUVuZDogbnVtYmVyLFxuICAgIGhhbGZFeHRlbnQ6IG51bWJlcixcbiAgKTogSVBvaW50IHtcbiAgICBpZiAoZGlzdGFuY2VGcm9tU3RhcnQgPD0gaGFsZkV4dGVudCkge1xuICAgICAgY29uc3QgcHVzaCA9IGhhbGZFeHRlbnQgLSBkaXN0YW5jZUZyb21TdGFydDtcblxuICAgICAgcmV0dXJuIHsgeDogeCArIHRhbmdlbnQueCAqIHB1c2gsIHk6IHkgKyB0YW5nZW50LnkgKiBwdXNoIH07XG4gICAgfVxuICAgIGlmIChkaXN0YW5jZUZyb21FbmQgPD0gaGFsZkV4dGVudCkge1xuICAgICAgY29uc3QgcHVzaCA9IGhhbGZFeHRlbnQgLSBkaXN0YW5jZUZyb21FbmQ7XG5cbiAgICAgIHJldHVybiB7IHg6IHggLSB0YW5nZW50LnggKiBwdXNoLCB5OiB5IC0gdGFuZ2VudC55ICogcHVzaCB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHgsIHkgfTtcbiAgfVxuXG4gIHByaXZhdGUgX3NpemVBbG9uZ0RpcmVjdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgZGlyOiBJUG9pbnQpOiBudW1iZXIge1xuICAgIGNvbnN0IHJlY3QgPSBEcmFnUmVjdENhY2hlLmZyb21FbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIE1hdGguYWJzKGRpci54KSAqIHJlY3Qud2lkdGggKyBNYXRoLmFicyhkaXIueSkgKiByZWN0LmhlaWdodDtcbiAgfVxuXG4gIHByaXZhdGUgX25vcm1hbGl6ZTE4MChhbmdsZURlZzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgYSA9IChhbmdsZURlZyArIDE4MCkgJSAzNjA7XG4gICAgaWYgKGEgPCAwKSBhICs9IDM2MDtcblxuICAgIHJldHVybiBhIC0gMTgwO1xuICB9XG5cbiAgcHJpdmF0ZSBfa2VlcFVwcmlnaHQoYW5nbGVEZWc6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IGEgPSB0aGlzLl9ub3JtYWxpemUxODAoYW5nbGVEZWcpO1xuICAgIGlmIChhID4gOTApIGEgLT0gMTgwO1xuICAgIGVsc2UgaWYgKGEgPCAtOTApIGEgKz0gMTgwO1xuXG4gICAgcmV0dXJuIGE7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVDb250ZW50Um90YXRpb24oYWxpZ246IFBvbHlsaW5lQ29udGVudEFsaWduLCB0YW5nZW50OiBJUG9pbnQpIHtcbiAgICBsZXQgcmVzdWx0ID0gMDtcblxuICAgIGlmIChhbGlnbiA9PT0gUG9seWxpbmVDb250ZW50QWxpZ24uQUxPTkcpIHtcbiAgICAgIHJlc3VsdCA9IChNYXRoLmF0YW4yKHRhbmdlbnQueSwgdGFuZ2VudC54KSAqIDE4MCkgLyBNYXRoLlBJO1xuICAgICAgcmVzdWx0ID0gdGhpcy5fa2VlcFVwcmlnaHQocmVzdWx0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUtY29udGVudC1wbGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL2NvbXBvbmVudHMvY29ubmVjdGlvbi1jb250ZW50L3V0aWxzL3BvbHlsaW5lLWNvbnRlbnQtcGxhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5EOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQUN4QixPQUFPLENBQ1osT0FBd0IsRUFDeEIsT0FBeUI7UUFFekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNuRCxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5RCxtQkFBbUI7UUFDbkIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFL0MsdUJBQXVCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUN2QyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBRXZDLGFBQWE7UUFDYixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FB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QUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWYsSUFBSSxLQUFLLEtBQUssb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVELE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9seWxpbmVDb250ZW50IH0gZnJvbSAnLi9pLXBvbHlsaW5lLWNvbnRlbnQnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBQb2x5bGluZVNhbXBsZXIgfSBmcm9tICcuL3BvbHlsaW5lLXNhbXBsZXInO1xuaW1wb3J0IHsgUG9seWxpbmVDb250ZW50QWxpZ24gfSBmcm9tICcuL3BvbHlsaW5lLWNvbnRlbnQtYWxpZ24nO1xuaW1wb3J0IHsgRHJhZ1JlY3RDYWNoZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5cbi8qKlxuICogRW5jYXBzdWxhdGVzIHBsYWNlbWVudCBsb2dpYyBmb3IgYSBzaW5nbGUgY29udGVudCBpdGVtIGFsb25nIHRoZSBwYXRoLlxuICovXG5leHBvcnQgY2xhc3MgUG9seWxpbmVDb250ZW50UGxhY2Uge1xuICBwdWJsaWMgY29tcHV0ZShcbiAgICBzYW1wbGVyOiBQb2x5bGluZVNhbXBsZXIsXG4gICAgY29udGVudDogSVBvbHlsaW5lQ29udGVudCxcbiAgKTogeyBwb3NpdGlvbjogSVBvaW50OyByb3RhdGlvbkRlZzogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHByb2dyZXNzID0gdGhpcy5fY2xhbXAwMShjb250ZW50LnBvc2l0aW9uKCkpO1xuICAgIGNvbnN0IHsgcG9pbnQsIHRhbmdlbnQgfSA9IHNhbXBsZXIuZ2V0UG9pbnRBdExlbmd0aChwcm9ncmVzcyk7XG5cbiAgICAvLyBMZWZ0LWhhbmQgbm9ybWFsXG4gICAgY29uc3Qgbm9ybWFsID0geyB4OiAtdGFuZ2VudC55LCB5OiB0YW5nZW50LnggfTtcblxuICAgIC8vIEFwcGx5IGxhdGVyYWwgb2Zmc2V0XG4gICAgY29uc3QgbGF0ZXJhbCA9IGNvbnRlbnQub2Zmc2V0KCkgPz8gMDtcbiAgICBjb25zdCB4ID0gcG9pbnQueCArIG5vcm1hbC54ICogbGF0ZXJhbDtcbiAgICBjb25zdCB5ID0gcG9pbnQueSArIG5vcm1hbC55ICogbGF0ZXJhbDtcblxuICAgIC8vIEVkZ2UgZ3VhcmRcbiAgICBjb25zdCBwcm9qZWN0ZWRTaXplID0gdGhpcy5fc2l6ZUFsb25nRGlyZWN0aW9uKGNvbnRlbnQuaG9zdEVsZW1lbnQsIHRhbmdlbnQpO1xuICAgIGNvbnN0IGhhbGZFeHRlbnQgPSBwcm9qZWN0ZWRTaXplICogMC41O1xuXG4gICAgY29uc3QgZGlzdGFuY2VGcm9tU3RhcnQgPSBwcm9ncmVzcyAqIHNhbXBsZXIudG90YWxMZW5ndGg7XG4gICAgY29uc3QgZGlzdGFuY2VGcm9tRW5kID0gc2FtcGxlci50b3RhbExlbmd0aCAtIGRpc3RhbmNlRnJvbVN0YXJ0O1xuXG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9hcHBseUVkZ2VHdWFyZChcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgdGFuZ2VudCxcbiAgICAgIGRpc3RhbmNlRnJvbVN0YXJ0LFxuICAgICAgZGlzdGFuY2VGcm9tRW5kLFxuICAgICAgaGFsZkV4dGVudCxcbiAgICApO1xuXG4gICAgY29uc3Qgcm90YXRpb25EZWcgPSB0aGlzLl9jYWxjdWxhdGVDb250ZW50Um90YXRpb24oY29udGVudC5hbGlnbigpLCB0YW5nZW50KTtcblxuICAgIHJldHVybiB7IHBvc2l0aW9uLCByb3RhdGlvbkRlZyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xhbXAwMSh2OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB2IDw9IDAgPyAwIDogdiA+PSAxID8gMSA6IHY7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseUVkZ2VHdWFyZChcbiAgICB4OiBudW1iZXIsXG4gICAgeTogbnVtYmVyLFxuICAgIHRhbmdlbnQ6IElQb2ludCxcbiAgICBkaXN0YW5jZUZyb21TdGFydDogbnVtYmVyLFxuICAgIGRpc3RhbmNlRnJvbUVuZDogbnVtYmVyLFxuICAgIGhhbGZFeHRlbnQ6IG51bWJlcixcbiAgKTogSVBvaW50IHtcbiAgICBpZiAoZGlzdGFuY2VGcm9tU3RhcnQgPD0gaGFsZkV4dGVudCkge1xuICAgICAgY29uc3QgcHVzaCA9IGhhbGZFeHRlbnQgLSBkaXN0YW5jZUZyb21TdGFydDtcblxuICAgICAgcmV0dXJuIHsgeDogeCArIHRhbmdlbnQueCAqIHB1c2gsIHk6IHkgKyB0YW5nZW50LnkgKiBwdXNoIH07XG4gICAgfVxuICAgIGlmIChkaXN0YW5jZUZyb21FbmQgPD0gaGFsZkV4dGVudCkge1xuICAgICAgY29uc3QgcHVzaCA9IGhhbGZFeHRlbnQgLSBkaXN0YW5jZUZyb21FbmQ7XG5cbiAgICAgIHJldHVybiB7IHg6IHggLSB0YW5nZW50LnggKiBwdXNoLCB5OiB5IC0gdGFuZ2VudC55ICogcHVzaCB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHgsIHkgfTtcbiAgfVxuXG4gIHByaXZhdGUgX3NpemVBbG9uZ0RpcmVjdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgZGlyOiBJUG9pbnQpOiBudW1iZXIge1xuICAgIGNvbnN0IHJlY3QgPSBEcmFnUmVjdENhY2hlLmZyb21FbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIE1hdGguYWJzKGRpci54KSAqIHJlY3Qud2lkdGggKyBNYXRoLmFicyhkaXIueSkgKiByZWN0LmhlaWdodDtcbiAgfVxuXG4gIHByaXZhdGUgX25vcm1hbGl6ZTE4MChhbmdsZURlZzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgYSA9IChhbmdsZURlZyArIDE4MCkgJSAzNjA7XG4gICAgaWYgKGEgPCAwKSBhICs9IDM2MDtcblxuICAgIHJldHVybiBhIC0gMTgwO1xuICB9XG5cbiAgcHJpdmF0ZSBfa2VlcFVwcmlnaHQoYW5nbGVEZWc6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IGEgPSB0aGlzLl9ub3JtYWxpemUxODAoYW5nbGVEZWcpO1xuICAgIGlmIChhID4gOTApIGEgLT0gMTgwO1xuICAgIGVsc2UgaWYgKGEgPCAtOTApIGEgKz0gMTgwO1xuXG4gICAgcmV0dXJuIGE7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVDb250ZW50Um90YXRpb24oYWxpZ246IFBvbHlsaW5lQ29udGVudEFsaWduLCB0YW5nZW50OiBJUG9pbnQpIHtcbiAgICBsZXQgcmVzdWx0ID0gMDtcblxuICAgIGlmIChhbGlnbiA9PT0gUG9seWxpbmVDb250ZW50QWxpZ24uQUxPTkcpIHtcbiAgICAgIHJlc3VsdCA9IChNYXRoLmF0YW4yKHRhbmdlbnQueSwgdGFuZ2VudC54KSAqIDE4MCkgLyBNYXRoLlBJO1xuICAgICAgcmVzdWx0ID0gdGhpcy5fa2VlcFVwcmlnaHQocmVzdWx0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1zYW1wbGVyLXJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL2NvbXBvbmVudHMvY29ubmVjdGlvbi1jb250ZW50L3V0aWxzL3BvbHlsaW5lLXNhbXBsZXIvaS1zYW1wbGVyLXJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVRhbmdlbnQgfSBmcm9tICcuL2ktdGFuZ2VudCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcblxuLyoqIFJlc3VsdCBvZiBzYW1wbGluZyB0aGUgcGF0aC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNhbXBsZXJSZXN1bHQge1xuICAvKiogSW50ZXJwb2xhdGVkIHBvaW50IG9uIHRoZSBwb2x5bGluZS4gKi9cbiAgcG9pbnQ6IElQb2ludDtcbiAgLyoqIFVuaXQgdGFuZ2VudCAoc2VnbWVudCBkaXJlY3Rpb24pIGF0IHRoYXQgcG9pbnQuICovXG4gIHRhbmdlbnQ6IElUYW5nZW50O1xuICAvKiogV2hldGhlciB0aGUgcmVzdWx0IHdhcyBjbGFtcGVkIHRvIHRoZSBwYXRoIGVkZ2UgKHN0YXJ0IG9yIGVuZCkuICovXG4gIGF0RWRnZTogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS10YW5nZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvY29tcG9uZW50cy9jb25uZWN0aW9uLWNvbnRlbnQvdXRpbHMvcG9seWxpbmUtc2FtcGxlci9pLXRhbmdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG4vKiogVW5pdCB0YW5nZW50IHZlY3Rvci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVRhbmdlbnQgZXh0ZW5kcyBJUG9pbnQge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './i-sampler-result';
2
+ export * from './i-tangent';
3
+ export * from './polyline';
4
+ export * from './polyline-sampler';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tY29udGVudC91dGlscy9wb2x5bGluZS1zYW1wbGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxhQUFhLENBQUM7QUFFNUIsY0FBYyxZQUFZLENBQUM7QUFFM0IsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaS1zYW1wbGVyLXJlc3VsdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vaS10YW5nZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9wb2x5bGluZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcG9seWxpbmUtc2FtcGxlcic7XG4iXX0=
@@ -0,0 +1,143 @@
1
+ import { Polyline } from './polyline';
2
+ /**
3
+ * Provides sampling (interpolation) along a {@link Polyline}.
4
+ * Separates traversal logic from pure geometry stored in {@link Polyline}.
5
+ */
6
+ export class PolylineSampler {
7
+ _polyline;
8
+ /**
9
+ * @param points Initial points to build the underlying polyline.
10
+ * You can later call {@link updatePoints} to rebuild.
11
+ */
12
+ constructor(points = []) {
13
+ this._polyline = new Polyline(points);
14
+ }
15
+ /**
16
+ * Rebuild the underlying polyline from new points.
17
+ * @returns Total length of the rebuilt polyline.
18
+ */
19
+ updatePoints(points) {
20
+ this._polyline = new Polyline(points);
21
+ return this._polyline.totalLength;
22
+ }
23
+ /**
24
+ * Backward-compatible alias for older API naming.
25
+ * @returns Total length of the rebuilt polyline.
26
+ */
27
+ calculateTotalLength(points) {
28
+ return this.updatePoints(points);
29
+ }
30
+ /** Total length of the current polyline. */
31
+ get totalLength() {
32
+ return this._polyline.totalLength;
33
+ }
34
+ /**
35
+ * Sample a point by normalized progress along the whole length.
36
+ *
37
+ * - `progress = 0` → start vertex
38
+ * - `progress = 1` → end vertex
39
+ *
40
+ * Uses a small edge threshold (0.5 units) to snap near-start/near-end queries to exact vertices,
41
+ * mirroring the behavior in the original implementation.
42
+ *
43
+ * @param progress Normalized value in [0..1]. Values are clamped to this range.
44
+ * @returns Interpolated point, segment tangent, and whether it was clamped to an edge.
45
+ */
46
+ getPointAtProgress(progress) {
47
+ const { points, cumulativeLengths, segmentTangents, totalLength } = this._polyline;
48
+ const clamped = PolylineSampler._clamp(progress, 0, 1);
49
+ const target = clamped * totalLength;
50
+ const edgeThreshold = 0.5;
51
+ if (target <= edgeThreshold) {
52
+ return {
53
+ point: points[0],
54
+ tangent: segmentTangents[0] ?? { x: 1, y: 0 },
55
+ atEdge: true,
56
+ };
57
+ }
58
+ if (totalLength - target <= edgeThreshold) {
59
+ const last = points.length - 1;
60
+ return {
61
+ point: points[last],
62
+ tangent: segmentTangents[last - 1] ?? { x: 1, y: 0 },
63
+ atEdge: true,
64
+ };
65
+ }
66
+ const rightIndex = PolylineSampler._findRightIndex(cumulativeLengths, target);
67
+ const i = Math.max(1, rightIndex);
68
+ const leftLen = cumulativeLengths[i - 1];
69
+ const rightLen = cumulativeLengths[i];
70
+ const t = PolylineSampler._safeRatio(target - leftLen, rightLen - leftLen);
71
+ const a = points[i - 1];
72
+ const b = points[i];
73
+ const point = {
74
+ x: PolylineSampler._lerp(a.x, b.x, t),
75
+ y: PolylineSampler._lerp(a.y, b.y, t),
76
+ };
77
+ const tangent = segmentTangents[i - 1] ?? { x: 1, y: 0 };
78
+ return { point, tangent, atEdge: false };
79
+ }
80
+ /**
81
+ * Backward-compatible alias.
82
+ * Equivalent to {@link getPointAtProgress}.
83
+ */
84
+ getPointAtLength(progress) {
85
+ return this.getPointAtProgress(progress);
86
+ }
87
+ /**
88
+ * Sample a point by absolute distance from the start (in the same units as your points).
89
+ * This is a convenience wrapper over {@link getPointAtProgress}.
90
+ *
91
+ * @param distance Distance from 0 to {@link totalLength}. Values outside are clamped.
92
+ * @returns Interpolated point, segment tangent, and whether it was clamped to an edge.
93
+ */
94
+ getPointAtDistance(distance) {
95
+ const progress = this._polyline.totalLength ? distance / this._polyline.totalLength : 0;
96
+ return this.getPointAtProgress(progress);
97
+ }
98
+ // =============== Internal utilities ===============
99
+ /** Binary-search the first index where cumulativeLengths[index] >= target. */
100
+ static _findRightIndex(cumulativeLengths, target) {
101
+ let lo = 0;
102
+ let hi = cumulativeLengths.length - 1;
103
+ while (lo < hi) {
104
+ const mid = (lo + hi) >> 1;
105
+ if (cumulativeLengths[mid] < target)
106
+ lo = mid + 1;
107
+ else
108
+ hi = mid;
109
+ }
110
+ return lo;
111
+ }
112
+ /** Linear interpolation between `a` and `b`. */
113
+ static _lerp(a, b, t) {
114
+ return a + (b - a) * t;
115
+ }
116
+ /** Clamp `value` into [min, max]. */
117
+ static _clamp(value, min, max) {
118
+ return value < min ? min : value > max ? max : value;
119
+ }
120
+ /** Safe ratio `num / den` with tiny-denominator guard. */
121
+ static _safeRatio(num, den) {
122
+ const d = Math.abs(den) < 1e-6 ? 1e-6 : den;
123
+ return num / d;
124
+ }
125
+ }
126
+ /* ============================
127
+ Example
128
+ ===============================
129
+ const sampler = new PolylineSampler([
130
+ { x: 0, y: 0 },
131
+ { x: 10, y: 0 },
132
+ { x: 10, y: 10 },
133
+ ]);
134
+
135
+ console.log('Total length:', sampler.totalLength); // -> 20
136
+
137
+ const s1 = sampler.getPointAtProgress(0.25);
138
+ console.log(s1.point, s1.tangent, s1.atEdge);
139
+
140
+ const s2 = sampler.getPointAtDistance(15); // same as progress 0.75
141
+ console.log(s2.point, s2.tangent, s2.atEdge);
142
+ */
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUtc2FtcGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL2NvbXBvbmVudHMvY29ubmVjdGlvbi1jb250ZW50L3V0aWxzL3BvbHlsaW5lLXNhbXBsZXIvcG9seWxpbmUtc2FtcGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSXRDOzs7R0FHRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQ2xCLFNBQVMsQ0FBVztJQUU1Qjs7O09BR0c7SUFDSCxZQUFZLFNBQW1CLEVBQUU7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLE1BQWdCO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksb0JBQW9CLENBQUMsTUFBZ0I7UUFDMUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksa0JBQWtCLENBQUMsUUFBZ0I7UUFDeEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUVuRixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFB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dCB7IFBvbHlsaW5lIH0gZnJvbSAnLi9wb2x5bGluZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IElTYW1wbGVyUmVzdWx0IH0gZnJvbSAnLi9pLXNhbXBsZXItcmVzdWx0JztcblxuLyoqXG4gKiBQcm92aWRlcyBzYW1wbGluZyAoaW50ZXJwb2xhdGlvbikgYWxvbmcgYSB7QGxpbmsgUG9seWxpbmV9LlxuICogU2VwYXJhdGVzIHRyYXZlcnNhbCBsb2dpYyBmcm9tIHB1cmUgZ2VvbWV0cnkgc3RvcmVkIGluIHtAbGluayBQb2x5bGluZX0uXG4gKi9cbmV4cG9ydCBjbGFzcyBQb2x5bGluZVNhbXBsZXIge1xuICBwcml2YXRlIF9wb2x5bGluZTogUG9seWxpbmU7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBwb2ludHMgSW5pdGlhbCBwb2ludHMgdG8gYnVpbGQgdGhlIHVuZGVybHlpbmcgcG9seWxpbmUuXG4gICAqICAgICAgICAgICAgICAgWW91IGNhbiBsYXRlciBjYWxsIHtAbGluayB1cGRhdGVQb2ludHN9IHRvIHJlYnVpbGQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwb2ludHM6IElQb2ludFtdID0gW10pIHtcbiAgICB0aGlzLl9wb2x5bGluZSA9IG5ldyBQb2x5bGluZShwb2ludHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYnVpbGQgdGhlIHVuZGVybHlpbmcgcG9seWxpbmUgZnJvbSBuZXcgcG9pbnRzLlxuICAgKiBAcmV0dXJucyBUb3RhbCBsZW5ndGggb2YgdGhlIHJlYnVpbHQgcG9seWxpbmUuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlUG9pbnRzKHBvaW50czogSVBvaW50W10pOiBudW1iZXIge1xuICAgIHRoaXMuX3BvbHlsaW5lID0gbmV3IFBvbHlsaW5lKHBvaW50cyk7XG5cbiAgICByZXR1cm4gdGhpcy5fcG9seWxpbmUudG90YWxMZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQmFja3dhcmQtY29tcGF0aWJsZSBhbGlhcyBmb3Igb2xkZXIgQVBJIG5hbWluZy5cbiAgICogQHJldHVybnMgVG90YWwgbGVuZ3RoIG9mIHRoZSByZWJ1aWx0IHBvbHlsaW5lLlxuICAgKi9cbiAgcHVibGljIGNhbGN1bGF0ZVRvdGFsTGVuZ3RoKHBvaW50czogSVBvaW50W10pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZVBvaW50cyhwb2ludHMpO1xuICB9XG5cbiAgLyoqIFRvdGFsIGxlbmd0aCBvZiB0aGUgY3VycmVudCBwb2x5bGluZS4gKi9cbiAgcHVibGljIGdldCB0b3RhbExlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wb2x5bGluZS50b3RhbExlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYW1wbGUgYSBwb2ludCBieSBub3JtYWxpemVkIHByb2dyZXNzIGFsb25nIHRoZSB3aG9sZSBsZW5ndGguXG4gICAqXG4gICAqIC0gYHByb2dyZXNzID0gMGAg4oaSIHN0YXJ0IHZlcnRleFxuICAgKiAtIGBwcm9ncmVzcyA9IDFgIOKGkiBlbmQgdmVydGV4XG4gICAqXG4gICAqIFVzZXMgYSBzbWFsbCBlZGdlIHRocmVzaG9sZCAoMC41IHVuaXRzKSB0byBzbmFwIG5lYXItc3RhcnQvbmVhci1lbmQgcXVlcmllcyB0byBleGFjdCB2ZXJ0aWNlcyxcbiAgICogbWlycm9yaW5nIHRoZSBiZWhhdmlvciBpbiB0aGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwcm9ncmVzcyBOb3JtYWxpemVkIHZhbHVlIGluIFswLi4xXS4gVmFsdWVzIGFyZSBjbGFtcGVkIHRvIHRoaXMgcmFuZ2UuXG4gICAqIEByZXR1cm5zIEludGVycG9sYXRlZCBwb2ludCwgc2VnbWVudCB0YW5nZW50LCBhbmQgd2hldGhlciBpdCB3YXMgY2xhbXBlZCB0byBhbiBlZGdlLlxuICAgKi9cbiAgcHVibGljIGdldFBvaW50QXRQcm9ncmVzcyhwcm9ncmVzczogbnVtYmVyKTogSVNhbXBsZXJSZXN1bHQge1xuICAgIGNvbnN0IHsgcG9pbnRzLCBjdW11bGF0aXZlTGVuZ3Rocywgc2VnbWVudFRhbmdlbnRzLCB0b3RhbExlbmd0aCB9ID0gdGhpcy5fcG9seWxpbmU7XG5cbiAgICBjb25zdCBjbGFtcGVkID0gUG9seWxpbmVTYW1wbGVyLl9jbGFtcChwcm9ncmVzcywgMCwgMSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gY2xhbXBlZCAqIHRvdGFsTGVuZ3RoO1xuXG4gICAgY29uc3QgZWRnZVRocmVzaG9sZCA9IDAuNTtcbiAgICBpZiAodGFyZ2V0IDw9IGVkZ2VUaHJlc2hvbGQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBvaW50OiBwb2ludHNbMF0sXG4gICAgICAgIHRhbmdlbnQ6IHNlZ21lbnRUYW5nZW50c1swXSA/PyB7IHg6IDEsIHk6IDAgfSxcbiAgICAgICAgYXRFZGdlOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHRvdGFsTGVuZ3RoIC0gdGFyZ2V0IDw9IGVkZ2VUaHJlc2hvbGQpIHtcbiAgICAgIGNvbnN0IGxhc3QgPSBwb2ludHMubGVuZ3RoIC0gMTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcG9pbnQ6IHBvaW50c1tsYXN0XSxcbiAgICAgICAgdGFuZ2VudDogc2VnbWVudFRhbmdlbnRzW2xhc3QgLSAxXSA/PyB7IHg6IDEsIHk6IDAgfSxcbiAgICAgICAgYXRFZGdlOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCByaWdodEluZGV4ID0gUG9seWxpbmVTYW1wbGVyLl9maW5kUmlnaHRJbmRleChjdW11bGF0aXZlTGVuZ3RocywgdGFyZ2V0KTtcbiAgICBjb25zdCBpID0gTWF0aC5tYXgoMSwgcmlnaHRJbmRleCk7XG5cbiAgICBjb25zdCBsZWZ0TGVuID0gY3VtdWxhdGl2ZUxlbmd0aHNbaSAtIDFdO1xuICAgIGNvbnN0IHJpZ2h0TGVuID0gY3VtdWxhdGl2ZUxlbmd0aHNbaV07XG4gICAgY29uc3QgdCA9IFBvbHlsaW5lU2FtcGxlci5fc2FmZVJhdGlvKHRhcmdldCAtIGxlZnRMZW4sIHJpZ2h0TGVuIC0gbGVmdExlbik7XG5cbiAgICBjb25zdCBhID0gcG9pbnRzW2kgLSAxXTtcbiAgICBjb25zdCBiID0gcG9pbnRzW2ldO1xuICAgIGNvbnN0IHBvaW50ID0ge1xuICAgICAgeDogUG9seWxpbmVTYW1wbGVyLl9sZXJwKGEueCwgYi54LCB0KSxcbiAgICAgIHk6IFBvbHlsaW5lU2FtcGxlci5fbGVycChhLnksIGIueSwgdCksXG4gICAgfTtcbiAgICBjb25zdCB0YW5nZW50ID0gc2VnbWVudFRhbmdlbnRzW2kgLSAxXSA/PyB7IHg6IDEsIHk6IDAgfTtcblxuICAgIHJldHVybiB7IHBvaW50LCB0YW5nZW50LCBhdEVkZ2U6IGZhbHNlIH07XG4gIH1cblxuICAvKipcbiAgICogQmFja3dhcmQtY29tcGF0aWJsZSBhbGlhcy5cbiAgICogRXF1aXZhbGVudCB0byB7QGxpbmsgZ2V0UG9pbnRBdFByb2dyZXNzfS5cbiAgICovXG4gIHB1YmxpYyBnZXRQb2ludEF0TGVuZ3RoKHByb2dyZXNzOiBudW1iZXIpOiBJU2FtcGxlclJlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UG9pbnRBdFByb2dyZXNzKHByb2dyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYW1wbGUgYSBwb2ludCBieSBhYnNvbHV0ZSBkaXN0YW5jZSBmcm9tIHRoZSBzdGFydCAoaW4gdGhlIHNhbWUgdW5pdHMgYXMgeW91ciBwb2ludHMpLlxuICAgKiBUaGlzIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlciBvdmVyIHtAbGluayBnZXRQb2ludEF0UHJvZ3Jlc3N9LlxuICAgKlxuICAgKiBAcGFyYW0gZGlzdGFuY2UgRGlzdGFuY2UgZnJvbSAwIHRvIHtAbGluayB0b3RhbExlbmd0aH0uIFZhbHVlcyBvdXRzaWRlIGFyZSBjbGFtcGVkLlxuICAgKiBAcmV0dXJucyBJbnRlcnBvbGF0ZWQgcG9pbnQsIHNlZ21lbnQgdGFuZ2VudCwgYW5kIHdoZXRoZXIgaXQgd2FzIGNsYW1wZWQgdG8gYW4gZWRnZS5cbiAgICovXG4gIHB1YmxpYyBnZXRQb2ludEF0RGlzdGFuY2UoZGlzdGFuY2U6IG51bWJlcik6IElTYW1wbGVyUmVzdWx0IHtcbiAgICBjb25zdCBwcm9ncmVzcyA9IHRoaXMuX3BvbHlsaW5lLnRvdGFsTGVuZ3RoID8gZGlzdGFuY2UgLyB0aGlzLl9wb2x5bGluZS50b3RhbExlbmd0aCA6IDA7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRQb2ludEF0UHJvZ3Jlc3MocHJvZ3Jlc3MpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09IEludGVybmFsIHV0aWxpdGllcyA9PT09PT09PT09PT09PT1cblxuICAvKiogQmluYXJ5LXNlYXJjaCB0aGUgZmlyc3QgaW5kZXggd2hlcmUgY3VtdWxhdGl2ZUxlbmd0aHNbaW5kZXhdID49IHRhcmdldC4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRSaWdodEluZGV4KGN1bXVsYXRpdmVMZW5ndGhzOiBudW1iZXJbXSwgdGFyZ2V0OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGxldCBsbyA9IDA7XG4gICAgbGV0IGhpID0gY3VtdWxhdGl2ZUxlbmd0aHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAobG8gPCBoaSkge1xuICAgICAgY29uc3QgbWlkID0gKGxvICsgaGkpID4+IDE7XG4gICAgICBpZiAoY3VtdWxhdGl2ZUxlbmd0aHNbbWlkXSA8IHRhcmdldCkgbG8gPSBtaWQgKyAxO1xuICAgICAgZWxzZSBoaSA9IG1pZDtcbiAgICB9XG5cbiAgICByZXR1cm4gbG87XG4gIH1cblxuICAvKiogTGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiBgYWAgYW5kIGBiYC4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX2xlcnAoYTogbnVtYmVyLCBiOiBudW1iZXIsIHQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIGEgKyAoYiAtIGEpICogdDtcbiAgfVxuXG4gIC8qKiBDbGFtcCBgdmFsdWVgIGludG8gW21pbiwgbWF4XS4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX2NsYW1wKHZhbHVlOiBudW1iZXIsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHZhbHVlIDwgbWluID8gbWluIDogdmFsdWUgPiBtYXggPyBtYXggOiB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBTYWZlIHJhdGlvIGBudW0gLyBkZW5gIHdpdGggdGlueS1kZW5vbWluYXRvciBndWFyZC4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX3NhZmVSYXRpbyhudW06IG51bWJlciwgZGVuOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGQgPSBNYXRoLmFicyhkZW4pIDwgMWUtNiA/IDFlLTYgOiBkZW47XG5cbiAgICByZXR1cm4gbnVtIC8gZDtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFeGFtcGxlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5jb25zdCBzYW1wbGVyID0gbmV3IFBvbHlsaW5lU2FtcGxlcihbXG4gIHsgeDogMCwgeTogMCB9LFxuICB7IHg6IDEwLCB5OiAwIH0sXG4gIHsgeDogMTAsIHk6IDEwIH0sXG5dKTtcblxuY29uc29sZS5sb2coJ1RvdGFsIGxlbmd0aDonLCBzYW1wbGVyLnRvdGFsTGVuZ3RoKTsgLy8gLT4gMjBcblxuY29uc3QgczEgPSBzYW1wbGVyLmdldFBvaW50QXRQcm9ncmVzcygwLjI1KTtcbmNvbnNvbGUubG9nKHMxLnBvaW50LCBzMS50YW5nZW50LCBzMS5hdEVkZ2UpO1xuXG5jb25zdCBzMiA9IHNhbXBsZXIuZ2V0UG9pbnRBdERpc3RhbmNlKDE1KTsgLy8gc2FtZSBhcyBwcm9ncmVzcyAwLjc1XG5jb25zb2xlLmxvZyhzMi5wb2ludCwgczIudGFuZ2VudCwgczIuYXRFZGdlKTtcbiovXG4iXX0=
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Immutable polyline geometry with precomputed cumulative lengths and segment tangents.
3
+ * Keep this class focused on geometry only; sampling/traversal lives in PolylineSampler.
4
+ */
5
+ export class Polyline {
6
+ /** Cleaned points (with consecutive duplicates removed). */
7
+ points;
8
+ /** Cumulative length from start to each vertex. Same length as `points`. */
9
+ cumulativeLengths;
10
+ /** Unit tangent per segment `i` for segment [i -> i+1]. Length = points.length - 1. */
11
+ segmentTangents;
12
+ /** Total length of the polyline (>= 1 for the degenerate fallback). */
13
+ totalLength;
14
+ /**
15
+ * Construct a polyline from raw points.
16
+ * Consecutive duplicate points are removed.
17
+ * If less than 2 points remain, it falls back to a unit horizontal segment [0,0] → [1,0].
18
+ */
19
+ constructor(points) {
20
+ const cleaned = Polyline._removeConsecutiveDuplicates(points);
21
+ if (cleaned.length < 2) {
22
+ // Fallback to a unit segment to avoid zero-length edge cases.
23
+ this.points = [
24
+ { x: 0, y: 0 },
25
+ { x: 1, y: 0 },
26
+ ];
27
+ this.cumulativeLengths = [0, 1];
28
+ this.segmentTangents = [{ x: 1, y: 0 }];
29
+ this.totalLength = 1;
30
+ return;
31
+ }
32
+ this.points = cleaned;
33
+ const vertexCount = this.points.length;
34
+ const segmentCount = vertexCount - 1;
35
+ const cumulative = new Array(vertexCount).fill(0);
36
+ const tangents = new Array(segmentCount);
37
+ let accumulated = 0;
38
+ for (let i = 0; i < segmentCount; i++) {
39
+ const dx = this.points[i + 1].x - this.points[i].x;
40
+ const dy = this.points[i + 1].y - this.points[i].y;
41
+ const length = Math.hypot(dx, dy);
42
+ const ux = length ? dx / length : 1;
43
+ const uy = length ? dy / length : 0;
44
+ tangents[i] = { x: ux, y: uy };
45
+ accumulated += length;
46
+ cumulative[i + 1] = accumulated;
47
+ }
48
+ this.cumulativeLengths = cumulative;
49
+ this.segmentTangents = tangents;
50
+ this.totalLength = accumulated || 1;
51
+ }
52
+ /**
53
+ * Create a polyline by cloning points (defensive copy).
54
+ * @param points Raw input points; they will be copied and cleaned.
55
+ */
56
+ static from(points) {
57
+ return new Polyline(points.map((p) => ({ x: p.x, y: p.y })));
58
+ }
59
+ /** Remove consecutive duplicate points. */
60
+ static _removeConsecutiveDuplicates(points) {
61
+ const result = [];
62
+ for (const p of points) {
63
+ const last = result[result.length - 1];
64
+ if (!last || last.x !== p.x || last.y !== p.y) {
65
+ result.push({ x: p.x, y: p.y });
66
+ }
67
+ }
68
+ return result;
69
+ }
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tY29udGVudC91dGlscy9wb2x5bGluZS1zYW1wbGVyL3BvbHlsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7R0FHRztBQUNILE1BQU0sT0FBTyxRQUFRO0lBQ25CLDREQUE0RDtJQUM1QyxNQUFNLENBQVc7SUFDakMsNEVBQTRFO0lBQzVELGlCQUFpQixDQUFXO0lBQzVDLHVGQUF1RjtJQUN2RSxlQUFlLENBQWE7SUFDNUMsdUVBQXVFO0lBQ3ZELFdBQVcsQ0FBUztJQUVwQzs7OztPQUlHO0lBQ0gsWUFBWSxNQUFnQjtRQUMxQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUQsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLDhEQUE4RDtZQUM5RCxJQUFJLENBQUMsTUFBTSxHQUFHO2dCQUNaLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUNkLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO2FBQ2YsQ0FBQztZQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBRXJCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFFdEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDdkMsTUFBTSxZQUFZLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUVyQyxNQUFNLFVBQVUsR0FBYSxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxRQUFRLEdBQWUsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckQsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRWxDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXBDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQy9CLFdBQVcsSUFBSSxNQUFNLENBQUM7WUFDdEIsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQWdCO1FBQ2pDLE9BQU8sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELDJDQUEyQztJQUNuQyxNQUFNLENBQUMsNEJBQTRCLENBQUMsTUFBZ0I7UUFDMUQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IElUYW5nZW50IH0gZnJvbSAnLi9pLXRhbmdlbnQnO1xuXG4vKipcbiAqIEltbXV0YWJsZSBwb2x5bGluZSBnZW9tZXRyeSB3aXRoIHByZWNvbXB1dGVkIGN1bXVsYXRpdmUgbGVuZ3RocyBhbmQgc2VnbWVudCB0YW5nZW50cy5cbiAqIEtlZXAgdGhpcyBjbGFzcyBmb2N1c2VkIG9uIGdlb21ldHJ5IG9ubHk7IHNhbXBsaW5nL3RyYXZlcnNhbCBsaXZlcyBpbiBQb2x5bGluZVNhbXBsZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBQb2x5bGluZSB7XG4gIC8qKiBDbGVhbmVkIHBvaW50cyAod2l0aCBjb25zZWN1dGl2ZSBkdXBsaWNhdGVzIHJlbW92ZWQpLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcG9pbnRzOiBJUG9pbnRbXTtcbiAgLyoqIEN1bXVsYXRpdmUgbGVuZ3RoIGZyb20gc3RhcnQgdG8gZWFjaCB2ZXJ0ZXguIFNhbWUgbGVuZ3RoIGFzIGBwb2ludHNgLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3VtdWxhdGl2ZUxlbmd0aHM6IG51bWJlcltdO1xuICAvKiogVW5pdCB0YW5nZW50IHBlciBzZWdtZW50IGBpYCBmb3Igc2VnbWVudCBbaSAtPiBpKzFdLiBMZW5ndGggPSBwb2ludHMubGVuZ3RoIC0gMS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlZ21lbnRUYW5nZW50czogSVRhbmdlbnRbXTtcbiAgLyoqIFRvdGFsIGxlbmd0aCBvZiB0aGUgcG9seWxpbmUgKD49IDEgZm9yIHRoZSBkZWdlbmVyYXRlIGZhbGxiYWNrKS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHRvdGFsTGVuZ3RoOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBhIHBvbHlsaW5lIGZyb20gcmF3IHBvaW50cy5cbiAgICogQ29uc2VjdXRpdmUgZHVwbGljYXRlIHBvaW50cyBhcmUgcmVtb3ZlZC5cbiAgICogSWYgbGVzcyB0aGFuIDIgcG9pbnRzIHJlbWFpbiwgaXQgZmFsbHMgYmFjayB0byBhIHVuaXQgaG9yaXpvbnRhbCBzZWdtZW50IFswLDBdIOKGkiBbMSwwXS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHBvaW50czogSVBvaW50W10pIHtcbiAgICBjb25zdCBjbGVhbmVkID0gUG9seWxpbmUuX3JlbW92ZUNvbnNlY3V0aXZlRHVwbGljYXRlcyhwb2ludHMpO1xuXG4gICAgaWYgKGNsZWFuZWQubGVuZ3RoIDwgMikge1xuICAgICAgLy8gRmFsbGJhY2sgdG8gYSB1bml0IHNlZ21lbnQgdG8gYXZvaWQgemVyby1sZW5ndGggZWRnZSBjYXNlcy5cbiAgICAgIHRoaXMucG9pbnRzID0gW1xuICAgICAgICB7IHg6IDAsIHk6IDAgfSxcbiAgICAgICAgeyB4OiAxLCB5OiAwIH0sXG4gICAgICBdO1xuICAgICAgdGhpcy5jdW11bGF0aXZlTGVuZ3RocyA9IFswLCAxXTtcbiAgICAgIHRoaXMuc2VnbWVudFRhbmdlbnRzID0gW3sgeDogMSwgeTogMCB9XTtcbiAgICAgIHRoaXMudG90YWxMZW5ndGggPSAxO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wb2ludHMgPSBjbGVhbmVkO1xuXG4gICAgY29uc3QgdmVydGV4Q291bnQgPSB0aGlzLnBvaW50cy5sZW5ndGg7XG4gICAgY29uc3Qgc2VnbWVudENvdW50ID0gdmVydGV4Q291bnQgLSAxO1xuXG4gICAgY29uc3QgY3VtdWxhdGl2ZTogbnVtYmVyW10gPSBuZXcgQXJyYXkodmVydGV4Q291bnQpLmZpbGwoMCk7XG4gICAgY29uc3QgdGFuZ2VudHM6IElUYW5nZW50W10gPSBuZXcgQXJyYXkoc2VnbWVudENvdW50KTtcblxuICAgIGxldCBhY2N1bXVsYXRlZCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWdtZW50Q291bnQ7IGkrKykge1xuICAgICAgY29uc3QgZHggPSB0aGlzLnBvaW50c1tpICsgMV0ueCAtIHRoaXMucG9pbnRzW2ldLng7XG4gICAgICBjb25zdCBkeSA9IHRoaXMucG9pbnRzW2kgKyAxXS55IC0gdGhpcy5wb2ludHNbaV0ueTtcbiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGguaHlwb3QoZHgsIGR5KTtcblxuICAgICAgY29uc3QgdXggPSBsZW5ndGggPyBkeCAvIGxlbmd0aCA6IDE7XG4gICAgICBjb25zdCB1eSA9IGxlbmd0aCA/IGR5IC8gbGVuZ3RoIDogMDtcblxuICAgICAgdGFuZ2VudHNbaV0gPSB7IHg6IHV4LCB5OiB1eSB9O1xuICAgICAgYWNjdW11bGF0ZWQgKz0gbGVuZ3RoO1xuICAgICAgY3VtdWxhdGl2ZVtpICsgMV0gPSBhY2N1bXVsYXRlZDtcbiAgICB9XG5cbiAgICB0aGlzLmN1bXVsYXRpdmVMZW5ndGhzID0gY3VtdWxhdGl2ZTtcbiAgICB0aGlzLnNlZ21lbnRUYW5nZW50cyA9IHRhbmdlbnRzO1xuICAgIHRoaXMudG90YWxMZW5ndGggPSBhY2N1bXVsYXRlZCB8fCAxO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHBvbHlsaW5lIGJ5IGNsb25pbmcgcG9pbnRzIChkZWZlbnNpdmUgY29weSkuXG4gICAqIEBwYXJhbSBwb2ludHMgUmF3IGlucHV0IHBvaW50czsgdGhleSB3aWxsIGJlIGNvcGllZCBhbmQgY2xlYW5lZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbShwb2ludHM6IElQb2ludFtdKTogUG9seWxpbmUge1xuICAgIHJldHVybiBuZXcgUG9seWxpbmUocG9pbnRzLm1hcCgocCkgPT4gKHsgeDogcC54LCB5OiBwLnkgfSkpKTtcbiAgfVxuXG4gIC8qKiBSZW1vdmUgY29uc2VjdXRpdmUgZHVwbGljYXRlIHBvaW50cy4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX3JlbW92ZUNvbnNlY3V0aXZlRHVwbGljYXRlcyhwb2ludHM6IElQb2ludFtdKTogSVBvaW50W10ge1xuICAgIGNvbnN0IHJlc3VsdDogSVBvaW50W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHAgb2YgcG9pbnRzKSB7XG4gICAgICBjb25zdCBsYXN0ID0gcmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXTtcbiAgICAgIGlmICghbGFzdCB8fCBsYXN0LnggIT09IHAueCB8fCBsYXN0LnkgIT09IHAueSkge1xuICAgICAgICByZXN1bHQucHVzaCh7IHg6IHAueCwgeTogcC55IH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { F_CONNECTION_DRAG_HANDLE_END, FConnectionDragHandleBase } from './models';
3
+ import * as i0 from "@angular/core";
4
+ export class FConnectionDragHandleEnd extends FConnectionDragHandleBase {
5
+ redraw(penultimatePoint, endPoint) {
6
+ this.point = this.calculateCircleCenter(penultimatePoint, endPoint, 8);
7
+ this.hostElement.setAttribute('cx', this.point.x.toString());
8
+ this.hostElement.setAttribute('cy', this.point.y.toString());
9
+ }
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionDragHandleEnd, deps: null, target: i0.ɵɵFactoryTarget.Component });
11
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionDragHandleEnd, selector: "circle[f-connection-drag-handle-end]", host: { properties: { "class": "class" } }, providers: [
12
+ {
13
+ provide: F_CONNECTION_DRAG_HANDLE_END,
14
+ useExisting: FConnectionDragHandleEnd,
15
+ },
16
+ ], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionDragHandleEnd, decorators: [{
19
+ type: Component,
20
+ args: [{
21
+ selector: 'circle[f-connection-drag-handle-end]',
22
+ template: '',
23
+ changeDetection: ChangeDetectionStrategy.OnPush,
24
+ host: {
25
+ '[class]': 'class',
26
+ },
27
+ providers: [
28
+ {
29
+ provide: F_CONNECTION_DRAG_HANDLE_END,
30
+ useExisting: FConnectionDragHandleEnd,
31
+ },
32
+ ],
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlLWVuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL2NvbXBvbmVudHMvY29ubmVjdGlvbi1kcmFnLWhhbmRsZXMvZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlLWVuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5FLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFnQm5GLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx5QkFBeUI7SUFDckQsTUFBTSxDQUFDLGdCQUF3QixFQUFFLFFBQWdCO1FBQy9ELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO3dHQUxVLHdCQUF3Qjs0RkFBeEIsd0JBQXdCLDJHQVB4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLFdBQVcsRUFBRSx3QkFBd0I7YUFDdEM7U0FDRixpREFWUyxFQUFFOzs0RkFZRCx3QkFBd0I7a0JBZHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLElBQUksRUFBRTt3QkFDSixTQUFTLEVBQUUsT0FBTztxQkFDbkI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcsMEJBQTBCO3lCQUN0QztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX0RSQUdfSEFORExFX0VORCwgRkNvbm5lY3Rpb25EcmFnSGFuZGxlQmFzZSB9IGZyb20gJy4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2lyY2xlW2YtY29ubmVjdGlvbi1kcmFnLWhhbmRsZS1lbmRdJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3NdJzogJ2NsYXNzJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRl9DT05ORUNUSU9OX0RSQUdfSEFORExFX0VORCxcbiAgICAgIHVzZUV4aXN0aW5nOiBGQ29ubmVjdGlvbkRyYWdIYW5kbGVFbmQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25EcmFnSGFuZGxlRW5kIGV4dGVuZHMgRkNvbm5lY3Rpb25EcmFnSGFuZGxlQmFzZSB7XG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXcocGVudWx0aW1hdGVQb2ludDogSVBvaW50LCBlbmRQb2ludDogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5wb2ludCA9IHRoaXMuY2FsY3VsYXRlQ2lyY2xlQ2VudGVyKHBlbnVsdGltYXRlUG9pbnQsIGVuZFBvaW50LCA4KTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnY3gnLCB0aGlzLnBvaW50LngudG9TdHJpbmcoKSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2N5JywgdGhpcy5wb2ludC55LnRvU3RyaW5nKCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { F_CONNECTION_DRAG_HANDLE_START, FConnectionDragHandleBase } from './models';
3
+ import * as i0 from "@angular/core";
4
+ export class FConnectionDragHandleStart extends FConnectionDragHandleBase {
5
+ redraw(penultimatePoint, startPoint) {
6
+ this.point = this.calculateCircleCenter(penultimatePoint, startPoint, 8);
7
+ this.hostElement.setAttribute('cx', this.point.x.toString());
8
+ this.hostElement.setAttribute('cy', this.point.y.toString());
9
+ }
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionDragHandleStart, deps: null, target: i0.ɵɵFactoryTarget.Component });
11
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionDragHandleStart, selector: "circle[f-connection-drag-handle-start]", host: { properties: { "class": "class" } }, providers: [
12
+ {
13
+ provide: F_CONNECTION_DRAG_HANDLE_START,
14
+ useExisting: FConnectionDragHandleStart,
15
+ },
16
+ ], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionDragHandleStart, decorators: [{
19
+ type: Component,
20
+ args: [{
21
+ selector: 'circle[f-connection-drag-handle-start]',
22
+ template: '',
23
+ changeDetection: ChangeDetectionStrategy.OnPush,
24
+ host: {
25
+ '[class]': 'class',
26
+ },
27
+ providers: [
28
+ {
29
+ provide: F_CONNECTION_DRAG_HANDLE_START,
30
+ useExisting: FConnectionDragHandleStart,
31
+ },
32
+ ],
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlLXN0YXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvY29tcG9uZW50cy9jb25uZWN0aW9uLWRyYWctaGFuZGxlcy9mLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGUtc3RhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBZ0JyRixNQUFNLE9BQU8sMEJBQTJCLFNBQVEseUJBQXlCO0lBQ3ZELE1BQU0sQ0FBQyxnQkFBd0IsRUFBRSxVQUFrQjtRQUNqRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQzt3R0FMVSwwQkFBMEI7NEZBQTFCLDBCQUEwQiw2R0FQMUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsOEJBQThCO2dCQUN2QyxXQUFXLEVBQUUsMEJBQTBCO2FBQ3hDO1NBQ0YsaURBVlMsRUFBRTs7NEZBWUQsMEJBQTBCO2tCQWR0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3Q0FBd0M7b0JBQ2xELFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxJQUFJLEVBQUU7d0JBQ0osU0FBUyxFQUFFLE9BQU87cUJBQ25CO29CQUNELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsOEJBQThCOzRCQUN2QyxXQUFXLDRCQUE0Qjt5QkFDeEM7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9EUkFHX0hBTkRMRV9TVEFSVCwgRkNvbm5lY3Rpb25EcmFnSGFuZGxlQmFzZSB9IGZyb20gJy4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2lyY2xlW2YtY29ubmVjdGlvbi1kcmFnLWhhbmRsZS1zdGFydF0nLFxuICB0ZW1wbGF0ZTogJycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzc10nOiAnY2xhc3MnLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBGX0NPTk5FQ1RJT05fRFJBR19IQU5ETEVfU1RBUlQsXG4gICAgICB1c2VFeGlzdGluZzogRkNvbm5lY3Rpb25EcmFnSGFuZGxlU3RhcnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25EcmFnSGFuZGxlU3RhcnQgZXh0ZW5kcyBGQ29ubmVjdGlvbkRyYWdIYW5kbGVCYXNlIHtcbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhdyhwZW51bHRpbWF0ZVBvaW50OiBJUG9pbnQsIHN0YXJ0UG9pbnQ6IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMucG9pbnQgPSB0aGlzLmNhbGN1bGF0ZUNpcmNsZUNlbnRlcihwZW51bHRpbWF0ZVBvaW50LCBzdGFydFBvaW50LCA4KTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnY3gnLCB0aGlzLnBvaW50LngudG9TdHJpbmcoKSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2N5JywgdGhpcy5wb2ludC55LnRvU3RyaW5nKCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './models';
2
+ export * from './f-connection-drag-handle-start';
3
+ export * from './f-connection-drag-handle-end';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZHJhZy1oYW5kbGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsa0NBQWtDLENBQUM7QUFFakQsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGUtc3RhcnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtY29ubmVjdGlvbi1kcmFnLWhhbmRsZS1lbmQnO1xuIl19
@@ -0,0 +1,17 @@
1
+ import { ElementRef, inject, InjectionToken } from '@angular/core';
2
+ import { PointExtensions } from '@foblex/2d';
3
+ export const F_CONNECTION_DRAG_HANDLE_END = new InjectionToken('F_CONNECTION_DRAG_HANDLE_END');
4
+ export const F_CONNECTION_DRAG_HANDLE_START = new InjectionToken('F_CONNECTION_DRAG_HANDLE_START');
5
+ export class FConnectionDragHandleBase {
6
+ hostElement = inject(ElementRef).nativeElement;
7
+ point = PointExtensions.initialize();
8
+ class = 'f-connection-drag-handle';
9
+ calculateCircleCenter(start, end, radius) {
10
+ const direction = { x: end.x - start.x, y: end.y - start.y };
11
+ const length = Math.sqrt(direction.x * direction.x + direction.y * direction.y) || 1;
12
+ const unitDirection = { x: direction.x / length, y: direction.y / length };
13
+ const scaledDirection = { x: unitDirection.x * radius, y: unitDirection.y * radius };
14
+ return { x: end.x - scaledDirection.x, y: end.y - scaledDirection.y };
15
+ }
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZHJhZy1oYW5kbGVzL21vZGVscy9mLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFVLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FDNUQsOEJBQThCLENBQy9CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FDOUQsZ0NBQWdDLENBQ2pDLENBQUM7QUFFRixNQUFNLE9BQWdCLHlCQUF5QjtJQUM3QixXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUV4RCxLQUFLLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXpCLEtBQUssR0FBRywwQkFBMEIsQ0FBQztJQUk1QyxxQkFBcUIsQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLE1BQWM7UUFDeEUsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckYsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDM0UsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFFckYsT0FBTyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3hFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQb2ludCwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbmV4cG9ydCBjb25zdCBGX0NPTk5FQ1RJT05fRFJBR19IQU5ETEVfRU5EID0gbmV3IEluamVjdGlvblRva2VuPEZDb25uZWN0aW9uRHJhZ0hhbmRsZUJhc2U+KFxuICAnRl9DT05ORUNUSU9OX0RSQUdfSEFORExFX0VORCcsXG4pO1xuXG5leHBvcnQgY29uc3QgRl9DT05ORUNUSU9OX0RSQUdfSEFORExFX1NUQVJUID0gbmV3IEluamVjdGlvblRva2VuPEZDb25uZWN0aW9uRHJhZ0hhbmRsZUJhc2U+KFxuICAnRl9DT05ORUNUSU9OX0RSQUdfSEFORExFX1NUQVJUJyxcbik7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGQ29ubmVjdGlvbkRyYWdIYW5kbGVCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGhvc3RFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgcHVibGljIHBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2xhc3MgPSAnZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlJztcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVkcmF3KHBlbnVsdGltYXRlUG9pbnQ6IElQb2ludCwgc3RhcnRQb2ludDogSVBvaW50KTogdm9pZDtcblxuICBwcm90ZWN0ZWQgY2FsY3VsYXRlQ2lyY2xlQ2VudGVyKHN0YXJ0OiBJUG9pbnQsIGVuZDogSVBvaW50LCByYWRpdXM6IG51bWJlcik6IElQb2ludCB7XG4gICAgY29uc3QgZGlyZWN0aW9uID0geyB4OiBlbmQueCAtIHN0YXJ0LngsIHk6IGVuZC55IC0gc3RhcnQueSB9O1xuICAgIGNvbnN0IGxlbmd0aCA9IE1hdGguc3FydChkaXJlY3Rpb24ueCAqIGRpcmVjdGlvbi54ICsgZGlyZWN0aW9uLnkgKiBkaXJlY3Rpb24ueSkgfHwgMTtcbiAgICBjb25zdCB1bml0RGlyZWN0aW9uID0geyB4OiBkaXJlY3Rpb24ueCAvIGxlbmd0aCwgeTogZGlyZWN0aW9uLnkgLyBsZW5ndGggfTtcbiAgICBjb25zdCBzY2FsZWREaXJlY3Rpb24gPSB7IHg6IHVuaXREaXJlY3Rpb24ueCAqIHJhZGl1cywgeTogdW5pdERpcmVjdGlvbi55ICogcmFkaXVzIH07XG5cbiAgICByZXR1cm4geyB4OiBlbmQueCAtIHNjYWxlZERpcmVjdGlvbi54LCB5OiBlbmQueSAtIHNjYWxlZERpcmVjdGlvbi55IH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './f-connection-drag-handle-base';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZHJhZy1oYW5kbGVzL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGUtYmFzZSc7XG4iXX0=
@@ -0,0 +1,54 @@
1
+ import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
2
+ import { Point } from '@foblex/2d';
3
+ import { F_CONNECTION_GRADIENT, FConnectionGradientBase } from './models';
4
+ import { F_CONNECTION_COMPONENTS_PARENT } from '../../models';
5
+ import { createGradientDomIdentifier } from '../../utils';
6
+ import * as i0 from "@angular/core";
7
+ export class FConnectionGradient extends FConnectionGradientBase {
8
+ _connection = inject(F_CONNECTION_COMPONENTS_PARENT);
9
+ get gradientId() {
10
+ return createGradientDomIdentifier(this._connection.fId(), this._connection.fOutputId(), this._connection.fInputId());
11
+ }
12
+ get stop1Element() {
13
+ return this.hostElement.children.item(0);
14
+ }
15
+ get stop2Element() {
16
+ return this.hostElement.children.item(1);
17
+ }
18
+ initialize() {
19
+ this.stop1Element.setAttribute('offset', '0%');
20
+ this.stop2Element.setAttribute('offset', '100%');
21
+ }
22
+ _updateGradient() {
23
+ this._setFromColor(this._connection.fStartColor());
24
+ this._setToColor(this._connection.fEndColor());
25
+ }
26
+ _setFromColor(color) {
27
+ this.stop1Element.setAttribute('stop-color', color || 'transparent');
28
+ }
29
+ _setToColor(color) {
30
+ this.stop2Element.setAttribute('stop-color', color || 'transparent');
31
+ }
32
+ redraw(line) {
33
+ const x = line.point2.x - line.point1.x;
34
+ const y = line.point2.y - line.point1.y;
35
+ const distance = Math.sqrt(x * x + y * y) || 0.01;
36
+ const from = new Point(0.5 - (0.5 * x) / distance, 0.5 - (0.5 * y) / distance);
37
+ this.hostElement.setAttribute('x1', from.x.toString());
38
+ this.hostElement.setAttribute('y1', from.y.toString());
39
+ const to = new Point(0.5 + (0.5 * x) / distance, 0.5 + (0.5 * y) / distance);
40
+ this.hostElement.setAttribute('x2', to.x.toString());
41
+ this.hostElement.setAttribute('y2', to.y.toString());
42
+ this._updateGradient();
43
+ }
44
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradient, deps: null, target: i0.ɵɵFactoryTarget.Component });
45
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionGradient, selector: "linearGradient[fConnectionGradient]", host: { properties: { "attr.id": "gradientId" }, classAttribute: "f-component f-connection-gradient" }, providers: [{ provide: F_CONNECTION_GRADIENT, useExisting: FConnectionGradient }], usesInheritance: true, ngImport: i0, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:stop />\n <svg:stop />\n</ng-container>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradient, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'linearGradient[fConnectionGradient]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
50
+ class: 'f-component f-connection-gradient',
51
+ '[attr.id]': 'gradientId',
52
+ }, providers: [{ provide: F_CONNECTION_GRADIENT, useExisting: FConnectionGradient }], template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:stop />\n <svg:stop />\n</ng-container>\n" }]
53
+ }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWdyYWRpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvY29tcG9uZW50cy9jb25uZWN0aW9uLWdyYWRpZW50L2YtY29ubmVjdGlvbi1ncmFkaWVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL2NvbXBvbmVudHMvY29ubmVjdGlvbi1ncmFkaWVudC9mLWNvbm5lY3Rpb24tZ3JhZGllbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQVMsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVkxRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQXVCO0lBQzdDLFdBQVcsR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUV0RSxJQUFXLFVBQVU7UUFDbkIsT0FBTywyQkFBMkIsQ0FDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsRUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsRUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFtQixDQUFDO0lBQzdELENB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cUIsRUFBRSxXQUFXLHFCQUFxQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaW5lLCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX0dSQURJRU5ULCBGQ29ubmVjdGlvbkdyYWRpZW50QmFzZSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9DT01QT05FTlRTX1BBUkVOVCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBjcmVhdGVHcmFkaWVudERvbUlkZW50aWZpZXIgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpbmVhckdyYWRpZW50W2ZDb25uZWN0aW9uR3JhZGllbnRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2YtY29ubmVjdGlvbi1ncmFkaWVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2YtY29tcG9uZW50IGYtY29ubmVjdGlvbi1ncmFkaWVudCcsXG4gICAgJ1thdHRyLmlkXSc6ICdncmFkaWVudElkJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGX0NPTk5FQ1RJT05fR1JBRElFTlQsIHVzZUV4aXN0aW5nOiBGQ29ubmVjdGlvbkdyYWRpZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBGQ29ubmVjdGlvbkdyYWRpZW50IGV4dGVuZHMgRkNvbm5lY3Rpb25HcmFkaWVudEJhc2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb25uZWN0aW9uID0gaW5qZWN0KEZfQ09OTkVDVElPTl9DT01QT05FTlRTX1BBUkVOVCk7XG5cbiAgcHVibGljIGdldCBncmFkaWVudElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNyZWF0ZUdyYWRpZW50RG9tSWRlbnRpZmllcihcbiAgICAgIHRoaXMuX2Nvbm5lY3Rpb24uZklkKCksXG4gICAgICB0aGlzLl9jb25uZWN0aW9uLmZPdXRwdXRJZCgpLFxuICAgICAgdGhpcy5fY29ubmVjdGlvbi5mSW5wdXRJZCgpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0b3AxRWxlbWVudCgpOiBTVkdTdG9wRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQuY2hpbGRyZW4uaXRlbSgwKSBhcyBTVkdTdG9wRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RvcDJFbGVtZW50KCk6IFNWR1N0b3BFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RWxlbWVudC5jaGlsZHJlbi5pdGVtKDEpIGFzIFNWR1N0b3BFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wMUVsZW1lbnQuc2V0QXR0cmlidXRlKCdvZmZzZXQnLCAnMCUnKTtcbiAgICB0aGlzLnN0b3AyRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ29mZnNldCcsICcxMDAlJyk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVHcmFkaWVudCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXRGcm9tQ29sb3IodGhpcy5fY29ubmVjdGlvbi5mU3RhcnRDb2xvcigpKTtcbiAgICB0aGlzLl9zZXRUb0NvbG9yKHRoaXMuX2Nvbm5lY3Rpb24uZkVuZENvbG9yKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RnJvbUNvbG9yKGNvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3AxRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0b3AtY29sb3InLCBjb2xvciB8fCAndHJhbnNwYXJlbnQnKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFRvQ29sb3IoY29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcDJFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3RvcC1jb2xvcicsIGNvbG9yIHx8ICd0cmFuc3BhcmVudCcpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhdyhsaW5lOiBJTGluZSk6IHZvaWQge1xuICAgIGNvbnN0IHg6IG51bWJlciA9IGxpbmUucG9pbnQyLnggLSBsaW5lLnBvaW50MS54O1xuICAgIGNvbnN0IHk6IG51bWJlciA9IGxpbmUucG9pbnQyLnkgLSBsaW5lLnBvaW50MS55O1xuICAgIGNvbnN0IGRpc3RhbmNlOiBudW1iZXIgPSBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSkgfHwgMC4wMTtcblxuICAgIGNvbnN0IGZyb20gPSBuZXcgUG9pbnQoMC41IC0gKDAuNSAqIHgpIC8gZGlzdGFuY2UsIDAuNSAtICgwLjUgKiB5KSAvIGRpc3RhbmNlKTtcblxuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCd4MScsIGZyb20ueC50b1N0cmluZygpKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgneTEnLCBmcm9tLnkudG9TdHJpbmcoKSk7XG5cbiAgICBjb25zdCB0byA9IG5ldyBQb2ludCgwLjUgKyAoMC41ICogeCkgLyBkaXN0YW5jZSwgMC41ICsgKDAuNSAqIHkpIC8gZGlzdGFuY2UpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCd4MicsIHRvLngudG9TdHJpbmcoKSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3kyJywgdG8ueS50b1N0cmluZygpKTtcbiAgICB0aGlzLl91cGRhdGVHcmFkaWVudCgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIHhtbG5zOnN2Zz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxzdmc6c3RvcCAvPlxuICA8c3ZnOnN0b3AgLz5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './models';
2
+ export * from './f-connection-gradient';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZ3JhZGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZi1jb25uZWN0aW9uLWdyYWRpZW50JztcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { ElementRef, inject, InjectionToken } from '@angular/core';
2
+ export const F_CONNECTION_GRADIENT = new InjectionToken('F_CONNECTION_GRADIENT');
3
+ export class FConnectionGradientBase {
4
+ hostElement = inject((ElementRef)).nativeElement;
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWdyYWRpZW50LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZ3JhZGllbnQvbW9kZWxzL2YtY29ubmVjdGlvbi1ncmFkaWVudC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsdUJBQXVCLENBQ3hCLENBQUM7QUFFRixNQUFNLE9BQWdCLHVCQUF1QjtJQUMzQixXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBb0MsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDO0NBSzFGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxpbmUgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEZfQ09OTkVDVElPTl9HUkFESUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGQ29ubmVjdGlvbkdyYWRpZW50QmFzZT4oXG4gICdGX0NPTk5FQ1RJT05fR1JBRElFTlQnLFxuKTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZDb25uZWN0aW9uR3JhZGllbnRCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGhvc3RFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWY8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50PikubmF0aXZlRWxlbWVudDtcblxuICBwdWJsaWMgYWJzdHJhY3QgaW5pdGlhbGl6ZSgpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWRyYXcobGluZTogSUxpbmUpOiB2b2lkO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './f-connection-gradient-base';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZ3JhZGllbnQvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2YtY29ubmVjdGlvbi1ncmFkaWVudC1iYXNlJztcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export var EFMarkerType;
2
+ (function (EFMarkerType) {
3
+ EFMarkerType["START"] = "f-connection-marker-start";
4
+ EFMarkerType["END"] = "f-connection-marker-end";
5
+ EFMarkerType["SELECTED_START"] = "f-connection-selected-marker-start";
6
+ EFMarkerType["SELECTED_END"] = "f-connection-selected-marker-end";
7
+ })(EFMarkerType || (EFMarkerType = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1mLW1hcmtlci10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvY29tcG9uZW50cy9jb25uZWN0aW9uLW1hcmtlci9lbnVtcy9lLWYtbWFya2VyLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksWUFRWDtBQVJELFdBQVksWUFBWTtJQUN0QixtREFBbUMsQ0FBQTtJQUVuQywrQ0FBK0IsQ0FBQTtJQUUvQixxRUFBcUQsQ0FBQTtJQUVyRCxpRUFBaUQsQ0FBQTtBQUNuRCxDQUFDLEVBUlcsWUFBWSxLQUFaLFlBQVksUUFRdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFRk1hcmtlclR5cGUge1xuICBTVEFSVCA9ICdmLWNvbm5lY3Rpb24tbWFya2VyLXN0YXJ0JyxcblxuICBFTkQgPSAnZi1jb25uZWN0aW9uLW1hcmtlci1lbmQnLFxuXG4gIFNFTEVDVEVEX1NUQVJUID0gJ2YtY29ubmVjdGlvbi1zZWxlY3RlZC1tYXJrZXItc3RhcnQnLFxuXG4gIFNFTEVDVEVEX0VORCA9ICdmLWNvbm5lY3Rpb24tc2VsZWN0ZWQtbWFya2VyLWVuZCcsXG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './e-f-marker-type';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tbWFya2VyL2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2UtZi1tYXJrZXItdHlwZSc7XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { Directive, inject, Input } from '@angular/core';
2
+ import { FMediator } from '@foblex/mediator';
3
+ import { F_CONNECTION_MARKER, FConnectionMarkerBase } from './models';
4
+ import { EFMarkerType } from './enums';
5
+ import { AddConnectionMarkerToStoreRequest, RemoveConnectionMarkerFromStoreRequest, } from '../../../domain';
6
+ import * as i0 from "@angular/core";
7
+ export class FConnectionMarker extends FConnectionMarkerBase {
8
+ _mediator = inject(FMediator);
9
+ width = 0;
10
+ height = 0;
11
+ refX = 0;
12
+ refY = 0;
13
+ type = EFMarkerType.START;
14
+ orient = 'auto';
15
+ markerUnits = 'strokeWidth';
16
+ ngOnInit() {
17
+ this.hostElement.style.display = 'none';
18
+ this._mediator.execute(new AddConnectionMarkerToStoreRequest(this));
19
+ }
20
+ ngOnDestroy() {
21
+ this._mediator.execute(new RemoveConnectionMarkerFromStoreRequest(this));
22
+ }
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionMarker, deps: null, target: i0.ɵɵFactoryTarget.Directive });
24
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionMarker, selector: "svg[fMarker]", inputs: { width: "width", height: "height", refX: "refX", refY: "refY", type: "type", orient: "orient", markerUnits: "markerUnits" }, host: { classAttribute: "f-component f-marker" }, providers: [{ provide: F_CONNECTION_MARKER, useExisting: FConnectionMarker }], usesInheritance: true, ngImport: i0 });
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionMarker, decorators: [{
27
+ type: Directive,
28
+ args: [{
29
+ selector: 'svg[fMarker]',
30
+ host: {
31
+ class: 'f-component f-marker',
32
+ },
33
+ providers: [{ provide: F_CONNECTION_MARKER, useExisting: FConnectionMarker }],
34
+ }]
35
+ }], propDecorators: { width: [{
36
+ type: Input
37
+ }], height: [{
38
+ type: Input
39
+ }], refX: [{
40
+ type: Input
41
+ }], refY: [{
42
+ type: Input
43
+ }], type: [{
44
+ type: Input
45
+ }], orient: [{
46
+ type: Input
47
+ }], markerUnits: [{
48
+ type: Input
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLW1hcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL2NvbXBvbmVudHMvY29ubmVjdGlvbi1tYXJrZXIvZi1jb25uZWN0aW9uLW1hcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLHNDQUFzQyxHQUN2QyxNQUFNLGlCQUFpQixDQUFDOztBQVN6QixNQUFNLE9BQU8saUJBQWtCLFNBQVEscUJBQXFCO0lBQ3pDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFHL0IsS0FBSyxHQUFXLENBQUMsQ0FBQztJQUdsQixNQUFNLEdBQVcsQ0FBQyxDQUFDO0lBR25CLElBQUksR0FBVyxDQUFDLENBQUM7SUFHakIsSUFBSSxHQUFXLENBQUMsQ0FBQztJQUdqQixJQUFJLEdBQVcsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUdsQyxNQUFNLEdBQTBELE1BQU0sQ0FBQztJQUd2RSxXQUFXLEdBQXFDLGFBQWEsQ0FBQztJQUV2RSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxzQ0FBc0MsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7d0dBL0JVLGlCQUFpQjs0RkFBakIsaUJBQWlCLCtOQUZqQixDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxDQUFDOzs0RkFFbEUsaUJBQWlCO2tCQVA3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLHNCQUFzQjtxQkFDOUI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxDQUFDO2lCQUM5RTs4QkFLaUIsS0FBSztzQkFEcEIsS0FBSztnQkFJVSxNQUFNO3NCQURyQixLQUFLO2dCQUlVLElBQUk7c0JBRG5CLEtBQUs7Z0JBSVUsSUFBSTtzQkFEbkIsS0FBSztnQkFJVSxJQUFJO3NCQURuQixLQUFLO2dCQUlVLE1BQU07c0JBRHJCLEtBQUs7Z0JBSVUsV0FBVztzQkFEMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX01BUktFUiwgRkNvbm5lY3Rpb25NYXJrZXJCYXNlIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgRUZNYXJrZXJUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQge1xuICBBZGRDb25uZWN0aW9uTWFya2VyVG9TdG9yZVJlcXVlc3QsXG4gIFJlbW92ZUNvbm5lY3Rpb25NYXJrZXJGcm9tU3RvcmVSZXF1ZXN0LFxufSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzdmdbZk1hcmtlcl0nLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdmLWNvbXBvbmVudCBmLW1hcmtlcicsXG4gIH0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRl9DT05ORUNUSU9OX01BUktFUiwgdXNlRXhpc3Rpbmc6IEZDb25uZWN0aW9uTWFya2VyIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBGQ29ubmVjdGlvbk1hcmtlciBleHRlbmRzIEZDb25uZWN0aW9uTWFya2VyQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgd2lkdGg6IG51bWJlciA9IDA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGhlaWdodDogbnVtYmVyID0gMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgcmVmWDogbnVtYmVyID0gMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgcmVmWTogbnVtYmVyID0gMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgdHlwZTogc3RyaW5nID0gRUZNYXJrZXJUeXBlLlNUQVJUO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBvcmllbnQ6ICdhdXRvJyB8ICdhdXRvLXN0YXJ0LXJldmVyc2UnIHwgJ2NhbGN1bGF0ZWQnIHwgc3RyaW5nID0gJ2F1dG8nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBtYXJrZXJVbml0czogJ3N0cm9rZVdpZHRoJyB8ICd1c2VyU3BhY2VPblVzZScgPSAnc3Ryb2tlV2lkdGgnO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgQWRkQ29ubmVjdGlvbk1hcmtlclRvU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBSZW1vdmVDb25uZWN0aW9uTWFya2VyRnJvbVN0b3JlUmVxdWVzdCh0aGlzKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './enums';
2
+ export * from './models';
3
+ export * from './f-connection-marker';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tbWFya2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBRXhCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VudW1zJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtY29ubmVjdGlvbi1tYXJrZXInO1xuIl19
@@ -0,0 +1,6 @@
1
+ import { ElementRef, inject, InjectionToken } from '@angular/core';
2
+ export const F_CONNECTION_MARKER = new InjectionToken('F_CONNECTION_MARKER');
3
+ export class FConnectionMarkerBase {
4
+ hostElement = inject((ElementRef)).nativeElement;
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLW1hcmtlci1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvY29tcG9uZW50cy9jb25uZWN0aW9uLW1hcmtlci9tb2RlbHMvZi1jb25uZWN0aW9uLW1hcmtlci1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBRTdFLE1BQU0sT0FBZ0IscUJBQXFCO0lBQ3pCLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQyxhQUFhLENBQUM7Q0FlN0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBGX0NPTk5FQ1RJT05fTUFSS0VSID0gbmV3IEluamVjdGlvblRva2VuKCdGX0NPTk5FQ1RJT05fTUFSS0VSJyk7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGQ29ubmVjdGlvbk1hcmtlckJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgaG9zdEVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IHdpZHRoOiBudW1iZXI7XG5cbiAgcHVibGljIGFic3RyYWN0IGhlaWdodDogbnVtYmVyO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWZYOiBudW1iZXI7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlZlk6IG51bWJlcjtcblxuICBwdWJsaWMgYWJzdHJhY3QgdHlwZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvcmllbnQ6ICdhdXRvJyB8ICdhdXRvLXN0YXJ0LXJldmVyc2UnIHwgc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBtYXJrZXJVbml0czogJ3N0cm9rZVdpZHRoJyB8ICd1c2VyU3BhY2VPblVzZSc7XG59XG4iXX0=