@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
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
4
|
+
import { CalculateConnectableSideByConnectedPositionsRequest } from './calculate-connectable-side-by-connected-positions-request';
|
|
5
|
+
import { determineSide } from '../utils';
|
|
6
|
+
import { CALCULATABLE_SIDES } from '../constants';
|
|
7
|
+
import { GetNormalizedElementRectRequest } from '../../../get-normalized-element-rect';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Execution that calculates the connectable side for a connector
|
|
11
|
+
* based on positions of connected connectors and allowed sides.
|
|
12
|
+
*/
|
|
13
|
+
let CalculateConnectableSideByConnectedPositions = class CalculateConnectableSideByConnectedPositions {
|
|
14
|
+
_mediator = inject(FMediator);
|
|
15
|
+
/**
|
|
16
|
+
* Entry point (hot path). Avoids intermediate arrays and redundant allocations.
|
|
17
|
+
*
|
|
18
|
+
* @param request - Contains the connector and optionally allowed sides.
|
|
19
|
+
* @returns {EFConnectableSide} - The chosen connectable side.
|
|
20
|
+
*/
|
|
21
|
+
handle({ connector, pointerPosition, }) {
|
|
22
|
+
const mode = connector.userFConnectableSide;
|
|
23
|
+
const selfCenter = this._getConnectorRect(connector.hostElement).gravityCenter;
|
|
24
|
+
const acc = this._accumulateConnectedCenters(connector.hostElement, connector.toConnector, pointerPosition);
|
|
25
|
+
const avgX = acc.sumX / acc.count;
|
|
26
|
+
const avgY = acc.sumY / acc.count;
|
|
27
|
+
return determineSide(selfCenter.x, selfCenter.y, avgX, avgY, CALCULATABLE_SIDES[mode]);
|
|
28
|
+
}
|
|
29
|
+
_accumulateConnectedCenters(selfHost, connected, pointerPosition) {
|
|
30
|
+
let sumX = pointerPosition?.x || 0;
|
|
31
|
+
let sumY = pointerPosition?.y || 0;
|
|
32
|
+
let count = pointerPosition ? 1 : 0;
|
|
33
|
+
if (connected && connected.length) {
|
|
34
|
+
for (let i = 0; i < connected.length; i++) {
|
|
35
|
+
const el = connected[i].hostElement;
|
|
36
|
+
if (el === selfHost)
|
|
37
|
+
continue;
|
|
38
|
+
const c = this._getConnectorRect(el).gravityCenter;
|
|
39
|
+
sumX += c.x;
|
|
40
|
+
sumY += c.y;
|
|
41
|
+
count++;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return { sumX, sumY, count };
|
|
45
|
+
}
|
|
46
|
+
_getConnectorRect(element) {
|
|
47
|
+
return this._mediator.execute(new GetNormalizedElementRectRequest(element));
|
|
48
|
+
}
|
|
49
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByConnectedPositions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
50
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByConnectedPositions });
|
|
51
|
+
};
|
|
52
|
+
CalculateConnectableSideByConnectedPositions = __decorate([
|
|
53
|
+
FExecutionRegister(CalculateConnectableSideByConnectedPositionsRequest)
|
|
54
|
+
], CalculateConnectableSideByConnectedPositions);
|
|
55
|
+
export { CalculateConnectableSideByConnectedPositions };
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByConnectedPositions, decorators: [{
|
|
57
|
+
type: Injectable
|
|
58
|
+
}] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1jb25uZWN0ZWQtcG9zaXRpb25zL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbURBQW1ELEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUdsSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVsRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFFdkY7OztHQUdHO0FBR0ksSUFBTSw0Q0FBNEMsR0FBbEQsTUFBTSw0Q0FBNEM7SUFHdEMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxFQUNaLFNBQVMsRUFDVCxlQUFlLEdBQ3FDO1FBQ3BELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxvQkFBc0MsQ0FBQztRQUM5RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMvRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQzFDLFNBQVMsQ0FBQyxXQUFXLEVBQ3JCLFNBQVMsQ0FBQyxXQUFXLEVBQ3JCLGVBQWUsQ0FDaEIsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUNsQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFFbEMsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRU8sMkJBQTJCLENBQ2pDLFFBQWtDLEVBQ2xDLFNBQThDLEVBQzlDLGVBQW1DO1FBRW5DLElBQUksSUFBSSxHQUFHLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxHQUFHLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7Z0JBQ3BDLElBQUksRUFBRSxLQUFLLFFBQVE7b0JBQUUsU0FBUztnQkFFOUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztnQkFDbkQsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osS0FBSyxFQUFFLENBQUM7WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxPQUFpQztRQUN6RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFlLElBQUksK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDO3dHQXZEVSw0Q0FBNEM7NEdBQTVDLDRDQUE0Qzs7QUFBNUMsNENBQTRDO0lBRHhELGtCQUFrQixDQUFDLG1EQUFtRCxDQUFDO0dBQzNELDRDQUE0QyxDQXdEeEQ7OzRGQXhEWSw0Q0FBNEM7a0JBRnhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QgfSBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMtcmVxdWVzdCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSwgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgSVBvaW50LCBJUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IGRldGVybWluZVNpZGUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBDQUxDVUxBVEFCTEVfU0lERVMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVENhbGN1bGF0ZU1vZGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2dldC1ub3JtYWxpemVkLWVsZW1lbnQtcmVjdCc7XG5cbi8qKlxuICogRXhlY3V0aW9uIHRoYXQgY2FsY3VsYXRlcyB0aGUgY29ubmVjdGFibGUgc2lkZSBmb3IgYSBjb25uZWN0b3JcbiAqIGJhc2VkIG9uIHBvc2l0aW9ucyBvZiBjb25uZWN0ZWQgY29ubmVjdG9ycyBhbmQgYWxsb3dlZCBzaWRlcy5cbiAqL1xuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QpXG5leHBvcnQgY2xhc3MgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlDb25uZWN0ZWRQb3NpdGlvbnNcbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zUmVxdWVzdCwgRUZDb25uZWN0YWJsZVNpZGU+XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgLyoqXG4gICAqIEVudHJ5IHBvaW50IChob3QgcGF0aCkuIEF2b2lkcyBpbnRlcm1lZGlhdGUgYXJyYXlzIGFuZCByZWR1bmRhbnQgYWxsb2NhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0IC0gQ29udGFpbnMgdGhlIGNvbm5lY3RvciBhbmQgb3B0aW9uYWxseSBhbGxvd2VkIHNpZGVzLlxuICAgKiBAcmV0dXJucyB7RUZDb25uZWN0YWJsZVNpZGV9IC0gVGhlIGNob3NlbiBjb25uZWN0YWJsZSBzaWRlLlxuICAgKi9cbiAgcHVibGljIGhhbmRsZSh7XG4gICAgY29ubmVjdG9yLFxuICAgIHBvaW50ZXJQb3NpdGlvbixcbiAgfTogQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlDb25uZWN0ZWRQb3NpdGlvbnNSZXF1ZXN0KTogRUZDb25uZWN0YWJsZVNpZGUge1xuICAgIGNvbnN0IG1vZGUgPSBjb25uZWN0b3IudXNlckZDb25uZWN0YWJsZVNpZGUgYXMgVENhbGN1bGF0ZU1vZGU7XG4gICAgY29uc3Qgc2VsZkNlbnRlciA9IHRoaXMuX2dldENvbm5lY3RvclJlY3QoY29ubmVjdG9yLmhvc3RFbGVtZW50KS5ncmF2aXR5Q2VudGVyO1xuICAgIGNvbnN0IGFjYyA9IHRoaXMuX2FjY3VtdWxhdGVDb25uZWN0ZWRDZW50ZXJzKFxuICAgICAgY29ubmVjdG9yLmhvc3RFbGVtZW50LFxuICAgICAgY29ubmVjdG9yLnRvQ29ubmVjdG9yLFxuICAgICAgcG9pbnRlclBvc2l0aW9uLFxuICAgICk7XG5cbiAgICBjb25zdCBhdmdYID0gYWNjLnN1bVggLyBhY2MuY291bnQ7XG4gICAgY29uc3QgYXZnWSA9IGFjYy5zdW1ZIC8gYWNjLmNvdW50O1xuXG4gICAgcmV0dXJuIGRldGVybWluZVNpZGUoc2VsZkNlbnRlci54LCBzZWxmQ2VudGVyLnksIGF2Z1gsIGF2Z1ksIENBTENVTEFUQUJMRV9TSURFU1ttb2RlXSk7XG4gIH1cblxuICBwcml2YXRlIF9hY2N1bXVsYXRlQ29ubmVjdGVkQ2VudGVycyhcbiAgICBzZWxmSG9zdDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50LFxuICAgIGNvbm5lY3RlZDogRkNvbm5lY3RvckJhc2VbXSB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgcG9pbnRlclBvc2l0aW9uOiBJUG9pbnQgfCB1bmRlZmluZWQsXG4gICk6IHsgc3VtWDogbnVtYmVyOyBzdW1ZOiBudW1iZXI7IGNvdW50OiBudW1iZXIgfSB7XG4gICAgbGV0IHN1bVggPSBwb2ludGVyUG9zaXRpb24/LnggfHwgMDtcbiAgICBsZXQgc3VtWSA9IHBvaW50ZXJQb3NpdGlvbj8ueSB8fCAwO1xuICAgIGxldCBjb3VudCA9IHBvaW50ZXJQb3NpdGlvbiA/IDEgOiAwO1xuXG4gICAgaWYgKGNvbm5lY3RlZCAmJiBjb25uZWN0ZWQubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbm5lY3RlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBlbCA9IGNvbm5lY3RlZFtpXS5ob3N0RWxlbWVudDtcbiAgICAgICAgaWYgKGVsID09PSBzZWxmSG9zdCkgY29udGludWU7XG5cbiAgICAgICAgY29uc3QgYyA9IHRoaXMuX2dldENvbm5lY3RvclJlY3QoZWwpLmdyYXZpdHlDZW50ZXI7XG4gICAgICAgIHN1bVggKz0gYy54O1xuICAgICAgICBzdW1ZICs9IGMueTtcbiAgICAgICAgY291bnQrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBzdW1YLCBzdW1ZLCBjb3VudCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29ubmVjdG9yUmVjdChlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBJUm91bmRlZFJlY3Qge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElSb3VuZGVkUmVjdD4obmV3IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QoZWxlbWVudCkpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './calculate-connectable-side-by-connected-positions';
|
|
2
|
+
export * from './calculate-connectable-side-by-connected-positions-request';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFEQUFxRCxDQUFDO0FBRXBFLGNBQWMsNkRBQTZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMtcmVxdWVzdCc7XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export class CalculateConnectableSideByInternalPositionRequest {
|
|
2
|
+
connector;
|
|
3
|
+
static fToken = Symbol('CalculateConnectableSideByInternalPositionRequest');
|
|
4
|
+
constructor(connector) {
|
|
5
|
+
this.connector = connector;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24tcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1pbnRlcm5hbC1wb3NpdGlvbi9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1pbnRlcm5hbC1wb3NpdGlvbi1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpREFBaUQ7SUFFaEM7SUFENUIsTUFBTSxDQUFVLE1BQU0sR0FBRyxNQUFNLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUNyRixZQUE0QixTQUF5QjtRQUF6QixjQUFTLEdBQVQsU0FBUyxDQUFnQjtJQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUludGVybmFsUG9zaXRpb25SZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCcpO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSkge31cbn1cbiJdfQ==
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable, InjectionToken, inject } from '@angular/core';
|
|
3
|
+
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
4
|
+
import { CalculateConnectableSideByInternalPositionRequest } from './calculate-connectable-side-by-internal-position-request';
|
|
5
|
+
import { EFConnectableSide } from '../../../../f-connectors';
|
|
6
|
+
import { RectExtensions } from '@foblex/2d';
|
|
7
|
+
import { IsDragStartedRequest } from '../../../f-draggable';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Injection token for configuring the side detection tolerance (in pixels).
|
|
11
|
+
* A new side must beat the previous side by more than this value to switch.
|
|
12
|
+
*/
|
|
13
|
+
export const CONNECTABLE_SIDE_EPSILON = new InjectionToken('CONNECTABLE_SIDE_EPSILON');
|
|
14
|
+
/**
|
|
15
|
+
* Calculates the connectable side of a connector relative to its node host.
|
|
16
|
+
*
|
|
17
|
+
* Optimizations & behavior:
|
|
18
|
+
* - Hysteresis via epsilon to avoid jitter near boundaries.
|
|
19
|
+
* - Per-connector memoization using WeakMap (no leaks).
|
|
20
|
+
* - During drag (isDragging === true) the last memorized side is returned immediately
|
|
21
|
+
* for maximum stability and performance; a safe fallback computes it if missing.
|
|
22
|
+
*/
|
|
23
|
+
let CalculateConnectableSideByInternalPosition = class CalculateConnectableSideByInternalPosition {
|
|
24
|
+
_mediator = inject(FMediator);
|
|
25
|
+
/**
|
|
26
|
+
* Stores the last computed side per connector.
|
|
27
|
+
* WeakMap ensures entries are garbage-collected with the connector objects.
|
|
28
|
+
*/
|
|
29
|
+
_lastSide = new WeakMap();
|
|
30
|
+
/** Pixel threshold to prevent side switching unless the new side is sufficiently better. */
|
|
31
|
+
_epsilon = Math.max(0, inject(CONNECTABLE_SIDE_EPSILON, { optional: true }) ?? 2);
|
|
32
|
+
/**
|
|
33
|
+
* Entry point: returns the connectable side for a given connector.
|
|
34
|
+
* If a drag is in progress, returns the last memorized side for stability.
|
|
35
|
+
*/
|
|
36
|
+
handle({ connector, }) {
|
|
37
|
+
// Fast path during drag: use memorized side (guaranteed to be present by caller’s contract).
|
|
38
|
+
if (this._isDragging()) {
|
|
39
|
+
const cached = this._lastSide.get(connector);
|
|
40
|
+
if (cached !== undefined)
|
|
41
|
+
return cached;
|
|
42
|
+
// Safe fallback: compute once and cache.
|
|
43
|
+
const computed = this._getSideByDelta(connector.hostElement, connector.fNodeHost, connector);
|
|
44
|
+
this._lastSide.set(connector, computed);
|
|
45
|
+
return computed;
|
|
46
|
+
}
|
|
47
|
+
// Normal path: compute with hysteresis, then remember.
|
|
48
|
+
const side = this._getSideByDelta(connector.hostElement, connector.fNodeHost, connector);
|
|
49
|
+
this._lastSide.set(connector, side);
|
|
50
|
+
return side;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Determines the side of the connector relative to the node host by
|
|
54
|
+
* comparing distances from the connector's gravity center to each host edge.
|
|
55
|
+
*
|
|
56
|
+
* Hysteresis rule:
|
|
57
|
+
* If the previously chosen side is within `epsilon` pixels of the new best side,
|
|
58
|
+
* keep the previous side to avoid flicker.
|
|
59
|
+
*
|
|
60
|
+
* @param connectorHost - The connector element (HTML or SVG).
|
|
61
|
+
* @param nodeHost - The parent node element (HTML or SVG).
|
|
62
|
+
* @param connectorKey - The connector object, used as WeakMap key.
|
|
63
|
+
* @returns The most stable connectable side.
|
|
64
|
+
*/
|
|
65
|
+
_getSideByDelta(connectorHost, nodeHost, connectorKey) {
|
|
66
|
+
const childRect = RectExtensions.fromElement(connectorHost);
|
|
67
|
+
const parentRect = nodeHost.getBoundingClientRect();
|
|
68
|
+
const cx = childRect.gravityCenter.x;
|
|
69
|
+
const cy = childRect.gravityCenter.y;
|
|
70
|
+
const deltaLeft = cx - parentRect.left;
|
|
71
|
+
const deltaRight = parentRect.right - cx;
|
|
72
|
+
const deltaTop = cy - parentRect.top;
|
|
73
|
+
const deltaBottom = parentRect.bottom - cy;
|
|
74
|
+
// Determine best side (min delta) in one pass
|
|
75
|
+
let minIdx = 0;
|
|
76
|
+
let minVal = deltaLeft;
|
|
77
|
+
// i=1..3 correspond to Right, Top, Bottom respectively
|
|
78
|
+
const candidates = [deltaLeft, deltaRight, deltaTop, deltaBottom];
|
|
79
|
+
for (let i = 1; i < 4; i++) {
|
|
80
|
+
const v = candidates[i];
|
|
81
|
+
if (v < minVal) {
|
|
82
|
+
minVal = v;
|
|
83
|
+
minIdx = i;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
let candidate = minIdx === 0
|
|
87
|
+
? EFConnectableSide.LEFT
|
|
88
|
+
: minIdx === 1
|
|
89
|
+
? EFConnectableSide.RIGHT
|
|
90
|
+
: minIdx === 2
|
|
91
|
+
? EFConnectableSide.TOP
|
|
92
|
+
: EFConnectableSide.BOTTOM;
|
|
93
|
+
// Hysteresis: prefer previously chosen side if it's almost as good
|
|
94
|
+
const prev = this._lastSide.get(connectorKey);
|
|
95
|
+
if (prev !== undefined && prev !== candidate) {
|
|
96
|
+
const prevIdx = prev === EFConnectableSide.LEFT
|
|
97
|
+
? 0
|
|
98
|
+
: prev === EFConnectableSide.RIGHT
|
|
99
|
+
? 1
|
|
100
|
+
: prev === EFConnectableSide.TOP
|
|
101
|
+
? 2
|
|
102
|
+
: 3;
|
|
103
|
+
const prevDelta = prevIdx === 0
|
|
104
|
+
? deltaLeft
|
|
105
|
+
: prevIdx === 1
|
|
106
|
+
? deltaRight
|
|
107
|
+
: prevIdx === 2
|
|
108
|
+
? deltaTop
|
|
109
|
+
: deltaBottom;
|
|
110
|
+
// How much better the new side is (smaller is better)
|
|
111
|
+
const advantage = prevDelta - minVal;
|
|
112
|
+
if (advantage <= this._epsilon) {
|
|
113
|
+
candidate = prev;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return candidate;
|
|
117
|
+
}
|
|
118
|
+
/** Returns true if a drag operation is currently active. */
|
|
119
|
+
_isDragging() {
|
|
120
|
+
return this._mediator.execute(new IsDragStartedRequest());
|
|
121
|
+
}
|
|
122
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByInternalPosition, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
123
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByInternalPosition });
|
|
124
|
+
};
|
|
125
|
+
CalculateConnectableSideByInternalPosition = __decorate([
|
|
126
|
+
FExecutionRegister(CalculateConnectableSideByInternalPositionRequest)
|
|
127
|
+
], CalculateConnectableSideByInternalPosition);
|
|
128
|
+
export { CalculateConnectableSideByInternalPosition };
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByInternalPosition, decorators: [{
|
|
130
|
+
type: Injectable
|
|
131
|
+
}] });
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlEQUFpRCxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDOUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLENBQUMsQ0FBQztBQUUvRjs7Ozs7Ozs7R0FRRztBQUdJLElBQU0sMENBQTBDLEdBQWhELE1BQU0sMENBQTBDO0lBR3BDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0M7OztPQUdHO0lBQ2MsU0FBUyxHQUFHLElBQUksT0FBTyxFQUE2QixDQUFDO0lBRXRFLDRGQUE0RjtJQUMzRSxRQUFRLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FDMUMsQ0FBQyxFQUNELE1BQU0sQ0FB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QWpJWSwwQ0FBMEM7a0JBRnRELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24tcmVxdWVzdCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSXNEcmFnU3RhcnRlZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZSc7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBjb25maWd1cmluZyB0aGUgc2lkZSBkZXRlY3Rpb24gdG9sZXJhbmNlIChpbiBwaXhlbHMpLlxuICogQSBuZXcgc2lkZSBtdXN0IGJlYXQgdGhlIHByZXZpb3VzIHNpZGUgYnkgbW9yZSB0aGFuIHRoaXMgdmFsdWUgdG8gc3dpdGNoLlxuICovXG5leHBvcnQgY29uc3QgQ09OTkVDVEFCTEVfU0lERV9FUFNJTE9OID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oJ0NPTk5FQ1RBQkxFX1NJREVfRVBTSUxPTicpO1xuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGNvbm5lY3RhYmxlIHNpZGUgb2YgYSBjb25uZWN0b3IgcmVsYXRpdmUgdG8gaXRzIG5vZGUgaG9zdC5cbiAqXG4gKiBPcHRpbWl6YXRpb25zICYgYmVoYXZpb3I6XG4gKiAtIEh5c3RlcmVzaXMgdmlhIGVwc2lsb24gdG8gYXZvaWQgaml0dGVyIG5lYXIgYm91bmRhcmllcy5cbiAqIC0gUGVyLWNvbm5lY3RvciBtZW1vaXphdGlvbiB1c2luZyBXZWFrTWFwIChubyBsZWFrcykuXG4gKiAtIER1cmluZyBkcmFnIChpc0RyYWdnaW5nID09PSB0cnVlKSB0aGUgbGFzdCBtZW1vcml6ZWQgc2lkZSBpcyByZXR1cm5lZCBpbW1lZGlhdGVseVxuICogICBmb3IgbWF4aW11bSBzdGFiaWxpdHkgYW5kIHBlcmZvcm1hbmNlOyBhIHNhZmUgZmFsbGJhY2sgY29tcHV0ZXMgaXQgaWYgbWlzc2luZy5cbiAqL1xuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUludGVybmFsUG9zaXRpb25SZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5SW50ZXJuYWxQb3NpdGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248Q2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCwgRUZDb25uZWN0YWJsZVNpZGU+XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgbGFzdCBjb21wdXRlZCBzaWRlIHBlciBjb25uZWN0b3IuXG4gICAqIFdlYWtNYXAgZW5zdXJlcyBlbnRyaWVzIGFyZSBnYXJiYWdlLWNvbGxlY3RlZCB3aXRoIHRoZSBjb25uZWN0b3Igb2JqZWN0cy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhc3RTaWRlID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBFRkNvbm5lY3RhYmxlU2lkZT4oKTtcblxuICAvKiogUGl4ZWwgdGhyZXNob2xkIHRvIHByZXZlbnQgc2lkZSBzd2l0Y2hpbmcgdW5sZXNzIHRoZSBuZXcgc2lkZSBpcyBzdWZmaWNpZW50bHkgYmV0dGVyLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9lcHNpbG9uOiBudW1iZXIgPSBNYXRoLm1heChcbiAgICAwLFxuICAgIGluamVjdChDT05ORUNUQUJMRV9TSURFX0VQU0lMT04sIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gMixcbiAgKTtcblxuICAvKipcbiAgICogRW50cnkgcG9pbnQ6IHJldHVybnMgdGhlIGNvbm5lY3RhYmxlIHNpZGUgZm9yIGEgZ2l2ZW4gY29ubmVjdG9yLlxuICAgKiBJZiBhIGRyYWcgaXMgaW4gcHJvZ3Jlc3MsIHJldHVybnMgdGhlIGxhc3QgbWVtb3JpemVkIHNpZGUgZm9yIHN0YWJpbGl0eS5cbiAgICovXG4gIHB1YmxpYyBoYW5kbGUoe1xuICAgIGNvbm5lY3RvcixcbiAgfTogQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCk6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgICAvLyBGYXN0IHBhdGggZHVyaW5nIGRyYWc6IHVzZSBtZW1vcml6ZWQgc2lkZSAoZ3VhcmFudGVlZCB0byBiZSBwcmVzZW50IGJ5IGNhbGxlcuKAmXMgY29udHJhY3QpLlxuICAgIGlmICh0aGlzLl9pc0RyYWdnaW5nKCkpIHtcbiAgICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuX2xhc3RTaWRlLmdldChjb25uZWN0b3IpO1xuICAgICAgaWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gY2FjaGVkO1xuICAgICAgLy8gU2FmZSBmYWxsYmFjazogY29tcHV0ZSBvbmNlIGFuZCBjYWNoZS5cbiAgICAgIGNvbnN0IGNvbXB1dGVkID0gdGhpcy5fZ2V0U2lkZUJ5RGVsdGEoY29ubmVjdG9yLmhvc3RFbGVtZW50LCBjb25uZWN0b3IuZk5vZGVIb3N0LCBjb25uZWN0b3IpO1xuICAgICAgdGhpcy5fbGFzdFNpZGUuc2V0KGNvbm5lY3RvciwgY29tcHV0ZWQpO1xuXG4gICAgICByZXR1cm4gY29tcHV0ZWQ7XG4gICAgfVxuXG4gICAgLy8gTm9ybWFsIHBhdGg6IGNvbXB1dGUgd2l0aCBoeXN0ZXJlc2lzLCB0aGVuIHJlbWVtYmVyLlxuICAgIGNvbnN0IHNpZGUgPSB0aGlzLl9nZXRTaWRlQnlEZWx0YShjb25uZWN0b3IuaG9zdEVsZW1lbnQsIGNvbm5lY3Rvci5mTm9kZUhvc3QsIGNvbm5lY3Rvcik7XG4gICAgdGhpcy5fbGFzdFNpZGUuc2V0KGNvbm5lY3Rvciwgc2lkZSk7XG5cbiAgICByZXR1cm4gc2lkZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHRoZSBzaWRlIG9mIHRoZSBjb25uZWN0b3IgcmVsYXRpdmUgdG8gdGhlIG5vZGUgaG9zdCBieVxuICAgKiBjb21wYXJpbmcgZGlzdGFuY2VzIGZyb20gdGhlIGNvbm5lY3RvcidzIGdyYXZpdHkgY2VudGVyIHRvIGVhY2ggaG9zdCBlZGdlLlxuICAgKlxuICAgKiBIeXN0ZXJlc2lzIHJ1bGU6XG4gICAqIElmIHRoZSBwcmV2aW91c2x5IGNob3NlbiBzaWRlIGlzIHdpdGhpbiBgZXBzaWxvbmAgcGl4ZWxzIG9mIHRoZSBuZXcgYmVzdCBzaWRlLFxuICAgKiBrZWVwIHRoZSBwcmV2aW91cyBzaWRlIHRvIGF2b2lkIGZsaWNrZXIuXG4gICAqXG4gICAqIEBwYXJhbSBjb25uZWN0b3JIb3N0IC0gVGhlIGNvbm5lY3RvciBlbGVtZW50IChIVE1MIG9yIFNWRykuXG4gICAqIEBwYXJhbSBub2RlSG9zdCAtIFRoZSBwYXJlbnQgbm9kZSBlbGVtZW50IChIVE1MIG9yIFNWRykuXG4gICAqIEBwYXJhbSBjb25uZWN0b3JLZXkgLSBUaGUgY29ubmVjdG9yIG9iamVjdCwgdXNlZCBhcyBXZWFrTWFwIGtleS5cbiAgICogQHJldHVybnMgVGhlIG1vc3Qgc3RhYmxlIGNvbm5lY3RhYmxlIHNpZGUuXG4gICAqL1xuICBwcml2YXRlIF9nZXRTaWRlQnlEZWx0YShcbiAgICBjb25uZWN0b3JIb3N0OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQsXG4gICAgbm9kZUhvc3Q6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCxcbiAgICBjb25uZWN0b3JLZXk6IG9iamVjdCxcbiAgKTogRUZDb25uZWN0YWJsZVNpZGUge1xuICAgIGNvbnN0IGNoaWxkUmVjdCA9IFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KGNvbm5lY3Rvckhvc3QpO1xuICAgIGNvbnN0IHBhcmVudFJlY3QgPSBub2RlSG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGN4ID0gY2hpbGRSZWN0LmdyYXZpdHlDZW50ZXIueDtcbiAgICBjb25zdCBjeSA9IGNoaWxkUmVjdC5ncmF2aXR5Q2VudGVyLnk7XG5cbiAgICBjb25zdCBkZWx0YUxlZnQgPSBjeCAtIHBhcmVudFJlY3QubGVmdDtcbiAgICBjb25zdCBkZWx0YVJpZ2h0ID0gcGFyZW50UmVjdC5yaWdodCAtIGN4O1xuICAgIGNvbnN0IGRlbHRhVG9wID0gY3kgLSBwYXJlbnRSZWN0LnRvcDtcbiAgICBjb25zdCBkZWx0YUJvdHRvbSA9IHBhcmVudFJlY3QuYm90dG9tIC0gY3k7XG5cbiAgICAvLyBEZXRlcm1pbmUgYmVzdCBzaWRlIChtaW4gZGVsdGEpIGluIG9uZSBwYXNzXG4gICAgbGV0IG1pbklkeCA9IDA7XG4gICAgbGV0IG1pblZhbCA9IGRlbHRhTGVmdDtcblxuICAgIC8vIGk9MS4uMyBjb3JyZXNwb25kIHRvIFJpZ2h0LCBUb3AsIEJvdHRvbSByZXNwZWN0aXZlbHlcbiAgICBjb25zdCBjYW5kaWRhdGVzID0gW2RlbHRhTGVmdCwgZGVsdGFSaWdodCwgZGVsdGFUb3AsIGRlbHRhQm90dG9tXSBhcyBjb25zdDtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IDQ7IGkrKykge1xuICAgICAgY29uc3QgdiA9IGNhbmRpZGF0ZXNbaV07XG4gICAgICBpZiAodiA8IG1pblZhbCkge1xuICAgICAgICBtaW5WYWwgPSB2O1xuICAgICAgICBtaW5JZHggPSBpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBjYW5kaWRhdGUgPVxuICAgICAgbWluSWR4ID09PSAwXG4gICAgICAgID8gRUZDb25uZWN0YWJsZVNpZGUuTEVGVFxuICAgICAgICA6IG1pbklkeCA9PT0gMVxuICAgICAgICAgID8gRUZDb25uZWN0YWJsZVNpZGUuUklHSFRcbiAgICAgICAgICA6IG1pbklkeCA9PT0gMlxuICAgICAgICAgICAgPyBFRkNvbm5lY3RhYmxlU2lkZS5UT1BcbiAgICAgICAgICAgIDogRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NO1xuXG4gICAgLy8gSHlzdGVyZXNpczogcHJlZmVyIHByZXZpb3VzbHkgY2hvc2VuIHNpZGUgaWYgaXQncyBhbG1vc3QgYXMgZ29vZFxuICAgIGNvbnN0IHByZXYgPSB0aGlzLl9sYXN0U2lkZS5nZXQoY29ubmVjdG9yS2V5KTtcbiAgICBpZiAocHJldiAhPT0gdW5kZWZpbmVkICYmIHByZXYgIT09IGNhbmRpZGF0ZSkge1xuICAgICAgY29uc3QgcHJldklkeCA9XG4gICAgICAgIHByZXYgPT09IEVGQ29ubmVjdGFibGVTaWRlLkxFRlRcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IHByZXYgPT09IEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUXG4gICAgICAgICAgICA/IDFcbiAgICAgICAgICAgIDogcHJldiA9PT0gRUZDb25uZWN0YWJsZVNpZGUuVE9QXG4gICAgICAgICAgICAgID8gMlxuICAgICAgICAgICAgICA6IDM7XG5cbiAgICAgIGNvbnN0IHByZXZEZWx0YSA9XG4gICAgICAgIHByZXZJZHggPT09IDBcbiAgICAgICAgICA/IGRlbHRhTGVmdFxuICAgICAgICAgIDogcHJldklkeCA9PT0gMVxuICAgICAgICAgICAgPyBkZWx0YVJpZ2h0XG4gICAgICAgICAgICA6IHByZXZJZHggPT09IDJcbiAgICAgICAgICAgICAgPyBkZWx0YVRvcFxuICAgICAgICAgICAgICA6IGRlbHRhQm90dG9tO1xuXG4gICAgICAvLyBIb3cgbXVjaCBiZXR0ZXIgdGhlIG5ldyBzaWRlIGlzIChzbWFsbGVyIGlzIGJldHRlcilcbiAgICAgIGNvbnN0IGFkdmFudGFnZSA9IHByZXZEZWx0YSAtIG1pblZhbDtcbiAgICAgIGlmIChhZHZhbnRhZ2UgPD0gdGhpcy5fZXBzaWxvbikge1xuICAgICAgICBjYW5kaWRhdGUgPSBwcmV2O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjYW5kaWRhdGU7XG4gIH1cblxuICAvKiogUmV0dXJucyB0cnVlIGlmIGEgZHJhZyBvcGVyYXRpb24gaXMgY3VycmVudGx5IGFjdGl2ZS4gKi9cbiAgcHJpdmF0ZSBfaXNEcmFnZ2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgSXNEcmFnU3RhcnRlZFJlcXVlc3QoKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './calculate-connectable-side-by-internal-position';
|
|
2
|
+
export * from './calculate-connectable-side-by-internal-position-request';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtREFBbUQsQ0FBQztBQUVsRSxjQUFjLDJEQUEyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1pbnRlcm5hbC1wb3NpdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24tcmVxdWVzdCc7XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export class CalculateConnectorsConnectableSidesRequest {
|
|
2
|
+
nodeOrGroup;
|
|
3
|
+
static fToken = Symbol('CalculateConnectorsConnectableSidesRequest');
|
|
4
|
+
constructor(nodeOrGroup) {
|
|
5
|
+
this.nodeOrGroup = nodeOrGroup;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTywwQ0FBMEM7SUFFekI7SUFENUIsTUFBTSxDQUFVLE1BQU0sR0FBRyxNQUFNLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUM5RSxZQUE0QixXQUFzQjtRQUF0QixnQkFBVyxHQUFYLFdBQVcsQ0FBVztJQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuXG5leHBvcnQgY2xhc3MgQ2FsY3VsYXRlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnQ2FsY3VsYXRlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0Jyk7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBub2RlT3JHcm91cDogRk5vZGVCYXNlKSB7fVxufVxuIl19
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
4
|
+
import { CalculateConnectorsConnectableSidesRequest } from './calculate-connectors-connectable-sides-request';
|
|
5
|
+
import { EFConnectableSide } from '../../../f-connectors';
|
|
6
|
+
import { CalculateConnectableSideByConnectedPositionsRequest } from './calculate-connectable-side-by-connected-positions';
|
|
7
|
+
import { CalculateConnectableSideByInternalPositionRequest } from './calculate-connectable-side-by-internal-position';
|
|
8
|
+
import { isCalculateMode } from './utils';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
/**
|
|
11
|
+
* Execution that calculates connectable sides for all connectors of a node.
|
|
12
|
+
*/
|
|
13
|
+
let CalculateConnectorsConnectableSides = class CalculateConnectorsConnectableSides {
|
|
14
|
+
_mediator = inject(FMediator);
|
|
15
|
+
/**
|
|
16
|
+
* Orchestrates side calculation for all connectors of the given node.
|
|
17
|
+
*/
|
|
18
|
+
handle({ nodeOrGroup }) {
|
|
19
|
+
const connectors = nodeOrGroup.connectors;
|
|
20
|
+
const len = connectors.length;
|
|
21
|
+
for (let i = 0; i < len; i++) {
|
|
22
|
+
const connection = connectors[i];
|
|
23
|
+
connection.fConnectableSide = this._resolveSideForConnectorFast(connection);
|
|
24
|
+
}
|
|
25
|
+
const toRecalc = new Set();
|
|
26
|
+
for (let i = 0; i < len; i++) {
|
|
27
|
+
const source = connectors[i];
|
|
28
|
+
const outs = source.toConnector;
|
|
29
|
+
if (outs && outs.length) {
|
|
30
|
+
for (let j = 0, m = outs.length; j < m; j++) {
|
|
31
|
+
const target = outs[j];
|
|
32
|
+
const userSide = target.userFConnectableSide;
|
|
33
|
+
if (isCalculateMode(userSide)) {
|
|
34
|
+
toRecalc.add(target);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (toRecalc.size > 0) {
|
|
40
|
+
toRecalc.forEach((target) => {
|
|
41
|
+
target.fConnectableSide = this._calculateByConnectedPositions(target);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Resolves the connectable side for a connector quickly.
|
|
47
|
+
* Avoids intermediate arrays and redundant allocations.
|
|
48
|
+
*/
|
|
49
|
+
_resolveSideForConnectorFast(connector) {
|
|
50
|
+
const mode = connector.userFConnectableSide;
|
|
51
|
+
if (mode === EFConnectableSide.AUTO) {
|
|
52
|
+
return this._mediator.execute(new CalculateConnectableSideByInternalPositionRequest(connector));
|
|
53
|
+
}
|
|
54
|
+
if (isCalculateMode(mode)) {
|
|
55
|
+
return this._calculateByConnectedPositions(connector);
|
|
56
|
+
}
|
|
57
|
+
return mode;
|
|
58
|
+
}
|
|
59
|
+
/** Delegates to the connected-positions calculation execution. */
|
|
60
|
+
_calculateByConnectedPositions(connector) {
|
|
61
|
+
return this._mediator.execute(new CalculateConnectableSideByConnectedPositionsRequest(connector));
|
|
62
|
+
}
|
|
63
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectorsConnectableSides, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
64
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectorsConnectableSides });
|
|
65
|
+
};
|
|
66
|
+
CalculateConnectorsConnectableSides = __decorate([
|
|
67
|
+
FExecutionRegister(CalculateConnectorsConnectableSidesRequest)
|
|
68
|
+
], CalculateConnectorsConnectableSides);
|
|
69
|
+
export { CalculateConnectorsConnectableSides };
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectorsConnectableSides, decorators: [{
|
|
71
|
+
type: Injectable
|
|
72
|
+
}] });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM5RyxPQUFPLEVBQUUsaUJBQWlCLEVBQWtCLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1EQUFtRCxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDMUgsT0FBTyxFQUFFLGlEQUFpRCxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFMUM7O0dBRUc7QUFHSSxJQUFNLG1DQUFtQyxHQUF6QyxNQUFNLG1DQUFtQztJQUc3QixTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRS9DOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUE4QztRQUN2RSxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBQzFDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFFOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdCLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUUzQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDN0IsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDaEMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDO29CQUM3QyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO3dCQUM5QixRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2QixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLDRCQUE0QixDQUFDLFNBQXlCO1FBQzVELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQztRQUU1QyxJQUFJLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQixJQUFJLGlEQUFpRCxDQUFDLFNBQVMsQ0FBQyxDQUNqRSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtFQUFrRTtJQUMxRCw4QkFBOEIsQ0FBQyxTQUF5QjtRQUM5RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQixJQUFJLG1EQUFtRCxDQUFDLFNBQVMsQ0FBQyxDQUNuRSxDQUFDO0lBQ0osQ0FBQzt3R0FqRVUsbUNBQW1DOzRHQUFuQyxtQ0FBbUM7O0FBQW5DLG1DQUFtQztJQUQvQyxrQkFBa0IsQ0FBQywwQ0FBMEMsQ0FBQztHQUNsRCxtQ0FBbUMsQ0FrRS9DOzs0RkFsRVksbUNBQW1DO2tCQUYvQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy1yZXF1ZXN0JztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlLCBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QgfSBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24nO1xuaW1wb3J0IHsgaXNDYWxjdWxhdGVNb2RlIH0gZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogRXhlY3V0aW9uIHRoYXQgY2FsY3VsYXRlcyBjb25uZWN0YWJsZSBzaWRlcyBmb3IgYWxsIGNvbm5lY3RvcnMgb2YgYSBub2RlLlxuICovXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKENhbGN1bGF0ZUNvbm5lY3RvcnNDb25uZWN0YWJsZVNpZGVzUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVDb25uZWN0b3JzQ29ubmVjdGFibGVTaWRlc1xuICBpbXBsZW1lbnRzIElFeGVjdXRpb248Q2FsY3VsYXRlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0LCB2b2lkPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIC8qKlxuICAgKiBPcmNoZXN0cmF0ZXMgc2lkZSBjYWxjdWxhdGlvbiBmb3IgYWxsIGNvbm5lY3RvcnMgb2YgdGhlIGdpdmVuIG5vZGUuXG4gICAqL1xuICBwdWJsaWMgaGFuZGxlKHsgbm9kZU9yR3JvdXAgfTogQ2FsY3VsYXRlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0KTogdm9pZCB7XG4gICAgY29uc3QgY29ubmVjdG9ycyA9IG5vZGVPckdyb3VwLmNvbm5lY3RvcnM7XG4gICAgY29uc3QgbGVuID0gY29ubmVjdG9ycy5sZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gY29ubmVjdG9yc1tpXTtcbiAgICAgIGNvbm5lY3Rpb24uZkNvbm5lY3RhYmxlU2lkZSA9IHRoaXMuX3Jlc29sdmVTaWRlRm9yQ29ubmVjdG9yRmFzdChjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB0b1JlY2FsYyA9IG5ldyBTZXQ8RkNvbm5lY3RvckJhc2U+KCk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBzb3VyY2UgPSBjb25uZWN0b3JzW2ldO1xuICAgICAgY29uc3Qgb3V0cyA9IHNvdXJjZS50b0Nvbm5lY3RvcjtcbiAgICAgIGlmIChvdXRzICYmIG91dHMubGVuZ3RoKSB7XG4gICAgICAgIGZvciAobGV0IGogPSAwLCBtID0gb3V0cy5sZW5ndGg7IGogPCBtOyBqKyspIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSBvdXRzW2pdO1xuICAgICAgICAgIGNvbnN0IHVzZXJTaWRlID0gdGFyZ2V0LnVzZXJGQ29ubmVjdGFibGVTaWRlO1xuICAgICAgICAgIGlmIChpc0NhbGN1bGF0ZU1vZGUodXNlclNpZGUpKSB7XG4gICAgICAgICAgICB0b1JlY2FsYy5hZGQodGFyZ2V0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodG9SZWNhbGMuc2l6ZSA+IDApIHtcbiAgICAgIHRvUmVjYWxjLmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgICAgICB0YXJnZXQuZkNvbm5lY3RhYmxlU2lkZSA9IHRoaXMuX2NhbGN1bGF0ZUJ5Q29ubmVjdGVkUG9zaXRpb25zKHRhcmdldCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIGNvbm5lY3RhYmxlIHNpZGUgZm9yIGEgY29ubmVjdG9yIHF1aWNrbHkuXG4gICAqIEF2b2lkcyBpbnRlcm1lZGlhdGUgYXJyYXlzIGFuZCByZWR1bmRhbnQgYWxsb2NhdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIF9yZXNvbHZlU2lkZUZvckNvbm5lY3RvckZhc3QoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgICBjb25zdCBtb2RlID0gY29ubmVjdG9yLnVzZXJGQ29ubmVjdGFibGVTaWRlO1xuXG4gICAgaWYgKG1vZGUgPT09IEVGQ29ubmVjdGFibGVTaWRlLkFVVE8pIHtcbiAgICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPEVGQ29ubmVjdGFibGVTaWRlPihcbiAgICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5SW50ZXJuYWxQb3NpdGlvblJlcXVlc3QoY29ubmVjdG9yKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGlzQ2FsY3VsYXRlTW9kZShtb2RlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NhbGN1bGF0ZUJ5Q29ubmVjdGVkUG9zaXRpb25zKGNvbm5lY3Rvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZGU7XG4gIH1cblxuICAvKiogRGVsZWdhdGVzIHRvIHRoZSBjb25uZWN0ZWQtcG9zaXRpb25zIGNhbGN1bGF0aW9uIGV4ZWN1dGlvbi4gKi9cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlQnlDb25uZWN0ZWRQb3NpdGlvbnMoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QoY29ubmVjdG9yKSxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EFConnectableSide } from '../../../../f-connectors';
|
|
2
|
+
export const CALCULATABLE_SIDES = {
|
|
3
|
+
[EFConnectableSide.CALCULATE]: [
|
|
4
|
+
EFConnectableSide.TOP,
|
|
5
|
+
EFConnectableSide.BOTTOM,
|
|
6
|
+
EFConnectableSide.LEFT,
|
|
7
|
+
EFConnectableSide.RIGHT,
|
|
8
|
+
],
|
|
9
|
+
[EFConnectableSide.CALCULATE_HORIZONTAL]: [EFConnectableSide.LEFT, EFConnectableSide.RIGHT],
|
|
10
|
+
[EFConnectableSide.CALCULATE_VERTICAL]: [EFConnectableSide.TOP, EFConnectableSide.BOTTOM],
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRhYmxlLXNpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1ub2RlL2NhbGN1bGF0ZS1jb25uZWN0b3JzLWNvbm5lY3RhYmxlLXNpZGVzL2NvbnN0YW50cy9jYWxjdWxhdGFibGUtc2lkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0QsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUM3QixpQkFBaUIsQ0FBQyxHQUFHO1FBQ3JCLGlCQUFpQixDQUFDLE1BQU07UUFDeEIsaUJBQWlCLENBQUMsSUFBSTtRQUN0QixpQkFBaUIsQ0FBQyxLQUFLO0tBQ3hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQztJQUMzRixDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDO0NBQzFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBDQUxDVUxBVEFCTEVfU0lERVMgPSB7XG4gIFtFRkNvbm5lY3RhYmxlU2lkZS5DQUxDVUxBVEVdOiBbXG4gICAgRUZDb25uZWN0YWJsZVNpZGUuVE9QLFxuICAgIEVGQ29ubmVjdGFibGVTaWRlLkJPVFRPTSxcbiAgICBFRkNvbm5lY3RhYmxlU2lkZS5MRUZULFxuICAgIEVGQ29ubmVjdGFibGVTaWRlLlJJR0hULFxuICBdLFxuICBbRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFX0hPUklaT05UQUxdOiBbRUZDb25uZWN0YWJsZVNpZGUuTEVGVCwgRUZDb25uZWN0YWJsZVNpZGUuUklHSFRdLFxuICBbRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFX1ZFUlRJQ0FMXTogW0VGQ29ubmVjdGFibGVTaWRlLlRPUCwgRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NXSxcbn07XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './calculatable-sides';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0YWJsZS1zaWRlcyc7XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './calculate-connectable-side-by-connected-positions';
|
|
2
|
+
export * from './calculate-connectable-side-by-internal-position';
|
|
3
|
+
export * from './constants';
|
|
4
|
+
export * from './models';
|
|
5
|
+
export * from './utils';
|
|
6
|
+
export * from './calculate-connectors-connectable-sides';
|
|
7
|
+
export * from './calculate-connectors-connectable-sides-request';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxREFBcUQsQ0FBQztBQUVwRSxjQUFjLG1EQUFtRCxDQUFDO0FBRWxFLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsU0FBUyxDQUFDO0FBRXhCLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxrREFBa0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy1yZXF1ZXN0JztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './t-calculate-mode';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3QtY2FsY3VsYXRlLW1vZGUnO1xuIl19
|
package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidC1jYWxjdWxhdGUtbW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy9tb2RlbHMvdC1jYWxjdWxhdGUtbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgdHlwZSBUQ2FsY3VsYXRlTW9kZSA9XG4gIHwgRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFXG4gIHwgRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFX0hPUklaT05UQUxcbiAgfCBFRkNvbm5lY3RhYmxlU2lkZS5DQUxDVUxBVEVfVkVSVElDQUw7XG4iXX0=
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts allowed sides array to a compact bit mask.
|
|
3
|
+
* If not provided or empty -> all sides allowed.
|
|
4
|
+
*/
|
|
5
|
+
import { EFConnectableSide } from '../../../../f-connectors';
|
|
6
|
+
const SNAP_EPS = 2;
|
|
7
|
+
var SideMask;
|
|
8
|
+
(function (SideMask) {
|
|
9
|
+
SideMask[SideMask["NONE"] = 0] = "NONE";
|
|
10
|
+
SideMask[SideMask["LEFT"] = 1] = "LEFT";
|
|
11
|
+
SideMask[SideMask["RIGHT"] = 2] = "RIGHT";
|
|
12
|
+
SideMask[SideMask["TOP"] = 4] = "TOP";
|
|
13
|
+
SideMask[SideMask["BOTTOM"] = 8] = "BOTTOM";
|
|
14
|
+
SideMask[SideMask["ALL"] = 15] = "ALL";
|
|
15
|
+
})(SideMask || (SideMask = {}));
|
|
16
|
+
/**
|
|
17
|
+
* Determines final side using ideal side first; if disallowed, picks best fallback.
|
|
18
|
+
* Inputs are numbers to avoid object wrappers on hot path.
|
|
19
|
+
*/
|
|
20
|
+
export function determineSide(selfX, selfY, avgX, avgY, allowed) {
|
|
21
|
+
const allowedMask = _toSideMask(allowed);
|
|
22
|
+
const dx = avgX - selfX;
|
|
23
|
+
const dy = avgY - selfY;
|
|
24
|
+
const ideal = _pickIdealSide(dx, dy);
|
|
25
|
+
if (_isAllowed(ideal, allowedMask)) {
|
|
26
|
+
return ideal;
|
|
27
|
+
}
|
|
28
|
+
return _pickFallbackSide(dx, dy, allowedMask, ideal);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Converts allowed sides array to a compact bit mask.
|
|
32
|
+
* If not provided or empty -> all sides allowed.
|
|
33
|
+
*/
|
|
34
|
+
function _toSideMask(allowed) {
|
|
35
|
+
if (!allowed || allowed.length === 0)
|
|
36
|
+
return SideMask.ALL;
|
|
37
|
+
let mask = SideMask.NONE;
|
|
38
|
+
for (let i = 0; i < allowed.length; i++) {
|
|
39
|
+
switch (allowed[i]) {
|
|
40
|
+
case EFConnectableSide.LEFT:
|
|
41
|
+
mask |= SideMask.LEFT;
|
|
42
|
+
break;
|
|
43
|
+
case EFConnectableSide.RIGHT:
|
|
44
|
+
mask |= SideMask.RIGHT;
|
|
45
|
+
break;
|
|
46
|
+
case EFConnectableSide.TOP:
|
|
47
|
+
mask |= SideMask.TOP;
|
|
48
|
+
break;
|
|
49
|
+
case EFConnectableSide.BOTTOM:
|
|
50
|
+
mask |= SideMask.BOTTOM;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return mask || SideMask.ALL;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Picks the "ideal" side based on vector (dx, dy) with hysteresis.
|
|
58
|
+
*/
|
|
59
|
+
function _pickIdealSide(dx, dy) {
|
|
60
|
+
const ax = dx < 0 ? -dx : dx;
|
|
61
|
+
const ay = dy < 0 ? -dy : dy;
|
|
62
|
+
if (ax - ay > SNAP_EPS) {
|
|
63
|
+
return dx < 0 ? EFConnectableSide.LEFT : EFConnectableSide.RIGHT;
|
|
64
|
+
}
|
|
65
|
+
if (ay - ax > SNAP_EPS) {
|
|
66
|
+
return dy < 0 ? EFConnectableSide.TOP : EFConnectableSide.BOTTOM;
|
|
67
|
+
}
|
|
68
|
+
return dy < 0 ? EFConnectableSide.TOP : EFConnectableSide.BOTTOM;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Quick membership check via bit mask.
|
|
72
|
+
*/
|
|
73
|
+
function _isAllowed(side, mask) {
|
|
74
|
+
switch (side) {
|
|
75
|
+
case EFConnectableSide.LEFT:
|
|
76
|
+
return (mask & SideMask.LEFT) !== 0;
|
|
77
|
+
case EFConnectableSide.RIGHT:
|
|
78
|
+
return (mask & SideMask.RIGHT) !== 0;
|
|
79
|
+
case EFConnectableSide.TOP:
|
|
80
|
+
return (mask & SideMask.TOP) !== 0;
|
|
81
|
+
case EFConnectableSide.BOTTOM:
|
|
82
|
+
return (mask & SideMask.BOTTOM) !== 0;
|
|
83
|
+
default:
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Picks the best available side from allowed mask by maximizing directional score.
|
|
89
|
+
* No intermediate objects, constant-time operations.
|
|
90
|
+
*/
|
|
91
|
+
function _pickFallbackSide(dx, dy, allowedMask, ideal) {
|
|
92
|
+
let bestSide = ideal;
|
|
93
|
+
let bestScore = -Infinity;
|
|
94
|
+
if (allowedMask & SideMask.RIGHT) {
|
|
95
|
+
const s = dx;
|
|
96
|
+
if (s > bestScore) {
|
|
97
|
+
bestScore = s;
|
|
98
|
+
bestSide = EFConnectableSide.RIGHT;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (allowedMask & SideMask.LEFT) {
|
|
102
|
+
const s = -dx;
|
|
103
|
+
if (s > bestScore) {
|
|
104
|
+
bestScore = s;
|
|
105
|
+
bestSide = EFConnectableSide.LEFT;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (allowedMask & SideMask.BOTTOM) {
|
|
109
|
+
const s = dy;
|
|
110
|
+
if (s > bestScore) {
|
|
111
|
+
bestScore = s;
|
|
112
|
+
bestSide = EFConnectableSide.BOTTOM;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (allowedMask & SideMask.TOP) {
|
|
116
|
+
const s = -dy;
|
|
117
|
+
if (s > bestScore) {
|
|
118
|
+
bestScore = s;
|
|
119
|
+
bestSide = EFConnectableSide.TOP;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return bestSide;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZXJtaW5lLXNpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvdXRpbHMvZGV0ZXJtaW5lLXNpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0QsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRW5CLElBQUssUUFPSjtBQVBELFdBQUssUUFBUTtJQUNYLHVDQUFRLENBQUE7SUFDUix1Q0FBYSxDQUFBO0lBQ2IseUNBQWMsQ0FBQTtJQUNkLHFDQUFZLENBQUE7SUFDWiwyQ0FBZSxDQUFBO0lBQ2Ysc0NBQWtCLENBQUE7QUFDcEIsQ0FBQyxFQVBJLFFBQVEsS0FBUixRQUFRLFFBT1o7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUMzQixLQUFhLEVBQ2IsS0FBYSxFQUNiLElBQVksRUFDWixJQUFZLEVBQ1osT0FBNkI7SUFFN0IsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXpDLE1BQU0sRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7SUFDeEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUV4QixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXJDLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8saUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVEOzs7R0FH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LENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udmVydHMgYWxsb3dlZCBzaWRlcyBhcnJheSB0byBhIGNvbXBhY3QgYml0IG1hc2suXG4gKiBJZiBub3QgcHJvdmlkZWQgb3IgZW1wdHkgLT4gYWxsIHNpZGVzIGFsbG93ZWQuXG4gKi9cbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcblxuY29uc3QgU05BUF9FUFMgPSAyO1xuXG5lbnVtIFNpZGVNYXNrIHtcbiAgTk9ORSA9IDAsXG4gIExFRlQgPSAxIDw8IDAsXG4gIFJJR0hUID0gMSA8PCAxLFxuICBUT1AgPSAxIDw8IDIsXG4gIEJPVFRPTSA9IDEgPDwgMyxcbiAgQUxMID0gKDEgPDwgNCkgLSAxLFxufVxuXG4vKipcbiAqIERldGVybWluZXMgZmluYWwgc2lkZSB1c2luZyBpZGVhbCBzaWRlIGZpcnN0OyBpZiBkaXNhbGxvd2VkLCBwaWNrcyBiZXN0IGZhbGxiYWNrLlxuICogSW5wdXRzIGFyZSBudW1iZXJzIHRvIGF2b2lkIG9iamVjdCB3cmFwcGVycyBvbiBob3QgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVybWluZVNpZGUoXG4gIHNlbGZYOiBudW1iZXIsXG4gIHNlbGZZOiBudW1iZXIsXG4gIGF2Z1g6IG51bWJlcixcbiAgYXZnWTogbnVtYmVyLFxuICBhbGxvd2VkPzogRUZDb25uZWN0YWJsZVNpZGVbXSxcbik6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgY29uc3QgYWxsb3dlZE1hc2sgPSBfdG9TaWRlTWFzayhhbGxvd2VkKTtcblxuICBjb25zdCBkeCA9IGF2Z1ggLSBzZWxmWDtcbiAgY29uc3QgZHkgPSBhdmdZIC0gc2VsZlk7XG5cbiAgY29uc3QgaWRlYWwgPSBfcGlja0lkZWFsU2lkZShkeCwgZHkpO1xuXG4gIGlmIChfaXNBbGxvd2VkKGlkZWFsLCBhbGxvd2VkTWFzaykpIHtcbiAgICByZXR1cm4gaWRlYWw7XG4gIH1cblxuICByZXR1cm4gX3BpY2tGYWxsYmFja1NpZGUoZHgsIGR5LCBhbGxvd2VkTWFzaywgaWRlYWwpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFsbG93ZWQgc2lkZXMgYXJyYXkgdG8gYSBjb21wYWN0IGJpdCBtYXNrLlxuICogSWYgbm90IHByb3ZpZGVkIG9yIGVtcHR5IC0+IGFsbCBzaWRlcyBhbGxvd2VkLlxuICovXG5mdW5jdGlvbiBfdG9TaWRlTWFzayhhbGxvd2VkPzogRUZDb25uZWN0YWJsZVNpZGVbXSk6IFNpZGVNYXNrIHtcbiAgaWYgKCFhbGxvd2VkIHx8IGFsbG93ZWQubGVuZ3RoID09PSAwKSByZXR1cm4gU2lkZU1hc2suQUxMO1xuXG4gIGxldCBtYXNrID0gU2lkZU1hc2suTk9ORTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxvd2VkLmxlbmd0aDsgaSsrKSB7XG4gICAgc3dpdGNoIChhbGxvd2VkW2ldKSB7XG4gICAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLkxFRlQ6XG4gICAgICAgIG1hc2sgfD0gU2lkZU1hc2suTEVGVDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUOlxuICAgICAgICBtYXNrIHw9IFNpZGVNYXNrLlJJR0hUO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuVE9QOlxuICAgICAgICBtYXNrIHw9IFNpZGVNYXNrLlRPUDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLkJPVFRPTTpcbiAgICAgICAgbWFzayB8PSBTaWRlTWFzay5CT1RUT007XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYXNrIHx8IFNpZGVNYXNrLkFMTDtcbn1cblxuLyoqXG4gKiBQaWNrcyB0aGUgXCJpZGVhbFwiIHNpZGUgYmFzZWQgb24gdmVjdG9yIChkeCwgZHkpIHdpdGggaHlzdGVyZXNpcy5cbiAqL1xuZnVuY3Rpb24gX3BpY2tJZGVhbFNpZGUoZHg6IG51bWJlciwgZHk6IG51bWJlcik6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgY29uc3QgYXggPSBkeCA8IDAgPyAtZHggOiBkeDtcbiAgY29uc3QgYXkgPSBkeSA8IDAgPyAtZHkgOiBkeTtcblxuICBpZiAoYXggLSBheSA+IFNOQVBfRVBTKSB7XG4gICAgcmV0dXJuIGR4IDwgMCA/IEVGQ29ubmVjdGFibGVTaWRlLkxFRlQgOiBFRkNvbm5lY3RhYmxlU2lkZS5SSUdIVDtcbiAgfVxuICBpZiAoYXkgLSBheCA+IFNOQVBfRVBTKSB7XG4gICAgcmV0dXJuIGR5IDwgMCA/IEVGQ29ubmVjdGFibGVTaWRlLlRPUCA6IEVGQ29ubmVjdGFibGVTaWRlLkJPVFRPTTtcbiAgfVxuXG4gIHJldHVybiBkeSA8IDAgPyBFRkNvbm5lY3RhYmxlU2lkZS5UT1AgOiBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT007XG59XG5cbi8qKlxuICogUXVpY2sgbWVtYmVyc2hpcCBjaGVjayB2aWEgYml0IG1hc2suXG4gKi9cbmZ1bmN0aW9uIF9pc0FsbG93ZWQoc2lkZTogRUZDb25uZWN0YWJsZVNpZGUsIG1hc2s6IFNpZGVNYXNrKTogYm9vbGVhbiB7XG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuTEVGVDpcbiAgICAgIHJldHVybiAobWFzayAmIFNpZGVNYXNrLkxFRlQpICE9PSAwO1xuICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuUklHSFQ6XG4gICAgICByZXR1cm4gKG1hc2sgJiBTaWRlTWFzay5SSUdIVCkgIT09IDA7XG4gICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5UT1A6XG4gICAgICByZXR1cm4gKG1hc2sgJiBTaWRlTWFzay5UT1ApICE9PSAwO1xuICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NOlxuICAgICAgcmV0dXJuIChtYXNrICYgU2lkZU1hc2suQk9UVE9NKSAhPT0gMDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuLyoqXG4gKiBQaWNrcyB0aGUgYmVzdCBhdmFpbGFibGUgc2lkZSBmcm9tIGFsbG93ZWQgbWFzayBieSBtYXhpbWl6aW5nIGRpcmVjdGlvbmFsIHNjb3JlLlxuICogTm8gaW50ZXJtZWRpYXRlIG9iamVjdHMsIGNvbnN0YW50LXRpbWUgb3BlcmF0aW9ucy5cbiAqL1xuZnVuY3Rpb24gX3BpY2tGYWxsYmFja1NpZGUoXG4gIGR4OiBudW1iZXIsXG4gIGR5OiBudW1iZXIsXG4gIGFsbG93ZWRNYXNrOiBTaWRlTWFzayxcbiAgaWRlYWw6IEVGQ29ubmVjdGFibGVTaWRlLFxuKTogRUZDb25uZWN0YWJsZVNpZGUge1xuICBsZXQgYmVzdFNpZGU6IEVGQ29ubmVjdGFibGVTaWRlID0gaWRlYWw7XG4gIGxldCBiZXN0U2NvcmUgPSAtSW5maW5pdHk7XG5cbiAgaWYgKGFsbG93ZWRNYXNrICYgU2lkZU1hc2suUklHSFQpIHtcbiAgICBjb25zdCBzID0gZHg7XG4gICAgaWYgKHMgPiBiZXN0U2NvcmUpIHtcbiAgICAgIGJlc3RTY29yZSA9IHM7XG4gICAgICBiZXN0U2lkZSA9IEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUO1xuICAgIH1cbiAgfVxuICBpZiAoYWxsb3dlZE1hc2sgJiBTaWRlTWFzay5MRUZUKSB7XG4gICAgY29uc3QgcyA9IC1keDtcbiAgICBpZiAocyA+IGJlc3RTY29yZSkge1xuICAgICAgYmVzdFNjb3JlID0gcztcbiAgICAgIGJlc3RTaWRlID0gRUZDb25uZWN0YWJsZVNpZGUuTEVGVDtcbiAgICB9XG4gIH1cbiAgaWYgKGFsbG93ZWRNYXNrICYgU2lkZU1hc2suQk9UVE9NKSB7XG4gICAgY29uc3QgcyA9IGR5O1xuICAgIGlmIChzID4gYmVzdFNjb3JlKSB7XG4gICAgICBiZXN0U2NvcmUgPSBzO1xuICAgICAgYmVzdFNpZGUgPSBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT007XG4gICAgfVxuICB9XG4gIGlmIChhbGxvd2VkTWFzayAmIFNpZGVNYXNrLlRPUCkge1xuICAgIGNvbnN0IHMgPSAtZHk7XG4gICAgaWYgKHMgPiBiZXN0U2NvcmUpIHtcbiAgICAgIGJlc3RTY29yZSA9IHM7XG4gICAgICBiZXN0U2lkZSA9IEVGQ29ubmVjdGFibGVTaWRlLlRPUDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYmVzdFNpZGU7XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './determine-side';
|
|
2
|
+
export * from './is-calculate-mode';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZXRlcm1pbmUtc2lkZSc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWNhbGN1bGF0ZS1tb2RlJztcbiJdfQ==
|
package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.mjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EFConnectableSide } from '../../../../f-connectors';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if the given side is one of the calculate modes.
|
|
4
|
+
* @param side The connectable side to check.
|
|
5
|
+
* @returns True if the side is a calculate mode, false otherwise.
|
|
6
|
+
*/
|
|
7
|
+
export function isCalculateMode(side) {
|
|
8
|
+
return (side === EFConnectableSide.CALCULATE ||
|
|
9
|
+
side === EFConnectableSide.CALCULATE_HORIZONTAL ||
|
|
10
|
+
side === EFConnectableSide.CALCULATE_VERTICAL);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY2FsY3VsYXRlLW1vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvdXRpbHMvaXMtY2FsY3VsYXRlLW1vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0Q7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBdUI7SUFDckQsT0FBTyxDQUNMLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxTQUFTO1FBQ3BDLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxvQkFBb0I7UUFDL0MsSUFBSSxLQUFLLGlCQUFpQixDQUFDLGtCQUFrQixDQUM5QyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIHNpZGUgaXMgb25lIG9mIHRoZSBjYWxjdWxhdGUgbW9kZXMuXG4gKiBAcGFyYW0gc2lkZSBUaGUgY29ubmVjdGFibGUgc2lkZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHNpZGUgaXMgYSBjYWxjdWxhdGUgbW9kZSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDYWxjdWxhdGVNb2RlKHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgc2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFIHx8XG4gICAgc2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFX0hPUklaT05UQUwgfHxcbiAgICBzaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5DQUxDVUxBVEVfVkVSVElDQUxcbiAgKTtcbn1cbiJdfQ==
|
package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections-request.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export class CalculateInputConnectionsRequest {
|
|
2
|
-
|
|
2
|
+
nodeOrGroup;
|
|
3
3
|
static fToken = Symbol('CalculateInputConnectionsRequest');
|
|
4
|
-
constructor(
|
|
5
|
-
this.
|
|
4
|
+
constructor(nodeOrGroup) {
|
|
5
|
+
this.nodeOrGroup = nodeOrGroup;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWlucHV0LWNvbm5lY3Rpb25zLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWlucHV0LWNvbm5lY3Rpb25zL2NhbGN1bGF0ZS1pbnB1dC1jb25uZWN0aW9ucy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQ0FBZ0M7SUFFZjtJQUQ1QixNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3BFLFlBQTRCLFdBQXNCO1FBQXRCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO0lBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVJbnB1dENvbm5lY3Rpb25zUmVxdWVzdCB7XG4gIHN0YXRpYyByZWFkb25seSBmVG9rZW4gPSBTeW1ib2woJ0NhbGN1bGF0ZUlucHV0Q29ubmVjdGlvbnNSZXF1ZXN0Jyk7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBub2RlT3JHcm91cDogRk5vZGVCYXNlKSB7fVxufVxuIl19
|