@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
@@ -0,0 +1,64 @@
1
+ import { __decorate } from "tslib";
2
+ import { CalculateTargetConnectorsToConnectRequest } from './calculate-target-connectors-to-connect-request';
3
+ import { inject, Injectable } from '@angular/core';
4
+ import { FExecutionRegister, FMediator } from '@foblex/mediator';
5
+ import { FComponentsStore } from '../../../f-storage';
6
+ import { GetConnectorAndRectRequest } from '../get-connector-and-rect';
7
+ import { CalculateConnectableSideByConnectedPositionsRequest, isCalculateMode } from '../../f-node';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * Execution that retrieves all input connectors that can be connected to a given output or outlet connector,
11
+ */
12
+ let CalculateTargetConnectorsToConnect = class CalculateTargetConnectorsToConnect {
13
+ _mediator = inject(FMediator);
14
+ _store = inject(FComponentsStore);
15
+ get _targetConnectors() {
16
+ return this._store.fInputs;
17
+ }
18
+ handle({ sourceConnector, pointerPosition, }) {
19
+ const result = this._getCanBeConnectedInputs(sourceConnector).map((x) => {
20
+ return this._mediator.execute(new GetConnectorAndRectRequest(x));
21
+ });
22
+ setTimeout(() => {
23
+ this._calculateConnectableSides(result, pointerPosition);
24
+ });
25
+ return result;
26
+ }
27
+ _getCanBeConnectedInputs(outputOrOutlet) {
28
+ let targetConnectors = [];
29
+ if (outputOrOutlet.hasConnectionLimits) {
30
+ targetConnectors = this._targetConnectors.filter((x) => outputOrOutlet.canConnectTo(x));
31
+ }
32
+ else {
33
+ targetConnectors = this._targetConnectors.filter((x) => x.canBeConnected);
34
+ if (!outputOrOutlet.isSelfConnectable) {
35
+ targetConnectors = this._filterSelfConnectable(targetConnectors, outputOrOutlet);
36
+ }
37
+ }
38
+ return targetConnectors;
39
+ }
40
+ _filterSelfConnectable(targetConnectors, outputOrOutlet) {
41
+ return targetConnectors.filter(({ fNodeId }) => outputOrOutlet.fNodeId !== fNodeId);
42
+ }
43
+ _calculateConnectableSides(connectors, pointerPosition) {
44
+ connectors.forEach((x) => {
45
+ if (isCalculateMode(x.fConnector.userFConnectableSide)) {
46
+ x.fConnector.fConnectableSide = this._calculateByConnectedPositions(x.fConnector, pointerPosition);
47
+ }
48
+ });
49
+ }
50
+ /** Delegates to the connected-positions calculation execution. */
51
+ _calculateByConnectedPositions(connector, pointerPosition) {
52
+ return this._mediator.execute(new CalculateConnectableSideByConnectedPositionsRequest(connector, pointerPosition));
53
+ }
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateTargetConnectorsToConnect, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
55
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateTargetConnectorsToConnect });
56
+ };
57
+ CalculateTargetConnectorsToConnect = __decorate([
58
+ FExecutionRegister(CalculateTargetConnectorsToConnectRequest)
59
+ ], CalculateTargetConnectorsToConnect);
60
+ export { CalculateTargetConnectorsToConnect };
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateTargetConnectorsToConnect, decorators: [{
62
+ type: Injectable
63
+ }] });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3RvcnMvY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QvY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQVE3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbURBQW1ELEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUdwRzs7R0FFRztBQUdJLElBQU0sa0NBQWtDLEdBQXhDLE1BQU0sa0NBQWtDO0lBRzVCLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRW5ELElBQVksaUJBQWlCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxFQUNaLGVBQWUsRUFDZixlQUFlLEdBQzJCO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0RSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFvQixJQUFJLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEYsQ0FBQyxDQUFDLENBQUM7UUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyx3QkFBd0IsQ0FDOUIsY0FBaUQ7UUFFakQsSUFBSSxnQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBQzVDLElBQUksY0FBYyxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdkMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3JELGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBbUIsQ0FBQyxDQUNqRCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFMUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN0QyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFTyxzQkFBc0IsQ0FDNUIsZ0JBQWtDLEVBQ2xDLGNBQThCO1FBRTlCLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRU8sMEJBQTBCLENBQ2hDLFVBQStCLEVBQy9CLGVBQXVCO1FBRXZCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QixJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztnQkFDdkQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQ2pFLENBQUMsQ0FBQyxVQUFVLEVBQ1osZUFBZSxDQUNoQixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtFQUFrRTtJQUMxRCw4QkFBOEIsQ0FDcEMsU0FBeUIsRUFDekIsZUFBdUI7UUFFdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0IsSUFBSSxtREFBbUQsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQ3BGLENBQUM7SUFDSixDQUFDO3dHQXpFVSxrQ0FBa0M7NEdBQWxDLGtDQUFrQzs7QUFBbEMsa0NBQWtDO0lBRDlDLGtCQUFrQixDQUFDLHlDQUF5QyxDQUFDO0dBQ2pELGtDQUFrQyxDQTBFOUM7OzRGQTFFWSxrQ0FBa0M7a0JBRjlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYWxjdWxhdGVUYXJnZXRDb25uZWN0b3JzVG9Db25uZWN0UmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QtcmVxdWVzdCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQge1xuICBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgRkNvbm5lY3RvckJhc2UsXG4gIEZOb2RlSW5wdXRCYXNlLFxuICBGTm9kZU91dGxldEJhc2UsXG4gIEZOb2RlT3V0cHV0QmFzZSxcbn0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgSUNvbm5lY3RvckFuZFJlY3QgfSBmcm9tICcuLi9pLWNvbm5lY3Rvci1hbmQtcmVjdCc7XG5pbXBvcnQgeyBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCB9IGZyb20gJy4uL2dldC1jb25uZWN0b3ItYW5kLXJlY3QnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlDb25uZWN0ZWRQb3NpdGlvbnNSZXF1ZXN0LCBpc0NhbGN1bGF0ZU1vZGUgfSBmcm9tICcuLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbi8qKlxuICogRXhlY3V0aW9uIHRoYXQgcmV0cmlldmVzIGFsbCBpbnB1dCBjb25uZWN0b3JzIHRoYXQgY2FuIGJlIGNvbm5lY3RlZCB0byBhIGdpdmVuIG91dHB1dCBvciBvdXRsZXQgY29ubmVjdG9yLFxuICovXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RcbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RSZXF1ZXN0LCBJQ29ubmVjdG9yQW5kUmVjdFtdPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwcml2YXRlIGdldCBfdGFyZ2V0Q29ubmVjdG9ycygpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUuZklucHV0cztcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoe1xuICAgIHNvdXJjZUNvbm5lY3RvcixcbiAgICBwb2ludGVyUG9zaXRpb24sXG4gIH06IENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RSZXF1ZXN0KTogSUNvbm5lY3RvckFuZFJlY3RbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZ2V0Q2FuQmVDb25uZWN0ZWRJbnB1dHMoc291cmNlQ29ubmVjdG9yKS5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JBbmRSZWN0PihuZXcgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QoeCkpO1xuICAgIH0pO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9jYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVzKHJlc3VsdCwgcG9pbnRlclBvc2l0aW9uKTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDYW5CZUNvbm5lY3RlZElucHV0cyhcbiAgICBvdXRwdXRPck91dGxldDogRk5vZGVPdXRwdXRCYXNlIHwgRk5vZGVPdXRsZXRCYXNlLFxuICApOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICBsZXQgdGFyZ2V0Q29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSA9IFtdO1xuICAgIGlmIChvdXRwdXRPck91dGxldC5oYXNDb25uZWN0aW9uTGltaXRzKSB7XG4gICAgICB0YXJnZXRDb25uZWN0b3JzID0gdGhpcy5fdGFyZ2V0Q29ubmVjdG9ycy5maWx0ZXIoKHgpID0+XG4gICAgICAgIG91dHB1dE9yT3V0bGV0LmNhbkNvbm5lY3RUbyh4IGFzIEZOb2RlSW5wdXRCYXNlKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldENvbm5lY3RvcnMgPSB0aGlzLl90YXJnZXRDb25uZWN0b3JzLmZpbHRlcigoeCkgPT4geC5jYW5CZUNvbm5lY3RlZCk7XG5cbiAgICAgIGlmICghb3V0cHV0T3JPdXRsZXQuaXNTZWxmQ29ubmVjdGFibGUpIHtcbiAgICAgICAgdGFyZ2V0Q29ubmVjdG9ycyA9IHRoaXMuX2ZpbHRlclNlbGZDb25uZWN0YWJsZSh0YXJnZXRDb25uZWN0b3JzLCBvdXRwdXRPck91dGxldCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldENvbm5lY3RvcnM7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJTZWxmQ29ubmVjdGFibGUoXG4gICAgdGFyZ2V0Q29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSxcbiAgICBvdXRwdXRPck91dGxldDogRkNvbm5lY3RvckJhc2UsXG4gICk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0YXJnZXRDb25uZWN0b3JzLmZpbHRlcigoeyBmTm9kZUlkIH0pID0+IG91dHB1dE9yT3V0bGV0LmZOb2RlSWQgIT09IGZOb2RlSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlcyhcbiAgICBjb25uZWN0b3JzOiBJQ29ubmVjdG9yQW5kUmVjdFtdLFxuICAgIHBvaW50ZXJQb3NpdGlvbjogSVBvaW50LFxuICApOiB2b2lkIHtcbiAgICBjb25uZWN0b3JzLmZvckVhY2goKHgpID0+IHtcbiAgICAgIGlmIChpc0NhbGN1bGF0ZU1vZGUoeC5mQ29ubmVjdG9yLnVzZXJGQ29ubmVjdGFibGVTaWRlKSkge1xuICAgICAgICB4LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSA9IHRoaXMuX2NhbGN1bGF0ZUJ5Q29ubmVjdGVkUG9zaXRpb25zKFxuICAgICAgICAgIHguZkNvbm5lY3RvcixcbiAgICAgICAgICBwb2ludGVyUG9zaXRpb24sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogRGVsZWdhdGVzIHRvIHRoZSBjb25uZWN0ZWQtcG9zaXRpb25zIGNhbGN1bGF0aW9uIGV4ZWN1dGlvbi4gKi9cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlQnlDb25uZWN0ZWRQb3NpdGlvbnMoXG4gICAgY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSxcbiAgICBwb2ludGVyUG9zaXRpb246IElQb2ludCxcbiAgKTogRUZDb25uZWN0YWJsZVNpZGUge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlKFxuICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zUmVxdWVzdChjb25uZWN0b3IsIHBvaW50ZXJQb3NpdGlvbiksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './calculate-target-connectors-to-connect-request';
2
+ export * from './calculate-target-connectors-to-connect';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3RvcnMvY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrREFBa0QsQ0FBQztBQUVqRSxjQUFjLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtdGFyZ2V0LWNvbm5lY3RvcnMtdG8tY29ubmVjdC1yZXF1ZXN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtdGFyZ2V0LWNvbm5lY3RvcnMtdG8tY29ubmVjdCc7XG4iXX0=
@@ -3,8 +3,8 @@ export * from './add-outlet-to-store';
3
3
  export * from './add-output-to-store';
