@foblex/flow 17.8.4 → 17.8.6
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/domain/drag-rect-cache.d.ts +8 -0
- package/domain/f-background/providers.d.ts +1 -1
- package/domain/f-canvas/providers.d.ts +1 -1
- package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.d.ts +7 -7
- package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.d.ts +37 -3
- package/domain/f-connection/calculate-connection-line-by-behavior/index.d.ts +4 -3
- package/domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.d.ts +8 -0
- package/domain/f-connection/calculate-connection-line-by-behavior/{fixed-center-behavior.d.ts → utils/fixed-center-behavior.d.ts} +2 -2
- package/domain/f-connection/calculate-connection-line-by-behavior/{fixed-outbound-behavior.d.ts → utils/fixed-outbound-behavior.d.ts} +2 -2
- package/domain/f-connection/calculate-connection-line-by-behavior/{floating-behavior.d.ts → utils/floating-behavior.d.ts} +2 -2
- package/domain/f-connection/providers.d.ts +2 -2
- package/domain/f-connection/redraw-connections/index.d.ts +1 -1
- package/domain/f-connection/redraw-connections/{redraw-connections.execution.d.ts → redraw-connections.d.ts} +3 -3
- package/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect-request.d.ts +8 -0
- package/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.d.ts +21 -0
- package/domain/f-connectors/calculate-source-connectors-to-connect/index.d.ts +2 -0
- package/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect-request.d.ts +8 -0
- package/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.d.ts +20 -0
- package/domain/f-connectors/calculate-target-connectors-to-connect/index.d.ts +2 -0
- package/domain/f-connectors/index.d.ts +2 -2
- package/domain/f-connectors/providers.d.ts +3 -3
- package/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.d.ts +1 -1
- package/domain/f-event-trigger.d.ts +1 -1
- package/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.d.ts +2 -2
- package/domain/f-line-alignment/add-line-alignment-to-store/{add-line-alignment-to-store.execution.d.ts → add-line-alignment-to-store.d.ts} +4 -4
- package/domain/f-line-alignment/add-line-alignment-to-store/index.d.ts +1 -1
- package/domain/f-line-alignment/providers.d.ts +3 -3
- package/domain/f-line-alignment/remove-line-alignment-from-store/index.d.ts +1 -1
- package/domain/f-line-alignment/remove-line-alignment-from-store/{remove-line-alignment-from-store.execution.d.ts → remove-line-alignment-from-store.d.ts} +4 -4
- package/domain/f-node/add-node-to-store/add-node-to-store-request.d.ts +2 -2
- package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.d.ts +8 -0
- package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.d.ts +2 -28
- package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.d.ts +52 -0
- package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides-request.d.ts +6 -0
- package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.d.ts +22 -0
- package/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.d.ts +6 -0
- package/domain/f-node/calculate-connectors-connectable-sides/constants/index.d.ts +1 -0
- package/domain/f-node/calculate-connectors-connectable-sides/index.d.ts +7 -0
- package/domain/f-node/calculate-connectors-connectable-sides/models/index.d.ts +1 -0
- package/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.d.ts +2 -0
- package/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.d.ts +10 -0
- package/domain/f-node/calculate-connectors-connectable-sides/utils/index.d.ts +2 -0
- package/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.d.ts +7 -0
- package/domain/f-node/calculate-input-connections/calculate-input-connections-request.d.ts +2 -2
- package/domain/f-node/calculate-input-connections/calculate-input-connections.d.ts +3 -3
- package/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.d.ts +2 -3
- package/domain/f-node/calculate-output-connections/calculate-output-connections-request.d.ts +2 -2
- package/domain/f-node/calculate-output-connections/calculate-output-connections.d.ts +3 -3
- package/domain/f-node/get-parent-nodes/get-parent-nodes.d.ts +1 -1
- package/domain/f-node/get-parent-nodes/get-parent-nodes.request.d.ts +2 -2
- package/domain/f-node/index.d.ts +1 -2
- package/domain/f-node/providers.d.ts +2 -3
- package/domain/f-node/remove-node-from-store/remove-node-from-store-request.d.ts +2 -2
- package/domain/f-node/remove-node-from-store/remove-node-from-store.d.ts +1 -1
- package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.d.ts +2 -2
- package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.d.ts +2 -2
- package/domain/index.d.ts +1 -0
- package/domain/providers.d.ts +4 -3
- package/domain/update-item-and-children-layers/move-front-elements-before-target-element/index.d.ts +2 -2
- package/domain/update-item-and-children-layers/move-front-elements-before-target-element/{move-front-elements-before-target-element.request.d.ts → move-front-elements-before-target-element-request.d.ts} +4 -4
- package/domain/update-item-and-children-layers/move-front-elements-before-target-element/{move-front-elements-before-target-element.execution.d.ts → move-front-elements-before-target-element.d.ts} +4 -4
- package/esm2022/domain/css-cls.mjs +2 -1
- package/esm2022/domain/drag-rect-cache.mjs +19 -0
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.mjs +4 -4
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.mjs +126 -13
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/index.mjs +5 -4
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.mjs +2 -0
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-center-behavior.mjs +12 -0
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-outbound-behavior.mjs +31 -0
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/floating-behavior.mjs +22 -0
- package/esm2022/domain/f-connection/providers.mjs +3 -3
- package/esm2022/domain/f-connection/redraw-connections/index.mjs +2 -2
- package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +75 -0
- package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect-request.mjs +10 -0
- package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.mjs +59 -0
- package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/index.mjs +3 -0
- package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect-request.mjs +10 -0
- package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.mjs +64 -0
- package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/index.mjs +3 -0
- package/esm2022/domain/f-connectors/index.mjs +3 -3
- package/esm2022/domain/f-connectors/providers.mjs +5 -5
- package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event-request.mjs +1 -1
- package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.mjs +2 -2
- package/esm2022/domain/f-event-trigger.mjs +2 -2
- package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.mjs +4 -4
- package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.mjs +25 -0
- package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/index.mjs +2 -2
- package/esm2022/domain/f-line-alignment/providers.mjs +4 -7
- package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/index.mjs +2 -2
- package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.mjs +25 -0
- package/esm2022/domain/f-node/add-node-to-store/add-node-to-store-request.mjs +4 -4
- package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.mjs +2 -2
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.mjs +10 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +59 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/index.mjs +3 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position-request.mjs +8 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.mjs +132 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/index.mjs +3 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides-request.mjs +8 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.mjs +73 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.mjs +12 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/index.mjs +2 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/index.mjs +8 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/index.mjs +2 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.mjs +2 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.mjs +124 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/index.mjs +3 -0
- package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.mjs +12 -0
- package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections-request.mjs +4 -4
- package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.mjs +20 -7
- package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.mjs +5 -8
- package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.mjs +1 -1
- package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections-request.mjs +4 -4
- package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.mjs +20 -7
- package/esm2022/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups-request.mjs +1 -1
- package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.request.mjs +1 -1
- package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.mjs +8 -8
- package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.request.mjs +4 -4
- package/esm2022/domain/f-node/index.mjs +2 -3
- package/esm2022/domain/f-node/providers.mjs +3 -5
- package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store-request.mjs +4 -4
- package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.mjs +3 -3
- package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +3 -3
- package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.mjs +5 -5
- package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.mjs +4 -4
- package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect-request.mjs +1 -1
- package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect.execution.mjs +2 -2
- package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +2 -14
- package/esm2022/domain/get-normalized-point/get-normalized-point.execution.mjs +4 -1
- package/esm2022/domain/index.mjs +2 -1
- package/esm2022/domain/is-mobile.mjs +5 -3
- package/esm2022/domain/providers.mjs +5 -5
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/index.mjs +3 -3
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element-request.mjs +15 -0
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.mjs +34 -0
- package/esm2022/f-connection/common/domain/adaptive-curve-builder.mjs +201 -0
- package/esm2022/f-connection/common/domain/index.mjs +2 -1
- package/esm2022/f-connection/common/e-f-connection-connectable-side.mjs +12 -0
- package/esm2022/f-connection/common/e-f-connection-type.mjs +2 -1
- package/esm2022/f-connection/common/f-connection-base.mjs +28 -5
- package/esm2022/f-connection/common/index.mjs +2 -1
- package/esm2022/f-connection/f-connection/f-connection.component.mjs +13 -3
- package/esm2022/f-connection/f-connection-builder/f-connection-factory.mjs +9 -17
- package/esm2022/f-connection/f-connection-content/f-connection-content.mjs +10 -4
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-layout-engine.mjs +4 -5
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-place.mjs +3 -2
- package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +14 -4
- package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +14 -4
- package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation-request.mjs +10 -0
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.mjs +58 -0
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation-request.mjs +10 -0
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation.mjs +47 -0
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/index.mjs +3 -3
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/index.mjs +3 -3
- package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +12 -12
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +7 -7
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +10 -10
- package/esm2022/f-draggable/f-connection/providers.mjs +4 -4
- package/esm2022/f-draggable/f-draggable.directive.mjs +5 -4
- package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.mjs +1 -1
- package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation.mjs +11 -13
- package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +3 -3
- package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +14 -12
- package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.mjs +1 -1
- package/esm2022/f-flow/f-flow.component.mjs +2 -2
- package/esm2022/f-node/f-group.directive.mjs +3 -3
- package/esm2022/f-node/f-node.directive.mjs +3 -3
- package/esm2022/f-storage/f-connectors-store.mjs +11 -0
- package/esm2022/f-storage/index.mjs +2 -1
- package/f-backgroud/providers.d.ts +1 -1
- package/f-connection/common/domain/adaptive-curve-builder.d.ts +102 -0
- package/f-connection/common/domain/index.d.ts +1 -0
- package/f-connection/common/e-f-connection-connectable-side.d.ts +10 -0
- package/f-connection/common/e-f-connection-type.d.ts +2 -1
- package/f-connection/common/f-connection-base.d.ts +14 -2
- package/f-connection/common/index.d.ts +1 -0
- package/f-connection/f-connection/f-connection.component.d.ts +4 -2
- package/f-connection/f-connection-builder/f-connection-factory.d.ts +2 -4
- package/f-connection/f-connection-content/f-connection-content.d.ts +2 -2
- package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +4 -2
- package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +4 -2
- package/f-connection/providers.d.ts +1 -1
- package/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation-request.d.ts +8 -0
- package/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.d.ts +16 -0
- package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation-request.d.ts +8 -0
- package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation.d.ts +14 -0
- package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/index.d.ts +2 -2
- package/f-draggable/f-connection/f-create-connection/create-preparation/index.d.ts +2 -2
- package/f-draggable/f-connection/providers.d.ts +2 -2
- package/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.d.ts +2 -2
- package/f-draggable/f-drop-to-group/providers.d.ts +1 -1
- package/f-draggable/f-node-move/create-drag-model-from-selection/providers.d.ts +1 -1
- package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.d.ts +1 -1
- package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.d.ts +1 -1
- package/f-draggable/f-node-move/providers.d.ts +1 -1
- package/f-draggable/providers.d.ts +1 -1
- package/f-minimap/domain/providers.d.ts +1 -1
- package/f-node/providers.d.ts +1 -1
- package/f-selection-area/domain/providers.d.ts +1 -1
- package/f-storage/f-connectors-store.d.ts +6 -0
- package/f-storage/index.d.ts +1 -0
- package/f-storage/providers.d.ts +1 -1
- package/fesm2022/foblex-flow.mjs +1741 -1235
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +1 -1
- package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.d.ts +0 -17
- package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.request.d.ts +0 -6
- package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/index.d.ts +0 -2
- package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.d.ts +0 -18
- package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.request.d.ts +0 -6
- package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.d.ts +0 -2
- package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.d.ts +0 -9
- package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.d.ts +0 -20
- package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides-request.d.ts +0 -6
- package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides.d.ts +0 -28
- package/domain/f-node/calculate-node-connectors-connectable-sides/index.d.ts +0 -4
- package/domain/f-node/get-nodes/get-nodes-request.d.ts +0 -3
- package/domain/f-node/get-nodes/get-nodes.d.ts +0 -13
- package/domain/f-node/get-nodes/index.d.ts +0 -2
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.mjs +0 -12
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.mjs +0 -31
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +0 -22
- package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +0 -73
- package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.mjs +0 -48
- package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.request.mjs +0 -8
- package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/index.mjs +0 -3
- package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.mjs +0 -43
- package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.request.mjs +0 -8
- package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.mjs +0 -3
- package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.execution.mjs +0 -25
- package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.execution.mjs +0 -25
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.mjs +0 -16
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +0 -181
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/index.mjs +0 -3
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position-request.mjs +0 -8
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.mjs +0 -55
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/index.mjs +0 -3
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides-request.mjs +0 -8
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides.mjs +0 -90
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/index.mjs +0 -5
- package/esm2022/domain/f-node/get-nodes/get-nodes-request.mjs +0 -4
- package/esm2022/domain/f-node/get-nodes/get-nodes.mjs +0 -25
- package/esm2022/domain/f-node/get-nodes/index.mjs +0 -3
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.execution.mjs +0 -34
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.request.mjs +0 -15
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.mjs +0 -52
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.request.mjs +0 -10
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.mjs +0 -49
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.request.mjs +0 -10
- package/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.d.ts +0 -16
- package/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.request.d.ts +0 -8
- package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.d.ts +0 -14
- package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.request.d.ts +0 -8
- /package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-connected-positions/index.d.ts +0 -0
- /package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position-request.d.ts +0 -0
- /package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-internal-position/index.d.ts +0 -0
package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { GetNormalizedElementRectRequest } from './get-normalized-element-rect-r
|
|
|
4
4
|
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
5
5
|
import { FComponentsStore } from '../../f-storage';
|
|
6
6
|
import { RoundedRect, SizeExtensions, RectExtensions, } from '@foblex/2d';
|
|
7
|
-
import { GetNormalizedPointRequest } from
|
|
7
|
+
import { GetNormalizedPointRequest } from '../get-normalized-point';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
/**
|
|
10
10
|
* Execution that retrieves the normalized rectangle of an element.
|
|
@@ -25,18 +25,6 @@ let GetNormalizedElementRectExecution = class GetNormalizedElementRectExecution
|
|
|
25
25
|
const offsetSize = this._getOffsetSize(request.element, unscaledSize);
|
|
26
26
|
return RoundedRect.fromCenter(unscaledRect, offsetSize.width, offsetSize.height);
|
|
27
27
|
}
|
|
28
|
-
// BrowserWindow
|
|
29
|
-
// +--------------------------------+
|
|
30
|
-
// | |
|
|
31
|
-
// | Element |
|
|
32
|
-
// | (x: 100, y: 50) |
|
|
33
|
-
// | +--------+ |
|
|
34
|
-
// | | | |
|
|
35
|
-
// | | | |
|
|
36
|
-
// | +--------+ |
|
|
37
|
-
// | |
|
|
38
|
-
// +--------------------------------+
|
|
39
|
-
// This data of the element is relative to the browser window, not the canvas, with all transformations applied.
|
|
40
28
|
_getElementRoundedRect(request) {
|
|
41
29
|
return RoundedRect.fromRect(RectExtensions.fromElement(request.element));
|
|
42
30
|
}
|
|
@@ -62,4 +50,4 @@ export { GetNormalizedElementRectExecution };
|
|
|
62
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedElementRectExecution, decorators: [{
|
|
63
51
|
type: Injectable
|
|
64
52
|
}] });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5vcm1hbGl6ZWQtZWxlbWVudC1yZWN0LmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2dldC1ub3JtYWxpemVkLWVsZW1lbnQtcmVjdC9nZXQtbm9ybWFsaXplZC1lbGVtZW50LXJlY3QuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUVMLFdBQVcsRUFHWCxjQUFjLEVBRWQsY0FBYyxHQUVmLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUVwRTs7OztHQUlHO0FBR0ksSUFBTSxpQ0FBaUMsR0FBdkMsTUFBTSxpQ0FBaUM7SUFHM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0MsSUFBWSxVQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBd0M7UUFDcEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRS9FLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUV0RSxPQUFPLFdBQVcsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxPQUF3QztRQUNyRSxPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBa0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFrQjtRQUNyQyxPQUFPLGNBQWMsQ0FBQyxVQUFVLENBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQ3BDLENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsUUFBZ0IsRUFBRSxJQUFXLEVBQUUsSUFBa0I7UUFDeEUsT0FBTyxJQUFJLFdBQVcsQ0FDcEIsUUFBUSxDQUFDLENBQUMsRUFDVixRQUFRLENBQUMsQ0FBQyxFQUNWLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQWlDLEVBQUUsSUFBVztRQUNuRSxPQUFPLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDM0QsQ0FBQzt3R0FuRFUsaUNBQWlDOzRHQUFqQyxpQ0FBaUM7O0FBQWpDLGlDQUFpQztJQUQ3QyxrQkFBa0IsQ0FBQywrQkFBK0IsQ0FBQztHQUN2QyxpQ0FBaUMsQ0FvRDdDOzs0RkFwRFksaUNBQWlDO2tCQUY3QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0IH0gZnJvbSAnLi9nZXQtbm9ybWFsaXplZC1lbGVtZW50LXJlY3QtcmVxdWVzdCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQge1xuICBJUm91bmRlZFJlY3QsXG4gIFJvdW5kZWRSZWN0LFxuICBJUG9pbnQsXG4gIElTaXplLFxuICBTaXplRXh0ZW5zaW9ucyxcbiAgSVRyYW5zZm9ybU1vZGVsLFxuICBSZWN0RXh0ZW5zaW9ucyxcbiAgSVJlY3QsXG59IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgR2V0Tm9ybWFsaXplZFBvaW50UmVxdWVzdCB9IGZyb20gJy4uL2dldC1ub3JtYWxpemVkLXBvaW50JztcblxuLyoqXG4gKiBFeGVjdXRpb24gdGhhdCByZXRyaWV2ZXMgdGhlIG5vcm1hbGl6ZWQgcmVjdGFuZ2xlIG9mIGFuIGVsZW1lbnQuXG4gKiBJdCBjYWxjdWxhdGVzIHRoZSByZWN0YW5nbGUgYmFzZWQgb24gdGhlIGVsZW1lbnQncyBwb3NpdGlvbiBhbmQgc2l6ZSxcbiAqIGFkanVzdGluZyBmb3IgdGhlIGNhbnZhcyB0cmFuc2Zvcm1hdGlvbiBhbmQgZWxlbWVudCBvZmZzZXRzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QpXG5leHBvcnQgY2xhc3MgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0RXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0LCBJUmVjdD5cbntcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgcHJpdmF0ZSBnZXQgX3RyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLl9zdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QpOiBJUmVjdCB7XG4gICAgY29uc3Qgc3lzdGVtUmVjdCA9IHRoaXMuX2dldEVsZW1lbnRSb3VuZGVkUmVjdChyZXF1ZXN0KTtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuX25vcm1hbGl6ZVBvc2l0aW9uKHN5c3RlbVJlY3QpO1xuICAgIGNvbnN0IHVuc2NhbGVkU2l6ZSA9IHRoaXMuX3Vuc2NhbGVTaXplKHN5c3RlbVJlY3QpO1xuICAgIGNvbnN0IHVuc2NhbGVkUmVjdCA9IHRoaXMuX2dldFVuc2NhbGVkUmVjdChwb3NpdGlvbiwgdW5zY2FsZWRTaXplLCBzeXN0ZW1SZWN0KTtcblxuICAgIGNvbnN0IG9mZnNldFNpemUgPSB0aGlzLl9nZXRPZmZzZXRTaXplKHJlcXVlc3QuZWxlbWVudCwgdW5zY2FsZWRTaXplKTtcblxuICAgIHJldHVybiBSb3VuZGVkUmVjdC5mcm9tQ2VudGVyKHVuc2NhbGVkUmVjdCwgb2Zmc2V0U2l6ZS53aWR0aCwgb2Zmc2V0U2l6ZS5oZWlnaHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RWxlbWVudFJvdW5kZWRSZWN0KHJlcXVlc3Q6IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QpOiBJUm91bmRlZFJlY3Qge1xuICAgIHJldHVybiBSb3VuZGVkUmVjdC5mcm9tUmVjdChSZWN0RXh0ZW5zaW9ucy5mcm9tRWxlbWVudChyZXF1ZXN0LmVsZW1lbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgX25vcm1hbGl6ZVBvc2l0aW9uKHJlY3Q6IElSb3VuZGVkUmVjdCk6IElQb2ludCB7XG4gICAgcmV0dXJuIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IEdldE5vcm1hbGl6ZWRQb2ludFJlcXVlc3QocmVjdCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW5zY2FsZVNpemUocmVjdDogSVJvdW5kZWRSZWN0KTogSVNpemUge1xuICAgIHJldHVybiBTaXplRXh0ZW5zaW9ucy5pbml0aWFsaXplKFxuICAgICAgcmVjdC53aWR0aCAvIHRoaXMuX3RyYW5zZm9ybS5zY2FsZSxcbiAgICAgIHJlY3QuaGVpZ2h0IC8gdGhpcy5fdHJhbnNmb3JtLnNjYWxlLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRVbnNjYWxlZFJlY3QocG9zaXRpb246IElQb2ludCwgc2l6ZTogSVNpemUsIHJlY3Q6IElSb3VuZGVkUmVjdCk6IElSb3VuZGVkUmVjdCB7XG4gICAgcmV0dXJuIG5ldyBSb3VuZGVkUmVjdChcbiAgICAgIHBvc2l0aW9uLngsXG4gICAgICBwb3NpdGlvbi55LFxuICAgICAgc2l6ZS53aWR0aCxcbiAgICAgIHNpemUuaGVpZ2h0LFxuICAgICAgcmVjdC5yYWRpdXMxLFxuICAgICAgcmVjdC5yYWRpdXMyLFxuICAgICAgcmVjdC5yYWRpdXMzLFxuICAgICAgcmVjdC5yYWRpdXM0LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRPZmZzZXRTaXplKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCwgc2l6ZTogSVNpemUpOiBJU2l6ZSB7XG4gICAgcmV0dXJuIFNpemVFeHRlbnNpb25zLm9mZnNldEZyb21FbGVtZW50KGVsZW1lbnQpIHx8IHNpemU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -34,6 +34,9 @@ let GetNormalizedPointExecution = class GetNormalizedPointExecution {
|
|
|
34
34
|
// +------------------------------------------+
|
|
35
35
|
// Transform from the browser window to the canvas coordinates:
|
|
36
36
|
handle(request) {
|
|
37
|
+
if (!this._store.flowHost) {
|
|
38
|
+
return request.position;
|
|
39
|
+
}
|
|
37
40
|
return Point.fromPoint(request.position)
|
|
38
41
|
.elementTransform(this._store.flowHost)
|
|
39
42
|
.sub(this._transform.scaledPosition)
|
|
@@ -50,4 +53,4 @@ export { GetNormalizedPointExecution };
|
|
|
50
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedPointExecution, decorators: [{
|
|
51
54
|
type: Injectable
|
|
52
55
|
}] });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5vcm1hbGl6ZWQtcG9pbnQuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZ2V0LW5vcm1hbGl6ZWQtcG9pbnQvZ2V0LW5vcm1hbGl6ZWQtcG9pbnQuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQTJCLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFbEU7Ozs7R0FJRztBQUdJLElBQU0sMkJBQTJCLEdBQWpDLE1BQU0sMkJBQTJCO0lBQ3JCLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUVuRCxJQUFZLFVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQVEsQ0FBQyxTQUFTLENBQUM7SUFDeEMsQ0FBQztJQUNELGdCQUFnQjtJQUNoQiwrQ0FBK0M7SUFDL0MsK0NBQStDO0lBQy9DLCtDQUErQztJQUMvQywrQ0FBK0M7SUFDL0MsK0NBQStDO0lBQy9DLCtDQUErQztJQUMvQywrQ0FBK0M7SUFDL0MsK0NBQStDO0lBQy9DLCtDQUErQztJQUMvQywrQ0FBK0M7SUFDL0MsK0NBQStDO0lBQy9DLCtDQUErQztJQUMvQywrQ0FBK0M7SUFDL0MsK0NBQStDO0lBQy9DLCtDQUErQztJQUMvQywrQ0FBK0M7SUFDL0MsK0RBQStEO0lBQ3hELE1BQU0sQ0FBQyxPQUFrQztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxQixPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDMUIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQ3JDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2FBQ3RDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQzthQUNuQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7YUFDN0IsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQzt3R0FsQ1UsMkJBQTJCOzRHQUEzQiwyQkFBMkI7O0FBQTNCLDJCQUEyQjtJQUR2QyxrQkFBa0IsQ0FBQyx5QkFBeUIsQ0FBQztHQUNqQywyQkFBMkIsQ0FtQ3ZDOzs0RkFuQ1ksMkJBQTJCO2tCQUZ2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50LCBJVHJhbnNmb3JtTW9kZWwsIFBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdldE5vcm1hbGl6ZWRQb2ludFJlcXVlc3QgfSBmcm9tICcuL2dldC1ub3JtYWxpemVkLXBvaW50LXJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcblxuLyoqXG4gKiBFeGVjdXRpb24gdGhhdCByZXRyaWV2ZXMgdGhlIG5vcm1hbGl6ZWQgcG9pbnQgb2YgYSBwb3NpdGlvbi5cbiAqIEl0IGNhbGN1bGF0ZXMgdGhlIHBvaW50IGJhc2VkIG9uIHRoZSBwb3NpdGlvbidzIHRyYW5zZm9ybWF0aW9uXG4gKiBhbmQgdGhlIGNhbnZhcyB0cmFuc2Zvcm1hdGlvbi5cbiAqL1xuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXROb3JtYWxpemVkUG9pbnRSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEdldE5vcm1hbGl6ZWRQb2ludEV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248R2V0Tm9ybWFsaXplZFBvaW50UmVxdWVzdCwgSVBvaW50PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHByaXZhdGUgZ2V0IF90cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG4gIC8vIEJyb3dzZXJXaW5kb3dcbiAgLy8gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgLy8gfCAgRi1GbG93ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgLy8gfCAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAgIHxcbiAgLy8gfCAgfCAgRi1DYW52YXMgKHNjYWxlOiAwLjUpICAgICAgICAgICB8ICAgIHxcbiAgLy8gfCAgfCAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAgICB8ICAgIHxcbiAgLy8gfCAgfCAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8ICAgIHxcbiAgLy8gfCAgfCAgfCAgIEVsZW1lbnQgICAgICAgICAgICAgICB8ICAgICB8ICAgIHxcbiAgLy8gfCAgfCAgfCAgIFN5c3RlbTogKDUwMCwzMDApICAgICB8ICAgICB8ICAgIHxcbiAgLy8gfCAgfCAgfCAgIE5vcm1hbGl6ZTogKDIwMCwxNTApICB8ICAgICB8ICAgIHxcbiAgLy8gfCAgfCAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8ICAgIHxcbiAgLy8gfCAgfCAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8ICAgIHxcbiAgLy8gfCAgfCAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAgICB8ICAgIHxcbiAgLy8gfCAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHxcbiAgLy8gfCAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAgIHxcbiAgLy8gfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgLy8gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgLy8gVHJhbnNmb3JtIGZyb20gdGhlIGJyb3dzZXIgd2luZG93IHRvIHRoZSBjYW52YXMgY29vcmRpbmF0ZXM6XG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogR2V0Tm9ybWFsaXplZFBvaW50UmVxdWVzdCk6IElQb2ludCB7XG4gICAgaWYgKCF0aGlzLl9zdG9yZS5mbG93SG9zdCkge1xuICAgICAgcmV0dXJuIHJlcXVlc3QucG9zaXRpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIFBvaW50LmZyb21Qb2ludChyZXF1ZXN0LnBvc2l0aW9uKVxuICAgICAgLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5fc3RvcmUuZmxvd0hvc3QpXG4gICAgICAuc3ViKHRoaXMuX3RyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbilcbiAgICAgIC5zdWIodGhpcy5fdHJhbnNmb3JtLnBvc2l0aW9uKVxuICAgICAgLmRpdih0aGlzLl90cmFuc2Zvcm0uc2NhbGUpO1xuICB9XG59XG4iXX0=
|
package/esm2022/domain/index.mjs
CHANGED
|
@@ -23,5 +23,6 @@ export * from './is-mobile';
|
|
|
23
23
|
export * from './log-deprecated';
|
|
24
24
|
export * from './log-execution-time';
|
|
25
25
|
export * from './providers';
|
|
26
|
+
export * from './drag-rect-cache';
|
|
26
27
|
export * from './transition-end';
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsY0FBYyxZQUFZLENBQUM7QUFFM0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixjQUFjLGdCQUFnQixDQUFDO0FBRS9CLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyxlQUFlLENBQUM7QUFFOUIsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLFdBQVcsQ0FBQztBQUUxQixjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGNBQWMsU0FBUyxDQUFDO0FBRXhCLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLGFBQWEsQ0FBQztBQUU1QixjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dldC1lbGVtZW50LXJvdW5kZWQtcmVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1iYWNrZ3JvdW5kJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWNhbnZhcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jb25uZWN0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZHJhZ2dhYmxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWZsb3cnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtbGluZS1hbGlnbm1lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytbm9kZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zZWxlY3Rpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytem9vbSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWRlZXAtY2hpbGRyZW4tbm9kZXMtYW5kLWdyb3Vwcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2V0LW5vcm1hbGl6ZWQtY29ubmVjdG9yLXJlY3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL2dldC1ub3JtYWxpemVkLWVsZW1lbnQtcmVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2V0LW5vcm1hbGl6ZWQtcG9pbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NvcnQtaXRlbS1sYXllcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3VwZGF0ZS1pdGVtLWFuZC1jaGlsZHJlbi1sYXllcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1kb20tZWxlbWVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY3NzLWNscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1ldmVudC10cmlnZ2VyJztcblxuZXhwb3J0ICogZnJvbSAnLi9pLW1hcCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vaXMtbW9iaWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9sb2ctZGVwcmVjYXRlZCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbG9nLWV4ZWN1dGlvbi10aW1lJztcblxuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RyYWctcmVjdC1jYWNoZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNpdGlvbi1lbmQnO1xuIl19
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export function isMobile() {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
return /android|iPad|iPhone|iPod/i.test(
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
4
|
+
// @ts-expect-error
|
|
5
|
+
navigator.userAgent || navigator.vendor || window['opera']);
|
|
4
6
|
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbW9iaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vaXMtbW9iaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxRQUFRO0lBQ3RCLE9BQU8sMkJBQTJCLENBQUMsSUFBSTtJQUNyQyw2REFBNkQ7SUFDN0QsbUJBQW1CO0lBQ25CLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQzNELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gL2FuZHJvaWR8aVBhZHxpUGhvbmV8aVBvZC9pLnRlc3QoXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBuYXZpZ2F0b3IudXNlckFnZW50IHx8IG5hdmlnYXRvci52ZW5kb3IgfHwgd2luZG93WydvcGVyYSddLFxuICApO1xufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GetNormalizedElementRectExecution } from './get-normalized-element-rect';
|
|
2
|
-
import {
|
|
2
|
+
import { MoveFrontElementsBeforeTargetElement, UpdateItemAndChildrenLayersExecution, } from './update-item-and-children-layers';
|
|
3
3
|
import { GetNormalizedPointExecution } from './get-normalized-point';
|
|
4
|
-
import { SortItemLayersExecution, SortItemsByParentExecution, SortNodeLayersExecution } from './sort-item-layers';
|
|
4
|
+
import { SortItemLayersExecution, SortItemsByParentExecution, SortNodeLayersExecution, } from './sort-item-layers';
|
|
5
5
|
import { GetDeepChildrenNodesAndGroupsExecution } from './get-deep-children-nodes-and-groups';
|
|
6
6
|
import { GetElementRoundedRectExecution } from './get-element-rounded-rect';
|
|
7
7
|
import { F_SELECTION_FEATURES } from './f-selection';
|
|
@@ -14,7 +14,7 @@ import { F_DRAGGABLE_FEATURES } from './f-draggable';
|
|
|
14
14
|
import { F_NODE_FEATURES } from './f-node';
|
|
15
15
|
import { F_LINE_ALIGNMENT_FEATURES } from './f-line-alignment';
|
|
16
16
|
import { F_ZOOM_FEATURES } from './f-zoom';
|
|
17
|
-
import { GetNormalizedConnectorRectExecution } from
|
|
17
|
+
import { GetNormalizedConnectorRectExecution } from './get-normalized-connector-rect';
|
|
18
18
|
/**
|
|
19
19
|
* This module provides a collection of common providers for the FFlow domain.
|
|
20
20
|
* It includes features related to canvas, connections, background, connectors,
|
|
@@ -41,6 +41,6 @@ export const COMMON_PROVIDERS = [
|
|
|
41
41
|
SortItemsByParentExecution,
|
|
42
42
|
SortNodeLayersExecution,
|
|
43
43
|
UpdateItemAndChildrenLayersExecution,
|
|
44
|
-
|
|
44
|
+
MoveFrontElementsBeforeTargetElement,
|
|
45
45
|
];
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xGLE9BQU8sRUFDTCxvQ0FBb0MsRUFDcEMsb0NBQW9DLEdBQ3JDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsdUJBQXVCLEdBQ3hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdEY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixHQUFHLGlCQUFpQjtJQUVwQixHQUFHLHFCQUFxQjtJQUV4QixHQUFHLHFCQUFxQjtJQUV4QixHQUFHLHFCQUFxQjtJQUV4QixHQUFHLG9CQUFvQjtJQUV2QixHQUFHLGVBQWU7SUFFbEIsR0FBRyx5QkFBeUI7SUFFNUIsR0FBRyxlQUFlO0lBRWxCLDhCQUE4QjtJQUU5QixHQUFHLG9CQUFvQjtJQUV2QixHQUFHLGVBQWU7SUFFbEIsc0NBQXNDO0lBRXRDLG1DQUFtQztJQUVuQyxpQ0FBaUM7SUFFakMsMkJBQTJCO0lBRTNCLHVCQUF1QjtJQUV2QiwwQkFBMEI7SUFFMUIsdUJBQXVCO0lBRXZCLG9DQUFvQztJQUVwQyxvQ0FBb0M7Q0FDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdEV4ZWN1dGlvbiB9IGZyb20gJy4vZ2V0LW5vcm1hbGl6ZWQtZWxlbWVudC1yZWN0JztcbmltcG9ydCB7XG4gIE1vdmVGcm9udEVsZW1lbnRzQmVmb3JlVGFyZ2V0RWxlbWVudCxcbiAgVXBkYXRlSXRlbUFuZENoaWxkcmVuTGF5ZXJzRXhlY3V0aW9uLFxufSBmcm9tICcuL3VwZGF0ZS1pdGVtLWFuZC1jaGlsZHJlbi1sYXllcnMnO1xuaW1wb3J0IHsgR2V0Tm9ybWFsaXplZFBvaW50RXhlY3V0aW9uIH0gZnJvbSAnLi9nZXQtbm9ybWFsaXplZC1wb2ludCc7XG5pbXBvcnQge1xuICBTb3J0SXRlbUxheWVyc0V4ZWN1dGlvbixcbiAgU29ydEl0ZW1zQnlQYXJlbnRFeGVjdXRpb24sXG4gIFNvcnROb2RlTGF5ZXJzRXhlY3V0aW9uLFxufSBmcm9tICcuL3NvcnQtaXRlbS1sYXllcnMnO1xuaW1wb3J0IHsgR2V0RGVlcENoaWxkcmVuTm9kZXNBbmRHcm91cHNFeGVjdXRpb24gfSBmcm9tICcuL2dldC1kZWVwLWNoaWxkcmVuLW5vZGVzLWFuZC1ncm91cHMnO1xuaW1wb3J0IHsgR2V0RWxlbWVudFJvdW5kZWRSZWN0RXhlY3V0aW9uIH0gZnJvbSAnLi9nZXQtZWxlbWVudC1yb3VuZGVkLXJlY3QnO1xuaW1wb3J0IHsgRl9TRUxFQ1RJT05fRkVBVFVSRVMgfSBmcm9tICcuL2Ytc2VsZWN0aW9uJztcbmltcG9ydCB7IEZfQkFDS0dST1VORF9GRUFUVVJFUyB9IGZyb20gJy4vZi1iYWNrZ3JvdW5kJztcbmltcG9ydCB7IEZfQ0FOVkFTX0ZFQVRVUkVTIH0gZnJvbSAnLi9mLWNhbnZhcyc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fRkVBVFVSRVMgfSBmcm9tICcuL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGX0NPTk5FQ1RPUlNfRkVBVFVSRVMgfSBmcm9tICcuL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGX0ZMT1dfRkVBVFVSRVMgfSBmcm9tICcuL2YtZmxvdyc7XG5pbXBvcnQgeyBGX0RSQUdHQUJMRV9GRUFUVVJFUyB9IGZyb20gJy4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRl9OT0RFX0ZFQVRVUkVTIH0gZnJvbSAnLi9mLW5vZGUnO1xuaW1wb3J0IHsgRl9MSU5FX0FMSUdOTUVOVF9GRUFUVVJFUyB9IGZyb20gJy4vZi1saW5lLWFsaWdubWVudCc7XG5pbXBvcnQgeyBGX1pPT01fRkVBVFVSRVMgfSBmcm9tICcuL2Ytem9vbSc7XG5pbXBvcnQgeyBHZXROb3JtYWxpemVkQ29ubmVjdG9yUmVjdEV4ZWN1dGlvbiB9IGZyb20gJy4vZ2V0LW5vcm1hbGl6ZWQtY29ubmVjdG9yLXJlY3QnO1xuXG4vKipcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgY29sbGVjdGlvbiBvZiBjb21tb24gcHJvdmlkZXJzIGZvciB0aGUgRkZsb3cgZG9tYWluLlxuICogSXQgaW5jbHVkZXMgZmVhdHVyZXMgcmVsYXRlZCB0byBjYW52YXMsIGNvbm5lY3Rpb25zLCBiYWNrZ3JvdW5kLCBjb25uZWN0b3JzLFxuICogZHJhZ2dhYmxlIGVsZW1lbnRzLCBmbG93LCBsaW5lIGFsaWdubWVudCwgbm9kZXMsIHNlbGVjdGlvbiwgem9vbSxcbiAqIGFuZCB2YXJpb3VzIHV0aWxpdHkgZXhlY3V0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IENPTU1PTl9QUk9WSURFUlMgPSBbXG4gIC4uLkZfQ0FOVkFTX0ZFQVRVUkVTLFxuXG4gIC4uLkZfQ09OTkVDVElPTl9GRUFUVVJFUyxcblxuICAuLi5GX0JBQ0tHUk9VTkRfRkVBVFVSRVMsXG5cbiAgLi4uRl9DT05ORUNUT1JTX0ZFQVRVUkVTLFxuXG4gIC4uLkZfRFJBR0dBQkxFX0ZFQVRVUkVTLFxuXG4gIC4uLkZfRkxPV19GRUFUVVJFUyxcblxuICAuLi5GX0xJTkVfQUxJR05NRU5UX0ZFQVRVUkVTLFxuXG4gIC4uLkZfTk9ERV9GRUFUVVJFUyxcblxuICBHZXRFbGVtZW50Um91bmRlZFJlY3RFeGVjdXRpb24sXG5cbiAgLi4uRl9TRUxFQ1RJT05fRkVBVFVSRVMsXG5cbiAgLi4uRl9aT09NX0ZFQVRVUkVTLFxuXG4gIEdldERlZXBDaGlsZHJlbk5vZGVzQW5kR3JvdXBzRXhlY3V0aW9uLFxuXG4gIEdldE5vcm1hbGl6ZWRDb25uZWN0b3JSZWN0RXhlY3V0aW9uLFxuXG4gIEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdEV4ZWN1dGlvbixcblxuICBHZXROb3JtYWxpemVkUG9pbnRFeGVjdXRpb24sXG5cbiAgU29ydEl0ZW1MYXllcnNFeGVjdXRpb24sXG5cbiAgU29ydEl0ZW1zQnlQYXJlbnRFeGVjdXRpb24sXG5cbiAgU29ydE5vZGVMYXllcnNFeGVjdXRpb24sXG5cbiAgVXBkYXRlSXRlbUFuZENoaWxkcmVuTGF5ZXJzRXhlY3V0aW9uLFxuXG4gIE1vdmVGcm9udEVsZW1lbnRzQmVmb3JlVGFyZ2V0RWxlbWVudCxcbl07XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './move-front-elements-before-target-element
|
|
2
|
-
export * from './move-front-elements-before-target-element
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './move-front-elements-before-target-element';
|
|
2
|
+
export * from './move-front-elements-before-target-element-request';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi91cGRhdGUtaXRlbS1hbmQtY2hpbGRyZW4tbGF5ZXJzL21vdmUtZnJvbnQtZWxlbWVudHMtYmVmb3JlLXRhcmdldC1lbGVtZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsY0FBYyxxREFBcUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vdmUtZnJvbnQtZWxlbWVudHMtYmVmb3JlLXRhcmdldC1lbGVtZW50LXJlcXVlc3QnO1xuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class MoveFrontElementsBeforeTargetElementRequest {
|
|
2
|
+
fItemsContainer;
|
|
3
|
+
allElements;
|
|
4
|
+
elementsThatShouldBeInFront;
|
|
5
|
+
targetIndex;
|
|
6
|
+
static fToken = Symbol('MoveFrontElementsBeforeTargetElementRequest');
|
|
7
|
+
constructor(fItemsContainer, // fGroupsContainer || fNodesContainer || fConnectionsContainer
|
|
8
|
+
allElements, elementsThatShouldBeInFront, targetIndex) {
|
|
9
|
+
this.fItemsContainer = fItemsContainer;
|
|
10
|
+
this.allElements = allElements;
|
|
11
|
+
this.elementsThatShouldBeInFront = elementsThatShouldBeInFront;
|
|
12
|
+
this.targetIndex = targetIndex;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL3VwZGF0ZS1pdGVtLWFuZC1jaGlsZHJlbi1sYXllcnMvbW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQvbW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQtcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sMkNBQTJDO0lBR3BDO0lBQ0E7SUFDQTtJQUNBO0lBTGxCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsTUFBTSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDL0UsWUFDa0IsZUFBNEIsRUFBRSwrREFBK0Q7SUFDN0YsV0FBc0IsRUFDdEIsMkJBQXNDLEVBQ3RDLFdBQW1CO1FBSG5CLG9CQUFlLEdBQWYsZUFBZSxDQUFhO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO1FBQ3RCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBVztRQUN0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIE1vdmVGcm9udEVsZW1lbnRzQmVmb3JlVGFyZ2V0RWxlbWVudFJlcXVlc3Qge1xuICBzdGF0aWMgcmVhZG9ubHkgZlRva2VuID0gU3ltYm9sKCdNb3ZlRnJvbnRFbGVtZW50c0JlZm9yZVRhcmdldEVsZW1lbnRSZXF1ZXN0Jyk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBmSXRlbXNDb250YWluZXI6IEhUTUxFbGVtZW50LCAvLyBmR3JvdXBzQ29udGFpbmVyIHx8IGZOb2Rlc0NvbnRhaW5lciB8fCBmQ29ubmVjdGlvbnNDb250YWluZXJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWxsRWxlbWVudHM6IEVsZW1lbnRbXSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudHNUaGF0U2hvdWxkQmVJbkZyb250OiBFbGVtZW50W10sXG4gICAgcHVibGljIHJlYWRvbmx5IHRhcmdldEluZGV4OiBudW1iZXIsXG4gICkge31cbn1cbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { MoveFrontElementsBeforeTargetElementRequest } from './move-front-elements-before-target-element-request';
|
|
3
|
+
import { Injectable } from '@angular/core';
|
|
4
|
+
import { FExecutionRegister } from '@foblex/mediator';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Execution that moves elements in the FItemsContainer before a target element.
|
|
8
|
+
* It removes elements that should not be in front and inserts them before the target element.
|
|
9
|
+
*/
|
|
10
|
+
let MoveFrontElementsBeforeTargetElement = class MoveFrontElementsBeforeTargetElement {
|
|
11
|
+
handle(request) {
|
|
12
|
+
const elementsToMove = [];
|
|
13
|
+
for (let i = request.targetIndex + 1; i < request.allElements.length; i++) {
|
|
14
|
+
const element = request.allElements[i];
|
|
15
|
+
if (!request.elementsThatShouldBeInFront.includes(element)) {
|
|
16
|
+
elementsToMove.push(element);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
elementsToMove.forEach((x) => {
|
|
20
|
+
request.fItemsContainer.removeChild(x);
|
|
21
|
+
request.fItemsContainer.insertBefore(x, request.allElements[request.targetIndex]);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MoveFrontElementsBeforeTargetElement, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MoveFrontElementsBeforeTargetElement });
|
|
26
|
+
};
|
|
27
|
+
MoveFrontElementsBeforeTargetElement = __decorate([
|
|
28
|
+
FExecutionRegister(MoveFrontElementsBeforeTargetElementRequest)
|
|
29
|
+
], MoveFrontElementsBeforeTargetElement);
|
|
30
|
+
export { MoveFrontElementsBeforeTargetElement };
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MoveFrontElementsBeforeTargetElement, decorators: [{
|
|
32
|
+
type: Injectable
|
|
33
|
+
}] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi91cGRhdGUtaXRlbS1hbmQtY2hpbGRyZW4tbGF5ZXJzL21vdmUtZnJvbnQtZWxlbWVudHMtYmVmb3JlLXRhcmdldC1lbGVtZW50L21vdmUtZnJvbnQtZWxlbWVudHMtYmVmb3JlLXRhcmdldC1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNsSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDOztBQUVsRTs7O0dBR0c7QUFHSSxJQUFNLG9DQUFvQyxHQUExQyxNQUFNLG9DQUFvQztJQUd4QyxNQUFNLENBQUMsT0FBb0Q7UUFDaEUsTUFBTSxjQUFjLEdBQWMsRUFBRSxDQUFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUMzRCxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDSCxDQUFDO1FBQ0QsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0FmVSxvQ0FBb0M7NEdBQXBDLG9DQUFvQzs7QUFBcEMsb0NBQW9DO0lBRGhELGtCQUFrQixDQUFDLDJDQUEyQyxDQUFDO0dBQ25ELG9DQUFvQyxDQWdCaEQ7OzRGQWhCWSxvQ0FBb0M7a0JBRmhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb3ZlRnJvbnRFbGVtZW50c0JlZm9yZVRhcmdldEVsZW1lbnRSZXF1ZXN0IH0gZnJvbSAnLi9tb3ZlLWZyb250LWVsZW1lbnRzLWJlZm9yZS10YXJnZXQtZWxlbWVudC1yZXF1ZXN0JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuXG4vKipcbiAqIEV4ZWN1dGlvbiB0aGF0IG1vdmVzIGVsZW1lbnRzIGluIHRoZSBGSXRlbXNDb250YWluZXIgYmVmb3JlIGEgdGFyZ2V0IGVsZW1lbnQuXG4gKiBJdCByZW1vdmVzIGVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBiZSBpbiBmcm9udCBhbmQgaW5zZXJ0cyB0aGVtIGJlZm9yZSB0aGUgdGFyZ2V0IGVsZW1lbnQuXG4gKi9cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoTW92ZUZyb250RWxlbWVudHNCZWZvcmVUYXJnZXRFbGVtZW50UmVxdWVzdClcbmV4cG9ydCBjbGFzcyBNb3ZlRnJvbnRFbGVtZW50c0JlZm9yZVRhcmdldEVsZW1lbnRcbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPE1vdmVGcm9udEVsZW1lbnRzQmVmb3JlVGFyZ2V0RWxlbWVudFJlcXVlc3QsIHZvaWQ+XG57XG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogTW92ZUZyb250RWxlbWVudHNCZWZvcmVUYXJnZXRFbGVtZW50UmVxdWVzdCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRzVG9Nb3ZlOiBFbGVtZW50W10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gcmVxdWVzdC50YXJnZXRJbmRleCArIDE7IGkgPCByZXF1ZXN0LmFsbEVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gcmVxdWVzdC5hbGxFbGVtZW50c1tpXTtcbiAgICAgIGlmICghcmVxdWVzdC5lbGVtZW50c1RoYXRTaG91bGRCZUluRnJvbnQuaW5jbHVkZXMoZWxlbWVudCkpIHtcbiAgICAgICAgZWxlbWVudHNUb01vdmUucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxlbWVudHNUb01vdmUuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgcmVxdWVzdC5mSXRlbXNDb250YWluZXIucmVtb3ZlQ2hpbGQoeCk7XG4gICAgICByZXF1ZXN0LmZJdGVtc0NvbnRhaW5lci5pbnNlcnRCZWZvcmUoeCwgcmVxdWVzdC5hbGxFbGVtZW50c1tyZXF1ZXN0LnRhcmdldEluZGV4XSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,201 @@
|
|
|
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,6 +1,7 @@
|
|
|
1
1
|
export * from './calculate-center-between-points';
|
|
2
2
|
export * from './calculate-connection-center';
|
|
3
|
+
export * from './adaptive-curve-builder';
|
|
3
4
|
export * from './f-bezier.path-builder';
|
|
4
5
|
export * from './f-segment.path-builder';
|
|
5
6
|
export * from './f-straight.path-builder';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY2VudGVyLWJldHdlZW4tcG9pbnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2FkYXB0aXZlLWN1cnZlLWJ1aWxkZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtYmV6aWVyLnBhdGgtYnVpbGRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zZWdtZW50LnBhdGgtYnVpbGRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zdHJhaWdodC5wYXRoLWJ1aWxkZXInO1xuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export var EFConnectionConnectableSide;
|
|
2
|
+
(function (EFConnectionConnectableSide) {
|
|
3
|
+
EFConnectionConnectableSide["DEFAULT"] = "default";
|
|
4
|
+
EFConnectionConnectableSide["TOP"] = "top";
|
|
5
|
+
EFConnectionConnectableSide["BOTTOM"] = "bottom";
|
|
6
|
+
EFConnectionConnectableSide["LEFT"] = "left";
|
|
7
|
+
EFConnectionConnectableSide["RIGHT"] = "right";
|
|
8
|
+
EFConnectionConnectableSide["CALCULATE"] = "calculate";
|
|
9
|
+
EFConnectionConnectableSide["CALCULATE_HORIZONTAL"] = "calculate_horizontal";
|
|
10
|
+
EFConnectionConnectableSide["CALCULATE_VERTICAL"] = "calculate_vertical";
|
|
11
|
+
})(EFConnectionConnectableSide || (EFConnectionConnectableSide = {}));
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1mLWNvbm5lY3Rpb24tY29ubmVjdGFibGUtc2lkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9lLWYtY29ubmVjdGlvbi1jb25uZWN0YWJsZS1zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLDJCQWdCWDtBQWhCRCxXQUFZLDJCQUEyQjtJQUNyQyxrREFBbUIsQ0FBQTtJQUVuQiwwQ0FBVyxDQUFBO0lBRVgsZ0RBQWlCLENBQUE7SUFFakIsNENBQWEsQ0FBQTtJQUViLDhDQUFlLENBQUE7SUFFZixzREFBdUIsQ0FBQTtJQUV2Qiw0RUFBNkMsQ0FBQTtJQUU3Qyx3RUFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBaEJXLDJCQUEyQixLQUEzQiwyQkFBMkIsUUFnQnRDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlIHtcbiAgREVGQVVMVCA9ICdkZWZhdWx0JyxcblxuICBUT1AgPSAndG9wJyxcblxuICBCT1RUT00gPSAnYm90dG9tJyxcblxuICBMRUZUID0gJ2xlZnQnLFxuXG4gIFJJR0hUID0gJ3JpZ2h0JyxcblxuICBDQUxDVUxBVEUgPSAnY2FsY3VsYXRlJyxcblxuICBDQUxDVUxBVEVfSE9SSVpPTlRBTCA9ICdjYWxjdWxhdGVfaG9yaXpvbnRhbCcsXG5cbiAgQ0FMQ1VMQVRFX1ZFUlRJQ0FMID0gJ2NhbGN1bGF0ZV92ZXJ0aWNhbCcsXG59XG4iXX0=
|
|
@@ -3,5 +3,6 @@ export var EFConnectionType;
|
|
|
3
3
|
EFConnectionType["SEGMENT"] = "segment";
|
|
4
4
|
EFConnectionType["STRAIGHT"] = "straight";
|
|
5
5
|
EFConnectionType["BEZIER"] = "bezier";
|
|
6
|
+
EFConnectionType["ADAPTIVE_CURVE"] = "adaptive-curve";
|
|
6
7
|
})(EFConnectionType || (EFConnectionType = {}));
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1mLWNvbm5lY3Rpb24tdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9lLWYtY29ubmVjdGlvbi10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQVFYO0FBUkQsV0FBWSxnQkFBZ0I7SUFDMUIsdUNBQW1CLENBQUE7SUFFbkIseUNBQXFCLENBQUE7SUFFckIscUNBQWlCLENBQUE7SUFFakIscURBQWlDLENBQUE7QUFDbkMsQ0FBQyxFQVJXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFRM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFRkNvbm5lY3Rpb25UeXBlIHtcbiAgU0VHTUVOVCA9ICdzZWdtZW50JyxcblxuICBTVFJBSUdIVCA9ICdzdHJhaWdodCcsXG5cbiAgQkVaSUVSID0gJ2JlemllcicsXG5cbiAgQURBUFRJVkVfQ1VSVkUgPSAnYWRhcHRpdmUtY3VydmUnLFxufVxuIl19
|