@foblex/flow 17.9.81 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/domain/css-cls.d.ts +0 -3
- 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-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/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 +3 -13
- 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 +2 -9
- 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 +0 -4
- package/fesm2022/foblex-flow.mjs +4296 -3863
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +1 -1
- 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/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-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
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { FExecutionRegister } from '@foblex/mediator';
|
|
4
|
-
import { AddZoomToStoreRequest } from './add-zoom-to-store-request';
|
|
5
|
-
import { FComponentsStore } from '../../../f-storage';
|
|
6
|
-
import { F_ZOOM_TAG } from '../f-zoom-tag';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
/**
|
|
9
|
-
* Execution that adds a Zoom to the FComponentsStore.
|
|
10
|
-
*/
|
|
11
|
-
let AddZoomToStoreExecution = class AddZoomToStoreExecution {
|
|
12
|
-
_store = inject(FComponentsStore);
|
|
13
|
-
handle(request) {
|
|
14
|
-
this._store.fComponents = {
|
|
15
|
-
[F_ZOOM_TAG]: request.fComponent,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddZoomToStoreExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddZoomToStoreExecution });
|
|
20
|
-
};
|
|
21
|
-
AddZoomToStoreExecution = __decorate([
|
|
22
|
-
FExecutionRegister(AddZoomToStoreRequest)
|
|
23
|
-
], AddZoomToStoreExecution);
|
|
24
|
-
export { AddZoomToStoreExecution };
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddZoomToStoreExecution, decorators: [{
|
|
26
|
-
type: Injectable
|
|
27
|
-
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXpvb20tdG8tc3RvcmUuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi16b29tL2FkZC16b29tLXRvLXN0b3JlL2FkZC16b29tLXRvLXN0b3JlLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0M7O0dBRUc7QUFHSSxJQUFNLHVCQUF1QixHQUE3QixNQUFNLHVCQUF1QjtJQUdqQixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFNUMsTUFBTSxDQUFDLE9BQThCO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHO1lBQ3hCLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQVU7U0FDakMsQ0FBQztJQUNKLENBQUM7d0dBVFUsdUJBQXVCOzRHQUF2Qix1QkFBdUI7O0FBQXZCLHVCQUF1QjtJQURuQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztHQUM3Qix1QkFBdUIsQ0FVbkM7OzRGQVZZLHVCQUF1QjtrQkFGbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBBZGRab29tVG9TdG9yZVJlcXVlc3QgfSBmcm9tICcuL2FkZC16b29tLXRvLXN0b3JlLXJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGX1pPT01fVEFHIH0gZnJvbSAnLi4vZi16b29tLXRhZyc7XG5cbi8qKlxuICogRXhlY3V0aW9uIHRoYXQgYWRkcyBhIFpvb20gdG8gdGhlIEZDb21wb25lbnRzU3RvcmUuXG4gKi9cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoQWRkWm9vbVRvU3RvcmVSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEFkZFpvb21Ub1N0b3JlRXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxBZGRab29tVG9TdG9yZVJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IEFkZFpvb21Ub1N0b3JlUmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMuX3N0b3JlLmZDb21wb25lbnRzID0ge1xuICAgICAgW0ZfWk9PTV9UQUddOiByZXF1ZXN0LmZDb21wb25lbnQsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { FExecutionRegister } from '@foblex/mediator';
|
|
4
|
-
import { RemoveZoomFromStoreRequest } from './remove-zoom-from-store-request';
|
|
5
|
-
import { FComponentsStore } from '../../../f-storage';
|
|
6
|
-
import { F_ZOOM_TAG } from '../f-zoom-tag';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
/**
|
|
9
|
-
* Execution that removes a Zoom from the FComponentsStore.
|
|
10
|
-
*/
|
|
11
|
-
let RemoveZoomFromStoreExecution = class RemoveZoomFromStoreExecution {
|
|
12
|
-
_store = inject(FComponentsStore);
|
|
13
|
-
handle(_request) {
|
|
14
|
-
this._store.fComponents = {
|
|
15
|
-
[F_ZOOM_TAG]: undefined,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoveZoomFromStoreExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoveZoomFromStoreExecution });
|
|
20
|
-
};
|
|
21
|
-
RemoveZoomFromStoreExecution = __decorate([
|
|
22
|
-
FExecutionRegister(RemoveZoomFromStoreRequest)
|
|
23
|
-
], RemoveZoomFromStoreExecution);
|
|
24
|
-
export { RemoveZoomFromStoreExecution };
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoveZoomFromStoreExecution, decorators: [{
|
|
26
|
-
type: Injectable
|
|
27
|
-
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLXpvb20tZnJvbS1zdG9yZS5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLXpvb20vcmVtb3ZlLXpvb20tZnJvbS1zdG9yZS9yZW1vdmUtem9vbS1mcm9tLXN0b3JlLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0M7O0dBRUc7QUFHSSxJQUFNLDRCQUE0QixHQUFsQyxNQUFNLDRCQUE0QjtJQUN0QixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFNUMsTUFBTSxDQUFDLFFBQW9DO1FBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHO1lBQ3hCLENBQUMsVUFBVSxDQUFDLEVBQUUsU0FBUztTQUN4QixDQUFDO0lBQ0osQ0FBQzt3R0FQVSw0QkFBNEI7NEdBQTVCLDRCQUE0Qjs7QUFBNUIsNEJBQTRCO0lBRHhDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDO0dBQ2xDLDRCQUE0QixDQVF4Qzs7NEZBUlksNEJBQTRCO2tCQUZ4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IFJlbW92ZVpvb21Gcm9tU3RvcmVSZXF1ZXN0IH0gZnJvbSAnLi9yZW1vdmUtem9vbS1mcm9tLXN0b3JlLXJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGX1pPT01fVEFHIH0gZnJvbSAnLi4vZi16b29tLXRhZyc7XG5cbi8qKlxuICogRXhlY3V0aW9uIHRoYXQgcmVtb3ZlcyBhIFpvb20gZnJvbSB0aGUgRkNvbXBvbmVudHNTdG9yZS5cbiAqL1xuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihSZW1vdmVab29tRnJvbVN0b3JlUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBSZW1vdmVab29tRnJvbVN0b3JlRXhlY3V0aW9uIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxSZW1vdmVab29tRnJvbVN0b3JlUmVxdWVzdCwgdm9pZD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwdWJsaWMgaGFuZGxlKF9yZXF1ZXN0OiBSZW1vdmVab29tRnJvbVN0b3JlUmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMuX3N0b3JlLmZDb21wb25lbnRzID0ge1xuICAgICAgW0ZfWk9PTV9UQUddOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { FExecutionRegister } from '@foblex/mediator';
|
|
4
|
-
import { ResetZoomRequest } from './reset-zoom-request';
|
|
5
|
-
import { FComponentsStore } from '../../../f-storage';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Execution that resets the zoom level of the FCanvas.
|
|
9
|
-
*/
|
|
10
|
-
let ResetZoomExecution = class ResetZoomExecution {
|
|
11
|
-
_store = inject(FComponentsStore);
|
|
12
|
-
get _fCanvas() {
|
|
13
|
-
return this._store.fCanvas;
|
|
14
|
-
}
|
|
15
|
-
handle(request) {
|
|
16
|
-
this._fCanvas.resetScale();
|
|
17
|
-
this._fCanvas.redraw();
|
|
18
|
-
this._fCanvas.emitCanvasChangeEvent();
|
|
19
|
-
}
|
|
20
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetZoomExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
21
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetZoomExecution });
|
|
22
|
-
};
|
|
23
|
-
ResetZoomExecution = __decorate([
|
|
24
|
-
FExecutionRegister(ResetZoomRequest)
|
|
25
|
-
], ResetZoomExecution);
|
|
26
|
-
export { ResetZoomExecution };
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetZoomExecution, decorators: [{
|
|
28
|
-
type: Injectable
|
|
29
|
-
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtem9vbS5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLXpvb20vcmVzZXQtem9vbS9yZXNldC16b29tLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBR3REOztHQUVHO0FBR0ksSUFBTSxrQkFBa0IsR0FBeEIsTUFBTSxrQkFBa0I7SUFFWixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFbkQsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUF5QjtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7d0dBWlUsa0JBQWtCOzRHQUFsQixrQkFBa0I7O0FBQWxCLGtCQUFrQjtJQUQ5QixrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQztHQUN4QixrQkFBa0IsQ0FhOUI7OzRGQWJZLGtCQUFrQjtrQkFGOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBSZXNldFpvb21SZXF1ZXN0IH0gZnJvbSAnLi9yZXNldC16b29tLXJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGQ2FudmFzQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY2FudmFzJztcblxuLyoqXG4gKiBFeGVjdXRpb24gdGhhdCByZXNldHMgdGhlIHpvb20gbGV2ZWwgb2YgdGhlIEZDYW52YXMuXG4gKi9cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoUmVzZXRab29tUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBSZXNldFpvb21FeGVjdXRpb24gaW1wbGVtZW50cyBJRXhlY3V0aW9uPFJlc2V0Wm9vbVJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwcml2YXRlIGdldCBfZkNhbnZhcygpOiBGQ2FudmFzQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZDYW52YXMhO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBSZXNldFpvb21SZXF1ZXN0KTogdm9pZCB7XG4gICAgdGhpcy5fZkNhbnZhcy5yZXNldFNjYWxlKCk7XG4gICAgdGhpcy5fZkNhbnZhcy5yZWRyYXcoKTtcbiAgICB0aGlzLl9mQ2FudmFzLmVtaXRDYW52YXNDaGFuZ2VFdmVudCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
4
|
-
import { SetZoomRequest } from './set-zoom-request';
|
|
5
|
-
import { FComponentsStore } from '../../../f-storage';
|
|
6
|
-
import { F_ZOOM_TAG } from '../f-zoom-tag';
|
|
7
|
-
import { Point } from '@foblex/2d';
|
|
8
|
-
import { IsDragStartedRequest } from '../../f-draggable';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
/**
|
|
11
|
-
* Execution that sets the zoom level of the FCanvas based on the provided request.
|
|
12
|
-
* It adjusts the zoom level by a specified step and direction, ensuring it stays within defined limits.
|
|
13
|
-
*/
|
|
14
|
-
let SetZoomExecution = class SetZoomExecution {
|
|
15
|
-
_mediator = inject(FMediator);
|
|
16
|
-
_store = inject(FComponentsStore);
|
|
17
|
-
get _fHost() {
|
|
18
|
-
return this._store.fFlow?.hostElement;
|
|
19
|
-
}
|
|
20
|
-
get _fCanvas() {
|
|
21
|
-
return this._store.fCanvas;
|
|
22
|
-
}
|
|
23
|
-
get _fZoomComponent() {
|
|
24
|
-
return this._store.fComponents[F_ZOOM_TAG];
|
|
25
|
-
}
|
|
26
|
-
get _isDragStarted() {
|
|
27
|
-
return this._mediator.execute(new IsDragStartedRequest());
|
|
28
|
-
}
|
|
29
|
-
handle(request) {
|
|
30
|
-
if (this._isDragStarted || !this._fZoomComponent) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const result = this._fCanvas.transform.scale + request.step * request.direction;
|
|
34
|
-
this._fCanvas.setScale(this._clamp(result), this._castPositionToFlow(request.position));
|
|
35
|
-
request.animate ? this._fCanvas.redrawWithAnimation() : this._fCanvas.redraw();
|
|
36
|
-
this._fCanvas.emitCanvasChangeEvent();
|
|
37
|
-
}
|
|
38
|
-
_clamp(value) {
|
|
39
|
-
return Math.max(this._fZoomComponent.minimum, Math.min(value, this._fZoomComponent.maximum));
|
|
40
|
-
}
|
|
41
|
-
_castPositionToFlow(position) {
|
|
42
|
-
return Point.fromPoint(position).elementTransform(this._fHost);
|
|
43
|
-
}
|
|
44
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SetZoomExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
45
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SetZoomExecution });
|
|
46
|
-
};
|
|
47
|
-
SetZoomExecution = __decorate([
|
|
48
|
-
FExecutionRegister(SetZoomRequest)
|
|
49
|
-
], SetZoomExecution);
|
|
50
|
-
export { SetZoomExecution };
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SetZoomExecution, decorators: [{
|
|
52
|
-
type: Injectable
|
|
53
|
-
}] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXpvb20uZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi16b29tL3NldC16b29tL3NldC16b29tLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBVSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXpEOzs7R0FHRztBQUdJLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBQ1YsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFbkQsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsV0FBWSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFZLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBWSxlQUFlO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFlLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQVksY0FBYztRQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFVLElBQUksb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBdUI7UUFDbkMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2pELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUVoRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN4RixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxNQUFNLENBQUMsS0FBYTtRQUMxQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxRQUFnQjtRQUMxQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7d0dBdENVLGdCQUFnQjs0R0FBaEIsZ0JBQWdCOztBQUFoQixnQkFBZ0I7SUFENUIsa0JBQWtCLENBQUMsY0FBYyxDQUFDO0dBQ3RCLGdCQUFnQixDQXVDNUI7OzRGQXZDWSxnQkFBZ0I7a0JBRjVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBTZXRab29tUmVxdWVzdCB9IGZyb20gJy4vc2V0LXpvb20tcmVxdWVzdCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZfWk9PTV9UQUcgfSBmcm9tICcuLi9mLXpvb20tdGFnJztcbmltcG9ydCB7IElQb2ludCwgUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZDYW52YXNCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jYW52YXMnO1xuaW1wb3J0IHsgRlpvb21CYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi16b29tJztcbmltcG9ydCB7IElzRHJhZ1N0YXJ0ZWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZi1kcmFnZ2FibGUnO1xuXG4vKipcbiAqIEV4ZWN1dGlvbiB0aGF0IHNldHMgdGhlIHpvb20gbGV2ZWwgb2YgdGhlIEZDYW52YXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHJlcXVlc3QuXG4gKiBJdCBhZGp1c3RzIHRoZSB6b29tIGxldmVsIGJ5IGEgc3BlY2lmaWVkIHN0ZXAgYW5kIGRpcmVjdGlvbiwgZW5zdXJpbmcgaXQgc3RheXMgd2l0aGluIGRlZmluZWQgbGltaXRzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKFNldFpvb21SZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIFNldFpvb21FeGVjdXRpb24gaW1wbGVtZW50cyBJRXhlY3V0aW9uPFNldFpvb21SZXF1ZXN0LCB2b2lkPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHByaXZhdGUgZ2V0IF9mSG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZGbG93Py5ob3N0RWxlbWVudCE7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZkNhbnZhcygpOiBGQ2FudmFzQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZDYW52YXMhO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2Zab29tQ29tcG9uZW50KCk6IEZab29tQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZDb21wb25lbnRzW0ZfWk9PTV9UQUddISBhcyBGWm9vbUJhc2U7XG4gIH1cblxuICBwcml2YXRlIGdldCBfaXNEcmFnU3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTxib29sZWFuPihuZXcgSXNEcmFnU3RhcnRlZFJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IFNldFpvb21SZXF1ZXN0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzRHJhZ1N0YXJ0ZWQgfHwgIXRoaXMuX2Zab29tQ29tcG9uZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZkNhbnZhcy50cmFuc2Zvcm0uc2NhbGUgKyByZXF1ZXN0LnN0ZXAgKiByZXF1ZXN0LmRpcmVjdGlvbjtcblxuICAgIHRoaXMuX2ZDYW52YXMuc2V0U2NhbGUodGhpcy5fY2xhbXAocmVzdWx0KSwgdGhpcy5fY2FzdFBvc2l0aW9uVG9GbG93KHJlcXVlc3QucG9zaXRpb24pKTtcbiAgICByZXF1ZXN0LmFuaW1hdGUgPyB0aGlzLl9mQ2FudmFzLnJlZHJhd1dpdGhBbmltYXRpb24oKSA6IHRoaXMuX2ZDYW52YXMucmVkcmF3KCk7XG4gICAgdGhpcy5fZkNhbnZhcy5lbWl0Q2FudmFzQ2hhbmdlRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsYW1wKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heCh0aGlzLl9mWm9vbUNvbXBvbmVudC5taW5pbXVtLCBNYXRoLm1pbih2YWx1ZSwgdGhpcy5fZlpvb21Db21wb25lbnQubWF4aW11bSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FzdFBvc2l0aW9uVG9GbG93KHBvc2l0aW9uOiBJUG9pbnQpOiBJUG9pbnQge1xuICAgIHJldHVybiBQb2ludC5mcm9tUG9pbnQocG9zaXRpb24pLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5fZkhvc3QpO1xuICB9XG59XG4iXX0=
|
package/esm2022/domain/i-map.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9pLW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSU1hcDxUID0gc3RyaW5nPiA9IFJlY29yZDxzdHJpbmcsIFQ+O1xuIl19
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import { EFConnectableSide } from '../../../f-connectors';
|
|
2
|
-
import { CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, } from './calculate-connection-center';
|
|
3
|
-
/**
|
|
4
|
-
* AdaptiveCurveBuilder
|
|
5
|
-
*
|
|
6
|
-
* Builds a smooth **adaptive connector curve** between two points using a cubic Bézier path,
|
|
7
|
-
* but with control points computed differently from a classic “Bezier” connector.
|
|
8
|
-
*
|
|
9
|
-
* Key differences from a classic Bézier builder:
|
|
10
|
-
* - Control handles are **aligned with the port side** (LEFT/RIGHT/TOP/BOTTOM),
|
|
11
|
-
* yet are **slightly blended toward the target direction** to reduce harsh S-shapes.
|
|
12
|
-
* - Handle lengths are **adaptive**: based on the `offset` (your “padding” from ports)
|
|
13
|
-
* and the projected distance along the side’s axis. This produces a subtler curvature
|
|
14
|
-
* and a distinct look & feel compared to a standard Bézier connector.
|
|
15
|
-
*
|
|
16
|
-
* Compatibility:
|
|
17
|
-
* - Implements {@link IFConnectionBuilder}; output shape is the same:
|
|
18
|
-
* SVG path, sampled points for hit-testing, and connection center.
|
|
19
|
-
* - Only the four base sides are expected to be passed here:
|
|
20
|
-
* {@link EFConnectableSide.LEFT}, {@link EFConnectableSide.RIGHT},
|
|
21
|
-
* {@link EFConnectableSide.TOP}, {@link EFConnectableSide.BOTTOM}.
|
|
22
|
-
*
|
|
23
|
-
* Usage example:
|
|
24
|
-
* ```ts
|
|
25
|
-
* const builder = new AdaptiveCurveBuilder();
|
|
26
|
-
* const res = builder.handle({
|
|
27
|
-
* source: { x: 100, y: 120 },
|
|
28
|
-
* sourceSide: EFConnectableSide.RIGHT,
|
|
29
|
-
* target: { x: 340, y: 220 },
|
|
30
|
-
* targetSide: EFConnectableSide.LEFT,
|
|
31
|
-
* offset: 16, // acts as padding + minimal handle baseline
|
|
32
|
-
* });
|
|
33
|
-
* // res.path -> SVG "M … C …" string
|
|
34
|
-
* // res.points -> sampled points along the curve
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export class AdaptiveCurveBuilder {
|
|
38
|
-
/**
|
|
39
|
-
* Returns a unit direction vector for a given side.
|
|
40
|
-
*
|
|
41
|
-
* @param side - One of LEFT/RIGHT/TOP/BOTTOM.
|
|
42
|
-
* @returns Unit vector pointing outwards from the side.
|
|
43
|
-
* @remarks
|
|
44
|
-
* Only base sides should reach this builder. A fallback `{0,0}` is returned
|
|
45
|
-
* defensively, but should not occur in normal usage.
|
|
46
|
-
*/
|
|
47
|
-
static _dir(side) {
|
|
48
|
-
switch (side) {
|
|
49
|
-
case EFConnectableSide.LEFT:
|
|
50
|
-
return { x: -1, y: 0 };
|
|
51
|
-
case EFConnectableSide.RIGHT:
|
|
52
|
-
return { x: 1, y: 0 };
|
|
53
|
-
case EFConnectableSide.TOP:
|
|
54
|
-
return { x: 0, y: -1 };
|
|
55
|
-
case EFConnectableSide.BOTTOM:
|
|
56
|
-
return { x: 0, y: 1 };
|
|
57
|
-
}
|
|
58
|
-
return { x: 0, y: 0 };
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Checks whether a side is horizontal (LEFT/RIGHT).
|
|
62
|
-
*
|
|
63
|
-
* @param side - Side to check.
|
|
64
|
-
* @returns `true` for LEFT/RIGHT, otherwise `false`.
|
|
65
|
-
*/
|
|
66
|
-
static _isH(side) {
|
|
67
|
-
return side === EFConnectableSide.LEFT || side === EFConnectableSide.RIGHT;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Computes a **soft** handle length for a control point.
|
|
71
|
-
*
|
|
72
|
-
* The handle length is derived from:
|
|
73
|
-
* - `offset` (acts as padding & the baseline handle),
|
|
74
|
-
* - distance projected along the side’s axis (dx for horizontal, dy for vertical),
|
|
75
|
-
* - a conservative upper bound to avoid bloated curves.
|
|
76
|
-
*
|
|
77
|
-
* @param p0 - Start (or end) point of the segment.
|
|
78
|
-
* @param p3 - Opposite end (or start) point.
|
|
79
|
-
* @param side - Side at which the handle originates.
|
|
80
|
-
* @param offset - Visual padding/minimal handle baseline (must be ≥ 0).
|
|
81
|
-
* @returns A bounded positive handle length.
|
|
82
|
-
*/
|
|
83
|
-
static _handleLen(p0, p3, side, offset) {
|
|
84
|
-
const dx = Math.abs(p3.x - p0.x);
|
|
85
|
-
const dy = Math.abs(p3.y - p0.y);
|
|
86
|
-
const d = Math.hypot(dx, dy);
|
|
87
|
-
const along = this._isH(side) ? dx : dy;
|
|
88
|
-
const MIN = Math.max(8, offset);
|
|
89
|
-
const MAX = offset + 0.5 * d; // upper cap to keep the shape compact
|
|
90
|
-
const len = offset * 1.05 + along * 0.3; // moderate growth along the axis
|
|
91
|
-
return Math.min(MAX, Math.max(MIN, len));
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Computes a control point by taking the side direction and **lightly blending**
|
|
95
|
-
* it toward the target direction. This reduces harsh inflections while keeping
|
|
96
|
-
* the perceptual attachment to the port side.
|
|
97
|
-
*
|
|
98
|
-
* @param side - Base side defining the primary direction (LEFT/RIGHT/TOP/BOTTOM).
|
|
99
|
-
* @param source - Anchor point where the control handle is attached.
|
|
100
|
-
* @param target - Opposite end; used to orient the handle slightly toward the goal.
|
|
101
|
-
* @param handle - Handle length (see {@link _handleLen}).
|
|
102
|
-
* @returns Control point coordinates for the cubic Bézier segment.
|
|
103
|
-
*/
|
|
104
|
-
static _softControl(side, source, target, handle) {
|
|
105
|
-
const v = this._dir(side);
|
|
106
|
-
const dx = target.x - source.x;
|
|
107
|
-
const dy = target.y - source.y;
|
|
108
|
-
const dist = Math.hypot(dx, dy) || 1;
|
|
109
|
-
const tx = dx / dist;
|
|
110
|
-
const ty = dy / dist;
|
|
111
|
-
// Orientation of side vs. target direction (in [-1, 1])
|
|
112
|
-
const dot = v.x * tx + v.y * ty;
|
|
113
|
-
// Small base blend toward the target; slightly increase if the side points away.
|
|
114
|
-
const baseBlend = 0.12;
|
|
115
|
-
const extra = Math.max(0, -dot) * 0.08; // add a bit when pointing “backwards”
|
|
116
|
-
const blend = Math.min(0.2, baseBlend + extra);
|
|
117
|
-
const dirX = v.x * (1 - blend) + tx * blend;
|
|
118
|
-
const dirY = v.y * (1 - blend) + ty * blend;
|
|
119
|
-
const len = Math.hypot(dirX, dirY) || 1;
|
|
120
|
-
return { x: source.x + (dirX / len) * handle, y: source.y + (dirY / len) * handle };
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Builds an adaptive connector between `source` and `target`.
|
|
124
|
-
*
|
|
125
|
-
* @param request - Connection build request.
|
|
126
|
-
* @param request.source - Start point of the connector.
|
|
127
|
-
* @param request.sourceSide - Side at the source port (LEFT/RIGHT/TOP/BOTTOM).
|
|
128
|
-
* @param request.target - End point of the connector.
|
|
129
|
-
* @param request.targetSide - Side at the target port (LEFT/RIGHT/TOP/BOTTOM).
|
|
130
|
-
* @param request.offset - Visual padding & minimal handle baseline (≥ 0).
|
|
131
|
-
*
|
|
132
|
-
* @returns Standard {@link IFConnectionBuilderResponse}:
|
|
133
|
-
* - `path`: SVG cubic path (“M … C …”),
|
|
134
|
-
* - `points`: discretized samples along the curve,
|
|
135
|
-
* - `connectionCenter`: approximate visual center for labeling/interaction,
|
|
136
|
-
* - `secondPoint`/`penultimatePoint`: first/second control points (for tooling).
|
|
137
|
-
*
|
|
138
|
-
* @remarks
|
|
139
|
-
* The returned path slightly offsets the end point by +0.0002 on both axes
|
|
140
|
-
* to avoid edge cases in some renderers and hit-testing implementations.
|
|
141
|
-
*/
|
|
142
|
-
handle(request) {
|
|
143
|
-
const { source, sourceSide, target, targetSide } = request;
|
|
144
|
-
const offset = Math.max(0, request.offset ?? 0);
|
|
145
|
-
const p0 = { x: source.x, y: source.y };
|
|
146
|
-
const p3 = { x: target.x, y: target.y };
|
|
147
|
-
const h0 = AdaptiveCurveBuilder._handleLen(p0, p3, sourceSide, offset);
|
|
148
|
-
const h3 = AdaptiveCurveBuilder._handleLen(p3, p0, targetSide, offset);
|
|
149
|
-
const c1 = AdaptiveCurveBuilder._softControl(sourceSide, p0, p3, h0);
|
|
150
|
-
const c2 = AdaptiveCurveBuilder._softControl(targetSide, p3, p0, h3);
|
|
151
|
-
const path = `M ${p0.x} ${p0.y} C ${c1.x} ${c1.y}, ${c2.x} ${c2.y}, ${p3.x + 0.0002} ${p3.y + 0.0002}`;
|
|
152
|
-
const connectionCenter = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest([p0, c1, c2, p3]));
|
|
153
|
-
return {
|
|
154
|
-
path,
|
|
155
|
-
connectionCenter,
|
|
156
|
-
secondPoint: c1,
|
|
157
|
-
penultimatePoint: c2,
|
|
158
|
-
points: _sampleCubic(p0, c1, c2, p3, 32),
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Evaluates a cubic Bézier at parameter `t` in [0, 1].
|
|
164
|
-
*
|
|
165
|
-
* @param p0 - Start point.
|
|
166
|
-
* @param p1 - First control point.
|
|
167
|
-
* @param p2 - Second control point.
|
|
168
|
-
* @param p3 - End point.
|
|
169
|
-
* @param t - Parameter in [0, 1].
|
|
170
|
-
* @returns Point on the curve at `t`.
|
|
171
|
-
*/
|
|
172
|
-
function bez3(p0, p1, p2, p3, t) {
|
|
173
|
-
const u = 1 - t, tt = t * t, uu = u * u, uuu = uu * u, ttt = tt * t;
|
|
174
|
-
return {
|
|
175
|
-
x: uuu * p0.x + 3 * uu * t * p1.x + 3 * u * tt * p2.x + ttt * p3.x,
|
|
176
|
-
y: uuu * p0.y + 3 * uu * t * p1.y + 3 * u * tt * p2.y + ttt * p3.y,
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Uniformly samples a cubic Bézier segment.
|
|
181
|
-
*
|
|
182
|
-
* @param p0 - Start point.
|
|
183
|
-
* @param p1 - First control point.
|
|
184
|
-
* @param p2 - Second control point.
|
|
185
|
-
* @param p3 - End point.
|
|
186
|
-
* @param samples - Number of sub-segments (default: 32). The function returns `samples + 1` points.
|
|
187
|
-
* @returns Array of sampled points including both endpoints.
|
|
188
|
-
* @remarks
|
|
189
|
-
* Sampling is uniform in parameter `t`, not in arc length. This is typically
|
|
190
|
-
* sufficient for hit-testing and bounding boxes; if you need error-bounded
|
|
191
|
-
* flattening, consider an adaptive subdivision strategy instead.
|
|
192
|
-
*/
|
|
193
|
-
function _sampleCubic(p0, p1, p2, p3, samples = 32) {
|
|
194
|
-
const out = new Array(samples + 1);
|
|
195
|
-
out[0] = { ...p0 };
|
|
196
|
-
for (let i = 1; i <= samples; i++) {
|
|
197
|
-
out[i] = bez3(p0, p1, p2, p3, i / samples);
|
|
198
|
-
}
|
|
199
|
-
return out;
|
|
200
|
-
}
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRpdmUtY3VydmUtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9kb21haW4vYWRhcHRpdmUtY3VydmUtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLGdDQUFnQyxHQUNqQyxNQUFNLCtCQUErQixDQUFDO0FBT3ZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9COzs7Ozs7OztPQVFHO0lBQ0ssTUFBTSxDQUFDLElBQUksQ0FBQyxJQUF1QjtRQUN6QyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO2dCQUN6QixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN6QixLQUFLLGlCQUFpQixDQUFDLEtBQUs7Z0JBQzFCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN4QixLQUFLLGlCQUFpQixDQUFDLEdBQUc7Z0JBQ3hCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pCLEtBQUssaUJBQWlCLENBQUMsTUFBTTtnQkFDM0IsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7OztPQUtH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LEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7S0FDbkUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBUyxZQUFZLENBQUMsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLE9BQU8sR0FBRyxFQUFFO0lBQ2hGLE1BQU0sR0FBRyxHQUFhLElBQUksS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNsQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlckhhbmRsZXIsXG4gIENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0LFxufSBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0aW9uLWNlbnRlcic7XG5pbXBvcnQge1xuICBJRkNvbm5lY3Rpb25CdWlsZGVyLFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCxcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24tYnVpbGRlcic7XG5cbi8qKlxuICogQWRhcHRpdmVDdXJ2ZUJ1aWxkZXJcbiAqXG4gKiBCdWlsZHMgYSBzbW9vdGggKiphZGFwdGl2ZSBjb25uZWN0b3IgY3VydmUqKiBiZXR3ZWVuIHR3byBwb2ludHMgdXNpbmcgYSBjdWJpYyBCw6l6aWVyIHBhdGgsXG4gKiBidXQgd2l0aCBjb250cm9sIHBvaW50cyBjb21wdXRlZCBkaWZmZXJlbnRseSBmcm9tIGEgY2xhc3NpYyDigJxCZXppZXLigJ0gY29ubmVjdG9yLlxuICpcbiAqIEtleSBkaWZmZXJlbmNlcyBmcm9tIGEgY2xhc3NpYyBCw6l6aWVyIGJ1aWxkZXI6XG4gKiAtIENvbnRyb2wgaGFuZGxlcyBhcmUgKiphbGlnbmVkIHdpdGggdGhlIHBvcnQgc2lkZSoqIChMRUZUL1JJR0hUL1RPUC9CT1RUT00pLFxuICogICB5ZXQgYXJlICoqc2xpZ2h0bHkgYmxlbmRlZCB0b3dhcmQgdGhlIHRhcmdldCBkaXJlY3Rpb24qKiB0byByZWR1Y2UgaGFyc2ggUy1zaGFwZXMuXG4gKiAtIEhhbmRsZSBsZW5ndGhzIGFyZSAqKmFkYXB0aXZlKio6IGJhc2VkIG9uIHRoZSBgb2Zmc2V0YCAoeW91ciDigJxwYWRkaW5n4oCdIGZyb20gcG9ydHMpXG4gKiAgIGFuZCB0aGUgcHJvamVjdGVkIGRpc3RhbmNlIGFsb25nIHRoZSBzaWRl4oCZcyBheGlzLiBUaGlzIHByb2R1Y2VzIGEgc3VidGxlciBjdXJ2YXR1cmVcbiAqICAgYW5kIGEgZGlzdGluY3QgbG9vayAmIGZlZWwgY29tcGFyZWQgdG8gYSBzdGFuZGFyZCBCw6l6aWVyIGNvbm5lY3Rvci5cbiAqXG4gKiBDb21wYXRpYmlsaXR5OlxuICogLSBJbXBsZW1lbnRzIHtAbGluayBJRkNvbm5lY3Rpb25CdWlsZGVyfTsgb3V0cHV0IHNoYXBlIGlzIHRoZSBzYW1lOlxuICogICBTVkcgcGF0aCwgc2FtcGxlZCBwb2ludHMgZm9yIGhpdC10ZXN0aW5nLCBhbmQgY29ubmVjdGlvbiBjZW50ZXIuXG4gKiAtIE9ubHkgdGhlIGZvdXIgYmFzZSBzaWRlcyBhcmUgZXhwZWN0ZWQgdG8gYmUgcGFzc2VkIGhlcmU6XG4gKiAgIHtAbGluayBFRkNvbm5lY3RhYmxlU2lkZS5MRUZUfSwge0BsaW5rIEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUfSxcbiAqICAge0BsaW5rIEVGQ29ubmVjdGFibGVTaWRlLlRPUH0sIHtAbGluayBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT019LlxuICpcbiAqIFVzYWdlIGV4YW1wbGU6XG4gKiBgYGB0c1xuICogY29uc3QgYnVpbGRlciA9IG5ldyBBZGFwdGl2ZUN1cnZlQnVpbGRlcigpO1xuICogY29uc3QgcmVzID0gYnVpbGRlci5oYW5kbGUoe1xuICogICBzb3VyY2U6IHsgeDogMTAwLCB5OiAxMjAgfSxcbiAqICAgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUuUklHSFQsXG4gKiAgIHRhcmdldDogeyB4OiAzNDAsIHk6IDIyMCB9LFxuICogICB0YXJnZXRTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZS5MRUZULFxuICogICBvZmZzZXQ6IDE2LCAvLyBhY3RzIGFzIHBhZGRpbmcgKyBtaW5pbWFsIGhhbmRsZSBiYXNlbGluZVxuICogfSk7XG4gKiAvLyByZXMucGF0aCAtPiBTVkcgXCJNIOKApiBDIOKAplwiIHN0cmluZ1xuICogLy8gcmVzLnBvaW50cyAtPiBzYW1wbGVkIHBvaW50cyBhbG9uZyB0aGUgY3VydmVcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQWRhcHRpdmVDdXJ2ZUJ1aWxkZXIgaW1wbGVtZW50cyBJRkNvbm5lY3Rpb25CdWlsZGVyIHtcbiAgLyoqXG4gICAqIFJldHVybnMgYSB1bml0IGRpcmVjdGlvbiB2ZWN0b3IgZm9yIGEgZ2l2ZW4gc2lkZS5cbiAgICpcbiAgICogQHBhcmFtIHNpZGUgLSBPbmUgb2YgTEVGVC9SSUdIVC9UT1AvQk9UVE9NLlxuICAgKiBAcmV0dXJucyBVbml0IHZlY3RvciBwb2ludGluZyBvdXR3YXJkcyBmcm9tIHRoZSBzaWRlLlxuICAgKiBAcmVtYXJrc1xuICAgKiBPbmx5IGJhc2Ugc2lkZXMgc2hvdWxkIHJlYWNoIHRoaXMgYnVpbGRlci4gQSBmYWxsYmFjayBgezAsMH1gIGlzIHJldHVybmVkXG4gICAqIGRlZmVuc2l2ZWx5LCBidXQgc2hvdWxkIG5vdCBvY2N1ciBpbiBub3JtYWwgdXNhZ2UuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBfZGlyKHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogSVBvaW50IHtcbiAgICBzd2l0Y2ggKHNpZGUpIHtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuTEVGVDpcbiAgICAgICAgcmV0dXJuIHsgeDogLTEsIHk6IDAgfTtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuUklHSFQ6XG4gICAgICAgIHJldHVybiB7IHg6IDEsIHk6IDAgfTtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuVE9QOlxuICAgICAgICByZXR1cm4geyB4OiAwLCB5OiAtMSB9O1xuICAgICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT006XG4gICAgICAgIHJldHVybiB7IHg6IDAsIHk6IDEgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyB4OiAwLCB5OiAwIH07XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgYSBzaWRlIGlzIGhvcml6b250YWwgKExFRlQvUklHSFQpLlxuICAgKlxuICAgKiBAcGFyYW0gc2lkZSAtIFNpZGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIGB0cnVlYCBmb3IgTEVGVC9SSUdIVCwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBfaXNIKHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNpZGUgPT09IEVGQ29ubmVjdGFibGVTaWRlLkxFRlQgfHwgc2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuUklHSFQ7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgYSAqKnNvZnQqKiBoYW5kbGUgbGVuZ3RoIGZvciBhIGNvbnRyb2wgcG9pbnQuXG4gICAqXG4gICAqIFRoZSBoYW5kbGUgbGVuZ3RoIGlzIGRlcml2ZWQgZnJvbTpcbiAgICogLSBgb2Zmc2V0YCAoYWN0cyBhcyBwYWRkaW5nICYgdGhlIGJhc2VsaW5lIGhhbmRsZSksXG4gICAqIC0gZGlzdGFuY2UgcHJvamVjdGVkIGFsb25nIHRoZSBzaWRl4oCZcyBheGlzIChkeCBmb3IgaG9yaXpvbnRhbCwgZHkgZm9yIHZlcnRpY2FsKSxcbiAgICogLSBhIGNvbnNlcnZhdGl2ZSB1cHBlciBib3VuZCB0byBhdm9pZCBibG9hdGVkIGN1cnZlcy5cbiAgICpcbiAgICogQHBhcmFtIHAwIC0gU3RhcnQgKG9yIGVuZCkgcG9pbnQgb2YgdGhlIHNlZ21lbnQuXG4gICAqIEBwYXJhbSBwMyAtIE9wcG9zaXRlIGVuZCAob3Igc3RhcnQpIHBvaW50LlxuICAgKiBAcGFyYW0gc2lkZSAtIFNpZGUgYXQgd2hpY2ggdGhlIGhhbmRsZSBvcmlnaW5hdGVzLlxuICAgKiBAcGFyYW0gb2Zmc2V0IC0gVmlzdWFsIHBhZGRpbmcvbWluaW1hbCBoYW5kbGUgYmFzZWxpbmUgKG11c3QgYmUg4omlIDApLlxuICAgKiBAcmV0dXJucyBBIGJvdW5kZWQgcG9zaXRpdmUgaGFuZGxlIGxlbmd0aC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVMZW4oXG4gICAgcDA6IElQb2ludCxcbiAgICBwMzogSVBvaW50LFxuICAgIHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLFxuICAgIG9mZnNldDogbnVtYmVyLFxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IGR4ID0gTWF0aC5hYnMocDMueCAtIHAwLngpO1xuICAgIGNvbnN0IGR5ID0gTWF0aC5hYnMocDMueSAtIHAwLnkpO1xuICAgIGNvbnN0IGQgPSBNYXRoLmh5cG90KGR4LCBkeSk7XG4gICAgY29uc3QgYWxvbmcgPSB0aGlzLl9pc0goc2lkZSkgPyBkeCA6IGR5O1xuXG4gICAgY29uc3QgTUlOID0gTWF0aC5tYXgoOCwgb2Zmc2V0KTtcbiAgICBjb25zdCBNQVggPSBvZmZzZXQgKyAwLjUgKiBkOyAvLyB1cHBlciBjYXAgdG8ga2VlcCB0aGUgc2hhcGUgY29tcGFjdFxuICAgIGNvbnN0IGxlbiA9IG9mZnNldCAqIDEuMDUgKyBhbG9uZyAqIDAuMzsgLy8gbW9kZXJhdGUgZ3Jvd3RoIGFsb25nIHRoZSBheGlzXG5cbiAgICByZXR1cm4gTWF0aC5taW4oTUFYLCBNYXRoLm1heChNSU4sIGxlbikpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIGEgY29udHJvbCBwb2ludCBieSB0YWtpbmcgdGhlIHNpZGUgZGlyZWN0aW9uIGFuZCAqKmxpZ2h0bHkgYmxlbmRpbmcqKlxuICAgKiBpdCB0b3dhcmQgdGhlIHRhcmdldCBkaXJlY3Rpb24uIFRoaXMgcmVkdWNlcyBoYXJzaCBpbmZsZWN0aW9ucyB3aGlsZSBrZWVwaW5nXG4gICAqIHRoZSBwZXJjZXB0dWFsIGF0dGFjaG1lbnQgdG8gdGhlIHBvcnQgc2lkZS5cbiAgICpcbiAgICogQHBhcmFtIHNpZGUgLSBCYXNlIHNpZGUgZGVmaW5pbmcgdGhlIHByaW1hcnkgZGlyZWN0aW9uIChMRUZUL1JJR0hUL1RPUC9CT1RUT00pLlxuICAgKiBAcGFyYW0gc291cmNlIC0gQW5jaG9yIHBvaW50IHdoZXJlIHRoZSBjb250cm9sIGhhbmRsZSBpcyBhdHRhY2hlZC5cbiAgICogQHBhcmFtIHRhcmdldCAtIE9wcG9zaXRlIGVuZDsgdXNlZCB0byBvcmllbnQgdGhlIGhhbmRsZSBzbGlnaHRseSB0b3dhcmQgdGhlIGdvYWwuXG4gICAqIEBwYXJhbSBoYW5kbGUgLSBIYW5kbGUgbGVuZ3RoIChzZWUge0BsaW5rIF9oYW5kbGVMZW59KS5cbiAgICogQHJldHVybnMgQ29udHJvbCBwb2ludCBjb29yZGluYXRlcyBmb3IgdGhlIGN1YmljIELDqXppZXIgc2VnbWVudC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIF9zb2Z0Q29udHJvbChcbiAgICBzaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgICBzb3VyY2U6IElQb2ludCxcbiAgICB0YXJnZXQ6IElQb2ludCxcbiAgICBoYW5kbGU6IG51bWJlcixcbiAgKTogSVBvaW50IHtcbiAgICBjb25zdCB2ID0gdGhpcy5fZGlyKHNpZGUpO1xuXG4gICAgY29uc3QgZHggPSB0YXJnZXQueCAtIHNvdXJjZS54O1xuICAgIGNvbnN0IGR5ID0gdGFyZ2V0LnkgLSBzb3VyY2UueTtcbiAgICBjb25zdCBkaXN0ID0gTWF0aC5oeXBvdChkeCwgZHkpIHx8IDE7XG4gICAgY29uc3QgdHggPSBkeCAvIGRpc3Q7XG4gICAgY29uc3QgdHkgPSBkeSAvIGRpc3Q7XG5cbiAgICAvLyBPcmllbnRhdGlvbiBvZiBzaWRlIHZzLiB0YXJnZXQgZGlyZWN0aW9uIChpbiBbLTEsIDFdKVxuICAgIGNvbnN0IGRvdCA9IHYueCAqIHR4ICsgdi55ICogdHk7XG5cbiAgICAvLyBTbWFsbCBiYXNlIGJsZW5kIHRvd2FyZCB0aGUgdGFyZ2V0OyBzbGlnaHRseSBpbmNyZWFzZSBpZiB0aGUgc2lkZSBwb2ludHMgYXdheS5cbiAgICBjb25zdCBiYXNlQmxlbmQgPSAwLjEyO1xuICAgIGNvbnN0IGV4dHJhID0gTWF0aC5tYXgoMCwgLWRvdCkgKiAwLjA4OyAvLyBhZGQgYSBiaXQgd2hlbiBwb2ludGluZyDigJxiYWNrd2FyZHPigJ1cbiAgICBjb25zdCBibGVuZCA9IE1hdGgubWluKDAuMiwgYmFzZUJsZW5kICsgZXh0cmEpO1xuXG4gICAgY29uc3QgZGlyWCA9IHYueCAqICgxIC0gYmxlbmQpICsgdHggKiBibGVuZDtcbiAgICBjb25zdCBkaXJZID0gdi55ICogKDEgLSBibGVuZCkgKyB0eSAqIGJsZW5kO1xuICAgIGNvbnN0IGxlbiA9IE1hdGguaHlwb3QoZGlyWCwgZGlyWSkgfHwgMTtcblxuICAgIHJldHVybiB7IHg6IHNvdXJjZS54ICsgKGRpclggLyBsZW4pICogaGFuZGxlLCB5OiBzb3VyY2UueSArIChkaXJZIC8gbGVuKSAqIGhhbmRsZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhbiBhZGFwdGl2ZSBjb25uZWN0b3IgYmV0d2VlbiBgc291cmNlYCBhbmQgYHRhcmdldGAuXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0IC0gQ29ubmVjdGlvbiBidWlsZCByZXF1ZXN0LlxuICAgKiBAcGFyYW0gcmVxdWVzdC5zb3VyY2UgLSBTdGFydCBwb2ludCBvZiB0aGUgY29ubmVjdG9yLlxuICAgKiBAcGFyYW0gcmVxdWVzdC5zb3VyY2VTaWRlIC0gU2lkZSBhdCB0aGUgc291cmNlIHBvcnQgKExFRlQvUklHSFQvVE9QL0JPVFRPTSkuXG4gICAqIEBwYXJhbSByZXF1ZXN0LnRhcmdldCAtIEVuZCBwb2ludCBvZiB0aGUgY29ubmVjdG9yLlxuICAgKiBAcGFyYW0gcmVxdWVzdC50YXJnZXRTaWRlIC0gU2lkZSBhdCB0aGUgdGFyZ2V0IHBvcnQgKExFRlQvUklHSFQvVE9QL0JPVFRPTSkuXG4gICAqIEBwYXJhbSByZXF1ZXN0Lm9mZnNldCAtIFZpc3VhbCBwYWRkaW5nICYgbWluaW1hbCBoYW5kbGUgYmFzZWxpbmUgKOKJpSAwKS5cbiAgICpcbiAgICogQHJldHVybnMgU3RhbmRhcmQge0BsaW5rIElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZX06XG4gICAqIC0gYHBhdGhgOiBTVkcgY3ViaWMgcGF0aCAo4oCcTSDigKYgQyDigKbigJ0pLFxuICAgKiAtIGBwb2ludHNgOiBkaXNjcmV0aXplZCBzYW1wbGVzIGFsb25nIHRoZSBjdXJ2ZSxcbiAgICogLSBgY29ubmVjdGlvbkNlbnRlcmA6IGFwcHJveGltYXRlIHZpc3VhbCBjZW50ZXIgZm9yIGxhYmVsaW5nL2ludGVyYWN0aW9uLFxuICAgKiAtIGBzZWNvbmRQb2ludGAvYHBlbnVsdGltYXRlUG9pbnRgOiBmaXJzdC9zZWNvbmQgY29udHJvbCBwb2ludHMgKGZvciB0b29saW5nKS5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogVGhlIHJldHVybmVkIHBhdGggc2xpZ2h0bHkgb2Zmc2V0cyB0aGUgZW5kIHBvaW50IGJ5ICswLjAwMDIgb24gYm90aCBheGVzXG4gICAqIHRvIGF2b2lkIGVkZ2UgY2FzZXMgaW4gc29tZSByZW5kZXJlcnMgYW5kIGhpdC10ZXN0aW5nIGltcGxlbWVudGF0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QpOiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2Uge1xuICAgIGNvbnN0IHsgc291cmNlLCBzb3VyY2VTaWRlLCB0YXJnZXQsIHRhcmdldFNpZGUgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3Qgb2Zmc2V0ID0gTWF0aC5tYXgoMCwgcmVxdWVzdC5vZmZzZXQgPz8gMCk7XG5cbiAgICBjb25zdCBwMCA9IHsgeDogc291cmNlLngsIHk6IHNvdXJjZS55IH07XG4gICAgY29uc3QgcDMgPSB7IHg6IHRhcmdldC54LCB5OiB0YXJnZXQueSB9O1xuXG4gICAgY29uc3QgaDAgPSBBZGFwdGl2ZUN1cnZlQnVpbGRlci5faGFuZGxlTGVuKHAwLCBwMywgc291cmNlU2lkZSwgb2Zmc2V0KTtcbiAgICBjb25zdCBoMyA9IEFkYXB0aXZlQ3VydmVCdWlsZGVyLl9oYW5kbGVMZW4ocDMsIHAwLCB0YXJnZXRTaWRlLCBvZmZzZXQpO1xuXG4gICAgY29uc3QgYzEgPSBBZGFwdGl2ZUN1cnZlQnVpbGRlci5fc29mdENvbnRyb2woc291cmNlU2lkZSwgcDAsIHAzLCBoMCk7XG4gICAgY29uc3QgYzIgPSBBZGFwdGl2ZUN1cnZlQnVpbGRlci5fc29mdENvbnRyb2wodGFyZ2V0U2lkZSwgcDMsIHAwLCBoMyk7XG5cbiAgICBjb25zdCBwYXRoID0gYE0gJHtwMC54fSAke3AwLnl9IEMgJHtjMS54fSAke2MxLnl9LCAke2MyLnh9ICR7YzIueX0sICR7cDMueCArIDAuMDAwMn0gJHtwMy55ICsgMC4wMDAyfWA7XG5cbiAgICBjb25zdCBjb25uZWN0aW9uQ2VudGVyID0gbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJIYW5kbGVyKCkuaGFuZGxlKFxuICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0KFtwMCwgYzEsIGMyLCBwM10pLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aCxcbiAgICAgIGNvbm5lY3Rpb25DZW50ZXIsXG4gICAgICBzZWNvbmRQb2ludDogYzEsXG4gICAgICBwZW51bHRpbWF0ZVBvaW50OiBjMixcbiAgICAgIHBvaW50czogX3NhbXBsZUN1YmljKHAwLCBjMSwgYzIsIHAzLCAzMiksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEV2YWx1YXRlcyBhIGN1YmljIELDqXppZXIgYXQgcGFyYW1ldGVyIGB0YCBpbiBbMCwgMV0uXG4gKlxuICogQHBhcmFtIHAwIC0gU3RhcnQgcG9pbnQuXG4gKiBAcGFyYW0gcDEgLSBGaXJzdCBjb250cm9sIHBvaW50LlxuICogQHBhcmFtIHAyIC0gU2Vjb25kIGNvbnRyb2wgcG9pbnQuXG4gKiBAcGFyYW0gcDMgLSBFbmQgcG9pbnQuXG4gKiBAcGFyYW0gdCAtIFBhcmFtZXRlciBpbiBbMCwgMV0uXG4gKiBAcmV0dXJucyBQb2ludCBvbiB0aGUgY3VydmUgYXQgYHRgLlxuICovXG5mdW5jdGlvbiBiZXozKHAwOiBJUG9pbnQsIHAxOiBJUG9pbnQsIHAyOiBJUG9pbnQsIHAzOiBJUG9pbnQsIHQ6IG51bWJlcik6IElQb2ludCB7XG4gIGNvbnN0IHUgPSAxIC0gdCxcbiAgICB0dCA9IHQgKiB0LFxuICAgIHV1ID0gdSAqIHUsXG4gICAgdXV1ID0gdXUgKiB1LFxuICAgIHR0dCA9IHR0ICogdDtcblxuICByZXR1cm4ge1xuICAgIHg6IHV1dSAqIHAwLnggKyAzICogdXUgKiB0ICogcDEueCArIDMgKiB1ICogdHQgKiBwMi54ICsgdHR0ICogcDMueCxcbiAgICB5OiB1dXUgKiBwMC55ICsgMyAqIHV1ICogdCAqIHAxLnkgKyAzICogdSAqIHR0ICogcDIueSArIHR0dCAqIHAzLnksXG4gIH07XG59XG5cbi8qKlxuICogVW5pZm9ybWx5IHNhbXBsZXMgYSBjdWJpYyBCw6l6aWVyIHNlZ21lbnQuXG4gKlxuICogQHBhcmFtIHAwIC0gU3RhcnQgcG9pbnQuXG4gKiBAcGFyYW0gcDEgLSBGaXJzdCBjb250cm9sIHBvaW50LlxuICogQHBhcmFtIHAyIC0gU2Vjb25kIGNvbnRyb2wgcG9pbnQuXG4gKiBAcGFyYW0gcDMgLSBFbmQgcG9pbnQuXG4gKiBAcGFyYW0gc2FtcGxlcyAtIE51bWJlciBvZiBzdWItc2VnbWVudHMgKGRlZmF1bHQ6IDMyKS4gVGhlIGZ1bmN0aW9uIHJldHVybnMgYHNhbXBsZXMgKyAxYCBwb2ludHMuXG4gKiBAcmV0dXJucyBBcnJheSBvZiBzYW1wbGVkIHBvaW50cyBpbmNsdWRpbmcgYm90aCBlbmRwb2ludHMuXG4gKiBAcmVtYXJrc1xuICogU2FtcGxpbmcgaXMgdW5pZm9ybSBpbiBwYXJhbWV0ZXIgYHRgLCBub3QgaW4gYXJjIGxlbmd0aC4gVGhpcyBpcyB0eXBpY2FsbHlcbiAqIHN1ZmZpY2llbnQgZm9yIGhpdC10ZXN0aW5nIGFuZCBib3VuZGluZyBib3hlczsgaWYgeW91IG5lZWQgZXJyb3ItYm91bmRlZFxuICogZmxhdHRlbmluZywgY29uc2lkZXIgYW4gYWRhcHRpdmUgc3ViZGl2aXNpb24gc3RyYXRlZ3kgaW5zdGVhZC5cbiAqL1xuZnVuY3Rpb24gX3NhbXBsZUN1YmljKHAwOiBJUG9pbnQsIHAxOiBJUG9pbnQsIHAyOiBJUG9pbnQsIHAzOiBJUG9pbnQsIHNhbXBsZXMgPSAzMik6IElQb2ludFtdIHtcbiAgY29uc3Qgb3V0OiBJUG9pbnRbXSA9IG5ldyBBcnJheShzYW1wbGVzICsgMSk7XG4gIG91dFswXSA9IHsgLi4ucDAgfTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gc2FtcGxlczsgaSsrKSB7XG4gICAgb3V0W2ldID0gYmV6MyhwMCwgcDEsIHAyLCBwMywgaSAvIHNhbXBsZXMpO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn1cbiJdfQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export class CalculateCenterBetweenPointsRequest {
|
|
2
|
-
source;
|
|
3
|
-
target;
|
|
4
|
-
static fToken = Symbol('CalculateCenterBetweenPointsRequest');
|
|
5
|
-
constructor(source, target) {
|
|
6
|
-
this.source = source;
|
|
7
|
-
this.target = target;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNlbnRlci1iZXR3ZWVuLXBvaW50cy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2RvbWFpbi9jYWxjdWxhdGUtY2VudGVyLWJldHdlZW4tcG9pbnRzL2NhbGN1bGF0ZS1jZW50ZXItYmV0d2Vlbi1wb2ludHMtcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sbUNBQW1DO0lBSXJDO0lBQ0E7SUFKVCxNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBRXZFLFlBQ1MsTUFBYyxFQUNkLE1BQWM7UUFEZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUV2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVDZW50ZXJCZXR3ZWVuUG9pbnRzUmVxdWVzdCB7XG4gIHN0YXRpYyByZWFkb25seSBmVG9rZW4gPSBTeW1ib2woJ0NhbGN1bGF0ZUNlbnRlckJldHdlZW5Qb2ludHNSZXF1ZXN0Jyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNvdXJjZTogSVBvaW50LFxuICAgIHB1YmxpYyB0YXJnZXQ6IElQb2ludCxcbiAgKSB7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { PointExtensions } from '@foblex/2d';
|
|
2
|
-
export class CalculateCenterBetweenPointsHandler {
|
|
3
|
-
handle(request) {
|
|
4
|
-
const { source, target } = request;
|
|
5
|
-
const offsetX = Math.abs(target.x - source.x) / 2;
|
|
6
|
-
const centerX = (target.x < source.x) ? target.x + offsetX : target.x - offsetX;
|
|
7
|
-
const offsetY = Math.abs(target.y - source.y) / 2;
|
|
8
|
-
const centerY = (target.y < source.y) ? target.y + offsetY : target.y - offsetY;
|
|
9
|
-
return PointExtensions.initialize(centerX, centerY);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNlbnRlci1iZXR3ZWVuLXBvaW50cy5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2RvbWFpbi9jYWxjdWxhdGUtY2VudGVyLWJldHdlZW4tcG9pbnRzL2NhbGN1bGF0ZS1jZW50ZXItYmV0d2Vlbi1wb2ludHMuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR3JELE1BQU0sT0FBTyxtQ0FBbUM7SUFHdkMsTUFBTSxDQUFDLE9BQTRDO1FBQ3hELE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBRW5DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUVoRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7UUFFaEYsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgSVBvaW50LCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IENhbGN1bGF0ZUNlbnRlckJldHdlZW5Qb2ludHNSZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY2VudGVyLWJldHdlZW4tcG9pbnRzLXJlcXVlc3QnO1xuXG5leHBvcnQgY2xhc3MgQ2FsY3VsYXRlQ2VudGVyQmV0d2VlblBvaW50c0hhbmRsZXJcbiAgICBpbXBsZW1lbnRzIElIYW5kbGVyPENhbGN1bGF0ZUNlbnRlckJldHdlZW5Qb2ludHNSZXF1ZXN0LCBJUG9pbnQ+IHtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IENhbGN1bGF0ZUNlbnRlckJldHdlZW5Qb2ludHNSZXF1ZXN0KTogSVBvaW50IHtcbiAgICBjb25zdCB7IHNvdXJjZSwgdGFyZ2V0IH0gPSByZXF1ZXN0O1xuXG4gICAgY29uc3Qgb2Zmc2V0WCA9IE1hdGguYWJzKHRhcmdldC54IC0gc291cmNlLngpIC8gMjtcbiAgICBjb25zdCBjZW50ZXJYID0gKHRhcmdldC54IDwgc291cmNlLngpID8gdGFyZ2V0LnggKyBvZmZzZXRYIDogdGFyZ2V0LnggLSBvZmZzZXRYO1xuXG4gICAgY29uc3Qgb2Zmc2V0WSA9IE1hdGguYWJzKHRhcmdldC55IC0gc291cmNlLnkpIC8gMjtcbiAgICBjb25zdCBjZW50ZXJZID0gKHRhcmdldC55IDwgc291cmNlLnkpID8gdGFyZ2V0LnkgKyBvZmZzZXRZIDogdGFyZ2V0LnkgLSBvZmZzZXRZO1xuXG4gICAgcmV0dXJuIFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKGNlbnRlclgsIGNlbnRlclkpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './calculate-center-between-points.handler';
|
|
2
|
-
export * from './calculate-center-between-points-request';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZG9tYWluL2NhbGN1bGF0ZS1jZW50ZXItYmV0d2Vlbi1wb2ludHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQ0FBMkMsQ0FBQztBQUUxRCxjQUFjLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY2VudGVyLWJldHdlZW4tcG9pbnRzLmhhbmRsZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0ZS1jZW50ZXItYmV0d2Vlbi1wb2ludHMtcmVxdWVzdCc7XG4iXX0=
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export class CalculateConnectionCenterRequest {
|
|
2
|
-
points;
|
|
3
|
-
static fToken = Symbol('CalculateConnectionCenterRequest');
|
|
4
|
-
constructor(points) {
|
|
5
|
-
this.points = points;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3Rpb24tY2VudGVyLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZG9tYWluL2NhbGN1bGF0ZS1jb25uZWN0aW9uLWNlbnRlci9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXItcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sZ0NBQWdDO0lBSWxDO0lBSFQsTUFBTSxDQUFVLE1BQU0sR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUVwRSxZQUNTLE1BQWdCO1FBQWhCLFdBQU0sR0FBTixNQUFNLENBQVU7SUFFekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5leHBvcnQgY2xhc3MgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlclJlcXVlc3Qge1xuICBzdGF0aWMgcmVhZG9ubHkgZlRva2VuID0gU3ltYm9sKCdDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVyUmVxdWVzdCcpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwb2ludHM6IElQb2ludFtdLFxuICApIHtcbiAgfVxufVxuIl19
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
export class CalculateConnectionCenterHandler {
|
|
2
|
-
handle(request) {
|
|
3
|
-
const { points } = request;
|
|
4
|
-
let totalDistance = 0;
|
|
5
|
-
const distances = [];
|
|
6
|
-
for (let i = 0; i < points.length - 1; i++) {
|
|
7
|
-
const distance = this.calculateDistance(points[i], points[i + 1]);
|
|
8
|
-
distances.push(distance);
|
|
9
|
-
totalDistance += distance;
|
|
10
|
-
}
|
|
11
|
-
let accumulatedDistance = 0;
|
|
12
|
-
let centerIndex = 0;
|
|
13
|
-
const halfTotalDistance = totalDistance / 2;
|
|
14
|
-
for (let i = 0; i < distances.length; i++) {
|
|
15
|
-
accumulatedDistance += distances[i];
|
|
16
|
-
if (accumulatedDistance >= halfTotalDistance) {
|
|
17
|
-
centerIndex = i;
|
|
18
|
-
break;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
const remainingDistanceToCenter = halfTotalDistance - (accumulatedDistance - distances[centerIndex]);
|
|
22
|
-
return this.findPointAtDistance(points[centerIndex], points[centerIndex + 1], remainingDistanceToCenter);
|
|
23
|
-
}
|
|
24
|
-
calculateDistance(pointA, pointB) {
|
|
25
|
-
return Math.sqrt(Math.pow(pointB.x - pointA.x, 2) + Math.pow(pointB.y - pointA.y, 2));
|
|
26
|
-
}
|
|
27
|
-
findPointAtDistance(startPoint, endPoint, distance) {
|
|
28
|
-
const totalDistance = this.calculateDistance(startPoint, endPoint);
|
|
29
|
-
const ratio = distance / totalDistance;
|
|
30
|
-
const x = (1 - ratio) * startPoint.x + ratio * endPoint.x;
|
|
31
|
-
const y = (1 - ratio) * startPoint.y + ratio * endPoint.y;
|
|
32
|
-
return { x, y };
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3Rpb24tY2VudGVyLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZG9tYWluL2NhbGN1bGF0ZS1jb25uZWN0aW9uLWNlbnRlci9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXIuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sZ0NBQWdDO0lBR3BDLE1BQU0sQ0FBQyxPQUF5QztRQUVyRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzNCLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN0QixNQUFNLFNBQVMsR0FBYSxFQUFFLENBQUM7UUFFL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBRSxDQUFDLENBQUUsRUFBRSxNQUFNLENBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBRSxDQUFDLENBQUM7WUFDdEUsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QixhQUFhLElBQUksUUFBUSxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDcEIsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsbUJBQW1CLElBQUksU0FBUyxDQUFFLENBQUMsQ0FBRSxDQUFDO1lBQ3RDLElBQUksbUJBQW1CLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDN0MsV0FBVyxHQUFHLENBQUMsQ0FBQztnQkFDaEIsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSx5QkFBeUIsR0FBRyxpQkFBaUIsR0FBRyxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBRSxXQUFXLENBQUUsQ0FBQyxDQUFDO1FBRXZHLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBRSxXQUFXLENBQUUsRUFBRSxNQUFNLENBQUUsV0FBVyxHQUFHLENBQUMsQ0FBRSxFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVPLGlCQUFpQixDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxVQUFrQixFQUFFLFFBQWdCLEVBQUUsUUFBZ0I7UUFDaEYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuRSxNQUFNLEtBQUssR0FBRyxRQUFRLEdBQUcsYUFBYSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUUxRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSUhhbmRsZXIgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXItcmVxdWVzdCc7XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlclxuICAgIGltcGxlbWVudHMgSUhhbmRsZXI8Q2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlclJlcXVlc3QsIElQb2ludD4ge1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlclJlcXVlc3QpOiBJUG9pbnQge1xuXG4gICAgY29uc3QgeyBwb2ludHMgfSA9IHJlcXVlc3Q7XG4gICAgbGV0IHRvdGFsRGlzdGFuY2UgPSAwO1xuICAgIGNvbnN0IGRpc3RhbmNlczogbnVtYmVyW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgY29uc3QgZGlzdGFuY2UgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHBvaW50c1sgaSBdLCBwb2ludHNbIGkgKyAxIF0pO1xuICAgICAgZGlzdGFuY2VzLnB1c2goZGlzdGFuY2UpO1xuICAgICAgdG90YWxEaXN0YW5jZSArPSBkaXN0YW5jZTtcbiAgICB9XG5cbiAgICBsZXQgYWNjdW11bGF0ZWREaXN0YW5jZSA9IDA7XG4gICAgbGV0IGNlbnRlckluZGV4ID0gMDtcbiAgICBjb25zdCBoYWxmVG90YWxEaXN0YW5jZSA9IHRvdGFsRGlzdGFuY2UgLyAyO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlzdGFuY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhY2N1bXVsYXRlZERpc3RhbmNlICs9IGRpc3RhbmNlc1sgaSBdO1xuICAgICAgaWYgKGFjY3VtdWxhdGVkRGlzdGFuY2UgPj0gaGFsZlRvdGFsRGlzdGFuY2UpIHtcbiAgICAgICAgY2VudGVySW5kZXggPSBpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZW1haW5pbmdEaXN0YW5jZVRvQ2VudGVyID0gaGFsZlRvdGFsRGlzdGFuY2UgLSAoYWNjdW11bGF0ZWREaXN0YW5jZSAtIGRpc3RhbmNlc1sgY2VudGVySW5kZXggXSk7XG5cbiAgICByZXR1cm4gdGhpcy5maW5kUG9pbnRBdERpc3RhbmNlKHBvaW50c1sgY2VudGVySW5kZXggXSwgcG9pbnRzWyBjZW50ZXJJbmRleCArIDEgXSwgcmVtYWluaW5nRGlzdGFuY2VUb0NlbnRlcik7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZURpc3RhbmNlKHBvaW50QTogSVBvaW50LCBwb2ludEI6IElQb2ludCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyhwb2ludEIueCAtIHBvaW50QS54LCAyKSArIE1hdGgucG93KHBvaW50Qi55IC0gcG9pbnRBLnksIDIpKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFBvaW50QXREaXN0YW5jZShzdGFydFBvaW50OiBJUG9pbnQsIGVuZFBvaW50OiBJUG9pbnQsIGRpc3RhbmNlOiBudW1iZXIpOiBJUG9pbnQge1xuICAgIGNvbnN0IHRvdGFsRGlzdGFuY2UgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHN0YXJ0UG9pbnQsIGVuZFBvaW50KTtcbiAgICBjb25zdCByYXRpbyA9IGRpc3RhbmNlIC8gdG90YWxEaXN0YW5jZTtcbiAgICBjb25zdCB4ID0gKDEgLSByYXRpbykgKiBzdGFydFBvaW50LnggKyByYXRpbyAqIGVuZFBvaW50Lng7XG4gICAgY29uc3QgeSA9ICgxIC0gcmF0aW8pICogc3RhcnRQb2ludC55ICsgcmF0aW8gKiBlbmRQb2ludC55O1xuXG4gICAgcmV0dXJuIHsgeCwgeSB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './calculate-connection-center.handler';
|
|
2
|
-
export * from './calculate-connection-center-request';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZG9tYWluL2NhbGN1bGF0ZS1jb25uZWN0aW9uLWNlbnRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0aW9uLWNlbnRlci5oYW5kbGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXItcmVxdWVzdCc7XG4iXX0=
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { EFConnectableSide } from '../../../f-connectors';
|
|
2
|
-
import { CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, } from './calculate-connection-center';
|
|
3
|
-
export class FBezierPathBuilder {
|
|
4
|
-
static _getConnectorOffset(distance, offset) {
|
|
5
|
-
if (distance >= offset) {
|
|
6
|
-
return distance;
|
|
7
|
-
}
|
|
8
|
-
return offset * Math.sqrt(offset - distance);
|
|
9
|
-
}
|
|
10
|
-
static _getAnglePoint(side, source, target, offset) {
|
|
11
|
-
const result = { x: source.x, y: source.y };
|
|
12
|
-
switch (side) {
|
|
13
|
-
case EFConnectableSide.LEFT:
|
|
14
|
-
result.x -= FBezierPathBuilder._getConnectorOffset(source.x - target.x, offset);
|
|
15
|
-
break;
|
|
16
|
-
case EFConnectableSide.RIGHT:
|
|
17
|
-
result.x += FBezierPathBuilder._getConnectorOffset(target.x - source.x, offset);
|
|
18
|
-
break;
|
|
19
|
-
case EFConnectableSide.TOP:
|
|
20
|
-
result.y -= FBezierPathBuilder._getConnectorOffset(source.y - target.y, offset);
|
|
21
|
-
break;
|
|
22
|
-
case EFConnectableSide.BOTTOM:
|
|
23
|
-
result.y += FBezierPathBuilder._getConnectorOffset(target.y - source.y, offset);
|
|
24
|
-
break;
|
|
25
|
-
}
|
|
26
|
-
return result;
|
|
27
|
-
}
|
|
28
|
-
handle(request) {
|
|
29
|
-
const { source, sourceSide, target, targetSide, offset } = request;
|
|
30
|
-
const sourceAnglePoint = FBezierPathBuilder._getAnglePoint(sourceSide, source, target, offset);
|
|
31
|
-
const targetAnglePoint = FBezierPathBuilder._getAnglePoint(targetSide, target, source, offset);
|
|
32
|
-
const path = `M ${source.x} ${source.y} C ${sourceAnglePoint.x} ${sourceAnglePoint.y}, ${targetAnglePoint.x} ${targetAnglePoint.y}, ${target.x + 0.0002} ${target.y + 0.0002}`;
|
|
33
|
-
const connectionCenter = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest([source, sourceAnglePoint, targetAnglePoint, target]));
|
|
34
|
-
return {
|
|
35
|
-
path,
|
|
36
|
-
connectionCenter,
|
|
37
|
-
penultimatePoint: targetAnglePoint,
|
|
38
|
-
secondPoint: sourceAnglePoint,
|
|
39
|
-
points: _sampleCubic(source, sourceAnglePoint, targetAnglePoint, target, 32),
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function bez3(p0, p1, p2, p3, t) {
|
|
44
|
-
const u = 1 - t, tt = t * t, uu = u * u, uuu = uu * u, ttt = tt * t;
|
|
45
|
-
return {
|
|
46
|
-
x: uuu * p0.x + 3 * uu * t * p1.x + 3 * u * tt * p2.x + ttt * p3.x,
|
|
47
|
-
y: uuu * p0.y + 3 * uu * t * p1.y + 3 * u * tt * p2.y + ttt * p3.y,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
function _sampleCubic(p0, p1, p2, p3, samples = 32) {
|
|
51
|
-
const out = new Array(samples + 1);
|
|
52
|
-
out[0] = { ...p0 };
|
|
53
|
-
for (let i = 1; i <= samples; i++) {
|
|
54
|
-
out[i] = bez3(p0, p1, p2, p3, i / samples);
|
|
55
|
-
}
|
|
56
|
-
return out;
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1iZXppZXIucGF0aC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2RvbWFpbi9mLWJlemllci5wYXRoLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsR0FDakMsTUFBTSwrQkFBK0IsQ0FBQztBQU92QyxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFnQixFQUFFLE1BQWM7UUFDakUsSUFBSSxRQUFRLElBQUksTUFBTSxFQUFFLENBQUM7WUFDdkIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVELE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxNQUFNLENBQUMsY0FBYyxDQUMzQixJQUF1QixFQUN2QixNQUFjLEVBQ2QsTUFBYyxFQUNkLE1BQWM7UUFFZCxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcEQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssaUJBQWlCLENBQUMsSUFBSTtnQkFDekIsTUFBTSxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2hGLE1BQU07WUFDUixLQUFLLGlCQUFpQixDQUFDLEtBQUs7Z0JBQzFCLE1BQU0sQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsbUJBQW1C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LENBQUM7S0FDbkUsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsT0FBTyxHQUFHLEVBQUU7SUFDaEYsTUFBTSxHQUFHLEdBQWEsSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2xDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlcixcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlclJlcXVlc3QsXG59IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3Rpb24tY2VudGVyJztcbmltcG9ydCB7XG4gIElGQ29ubmVjdGlvbkJ1aWxkZXIsXG4gIElGQ29ubmVjdGlvbkJ1aWxkZXJSZXF1ZXN0LFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2UsXG59IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbi1idWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIEZCZXppZXJQYXRoQnVpbGRlciBpbXBsZW1lbnRzIElGQ29ubmVjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIHN0YXRpYyBfZ2V0Q29ubmVjdG9yT2Zmc2V0KGRpc3RhbmNlOiBudW1iZXIsIG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoZGlzdGFuY2UgPj0gb2Zmc2V0KSB7XG4gICAgICByZXR1cm4gZGlzdGFuY2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mZnNldCAqIE1hdGguc3FydChvZmZzZXQgLSBkaXN0YW5jZSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfZ2V0QW5nbGVQb2ludChcbiAgICBzaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgICBzb3VyY2U6IElQb2ludCxcbiAgICB0YXJnZXQ6IElQb2ludCxcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgKTogSVBvaW50IHtcbiAgICBjb25zdCByZXN1bHQ6IElQb2ludCA9IHsgeDogc291cmNlLngsIHk6IHNvdXJjZS55IH07XG5cbiAgICBzd2l0Y2ggKHNpZGUpIHtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuTEVGVDpcbiAgICAgICAgcmVzdWx0LnggLT0gRkJlemllclBhdGhCdWlsZGVyLl9nZXRDb25uZWN0b3JPZmZzZXQoc291cmNlLnggLSB0YXJnZXQueCwgb2Zmc2V0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUOlxuICAgICAgICByZXN1bHQueCArPSBGQmV6aWVyUGF0aEJ1aWxkZXIuX2dldENvbm5lY3Rvck9mZnNldCh0YXJnZXQueCAtIHNvdXJjZS54LCBvZmZzZXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuVE9QOlxuICAgICAgICByZXN1bHQueSAtPSBGQmV6aWVyUGF0aEJ1aWxkZXIuX2dldENvbm5lY3Rvck9mZnNldChzb3VyY2UueSAtIHRhcmdldC55LCBvZmZzZXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NOlxuICAgICAgICByZXN1bHQueSArPSBGQmV6aWVyUGF0aEJ1aWxkZXIuX2dldENvbm5lY3Rvck9mZnNldCh0YXJnZXQueSAtIHNvdXJjZS55LCBvZmZzZXQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCk6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZSB7XG4gICAgY29uc3QgeyBzb3VyY2UsIHNvdXJjZVNpZGUsIHRhcmdldCwgdGFyZ2V0U2lkZSwgb2Zmc2V0IH0gPSByZXF1ZXN0O1xuXG4gICAgY29uc3Qgc291cmNlQW5nbGVQb2ludCA9IEZCZXppZXJQYXRoQnVpbGRlci5fZ2V0QW5nbGVQb2ludChzb3VyY2VTaWRlLCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0KTtcblxuICAgIGNvbnN0IHRhcmdldEFuZ2xlUG9pbnQgPSBGQmV6aWVyUGF0aEJ1aWxkZXIuX2dldEFuZ2xlUG9pbnQodGFyZ2V0U2lkZSwgdGFyZ2V0LCBzb3VyY2UsIG9mZnNldCk7XG5cbiAgICBjb25zdCBwYXRoID0gYE0gJHtzb3VyY2UueH0gJHtzb3VyY2UueX0gQyAke3NvdXJjZUFuZ2xlUG9pbnQueH0gJHtzb3VyY2VBbmdsZVBvaW50Lnl9LCAke3RhcmdldEFuZ2xlUG9pbnQueH0gJHt0YXJnZXRBbmdsZVBvaW50Lnl9LCAke3RhcmdldC54ICsgMC4wMDAyfSAke3RhcmdldC55ICsgMC4wMDAyfWA7XG5cbiAgICBjb25zdCBjb25uZWN0aW9uQ2VudGVyID0gbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJIYW5kbGVyKCkuaGFuZGxlKFxuICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0KFtzb3VyY2UsIHNvdXJjZUFuZ2xlUG9pbnQsIHRhcmdldEFuZ2xlUG9pbnQsIHRhcmdldF0pLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aCxcbiAgICAgIGNvbm5lY3Rpb25DZW50ZXIsXG4gICAgICBwZW51bHRpbWF0ZVBvaW50OiB0YXJnZXRBbmdsZVBvaW50LFxuICAgICAgc2Vjb25kUG9pbnQ6IHNvdXJjZUFuZ2xlUG9pbnQsXG4gICAgICBwb2ludHM6IF9zYW1wbGVDdWJpYyhzb3VyY2UsIHNvdXJjZUFuZ2xlUG9pbnQsIHRhcmdldEFuZ2xlUG9pbnQsIHRhcmdldCwgMzIpLFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gYmV6MyhwMDogSVBvaW50LCBwMTogSVBvaW50LCBwMjogSVBvaW50LCBwMzogSVBvaW50LCB0OiBudW1iZXIpOiBJUG9pbnQge1xuICBjb25zdCB1ID0gMSAtIHQsXG4gICAgdHQgPSB0ICogdCxcbiAgICB1dSA9IHUgKiB1LFxuICAgIHV1dSA9IHV1ICogdSxcbiAgICB0dHQgPSB0dCAqIHQ7XG5cbiAgcmV0dXJuIHtcbiAgICB4OiB1dXUgKiBwMC54ICsgMyAqIHV1ICogdCAqIHAxLnggKyAzICogdSAqIHR0ICogcDIueCArIHR0dCAqIHAzLngsXG4gICAgeTogdXV1ICogcDAueSArIDMgKiB1dSAqIHQgKiBwMS55ICsgMyAqIHUgKiB0dCAqIHAyLnkgKyB0dHQgKiBwMy55LFxuICB9O1xufVxuXG5mdW5jdGlvbiBfc2FtcGxlQ3ViaWMocDA6IElQb2ludCwgcDE6IElQb2ludCwgcDI6IElQb2ludCwgcDM6IElQb2ludCwgc2FtcGxlcyA9IDMyKTogSVBvaW50W10ge1xuICBjb25zdCBvdXQ6IElQb2ludFtdID0gbmV3IEFycmF5KHNhbXBsZXMgKyAxKTtcbiAgb3V0WzBdID0geyAuLi5wMCB9O1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSBzYW1wbGVzOyBpKyspIHtcbiAgICBvdXRbaV0gPSBiZXozKHAwLCBwMSwgcDIsIHAzLCBpIC8gc2FtcGxlcyk7XG4gIH1cblxuICByZXR1cm4gb3V0O1xufVxuIl19
|