@foblex/flow 17.8.4 → 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.
Files changed (170) hide show
  1. package/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect-request.d.ts +8 -0
  2. package/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.d.ts +21 -0
  3. package/domain/f-connectors/calculate-source-connectors-to-connect/index.d.ts +2 -0
  4. package/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect-request.d.ts +8 -0
  5. package/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.d.ts +20 -0
  6. package/domain/f-connectors/calculate-target-connectors-to-connect/index.d.ts +2 -0
  7. package/domain/f-connectors/index.d.ts +2 -2
  8. package/domain/f-connectors/providers.d.ts +3 -3
  9. package/domain/f-event-trigger.d.ts +1 -1
  10. package/domain/f-flow/providers.d.ts +1 -1
  11. package/domain/f-line-alignment/providers.d.ts +1 -1
  12. package/domain/f-node/add-node-to-store/add-node-to-store-request.d.ts +2 -2
  13. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.d.ts +8 -0
  14. package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.d.ts +2 -28
  15. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.d.ts +52 -0
  16. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides-request.d.ts +6 -0
  17. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.d.ts +22 -0
  18. package/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.d.ts +6 -0
  19. package/domain/f-node/calculate-connectors-connectable-sides/constants/index.d.ts +1 -0
  20. package/domain/f-node/calculate-connectors-connectable-sides/index.d.ts +7 -0
  21. package/domain/f-node/calculate-connectors-connectable-sides/models/index.d.ts +1 -0
  22. package/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.d.ts +2 -0
  23. package/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.d.ts +10 -0
  24. package/domain/f-node/calculate-connectors-connectable-sides/utils/index.d.ts +2 -0
  25. package/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.d.ts +7 -0
  26. package/domain/f-node/calculate-input-connections/calculate-input-connections-request.d.ts +2 -2
  27. package/domain/f-node/calculate-input-connections/calculate-input-connections.d.ts +3 -3
  28. package/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.d.ts +2 -3
  29. package/domain/f-node/calculate-output-connections/calculate-output-connections-request.d.ts +2 -2
  30. package/domain/f-node/calculate-output-connections/calculate-output-connections.d.ts +3 -3
  31. package/domain/f-node/index.d.ts +1 -2
  32. package/domain/f-node/providers.d.ts +2 -3
  33. package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.d.ts +2 -2
  34. package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.d.ts +2 -2
  35. package/domain/f-zoom/providers.d.ts +1 -1
  36. package/domain/providers.d.ts +1 -1
  37. package/esm2022/domain/css-cls.mjs +2 -1
  38. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect-request.mjs +10 -0
  39. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.mjs +59 -0
  40. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/index.mjs +3 -0
  41. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect-request.mjs +10 -0
  42. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.mjs +64 -0
  43. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/index.mjs +3 -0
  44. package/esm2022/domain/f-connectors/index.mjs +3 -3
  45. package/esm2022/domain/f-connectors/providers.mjs +5 -5
  46. package/esm2022/domain/f-event-trigger.mjs +2 -2
  47. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store-request.mjs +4 -4
  48. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.mjs +2 -2
  49. 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
  50. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +59 -0
  51. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/index.mjs +3 -0
  52. 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
  53. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.mjs +132 -0
  54. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/index.mjs +3 -0
  55. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides-request.mjs +8 -0
  56. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.mjs +73 -0
  57. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.mjs +12 -0
  58. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/index.mjs +2 -0
  59. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/index.mjs +8 -0
  60. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/index.mjs +2 -0
  61. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.mjs +2 -0
  62. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.mjs +124 -0
  63. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/index.mjs +3 -0
  64. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.mjs +12 -0
  65. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections-request.mjs +4 -4
  66. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.mjs +20 -7
  67. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.mjs +5 -8
  68. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections-request.mjs +4 -4
  69. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.mjs +20 -7
  70. package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.request.mjs +1 -1
  71. package/esm2022/domain/f-node/index.mjs +2 -3
  72. package/esm2022/domain/f-node/providers.mjs +3 -5
  73. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +3 -3
  74. package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.mjs +5 -5
  75. package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.mjs +4 -4
  76. package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect-request.mjs +1 -1
  77. package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect.execution.mjs +2 -2
  78. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +2 -14
  79. package/esm2022/domain/get-normalized-point/get-normalized-point.execution.mjs +4 -1
  80. package/esm2022/domain/index.mjs +1 -1
  81. package/esm2022/domain/is-mobile.mjs +5 -3
  82. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +1 -1
  83. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation-request.mjs +10 -0
  84. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.mjs +58 -0
  85. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation-request.mjs +10 -0
  86. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation.mjs +47 -0
  87. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/index.mjs +3 -3
  88. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/index.mjs +3 -3
  89. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +8 -8
  90. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +3 -3
  91. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +7 -7
  92. package/esm2022/f-draggable/f-connection/providers.mjs +4 -4
  93. package/esm2022/f-draggable/f-draggable.directive.mjs +3 -3
  94. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.mjs +1 -1
  95. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation.mjs +11 -13
  96. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +14 -12
  97. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.mjs +1 -1
  98. package/esm2022/f-node/f-group.directive.mjs +3 -3
  99. package/esm2022/f-node/f-node.directive.mjs +3 -3
  100. package/esm2022/f-storage/f-connectors-store.mjs +11 -0
  101. package/esm2022/f-storage/index.mjs +2 -1
  102. package/f-connection/providers.d.ts +1 -1
  103. package/f-connectors/providers.d.ts +1 -1
  104. package/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation-request.d.ts +8 -0
  105. package/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.d.ts +16 -0
  106. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation-request.d.ts +8 -0
  107. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation.d.ts +14 -0
  108. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/index.d.ts +2 -2
  109. package/f-draggable/f-connection/f-create-connection/create-preparation/index.d.ts +2 -2
  110. package/f-draggable/f-connection/providers.d.ts +2 -2
  111. package/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.d.ts +2 -2
  112. package/f-draggable/f-drop-to-group/providers.d.ts +1 -1
  113. package/f-draggable/f-node-move/create-drag-model-from-selection/providers.d.ts +1 -1
  114. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.d.ts +1 -1
  115. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.d.ts +1 -1
  116. package/f-draggable/f-node-move/providers.d.ts +1 -1
  117. package/f-draggable/providers.d.ts +1 -1
  118. package/f-minimap/domain/providers.d.ts +1 -1
  119. package/f-minimap/providers.d.ts +1 -1
  120. package/f-node/providers.d.ts +1 -1
  121. package/f-selection-area/domain/providers.d.ts +1 -1
  122. package/f-storage/f-connectors-store.d.ts +6 -0
  123. package/f-storage/index.d.ts +1 -0
  124. package/f-storage/providers.d.ts +1 -1
  125. package/fesm2022/foblex-flow.mjs +1278 -1161
  126. package/fesm2022/foblex-flow.mjs.map +1 -1
  127. package/package.json +1 -1
  128. 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
  129. 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
  130. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/index.d.ts +0 -2
  131. 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
  132. 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
  133. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.d.ts +0 -2
  134. package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.d.ts +0 -9
  135. 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
  136. package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides-request.d.ts +0 -6
  137. package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides.d.ts +0 -28
  138. package/domain/f-node/calculate-node-connectors-connectable-sides/index.d.ts +0 -4
  139. package/domain/f-node/get-nodes/get-nodes-request.d.ts +0 -3
  140. package/domain/f-node/get-nodes/get-nodes.d.ts +0 -13
  141. package/domain/f-node/get-nodes/index.d.ts +0 -2
  142. 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
  143. 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
  144. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/index.mjs +0 -3
  145. 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
  146. 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
  147. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.mjs +0 -3
  148. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.mjs +0 -16
  149. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +0 -181
  150. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/index.mjs +0 -3
  151. 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
  152. 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
  153. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/index.mjs +0 -3
  154. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides-request.mjs +0 -8
  155. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides.mjs +0 -90
  156. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/index.mjs +0 -5
  157. package/esm2022/domain/f-node/get-nodes/get-nodes-request.mjs +0 -4
  158. package/esm2022/domain/f-node/get-nodes/get-nodes.mjs +0 -25
  159. package/esm2022/domain/f-node/get-nodes/index.mjs +0 -3
  160. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.mjs +0 -52
  161. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.request.mjs +0 -10
  162. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.mjs +0 -49
  163. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.request.mjs +0 -10
  164. package/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.d.ts +0 -16
  165. package/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.request.d.ts +0 -8
  166. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.d.ts +0 -14
  167. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.request.d.ts +0 -8
  168. /package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-connected-positions/index.d.ts +0 -0
  169. /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
  170. /package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-internal-position/index.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foblex/flow",
