@foblex/flow 17.9.21 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/domain/css-cls.d.ts +0 -3
- package/domain/f-background/add-pattern-to-background/{add-pattern-to-background.execution.d.ts → add-pattern-to-background.d.ts} +4 -3
- package/domain/f-background/add-pattern-to-background/index.d.ts +1 -1
- package/domain/f-background/providers.d.ts +2 -2
- package/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.d.ts +3 -3
- package/domain/f-connection/add-connection-for-create-to-store/{add-connection-for-create-to-store.execution.d.ts → add-connection-for-create-to-store.d.ts} +4 -4
- package/domain/f-connection/add-connection-for-create-to-store/index.d.ts +1 -1
- package/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.d.ts +3 -3
- package/domain/f-connection/add-connection-marker-to-store/{add-connection-marker-to-store.execution.d.ts → add-connection-marker-to-store.d.ts} +4 -4
- package/domain/f-connection/add-connection-marker-to-store/index.d.ts +1 -1
- package/domain/f-connection/add-connection-to-store/add-connection-to-store-request.d.ts +3 -3
- package/domain/f-connection/add-connection-to-store/{add-connection-to-store.execution.d.ts → add-connection-to-store.d.ts} +4 -4
- package/domain/f-connection/add-connection-to-store/index.d.ts +1 -1
- package/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.d.ts +3 -3
- package/domain/f-connection/add-snap-connection-to-store/{add-snap-connection-to-store.execution.d.ts → add-snap-connection-to-store.d.ts} +4 -4
- package/domain/f-connection/add-snap-connection-to-store/index.d.ts +1 -1
- package/domain/f-connection/create-connection-markers/create-connection-markers-request.d.ts +3 -3
- package/domain/f-connection/create-connection-markers/{create-connection-markers.execution.d.ts → create-connection-markers.d.ts} +7 -8
- package/domain/f-connection/create-connection-markers/index.d.ts +1 -1
- package/domain/f-connection/index.d.ts +1 -1
- package/domain/f-connection/providers.d.ts +11 -11
- package/domain/f-connection/redraw-connections/redraw-connections.d.ts +6 -4
- package/domain/f-connection/remove-connection-for-create-from-store/index.d.ts +1 -1
- package/domain/f-connection/remove-connection-for-create-from-store/{remove-connection-for-create-from-store.execution.d.ts → remove-connection-for-create-from-store.d.ts} +4 -4
- package/domain/f-connection/remove-connection-from-store/index.d.ts +1 -1
- package/domain/f-connection/remove-connection-from-store/remove-connection-from-store-request.d.ts +3 -3
- package/domain/f-connection/remove-connection-from-store/{remove-connection-from-store.execution.d.ts → remove-connection-from-store.d.ts} +4 -5
- package/domain/f-connection/remove-connection-marker-from-store/index.d.ts +1 -1
- package/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.d.ts +3 -3
- package/domain/f-connection/remove-connection-marker-from-store/{remove-connection-marker-from-store.execution.d.ts → remove-connection-marker-from-store.d.ts} +4 -4
- package/domain/f-connection/remove-connection-waypoint/index.d.ts +2 -0
- package/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint-request.d.ts +6 -0
- package/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint.d.ts +11 -0
- package/domain/f-connection/remove-snap-connection-from-store/index.d.ts +1 -1
- package/domain/f-connection/remove-snap-connection-from-store/{remove-snap-connection-from-store.execution.d.ts → remove-snap-connection-from-store.d.ts} +4 -4
- package/domain/f-draggable/on-pointer-move/on-pointer-move.execution.d.ts +1 -1
- package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.d.ts +1 -1
- package/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state-request.d.ts +3 -0
- package/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state.d.ts +14 -0
- package/domain/f-flow/calculate-flow-state/calculate-connections-state/index.d.ts +2 -0
- package/domain/f-flow/calculate-flow-state/calculate-flow-state-request.d.ts +3 -0
- package/domain/f-flow/calculate-flow-state/calculate-flow-state.d.ts +17 -0
- package/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state-request.d.ts +6 -0
- package/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state.d.ts +15 -0
- package/domain/f-flow/calculate-flow-state/calculate-nodes-state/index.d.ts +2 -0
- package/domain/f-flow/calculate-flow-state/i-f-flow-state-connection.d.ts +13 -0
- package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state-connector.d.ts +1 -1
- package/domain/f-flow/{get-flow-state → calculate-flow-state}/index.d.ts +4 -4
- package/domain/f-flow/calculate-flow-state/providers.d.ts +7 -0
- package/domain/f-flow/index.d.ts +1 -1
- package/domain/f-flow/providers.d.ts +1 -1
- package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.d.ts +1 -1
- package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.d.ts +1 -1
- package/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.d.ts +1 -1
- package/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.d.ts +1 -1
- package/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.d.ts +1 -1
- package/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.d.ts +1 -1
- package/domain/f-node/calculate-input-connections/calculate-input-connections.d.ts +1 -1
- package/domain/f-node/calculate-output-connections/calculate-output-connections.d.ts +1 -1
- package/domain/f-selection/calculate-selectable-items/calculate-selectable-items-request.d.ts +3 -0
- package/domain/f-selection/{get-can-be-selected-items/get-can-be-selected-items.execution.d.ts → calculate-selectable-items/calculate-selectable-items.d.ts} +8 -8
- package/domain/f-selection/calculate-selectable-items/index.d.ts +3 -0
- package/domain/f-selection/index.d.ts +1 -1
- package/domain/f-selection/providers.d.ts +2 -2
- package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.d.ts +2 -2
- package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.d.ts +12 -0
- package/domain/f-zoom/add-zoom-to-store/index.d.ts +1 -1
- package/domain/f-zoom/providers.d.ts +5 -5
- package/domain/f-zoom/remove-zoom-from-store/index.d.ts +1 -1
- package/domain/f-zoom/remove-zoom-from-store/{remove-zoom-from-store.execution.d.ts → remove-zoom-from-store.d.ts} +3 -3
- package/domain/f-zoom/reset-zoom/index.d.ts +1 -1
- package/domain/f-zoom/reset-zoom/reset-zoom.d.ts +13 -0
- package/domain/f-zoom/set-zoom/index.d.ts +1 -1
- package/domain/f-zoom/set-zoom/{set-zoom.execution.d.ts → set-zoom.d.ts} +6 -6
- package/domain/index.d.ts +0 -1
- package/domain/providers.d.ts +1 -1
- package/drag-toolkit/pointer-events/i-pointer-event.d.ts +6 -4
- package/esm2022/domain/css-cls.mjs +1 -4
- package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.mjs +56 -0
- package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.request.mjs +1 -1
- package/esm2022/domain/f-background/add-pattern-to-background/index.mjs +2 -2
- package/esm2022/domain/f-background/providers.mjs +3 -3
- package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.mjs +4 -4
- package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.mjs +25 -0
- package/esm2022/domain/f-connection/add-connection-for-create-to-store/index.mjs +2 -2
- package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.mjs +4 -4
- package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.mjs +25 -0
- package/esm2022/domain/f-connection/add-connection-marker-to-store/index.mjs +2 -2
- package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store-request.mjs +4 -4
- package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.mjs +26 -0
- package/esm2022/domain/f-connection/add-connection-to-store/index.mjs +2 -2
- package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.mjs +4 -4
- package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.mjs +25 -0
- package/esm2022/domain/f-connection/add-snap-connection-to-store/index.mjs +2 -2
- package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers-request.mjs +4 -4
- package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.mjs +64 -0
- package/esm2022/domain/f-connection/create-connection-markers/index.mjs +2 -2
- package/esm2022/domain/f-connection/index.mjs +2 -2
- package/esm2022/domain/f-connection/providers.mjs +21 -21
- package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +24 -21
- package/esm2022/domain/f-connection/remove-connection-for-create-from-store/index.mjs +2 -2
- package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.mjs +25 -0
- package/esm2022/domain/f-connection/remove-connection-from-store/index.mjs +2 -2
- package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store-request.mjs +4 -4
- package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.mjs +33 -0
- package/esm2022/domain/f-connection/remove-connection-marker-from-store/index.mjs +2 -2
- package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.mjs +4 -4
- package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.mjs +25 -0
- package/esm2022/domain/f-connection/remove-connection-waypoint/index.mjs +3 -0
- package/esm2022/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint-request.mjs +10 -0
- package/esm2022/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint.mjs +40 -0
- package/esm2022/domain/f-connection/remove-snap-connection-from-store/index.mjs +2 -2
- package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.mjs +25 -0
- package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.mjs +1 -1
- package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.mjs +1 -1
- package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store-request.mjs +1 -1
- package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.execution.mjs +5 -5
- package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence-request.mjs +1 -1
- package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.mjs +3 -5
- package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state-request.mjs +4 -0
- package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state.mjs +38 -0
- package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/index.mjs +3 -0
- package/esm2022/domain/f-flow/calculate-flow-state/calculate-flow-state-request.mjs +4 -0
- package/esm2022/domain/f-flow/calculate-flow-state/calculate-flow-state.mjs +45 -0
- package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state-request.mjs +8 -0
- package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state.mjs +58 -0
- package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/index.mjs +3 -0
- package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-connection.mjs +2 -0
- package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-connector.mjs +2 -0
- package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-node.mjs +2 -0
- package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state.mjs +2 -0
- package/esm2022/domain/f-flow/calculate-flow-state/index.mjs +10 -0
- package/esm2022/domain/f-flow/calculate-flow-state/providers.mjs +12 -0
- package/esm2022/domain/f-flow/index.mjs +2 -2
- package/esm2022/domain/f-flow/providers.mjs +2 -2
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +1 -1
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.mjs +2 -2
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.mjs +2 -2
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.mjs +2 -2
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.mjs +1 -1
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.mjs +2 -2
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.mjs +2 -2
- package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.mjs +1 -1
- package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.mjs +1 -1
- package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +2 -2
- package/esm2022/domain/f-selection/calculate-selectable-items/calculate-selectable-items-request.mjs +4 -0
- package/esm2022/domain/f-selection/calculate-selectable-items/calculate-selectable-items.mjs +70 -0
- package/esm2022/domain/f-selection/calculate-selectable-items/i-can-be-selected-element-and-rect.mjs +2 -0
- package/esm2022/domain/f-selection/calculate-selectable-items/index.mjs +4 -0
- package/esm2022/domain/f-selection/clear-selection/clear-selection.request.mjs +1 -1
- package/esm2022/domain/f-selection/index.mjs +2 -2
- package/esm2022/domain/f-selection/providers.mjs +3 -3
- package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.mjs +4 -4
- package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.mjs +28 -0
- package/esm2022/domain/f-zoom/add-zoom-to-store/index.mjs +2 -2
- package/esm2022/domain/f-zoom/providers.mjs +6 -11
- package/esm2022/domain/f-zoom/remove-zoom-from-store/index.mjs +2 -2
- package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.mjs +28 -0
- package/esm2022/domain/f-zoom/reset-zoom/index.mjs +2 -2
- package/esm2022/domain/f-zoom/reset-zoom/reset-zoom.mjs +30 -0
- package/esm2022/domain/f-zoom/set-zoom/index.mjs +2 -2
- package/esm2022/domain/f-zoom/set-zoom/set-zoom.mjs +54 -0
- package/esm2022/domain/index.mjs +1 -2
- package/esm2022/drag-toolkit/event.extensions.mjs +2 -2
- package/esm2022/drag-toolkit/pointer-events/i-pointer-event.mjs +15 -10
- package/esm2022/f-canvas/domain/{f-canvas-change.event.mjs → f-canvas-change-event.mjs} +1 -1
- package/esm2022/f-canvas/domain/index.mjs +2 -2
- package/esm2022/f-canvas/f-canvas-base.mjs +7 -5
- package/esm2022/f-canvas/f-canvas.component.mjs +26 -36
- package/esm2022/f-connection/f-connection/f-connection.component.mjs +10 -24
- package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +13 -18
- package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +9 -15
- package/esm2022/f-connection/index.mjs +2 -7
- package/esm2022/f-connection/providers.mjs +9 -13
- package/esm2022/f-connection-v2/components/connection-content/f-connection-content.mjs +76 -0
- package/esm2022/f-connection-v2/components/connection-content/index.mjs +4 -0
- package/esm2022/f-connection-v2/components/connection-content/models/f-connection-content-base.mjs +10 -0
- package/esm2022/f-connection-v2/components/connection-content/models/index.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-content/utils/i-polyline-content.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-content/utils/index.mjs +6 -0
- package/esm2022/f-connection-v2/components/connection-content/utils/polyline-content-align.mjs +6 -0
- package/esm2022/f-connection-v2/components/connection-content/utils/polyline-content-layout-engine.mjs +25 -0
- package/esm2022/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-place.mjs +2 -2
- package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/i-sampler-result.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/i-tangent.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/index.mjs +5 -0
- package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/polyline-sampler.mjs +143 -0
- package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/polyline.mjs +71 -0
- package/esm2022/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-end.mjs +35 -0
- package/esm2022/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-start.mjs +35 -0
- package/esm2022/f-connection-v2/components/connection-drag-handles/index.mjs +4 -0
- package/esm2022/f-connection-v2/components/connection-drag-handles/models/f-connection-drag-handle-base.mjs +17 -0
- package/esm2022/f-connection-v2/components/connection-drag-handles/models/index.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-gradient/f-connection-gradient.mjs +54 -0
- package/esm2022/f-connection-v2/components/connection-gradient/index.mjs +3 -0
- package/esm2022/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.mjs +6 -0
- package/esm2022/f-connection-v2/components/connection-gradient/models/index.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-marker/enums/e-f-marker-type.mjs +8 -0
- package/esm2022/f-connection-v2/components/connection-marker/enums/index.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-marker/f-connection-marker.mjs +50 -0
- package/esm2022/f-connection-v2/components/connection-marker/index.mjs +4 -0
- package/esm2022/f-connection-v2/components/connection-marker/models/f-connection-marker-base.mjs +6 -0
- package/esm2022/f-connection-v2/components/connection-marker/models/index.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-path/f-connection-path.mjs +66 -0
- package/esm2022/f-connection-v2/components/connection-path/index.mjs +3 -0
- package/esm2022/f-connection-v2/components/connection-path/models/f-connection-path-base.mjs +6 -0
- package/esm2022/f-connection-v2/components/connection-path/models/index.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-selection/f-connection-selection.mjs +34 -0
- package/esm2022/f-connection-v2/components/connection-selection/index.mjs +3 -0
- package/esm2022/f-connection-v2/components/connection-selection/models/f-connection-selection-base.mjs +6 -0
- package/esm2022/f-connection-v2/components/connection-selection/models/index.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-waypoints/f-connection-waypoints.mjs +50 -0
- package/esm2022/f-connection-v2/components/connection-waypoints/index.mjs +4 -0
- package/esm2022/f-connection-v2/components/connection-waypoints/models/f-connection-waypoints-base.mjs +27 -0
- package/esm2022/f-connection-v2/components/connection-waypoints/models/index.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-waypoints/utils/find-existing-waypoint.mjs +7 -0
- package/esm2022/f-connection-v2/components/connection-waypoints/utils/find-waypoint-candidate.mjs +7 -0
- package/esm2022/f-connection-v2/components/connection-waypoints/utils/index.mjs +5 -0
- package/esm2022/f-connection-v2/components/connection-waypoints/utils/is-pointer-inside-point.mjs +4 -0
- package/esm2022/f-connection-v2/components/connection-waypoints/utils/pick-waypoint.mjs +16 -0
- package/esm2022/f-connection-v2/components/f-connection-base.mjs +112 -0
- package/esm2022/f-connection-v2/components/index.mjs +9 -0
- package/esm2022/f-connection-v2/enums/e-f-connectable-side.mjs +12 -0
- package/esm2022/f-connection-v2/enums/e-f-connection-type.mjs +8 -0
- package/esm2022/f-connection-v2/enums/index.mjs +3 -0
- package/esm2022/f-connection-v2/index.mjs +5 -0
- package/esm2022/f-connection-v2/models/f-connection-components-parent.mjs +5 -0
- package/esm2022/f-connection-v2/models/f-connection-waypoints-changed-event.mjs +9 -0
- package/esm2022/f-connection-v2/models/index.mjs +3 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.mjs +15 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder.mjs +136 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/enums/e-f-connection-behavior.mjs +7 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/enums/e-f-connection-connectable-side.mjs +12 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/enums/index.mjs +3 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/index.mjs +6 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/models/i-calculate-behavior-request.mjs +2 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/models/index.mjs +2 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/utils/fixed-center-behavior.mjs +12 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/utils/fixed-outbound-behavior.mjs +31 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/utils/floating-behavior.mjs +22 -0
- package/esm2022/f-connection-v2/utils/connection-behaviour/utils/index.mjs +4 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/calculate-adaptive-curve-data.mjs +74 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/index.mjs +2 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/calculate-bezier-curve-data.mjs +49 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/index.mjs +2 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/index.mjs +6 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/build-corner-mid-points-and-apply-offsets.mjs +50 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/calculate-segment-line-data.mjs +106 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/create-segment-line-path.mjs +46 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/index.mjs +4 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/straight-line/calculate-straight-line-data.mjs +28 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/straight-line/index.mjs +2 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/build-connection-anchors.mjs +4 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-center-between-points.mjs +8 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-curve-candidates.mjs +7 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-polyline-candidates.mjs +39 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/index.mjs +9 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/merge-point-chains.mjs +12 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/multi-cubic.mjs +28 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/normalize-polyline.mjs +30 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/sample-cubic-bezier-uniform.mjs +37 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/connection-line-builder-request.mjs +9 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/connection-line-builder.mjs +50 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/index.mjs +6 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder-request.mjs +2 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder-response.mjs +2 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder.mjs +2 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/models/index.mjs +4 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/providers/f-connection-builders.mjs +3 -0
- package/esm2022/f-connection-v2/utils/connection-line-builder/providers/index.mjs +2 -0
- package/esm2022/f-connection-v2/utils/create-connection-dom-identifier.mjs +5 -0
- package/esm2022/f-connection-v2/utils/create-connection-selection-dom-identifier.mjs +5 -0
- package/esm2022/f-connection-v2/utils/create-gradient-dom-identifier.mjs +5 -0
- package/esm2022/f-connection-v2/utils/create-gradient-dom-url.mjs +5 -0
- package/esm2022/f-connection-v2/utils/index.mjs +7 -0
- package/esm2022/f-connectors/f-connector-base.mjs +2 -2
- package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +2 -2
- package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +2 -2
- package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +2 -2
- package/esm2022/f-connectors/f-source-connector-base.mjs +8 -1
- package/esm2022/f-connectors/index.mjs +1 -2
- package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.mjs +1 -8
- package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +8 -6
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.mjs +6 -3
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +8 -5
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +8 -5
- package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +22 -27
- package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.mjs +8 -7
- package/esm2022/f-draggable/f-connection/index.mjs +2 -1
- package/esm2022/f-draggable/f-connection/move-connection-waypoint/index.mjs +4 -0
- package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/index.mjs +3 -0
- package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize-request.mjs +8 -0
- package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize.mjs +32 -0
- package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-handler.mjs +49 -0
- package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/index.mjs +3 -0
- package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation-request.mjs +10 -0
- package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation.mjs +65 -0
- package/esm2022/f-draggable/f-connection/providers.mjs +5 -2
- package/esm2022/f-draggable/f-drag-handler/i-f-drag-handler.mjs +1 -1
- package/esm2022/f-draggable/f-draggable-base.mjs +2 -2
- package/esm2022/f-draggable/f-draggable.directive.mjs +20 -9
- package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +6 -3
- package/esm2022/f-draggable/f-node-move/connection-drag-handlers/source-connection.drag-handler.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/connection-drag-handlers/target-connection.drag-handler.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/move-drag-handler.mjs +7 -5
- package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.mjs +19 -14
- package/esm2022/f-draggable/f-node-move/move-preparation/index.mjs +3 -3
- package/esm2022/f-draggable/f-node-move/move-preparation/move-node-preparation-request.mjs +10 -0
- package/esm2022/f-draggable/f-node-move/move-preparation/move-node-preparation.mjs +81 -0
- package/esm2022/f-draggable/f-node-move/move-summary-drag-handler.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/providers.mjs +3 -3
- package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.mjs +1 -1
- package/esm2022/f-draggable/index.mjs +3 -2
- package/esm2022/f-draggable/pinch-to-zoom/constants/constants.mjs +6 -0
- package/esm2022/f-draggable/pinch-to-zoom/constants/index.mjs +2 -0
- package/esm2022/f-draggable/pinch-to-zoom/finalize/index.mjs +3 -0
- package/esm2022/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize-request.mjs +8 -0
- package/esm2022/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize.mjs +31 -0
- package/esm2022/f-draggable/pinch-to-zoom/index.mjs +7 -0
- package/esm2022/f-draggable/pinch-to-zoom/pinch-to-zoom-handler.mjs +68 -0
- package/esm2022/f-draggable/pinch-to-zoom/preparation/index.mjs +3 -0
- package/esm2022/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation-request.mjs +8 -0
- package/esm2022/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation.mjs +42 -0
- package/esm2022/f-draggable/pinch-to-zoom/providers.mjs +4 -0
- package/esm2022/f-draggable/pinch-to-zoom/utils/calculate-touch-center.mjs +10 -0
- package/esm2022/f-draggable/pinch-to-zoom/utils/calculate-touch-distance.mjs +9 -0
- package/esm2022/f-draggable/pinch-to-zoom/utils/index.mjs +3 -0
- package/esm2022/f-draggable/providers.mjs +4 -2
- package/esm2022/f-draggable/single-select/index.mjs +4 -0
- package/esm2022/f-draggable/single-select/providers.mjs +3 -0
- package/esm2022/f-draggable/single-select/single-select-request.mjs +10 -0
- package/esm2022/f-draggable/single-select/single-select.mjs +139 -0
- package/esm2022/f-flow/f-flow.component.mjs +39 -26
- package/esm2022/f-flow.module.mjs +38 -37
- package/esm2022/f-line-alignment/f-line-alignment-base.mjs +1 -1
- package/esm2022/f-line-alignment/f-line-alignment.component.mjs +10 -17
- package/esm2022/f-minimap/f-minimap.component.mjs +8 -9
- package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +21 -19
- package/esm2022/f-storage/f-components-store.mjs +1 -1
- package/esm2022/f-storage/features/listen-components-data-changed/index.mjs +2 -2
- package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes-request.mjs +1 -1
- package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.mjs +23 -0
- package/esm2022/f-storage/features/listen-count-changes/index.mjs +2 -2
- package/esm2022/f-storage/features/listen-count-changes/listen-count-changes-request.mjs +1 -1
- package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.mjs +23 -0
- package/esm2022/f-storage/features/listen-transform-changes/index.mjs +3 -3
- package/esm2022/f-storage/features/listen-transform-changes/{listen-transform-changes.request.mjs → listen-transform-changes-request.mjs} +1 -1
- package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.mjs +23 -0
- package/esm2022/f-storage/features/notify-data-changed/index.mjs +2 -2
- package/esm2022/f-storage/features/notify-data-changed/notify-data-changed-request.mjs +1 -1
- package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.mjs +22 -0
- package/esm2022/f-storage/features/notify-transform-changed/index.mjs +3 -3
- package/esm2022/f-storage/features/notify-transform-changed/{notify-transform-changed.request.mjs → notify-transform-changed-request.mjs} +1 -1
- package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.mjs +22 -0
- package/esm2022/f-storage/index.mjs +1 -2
- package/esm2022/f-storage/providers.mjs +11 -11
- package/esm2022/f-zoom/f-zoom.directive.mjs +44 -45
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/reactivity/debounce-time.mjs +16 -5
- package/esm2022/reactivity/f-channel-hub.mjs +33 -9
- package/esm2022/reactivity/index.mjs +2 -1
- package/esm2022/reactivity/notify-on-start.mjs +12 -4
- package/esm2022/reactivity/take-one.mjs +17 -0
- package/esm2022/reactivity/types.mjs +1 -1
- package/esm2022/utils/calculate-pointer-in-flow.mjs +9 -0
- package/esm2022/utils/index.mjs +2 -1
- package/f-canvas/domain/index.d.ts +1 -1
- package/f-canvas/f-canvas-base.d.ts +2 -2
- package/f-canvas/f-canvas.component.d.ts +3 -10
- package/f-connection/f-connection/f-connection.component.d.ts +2 -7
- package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +2 -6
- package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +2 -6
- package/f-connection/index.d.ts +1 -6
- package/f-connection/providers.d.ts +3 -4
- package/{f-connection/f-connection-content → f-connection-v2/components/connection-content}/f-connection-content.d.ts +3 -30
- package/f-connection-v2/components/connection-content/index.d.ts +3 -0
- package/f-connection-v2/components/connection-content/models/f-connection-content-base.d.ts +36 -0
- package/f-connection-v2/components/connection-content/models/index.d.ts +1 -0
- package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-layout-engine.d.ts +1 -9
- package/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-end.d.ts +8 -0
- package/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-start.d.ts +8 -0
- package/f-connection-v2/components/connection-drag-handles/index.d.ts +3 -0
- package/f-connection-v2/components/connection-drag-handles/models/f-connection-drag-handle-base.d.ts +11 -0
- package/f-connection-v2/components/connection-drag-handles/models/index.d.ts +1 -0
- package/{f-connection/common/f-gradient/f-connection-gradient.component.d.ts → f-connection-v2/components/connection-gradient/f-connection-gradient.d.ts} +5 -6
- package/f-connection-v2/components/connection-gradient/index.d.ts +2 -0
- package/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.d.ts +8 -0
- package/f-connection-v2/components/connection-gradient/models/index.d.ts +1 -0
- package/f-connection-v2/components/connection-marker/enums/index.d.ts +1 -0
- package/f-connection-v2/components/connection-marker/f-connection-marker.d.ts +17 -0
- package/f-connection-v2/components/connection-marker/index.d.ts +3 -0
- package/{f-connection/f-marker/f-marker-base.d.ts → f-connection-v2/components/connection-marker/models/f-connection-marker-base.d.ts} +3 -4
- package/f-connection-v2/components/connection-marker/models/index.d.ts +1 -0
- package/f-connection-v2/components/connection-path/f-connection-path.d.ts +14 -0
- package/f-connection-v2/components/connection-path/index.d.ts +2 -0
- package/f-connection-v2/components/connection-path/models/f-connection-path-base.d.ts +9 -0
- package/f-connection-v2/components/connection-path/models/index.d.ts +1 -0
- package/f-connection-v2/components/connection-selection/f-connection-selection.d.ts +9 -0
- package/f-connection-v2/components/connection-selection/index.d.ts +2 -0
- package/f-connection-v2/components/connection-selection/models/f-connection-selection-base.d.ts +6 -0
- package/f-connection-v2/components/connection-selection/models/index.d.ts +1 -0
- package/f-connection-v2/components/connection-waypoints/f-connection-waypoints.d.ts +19 -0
- package/f-connection-v2/components/connection-waypoints/index.d.ts +3 -0
- package/f-connection-v2/components/connection-waypoints/models/f-connection-waypoints-base.d.ts +16 -0
- package/f-connection-v2/components/connection-waypoints/models/index.d.ts +1 -0
- package/f-connection-v2/components/connection-waypoints/utils/find-existing-waypoint.d.ts +6 -0
- package/f-connection-v2/components/connection-waypoints/utils/find-waypoint-candidate.d.ts +6 -0
- package/f-connection-v2/components/connection-waypoints/utils/index.d.ts +4 -0
- package/f-connection-v2/components/connection-waypoints/utils/is-pointer-inside-point.d.ts +2 -0
- package/f-connection-v2/components/connection-waypoints/utils/pick-waypoint.d.ts +17 -0
- package/{f-connection/common → f-connection-v2/components}/f-connection-base.d.ts +14 -31
- package/f-connection-v2/components/index.d.ts +8 -0
- package/f-connection-v2/enums/index.d.ts +2 -0
- package/f-connection-v2/index.d.ts +4 -0
- package/f-connection-v2/models/f-connection-components-parent.d.ts +15 -0
- package/f-connection-v2/models/f-connection-waypoints-changed-event.d.ts +6 -0
- package/f-connection-v2/models/index.d.ts +2 -0
- package/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.d.ts +11 -0
- package/{domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.d.ts → f-connection-v2/utils/connection-behaviour/connection-behaviour-builder.d.ts} +5 -6
- package/f-connection-v2/utils/connection-behaviour/enums/index.d.ts +2 -0
- package/f-connection-v2/utils/connection-behaviour/index.d.ts +5 -0
- package/{domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.d.ts → f-connection-v2/utils/connection-behaviour/models/i-calculate-behavior-request.d.ts} +2 -2
- package/f-connection-v2/utils/connection-behaviour/models/index.d.ts +1 -0
- package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/fixed-center-behavior.d.ts +2 -2
- package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/fixed-outbound-behavior.d.ts +2 -2
- package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/floating-behavior.d.ts +2 -2
- package/f-connection-v2/utils/connection-behaviour/utils/index.d.ts +3 -0
- package/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/calculate-adaptive-curve-data.d.ts +8 -0
- package/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/index.d.ts +1 -0
- package/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/calculate-bezier-curve-data.d.ts +4 -0
- package/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/index.d.ts +1 -0
- package/f-connection-v2/utils/connection-line-builder/builders/index.d.ts +5 -0
- package/f-connection-v2/utils/connection-line-builder/builders/segment-line/build-corner-mid-points-and-apply-offsets.d.ts +17 -0
- package/f-connection-v2/utils/connection-line-builder/builders/segment-line/calculate-segment-line-data.d.ts +6 -0
- package/f-connection-v2/utils/connection-line-builder/builders/segment-line/create-segment-line-path.d.ts +2 -0
- package/f-connection-v2/utils/connection-line-builder/builders/segment-line/index.d.ts +3 -0
- package/{f-connection/common/domain/f-straight.path-builder.d.ts → f-connection-v2/utils/connection-line-builder/builders/straight-line/calculate-straight-line-data.d.ts} +2 -2
- package/f-connection-v2/utils/connection-line-builder/builders/straight-line/index.d.ts +1 -0
- package/f-connection-v2/utils/connection-line-builder/builders/utils/build-connection-anchors.d.ts +2 -0
- package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-center-between-points.d.ts +2 -0
- package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-curve-candidates.d.ts +3 -0
- package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-polyline-candidates.d.ts +2 -0
- package/f-connection-v2/utils/connection-line-builder/builders/utils/index.d.ts +8 -0
- package/f-connection-v2/utils/connection-line-builder/builders/utils/merge-point-chains.d.ts +2 -0
- package/f-connection-v2/utils/connection-line-builder/builders/utils/multi-cubic.d.ts +10 -0
- package/f-connection-v2/utils/connection-line-builder/builders/utils/normalize-polyline.d.ts +2 -0
- package/f-connection-v2/utils/connection-line-builder/builders/utils/sample-cubic-bezier-uniform.d.ts +24 -0
- package/f-connection-v2/utils/connection-line-builder/connection-line-builder-request.d.ts +7 -0
- package/f-connection-v2/utils/connection-line-builder/connection-line-builder.d.ts +13 -0
- package/f-connection-v2/utils/connection-line-builder/index.d.ts +5 -0
- package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder-request.d.ts +2 -1
- package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder-response.d.ts +2 -2
- package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder.d.ts +1 -2
- package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/index.d.ts +1 -4
- package/f-connection-v2/utils/connection-line-builder/providers/f-connection-builders.d.ts +4 -0
- package/f-connection-v2/utils/connection-line-builder/providers/index.d.ts +1 -0
- package/f-connection-v2/utils/create-connection-dom-identifier.d.ts +1 -0
- package/f-connection-v2/utils/create-connection-selection-dom-identifier.d.ts +1 -0
- package/f-connection-v2/utils/create-gradient-dom-identifier.d.ts +1 -0
- package/f-connection-v2/utils/create-gradient-dom-url.d.ts +1 -0
- package/f-connection-v2/utils/index.d.ts +6 -0
- package/f-connectors/f-connector-base.d.ts +1 -1
- package/f-connectors/f-node-input/f-node-input.directive.d.ts +1 -1
- package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +1 -1
- package/f-connectors/f-node-output/f-node-output.directive.d.ts +1 -1
- package/f-connectors/f-source-connector-base.d.ts +3 -0
- package/f-connectors/index.d.ts +0 -1
- package/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.d.ts +1 -0
- package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.d.ts +2 -1
- package/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.d.ts +4 -2
- package/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.d.ts +4 -2
- package/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.d.ts +1 -1
- package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.d.ts +6 -7
- package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.d.ts +2 -2
- package/f-draggable/f-connection/index.d.ts +1 -0
- package/f-draggable/f-connection/move-connection-waypoint/index.d.ts +3 -0
- package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/index.d.ts +2 -0
- package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize-request.d.ts +6 -0
- package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize.d.ts +11 -0
- package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-handler.d.ts +20 -0
- package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/index.d.ts +2 -0
- package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation-request.d.ts +8 -0
- package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation.d.ts +19 -0
- package/f-draggable/f-connection/providers.d.ts +3 -2
- package/f-draggable/f-drag-handler/i-f-drag-handler.d.ts +2 -1
- package/f-draggable/f-draggable-base.d.ts +3 -1
- package/f-draggable/f-draggable.directive.d.ts +5 -1
- package/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.d.ts +2 -1
- package/f-draggable/f-node-move/connection-drag-handlers/source-connection.drag-handler.d.ts +1 -1
- package/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.d.ts +1 -1
- package/f-draggable/f-node-move/connection-drag-handlers/target-connection.drag-handler.d.ts +1 -1
- package/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler.d.ts +1 -1
- package/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.d.ts +1 -1
- package/f-draggable/f-node-move/move-drag-handler.d.ts +2 -2
- package/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.d.ts +1 -1
- package/f-draggable/f-node-move/move-preparation/index.d.ts +2 -2
- package/f-draggable/f-node-move/move-preparation/{f-node-move-preparation.request.d.ts → move-node-preparation-request.d.ts} +3 -3
- package/f-draggable/f-node-move/move-preparation/move-node-preparation.d.ts +17 -0
- package/f-draggable/f-node-move/move-summary-drag-handler.d.ts +3 -3
- package/f-draggable/f-node-move/providers.d.ts +2 -2
- package/f-draggable/index.d.ts +2 -1
- package/f-draggable/pinch-to-zoom/constants/constants.d.ts +5 -0
- package/f-draggable/pinch-to-zoom/constants/index.d.ts +1 -0
- package/f-draggable/pinch-to-zoom/finalize/index.d.ts +2 -0
- package/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize-request.d.ts +6 -0
- package/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize.d.ts +11 -0
- package/f-draggable/pinch-to-zoom/index.d.ts +6 -0
- package/f-draggable/pinch-to-zoom/pinch-to-zoom-handler.d.ts +21 -0
- package/f-draggable/pinch-to-zoom/preparation/index.d.ts +2 -0
- package/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation-request.d.ts +6 -0
- package/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation.d.ts +13 -0
- package/f-draggable/pinch-to-zoom/providers.d.ts +3 -0
- package/f-draggable/pinch-to-zoom/utils/calculate-touch-center.d.ts +2 -0
- package/f-draggable/pinch-to-zoom/utils/calculate-touch-distance.d.ts +1 -0
- package/f-draggable/pinch-to-zoom/utils/index.d.ts +2 -0
- package/f-draggable/providers.d.ts +1 -1
- package/f-draggable/single-select/index.d.ts +3 -0
- package/f-draggable/single-select/providers.d.ts +2 -0
- package/f-draggable/single-select/single-select-request.d.ts +8 -0
- package/f-draggable/{f-single-select/f-single-select.execution.d.ts → single-select/single-select.d.ts} +7 -6
- package/f-flow/f-flow.component.d.ts +1 -1
- package/f-flow.module.d.ts +36 -37
- package/f-line-alignment/f-line-alignment-base.d.ts +3 -4
- package/f-line-alignment/f-line-alignment.component.d.ts +3 -4
- package/f-minimap/f-minimap.component.d.ts +2 -2
- package/f-selection-area/domain/selection-area.drag-handle.d.ts +6 -5
- package/f-storage/f-components-store.d.ts +3 -4
- package/f-storage/features/listen-components-data-changed/index.d.ts +1 -1
- package/f-storage/features/listen-components-data-changed/{listen-data-changes.execution.d.ts → listen-data-changes.d.ts} +3 -3
- package/f-storage/features/listen-count-changes/index.d.ts +1 -1
- package/f-storage/features/listen-count-changes/{listen-count-changes.execution.d.ts → listen-count-changes.d.ts} +3 -3
- package/f-storage/features/listen-transform-changes/index.d.ts +2 -2
- package/f-storage/features/listen-transform-changes/{listen-transform-changes.execution.d.ts → listen-transform-changes.d.ts} +4 -4
- package/f-storage/features/notify-data-changed/index.d.ts +1 -1
- package/f-storage/features/notify-data-changed/{notify-data-changed.execution.d.ts → notify-data-changed.d.ts} +3 -3
- package/f-storage/features/notify-transform-changed/index.d.ts +2 -2
- package/f-storage/features/notify-transform-changed/{notify-transform-changed.execution.d.ts → notify-transform-changed.d.ts} +4 -4
- package/f-storage/index.d.ts +0 -1
- package/f-storage/providers.d.ts +6 -6
- package/f-zoom/f-zoom.directive.d.ts +11 -14
- package/fesm2022/foblex-flow.mjs +4354 -3905
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +1 -0
- package/reactivity/index.d.ts +1 -0
- package/reactivity/take-one.d.ts +2 -0
- package/reactivity/types.d.ts +6 -1
- package/schematics/collection.json +6 -1
- package/utils/calculate-pointer-in-flow.d.ts +4 -0
- package/utils/index.d.ts +1 -0
- package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.d.ts +0 -12
- package/domain/f-connection/calculate-connection-line-by-behavior/index.d.ts +0 -6
- package/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections-request.d.ts +0 -3
- package/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.d.ts +0 -14
- package/domain/f-flow/get-flow-state/get-flow-state-connections/index.d.ts +0 -2
- package/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.d.ts +0 -6
- package/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.d.ts +0 -15
- package/domain/f-flow/get-flow-state/get-flow-state-nodes/index.d.ts +0 -2
- package/domain/f-flow/get-flow-state/get-flow-state.execution.d.ts +0 -15
- package/domain/f-flow/get-flow-state/get-flow-state.request.d.ts +0 -3
- package/domain/f-flow/get-flow-state/i-f-flow-state-connection.d.ts +0 -9
- package/domain/f-flow/get-flow-state/providers.d.ts +0 -7
- package/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items-request.d.ts +0 -3
- package/domain/f-selection/get-can-be-selected-items/index.d.ts +0 -3
- package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.d.ts +0 -12
- package/domain/f-zoom/reset-zoom/reset-zoom.execution.d.ts +0 -13
- package/domain/i-map.d.ts +0 -1
- package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.mjs +0 -48
- package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.execution.mjs +0 -25
- package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.execution.mjs +0 -25
- package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.execution.mjs +0 -26
- package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.execution.mjs +0 -25
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.mjs +0 -16
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.mjs +0 -145
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/index.mjs +0 -7
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.mjs +0 -2
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-center-behavior.mjs +0 -12
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-outbound-behavior.mjs +0 -31
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/floating-behavior.mjs +0 -22
- package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +0 -65
- package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.execution.mjs +0 -25
- package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.mjs +0 -33
- package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.execution.mjs +0 -25
- package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.execution.mjs +0 -25
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections-request.mjs +0 -4
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.mjs +0 -35
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/index.mjs +0 -3
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.mjs +0 -8
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +0 -58
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/index.mjs +0 -3
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state.execution.mjs +0 -39
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state.request.mjs +0 -4
- package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-connection.mjs +0 -2
- package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-connector.mjs +0 -2
- package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-node.mjs +0 -2
- package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state.mjs +0 -2
- package/esm2022/domain/f-flow/get-flow-state/index.mjs +0 -10
- package/esm2022/domain/f-flow/get-flow-state/providers.mjs +0 -12
- package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items-request.mjs +0 -4
- package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +0 -66
- package/esm2022/domain/f-selection/get-can-be-selected-items/i-can-be-selected-element-and-rect.mjs +0 -2
- package/esm2022/domain/f-selection/get-can-be-selected-items/index.mjs +0 -4
- package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.mjs +0 -28
- package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.mjs +0 -28
- package/esm2022/domain/f-zoom/reset-zoom/reset-zoom.execution.mjs +0 -30
- package/esm2022/domain/f-zoom/set-zoom/set-zoom.execution.mjs +0 -54
- package/esm2022/domain/i-map.mjs +0 -2
- package/esm2022/f-connection/common/domain/adaptive-curve-builder.mjs +0 -201
- package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.mjs +0 -10
- package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points.handler.mjs +0 -12
- package/esm2022/f-connection/common/domain/calculate-center-between-points/index.mjs +0 -3
- package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.mjs +0 -8
- package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.mjs +0 -35
- package/esm2022/f-connection/common/domain/calculate-connection-center/index.mjs +0 -3
- package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +0 -58
- package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +0 -161
- package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +0 -16
- package/esm2022/f-connection/common/domain/index.mjs +0 -7
- package/esm2022/f-connection/common/e-f-connection-behavior.mjs +0 -7
- package/esm2022/f-connection/common/e-f-connection-connectable-side.mjs +0 -12
- package/esm2022/f-connection/common/e-f-connection-type.mjs +0 -8
- package/esm2022/f-connection/common/f-connection-base.mjs +0 -121
- package/esm2022/f-connection/common/f-connection-identifiers.mjs +0 -22
- package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +0 -65
- package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +0 -57
- package/esm2022/f-connection/common/f-connection-text/i-connection-text.mjs +0 -3
- package/esm2022/f-connection/common/f-connection-text/index.mjs +0 -4
- package/esm2022/f-connection/common/f-connection.injection-token.mjs +0 -3
- package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.mjs +0 -37
- package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.mjs +0 -37
- package/esm2022/f-connection/common/f-drag-handle/index.mjs +0 -3
- package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +0 -55
- package/esm2022/f-connection/common/f-gradient/i-connection-gradient.mjs +0 -3
- package/esm2022/f-connection/common/f-gradient/index.mjs +0 -3
- package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +0 -45
- package/esm2022/f-connection/common/f-path/get-path-marker-id.mjs +0 -14
- package/esm2022/f-connection/common/f-path/i-connection-path.mjs +0 -3
- package/esm2022/f-connection/common/f-path/index.mjs +0 -4
- package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +0 -24
- package/esm2022/f-connection/common/f-selection/index.mjs +0 -2
- package/esm2022/f-connection/common/i-has-connection-color.mjs +0 -2
- package/esm2022/f-connection/common/i-has-connection-from-to.mjs +0 -2
- package/esm2022/f-connection/common/i-has-connection-text.mjs +0 -2
- package/esm2022/f-connection/common/index.mjs +0 -15
- package/esm2022/f-connection/f-connection-builder/f-connection-builders.mjs +0 -3
- package/esm2022/f-connection/f-connection-builder/f-connection-factory.mjs +0 -26
- package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-request.mjs +0 -2
- package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-response.mjs +0 -2
- package/esm2022/f-connection/f-connection-builder/i-f-connection-builder.mjs +0 -2
- package/esm2022/f-connection/f-connection-builder/i-f-connection-factory-request.mjs +0 -2
- package/esm2022/f-connection/f-connection-builder/index.mjs +0 -7
- package/esm2022/f-connection/f-connection-center/f-connection-center.directive.mjs +0 -30
- package/esm2022/f-connection/f-connection-center/index.mjs +0 -2
- package/esm2022/f-connection/f-connection-content/f-connection-content.mjs +0 -102
- package/esm2022/f-connection/f-connection-content/index.mjs +0 -3
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/i-polyline-content.mjs +0 -2
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/index.mjs +0 -6
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-align.mjs +0 -6
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-layout-engine.mjs +0 -28
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-sampler-result.mjs +0 -2
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-tangent.mjs +0 -2
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/index.mjs +0 -5
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline-sampler.mjs +0 -143
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline.mjs +0 -68
- package/esm2022/f-connection/f-marker/e-f-marker-type.mjs +0 -8
- package/esm2022/f-connection/f-marker/f-marker-base.mjs +0 -5
- package/esm2022/f-connection/f-marker/f-marker.directive.mjs +0 -51
- package/esm2022/f-connection/f-marker/index.mjs +0 -4
- package/esm2022/f-connectors/e-f-connectable-side.mjs +0 -12
- package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +0 -82
- package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.mjs +0 -10
- package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +0 -138
- package/esm2022/f-draggable/f-single-select/f-single-select.request.mjs +0 -10
- package/esm2022/f-draggable/f-single-select/index.mjs +0 -4
- package/esm2022/f-draggable/f-single-select/providers.mjs +0 -5
- package/esm2022/f-storage/f-connectors-store.mjs +0 -11
- package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.execution.mjs +0 -23
- package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.execution.mjs +0 -23
- package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.execution.mjs +0 -23
- package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.execution.mjs +0 -22
- package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.execution.mjs +0 -22
- package/f-connection/common/domain/adaptive-curve-builder.d.ts +0 -102
- package/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.d.ts +0 -7
- package/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points.handler.d.ts +0 -6
- package/f-connection/common/domain/calculate-center-between-points/index.d.ts +0 -2
- package/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.d.ts +0 -6
- package/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.d.ts +0 -8
- package/f-connection/common/domain/calculate-connection-center/index.d.ts +0 -2
- package/f-connection/common/domain/f-bezier.path-builder.d.ts +0 -6
- package/f-connection/common/domain/f-segment.path-builder.d.ts +0 -11
- package/f-connection/common/domain/index.d.ts +0 -6
- package/f-connection/common/f-connection-identifiers.d.ts +0 -8
- package/f-connection/common/f-connection-text/f-connection-text-path.directive.d.ts +0 -18
- package/f-connection/common/f-connection-text/f-connection-text.component.d.ts +0 -16
- package/f-connection/common/f-connection-text/i-connection-text.d.ts +0 -7
- package/f-connection/common/f-connection-text/index.d.ts +0 -3
- package/f-connection/common/f-connection.injection-token.d.ts +0 -2
- package/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.d.ts +0 -13
- package/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.d.ts +0 -13
- package/f-connection/common/f-drag-handle/index.d.ts +0 -2
- package/f-connection/common/f-gradient/i-connection-gradient.d.ts +0 -8
- package/f-connection/common/f-gradient/index.d.ts +0 -2
- package/f-connection/common/f-path/f-connection-path.component.d.ts +0 -15
- package/f-connection/common/f-path/get-path-marker-id.d.ts +0 -4
- package/f-connection/common/f-path/i-connection-path.d.ts +0 -9
- package/f-connection/common/f-path/index.d.ts +0 -3
- package/f-connection/common/f-selection/f-connection-selection.component.d.ts +0 -10
- package/f-connection/common/f-selection/index.d.ts +0 -1
- package/f-connection/common/i-has-connection-color.d.ts +0 -5
- package/f-connection/common/i-has-connection-from-to.d.ts +0 -6
- package/f-connection/common/i-has-connection-text.d.ts +0 -4
- package/f-connection/common/index.d.ts +0 -14
- package/f-connection/f-connection-builder/f-connection-builders.d.ts +0 -4
- package/f-connection/f-connection-builder/f-connection-factory.d.ts +0 -9
- package/f-connection/f-connection-builder/i-f-connection-factory-request.d.ts +0 -6
- package/f-connection/f-connection-center/f-connection-center.directive.d.ts +0 -10
- package/f-connection/f-connection-center/index.d.ts +0 -1
- package/f-connection/f-connection-content/index.d.ts +0 -2
- package/f-connection/f-marker/f-marker.directive.d.ts +0 -18
- package/f-connection/f-marker/index.d.ts +0 -3
- package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.d.ts +0 -20
- package/f-draggable/f-single-select/f-single-select.request.d.ts +0 -8
- package/f-draggable/f-single-select/index.d.ts +0 -3
- package/f-draggable/f-single-select/providers.d.ts +0 -2
- package/f-storage/f-connectors-store.d.ts +0 -6
- /package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state-node.d.ts +0 -0
- /package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state.d.ts +0 -0
- /package/domain/f-selection/{get-can-be-selected-items → calculate-selectable-items}/i-can-be-selected-element-and-rect.d.ts +0 -0
- /package/f-canvas/domain/{f-canvas-change.event.d.ts → f-canvas-change-event.d.ts} +0 -0
- /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/i-polyline-content.d.ts +0 -0
- /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/index.d.ts +0 -0
- /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-align.d.ts +0 -0
- /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-place.d.ts +0 -0
- /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/i-sampler-result.d.ts +0 -0
- /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/i-tangent.d.ts +0 -0
- /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/index.d.ts +0 -0
- /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/polyline-sampler.d.ts +0 -0
- /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/polyline.d.ts +0 -0
- /package/{f-connection/f-marker → f-connection-v2/components/connection-marker/enums}/e-f-marker-type.d.ts +0 -0
- /package/{f-connectors → f-connection-v2/enums}/e-f-connectable-side.d.ts +0 -0
- /package/{f-connection/common → f-connection-v2/enums}/e-f-connection-type.d.ts +0 -0
- /package/{f-connection/common → f-connection-v2/utils/connection-behaviour/enums}/e-f-connection-behavior.d.ts +0 -0
- /package/{f-connection/common → f-connection-v2/utils/connection-behaviour/enums}/e-f-connection-connectable-side.d.ts +0 -0
- /package/f-storage/features/listen-transform-changes/{listen-transform-changes.request.d.ts → listen-transform-changes-request.d.ts} +0 -0
- /package/f-storage/features/notify-transform-changed/{notify-transform-changed.request.d.ts → notify-transform-changed-request.d.ts} +0 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { PointExtensions } from '@foblex/2d';
|
|
2
|
+
import { buildConnectionAnchors, calculateCenterBetweenPoints, calculatePolylineCandidates, mergePointChains, normalizePolyline, } from '../utils';
|
|
3
|
+
import { createSegmentLinePath } from './create-segment-line-path';
|
|
4
|
+
import { EFConnectableSide } from '../../../../enums';
|
|
5
|
+
import { buildCornerMidPointsAndApplyOffsets } from './build-corner-mid-points-and-apply-offsets';
|
|
6
|
+
const CONNECTOR_SIDE_POINT = {
|
|
7
|
+
[EFConnectableSide.LEFT]: PointExtensions.initialize(-1, 0),
|
|
8
|
+
[EFConnectableSide.RIGHT]: PointExtensions.initialize(1, 0),
|
|
9
|
+
[EFConnectableSide.TOP]: PointExtensions.initialize(0, -1),
|
|
10
|
+
[EFConnectableSide.BOTTOM]: PointExtensions.initialize(0, 1),
|
|
11
|
+
[EFConnectableSide.AUTO]: PointExtensions.initialize(0, 0),
|
|
12
|
+
};
|
|
13
|
+
export class CalculateSegmentLineData {
|
|
14
|
+
handle({ source, sourceSide, target, targetSide, waypoints, offset, radius, }) {
|
|
15
|
+
const anchors = buildConnectionAnchors(source, target, waypoints);
|
|
16
|
+
const chains = [];
|
|
17
|
+
const candidates = [];
|
|
18
|
+
for (let i = 0; i < anchors.length - 1; i++) {
|
|
19
|
+
const a = anchors[i];
|
|
20
|
+
const b = anchors[i + 1];
|
|
21
|
+
const points = this._getPathPoints(a, sourceSide, b, targetSide, offset ?? 0);
|
|
22
|
+
chains.push(points);
|
|
23
|
+
candidates.push(...calculatePolylineCandidates(points));
|
|
24
|
+
}
|
|
25
|
+
const polyline = normalizePolyline(mergePointChains(chains));
|
|
26
|
+
const penultimatePoint = polyline.length > 1 ? polyline[polyline.length - 2] : source;
|
|
27
|
+
const secondPoint = polyline.length > 1 ? polyline[1] : target;
|
|
28
|
+
return {
|
|
29
|
+
path: createSegmentLinePath(polyline, radius ?? 0),
|
|
30
|
+
penultimatePoint,
|
|
31
|
+
secondPoint,
|
|
32
|
+
points: polyline,
|
|
33
|
+
candidates,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
_getPathPoints(source, sourceSide, target, targetSide, offset) {
|
|
37
|
+
const sourceDirection = CONNECTOR_SIDE_POINT[sourceSide];
|
|
38
|
+
const targetDirection = CONNECTOR_SIDE_POINT[targetSide];
|
|
39
|
+
const sourceGap = {
|
|
40
|
+
x: source.x + sourceDirection.x * offset,
|
|
41
|
+
y: source.y + sourceDirection.y * offset,
|
|
42
|
+
};
|
|
43
|
+
const targetGap = {
|
|
44
|
+
x: target.x + targetDirection.x * offset,
|
|
45
|
+
y: target.y + targetDirection.y * offset,
|
|
46
|
+
};
|
|
47
|
+
const direction = this._getDirection(sourceGap, sourceSide, targetGap);
|
|
48
|
+
const directionAccessor = direction.x !== 0 ? 'x' : 'y';
|
|
49
|
+
const currentDirection = direction[directionAccessor];
|
|
50
|
+
let points = [];
|
|
51
|
+
const sourceGapOffset = PointExtensions.initialize();
|
|
52
|
+
const targetGapOffset = PointExtensions.initialize();
|
|
53
|
+
const centerBetweenPoints = calculateCenterBetweenPoints(source, target);
|
|
54
|
+
if (sourceDirection[directionAccessor] * targetDirection[directionAccessor] === -1) {
|
|
55
|
+
const verticalSplit = [
|
|
56
|
+
{ x: centerBetweenPoints.x, y: sourceGap.y },
|
|
57
|
+
{ x: centerBetweenPoints.x, y: targetGap.y },
|
|
58
|
+
];
|
|
59
|
+
const horizontalSplit = [
|
|
60
|
+
{ x: sourceGap.x, y: centerBetweenPoints.y },
|
|
61
|
+
{ x: targetGap.x, y: centerBetweenPoints.y },
|
|
62
|
+
];
|
|
63
|
+
if (sourceDirection[directionAccessor] === currentDirection) {
|
|
64
|
+
points = directionAccessor === 'x' ? verticalSplit : horizontalSplit;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
points = directionAccessor === 'x' ? horizontalSplit : verticalSplit;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
points = buildCornerMidPointsAndApplyOffsets({
|
|
72
|
+
axis: directionAccessor,
|
|
73
|
+
source,
|
|
74
|
+
target,
|
|
75
|
+
sourceSide,
|
|
76
|
+
targetSide,
|
|
77
|
+
sourceGap,
|
|
78
|
+
targetGap,
|
|
79
|
+
sourceDir: sourceDirection,
|
|
80
|
+
targetDir: targetDirection,
|
|
81
|
+
currentDir: currentDirection,
|
|
82
|
+
offset,
|
|
83
|
+
sourceGapOffset,
|
|
84
|
+
targetGapOffset,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return [
|
|
88
|
+
source,
|
|
89
|
+
{ x: sourceGap.x + sourceGapOffset.x, y: sourceGap.y + sourceGapOffset.y },
|
|
90
|
+
...points,
|
|
91
|
+
{ x: targetGap.x + targetGapOffset.x, y: targetGap.y + targetGapOffset.y },
|
|
92
|
+
target,
|
|
93
|
+
];
|
|
94
|
+
}
|
|
95
|
+
_getDirection(source, sourceSide, target) {
|
|
96
|
+
if (sourceSide === EFConnectableSide.LEFT || sourceSide === EFConnectableSide.RIGHT) {
|
|
97
|
+
return source.x < target.x
|
|
98
|
+
? PointExtensions.initialize(1, 0)
|
|
99
|
+
: PointExtensions.initialize(-1, 0);
|
|
100
|
+
}
|
|
101
|
+
return source.y < target.y
|
|
102
|
+
? PointExtensions.initialize(0, 1)
|
|
103
|
+
: PointExtensions.initialize(0, -1);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLXNlZ21lbnQtbGluZS1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvYnVpbGRlcnMvc2VnbWVudC1saW5lL2NhbGN1bGF0ZS1zZWdtZW50LWxpbmUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLDJCQUEyQixFQUMzQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEdBQ2xCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBTW5FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRWxHLE1BQU0sb0JBQW9CLEdBQTJCO0lBQ25ELENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFM0QsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFM0QsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUUxRCxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU1RCxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxF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QUFNLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQge1xuICBidWlsZENvbm5lY3Rpb25BbmNob3JzLFxuICBjYWxjdWxhdGVDZW50ZXJCZXR3ZWVuUG9pbnRzLFxuICBjYWxjdWxhdGVQb2x5bGluZUNhbmRpZGF0ZXMsXG4gIG1lcmdlUG9pbnRDaGFpbnMsXG4gIG5vcm1hbGl6ZVBvbHlsaW5lLFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBjcmVhdGVTZWdtZW50TGluZVBhdGggfSBmcm9tICcuL2NyZWF0ZS1zZWdtZW50LWxpbmUtcGF0aCc7XG5pbXBvcnQge1xuICBJRkNvbm5lY3Rpb25CdWlsZGVyLFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCxcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBidWlsZENvcm5lck1pZFBvaW50c0FuZEFwcGx5T2Zmc2V0cyB9IGZyb20gJy4vYnVpbGQtY29ybmVyLW1pZC1wb2ludHMtYW5kLWFwcGx5LW9mZnNldHMnO1xuXG5jb25zdCBDT05ORUNUT1JfU0lERV9QT0lOVDogUmVjb3JkPHN0cmluZywgSVBvaW50PiA9IHtcbiAgW0VGQ29ubmVjdGFibGVTaWRlLkxFRlRdOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgtMSwgMCksXG5cbiAgW0VGQ29ubmVjdGFibGVTaWRlLlJJR0hUXTogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMSwgMCksXG5cbiAgW0VGQ29ubmVjdGFibGVTaWRlLlRPUF06IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKDAsIC0xKSxcblxuICBbRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NXTogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoMCwgMSksXG5cbiAgW0VGQ29ubmVjdGFibGVTaWRlLkFVVE9dOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAwKSxcbn07XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVTZWdtZW50TGluZURhdGEgaW1wbGVtZW50cyBJRkNvbm5lY3Rpb25CdWlsZGVyIHtcbiAgcHVibGljIGhhbmRsZSh7XG4gICAgc291cmNlLFxuICAgIHNvdXJjZVNpZGUsXG4gICAgdGFyZ2V0LFxuICAgIHRhcmdldFNpZGUsXG4gICAgd2F5cG9pbnRzLFxuICAgIG9mZnNldCxcbiAgICByYWRpdXMsXG4gIH06IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0KTogSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlIHtcbiAgICBjb25zdCBhbmNob3JzID0gYnVpbGRDb25uZWN0aW9uQW5jaG9ycyhzb3VyY2UsIHRhcmdldCwgd2F5cG9pbnRzKTtcblxuICAgIGNvbnN0IGNoYWluczogSVBvaW50W11bXSA9IFtdO1xuICAgIGNvbnN0IGNhbmRpZGF0ZXM6IElQb2ludFtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFuY2hvcnMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBjb25zdCBhID0gYW5jaG9yc1tpXTtcbiAgICAgIGNvbnN0IGIgPSBhbmNob3JzW2kgKyAxXTtcblxuICAgICAgY29uc3QgcG9pbnRzID0gdGhpcy5fZ2V0UGF0aFBvaW50cyhhLCBzb3VyY2VTaWRlLCBiLCB0YXJnZXRTaWRlLCBvZmZzZXQgPz8gMCk7XG5cbiAgICAgIGNoYWlucy5wdXNoKHBvaW50cyk7XG4gICAgICBjYW5kaWRhdGVzLnB1c2goLi4uY2FsY3VsYXRlUG9seWxpbmVDYW5kaWRhdGVzKHBvaW50cykpO1xuICAgIH1cblxuICAgIGNvbnN0IHBvbHlsaW5lID0gbm9ybWFsaXplUG9seWxpbmUobWVyZ2VQb2ludENoYWlucyhjaGFpbnMpKTtcblxuICAgIGNvbnN0IHBlbnVsdGltYXRlUG9pbnQgPSBwb2x5bGluZS5sZW5ndGggPiAxID8gcG9seWxpbmVbcG9seWxpbmUubGVuZ3RoIC0gMl0gOiBzb3VyY2U7XG4gICAgY29uc3Qgc2Vjb25kUG9pbnQgPSBwb2x5bGluZS5sZW5ndGggPiAxID8gcG9seWxpbmVbMV0gOiB0YXJnZXQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogY3JlYXRlU2VnbWVudExpbmVQYXRoKHBvbHlsaW5lLCByYWRpdXMgPz8gMCksXG4gICAgICBwZW51bHRpbWF0ZVBvaW50LFxuICAgICAgc2Vjb25kUG9pbnQsXG4gICAgICBwb2ludHM6IHBvbHlsaW5lLFxuICAgICAgY2FuZGlkYXRlcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UGF0aFBvaW50cyhcbiAgICBzb3VyY2U6IElQb2ludCxcbiAgICBzb3VyY2VTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgICB0YXJnZXQ6IElQb2ludCxcbiAgICB0YXJnZXRTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgKTogSVBvaW50W10ge1xuICAgIGNvbnN0IHNvdXJjZURpcmVjdGlvbiA9IENPTk5FQ1RPUl9TSURFX1BPSU5UW3NvdXJjZVNpZGVdO1xuICAgIGNvbnN0IHRhcmdldERpcmVjdGlvbiA9IENPTk5FQ1RPUl9TSURFX1BPSU5UW3RhcmdldFNpZGVdO1xuXG4gICAgY29uc3Qgc291cmNlR2FwOiBJUG9pbnQgPSB7XG4gICAgICB4OiBzb3VyY2UueCArIHNvdXJjZURpcmVjdGlvbi54ICogb2Zmc2V0LFxuICAgICAgeTogc291cmNlLnkgKyBzb3VyY2VEaXJlY3Rpb24ueSAqIG9mZnNldCxcbiAgICB9O1xuICAgIGNvbnN0IHRhcmdldEdhcDogSVBvaW50ID0ge1xuICAgICAgeDogdGFyZ2V0LnggKyB0YXJnZXREaXJlY3Rpb24ueCAqIG9mZnNldCxcbiAgICAgIHk6IHRhcmdldC55ICsgdGFyZ2V0RGlyZWN0aW9uLnkgKiBvZmZzZXQsXG4gICAgfTtcblxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMuX2dldERpcmVjdGlvbihzb3VyY2VHYXAsIHNvdXJjZVNpZGUsIHRhcmdldEdhcCk7XG4gICAgY29uc3QgZGlyZWN0aW9uQWNjZXNzb3I6ICd4JyB8ICd5JyA9IGRpcmVjdGlvbi54ICE9PSAwID8gJ3gnIDogJ3knO1xuICAgIGNvbnN0IGN1cnJlbnREaXJlY3Rpb24gPSBkaXJlY3Rpb25bZGlyZWN0aW9uQWNjZXNzb3JdO1xuXG4gICAgbGV0IHBvaW50czogSVBvaW50W10gPSBbXTtcbiAgICBjb25zdCBzb3VyY2VHYXBPZmZzZXQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICAgIGNvbnN0IHRhcmdldEdhcE9mZnNldCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgICBjb25zdCBjZW50ZXJCZXR3ZWVuUG9pbnRzID0gY2FsY3VsYXRlQ2VudGVyQmV0d2VlblBvaW50cyhzb3VyY2UsIHRhcmdldCk7XG5cbiAgICBpZiAoc291cmNlRGlyZWN0aW9uW2RpcmVjdGlvbkFjY2Vzc29yXSAqIHRhcmdldERpcmVjdGlvbltkaXJlY3Rpb25BY2Nlc3Nvcl0gPT09IC0xKSB7XG4gICAgICBjb25zdCB2ZXJ0aWNhbFNwbGl0OiBJUG9pbnRbXSA9IFtcbiAgICAgICAgeyB4OiBjZW50ZXJCZXR3ZWVuUG9pbnRzLngsIHk6IHNvdXJjZUdhcC55IH0sXG4gICAgICAgIHsgeDogY2VudGVyQmV0d2VlblBvaW50cy54LCB5OiB0YXJnZXRHYXAueSB9LFxuICAgICAgXTtcbiAgICAgIGNvbnN0IGhvcml6b250YWxTcGxpdDogSVBvaW50W10gPSBbXG4gICAgICAgIHsgeDogc291cmNlR2FwLngsIHk6IGNlbnRlckJldHdlZW5Qb2ludHMueSB9LFxuICAgICAgICB7IHg6IHRhcmdldEdhcC54LCB5OiBjZW50ZXJCZXR3ZWVuUG9pbnRzLnkgfSxcbiAgICAgIF07XG5cbiAgICAgIGlmIChzb3VyY2VEaXJlY3Rpb25bZGlyZWN0aW9uQWNjZXNzb3JdID09PSBjdXJyZW50RGlyZWN0aW9uKSB7XG4gICAgICAgIHBvaW50cyA9IGRpcmVjdGlvbkFjY2Vzc29yID09PSAneCcgPyB2ZXJ0aWNhbFNwbGl0IDogaG9yaXpvbnRhbFNwbGl0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9pbnRzID0gZGlyZWN0aW9uQWNjZXNzb3IgPT09ICd4JyA/IGhvcml6b250YWxTcGxpdCA6IHZlcnRpY2FsU3BsaXQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvaW50cyA9IGJ1aWxkQ29ybmVyTWlkUG9pbnRzQW5kQXBwbHlPZmZzZXRzKHtcbiAgICAgICAgYXhpczogZGlyZWN0aW9uQWNjZXNzb3IsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICBzb3VyY2VTaWRlLFxuICAgICAgICB0YXJnZXRTaWRlLFxuICAgICAgICBzb3VyY2VHYXAsXG4gICAgICAgIHRhcmdldEdhcCxcbiAgICAgICAgc291cmNlRGlyOiBzb3VyY2VEaXJlY3Rpb24sXG4gICAgICAgIHRhcmdldERpcjogdGFyZ2V0RGlyZWN0aW9uLFxuICAgICAgICBjdXJyZW50RGlyOiBjdXJyZW50RGlyZWN0aW9uLFxuICAgICAgICBvZmZzZXQsXG4gICAgICAgIHNvdXJjZUdhcE9mZnNldCxcbiAgICAgICAgdGFyZ2V0R2FwT2Zmc2V0LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgIHNvdXJjZSxcbiAgICAgIHsgeDogc291cmNlR2FwLnggKyBzb3VyY2VHYXBPZmZzZXQueCwgeTogc291cmNlR2FwLnkgKyBzb3VyY2VHYXBPZmZzZXQueSB9LFxuICAgICAgLi4ucG9pbnRzLFxuICAgICAgeyB4OiB0YXJnZXRHYXAueCArIHRhcmdldEdhcE9mZnNldC54LCB5OiB0YXJnZXRHYXAueSArIHRhcmdldEdhcE9mZnNldC55IH0sXG4gICAgICB0YXJnZXQsXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERpcmVjdGlvbihzb3VyY2U6IElQb2ludCwgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUsIHRhcmdldDogSVBvaW50KTogSVBvaW50IHtcbiAgICBpZiAoc291cmNlU2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuTEVGVCB8fCBzb3VyY2VTaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5SSUdIVCkge1xuICAgICAgcmV0dXJuIHNvdXJjZS54IDwgdGFyZ2V0LnhcbiAgICAgICAgPyBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgxLCAwKVxuICAgICAgICA6IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKC0xLCAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc291cmNlLnkgPCB0YXJnZXQueVxuICAgICAgPyBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAxKVxuICAgICAgOiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLCAtMSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const EPS = 1e-6;
|
|
2
|
+
const END_EPS = 0.0002;
|
|
3
|
+
const MIN_VISIBLE = 0.75;
|
|
4
|
+
export function createSegmentLinePath(points, borderRadius) {
|
|
5
|
+
const n = points.length;
|
|
6
|
+
const parts = [];
|
|
7
|
+
parts.push(`M ${points[0].x} ${points[0].y}`);
|
|
8
|
+
for (let i = 1; i < n - 1; i++) {
|
|
9
|
+
parts.push(getBend(points[i - 1], points[i], points[i + 1], borderRadius));
|
|
10
|
+
}
|
|
11
|
+
const last = points[n - 1];
|
|
12
|
+
parts.push(`L ${last.x + END_EPS} ${last.y + END_EPS}`);
|
|
13
|
+
return parts.join(' ');
|
|
14
|
+
}
|
|
15
|
+
function getBend(a, b, c, size) {
|
|
16
|
+
const x = b.x;
|
|
17
|
+
const y = b.y;
|
|
18
|
+
if (size <= 0) {
|
|
19
|
+
return `L ${x} ${y}`;
|
|
20
|
+
}
|
|
21
|
+
const collinearX = Math.abs(a.x - x) <= EPS && Math.abs(x - c.x) <= EPS;
|
|
22
|
+
const collinearY = Math.abs(a.y - y) <= EPS && Math.abs(y - c.y) <= EPS;
|
|
23
|
+
if (collinearX || collinearY) {
|
|
24
|
+
return `L ${x} ${y}`;
|
|
25
|
+
}
|
|
26
|
+
const ab = Math.hypot(x - a.x, y - a.y);
|
|
27
|
+
const bc = Math.hypot(c.x - x, c.y - y);
|
|
28
|
+
const bendSize = Math.min(ab * 0.5, bc * 0.5, size);
|
|
29
|
+
if (bendSize < MIN_VISIBLE) {
|
|
30
|
+
return `L ${x} ${y}`;
|
|
31
|
+
}
|
|
32
|
+
const incomingHorizontal = Math.abs(a.y - y) <= EPS;
|
|
33
|
+
if (incomingHorizontal) {
|
|
34
|
+
const xDir = a.x < c.x ? -1 : 1;
|
|
35
|
+
const yDir = a.y < c.y ? 1 : -1;
|
|
36
|
+
const lx = x + bendSize * xDir;
|
|
37
|
+
const qy = y + bendSize * yDir;
|
|
38
|
+
return `L ${lx} ${y} Q ${x} ${y} ${x} ${qy}`;
|
|
39
|
+
}
|
|
40
|
+
const xDir = a.x < c.x ? 1 : -1;
|
|
41
|
+
const yDir = a.y < c.y ? -1 : 1;
|
|
42
|
+
const ly = y + bendSize * yDir;
|
|
43
|
+
const qx = x + bendSize * xDir;
|
|
44
|
+
return `L ${x} ${ly} Q ${x} ${y} ${qx} ${y}`;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNlZ21lbnQtbGluZS1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvYnVpbGRlcnMvc2VnbWVudC1saW5lL2NyZWF0ZS1zZWdtZW50LWxpbmUtcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDakIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDO0FBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUV6QixNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBZ0IsRUFBRSxZQUFvQjtJQUMxRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3hCLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztJQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU5QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFB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QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQztJQUMvQixNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQztJQUUvQixPQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbmNvbnN0IEVQUyA9IDFlLTY7XG5jb25zdCBFTkRfRVBTID0gMC4wMDAyO1xuY29uc3QgTUlOX1ZJU0lCTEUgPSAwLjc1O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VnbWVudExpbmVQYXRoKHBvaW50czogSVBvaW50W10sIGJvcmRlclJhZGl1czogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgbiA9IHBvaW50cy5sZW5ndGg7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBwYXJ0cy5wdXNoKGBNICR7cG9pbnRzWzBdLnh9ICR7cG9pbnRzWzBdLnl9YCk7XG5cbiAgZm9yIChsZXQgaSA9IDE7IGkgPCBuIC0gMTsgaSsrKSB7XG4gICAgcGFydHMucHVzaChnZXRCZW5kKHBvaW50c1tpIC0gMV0sIHBvaW50c1tpXSwgcG9pbnRzW2kgKyAxXSwgYm9yZGVyUmFkaXVzKSk7XG4gIH1cblxuICBjb25zdCBsYXN0ID0gcG9pbnRzW24gLSAxXTtcbiAgcGFydHMucHVzaChgTCAke2xhc3QueCArIEVORF9FUFN9ICR7bGFzdC55ICsgRU5EX0VQU31gKTtcblxuICByZXR1cm4gcGFydHMuam9pbignICcpO1xufVxuXG5mdW5jdGlvbiBnZXRCZW5kKGE6IElQb2ludCwgYjogSVBvaW50LCBjOiBJUG9pbnQsIHNpemU6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IHggPSBiLng7XG4gIGNvbnN0IHkgPSBiLnk7XG5cbiAgaWYgKHNpemUgPD0gMCkge1xuICAgIHJldHVybiBgTCAke3h9ICR7eX1gO1xuICB9XG5cbiAgY29uc3QgY29sbGluZWFyWCA9IE1hdGguYWJzKGEueCAtIHgpIDw9IEVQUyAmJiBNYXRoLmFicyh4IC0gYy54KSA8PSBFUFM7XG4gIGNvbnN0IGNvbGxpbmVhclkgPSBNYXRoLmFicyhhLnkgLSB5KSA8PSBFUFMgJiYgTWF0aC5hYnMoeSAtIGMueSkgPD0gRVBTO1xuICBpZiAoY29sbGluZWFyWCB8fCBjb2xsaW5lYXJZKSB7XG4gICAgcmV0dXJuIGBMICR7eH0gJHt5fWA7XG4gIH1cblxuICBjb25zdCBhYiA9IE1hdGguaHlwb3QoeCAtIGEueCwgeSAtIGEueSk7XG4gIGNvbnN0IGJjID0gTWF0aC5oeXBvdChjLnggLSB4LCBjLnkgLSB5KTtcblxuICBjb25zdCBiZW5kU2l6ZSA9IE1hdGgubWluKGFiICogMC41LCBiYyAqIDAuNSwgc2l6ZSk7XG5cbiAgaWYgKGJlbmRTaXplIDwgTUlOX1ZJU0lCTEUpIHtcbiAgICByZXR1cm4gYEwgJHt4fSAke3l9YDtcbiAgfVxuXG4gIGNvbnN0IGluY29taW5nSG9yaXpvbnRhbCA9IE1hdGguYWJzKGEueSAtIHkpIDw9IEVQUztcblxuICBpZiAoaW5jb21pbmdIb3Jpem9udGFsKSB7XG4gICAgY29uc3QgeERpciA9IGEueCA8IGMueCA/IC0xIDogMTtcbiAgICBjb25zdCB5RGlyID0gYS55IDwgYy55ID8gMSA6IC0xO1xuXG4gICAgY29uc3QgbHggPSB4ICsgYmVuZFNpemUgKiB4RGlyO1xuICAgIGNvbnN0IHF5ID0geSArIGJlbmRTaXplICogeURpcjtcblxuICAgIHJldHVybiBgTCAke2x4fSAke3l9IFEgJHt4fSAke3l9ICR7eH0gJHtxeX1gO1xuICB9XG5cbiAgY29uc3QgeERpciA9IGEueCA8IGMueCA/IDEgOiAtMTtcbiAgY29uc3QgeURpciA9IGEueSA8IGMueSA/IC0xIDogMTtcblxuICBjb25zdCBseSA9IHkgKyBiZW5kU2l6ZSAqIHlEaXI7XG4gIGNvbnN0IHF4ID0geCArIGJlbmRTaXplICogeERpcjtcblxuICByZXR1cm4gYEwgJHt4fSAke2x5fSBRICR7eH0gJHt5fSAke3F4fSAke3l9YDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './build-corner-mid-points-and-apply-offsets';
|
|
2
|
+
export * from './calculate-segment-line-data';
|
|
3
|
+
export * from './create-segment-line-path';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy9zZWdtZW50LWxpbmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J1aWxkLWNvcm5lci1taWQtcG9pbnRzLWFuZC1hcHBseS1vZmZzZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLXNlZ21lbnQtbGluZS1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLXNlZ21lbnQtbGluZS1wYXRoJztcbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { buildConnectionAnchors } from '../utils';
|
|
2
|
+
const EPS = 0.0002;
|
|
3
|
+
export class CalculateStraightLineData {
|
|
4
|
+
handle(request) {
|
|
5
|
+
const anchors = buildConnectionAnchors(request.source, request.target, request.waypoints);
|
|
6
|
+
const n = anchors.length;
|
|
7
|
+
const p0 = anchors[0];
|
|
8
|
+
let d = `M ${p0.x} ${p0.y}`;
|
|
9
|
+
const candidates = new Array(n - 1);
|
|
10
|
+
for (let i = 0; i < n - 1; i++) {
|
|
11
|
+
const a = anchors[i];
|
|
12
|
+
const b = anchors[i + 1];
|
|
13
|
+
const isLast = i === n - 2;
|
|
14
|
+
const bx = isLast ? b.x + EPS : b.x;
|
|
15
|
+
const by = isLast ? b.y + EPS : b.y;
|
|
16
|
+
d += ` L ${bx} ${by}`;
|
|
17
|
+
candidates[i] = { x: (a.x + b.x) * 0.5, y: (a.y + b.y) * 0.5 };
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
path: d,
|
|
21
|
+
candidates,
|
|
22
|
+
points: anchors,
|
|
23
|
+
secondPoint: anchors[1] ?? request.target,
|
|
24
|
+
penultimatePoint: anchors[n - 2] ?? request.source,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLXN0cmFpZ2h0LWxpbmUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL3V0aWxzL2Nvbm5lY3Rpb24tbGluZS1idWlsZGVyL2J1aWxkZXJzL3N0cmFpZ2h0LWxpbmUvY2FsY3VsYXRlLXN0cmFpZ2h0LWxpbmUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDO0FBRW5CLE1BQU0sT0FBTyx5QkFBeUI7SUFDN0IsTUFBTSxDQUFDLE9BQW1DO1FBQy9DLE1BQU0sT0FBTyxHQUFHLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFMUYsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUV6QixNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUU1QixNQUFNLFVBQVUsR0FBYSxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFOUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMvQixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV6QixNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEMsQ0FBQyxJQUFJLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBRXRCLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNqRSxDQUFDO1FBRUQsT0FBTztZQUNMLElBQUksRUFBRSxDQUFDO1lBQ1AsVUFBVTtZQUNWLE1BQU0sRUFBRSxPQUFPO1lBQ2YsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTTtZQUN6QyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNO1NBQ25ELENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJRkNvbm5lY3Rpb25CdWlsZGVyLFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCxcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgYnVpbGRDb25uZWN0aW9uQW5jaG9ycyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5jb25zdCBFUFMgPSAwLjAwMDI7XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVTdHJhaWdodExpbmVEYXRhIGltcGxlbWVudHMgSUZDb25uZWN0aW9uQnVpbGRlciB7XG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QpOiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2Uge1xuICAgIGNvbnN0IGFuY2hvcnMgPSBidWlsZENvbm5lY3Rpb25BbmNob3JzKHJlcXVlc3Quc291cmNlLCByZXF1ZXN0LnRhcmdldCwgcmVxdWVzdC53YXlwb2ludHMpO1xuXG4gICAgY29uc3QgbiA9IGFuY2hvcnMubGVuZ3RoO1xuXG4gICAgY29uc3QgcDAgPSBhbmNob3JzWzBdO1xuICAgIGxldCBkID0gYE0gJHtwMC54fSAke3AwLnl9YDtcblxuICAgIGNvbnN0IGNhbmRpZGF0ZXM6IElQb2ludFtdID0gbmV3IEFycmF5KG4gLSAxKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbiAtIDE7IGkrKykge1xuICAgICAgY29uc3QgYSA9IGFuY2hvcnNbaV07XG4gICAgICBjb25zdCBiID0gYW5jaG9yc1tpICsgMV07XG5cbiAgICAgIGNvbnN0IGlzTGFzdCA9IGkgPT09IG4gLSAyO1xuICAgICAgY29uc3QgYnggPSBpc0xhc3QgPyBiLnggKyBFUFMgOiBiLng7XG4gICAgICBjb25zdCBieSA9IGlzTGFzdCA/IGIueSArIEVQUyA6IGIueTtcblxuICAgICAgZCArPSBgIEwgJHtieH0gJHtieX1gO1xuXG4gICAgICBjYW5kaWRhdGVzW2ldID0geyB4OiAoYS54ICsgYi54KSAqIDAuNSwgeTogKGEueSArIGIueSkgKiAwLjUgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogZCxcbiAgICAgIGNhbmRpZGF0ZXMsXG4gICAgICBwb2ludHM6IGFuY2hvcnMsXG4gICAgICBzZWNvbmRQb2ludDogYW5jaG9yc1sxXSA/PyByZXF1ZXN0LnRhcmdldCxcbiAgICAgIHBlbnVsdGltYXRlUG9pbnQ6IGFuY2hvcnNbbiAtIDJdID8/IHJlcXVlc3Quc291cmNlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/f-connection-v2/utils/connection-line-builder/builders/straight-line/index.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './calculate-straight-line-data';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy9zdHJhaWdodC1saW5lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0ZS1zdHJhaWdodC1saW5lLWRhdGEnO1xuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export function buildConnectionAnchors(source, target, waypoints) {
|
|
2
|
+
return [source, ...(waypoints ?? []), target];
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY29ubmVjdGlvbi1hbmNob3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvYnVpbGRlcnMvdXRpbHMvYnVpbGQtY29ubmVjdGlvbi1hbmNob3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsTUFBYyxFQUNkLE1BQWMsRUFDZCxTQUFvQjtJQUVwQixPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDb25uZWN0aW9uQW5jaG9ycyhcbiAgc291cmNlOiBJUG9pbnQsXG4gIHRhcmdldDogSVBvaW50LFxuICB3YXlwb2ludHM/OiBJUG9pbnRbXSxcbik6IElQb2ludFtdIHtcbiAgcmV0dXJuIFtzb3VyY2UsIC4uLih3YXlwb2ludHMgPz8gW10pLCB0YXJnZXRdO1xufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function calculateCenterBetweenPoints(source, target) {
|
|
2
|
+
const offsetX = Math.abs(target.x - source.x) / 2;
|
|
3
|
+
const centerX = target.x < source.x ? target.x + offsetX : target.x - offsetX;
|
|
4
|
+
const offsetY = Math.abs(target.y - source.y) / 2;
|
|
5
|
+
const centerY = target.y < source.y ? target.y + offsetY : target.y - offsetY;
|
|
6
|
+
return { x: centerX, y: centerY };
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNlbnRlci1iZXR3ZWVuLXBvaW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL3V0aWxzL2Nvbm5lY3Rpb24tbGluZS1idWlsZGVyL2J1aWxkZXJzL3V0aWxzL2NhbGN1bGF0ZS1jZW50ZXItYmV0d2Vlbi1wb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLDRCQUE0QixDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQ3pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBRTlFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBRTlFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVDZW50ZXJCZXR3ZWVuUG9pbnRzKHNvdXJjZTogSVBvaW50LCB0YXJnZXQ6IElQb2ludCk6IElQb2ludCB7XG4gIGNvbnN0IG9mZnNldFggPSBNYXRoLmFicyh0YXJnZXQueCAtIHNvdXJjZS54KSAvIDI7XG4gIGNvbnN0IGNlbnRlclggPSB0YXJnZXQueCA8IHNvdXJjZS54ID8gdGFyZ2V0LnggKyBvZmZzZXRYIDogdGFyZ2V0LnggLSBvZmZzZXRYO1xuXG4gIGNvbnN0IG9mZnNldFkgPSBNYXRoLmFicyh0YXJnZXQueSAtIHNvdXJjZS55KSAvIDI7XG4gIGNvbnN0IGNlbnRlclkgPSB0YXJnZXQueSA8IHNvdXJjZS55ID8gdGFyZ2V0LnkgKyBvZmZzZXRZIDogdGFyZ2V0LnkgLSBvZmZzZXRZO1xuXG4gIHJldHVybiB7IHg6IGNlbnRlclgsIHk6IGNlbnRlclkgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { cubicBezierAtT } from './sample-cubic-bezier-uniform';
|
|
2
|
+
export function calculateCurveCandidates(segments) {
|
|
3
|
+
return segments.map((s) => {
|
|
4
|
+
return cubicBezierAtT(s.p0, s.c1, s.c2, s.p3, 0.5);
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWN1cnZlLWNhbmRpZGF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy91dGlscy9jYWxjdWxhdGUtY3VydmUtY2FuZGlkYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHL0QsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFFBQXlCO0lBQ2hFLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3hCLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUN1YmljU2VnbWVudCB9IGZyb20gJy4vbXVsdGktY3ViaWMnO1xuaW1wb3J0IHsgY3ViaWNCZXppZXJBdFQgfSBmcm9tICcuL3NhbXBsZS1jdWJpYy1iZXppZXItdW5pZm9ybSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUN1cnZlQ2FuZGlkYXRlcyhzZWdtZW50czogSUN1YmljU2VnbWVudFtdKTogSVBvaW50W10ge1xuICByZXR1cm4gc2VnbWVudHMubWFwKChzKSA9PiB7XG4gICAgcmV0dXJuIGN1YmljQmV6aWVyQXRUKHMucDAsIHMuYzEsIHMuYzIsIHMucDMsIDAuNSk7XG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export function calculatePolylineCandidates(polyline) {
|
|
2
|
+
if (polyline.length < 2) {
|
|
3
|
+
throw new Error('Polylines must be at least two points');
|
|
4
|
+
}
|
|
5
|
+
const total = polylineTotalLength(polyline);
|
|
6
|
+
if (total <= 0) {
|
|
7
|
+
return [{ ...polyline[0] }];
|
|
8
|
+
}
|
|
9
|
+
const mid = pointAtPolylineLength(polyline, total / 2);
|
|
10
|
+
return [mid];
|
|
11
|
+
}
|
|
12
|
+
function polylineTotalLength(points) {
|
|
13
|
+
let len = 0;
|
|
14
|
+
for (let i = 0; i < points.length - 1; i++) {
|
|
15
|
+
len += dist(points[i], points[i + 1]);
|
|
16
|
+
}
|
|
17
|
+
return len;
|
|
18
|
+
}
|
|
19
|
+
function pointAtPolylineLength(points, s) {
|
|
20
|
+
let acc = 0;
|
|
21
|
+
for (let i = 0; i < points.length - 1; i++) {
|
|
22
|
+
const a = points[i];
|
|
23
|
+
const b = points[i + 1];
|
|
24
|
+
const segLen = dist(a, b);
|
|
25
|
+
if (segLen <= 0)
|
|
26
|
+
continue;
|
|
27
|
+
if (acc + segLen >= s) {
|
|
28
|
+
const t = (s - acc) / segLen;
|
|
29
|
+
return { x: a.x + (b.x - a.x) * t, y: a.y + (b.y - a.y) * t };
|
|
30
|
+
}
|
|
31
|
+
acc += segLen;
|
|
32
|
+
}
|
|
33
|
+
const last = points[points.length - 1];
|
|
34
|
+
return { x: last.x, y: last.y };
|
|
35
|
+
}
|
|
36
|
+
function dist(a, b) {
|
|
37
|
+
return Math.hypot(b.x - a.x, b.y - a.y);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLXBvbHlsaW5lLWNhbmRpZGF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy91dGlscy9jYWxjdWxhdGUtcG9seWxpbmUtY2FuZGlkYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLFFBQWtCO0lBRWxCLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXZELE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLE1BQWdCO0lBQzNDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNaLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzNDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxNQUFnQixFQUFFLENBQVM7SUFDeEQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRVosS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDM0MsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxQixJQUFJLE1BQU0sSUFBSSxDQUFDO1lBQUUsU0FBUztRQUUxQixJQUFJLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1lBRTdCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hFLENBQUM7UUFFRCxHQUFHLElBQUksTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUV2QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRUQsU0FBUyxJQUFJLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDaEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVQb2x5bGluZUNhbmRpZGF0ZXMoXG4gIHBvbHlsaW5lOiBJUG9pbnRbXSxcbik6IElQb2ludFtdIHtcbiAgaWYgKHBvbHlsaW5lLmxlbmd0aCA8IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1BvbHlsaW5lcyBtdXN0IGJlIGF0IGxlYXN0IHR3byBwb2ludHMnKTtcbiAgfVxuXG4gIGNvbnN0IHRvdGFsID0gcG9seWxpbmVUb3RhbExlbmd0aChwb2x5bGluZSk7XG4gIGlmICh0b3RhbCA8PSAwKSB7XG4gICAgcmV0dXJuIFt7IC4uLnBvbHlsaW5lWzBdIH1dO1xuICB9XG5cbiAgY29uc3QgbWlkID0gcG9pbnRBdFBvbHlsaW5lTGVuZ3RoKHBvbHlsaW5lLCB0b3RhbCAvIDIpO1xuXG4gIHJldHVybiBbbWlkXTtcbn1cblxuZnVuY3Rpb24gcG9seWxpbmVUb3RhbExlbmd0aChwb2ludHM6IElQb2ludFtdKTogbnVtYmVyIHtcbiAgbGV0IGxlbiA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIGxlbiArPSBkaXN0KHBvaW50c1tpXSwgcG9pbnRzW2kgKyAxXSk7XG4gIH1cblxuICByZXR1cm4gbGVuO1xufVxuXG5mdW5jdGlvbiBwb2ludEF0UG9seWxpbmVMZW5ndGgocG9pbnRzOiBJUG9pbnRbXSwgczogbnVtYmVyKTogSVBvaW50IHtcbiAgbGV0IGFjYyA9IDA7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgY29uc3QgYSA9IHBvaW50c1tpXTtcbiAgICBjb25zdCBiID0gcG9pbnRzW2kgKyAxXTtcbiAgICBjb25zdCBzZWdMZW4gPSBkaXN0KGEsIGIpO1xuXG4gICAgaWYgKHNlZ0xlbiA8PSAwKSBjb250aW51ZTtcblxuICAgIGlmIChhY2MgKyBzZWdMZW4gPj0gcykge1xuICAgICAgY29uc3QgdCA9IChzIC0gYWNjKSAvIHNlZ0xlbjtcblxuICAgICAgcmV0dXJuIHsgeDogYS54ICsgKGIueCAtIGEueCkgKiB0LCB5OiBhLnkgKyAoYi55IC0gYS55KSAqIHQgfTtcbiAgICB9XG5cbiAgICBhY2MgKz0gc2VnTGVuO1xuICB9XG5cbiAgY29uc3QgbGFzdCA9IHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV07XG5cbiAgcmV0dXJuIHsgeDogbGFzdC54LCB5OiBsYXN0LnkgfTtcbn1cblxuZnVuY3Rpb24gZGlzdChhOiBJUG9pbnQsIGI6IElQb2ludCk6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLmh5cG90KGIueCAtIGEueCwgYi55IC0gYS55KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './build-connection-anchors';
|
|
2
|
+
export * from './calculate-center-between-points';
|
|
3
|
+
export * from './calculate-curve-candidates';
|
|
4
|
+
export * from './calculate-polyline-candidates';
|
|
5
|
+
export * from './merge-point-chains';
|
|
6
|
+
export * from './multi-cubic';
|
|
7
|
+
export * from './normalize-polyline';
|
|
8
|
+
export * from './sample-cubic-bezier-uniform';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9idWlsZC1jb25uZWN0aW9uLWFuY2hvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY2VudGVyLWJldHdlZW4tcG9pbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWN1cnZlLWNhbmRpZGF0ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtcG9seWxpbmUtY2FuZGlkYXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL21lcmdlLXBvaW50LWNoYWlucyc7XG5leHBvcnQgKiBmcm9tICcuL211bHRpLWN1YmljJztcbmV4cG9ydCAqIGZyb20gJy4vbm9ybWFsaXplLXBvbHlsaW5lJztcbmV4cG9ydCAqIGZyb20gJy4vc2FtcGxlLWN1YmljLWJlemllci11bmlmb3JtJztcbiJdfQ==
|
package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/merge-point-chains.mjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function mergePointChains(chains) {
|
|
2
|
+
const out = [];
|
|
3
|
+
for (const chain of chains) {
|
|
4
|
+
for (const p of chain) {
|
|
5
|
+
const last = out[out.length - 1];
|
|
6
|
+
if (!last || last.x !== p.x || last.y !== p.y)
|
|
7
|
+
out.push(p);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return out;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtcG9pbnQtY2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvYnVpbGRlcnMvdXRpbHMvbWVyZ2UtcG9pbnQtY2hhaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFrQjtJQUNqRCxNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFDekIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VQb2ludENoYWlucyhjaGFpbnM6IElQb2ludFtdW10pOiBJUG9pbnRbXSB7XG4gIGNvbnN0IG91dDogSVBvaW50W10gPSBbXTtcbiAgZm9yIChjb25zdCBjaGFpbiBvZiBjaGFpbnMpIHtcbiAgICBmb3IgKGNvbnN0IHAgb2YgY2hhaW4pIHtcbiAgICAgIGNvbnN0IGxhc3QgPSBvdXRbb3V0Lmxlbmd0aCAtIDFdO1xuICAgICAgaWYgKCFsYXN0IHx8IGxhc3QueCAhPT0gcC54IHx8IGxhc3QueSAhPT0gcC55KSBvdXQucHVzaChwKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0O1xufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { sampleCubicBezierUniform } from './sample-cubic-bezier-uniform';
|
|
2
|
+
export function createMultiCubicPath(segments) {
|
|
3
|
+
if (!segments.length)
|
|
4
|
+
return '';
|
|
5
|
+
let d = `M ${segments[0].p0.x} ${segments[0].p0.y}`;
|
|
6
|
+
for (let i = 0; i < segments.length; i++) {
|
|
7
|
+
const s = segments[i];
|
|
8
|
+
const isLast = i === segments.length - 1;
|
|
9
|
+
const x = isLast ? s.p3.x + 0.0002 : s.p3.x;
|
|
10
|
+
const y = isLast ? s.p3.y + 0.0002 : s.p3.y;
|
|
11
|
+
d += ` C ${s.c1.x} ${s.c1.y}, ${s.c2.x} ${s.c2.y}, ${x} ${y}`;
|
|
12
|
+
}
|
|
13
|
+
return d;
|
|
14
|
+
}
|
|
15
|
+
export function sampleMultiCubicUniform(segments, samplesPerSegment = 16) {
|
|
16
|
+
if (!segments.length)
|
|
17
|
+
return [];
|
|
18
|
+
const out = [];
|
|
19
|
+
for (let i = 0; i < segments.length; i++) {
|
|
20
|
+
const s = segments[i];
|
|
21
|
+
const pts = sampleCubicBezierUniform([s.p0, s.c1, s.c2, s.p3], samplesPerSegment);
|
|
22
|
+
if (i > 0)
|
|
23
|
+
pts.shift();
|
|
24
|
+
out.push(...pts);
|
|
25
|
+
}
|
|
26
|
+
return out;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktY3ViaWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9idWlsZGVycy91dGlscy9tdWx0aS1jdWJpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVV6RSxNQUFNLFVBQVUsb0JBQW9CLENBQUMsUUFBeUI7SUFDNUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDaEMsSUFBSSxDQUFDLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRXBELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDekMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUV6QyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTVDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxRQUF5QixFQUN6QixpQkFBaUIsR0FBRyxFQUFFO0lBRXRCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2hDLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQztJQUV6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLEdBQUcsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IHNhbXBsZUN1YmljQmV6aWVyVW5pZm9ybSB9IGZyb20gJy4vc2FtcGxlLWN1YmljLWJlemllci11bmlmb3JtJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ3ViaWNTZWdtZW50IHtcbiAgcDA6IElQb2ludDtcbiAgYzE6IElQb2ludDtcbiAgYzI6IElQb2ludDtcbiAgcDM6IElQb2ludDtcbiAgY2hhaW5JbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTXVsdGlDdWJpY1BhdGgoc2VnbWVudHM6IElDdWJpY1NlZ21lbnRbXSk6IHN0cmluZyB7XG4gIGlmICghc2VnbWVudHMubGVuZ3RoKSByZXR1cm4gJyc7XG4gIGxldCBkID0gYE0gJHtzZWdtZW50c1swXS5wMC54fSAke3NlZ21lbnRzWzBdLnAwLnl9YDtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgcyA9IHNlZ21lbnRzW2ldO1xuICAgIGNvbnN0IGlzTGFzdCA9IGkgPT09IHNlZ21lbnRzLmxlbmd0aCAtIDE7XG5cbiAgICBjb25zdCB4ID0gaXNMYXN0ID8gcy5wMy54ICsgMC4wMDAyIDogcy5wMy54O1xuICAgIGNvbnN0IHkgPSBpc0xhc3QgPyBzLnAzLnkgKyAwLjAwMDIgOiBzLnAzLnk7XG5cbiAgICBkICs9IGAgQyAke3MuYzEueH0gJHtzLmMxLnl9LCAke3MuYzIueH0gJHtzLmMyLnl9LCAke3h9ICR7eX1gO1xuICB9XG5cbiAgcmV0dXJuIGQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYW1wbGVNdWx0aUN1YmljVW5pZm9ybShcbiAgc2VnbWVudHM6IElDdWJpY1NlZ21lbnRbXSxcbiAgc2FtcGxlc1BlclNlZ21lbnQgPSAxNixcbik6IElQb2ludFtdIHtcbiAgaWYgKCFzZWdtZW50cy5sZW5ndGgpIHJldHVybiBbXTtcbiAgY29uc3Qgb3V0OiBJUG9pbnRbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBzID0gc2VnbWVudHNbaV07XG4gICAgY29uc3QgcHRzID0gc2FtcGxlQ3ViaWNCZXppZXJVbmlmb3JtKFtzLnAwLCBzLmMxLCBzLmMyLCBzLnAzXSwgc2FtcGxlc1BlclNlZ21lbnQpO1xuXG4gICAgaWYgKGkgPiAwKSBwdHMuc2hpZnQoKTtcbiAgICBvdXQucHVzaCguLi5wdHMpO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn1cbiJdfQ==
|
package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/normalize-polyline.mjs
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export function normalizePolyline(points, eps = 1e-6) {
|
|
2
|
+
const n = points.length;
|
|
3
|
+
if (n <= 2)
|
|
4
|
+
return points;
|
|
5
|
+
const tmp = [];
|
|
6
|
+
tmp.push(points[0]);
|
|
7
|
+
for (let i = 1; i < n; i++) {
|
|
8
|
+
const p = points[i];
|
|
9
|
+
const last = tmp[tmp.length - 1];
|
|
10
|
+
if (Math.abs(p.x - last.x) > eps || Math.abs(p.y - last.y) > eps) {
|
|
11
|
+
tmp.push(p);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
if (tmp.length <= 2)
|
|
15
|
+
return tmp;
|
|
16
|
+
const out = [];
|
|
17
|
+
out.push(tmp[0]);
|
|
18
|
+
for (let i = 1; i < tmp.length - 1; i++) {
|
|
19
|
+
const a = out[out.length - 1];
|
|
20
|
+
const b = tmp[i];
|
|
21
|
+
const c = tmp[i + 1];
|
|
22
|
+
const collinearX = Math.abs(a.x - b.x) <= eps && Math.abs(b.x - c.x) <= eps;
|
|
23
|
+
const collinearY = Math.abs(a.y - b.y) <= eps && Math.abs(b.y - c.y) <= eps;
|
|
24
|
+
if (!collinearX && !collinearY)
|
|
25
|
+
out.push(b);
|
|
26
|
+
}
|
|
27
|
+
out.push(tmp[tmp.length - 1]);
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLXBvbHlsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvYnVpbGRlcnMvdXRpbHMvbm9ybWFsaXplLXBvbHlsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUFnQixFQUFFLEdBQUcsR0FBRyxJQUFJO0lBQzVELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBRTFCLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQztJQUN6QixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMzQixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFakMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ2pFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFFaEMsTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO0lBQ3pCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDeEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFckIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDNUUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7UUFFNUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVU7WUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFOUIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQb2x5bGluZShwb2ludHM6IElQb2ludFtdLCBlcHMgPSAxZS02KTogSVBvaW50W10ge1xuICBjb25zdCBuID0gcG9pbnRzLmxlbmd0aDtcbiAgaWYgKG4gPD0gMikgcmV0dXJuIHBvaW50cztcblxuICBjb25zdCB0bXA6IElQb2ludFtdID0gW107XG4gIHRtcC5wdXNoKHBvaW50c1swXSk7XG5cbiAgZm9yIChsZXQgaSA9IDE7IGkgPCBuOyBpKyspIHtcbiAgICBjb25zdCBwID0gcG9pbnRzW2ldO1xuICAgIGNvbnN0IGxhc3QgPSB0bXBbdG1wLmxlbmd0aCAtIDFdO1xuXG4gICAgaWYgKE1hdGguYWJzKHAueCAtIGxhc3QueCkgPiBlcHMgfHwgTWF0aC5hYnMocC55IC0gbGFzdC55KSA+IGVwcykge1xuICAgICAgdG1wLnB1c2gocCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHRtcC5sZW5ndGggPD0gMikgcmV0dXJuIHRtcDtcblxuICBjb25zdCBvdXQ6IElQb2ludFtdID0gW107XG4gIG91dC5wdXNoKHRtcFswXSk7XG5cbiAgZm9yIChsZXQgaSA9IDE7IGkgPCB0bXAubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgY29uc3QgYSA9IG91dFtvdXQubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYiA9IHRtcFtpXTtcbiAgICBjb25zdCBjID0gdG1wW2kgKyAxXTtcblxuICAgIGNvbnN0IGNvbGxpbmVhclggPSBNYXRoLmFicyhhLnggLSBiLngpIDw9IGVwcyAmJiBNYXRoLmFicyhiLnggLSBjLngpIDw9IGVwcztcbiAgICBjb25zdCBjb2xsaW5lYXJZID0gTWF0aC5hYnMoYS55IC0gYi55KSA8PSBlcHMgJiYgTWF0aC5hYnMoYi55IC0gYy55KSA8PSBlcHM7XG5cbiAgICBpZiAoIWNvbGxpbmVhclggJiYgIWNvbGxpbmVhclkpIG91dC5wdXNoKGIpO1xuICB9XG5cbiAgb3V0LnB1c2godG1wW3RtcC5sZW5ndGggLSAxXSk7XG5cbiAgcmV0dXJuIG91dDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Uniformly samples a cubic Bézier segment.
|
|
3
|
+
*
|
|
4
|
+
* @param points - Start point, First control point, Second control point, End point.
|
|
5
|
+
* @param samples - Number of sub-segments (default: 32). The function returns `samples + 1` points.
|
|
6
|
+
* @returns Array of sampled points including both endpoints.
|
|
7
|
+
* @remarks
|
|
8
|
+
* Sampling is uniform in parameter `t`, not in arc length. This is typically
|
|
9
|
+
* sufficient for hit-testing and bounding boxes; if you need error-bounded
|
|
10
|
+
* flattening, consider an adaptive subdivision strategy instead.
|
|
11
|
+
*/
|
|
12
|
+
export function sampleCubicBezierUniform(points, samples = 32) {
|
|
13
|
+
const out = new Array(samples + 1);
|
|
14
|
+
out[0] = { ...points[0] };
|
|
15
|
+
for (let i = 1; i <= samples; i++) {
|
|
16
|
+
out[i] = cubicBezierAtT(points[0], points[1], points[2], points[3], i / samples);
|
|
17
|
+
}
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Evaluates a cubic Bézier at parameter `t` in [0, 1].
|
|
22
|
+
*
|
|
23
|
+
* @param p0 - Start point.
|
|
24
|
+
* @param p1 - First control point.
|
|
25
|
+
* @param p2 - Second control point.
|
|
26
|
+
* @param p3 - End point.
|
|
27
|
+
* @param t - Parameter in [0, 1].
|
|
28
|
+
* @returns Point on the curve at `t`.
|
|
29
|
+
*/
|
|
30
|
+
export function cubicBezierAtT(p0, p1, p2, p3, t) {
|
|
31
|
+
const u = 1 - t, tt = t * t, uu = u * u, uuu = uu * u, ttt = tt * t;
|
|
32
|
+
return {
|
|
33
|
+
x: uuu * p0.x + 3 * uu * t * p1.x + 3 * u * tt * p2.x + ttt * p3.x,
|
|
34
|
+
y: uuu * p0.y + 3 * uu * t * p1.y + 3 * u * tt * p2.y + ttt * p3.y,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlLWN1YmljLWJlemllci11bmlmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvYnVpbGRlcnMvdXRpbHMvc2FtcGxlLWN1YmljLWJlemllci11bmlmb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsTUFBZ0IsRUFBRSxPQUFPLEdBQUcsRUFBRTtJQUNyRSxNQUFNLEdBQUcsR0FBYSxJQUFJLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0MsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDbEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxDQUFTO0lBQ3RGLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQ2IsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQ1YsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQ1YsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ1osR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFZixPQUFPO1FBQ0wsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7S0FDbkUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcblxuLyoqXG4gKiBVbmlmb3JtbHkgc2FtcGxlcyBhIGN1YmljIELDqXppZXIgc2VnbWVudC5cbiAqXG4gKiBAcGFyYW0gcG9pbnRzIC0gU3RhcnQgcG9pbnQsIEZpcnN0IGNvbnRyb2wgcG9pbnQsIFNlY29uZCBjb250cm9sIHBvaW50LCBFbmQgcG9pbnQuXG4gKiBAcGFyYW0gc2FtcGxlcyAtIE51bWJlciBvZiBzdWItc2VnbWVudHMgKGRlZmF1bHQ6IDMyKS4gVGhlIGZ1bmN0aW9uIHJldHVybnMgYHNhbXBsZXMgKyAxYCBwb2ludHMuXG4gKiBAcmV0dXJucyBBcnJheSBvZiBzYW1wbGVkIHBvaW50cyBpbmNsdWRpbmcgYm90aCBlbmRwb2ludHMuXG4gKiBAcmVtYXJrc1xuICogU2FtcGxpbmcgaXMgdW5pZm9ybSBpbiBwYXJhbWV0ZXIgYHRgLCBub3QgaW4gYXJjIGxlbmd0aC4gVGhpcyBpcyB0eXBpY2FsbHlcbiAqIHN1ZmZpY2llbnQgZm9yIGhpdC10ZXN0aW5nIGFuZCBib3VuZGluZyBib3hlczsgaWYgeW91IG5lZWQgZXJyb3ItYm91bmRlZFxuICogZmxhdHRlbmluZywgY29uc2lkZXIgYW4gYWRhcHRpdmUgc3ViZGl2aXNpb24gc3RyYXRlZ3kgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbXBsZUN1YmljQmV6aWVyVW5pZm9ybShwb2ludHM6IElQb2ludFtdLCBzYW1wbGVzID0gMzIpOiBJUG9pbnRbXSB7XG4gIGNvbnN0IG91dDogSVBvaW50W10gPSBuZXcgQXJyYXkoc2FtcGxlcyArIDEpO1xuICBvdXRbMF0gPSB7IC4uLnBvaW50c1swXSB9O1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSBzYW1wbGVzOyBpKyspIHtcbiAgICBvdXRbaV0gPSBjdWJpY0JlemllckF0VChwb2ludHNbMF0sIHBvaW50c1sxXSwgcG9pbnRzWzJdLCBwb2ludHNbM10sIGkgLyBzYW1wbGVzKTtcbiAgfVxuXG4gIHJldHVybiBvdXQ7XG59XG5cbi8qKlxuICogRXZhbHVhdGVzIGEgY3ViaWMgQsOpemllciBhdCBwYXJhbWV0ZXIgYHRgIGluIFswLCAxXS5cbiAqXG4gKiBAcGFyYW0gcDAgLSBTdGFydCBwb2ludC5cbiAqIEBwYXJhbSBwMSAtIEZpcnN0IGNvbnRyb2wgcG9pbnQuXG4gKiBAcGFyYW0gcDIgLSBTZWNvbmQgY29udHJvbCBwb2ludC5cbiAqIEBwYXJhbSBwMyAtIEVuZCBwb2ludC5cbiAqIEBwYXJhbSB0IC0gUGFyYW1ldGVyIGluIFswLCAxXS5cbiAqIEByZXR1cm5zIFBvaW50IG9uIHRoZSBjdXJ2ZSBhdCBgdGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjdWJpY0JlemllckF0VChwMDogSVBvaW50LCBwMTogSVBvaW50LCBwMjogSVBvaW50LCBwMzogSVBvaW50LCB0OiBudW1iZXIpOiBJUG9pbnQge1xuICBjb25zdCB1ID0gMSAtIHQsXG4gICAgdHQgPSB0ICogdCxcbiAgICB1dSA9IHUgKiB1LFxuICAgIHV1dSA9IHV1ICogdSxcbiAgICB0dHQgPSB0dCAqIHQ7XG5cbiAgcmV0dXJuIHtcbiAgICB4OiB1dXUgKiBwMC54ICsgMyAqIHV1ICogdCAqIHAxLnggKyAzICogdSAqIHR0ICogcDIueCArIHR0dCAqIHAzLngsXG4gICAgeTogdXV1ICogcDAueSArIDMgKiB1dSAqIHQgKiBwMS55ICsgMyAqIHUgKiB0dCAqIHAyLnkgKyB0dHQgKiBwMy55LFxuICB9O1xufVxuIl19
|
package/esm2022/f-connection-v2/utils/connection-line-builder/connection-line-builder-request.mjs
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class ConnectionLineBuilderRequest {
|
|
2
|
+
type;
|
|
3
|
+
payload;
|
|
4
|
+
constructor(type, payload) {
|
|
5
|
+
this.type = type;
|
|
6
|
+
this.payload = payload;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1saW5lLWJ1aWxkZXItcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL3V0aWxzL2Nvbm5lY3Rpb24tbGluZS1idWlsZGVyL2Nvbm5lY3Rpb24tbGluZS1idWlsZGVyLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLDRCQUE0QjtJQUVyQjtJQUNBO0lBRmxCLFlBQ2tCLElBQStCLEVBQy9CLE9BQW1DO1FBRG5DLFNBQUksR0FBSixJQUFJLENBQTJCO1FBQy9CLFlBQU8sR0FBUCxPQUFPLENBQTRCO0lBQ2xELENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0IH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zJztcblxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25MaW5lQnVpbGRlclJlcXVlc3Qge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nIHwgRUZDb25uZWN0aW9uVHlwZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGF5bG9hZDogSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QsXG4gICkge31cbn1cbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { CalculateAdaptiveCurveData, CalculateBezierCurveData, CalculateSegmentLineData, CalculateStraightLineData, } from './builders';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { F_CONNECTION_BUILDERS } from './providers';
|
|
4
|
+
import { EFConnectionType } from '../../enums';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class ConnectionLineBuilder {
|
|
7
|
+
_builtinBuilders = {
|
|
8
|
+
[EFConnectionType.STRAIGHT]: new CalculateStraightLineData(),
|
|
9
|
+
[EFConnectionType.BEZIER]: new CalculateBezierCurveData(),
|
|
10
|
+
[EFConnectionType.ADAPTIVE_CURVE]: new CalculateAdaptiveCurveData(),
|
|
11
|
+
[EFConnectionType.SEGMENT]: new CalculateSegmentLineData(),
|
|
12
|
+
};
|
|
13
|
+
_providedBuilders;
|
|
14
|
+
_builders;
|
|
15
|
+
constructor() {
|
|
16
|
+
this._providedBuilders = inject(F_CONNECTION_BUILDERS, { optional: true }) || {};
|
|
17
|
+
this._builders = {
|
|
18
|
+
...this._builtinBuilders,
|
|
19
|
+
...this._providedBuilders,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
handle({ type, payload }) {
|
|
23
|
+
const builder = this._builders[type];
|
|
24
|
+
if (!builder) {
|
|
25
|
+
throw this._createBuilderNotFoundError(type);
|
|
26
|
+
}
|
|
27
|
+
return builder.handle(payload);
|
|
28
|
+
}
|
|
29
|
+
_createBuilderNotFoundError(requestedType) {
|
|
30
|
+
const builtinTypes = Object.keys(this._builtinBuilders).sort();
|
|
31
|
+
const providedTypes = Object.keys(this._providedBuilders).sort();
|
|
32
|
+
const registeredTypes = Object.keys(this._builders).sort();
|
|
33
|
+
const overriddenBuiltins = builtinTypes.filter((t) => t in this._providedBuilders).sort();
|
|
34
|
+
const lines = [
|
|
35
|
+
`Connection Builder Error: builder type "${requestedType}" not found.`,
|
|
36
|
+
`Registered types: ${registeredTypes.length ? registeredTypes.join(', ') : '(none)'}`,
|
|
37
|
+
`Built-in types: ${builtinTypes.length ? builtinTypes.join(', ') : '(none)'}`,
|
|
38
|
+
`Provided (F_CONNECTION_BUILDERS) types: ${providedTypes.length ? providedTypes.join(', ') : '(none)'}`,
|
|
39
|
+
overriddenBuiltins.length ? `Overridden built-ins: ${overriddenBuiltins.join(', ')}` : null,
|
|
40
|
+
`Tip: ensure you pass a valid Connection Type or provide a builder via F_CONNECTION_BUILDERS.`,
|
|
41
|
+
].filter(Boolean);
|
|
42
|
+
return new Error(lines.join('\n'));
|
|
43
|
+
}
|
|
44
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConnectionLineBuilder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
45
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConnectionLineBuilder });
|
|
46
|
+
}
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConnectionLineBuilder, decorators: [{
|
|
48
|
+
type: Injectable
|
|
49
|
+
}], ctorParameters: () => [] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzFCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRy9DLE1BQU0sT0FBTyxxQkFBcUI7SUFDZixnQkFBZ0IsR0FBd0M7UUFDdkUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLHlCQUF5QixFQUFFO1FBQzVELENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSx3QkFBd0IsRUFBRTtRQUN6RCxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksMEJBQTBCLEVBQUU7UUFDbkUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLHdCQUF3QixFQUFFO0tBQzNELENBQUM7SUFFZSxpQkFBaUIsQ0FBc0M7SUFDdkQsU0FBUyxDQUFzQztJQUVoRTtRQUNFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakYsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNmLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjtZQUN4QixHQUFHLElBQUksQ0FBQyxpQkFBaUI7U0FDMUIsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFnQztRQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLDJCQUEyQixDQUFDLGFBQXFCO1FBQ3ZELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqRSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUzRCxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUxRixNQUFNLEtBQUssR0FBRztZQUNaLDJDQUEyQyxhQUFhLGNBQWM7WUFDdEUscUJBQXFCLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUNyRixtQkFBbUIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQzdFLDJDQUEyQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDdkcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDM0YsOEZBQThGO1NBQy9GLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxCLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7d0dBN0NVLHFCQUFxQjs0R0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlLCBJRkNvbm5lY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQWRhcHRpdmVDdXJ2ZURhdGEsXG4gIENhbGN1bGF0ZUJlemllckN1cnZlRGF0YSxcbiAgQ2FsY3VsYXRlU2VnbWVudExpbmVEYXRhLFxuICBDYWxjdWxhdGVTdHJhaWdodExpbmVEYXRhLFxufSBmcm9tICcuL2J1aWxkZXJzJztcbmltcG9ydCB7IENvbm5lY3Rpb25MaW5lQnVpbGRlclJlcXVlc3QgfSBmcm9tICcuL2Nvbm5lY3Rpb24tbGluZS1idWlsZGVyLXJlcXVlc3QnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fQlVJTERFUlMgfSBmcm9tICcuL3Byb3ZpZGVycyc7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvbkxpbmVCdWlsZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYnVpbHRpbkJ1aWxkZXJzOiBSZWNvcmQ8c3RyaW5nLCBJRkNvbm5lY3Rpb25CdWlsZGVyPiA9IHtcbiAgICBbRUZDb25uZWN0aW9uVHlwZS5TVFJBSUdIVF06IG5ldyBDYWxjdWxhdGVTdHJhaWdodExpbmVEYXRhKCksXG4gICAgW0VGQ29ubmVjdGlvblR5cGUuQkVaSUVSXTogbmV3IENhbGN1bGF0ZUJlemllckN1cnZlRGF0YSgpLFxuICAgIFtFRkNvbm5lY3Rpb25UeXBlLkFEQVBUSVZFX0NVUlZFXTogbmV3IENhbGN1bGF0ZUFkYXB0aXZlQ3VydmVEYXRhKCksXG4gICAgW0VGQ29ubmVjdGlvblR5cGUuU0VHTUVOVF06IG5ldyBDYWxjdWxhdGVTZWdtZW50TGluZURhdGEoKSxcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wcm92aWRlZEJ1aWxkZXJzOiBSZWNvcmQ8c3RyaW5nLCBJRkNvbm5lY3Rpb25CdWlsZGVyPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfYnVpbGRlcnM6IFJlY29yZDxzdHJpbmcsIElGQ29ubmVjdGlvbkJ1aWxkZXI+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX3Byb3ZpZGVkQnVpbGRlcnMgPSBpbmplY3QoRl9DT05ORUNUSU9OX0JVSUxERVJTLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8IHt9O1xuICAgIHRoaXMuX2J1aWxkZXJzID0ge1xuICAgICAgLi4udGhpcy5fYnVpbHRpbkJ1aWxkZXJzLFxuICAgICAgLi4udGhpcy5fcHJvdmlkZWRCdWlsZGVycyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGhhbmRsZSh7IHR5cGUsIHBheWxvYWQgfTogQ29ubmVjdGlvbkxpbmVCdWlsZGVyUmVxdWVzdCk6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZSB7XG4gICAgY29uc3QgYnVpbGRlciA9IHRoaXMuX2J1aWxkZXJzW3R5cGVdO1xuICAgIGlmICghYnVpbGRlcikge1xuICAgICAgdGhyb3cgdGhpcy5fY3JlYXRlQnVpbGRlck5vdEZvdW5kRXJyb3IodHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkZXIuaGFuZGxlKHBheWxvYWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlQnVpbGRlck5vdEZvdW5kRXJyb3IocmVxdWVzdGVkVHlwZTogc3RyaW5nKTogRXJyb3Ige1xuICAgIGNvbnN0IGJ1aWx0aW5UeXBlcyA9IE9iamVjdC5rZXlzKHRoaXMuX2J1aWx0aW5CdWlsZGVycykuc29ydCgpO1xuICAgIGNvbnN0IHByb3ZpZGVkVHlwZXMgPSBPYmplY3Qua2V5cyh0aGlzLl9wcm92aWRlZEJ1aWxkZXJzKS5zb3J0KCk7XG4gICAgY29uc3QgcmVnaXN0ZXJlZFR5cGVzID0gT2JqZWN0LmtleXModGhpcy5fYnVpbGRlcnMpLnNvcnQoKTtcblxuICAgIGNvbnN0IG92ZXJyaWRkZW5CdWlsdGlucyA9IGJ1aWx0aW5UeXBlcy5maWx0ZXIoKHQpID0+IHQgaW4gdGhpcy5fcHJvdmlkZWRCdWlsZGVycykuc29ydCgpO1xuXG4gICAgY29uc3QgbGluZXMgPSBbXG4gICAgICBgQ29ubmVjdGlvbiBCdWlsZGVyIEVycm9yOiBidWlsZGVyIHR5cGUgXCIke3JlcXVlc3RlZFR5cGV9XCIgbm90IGZvdW5kLmAsXG4gICAgICBgUmVnaXN0ZXJlZCB0eXBlczogJHtyZWdpc3RlcmVkVHlwZXMubGVuZ3RoID8gcmVnaXN0ZXJlZFR5cGVzLmpvaW4oJywgJykgOiAnKG5vbmUpJ31gLFxuICAgICAgYEJ1aWx0LWluIHR5cGVzOiAke2J1aWx0aW5UeXBlcy5sZW5ndGggPyBidWlsdGluVHlwZXMuam9pbignLCAnKSA6ICcobm9uZSknfWAsXG4gICAgICBgUHJvdmlkZWQgKEZfQ09OTkVDVElPTl9CVUlMREVSUykgdHlwZXM6ICR7cHJvdmlkZWRUeXBlcy5sZW5ndGggPyBwcm92aWRlZFR5cGVzLmpvaW4oJywgJykgOiAnKG5vbmUpJ31gLFxuICAgICAgb3ZlcnJpZGRlbkJ1aWx0aW5zLmxlbmd0aCA/IGBPdmVycmlkZGVuIGJ1aWx0LWluczogJHtvdmVycmlkZGVuQnVpbHRpbnMuam9pbignLCAnKX1gIDogbnVsbCxcbiAgICAgIGBUaXA6IGVuc3VyZSB5b3UgcGFzcyBhIHZhbGlkIENvbm5lY3Rpb24gVHlwZSBvciBwcm92aWRlIGEgYnVpbGRlciB2aWEgRl9DT05ORUNUSU9OX0JVSUxERVJTLmAsXG4gICAgXS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICByZXR1cm4gbmV3IEVycm9yKGxpbmVzLmpvaW4oJ1xcbicpKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './builders';
|
|
2
|
+
export * from './models';
|
|
3
|
+
export * from './providers';
|
|
4
|
+
export * from './connection-line-builder';
|
|
5
|
+
export * from './connection-line-builder-request';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J1aWxkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdGlvbi1saW5lLWJ1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci1yZXF1ZXN0JztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWNvbm5lY3Rpb24tYnVpbGRlci1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvbW9kZWxzL2ktZi1jb25uZWN0aW9uLWJ1aWxkZXItcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zJztcblxuZXhwb3J0IGludGVyZmFjZSBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCB7XG4gIHNvdXJjZTogSVBvaW50O1xuXG4gIHNvdXJjZVNpZGU6IEVGQ29ubmVjdGFibGVTaWRlO1xuXG4gIHRhcmdldDogSVBvaW50O1xuXG4gIHRhcmdldFNpZGU6IEVGQ29ubmVjdGFibGVTaWRlO1xuXG4gIHJhZGl1czogbnVtYmVyO1xuXG4gIG9mZnNldDogbnVtYmVyO1xuXG4gIHdheXBvaW50czogSVBvaW50W107XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWNvbm5lY3Rpb24tYnVpbGRlci1yZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL3V0aWxzL2Nvbm5lY3Rpb24tbGluZS1idWlsZGVyL21vZGVscy9pLWYtY29ubmVjdGlvbi1idWlsZGVyLXJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcblxuZXhwb3J0IGludGVyZmFjZSBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2Uge1xuICBwYXRoOiBzdHJpbmc7XG5cbiAgcGVudWx0aW1hdGVQb2ludDogSVBvaW50O1xuXG4gIHNlY29uZFBvaW50OiBJUG9pbnQ7XG5cbiAgcG9pbnRzOiBJUG9pbnRbXTtcblxuICBjYW5kaWRhdGVzOiBJUG9pbnRbXTtcbn1cbiJdfQ==
|
package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWNvbm5lY3Rpb24tYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL3V0aWxzL2Nvbm5lY3Rpb24tbGluZS1idWlsZGVyL21vZGVscy9pLWYtY29ubmVjdGlvbi1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCB9IGZyb20gJy4vaS1mLWNvbm5lY3Rpb24tYnVpbGRlci1yZXF1ZXN0JztcbmltcG9ydCB7IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZSB9IGZyb20gJy4vaS1mLWNvbm5lY3Rpb24tYnVpbGRlci1yZXNwb25zZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZDb25uZWN0aW9uQnVpbGRlciB7XG4gIGhhbmRsZShyZXF1ZXN0OiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCk6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './i-f-connection-builder-request';
|
|
2
|
+
export * from './i-f-connection-builder-response';
|
|
3
|
+
export * from './i-f-connection-builder';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ktZi1jb25uZWN0aW9uLWJ1aWxkZXItcmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2ktZi1jb25uZWN0aW9uLWJ1aWxkZXItcmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pLWYtY29ubmVjdGlvbi1idWlsZGVyJztcbiJdfQ==
|
package/esm2022/f-connection-v2/utils/connection-line-builder/providers/f-connection-builders.mjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const F_CONNECTION_BUILDERS = new InjectionToken('F_CONNECTION_BUILDERS');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWJ1aWxkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY29ubmVjdGlvbi1saW5lLWJ1aWxkZXIvcHJvdmlkZXJzL2YtY29ubmVjdGlvbi1idWlsZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSy9DLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUNyRCx1QkFBdUIsQ0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRkNvbm5lY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IHR5cGUgSUNvbm5lY3Rpb25CdWlsZGVycyA9IFJlY29yZDxzdHJpbmcsIElGQ29ubmVjdGlvbkJ1aWxkZXI+O1xuXG5leHBvcnQgY29uc3QgRl9DT05ORUNUSU9OX0JVSUxERVJTID0gbmV3IEluamVjdGlvblRva2VuPElDb25uZWN0aW9uQnVpbGRlcnM+KFxuICAnRl9DT05ORUNUSU9OX0JVSUxERVJTJyxcbik7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './f-connection-builders';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jb25uZWN0aW9uLWxpbmUtYnVpbGRlci9wcm92aWRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZi1jb25uZWN0aW9uLWJ1aWxkZXJzJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { normalizeDomElementId } from '@foblex/utils';
|
|
2
|
+
export function createConnectionDomIdentifier(componentId, sourceId, targetId) {
|
|
3
|
+
return normalizeDomElementId('connection_' + componentId + sourceId + targetId);
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbm5lY3Rpb24tZG9tLWlkZW50aWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi91dGlscy9jcmVhdGUtY29ubmVjdGlvbi1kb20taWRlbnRpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsTUFBTSxVQUFVLDZCQUE2QixDQUMzQyxXQUFtQixFQUNuQixRQUFnQixFQUNoQixRQUFnQjtJQUVoQixPQUFPLHFCQUFxQixDQUFDLGFBQWEsR0FBRyxXQUFXLEdBQUcsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0FBQ2xGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVEb21FbGVtZW50SWQgfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbm5lY3Rpb25Eb21JZGVudGlmaWVyKFxuICBjb21wb25lbnRJZDogc3RyaW5nLFxuICBzb3VyY2VJZDogc3RyaW5nLFxuICB0YXJnZXRJZDogc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5vcm1hbGl6ZURvbUVsZW1lbnRJZCgnY29ubmVjdGlvbl8nICsgY29tcG9uZW50SWQgKyBzb3VyY2VJZCArIHRhcmdldElkKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { normalizeDomElementId } from '@foblex/utils';
|
|
2
|
+
export function createConnectionSelectionDomIdentifier(componentId, sourceId, targetId) {
|
|
3
|
+
return normalizeDomElementId('connection_for_selection_' + componentId + sourceId + targetId);
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbm5lY3Rpb24tc2VsZWN0aW9uLWRvbS1pZGVudGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY3JlYXRlLWNvbm5lY3Rpb24tc2VsZWN0aW9uLWRvbS1pZGVudGlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxNQUFNLFVBQVUsc0NBQXNDLENBQ3BELFdBQW1CLEVBQ25CLFFBQWdCLEVBQ2hCLFFBQWdCO0lBRWhCLE9BQU8scUJBQXFCLENBQUMsMkJBQTJCLEdBQUcsV0FBVyxHQUFHLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQztBQUNoRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplRG9tRWxlbWVudElkIH0gZnJvbSAnQGZvYmxleC91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb25uZWN0aW9uU2VsZWN0aW9uRG9tSWRlbnRpZmllcihcbiAgY29tcG9uZW50SWQ6IHN0cmluZyxcbiAgc291cmNlSWQ6IHN0cmluZyxcbiAgdGFyZ2V0SWQ6IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIHJldHVybiBub3JtYWxpemVEb21FbGVtZW50SWQoJ2Nvbm5lY3Rpb25fZm9yX3NlbGVjdGlvbl8nICsgY29tcG9uZW50SWQgKyBzb3VyY2VJZCArIHRhcmdldElkKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { normalizeDomElementId } from '@foblex/utils';
|
|
2
|
+
export function createGradientDomIdentifier(componentId, sourceId, targetId) {
|
|
3
|
+
return normalizeDomElementId('connection_gradient_' + componentId + sourceId + targetId);
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWdyYWRpZW50LWRvbS1pZGVudGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvdXRpbHMvY3JlYXRlLWdyYWRpZW50LWRvbS1pZGVudGlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLFdBQW1CLEVBQ25CLFFBQWdCLEVBQ2hCLFFBQWdCO0lBRWhCLE9BQU8scUJBQXFCLENBQUMsc0JBQXNCLEdBQUcsV0FBVyxHQUFHLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQztBQUMzRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplRG9tRWxlbWVudElkIH0gZnJvbSAnQGZvYmxleC91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVHcmFkaWVudERvbUlkZW50aWZpZXIoXG4gIGNvbXBvbmVudElkOiBzdHJpbmcsXG4gIHNvdXJjZUlkOiBzdHJpbmcsXG4gIHRhcmdldElkOiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICByZXR1cm4gbm9ybWFsaXplRG9tRWxlbWVudElkKCdjb25uZWN0aW9uX2dyYWRpZW50XycgKyBjb21wb25lbnRJZCArIHNvdXJjZUlkICsgdGFyZ2V0SWQpO1xufVxuIl19
|