4
4
  export * from './calculate-closest-connector';
5
5
  export * from './find-connectable-connector-using-priority-and-position';
6
- export * from './get-all-can-be-connected-inputs-and-rects';
7
- export * from './get-all-can-be-connected-source-connectors-and-rects';
6
+ export * from './calculate-target-connectors-to-connect';
7
+ export * from './calculate-source-connectors-to-connect';
8
8
  export * from './get-connector-and-rect';
9
9
  export * from './mark-connectable-connectors';
10
10
  export * from './remove-input-from-store';
@@ -14,4 +14,4 @@ export * from './unmark-connectable-connectors';
14
14
  export * from './i-closest-connector';
15
15
  export * from './i-connector-and-rect';
16
16
  export * from './providers';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3RvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLDBEQUEwRCxDQUFDO0FBRXpFLGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsY0FBYyx3REFBd0QsQ0FBQztBQUV2RSxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkZC1pbnB1dC10by1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWRkLW91dGxldC10by1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWRkLW91dHB1dC10by1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNsb3Nlc3QtY29ubmVjdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9maW5kLWNvbm5lY3RhYmxlLWNvbm5lY3Rvci11c2luZy1wcmlvcml0eS1hbmQtcG9zaXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2dldC1hbGwtY2FuLWJlLWNvbm5lY3RlZC1pbnB1dHMtYW5kLXJlY3RzJztcblxuZXhwb3J0ICogZnJvbSAnLi9nZXQtYWxsLWNhbi1iZS1jb25uZWN0ZWQtc291cmNlLWNvbm5lY3RvcnMtYW5kLXJlY3RzJztcblxuZXhwb3J0ICogZnJvbSAnLi9nZXQtY29ubmVjdG9yLWFuZC1yZWN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9tYXJrLWNvbm5lY3RhYmxlLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3JlbW92ZS1pbnB1dC1mcm9tLXN0b3JlJztcblxuZXhwb3J0ICogZnJvbSAnLi9yZW1vdmUtb3V0bGV0LWZyb20tc3RvcmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3JlbW92ZS1vdXRwdXQtZnJvbS1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdW5tYXJrLWNvbm5lY3RhYmxlLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ktY2xvc2VzdC1jb25uZWN0b3InO1xuXG5leHBvcnQgKiBmcm9tICcuL2ktY29ubmVjdG9yLWFuZC1yZWN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMnO1xuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3RvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLDBEQUEwRCxDQUFDO0FBRXpFLGNBQWMsMENBQTBDLENBQUM7QUFFekQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkZC1pbnB1dC10by1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWRkLW91dGxldC10by1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWRkLW91dHB1dC10by1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNsb3Nlc3QtY29ubmVjdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9maW5kLWNvbm5lY3RhYmxlLWNvbm5lY3Rvci11c2luZy1wcmlvcml0eS1hbmQtcG9zaXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0ZS10YXJnZXQtY29ubmVjdG9ycy10by1jb25uZWN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtc291cmNlLWNvbm5lY3RvcnMtdG8tY29ubmVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWNvbm5lY3Rvci1hbmQtcmVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbWFyay1jb25uZWN0YWJsZS1jb25uZWN0b3JzJztcblxuZXhwb3J0ICogZnJvbSAnLi9yZW1vdmUtaW5wdXQtZnJvbS1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcmVtb3ZlLW91dGxldC1mcm9tLXN0b3JlJztcblxuZXhwb3J0ICogZnJvbSAnLi9yZW1vdmUtb3V0cHV0LWZyb20tc3RvcmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3VubWFyay1jb25uZWN0YWJsZS1jb25uZWN0b3JzJztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWNsb3Nlc3QtY29ubmVjdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWNvbm5lY3Rvci1hbmQtcmVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcbiJdfQ==
@@ -6,10 +6,10 @@ import { RemoveOutletFromStoreExecution } from './remove-outlet-from-store';
6
6
  import { RemoveOutputFromStoreExecution } from './remove-output-from-store';
7
7
  import { MarkConnectableConnectors } from './mark-connectable-connectors';
8
8
  import { UnmarkConnectableConnectors } from './unmark-connectable-connectors';
9
- import { GetAllCanBeConnectedInputsAndRectsExecution } from './get-all-can-be-connected-inputs-and-rects';
9
+ import { CalculateTargetConnectorsToConnect } from './calculate-target-connectors-to-connect';
10
10
  import { GetConnectorAndRect } from './get-connector-and-rect';
11
11
  import { CalculateClosestConnector } from './calculate-closest-connector';
12
- import { GetAllCanBeConnectedSourceConnectorsAndRectsExecution } from './get-all-can-be-connected-source-connectors-and-rects';
12
+ import { CalculateSourceConnectorsToConnect } from './calculate-source-connectors-to-connect';
13
13
  import { FindConnectableConnectorUsingPriorityAndPositionExecution } from './find-connectable-connector-using-priority-and-position';