3
- "version": "17.8.4",
3
+ "version": "17.8.5",
4
4
  "description": "An Angular library designed to simplify the creation and manipulation of dynamic flow. Provides components for flows, nodes, and connections, automating node manipulation and inter-node connections.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -1,17 +0,0 @@
1
- import { GetAllCanBeConnectedInputsAndRectsRequest } from './get-all-can-be-connected-inputs-and-rects.request';
2
- import { IExecution } from '@foblex/mediator';
3
- import { IConnectorAndRect } from '../i-connector-and-rect';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Execution that retrieves all input connectors that can be connected to a given output or outlet connector,
7
- */
8
- export declare class GetAllCanBeConnectedInputsAndRectsExecution implements IExecution<GetAllCanBeConnectedInputsAndRectsRequest, IConnectorAndRect[]> {
9
- private readonly _mediator;
10
- private readonly _store;
11
- private get _targetConnectors();
12
- handle({ outputOrOutlet, }: GetAllCanBeConnectedInputsAndRectsRequest): IConnectorAndRect[];
13
- private _getCanBeConnectedInputs;
14
- private _filterSelfConnectable;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<GetAllCanBeConnectedInputsAndRectsExecution, never>;
16
- static ɵprov: i0.ɵɵInjectableDeclaration<GetAllCanBeConnectedInputsAndRectsExecution>;
17
- }
@@ -1,6 +0,0 @@
1
- import { FNodeOutletBase, FNodeOutputBase } from '../../../f-connectors';
2
- export declare class GetAllCanBeConnectedInputsAndRectsRequest {
3
- readonly outputOrOutlet: FNodeOutputBase | FNodeOutletBase;
4
- static readonly fToken: unique symbol;
5
- constructor(outputOrOutlet: FNodeOutputBase | FNodeOutletBase);
6
- }
@@ -1,2 +0,0 @@
1
- export * from './get-all-can-be-connected-inputs-and-rects.request';
2
- export * from './get-all-can-be-connected-inputs-and-rects.execution';
@@ -1,18 +0,0 @@
1
- import { GetAllCanBeConnectedSourceConnectorsAndRectsRequest } from './get-all-can-be-connected-source-connectors-and-rects.request';
2
- import { IExecution } from '@foblex/mediator';
3
- import { IConnectorAndRect } from '../i-connector-and-rect';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Execution that retrieves all source connectors that can be connected to a given target connector,
7
- * along with their rectangles.
8
- * Source - Output or Outlet connectors.
9
- */
10
- export declare class GetAllCanBeConnectedSourceConnectorsAndRectsExecution implements IExecution<GetAllCanBeConnectedSourceConnectorsAndRectsRequest, IConnectorAndRect[]> {
11
- private readonly _mediator;
12
- private readonly _store;
13
- private get _sourceConnectors();
14
- handle({ targetConnector, }: GetAllCanBeConnectedSourceConnectorsAndRectsRequest): IConnectorAndRect[];
15
- private _getCanBeConnectedSourceConnectors;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<GetAllCanBeConnectedSourceConnectorsAndRectsExecution, never>;
17
- static ɵprov: i0.ɵɵInjectableDeclaration<GetAllCanBeConnectedSourceConnectorsAndRectsExecution>;
18
- }
@@ -1,6 +0,0 @@
1
- import { FNodeInputBase } from '../../../f-connectors';
2
- export declare class GetAllCanBeConnectedSourceConnectorsAndRectsRequest {
3
- readonly targetConnector: FNodeInputBase;
4
- static readonly fToken: unique symbol;
5
- constructor(targetConnector: FNodeInputBase);
6
- }
@@ -1,2 +0,0 @@
1
- export * from './get-all-can-be-connected-source-connectors-and-rects.request';
2
- export * from './get-all-can-be-connected-source-connectors-and-rects.execution';
@@ -1,9 +0,0 @@
1
- import { EFConnectableSide, FConnectorBase } from '../../../../f-connectors';
2
- export type TCalculateMode = EFConnectableSide.CALCULATE | EFConnectableSide.CALCULATE_HORIZONTAL | EFConnectableSide.CALCULATE_VERTICAL;
3
- export declare const CALCULATE_MODES: EFConnectableSide[];
4
- export declare class CalculateConnectableSideByConnectedPositionsRequest {
5
- readonly connector: FConnectorBase;
6
- readonly mode: TCalculateMode;
7
- static readonly fToken: unique symbol;
8
- constructor(connector: FConnectorBase, mode: TCalculateMode);
9
- }
@@ -1,20 +0,0 @@
1
- import { IExecution } from '@foblex/mediator';
2
- import { CalculateConnectableSideByInternalPositionRequest } from './calculate-connectable-side-by-internal-position-request';
3
- import { EFConnectableSide } from '../../../../f-connectors';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Execution that calculates the connectable side for a connector
7
- * based on the internal position of the connector relative to its node host.
8
- */
9
- export declare class CalculateConnectableSideByInternalPosition implements IExecution<CalculateConnectableSideByInternalPositionRequest, EFConnectableSide> {
10
- handle({ connector, }: CalculateConnectableSideByInternalPositionRequest): EFConnectableSide;
11
- /**
12
- * Determines the side of the connector relative to the node host based on the minimum distance.
13
- * @param connectorHost
14
- * @param nodeHost
15
- * @private
16
- */
17
- private _getSideByDelta;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<CalculateConnectableSideByInternalPosition, never>;
19
- static ɵprov: i0.ɵɵInjectableDeclaration<CalculateConnectableSideByInternalPosition>;
20
- }
@@ -1,6 +0,0 @@
1
- import { FNodeBase } from '../../../f-node';
2
- export declare class CalculateNodeConnectorsConnectableSidesRequest {
3
- readonly node: FNodeBase;
4
- static readonly fToken: unique symbol;
5
- constructor(node: FNodeBase);
6
- }
@@ -1,28 +0,0 @@
1
- import { IExecution } from '@foblex/mediator';
2
- import { CalculateNodeConnectorsConnectableSidesRequest } from './calculate-node-connectors-connectable-sides-request';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Execution that calculates connectable sides for all connectors of a node.
6
- *
7
- * Performance goals:
8
- * - Single-pass loops (no `forEach`).
9
- * - Unique target recomputation (avoid repeated mediator calls for the same target).
10
- * - Fast checks for "calculate" modes (bit mask instead of `includes`).
11
- */
12
- export declare class CalculateNodeConnectorsConnectableSides implements IExecution<CalculateNodeConnectorsConnectableSidesRequest, void> {
13
- private readonly _mediator;
14
- /**
15
- * Orchestrates side calculation for all connectors of the given node.
16
- * Two-phase approach:
17
- * 1) Update each connector's own side.
18
- * 2) Collect unique `toConnector` with calculate modes and recompute once.
19
- */
20
- handle({ node }: CalculateNodeConnectorsConnectableSidesRequest): void;
21
- /**
22
- * Fast resolver for a single connector.
23
- * Uses switch and avoids array operations.
24
- */
25
- private _resolveSideForConnectorFast;
26
- static ɵfac: i0.ɵɵFactoryDeclaration<CalculateNodeConnectorsConnectableSides, never>;
27
- static ɵprov: i0.ɵɵInjectableDeclaration<CalculateNodeConnectorsConnectableSides>;
28
- }
@@ -1,4 +0,0 @@
1
- export * from './calculate-connectable-side-by-connected-positions';
2
- export * from './calculate-connectable-side-by-internal-position';
3
- export * from './calculate-node-connectors-connectable-sides';
4
- export * from './calculate-node-connectors-connectable-sides-request';
@@ -1,3 +0,0 @@
1
- export declare class GetNodesRequest {
2
- static readonly fToken: unique symbol;
3
- }
@@ -1,13 +0,0 @@
1
- import { IExecution } from '@foblex/mediator';
2
- import { GetNodesRequest } from './get-nodes-request';
3
- import { FNodeBase } from '../../../f-node';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Execution that retrieves all nodes from the FComponentsStore.
7
- */
8
- export declare class GetNodes implements IExecution<GetNodesRequest, FNodeBase[]> {
9
- private readonly _store;
10
- handle(request: GetNodesRequest): FNodeBase[];
11
- static ɵfac: i0.ɵɵFactoryDeclaration<GetNodes, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<GetNodes>;
13
- }
@@ -1,2 +0,0 @@
1
- export * from './get-nodes';
2
- export * from './get-nodes-request';
@@ -1,48 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { GetAllCanBeConnectedInputsAndRectsRequest } from './get-all-can-be-connected-inputs-and-rects.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 * as i0 from "@angular/core";
8
- /**
9
- * Execution that retrieves all input connectors that can be connected to a given output or outlet connector,
10
- */
11
- let GetAllCanBeConnectedInputsAndRectsExecution = class GetAllCanBeConnectedInputsAndRectsExecution {
12
- _mediator = inject(FMediator);
13
- _store = inject(FComponentsStore);
14
- get _targetConnectors() {
15
- return this._store.fInputs;
16
- }
17
- handle({ outputOrOutlet, }) {
18
- return this._getCanBeConnectedInputs(outputOrOutlet).map((x) => {
19
- return this._mediator.execute(new GetConnectorAndRectRequest(x));
20
- });
21
- }
22
- _getCanBeConnectedInputs(outputOrOutlet) {
23
- let targetConnectors = [];
24
- if (outputOrOutlet.hasConnectionLimits) {
25
- targetConnectors = this._targetConnectors.filter((x) => outputOrOutlet.canConnectTo(x));
26
- }
27
- else {
28
- targetConnectors = this._targetConnectors.filter((x) => x.canBeConnected);
29
- if (!outputOrOutlet.isSelfConnectable) {
30
- targetConnectors = this._filterSelfConnectable(targetConnectors, outputOrOutlet);
31
- }
32
- }
33
- return targetConnectors;
34
- }
35
- _filterSelfConnectable(targetConnectors, outputOrOutlet) {
36
- return targetConnectors.filter(({ fNodeId }) => outputOrOutlet.fNodeId !== fNodeId);
37
- }
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetAllCanBeConnectedInputsAndRectsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetAllCanBeConnectedInputsAndRectsExecution });
40
- };
41
- GetAllCanBeConnectedInputsAndRectsExecution = __decorate([
42
- FExecutionRegister(GetAllCanBeConnectedInputsAndRectsRequest)
43
- ], GetAllCanBeConnectedInputsAndRectsExecution);
44
- export { GetAllCanBeConnectedInputsAndRectsExecution };
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetAllCanBeConnectedInputsAndRectsExecution, decorators: [{
46
- type: Injectable
47
- }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLWlucHV0cy1hbmQtcmVjdHMuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1jb25uZWN0b3JzL2dldC1hbGwtY2FuLWJlLWNvbm5lY3RlZC1pbnB1dHMtYW5kLXJlY3RzL2dldC1hbGwtY2FuLWJlLWNvbm5lY3RlZC1pbnB1dHMtYW5kLXJlY3RzLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDaEgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBTzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUV2RTs7R0FFRztBQUdJLElBQU0sMkNBQTJDLEdBQWpELE1BQU0sMkNBQTJDO0lBR3JDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRW5ELElBQVksaUJBQWlCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxFQUNaLGNBQWMsR0FDNEI7UUFDMUMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDN0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sd0JBQXdCLENBQzlCLGNBQWlEO1FBRWpELElBQUksZ0JBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUM1QyxJQUFJLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3ZDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNyRCxjQUFjLENBQUMsWUFBWSxDQUFDLENBQW1CLENBQUMsQ0FDakQsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRTFFLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ25GLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRU8sc0JBQXNCLENBQzVCLGdCQUFrQyxFQUNsQyxjQUE4QjtRQUU5QixPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDdEYsQ0FBQzt3R0ExQ1UsMkNBQTJDOzRHQUEzQywyQ0FBMkM7O0FBQTNDLDJDQUEyQztJQUR2RCxrQkFBa0IsQ0FBQyx5Q0FBeUMsQ0FBQztHQUNqRCwyQ0FBMkMsQ0EyQ3ZEOzs0RkEzQ1ksMkNBQTJDO2tCQUZ2RCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNBbmRSZWN0c1JlcXVlc3QgfSBmcm9tICcuL2dldC1hbGwtY2FuLWJlLWNvbm5lY3RlZC1pbnB1dHMtYW5kLXJlY3RzLnJlcXVlc3QnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgRkNvbm5lY3RvckJhc2UsXG4gIEZOb2RlSW5wdXRCYXNlLFxuICBGTm9kZU91dGxldEJhc2UsXG4gIEZOb2RlT3V0cHV0QmFzZSxcbn0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgSUNvbm5lY3RvckFuZFJlY3QgfSBmcm9tICcuLi9pLWNvbm5lY3Rvci1hbmQtcmVjdCc7XG5pbXBvcnQgeyBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCB9IGZyb20gJy4uL2dldC1jb25uZWN0b3ItYW5kLXJlY3QnO1xuXG4vKipcbiAqIEV4ZWN1dGlvbiB0aGF0IHJldHJpZXZlcyBhbGwgaW5wdXQgY29ubmVjdG9ycyB0aGF0IGNhbiBiZSBjb25uZWN0ZWQgdG8gYSBnaXZlbiBvdXRwdXQgb3Igb3V0bGV0IGNvbm5lY3RvcixcbiAqL1xuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0c0FuZFJlY3RzUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0c0FuZFJlY3RzRXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0c0FuZFJlY3RzUmVxdWVzdCwgSUNvbm5lY3RvckFuZFJlY3RbXT5cbntcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG5cbiAgcHJpdmF0ZSBnZXQgX3RhcmdldENvbm5lY3RvcnMoKTogRkNvbm5lY3RvckJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZJbnB1dHM7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHtcbiAgICBvdXRwdXRPck91dGxldCxcbiAgfTogR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNBbmRSZWN0c1JlcXVlc3QpOiBJQ29ubmVjdG9yQW5kUmVjdFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0Q2FuQmVDb25uZWN0ZWRJbnB1dHMob3V0cHV0T3JPdXRsZXQpLm1hcCgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IEdldENvbm5lY3RvckFuZFJlY3RSZXF1ZXN0KHgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENhbkJlQ29ubmVjdGVkSW5wdXRzKFxuICAgIG91dHB1dE9yT3V0bGV0OiBGTm9kZU91dHB1dEJhc2UgfCBGTm9kZU91dGxldEJhc2UsXG4gICk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIGxldCB0YXJnZXRDb25uZWN0b3JzOiBGQ29ubmVjdG9yQmFzZVtdID0gW107XG4gICAgaWYgKG91dHB1dE9yT3V0bGV0Lmhhc0Nvbm5lY3Rpb25MaW1pdHMpIHtcbiAgICAgIHRhcmdldENvbm5lY3RvcnMgPSB0aGlzLl90YXJnZXRDb25uZWN0b3JzLmZpbHRlcigoeCkgPT5cbiAgICAgICAgb3V0cHV0T3JPdXRsZXQuY2FuQ29ubmVjdFRvKHggYXMgRk5vZGVJbnB1dEJhc2UpLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFyZ2V0Q29ubmVjdG9ycyA9IHRoaXMuX3RhcmdldENvbm5lY3RvcnMuZmlsdGVyKCh4KSA9PiB4LmNhbkJlQ29ubmVjdGVkKTtcblxuICAgICAgaWYgKCFvdXRwdXRPck91dGxldC5pc1NlbGZDb25uZWN0YWJsZSkge1xuICAgICAgICB0YXJnZXRDb25uZWN0b3JzID0gdGhpcy5fZmlsdGVyU2VsZkNvbm5lY3RhYmxlKHRhcmdldENvbm5lY3RvcnMsIG91dHB1dE9yT3V0bGV0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0Q29ubmVjdG9ycztcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlclNlbGZDb25uZWN0YWJsZShcbiAgICB0YXJnZXRDb25uZWN0b3JzOiBGQ29ubmVjdG9yQmFzZVtdLFxuICAgIG91dHB1dE9yT3V0bGV0OiBGQ29ubmVjdG9yQmFzZSxcbiAgKTogRkNvbm5lY3RvckJhc2VbXSB7XG4gICAgcmV0dXJuIHRhcmdldENvbm5lY3RvcnMuZmlsdGVyKCh7IGZOb2RlSWQgfSkgPT4gb3V0cHV0T3JPdXRsZXQuZk5vZGVJZCAhPT0gZk5vZGVJZCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +0,0 @@
1
- export class GetAllCanBeConnectedInputsAndRectsRequest {
2
- outputOrOutlet;
3
- static fToken = Symbol('GetAllCanBeConnectedInputsAndRectsRequest');
4
- constructor(outputOrOutlet) {
5
- this.outputOrOutlet = outputOrOutlet;
6
- }
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLWlucHV0cy1hbmQtcmVjdHMucmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2YtY29ubmVjdG9ycy9nZXQtYWxsLWNhbi1iZS1jb25uZWN0ZWQtaW5wdXRzLWFuZC1yZWN0cy9nZXQtYWxsLWNhbi1iZS1jb25uZWN0ZWQtaW5wdXRzLWFuZC1yZWN0cy5yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyx5Q0FBeUM7SUFFeEI7SUFENUIsTUFBTSxDQUFVLE1BQU0sR0FBRyxNQUFNLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUM3RSxZQUE0QixjQUFpRDtRQUFqRCxtQkFBYyxHQUFkLGNBQWMsQ0FBbUM7SUFBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRk5vZGVPdXRsZXRCYXNlLCBGTm9kZU91dHB1dEJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgY2xhc3MgR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNBbmRSZWN0c1JlcXVlc3Qge1xuICBzdGF0aWMgcmVhZG9ubHkgZlRva2VuID0gU3ltYm9sKCdHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0c0FuZFJlY3RzUmVxdWVzdCcpO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgb3V0cHV0T3JPdXRsZXQ6IEZOb2RlT3V0cHV0QmFzZSB8IEZOb2RlT3V0bGV0QmFzZSkge31cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './get-all-can-be-connected-inputs-and-rects.request';
2
- export * from './get-all-can-be-connected-inputs-and-rects.execution';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3RvcnMvZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLWlucHV0cy1hbmQtcmVjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxREFBcUQsQ0FBQztBQUVwRSxjQUFjLHVEQUF1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9nZXQtYWxsLWNhbi1iZS1jb25uZWN0ZWQtaW5wdXRzLWFuZC1yZWN0cy5yZXF1ZXN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9nZXQtYWxsLWNhbi1iZS1jb25uZWN0ZWQtaW5wdXRzLWFuZC1yZWN0cy5leGVjdXRpb24nO1xuIl19
@@ -1,43 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { GetAllCanBeConnectedSourceConnectorsAndRectsRequest } from './get-all-can-be-connected-source-connectors-and-rects.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 * as i0 from "@angular/core";
8
- /**
9
- * Execution that retrieves all source connectors that can be connected to a given target connector,
10
- * along with their rectangles.
11
- * Source - Output or Outlet connectors.
12
- */
13
- let GetAllCanBeConnectedSourceConnectorsAndRectsExecution = class GetAllCanBeConnectedSourceConnectorsAndRectsExecution {
14
- _mediator = inject(FMediator);
15
- _store = inject(FComponentsStore);
16
- get _sourceConnectors() {
17
- return this._store.fOutputs;
18
- }
19
- handle({ targetConnector, }) {
20
- return this._getCanBeConnectedSourceConnectors(targetConnector).map((x) => {
21
- return this._mediator.execute(new GetConnectorAndRectRequest(x));
22
- });
23
- }
24
- _getCanBeConnectedSourceConnectors(targetConnector) {
25
- return this._sourceConnectors.filter((x) => {
26
- let result = x.canBeConnected;
27
- if (result && x.hasConnectionLimits) {
28
- result = x.canConnectTo(targetConnector);
29
- }
30
- return result;
31
- });
32
- }
33
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetAllCanBeConnectedSourceConnectorsAndRectsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetAllCanBeConnectedSourceConnectorsAndRectsExecution });
35
- };
36
- GetAllCanBeConnectedSourceConnectorsAndRectsExecution = __decorate([
37
- FExecutionRegister(GetAllCanBeConnectedSourceConnectorsAndRectsRequest)
38
- ], GetAllCanBeConnectedSourceConnectorsAndRectsExecution);
39
- export { GetAllCanBeConnectedSourceConnectorsAndRectsExecution };
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetAllCanBeConnectedSourceConnectorsAndRectsExecution, decorators: [{
41
- type: Injectable
42
- }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLXNvdXJjZS1jb25uZWN0b3JzLWFuZC1yZWN0cy5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3RvcnMvZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLXNvdXJjZS1jb25uZWN0b3JzLWFuZC1yZWN0cy9nZXQtYWxsLWNhbi1iZS1jb25uZWN0ZWQtc291cmNlLWNvbm5lY3RvcnMtYW5kLXJlY3RzLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLG1EQUFtRCxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDckksT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUV2RTs7OztHQUlHO0FBR0ksSUFBTSxxREFBcUQsR0FBM0QsTUFBTSxxREFBcUQ7SUFHL0MsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFbkQsSUFBWSxpQkFBaUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQTZCLENBQUM7SUFDbkQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxFQUNaLGVBQWUsR0FDcUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsa0NBQWtDLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0NBQWtDLENBQUMsZUFBK0I7UUFDeEUsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUM5QixJQUFJLE1BQU0sSUFBSSxDQUFDLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDM0MsQ0FBQztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0EzQlUscURBQXFEOzRHQUFyRCxxREFBcUQ7O0FBQXJELHFEQUFxRDtJQURqRSxrQkFBa0IsQ0FBQyxtREFBbUQsQ0FBQztHQUMzRCxxREFBcUQsQ0E0QmpFOzs0RkE1QlkscURBQXFEO2tCQUZqRSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0QWxsQ2FuQmVDb25uZWN0ZWRTb3VyY2VDb25uZWN0b3JzQW5kUmVjdHNSZXF1ZXN0IH0gZnJvbSAnLi9nZXQtYWxsLWNhbi1iZS1jb25uZWN0ZWQtc291cmNlLWNvbm5lY3RvcnMtYW5kLXJlY3RzLnJlcXVlc3QnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UsIEZOb2RlSW5wdXRCYXNlLCBGTm9kZU91dHB1dEJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBJQ29ubmVjdG9yQW5kUmVjdCB9IGZyb20gJy4uL2ktY29ubmVjdG9yLWFuZC1yZWN0JztcbmltcG9ydCB7IEdldENvbm5lY3RvckFuZFJlY3RSZXF1ZXN0IH0gZnJvbSAnLi4vZ2V0LWNvbm5lY3Rvci1hbmQtcmVjdCc7XG5cbi8qKlxuICogRXhlY3V0aW9uIHRoYXQgcmV0cmlldmVzIGFsbCBzb3VyY2UgY29ubmVjdG9ycyB0aGF0IGNhbiBiZSBjb25uZWN0ZWQgdG8gYSBnaXZlbiB0YXJnZXQgY29ubmVjdG9yLFxuICogYWxvbmcgd2l0aCB0aGVpciByZWN0YW5nbGVzLlxuICogU291cmNlIC0gT3V0cHV0IG9yIE91dGxldCBjb25uZWN0b3JzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEdldEFsbENhbkJlQ29ubmVjdGVkU291cmNlQ29ubmVjdG9yc0FuZFJlY3RzUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBHZXRBbGxDYW5CZUNvbm5lY3RlZFNvdXJjZUNvbm5lY3RvcnNBbmRSZWN0c0V4ZWN1dGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248R2V0QWxsQ2FuQmVDb25uZWN0ZWRTb3VyY2VDb25uZWN0b3JzQW5kUmVjdHNSZXF1ZXN0LCBJQ29ubmVjdG9yQW5kUmVjdFtdPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwcml2YXRlIGdldCBfc291cmNlQ29ubmVjdG9ycygpOiBGTm9kZU91dHB1dEJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZPdXRwdXRzIGFzIEZOb2RlT3V0cHV0QmFzZVtdO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZSh7XG4gICAgdGFyZ2V0Q29ubmVjdG9yLFxuICB9OiBHZXRBbGxDYW5CZUNvbm5lY3RlZFNvdXJjZUNvbm5lY3RvcnNBbmRSZWN0c1JlcXVlc3QpOiBJQ29ubmVjdG9yQW5kUmVjdFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0Q2FuQmVDb25uZWN0ZWRTb3VyY2VDb25uZWN0b3JzKHRhcmdldENvbm5lY3RvcikubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QoeCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q2FuQmVDb25uZWN0ZWRTb3VyY2VDb25uZWN0b3JzKHRhcmdldENvbm5lY3RvcjogRk5vZGVJbnB1dEJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fc291cmNlQ29ubmVjdG9ycy5maWx0ZXIoKHgpID0+IHtcbiAgICAgIGxldCByZXN1bHQgPSB4LmNhbkJlQ29ubmVjdGVkO1xuICAgICAgaWYgKHJlc3VsdCAmJiB4Lmhhc0Nvbm5lY3Rpb25MaW1pdHMpIHtcbiAgICAgICAgcmVzdWx0ID0geC5jYW5Db25uZWN0VG8odGFyZ2V0Q29ubmVjdG9yKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,8 +0,0 @@
1
- export class GetAllCanBeConnectedSourceConnectorsAndRectsRequest {
2
- targetConnector;
3
- static fToken = Symbol('GetAllCanBeConnectedSourceConnectorsAndRectsRequest');
4
- constructor(targetConnector) {
5
- this.targetConnector = targetConnector;
6
- }
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLXNvdXJjZS1jb25uZWN0b3JzLWFuZC1yZWN0cy5yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1jb25uZWN0b3JzL2dldC1hbGwtY2FuLWJlLWNvbm5lY3RlZC1zb3VyY2UtY29ubmVjdG9ycy1hbmQtcmVjdHMvZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLXNvdXJjZS1jb25uZWN0b3JzLWFuZC1yZWN0cy5yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxtREFBbUQ7SUFHbEM7SUFGNUIsTUFBTSxDQUFVLE1BQU0sR0FBRyxNQUFNLENBQUMscURBQXFELENBQUMsQ0FBQztJQUV2RixZQUE0QixlQUErQjtRQUEvQixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7SUFBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRk5vZGVJbnB1dEJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgY2xhc3MgR2V0QWxsQ2FuQmVDb25uZWN0ZWRTb3VyY2VDb25uZWN0b3JzQW5kUmVjdHNSZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnR2V0QWxsQ2FuQmVDb25uZWN0ZWRTb3VyY2VDb25uZWN0b3JzQW5kUmVjdHNSZXF1ZXN0Jyk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHRhcmdldENvbm5lY3RvcjogRk5vZGVJbnB1dEJhc2UpIHt9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './get-all-can-be-connected-source-connectors-and-rects.request';
2
- export * from './get-all-can-be-connected-source-connectors-and-rects.execution';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3RvcnMvZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLXNvdXJjZS1jb25uZWN0b3JzLWFuZC1yZWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdFQUFnRSxDQUFDO0FBRS9FLGNBQWMsa0VBQWtFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dldC1hbGwtY2FuLWJlLWNvbm5lY3RlZC1zb3VyY2UtY29ubmVjdG9ycy1hbmQtcmVjdHMucmVxdWVzdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLXNvdXJjZS1jb25uZWN0b3JzLWFuZC1yZWN0cy5leGVjdXRpb24nO1xuIl19
@@ -1,16 +0,0 @@
1
- import { EFConnectableSide } from '../../../../f-connectors';
2
- export const CALCULATE_MODES = [
3
- EFConnectableSide.CALCULATE,
4
- EFConnectableSide.CALCULATE_HORIZONTAL,
5
- EFConnectableSide.CALCULATE_VERTICAL,
6
- ];
7
- export class CalculateConnectableSideByConnectedPositionsRequest {
8
- connector;
9
- mode;
10
- static fToken = Symbol('CalculateConnectableSideByConnectedPositionsRequest');
11
- constructor(connector, mode) {
12
- this.connector = connector;
13
- this.mode = mode;
14
- }
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1ub2RlL2NhbGN1bGF0ZS1ub2RlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1jb25uZWN0ZWQtcG9zaXRpb25zLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFrQixNQUFNLDBCQUEwQixDQUFDO0FBTzdFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixpQkFBaUIsQ0FBQyxTQUFTO0lBQzNCLGlCQUFpQixDQUFDLG9CQUFvQjtJQUN0QyxpQkFBaUIsQ0FBQyxrQkFBa0I7Q0FDckMsQ0FBQztBQUVGLE1BQU0sT0FBTyxtREFBbUQ7SUFHNUM7SUFDQTtJQUhsQixNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQ3ZGLFlBQ2tCLFNBQXlCLEVBQ3pCLElBQW9CO1FBRHBCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLFNBQUksR0FBSixJQUFJLENBQWdCO0lBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSwgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgdHlwZSBUQ2FsY3VsYXRlTW9kZSA9XG4gIHwgRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFXG4gIHwgRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFX0hPUklaT05UQUxcbiAgfCBFRkNvbm5lY3RhYmxlU2lkZS5DQUxDVUxBVEVfVkVSVElDQUw7XG5cbmV4cG9ydCBjb25zdCBDQUxDVUxBVEVfTU9ERVMgPSBbXG4gIEVGQ29ubmVjdGFibGVTaWRlLkNBTENVTEFURSxcbiAgRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFX0hPUklaT05UQUwsXG4gIEVGQ29ubmVjdGFibGVTaWRlLkNBTENVTEFURV9WRVJUSUNBTCxcbl07XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3Qge1xuICBzdGF0aWMgcmVhZG9ubHkgZlRva2VuID0gU3ltYm9sKCdDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QnKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UsXG4gICAgcHVibGljIHJlYWRvbmx5IG1vZGU6IFRDYWxjdWxhdGVNb2RlLFxuICApIHt9XG59XG4iXX0=
@@ -1,181 +0,0 @@
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 { EFConnectableSide } from '../../../../f-connectors';
6
- import { RectExtensions } from '@foblex/2d';
7
- import { CalculateConnectableSideByInternalPositionRequest } from '../calculate-connectable-side-by-internal-position';
8
- import * as i0 from "@angular/core";
9
- const SNAP_EPS = 2;
10
- const CALCULATE_SIDES = {
11
- [EFConnectableSide.CALCULATE]: [
12
- EFConnectableSide.TOP,
13
- EFConnectableSide.BOTTOM,
14
- EFConnectableSide.LEFT,
15
- EFConnectableSide.RIGHT,
16
- ],
17
- [EFConnectableSide.CALCULATE_HORIZONTAL]: [EFConnectableSide.LEFT, EFConnectableSide.RIGHT],
18
- [EFConnectableSide.CALCULATE_VERTICAL]: [EFConnectableSide.TOP, EFConnectableSide.BOTTOM],
19
- };
20
- /**
21
- * Execution that calculates the connectable side for a connector
22
- * based on positions of connected connectors and allowed sides.
23
- */
24
- let CalculateConnectableSideByConnectedPositions = class CalculateConnectableSideByConnectedPositions {
25
- _mediator = inject(FMediator);
26
- /**
27
- * Entry point (hot path). Avoids intermediate arrays and redundant allocations.
28
- *
29
- * @param request - Contains the connector and optionally allowed sides.
30
- * @returns {EFConnectableSide} - The chosen connectable side.
31
- */
32
- handle({ connector, mode, }) {
33
- const selfCenter = RectExtensions.fromElement(connector.hostElement).gravityCenter;
34
- const acc = this._accumulateConnectedCenters(connector.hostElement, connector.toConnector);
35
- if (acc.count === 0) {
36
- return this._mediator.execute(new CalculateConnectableSideByInternalPositionRequest(connector));
37
- }
38
- const avgX = acc.sumX / acc.count;
39
- const avgY = acc.sumY / acc.count;
40
- const mask = this._toSideMask(CALCULATE_SIDES[mode]);
41
- return this._determineSide(selfCenter.x, selfCenter.y, avgX, avgY, mask);
42
- }
43
- /**
44
- * Accumulates sum of gravity centers and count, excluding the current host.
45
- * Single pass, minimal allocations.
46
- */
47
- _accumulateConnectedCenters(selfHost, connected) {
48
- let sumX = 0;
49
- let sumY = 0;
50
- let count = 0;
51
- if (connected && connected.length) {
52
- for (let i = 0; i < connected.length; i++) {
53
- const el = connected[i]?.hostElement;
54
- if (!el || el === selfHost)
55
- continue;
56
- const c = RectExtensions.fromElement(el).gravityCenter;
57
- sumX += c.x;
58
- sumY += c.y;
59
- count++;
60
- }
61
- }
62
- return { sumX, sumY, count };
63
- }
64
- /**
65
- * Converts allowed sides array to a compact bit mask.
66
- * If not provided or empty -> all sides allowed.
67
- */
68
- _toSideMask(allowed) {
69
- if (!allowed || allowed.length === 0)
70
- return 15 /* SideMask.ALL */;
71
- let mask = 0 /* SideMask.NONE */;
72
- for (let i = 0; i < allowed.length; i++) {
73
- switch (allowed[i]) {
74
- case EFConnectableSide.LEFT:
75
- mask |= 1 /* SideMask.LEFT */;
76
- break;
77
- case EFConnectableSide.RIGHT:
78
- mask |= 2 /* SideMask.RIGHT */;
79
- break;
80
- case EFConnectableSide.TOP:
81
- mask |= 4 /* SideMask.TOP */;
82
- break;
83
- case EFConnectableSide.BOTTOM:
84
- mask |= 8 /* SideMask.BOTTOM */;
85
- break;
86
- }
87
- }
88
- return mask || 15 /* SideMask.ALL */;
89
- }
90
- /**
91
- * Determines final side using ideal side first; if disallowed, picks best fallback.
92
- * Inputs are numbers to avoid object wrappers on hot path.
93
- */
94
- _determineSide(selfX, selfY, avgX, avgY, allowedMask) {
95
- const dx = avgX - selfX;
96
- const dy = avgY - selfY;
97
- const ideal = this._pickIdealSide(dx, dy);
98
- if (this._isAllowed(ideal, allowedMask)) {
99
- return ideal;
100
- }
101
- return this._pickFallbackSide(dx, dy, allowedMask, ideal);
102
- }
103
- /**
104
- * Picks the "ideal" side based on vector (dx, dy) with hysteresis.
105
- */
106
- _pickIdealSide(dx, dy) {
107
- const ax = dx < 0 ? -dx : dx;
108
- const ay = dy < 0 ? -dy : dy;
109
- if (ax - ay > SNAP_EPS) {
110
- return dx < 0 ? EFConnectableSide.LEFT : EFConnectableSide.RIGHT;
111
- }
112
- if (ay - ax > SNAP_EPS) {
113
- return dy < 0 ? EFConnectableSide.TOP : EFConnectableSide.BOTTOM;
114
- }
115
- return dy < 0 ? EFConnectableSide.TOP : EFConnectableSide.BOTTOM;
116
- }
117
- /**
118
- * Quick membership check via bit mask.
119
- */
120
- _isAllowed(side, mask) {
121
- switch (side) {
122
- case EFConnectableSide.LEFT:
123
- return (mask & 1 /* SideMask.LEFT */) !== 0;
124
- case EFConnectableSide.RIGHT:
125
- return (mask & 2 /* SideMask.RIGHT */) !== 0;
126
- case EFConnectableSide.TOP:
127
- return (mask & 4 /* SideMask.TOP */) !== 0;
128
- case EFConnectableSide.BOTTOM:
129
- return (mask & 8 /* SideMask.BOTTOM */) !== 0;
130
- default:
131
- return true;
132
- }
133
- }
134
- /**
135
- * Picks the best available side from allowed mask by maximizing directional score.
136
- * No intermediate objects, constant-time operations.
137
- */
138
- _pickFallbackSide(dx, dy, allowedMask, ideal) {
139
- let bestSide = ideal;
140
- let bestScore = -Infinity;
141
- if (allowedMask & 2 /* SideMask.RIGHT */) {
142
- const s = dx;
143
- if (s > bestScore) {
144
- bestScore = s;
145
- bestSide = EFConnectableSide.RIGHT;
146
- }
147
- }
148
- if (allowedMask & 1 /* SideMask.LEFT */) {
149
- const s = -dx;
150
- if (s > bestScore) {
151
- bestScore = s;
152
- bestSide = EFConnectableSide.LEFT;
153
- }
154
- }
155
- if (allowedMask & 8 /* SideMask.BOTTOM */) {
156
- const s = dy;
157
- if (s > bestScore) {
158
- bestScore = s;
159
- bestSide = EFConnectableSide.BOTTOM;
160
- }
161
- }
162
- if (allowedMask & 4 /* SideMask.TOP */) {
163
- const s = -dy;
164
- if (s > bestScore) {
165
- bestScore = s;
166
- bestSide = EFConnectableSide.TOP;
167
- }
168
- }
169
- return bestSide;
170
- }
171
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByConnectedPositions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
172
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByConnectedPositions });
173
- };
174
- CalculateConnectableSideByConnectedPositions = __decorate([
175
- FExecutionRegister(CalculateConnectableSideByConnectedPositionsRequest)
176
- ], CalculateConnectableSideByConnectedPositions);
177
- export { CalculateConnectableSideByConnectedPositions };
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByConnectedPositions, decorators: [{
179
- type: Injectable
180
- }] });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9jYWxjdWxhdGUtbm9kZS1jb25uZWN0b3JzLWNvbm5lY3RhYmxlLXNpZGVzL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMvY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxtREFBbUQsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxpQkFBaUIsRUFBa0IsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxpREFBaUQsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOztBQUV2SCxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFXbkIsTUFBTSxlQUFlLEdBQUc7SUFDdEIsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUM3QixpQkFBaUIsQ0FBQyxHQUFHO1FBQ3JCLGlCQUFpQixDQUFDLE1BQU07UUFDeEIsaUJBQWlCLENBQUMsSUFBSTtRQUN0QixpQkFBaUIsQ0FBQyxLQUFLO0tBQ3hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQztJQUMzRixDQUFD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RnhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QgfSBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMtcmVxdWVzdCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSwgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5SW50ZXJuYWxQb3NpdGlvblJlcXVlc3QgfSBmcm9tICcuLi9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1pbnRlcm5hbC1wb3NpdGlvbic7XG5cbmNvbnN0IFNOQVBfRVBTID0gMjtcblxuY29uc3QgZW51bSBTaWRlTWFzayB7XG4gIE5PTkUgPSAwLFxuICBMRUZUID0gMSA8PCAwLFxuICBSSUdIVCA9IDEgPDwgMSxcbiAgVE9QID0gMSA8PCAyLFxuICBCT1RUT00gPSAxIDw8IDMsXG4gIEFMTCA9ICgxIDw8IDQpIC0gMSxcbn1cblxuY29uc3QgQ0FMQ1VMQVRFX1NJREVTID0ge1xuICBbRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFXTogW1xuICAgIEVGQ29ubmVjdGFibGVTaWRlLlRPUCxcbiAgICBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT00sXG4gICAgRUZDb25uZWN0YWJsZVNpZGUuTEVGVCxcbiAgICBFRkNvbm5lY3RhYmxlU2lkZS5SSUdIVCxcbiAgXSxcbiAgW0VGQ29ubmVjdGFibGVTaWRlLkNBTENVTEFURV9IT1JJWk9OVEFMXTogW0VGQ29ubmVjdGFibGVTaWRlLkxFRlQsIEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUXSxcbiAgW0VGQ29ubmVjdGFibGVTaWRlLkNBTENVTEFURV9WRVJUSUNBTF06IFtFRkNvbm5lY3RhYmxlU2lkZS5UT1AsIEVGQ29ubmVjdGFibGVTaWRlLkJPVFRPTV0sXG59O1xuXG4vKipcbiAqIEV4ZWN1dGlvbiB0aGF0IGNhbGN1bGF0ZXMgdGhlIGNvbm5lY3RhYmxlIHNpZGUgZm9yIGEgY29ubmVjdG9yXG4gKiBiYXNlZCBvbiBwb3NpdGlvbnMgb2YgY29ubmVjdGVkIGNvbm5lY3RvcnMgYW5kIGFsbG93ZWQgc2lkZXMuXG4gKi9cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlDb25uZWN0ZWRQb3NpdGlvbnNSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QsIEVGQ29ubmVjdGFibGVTaWRlPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIC8qKlxuICAgKiBFbnRyeSBwb2ludCAoaG90IHBhdGgpLiBBdm9pZHMgaW50ZXJtZWRpYXRlIGFycmF5cyBhbmQgcmVkdW5kYW50IGFsbG9jYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdCAtIENvbnRhaW5zIHRoZSBjb25uZWN0b3IgYW5kIG9wdGlvbmFsbHkgYWxsb3dlZCBzaWRlcy5cbiAgICogQHJldHVybnMge0VGQ29ubmVjdGFibGVTaWRlfSAtIFRoZSBjaG9zZW4gY29ubmVjdGFibGUgc2lkZS5cbiAgICovXG4gIHB1YmxpYyBoYW5kbGUoe1xuICAgIGNvbm5lY3RvcixcbiAgICBtb2RlLFxuICB9OiBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QpOiBFRkNvbm5lY3RhYmxlU2lkZSB7XG4gICAgY29uc3Qgc2VsZkNlbnRlciA9IFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KGNvbm5lY3Rvci5ob3N0RWxlbWVudCkuZ3Jhdml0eUNlbnRlcjtcblxuICAgIGNvbnN0IGFjYyA9IHRoaXMuX2FjY3VtdWxhdGVDb25uZWN0ZWRDZW50ZXJzKGNvbm5lY3Rvci5ob3N0RWxlbWVudCwgY29ubmVjdG9yLnRvQ29ubmVjdG9yKTtcblxuICAgIGlmIChhY2MuY291bnQgPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlKFxuICAgICAgICBuZXcgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdChjb25uZWN0b3IpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBhdmdYID0gYWNjLnN1bVggLyBhY2MuY291bnQ7XG4gICAgY29uc3QgYXZnWSA9IGFjYy5zdW1ZIC8gYWNjLmNvdW50O1xuXG4gICAgY29uc3QgbWFzayA9IHRoaXMuX3RvU2lkZU1hc2soQ0FMQ1VMQVRFX1NJREVTW21vZGVdKTtcblxuICAgIHJldHVybiB0aGlzLl9kZXRlcm1pbmVTaWRlKHNlbGZDZW50ZXIueCwgc2VsZkNlbnRlci55LCBhdmdYLCBhdmdZLCBtYXNrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY2N1bXVsYXRlcyBzdW0gb2YgZ3Jhdml0eSBjZW50ZXJzIGFuZCBjb3VudCwgZXhjbHVkaW5nIHRoZSBjdXJyZW50IGhvc3QuXG4gICAqIFNpbmdsZSBwYXNzLCBtaW5pbWFsIGFsbG9jYXRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBfYWNjdW11bGF0ZUNvbm5lY3RlZENlbnRlcnMoXG4gICAgc2VsZkhvc3Q6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCxcbiAgICBjb25uZWN0ZWQ6IEZDb25uZWN0b3JCYXNlW10gfCBudWxsIHwgdW5kZWZpbmVkLFxuICApOiB7IHN1bVg6IG51bWJlcjsgc3VtWTogbnVtYmVyOyBjb3VudDogbnVtYmVyIH0ge1xuICAgIGxldCBzdW1YID0gMDtcbiAgICBsZXQgc3VtWSA9IDA7XG4gICAgbGV0IGNvdW50ID0gMDtcblxuICAgIGlmIChjb25uZWN0ZWQgJiYgY29ubmVjdGVkLmxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb25uZWN0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZWwgPSBjb25uZWN0ZWRbaV0/Lmhvc3RFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFlbCB8fCBlbCA9PT0gc2VsZkhvc3QpIGNvbnRpbnVlO1xuXG4gICAgICAgIGNvbnN0IGMgPSBSZWN0RXh0ZW5zaW9ucy5mcm9tRWxlbWVudChlbCkuZ3Jhdml0eUNlbnRlcjtcbiAgICAgICAgc3VtWCArPSBjLng7XG4gICAgICAgIHN1bVkgKz0gYy55O1xuICAgICAgICBjb3VudCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IHN1bVgsIHN1bVksIGNvdW50IH07XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYWxsb3dlZCBzaWRlcyBhcnJheSB0byBhIGNvbXBhY3QgYml0IG1hc2suXG4gICAqIElmIG5vdCBwcm92aWRlZCBvciBlbXB0eSAtPiBhbGwgc2lkZXMgYWxsb3dlZC5cbiAgICovXG4gIHByaXZhdGUgX3RvU2lkZU1hc2soYWxsb3dlZD86IEVGQ29ubmVjdGFibGVTaWRlW10pOiBTaWRlTWFzayB7XG4gICAgaWYgKCFhbGxvd2VkIHx8IGFsbG93ZWQubGVuZ3RoID09PSAwKSByZXR1cm4gU2lkZU1hc2suQUxMO1xuXG4gICAgbGV0IG1hc2sgPSBTaWRlTWFzay5OT05FO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsb3dlZC5sZW5ndGg7IGkrKykge1xuICAgICAgc3dpdGNoIChhbGxvd2VkW2ldKSB7XG4gICAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuTEVGVDpcbiAgICAgICAgICBtYXNrIHw9IFNpZGVNYXNrLkxFRlQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuUklHSFQ6XG4gICAgICAgICAgbWFzayB8PSBTaWRlTWFzay5SSUdIVDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5UT1A6XG4gICAgICAgICAgbWFzayB8PSBTaWRlTWFzay5UT1A7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NOlxuICAgICAgICAgIG1hc2sgfD0gU2lkZU1hc2suQk9UVE9NO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXNrIHx8IFNpZGVNYXNrLkFMTDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGZpbmFsIHNpZGUgdXNpbmcgaWRlYWwgc2lkZSBmaXJzdDsgaWYgZGlzYWxsb3dlZCwgcGlja3MgYmVzdCBmYWxsYmFjay5cbiAgICogSW5wdXRzIGFyZSBudW1iZXJzIHRvIGF2b2lkIG9iamVjdCB3cmFwcGVycyBvbiBob3QgcGF0aC5cbiAgICovXG4gIHByaXZhdGUgX2RldGVybWluZVNpZGUoXG4gICAgc2VsZlg6IG51bWJlcixcbiAgICBzZWxmWTogbnVtYmVyLFxuICAgIGF2Z1g6IG51bWJlcixcbiAgICBhdmdZOiBudW1iZXIsXG4gICAgYWxsb3dlZE1hc2s6IFNpZGVNYXNrLFxuICApOiBFRkNvbm5lY3RhYmxlU2lkZSB7XG4gICAgY29uc3QgZHggPSBhdmdYIC0gc2VsZlg7XG4gICAgY29uc3QgZHkgPSBhdmdZIC0gc2VsZlk7XG5cbiAgICBjb25zdCBpZGVhbCA9IHRoaXMuX3BpY2tJZGVhbFNpZGUoZHgsIGR5KTtcblxuICAgIGlmICh0aGlzLl9pc0FsbG93ZWQoaWRlYWwsIGFsbG93ZWRNYXNrKSkge1xuICAgICAgcmV0dXJuIGlkZWFsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9waWNrRmFsbGJhY2tTaWRlKGR4LCBkeSwgYWxsb3dlZE1hc2ssIGlkZWFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQaWNrcyB0aGUgXCJpZGVhbFwiIHNpZGUgYmFzZWQgb24gdmVjdG9yIChkeCwgZHkpIHdpdGggaHlzdGVyZXNpcy5cbiAgICovXG4gIHByaXZhdGUgX3BpY2tJZGVhbFNpZGUoZHg6IG51bWJlciwgZHk6IG51bWJlcik6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgICBjb25zdCBheCA9IGR4IDwgMCA/IC1keCA6IGR4O1xuICAgIGNvbnN0IGF5ID0gZHkgPCAwID8gLWR5IDogZHk7XG5cbiAgICBpZiAoYXggLSBheSA+IFNOQVBfRVBTKSB7XG4gICAgICByZXR1cm4gZHggPCAwID8gRUZDb25uZWN0YWJsZVNpZGUuTEVGVCA6IEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUO1xuICAgIH1cbiAgICBpZiAoYXkgLSBheCA+IFNOQVBfRVBTKSB7XG4gICAgICByZXR1cm4gZHkgPCAwID8gRUZDb25uZWN0YWJsZVNpZGUuVE9QIDogRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NO1xuICAgIH1cblxuICAgIHJldHVybiBkeSA8IDAgPyBFRkNvbm5lY3RhYmxlU2lkZS5UT1AgOiBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT007XG4gIH1cblxuICAvKipcbiAgICogUXVpY2sgbWVtYmVyc2hpcCBjaGVjayB2aWEgYml0IG1hc2suXG4gICAqL1xuICBwcml2YXRlIF9pc0FsbG93ZWQoc2lkZTogRUZDb25uZWN0YWJsZVNpZGUsIG1hc2s6IFNpZGVNYXNrKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoIChzaWRlKSB7XG4gICAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLkxFRlQ6XG4gICAgICAgIHJldHVybiAobWFzayAmIFNpZGVNYXNrLkxFRlQpICE9PSAwO1xuICAgICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5SSUdIVDpcbiAgICAgICAgcmV0dXJuIChtYXNrICYgU2lkZU1hc2suUklHSFQpICE9PSAwO1xuICAgICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5UT1A6XG4gICAgICAgIHJldHVybiAobWFzayAmIFNpZGVNYXNrLlRPUCkgIT09IDA7XG4gICAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLkJPVFRPTTpcbiAgICAgICAgcmV0dXJuIChtYXNrICYgU2lkZU1hc2suQk9UVE9NKSAhPT0gMDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQaWNrcyB0aGUgYmVzdCBhdmFpbGFibGUgc2lkZSBmcm9tIGFsbG93ZWQgbWFzayBieSBtYXhpbWl6aW5nIGRpcmVjdGlvbmFsIHNjb3JlLlxuICAgKiBObyBpbnRlcm1lZGlhdGUgb2JqZWN0cywgY29uc3RhbnQtdGltZSBvcGVyYXRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBfcGlja0ZhbGxiYWNrU2lkZShcbiAgICBkeDogbnVtYmVyLFxuICAgIGR5OiBudW1iZXIsXG4gICAgYWxsb3dlZE1hc2s6IFNpZGVNYXNrLFxuICAgIGlkZWFsOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgKTogRUZDb25uZWN0YWJsZVNpZGUge1xuICAgIGxldCBiZXN0U2lkZTogRUZDb25uZWN0YWJsZVNpZGUgPSBpZGVhbDtcbiAgICBsZXQgYmVzdFNjb3JlID0gLUluZmluaXR5O1xuXG4gICAgaWYgKGFsbG93ZWRNYXNrICYgU2lkZU1hc2suUklHSFQpIHtcbiAgICAgIGNvbnN0IHMgPSBkeDtcbiAgICAgIGlmIChzID4gYmVzdFNjb3JlKSB7XG4gICAgICAgIGJlc3RTY29yZSA9IHM7XG4gICAgICAgIGJlc3RTaWRlID0gRUZDb25uZWN0YWJsZVNpZGUuUklHSFQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhbGxvd2VkTWFzayAmIFNpZGVNYXNrLkxFRlQpIHtcbiAgICAgIGNvbnN0IHMgPSAtZHg7XG4gICAgICBpZiAocyA+IGJlc3RTY29yZSkge1xuICAgICAgICBiZXN0U2NvcmUgPSBzO1xuICAgICAgICBiZXN0U2lkZSA9IEVGQ29ubmVjdGFibGVTaWRlLkxFRlQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhbGxvd2VkTWFzayAmIFNpZGVNYXNrLkJPVFRPTSkge1xuICAgICAgY29uc3QgcyA9IGR5O1xuICAgICAgaWYgKHMgPiBiZXN0U2NvcmUpIHtcbiAgICAgICAgYmVzdFNjb3JlID0gcztcbiAgICAgICAgYmVzdFNpZGUgPSBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT007XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhbGxvd2VkTWFzayAmIFNpZGVNYXNrLlRPUCkge1xuICAgICAgY29uc3QgcyA9IC1keTtcbiAgICAgIGlmIChzID4gYmVzdFNjb3JlKSB7XG4gICAgICAgIGJlc3RTY29yZSA9IHM7XG4gICAgICAgIGJlc3RTaWRlID0gRUZDb25uZWN0YWJsZVNpZGUuVE9QO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBiZXN0U2lkZTtcbiAgfVxufVxuIl19
@@ -1,3 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLW5vZGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1jb25uZWN0ZWQtcG9zaXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscURBQXFELENBQUM7QUFFcEUsY0FBYyw2REFBNkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy1yZXF1ZXN0JztcbiJdfQ==
@@ -1,8 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24tcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9jYWxjdWxhdGUtbm9kZS1jb25uZWN0b3JzLWNvbm5lY3RhYmxlLXNpZGVzL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWludGVybmFsLXBvc2l0aW9uL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWludGVybmFsLXBvc2l0aW9uLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGlEQUFpRDtJQUVoQztJQUQ1QixNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0lBQ3JGLFlBQTRCLFNBQXlCO1FBQXpCLGNBQVMsR0FBVCxTQUFTLENBQWdCO0lBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcblxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5SW50ZXJuYWxQb3NpdGlvblJlcXVlc3Qge1xuICBzdGF0aWMgcmVhZG9ubHkgZlRva2VuID0gU3ltYm9sKCdDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUludGVybmFsUG9zaXRpb25SZXF1ZXN0Jyk7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKSB7fVxufVxuIl19