@foblex/flow 12.6.2 → 12.6.4

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 (1038) hide show
  1. package/bundles/foblex-flow.umd.js +9556 -0
  2. package/bundles/foblex-flow.umd.js.map +1 -0
  3. package/domain/center-group-or-node/center-group-or-node-request.d.ts +5 -0
  4. package/domain/center-group-or-node/center-group-or-node.execution.d.ts +17 -0
  5. package/domain/center-group-or-node/index.d.ts +2 -0
  6. package/domain/clear-selection/clear-selection.execution.d.ts +1 -1
  7. package/domain/constants.d.ts +1 -0
  8. package/domain/create-connection-markers/create-connection-markers.execution.d.ts +1 -1
  9. package/domain/create-rounded-rect-from-element/create-rounded-rect-from-element-request.d.ts +4 -0
  10. package/domain/create-rounded-rect-from-element/create-rounded-rect-from-element.execution.d.ts +15 -0
  11. package/domain/create-rounded-rect-from-element/index.d.ts +2 -0
  12. package/domain/emit-transform-changes/emit-transform-changes.execution.d.ts +1 -1
  13. package/domain/get-can-be-selected-items/get-can-be-selected-items.execution.d.ts +2 -2
  14. package/domain/get-can-be-selected-items/i-selectable-with-rect.d.ts +3 -3
  15. package/domain/get-connection-line/get-connection-line.execution.d.ts +2 -2
  16. package/domain/get-connection-line/get-connection-line.request.d.ts +4 -4
  17. package/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.d.ts +1 -1
  18. package/domain/get-element-rect-in-flow/get-element-rect-in-flow.execution.d.ts +4 -5
  19. package/domain/get-flow-state/get-flow-state-connections/get-flow-state-connections-request.d.ts +2 -0
  20. package/domain/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.d.ts +12 -0
  21. package/domain/get-flow-state/get-flow-state-connections/index.d.ts +2 -0
  22. package/domain/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.d.ts +5 -0
  23. package/domain/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.d.ts +14 -0
  24. package/domain/get-flow-state/get-flow-state-nodes/index.d.ts +2 -0
  25. package/domain/get-flow-state/get-flow-state.execution.d.ts +14 -0
  26. package/domain/get-flow-state/get-flow-state.request.d.ts +2 -0
  27. package/domain/get-flow-state/i-f-flow-state-connection.d.ts +9 -0
  28. package/domain/get-flow-state/i-f-flow-state-connector.d.ts +5 -0
  29. package/domain/get-flow-state/i-f-flow-state-node.d.ts +11 -0
  30. package/domain/get-flow-state/i-f-flow-state.d.ts +10 -0
  31. package/domain/get-flow-state/index.d.ts +9 -0
  32. package/domain/get-flow-state/providers.d.ts +4 -0
  33. package/domain/get-input-rect-in-flow/get-input-rect-in-flow-response.d.ts +1 -1
  34. package/domain/get-input-rect-in-flow/get-input-rect-in-flow.execution.d.ts +2 -2
  35. package/domain/get-nodes-rect/get-nodes-rect.execution.d.ts +2 -2
  36. package/domain/get-output-rect-in-flow/get-output-rect-in-flow-response.d.ts +1 -1
  37. package/domain/get-output-rect-in-flow/get-output-rect-in-flow.execution.d.ts +2 -2
  38. package/domain/get-position-in-flow/get-position-in-flow-request.d.ts +1 -1
  39. package/domain/get-position-in-flow/get-position-in-flow.execution.d.ts +2 -2
  40. package/domain/get-scaled-node-rects-with-flow-position/get-scaled-node-rects-with-flow-position.execution.d.ts +2 -2
  41. package/domain/get-selection/get-selection.execution.d.ts +1 -1
  42. package/domain/i-map.d.ts +3 -0
  43. package/domain/index.d.ts +6 -5
  44. package/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +2 -2
  45. package/domain/providers.d.ts +4 -1
  46. package/domain/redraw-connections/redraw-connections.execution.d.ts +2 -2
  47. package/domain/select/select.execution.d.ts +1 -1
  48. package/domain/select-all/select-all.execution.d.ts +1 -1
  49. package/domain/select-and-update-node-layer/select-and-update-node-layer.execution.d.ts +3 -3
  50. package/domain/show-connections-after-calculations/index.d.ts +2 -0
  51. package/domain/show-connections-after-calculations/show-connections-after-calculations-request.d.ts +2 -0
  52. package/domain/show-connections-after-calculations/show-connections-after-calculations.execution.d.ts +11 -0
  53. package/domain/sort-item-layers/sort-item-layers.execution.d.ts +2 -2
  54. package/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.d.ts +2 -2
  55. package/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.d.ts +2 -2
  56. package/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.d.ts +1 -1
  57. package/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.execution.d.ts +1 -1
  58. package/domain/update-item-and-children-layers/update-item-and-children-layers.execution.d.ts +2 -2
  59. package/domain/update-item-and-children-layers/update-item-and-children-layers.request.d.ts +3 -3
  60. package/esm2015/domain/center-group-or-node/center-group-or-node-request.js +7 -0
  61. package/esm2015/domain/center-group-or-node/center-group-or-node.execution.js +51 -0
  62. package/esm2015/domain/center-group-or-node/index.js +3 -0
  63. package/esm2015/domain/clear-selection/clear-selection.execution.js +26 -0
  64. package/esm2015/domain/constants.js +2 -0
  65. package/esm2015/domain/create-connection-markers/create-connection-markers-request.js +6 -0
  66. package/esm2015/domain/create-connection-markers/create-connection-markers.execution.js +56 -0
  67. package/esm2015/domain/create-rounded-rect-from-element/create-rounded-rect-from-element-request.js +6 -0
  68. package/esm2015/domain/create-rounded-rect-from-element/create-rounded-rect-from-element.execution.js +39 -0
  69. package/esm2015/domain/create-rounded-rect-from-element/index.js +3 -0
  70. package/esm2015/domain/emit-transform-changes/emit-transform-changes.execution.js +24 -0
  71. package/esm2015/domain/get-can-be-selected-items/get-can-be-selected-items.execution.js +57 -0
  72. package/esm2015/domain/get-can-be-selected-items/i-selectable-with-rect.js +2 -0
  73. package/esm2015/domain/get-connection-line/get-connection-line.execution.js +67 -0
  74. package/esm2015/domain/get-connection-line/get-connection-line.request.js +10 -0
  75. package/esm2015/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.js +35 -0
  76. package/esm2015/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.request.js +6 -0
  77. package/esm2015/domain/get-element-rect-in-flow/get-element-rect-in-flow-request.js +6 -0
  78. package/esm2015/domain/get-element-rect-in-flow/get-element-rect-in-flow.execution.js +43 -0
  79. package/esm2015/domain/get-flow-state/get-flow-state-connections/get-flow-state-connections-request.js +3 -0
  80. package/esm2015/domain/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.js +33 -0
  81. package/esm2015/domain/get-flow-state/get-flow-state-connections/index.js +3 -0
  82. package/esm2015/domain/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.js +6 -0
  83. package/esm2015/domain/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.js +50 -0
  84. package/esm2015/domain/get-flow-state/get-flow-state-nodes/index.js +3 -0
  85. package/esm2015/domain/get-flow-state/get-flow-state.execution.js +39 -0
  86. package/esm2015/domain/get-flow-state/get-flow-state.request.js +3 -0
  87. package/esm2015/domain/get-flow-state/i-f-flow-state-connection.js +2 -0
  88. package/esm2015/domain/get-flow-state/i-f-flow-state-connector.js +2 -0
  89. package/esm2015/domain/get-flow-state/i-f-flow-state-node.js +2 -0
  90. package/esm2015/domain/get-flow-state/i-f-flow-state.js +2 -0
  91. package/esm2015/domain/get-flow-state/index.js +10 -0
  92. package/esm2015/domain/get-flow-state/providers.js +9 -0
  93. package/esm2015/domain/get-input-rect-in-flow/get-input-rect-in-flow-request.js +6 -0
  94. package/esm2015/domain/get-input-rect-in-flow/get-input-rect-in-flow-response.js +7 -0
  95. package/esm2015/domain/get-input-rect-in-flow/get-input-rect-in-flow.execution.js +33 -0
  96. package/esm2015/domain/get-nodes-rect/get-nodes-rect.execution.js +31 -0
  97. package/esm2015/domain/get-output-rect-in-flow/get-output-rect-in-flow-request.js +6 -0
  98. package/esm2015/domain/get-output-rect-in-flow/get-output-rect-in-flow-response.js +7 -0
  99. package/esm2015/domain/get-output-rect-in-flow/get-output-rect-in-flow.execution.js +37 -0
  100. package/esm2015/domain/get-position-in-flow/get-position-in-flow-request.js +6 -0
  101. package/esm2015/domain/get-position-in-flow/get-position-in-flow.execution.js +32 -0
  102. package/esm2015/domain/get-scaled-node-rects-with-flow-position/get-scaled-node-rects-with-flow-position.execution.js +34 -0
  103. package/esm2015/domain/get-selection/get-selection.execution.js +35 -0
  104. package/esm2015/domain/i-map.js +2 -0
  105. package/esm2015/domain/index.js +30 -0
  106. package/esm2015/domain/is-connection-under-node/is-connection-under-node.execution.js +76 -0
  107. package/esm2015/domain/providers.js +56 -0
  108. package/esm2015/domain/redraw-connections/redraw-connections.execution.js +60 -0
  109. package/esm2015/domain/select/select.execution.js +44 -0
  110. package/esm2015/domain/select/select.request.js +7 -0
  111. package/esm2015/domain/select-all/select-all.execution.js +38 -0
  112. package/esm2015/domain/select-and-update-node-layer/select-and-update-node-layer.execution.js +35 -0
  113. package/esm2015/domain/select-and-update-node-layer/select-and-update-node-layer.request.js +6 -0
  114. package/esm2015/domain/show-connections-after-calculations/index.js +3 -0
  115. package/esm2015/domain/show-connections-after-calculations/show-connections-after-calculations-request.js +3 -0
  116. package/esm2015/domain/show-connections-after-calculations/show-connections-after-calculations.execution.js +26 -0
  117. package/esm2015/domain/sort-item-layers/sort-item-layers.execution.js +30 -0
  118. package/esm2015/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.js +57 -0
  119. package/esm2015/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.request.js +7 -0
  120. package/esm2015/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.js +59 -0
  121. package/esm2015/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.js +26 -0
  122. package/esm2015/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.execution.js +30 -0
  123. package/esm2015/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.request.js +10 -0
  124. package/esm2015/domain/update-item-and-children-layers/update-item-and-children-layers.execution.js +94 -0
  125. package/esm2015/domain/update-item-and-children-layers/update-item-and-children-layers.request.js +7 -0
  126. package/esm2015/f-backgroud/domain/i-f-background-pattern.js +3 -0
  127. package/esm2015/f-backgroud/f-background-base.js +11 -0
  128. package/esm2015/f-backgroud/f-background.component.js +71 -0
  129. package/esm2015/f-backgroud/f-circle-pattern/f-circle-pattern.component.js +104 -0
  130. package/esm2015/f-backgroud/f-rect-pattern/f-rect-pattern.component.js +122 -0
  131. package/esm2015/f-canvas/domain/f-canvas-change.event.js +7 -0
  132. package/esm2015/f-canvas/f-canvas-base.js +28 -0
  133. package/esm2015/f-canvas/f-canvas.component.js +120 -0
  134. package/esm2015/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.js +7 -0
  135. package/esm2015/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points.handler.js +12 -0
  136. package/esm2015/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.js +6 -0
  137. package/esm2015/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.js +35 -0
  138. package/esm2015/f-connection/common/domain/f-bezier.path-builder.js +37 -0
  139. package/esm2015/f-connection/common/domain/f-segment.path-builder.js +142 -0
  140. package/esm2015/f-connection/common/f-connection-base.js +68 -0
  141. package/esm2015/f-connection/common/f-connection-identifiers.js +22 -0
  142. package/esm2015/f-connection/common/f-connection-text/f-connection-text-path.directive.js +70 -0
  143. package/esm2015/f-connection/common/f-connection-text/f-connection-text.component.js +72 -0
  144. package/esm2015/f-connection/common/f-connection-text/i-connection-text.js +3 -0
  145. package/esm2015/f-connection/common/f-drag-handle/f-connection-drag-handle.component.js +38 -0
  146. package/esm2015/f-connection/common/f-gradient/f-connection-gradient.component.js +69 -0
  147. package/esm2015/f-connection/common/f-gradient/i-connection-gradient.js +3 -0
  148. package/esm2015/f-connection/common/f-path/f-connection-path.component.js +59 -0
  149. package/esm2015/f-connection/common/f-path/get-path-marker-id.js +14 -0
  150. package/esm2015/f-connection/common/f-path/i-connection-path.js +3 -0
  151. package/esm2015/f-connection/common/f-selection/f-connection-selection.component.js +37 -0
  152. package/esm2015/f-connection/common/index.js +14 -0
  153. package/esm2015/f-connection/f-connection/f-connection.component.js +184 -0
  154. package/esm2015/f-connection/f-connection-builder/f-connection-factory.js +34 -0
  155. package/esm2015/f-connection/f-connection-builder/i-f-connection-builder-request.js +2 -0
  156. package/esm2015/f-connection/f-connection-builder/i-f-connection-builder-response.js +2 -0
  157. package/esm2015/f-connection/f-connection-builder/i-f-connection-builder.js +2 -0
  158. package/esm2015/f-connection/f-connection-center/f-connection-center.directive.js +13 -0
  159. package/esm2015/f-connection/f-connection-for-create/f-connection-for-create.component.js +148 -0
  160. package/esm2015/f-connection/f-marker/f-marker-base.js +11 -0
  161. package/esm2015/f-connection/f-marker/f-marker.directive.js +58 -0
  162. package/esm2015/f-connection/f-snap-connection/f-snap-connection.component.js +139 -0
  163. package/esm2015/f-connection/f-snap-connection/index.js +2 -0
  164. package/esm2015/f-connection/index.js +9 -0
  165. package/esm2015/f-connectors/domain/calculate-connector-connectable-side/calculate-connector-connectable-side-request.js +7 -0
  166. package/esm2015/f-connectors/domain/calculate-connector-connectable-side/calculate-connector-connectable-side.handler.js +38 -0
  167. package/esm2015/f-connectors/f-connector-base.js +17 -0
  168. package/esm2015/f-connectors/f-node-input/f-node-input-base.js +19 -0
  169. package/esm2015/f-connectors/f-node-input/f-node-input.directive.js +87 -0
  170. package/esm2015/f-connectors/f-node-outlet/f-node-outlet-base.js +23 -0
  171. package/esm2015/f-connectors/f-node-outlet/f-node-outlet.directive.js +71 -0
  172. package/esm2015/f-connectors/f-node-output/f-node-output-base.js +19 -0
  173. package/esm2015/f-connectors/f-node-output/f-node-output.directive.js +94 -0
  174. package/esm2015/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.js +24 -0
  175. package/esm2015/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.request.js +6 -0
  176. package/esm2015/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.validator.js +25 -0
  177. package/esm2015/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.execution.js +36 -0
  178. package/esm2015/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.request.js +6 -0
  179. package/esm2015/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.validator.js +44 -0
  180. package/esm2015/f-draggable/canvas/canvas.drag-handler.js +18 -0
  181. package/esm2015/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.js +56 -0
  182. package/esm2015/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.request.js +6 -0
  183. package/esm2015/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.validator.js +25 -0
  184. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.execution.js +45 -0
  185. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.request.js +7 -0
  186. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.execution.js +53 -0
  187. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.request.js +6 -0
  188. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.execution.js +39 -0
  189. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.request.js +6 -0
  190. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.validator.js +34 -0
  191. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.execution.js +43 -0
  192. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.request.js +6 -0
  193. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.validator.js +32 -0
  194. package/esm2015/f-draggable/connections/create-connection/create-connection.drag-handler.js +33 -0
  195. package/esm2015/f-draggable/connections/create-connection/f-create-connection.event.js +8 -0
  196. package/esm2015/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.execution.js +43 -0
  197. package/esm2015/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.request.js +6 -0
  198. package/esm2015/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.validator.js +27 -0
  199. package/esm2015/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.execution.js +74 -0
  200. package/esm2015/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.request.js +7 -0
  201. package/esm2015/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.validator.js +35 -0
  202. package/esm2015/f-draggable/connections/reassign-connection/f-reassign-connection.event.js +9 -0
  203. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.js +50 -0
  204. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.request.js +6 -0
  205. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.validator.js +25 -0
  206. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.execution.js +64 -0
  207. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.request.js +6 -0
  208. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.validator.js +44 -0
  209. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.js +33 -0
  210. package/esm2015/f-draggable/domain/get-node-padding/get-node-padding.execution.js +33 -0
  211. package/esm2015/f-draggable/domain/get-node-padding/get-node-padding.request.js +7 -0
  212. package/esm2015/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.execution.js +29 -0
  213. package/esm2015/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.request.js +6 -0
  214. package/esm2015/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.js +48 -0
  215. package/esm2015/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.js +6 -0
  216. package/esm2015/f-draggable/domain/get-parent-nodes/get-parent-nodes.execution.js +36 -0
  217. package/esm2015/f-draggable/domain/get-parent-nodes/get-parent-nodes.request.js +6 -0
  218. package/esm2015/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.js +34 -0
  219. package/esm2015/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.request.js +7 -0
  220. package/esm2015/f-draggable/f-draggable-base.js +14 -0
  221. package/esm2015/f-draggable/f-draggable-data-context.js +26 -0
  222. package/esm2015/f-draggable/f-draggable.directive.js +165 -0
  223. package/esm2015/f-draggable/f-selection-change-event.js +7 -0
  224. package/esm2015/f-draggable/i-draggable-item.js +2 -0
  225. package/esm2015/f-draggable/i-f-drag-and-drop-plugin.js +3 -0
  226. package/esm2015/f-draggable/index.js +14 -0
  227. package/esm2015/f-draggable/node/connection-base-drag-handler.js +41 -0
  228. package/esm2015/f-draggable/node/connection-source.drag-handler.js +16 -0
  229. package/esm2015/f-draggable/node/connection-target.drag-handler.js +16 -0
  230. package/esm2015/f-draggable/node/connection.drag-handler.js +20 -0
  231. package/esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.js +85 -0
  232. package/esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.js +44 -0
  233. package/esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.request.js +7 -0
  234. package/esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/i-node-move-restrictions.js +2 -0
  235. package/esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.js +70 -0
  236. package/esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.request.js +8 -0
  237. package/esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.js +70 -0
  238. package/esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.request.js +8 -0
  239. package/esm2015/f-draggable/node/node-move-finalize/node-move-finalize.execution.js +54 -0
  240. package/esm2015/f-draggable/node/node-move-finalize/node-move-finalize.request.js +6 -0
  241. package/esm2015/f-draggable/node/node-move-finalize/node-move-finalize.validator.js +25 -0
  242. package/esm2015/f-draggable/node/node-move-preparation/node-move-preparation.execution.js +60 -0
  243. package/esm2015/f-draggable/node/node-move-preparation/node-move-preparation.request.js +6 -0
  244. package/esm2015/f-draggable/node/node-move-preparation/node-move-preparation.validator.js +41 -0
  245. package/esm2015/f-draggable/node/node-resize-by-child.drag-handler.js +13 -0
  246. package/esm2015/f-draggable/node/node.drag-handler.js +34 -0
  247. package/esm2015/f-draggable/node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.js +49 -0
  248. package/esm2015/f-draggable/node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.js +7 -0
  249. package/esm2015/f-draggable/node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.execution.js +49 -0
  250. package/esm2015/f-draggable/node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.request.js +7 -0
  251. package/esm2015/f-draggable/node-resize/calculate-changed-position/calculate-changed-position.execution.js +25 -0
  252. package/esm2015/f-draggable/node-resize/calculate-changed-position/calculate-changed-position.request.js +9 -0
  253. package/esm2015/f-draggable/node-resize/calculate-changed-size/calculate-changed-size.execution.js +34 -0
  254. package/esm2015/f-draggable/node-resize/calculate-changed-size/calculate-changed-size.request.js +8 -0
  255. package/esm2015/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.js +31 -0
  256. package/esm2015/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.request.js +7 -0
  257. package/esm2015/f-draggable/node-resize/get-node-resize-restrictions/i-node-resize-restrictions.js +2 -0
  258. package/esm2015/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.js +41 -0
  259. package/esm2015/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.js +7 -0
  260. package/esm2015/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.execution.js +27 -0
  261. package/esm2015/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.request.js +6 -0
  262. package/esm2015/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.validator.js +25 -0
  263. package/esm2015/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.execution.js +53 -0
  264. package/esm2015/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.request.js +6 -0
  265. package/esm2015/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.validator.js +41 -0
  266. package/esm2015/f-draggable/node-resize/node-resize.drag-handler.js +48 -0
  267. package/esm2015/f-draggable/single-select/single-select.execution.js +89 -0
  268. package/esm2015/f-draggable/single-select/single-select.request.js +6 -0
  269. package/esm2015/f-draggable/single-select/single-select.validator.js +27 -0
  270. package/esm2015/f-external-item/domain/external-item-finalize/external-item-finalize.execution.js +57 -0
  271. package/esm2015/f-external-item/domain/external-item-finalize/external-item-finalize.request.js +6 -0
  272. package/esm2015/f-external-item/domain/external-item-finalize/external-item-finalize.validator.js +25 -0
  273. package/esm2015/f-external-item/domain/external-item-preparation/external-item-preparation.execution.js +43 -0
  274. package/esm2015/f-external-item/domain/external-item-preparation/external-item-preparation.request.js +6 -0
  275. package/esm2015/f-external-item/domain/external-item-preparation/external-item-preparation.validator.js +29 -0
  276. package/esm2015/f-external-item/domain/external-item.drag-handler.js +36 -0
  277. package/esm2015/f-external-item/domain/f-create-node.event.js +7 -0
  278. package/esm2015/f-external-item/f-external-item-base.js +11 -0
  279. package/esm2015/f-external-item/f-external-item.directive.js +55 -0
  280. package/esm2015/f-external-item/f-external-item.service.js +28 -0
  281. package/esm2015/f-flow/f-flow-base.js +5 -0
  282. package/esm2015/f-flow/f-flow.component.js +124 -0
  283. package/esm2015/f-flow.module.js +89 -0
  284. package/esm2015/f-line-alignment/domain/line-element.js +22 -0
  285. package/esm2015/f-line-alignment/domain/line-service.js +35 -0
  286. package/esm2015/f-line-alignment/domain/nearest-coordinate.js +101 -0
  287. package/esm2015/f-line-alignment/f-line-alignment-base.js +11 -0
  288. package/esm2015/f-line-alignment/f-line-alignment.component.js +99 -0
  289. package/esm2015/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.execution.js +42 -0
  290. package/esm2015/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.request.js +9 -0
  291. package/esm2015/f-minimap/domain/check-rect-is-finite.js +8 -0
  292. package/esm2015/f-minimap/domain/f-minimap-data.js +9 -0
  293. package/esm2015/f-minimap/domain/f-minimap.drag-handler.js +37 -0
  294. package/esm2015/f-minimap/domain/index.js +8 -0
  295. package/esm2015/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.js +27 -0
  296. package/esm2015/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.request.js +6 -0
  297. package/esm2015/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.validator.js +25 -0
  298. package/esm2015/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.js +49 -0
  299. package/esm2015/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.request.js +7 -0
  300. package/esm2015/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.validator.js +28 -0
  301. package/esm2015/f-minimap/f-minimap-canvas.directive.js +66 -0
  302. package/esm2015/f-minimap/f-minimap-flow.directive.js +76 -0
  303. package/esm2015/f-minimap/f-minimap-view.directive.js +40 -0
  304. package/esm2015/f-minimap/f-minimap.component.js +76 -0
  305. package/esm2015/f-node/f-drag-handle/f-drag-handle.directive.js +24 -0
  306. package/esm2015/f-node/f-group.directive.js +145 -0
  307. package/esm2015/f-node/f-node-base.js +35 -0
  308. package/esm2015/f-node/f-node.directive.js +146 -0
  309. package/esm2015/f-node/f-resize-handle/f-resize-handle.directive.js +43 -0
  310. package/esm2015/f-node/f-rotate-handle/f-rotate-handle.directive.js +27 -0
  311. package/esm2015/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.js +27 -0
  312. package/esm2015/f-selection-area/domain/selection-area-finalize/selection-area-finalize.request.js +6 -0
  313. package/esm2015/f-selection-area/domain/selection-area-finalize/selection-area-finalize.validator.js +25 -0
  314. package/esm2015/f-selection-area/domain/selection-area-preparation/selection-area-preparation.execution.js +38 -0
  315. package/esm2015/f-selection-area/domain/selection-area-preparation/selection-area-preparation.request.js +7 -0
  316. package/esm2015/f-selection-area/domain/selection-area-preparation/selection-area-preparation.validator.js +31 -0
  317. package/esm2015/f-selection-area/domain/selection-area.drag-handle.js +48 -0
  318. package/esm2015/f-selection-area/f-selection-area-base.js +10 -0
  319. package/esm2015/f-selection-area/f-selection-area.component.js +57 -0
  320. package/esm2015/f-storage/f-components-store.js +52 -0
  321. package/esm2015/f-storage/f-transform-store.js +14 -0
  322. package/esm2015/f-zoom/f-zoom-base.js +99 -0
  323. package/esm2015/f-zoom/f-zoom.directive.js +59 -0
  324. package/esm2015/i-has-host-element.js +2 -0
  325. package/esm2015/mixins/change-position.js +15 -0
  326. package/esm2015/mixins/change-selection/change-selection.js +30 -0
  327. package/esm2015/mixins/change-selection/i-can-change-selection.js +2 -0
  328. package/esm2015/mixins/change-selection/index.js +3 -0
  329. package/esm2015/mixins/change-visibility/change-visibility.js +14 -0
  330. package/esm2015/mixins/change-visibility/i-can-change-visibility.js +2 -0
  331. package/esm2015/mixins/change-visibility/index.js +3 -0
  332. package/esm2015/mixins/change-zoom/change-zoom.js +25 -0
  333. package/esm2015/mixins/change-zoom/i-can-change-zoom.js +2 -0
  334. package/esm2015/mixins/change-zoom/index.js +3 -0
  335. package/esm2015/mixins/constructor.js +2 -0
  336. package/esm2015/mixins/fit-to-parent/fit-to-parent.js +27 -0
  337. package/esm2015/mixins/fit-to-parent/i-can-fit-to-parent.js +2 -0
  338. package/esm2015/mixins/fit-to-parent/index.js +3 -0
  339. package/esm2015/mixins/i-transformable.js +2 -0
  340. package/esm2015/mixins/index.js +9 -0
  341. package/esm2015/mixins/one-to-one-centering/i-can-one-to-one-centering.js +2 -0
  342. package/esm2015/mixins/one-to-one-centering/index.js +3 -0
  343. package/esm2015/mixins/one-to-one-centering/one-to-one-centering.js +24 -0
  344. package/esm2015/public-api.js +19 -0
  345. package/f-backgroud/domain/i-f-background-pattern.d.ts +1 -1
  346. package/f-backgroud/f-background-base.d.ts +3 -2
  347. package/f-backgroud/f-background.component.d.ts +2 -2
  348. package/f-backgroud/f-circle-pattern/f-circle-pattern.component.d.ts +2 -2
  349. package/f-backgroud/f-rect-pattern/f-rect-pattern.component.d.ts +2 -2
  350. package/f-canvas/domain/f-canvas-change.event.d.ts +1 -1
  351. package/f-canvas/f-canvas-base.d.ts +5 -3
  352. package/f-canvas/f-canvas.component.d.ts +5 -4
  353. package/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.d.ts +1 -1
  354. package/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points.handler.d.ts +2 -1
  355. package/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.d.ts +1 -1
  356. package/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.d.ts +2 -1
  357. package/f-connection/common/f-connection-base.d.ts +8 -5
  358. package/f-connection/common/f-connection-text/f-connection-text-path.directive.d.ts +2 -2
  359. package/f-connection/common/f-connection-text/f-connection-text.component.d.ts +2 -2
  360. package/f-connection/common/f-connection-text/i-connection-text.d.ts +2 -1
  361. package/f-connection/common/f-drag-handle/f-connection-drag-handle.component.d.ts +3 -2
  362. package/f-connection/common/f-gradient/f-connection-gradient.component.d.ts +2 -2
  363. package/f-connection/common/f-gradient/i-connection-gradient.d.ts +2 -1
  364. package/f-connection/common/f-path/f-connection-path.component.d.ts +1 -1
  365. package/f-connection/common/f-path/i-connection-path.d.ts +1 -1
  366. package/f-connection/common/f-selection/f-connection-selection.component.d.ts +2 -2
  367. package/f-connection/common/index.d.ts +0 -1
  368. package/f-connection/f-connection/f-connection.component.d.ts +1 -1
  369. package/f-connection/f-connection-builder/i-f-connection-builder-request.d.ts +1 -1
  370. package/f-connection/f-connection-builder/i-f-connection-builder-response.d.ts +1 -1
  371. package/f-connection/f-connection-builder/i-f-connection-builder.d.ts +1 -1
  372. package/f-connection/f-connection-center/f-connection-center.directive.d.ts +1 -1
  373. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +1 -1
  374. package/f-connection/f-marker/f-marker-base.d.ts +2 -2
  375. package/f-connection/f-marker/f-marker.directive.d.ts +1 -1
  376. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +53 -0
  377. package/f-connection/f-snap-connection/index.d.ts +1 -0
  378. package/f-connection/index.d.ts +1 -0
  379. package/f-connectors/domain/calculate-connector-connectable-side/calculate-connector-connectable-side.handler.d.ts +1 -1
  380. package/f-connectors/f-connector-base.d.ts +1 -1
  381. package/f-connectors/f-node-input/f-node-input-base.d.ts +1 -1
  382. package/f-connectors/f-node-input/f-node-input.directive.d.ts +1 -1
  383. package/f-connectors/f-node-outlet/f-node-outlet-base.d.ts +1 -1
  384. package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +1 -1
  385. package/f-connectors/f-node-output/f-node-output-base.d.ts +1 -1
  386. package/f-connectors/f-node-output/f-node-output.directive.d.ts +1 -1
  387. package/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.d.ts +1 -1
  388. package/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.request.d.ts +1 -1
  389. package/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.validator.d.ts +1 -1
  390. package/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.execution.d.ts +1 -1
  391. package/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.request.d.ts +1 -1
  392. package/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.validator.d.ts +1 -2
  393. package/f-draggable/canvas/canvas.drag-handler.d.ts +1 -1
  394. package/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.d.ts +3 -3
  395. package/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.request.d.ts +1 -1
  396. package/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.validator.d.ts +1 -1
  397. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.execution.d.ts +3 -3
  398. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.request.d.ts +1 -1
  399. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.execution.d.ts +3 -3
  400. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.request.d.ts +1 -1
  401. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.execution.d.ts +3 -3
  402. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.request.d.ts +1 -1
  403. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.validator.d.ts +1 -1
  404. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.execution.d.ts +3 -3
  405. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.request.d.ts +1 -1
  406. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.validator.d.ts +1 -1
  407. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +3 -3
  408. package/f-draggable/connections/create-connection/f-create-connection.event.d.ts +1 -1
  409. package/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.execution.d.ts +1 -1
  410. package/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.validator.d.ts +1 -1
  411. package/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.execution.d.ts +1 -1
  412. package/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.request.d.ts +1 -1
  413. package/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.validator.d.ts +1 -1
  414. package/f-draggable/connections/providers.d.ts +1 -1
  415. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.d.ts +2 -2
  416. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.request.d.ts +1 -1
  417. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.validator.d.ts +1 -1
  418. package/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.execution.d.ts +2 -2
  419. package/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.request.d.ts +1 -1
  420. package/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.validator.d.ts +1 -1
  421. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +3 -3
  422. package/f-draggable/domain/get-node-padding/get-node-padding.execution.d.ts +1 -1
  423. package/f-draggable/domain/get-node-padding/get-node-padding.request.d.ts +1 -1
  424. package/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.execution.d.ts +2 -2
  425. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.d.ts +3 -3
  426. package/f-draggable/domain/get-parent-nodes/get-parent-nodes.execution.d.ts +1 -1
  427. package/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.d.ts +2 -2
  428. package/f-draggable/f-draggable-base.d.ts +4 -40
  429. package/f-draggable/f-draggable-data-context.d.ts +3 -3
  430. package/f-draggable/f-draggable.directive.d.ts +4 -5
  431. package/f-draggable/i-draggable-item.d.ts +1 -1
  432. package/f-draggable/i-f-drag-and-drop-plugin.d.ts +1 -1
  433. package/f-draggable/index.d.ts +0 -1
  434. package/f-draggable/node/connection-base-drag-handler.d.ts +5 -6
  435. package/f-draggable/node/connection-source.drag-handler.d.ts +3 -3
  436. package/f-draggable/node/connection-target.drag-handler.d.ts +3 -3
  437. package/f-draggable/node/connection.drag-handler.d.ts +3 -3
  438. package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +2 -2
  439. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.d.ts +2 -2
  440. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/i-node-move-restrictions.d.ts +1 -1
  441. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.d.ts +2 -2
  442. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.d.ts +2 -2
  443. package/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
  444. package/f-draggable/node/node-move-finalize/node-move-finalize.execution.d.ts +2 -2
  445. package/f-draggable/node/node-move-finalize/node-move-finalize.request.d.ts +1 -1
  446. package/f-draggable/node/node-move-finalize/node-move-finalize.validator.d.ts +1 -1
  447. package/f-draggable/node/node-move-preparation/node-move-preparation.execution.d.ts +2 -2
  448. package/f-draggable/node/node-move-preparation/node-move-preparation.request.d.ts +1 -1
  449. package/f-draggable/node/node-move-preparation/node-move-preparation.validator.d.ts +1 -1
  450. package/f-draggable/node/node-resize-by-child.drag-handler.d.ts +1 -1
  451. package/f-draggable/node/node.drag-handler.d.ts +1 -1
  452. package/f-draggable/node/providers.d.ts +1 -1
  453. package/f-draggable/node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.d.ts +1 -1
  454. package/f-draggable/node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.d.ts +1 -1
  455. package/f-draggable/node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.execution.d.ts +1 -1
  456. package/f-draggable/node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.request.d.ts +1 -1
  457. package/f-draggable/node-resize/calculate-changed-position/calculate-changed-position.execution.d.ts +2 -2
  458. package/f-draggable/node-resize/calculate-changed-position/calculate-changed-position.request.d.ts +1 -1
  459. package/f-draggable/node-resize/calculate-changed-size/calculate-changed-size.execution.d.ts +2 -2
  460. package/f-draggable/node-resize/calculate-changed-size/calculate-changed-size.request.d.ts +1 -1
  461. package/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.d.ts +2 -2
  462. package/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.request.d.ts +1 -1
  463. package/f-draggable/node-resize/get-node-resize-restrictions/i-node-resize-restrictions.d.ts +1 -1
  464. package/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.d.ts +3 -3
  465. package/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.d.ts +1 -1
  466. package/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.execution.d.ts +1 -1
  467. package/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.request.d.ts +1 -1
  468. package/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.validator.d.ts +1 -1
  469. package/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.execution.d.ts +2 -2
  470. package/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.request.d.ts +1 -1
  471. package/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.validator.d.ts +1 -1
  472. package/f-draggable/node-resize/node-resize.drag-handler.d.ts +3 -3
  473. package/f-draggable/providers.d.ts +1 -1
  474. package/f-draggable/single-select/single-select.execution.d.ts +2 -2
  475. package/f-draggable/single-select/single-select.request.d.ts +1 -1
  476. package/f-draggable/single-select/single-select.validator.d.ts +1 -1
  477. package/f-external-item/domain/external-item-finalize/external-item-finalize.execution.d.ts +2 -2
  478. package/f-external-item/domain/external-item-finalize/external-item-finalize.request.d.ts +1 -1
  479. package/f-external-item/domain/external-item-finalize/external-item-finalize.validator.d.ts +1 -1
  480. package/f-external-item/domain/external-item-preparation/external-item-preparation.execution.d.ts +1 -1
  481. package/f-external-item/domain/external-item-preparation/external-item-preparation.request.d.ts +1 -1
  482. package/f-external-item/domain/external-item-preparation/external-item-preparation.validator.d.ts +1 -1
  483. package/f-external-item/domain/external-item.drag-handler.d.ts +1 -1
  484. package/f-external-item/domain/f-create-node.event.d.ts +1 -1
  485. package/f-external-item/f-external-item-base.d.ts +2 -2
  486. package/f-external-item/f-external-item.directive.d.ts +1 -1
  487. package/f-flow/f-flow-base.d.ts +1 -1
  488. package/f-flow/f-flow.component.d.ts +6 -4
  489. package/f-line-alignment/domain/line-service.d.ts +1 -1
  490. package/f-line-alignment/domain/nearest-coordinate.d.ts +1 -1
  491. package/f-line-alignment/f-line-alignment-base.d.ts +3 -2
  492. package/f-line-alignment/f-line-alignment.component.d.ts +4 -4
  493. package/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.execution.d.ts +2 -2
  494. package/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.request.d.ts +1 -1
  495. package/f-minimap/domain/check-rect-is-finite.d.ts +2 -0
  496. package/f-minimap/domain/f-minimap-data.d.ts +1 -1
  497. package/f-minimap/domain/f-minimap.drag-handler.d.ts +3 -3
  498. package/f-minimap/domain/index.d.ts +1 -0
  499. package/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.d.ts +1 -1
  500. package/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.request.d.ts +1 -1
  501. package/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.validator.d.ts +1 -1
  502. package/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.d.ts +2 -2
  503. package/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.request.d.ts +1 -1
  504. package/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.validator.d.ts +1 -1
  505. package/f-minimap/domain/providers.d.ts +1 -1
  506. package/f-minimap/f-minimap-canvas.directive.d.ts +1 -1
  507. package/f-minimap/f-minimap-flow.directive.d.ts +3 -3
  508. package/f-minimap/f-minimap-view.directive.d.ts +1 -1
  509. package/f-minimap/f-minimap.component.d.ts +4 -4
  510. package/f-node/f-drag-handle/f-drag-handle.directive.d.ts +2 -2
  511. package/f-node/f-group.directive.d.ts +5 -6
  512. package/f-node/f-node-base.d.ts +10 -7
  513. package/f-node/f-node.directive.d.ts +5 -6
  514. package/f-node/f-resize-handle/f-resize-handle.directive.d.ts +2 -2
  515. package/f-node/f-rotate-handle/f-rotate-handle.directive.d.ts +1 -1
  516. package/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.d.ts +1 -1
  517. package/f-selection-area/domain/selection-area-finalize/selection-area-finalize.request.d.ts +1 -1
  518. package/f-selection-area/domain/selection-area-finalize/selection-area-finalize.validator.d.ts +1 -1
  519. package/f-selection-area/domain/selection-area-preparation/selection-area-preparation.execution.d.ts +2 -2
  520. package/f-selection-area/domain/selection-area-preparation/selection-area-preparation.request.d.ts +1 -1
  521. package/f-selection-area/domain/selection-area-preparation/selection-area-preparation.validator.d.ts +1 -1
  522. package/f-selection-area/domain/selection-area.drag-handle.d.ts +3 -3
  523. package/f-selection-area/f-selection-area-base.d.ts +3 -2
  524. package/f-selection-area/f-selection-area.component.d.ts +5 -4
  525. package/f-storage/f-components-store.d.ts +1 -1
  526. package/f-zoom/f-zoom-base.d.ts +1 -1
  527. package/f-zoom/f-zoom.directive.d.ts +1 -1
  528. package/fesm2015/foblex-flow.js +7766 -0
  529. package/fesm2015/foblex-flow.js.map +1 -0
  530. package/i-has-host-element.d.ts +3 -0
  531. package/mixins/change-position.d.ts +10 -0
  532. package/mixins/change-selection/change-selection.d.ts +7 -0
  533. package/mixins/change-selection/i-can-change-selection.d.ts +10 -0
  534. package/mixins/change-selection/index.d.ts +2 -0
  535. package/mixins/change-visibility/change-visibility.d.ts +6 -0
  536. package/mixins/change-visibility/i-can-change-visibility.d.ts +5 -0
  537. package/mixins/change-visibility/index.d.ts +2 -0
  538. package/mixins/change-zoom/change-zoom.d.ts +6 -0
  539. package/mixins/change-zoom/i-can-change-zoom.d.ts +6 -0
  540. package/mixins/change-zoom/index.d.ts +2 -0
  541. package/mixins/constructor.d.ts +2 -0
  542. package/mixins/fit-to-parent/fit-to-parent.d.ts +6 -0
  543. package/mixins/fit-to-parent/i-can-fit-to-parent.d.ts +4 -0
  544. package/mixins/fit-to-parent/index.d.ts +2 -0
  545. package/mixins/i-transformable.d.ts +4 -0
  546. package/mixins/index.d.ts +8 -0
  547. package/mixins/one-to-one-centering/i-can-one-to-one-centering.d.ts +4 -0
  548. package/mixins/one-to-one-centering/index.d.ts +2 -0
  549. package/mixins/one-to-one-centering/one-to-one-centering.d.ts +6 -0
  550. package/package.json +12 -17
  551. package/public-api.d.ts +2 -1
  552. package/domain/cast-to-enum.d.ts +0 -1
  553. package/domain/deep-clone-node.d.ts +0 -1
  554. package/domain/get-value-from-data-attr.d.ts +0 -1
  555. package/domain/intersections/e-f-connector-shape.d.ts +0 -3
  556. package/domain/intersections/f-connector-shape.extensions.d.ts +0 -11
  557. package/domain/intersections/i-connector-shape.d.ts +0 -6
  558. package/domain/intersections/index.d.ts +0 -5
  559. package/domain/intersections/intersection-finder.d.ts +0 -67
  560. package/domain/intersections/rounded-rect/i-rounded-rect.d.ts +0 -8
  561. package/domain/intersections/rounded-rect/index.d.ts +0 -2
  562. package/domain/intersections/rounded-rect/rounded-rect.d.ts +0 -23
  563. package/domain/is-element-with-class.d.ts +0 -1
  564. package/esm2022/domain/cast-to-enum.mjs +0 -12
  565. package/esm2022/domain/clear-selection/clear-selection.execution.mjs +0 -27
  566. package/esm2022/domain/create-connection-markers/create-connection-markers-request.mjs +0 -7
  567. package/esm2022/domain/create-connection-markers/create-connection-markers.execution.mjs +0 -62
  568. package/esm2022/domain/deep-clone-node.mjs +0 -47
  569. package/esm2022/domain/emit-transform-changes/emit-transform-changes.execution.mjs +0 -25
  570. package/esm2022/domain/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +0 -60
  571. package/esm2022/domain/get-can-be-selected-items/i-selectable-with-rect.mjs +0 -2
  572. package/esm2022/domain/get-connection-line/get-connection-line.execution.mjs +0 -66
  573. package/esm2022/domain/get-connection-line/get-connection-line.request.mjs +0 -15
  574. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.mjs +0 -36
  575. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.request.mjs +0 -7
  576. package/esm2022/domain/get-element-rect-in-flow/get-element-rect-in-flow-request.mjs +0 -7
  577. package/esm2022/domain/get-element-rect-in-flow/get-element-rect-in-flow.execution.mjs +0 -45
  578. package/esm2022/domain/get-input-rect-in-flow/get-input-rect-in-flow-request.mjs +0 -7
  579. package/esm2022/domain/get-input-rect-in-flow/get-input-rect-in-flow-response.mjs +0 -9
  580. package/esm2022/domain/get-input-rect-in-flow/get-input-rect-in-flow.execution.mjs +0 -35
  581. package/esm2022/domain/get-nodes-rect/get-nodes-rect.execution.mjs +0 -32
  582. package/esm2022/domain/get-output-rect-in-flow/get-output-rect-in-flow-request.mjs +0 -7
  583. package/esm2022/domain/get-output-rect-in-flow/get-output-rect-in-flow-response.mjs +0 -9
  584. package/esm2022/domain/get-output-rect-in-flow/get-output-rect-in-flow.execution.mjs +0 -39
  585. package/esm2022/domain/get-position-in-flow/get-position-in-flow-request.mjs +0 -7
  586. package/esm2022/domain/get-position-in-flow/get-position-in-flow.execution.mjs +0 -33
  587. package/esm2022/domain/get-scaled-node-rects-with-flow-position/get-scaled-node-rects-with-flow-position.execution.mjs +0 -35
  588. package/esm2022/domain/get-selection/get-selection.execution.mjs +0 -36
  589. package/esm2022/domain/get-value-from-data-attr.mjs +0 -7
  590. package/esm2022/domain/index.mjs +0 -29
  591. package/esm2022/domain/intersections/e-f-connector-shape.mjs +0 -5
  592. package/esm2022/domain/intersections/f-connector-shape.extensions.mjs +0 -46
  593. package/esm2022/domain/intersections/i-connector-shape.mjs +0 -2
  594. package/esm2022/domain/intersections/index.mjs +0 -6
  595. package/esm2022/domain/intersections/intersection-finder.mjs +0 -156
  596. package/esm2022/domain/intersections/rounded-rect/i-rounded-rect.mjs +0 -2
  597. package/esm2022/domain/intersections/rounded-rect/index.mjs +0 -3
  598. package/esm2022/domain/intersections/rounded-rect/rounded-rect.mjs +0 -54
  599. package/esm2022/domain/is-connection-under-node/is-connection-under-node.execution.mjs +0 -79
  600. package/esm2022/domain/is-element-with-class.mjs +0 -8
  601. package/esm2022/domain/providers.mjs +0 -48
  602. package/esm2022/domain/redraw-connections/redraw-connections.execution.mjs +0 -62
  603. package/esm2022/domain/select/select.execution.mjs +0 -46
  604. package/esm2022/domain/select/select.request.mjs +0 -9
  605. package/esm2022/domain/select-all/select-all.execution.mjs +0 -40
  606. package/esm2022/domain/select-and-update-node-layer/select-and-update-node-layer.execution.mjs +0 -37
  607. package/esm2022/domain/select-and-update-node-layer/select-and-update-node-layer.request.mjs +0 -7
  608. package/esm2022/domain/sort-item-layers/sort-item-layers.execution.mjs +0 -32
  609. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.mjs +0 -61
  610. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.request.mjs +0 -8
  611. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.mjs +0 -62
  612. package/esm2022/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.mjs +0 -28
  613. package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.execution.mjs +0 -30
  614. package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.request.mjs +0 -14
  615. package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.execution.mjs +0 -96
  616. package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.request.mjs +0 -9
  617. package/esm2022/f-backgroud/domain/i-f-background-pattern.mjs +0 -3
  618. package/esm2022/f-backgroud/f-background-base.mjs +0 -11
  619. package/esm2022/f-backgroud/f-background.component.mjs +0 -66
  620. package/esm2022/f-backgroud/f-circle-pattern/f-circle-pattern.component.mjs +0 -107
  621. package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +0 -126
  622. package/esm2022/f-canvas/domain/f-canvas-change.event.mjs +0 -9
  623. package/esm2022/f-canvas/f-canvas-base.mjs +0 -28
  624. package/esm2022/f-canvas/f-canvas.component.mjs +0 -107
  625. package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.mjs +0 -9
  626. package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points.handler.mjs +0 -12
  627. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.mjs +0 -7
  628. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.mjs +0 -35
  629. package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +0 -37
  630. package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +0 -142
  631. package/esm2022/f-connection/common/f-connection-base.mjs +0 -62
  632. package/esm2022/f-connection/common/f-connection-identifiers.mjs +0 -27
  633. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +0 -73
  634. package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +0 -69
  635. package/esm2022/f-connection/common/f-connection-text/i-connection-text.mjs +0 -3
  636. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle.component.mjs +0 -39
  637. package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +0 -65
  638. package/esm2022/f-connection/common/f-gradient/i-connection-gradient.mjs +0 -3
  639. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +0 -61
  640. package/esm2022/f-connection/common/f-path/get-path-marker-id.mjs +0 -19
  641. package/esm2022/f-connection/common/f-path/i-connection-path.mjs +0 -3
  642. package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +0 -39
  643. package/esm2022/f-connection/common/index.mjs +0 -15
  644. package/esm2022/f-connection/common/mixins/change-connection-selection.mixin.mjs +0 -25
  645. package/esm2022/f-connection/common/mixins/change-connection-visibility.mixin.mjs +0 -14
  646. package/esm2022/f-connection/common/mixins/index.mjs +0 -3
  647. package/esm2022/f-connection/f-connection/f-connection.component.mjs +0 -187
  648. package/esm2022/f-connection/f-connection-builder/f-connection-factory.mjs +0 -34
  649. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-request.mjs +0 -2
  650. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-response.mjs +0 -2
  651. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder.mjs +0 -2
  652. package/esm2022/f-connection/f-connection-center/f-connection-center.directive.mjs +0 -13
  653. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +0 -155
  654. package/esm2022/f-connection/f-marker/f-marker-base.mjs +0 -11
  655. package/esm2022/f-connection/f-marker/f-marker.directive.mjs +0 -60
  656. package/esm2022/f-connection/index.mjs +0 -8
  657. package/esm2022/f-connectors/domain/calculate-connector-connectable-side/calculate-connector-connectable-side-request.mjs +0 -9
  658. package/esm2022/f-connectors/domain/calculate-connector-connectable-side/calculate-connector-connectable-side.handler.mjs +0 -38
  659. package/esm2022/f-connectors/f-connector-base.mjs +0 -15
  660. package/esm2022/f-connectors/f-node-input/f-node-input-base.mjs +0 -16
  661. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +0 -91
  662. package/esm2022/f-connectors/f-node-outlet/f-node-outlet-base.mjs +0 -20
  663. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +0 -74
  664. package/esm2022/f-connectors/f-node-output/f-node-output-base.mjs +0 -16
  665. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +0 -98
  666. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.mjs +0 -25
  667. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.request.mjs +0 -7
  668. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.validator.mjs +0 -26
  669. package/esm2022/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.execution.mjs +0 -38
  670. package/esm2022/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.request.mjs +0 -7
  671. package/esm2022/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.validator.mjs +0 -50
  672. package/esm2022/f-draggable/canvas/canvas.drag-handler.mjs +0 -19
  673. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.mjs +0 -58
  674. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.request.mjs +0 -7
  675. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.validator.mjs +0 -26
  676. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.execution.mjs +0 -48
  677. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.request.mjs +0 -9
  678. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.execution.mjs +0 -55
  679. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.request.mjs +0 -7
  680. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.execution.mjs +0 -41
  681. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.request.mjs +0 -7
  682. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.validator.mjs +0 -35
  683. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.execution.mjs +0 -45
  684. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.request.mjs +0 -7
  685. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.validator.mjs +0 -34
  686. package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +0 -36
  687. package/esm2022/f-draggable/connections/create-connection/f-create-connection.event.mjs +0 -11
  688. package/esm2022/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.execution.mjs +0 -44
  689. package/esm2022/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.request.mjs +0 -7
  690. package/esm2022/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/get-can-be-connected-output-by-outlet.validator.mjs +0 -28
  691. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.execution.mjs +0 -76
  692. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.request.mjs +0 -9
  693. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.validator.mjs +0 -36
  694. package/esm2022/f-draggable/connections/reassign-connection/f-reassign-connection.event.mjs +0 -13
  695. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.mjs +0 -53
  696. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.request.mjs +0 -7
  697. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.validator.mjs +0 -26
  698. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.execution.mjs +0 -68
  699. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.request.mjs +0 -7
  700. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.validator.mjs +0 -47
  701. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.mjs +0 -35
  702. package/esm2022/f-draggable/domain/get-node-padding/get-node-padding.execution.mjs +0 -34
  703. package/esm2022/f-draggable/domain/get-node-padding/get-node-padding.request.mjs +0 -9
  704. package/esm2022/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.execution.mjs +0 -30
  705. package/esm2022/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.request.mjs +0 -7
  706. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +0 -50
  707. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.mjs +0 -7
  708. package/esm2022/f-draggable/domain/get-parent-nodes/get-parent-nodes.execution.mjs +0 -37
  709. package/esm2022/f-draggable/domain/get-parent-nodes/get-parent-nodes.request.mjs +0 -7
  710. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.mjs +0 -35
  711. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.request.mjs +0 -9
  712. package/esm2022/f-draggable/f-draggable-base.mjs +0 -169
  713. package/esm2022/f-draggable/f-draggable-data-context.mjs +0 -25
  714. package/esm2022/f-draggable/f-draggable.directive.mjs +0 -171
  715. package/esm2022/f-draggable/f-selection-change-event.mjs +0 -9
  716. package/esm2022/f-draggable/i-can-run-outside-angular.mjs +0 -2
  717. package/esm2022/f-draggable/i-draggable-item.mjs +0 -2
  718. package/esm2022/f-draggable/i-f-drag-and-drop-plugin.mjs +0 -3
  719. package/esm2022/f-draggable/index.mjs +0 -15
  720. package/esm2022/f-draggable/node/connection-base-drag-handler.mjs +0 -42
  721. package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +0 -18
  722. package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +0 -18
  723. package/esm2022/f-draggable/node/connection.drag-handler.mjs +0 -22
  724. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +0 -87
  725. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.mjs +0 -45
  726. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.request.mjs +0 -9
  727. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/i-node-move-restrictions.mjs +0 -2
  728. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.mjs +0 -72
  729. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.request.mjs +0 -11
  730. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.mjs +0 -72
  731. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.request.mjs +0 -11
  732. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +0 -54
  733. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.request.mjs +0 -7
  734. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.validator.mjs +0 -26
  735. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.execution.mjs +0 -62
  736. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.request.mjs +0 -7
  737. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.validator.mjs +0 -43
  738. package/esm2022/f-draggable/node/node-resize-by-child.drag-handler.mjs +0 -13
  739. package/esm2022/f-draggable/node/node.drag-handler.mjs +0 -37
  740. package/esm2022/f-draggable/node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.mjs +0 -49
  741. package/esm2022/f-draggable/node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.mjs +0 -9
  742. package/esm2022/f-draggable/node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.execution.mjs +0 -49
  743. package/esm2022/f-draggable/node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.request.mjs +0 -9
  744. package/esm2022/f-draggable/node-resize/calculate-changed-position/calculate-changed-position.execution.mjs +0 -25
  745. package/esm2022/f-draggable/node-resize/calculate-changed-position/calculate-changed-position.request.mjs +0 -13
  746. package/esm2022/f-draggable/node-resize/calculate-changed-size/calculate-changed-size.execution.mjs +0 -34
  747. package/esm2022/f-draggable/node-resize/calculate-changed-size/calculate-changed-size.request.mjs +0 -11
  748. package/esm2022/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.mjs +0 -32
  749. package/esm2022/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.request.mjs +0 -9
  750. package/esm2022/f-draggable/node-resize/get-node-resize-restrictions/i-node-resize-restrictions.mjs +0 -2
  751. package/esm2022/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +0 -42
  752. package/esm2022/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.mjs +0 -9
  753. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.execution.mjs +0 -27
  754. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.request.mjs +0 -7
  755. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.validator.mjs +0 -26
  756. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.execution.mjs +0 -55
  757. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.request.mjs +0 -7
  758. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.validator.mjs +0 -43
  759. package/esm2022/f-draggable/node-resize/node-resize.drag-handler.mjs +0 -53
  760. package/esm2022/f-draggable/single-select/single-select.execution.mjs +0 -93
  761. package/esm2022/f-draggable/single-select/single-select.request.mjs +0 -7
  762. package/esm2022/f-draggable/single-select/single-select.validator.mjs +0 -29
  763. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.execution.mjs +0 -61
  764. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.request.mjs +0 -7
  765. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.validator.mjs +0 -26
  766. package/esm2022/f-external-item/domain/external-item-preparation/external-item-preparation.execution.mjs +0 -47
  767. package/esm2022/f-external-item/domain/external-item-preparation/external-item-preparation.request.mjs +0 -7
  768. package/esm2022/f-external-item/domain/external-item-preparation/external-item-preparation.validator.mjs +0 -30
  769. package/esm2022/f-external-item/domain/external-item.drag-handler.mjs +0 -39
  770. package/esm2022/f-external-item/domain/f-create-node.event.mjs +0 -9
  771. package/esm2022/f-external-item/f-external-item-base.mjs +0 -11
  772. package/esm2022/f-external-item/f-external-item.directive.mjs +0 -58
  773. package/esm2022/f-external-item/f-external-item.service.mjs +0 -26
  774. package/esm2022/f-flow/f-flow-base.mjs +0 -5
  775. package/esm2022/f-flow/f-flow.component.mjs +0 -118
  776. package/esm2022/f-flow.module.mjs +0 -87
  777. package/esm2022/f-line-alignment/domain/line-element.mjs +0 -24
  778. package/esm2022/f-line-alignment/domain/line-service.mjs +0 -38
  779. package/esm2022/f-line-alignment/domain/nearest-coordinate.mjs +0 -104
  780. package/esm2022/f-line-alignment/f-line-alignment-base.mjs +0 -11
  781. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +0 -97
  782. package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.execution.mjs +0 -43
  783. package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.request.mjs +0 -13
  784. package/esm2022/f-minimap/domain/f-minimap-data.mjs +0 -12
  785. package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +0 -41
  786. package/esm2022/f-minimap/domain/index.mjs +0 -7
  787. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.mjs +0 -27
  788. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.request.mjs +0 -7
  789. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.validator.mjs +0 -26
  790. package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.mjs +0 -52
  791. package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.request.mjs +0 -9
  792. package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.validator.mjs +0 -30
  793. package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +0 -67
  794. package/esm2022/f-minimap/f-minimap-flow.directive.mjs +0 -79
  795. package/esm2022/f-minimap/f-minimap-view.directive.mjs +0 -40
  796. package/esm2022/f-minimap/f-minimap.component.mjs +0 -72
  797. package/esm2022/f-node/f-drag-handle/f-drag-handle.directive.mjs +0 -25
  798. package/esm2022/f-node/f-group.directive.mjs +0 -153
  799. package/esm2022/f-node/f-node-base.mjs +0 -37
  800. package/esm2022/f-node/f-node.directive.mjs +0 -154
  801. package/esm2022/f-node/f-resize-handle/f-resize-handle.directive.mjs +0 -44
  802. package/esm2022/f-node/f-rotate-handle/f-rotate-handle.directive.mjs +0 -28
  803. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.mjs +0 -27
  804. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.request.mjs +0 -7
  805. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.validator.mjs +0 -26
  806. package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.execution.mjs +0 -41
  807. package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.request.mjs +0 -9
  808. package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.validator.mjs +0 -32
  809. package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +0 -52
  810. package/esm2022/f-selection-area/f-selection-area-base.mjs +0 -10
  811. package/esm2022/f-selection-area/f-selection-area.component.mjs +0 -53
  812. package/esm2022/f-storage/f-components-store.mjs +0 -53
  813. package/esm2022/f-storage/f-transform-store.mjs +0 -12
  814. package/esm2022/f-zoom/f-zoom-base.mjs +0 -97
  815. package/esm2022/f-zoom/f-zoom.directive.mjs +0 -59
  816. package/esm2022/infrastructure/f-mediator/f-execution-register.mjs +0 -7
  817. package/esm2022/infrastructure/f-mediator/f-flow-mediator.mjs +0 -30
  818. package/esm2022/infrastructure/f-mediator/f-validator-register.mjs +0 -7
  819. package/esm2022/infrastructure/f-mediator/index.mjs +0 -4
  820. package/esm2022/infrastructure/index.mjs +0 -3
  821. package/esm2022/infrastructure/pipeline/i-execution.mjs +0 -2
  822. package/esm2022/infrastructure/pipeline/i-validator.mjs +0 -2
  823. package/esm2022/infrastructure/pipeline/index.mjs +0 -4
  824. package/esm2022/infrastructure/pipeline/pipeline.mjs +0 -21
  825. package/esm2022/public-api.mjs +0 -18
  826. package/f-connection/common/mixins/change-connection-selection.mixin.d.ts +0 -13
  827. package/f-connection/common/mixins/change-connection-visibility.mixin.d.ts +0 -9
  828. package/f-connection/common/mixins/index.d.ts +0 -2
  829. package/f-draggable/i-can-run-outside-angular.d.ts +0 -3
  830. package/fesm2022/foblex-flow.mjs +0 -8163
  831. package/fesm2022/foblex-flow.mjs.map +0 -1
  832. package/infrastructure/f-mediator/f-execution-register.d.ts +0 -5
  833. package/infrastructure/f-mediator/f-flow-mediator.d.ts +0 -12
  834. package/infrastructure/f-mediator/f-validator-register.d.ts +0 -5
  835. package/infrastructure/f-mediator/index.d.ts +0 -3
  836. package/infrastructure/index.d.ts +0 -2
  837. package/infrastructure/pipeline/i-execution.d.ts +0 -3
  838. package/infrastructure/pipeline/i-validator.d.ts +0 -3
  839. package/infrastructure/pipeline/index.d.ts +0 -3
  840. package/infrastructure/pipeline/pipeline.d.ts +0 -11
  841. /package/{esm2022/domain/clear-selection/clear-selection.request.mjs → esm2015/domain/clear-selection/clear-selection.request.js} +0 -0
  842. /package/{esm2022/domain/clear-selection/index.mjs → esm2015/domain/clear-selection/index.js} +0 -0
  843. /package/{esm2022/domain/create-connection-markers/index.mjs → esm2015/domain/create-connection-markers/index.js} +0 -0
  844. /package/{esm2022/domain/create-dom-element.mjs → esm2015/domain/create-dom-element.js} +0 -0
  845. /package/{esm2022/domain/emit-transform-changes/emit-transform-changes.request.mjs → esm2015/domain/emit-transform-changes/emit-transform-changes.request.js} +0 -0
  846. /package/{esm2022/domain/emit-transform-changes/index.mjs → esm2015/domain/emit-transform-changes/index.js} +0 -0
  847. /package/{esm2022/domain/get-can-be-selected-items/get-can-be-selected-items-request.mjs → esm2015/domain/get-can-be-selected-items/get-can-be-selected-items-request.js} +0 -0
  848. /package/{esm2022/domain/get-can-be-selected-items/index.mjs → esm2015/domain/get-can-be-selected-items/index.js} +0 -0
  849. /package/{esm2022/domain/get-connection-line/index.mjs → esm2015/domain/get-connection-line/index.js} +0 -0
  850. /package/{esm2022/domain/get-deep-children-nodes-and-groups/index.mjs → esm2015/domain/get-deep-children-nodes-and-groups/index.js} +0 -0
  851. /package/{esm2022/domain/get-element-rect-in-flow/index.mjs → esm2015/domain/get-element-rect-in-flow/index.js} +0 -0
  852. /package/{esm2022/domain/get-input-rect-in-flow/index.mjs → esm2015/domain/get-input-rect-in-flow/index.js} +0 -0
  853. /package/{esm2022/domain/get-nodes-rect/get-nodes-rect.request.mjs → esm2015/domain/get-nodes-rect/get-nodes-rect.request.js} +0 -0
  854. /package/{esm2022/domain/get-nodes-rect/index.mjs → esm2015/domain/get-nodes-rect/index.js} +0 -0
  855. /package/{esm2022/domain/get-output-rect-in-flow/index.mjs → esm2015/domain/get-output-rect-in-flow/index.js} +0 -0
  856. /package/{esm2022/domain/get-position-in-flow/index.mjs → esm2015/domain/get-position-in-flow/index.js} +0 -0
  857. /package/{esm2022/domain/get-scaled-node-rects-with-flow-position/get-scaled-node-rects-with-flow-position.request.mjs → esm2015/domain/get-scaled-node-rects-with-flow-position/get-scaled-node-rects-with-flow-position.request.js} +0 -0
  858. /package/{esm2022/domain/get-scaled-node-rects-with-flow-position/index.mjs → esm2015/domain/get-scaled-node-rects-with-flow-position/index.js} +0 -0
  859. /package/{esm2022/domain/get-selection/get-selection.request.mjs → esm2015/domain/get-selection/get-selection.request.js} +0 -0
  860. /package/{esm2022/domain/get-selection/index.mjs → esm2015/domain/get-selection/index.js} +0 -0
  861. /package/{esm2022/domain/is-connection-under-node/index.mjs → esm2015/domain/is-connection-under-node/index.js} +0 -0
  862. /package/{esm2022/domain/is-connection-under-node/is-connection-under-node.request.mjs → esm2015/domain/is-connection-under-node/is-connection-under-node.request.js} +0 -0
  863. /package/{esm2022/domain/redraw-connections/index.mjs → esm2015/domain/redraw-connections/index.js} +0 -0
  864. /package/{esm2022/domain/redraw-connections/redraw-connections-request.mjs → esm2015/domain/redraw-connections/redraw-connections-request.js} +0 -0
  865. /package/{esm2022/domain/select/index.mjs → esm2015/domain/select/index.js} +0 -0
  866. /package/{esm2022/domain/select-all/index.mjs → esm2015/domain/select-all/index.js} +0 -0
  867. /package/{esm2022/domain/select-all/select-all.request.mjs → esm2015/domain/select-all/select-all.request.js} +0 -0
  868. /package/{esm2022/domain/select-and-update-node-layer/index.mjs → esm2015/domain/select-and-update-node-layer/index.js} +0 -0
  869. /package/{esm2022/domain/sort-item-layers/index.mjs → esm2015/domain/sort-item-layers/index.js} +0 -0
  870. /package/{esm2022/domain/sort-item-layers/sort-item-layers.request.mjs → esm2015/domain/sort-item-layers/sort-item-layers.request.js} +0 -0
  871. /package/{esm2022/domain/sort-item-layers/sort-items-by-parent/index.mjs → esm2015/domain/sort-item-layers/sort-items-by-parent/index.js} +0 -0
  872. /package/{esm2022/domain/sort-item-layers/sort-node-layers-by-groups/index.mjs → esm2015/domain/sort-item-layers/sort-node-layers-by-groups/index.js} +0 -0
  873. /package/{esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.request.mjs → esm2015/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.request.js} +0 -0
  874. /package/{esm2022/domain/subscribe-on-transform-changes/index.mjs → esm2015/domain/subscribe-on-transform-changes/index.js} +0 -0
  875. /package/{esm2022/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.request.mjs → esm2015/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.request.js} +0 -0
  876. /package/{esm2022/domain/update-item-and-children-layers/index.mjs → esm2015/domain/update-item-and-children-layers/index.js} +0 -0
  877. /package/{esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/index.mjs → esm2015/domain/update-item-and-children-layers/move-front-elements-before-target-element/index.js} +0 -0
  878. /package/{esm2022/errors/conflict-error.mjs → esm2015/errors/conflict-error.js} +0 -0
  879. /package/{esm2022/errors/create-error-class.mjs → esm2015/errors/create-error-class.js} +0 -0
  880. /package/{esm2022/errors/errors.mjs → esm2015/errors/errors.js} +0 -0
  881. /package/{esm2022/errors/index.mjs → esm2015/errors/index.js} +0 -0
  882. /package/{esm2022/errors/not-found-error.mjs → esm2015/errors/not-found-error.js} +0 -0
  883. /package/{esm2022/f-backgroud/domain/index.mjs → esm2015/f-backgroud/domain/index.js} +0 -0
  884. /package/{esm2022/f-backgroud/f-circle-pattern/index.mjs → esm2015/f-backgroud/f-circle-pattern/index.js} +0 -0
  885. /package/{esm2022/f-backgroud/f-rect-pattern/index.mjs → esm2015/f-backgroud/f-rect-pattern/index.js} +0 -0
  886. /package/{esm2022/f-backgroud/index.mjs → esm2015/f-backgroud/index.js} +0 -0
  887. /package/{esm2022/f-backgroud/providers.mjs → esm2015/f-backgroud/providers.js} +0 -0
  888. /package/{esm2022/f-canvas/domain/index.mjs → esm2015/f-canvas/domain/index.js} +0 -0
  889. /package/{esm2022/f-canvas/index.mjs → esm2015/f-canvas/index.js} +0 -0
  890. /package/{esm2022/f-canvas/providers.mjs → esm2015/f-canvas/providers.js} +0 -0
  891. /package/{esm2022/f-connection/common/domain/calculate-center-between-points/index.mjs → esm2015/f-connection/common/domain/calculate-center-between-points/index.js} +0 -0
  892. /package/{esm2022/f-connection/common/domain/calculate-connection-center/index.mjs → esm2015/f-connection/common/domain/calculate-connection-center/index.js} +0 -0
  893. /package/{esm2022/f-connection/common/domain/f-straight.path-builder.mjs → esm2015/f-connection/common/domain/f-straight.path-builder.js} +0 -0
  894. /package/{esm2022/f-connection/common/domain/index.mjs → esm2015/f-connection/common/domain/index.js} +0 -0
  895. /package/{esm2022/f-connection/common/e-f-connection-behavior.mjs → esm2015/f-connection/common/e-f-connection-behavior.js} +0 -0
  896. /package/{esm2022/f-connection/common/e-f-connection-type.mjs → esm2015/f-connection/common/e-f-connection-type.js} +0 -0
  897. /package/{esm2022/f-connection/common/f-connection-text/index.mjs → esm2015/f-connection/common/f-connection-text/index.js} +0 -0
  898. /package/{esm2022/f-connection/common/f-connection.injection-token.mjs → esm2015/f-connection/common/f-connection.injection-token.js} +0 -0
  899. /package/{esm2022/f-connection/common/f-drag-handle/index.mjs → esm2015/f-connection/common/f-drag-handle/index.js} +0 -0
  900. /package/{esm2022/f-connection/common/f-gradient/index.mjs → esm2015/f-connection/common/f-gradient/index.js} +0 -0
  901. /package/{esm2022/f-connection/common/f-path/index.mjs → esm2015/f-connection/common/f-path/index.js} +0 -0
  902. /package/{esm2022/f-connection/common/f-selection/index.mjs → esm2015/f-connection/common/f-selection/index.js} +0 -0
  903. /package/{esm2022/f-connection/common/i-has-connection-color.mjs → esm2015/f-connection/common/i-has-connection-color.js} +0 -0
  904. /package/{esm2022/f-connection/common/i-has-connection-from-to.mjs → esm2015/f-connection/common/i-has-connection-from-to.js} +0 -0
  905. /package/{esm2022/f-connection/common/i-has-connection-text.mjs → esm2015/f-connection/common/i-has-connection-text.js} +0 -0
  906. /package/{esm2022/f-connection/f-connection/index.mjs → esm2015/f-connection/f-connection/index.js} +0 -0
  907. /package/{esm2022/f-connection/f-connection-builder/f-connection-builders.mjs → esm2015/f-connection/f-connection-builder/f-connection-builders.js} +0 -0
  908. /package/{esm2022/f-connection/f-connection-builder/i-f-connection-factory-request.mjs → esm2015/f-connection/f-connection-builder/i-f-connection-factory-request.js} +0 -0
  909. /package/{esm2022/f-connection/f-connection-builder/index.mjs → esm2015/f-connection/f-connection-builder/index.js} +0 -0
  910. /package/{esm2022/f-connection/f-connection-center/index.mjs → esm2015/f-connection/f-connection-center/index.js} +0 -0
  911. /package/{esm2022/f-connection/f-connection-for-create/index.mjs → esm2015/f-connection/f-connection-for-create/index.js} +0 -0
  912. /package/{esm2022/f-connection/f-marker/e-f-marker-type.mjs → esm2015/f-connection/f-marker/e-f-marker-type.js} +0 -0
  913. /package/{esm2022/f-connection/f-marker/index.mjs → esm2015/f-connection/f-marker/index.js} +0 -0
  914. /package/{esm2022/f-connection/providers.mjs → esm2015/f-connection/providers.js} +0 -0
  915. /package/{esm2022/f-connectors/domain/calculate-connector-connectable-side/index.mjs → esm2015/f-connectors/domain/calculate-connector-connectable-side/index.js} +0 -0
  916. /package/{esm2022/f-connectors/domain/index.mjs → esm2015/f-connectors/domain/index.js} +0 -0
  917. /package/{esm2022/f-connectors/e-f-connectable-side.mjs → esm2015/f-connectors/e-f-connectable-side.js} +0 -0
  918. /package/{esm2022/f-connectors/f-node-input/index.mjs → esm2015/f-connectors/f-node-input/index.js} +0 -0
  919. /package/{esm2022/f-connectors/f-node-input/is-node-input.mjs → esm2015/f-connectors/f-node-input/is-node-input.js} +0 -0
  920. /package/{esm2022/f-connectors/f-node-outlet/index.mjs → esm2015/f-connectors/f-node-outlet/index.js} +0 -0
  921. /package/{esm2022/f-connectors/f-node-outlet/is-node-outlet.mjs → esm2015/f-connectors/f-node-outlet/is-node-outlet.js} +0 -0
  922. /package/{esm2022/f-connectors/f-node-output/index.mjs → esm2015/f-connectors/f-node-output/index.js} +0 -0
  923. /package/{esm2022/f-connectors/f-node-output/is-node-output.mjs → esm2015/f-connectors/f-node-output/is-node-output.js} +0 -0
  924. /package/{esm2022/f-connectors/index.mjs → esm2015/f-connectors/index.js} +0 -0
  925. /package/{esm2022/f-connectors/providers.mjs → esm2015/f-connectors/providers.js} +0 -0
  926. /package/{esm2022/f-draggable/canvas/canvas-move-finalize/index.mjs → esm2015/f-draggable/canvas/canvas-move-finalize/index.js} +0 -0
  927. /package/{esm2022/f-draggable/canvas/canvas-move-finalize/providers.mjs → esm2015/f-draggable/canvas/canvas-move-finalize/providers.js} +0 -0
  928. /package/{esm2022/f-draggable/canvas/canvas-move-preparation/index.mjs → esm2015/f-draggable/canvas/canvas-move-preparation/index.js} +0 -0
  929. /package/{esm2022/f-draggable/canvas/canvas-move-preparation/providers.mjs → esm2015/f-draggable/canvas/canvas-move-preparation/providers.js} +0 -0
  930. /package/{esm2022/f-draggable/canvas/index.mjs → esm2015/f-draggable/canvas/index.js} +0 -0
  931. /package/{esm2022/f-draggable/canvas/providers.mjs → esm2015/f-draggable/canvas/providers.js} +0 -0
  932. /package/{esm2022/f-draggable/connections/create-connection/create-connection-finalize/index.mjs → esm2015/f-draggable/connections/create-connection/create-connection-finalize/index.js} +0 -0
  933. /package/{esm2022/f-draggable/connections/create-connection/create-connection-finalize/providers.mjs → esm2015/f-draggable/connections/create-connection/create-connection-finalize/providers.js} +0 -0
  934. /package/{esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/index.mjs → esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/index.js} +0 -0
  935. /package/{esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/providers.mjs → esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/providers.js} +0 -0
  936. /package/{esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/index.mjs → esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/index.js} +0 -0
  937. /package/{esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/providers.mjs → esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/providers.js} +0 -0
  938. /package/{esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/index.mjs → esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/index.js} +0 -0
  939. /package/{esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/providers.mjs → esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/providers.js} +0 -0
  940. /package/{esm2022/f-draggable/connections/create-connection/create-connection-preparation/index.mjs → esm2015/f-draggable/connections/create-connection/create-connection-preparation/index.js} +0 -0
  941. /package/{esm2022/f-draggable/connections/create-connection/create-connection-preparation/providers.mjs → esm2015/f-draggable/connections/create-connection/create-connection-preparation/providers.js} +0 -0
  942. /package/{esm2022/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/index.mjs → esm2015/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/index.js} +0 -0
  943. /package/{esm2022/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/providers.mjs → esm2015/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/providers.js} +0 -0
  944. /package/{esm2022/f-draggable/connections/create-connection/index.mjs → esm2015/f-draggable/connections/create-connection/index.js} +0 -0
  945. /package/{esm2022/f-draggable/connections/get-input-under-pointer/index.mjs → esm2015/f-draggable/connections/get-input-under-pointer/index.js} +0 -0
  946. /package/{esm2022/f-draggable/connections/get-input-under-pointer/providers.mjs → esm2015/f-draggable/connections/get-input-under-pointer/providers.js} +0 -0
  947. /package/{esm2022/f-draggable/connections/index.mjs → esm2015/f-draggable/connections/index.js} +0 -0
  948. /package/{esm2022/f-draggable/connections/providers.mjs → esm2015/f-draggable/connections/providers.js} +0 -0
  949. /package/{esm2022/f-draggable/connections/reassign-connection/index.mjs → esm2015/f-draggable/connections/reassign-connection/index.js} +0 -0
  950. /package/{esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/index.mjs → esm2015/f-draggable/connections/reassign-connection/reassign-connection-finalize/index.js} +0 -0
  951. /package/{esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/providers.mjs → esm2015/f-draggable/connections/reassign-connection/reassign-connection-finalize/providers.js} +0 -0
  952. /package/{esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/index.mjs → esm2015/f-draggable/connections/reassign-connection/reassign-connection-preparation/index.js} +0 -0
  953. /package/{esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/providers.mjs → esm2015/f-draggable/connections/reassign-connection/reassign-connection-preparation/providers.js} +0 -0
  954. /package/{esm2022/f-draggable/domain/get-node-padding/index.mjs → esm2015/f-draggable/domain/get-node-padding/index.js} +0 -0
  955. /package/{esm2022/f-draggable/domain/get-normalized-node-rect/index.mjs → esm2015/f-draggable/domain/get-normalized-node-rect/index.js} +0 -0
  956. /package/{esm2022/f-draggable/domain/get-normalized-parent-node-rect/index.mjs → esm2015/f-draggable/domain/get-normalized-parent-node-rect/index.js} +0 -0
  957. /package/{esm2022/f-draggable/domain/get-parent-nodes/index.mjs → esm2015/f-draggable/domain/get-parent-nodes/index.js} +0 -0
  958. /package/{esm2022/f-draggable/domain/index.mjs → esm2015/f-draggable/domain/index.js} +0 -0
  959. /package/{esm2022/f-draggable/domain/is-array-has-parent-node/index.mjs → esm2015/f-draggable/domain/is-array-has-parent-node/index.js} +0 -0
  960. /package/{esm2022/f-draggable/domain/providers.mjs → esm2015/f-draggable/domain/providers.js} +0 -0
  961. /package/{esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.request.mjs → esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.request.js} +0 -0
  962. /package/{esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/index.mjs → esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/index.js} +0 -0
  963. /package/{esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/index.mjs → esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/index.js} +0 -0
  964. /package/{esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/index.mjs → esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/index.js} +0 -0
  965. /package/{esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/i-node-with-distance-restrictions.mjs → esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/i-node-with-distance-restrictions.js} +0 -0
  966. /package/{esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/index.mjs → esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/index.js} +0 -0
  967. /package/{esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.mjs → esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.js} +0 -0
  968. /package/{esm2022/f-draggable/node/index.mjs → esm2015/f-draggable/node/index.js} +0 -0
  969. /package/{esm2022/f-draggable/node/node-move-finalize/index.mjs → esm2015/f-draggable/node/node-move-finalize/index.js} +0 -0
  970. /package/{esm2022/f-draggable/node/node-move-finalize/providers.mjs → esm2015/f-draggable/node/node-move-finalize/providers.js} +0 -0
  971. /package/{esm2022/f-draggable/node/node-move-preparation/index.mjs → esm2015/f-draggable/node/node-move-preparation/index.js} +0 -0
  972. /package/{esm2022/f-draggable/node/node-move-preparation/providers.mjs → esm2015/f-draggable/node/node-move-preparation/providers.js} +0 -0
  973. /package/{esm2022/f-draggable/node/providers.mjs → esm2015/f-draggable/node/providers.js} +0 -0
  974. /package/{esm2022/f-draggable/node-resize/apply-child-resize-restrictions/index.mjs → esm2015/f-draggable/node-resize/apply-child-resize-restrictions/index.js} +0 -0
  975. /package/{esm2022/f-draggable/node-resize/apply-parent-resize-restrictions/index.mjs → esm2015/f-draggable/node-resize/apply-parent-resize-restrictions/index.js} +0 -0
  976. /package/{esm2022/f-draggable/node-resize/calculate-changed-position/index.mjs → esm2015/f-draggable/node-resize/calculate-changed-position/index.js} +0 -0
  977. /package/{esm2022/f-draggable/node-resize/calculate-changed-size/index.mjs → esm2015/f-draggable/node-resize/calculate-changed-size/index.js} +0 -0
  978. /package/{esm2022/f-draggable/node-resize/get-node-resize-restrictions/index.mjs → esm2015/f-draggable/node-resize/get-node-resize-restrictions/index.js} +0 -0
  979. /package/{esm2022/f-draggable/node-resize/get-normalized-children-nodes-rect/index.mjs → esm2015/f-draggable/node-resize/get-normalized-children-nodes-rect/index.js} +0 -0
  980. /package/{esm2022/f-draggable/node-resize/index.mjs → esm2015/f-draggable/node-resize/index.js} +0 -0
  981. /package/{esm2022/f-draggable/node-resize/node-resize-finalize/index.mjs → esm2015/f-draggable/node-resize/node-resize-finalize/index.js} +0 -0
  982. /package/{esm2022/f-draggable/node-resize/node-resize-finalize/providers.mjs → esm2015/f-draggable/node-resize/node-resize-finalize/providers.js} +0 -0
  983. /package/{esm2022/f-draggable/node-resize/node-resize-preparation/index.mjs → esm2015/f-draggable/node-resize/node-resize-preparation/index.js} +0 -0
  984. /package/{esm2022/f-draggable/node-resize/node-resize-preparation/providers.mjs → esm2015/f-draggable/node-resize/node-resize-preparation/providers.js} +0 -0
  985. /package/{esm2022/f-draggable/node-resize/providers.mjs → esm2015/f-draggable/node-resize/providers.js} +0 -0
  986. /package/{esm2022/f-draggable/node-resize/resize-direction.mjs → esm2015/f-draggable/node-resize/resize-direction.js} +0 -0
  987. /package/{esm2022/f-draggable/providers.mjs → esm2015/f-draggable/providers.js} +0 -0
  988. /package/{esm2022/f-draggable/single-select/index.mjs → esm2015/f-draggable/single-select/index.js} +0 -0
  989. /package/{esm2022/f-draggable/single-select/providers.mjs → esm2015/f-draggable/single-select/providers.js} +0 -0
  990. /package/{esm2022/f-external-item/domain/external-item-finalize/index.mjs → esm2015/f-external-item/domain/external-item-finalize/index.js} +0 -0
  991. /package/{esm2022/f-external-item/domain/external-item-finalize/providers.mjs → esm2015/f-external-item/domain/external-item-finalize/providers.js} +0 -0
  992. /package/{esm2022/f-external-item/domain/external-item-preparation/index.mjs → esm2015/f-external-item/domain/external-item-preparation/index.js} +0 -0
  993. /package/{esm2022/f-external-item/domain/external-item-preparation/providers.mjs → esm2015/f-external-item/domain/external-item-preparation/providers.js} +0 -0
  994. /package/{esm2022/f-external-item/domain/index.mjs → esm2015/f-external-item/domain/index.js} +0 -0
  995. /package/{esm2022/f-external-item/domain/providers.mjs → esm2015/f-external-item/domain/providers.js} +0 -0
  996. /package/{esm2022/f-external-item/index.mjs → esm2015/f-external-item/index.js} +0 -0
  997. /package/{esm2022/f-external-item/is-external-item.mjs → esm2015/f-external-item/is-external-item.js} +0 -0
  998. /package/{esm2022/f-external-item/providers.mjs → esm2015/f-external-item/providers.js} +0 -0
  999. /package/{esm2022/f-flow/index.mjs → esm2015/f-flow/index.js} +0 -0
  1000. /package/{esm2022/f-flow/providers.mjs → esm2015/f-flow/providers.js} +0 -0
  1001. /package/{esm2022/f-line-alignment/domain/i-line-alignment-rect.mjs → esm2015/f-line-alignment/domain/i-line-alignment-rect.js} +0 -0
  1002. /package/{esm2022/f-line-alignment/domain/i-line-alignment-result.mjs → esm2015/f-line-alignment/domain/i-line-alignment-result.js} +0 -0
  1003. /package/{esm2022/f-line-alignment/domain/i-nearest-coordinate-result.mjs → esm2015/f-line-alignment/domain/i-nearest-coordinate-result.js} +0 -0
  1004. /package/{esm2022/f-line-alignment/domain/index.mjs → esm2015/f-line-alignment/domain/index.js} +0 -0
  1005. /package/{esm2022/f-line-alignment/index.mjs → esm2015/f-line-alignment/index.js} +0 -0
  1006. /package/{esm2022/f-line-alignment/providers.mjs → esm2015/f-line-alignment/providers.js} +0 -0
  1007. /package/{esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/index.mjs → esm2015/f-minimap/domain/calculate-flow-point-from-minimap-point/index.js} +0 -0
  1008. /package/{esm2022/f-minimap/domain/minimap-drag-finalize/index.mjs → esm2015/f-minimap/domain/minimap-drag-finalize/index.js} +0 -0
  1009. /package/{esm2022/f-minimap/domain/minimap-drag-finalize/providers.mjs → esm2015/f-minimap/domain/minimap-drag-finalize/providers.js} +0 -0
  1010. /package/{esm2022/f-minimap/domain/minimap-drag-preparation/index.mjs → esm2015/f-minimap/domain/minimap-drag-preparation/index.js} +0 -0
  1011. /package/{esm2022/f-minimap/domain/minimap-drag-preparation/providers.mjs → esm2015/f-minimap/domain/minimap-drag-preparation/providers.js} +0 -0
  1012. /package/{esm2022/f-minimap/domain/providers.mjs → esm2015/f-minimap/domain/providers.js} +0 -0
  1013. /package/{esm2022/f-minimap/index.mjs → esm2015/f-minimap/index.js} +0 -0
  1014. /package/{esm2022/f-minimap/providers.mjs → esm2015/f-minimap/providers.js} +0 -0
  1015. /package/{esm2022/f-node/domain/index.mjs → esm2015/f-node/domain/index.js} +0 -0
  1016. /package/{esm2022/f-node/domain/is-group.mjs → esm2015/f-node/domain/is-group.js} +0 -0
  1017. /package/{esm2022/f-node/domain/is-node.mjs → esm2015/f-node/domain/is-node.js} +0 -0
  1018. /package/{esm2022/f-node/f-drag-handle/index.mjs → esm2015/f-node/f-drag-handle/index.js} +0 -0
  1019. /package/{esm2022/f-node/f-resize-handle/e-f-resize-handle-type.mjs → esm2015/f-node/f-resize-handle/e-f-resize-handle-type.js} +0 -0
  1020. /package/{esm2022/f-node/f-resize-handle/index.mjs → esm2015/f-node/f-resize-handle/index.js} +0 -0
  1021. /package/{esm2022/f-node/f-resize-observer.mjs → esm2015/f-node/f-resize-observer.js} +0 -0
  1022. /package/{esm2022/f-node/f-rotate-handle/index.mjs → esm2015/f-node/f-rotate-handle/index.js} +0 -0
  1023. /package/{esm2022/f-node/index.mjs → esm2015/f-node/index.js} +0 -0
  1024. /package/{esm2022/f-node/providers.mjs → esm2015/f-node/providers.js} +0 -0
  1025. /package/{esm2022/f-selection-area/domain/index.mjs → esm2015/f-selection-area/domain/index.js} +0 -0
  1026. /package/{esm2022/f-selection-area/domain/providers.mjs → esm2015/f-selection-area/domain/providers.js} +0 -0
  1027. /package/{esm2022/f-selection-area/domain/selection-area-finalize/index.mjs → esm2015/f-selection-area/domain/selection-area-finalize/index.js} +0 -0
  1028. /package/{esm2022/f-selection-area/domain/selection-area-finalize/providers.mjs → esm2015/f-selection-area/domain/selection-area-finalize/providers.js} +0 -0
  1029. /package/{esm2022/f-selection-area/domain/selection-area-preparation/index.mjs → esm2015/f-selection-area/domain/selection-area-preparation/index.js} +0 -0
  1030. /package/{esm2022/f-selection-area/domain/selection-area-preparation/providers.mjs → esm2015/f-selection-area/domain/selection-area-preparation/providers.js} +0 -0
  1031. /package/{esm2022/f-selection-area/index.mjs → esm2015/f-selection-area/index.js} +0 -0
  1032. /package/{esm2022/f-selection-area/providers.mjs → esm2015/f-selection-area/providers.js} +0 -0
  1033. /package/{esm2022/f-storage/index.mjs → esm2015/f-storage/index.js} +0 -0
  1034. /package/{esm2022/f-zoom/index.mjs → esm2015/f-zoom/index.js} +0 -0
  1035. /package/{esm2022/f-zoom/providers.mjs → esm2015/f-zoom/providers.js} +0 -0
  1036. /package/{esm2022/foblex-flow.mjs → esm2015/foblex-flow.js} +0 -0
  1037. /package/{esm2022/i-has-state-changes.mjs → esm2015/i-has-state-changes.js} +0 -0
  1038. /package/{index.d.ts → foblex-flow.d.ts} +0 -0