14
14
  /*
15
15
  * This file exports all the connector-related executions that can be used in the FFlow domain.
@@ -20,8 +20,8 @@ export const F_CONNECTORS_FEATURES = [
20
20
  AddOutputToStore,
21
21
  CalculateClosestConnector,
22
22
  FindConnectableConnectorUsingPriorityAndPositionExecution,
23
- GetAllCanBeConnectedSourceConnectorsAndRectsExecution,
24
- GetAllCanBeConnectedInputsAndRectsExecution,
23
+ CalculateSourceConnectorsToConnect,
24
+ CalculateTargetConnectorsToConnect,
25
25
  GetConnectorAndRect,
26
26
  MarkConnectableConnectors,
27
27
  RemoveInputFromStore,
@@ -29,4 +29,4 @@ export const F_CONNECTORS_FEATURES = [
29
29
  RemoveOutputFromStoreExecution,
30
30
  UnmarkConnectableConnectors,
31
31
  ];
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1jb25uZWN0b3JzL3Byb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLDJDQUEyQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFEQUFxRCxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDL0gsT0FBTyxFQUFFLHlEQUF5RCxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDckk7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxlQUFlO0lBRWYsZ0JBQWdCO0lBRWhCLGdCQUFnQjtJQUVoQix5QkFBeUI7SUFFekIseURBQXlEO0lBRXpELHFEQUFxRDtJQUVyRCwyQ0FBMkM7SUFFM0MsbUJBQW1CO0lBRW5CLHlCQUF5QjtJQUV6QixvQkFBb0I7SUFFcEIsOEJBQThCO0lBRTlCLDhCQUE4QjtJQUU5QiwyQkFBMkI7Q0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkZElucHV0VG9TdG9yZSB9IGZyb20gJy4vYWRkLWlucHV0LXRvLXN0b3JlJztcbmltcG9ydCB7IEFkZE91dGxldFRvU3RvcmUgfSBmcm9tICcuL2FkZC1vdXRsZXQtdG8tc3RvcmUnO1xuaW1wb3J0IHsgQWRkT3V0cHV0VG9TdG9yZSB9IGZyb20gJy4vYWRkLW91dHB1dC10by1zdG9yZSc7XG5pbXBvcnQgeyBSZW1vdmVJbnB1dEZyb21TdG9yZSB9IGZyb20gJy4vcmVtb3ZlLWlucHV0LWZyb20tc3RvcmUnO1xuaW1wb3J0IHsgUmVtb3ZlT3V0bGV0RnJvbVN0b3JlRXhlY3V0aW9uIH0gZnJvbSAnLi9yZW1vdmUtb3V0bGV0LWZyb20tc3RvcmUnO1xuaW1wb3J0IHsgUmVtb3ZlT3V0cHV0RnJvbVN0b3JlRXhlY3V0aW9uIH0gZnJvbSAnLi9yZW1vdmUtb3V0cHV0LWZyb20tc3RvcmUnO1xuaW1wb3J0IHsgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9ycyB9IGZyb20gJy4vbWFyay1jb25uZWN0YWJsZS1jb25uZWN0b3JzJztcbmltcG9ydCB7IFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9ycyB9IGZyb20gJy4vdW5tYXJrLWNvbm5lY3RhYmxlLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNBbmRSZWN0c0V4ZWN1dGlvbiB9IGZyb20gJy4vZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLWlucHV0cy1hbmQtcmVjdHMnO1xuaW1wb3J0IHsgR2V0Q29ubmVjdG9yQW5kUmVjdCB9IGZyb20gJy4vZ2V0LWNvbm5lY3Rvci1hbmQtcmVjdCc7XG5pbXBvcnQgeyBDYWxjdWxhdGVDbG9zZXN0Q29ubmVjdG9yIH0gZnJvbSAnLi9jYWxjdWxhdGUtY2xvc2VzdC1jb25uZWN0b3InO1xuaW1wb3J0IHsgR2V0QWxsQ2FuQmVDb25uZWN0ZWRTb3VyY2VDb25uZWN0b3JzQW5kUmVjdHNFeGVjdXRpb24gfSBmcm9tICcuL2dldC1hbGwtY2FuLWJlLWNvbm5lY3RlZC1zb3VyY2UtY29ubmVjdG9ycy1hbmQtcmVjdHMnO1xuaW1wb3J0IHsgRmluZENvbm5lY3RhYmxlQ29ubmVjdG9yVXNpbmdQcmlvcml0eUFuZFBvc2l0aW9uRXhlY3V0aW9uIH0gZnJvbSAnLi9maW5kLWNvbm5lY3RhYmxlLWNvbm5lY3Rvci11c2luZy1wcmlvcml0eS1hbmQtcG9zaXRpb24nO1xuLypcbiAqIFRoaXMgZmlsZSBleHBvcnRzIGFsbCB0aGUgY29ubmVjdG9yLXJlbGF0ZWQgZXhlY3V0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBGRmxvdyBkb21haW4uXG4gKi9cbmV4cG9ydCBjb25zdCBGX0NPTk5FQ1RPUlNfRkVBVFVSRVMgPSBbXG4gIEFkZElucHV0VG9TdG9yZSxcblxuICBBZGRPdXRsZXRUb1N0b3JlLFxuXG4gIEFkZE91dHB1dFRvU3RvcmUsXG5cbiAgQ2FsY3VsYXRlQ2xvc2VzdENvbm5lY3RvcixcblxuICBGaW5kQ29ubmVjdGFibGVDb25uZWN0b3JVc2luZ1ByaW9yaXR5QW5kUG9zaXRpb25FeGVjdXRpb24sXG5cbiAgR2V0QWxsQ2FuQmVDb25uZWN0ZWRTb3VyY2VDb25uZWN0b3JzQW5kUmVjdHNFeGVjdXRpb24sXG5cbiAgR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNBbmRSZWN0c0V4ZWN1dGlvbixcblxuICBHZXRDb25uZWN0b3JBbmRSZWN0LFxuXG4gIE1hcmtDb25uZWN0YWJsZUNvbm5lY3RvcnMsXG5cbiAgUmVtb3ZlSW5wdXRGcm9tU3RvcmUsXG5cbiAgUmVtb3ZlT3V0bGV0RnJvbVN0b3JlRXhlY3V0aW9uLFxuXG4gIFJlbW92ZU91dHB1dEZyb21TdG9yZUV4ZWN1dGlvbixcblxuICBVbm1hcmtDb25uZWN0YWJsZUNvbm5lY3RvcnMsXG5dO1xuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1jb25uZWN0b3JzL3Byb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLHlEQUF5RCxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDckk7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxlQUFlO0lBRWYsZ0JBQWdCO0lBRWhCLGdCQUFnQjtJQUVoQix5QkFBeUI7SUFFekIseURBQXlEO0lBRXpELGtDQUFrQztJQUVsQyxrQ0FBa0M7SUFFbEMsbUJBQW1CO0lBRW5CLHlCQUF5QjtJQUV6QixvQkFBb0I7SUFFcEIsOEJBQThCO0lBRTlCLDhCQUE4QjtJQUU5QiwyQkFBMkI7Q0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkZElucHV0VG9TdG9yZSB9IGZyb20gJy4vYWRkLWlucHV0LXRvLXN0b3JlJztcbmltcG9ydCB7IEFkZE91dGxldFRvU3RvcmUgfSBmcm9tICcuL2FkZC1vdXRsZXQtdG8tc3RvcmUnO1xuaW1wb3J0IHsgQWRkT3V0cHV0VG9TdG9yZSB9IGZyb20gJy4vYWRkLW91dHB1dC10by1zdG9yZSc7XG5pbXBvcnQgeyBSZW1vdmVJbnB1dEZyb21TdG9yZSB9IGZyb20gJy4vcmVtb3ZlLWlucHV0LWZyb20tc3RvcmUnO1xuaW1wb3J0IHsgUmVtb3ZlT3V0bGV0RnJvbVN0b3JlRXhlY3V0aW9uIH0gZnJvbSAnLi9yZW1vdmUtb3V0bGV0LWZyb20tc3RvcmUnO1xuaW1wb3J0IHsgUmVtb3ZlT3V0cHV0RnJvbVN0b3JlRXhlY3V0aW9uIH0gZnJvbSAnLi9yZW1vdmUtb3V0cHV0LWZyb20tc3RvcmUnO1xuaW1wb3J0IHsgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9ycyB9IGZyb20gJy4vbWFyay1jb25uZWN0YWJsZS1jb25uZWN0b3JzJztcbmltcG9ydCB7IFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9ycyB9IGZyb20gJy4vdW5tYXJrLWNvbm5lY3RhYmxlLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlVGFyZ2V0Q29ubmVjdG9yc1RvQ29ubmVjdCB9IGZyb20gJy4vY2FsY3VsYXRlLXRhcmdldC1jb25uZWN0b3JzLXRvLWNvbm5lY3QnO1xuaW1wb3J0IHsgR2V0Q29ubmVjdG9yQW5kUmVjdCB9IGZyb20gJy4vZ2V0LWNvbm5lY3Rvci1hbmQtcmVjdCc7XG5pbXBvcnQgeyBDYWxjdWxhdGVDbG9zZXN0Q29ubmVjdG9yIH0gZnJvbSAnLi9jYWxjdWxhdGUtY2xvc2VzdC1jb25uZWN0b3InO1xuaW1wb3J0IHsgQ2FsY3VsYXRlU291cmNlQ29ubmVjdG9yc1RvQ29ubmVjdCB9IGZyb20gJy4vY2FsY3VsYXRlLXNvdXJjZS1jb25uZWN0b3JzLXRvLWNvbm5lY3QnO1xuaW1wb3J0IHsgRmluZENvbm5lY3RhYmxlQ29ubmVjdG9yVXNpbmdQcmlvcml0eUFuZFBvc2l0aW9uRXhlY3V0aW9uIH0gZnJvbSAnLi9maW5kLWNvbm5lY3RhYmxlLWNvbm5lY3Rvci11c2luZy1wcmlvcml0eS1hbmQtcG9zaXRpb24nO1xuLypcbiAqIFRoaXMgZmlsZSBleHBvcnRzIGFsbCB0aGUgY29ubmVjdG9yLXJlbGF0ZWQgZXhlY3V0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBGRmxvdyBkb21haW4uXG4gKi9cbmV4cG9ydCBjb25zdCBGX0NPTk5FQ1RPUlNfRkVBVFVSRVMgPSBbXG4gIEFkZElucHV0VG9TdG9yZSxcblxuICBBZGRPdXRsZXRUb1N0b3JlLFxuXG4gIEFkZE91dHB1dFRvU3RvcmUsXG5cbiAgQ2FsY3VsYXRlQ2xvc2VzdENvbm5lY3RvcixcblxuICBGaW5kQ29ubmVjdGFibGVDb25uZWN0b3JVc2luZ1ByaW9yaXR5QW5kUG9zaXRpb25FeGVjdXRpb24sXG5cbiAgQ2FsY3VsYXRlU291cmNlQ29ubmVjdG9yc1RvQ29ubmVjdCxcblxuICBDYWxjdWxhdGVUYXJnZXRDb25uZWN0b3JzVG9Db25uZWN0LFxuXG4gIEdldENvbm5lY3RvckFuZFJlY3QsXG5cbiAgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9ycyxcblxuICBSZW1vdmVJbnB1dEZyb21TdG9yZSxcblxuICBSZW1vdmVPdXRsZXRGcm9tU3RvcmVFeGVjdXRpb24sXG5cbiAgUmVtb3ZlT3V0cHV0RnJvbVN0b3JlRXhlY3V0aW9uLFxuXG4gIFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9ycyxcbl07XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  export function isValidEventTrigger(event, fTrigger) {
2
2
  return fTrigger(event);
3
3
  }
4
- export function defaultEventTrigger(event) {
4
+ export function defaultEventTrigger(_event) {
5
5
  return true;
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ldmVudC10cmlnZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1ldmVudC10cmlnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFvQixFQUFFLFFBQXVCO0lBQy9FLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsS0FBb0I7SUFDdEQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRkV2ZW50VHJpZ2dlciA9IChldmVudDogRlRyaWdnZXJFdmVudCkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgRlRyaWdnZXJFdmVudCA9IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50IHwgV2hlZWxFdmVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFdmVudFRyaWdnZXIoZXZlbnQ6IEZUcmlnZ2VyRXZlbnQsIGZUcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyKTogYm9vbGVhbiB7XG4gIHJldHVybiBmVHJpZ2dlcihldmVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0RXZlbnRUcmlnZ2VyKGV2ZW50OiBGVHJpZ2dlckV2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiB0cnVlO1xufVxuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ldmVudC10cmlnZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1ldmVudC10cmlnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFvQixFQUFFLFFBQXVCO0lBQy9FLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBcUI7SUFDdkQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRkV2ZW50VHJpZ2dlciA9IChldmVudDogRlRyaWdnZXJFdmVudCkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgRlRyaWdnZXJFdmVudCA9IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50IHwgV2hlZWxFdmVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFdmVudFRyaWdnZXIoZXZlbnQ6IEZUcmlnZ2VyRXZlbnQsIGZUcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyKTogYm9vbGVhbiB7XG4gIHJldHVybiBmVHJpZ2dlcihldmVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0RXZlbnRUcmlnZ2VyKF9ldmVudDogRlRyaWdnZXJFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==
@@ -1,8 +1,8 @@
1
1
  export class AddNodeToStoreRequest {
2
- fComponent;
2
+ nodeOrGroup;
3
3
  static fToken = Symbol('AddNodeToStoreRequest');
4
- constructor(fComponent) {
5
- this.fComponent = fComponent;
4
+ constructor(nodeOrGroup) {
5
+ this.nodeOrGroup = nodeOrGroup;
6
6
  }
7
7
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vZGUtdG8tc3RvcmUtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9hZGQtbm9kZS10by1zdG9yZS9hZGQtbm9kZS10by1zdG9yZS1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFHdkI7SUFGVCxNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3pELFlBQ1MsVUFBcUI7UUFBckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztJQUU5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcblxuZXhwb3J0IGNsYXNzIEFkZE5vZGVUb1N0b3JlUmVxdWVzdCB7XG4gIHN0YXRpYyByZWFkb25seSBmVG9rZW4gPSBTeW1ib2woJ0FkZE5vZGVUb1N0b3JlUmVxdWVzdCcpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZkNvbXBvbmVudDogRk5vZGVCYXNlLFxuICApIHtcbiAgfVxufVxuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vZGUtdG8tc3RvcmUtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9hZGQtbm9kZS10by1zdG9yZS9hZGQtbm9kZS10by1zdG9yZS1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFFSjtJQUQ1QixNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3pELFlBQTRCLFdBQXNCO1FBQXRCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO0lBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5cbmV4cG9ydCBjbGFzcyBBZGROb2RlVG9TdG9yZVJlcXVlc3Qge1xuICBzdGF0aWMgcmVhZG9ubHkgZlRva2VuID0gU3ltYm9sKCdBZGROb2RlVG9TdG9yZVJlcXVlc3QnKTtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG5vZGVPckdyb3VwOiBGTm9kZUJhc2UpIHt9XG59XG4iXX0=
@@ -10,7 +10,7 @@ import * as i0 from "@angular/core";
10
10
  let AddNodeToStore = class AddNodeToStore {
11
11
  _store = inject(FComponentsStore);
12
12
  handle(request) {
13
- this._store.addComponent(this._store.fNodes, request.fComponent);
13
+ this._store.addComponent(this._store.fNodes, request.nodeOrGroup);
14
14
  }
15
15
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddNodeToStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
16
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddNodeToStore });
@@ -22,4 +22,4 @@ export { AddNodeToStore };
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddNodeToStore, decorators: [{
23
23
  type: Injectable
24
24
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vZGUtdG8tc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvYWRkLW5vZGUtdG8tc3RvcmUvYWRkLW5vZGUtdG8tc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV0RDs7R0FFRztBQUdJLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWM7SUFFUixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFNUMsTUFBTSxDQUFDLE9BQThCO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO3dHQU5VLGNBQWM7NEdBQWQsY0FBYzs7QUFBZCxjQUFjO0lBRDFCLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDO0dBQzdCLGNBQWMsQ0FPMUI7OzRGQVBZLGNBQWM7a0JBRjFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQWRkTm9kZVRvU3RvcmVSZXF1ZXN0IH0gZnJvbSAnLi9hZGQtbm9kZS10by1zdG9yZS1yZXF1ZXN0JztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuXG4vKipcbiAqIEV4ZWN1dGlvbiB0aGF0IGFkZHMgYSBOb2RlIHRvIHRoZSBGQ29tcG9uZW50c1N0b3JlLlxuICovXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEFkZE5vZGVUb1N0b3JlUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBBZGROb2RlVG9TdG9yZSBpbXBsZW1lbnRzIElFeGVjdXRpb248QWRkTm9kZVRvU3RvcmVSZXF1ZXN0LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBBZGROb2RlVG9TdG9yZVJlcXVlc3QpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9yZS5hZGRDb21wb25lbnQodGhpcy5fc3RvcmUuZk5vZGVzLCByZXF1ZXN0LmZDb21wb25lbnQpO1xuICB9XG59XG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vZGUtdG8tc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvYWRkLW5vZGUtdG8tc3RvcmUvYWRkLW5vZGUtdG8tc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV0RDs7R0FFRztBQUdJLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWM7SUFDUixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFNUMsTUFBTSxDQUFDLE9BQThCO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRSxDQUFDO3dHQUxVLGNBQWM7NEdBQWQsY0FBYzs7QUFBZCxjQUFjO0lBRDFCLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDO0dBQzdCLGNBQWMsQ0FNMUI7OzRGQU5ZLGNBQWM7a0JBRjFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQWRkTm9kZVRvU3RvcmVSZXF1ZXN0IH0gZnJvbSAnLi9hZGQtbm9kZS10by1zdG9yZS1yZXF1ZXN0JztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuXG4vKipcbiAqIEV4ZWN1dGlvbiB0aGF0IGFkZHMgYSBOb2RlIHRvIHRoZSBGQ29tcG9uZW50c1N0b3JlLlxuICovXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEFkZE5vZGVUb1N0b3JlUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBBZGROb2RlVG9TdG9yZSBpbXBsZW1lbnRzIElFeGVjdXRpb248QWRkTm9kZVRvU3RvcmVSZXF1ZXN0LCB2b2lkPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogQWRkTm9kZVRvU3RvcmVSZXF1ZXN0KTogdm9pZCB7XG4gICAgdGhpcy5fc3RvcmUuYWRkQ29tcG9uZW50KHRoaXMuX3N0b3JlLmZOb2RlcywgcmVxdWVzdC5ub2RlT3JHcm91cCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export class CalculateConnectableSideByConnectedPositionsRequest {
2
+ connector;
3
+ pointerPosition;
4
+ static fToken = Symbol('CalculateConnectableSideByConnectedPositionsRequest');
5
+ constructor(connector, pointerPosition) {
6
+ this.connector = connector;
7
+ this.pointerPosition = pointerPosition;
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1ub2RlL2NhbGN1bGF0ZS1jb25uZWN0b3JzLWNvbm5lY3RhYmxlLXNpZGVzL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMvY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxtREFBbUQ7SUFHNUM7SUFDQTtJQUhsQixNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQ3ZGLFlBQ2tCLFNBQXlCLEVBQ3pCLGVBQXdCO1FBRHhCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLG9CQUFlLEdBQWYsZUFBZSxDQUFTO0lBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcblxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zUmVxdWVzdCB7XG4gIHN0YXRpYyByZWFkb25seSBmVG9rZW4gPSBTeW1ib2woJ0NhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zUmVxdWVzdCcpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcG9pbnRlclBvc2l0aW9uPzogSVBvaW50LFxuICApIHt9XG59XG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { __decorate } from "tslib";
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { FExecutionRegister, FMediator } from '@foblex/mediator';
4
+ import { CalculateConnectableSideByConnectedPositionsRequest } from './calculate-connectable-side-by-connected-positions-request';
5
+ import { determineSide } from '../utils';
6
+ import { CALCULATABLE_SIDES } from '../constants';
7
+ import { GetNormalizedElementRectRequest } from '../../../get-normalized-element-rect';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * Execution that calculates the connectable side for a connector
11
+ * based on positions of connected connectors and allowed sides.
12
+ */
13
+ let CalculateConnectableSideByConnectedPositions = class CalculateConnectableSideByConnectedPositions {
14
+ _mediator = inject(FMediator);
15
+ /**
16
+ * Entry point (hot path). Avoids intermediate arrays and redundant allocations.
17
+ *
18
+ * @param request - Contains the connector and optionally allowed sides.
19
+ * @returns {EFConnectableSide} - The chosen connectable side.
20
+ */
21
+ handle({ connector, pointerPosition, }) {
22
+ const mode = connector.userFConnectableSide;
23
+ const selfCenter = this._getConnectorRect(connector.hostElement).gravityCenter;
24
+ const acc = this._accumulateConnectedCenters(connector.hostElement, connector.toConnector, pointerPosition);
25
+ const avgX = acc.sumX / acc.count;
26
+ const avgY = acc.sumY / acc.count;
27
+ return determineSide(selfCenter.x, selfCenter.y, avgX, avgY, CALCULATABLE_SIDES[mode]);
28
+ }
29
+ _accumulateConnectedCenters(selfHost, connected, pointerPosition) {
30
+ let sumX = pointerPosition?.x || 0;
31
+ let sumY = pointerPosition?.y || 0;
32
+ let count = pointerPosition ? 1 : 0;
33
+ if (connected && connected.length) {
34
+ for (let i = 0; i < connected.length; i++) {
35
+ const el = connected[i].hostElement;
36
+ if (el === selfHost)
37
+ continue;
38
+ const c = this._getConnectorRect(el).gravityCenter;
39
+ sumX += c.x;
40
+ sumY += c.y;
41
+ count++;
42
+ }
43
+ }
44
+ return { sumX, sumY, count };
45
+ }
46
+ _getConnectorRect(element) {
47
+ return this._mediator.execute(new GetNormalizedElementRectRequest(element));
48
+ }
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByConnectedPositions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
50
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByConnectedPositions });
51
+ };
52
+ CalculateConnectableSideByConnectedPositions = __decorate([
53
+ FExecutionRegister(CalculateConnectableSideByConnectedPositionsRequest)
54
+ ], CalculateConnectableSideByConnectedPositions);
55
+ export { CalculateConnectableSideByConnectedPositions };
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByConnectedPositions, decorators: [{
57
+ type: Injectable
58
+ }] });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1jb25uZWN0ZWQtcG9zaXRpb25zL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbURBQW1ELEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUdsSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVsRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFFdkY7OztHQUdHO0FBR0ksSUFBTSw0Q0FBNEMsR0FBbEQsTUFBTSw0Q0FBNEM7SUFHdEMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxFQUNaLFNBQVMsRUFDVCxlQUFlLEdBQ3FDO1FBQ3BELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxvQkFBc0MsQ0FBQztRQUM5RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMvRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQzFDLFNBQVMsQ0FBQyxXQUFXLEVBQ3JCLFNBQVMsQ0FBQyxXQUFXLEVBQ3JCLGVBQWUsQ0FDaEIsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUNsQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFFbEMsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRU8sMkJBQTJCLENBQ2pDLFFBQWtDLEVBQ2xDLFNBQThDLEVBQzlDLGVBQW1DO1FBRW5DLElBQUksSUFBSSxHQUFHLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxHQUFHLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7Z0JBQ3BDLElBQUksRUFBRSxLQUFLLFFBQVE7b0JBQUUsU0FBUztnQkFFOUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztnQkFDbkQsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osS0FBSyxFQUFFLENBQUM7WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxPQUFpQztRQUN6RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFlLElBQUksK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDO3dHQXZEVSw0Q0FBNEM7NEdBQTVDLDRDQUE0Qzs7QUFBNUMsNENBQTRDO0lBRHhELGtCQUFrQixDQUFDLG1EQUFtRCxDQUFDO0dBQzNELDRDQUE0QyxDQXdEeEQ7OzRGQXhEWSw0Q0FBNEM7a0JBRnhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QgfSBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMtcmVxdWVzdCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSwgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgSVBvaW50LCBJUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IGRldGVybWluZVNpZGUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBDQUxDVUxBVEFCTEVfU0lERVMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVENhbGN1bGF0ZU1vZGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2dldC1ub3JtYWxpemVkLWVsZW1lbnQtcmVjdCc7XG5cbi8qKlxuICogRXhlY3V0aW9uIHRoYXQgY2FsY3VsYXRlcyB0aGUgY29ubmVjdGFibGUgc2lkZSBmb3IgYSBjb25uZWN0b3JcbiAqIGJhc2VkIG9uIHBvc2l0aW9ucyBvZiBjb25uZWN0ZWQgY29ubmVjdG9ycyBhbmQgYWxsb3dlZCBzaWRlcy5cbiAqL1xuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QpXG5leHBvcnQgY2xhc3MgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlDb25uZWN0ZWRQb3NpdGlvbnNcbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5Q29ubmVjdGVkUG9zaXRpb25zUmVxdWVzdCwgRUZDb25uZWN0YWJsZVNpZGU+XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgLyoqXG4gICAqIEVudHJ5IHBvaW50IChob3QgcGF0aCkuIEF2b2lkcyBpbnRlcm1lZGlhdGUgYXJyYXlzIGFuZCByZWR1bmRhbnQgYWxsb2NhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0IC0gQ29udGFpbnMgdGhlIGNvbm5lY3RvciBhbmQgb3B0aW9uYWxseSBhbGxvd2VkIHNpZGVzLlxuICAgKiBAcmV0dXJucyB7RUZDb25uZWN0YWJsZVNpZGV9IC0gVGhlIGNob3NlbiBjb25uZWN0YWJsZSBzaWRlLlxuICAgKi9cbiAgcHVibGljIGhhbmRsZSh7XG4gICAgY29ubmVjdG9yLFxuICAgIHBvaW50ZXJQb3NpdGlvbixcbiAgfTogQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlDb25uZWN0ZWRQb3NpdGlvbnNSZXF1ZXN0KTogRUZDb25uZWN0YWJsZVNpZGUge1xuICAgIGNvbnN0IG1vZGUgPSBjb25uZWN0b3IudXNlckZDb25uZWN0YWJsZVNpZGUgYXMgVENhbGN1bGF0ZU1vZGU7XG4gICAgY29uc3Qgc2VsZkNlbnRlciA9IHRoaXMuX2dldENvbm5lY3RvclJlY3QoY29ubmVjdG9yLmhvc3RFbGVtZW50KS5ncmF2aXR5Q2VudGVyO1xuICAgIGNvbnN0IGFjYyA9IHRoaXMuX2FjY3VtdWxhdGVDb25uZWN0ZWRDZW50ZXJzKFxuICAgICAgY29ubmVjdG9yLmhvc3RFbGVtZW50LFxuICAgICAgY29ubmVjdG9yLnRvQ29ubmVjdG9yLFxuICAgICAgcG9pbnRlclBvc2l0aW9uLFxuICAgICk7XG5cbiAgICBjb25zdCBhdmdYID0gYWNjLnN1bVggLyBhY2MuY291bnQ7XG4gICAgY29uc3QgYXZnWSA9IGFjYy5zdW1ZIC8gYWNjLmNvdW50O1xuXG4gICAgcmV0dXJuIGRldGVybWluZVNpZGUoc2VsZkNlbnRlci54LCBzZWxmQ2VudGVyLnksIGF2Z1gsIGF2Z1ksIENBTENVTEFUQUJMRV9TSURFU1ttb2RlXSk7XG4gIH1cblxuICBwcml2YXRlIF9hY2N1bXVsYXRlQ29ubmVjdGVkQ2VudGVycyhcbiAgICBzZWxmSG9zdDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50LFxuICAgIGNvbm5lY3RlZDogRkNvbm5lY3RvckJhc2VbXSB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgcG9pbnRlclBvc2l0aW9uOiBJUG9pbnQgfCB1bmRlZmluZWQsXG4gICk6IHsgc3VtWDogbnVtYmVyOyBzdW1ZOiBudW1iZXI7IGNvdW50OiBudW1iZXIgfSB7XG4gICAgbGV0IHN1bVggPSBwb2ludGVyUG9zaXRpb24/LnggfHwgMDtcbiAgICBsZXQgc3VtWSA9IHBvaW50ZXJQb3NpdGlvbj8ueSB8fCAwO1xuICAgIGxldCBjb3VudCA9IHBvaW50ZXJQb3NpdGlvbiA/IDEgOiAwO1xuXG4gICAgaWYgKGNvbm5lY3RlZCAmJiBjb25uZWN0ZWQubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbm5lY3RlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBlbCA9IGNvbm5lY3RlZFtpXS5ob3N0RWxlbWVudDtcbiAgICAgICAgaWYgKGVsID09PSBzZWxmSG9zdCkgY29udGludWU7XG5cbiAgICAgICAgY29uc3QgYyA9IHRoaXMuX2dldENvbm5lY3RvclJlY3QoZWwpLmdyYXZpdHlDZW50ZXI7XG4gICAgICAgIHN1bVggKz0gYy54O1xuICAgICAgICBzdW1ZICs9IGMueTtcbiAgICAgICAgY291bnQrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBzdW1YLCBzdW1ZLCBjb3VudCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29ubmVjdG9yUmVjdChlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBJUm91bmRlZFJlY3Qge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElSb3VuZGVkUmVjdD4obmV3IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QoZWxlbWVudCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './calculate-connectable-side-by-connected-positions';
2
+ export * from './calculate-connectable-side-by-connected-positions-request';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFEQUFxRCxDQUFDO0FBRXBFLGNBQWMsNkRBQTZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMtcmVxdWVzdCc7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export class CalculateConnectableSideByInternalPositionRequest {
2
+ connector;
3
+ static fToken = Symbol('CalculateConnectableSideByInternalPositionRequest');
4
+ constructor(connector) {
5
+ this.connector = connector;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24tcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1pbnRlcm5hbC1wb3NpdGlvbi9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1pbnRlcm5hbC1wb3NpdGlvbi1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpREFBaUQ7SUFFaEM7SUFENUIsTUFBTSxDQUFVLE1BQU0sR0FBRyxNQUFNLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUNyRixZQUE0QixTQUF5QjtRQUF6QixjQUFTLEdBQVQsU0FBUyxDQUFnQjtJQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUludGVybmFsUG9zaXRpb25SZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCcpO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSkge31cbn1cbiJdfQ==
@@ -0,0 +1,132 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable, InjectionToken, inject } from '@angular/core';
3
+ import { FExecutionRegister, FMediator } from '@foblex/mediator';
4
+ import { CalculateConnectableSideByInternalPositionRequest } from './calculate-connectable-side-by-internal-position-request';
5
+ import { EFConnectableSide } from '../../../../f-connectors';
6
+ import { RectExtensions } from '@foblex/2d';
7
+ import { IsDragStartedRequest } from '../../../f-draggable';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * Injection token for configuring the side detection tolerance (in pixels).
11
+ * A new side must beat the previous side by more than this value to switch.
12
+ */
13
+ export const CONNECTABLE_SIDE_EPSILON = new InjectionToken('CONNECTABLE_SIDE_EPSILON');
14
+ /**
15
+ * Calculates the connectable side of a connector relative to its node host.
16
+ *
17
+ * Optimizations & behavior:
18
+ * - Hysteresis via epsilon to avoid jitter near boundaries.
19
+ * - Per-connector memoization using WeakMap (no leaks).
20
+ * - During drag (isDragging === true) the last memorized side is returned immediately
21
+ * for maximum stability and performance; a safe fallback computes it if missing.
22
+ */
23
+ let CalculateConnectableSideByInternalPosition = class CalculateConnectableSideByInternalPosition {
24
+ _mediator = inject(FMediator);
25
+ /**
26
+ * Stores the last computed side per connector.
27
+ * WeakMap ensures entries are garbage-collected with the connector objects.
28
+ */
29
+ _lastSide = new WeakMap();
30
+ /** Pixel threshold to prevent side switching unless the new side is sufficiently better. */
31
+ _epsilon = Math.max(0, inject(CONNECTABLE_SIDE_EPSILON, { optional: true }) ?? 2);
32
+ /**
33
+ * Entry point: returns the connectable side for a given connector.
34
+ * If a drag is in progress, returns the last memorized side for stability.
35
+ */
36
+ handle({ connector, }) {
37
+ // Fast path during drag: use memorized side (guaranteed to be present by caller’s contract).
38
+ if (this._isDragging()) {
39
+ const cached = this._lastSide.get(connector);
40
+ if (cached !== undefined)
41
+ return cached;
42
+ // Safe fallback: compute once and cache.
43
+ const computed = this._getSideByDelta(connector.hostElement, connector.fNodeHost, connector);
44
+ this._lastSide.set(connector, computed);
45
+ return computed;
46
+ }
47
+ // Normal path: compute with hysteresis, then remember.
48
+ const side = this._getSideByDelta(connector.hostElement, connector.fNodeHost, connector);
49
+ this._lastSide.set(connector, side);
50
+ return side;
51
+ }
52
+ /**
53
+ * Determines the side of the connector relative to the node host by
54
+ * comparing distances from the connector's gravity center to each host edge.
55
+ *
56
+ * Hysteresis rule:
57
+ * If the previously chosen side is within `epsilon` pixels of the new best side,
58
+ * keep the previous side to avoid flicker.
59
+ *
60
+ * @param connectorHost - The connector element (HTML or SVG).
61
+ * @param nodeHost - The parent node element (HTML or SVG).
62
+ * @param connectorKey - The connector object, used as WeakMap key.
63
+ * @returns The most stable connectable side.
64
+ */
65
+ _getSideByDelta(connectorHost, nodeHost, connectorKey) {
66
+ const childRect = RectExtensions.fromElement(connectorHost);
67
+ const parentRect = nodeHost.getBoundingClientRect();
68
+ const cx = childRect.gravityCenter.x;
69
+ const cy = childRect.gravityCenter.y;
70
+ const deltaLeft = cx - parentRect.left;
71
+ const deltaRight = parentRect.right - cx;
72
+ const deltaTop = cy - parentRect.top;
73
+ const deltaBottom = parentRect.bottom - cy;
74
+ // Determine best side (min delta) in one pass
75
+ let minIdx = 0;
76
+ let minVal = deltaLeft;
77
+ // i=1..3 correspond to Right, Top, Bottom respectively
78
+ const candidates = [deltaLeft, deltaRight, deltaTop, deltaBottom];
79
+ for (let i = 1; i < 4; i++) {
80
+ const v = candidates[i];
81
+ if (v < minVal) {
82
+ minVal = v;
83
+ minIdx = i;
84
+ }
85
+ }
86
+ let candidate = minIdx === 0
87
+ ? EFConnectableSide.LEFT
88
+ : minIdx === 1
89
+ ? EFConnectableSide.RIGHT
90
+ : minIdx === 2
91
+ ? EFConnectableSide.TOP
92
+ : EFConnectableSide.BOTTOM;
93
+ // Hysteresis: prefer previously chosen side if it's almost as good
94
+ const prev = this._lastSide.get(connectorKey);
95
+ if (prev !== undefined && prev !== candidate) {
96
+ const prevIdx = prev === EFConnectableSide.LEFT
97
+ ? 0
98
+ : prev === EFConnectableSide.RIGHT
99
+ ? 1
100
+ : prev === EFConnectableSide.TOP
101
+ ? 2
102
+ : 3;
103
+ const prevDelta = prevIdx === 0
104
+ ? deltaLeft
105
+ : prevIdx === 1
106
+ ? deltaRight
107
+ : prevIdx === 2
108
+ ? deltaTop
109
+ : deltaBottom;
110
+ // How much better the new side is (smaller is better)
111
+ const advantage = prevDelta - minVal;
112
+ if (advantage <= this._epsilon) {
113
+ candidate = prev;
114
+ }
115
+ }
116
+ return candidate;
117
+ }
118
+ /** Returns true if a drag operation is currently active. */
119
+ _isDragging() {
120
+ return this._mediator.execute(new IsDragStartedRequest());
121
+ }
122
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByInternalPosition, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
123
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByInternalPosition });
124
+ };
125
+ CalculateConnectableSideByInternalPosition = __decorate([
126
+ FExecutionRegister(CalculateConnectableSideByInternalPositionRequest)
127
+ ], CalculateConnectableSideByInternalPosition);
128
+ export { CalculateConnectableSideByInternalPosition };
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectableSideByInternalPosition, decorators: [{
130
+ type: Injectable
131
+ }] });
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlEQUFpRCxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDOUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLENBQUMsQ0FBQztBQUUvRjs7Ozs7Ozs7R0FRRztBQUdJLElBQU0sMENBQTBDLEdBQWhELE1BQU0sMENBQTBDO0lBR3BDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0M7OztPQUdHO0lBQ2MsU0FBUyxHQUFHLElBQUksT0FBTyxFQUE2QixDQUFDO0lBRXRFLDRGQUE0RjtJQUMzRSxRQUFRLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FDMUMsQ0FBQyxFQUNELE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDMUQsQ0FBQztJQUVGOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxFQUNaLFNBQVMsR0FDeUM7UUFDbEQsNkZBQTZGO1FBQzdGLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0MsSUFBSSxNQUFNLEtBQUssU0FBUztnQkFBRSxPQUFPLE1BQU0sQ0FBQztZQUN4Qyx5Q0FBeUM7WUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRXhDLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCx1REFBdUQ7UUFDdkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNLLGVBQWUsQ0FDckIsYUFBdUMsRUFDdkMsUUFBa0MsRUFDbEMsWUFBb0I7UUFFcEIsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVwRCxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNyQyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUVyQyxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUN2QyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFFBQVEsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUNyQyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUUzQyw4Q0FBOEM7UUFDOUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBRXZCLHVEQUF1RDtRQUN2RCxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBVSxDQUFDO1FBQzNFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDWCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLFNBQVMsR0FDWCxNQUFNLEtBQUssQ0FBQztZQUNWLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJO1lBQ3hCLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDWixDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSztnQkFDekIsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO29CQUNaLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO29CQUN2QixDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBRW5DLG1FQUFtRTtRQUNuRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QyxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sT0FBTyxHQUNYLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO2dCQUM3QixDQUFDLENBQUMsQ0FBQztnQkFDSCxDQUFDLENBQUMsSUFBSSxLQUFLLGlCQUFpQixDQUFDLEtBQUs7b0JBQ2hDLENBQUMsQ0FBQyxDQUFDO29CQUNILENBQUMsQ0FBQyxJQUFJLEtBQUssaUJBQWlCLENBQUMsR0FBRzt3QkFDOUIsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVaLE1BQU0sU0FBUyxHQUNiLE9BQU8sS0FBSyxDQUFDO2dCQUNYLENBQUMsQ0FBQyxTQUFTO2dCQUNYLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQztvQkFDYixDQUFDLENBQUMsVUFBVTtvQkFDWixDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7d0JBQ2IsQ0FBQyxDQUFDLFFBQVE7d0JBQ1YsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUV0QixzREFBc0Q7WUFDdEQsTUFBTSxTQUFTLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUNyQyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQy9CLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsNERBQTREO0lBQ3BELFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO3dHQWhJVSwwQ0FBMEM7NEdBQTFDLDBDQUEwQzs7QUFBMUMsMENBQTBDO0lBRHRELGtCQUFrQixDQUFDLGlEQUFpRCxDQUFDO0dBQ3pELDBDQUEwQyxDQWlJdEQ7OzRGQWpJWSwwQ0FBMEM7a0JBRnRELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24tcmVxdWVzdCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSXNEcmFnU3RhcnRlZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZSc7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBjb25maWd1cmluZyB0aGUgc2lkZSBkZXRlY3Rpb24gdG9sZXJhbmNlIChpbiBwaXhlbHMpLlxuICogQSBuZXcgc2lkZSBtdXN0IGJlYXQgdGhlIHByZXZpb3VzIHNpZGUgYnkgbW9yZSB0aGFuIHRoaXMgdmFsdWUgdG8gc3dpdGNoLlxuICovXG5leHBvcnQgY29uc3QgQ09OTkVDVEFCTEVfU0lERV9FUFNJTE9OID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oJ0NPTk5FQ1RBQkxFX1NJREVfRVBTSUxPTicpO1xuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGNvbm5lY3RhYmxlIHNpZGUgb2YgYSBjb25uZWN0b3IgcmVsYXRpdmUgdG8gaXRzIG5vZGUgaG9zdC5cbiAqXG4gKiBPcHRpbWl6YXRpb25zICYgYmVoYXZpb3I6XG4gKiAtIEh5c3RlcmVzaXMgdmlhIGVwc2lsb24gdG8gYXZvaWQgaml0dGVyIG5lYXIgYm91bmRhcmllcy5cbiAqIC0gUGVyLWNvbm5lY3RvciBtZW1vaXphdGlvbiB1c2luZyBXZWFrTWFwIChubyBsZWFrcykuXG4gKiAtIER1cmluZyBkcmFnIChpc0RyYWdnaW5nID09PSB0cnVlKSB0aGUgbGFzdCBtZW1vcml6ZWQgc2lkZSBpcyByZXR1cm5lZCBpbW1lZGlhdGVseVxuICogICBmb3IgbWF4aW11bSBzdGFiaWxpdHkgYW5kIHBlcmZvcm1hbmNlOyBhIHNhZmUgZmFsbGJhY2sgY29tcHV0ZXMgaXQgaWYgbWlzc2luZy5cbiAqL1xuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUludGVybmFsUG9zaXRpb25SZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5SW50ZXJuYWxQb3NpdGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248Q2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCwgRUZDb25uZWN0YWJsZVNpZGU+XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgbGFzdCBjb21wdXRlZCBzaWRlIHBlciBjb25uZWN0b3IuXG4gICAqIFdlYWtNYXAgZW5zdXJlcyBlbnRyaWVzIGFyZSBnYXJiYWdlLWNvbGxlY3RlZCB3aXRoIHRoZSBjb25uZWN0b3Igb2JqZWN0cy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhc3RTaWRlID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBFRkNvbm5lY3RhYmxlU2lkZT4oKTtcblxuICAvKiogUGl4ZWwgdGhyZXNob2xkIHRvIHByZXZlbnQgc2lkZSBzd2l0Y2hpbmcgdW5sZXNzIHRoZSBuZXcgc2lkZSBpcyBzdWZmaWNpZW50bHkgYmV0dGVyLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9lcHNpbG9uOiBudW1iZXIgPSBNYXRoLm1heChcbiAgICAwLFxuICAgIGluamVjdChDT05ORUNUQUJMRV9TSURFX0VQU0lMT04sIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gMixcbiAgKTtcblxuICAvKipcbiAgICogRW50cnkgcG9pbnQ6IHJldHVybnMgdGhlIGNvbm5lY3RhYmxlIHNpZGUgZm9yIGEgZ2l2ZW4gY29ubmVjdG9yLlxuICAgKiBJZiBhIGRyYWcgaXMgaW4gcHJvZ3Jlc3MsIHJldHVybnMgdGhlIGxhc3QgbWVtb3JpemVkIHNpZGUgZm9yIHN0YWJpbGl0eS5cbiAgICovXG4gIHB1YmxpYyBoYW5kbGUoe1xuICAgIGNvbm5lY3RvcixcbiAgfTogQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCk6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgICAvLyBGYXN0IHBhdGggZHVyaW5nIGRyYWc6IHVzZSBtZW1vcml6ZWQgc2lkZSAoZ3VhcmFudGVlZCB0byBiZSBwcmVzZW50IGJ5IGNhbGxlcuKAmXMgY29udHJhY3QpLlxuICAgIGlmICh0aGlzLl9pc0RyYWdnaW5nKCkpIHtcbiAgICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuX2xhc3RTaWRlLmdldChjb25uZWN0b3IpO1xuICAgICAgaWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gY2FjaGVkO1xuICAgICAgLy8gU2FmZSBmYWxsYmFjazogY29tcHV0ZSBvbmNlIGFuZCBjYWNoZS5cbiAgICAgIGNvbnN0IGNvbXB1dGVkID0gdGhpcy5fZ2V0U2lkZUJ5RGVsdGEoY29ubmVjdG9yLmhvc3RFbGVtZW50LCBjb25uZWN0b3IuZk5vZGVIb3N0LCBjb25uZWN0b3IpO1xuICAgICAgdGhpcy5fbGFzdFNpZGUuc2V0KGNvbm5lY3RvciwgY29tcHV0ZWQpO1xuXG4gICAgICByZXR1cm4gY29tcHV0ZWQ7XG4gICAgfVxuXG4gICAgLy8gTm9ybWFsIHBhdGg6IGNvbXB1dGUgd2l0aCBoeXN0ZXJlc2lzLCB0aGVuIHJlbWVtYmVyLlxuICAgIGNvbnN0IHNpZGUgPSB0aGlzLl9nZXRTaWRlQnlEZWx0YShjb25uZWN0b3IuaG9zdEVsZW1lbnQsIGNvbm5lY3Rvci5mTm9kZUhvc3QsIGNvbm5lY3Rvcik7XG4gICAgdGhpcy5fbGFzdFNpZGUuc2V0KGNvbm5lY3Rvciwgc2lkZSk7XG5cbiAgICByZXR1cm4gc2lkZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHRoZSBzaWRlIG9mIHRoZSBjb25uZWN0b3IgcmVsYXRpdmUgdG8gdGhlIG5vZGUgaG9zdCBieVxuICAgKiBjb21wYXJpbmcgZGlzdGFuY2VzIGZyb20gdGhlIGNvbm5lY3RvcidzIGdyYXZpdHkgY2VudGVyIHRvIGVhY2ggaG9zdCBlZGdlLlxuICAgKlxuICAgKiBIeXN0ZXJlc2lzIHJ1bGU6XG4gICAqIElmIHRoZSBwcmV2aW91c2x5IGNob3NlbiBzaWRlIGlzIHdpdGhpbiBgZXBzaWxvbmAgcGl4ZWxzIG9mIHRoZSBuZXcgYmVzdCBzaWRlLFxuICAgKiBrZWVwIHRoZSBwcmV2aW91cyBzaWRlIHRvIGF2b2lkIGZsaWNrZXIuXG4gICAqXG4gICAqIEBwYXJhbSBjb25uZWN0b3JIb3N0IC0gVGhlIGNvbm5lY3RvciBlbGVtZW50IChIVE1MIG9yIFNWRykuXG4gICAqIEBwYXJhbSBub2RlSG9zdCAtIFRoZSBwYXJlbnQgbm9kZSBlbGVtZW50IChIVE1MIG9yIFNWRykuXG4gICAqIEBwYXJhbSBjb25uZWN0b3JLZXkgLSBUaGUgY29ubmVjdG9yIG9iamVjdCwgdXNlZCBhcyBXZWFrTWFwIGtleS5cbiAgICogQHJldHVybnMgVGhlIG1vc3Qgc3RhYmxlIGNvbm5lY3RhYmxlIHNpZGUuXG4gICAqL1xuICBwcml2YXRlIF9nZXRTaWRlQnlEZWx0YShcbiAgICBjb25uZWN0b3JIb3N0OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQsXG4gICAgbm9kZUhvc3Q6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCxcbiAgICBjb25uZWN0b3JLZXk6IG9iamVjdCxcbiAgKTogRUZDb25uZWN0YWJsZVNpZGUge1xuICAgIGNvbnN0IGNoaWxkUmVjdCA9IFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KGNvbm5lY3Rvckhvc3QpO1xuICAgIGNvbnN0IHBhcmVudFJlY3QgPSBub2RlSG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGN4ID0gY2hpbGRSZWN0LmdyYXZpdHlDZW50ZXIueDtcbiAgICBjb25zdCBjeSA9IGNoaWxkUmVjdC5ncmF2aXR5Q2VudGVyLnk7XG5cbiAgICBjb25zdCBkZWx0YUxlZnQgPSBjeCAtIHBhcmVudFJlY3QubGVmdDtcbiAgICBjb25zdCBkZWx0YVJpZ2h0ID0gcGFyZW50UmVjdC5yaWdodCAtIGN4O1xuICAgIGNvbnN0IGRlbHRhVG9wID0gY3kgLSBwYXJlbnRSZWN0LnRvcDtcbiAgICBjb25zdCBkZWx0YUJvdHRvbSA9IHBhcmVudFJlY3QuYm90dG9tIC0gY3k7XG5cbiAgICAvLyBEZXRlcm1pbmUgYmVzdCBzaWRlIChtaW4gZGVsdGEpIGluIG9uZSBwYXNzXG4gICAgbGV0IG1pbklkeCA9IDA7XG4gICAgbGV0IG1pblZhbCA9IGRlbHRhTGVmdDtcblxuICAgIC8vIGk9MS4uMyBjb3JyZXNwb25kIHRvIFJpZ2h0LCBUb3AsIEJvdHRvbSByZXNwZWN0aXZlbHlcbiAgICBjb25zdCBjYW5kaWRhdGVzID0gW2RlbHRhTGVmdCwgZGVsdGFSaWdodCwgZGVsdGFUb3AsIGRlbHRhQm90dG9tXSBhcyBjb25zdDtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IDQ7IGkrKykge1xuICAgICAgY29uc3QgdiA9IGNhbmRpZGF0ZXNbaV07XG4gICAgICBpZiAodiA8IG1pblZhbCkge1xuICAgICAgICBtaW5WYWwgPSB2O1xuICAgICAgICBtaW5JZHggPSBpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBjYW5kaWRhdGUgPVxuICAgICAgbWluSWR4ID09PSAwXG4gICAgICAgID8gRUZDb25uZWN0YWJsZVNpZGUuTEVGVFxuICAgICAgICA6IG1pbklkeCA9PT0gMVxuICAgICAgICAgID8gRUZDb25uZWN0YWJsZVNpZGUuUklHSFRcbiAgICAgICAgICA6IG1pbklkeCA9PT0gMlxuICAgICAgICAgICAgPyBFRkNvbm5lY3RhYmxlU2lkZS5UT1BcbiAgICAgICAgICAgIDogRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NO1xuXG4gICAgLy8gSHlzdGVyZXNpczogcHJlZmVyIHByZXZpb3VzbHkgY2hvc2VuIHNpZGUgaWYgaXQncyBhbG1vc3QgYXMgZ29vZFxuICAgIGNvbnN0IHByZXYgPSB0aGlzLl9sYXN0U2lkZS5nZXQoY29ubmVjdG9yS2V5KTtcbiAgICBpZiAocHJldiAhPT0gdW5kZWZpbmVkICYmIHByZXYgIT09IGNhbmRpZGF0ZSkge1xuICAgICAgY29uc3QgcHJldklkeCA9XG4gICAgICAgIHByZXYgPT09IEVGQ29ubmVjdGFibGVTaWRlLkxFRlRcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IHByZXYgPT09IEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUXG4gICAgICAgICAgICA/IDFcbiAgICAgICAgICAgIDogcHJldiA9PT0gRUZDb25uZWN0YWJsZVNpZGUuVE9QXG4gICAgICAgICAgICAgID8gMlxuICAgICAgICAgICAgICA6IDM7XG5cbiAgICAgIGNvbnN0IHByZXZEZWx0YSA9XG4gICAgICAgIHByZXZJZHggPT09IDBcbiAgICAgICAgICA/IGRlbHRhTGVmdFxuICAgICAgICAgIDogcHJldklkeCA9PT0gMVxuICAgICAgICAgICAgPyBkZWx0YVJpZ2h0XG4gICAgICAgICAgICA6IHByZXZJZHggPT09IDJcbiAgICAgICAgICAgICAgPyBkZWx0YVRvcFxuICAgICAgICAgICAgICA6IGRlbHRhQm90dG9tO1xuXG4gICAgICAvLyBIb3cgbXVjaCBiZXR0ZXIgdGhlIG5ldyBzaWRlIGlzIChzbWFsbGVyIGlzIGJldHRlcilcbiAgICAgIGNvbnN0IGFkdmFudGFnZSA9IHByZXZEZWx0YSAtIG1pblZhbDtcbiAgICAgIGlmIChhZHZhbnRhZ2UgPD0gdGhpcy5fZXBzaWxvbikge1xuICAgICAgICBjYW5kaWRhdGUgPSBwcmV2O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjYW5kaWRhdGU7XG4gIH1cblxuICAvKiogUmV0dXJucyB0cnVlIGlmIGEgZHJhZyBvcGVyYXRpb24gaXMgY3VycmVudGx5IGFjdGl2ZS4gKi9cbiAgcHJpdmF0ZSBfaXNEcmFnZ2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgSXNEcmFnU3RhcnRlZFJlcXVlc3QoKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './calculate-connectable-side-by-internal-position';
2
+ export * from './calculate-connectable-side-by-internal-position-request';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtREFBbUQsQ0FBQztBQUVsRSxjQUFjLDJEQUEyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGFibGUtc2lkZS1ieS1pbnRlcm5hbC1wb3NpdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24tcmVxdWVzdCc7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export class CalculateConnectorsConnectableSidesRequest {
2
+ nodeOrGroup;
3
+ static fToken = Symbol('CalculateConnectorsConnectableSidesRequest');
4
+ constructor(nodeOrGroup) {
5
+ this.nodeOrGroup = nodeOrGroup;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTywwQ0FBMEM7SUFFekI7SUFENUIsTUFBTSxDQUFVLE1BQU0sR0FBRyxNQUFNLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUM5RSxZQUE0QixXQUFzQjtRQUF0QixnQkFBVyxHQUFYLFdBQVcsQ0FBVztJQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuXG5leHBvcnQgY2xhc3MgQ2FsY3VsYXRlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnQ2FsY3VsYXRlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0Jyk7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBub2RlT3JHcm91cDogRk5vZGVCYXNlKSB7fVxufVxuIl19
@@ -0,0 +1,73 @@
1
+ import { __decorate } from "tslib";
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { FExecutionRegister, FMediator } from '@foblex/mediator';
4
+ import { CalculateConnectorsConnectableSidesRequest } from './calculate-connectors-connectable-sides-request';
5
+ import { EFConnectableSide } from '../../../f-connectors';
6
+ import { CalculateConnectableSideByConnectedPositionsRequest } from './calculate-connectable-side-by-connected-positions';
7
+ import { CalculateConnectableSideByInternalPositionRequest } from './calculate-connectable-side-by-internal-position';
8
+ import { isCalculateMode } from './utils';
9
+ import * as i0 from "@angular/core";
10
+ /**
11
+ * Execution that calculates connectable sides for all connectors of a node.
12
+ */
13
+ let CalculateConnectorsConnectableSides = class CalculateConnectorsConnectableSides {
14
+ _mediator = inject(FMediator);
15
+ /**
16
+ * Orchestrates side calculation for all connectors of the given node.
17
+ */
18
+ handle({ nodeOrGroup }) {
19
+ const connectors = nodeOrGroup.connectors;
20
+ const len = connectors.length;
21
+ for (let i = 0; i < len; i++) {
22
+ const connection = connectors[i];
23
+ connection.fConnectableSide = this._resolveSideForConnectorFast(connection);
24
+ }
25
+ const toRecalc = new Set();
26
+ for (let i = 0; i < len; i++) {
27
+ const source = connectors[i];
28
+ const outs = source.toConnector;
29
+ if (outs && outs.length) {
30
+ for (let j = 0, m = outs.length; j < m; j++) {
31
+ const target = outs[j];
32
+ const userSide = target.userFConnectableSide;
33
+ if (isCalculateMode(userSide)) {
34
+ toRecalc.add(target);
35
+ }
36
+ }
37
+ }
38
+ }
39
+ if (toRecalc.size > 0) {
40
+ toRecalc.forEach((target) => {
41
+ target.fConnectableSide = this._calculateByConnectedPositions(target);
42
+ });
43
+ }
44
+ }
45
+ /**
46
+ * Resolves the connectable side for a connector quickly.
47
+ * Avoids intermediate arrays and redundant allocations.
48
+ */
49
+ _resolveSideForConnectorFast(connector) {
50
+ const mode = connector.userFConnectableSide;
51
+ if (mode === EFConnectableSide.AUTO) {
52
+ return this._mediator.execute(new CalculateConnectableSideByInternalPositionRequest(connector));
53
+ }
54
+ if (isCalculateMode(mode)) {
55
+ return this._calculateByConnectedPositions(connector);
56
+ }
57
+ return mode;
58
+ }
59
+ /** Delegates to the connected-positions calculation execution. */
60
+ _calculateByConnectedPositions(connector) {
61
+ return this._mediator.execute(new CalculateConnectableSideByConnectedPositionsRequest(connector));
62
+ }
63
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectorsConnectableSides, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
64
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectorsConnectableSides });
65
+ };
66
+ CalculateConnectorsConnectableSides = __decorate([
67
+ FExecutionRegister(CalculateConnectorsConnectableSidesRequest)
68
+ ], CalculateConnectorsConnectableSides);
69
+ export { CalculateConnectorsConnectableSides };
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectorsConnectableSides, decorators: [{
71
+ type: Injectable
72
+ }] });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM5RyxPQUFPLEVBQUUsaUJBQWlCLEVBQWtCLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1EQUFtRCxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDMUgsT0FBTyxFQUFFLGlEQUFpRCxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFMUM7O0dBRUc7QUFHSSxJQUFNLG1DQUFtQyxHQUF6QyxNQUFNLG1DQUFtQztJQUc3QixTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRS9DOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUE4QztRQUN2RSxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBQzFDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFFOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdCLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUUzQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDN0IsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDaEMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDO29CQUM3QyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO3dCQUM5QixRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2QixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLDRCQUE0QixDQUFDLFNBQXlCO1FBQzVELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQztRQUU1QyxJQUFJLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQixJQUFJLGlEQUFpRCxDQUFDLFNBQVMsQ0FBQyxDQUNqRSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtFQUFrRTtJQUMxRCw4QkFBOEIsQ0FBQyxTQUF5QjtRQUM5RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQixJQUFJLG1EQUFtRCxDQUFDLFNBQVMsQ0FBQyxDQUNuRSxDQUFDO0lBQ0osQ0FBQzt3R0FqRVUsbUNBQW1DOzRHQUFuQyxtQ0FBbUM7O0FBQW5DLG1DQUFtQztJQUQvQyxrQkFBa0IsQ0FBQywwQ0FBMEMsQ0FBQztHQUNsRCxtQ0FBbUMsQ0FrRS9DOzs0RkFsRVksbUNBQW1DO2tCQUYvQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy1yZXF1ZXN0JztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlLCBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QgfSBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0YWJsZS1zaWRlLWJ5LWNvbm5lY3RlZC1wb3NpdGlvbnMnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGFibGVTaWRlQnlJbnRlcm5hbFBvc2l0aW9uUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24nO1xuaW1wb3J0IHsgaXNDYWxjdWxhdGVNb2RlIH0gZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogRXhlY3V0aW9uIHRoYXQgY2FsY3VsYXRlcyBjb25uZWN0YWJsZSBzaWRlcyBmb3IgYWxsIGNvbm5lY3RvcnMgb2YgYSBub2RlLlxuICovXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKENhbGN1bGF0ZUNvbm5lY3RvcnNDb25uZWN0YWJsZVNpZGVzUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVDb25uZWN0b3JzQ29ubmVjdGFibGVTaWRlc1xuICBpbXBsZW1lbnRzIElFeGVjdXRpb248Q2FsY3VsYXRlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0LCB2b2lkPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIC8qKlxuICAgKiBPcmNoZXN0cmF0ZXMgc2lkZSBjYWxjdWxhdGlvbiBmb3IgYWxsIGNvbm5lY3RvcnMgb2YgdGhlIGdpdmVuIG5vZGUuXG4gICAqL1xuICBwdWJsaWMgaGFuZGxlKHsgbm9kZU9yR3JvdXAgfTogQ2FsY3VsYXRlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0KTogdm9pZCB7XG4gICAgY29uc3QgY29ubmVjdG9ycyA9IG5vZGVPckdyb3VwLmNvbm5lY3RvcnM7XG4gICAgY29uc3QgbGVuID0gY29ubmVjdG9ycy5sZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gY29ubmVjdG9yc1tpXTtcbiAgICAgIGNvbm5lY3Rpb24uZkNvbm5lY3RhYmxlU2lkZSA9IHRoaXMuX3Jlc29sdmVTaWRlRm9yQ29ubmVjdG9yRmFzdChjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB0b1JlY2FsYyA9IG5ldyBTZXQ8RkNvbm5lY3RvckJhc2U+KCk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBzb3VyY2UgPSBjb25uZWN0b3JzW2ldO1xuICAgICAgY29uc3Qgb3V0cyA9IHNvdXJjZS50b0Nvbm5lY3RvcjtcbiAgICAgIGlmIChvdXRzICYmIG91dHMubGVuZ3RoKSB7XG4gICAgICAgIGZvciAobGV0IGogPSAwLCBtID0gb3V0cy5sZW5ndGg7IGogPCBtOyBqKyspIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSBvdXRzW2pdO1xuICAgICAgICAgIGNvbnN0IHVzZXJTaWRlID0gdGFyZ2V0LnVzZXJGQ29ubmVjdGFibGVTaWRlO1xuICAgICAgICAgIGlmIChpc0NhbGN1bGF0ZU1vZGUodXNlclNpZGUpKSB7XG4gICAgICAgICAgICB0b1JlY2FsYy5hZGQodGFyZ2V0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodG9SZWNhbGMuc2l6ZSA+IDApIHtcbiAgICAgIHRvUmVjYWxjLmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgICAgICB0YXJnZXQuZkNvbm5lY3RhYmxlU2lkZSA9IHRoaXMuX2NhbGN1bGF0ZUJ5Q29ubmVjdGVkUG9zaXRpb25zKHRhcmdldCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIGNvbm5lY3RhYmxlIHNpZGUgZm9yIGEgY29ubmVjdG9yIHF1aWNrbHkuXG4gICAqIEF2b2lkcyBpbnRlcm1lZGlhdGUgYXJyYXlzIGFuZCByZWR1bmRhbnQgYWxsb2NhdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIF9yZXNvbHZlU2lkZUZvckNvbm5lY3RvckZhc3QoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgICBjb25zdCBtb2RlID0gY29ubmVjdG9yLnVzZXJGQ29ubmVjdGFibGVTaWRlO1xuXG4gICAgaWYgKG1vZGUgPT09IEVGQ29ubmVjdGFibGVTaWRlLkFVVE8pIHtcbiAgICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPEVGQ29ubmVjdGFibGVTaWRlPihcbiAgICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3RhYmxlU2lkZUJ5SW50ZXJuYWxQb3NpdGlvblJlcXVlc3QoY29ubmVjdG9yKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGlzQ2FsY3VsYXRlTW9kZShtb2RlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NhbGN1bGF0ZUJ5Q29ubmVjdGVkUG9zaXRpb25zKGNvbm5lY3Rvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZGU7XG4gIH1cblxuICAvKiogRGVsZWdhdGVzIHRvIHRoZSBjb25uZWN0ZWQtcG9zaXRpb25zIGNhbGN1bGF0aW9uIGV4ZWN1dGlvbi4gKi9cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlQnlDb25uZWN0ZWRQb3NpdGlvbnMoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IEVGQ29ubmVjdGFibGVTaWRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBDYWxjdWxhdGVDb25uZWN0YWJsZVNpZGVCeUNvbm5lY3RlZFBvc2l0aW9uc1JlcXVlc3QoY29ubmVjdG9yKSxcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { EFConnectableSide } from '../../../../f-connectors';
2
+ export const CALCULATABLE_SIDES = {
3
+ [EFConnectableSide.CALCULATE]: [
4
+ EFConnectableSide.TOP,
5
+ EFConnectableSide.BOTTOM,
6
+ EFConnectableSide.LEFT,
7
+ EFConnectableSide.RIGHT,
8
+ ],
9
+ [EFConnectableSide.CALCULATE_HORIZONTAL]: [EFConnectableSide.LEFT, EFConnectableSide.RIGHT],
10
+ [EFConnectableSide.CALCULATE_VERTICAL]: [EFConnectableSide.TOP, EFConnectableSide.BOTTOM],
11
+ };
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRhYmxlLXNpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1ub2RlL2NhbGN1bGF0ZS1jb25uZWN0b3JzLWNvbm5lY3RhYmxlLXNpZGVzL2NvbnN0YW50cy9jYWxjdWxhdGFibGUtc2lkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0QsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUM3QixpQkFBaUIsQ0FBQyxHQUFHO1FBQ3JCLGlCQUFpQixDQUFDLE1BQU07UUFDeEIsaUJBQWlCLENBQUMsSUFBSTtRQUN0QixpQkFBaUIsQ0FBQyxLQUFLO0tBQ3hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQztJQUMzRixDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDO0NBQzFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBDQUxDVUxBVEFCTEVfU0lERVMgPSB7XG4gIFtFRkNvbm5lY3RhYmxlU2lkZS5DQUxDVUxBVEVdOiBbXG4gICAgRUZDb25uZWN0YWJsZVNpZGUuVE9QLFxuICAgIEVGQ29ubmVjdGFibGVTaWRlLkJPVFRPTSxcbiAgICBFRkNvbm5lY3RhYmxlU2lkZS5MRUZULFxuICAgIEVGQ29ubmVjdGFibGVTaWRlLlJJR0hULFxuICBdLFxuICBbRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFX0hPUklaT05UQUxdOiBbRUZDb25uZWN0YWJsZVNpZGUuTEVGVCwgRUZDb25uZWN0YWJsZVNpZGUuUklHSFRdLFxuICBbRUZDb25uZWN0YWJsZVNpZGUuQ0FMQ1VMQVRFX1ZFUlRJQ0FMXTogW0VGQ29ubmVjdGFibGVTaWRlLlRPUCwgRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NXSxcbn07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './calculatable-sides';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhbGN1bGF0YWJsZS1zaWRlcyc7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export * from './calculate-connectable-side-by-connected-positions';
2
+ export * from './calculate-connectable-side-by-internal-position';
3
+ export * from './constants';
4
+ export * from './models';
5
+ export * from './utils';
6
+ export * from './calculate-connectors-connectable-sides';
7
+ export * from './calculate-connectors-connectable-sides-request';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxREFBcUQsQ0FBQztBQUVwRSxjQUFjLG1EQUFtRCxDQUFDO0FBRWxFLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsU0FBUyxDQUFDO0FBRXhCLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxrREFBa0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktY29ubmVjdGVkLXBvc2l0aW9ucyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RhYmxlLXNpZGUtYnktaW50ZXJuYWwtcG9zaXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdG9ycy1jb25uZWN0YWJsZS1zaWRlcy1yZXF1ZXN0JztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './t-calculate-mode';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLW5vZGUvY2FsY3VsYXRlLWNvbm5lY3RvcnMtY29ubmVjdGFibGUtc2lkZXMvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3QtY2FsY3VsYXRlLW1vZGUnO1xuIl19