@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.
@@ -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
- * Responsibility:
13
- * - For each connector, decide the effective connectable side according to:
14
- * - AUTO -> by internal position relative to node host
15
- * - CALCULATE -> by positions of connected connectors
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
- * @param request.node - Node whose connectors should be recalculated.
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
- node.connectors.forEach((connector) => {
28
- this._updateConnectorSide(connector);
29
- this._updateConnectedTargets(connector);
30
- });
31
- }
32
- /**
33
- * Calculates and assigns the connectable side for a single connector.
34
- *
35
- * @param connector - The connector being updated.
36
- */
37
- _updateConnectorSide(connector) {
38
- connector.fConnectableSide = this._resolveSideForConnector(connector);
39
- }
40
- /**
41
- * Recalculates connectable sides for all `toConnector` items that are marked as CALCULATE.
42
- *
43
- * @param source - The source connector whose outgoing connections should be processed.
44
- */
45
- _updateConnectedTargets(source) {
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
- * Resolves the effective side for a connector according to its user preference.
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
- _resolveSideForConnector(connector) {
63
+ _resolveSideForConnectorFast(mediator, connector) {
59
64
  const preference = connector.userFConnectableSide;
60
- if (preference === EFConnectableSide.AUTO) {
61
- return this._resolveSideByInternalPosition(connector);
65
+ if (preference !== EFConnectableSide.AUTO && !isCalculateMode(preference)) {
66
+ return preference;
62
67
  }
63
- if (preference === EFConnectableSide.CALCULATE) {
64
- return this._resolveSideByConnectedPositions(connector);
68
+ if (preference === EFConnectableSide.AUTO) {
69
+ return mediator.execute(new CalculateConnectableSideByInternalPositionRequest(connector));
65
70
  }
66
- // Explicit side set by the user
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLW5vZGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9jYWxjdWxhdGUtbm9kZS1jb25uZWN0b3JzLWNvbm5lY3RhYmxlLXNpZGVzL2NhbGN1bGF0ZS1ub2RlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN2SCxPQUFPLEVBQUUsaUJBQWlCLEVBQWtCLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1EQUFtRCxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDMUgsT0FBTyxFQUFFLGlEQUFpRCxFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBRXRIOzs7Ozs7Ozs7R0FTRztBQUdJLElBQU0sdUNBQXVDLEdBQTdDLE1BQU0sdUNBQXVDO0lBR2pDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0M7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBa0Q7UUFDcEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUF5QixFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssb0JBQW9CLENBQUMsU0FBeUI7UUFDcEQsU0FBUyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHVCQUF1QixDQUFDLE1BQXNCO1FBQ3BELE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxNQUFNLENBQUMsb0JBQW9CLEtBQUssaUJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2hFLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssd0JBQXdCLENBQUMsU0FBeUI7UUFDeEQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLG9CQUFvQixDQUFDO1FBRWxELElBQUksVUFBVSxLQUFLLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFRCxJQUFJLFVBQVUsS0FBSyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQyxPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsZ0NBQWdDO1FBQ2hDLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyw4QkFBOEIsQ0FBQyxTQUF5QjtRQUM5RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksaURBQWlELENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssZ0NBQWdDLENBQUMsU0FBeUI7UUFDaEUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0IsSUFBSSxtREFBbUQsQ0FBQyxTQUFTLENBQUMsQ0FDbkUsQ0FBQztJQUNKLENBQUM7d0dBbEZVLHVDQUF1Qzs0R0FBdkMsdUNBQXVDOztBQUF2Qyx1Q0FBdUM7SUFEbkQsa0JBQWtCLENBQUMsOENBQThDLENBQUM7R0FDdEQsdUNBQXVDLENBbUZuRDs7NEZBbkZZLHVDQUF1QztrQkFGbkQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IENhbGN1bGF0ZU5vZGVDb25uZWN0b3JzQ29ubmVjdGFibGVTaWRlc1JlcXVlc3QgfSBmcm9tICcuL2NhbGN1bGF0ZS1ub2RlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMtcmVxdWVzdCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSwgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlDb25uZWN0ZWRQb3NpdGlvbnNSZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1jb25uZWN0ZWQtcG9zaXRpb25zJztcbmltcG9ydCB7IENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5SW50ZXJuYWxQb3NpdGlvblJlcXVlc3QgfSBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWludGVybmFsLXBvc2l0aW9uJztcblxuLyoqXG4gKiBFeGVjdXRpb24gdGhhdCBjYWxjdWxhdGVzIGNvbm5lY3RhYmxlIHNpZGVzIGZvciBhbGwgY29ubmVjdG9ycyBvZiBhIG5vZGUuXG4gKlxuICogUmVzcG9uc2liaWxpdHk6XG4gKiAtIEZvciBlYWNoIGNvbm5lY3RvciwgZGVjaWRlIHRoZSBlZmZlY3RpdmUgY29ubmVjdGFibGUgc2lkZSBhY2NvcmRpbmcgdG86XG4gKiAgIC0gQVVUTyAgICAgICAtPiBieSBpbnRlcm5hbCBwb3NpdGlvbiByZWxhdGl2ZSB0byBub2RlIGhvc3RcbiAqICAgLSBDQUxDVUxBVEUgIC0+IGJ5IHBvc2l0aW9ucyBvZiBjb25uZWN0ZWQgY29ubmVjdG9yc1xuICogICAtIGV4cGxpY2l0ICAgLT4gdXNlIHRoZSB1c2VyLWRlZmluZWQgc2lkZSBhcy1pc1xuICogLSBGb3IgZWFjaCBgdG9Db25uZWN0b3JgIHdob3NlIHVzZXIgc2lkZSBpcyBDQUxDVUxBVEUsIHJlY2FsY3VsYXRlIGl0IGFzIHdlbGwuXG4gKi9cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoQ2FsY3VsYXRlTm9kZUNvbm5lY3RvcnNDb25uZWN0YWJsZVNpZGVzUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVOb2RlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNcbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPENhbGN1bGF0ZU5vZGVDb25uZWN0b3JzQ29ubmVjdGFibGVTaWRlc1JlcXVlc3QsIHZvaWQ+XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgLyoqXG4gICAqIE9yY2hlc3RyYXRlcyBzaWRlIGNhbGN1bGF0aW9uIGZvciBhbGwgY29ubmVjdG9ycyBvZiB0aGUgZ2l2ZW4gbm9kZS5cbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3Qubm9kZSAtIE5vZGUgd2hvc2UgY29ubmVjdG9ycyBzaG91bGQgYmUgcmVjYWxjdWxhdGVkLlxuICAgKi9cbiAgcHVibGljIGhhbmRsZSh7IG5vZGUgfTogQ2FsY3VsYXRlTm9kZUNvbm5lY3RvcnNDb25uZWN0YWJsZVNpZGVzUmVxdWVzdCk6IHZvaWQge1xuICAgIG5vZGUuY29ubmVjdG9ycy5mb3JFYWNoKChjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKSA9PiB7XG4gICAgICB0aGlzLl91cGRhdGVDb25uZWN0b3JTaWRlKGNvbm5lY3Rvcik7XG4gICAgICB0aGlzLl91cGRhdGVDb25uZWN0ZWRUYXJnZXRzKGNvbm5lY3Rvcik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyBhbmQgYXNzaWducyB0aGUgY29ubmVjdGFibGUgc2lkZSBmb3IgYSBzaW5nbGUgY29ubmVjdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gY29ubmVjdG9yIC0gVGhlIGNvbm5lY3RvciBiZWluZyB1cGRhdGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBfdXBkYXRlQ29ubmVjdG9yU2lkZShjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZCB7XG4gICAgY29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUgPSB0aGlzLl9yZXNvbHZlU2lkZUZvckNvbm5lY3Rvcihjb25uZWN0b3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY2FsY3VsYXRlcyBjb25uZWN0YWJsZSBzaWRlcyBmb3IgYWxsIGB0b0Nvbm5lY3RvcmAgaXRlbXMgdGhhdCBhcmUgbWFya2VkIGFzIENBTENVTEFURS5cbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZSAtIFRoZSBzb3VyY2UgY29ubmVjdG9yIHdob3NlIG91dGdvaW5nIGNvbm5lY3Rpb25zIHNob3VsZCBiZSBwcm9jZXNzZWQuXG4gICAqL1xuICBwcml2YXRlIF91cGRhdGVDb25uZWN0ZWRUYXJnZXRzKHNvdXJjZTogRkNvbm5lY3RvckJhc2UpOiB2b2lkIHtcbiAgICBzb3VyY2UudG9Db25uZWN0b3IuZm9yRWFjaCgodGFyZ2V0KSA9PiB7XG4gICAgICBpZiAodGFyZ2V0LnVzZXJGQ29ubmVjdGFibGVTaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5DQUxDVUxBVEUpIHtcbiAgICAgICAgdGFyZ2V0LmZDb25uZWN0YWJsZVNpZGUgPSB0aGlzLl9yZXNvbHZlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zKHRhcmdldCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIGVmZmVjdGl2ZSBzaWRlIGZvciBhIGNvbm5lY3RvciBhY2NvcmRpbmcgdG8gaXRzIHVzZXIgcHJlZmVyZW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGNvbm5lY3RvciAtIFRoZSBjb25uZWN0b3IgdG8gcmVzb2x2ZSBzaWRlIGZvci5cbiAgICogQHJldHVybnMge0VGQ29ubmVjdGFibGVTaWRlfSAtIFRoZSByZXNvbHZlZCBzaWRlLlxuICAgKi9cbiAgcHJpdmF0ZSBfcmVzb2x2ZVNpZGVGb3JDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgICBjb25zdCBwcmVmZXJlbmNlID0gY29ubmVjdG9yLnVzZXJGQ29ubmVjdGFibGVTaWRlO1xuXG4gICAgaWYgKHByZWZlcmVuY2UgPT09IEVGQ29ubmVjdGFibGVTaWRlLkFVVE8pIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXNvbHZlU2lkZUJ5SW50ZXJuYWxQb3NpdGlvbihjb25uZWN0b3IpO1xuICAgIH1cblxuICAgIGlmIChwcmVmZXJlbmNlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5DQUxDVUxBVEUpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXNvbHZlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zKGNvbm5lY3Rvcik7XG4gICAgfVxuXG4gICAgLy8gRXhwbGljaXQgc2lkZSBzZXQgYnkgdGhlIHVzZXJcbiAgICByZXR1cm4gcHJlZmVyZW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHNpZGUgdXNpbmcgdGhlIGNvbm5lY3RvcidzIGludGVybmFsIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBub2RlIGhvc3QuXG4gICAqIERlbGVnYXRlcyB0byBgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdGAuXG4gICAqXG4gICAqIEBwYXJhbSBjb25uZWN0b3IgLSBDdXJyZW50IGNvbm5lY3Rvci5cbiAgICogQHJldHVybnMge0VGQ29ubmVjdGFibGVTaWRlfVxuICAgKi9cbiAgcHJpdmF0ZSBfcmVzb2x2ZVNpZGVCeUludGVybmFsUG9zaXRpb24oY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdChjb25uZWN0b3IpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHNpZGUgdXNpbmcgYXZlcmFnZSBwb3NpdGlvbnMgb2YgY29ubmVjdG9ycyBjb25uZWN0ZWQgdG8gdGhlIGdpdmVuIGNvbm5lY3Rvci5cbiAgICogRGVsZWdhdGVzIHRvIGBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3RgLlxuICAgKlxuICAgKiBAcGFyYW0gY29ubmVjdG9yIC0gQ3VycmVudCBjb25uZWN0b3IuXG4gICAqIEByZXR1cm5zIHtFRkNvbm5lY3RhYmxlU2lkZX1cbiAgICovXG4gIHByaXZhdGUgX3Jlc29sdmVTaWRlQnlDb25uZWN0ZWRQb3NpdGlvbnMoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QoY29ubmVjdG9yKSxcbiAgICApO1xuICB9XG59XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1mLWNvbm5lY3RhYmxlLXNpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdG9ycy9lLWYtY29ubmVjdGFibGUtc2lkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxpQkFZWDtBQVpELFdBQVksaUJBQWlCO0lBQzNCLGtDQUFhLENBQUE7SUFFYixnQ0FBVyxDQUFBO0lBRVgsb0NBQWUsQ0FBQTtJQUVmLHNDQUFpQixDQUFBO0lBRWpCLDRDQUF1QixDQUFBO0lBRXZCLGtDQUFhLENBQUE7QUFDZixDQUFDLEVBWlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQVk1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgTEVGVCA9ICdsZWZ0JyxcblxuICBUT1AgPSAndG9wJyxcblxuICBSSUdIVCA9ICdyaWdodCcsXG5cbiAgQk9UVE9NID0gJ2JvdHRvbScsXG5cbiAgQ0FMQ1VMQVRFID0gJ2NhbGN1bGF0ZScsXG5cbiAgQVVUTyA9ICdhdXRvJyxcbn1cbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1mLWNvbm5lY3RhYmxlLXNpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdG9ycy9lLWYtY29ubmVjdGFibGUtc2lkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxpQkFnQlg7QUFoQkQsV0FBWSxpQkFBaUI7SUFDM0Isa0NBQWEsQ0FBQTtJQUViLGdDQUFXLENBQUE7SUFFWCxvQ0FBZSxDQUFBO0lBRWYsc0NBQWlCLENBQUE7SUFFakIsNENBQXVCLENBQUE7SUFFdkIsa0VBQTZDLENBQUE7SUFFN0MsOERBQXlDLENBQUE7SUFFekMsa0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFoQlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQWdCNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFRkNvbm5lY3RhYmxlU2lkZSB7XG4gIExFRlQgPSAnbGVmdCcsXG5cbiAgVE9QID0gJ3RvcCcsXG5cbiAgUklHSFQgPSAncmlnaHQnLFxuXG4gIEJPVFRPTSA9ICdib3R0b20nLFxuXG4gIENBTENVTEFURSA9ICdjYWxjdWxhdGUnLFxuXG4gIENBTENVTEFURV9IT1JJWk9OVEFMID0gJ2NhbGN1bGF0ZV9ob3Jpem9udGFsJyxcblxuICBDQUxDVUxBVEVfVkVSVElDQUwgPSAnY2FsY3VsYXRlX3ZlcnRpY2FsJyxcblxuICBBVVRPID0gJ2F1dG8nLFxufVxuIl19
@@ -4,5 +4,7 @@ export declare enum EFConnectableSide {
4
4
  RIGHT = "right",
5
5
  BOTTOM = "bottom",
6
6
  CALCULATE = "calculate",
7
+ CALCULATE_HORIZONTAL = "calculate_horizontal",
8
+ CALCULATE_VERTICAL = "calculate_vertical",
7
9
  AUTO = "auto"
8
10
  }
@@ -1,4 +1,4 @@
1
1
  import { FNodeDirective } from './f-node.directive';
2
2
  import { FGroupDirective } from './f-group.directive';
3
- import { FDragHandleDirective } from './f-drag-handle.directive';
4
- export declare const F_NODE_PROVIDERS: (typeof FNodeDirective | typeof FGroupDirective | typeof FDragHandleDirective)[];
3
+ import { FRotateHandleDirective } from './f-rotate-handle';
4
+ export declare const F_NODE_PROVIDERS: (typeof FRotateHandleDirective | typeof FGroupDirective | typeof FNodeDirective)[];