@foblex/flow 17.8.3 → 17.8.4
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-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.d.ts +5 -2
- package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.d.ts +26 -23
- package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides.d.ts +10 -41
- package/domain/f-node/providers.d.ts +1 -1
- package/domain/providers.d.ts +1 -1
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.mjs +10 -2
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +138 -49
- package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides.mjs +55 -64
- package/esm2022/f-connectors/e-f-connectable-side.mjs +3 -1
- package/f-connectors/e-f-connectable-side.d.ts +2 -0
- package/f-node/providers.d.ts +2 -2
- package/fesm2022/foblex-flow.mjs +200 -111
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -3,88 +3,72 @@ import { inject, Injectable } from '@angular/core';
|
|
|
3
3
|
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
4
4
|
import { CalculateNodeConnectorsConnectableSidesRequest } from './calculate-node-connectors-connectable-sides-request';
|
|
5
5
|
import { EFConnectableSide } from '../../../f-connectors';
|
|
6
|
-
import { CalculateConnectableSideByConnectedPositionsRequest } from './calculate-connectable-side-by-connected-positions';
|
|
6
|
+
import { CalculateConnectableSideByConnectedPositionsRequest, } from './calculate-connectable-side-by-connected-positions';
|
|
7
7
|
import { CalculateConnectableSideByInternalPositionRequest } from './calculate-connectable-side-by-internal-position';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
+
/** Fast predicate: whether the user side is a calculate mode. */
|
|
10
|
+
function isCalculateMode(side) {
|
|
11
|
+
return (side === EFConnectableSide.CALCULATE ||
|
|
12
|
+
side === EFConnectableSide.CALCULATE_HORIZONTAL ||
|
|
13
|
+
side === EFConnectableSide.CALCULATE_VERTICAL);
|
|
14
|
+
}
|
|
9
15
|
/**
|
|
10
16
|
* Execution that calculates connectable sides for all connectors of a node.
|
|
11
17
|
*
|
|
12
|
-
*
|
|
13
|
-
* -
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* - explicit -> use the user-defined side as-is
|
|
17
|
-
* - For each `toConnector` whose user side is CALCULATE, recalculate it as well.
|
|
18
|
+
* Performance goals:
|
|
19
|
+
* - Single-pass loops (no `forEach`).
|
|
20
|
+
* - Unique target recomputation (avoid repeated mediator calls for the same target).
|
|
21
|
+
* - Fast checks for "calculate" modes (bit mask instead of `includes`).
|
|
18
22
|
*/
|
|
19
23
|
let CalculateNodeConnectorsConnectableSides = class CalculateNodeConnectorsConnectableSides {
|
|
20
24
|
_mediator = inject(FMediator);
|
|
21
25
|
/**
|
|
22
26
|
* Orchestrates side calculation for all connectors of the given node.
|
|
23
|
-
*
|
|
24
|
-
*
|
|
27
|
+
* Two-phase approach:
|
|
28
|
+
* 1) Update each connector's own side.
|
|
29
|
+
* 2) Collect unique `toConnector` with calculate modes and recompute once.
|
|
25
30
|
*/
|
|
26
31
|
handle({ node }) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
source.toConnector.forEach((target) => {
|
|
47
|
-
if (target.userFConnectableSide === EFConnectableSide.CALCULATE) {
|
|
48
|
-
target.fConnectableSide = this._resolveSideByConnectedPositions(target);
|
|
32
|
+
const mediator = this._mediator;
|
|
33
|
+
const connectors = node.connectors;
|
|
34
|
+
const len = connectors.length;
|
|
35
|
+
for (let i = 0; i < len; i++) {
|
|
36
|
+
const connection = connectors[i];
|
|
37
|
+
connection.fConnectableSide = this._resolveSideForConnectorFast(mediator, connection);
|
|
38
|
+
}
|
|
39
|
+
const toRecalc = new Set();
|
|
40
|
+
for (let i = 0; i < len; i++) {
|
|
41
|
+
const source = connectors[i];
|
|
42
|
+
const outs = source.toConnector;
|
|
43
|
+
if (outs && outs.length) {
|
|
44
|
+
for (let j = 0, m = outs.length; j < m; j++) {
|
|
45
|
+
const target = outs[j];
|
|
46
|
+
const userSide = target.userFConnectableSide;
|
|
47
|
+
if (isCalculateMode(userSide)) {
|
|
48
|
+
toRecalc.add(target);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
49
51
|
}
|
|
50
|
-
}
|
|
52
|
+
}
|
|
53
|
+
if (toRecalc.size > 0) {
|
|
54
|
+
toRecalc.forEach((target) => {
|
|
55
|
+
target.fConnectableSide = mediator.execute(new CalculateConnectableSideByConnectedPositionsRequest(target, userSideToTCalculateMode(target.userFConnectableSide)));
|
|
56
|
+
});
|
|
57
|
+
}
|
|
51
58
|
}
|
|
52
59
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* @param connector - The connector to resolve side for.
|
|
56
|
-
* @returns {EFConnectableSide} - The resolved side.
|
|
60
|
+
* Fast resolver for a single connector.
|
|
61
|
+
* Uses switch and avoids array operations.
|
|
57
62
|
*/
|
|
58
|
-
|
|
63
|
+
_resolveSideForConnectorFast(mediator, connector) {
|
|
59
64
|
const preference = connector.userFConnectableSide;
|
|
60
|
-
if (preference
|
|
61
|
-
return
|
|
65
|
+
if (preference !== EFConnectableSide.AUTO && !isCalculateMode(preference)) {
|
|
66
|
+
return preference;
|
|
62
67
|
}
|
|
63
|
-
if (preference === EFConnectableSide.
|
|
64
|
-
return
|
|
68
|
+
if (preference === EFConnectableSide.AUTO) {
|
|
69
|
+
return mediator.execute(new CalculateConnectableSideByInternalPositionRequest(connector));
|
|
65
70
|
}
|
|
66
|
-
|
|
67
|
-
return preference;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Calculates side using the connector's internal position relative to the node host.
|
|
71
|
-
* Delegates to `CalculateConnectableSideByInternalPositionRequest`.
|
|
72
|
-
*
|
|
73
|
-
* @param connector - Current connector.
|
|
74
|
-
* @returns {EFConnectableSide}
|
|
75
|
-
*/
|
|
76
|
-
_resolveSideByInternalPosition(connector) {
|
|
77
|
-
return this._mediator.execute(new CalculateConnectableSideByInternalPositionRequest(connector));
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Calculates side using average positions of connectors connected to the given connector.
|
|
81
|
-
* Delegates to `CalculateConnectableSideByConnectedPositionsRequest`.
|
|
82
|
-
*
|
|
83
|
-
* @param connector - Current connector.
|
|
84
|
-
* @returns {EFConnectableSide}
|
|
85
|
-
*/
|
|
86
|
-
_resolveSideByConnectedPositions(connector) {
|
|
87
|
-
return this._mediator.execute(new CalculateConnectableSideByConnectedPositionsRequest(connector));
|
|
71
|
+
return mediator.execute(new CalculateConnectableSideByConnectedPositionsRequest(connector, userSideToTCalculateMode(preference)));
|
|
88
72
|
}
|
|
89
73
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateNodeConnectorsConnectableSides, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
90
74
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateNodeConnectorsConnectableSides });
|
|
@@ -96,4 +80,11 @@ export { CalculateNodeConnectorsConnectableSides };
|
|
|
96
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateNodeConnectorsConnectableSides, decorators: [{
|
|
97
81
|
type: Injectable
|
|
98
82
|
}] });
|
|
99
|
-
|
|
83
|
+
/**
|
|
84
|
+
* Utility: maps EFConnectableSide user value to TCalculateMode safely.
|
|
85
|
+
* If your enums are distinct, implement the exact mapping here.
|
|
86
|
+
*/
|
|
87
|
+
function userSideToTCalculateMode(side) {
|
|
88
|
+
return side;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLW5vZGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9jYWxjdWxhdGUtbm9kZS1jb25uZWN0b3JzLWNvbm5lY3RhYmxlLXNpZGVzL2NhbGN1bGF0ZS1ub2RlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN2SCxPQUFPLEVBQUUsaUJBQWlCLEVBQWtCLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUNMLG1EQUFtRCxHQUVwRCxNQUFNLHFEQUFxRCxDQUFDO0FBQzdELE9BQU8sRUFBRSxpREFBaUQsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQUV0SCxpRUFBaUU7QUFDakUsU0FBUyxlQUFlLENBQUMsSUFBdUI7SUFDOUMsT0FBTyxDQUNMLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxTQUFTO1FBQ3BDLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxvQkFBb0I7UUFDL0MsSUFBSSxLQUFLLGlCQUFpQixDQUFDLGtCQUFrQixDQUM5QyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFHSSxJQUFNLHVDQUF1QyxHQUE3QyxNQUFNLHVDQUF1QztJQUdqQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRS9DOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFrRDtRQUNwRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FB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Y3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQ2FsY3VsYXRlTm9kZUNvbm5lY3RvcnNDb25uZWN0YWJsZVNpZGVzUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLW5vZGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy1yZXF1ZXN0JztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlLCBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QsXG4gIFRDYWxjdWxhdGVNb2RlLFxufSBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24nO1xuXG4vKiogRmFzdCBwcmVkaWNhdGU6IHdoZXRoZXIgdGhlIHVzZXIgc2lkZSBpcyBhIGNhbGN1bGF0ZSBtb2RlLiAqL1xuZnVuY3Rpb24gaXNDYWxjdWxhdGVNb2RlKHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgc2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFIHx8XG4gICAgc2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFX0hPUklaT05UQUwgfHxcbiAgICBzaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5DQUxDVUxBVEVfVkVSVElDQUxcbiAgKTtcbn1cblxuLyoqXG4gKiBFeGVjdXRpb24gdGhhdCBjYWxjdWxhdGVzIGNvbm5lY3RhYmxlIHNpZGVzIGZvciBhbGwgY29ubmVjdG9ycyBvZiBhIG5vZGUuXG4gKlxuICogUGVyZm9ybWFuY2UgZ29hbHM6XG4gKiAtIFNpbmdsZS1wYXNzIGxvb3BzIChubyBgZm9yRWFjaGApLlxuICogLSBVbmlxdWUgdGFyZ2V0IHJlY29tcHV0YXRpb24gKGF2b2lkIHJlcGVhdGVkIG1lZGlhdG9yIGNhbGxzIGZvciB0aGUgc2FtZSB0YXJnZXQpLlxuICogLSBGYXN0IGNoZWNrcyBmb3IgXCJjYWxjdWxhdGVcIiBtb2RlcyAoYml0IG1hc2sgaW5zdGVhZCBvZiBgaW5jbHVkZXNgKS5cbiAqL1xuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihDYWxjdWxhdGVOb2RlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZU5vZGVDb25uZWN0b3JzQ29ubmVjdGFibGVTaWRlc1xuICBpbXBsZW1lbnRzIElFeGVjdXRpb248Q2FsY3VsYXRlTm9kZUNvbm5lY3RvcnNDb25uZWN0YWJsZVNpZGVzUmVxdWVzdCwgdm9pZD5cbntcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICAvKipcbiAgICogT3JjaGVzdHJhdGVzIHNpZGUgY2FsY3VsYXRpb24gZm9yIGFsbCBjb25uZWN0b3JzIG9mIHRoZSBnaXZlbiBub2RlLlxuICAgKiBUd28tcGhhc2UgYXBwcm9hY2g6XG4gICAqICAxKSBVcGRhdGUgZWFjaCBjb25uZWN0b3IncyBvd24gc2lkZS5cbiAgICogIDIpIENvbGxlY3QgdW5pcXVlIGB0b0Nvbm5lY3RvcmAgd2l0aCBjYWxjdWxhdGUgbW9kZXMgYW5kIHJlY29tcHV0ZSBvbmNlLlxuICAgKi9cbiAgcHVibGljIGhhbmRsZSh7IG5vZGUgfTogQ2FsY3VsYXRlTm9kZUNvbm5lY3RvcnNDb25uZWN0YWJsZVNpZGVzUmVxdWVzdCk6IHZvaWQge1xuICAgIGNvbnN0IG1lZGlhdG9yID0gdGhpcy5fbWVkaWF0b3I7XG4gICAgY29uc3QgY29ubmVjdG9ycyA9IG5vZGUuY29ubmVjdG9ycztcbiAgICBjb25zdCBsZW4gPSBjb25uZWN0b3JzLmxlbmd0aDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBjb25uZWN0b3JzW2ldO1xuICAgICAgY29ubmVjdGlvbi5mQ29ubmVjdGFibGVTaWRlID0gdGhpcy5fcmVzb2x2ZVNpZGVGb3JDb25uZWN0b3JGYXN0KG1lZGlhdG9yLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB0b1JlY2FsYyA9IG5ldyBTZXQ8RkNvbm5lY3RvckJhc2U+KCk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBzb3VyY2UgPSBjb25uZWN0b3JzW2ldO1xuICAgICAgY29uc3Qgb3V0cyA9IHNvdXJjZS50b0Nvbm5lY3RvcjtcbiAgICAgIGlmIChvdXRzICYmIG91dHMubGVuZ3RoKSB7XG4gICAgICAgIGZvciAobGV0IGogPSAwLCBtID0gb3V0cy5sZW5ndGg7IGogPCBtOyBqKyspIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSBvdXRzW2pdO1xuICAgICAgICAgIGNvbnN0IHVzZXJTaWRlID0gdGFyZ2V0LnVzZXJGQ29ubmVjdGFibGVTaWRlO1xuICAgICAgICAgIGlmIChpc0NhbGN1bGF0ZU1vZGUodXNlclNpZGUpKSB7XG4gICAgICAgICAgICB0b1JlY2FsYy5hZGQodGFyZ2V0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodG9SZWNhbGMuc2l6ZSA+IDApIHtcbiAgICAgIHRvUmVjYWxjLmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgICAgICB0YXJnZXQuZkNvbm5lY3RhYmxlU2lkZSA9IG1lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zUmVxdWVzdChcbiAgICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICAgIHVzZXJTaWRlVG9UQ2FsY3VsYXRlTW9kZSh0YXJnZXQudXNlckZDb25uZWN0YWJsZVNpZGUpLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRmFzdCByZXNvbHZlciBmb3IgYSBzaW5nbGUgY29ubmVjdG9yLlxuICAgKiBVc2VzIHN3aXRjaCBhbmQgYXZvaWRzIGFycmF5IG9wZXJhdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIF9yZXNvbHZlU2lkZUZvckNvbm5lY3RvckZhc3QoXG4gICAgbWVkaWF0b3I6IEZNZWRpYXRvcixcbiAgICBjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlLFxuICApOiBFRkNvbm5lY3RhYmxlU2lkZSB7XG4gICAgY29uc3QgcHJlZmVyZW5jZSA9IGNvbm5lY3Rvci51c2VyRkNvbm5lY3RhYmxlU2lkZTtcblxuICAgIGlmIChwcmVmZXJlbmNlICE9PSBFRkNvbm5lY3RhYmxlU2lkZS5BVVRPICYmICFpc0NhbGN1bGF0ZU1vZGUocHJlZmVyZW5jZSkpIHtcbiAgICAgIHJldHVybiBwcmVmZXJlbmNlO1xuICAgIH1cblxuICAgIGlmIChwcmVmZXJlbmNlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5BVVRPKSB7XG4gICAgICByZXR1cm4gbWVkaWF0b3IuZXhlY3V0ZShuZXcgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdChjb25uZWN0b3IpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QoXG4gICAgICAgIGNvbm5lY3RvcixcbiAgICAgICAgdXNlclNpZGVUb1RDYWxjdWxhdGVNb2RlKHByZWZlcmVuY2UpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogVXRpbGl0eTogbWFwcyBFRkNvbm5lY3RhYmxlU2lkZSB1c2VyIHZhbHVlIHRvIFRDYWxjdWxhdGVNb2RlIHNhZmVseS5cbiAqIElmIHlvdXIgZW51bXMgYXJlIGRpc3RpbmN0LCBpbXBsZW1lbnQgdGhlIGV4YWN0IG1hcHBpbmcgaGVyZS5cbiAqL1xuZnVuY3Rpb24gdXNlclNpZGVUb1RDYWxjdWxhdGVNb2RlKHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogVENhbGN1bGF0ZU1vZGUge1xuICByZXR1cm4gc2lkZSBhcyB1bmtub3duIGFzIFRDYWxjdWxhdGVNb2RlO1xufVxuIl19
|
|
@@ -5,6 +5,8 @@ export var EFConnectableSide;
|
|
|
5
5
|
EFConnectableSide["RIGHT"] = "right";
|
|
6
6
|
EFConnectableSide["BOTTOM"] = "bottom";
|
|
7
7
|
EFConnectableSide["CALCULATE"] = "calculate";
|
|
8
|
+
EFConnectableSide["CALCULATE_HORIZONTAL"] = "calculate_horizontal";
|
|
9
|
+
EFConnectableSide["CALCULATE_VERTICAL"] = "calculate_vertical";
|
|
8
10
|
EFConnectableSide["AUTO"] = "auto";
|
|
9
11
|
})(EFConnectableSide || (EFConnectableSide = {}));
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1mLWNvbm5lY3RhYmxlLXNpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdG9ycy9lLWYtY29ubmVjdGFibGUtc2lkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxpQkFnQlg7QUFoQkQsV0FBWSxpQkFBaUI7SUFDM0Isa0NBQWEsQ0FBQTtJQUViLGdDQUFXLENBQUE7SUFFWCxvQ0FBZSxDQUFBO0lBRWYsc0NBQWlCLENBQUE7SUFFakIsNENBQXVCLENBQUE7SUFFdkIsa0VBQTZDLENBQUE7SUFFN0MsOERBQXlDLENBQUE7SUFFekMsa0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFoQlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQWdCNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFRkNvbm5lY3RhYmxlU2lkZSB7XG4gIExFRlQgPSAnbGVmdCcsXG5cbiAgVE9QID0gJ3RvcCcsXG5cbiAgUklHSFQgPSAncmlnaHQnLFxuXG4gIEJPVFRPTSA9ICdib3R0b20nLFxuXG4gIENBTENVTEFURSA9ICdjYWxjdWxhdGUnLFxuXG4gIENBTENVTEFURV9IT1JJWk9OVEFMID0gJ2NhbGN1bGF0ZV9ob3Jpem9udGFsJyxcblxuICBDQUxDVUxBVEVfVkVSVElDQUwgPSAnY2FsY3VsYXRlX3ZlcnRpY2FsJyxcblxuICBBVVRPID0gJ2F1dG8nLFxufVxuIl19
|
package/f-node/providers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { FNodeDirective } from './f-node.directive';
|
|
2
2
|
import { FGroupDirective } from './f-group.directive';
|
|
3
|
-
import {
|
|
4
|
-
export declare const F_NODE_PROVIDERS: (typeof
|
|
3
|
+
import { FRotateHandleDirective } from './f-rotate-handle';
|
|
4
|
+
export declare const F_NODE_PROVIDERS: (typeof FRotateHandleDirective | typeof FGroupDirective | typeof FNodeDirective)[];
|