@@ -0,0 +1,142 @@
1
+ import { PointExtensions } from '@foblex/2d';
2
+ import { EFConnectableSide } from '../../../f-connectors';
3
+ import { CalculateCenterBetweenPointsHandler, CalculateCenterBetweenPointsRequest } from './calculate-center-between-points';
4
+ import { CalculateConnectionCenterHandler, CalculateConnectionCenterRequest } from './calculate-connection-center';
5
+ const CONNECTOR_SIDE_POINT = {
6
+ [EFConnectableSide.LEFT]: PointExtensions.initialize(-1, 0),
7
+ [EFConnectableSide.RIGHT]: PointExtensions.initialize(1, 0),
8
+ [EFConnectableSide.TOP]: PointExtensions.initialize(0, -1),
9
+ [EFConnectableSide.BOTTOM]: PointExtensions.initialize(0, 1),
10
+ [EFConnectableSide.AUTO]: PointExtensions.initialize(0, 0),
11
+ };
12
+ export class FSegmentPathBuilder {
13
+ handle(request) {
14
+ const { source, sourceSide, target, targetSide } = request;
15
+ const { points, center } = this.getPathPoints(source, sourceSide, target, targetSide, request.offset);
16
+ const path = this.buildPath(points, request.radius);
17
+ const penultimatePoint = points.length > 1 ? points[points.length - 2] : source;
18
+ return { path, connectionCenter: center, penultimatePoint };
19
+ }
20
+ getPathPoints(source, sourceSide, target, targetSide, offset) {
21
+ const sourceDirection = CONNECTOR_SIDE_POINT[sourceSide];
22
+ const targetDirection = CONNECTOR_SIDE_POINT[targetSide];
23
+ const sourceGap = { x: source.x + sourceDirection.x * offset, y: source.y + sourceDirection.y * offset };
24
+ const targetGap = { x: target.x + targetDirection.x * offset, y: target.y + targetDirection.y * offset };
25
+ const direction = this.getDirection(sourceGap, sourceSide, targetGap);
26
+ const directionAccessor = direction.x !== 0 ? 'x' : 'y';
27
+ const currentDirection = direction[directionAccessor];
28
+ let points = [];
29
+ const sourceGapOffset = PointExtensions.initialize();
30
+ const targetGapOffset = PointExtensions.initialize();
31
+ const centerBetweenPoints = new CalculateCenterBetweenPointsHandler().handle(new CalculateCenterBetweenPointsRequest(source, target));
32
+ if (sourceDirection[directionAccessor] * targetDirection[directionAccessor] === -1) {
33
+ const verticalSplit = [
34
+ { x: centerBetweenPoints.x, y: sourceGap.y },
35
+ { x: centerBetweenPoints.x, y: targetGap.y },
36
+ ];
37
+ const horizontalSplit = [
38
+ { x: sourceGap.x, y: centerBetweenPoints.y },
39
+ { x: targetGap.x, y: centerBetweenPoints.y },
40
+ ];
41
+ if (sourceDirection[directionAccessor] === currentDirection) {
42
+ points = directionAccessor === 'x' ? verticalSplit : horizontalSplit;
43
+ }
44
+ else {
45
+ points = directionAccessor === 'x' ? horizontalSplit : verticalSplit;
46
+ }
47
+ }
48
+ else {
49
+ const sourceTarget = [{ x: sourceGap.x, y: targetGap.y }];
50
+ const targetSource = [{ x: targetGap.x, y: sourceGap.y }];
51
+ if (directionAccessor === 'x') {
52
+ points = sourceDirection.x === currentDirection ? targetSource : sourceTarget;
53
+ }
54
+ else {
55
+ points = sourceDirection.y === currentDirection ? sourceTarget : targetSource;
56
+ }
57
+ if (sourceSide === targetSide) {
58
+ const diff = Math.abs(source[directionAccessor] - target[directionAccessor]);
59
+ if (diff <= offset) {
60
+ const gapOffset = Math.min(offset - 1, offset - diff);
61
+ if (sourceDirection[directionAccessor] === currentDirection) {
62
+ sourceGapOffset[directionAccessor] = (sourceGap[directionAccessor] > source[directionAccessor] ? -1 : 1) * gapOffset;
63
+ }
64
+ else {
65
+ targetGapOffset[directionAccessor] = (targetGap[directionAccessor] > target[directionAccessor] ? -1 : 1) * gapOffset;
66
+ }
67
+ }
68
+ }
69
+ if (sourceSide !== targetSide) {
70
+ const dirAccessorOpposite = directionAccessor === 'x' ? 'y' : 'x';
71
+ const isSameDir = sourceDirection[directionAccessor] === targetDirection[dirAccessorOpposite];
72
+ const sourceGtTargetOppo = sourceGap[dirAccessorOpposite] > targetGap[dirAccessorOpposite];
73
+ const sourceLtTargetOppo = sourceGap[dirAccessorOpposite] < targetGap[dirAccessorOpposite];
74
+ const flipSourceTarget = (sourceDirection[directionAccessor] === 1 &&
75
+ ((!isSameDir && sourceGtTargetOppo) || (isSameDir && sourceLtTargetOppo))) ||
76
+ (sourceDirection[directionAccessor] !== 1 &&
77
+ ((!isSameDir && sourceLtTargetOppo) || (isSameDir && sourceGtTargetOppo)));
78
+ if (flipSourceTarget) {
79
+ points = directionAccessor === 'x' ? sourceTarget : targetSource;
80
+ }
81
+ }
82
+ }
83
+ const pathPoints = [
84
+ source,
85
+ { x: sourceGap.x + sourceGapOffset.x, y: sourceGap.y + sourceGapOffset.y },
86
+ ...points,
87
+ { x: targetGap.x + targetGapOffset.x, y: targetGap.y + targetGapOffset.y },
88
+ target,
89
+ ];
90
+ const center = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest(pathPoints));
91
+ return { points: pathPoints, center: center };
92
+ }
93
+ getDirection(source, sourceSide, target) {
94
+ if (sourceSide === EFConnectableSide.LEFT || sourceSide === EFConnectableSide.RIGHT) {
95
+ return source.x < target.x ? PointExtensions.initialize(1, 0) : PointExtensions.initialize(-1, 0);
96
+ }
97
+ return source.y < target.y ? PointExtensions.initialize(0, 1) : PointExtensions.initialize(0, -1);
98
+ }
99
+ distance(a, b) {
100
+ return Math.sqrt(Math.pow(b.x - a.x, 2) + Math.pow(b.y - a.y, 2));
101
+ }
102
+ buildPath(points, borderRadius) {
103
+ let path = '';
104
+ for (let i = 0; i < points.length; i++) {
105
+ const p = points[i];
106
+ let segment = '';
107
+ if (i > 0 && i < points.length - 1) {
108
+ segment = this.getBend(points[i - 1], p, points[i + 1], borderRadius);
109
+ }
110
+ else if (i === points.length - 1) {
111
+ segment = this.buildLastLineSegment(i, p);
112
+ }
113
+ else {
114
+ segment = this.buildMoveOrLineSegment(i, p);
115
+ }
116
+ path += segment;
117
+ }
118
+ return path;
119
+ }
120
+ getBend(a, b, c, size) {
121
+ const bendSize = Math.min(this.distance(a, b) / 2, this.distance(b, c) / 2, size);
122
+ const { x, y } = b;
123
+ if ((a.x === x && x === c.x) || (a.y === y && y === c.y)) {
124
+ return `L${x} ${y}`;
125
+ }
126
+ if (a.y === y) {
127
+ const xDir = a.x < c.x ? -1 : 1;
128
+ const yDir = a.y < c.y ? 1 : -1;
129
+ return `L ${x + bendSize * xDir},${y}Q ${x},${y} ${x},${y + bendSize * yDir}`;
130
+ }
131
+ const xDir = a.x < c.x ? 1 : -1;
132
+ const yDir = a.y < c.y ? -1 : 1;
133
+ return `L ${x},${y + bendSize * yDir}Q ${x},${y} ${x + bendSize * xDir},${y}`;
134
+ }
135
+ buildMoveOrLineSegment(index, point) {
136
+ return `${index === 0 ? 'M' : 'L'}${point.x} ${point.y}`;
137
+ }
138
+ buildLastLineSegment(index, point) {
139
+ return `L${point.x + 0.0002} ${point.y + 0.0002}`;
140
+ }
141
+ }
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zZWdtZW50LnBhdGgtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9kb21haW4vZi1zZWdtZW50LnBhdGgtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFDTCxtQ0FBbUMsRUFDbkMsbUNBQW1DLEVBQ3BDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFRbkgsTUFBTSxvQkFBb0IsR0FBaUI7SUFFekMsQ0FBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUUsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU3RCxDQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBRSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU3RCxDQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBRSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTVELENBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFFLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTlELENBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFFLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0NBQzdELENBQUM7QUFFRixNQUFNLE9BQU8sbUJBQW1CO0lBRXZCLE1BQU0sQ0FBQyxPQUFtQztRQUMvQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVB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aW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ2VudGVyQmV0d2VlblBvaW50c0hhbmRsZXIsXG4gIENhbGN1bGF0ZUNlbnRlckJldHdlZW5Qb2ludHNSZXF1ZXN0XG59IGZyb20gJy4vY2FsY3VsYXRlLWNlbnRlci1iZXR3ZWVuLXBvaW50cyc7XG5pbXBvcnQgeyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlciwgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlclJlcXVlc3QgfSBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0aW9uLWNlbnRlcic7XG5pbXBvcnQge1xuICBJRkNvbm5lY3Rpb25CdWlsZGVyLFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCxcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlXG59IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbi1idWlsZGVyJztcbmltcG9ydCB7IElNYXAgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuXG5jb25zdCBDT05ORUNUT1JfU0lERV9QT0lOVDogSU1hcDxJUG9pbnQ+ID0ge1xuXG4gIFsgRUZDb25uZWN0YWJsZVNpZGUuTEVGVCBdOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgtMSwgMCksXG5cbiAgWyBFRkNvbm5lY3RhYmxlU2lkZS5SSUdIVCBdOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgxLCAwKSxcblxuICBbIEVGQ29ubmVjdGFibGVTaWRlLlRPUCBdOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAtMSksXG5cbiAgWyBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT00gXTogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMCwgMSksXG5cbiAgWyBFRkNvbm5lY3RhYmxlU2lkZS5BVVRPIF06IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKDAsIDApLFxufTtcblxuZXhwb3J0IGNsYXNzIEZTZWdtZW50UGF0aEJ1aWxkZXIgaW1wbGVtZW50cyBJRkNvbm5lY3Rpb25CdWlsZGVyIHtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0KTogSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlIHtcbiAgICBjb25zdCB7IHNvdXJjZSwgc291cmNlU2lkZSwgdGFyZ2V0LCB0YXJnZXRTaWRlIH0gPSByZXF1ZXN0O1xuXG4gICAgY29uc3QgeyBwb2ludHMsIGNlbnRlciB9ID0gdGhpcy5nZXRQYXRoUG9pbnRzKFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHNvdXJjZVNpZGUsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgdGFyZ2V0U2lkZSxcbiAgICAgICAgcmVxdWVzdC5vZmZzZXRcbiAgICApO1xuXG4gICAgY29uc3QgcGF0aCA9IHRoaXMuYnVpbGRQYXRoKHBvaW50cywgcmVxdWVzdC5yYWRpdXMpO1xuXG4gICAgY29uc3QgcGVudWx0aW1hdGVQb2ludCA9IHBvaW50cy5sZW5ndGggPiAxID8gcG9pbnRzWyBwb2ludHMubGVuZ3RoIC0gMiBdIDogc291cmNlO1xuXG4gICAgcmV0dXJuIHsgcGF0aCwgY29ubmVjdGlvbkNlbnRlcjogY2VudGVyLCBwZW51bHRpbWF0ZVBvaW50IH07XG4gIH1cblxuICBwcml2YXRlIGdldFBhdGhQb2ludHMoXG4gICAgICBzb3VyY2U6IElQb2ludCwgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUsIHRhcmdldDogSVBvaW50LCB0YXJnZXRTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSwgb2Zmc2V0OiBudW1iZXJcbiAgKTogeyBwb2ludHM6IElQb2ludFtdLCBjZW50ZXI6IElQb2ludCB9IHtcblxuICAgIGNvbnN0IHNvdXJjZURpcmVjdGlvbiA9IENPTk5FQ1RPUl9TSURFX1BPSU5UWyBzb3VyY2VTaWRlIF07XG4gICAgY29uc3QgdGFyZ2V0RGlyZWN0aW9uID0gQ09OTkVDVE9SX1NJREVfUE9JTlRbIHRhcmdldFNpZGUgXTtcblxuICAgIGNvbnN0IHNvdXJjZUdhcDogSVBvaW50ID0geyB4OiBzb3VyY2UueCArIHNvdXJjZURpcmVjdGlvbi54ICogb2Zmc2V0LCB5OiBzb3VyY2UueSArIHNvdXJjZURpcmVjdGlvbi55ICogb2Zmc2V0IH07XG4gICAgY29uc3QgdGFyZ2V0R2FwOiBJUG9pbnQgPSB7IHg6IHRhcmdldC54ICsgdGFyZ2V0RGlyZWN0aW9uLnggKiBvZmZzZXQsIHk6IHRhcmdldC55ICsgdGFyZ2V0RGlyZWN0aW9uLnkgKiBvZmZzZXQgfTtcblxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMuZ2V0RGlyZWN0aW9uKHNvdXJjZUdhcCwgc291cmNlU2lkZSwgdGFyZ2V0R2FwKTtcbiAgICBjb25zdCBkaXJlY3Rpb25BY2Nlc3NvciA9IGRpcmVjdGlvbi54ICE9PSAwID8gJ3gnIDogJ3knO1xuICAgIGNvbnN0IGN1cnJlbnREaXJlY3Rpb24gPSBkaXJlY3Rpb25bIGRpcmVjdGlvbkFjY2Vzc29yIF07XG5cbiAgICBsZXQgcG9pbnRzOiBJUG9pbnRbXSA9IFtdO1xuICAgIGNvbnN0IHNvdXJjZUdhcE9mZnNldCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gICAgY29uc3QgdGFyZ2V0R2FwT2Zmc2V0ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICAgIGNvbnN0IGNlbnRlckJldHdlZW5Qb2ludHMgPSBuZXcgQ2FsY3VsYXRlQ2VudGVyQmV0d2VlblBvaW50c0hhbmRsZXIoKS5oYW5kbGUoXG4gICAgICAgIG5ldyBDYWxjdWxhdGVDZW50ZXJCZXR3ZWVuUG9pbnRzUmVxdWVzdChzb3VyY2UsIHRhcmdldClcbiAgICApO1xuXG4gICAgaWYgKHNvdXJjZURpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXSAqIHRhcmdldERpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9PT0gLTEpIHtcbiAgICAgIGNvbnN0IHZlcnRpY2FsU3BsaXQ6IElQb2ludFtdID0gW1xuICAgICAgICB7IHg6IGNlbnRlckJldHdlZW5Qb2ludHMueCwgeTogc291cmNlR2FwLnkgfSxcbiAgICAgICAgeyB4OiBjZW50ZXJCZXR3ZWVuUG9pbnRzLngsIHk6IHRhcmdldEdhcC55IH0sXG4gICAgICBdO1xuICAgICAgY29uc3QgaG9yaXpvbnRhbFNwbGl0OiBJUG9pbnRbXSA9IFtcbiAgICAgICAgeyB4OiBzb3VyY2VHYXAueCwgeTogY2VudGVyQmV0d2VlblBvaW50cy55IH0sXG4gICAgICAgIHsgeDogdGFyZ2V0R2FwLngsIHk6IGNlbnRlckJldHdlZW5Qb2ludHMueSB9LFxuICAgICAgXTtcblxuICAgICAgaWYgKHNvdXJjZURpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9PT0gY3VycmVudERpcmVjdGlvbikge1xuICAgICAgICBwb2ludHMgPSBkaXJlY3Rpb25BY2Nlc3NvciA9PT0gJ3gnID8gdmVydGljYWxTcGxpdCA6IGhvcml6b250YWxTcGxpdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvaW50cyA9IGRpcmVjdGlvbkFjY2Vzc29yID09PSAneCcgPyBob3Jpem9udGFsU3BsaXQgOiB2ZXJ0aWNhbFNwbGl0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzb3VyY2VUYXJnZXQ6IElQb2ludFtdID0gWyB7IHg6IHNvdXJjZUdhcC54LCB5OiB0YXJnZXRHYXAueSB9IF07XG4gICAgICBjb25zdCB0YXJnZXRTb3VyY2U6IElQb2ludFtdID0gWyB7IHg6IHRhcmdldEdhcC54LCB5OiBzb3VyY2VHYXAueSB9IF07XG5cbiAgICAgIGlmIChkaXJlY3Rpb25BY2Nlc3NvciA9PT0gJ3gnKSB7XG4gICAgICAgIHBvaW50cyA9IHNvdXJjZURpcmVjdGlvbi54ID09PSBjdXJyZW50RGlyZWN0aW9uID8gdGFyZ2V0U291cmNlIDogc291cmNlVGFyZ2V0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9pbnRzID0gc291cmNlRGlyZWN0aW9uLnkgPT09IGN1cnJlbnREaXJlY3Rpb24gPyBzb3VyY2VUYXJnZXQgOiB0YXJnZXRTb3VyY2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChzb3VyY2VTaWRlID09PSB0YXJnZXRTaWRlKSB7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBNYXRoLmFicyhzb3VyY2VbIGRpcmVjdGlvbkFjY2Vzc29yIF0gLSB0YXJnZXRbIGRpcmVjdGlvbkFjY2Vzc29yIF0pO1xuXG4gICAgICAgIGlmIChkaWZmIDw9IG9mZnNldCkge1xuICAgICAgICAgIGNvbnN0IGdhcE9mZnNldCA9IE1hdGgubWluKG9mZnNldCAtIDEsIG9mZnNldCAtIGRpZmYpO1xuICAgICAgICAgIGlmIChzb3VyY2VEaXJlY3Rpb25bIGRpcmVjdGlvbkFjY2Vzc29yIF0gPT09IGN1cnJlbnREaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIHNvdXJjZUdhcE9mZnNldFsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9IChzb3VyY2VHYXBbIGRpcmVjdGlvbkFjY2Vzc29yIF0gPiBzb3VyY2VbIGRpcmVjdGlvbkFjY2Vzc29yIF0gPyAtMSA6IDEpICogZ2FwT2Zmc2V0O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXRHYXBPZmZzZXRbIGRpcmVjdGlvbkFjY2Vzc29yIF0gPSAodGFyZ2V0R2FwWyBkaXJlY3Rpb25BY2Nlc3NvciBdID4gdGFyZ2V0WyBkaXJlY3Rpb25BY2Nlc3NvciBdID8gLTEgOiAxKSAqIGdhcE9mZnNldDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNvdXJjZVNpZGUgIT09IHRhcmdldFNpZGUpIHtcbiAgICAgICAgY29uc3QgZGlyQWNjZXNzb3JPcHBvc2l0ZSA9IGRpcmVjdGlvbkFjY2Vzc29yID09PSAneCcgPyAneScgOiAneCc7XG4gICAgICAgIGNvbnN0IGlzU2FtZURpciA9IHNvdXJjZURpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9PT0gdGFyZ2V0RGlyZWN0aW9uWyBkaXJBY2Nlc3Nvck9wcG9zaXRlIF07XG4gICAgICAgIGNvbnN0IHNvdXJjZUd0VGFyZ2V0T3BwbyA9IHNvdXJjZUdhcFsgZGlyQWNjZXNzb3JPcHBvc2l0ZSBdID4gdGFyZ2V0R2FwWyBkaXJBY2Nlc3Nvck9wcG9zaXRlIF07XG4gICAgICAgIGNvbnN0IHNvdXJjZUx0VGFyZ2V0T3BwbyA9IHNvdXJjZUdhcFsgZGlyQWNjZXNzb3JPcHBvc2l0ZSBdIDwgdGFyZ2V0R2FwWyBkaXJBY2Nlc3Nvck9wcG9zaXRlIF07XG4gICAgICAgIGNvbnN0IGZsaXBTb3VyY2VUYXJnZXQgPVxuICAgICAgICAgICAgKHNvdXJjZURpcmVjdGlvblsgZGlyZWN0aW9uQWNjZXNzb3IgXSA9PT0gMSAmJlxuICAgICAgICAgICAgICAgICgoIWlzU2FtZURpciAmJiBzb3VyY2VHdFRhcmdldE9wcG8pIHx8IChpc1NhbWVEaXIgJiYgc291cmNlTHRUYXJnZXRPcHBvKSkpIHx8XG4gICAgICAgICAgICAoc291cmNlRGlyZWN0aW9uWyBkaXJlY3Rpb25BY2Nlc3NvciBdICE9PSAxICYmXG4gICAgICAgICAgICAgICAgKCghaXNTYW1lRGlyICYmIHNvdXJjZUx0VGFyZ2V0T3BwbykgfHwgKGlzU2FtZURpciAmJiBzb3VyY2VHdFRhcmdldE9wcG8pKSk7XG5cbiAgICAgICAgaWYgKGZsaXBTb3VyY2VUYXJnZXQpIHtcbiAgICAgICAgICBwb2ludHMgPSBkaXJlY3Rpb25BY2Nlc3NvciA9PT0gJ3gnID8gc291cmNlVGFyZ2V0IDogdGFyZ2V0U291cmNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aFBvaW50cyA9IFtcbiAgICAgIHNvdXJjZSxcbiAgICAgIHsgeDogc291cmNlR2FwLnggKyBzb3VyY2VHYXBPZmZzZXQueCwgeTogc291cmNlR2FwLnkgKyBzb3VyY2VHYXBPZmZzZXQueSB9LFxuICAgICAgLi4ucG9pbnRzLFxuICAgICAgeyB4OiB0YXJnZXRHYXAueCArIHRhcmdldEdhcE9mZnNldC54LCB5OiB0YXJnZXRHYXAueSArIHRhcmdldEdhcE9mZnNldC55IH0sXG4gICAgICB0YXJnZXQsXG4gICAgXTtcblxuICAgIGNvbnN0IGNlbnRlciA9IG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlcigpLmhhbmRsZShcbiAgICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0KHBhdGhQb2ludHMpXG4gICAgKTtcblxuICAgIHJldHVybiB7IHBvaW50czogcGF0aFBvaW50cywgY2VudGVyOiBjZW50ZXIgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlyZWN0aW9uKHNvdXJjZTogSVBvaW50LCBzb3VyY2VTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSwgdGFyZ2V0OiBJUG9pbnQpOiBJUG9pbnQge1xuICAgIGlmIChzb3VyY2VTaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5MRUZUIHx8IHNvdXJjZVNpZGUgPT09IEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUKSB7XG4gICAgICByZXR1cm4gc291cmNlLnggPCB0YXJnZXQueCA/IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKDEsIDApIDogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoLTEsIDApO1xuICAgIH1cbiAgICByZXR1cm4gc291cmNlLnkgPCB0YXJnZXQueSA/IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKDAsIDEpIDogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMCwgLTEpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXN0YW5jZShhOiBJUG9pbnQsIGI6IElQb2ludCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyhiLnggLSBhLngsIDIpICsgTWF0aC5wb3coYi55IC0gYS55LCAyKSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUGF0aChwb2ludHM6IElQb2ludFtdLCBib3JkZXJSYWRpdXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgbGV0IHBhdGggPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcCA9IHBvaW50c1sgaSBdO1xuICAgICAgbGV0IHNlZ21lbnQgPSAnJztcblxuICAgICAgaWYgKGkgPiAwICYmIGkgPCBwb2ludHMubGVuZ3RoIC0gMSkge1xuICAgICAgICBzZWdtZW50ID0gdGhpcy5nZXRCZW5kKHBvaW50c1sgaSAtIDEgXSwgcCwgcG9pbnRzWyBpICsgMSBdLCBib3JkZXJSYWRpdXMpO1xuICAgICAgfSBlbHNlIGlmIChpID09PSBwb2ludHMubGVuZ3RoIC0gMSkge1xuICAgICAgICBzZWdtZW50ID0gdGhpcy5idWlsZExhc3RMaW5lU2VnbWVudChpLCBwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlZ21lbnQgPSB0aGlzLmJ1aWxkTW92ZU9yTGluZVNlZ21lbnQoaSwgcCk7XG4gICAgICB9XG4gICAgICBwYXRoICs9IHNlZ21lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICBwcml2YXRlIGdldEJlbmQoYTogSVBvaW50LCBiOiBJUG9pbnQsIGM6IElQb2ludCwgc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBiZW5kU2l6ZSA9IE1hdGgubWluKHRoaXMuZGlzdGFuY2UoYSwgYikgLyAyLCB0aGlzLmRpc3RhbmNlKGIsIGMpIC8gMiwgc2l6ZSk7XG4gICAgY29uc3QgeyB4LCB5IH0gPSBiO1xuXG4gICAgaWYgKChhLnggPT09IHggJiYgeCA9PT0gYy54KSB8fCAoYS55ID09PSB5ICYmIHkgPT09IGMueSkpIHtcbiAgICAgIHJldHVybiBgTCR7IHggfSAkeyB5IH1gO1xuICAgIH1cblxuICAgIGlmIChhLnkgPT09IHkpIHtcbiAgICAgIGNvbnN0IHhEaXIgPSBhLnggPCBjLnggPyAtMSA6IDE7XG4gICAgICBjb25zdCB5RGlyID0gYS55IDwgYy55ID8gMSA6IC0xO1xuICAgICAgcmV0dXJuIGBMICR7IHggKyBiZW5kU2l6ZSAqIHhEaXIgfSwkeyB5IH1RICR7IHggfSwkeyB5IH0gJHsgeCB9LCR7IHkgKyBiZW5kU2l6ZSAqIHlEaXIgfWA7XG4gICAgfVxuXG4gICAgY29uc3QgeERpciA9IGEueCA8IGMueCA/IDEgOiAtMTtcbiAgICBjb25zdCB5RGlyID0gYS55IDwgYy55ID8gLTEgOiAxO1xuICAgIHJldHVybiBgTCAkeyB4IH0sJHsgeSArIGJlbmRTaXplICogeURpciB9USAkeyB4IH0sJHsgeSB9ICR7IHggKyBiZW5kU2l6ZSAqIHhEaXIgfSwkeyB5IH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZE1vdmVPckxpbmVTZWdtZW50KGluZGV4OiBudW1iZXIsIHBvaW50OiBJUG9pbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHsgaW5kZXggPT09IDAgPyAnTScgOiAnTCcgfSR7IHBvaW50LnggfSAkeyBwb2ludC55IH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZExhc3RMaW5lU2VnbWVudChpbmRleDogbnVtYmVyLCBwb2ludDogSVBvaW50KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYEwkeyBwb2ludC54ICsgMC4wMDAyIH0gJHsgcG9pbnQueSArIDAuMDAwMiB9YDtcbiAgfVxufVxuIl19
@@ -0,0 +1,68 @@
1
+ import { Directive } from '@angular/core';
2
+ import { LineExtensions, PointExtensions } from '@foblex/2d';
3
+ import { Subject } from 'rxjs';
4
+ import { mixinChangeSelection, mixinChangeVisibility } from '../../mixins';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../f-connection-builder";
7
+ const MIXIN_BASE = mixinChangeSelection(mixinChangeVisibility(class {
8
+ constructor(hostElement) {
9
+ this.hostElement = hostElement;
10
+ }
11
+ }));
12
+ export class FConnectionBase extends MIXIN_BASE {
13
+ constructor(elementReference, cFactory) {
14
+ super(elementReference.nativeElement);
15
+ this.cFactory = cFactory;
16
+ this.path = '';
17
+ this.line = LineExtensions.initialize();
18
+ this.stateChanges = new Subject();
19
+ this.penultimatePoint = PointExtensions.initialize();
20
+ }
21
+ initialize() {
22
+ this.fPath.initialize();
23
+ this.fGradient.initialize();
24
+ this.redraw();
25
+ }
26
+ isContains(element) {
27
+ var _a;
28
+ return ((_a = this.hostElement.firstChild) === null || _a === void 0 ? void 0 : _a.lastChild).contains(element);
29
+ }
30
+ setLine(source, sourceSide, target, targetSide) {
31
+ var _a, _b;
32
+ this.line = LineExtensions.initialize(source, target);
33
+ const pathResult = this.getPathResult(source, sourceSide, target, targetSide);
34
+ this.path = pathResult.path;
35
+ this.penultimatePoint = pathResult.penultimatePoint || source;
36
+ (_b = (_a = this.fConnectionCenter) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.setAttribute('style', this.getTransform(pathResult.connectionCenter));
37
+ }
38
+ getPathResult(source, sourceSide, target, targetSide) {
39
+ const radius = this.fRadius > 0 ? this.fRadius : 0;
40
+ const offset = this.fOffset > 0 ? this.fOffset : 1;
41
+ return this.cFactory.handle({
42
+ type: this.fType,
43
+ payload: { source, sourceSide, target, targetSide, radius, offset }
44
+ });
45
+ }
46
+ getTransform(position) {
47
+ return `position: absolute; pointerEvents: all; transform: translate(-50%, -50%); left: ${position.x}px; top: ${position.y}px`;
48
+ }
49
+ selectChild() {
50
+ this.fPath.select();
51
+ }
52
+ deselectChild() {
53
+ this.fPath.deselect();
54
+ }
55
+ redraw() {
56
+ this.fPath.setPath(this.path);
57
+ this.fSelection.setPath(this.path);
58
+ this.fGradient.redraw(this.line);
59
+ this.fDragHandle.redraw(this.penultimatePoint, this.line.point2);
60
+ this.fTextComponent.redraw(this.line);
61
+ }
62
+ }
63
+ FConnectionBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FConnectionBase, deps: [{ token: i0.ElementRef }, { token: i1.FConnectionFactory }], target: i0.ɵɵFactoryTarget.Directive });
64
+ FConnectionBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: FConnectionBase, usesInheritance: true, ngImport: i0 });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FConnectionBase, decorators: [{
66
+ type: Directive
67
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FConnectionFactory }]; } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1jb25uZWN0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQWlCLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWdCL0IsT0FBTyxFQUVMLG9CQUFvQixFQUFFLHFCQUFxQixFQUM1QyxNQUFNLGNBQWMsQ0FBQzs7O0FBRXRCLE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUNyQyxxQkFBcUIsQ0FDbkI7SUFDRSxZQUNTLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBRWpDLENBQUM7Q0FDRixDQUFDLENBQUMsQ0FBQztBQUdSLE1BQU0sT0FBZ0IsZUFBZ0IsU0FBUSxVQUFVO0lBd0R0RCxZQUNFLGdCQUF5QyxFQUNqQyxRQUE0QjtRQUVwQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFGOUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUF0Qy9CLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIsU0FBSSxHQUFVLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVqQyxpQkFBWSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBOEIxRCxxQkFBZ0IsR0FBVyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFPaEUsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBaUM7O1FBQ2pELE9BQU8sQ0FBQyxNQUFBLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSwwQ0FBRSxTQUF5QixDQUFBLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBYyxFQUFFLFVBQTZCLEVBQUUsTUFBYyxFQUFFLFVBQTZCOztRQUN6RyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDO1FBQzlELE1BQUEsTUFBQSxJQUFJLENBQUMsaUJBQWlCLDBDQUFFLGFBQWEsMENBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUFjLEVBQUUsVUFBNkIsRUFBRSxNQUFjLEVBQUUsVUFBNkI7UUFDaEgsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ3pCO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2hCLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO1NBQ3BFLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsUUFBZ0I7UUFDbkMsT0FBTyxtRkFBb0YsUUFBUSxDQUFDLENBQUUsWUFBYSxRQUFRLENBQUMsQ0FBRSxJQUFJLENBQUM7SUFDckksQ0FBQztJQUVlLFdBQVc7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRWUsYUFBYTtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OzZHQTlHbUIsZUFBZTtpR0FBZixlQUFlOzRGQUFmLGVBQWU7a0JBRHBDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaW5lLCBJUG9pbnQsIExpbmVFeHRlbnNpb25zLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVGQ29ubmVjdGlvbkJlaGF2aW9yIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi1iZWhhdmlvcic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi10eXBlJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uQ29sb3IgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tY29sb3InO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8gfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tZnJvbS10byc7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvblRleHQgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQgeyBJQ29ubmVjdGlvblBhdGggfSBmcm9tICcuL2YtcGF0aCc7XG5pbXBvcnQgeyBJQ29ubmVjdGlvbkdyYWRpZW50IH0gZnJvbSAnLi9mLWdyYWRpZW50JztcbmltcG9ydCB7IEZDb25uZWN0aW9uRHJhZ0hhbmRsZUNvbXBvbmVudCB9IGZyb20gJy4vZi1kcmFnLWhhbmRsZSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvblNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZi1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgSUNvbm5lY3Rpb25UZXh0IH0gZnJvbSAnLi9mLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQgeyBJSGFzU3RhdGVDaGFuZ2VzIH0gZnJvbSAnLi4vLi4vaS1oYXMtc3RhdGUtY2hhbmdlcyc7XG5pbXBvcnQgeyBGTWFya2VyQmFzZSB9IGZyb20gJy4uL2YtbWFya2VyJztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZDb25uZWN0aW9uRmFjdG9yeSB9IGZyb20gJy4uL2YtY29ubmVjdGlvbi1idWlsZGVyJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5pbXBvcnQge1xuICBJQ2FuQ2hhbmdlU2VsZWN0aW9uLCBJQ2FuQ2hhbmdlVmlzaWJpbGl0eSxcbiAgbWl4aW5DaGFuZ2VTZWxlY3Rpb24sIG1peGluQ2hhbmdlVmlzaWJpbGl0eVxufSBmcm9tICcuLi8uLi9taXhpbnMnO1xuXG5jb25zdCBNSVhJTl9CQVNFID0gbWl4aW5DaGFuZ2VTZWxlY3Rpb24oXG4gIG1peGluQ2hhbmdlVmlzaWJpbGl0eShcbiAgICBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudFxuICAgICAgKSB7XG4gICAgICB9XG4gICAgfSkpO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGQ29ubmVjdGlvbkJhc2UgZXh0ZW5kcyBNSVhJTl9CQVNFXG4gIGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50LCBJQ2FuQ2hhbmdlU2VsZWN0aW9uLFxuICAgICAgICAgICAgIElDYW5DaGFuZ2VWaXNpYmlsaXR5LFxuICAgICAgICAgICAgIElIYXNTdGF0ZUNoYW5nZXMsIElIYXNDb25uZWN0aW9uQ29sb3IsXG4gICAgICAgICAgICAgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8sIElIYXNDb25uZWN0aW9uVGV4dCB7XG5cbiAgcHVibGljIGFic3RyYWN0IG92ZXJyaWRlIGZJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmU3RhcnRDb2xvcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmRW5kQ29sb3I6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZk91dHB1dElkOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGZJbnB1dElkOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGZSYWRpdXM6IG51bWJlcjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk9mZnNldDogbnVtYmVyO1xuXG4gIHB1YmxpYyBwYXRoOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgbGluZTogSUxpbmUgPSBMaW5lRXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlQ2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGFic3RyYWN0IGZEcmFnZ2luZ0Rpc2FibGVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvdmVycmlkZSBmU2VsZWN0aW9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IGJvdW5kaW5nRWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVHlwZTogRUZDb25uZWN0aW9uVHlwZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkRlZnM6IEVsZW1lbnRSZWY8U1ZHRGVmc0VsZW1lbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmTWFya2VyczogRk1hcmtlckJhc2VbXTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlBhdGg6IElDb25uZWN0aW9uUGF0aDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkdyYWRpZW50OiBJQ29ubmVjdGlvbkdyYWRpZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmRHJhZ0hhbmRsZTogRkNvbm5lY3Rpb25EcmFnSGFuZGxlQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmU2VsZWN0aW9uOiBGQ29ubmVjdGlvblNlbGVjdGlvbkNvbXBvbmVudDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlRleHRDb21wb25lbnQ6IElDb25uZWN0aW9uVGV4dDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlRleHQ6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25DZW50ZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgcGVudWx0aW1hdGVQb2ludDogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBjRmFjdG9yeTogRkNvbm5lY3Rpb25GYWN0b3J5XG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLmZHcmFkaWVudC5pbml0aWFsaXplKCk7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NvbnRhaW5zKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5ob3N0RWxlbWVudC5maXJzdENoaWxkPy5sYXN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKGVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIHNldExpbmUoc291cmNlOiBJUG9pbnQsIHNvdXJjZVNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLCB0YXJnZXQ6IElQb2ludCwgdGFyZ2V0U2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmUgPSBMaW5lRXh0ZW5zaW9ucy5pbml0aWFsaXplKHNvdXJjZSwgdGFyZ2V0KTtcbiAgICBjb25zdCBwYXRoUmVzdWx0ID0gdGhpcy5nZXRQYXRoUmVzdWx0KHNvdXJjZSwgc291cmNlU2lkZSwgdGFyZ2V0LCB0YXJnZXRTaWRlKTtcbiAgICB0aGlzLnBhdGggPSBwYXRoUmVzdWx0LnBhdGg7XG4gICAgdGhpcy5wZW51bHRpbWF0ZVBvaW50ID0gcGF0aFJlc3VsdC5wZW51bHRpbWF0ZVBvaW50IHx8IHNvdXJjZTtcbiAgICB0aGlzLmZDb25uZWN0aW9uQ2VudGVyPy5uYXRpdmVFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgdGhpcy5nZXRUcmFuc2Zvcm0ocGF0aFJlc3VsdC5jb25uZWN0aW9uQ2VudGVyKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFBhdGhSZXN1bHQoc291cmNlOiBJUG9pbnQsIHNvdXJjZVNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLCB0YXJnZXQ6IElQb2ludCwgdGFyZ2V0U2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiBhbnkge1xuICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuZlJhZGl1cyA+IDAgPyB0aGlzLmZSYWRpdXMgOiAwO1xuICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuZk9mZnNldCA+IDAgPyB0aGlzLmZPZmZzZXQgOiAxO1xuICAgIHJldHVybiB0aGlzLmNGYWN0b3J5LmhhbmRsZShcbiAgICAgIHtcbiAgICAgICAgdHlwZTogdGhpcy5mVHlwZSxcbiAgICAgICAgcGF5bG9hZDogeyBzb3VyY2UsIHNvdXJjZVNpZGUsIHRhcmdldCwgdGFyZ2V0U2lkZSwgcmFkaXVzLCBvZmZzZXQgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFRyYW5zZm9ybShwb3NpdGlvbjogSVBvaW50KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHBvc2l0aW9uOiBhYnNvbHV0ZTsgcG9pbnRlckV2ZW50czogYWxsOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgbGVmdDogJHsgcG9zaXRpb24ueCB9cHg7IHRvcDogJHsgcG9zaXRpb24ueSB9cHhgO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHNlbGVjdENoaWxkKCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGguc2VsZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGVzZWxlY3RDaGlsZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoLmRlc2VsZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGguc2V0UGF0aCh0aGlzLnBhdGgpO1xuICAgIHRoaXMuZlNlbGVjdGlvbi5zZXRQYXRoKHRoaXMucGF0aCk7XG4gICAgdGhpcy5mR3JhZGllbnQucmVkcmF3KHRoaXMubGluZSk7XG4gICAgdGhpcy5mRHJhZ0hhbmRsZS5yZWRyYXcodGhpcy5wZW51bHRpbWF0ZVBvaW50LCB0aGlzLmxpbmUucG9pbnQyKTtcbiAgICB0aGlzLmZUZXh0Q29tcG9uZW50LnJlZHJhdyh0aGlzLmxpbmUpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { normalizeDomElementId } from '@foblex/utils';
2
+ export const F_CONNECTION_IDENTIFIERS = {
3
+ textId(connectionId) {
4
+ return normalizeDomElementId('connection_text_' + connectionId);
5
+ },
6
+ connectionForSelectionId(connectionId) {
7
+ return normalizeDomElementId('connection_for_selection_' + connectionId);
8
+ },
9
+ connectionId(connectionId) {
10
+ return normalizeDomElementId('connection_' + connectionId);
11
+ },
12
+ gradientId(connectionId) {
13
+ return normalizeDomElementId('connection_gradient_' + connectionId);
14
+ },
15
+ linkToGradient(connectionId) {
16
+ return `url(#${F_CONNECTION_IDENTIFIERS.gradientId(connectionId)})`;
17
+ },
18
+ linkToConnection(connectionId) {
19
+ return `#${F_CONNECTION_IDENTIFIERS.connectionId(connectionId)}`;
20
+ }
21
+ };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWlkZW50aWZpZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2YtY29ubmVjdGlvbi1pZGVudGlmaWVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFFdEMsTUFBTSxDQUFDLFlBQW9CO1FBQ3pCLE9BQU8scUJBQXFCLENBQUMsa0JBQWtCLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELHdCQUF3QixDQUFDLFlBQW9CO1FBQzNDLE9BQU8scUJBQXFCLENBQUMsMkJBQTJCLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELFlBQVksQ0FBQyxZQUFvQjtRQUMvQixPQUFPLHFCQUFxQixDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsVUFBVSxDQUFDLFlBQW9CO1FBQzdCLE9BQU8scUJBQXFCLENBQUMsc0JBQXNCLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELGNBQWMsQ0FBQyxZQUFvQjtRQUNqQyxPQUFPLFFBQVMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBRSxHQUFHLENBQUM7SUFDeEUsQ0FBQztJQUNELGdCQUFnQixDQUFDLFlBQW9CO1FBQ25DLE9BQU8sSUFBSyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFFLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0NBQ0YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZURvbUVsZW1lbnRJZCB9IGZyb20gJ0Bmb2JsZXgvdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgRl9DT05ORUNUSU9OX0lERU5USUZJRVJTID0ge1xuXG4gIHRleHRJZChjb25uZWN0aW9uSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZURvbUVsZW1lbnRJZCgnY29ubmVjdGlvbl90ZXh0XycgKyBjb25uZWN0aW9uSWQpO1xuICB9LFxuICBjb25uZWN0aW9uRm9yU2VsZWN0aW9uSWQoY29ubmVjdGlvbklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBub3JtYWxpemVEb21FbGVtZW50SWQoJ2Nvbm5lY3Rpb25fZm9yX3NlbGVjdGlvbl8nICsgY29ubmVjdGlvbklkKTtcbiAgfSxcbiAgY29ubmVjdGlvbklkKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbm9ybWFsaXplRG9tRWxlbWVudElkKCdjb25uZWN0aW9uXycgKyBjb25uZWN0aW9uSWQpO1xuICB9LFxuICBncmFkaWVudElkKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbm9ybWFsaXplRG9tRWxlbWVudElkKCdjb25uZWN0aW9uX2dyYWRpZW50XycgKyBjb25uZWN0aW9uSWQpO1xuICB9LFxuICBsaW5rVG9HcmFkaWVudChjb25uZWN0aW9uSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB1cmwoIyR7IEZfQ09OTkVDVElPTl9JREVOVElGSUVSUy5ncmFkaWVudElkKGNvbm5lY3Rpb25JZCkgfSlgO1xuICB9LFxuICBsaW5rVG9Db25uZWN0aW9uKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCMkeyBGX0NPTk5FQ1RJT05fSURFTlRJRklFUlMuY29ubmVjdGlvbklkKGNvbm5lY3Rpb25JZCkgfWA7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,70 @@
1
+ import { Directive, Inject } from '@angular/core';
2
+ import { F_CONNECTION_IDENTIFIERS } from '../f-connection-identifiers';
3
+ import { F_CONNECTION } from '../f-connection.injection-token';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@foblex/platform";
6
+ export class FConnectionTextPathDirective {
7
+ constructor(elementReference, base, fBrowser) {
8
+ this.elementReference = elementReference;
9
+ this.base = base;
10
+ this.fBrowser = fBrowser;
11
+ this.symbolWidth = 8;
12
+ this.fontSize = '12px';
13
+ }
14
+ get linkToConnection() {
15
+ return F_CONNECTION_IDENTIFIERS.linkToConnection(this.base.fId + this.base.fOutputId + this.base.fInputId);
16
+ }
17
+ get hostElement() {
18
+ return this.elementReference.nativeElement;
19
+ }
20
+ ngOnInit() {
21
+ this.hostElement.setAttribute('startOffset', '50%');
22
+ this.hostElement.setAttribute('text-anchor', `middle`);
23
+ this.symbolWidth = this.getSymbolWidth(this.base.fText || '');
24
+ }
25
+ getBBox() {
26
+ return this.hostElement.getBBox();
27
+ }
28
+ getFontStyles(element) {
29
+ const computedStyles = this.fBrowser.window.getComputedStyle(element);
30
+ return {
31
+ fontSize: computedStyles.fontSize,
32
+ fontFamily: computedStyles.fontFamily
33
+ };
34
+ }
35
+ getSymbolWidth(name) {
36
+ const text = name || 'connection';
37
+ const { fontFamily, fontSize } = this.getFontStyles(this.hostElement);
38
+ this.fontSize = fontSize;
39
+ const canvas = this.fBrowser.document.createElement('canvas');
40
+ let context;
41
+ try {
42
+ context = canvas.getContext('2d');
43
+ }
44
+ catch (e) {
45
+ context = null;
46
+ }
47
+ if (!context) {
48
+ return 0;
49
+ }
50
+ context.font = `${fontSize} ${fontFamily}`;
51
+ const metrics = context.measureText(text);
52
+ const symbolWidth = metrics.width / text.length;
53
+ return symbolWidth;
54
+ }
55
+ }
56
+ FConnectionTextPathDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FConnectionTextPathDirective, deps: [{ token: i0.ElementRef }, { token: F_CONNECTION }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Directive });
57
+ FConnectionTextPathDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: FConnectionTextPathDirective, selector: "textPath[f-connection-text-path]", host: { properties: { "attr.href": "linkToConnection" } }, ngImport: i0 });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FConnectionTextPathDirective, decorators: [{
59
+ type: Directive,
60
+ args: [{
61
+ selector: 'textPath[f-connection-text-path]',
62
+ host: {
63
+ '[attr.href]': 'linkToConnection'
64
+ }
65
+ }]
66
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
67
+ type: Inject,
68
+ args: [F_CONNECTION]
69
+ }] }, { type: i1.BrowserService }]; } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLXRleHQtcGF0aC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1jb25uZWN0aW9uLXRleHQvZi1jb25uZWN0aW9uLXRleHQtcGF0aC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFZL0QsTUFBTSxPQUFPLDRCQUE0QjtJQWV2QyxZQUNZLGdCQUFnRCxFQUMxQixJQUErQyxFQUNyRSxRQUF3QjtRQUZ4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdDO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQTJDO1FBQ3JFLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBTjdCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLGFBQVEsR0FBVyxNQUFNLENBQUM7SUFPakMsQ0FBQztJQWxCRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLHdCQUF3QixDQUFDLGdCQUFnQixDQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFZTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxPQUEyQjtRQUMvQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RSxPQUFPO1lBQ0wsUUFBUSxFQUFFLGNBQWMsQ0FBQyxRQUFRO1lBQ2pDLFVBQVUsRUFBRSxjQUFjLENBQUMsVUFBVTtTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFZO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxZQUFZLENBQUM7UUFDbEMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUQsSUFBSSxPQUFPLENBQUM7UUFFWixJQUFJO1lBQ0YsT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDaEI7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxDQUFDLENBQUM7U0FDVjtRQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBSSxRQUFTLElBQUssVUFBVyxFQUFFLENBQUM7UUFFL0MsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7MEhBN0RVLDRCQUE0Qiw0Q0FpQjNCLFlBQVk7OEdBakJiLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQU54QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLElBQUksRUFBRTt3QkFDSixhQUFhLEVBQUUsa0JBQWtCO3FCQUNsQztpQkFDRjs7MEJBa0JNLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9JREVOVElGSUVSUyB9IGZyb20gJy4uL2YtY29ubmVjdGlvbi1pZGVudGlmaWVycyc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT04gfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24uaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uVGV4dCB9IGZyb20gJy4uL2ktaGFzLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvbkZyb21UbyB9IGZyb20gJy4uL2ktaGFzLWNvbm5lY3Rpb24tZnJvbS10byc7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAndGV4dFBhdGhbZi1jb25uZWN0aW9uLXRleHQtcGF0aF0nLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmhyZWZdJzogJ2xpbmtUb0Nvbm5lY3Rpb24nXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25UZXh0UGF0aERpcmVjdGl2ZSBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCwgT25Jbml0IHtcblxuICBwdWJsaWMgZ2V0IGxpbmtUb0Nvbm5lY3Rpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRl9DT05ORUNUSU9OX0lERU5USUZJRVJTLmxpbmtUb0Nvbm5lY3Rpb24oXG4gICAgICB0aGlzLmJhc2UuZklkICsgdGhpcy5iYXNlLmZPdXRwdXRJZCArIHRoaXMuYmFzZS5mSW5wdXRJZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IFNWR1RleHRQYXRoRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIHN5bWJvbFdpZHRoOiBudW1iZXIgPSA4O1xuICBwdWJsaWMgZm9udFNpemU6IHN0cmluZyA9ICcxMnB4JztcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxTVkdUZXh0UGF0aEVsZW1lbnQ+LFxuICAgICAgQEluamVjdChGX0NPTk5FQ1RJT04pIHByaXZhdGUgYmFzZTogSUhhc0Nvbm5lY3Rpb25UZXh0ICYgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8sXG4gICAgICBwcml2YXRlIGZCcm93c2VyOiBCcm93c2VyU2VydmljZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3RhcnRPZmZzZXQnLCAnNTAlJyk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RleHQtYW5jaG9yJywgYG1pZGRsZWApO1xuICAgIHRoaXMuc3ltYm9sV2lkdGggPSB0aGlzLmdldFN5bWJvbFdpZHRoKHRoaXMuYmFzZS5mVGV4dCB8fCAnJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QkJveCgpOiBET01SZWN0IHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RWxlbWVudC5nZXRCQm94KCk7XG4gIH1cblxuICBwcml2YXRlIGdldEZvbnRTdHlsZXMoZWxlbWVudDogU1ZHVGV4dFBhdGhFbGVtZW50KTogeyBmb250U2l6ZTogc3RyaW5nLCBmb250RmFtaWx5OiBzdHJpbmcgfSB7XG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZXMgPSB0aGlzLmZCcm93c2VyLndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAgIHJldHVybiB7XG4gICAgICBmb250U2l6ZTogY29tcHV0ZWRTdHlsZXMuZm9udFNpemUsXG4gICAgICBmb250RmFtaWx5OiBjb21wdXRlZFN0eWxlcy5mb250RmFtaWx5XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3ltYm9sV2lkdGgobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCB0ZXh0ID0gbmFtZSB8fCAnY29ubmVjdGlvbic7XG4gICAgY29uc3QgeyBmb250RmFtaWx5LCBmb250U2l6ZSB9ID0gdGhpcy5nZXRGb250U3R5bGVzKHRoaXMuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMuZm9udFNpemUgPSBmb250U2l6ZTtcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLmZCcm93c2VyLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGxldCBjb250ZXh0O1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb250ZXh0ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb250ZXh0LmZvbnQgPSBgJHsgZm9udFNpemUgfSAkeyBmb250RmFtaWx5IH1gO1xuXG4gICAgY29uc3QgbWV0cmljcyA9IGNvbnRleHQubWVhc3VyZVRleHQodGV4dCk7XG4gICAgY29uc3Qgc3ltYm9sV2lkdGggPSBtZXRyaWNzLndpZHRoIC8gdGV4dC5sZW5ndGg7XG4gICAgcmV0dXJuIHN5bWJvbFdpZHRoO1xuICB9XG59XG5cbiJdfQ==
@@ -0,0 +1,72 @@
1
+ import { ChangeDetectionStrategy, Component, Inject, ViewChild } from "@angular/core";
2
+ import { PointExtensions } from '@foblex/2d';
3
+ import { FConnectionTextPathDirective } from './f-connection-text-path.directive';
4
+ import { F_CONNECTION_IDENTIFIERS } from '../f-connection-identifiers';
5
+ import { F_CONNECTION } from '../f-connection.injection-token';
6
+ import { CONNECTION_TEXT } from './i-connection-text';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./f-connection-text-path.directive";
9
+ export class FConnectionTextComponent {
10
+ constructor(elementReference, base) {
11
+ this.elementReference = elementReference;
12
+ this.base = base;
13
+ }
14
+ get textId() {
15
+ return F_CONNECTION_IDENTIFIERS.textId(this.base.fId + this.base.fOutputId + this.base.fInputId);
16
+ }
17
+ get hostElement() {
18
+ return this.elementReference.nativeElement;
19
+ }
20
+ get text() {
21
+ return this.base.fText || '';
22
+ }
23
+ redraw(line) {
24
+ const isTextReverse = FConnectionTextComponent.isTextReverse(line);
25
+ const dyValue = this.calculateDy(this.textPathDirective.fontSize, isTextReverse);
26
+ this.hostElement.setAttribute('dy', dyValue);
27
+ const textRect = this.textPathDirective.getBBox();
28
+ const textRectCenter = [textRect.x + textRect.width / 2, textRect.y + textRect.height / 2];
29
+ this.hostElement.setAttribute('transform', isTextReverse ? `rotate(180, ${textRectCenter})` : '');
30
+ const startOffset = FConnectionTextComponent.getTextStartOffset(line, this.base.fText || '', this.textPathDirective.symbolWidth);
31
+ if (startOffset < 0) {
32
+ this.hostElement.style.display = 'none';
33
+ }
34
+ else {
35
+ this.hostElement.style.display = 'unset';
36
+ }
37
+ }
38
+ calculateDy(fontSize, isTextReverse) {
39
+ const fontSizeNumber = parseFloat(fontSize);
40
+ const dyValue = isTextReverse ? fontSizeNumber * 1.5 : fontSizeNumber * -0.8;
41
+ return dyValue.toString();
42
+ }
43
+ static isTextReverse(line) {
44
+ return line.point1.x > line.point2.x;
45
+ }
46
+ static getTextStartOffset(line, name, symbolWidth) {
47
+ const vectorLength = PointExtensions.hypotenuse(line.point1, line.point2);
48
+ return vectorLength / 2 - ((name || '').length * symbolWidth) / 2;
49
+ }
50
+ }
51
+ FConnectionTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FConnectionTextComponent, deps: [{ token: i0.ElementRef }, { token: F_CONNECTION }], target: i0.ɵɵFactoryTarget.Component });
52
+ FConnectionTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FConnectionTextComponent, selector: "text[f-connection-text]", host: { properties: { "attr.id": "textId" }, classAttribute: "f-component f-connection-text" }, providers: [{ provide: CONNECTION_TEXT, useExisting: FConnectionTextComponent }], viewQueries: [{ propertyName: "textPathDirective", first: true, predicate: FConnectionTextPathDirective, descendants: true, static: true }], ngImport: i0, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:textPath f-connection-text-path>\n {{ text }}\n </svg:textPath>\n</ng-container>\n", directives: [{ type: i1.FConnectionTextPathDirective, selector: "textPath[f-connection-text-path]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FConnectionTextComponent, decorators: [{
54
+ type: Component,
55
+ args: [{
56
+ selector: "text[f-connection-text]",
57
+ templateUrl: "./f-connection-text.component.html",
58
+ changeDetection: ChangeDetectionStrategy.OnPush,
59
+ host: {
60
+ class: "f-component f-connection-text",
61
+ '[attr.id]': 'textId',
62
+ },
63
+ providers: [{ provide: CONNECTION_TEXT, useExisting: FConnectionTextComponent }],
64
+ }]
65
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
66
+ type: Inject,
67
+ args: [F_CONNECTION]
68
+ }] }]; }, propDecorators: { textPathDirective: [{
69
+ type: ViewChild,
70
+ args: [FConnectionTextPathDirective, { static: true }]
71
+ }] } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2YtY29ubmVjdGlvbi10ZXh0L2YtY29ubmVjdGlvbi10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9mLWNvbm5lY3Rpb24tdGV4dC9mLWNvbm5lY3Rpb24tdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFBYyxNQUFNLEVBQUUsU0FBUyxFQUN6QyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVMsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDOzs7QUFZdkUsTUFBTSxPQUFPLHdCQUF3QjtJQW1CbkMsWUFDWSxnQkFBNEMsRUFDdEIsSUFBK0M7UUFEckUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE0QjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUEyQztJQUVqRixDQUFDO0lBckJELElBQVcsTUFBTTtRQUNmLE9BQU8sd0JBQXdCLENBQUMsTUFBTSxDQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFF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QU07b0JBQy9DLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsK0JBQStCO3dCQUN0QyxXQUFXLEVBQUUsUUFBUTtxQkFDdEI7b0JBQ0QsU0FBUyxFQUFFLENBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsMEJBQTBCLEVBQUUsQ0FBRTtpQkFDbkY7OzBCQXNCTSxNQUFNOzJCQUFDLFlBQVk7NENBSmpCLGlCQUFpQjtzQkFEdkIsU0FBUzt1QkFBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIFZpZXdDaGlsZFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSUxpbmUsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25UZXh0UGF0aERpcmVjdGl2ZSB9IGZyb20gJy4vZi1jb25uZWN0aW9uLXRleHQtcGF0aC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX0lERU5USUZJRVJTIH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLWlkZW50aWZpZXJzJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uVGV4dCB9IGZyb20gJy4uL2ktaGFzLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvbkZyb21UbyB9IGZyb20gJy4uL2ktaGFzLWNvbm5lY3Rpb24tZnJvbS10byc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT04gfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24uaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IENPTk5FQ1RJT05fVEVYVCwgSUNvbm5lY3Rpb25UZXh0IH0gZnJvbSAnLi9pLWNvbm5lY3Rpb24tdGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJ0ZXh0W2YtY29ubmVjdGlvbi10ZXh0XVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2YtY29ubmVjdGlvbi10ZXh0LmNvbXBvbmVudC5odG1sXCIsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IFwiZi1jb21wb25lbnQgZi1jb25uZWN0aW9uLXRleHRcIixcbiAgICAnW2F0dHIuaWRdJzogJ3RleHRJZCcsXG4gIH0sXG4gIHByb3ZpZGVyczogWyB7IHByb3ZpZGU6IENPTk5FQ1RJT05fVEVYVCwgdXNlRXhpc3Rpbmc6IEZDb25uZWN0aW9uVGV4dENvbXBvbmVudCB9IF0sXG59KVxuZXhwb3J0IGNsYXNzIEZDb25uZWN0aW9uVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIElDb25uZWN0aW9uVGV4dCB7XG5cbiAgcHVibGljIGdldCB0ZXh0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRl9DT05ORUNUSU9OX0lERU5USUZJRVJTLnRleHRJZChcbiAgICAgIHRoaXMuYmFzZS5mSWQgKyB0aGlzLmJhc2UuZk91dHB1dElkICsgdGhpcy5iYXNlLmZJbnB1dElkXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaG9zdEVsZW1lbnQoKTogU1ZHVGV4dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJhc2UuZlRleHQgfHwgJyc7XG4gIH1cblxuICBAVmlld0NoaWxkKEZDb25uZWN0aW9uVGV4dFBhdGhEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyB0ZXh0UGF0aERpcmVjdGl2ZSE6IEZDb25uZWN0aW9uVGV4dFBhdGhEaXJlY3RpdmU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8U1ZHVGV4dEVsZW1lbnQ+LFxuICAgICAgQEluamVjdChGX0NPTk5FQ1RJT04pIHByaXZhdGUgYmFzZTogSUhhc0Nvbm5lY3Rpb25UZXh0ICYgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8sXG4gICkge1xuICB9XG5cbiAgcHVibGljIHJlZHJhdyhsaW5lOiBJTGluZSk6IHZvaWQge1xuXG4gICAgY29uc3QgaXNUZXh0UmV2ZXJzZTogYm9vbGVhbiA9IEZDb25uZWN0aW9uVGV4dENvbXBvbmVudC5pc1RleHRSZXZlcnNlKGxpbmUpO1xuICAgIGNvbnN0IGR5VmFsdWUgPSB0aGlzLmNhbGN1bGF0ZUR5KHRoaXMudGV4dFBhdGhEaXJlY3RpdmUuZm9udFNpemUsIGlzVGV4dFJldmVyc2UpO1xuXG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2R5JywgZHlWYWx1ZSk7XG5cbiAgICBjb25zdCB0ZXh0UmVjdCA9IHRoaXMudGV4dFBhdGhEaXJlY3RpdmUuZ2V0QkJveCgpO1xuICAgIGNvbnN0IHRleHRSZWN0Q2VudGVyID0gWyB0ZXh0UmVjdC54ICsgdGV4dFJlY3Qud2lkdGggLyAyLCB0ZXh0UmVjdC55ICsgdGV4dFJlY3QuaGVpZ2h0IC8gMiBdO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCBpc1RleHRSZXZlcnNlID8gYHJvdGF0ZSgxODAsICR7IHRleHRSZWN0Q2VudGVyIH0pYCA6ICcnKTtcbiAgICBjb25zdCBzdGFydE9mZnNldCA9IEZDb25uZWN0aW9uVGV4dENvbXBvbmVudC5nZXRUZXh0U3RhcnRPZmZzZXQobGluZSwgdGhpcy5iYXNlLmZUZXh0IHx8ICcnLCB0aGlzLnRleHRQYXRoRGlyZWN0aXZlLnN5bWJvbFdpZHRoKTtcbiAgICBpZiAoc3RhcnRPZmZzZXQgPCAwKSB7XG5cbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9IGVsc2Uge1xuXG4gICAgICB0aGlzLmhvc3RFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAndW5zZXQnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlRHkoZm9udFNpemU6IHN0cmluZywgaXNUZXh0UmV2ZXJzZTogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgY29uc3QgZm9udFNpemVOdW1iZXIgPSBwYXJzZUZsb2F0KGZvbnRTaXplKTtcblxuICAgIGNvbnN0IGR5VmFsdWUgPSBpc1RleHRSZXZlcnNlID8gZm9udFNpemVOdW1iZXIgKiAxLjUgOiBmb250U2l6ZU51bWJlciAqIC0wLjg7XG5cbiAgICByZXR1cm4gZHlWYWx1ZS50b1N0cmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNUZXh0UmV2ZXJzZShsaW5lOiBJTGluZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBsaW5lLnBvaW50MS54ID4gbGluZS5wb2ludDIueDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFRleHRTdGFydE9mZnNldChsaW5lOiBJTGluZSwgbmFtZTogc3RyaW5nLCBzeW1ib2xXaWR0aDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCB2ZWN0b3JMZW5ndGg6IG51bWJlciA9IFBvaW50RXh0ZW5zaW9ucy5oeXBvdGVudXNlKGxpbmUucG9pbnQxLCBsaW5lLnBvaW50Mik7XG4gICAgcmV0dXJuIHZlY3Rvckxlbmd0aCAvIDIgLSAoKG5hbWUgfHwgJycpLmxlbmd0aCAqIHN5bWJvbFdpZHRoKSAvIDI7XG4gIH1cbn1cblxuIiwiPG5nLWNvbnRhaW5lciB4bWxuczpzdmc9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxzdmc6dGV4dFBhdGggZi1jb25uZWN0aW9uLXRleHQtcGF0aD5cbiAgICAgICAge3sgdGV4dCB9fVxuICAgIDwvc3ZnOnRleHRQYXRoPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const CONNECTION_TEXT = new InjectionToken('CONNECTION_TEXT');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1jb25uZWN0aW9uLXRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1jb25uZWN0aW9uLXRleHQvaS1jb25uZWN0aW9uLXRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQWtCLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTGluZSB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBDT05ORUNUSU9OX1RFWFQgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUNvbm5lY3Rpb25UZXh0PignQ09OTkVDVElPTl9URVhUJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbm5lY3Rpb25UZXh0IGV4dGVuZHMgSUhhc0hvc3RFbGVtZW50IHtcblxuICByZWRyYXcobGluZTogSUxpbmUpOiB2b2lkO1xufVxuIl19
@@ -0,0 +1,38 @@
1
+ import { ChangeDetectionStrategy, Component } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export const F_CONNECTION_DRAG_HANDLE_CLASS = 'f-connection-drag-handle';
4
+ export class FConnectionDragHandleComponent {
5
+ constructor(elementReference) {
6
+ this.elementReference = elementReference;
7
+ this.class = F_CONNECTION_DRAG_HANDLE_CLASS;
8
+ }
9
+ get hostElement() {
10
+ return this.elementReference.nativeElement;
11
+ }
12
+ redraw(penultimatePoint, endPoint) {
13
+ const point = this.calculateCircleCenter(penultimatePoint, endPoint, 8);
14
+ this.hostElement.setAttribute('cx', point.x.toString());
15
+ this.hostElement.setAttribute('cy', point.y.toString());
16
+ }
17
+ calculateCircleCenter(start, end, radius) {
18
+ const direction = { x: end.x - start.x, y: end.y - start.y };
19
+ const length = Math.sqrt(direction.x * direction.x + direction.y * direction.y) || 1;
20
+ const unitDirection = { x: direction.x / length, y: direction.y / length };
21
+ const scaledDirection = { x: unitDirection.x * radius, y: unitDirection.y * radius };
22
+ return { x: end.x - scaledDirection.x, y: end.y - scaledDirection.y };
23
+ }
24
+ }
25
+ FConnectionDragHandleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FConnectionDragHandleComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
26
+ FConnectionDragHandleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]", host: { properties: { "class": "class" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FConnectionDragHandleComponent, decorators: [{
28
+ type: Component,
29
+ args: [{
30
+ selector: "circle[f-connection-drag-handle]",
31
+ template: '',
32
+ changeDetection: ChangeDetectionStrategy.OnPush,
33
+ host: {
34
+ '[class]': 'class'
35
+ }
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9mLWRyYWctaGFuZGxlL2YtY29ubmVjdGlvbi1kcmFnLWhhbmRsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7O0FBSXZCLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLDBCQUEwQixDQUFDO0FBVXpFLE1BQU0sT0FBTyw4QkFBOEI7SUFRekMsWUFDVSxnQkFBOEM7UUFBOUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE4QjtRQVB4QyxVQUFLLEdBQVcsOEJBQThCLENBQUM7SUFTL0QsQ0FBQztJQVBELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQU9NLE1BQU0sQ0FBQyxnQkFBd0IsRUFBRSxRQUFnQjtRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8scUJBQXFCLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxNQUFjO1FBQ3RFLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQzNFLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3JGLE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4RSxDQUFDOzs0SEF6QlUsOEJBQThCO2dIQUE5Qiw4QkFBOEIsb0hBTi9CLEVBQUU7NEZBTUQsOEJBQThCO2tCQVIxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxJQUFJLEVBQUU7d0JBQ0osU0FBUyxFQUFFLE9BQU87cUJBQ25CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJSGFzSG9zdEVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9pLWhhcy1ob3N0LWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgRl9DT05ORUNUSU9OX0RSQUdfSEFORExFX0NMQVNTID0gJ2YtY29ubmVjdGlvbi1kcmFnLWhhbmRsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjaXJjbGVbZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlXVwiLFxuICB0ZW1wbGF0ZTogJycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzc10nOiAnY2xhc3MnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25EcmFnSGFuZGxlQ29tcG9uZW50IGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgY2xhc3M6IHN0cmluZyA9IEZfQ09OTkVDVElPTl9EUkFHX0hBTkRMRV9DTEFTUztcblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IFNWR0NpcmNsZUVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxTVkdDaXJjbGVFbGVtZW50PlxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcocGVudWx0aW1hdGVQb2ludDogSVBvaW50LCBlbmRQb2ludDogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9pbnQgPSB0aGlzLmNhbGN1bGF0ZUNpcmNsZUNlbnRlcihwZW51bHRpbWF0ZVBvaW50LCBlbmRQb2ludCwgOCk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2N4JywgcG9pbnQueC50b1N0cmluZygpKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnY3knLCBwb2ludC55LnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVDaXJjbGVDZW50ZXIoc3RhcnQ6IElQb2ludCwgZW5kOiBJUG9pbnQsIHJhZGl1czogbnVtYmVyKTogSVBvaW50IHtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSB7IHg6IGVuZC54IC0gc3RhcnQueCwgeTogZW5kLnkgLSBzdGFydC55IH07XG4gICAgY29uc3QgbGVuZ3RoID0gTWF0aC5zcXJ0KGRpcmVjdGlvbi54ICogZGlyZWN0aW9uLnggKyBkaXJlY3Rpb24ueSAqIGRpcmVjdGlvbi55KSB8fCAxO1xuICAgIGNvbnN0IHVuaXREaXJlY3Rpb24gPSB7IHg6IGRpcmVjdGlvbi54IC8gbGVuZ3RoLCB5OiBkaXJlY3Rpb24ueSAvIGxlbmd0aCB9O1xuICAgIGNvbnN0IHNjYWxlZERpcmVjdGlvbiA9IHsgeDogdW5pdERpcmVjdGlvbi54ICogcmFkaXVzLCB5OiB1bml0RGlyZWN0aW9uLnkgKiByYWRpdXMgfTtcbiAgICByZXR1cm4geyB4OiBlbmQueCAtIHNjYWxlZERpcmVjdGlvbi54LCB5OiBlbmQueSAtIHNjYWxlZERpcmVjdGlvbi55IH07XG4gIH1cbn1cblxuIl19
@@ -0,0 +1,69 @@
1
+ import { ChangeDetectionStrategy, Component, Inject } from "@angular/core";
2
+ import { Point } from '@foblex/2d';
3
+ import { F_CONNECTION_IDENTIFIERS } from '../f-connection-identifiers';
4
+ import { F_CONNECTION } from '../f-connection.injection-token';
5
+ import { CONNECTION_GRADIENT } from './i-connection-gradient';
6
+ import * as i0 from "@angular/core";
7
+ export class FConnectionGradientComponent {
8
+ constructor(elementReference, base) {
9
+ this.elementReference = elementReference;
10
+ this.base = base;
11
+ }
12
+ get gradientId() {
13
+ return F_CONNECTION_IDENTIFIERS.gradientId(this.base.fId + this.base.fOutputId + this.base.fInputId);
14
+ }
15
+ get hostElement() {
16
+ return this.elementReference.nativeElement;
17
+ }
18
+ get stop1Element() {
19
+ return this.elementReference.nativeElement.children.item(0);
20
+ }
21
+ get stop2Element() {
22
+ return this.elementReference.nativeElement.children.item(1);
23
+ }
24
+ initialize() {
25
+ this.stop1Element.setAttribute('offset', '0%');
26
+ this.stop2Element.setAttribute('offset', '100%');
27
+ }
28
+ updateGradient() {
29
+ this.setFromColor(this.base.fStartColor);
30
+ this.setToColor(this.base.fEndColor);
31
+ }
32
+ setFromColor(color) {
33
+ this.stop1Element.setAttribute('stop-color', color || 'transparent');
34
+ }
35
+ setToColor(color) {
36
+ this.stop2Element.setAttribute('stop-color', color || 'transparent');
37
+ }
38
+ redraw(line) {
39
+ const x = line.point2.x - line.point1.x;
40
+ const y = line.point2.y - line.point1.y;
41
+ const distance = Math.sqrt(x * x + y * y) || 0.01;
42
+ const from = new Point(0.5 - (0.5 * x) / distance, 0.5 - (0.5 * y) / distance);
43
+ this.hostElement.setAttribute('x1', from.x.toString());
44
+ this.hostElement.setAttribute('y1', from.y.toString());
45
+ const to = new Point(0.5 + (0.5 * x) / distance, 0.5 + (0.5 * y) / distance);
46
+ this.hostElement.setAttribute('x2', to.x.toString());
47
+ this.hostElement.setAttribute('y2', to.y.toString());
48
+ this.updateGradient();
49
+ }
50
+ }
51
+ FConnectionGradientComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FConnectionGradientComponent, deps: [{ token: i0.ElementRef }, { token: F_CONNECTION }], target: i0.ɵɵFactoryTarget.Component });
52
+ FConnectionGradientComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]", host: { properties: { "attr.id": "gradientId" }, classAttribute: "f-component f-connection-gradient" }, providers: [{ provide: CONNECTION_GRADIENT, useExisting: FConnectionGradientComponent }], 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 });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FConnectionGradientComponent, decorators: [{
54
+ type: Component,
55
+ args: [{
56
+ selector: "linearGradient[fConnectionGradient]",
57
+ templateUrl: "./f-connection-gradient.component.html",
58
+ changeDetection: ChangeDetectionStrategy.OnPush,
59
+ host: {
60
+ class: "f-component f-connection-gradient",
61
+ '[attr.id]': 'gradientId'
62
+ },
63
+ providers: [{ provide: CONNECTION_GRADIENT, useExisting: FConnectionGradientComponent }],
64
+ }]
65
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
66
+ type: Inject,
67
+ args: [F_CONNECTION]
68
+ }] }]; } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWdyYWRpZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9mLWdyYWRpZW50L2YtY29ubmVjdGlvbi1ncmFkaWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1ncmFkaWVudC9mLWNvbm5lY3Rpb24tZ3JhZGllbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFTLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUd2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUF1QixNQUFNLHlCQUF5QixDQUFDOztBQVluRixNQUFNLE9BQU8sNEJBQTRCO0lBb0J2QyxZQUNVLGdCQUFzRCxFQUNoQyxJQUFnRDtRQUR0RSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXNDO1FBQ2hDLFNBQUksR0FBSixJQUFJLENBQTRDO0lBRWhGLENBQUM7SUF0QkQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sd0JBQXdCLENBQUMsVUFBVSxDQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lB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QVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsV0FBVyxFQUFFLHdDQUF3QztvQkFDckQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsbUNBQW1DO3dCQUMxQyxXQUFXLEVBQUUsWUFBWTtxQkFDMUI7b0JBQ0QsU0FBUyxFQUFFLENBQUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyw4QkFBOEIsRUFBRSxDQUFFO2lCQUMzRjs7MEJBdUJJLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJTGluZSwgUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9JREVOVElGSUVSUyB9IGZyb20gJy4uL2YtY29ubmVjdGlvbi1pZGVudGlmaWVycyc7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvbkZyb21UbyB9IGZyb20gJy4uL2ktaGFzLWNvbm5lY3Rpb24tZnJvbS10byc7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvbkNvbG9yIH0gZnJvbSAnLi4vaS1oYXMtY29ubmVjdGlvbi1jb2xvcic7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT04gfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24uaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IENPTk5FQ1RJT05fR1JBRElFTlQsIElDb25uZWN0aW9uR3JhZGllbnQgfSBmcm9tICcuL2ktY29ubmVjdGlvbi1ncmFkaWVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJsaW5lYXJHcmFkaWVudFtmQ29ubmVjdGlvbkdyYWRpZW50XVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2YtY29ubmVjdGlvbi1ncmFkaWVudC5jb21wb25lbnQuaHRtbFwiLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiBcImYtY29tcG9uZW50IGYtY29ubmVjdGlvbi1ncmFkaWVudFwiLFxuICAgICdbYXR0ci5pZF0nOiAnZ3JhZGllbnRJZCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbIHsgcHJvdmlkZTogQ09OTkVDVElPTl9HUkFESUVOVCwgdXNlRXhpc3Rpbmc6IEZDb25uZWN0aW9uR3JhZGllbnRDb21wb25lbnQgfSBdLFxufSlcbmV4cG9ydCBjbGFzcyBGQ29ubmVjdGlvbkdyYWRpZW50Q29tcG9uZW50IGltcGxlbWVudHMgSUNvbm5lY3Rpb25HcmFkaWVudCB7XG5cbiAgcHVibGljIGdldCBncmFkaWVudElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEZfQ09OTkVDVElPTl9JREVOVElGSUVSUy5ncmFkaWVudElkKFxuICAgICAgdGhpcy5iYXNlLmZJZCArIHRoaXMuYmFzZS5mT3V0cHV0SWQgKyB0aGlzLmJhc2UuZklucHV0SWRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBob3N0RWxlbWVudCgpOiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RvcDFFbGVtZW50KCk6IFNWR1N0b3BFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbSgwKSBhcyBTVkdTdG9wRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RvcDJFbGVtZW50KCk6IFNWR1N0b3BFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbSgxKSBhcyBTVkdTdG9wRWxlbWVudDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ+LFxuICAgIEBJbmplY3QoRl9DT05ORUNUSU9OKSBwcml2YXRlIGJhc2U6IElIYXNDb25uZWN0aW9uQ29sb3IgJiBJSGFzQ29ubmVjdGlvbkZyb21UbyxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3AxRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ29mZnNldCcsICcwJScpO1xuICAgIHRoaXMuc3RvcDJFbGVtZW50LnNldEF0dHJpYnV0ZSgnb2Zmc2V0JywgJzEwMCUnKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlR3JhZGllbnQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRGcm9tQ29sb3IodGhpcy5iYXNlLmZTdGFydENvbG9yKTtcbiAgICB0aGlzLnNldFRvQ29sb3IodGhpcy5iYXNlLmZFbmRDb2xvcik7XG4gIH1cblxuICBwcml2YXRlIHNldEZyb21Db2xvcihjb2xvcjogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wMUVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdG9wLWNvbG9yJywgY29sb3IgfHwgJ3RyYW5zcGFyZW50Jyk7XG4gIH1cblxuICBwcml2YXRlIHNldFRvQ29sb3IoY29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcDJFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3RvcC1jb2xvcicsIGNvbG9yIHx8ICd0cmFuc3BhcmVudCcpO1xuICB9XG5cbiAgcHVibGljIHJlZHJhdyhsaW5lOiBJTGluZSk6IHZvaWQge1xuICAgIGNvbnN0IHg6IG51bWJlciA9IGxpbmUucG9pbnQyLnggLSBsaW5lLnBvaW50MS54O1xuICAgIGNvbnN0IHk6IG51bWJlciA9IGxpbmUucG9pbnQyLnkgLSBsaW5lLnBvaW50MS55O1xuICAgIGNvbnN0IGRpc3RhbmNlOiBudW1iZXIgPSBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSkgfHwgMC4wMTtcblxuICAgIGNvbnN0IGZyb20gPSBuZXcgUG9pbnQoMC41IC0gKDAuNSAqIHgpIC8gZGlzdGFuY2UsIDAuNSAtICgwLjUgKiB5KSAvIGRpc3RhbmNlKTtcblxuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCd4MScsIGZyb20ueC50b1N0cmluZygpKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgneTEnLCBmcm9tLnkudG9TdHJpbmcoKSk7XG5cbiAgICBjb25zdCB0byA9IG5ldyBQb2ludCgwLjUgKyAoMC41ICogeCkgLyBkaXN0YW5jZSwgMC41ICsgKDAuNSAqIHkpIC8gZGlzdGFuY2UpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCd4MicsIHRvLngudG9TdHJpbmcoKSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3kyJywgdG8ueS50b1N0cmluZygpKTtcbiAgICB0aGlzLnVwZGF0ZUdyYWRpZW50KCk7XG4gIH1cbn1cblxuIiwiPG5nLWNvbnRhaW5lciB4bWxuczpzdmc9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxzdmc6c3RvcC8+XG4gICAgPHN2ZzpzdG9wLz5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const CONNECTION_GRADIENT = new InjectionToken('CONNECTION_GRADIENT');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1jb25uZWN0aW9uLWdyYWRpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2YtZ3JhZGllbnQvaS1jb25uZWN0aW9uLWdyYWRpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQXNCLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTGluZSB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBDT05ORUNUSU9OX0dSQURJRU5UID0gbmV3IEluamVjdGlvblRva2VuPElDb25uZWN0aW9uR3JhZGllbnQ+KCdDT05ORUNUSU9OX0dSQURJRU5UJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbm5lY3Rpb25HcmFkaWVudCBleHRlbmRzIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgaW5pdGlhbGl6ZSgpOiB2b2lkO1xuXG4gIHJlZHJhdyhsaW5lOiBJTGluZSk6IHZvaWQ7XG59XG4iXX0=