@foblex/flow 17.8.3 → 17.8.5
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/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-event-trigger.d.ts +1 -1
- package/domain/f-flow/providers.d.ts +1 -1
- package/domain/f-line-alignment/providers.d.ts +1 -1
- package/domain/f-node/add-node-to-store/add-node-to-store-request.d.ts +2 -2
- 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-request.d.ts +3 -1
- package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.d.ts +22 -0
- 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/index.d.ts +1 -2
- package/domain/f-node/providers.d.ts +2 -3
- 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/f-zoom/providers.d.ts +1 -1
- package/domain/providers.d.ts +1 -1
- package/esm2022/domain/css-cls.mjs +2 -1
- 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-event-trigger.mjs +2 -2
- 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-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/get-child-node-ids/get-child-node-ids.request.mjs +1 -1
- package/esm2022/domain/f-node/index.mjs +2 -3
- package/esm2022/domain/f-node/providers.mjs +3 -5
- 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 +1 -1
- package/esm2022/domain/is-mobile.mjs +5 -3
- package/esm2022/f-connectors/e-f-connectable-side.mjs +3 -1
- 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 +8 -8
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +3 -3
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +7 -7
- package/esm2022/f-draggable/f-connection/providers.mjs +4 -4
- package/esm2022/f-draggable/f-draggable.directive.mjs +3 -3
- 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/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-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-connection/providers.d.ts +1 -1
- package/f-connectors/e-f-connectable-side.d.ts +2 -0
- package/f-connectors/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-minimap/providers.d.ts +1 -1
- package/f-node/providers.d.ts +2 -2
- 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 +1281 -1075
- 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.d.ts +0 -45
- 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 -59
- 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-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-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.mjs +0 -8
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +0 -92
- 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 -99
- 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/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,64 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { CalculateTargetConnectorsToConnectRequest } from './calculate-target-connectors-to-connect-request';
|
|
3
|
+
import { inject, Injectable } from '@angular/core';
|
|
4
|
+
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
5
|
+
import { FComponentsStore } from '../../../f-storage';
|
|
6
|
+
import { GetConnectorAndRectRequest } from '../get-connector-and-rect';
|
|
7
|
+
import { CalculateConnectableSideByConnectedPositionsRequest, isCalculateMode } from '../../f-node';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Execution that retrieves all input connectors that can be connected to a given output or outlet connector,
|
|
11
|
+
*/
|
|
12
|
+
let CalculateTargetConnectorsToConnect = class CalculateTargetConnectorsToConnect {
|
|
13
|
+
_mediator = inject(FMediator);
|
|
14
|
+
_store = inject(FComponentsStore);
|
|
15
|
+
get _targetConnectors() {
|
|
16
|
+
return this._store.fInputs;
|
|
17
|
+
}
|
|
18
|
+
handle({ sourceConnector, pointerPosition, }) {
|
|
19
|
+
const result = this._getCanBeConnectedInputs(sourceConnector).map((x) => {
|
|
20
|
+
return this._mediator.execute(new GetConnectorAndRectRequest(x));
|
|
21
|
+
});
|
|
22
|
+
setTimeout(() => {
|
|
23
|
+
this._calculateConnectableSides(result, pointerPosition);
|
|
24
|
+
});
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
_getCanBeConnectedInputs(outputOrOutlet) {
|
|
28
|
+
let targetConnectors = [];
|
|
29
|
+
if (outputOrOutlet.hasConnectionLimits) {
|
|
30
|
+
targetConnectors = this._targetConnectors.filter((x) => outputOrOutlet.canConnectTo(x));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
targetConnectors = this._targetConnectors.filter((x) => x.canBeConnected);
|
|
34
|
+
if (!outputOrOutlet.isSelfConnectable) {
|
|
35
|
+
targetConnectors = this._filterSelfConnectable(targetConnectors, outputOrOutlet);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return targetConnectors;
|
|
39
|
+
}
|
|
40
|
+
_filterSelfConnectable(targetConnectors, outputOrOutlet) {
|
|
41
|
+
return targetConnectors.filter(({ fNodeId }) => outputOrOutlet.fNodeId !== fNodeId);
|
|
42
|
+
}
|
|
43
|
+
_calculateConnectableSides(connectors, pointerPosition) {
|
|
44
|
+
connectors.forEach((x) => {
|
|
45
|
+
if (isCalculateMode(x.fConnector.userFConnectableSide)) {
|
|
46
|
+
x.fConnector.fConnectableSide = this._calculateByConnectedPositions(x.fConnector, pointerPosition);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/** Delegates to the connected-positions calculation execution. */
|
|
51
|
+
_calculateByConnectedPositions(connector, pointerPosition) {
|
|
52
|
+
return this._mediator.execute(new CalculateConnectableSideByConnectedPositionsRequest(connector, pointerPosition));
|
|
53
|
+
}
|
|
54
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateTargetConnectorsToConnect, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
55
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateTargetConnectorsToConnect });
|
|
56
|
+
};
|
|
57
|
+
CalculateTargetConnectorsToConnect = __decorate([
|
|
58
|
+
FExecutionRegister(CalculateTargetConnectorsToConnectRequest)
|
|
59
|
+
], CalculateTargetConnectorsToConnect);
|
|
60
|
+
export { CalculateTargetConnectorsToConnect };
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateTargetConnectorsToConnect, decorators: [{
|
|
62
|
+
type: Injectable
|
|
63
|
+
}] });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3RvcnMvY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QvY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQVE3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbURBQW1ELEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUdwRzs7R0FFRztBQUdJLElBQU0sa0NBQWtDLEdBQXhDLE1BQU0sa0NBQWtDO0lBRzVCLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRW5ELElBQVksaUJBQWlCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxFQUNaLGVBQWUsRUFDZixlQUFlLEdBQzJCO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0RSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFvQixJQUFJLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEYsQ0FBQyxDQUFDLENBQUM7UUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyx3QkFBd0IsQ0FDOUIsY0FBaUQ7UUFFakQsSUFBSSxnQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBQzVDLElBQUksY0FBYyxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdkMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3JELGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBbUIsQ0FBQyxDQUNqRCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFMUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN0QyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFTyxzQkFBc0IsQ0FDNUIsZ0JBQWtDLEVBQ2xDLGNBQThCO1FBRTlCLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRU8sMEJBQTBCLENBQ2hDLFVBQStCLEVBQy9CLGVBQXVCO1FBRXZCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QixJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztnQkFDdkQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQ2pFLENBQUMsQ0FBQyxVQUFVLEVBQ1osZUFBZSxDQUNoQixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtFQUFrRTtJQUMxRCw4QkFBOEIsQ0FDcEMsU0FBeUIsRUFDekIsZUFBdUI7UUFFdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0IsSUFBSSxtREFBbUQsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQ3BGLENBQUM7SUFDSixDQUFDO3dHQXpFVSxrQ0FBa0M7NEdBQWxDLGtDQUFrQzs7QUFBbEMsa0NBQWtDO0lBRDlDLGtCQUFrQixDQUFDLHlDQUF5QyxDQUFDO0dBQ2pELGtDQUFrQyxDQTBFOUM7OzRGQTFFWSxrQ0FBa0M7a0JBRjlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYWxjdWxhdGVUYXJnZXRDb25uZWN0b3JzVG9Db25uZWN0UmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QtcmVxdWVzdCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQge1xuICBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgRkNvbm5lY3RvckJhc2UsXG4gIEZOb2RlSW5wdXRCYXNlLFxuICBGTm9kZU91dGxldEJhc2UsXG4gIEZOb2RlT3V0cHV0QmFzZSxcbn0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgSUNvbm5lY3RvckFuZFJlY3QgfSBmcm9tICcuLi9pLWNvbm5lY3Rvci1hbmQtcmVjdCc7XG5pbXBvcnQgeyBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCB9IGZyb20gJy4uL2dldC1jb25uZWN0b3ItYW5kLXJlY3QnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlDb25uZWN0ZWRQb3NpdGlvbnNSZXF1ZXN0LCBpc0NhbGN1bGF0ZU1vZGUgfSBmcm9tICcuLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbi8qKlxuICogRXhlY3V0aW9uIHRoYXQgcmV0cmlldmVzIGFsbCBpbnB1dCBjb25uZWN0b3JzIHRoYXQgY2FuIGJlIGNvbm5lY3RlZCB0byBhIGdpdmVuIG91dHB1dCBvciBvdXRsZXQgY29ubmVjdG9yLFxuICovXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RcbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RSZXF1ZXN0LCBJQ29ubmVjdG9yQW5kUmVjdFtdPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwcml2YXRlIGdldCBfdGFyZ2V0Q29ubmVjdG9ycygpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUuZklucHV0cztcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoe1xuICAgIHNvdXJjZUNvbm5lY3RvcixcbiAgICBwb2ludGVyUG9zaXRpb24sXG4gIH06IENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RSZXF1ZXN0KTogSUNvbm5lY3RvckFuZFJlY3RbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZ2V0Q2FuQmVDb25uZWN0ZWRJbnB1dHMoc291cmNlQ29ubmVjdG9yKS5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JBbmRSZWN0PihuZXcgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QoeCkpO1xuICAgIH0pO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9jYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVzKHJlc3VsdCwgcG9pbnRlclBvc2l0aW9uKTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDYW5CZUNvbm5lY3RlZElucHV0cyhcbiAgICBvdXRwdXRPck91dGxldDogRk5vZGVPdXRwdXRCYXNlIHwgRk5vZGVPdXRsZXRCYXNlLFxuICApOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICBsZXQgdGFyZ2V0Q29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSA9IFtdO1xuICAgIGlmIChvdXRwdXRPck91dGxldC5oYXNDb25uZWN0aW9uTGltaXRzKSB7XG4gICAgICB0YXJnZXRDb25uZWN0b3JzID0gdGhpcy5fdGFyZ2V0Q29ubmVjdG9ycy5maWx0ZXIoKHgpID0+XG4gICAgICAgIG91dHB1dE9yT3V0bGV0LmNhbkNvbm5lY3RUbyh4IGFzIEZOb2RlSW5wdXRCYXNlKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldENvbm5lY3RvcnMgPSB0aGlzLl90YXJnZXRDb25uZWN0b3JzLmZpbHRlcigoeCkgPT4geC5jYW5CZUNvbm5lY3RlZCk7XG5cbiAgICAgIGlmICghb3V0cHV0T3JPdXRsZXQuaXNTZWxmQ29ubmVjdGFibGUpIHtcbiAgICAgICAgdGFyZ2V0Q29ubmVjdG9ycyA9IHRoaXMuX2ZpbHRlclNlbGZDb25uZWN0YWJsZSh0YXJnZXRDb25uZWN0b3JzLCBvdXRwdXRPck91dGxldCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldENvbm5lY3RvcnM7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJTZWxmQ29ubmVjdGFibGUoXG4gICAgdGFyZ2V0Q29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSxcbiAgICBvdXRwdXRPck91dGxldDogRkNvbm5lY3RvckJhc2UsXG4gICk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0YXJnZXRDb25uZWN0b3JzLmZpbHRlcigoeyBmTm9kZUlkIH0pID0+IG91dHB1dE9yT3V0bGV0LmZOb2RlSWQgIT09IGZOb2RlSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlcyhcbiAgICBjb25uZWN0b3JzOiBJQ29ubmVjdG9yQW5kUmVjdFtdLFxuICAgIHBvaW50ZXJQb3NpdGlvbjogSVBvaW50LFxuICApOiB2b2lkIHtcbiAgICBjb25uZWN0b3JzLmZvckVhY2goKHgpID0+IHtcbiAgICAgIGlmIChpc0NhbGN1bGF0ZU1vZGUoeC5mQ29ubmVjdG9yLnVzZXJGQ29ubmVjdGFibGVTaWRlKSkge1xuICAgICAgICB4LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSA9IHRoaXMuX2NhbGN1bGF0ZUJ5Q29ubmVjdGVkUG9zaXRpb25zKFxuICAgICAgICAgIHguZkNvbm5lY3RvcixcbiAgICAgICAgICBwb2ludGVyUG9zaXRpb24sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogRGVsZWdhdGVzIHRvIHRoZSBjb25uZWN0ZWQtcG9zaXRpb25zIGNhbGN1bGF0aW9uIGV4ZWN1dGlvbi4gKi9cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlQnlDb25uZWN0ZWRQb3NpdGlvbnMoXG4gICAgY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSxcbiAgICBwb2ludGVyUG9zaXRpb246IElQb2ludCxcbiAgKTogRUZDb25uZWN0YWJsZVNpZGUge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlKFxuICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zUmVxdWVzdChjb25uZWN0b3IsIHBvaW50ZXJQb3NpdGlvbiksXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './calculate-target-connectors-to-connect-request';
|
|
2
|
+
export * from './calculate-target-connectors-to-connect';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3RvcnMvY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrREFBa0QsQ0FBQztBQUVqRSxjQUFjLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtdGFyZ2V0LWNvbm5lY3RvcnMtdG8tY29ubmVjdC1yZXF1ZXN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtdGFyZ2V0LWNvbm5lY3RvcnMtdG8tY29ubmVjdCc7XG4iXX0=
|
|
@@ -3,8 +3,8 @@ export * from './add-outlet-to-store';
|
|
|
3
3
|
export * from './add-output-to-store';
|
|
4
4
|
export * from './calculate-closest-connector';
|
|
5
5
|
export * from './find-connectable-connector-using-priority-and-position';
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
6
|
+
export * from './calculate-target-connectors-to-connect';
|
|
7
|
+
export * from './calculate-source-connectors-to-connect';
|
|
8
8
|
export * from './get-connector-and-rect';
|
|
9
9
|
export * from './mark-connectable-connectors';
|
|
10
10
|
export * from './remove-input-from-store';
|
|
@@ -14,4 +14,4 @@ export * from './unmark-connectable-connectors';
|
|
|
14
14
|
export * from './i-closest-connector';
|
|
15
15
|
export * from './i-connector-and-rect';
|
|
16
16
|
export * from './providers';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3RvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLDBEQUEwRCxDQUFDO0FBRXpFLGNBQWMsMENBQTBDLENBQUM7QUFFekQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkZC1pbnB1dC10by1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWRkLW91dGxldC10by1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWRkLW91dHB1dC10by1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNsb3Nlc3QtY29ubmVjdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9maW5kLWNvbm5lY3RhYmxlLWNvbm5lY3Rvci11c2luZy1wcmlvcml0eS1hbmQtcG9zaXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0ZS10YXJnZXQtY29ubmVjdG9ycy10by1jb25uZWN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtc291cmNlLWNvbm5lY3RvcnMtdG8tY29ubmVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWNvbm5lY3Rvci1hbmQtcmVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbWFyay1jb25uZWN0YWJsZS1jb25uZWN0b3JzJztcblxuZXhwb3J0ICogZnJvbSAnLi9yZW1vdmUtaW5wdXQtZnJvbS1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcmVtb3ZlLW91dGxldC1mcm9tLXN0b3JlJztcblxuZXhwb3J0ICogZnJvbSAnLi9yZW1vdmUtb3V0cHV0LWZyb20tc3RvcmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3VubWFyay1jb25uZWN0YWJsZS1jb25uZWN0b3JzJztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWNsb3Nlc3QtY29ubmVjdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWNvbm5lY3Rvci1hbmQtcmVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcbiJdfQ==
|
|
@@ -6,10 +6,10 @@ import { RemoveOutletFromStoreExecution } from './remove-outlet-from-store';
|
|
|
6
6
|
import { RemoveOutputFromStoreExecution } from './remove-output-from-store';
|
|
7
7
|
import { MarkConnectableConnectors } from './mark-connectable-connectors';
|
|
8
8
|
import { UnmarkConnectableConnectors } from './unmark-connectable-connectors';
|
|
9
|
-
import {
|
|
9
|
+
import { CalculateTargetConnectorsToConnect } from './calculate-target-connectors-to-connect';
|
|
10
10
|
import { GetConnectorAndRect } from './get-connector-and-rect';
|
|
11
11
|
import { CalculateClosestConnector } from './calculate-closest-connector';
|
|
12
|
-
import {
|
|
12
|
+
import { CalculateSourceConnectorsToConnect } from './calculate-source-connectors-to-connect';
|
|
13
13
|
import { FindConnectableConnectorUsingPriorityAndPositionExecution } from './find-connectable-connector-using-priority-and-position';
|
|
14
14
|
/*
|
|
15
15
|
* This file exports all the connector-related executions that can be used in the FFlow domain.
|
|
@@ -20,8 +20,8 @@ export const F_CONNECTORS_FEATURES = [
|
|
|
20
20
|
AddOutputToStore,
|
|
21
21
|
CalculateClosestConnector,
|
|
22
22
|
FindConnectableConnectorUsingPriorityAndPositionExecution,
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
CalculateSourceConnectorsToConnect,
|
|
24
|
+
CalculateTargetConnectorsToConnect,
|
|
25
25
|
GetConnectorAndRect,
|
|
26
26
|
MarkConnectableConnectors,
|
|
27
27
|
RemoveInputFromStore,
|
|
@@ -29,4 +29,4 @@ export const F_CONNECTORS_FEATURES = [
|
|
|
29
29
|
RemoveOutputFromStoreExecution,
|
|
30
30
|
UnmarkConnectableConnectors,
|
|
31
31
|
];
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1jb25uZWN0b3JzL3Byb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLHlEQUF5RCxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDckk7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxlQUFlO0lBRWYsZ0JBQWdCO0lBRWhCLGdCQUFnQjtJQUVoQix5QkFBeUI7SUFFekIseURBQXlEO0lBRXpELGtDQUFrQztJQUVsQyxrQ0FBa0M7SUFFbEMsbUJBQW1CO0lBRW5CLHlCQUF5QjtJQUV6QixvQkFBb0I7SUFFcEIsOEJBQThCO0lBRTlCLDhCQUE4QjtJQUU5QiwyQkFBMkI7Q0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkZElucHV0VG9TdG9yZSB9IGZyb20gJy4vYWRkLWlucHV0LXRvLXN0b3JlJztcbmltcG9ydCB7IEFkZE91dGxldFRvU3RvcmUgfSBmcm9tICcuL2FkZC1vdXRsZXQtdG8tc3RvcmUnO1xuaW1wb3J0IHsgQWRkT3V0cHV0VG9TdG9yZSB9IGZyb20gJy4vYWRkLW91dHB1dC10by1zdG9yZSc7XG5pbXBvcnQgeyBSZW1vdmVJbnB1dEZyb21TdG9yZSB9IGZyb20gJy4vcmVtb3ZlLWlucHV0LWZyb20tc3RvcmUnO1xuaW1wb3J0IHsgUmVtb3ZlT3V0bGV0RnJvbVN0b3JlRXhlY3V0aW9uIH0gZnJvbSAnLi9yZW1vdmUtb3V0bGV0LWZyb20tc3RvcmUnO1xuaW1wb3J0IHsgUmVtb3ZlT3V0cHV0RnJvbVN0b3JlRXhlY3V0aW9uIH0gZnJvbSAnLi9yZW1vdmUtb3V0cHV0LWZyb20tc3RvcmUnO1xuaW1wb3J0IHsgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9ycyB9IGZyb20gJy4vbWFyay1jb25uZWN0YWJsZS1jb25uZWN0b3JzJztcbmltcG9ydCB7IFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9ycyB9IGZyb20gJy4vdW5tYXJrLWNvbm5lY3RhYmxlLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlVGFyZ2V0Q29ubmVjdG9yc1RvQ29ubmVjdCB9IGZyb20gJy4vY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QnO1xuaW1wb3J0IHsgR2V0Q29ubmVjdG9yQW5kUmVjdCB9IGZyb20gJy4vZ2V0LWNvbm5lY3Rvci1hbmQtcmVjdCc7XG5pbXBvcnQgeyBDYWxjdWxhdGVDbG9zZXN0Q29ubmVjdG9yIH0gZnJvbSAnLi9jYWxjdWxhdGUtY2xvc2VzdC1jb25uZWN0b3InO1xuaW1wb3J0IHsgQ2FsY3VsYXRlU291cmNlQ29ubmVjdG9yc1RvQ29ubmVjdCB9IGZyb20gJy4vY2FsY3VsYXRlLXNvdXJjZS1jb25uZWN0b3JzLXRvLWNvbm5lY3QnO1xuaW1wb3J0IHsgRmluZENvbm5lY3RhYmxlQ29ubmVjdG9yVXNpbmdQcmlvcml0eUFuZFBvc2l0aW9uRXhlY3V0aW9uIH0gZnJvbSAnLi9maW5kLWNvbm5lY3RhYmxlLWNvbm5lY3Rvci11c2luZy1wcmlvcml0eS1hbmQtcG9zaXRpb24nO1xuLypcbiAqIFRoaXMgZmlsZSBleHBvcnRzIGFsbCB0aGUgY29ubmVjdG9yLXJlbGF0ZWQgZXhlY3V0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBGRmxvdyBkb21haW4uXG4gKi9cbmV4cG9ydCBjb25zdCBGX0NPTk5FQ1RPUlNfRkVBVFVSRVMgPSBbXG4gIEFkZElucHV0VG9TdG9yZSxcblxuICBBZGRPdXRsZXRUb1N0b3JlLFxuXG4gIEFkZE91dHB1dFRvU3RvcmUsXG5cbiAgQ2FsY3VsYXRlQ2xvc2VzdENvbm5lY3RvcixcblxuICBGaW5kQ29ubmVjdGFibGVDb25uZWN0b3JVc2luZ1ByaW9yaXR5QW5kUG9zaXRpb25FeGVjdXRpb24sXG5cbiAgQ2FsY3VsYXRlU291cmNlQ29ubmVjdG9yc1RvQ29ubmVjdCxcblxuICBDYWxjdWxhdGVUYXJnZXRDb25uZWN0b3JzVG9Db25uZWN0LFxuXG4gIEdldENvbm5lY3RvckFuZFJlY3QsXG5cbiAgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9ycyxcblxuICBSZW1vdmVJbnB1dEZyb21TdG9yZSxcblxuICBSZW1vdmVPdXRsZXRGcm9tU3RvcmVFeGVjdXRpb24sXG5cbiAgUmVtb3ZlT3V0cHV0RnJvbVN0b3JlRXhlY3V0aW9uLFxuXG4gIFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9ycyxcbl07XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export function isValidEventTrigger(event, fTrigger) {
|
|
2
2
|
return fTrigger(event);
|
|
3
3
|
}
|
|
4
|
-
export function defaultEventTrigger(
|
|
4
|
+
export function defaultEventTrigger(_event) {
|
|
5
5
|
return true;
|
|
6
6
|
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ldmVudC10cmlnZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1ldmVudC10cmlnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFvQixFQUFFLFFBQXVCO0lBQy9FLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBcUI7SUFDdkQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRkV2ZW50VHJpZ2dlciA9IChldmVudDogRlRyaWdnZXJFdmVudCkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgRlRyaWdnZXJFdmVudCA9IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50IHwgV2hlZWxFdmVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFdmVudFRyaWdnZXIoZXZlbnQ6IEZUcmlnZ2VyRXZlbnQsIGZUcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyKTogYm9vbGVhbiB7XG4gIHJldHVybiBmVHJpZ2dlcihldmVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0RXZlbnRUcmlnZ2VyKF9ldmVudDogRlRyaWdnZXJFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export class AddNodeToStoreRequest {
|
|
2
|
-
|
|
2
|
+
nodeOrGroup;
|
|
3
3
|
static fToken = Symbol('AddNodeToStoreRequest');
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vZGUtdG8tc3RvcmUtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9hZGQtbm9kZS10by1zdG9yZS9hZGQtbm9kZS10by1zdG9yZS1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFFSjtJQUQ1QixNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3pELFlBQTRCLFdBQXNCO1FBQXRCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO0lBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5cbmV4cG9ydCBjbGFzcyBBZGROb2RlVG9TdG9yZVJlcXVlc3Qge1xuICBzdGF0aWMgcmVhZG9ubHkgZlRva2VuID0gU3ltYm9sKCdBZGROb2RlVG9TdG9yZVJlcXVlc3QnKTtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG5vZGVPckdyb3VwOiBGTm9kZUJhc2UpIHt9XG59XG4iXX0=
|
|
@@ -10,7 +10,7 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
let AddNodeToStore = class AddNodeToStore {
|
|
11
11
|
_store = inject(FComponentsStore);
|
|
12
12
|
handle(request) {
|
|
13
|
-
this._store.addComponent(this._store.fNodes, request.
|
|
13
|
+
this._store.addComponent(this._store.fNodes, request.nodeOrGroup);
|
|
14
14
|
}
|
|
15
15
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddNodeToStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16
16
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddNodeToStore });
|
|
@@ -22,4 +22,4 @@ export { AddNodeToStore };
|
|
|
22
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddNodeToStore, decorators: [{
|
|
23
23
|
type: Injectable
|
|
24
24
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vZGUtdG8tc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvYWRkLW5vZGUtdG8tc3RvcmUvYWRkLW5vZGUtdG8tc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV0RDs7R0FFRztBQUdJLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWM7SUFDUixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFNUMsTUFBTSxDQUFDLE9BQThCO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRSxDQUFDO3dHQUxVLGNBQWM7NEdBQWQsY0FBYzs7QUFBZCxjQUFjO0lBRDFCLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDO0dBQzdCLGNBQWMsQ0FNMUI7OzRGQU5ZLGNBQWM7a0JBRjFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQWRkTm9kZVRvU3RvcmVSZXF1ZXN0IH0gZnJvbSAnLi9hZGQtbm9kZS10by1zdG9yZS1yZXF1ZXN0JztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuXG4vKipcbiAqIEV4ZWN1dGlvbiB0aGF0IGFkZHMgYSBOb2RlIHRvIHRoZSBGQ29tcG9uZW50c1N0b3JlLlxuICovXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEFkZE5vZGVUb1N0b3JlUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBBZGROb2RlVG9TdG9yZSBpbXBsZW1lbnRzIElFeGVjdXRpb248QWRkTm9kZVRvU3RvcmVSZXF1ZXN0LCB2b2lkPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogQWRkTm9kZVRvU3RvcmVSZXF1ZXN0KTogdm9pZCB7XG4gICAgdGhpcy5fc3RvcmUuYWRkQ29tcG9uZW50KHRoaXMuX3N0b3JlLmZOb2RlcywgcmVxdWVzdC5ub2RlT3JHcm91cCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export class CalculateConnectableSideByConnectedPositionsRequest {
|
|
2
|
+
connector;
|
|
3
|
+
pointerPosition;
|
|
4
|
+
static fToken = Symbol('CalculateConnectableSideByConnectedPositionsRequest');
|
|
5
|
+
constructor(connector, pointerPosition) {
|
|
6
|
+
this.connector = connector;
|
|
7
|
+
this.pointerPosition = pointerPosition;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1ub2RlL2NhbGN1bGF0ZS1jb25uZWN0b3JzLWNvbm5lY3RhYmxlLXNpZGVzL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMvY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxtREFBbUQ7SUFHNUM7SUFDQTtJQUhsQixNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQ3ZGLFlBQ2tCLFNBQXlCLEVBQ3pCLGVBQXdCO1FBRHhCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLG9CQUFlLEdBQWYsZUFBZSxDQUFTO0lBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcblxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zUmVxdWVzdCB7XG4gIHN0YXRpYyByZWFkb25seSBmVG9rZW4gPSBTeW1ib2woJ0NhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zUmVxdWVzdCcpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcG9pbnRlclBvc2l0aW9uPzogSVBvaW50LFxuICApIHt9XG59XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlEQUFpRCxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDOUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLENBQUMsQ0FBQztBQUUvRjs7Ozs7Ozs7R0FRRztBQUdJLElBQU0sMENBQTBDLEdBQWhELE1BQU0sMENBQTBDO0lBR3BDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0M7OztPQUdHO0lBQ2MsU0FBUyxHQUFHLElBQUksT0FBTyxFQUE2QixDQUFDO0lBRXRFLDRGQUE0RjtJQUMzRSxRQUFRLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FDMUMsQ0FBQyxFQUNELE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDMUQsQ0FBQztJQUVGOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxFQUNaLFNBQVMsR0FDeUM7UUFDbEQsNkZBQTZGO1FBQzdGLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0MsSUFBSSxNQUFNLEtBQUssU0FBUztnQkFBRSxPQUFPLE1BQU0sQ0FBQztZQUN4Qyx5Q0FBeUM7WUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRXhDLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCx1REFBdUQ7UUFDdkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNLLGVBQWUsQ0FDckIsYUFBdUMsRUFDdkMsUUFBa0MsRUFDbEMsWUFBb0I7UUFFcEIsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVwRCxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNyQyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUVyQyxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUN2QyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFFBQVEsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUNyQyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUUzQyw4Q0FBOEM7UUFDOUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBRXZCLHVEQUF1RDtRQUN2RCxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBVSxDQUFDO1FBQzNFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDWCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLFNBQVMsR0FDWCxNQUFNLEtBQUssQ0FBQztZQUNWLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJO1lBQ3hCLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDWixDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSztnQkFDekIsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO29CQUNaLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO29CQUN2QixDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBRW5DLG1FQUFtRTtRQUNuRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QyxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sT0FBTyxHQUNYLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO2dCQUM3QixDQUFDLENBQUMsQ0FBQztnQkFDSCxDQUFDLENBQUMsSUFBSSxLQUFLLGlCQUFpQixDQUFDLEtBQUs7b0JBQ2hDLENBQUMsQ0FBQyxDQUFDO29CQUNILENBQUMsQ0FBQyxJQUFJLEtBQUssaUJBQWlCLENBQUMsR0FBRzt3QkFDOUIsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVaLE1BQU0sU0FBUyxHQUNiLE9BQU8sS0FBSyxDQUFDO2dCQUNYLENBQUMsQ0FBQyxTQUFTO2dCQUNYLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQztvQkFDYixDQUFDLENBQUMsVUFBVTtvQkFDWixDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7d0JBQ2IsQ0FBQyxDQUFDLFFBQVE7d0JBQ1YsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUV0QixzREFBc0Q7WUFDdEQsTUFBTSxTQUFTLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUNyQyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQy9CLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsNERBQTREO0lBQ3BELFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO3dHQWhJVSwwQ0FBMEM7NEdBQTFDLDBDQUEwQzs7QUFBMUMsMENBQTBDO0lBRHRELGtCQUFrQixDQUFDLGlEQUFpRCxDQUFDO0dBQ3pELDBDQUEwQyxDQWlJdEQ7OzRGQWpJWSwwQ0FBMEM7a0JBRnRELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24tcmVxdWVzdCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSXNEcmFnU3RhcnRlZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZSc7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBjb25maWd1cmluZyB0aGUgc2lkZSBkZXRlY3Rpb24gdG9sZXJhbmNlIChpbiBwaXhlbHMpLlxuICogQSBuZXcgc2lkZSBtdXN0IGJlYXQgdGhlIHByZXZpb3VzIHNpZGUgYnkgbW9yZSB0aGFuIHRoaXMgdmFsdWUgdG8gc3dpdGNoLlxuICovXG5leHBvcnQgY29uc3QgQ09OTkVDVEFCTEVfU0lERV9FUFNJTE9OID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oJ0NPTk5FQ1RBQkxFX1NJREVfRVBTSUxPTicpO1xuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGNvbm5lY3RhYmxlIHNpZGUgb2YgYSBjb25uZWN0b3IgcmVsYXRpdmUgdG8gaXRzIG5vZGUgaG9zdC5cbiAqXG4gKiBPcHRpbWl6YXRpb25zICYgYmVoYXZpb3I6XG4gKiAtIEh5c3RlcmVzaXMgdmlhIGVwc2lsb24gdG8gYXZvaWQgaml0dGVyIG5lYXIgYm91bmRhcmllcy5cbiAqIC0gUGVyLWNvbm5lY3RvciBtZW1vaXphdGlvbiB1c2luZyBXZWFrTWFwIChubyBsZWFrcykuXG4gKiAtIER1cmluZyBkcmFnIChpc0RyYWdnaW5nID09PSB0cnVlKSB0aGUgbGFzdCBtZW1vcml6ZWQgc2lkZSBpcyByZXR1cm5lZCBpbW1lZGlhdGVseVxuICogICBmb3IgbWF4aW11bSBzdGFiaWxpdHkgYW5kIHBlcmZvcm1hbmNlOyBhIHNhZmUgZmFsbGJhY2sgY29tcHV0ZXMgaXQgaWYgbWlzc2luZy5cbiAqL1xuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUludGVybmFsUG9zaXRpb25SZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5SW50ZXJuYWxQb3NpdGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248Q2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCwgRUZDb25uZWN0YWJsZVNpZGU+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
|