@foblex/flow 17.5.9 → 17.6.0

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 (175) hide show
  1. package/domain/css-cls.d.ts +1 -1
  2. package/domain/f-connection/create-connection-markers/create-connection-markers.execution.d.ts +2 -5
  3. package/domain/f-connectors/find-closest-connector/find-closest-connector.execution.d.ts +11 -0
  4. package/domain/f-connectors/find-closest-connector/find-closest-connector.request.d.ts +8 -0
  5. package/domain/f-connectors/find-closest-connector/index.d.ts +2 -0
  6. package/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.d.ts +25 -0
  7. package/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.request.d.ts +8 -0
  8. package/domain/f-connectors/find-connectable-connector-using-priority-and-position/index.d.ts +2 -0
  9. 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 +13 -0
  10. 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 +6 -0
  11. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.d.ts +2 -0
  12. package/domain/f-connectors/{i-closest-input.d.ts → i-closest-connector.d.ts} +1 -1
  13. package/domain/f-connectors/index.d.ts +6 -5
  14. package/domain/f-connectors/mark-connectable-connectors/index.d.ts +2 -0
  15. package/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.execution.d.ts +10 -0
  16. package/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.request.d.ts +6 -0
  17. package/domain/f-connectors/providers.d.ts +6 -5
  18. package/domain/f-connectors/unmark-connectable-connectors/index.d.ts +2 -0
  19. package/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.execution.d.ts +10 -0
  20. package/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.request.d.ts +6 -0
  21. package/domain/f-draggable/providers.d.ts +1 -1
  22. package/domain/providers.d.ts +1 -1
  23. package/esm2022/domain/css-cls.mjs +2 -2
  24. package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node.execution.mjs +2 -2
  25. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +17 -18
  26. package/esm2022/domain/f-connectors/find-closest-connector/find-closest-connector.execution.mjs +42 -0
  27. package/esm2022/domain/f-connectors/find-closest-connector/find-closest-connector.request.mjs +10 -0
  28. package/esm2022/domain/f-connectors/{find-input-at-position → find-closest-connector}/index.mjs +3 -3
  29. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.mjs +93 -0
  30. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.request.mjs +10 -0
  31. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/index.mjs +3 -0
  32. 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 +38 -0
  33. 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 +8 -0
  34. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.mjs +3 -0
  35. package/esm2022/domain/f-connectors/i-closest-connector.mjs +2 -0
  36. package/esm2022/domain/f-connectors/index.mjs +7 -6
  37. package/esm2022/domain/f-connectors/mark-connectable-connectors/index.mjs +3 -0
  38. package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.execution.mjs +27 -0
  39. package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.request.mjs +8 -0
  40. package/esm2022/domain/f-connectors/providers.mjs +11 -9
  41. package/esm2022/domain/f-connectors/unmark-connectable-connectors/index.mjs +3 -0
  42. package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.execution.mjs +27 -0
  43. package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.request.mjs +8 -0
  44. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.mjs +2 -2
  45. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +2 -2
  46. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.execution.mjs +5 -5
  47. package/esm2022/domain/f-selection/select/select.execution.mjs +3 -3
  48. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.mjs +2 -2
  49. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.mjs +2 -2
  50. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.mjs +2 -2
  51. package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.execution.mjs +3 -3
  52. package/esm2022/f-canvas/f-canvas.component.mjs +2 -2
  53. package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +7 -2
  54. package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +3 -2
  55. package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +2 -2
  56. package/esm2022/f-connection/common/f-connection-base.mjs +16 -12
  57. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +2 -2
  58. package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +2 -2
  59. package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +4 -4
  60. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +8 -8
  61. package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +2 -2
  62. package/esm2022/f-connection/common/i-has-connection-color.mjs +1 -1
  63. package/esm2022/f-connection/common/i-has-connection-from-to.mjs +1 -1
  64. package/esm2022/f-connection/f-connection/f-connection.component.mjs +23 -52
  65. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-response.mjs +1 -1
  66. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +21 -48
  67. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +21 -48
  68. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +2 -2
  69. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +2 -2
  70. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +2 -2
  71. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +2 -2
  72. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.mjs +3 -3
  73. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +6 -6
  74. package/esm2022/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.mjs +3 -3
  75. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +5 -5
  76. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.mjs +41 -73
  77. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.event.mjs +18 -12
  78. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +83 -0
  79. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +82 -0
  80. package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.mjs +1 -1
  81. package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-handler.mjs +8 -0
  82. package/esm2022/f-draggable/f-connection/f-reassign-connection/index.mjs +5 -1
  83. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-finalize/f-reassign-connection-finalize.execution.mjs +27 -21
  84. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +8 -11
  85. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/index.mjs +2 -1
  86. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.mjs +17 -0
  87. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.execution.mjs +3 -3
  88. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +4 -4
  89. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.mjs +2 -2
  90. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.mjs +2 -2
  91. package/esm2022/f-draggable/f-node-move/f-summary-node-move.drag-handler.mjs +2 -2
  92. package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.mjs +2 -2
  93. package/esm2022/f-draggable/f-node-resize/f-node-resize.drag-handler.mjs +2 -2
  94. package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +2 -2
  95. package/esm2022/f-draggable/f-node-rotate/f-node-rotate.drag-handler.mjs +2 -2
  96. package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +2 -2
  97. package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.execution.mjs +2 -2
  98. package/esm2022/f-flow/f-flow.component.mjs +3 -3
  99. package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +1 -1
  100. package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +3 -4
  101. package/esm2022/f-minimap/f-minimap-flow.directive.mjs +7 -9
  102. package/esm2022/f-minimap/f-minimap-view.directive.mjs +3 -3
  103. package/esm2022/f-minimap/f-minimap.component.mjs +19 -30
  104. package/esm2022/f-node/f-group.directive.mjs +6 -9
  105. package/esm2022/f-node/f-node-base.mjs +1 -1
  106. package/esm2022/f-node/f-node.directive.mjs +6 -9
  107. package/esm2022/mixins/change-selection/change-selection.mjs +3 -2
  108. package/esm2022/mixins/change-selection/i-selectable.mjs +1 -1
  109. package/f-connection/common/f-connection-base.d.ts +15 -12
  110. package/f-connection/common/i-has-connection-color.d.ts +3 -2
  111. package/f-connection/common/i-has-connection-from-to.d.ts +2 -1
  112. package/f-connection/f-connection/f-connection.component.d.ts +17 -15
  113. package/f-connection/f-connection-builder/i-f-connection-builder-response.d.ts +1 -0
  114. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +16 -15
  115. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +16 -15
  116. package/f-connection/providers.d.ts +1 -1
  117. package/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +2 -2
  118. package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.d.ts +11 -17
  119. package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.event.d.ts +9 -6
  120. package/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.d.ts +27 -0
  121. package/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.d.ts +28 -0
  122. package/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.d.ts +4 -2
  123. package/f-draggable/f-connection/f-reassign-connection/i-f-reassign-handler.d.ts +12 -0
  124. package/f-draggable/f-connection/f-reassign-connection/index.d.ts +4 -0
  125. package/f-draggable/f-connection/f-reassign-connection/reassign-finalize/f-reassign-connection-finalize.execution.d.ts +6 -6
  126. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.d.ts +0 -1
  127. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/index.d.ts +1 -0
  128. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.d.ts +5 -0
  129. package/f-draggable/f-drop-to-group/providers.d.ts +1 -1
  130. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
  131. package/f-draggable/f-node-move/providers.d.ts +1 -1
  132. package/f-draggable/f-node-resize/providers.d.ts +1 -1
  133. package/f-draggable/providers.d.ts +1 -1
  134. package/f-external-item/domain/providers.d.ts +1 -1
  135. package/f-flow/f-flow.component.d.ts +1 -1
  136. package/f-minimap/domain/providers.d.ts +1 -1
  137. package/f-minimap/f-minimap-canvas.directive.d.ts +1 -1
  138. package/f-minimap/f-minimap-flow.directive.d.ts +4 -4
  139. package/f-minimap/f-minimap-view.directive.d.ts +1 -1
  140. package/f-minimap/f-minimap.component.d.ts +8 -8
  141. package/f-minimap/providers.d.ts +1 -1
  142. package/f-node/f-group.directive.d.ts +2 -2
  143. package/f-node/f-node-base.d.ts +2 -2
  144. package/f-node/f-node.directive.d.ts +2 -2
  145. package/f-node/providers.d.ts +2 -2
  146. package/f-selection-area/domain/providers.d.ts +1 -1
  147. package/f-storage/providers.d.ts +1 -1
  148. package/fesm2022/foblex-flow.mjs +592 -490
  149. package/fesm2022/foblex-flow.mjs.map +1 -1
  150. package/mixins/change-selection/i-selectable.d.ts +2 -1
  151. package/package.json +1 -1
  152. package/domain/f-connectors/calculate-closest-input/calculate-closest-input.execution.d.ts +0 -11
  153. package/domain/f-connectors/calculate-closest-input/calculate-closest-input.request.d.ts +0 -8
  154. package/domain/f-connectors/calculate-closest-input/index.d.ts +0 -2
  155. package/domain/f-connectors/find-input-at-position/find-input-at-position.execution.d.ts +0 -25
  156. package/domain/f-connectors/find-input-at-position/find-input-at-position.request.d.ts +0 -9
  157. package/domain/f-connectors/find-input-at-position/index.d.ts +0 -2
  158. package/domain/f-connectors/mark-all-can-be-connected-inputs/index.d.ts +0 -2
  159. package/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.execution.d.ts +0 -10
  160. package/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.request.d.ts +0 -6
  161. package/domain/f-connectors/unmark-all-can-be-connected-inputs/index.d.ts +0 -2
  162. package/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.execution.d.ts +0 -10
  163. package/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.request.d.ts +0 -6
  164. package/esm2022/domain/f-connectors/calculate-closest-input/calculate-closest-input.execution.mjs +0 -42
  165. package/esm2022/domain/f-connectors/calculate-closest-input/calculate-closest-input.request.mjs +0 -10
  166. package/esm2022/domain/f-connectors/calculate-closest-input/index.mjs +0 -3
  167. package/esm2022/domain/f-connectors/find-input-at-position/find-input-at-position.execution.mjs +0 -92
  168. package/esm2022/domain/f-connectors/find-input-at-position/find-input-at-position.request.mjs +0 -12
  169. package/esm2022/domain/f-connectors/i-closest-input.mjs +0 -2
  170. package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/index.mjs +0 -3
  171. package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.execution.mjs +0 -27
  172. package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.request.mjs +0 -8
  173. package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/index.mjs +0 -3
  174. package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.execution.mjs +0 -27
  175. package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.request.mjs +0 -8
@@ -19,7 +19,7 @@ let IsConnectionUnderNodeExecution = class IsConnectionUnderNodeExecution {
19
19
  const fOutputConnections = this._getOutputConnectionsId(fOutputConnectors);
20
20
  const fInputConnections = this._getInputConnectionsId(fInputConnectors);
21
21
  const fConnectionsUnderNode = this._calculateConnectionsUnderNode(request.fNode).filter((x) => {
22
- return !fOutputConnections.includes(x.fId) && !fInputConnections.includes(x.fId);
22
+ return !fOutputConnections.includes(x.fId()) && !fInputConnections.includes(x.fId());
23
23
  });
24
24
  if (!fConnectionsUnderNode.length) {
25
25
  return;
@@ -40,13 +40,13 @@ let IsConnectionUnderNodeExecution = class IsConnectionUnderNodeExecution {
40
40
  const connectorsId = this._getConnectorsId(connectors);
41
41
  return this._fComponentsStore.fConnections
42
42
  .filter((x) => connectorsId.includes(x.fOutputId))
43
- .map((x) => x.fId);
43
+ .map((x) => x.fId());
44
44
  }
45
45
  _getInputConnectionsId(connectors) {
46
46
  const connectorsId = this._getConnectorsId(connectors);
47
47
  return this._fComponentsStore.fConnections
48
48
  .filter((x) => connectorsId.includes(x.fInputId))
49
- .map((x) => x.fId);
49
+ .map((x) => x.fId());
50
50
  }
51
51
  _getConnectorsId(connectors) {
52
52
  return connectors.map((x) => x.fId);
@@ -56,10 +56,10 @@ let IsConnectionUnderNodeExecution = class IsConnectionUnderNodeExecution {
56
56
  return this._fComponentsStore.fConnections.filter((x) => this._isConnectionHasIntersectionsWithNode(x, fNodeRect));
57
57
  }
58
58
  _isConnectionHasIntersectionsWithNode(fConnection, fNodeRect) {
59
- return GetIntersections.getRoundedRectIntersectionsWithSVGPath(fConnection.fPath.hostElement, fNodeRect).length > 0;
59
+ return GetIntersections.getRoundedRectIntersectionsWithSVGPath(fConnection.fPath().hostElement, fNodeRect).length > 0;
60
60
  }
61
61
  _emitNodeIntersectedWithConnections(fNode, fConnections) {
62
- this._fComponentsStore.fDraggable?.fNodeIntersectedWithConnections.emit(new FNodeIntersectedWithConnections(fNode.fId, fConnections.map((x) => x.fId)));
62
+ this._fComponentsStore.fDraggable?.fNodeIntersectedWithConnections.emit(new FNodeIntersectedWithConnections(fNode.fId(), fConnections.map((x) => x.fId())));
63
63
  }
64
64
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IsConnectionUnderNodeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
65
65
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IsConnectionUnderNodeExecution });
@@ -71,4 +71,4 @@ export { IsConnectionUnderNodeExecution };
71
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IsConnectionUnderNodeExecution, decorators: [{
72
72
  type: Injectable
73
73
  }] });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29ubmVjdGlvbi11bmRlci1ub2RlLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZG9tYWluL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZS9pcy1jb25uZWN0aW9uLXVuZGVyLW5vZGUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sWUFBWSxDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJOUQsT0FBTyxFQUFDLGlDQUFpQyxFQUFrQyxNQUFNLGlCQUFpQixDQUFDOztBQUk1RixJQUFNLDhCQUE4QixHQUFwQyxNQUFNLDhCQUE4QjtJQUVqQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTlDLE1BQU0sQ0FBQyxPQUFxQztRQUVqRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FB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QUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRU8scUNBQXFDLENBQUMsV0FBNEIsRUFBRSxTQUF1QjtRQUNqRyxPQUFPLGdCQUFnQixDQUFDLHNDQUFzQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEgsQ0FBQztJQUVPLG1DQUFtQyxDQUFDLEtBQWdCLEVBQUUsWUFBK0I7UUFDM0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSwrQkFBK0IsQ0FBQyxJQUFJLENBQ3JFLElBQUksK0JBQStCLENBQ2pDLEtBQUssQ0FBQyxHQUFHLEVBQ1QsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUMvQixDQUNGLENBQUM7SUFDSixDQUFDO3dHQTFFVSw4QkFBOEI7NEdBQTlCLDhCQUE4Qjs7QUFBOUIsOEJBQThCO0lBRDFDLGtCQUFrQixDQUFDLDRCQUE0QixDQUFDO0dBQ3BDLDhCQUE4QixDQTJFMUM7OzRGQTNFWSw4QkFBOEI7a0JBRjFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZXRJbnRlcnNlY3Rpb25zLCBJUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IElzQ29ubmVjdGlvblVuZGVyTm9kZVJlcXVlc3QgfSBmcm9tICcuL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZS5yZXF1ZXN0JztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRk5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucyB9IGZyb20gJy4uLy4uL2luZGV4JztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHtHZXROb3JtYWxpemVkQ29ubmVjdG9yUmVjdFJlcXVlc3QsIEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3R9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoSXNDb25uZWN0aW9uVW5kZXJOb2RlUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBJc0Nvbm5lY3Rpb25VbmRlck5vZGVFeGVjdXRpb24gaW1wbGVtZW50cyBJRXhlY3V0aW9uPElzQ29ubmVjdGlvblVuZGVyTm9kZVJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSBfZkNvbXBvbmVudHNTdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IElzQ29ubmVjdGlvblVuZGVyTm9kZVJlcXVlc3QpOiB2b2lkIHtcblxuICAgIGNvbnN0IGZPdXRwdXRDb25uZWN0b3JzID0gdGhpcy5fZ2V0T3V0cHV0Q29ubmVjdG9ycyhyZXF1ZXN0LmZOb2RlKTtcbiAgICBjb25zdCBmSW5wdXRDb25uZWN0b3JzID0gdGhpcy5fZ2V0SW5wdXRDb25uZWN0b3JzKHJlcXVlc3QuZk5vZGUpO1xuXG4gICAgaWYgKCFmT3V0cHV0Q29ubmVjdG9ycy5sZW5ndGggfHwgIWZJbnB1dENvbm5lY3RvcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZk91dHB1dENvbm5lY3Rpb25zID0gdGhpcy5fZ2V0T3V0cHV0Q29ubmVjdGlvbnNJZChmT3V0cHV0Q29ubmVjdG9ycyk7XG4gICAgY29uc3QgZklucHV0Q29ubmVjdGlvbnMgPSB0aGlzLl9nZXRJbnB1dENvbm5lY3Rpb25zSWQoZklucHV0Q29ubmVjdG9ycyk7XG5cbiAgICBjb25zdCBmQ29ubmVjdGlvbnNVbmRlck5vZGUgPSB0aGlzLl9jYWxjdWxhdGVDb25uZWN0aW9uc1VuZGVyTm9kZShyZXF1ZXN0LmZOb2RlKS5maWx0ZXIoKHgpID0+IHtcbiAgICAgIHJldHVybiAhZk91dHB1dENvbm5lY3Rpb25zLmluY2x1ZGVzKHguZklkKSAmJiAhZklucHV0Q29ubmVjdGlvbnMuaW5jbHVkZXMoeC5mSWQpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFmQ29ubmVjdGlvbnNVbmRlck5vZGUubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fZW1pdE5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucyhyZXF1ZXN0LmZOb2RlLCBmQ29ubmVjdGlvbnNVbmRlck5vZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0T3V0cHV0Q29ubmVjdG9ycyhmTm9kZTogRk5vZGVCYXNlKTogRkNvbm5lY3RvckJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZk91dHB1dHMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gZk5vZGUuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSAmJiB4LmNhbkJlQ29ubmVjdGVkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SW5wdXRDb25uZWN0b3JzKGZOb2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mSW5wdXRzLmZpbHRlcigoeCkgPT4ge1xuICAgICAgcmV0dXJuIGZOb2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkgJiYgeC5jYW5CZUNvbm5lY3RlZDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE91dHB1dENvbm5lY3Rpb25zSWQoY29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjb25uZWN0b3JzSWQgPSB0aGlzLl9nZXRDb25uZWN0b3JzSWQoY29ubmVjdG9ycyk7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNvbm5lY3Rpb25zXG4gICAgICAuZmlsdGVyKCh4KSA9PiBjb25uZWN0b3JzSWQuaW5jbHVkZXMoeC5mT3V0cHV0SWQpKVxuICAgICAgLm1hcCgoeCkgPT4geC5mSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SW5wdXRDb25uZWN0aW9uc0lkKGNvbm5lY3RvcnM6IEZDb25uZWN0b3JCYXNlW10pOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY29ubmVjdG9yc0lkID0gdGhpcy5fZ2V0Q29ubmVjdG9yc0lkKGNvbm5lY3RvcnMpO1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZDb25uZWN0aW9uc1xuICAgICAgLmZpbHRlcigoeCkgPT4gY29ubmVjdG9yc0lkLmluY2x1ZGVzKHguZklucHV0SWQpKVxuICAgICAgLm1hcCgoeCkgPT4geC5mSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29ubmVjdG9yc0lkKGNvbm5lY3RvcnM6IEZDb25uZWN0b3JCYXNlW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGNvbm5lY3RvcnMubWFwKCh4KSA9PiB4LmZJZCk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVDb25uZWN0aW9uc1VuZGVyTm9kZShmTm9kZTogRk5vZGVCYXNlKTogRkNvbm5lY3Rpb25CYXNlW10ge1xuICAgIGNvbnN0IGZOb2RlUmVjdCA9IHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElSb3VuZGVkUmVjdD4obmV3IEdldE5vcm1hbGl6ZWRDb25uZWN0b3JSZWN0UmVxdWVzdChmTm9kZS5ob3N0RWxlbWVudCkpO1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZDb25uZWN0aW9ucy5maWx0ZXIoKHgpID0+IHRoaXMuX2lzQ29ubmVjdGlvbkhhc0ludGVyc2VjdGlvbnNXaXRoTm9kZSh4LCBmTm9kZVJlY3QpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQ29ubmVjdGlvbkhhc0ludGVyc2VjdGlvbnNXaXRoTm9kZShmQ29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLCBmTm9kZVJlY3Q6IElSb3VuZGVkUmVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBHZXRJbnRlcnNlY3Rpb25zLmdldFJvdW5kZWRSZWN0SW50ZXJzZWN0aW9uc1dpdGhTVkdQYXRoKGZDb25uZWN0aW9uLmZQYXRoLmhvc3RFbGVtZW50LCBmTm9kZVJlY3QpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0Tm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zKGZOb2RlOiBGTm9kZUJhc2UsIGZDb25uZWN0aW9uczogRkNvbm5lY3Rpb25CYXNlW10pOiB2b2lkIHtcbiAgICB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZEcmFnZ2FibGU/LmZOb2RlSW50ZXJzZWN0ZWRXaXRoQ29ubmVjdGlvbnMuZW1pdChcbiAgICAgIG5ldyBGTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zKFxuICAgICAgICBmTm9kZS5mSWQsXG4gICAgICAgIGZDb25uZWN0aW9ucy5tYXAoKHgpID0+IHguZklkKVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29ubmVjdGlvbi11bmRlci1ub2RlLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZG9tYWluL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZS9pcy1jb25uZWN0aW9uLXVuZGVyLW5vZGUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sWUFBWSxDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJOUQsT0FBTyxFQUFDLGlDQUFpQyxFQUFrQyxNQUFNLGlCQUFpQixDQUFDOztBQUk1RixJQUFNLDhCQUE4QixHQUFwQyxNQUFNLDhCQUE4QjtJQUV4QixVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXZELE1BQU0sQ0FBQyxPQUFxQztRQUVqRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FB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QUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3JILENBQUM7SUFFTyxxQ0FBcUMsQ0FBQyxXQUE0QixFQUFFLFNBQXVCO1FBQ2pHLE9BQU8sZ0JBQWdCLENBQUMsc0NBQXNDLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hILENBQUM7SUFFTyxtQ0FBbUMsQ0FBQyxLQUFnQixFQUFFLFlBQStCO1FBQzNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsK0JBQStCLENBQUMsSUFBSSxDQUNyRSxJQUFJLCtCQUErQixDQUNqQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQ1gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQ2pDLENBQ0YsQ0FBQztJQUNKLENBQUM7d0dBMUVVLDhCQUE4Qjs0R0FBOUIsOEJBQThCOztBQUE5Qiw4QkFBOEI7SUFEMUMsa0JBQWtCLENBQUMsNEJBQTRCLENBQUM7R0FDcEMsOEJBQThCLENBMkUxQzs7NEZBM0VZLDhCQUE4QjtrQkFGMUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldEludGVyc2VjdGlvbnMsIElSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgSXNDb25uZWN0aW9uVW5kZXJOb2RlUmVxdWVzdCB9IGZyb20gJy4vaXMtY29ubmVjdGlvbi11bmRlci1ub2RlLnJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zIH0gZnJvbSAnLi4vLi4vaW5kZXgnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQge0dldE5vcm1hbGl6ZWRDb25uZWN0b3JSZWN0UmVxdWVzdCwgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihJc0Nvbm5lY3Rpb25VbmRlck5vZGVSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIElzQ29ubmVjdGlvblVuZGVyTm9kZUV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248SXNDb25uZWN0aW9uVW5kZXJOb2RlUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogSXNDb25uZWN0aW9uVW5kZXJOb2RlUmVxdWVzdCk6IHZvaWQge1xuXG4gICAgY29uc3QgZk91dHB1dENvbm5lY3RvcnMgPSB0aGlzLl9nZXRPdXRwdXRDb25uZWN0b3JzKHJlcXVlc3QuZk5vZGUpO1xuICAgIGNvbnN0IGZJbnB1dENvbm5lY3RvcnMgPSB0aGlzLl9nZXRJbnB1dENvbm5lY3RvcnMocmVxdWVzdC5mTm9kZSk7XG5cbiAgICBpZiAoIWZPdXRwdXRDb25uZWN0b3JzLmxlbmd0aCB8fCAhZklucHV0Q29ubmVjdG9ycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmT3V0cHV0Q29ubmVjdGlvbnMgPSB0aGlzLl9nZXRPdXRwdXRDb25uZWN0aW9uc0lkKGZPdXRwdXRDb25uZWN0b3JzKTtcbiAgICBjb25zdCBmSW5wdXRDb25uZWN0aW9ucyA9IHRoaXMuX2dldElucHV0Q29ubmVjdGlvbnNJZChmSW5wdXRDb25uZWN0b3JzKTtcblxuICAgIGNvbnN0IGZDb25uZWN0aW9uc1VuZGVyTm9kZSA9IHRoaXMuX2NhbGN1bGF0ZUNvbm5lY3Rpb25zVW5kZXJOb2RlKHJlcXVlc3QuZk5vZGUpLmZpbHRlcigoeCkgPT4ge1xuICAgICAgcmV0dXJuICFmT3V0cHV0Q29ubmVjdGlvbnMuaW5jbHVkZXMoeC5mSWQoKSkgJiYgIWZJbnB1dENvbm5lY3Rpb25zLmluY2x1ZGVzKHguZklkKCkpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFmQ29ubmVjdGlvbnNVbmRlck5vZGUubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fZW1pdE5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucyhyZXF1ZXN0LmZOb2RlLCBmQ29ubmVjdGlvbnNVbmRlck5vZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0T3V0cHV0Q29ubmVjdG9ycyhmTm9kZTogRk5vZGVCYXNlKTogRkNvbm5lY3RvckJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZk91dHB1dHMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gZk5vZGUuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSAmJiB4LmNhbkJlQ29ubmVjdGVkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SW5wdXRDb25uZWN0b3JzKGZOb2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mSW5wdXRzLmZpbHRlcigoeCkgPT4ge1xuICAgICAgcmV0dXJuIGZOb2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkgJiYgeC5jYW5CZUNvbm5lY3RlZDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE91dHB1dENvbm5lY3Rpb25zSWQoY29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjb25uZWN0b3JzSWQgPSB0aGlzLl9nZXRDb25uZWN0b3JzSWQoY29ubmVjdG9ycyk7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNvbm5lY3Rpb25zXG4gICAgICAuZmlsdGVyKCh4KSA9PiBjb25uZWN0b3JzSWQuaW5jbHVkZXMoeC5mT3V0cHV0SWQpKVxuICAgICAgLm1hcCgoeCkgPT4geC5mSWQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnB1dENvbm5lY3Rpb25zSWQoY29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjb25uZWN0b3JzSWQgPSB0aGlzLl9nZXRDb25uZWN0b3JzSWQoY29ubmVjdG9ycyk7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNvbm5lY3Rpb25zXG4gICAgICAuZmlsdGVyKCh4KSA9PiBjb25uZWN0b3JzSWQuaW5jbHVkZXMoeC5mSW5wdXRJZCkpXG4gICAgICAubWFwKCh4KSA9PiB4LmZJZCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENvbm5lY3RvcnNJZChjb25uZWN0b3JzOiBGQ29ubmVjdG9yQmFzZVtdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBjb25uZWN0b3JzLm1hcCgoeCkgPT4geC5mSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlQ29ubmVjdGlvbnNVbmRlck5vZGUoZk5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0aW9uQmFzZVtdIHtcbiAgICBjb25zdCBmTm9kZVJlY3QgPSB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJUm91bmRlZFJlY3Q+KG5ldyBHZXROb3JtYWxpemVkQ29ubmVjdG9yUmVjdFJlcXVlc3QoZk5vZGUuaG9zdEVsZW1lbnQpKTtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mQ29ubmVjdGlvbnMuZmlsdGVyKCh4KSA9PiB0aGlzLl9pc0Nvbm5lY3Rpb25IYXNJbnRlcnNlY3Rpb25zV2l0aE5vZGUoeCwgZk5vZGVSZWN0KSk7XG4gIH1cblxuICBwcml2YXRlIF9pc0Nvbm5lY3Rpb25IYXNJbnRlcnNlY3Rpb25zV2l0aE5vZGUoZkNvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSwgZk5vZGVSZWN0OiBJUm91bmRlZFJlY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gR2V0SW50ZXJzZWN0aW9ucy5nZXRSb3VuZGVkUmVjdEludGVyc2VjdGlvbnNXaXRoU1ZHUGF0aChmQ29ubmVjdGlvbi5mUGF0aCgpLmhvc3RFbGVtZW50LCBmTm9kZVJlY3QpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0Tm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zKGZOb2RlOiBGTm9kZUJhc2UsIGZDb25uZWN0aW9uczogRkNvbm5lY3Rpb25CYXNlW10pOiB2b2lkIHtcbiAgICB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZEcmFnZ2FibGU/LmZOb2RlSW50ZXJzZWN0ZWRXaXRoQ29ubmVjdGlvbnMuZW1pdChcbiAgICAgIG5ldyBGTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zKFxuICAgICAgICBmTm9kZS5mSWQoKSxcbiAgICAgICAgZkNvbm5lY3Rpb25zLm1hcCgoeCkgPT4geC5mSWQoKSlcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -8,8 +8,8 @@ import { FDraggableDataContext } from '../../../f-draggable-data-context';
8
8
  import { GetFirstConnectableOutputRequest } from '../get-first-connectable-output';
9
9
  import { FCreateConnectionEvent } from '../f-create-connection.event';
10
10
  import { FCreateConnectionDragHandler } from '../f-create-connection.drag-handler';
11
- import { FindInputAtPositionRequest } from '../../../../domain';
12
11
  import { FDragHandlerResult } from '../../../f-drag-handler';
12
+ import { FindConnectableConnectorUsingPriorityAndPositionRequest } from "../../../../domain";
13
13
  import * as i0 from "@angular/core";
14
14
  let FCreateConnectionFinalizeExecution = class FCreateConnectionFinalizeExecution {
15
15
  _fResult = inject(FDragHandlerResult);
@@ -45,7 +45,7 @@ let FCreateConnectionFinalizeExecution = class FCreateConnectionFinalizeExecutio
45
45
  this._fComponentsStore.fDraggable?.fCreateConnection.emit(new FCreateConnectionEvent(this.getTargetOutput(this.getOutput() || this.getOutlet()).fId, this._getInputUnderPointer(event)?.fId, event.getPosition()));
46
46
  }
47
47
  _getInputUnderPointer(event) {
48
- return this._fMediator.execute(new FindInputAtPositionRequest(event.getPosition(), this._fResult.getData().toConnectorRect, this._fResult.getData().canBeConnectedInputs));
48
+ return this._fMediator.execute(new FindConnectableConnectorUsingPriorityAndPositionRequest(event.getPosition(), this._fResult.getData().canBeConnectedInputs));
49
49
  }
50
50
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCreateConnectionFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
51
51
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCreateConnectionFinalizeExecution });
@@ -57,4 +57,4 @@ export { FCreateConnectionFinalizeExecution };
57
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCreateConnectionFinalizeExecution, decorators: [{
58
58
  type: Injectable
59
59
  }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jcmVhdGUtY29ubmVjdGlvbi1maW5hbGl6ZS5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtY29ubmVjdGlvbi9mLWNyZWF0ZS1jb25uZWN0aW9uL2NyZWF0ZS1maW5hbGl6ZS9mLWNyZWF0ZS1jb25uZWN0aW9uLWZpbmFsaXplLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFvRCxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTXRELElBQU0sa0NBQWtDLEdBQXhDLE1BQU0sa0NBQWtDO0lBR3JDLFFBQVEsR0FBcUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFeEYsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixp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bGV4L21lZGlhdG9yJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSwgRk5vZGVPdXRsZXRCYXNlLCBGTm9kZU91dHB1dEJhc2UsIGlzTm9kZU91dGxldCB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdCB9IGZyb20gJy4vZi1jcmVhdGUtY29ubmVjdGlvbi1maW5hbGl6ZS5yZXF1ZXN0JztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgR2V0Rmlyc3RDb25uZWN0YWJsZU91dHB1dFJlcXVlc3QgfSBmcm9tICcuLi9nZXQtZmlyc3QtY29ubmVjdGFibGUtb3V0cHV0JztcbmltcG9ydCB7IEZDcmVhdGVDb25uZWN0aW9uRXZlbnQgfSBmcm9tICcuLi9mLWNyZWF0ZS1jb25uZWN0aW9uLmV2ZW50JztcbmltcG9ydCB7IEZDcmVhdGVDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfSBmcm9tICcuLi9mLWNyZWF0ZS1jb25uZWN0aW9uLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBGaW5kSW5wdXRBdFBvc2l0aW9uUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGRHJhZ0hhbmRsZXJSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBJRkNyZWF0ZUNvbm5lY3Rpb25EcmFnUmVzdWx0IH0gZnJvbSAnLi4vaS1mLWNyZWF0ZS1jb25uZWN0aW9uLWRyYWctcmVzdWx0JztcbmltcG9ydCB7SVBvaW50ZXJFdmVudH0gZnJvbSBcIi4uLy4uLy4uLy4uL2RyYWctdG9vbGtpdFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEZDcmVhdGVDb25uZWN0aW9uRmluYWxpemVSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEZDcmVhdGVDb25uZWN0aW9uRmluYWxpemVFeGVjdXRpb25cbiAgaW1wbGVtZW50cyBJSGFuZGxlcjxGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgX2ZSZXN1bHQ6IEZEcmFnSGFuZGxlclJlc3VsdDxJRkNyZWF0ZUNvbm5lY3Rpb25EcmFnUmVzdWx0PiA9IGluamVjdChGRHJhZ0hhbmRsZXJSZXN1bHQpO1xuXG4gIHByaXZhdGUgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIF9mRHJhZ2dhYmxlRGF0YUNvbnRleHQgPSBpbmplY3QoRkRyYWdnYWJsZURhdGFDb250ZXh0KTtcblxuICBwcml2YXRlIGdldCBfZkRyYWdIYW5kbGVyKCk6IEZDcmVhdGVDb25uZWN0aW9uRHJhZ0hhbmRsZXIge1xuICAgIHJldHVybiB0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXNbIDAgXSBhcyBGQ3JlYXRlQ29ubmVjdGlvbkRyYWdIYW5kbGVyO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNWYWxpZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZW1pdEV2ZW50KHJlcXVlc3QuZXZlbnQpO1xuICAgIHRoaXMuX2ZEcmFnSGFuZGxlci5vblBvaW50ZXJVcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLnNvbWUoXG4gICAgICAoeCkgPT4geCBpbnN0YW5jZW9mIEZDcmVhdGVDb25uZWN0aW9uRHJhZ0hhbmRsZXJcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYXJnZXRPdXRwdXQob3V0cHV0OiBGQ29ubmVjdG9yQmFzZSB8IHVuZGVmaW5lZCk6IEZDb25uZWN0b3JCYXNlIHtcbiAgICBpZiAoIW91dHB1dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBPdXRwdXQgd2l0aCBmT3V0cHV0SWQgJHsgdGhpcy5fZlJlc3VsdC5nZXREYXRhKCkuZk91dHB1dElkIH0gbm90IGZvdW5kLiBNYWtlIHN1cmUgdGhlcmUgaXMgbm8gZi1jb25uZWN0aW9uIHRvIGEgbm9uLWV4aXN0ZW50IGZPdXRwdXQuYCk7XG4gICAgfVxuICAgIHJldHVybiBpc05vZGVPdXRsZXQob3V0cHV0Lmhvc3RFbGVtZW50KSA/IHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPEZOb2RlT3V0cHV0QmFzZT4oXG4gICAgICBuZXcgR2V0Rmlyc3RDb25uZWN0YWJsZU91dHB1dFJlcXVlc3Qob3V0cHV0IGFzIEZOb2RlT3V0bGV0QmFzZSlcbiAgICApIDogb3V0cHV0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdXRwdXQoKTogRkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZPdXRwdXRzLmZpbmQoKHgpID0+IHguZklkID09PSB0aGlzLl9mUmVzdWx0LmdldERhdGEoKS5mT3V0cHV0SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdXRsZXQoKTogRkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZPdXRsZXRzLmZpbmQoKHgpID0+IHguZklkID09PSB0aGlzLl9mUmVzdWx0LmdldERhdGEoKS5mT3V0cHV0SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RXZlbnQoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZEcmFnZ2FibGU/LmZDcmVhdGVDb25uZWN0aW9uLmVtaXQoXG4gICAgICBuZXcgRkNyZWF0ZUNvbm5lY3Rpb25FdmVudChcbiAgICAgICAgdGhpcy5nZXRUYXJnZXRPdXRwdXQodGhpcy5nZXRPdXRwdXQoKSB8fCB0aGlzLmdldE91dGxldCgpKS5mSWQsXG4gICAgICAgIHRoaXMuX2dldElucHV0VW5kZXJQb2ludGVyKGV2ZW50KT8uZklkLFxuICAgICAgICBldmVudC5nZXRQb3NpdGlvbigpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldElucHV0VW5kZXJQb2ludGVyKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogRkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxGQ29ubmVjdG9yQmFzZSB8IHVuZGVmaW5lZD4oXG4gICAgICBuZXcgRmluZElucHV0QXRQb3NpdGlvblJlcXVlc3QoXG4gICAgICAgIGV2ZW50LmdldFBvc2l0aW9uKCksXG4gICAgICAgIHRoaXMuX2ZSZXN1bHQuZ2V0RGF0YSgpLnRvQ29ubmVjdG9yUmVjdCxcbiAgICAgICAgdGhpcy5fZlJlc3VsdC5nZXREYXRhKCkuY2FuQmVDb25uZWN0ZWRJbnB1dHNcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jcmVhdGUtY29ubmVjdGlvbi1maW5hbGl6ZS5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtY29ubmVjdGlvbi9mLWNyZWF0ZS1jb25uZWN0aW9uL2NyZWF0ZS1maW5hbGl6ZS9mLWNyZWF0ZS1jb25uZWN0aW9uLWZpbmFsaXplLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFvRCxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHN0QsT0FBTyxFQUFDLHVEQUF1RCxFQUFDLE1BQU0sb0JBQW9CLENBQUM7O0FBSXBGLElBQU0sa0NBQWtDLEdBQXhDLE1BQU0sa0NBQWtDO0lBR3JDLFFBQVEsR0FBcUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFeEYsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixpQkFBaUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3QyxzQkFBc0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUUvRCxJQUFZLGFBQWE7UUFDdkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFFLENBQUMsQ0FBa0MsQ0FBQztJQUN6RixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQXlDO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVPLFFBQVE7UUFDZCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNwRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLDRCQUE0QixDQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWUsQ0FBQyxNQUFrQztRQUN4RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUEwQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVUsMkVBQTJFLENBQUMsQ0FBQztRQUMzSixDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDL0QsSUFBSSxnQ0FBZ0MsQ0FBQyxNQUF5QixDQUFDLENBQ2hFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNiLENBQUM7SUFFTyxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTyxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBb0I7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQ3ZELElBQUksc0JBQXNCLENBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFDOUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFDdEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUNwQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8scUJBQXFCLENBQUMsS0FBb0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDNUIsSUFBSSx1REFBdUQsQ0FDekQsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUM3QyxDQUNGLENBQUM7SUFDSixDQUFDO3dHQTdEVSxrQ0FBa0M7NEdBQWxDLGtDQUFrQzs7QUFBbEMsa0NBQWtDO0lBRDlDLGtCQUFrQixDQUFDLGdDQUFnQyxDQUFDO0dBQ3hDLGtDQUFrQyxDQThEOUM7OzRGQTlEWSxrQ0FBa0M7a0JBRjlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlLCBGTm9kZU91dGxldEJhc2UsIEZOb2RlT3V0cHV0QmFzZSwgaXNOb2RlT3V0bGV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZDcmVhdGVDb25uZWN0aW9uRmluYWxpemVSZXF1ZXN0IH0gZnJvbSAnLi9mLWNyZWF0ZS1jb25uZWN0aW9uLWZpbmFsaXplLnJlcXVlc3QnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBHZXRGaXJzdENvbm5lY3RhYmxlT3V0cHV0UmVxdWVzdCB9IGZyb20gJy4uL2dldC1maXJzdC1jb25uZWN0YWJsZS1vdXRwdXQnO1xuaW1wb3J0IHsgRkNyZWF0ZUNvbm5lY3Rpb25FdmVudCB9IGZyb20gJy4uL2YtY3JlYXRlLWNvbm5lY3Rpb24uZXZlbnQnO1xuaW1wb3J0IHsgRkNyZWF0ZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB9IGZyb20gJy4uL2YtY3JlYXRlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEZEcmFnSGFuZGxlclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL2YtZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IElGQ3JlYXRlQ29ubmVjdGlvbkRyYWdSZXN1bHQgfSBmcm9tICcuLi9pLWYtY3JlYXRlLWNvbm5lY3Rpb24tZHJhZy1yZXN1bHQnO1xuaW1wb3J0IHtJUG9pbnRlckV2ZW50fSBmcm9tIFwiLi4vLi4vLi4vLi4vZHJhZy10b29sa2l0XCI7XG5pbXBvcnQge0ZpbmRDb25uZWN0YWJsZUNvbm5lY3RvclVzaW5nUHJpb3JpdHlBbmRQb3NpdGlvblJlcXVlc3R9IGZyb20gXCIuLi8uLi8uLi8uLi9kb21haW5cIjtcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplRXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUhhbmRsZXI8RkNyZWF0ZUNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIF9mUmVzdWx0OiBGRHJhZ0hhbmRsZXJSZXN1bHQ8SUZDcmVhdGVDb25uZWN0aW9uRHJhZ1Jlc3VsdD4gPSBpbmplY3QoRkRyYWdIYW5kbGVyUmVzdWx0KTtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSBfZkNvbXBvbmVudHNTdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcbiAgcHJpdmF0ZSBfZkRyYWdnYWJsZURhdGFDb250ZXh0ID0gaW5qZWN0KEZEcmFnZ2FibGVEYXRhQ29udGV4dCk7XG5cbiAgcHJpdmF0ZSBnZXQgX2ZEcmFnSGFuZGxlcigpOiBGQ3JlYXRlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zWyAwIF0gYXMgRkNyZWF0ZUNvbm5lY3Rpb25EcmFnSGFuZGxlcjtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogRkNyZWF0ZUNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmVtaXRFdmVudChyZXF1ZXN0LmV2ZW50KTtcbiAgICB0aGlzLl9mRHJhZ0hhbmRsZXIub25Qb2ludGVyVXAoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5zb21lKFxuICAgICAgKHgpID0+IHggaW5zdGFuY2VvZiBGQ3JlYXRlQ29ubmVjdGlvbkRyYWdIYW5kbGVyXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFyZ2V0T3V0cHV0KG91dHB1dDogRkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQpOiBGQ29ubmVjdG9yQmFzZSB7XG4gICAgaWYgKCFvdXRwdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgT3V0cHV0IHdpdGggZk91dHB1dElkICR7IHRoaXMuX2ZSZXN1bHQuZ2V0RGF0YSgpLmZPdXRwdXRJZCB9IG5vdCBmb3VuZC4gTWFrZSBzdXJlIHRoZXJlIGlzIG5vIGYtY29ubmVjdGlvbiB0byBhIG5vbi1leGlzdGVudCBmT3V0cHV0LmApO1xuICAgIH1cbiAgICByZXR1cm4gaXNOb2RlT3V0bGV0KG91dHB1dC5ob3N0RWxlbWVudCkgPyB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxGTm9kZU91dHB1dEJhc2U+KFxuICAgICAgbmV3IEdldEZpcnN0Q29ubmVjdGFibGVPdXRwdXRSZXF1ZXN0KG91dHB1dCBhcyBGTm9kZU91dGxldEJhc2UpXG4gICAgKSA6IG91dHB1dDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3V0cHV0KCk6IEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mT3V0cHV0cy5maW5kKCh4KSA9PiB4LmZJZCA9PT0gdGhpcy5fZlJlc3VsdC5nZXREYXRhKCkuZk91dHB1dElkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3V0bGV0KCk6IEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mT3V0bGV0cy5maW5kKCh4KSA9PiB4LmZJZCA9PT0gdGhpcy5fZlJlc3VsdC5nZXREYXRhKCkuZk91dHB1dElkKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEV2ZW50KGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlPy5mQ3JlYXRlQ29ubmVjdGlvbi5lbWl0KFxuICAgICAgbmV3IEZDcmVhdGVDb25uZWN0aW9uRXZlbnQoXG4gICAgICAgIHRoaXMuZ2V0VGFyZ2V0T3V0cHV0KHRoaXMuZ2V0T3V0cHV0KCkgfHwgdGhpcy5nZXRPdXRsZXQoKSkuZklkLFxuICAgICAgICB0aGlzLl9nZXRJbnB1dFVuZGVyUG9pbnRlcihldmVudCk/LmZJZCxcbiAgICAgICAgZXZlbnQuZ2V0UG9zaXRpb24oKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnB1dFVuZGVyUG9pbnRlcihldmVudDogSVBvaW50ZXJFdmVudCk6IEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8RkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQ+KFxuICAgICAgbmV3IEZpbmRDb25uZWN0YWJsZUNvbm5lY3RvclVzaW5nUHJpb3JpdHlBbmRQb3NpdGlvblJlcXVlc3QoXG4gICAgICAgIGV2ZW50LmdldFBvc2l0aW9uKCksXG4gICAgICAgIHRoaXMuX2ZSZXN1bHQuZ2V0RGF0YSgpLmNhbkJlQ29ubmVjdGVkSW5wdXRzXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { FDragHandlerResult } from '../../f-drag-handler';
2
- import { CalculateClosestInputRequest, GetAllCanBeConnectedInputsAndRectsRequest, CalculateConnectionLineByBehaviorRequest, GetConnectorAndRectRequest, MarkAllCanBeConnectedInputsRequest, UnmarkAllCanBeConnectedInputsRequest } from '../../../domain';
2
+ import { FindClosestConnectorRequest, GetAllCanBeConnectedInputsAndRectsRequest, CalculateConnectionLineByBehaviorRequest, GetConnectorAndRectRequest, MarkConnectableConnectorsRequest, UnmarkConnectableConnectorsRequest } from '../../../domain';
3
3
  import { EFConnectableSide, } from '../../../f-connectors';
4
4
  import { FMediator } from '@foblex/mediator';
5
5
  import { RoundedRect, PointExtensions, RectExtensions } from '@foblex/2d';
@@ -45,7 +45,7 @@ export class FCreateConnectionDragHandler {
45
45
  }
46
46
  _getAndMarkCanBeConnectedInputs() {
47
47
  this._canBeConnectedInputs = this._fMediator.execute(new GetAllCanBeConnectedInputsAndRectsRequest(this._fOutputOrOutlet));
48
- this._fMediator.execute(new MarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
48
+ this._fMediator.execute(new MarkConnectableConnectorsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
49
49
  }
50
50
  _initializeSnapConnection() {
51
51
  if (!this._fSnapConnection) {
@@ -82,7 +82,7 @@ export class FCreateConnectionDragHandler {
82
82
  }
83
83
  }
84
84
  _findClosestInput(difference) {
85
- return this._fMediator.execute(new CalculateClosestInputRequest(this._toConnectorRect.addPoint(difference), this._canBeConnectedInputs));
85
+ return this._fMediator.execute(new FindClosestConnectorRequest(this._toConnectorRect.addPoint(difference), this._canBeConnectedInputs));
86
86
  }
87
87
  _getClosestInputForSnapConnection(fClosestInput) {
88
88
  return fClosestInput && fClosestInput.distance < this._fSnapConnection.fSnapThreshold ? fClosestInput : undefined;
@@ -91,7 +91,7 @@ export class FCreateConnectionDragHandler {
91
91
  this._fConnection.redraw();
92
92
  this._fConnection.hide();
93
93
  this._fSnapConnection?.hide();
94
- this._fMediator.execute(new UnmarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
94
+ this._fMediator.execute(new UnmarkConnectableConnectorsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
95
95
  }
96
96
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jcmVhdGUtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtY29ubmVjdGlvbi9mLWNyZWF0ZS1jb25uZWN0aW9uL2YtY3JlYXRlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHlDQUF5QyxFQUN6Qyx3Q0FBd0MsRUFDeEMsMEJBQTBCLEVBQ1Esa0NBQWtDLEVBQUUsb0NBQW9DLEVBQzNHLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFpQixlQUFlLEVBQUUsY0FBYyxFQUFnQixNQUFNLFlBQVksQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUl0RCxNQUFNLE9BQU8sNEJBQTRCO0lBeUI3QjtJQXZCSCxVQUFVLEdBQUcsbUJBQW1CLENBQUM7SUFDakMsS0FBSyxDQUFNO0lBRUQsUUFBUSxDQUFtRDtJQUMzRCxVQUFVLENBQVk7SUFDdEIsaUJBQWlCLENBQW1CO0lBRXBDLGdCQUFnQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFFdEQsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWdCLENBQUM7SUFDakQsQ0FBQztJQUVELElBQVksZ0JBQWdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQTJDLENBQUM7SUFDNUUsQ0FBQztJQUVPLGdCQUFnQixD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UmVzdWx0LCBJRkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vZi1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ2xvc2VzdElucHV0UmVxdWVzdCxcbiAgR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNBbmRSZWN0c1JlcXVlc3QsXG4gIENhbGN1bGF0ZUNvbm5lY3Rpb25MaW5lQnlCZWhhdmlvclJlcXVlc3QsXG4gIEdldENvbm5lY3RvckFuZFJlY3RSZXF1ZXN0LFxuICBJQ29ubmVjdG9yQW5kUmVjdCwgSUNsb3Nlc3RJbnB1dCwgTWFya0FsbENhbkJlQ29ubmVjdGVkSW5wdXRzUmVxdWVzdCwgVW5tYXJrQWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNSZXF1ZXN0XG59IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UsIEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQge1xuICBFRkNvbm5lY3RhYmxlU2lkZSwgRk5vZGVPdXRsZXRCYXNlLFxuICBGTm9kZU91dHB1dEJhc2UsXG59IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IFJvdW5kZWRSZWN0LCBJTGluZSwgSVBvaW50LCBQb2ludEV4dGVuc2lvbnMsIFJlY3RFeHRlbnNpb25zLCBJUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgSUZDcmVhdGVDb25uZWN0aW9uRHJhZ1Jlc3VsdCB9IGZyb20gJy4vaS1mLWNyZWF0ZS1jb25uZWN0aW9uLWRyYWctcmVzdWx0JztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBGQ3JlYXRlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIGltcGxlbWVudHMgSUZEcmFnSGFuZGxlciB7XG5cbiAgcHVibGljIGZFdmVudFR5cGUgPSAnY3JlYXRlLWNvbm5lY3Rpb24nO1xuICBwdWJsaWMgZkRhdGE6IGFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mUmVzdWx0OiBGRHJhZ0hhbmRsZXJSZXN1bHQ8SUZDcmVhdGVDb25uZWN0aW9uRHJhZ1Jlc3VsdD47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZNZWRpYXRvcjogRk1lZGlhdG9yO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RvQ29ubmVjdG9yUmVjdCA9IG5ldyBSb3VuZGVkUmVjdCgpO1xuXG4gIHByaXZhdGUgZ2V0IF9mQ29ubmVjdGlvbigpOiBGQ29ubmVjdGlvbkJhc2Uge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZUZW1wQ29ubmVjdGlvbiE7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZlNuYXBDb25uZWN0aW9uKCk6IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZlNuYXBDb25uZWN0aW9uIGFzIEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgX2ZPdXRwdXRXaXRoUmVjdCE6IElDb25uZWN0b3JBbmRSZWN0O1xuXG4gIHByaXZhdGUgX2NhbkJlQ29ubmVjdGVkSW5wdXRzOiBJQ29ubmVjdG9yQW5kUmVjdFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9mT3V0cHV0T3JPdXRsZXQ6IEZOb2RlT3V0cHV0QmFzZSB8IEZOb2RlT3V0bGV0QmFzZSxcbiAgICBfb25Qb2ludGVyRG93blBvc2l0aW9uOiBJUG9pbnQsXG4gICkge1xuICAgIHRoaXMuX2ZSZXN1bHQgPSBfaW5qZWN0b3IuZ2V0KEZEcmFnSGFuZGxlclJlc3VsdCk7XG4gICAgdGhpcy5fZk1lZGlhdG9yID0gX2luamVjdG9yLmdldChGTWVkaWF0b3IpO1xuICAgIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUgPSBfaW5qZWN0b3IuZ2V0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gICAgdGhpcy5fdG9Db25uZWN0b3JSZWN0ID0gUm91bmRlZFJlY3QuZnJvbVJlY3QoXG4gICAgICBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKF9vblBvaW50ZXJEb3duUG9zaXRpb24ueCwgX29uUG9pbnRlckRvd25Qb3NpdGlvbi55KVxuICAgICk7XG4gICAgdGhpcy5mRGF0YSA9IHtcbiAgICAgIGZPdXRwdXRPck91dGxldElkOiB0aGlzLl9mT3V0cHV0T3JPdXRsZXQuZklkLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9nZXRBbmRNYXJrQ2FuQmVDb25uZWN0ZWRJbnB1dHMoKTtcbiAgICB0aGlzLl9pbml0aWFsaXplU25hcENvbm5lY3Rpb24oKTtcbiAgICB0aGlzLl9pbml0aWFsaXplQ29ubmVjdGlvbkZvckNyZWF0ZSgpO1xuXG4gICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0ID0gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvckFuZFJlY3Q+KG5ldyBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCh0aGlzLl9mT3V0cHV0T3JPdXRsZXQpKTtcblxuICAgIHRoaXMuX2ZDb25uZWN0aW9uLnNob3coKTtcbiAgICB0aGlzLm9uUG9pbnRlck1vdmUoUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKSk7XG5cbiAgICB0aGlzLl9mUmVzdWx0LnNldERhdGEoe1xuICAgICAgdG9Db25uZWN0b3JSZWN0OiB0aGlzLl90b0Nvbm5lY3RvclJlY3QsXG4gICAgICBjYW5CZUNvbm5lY3RlZElucHV0czogdGhpcy5fY2FuQmVDb25uZWN0ZWRJbnB1dHMsXG4gICAgICBmT3V0cHV0SWQ6IHRoaXMuX2ZPdXRwdXRPck91dGxldC5mSWQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRBbmRNYXJrQ2FuQmVDb25uZWN0ZWRJbnB1dHMoKTogdm9pZCB7XG4gICAgdGhpcy5fY2FuQmVDb25uZWN0ZWRJbnB1dHMgPSB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJQ29ubmVjdG9yQW5kUmVjdFtdPihcbiAgICAgIG5ldyBHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0c0FuZFJlY3RzUmVxdWVzdCh0aGlzLl9mT3V0cHV0T3JPdXRsZXQpXG4gICAgKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKFxuICAgICAgbmV3IE1hcmtBbGxDYW5CZUNvbm5lY3RlZElucHV0c1JlcXVlc3QodGhpcy5fY2FuQmVDb25uZWN0ZWRJbnB1dHMubWFwKCh4KSA9PiB4LmZDb25uZWN0b3IpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0aWFsaXplU25hcENvbm5lY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9mU25hcENvbm5lY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uLmZPdXRwdXRJZCA9IHRoaXMuX2ZPdXRwdXRPck91dGxldC5mSWQ7XG4gICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVDb25uZWN0aW9uRm9yQ3JlYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZDb25uZWN0aW9uLmZPdXRwdXRJZCA9IHRoaXMuX2ZPdXRwdXRPck91dGxldC5mSWQ7XG4gICAgdGhpcy5fZkNvbm5lY3Rpb24uaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgZkNsb3Nlc3RJbnB1dCA9IHRoaXMuX2ZpbmRDbG9zZXN0SW5wdXQoZGlmZmVyZW5jZSk7XG5cbiAgICB0aGlzLl9kcmF3Q29ubmVjdGlvbkZvckNyZWF0ZShcbiAgICAgIHRoaXMuX3RvQ29ubmVjdG9yUmVjdC5hZGRQb2ludChkaWZmZXJlbmNlKSxcbiAgICAgIGZDbG9zZXN0SW5wdXQ/LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSB8fCBFRkNvbm5lY3RhYmxlU2lkZS5UT1BcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuX2ZTbmFwQ29ubmVjdGlvbikge1xuICAgICAgdGhpcy5fZHJhd1NuYXBDb25uZWN0aW9uKHRoaXMuX2dldENsb3Nlc3RJbnB1dEZvclNuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kcmF3Q29ubmVjdGlvbkZvckNyZWF0ZSh0b0Nvbm5lY3RvclJlY3Q6IElSb3VuZGVkUmVjdCwgZlNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogdm9pZCB7XG4gICAgY29uc3QgbGluZSA9IHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElMaW5lPihuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdChcbiAgICAgICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0LmZSZWN0LFxuICAgICAgICB0b0Nvbm5lY3RvclJlY3QsXG4gICAgICAgIHRoaXMuX2ZDb25uZWN0aW9uLmZCZWhhdmlvcixcbiAgICAgICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgZlNpZGVcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5fZkNvbm5lY3Rpb24uc2V0TGluZShsaW5lLCB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLCBmU2lkZSk7XG4gICAgdGhpcy5fZkNvbm5lY3Rpb24ucmVkcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3U25hcENvbm5lY3Rpb24oZkNsb3Nlc3RJbnB1dDogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChmQ2xvc2VzdElucHV0KSB7XG4gICAgICBjb25zdCBsaW5lID0gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUxpbmU+KG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0KFxuICAgICAgICAgIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mUmVjdCxcbiAgICAgICAgICBmQ2xvc2VzdElucHV0LmZSZWN0LFxuICAgICAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEuZkJlaGF2aW9yLFxuICAgICAgICAgIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICAgICAgZkNsb3Nlc3RJbnB1dC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEuc2hvdygpO1xuICAgICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uIS5zZXRMaW5lKGxpbmUsIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsIGZDbG9zZXN0SW5wdXQuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlKTtcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEucmVkcmF3KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbj8uaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRDbG9zZXN0SW5wdXQoZGlmZmVyZW5jZTogSVBvaW50KTogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQ+KFxuICAgICAgbmV3IENhbGN1bGF0ZUNsb3Nlc3RJbnB1dFJlcXVlc3QoXG4gICAgICAgIHRoaXMuX3RvQ29ubmVjdG9yUmVjdC5hZGRQb2ludChkaWZmZXJlbmNlKSxcbiAgICAgICAgdGhpcy5fY2FuQmVDb25uZWN0ZWRJbnB1dHMsXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENsb3Nlc3RJbnB1dEZvclNuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQ6IElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQpOiBJQ2xvc2VzdElucHV0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZkNsb3Nlc3RJbnB1dCAmJiBmQ2xvc2VzdElucHV0LmRpc3RhbmNlIDwgdGhpcy5fZlNuYXBDb25uZWN0aW9uIS5mU25hcFRocmVzaG9sZCA/IGZDbG9zZXN0SW5wdXQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fZkNvbm5lY3Rpb24ucmVkcmF3KCk7XG4gICAgdGhpcy5fZkNvbm5lY3Rpb24uaGlkZSgpO1xuICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbj8uaGlkZSgpO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgVW5tYXJrQWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNSZXF1ZXN0KHRoaXMuX2NhbkJlQ29ubmVjdGVkSW5wdXRzLm1hcCgoeCkgPT4geC5mQ29ubmVjdG9yKSlcbiAgICApO1xuICB9XG59XG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jcmVhdGUtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtY29ubmVjdGlvbi9mLWNyZWF0ZS1jb25uZWN0aW9uL2YtY3JlYXRlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLHlDQUF5QyxFQUN6Qyx3Q0FBd0MsRUFDeEMsMEJBQTBCLEVBQ1ksZ0NBQWdDLEVBQUUsa0NBQWtDLEVBQzNHLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFpQixlQUFlLEVBQUUsY0FBYyxFQUFnQixNQUFNLFlBQVksQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUl0RCxNQUFNLE9BQU8sNEJBQTRCO0lBeUI3QjtJQXZCSCxVQUFVLEdBQUcsbUJBQW1CLENBQUM7SUFDakMsS0FBSyxDQUFNO0lBRUQsUUFBUSxDQUFtRDtJQUMzRCxVQUFVLENBQVk7SUFDdEIsaUJBQWlCLENBQW1CO0lBRXBDLGdCQUFnQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFFdEQsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWdCLENBQUM7SUFDakQsQ0FBQztJQUVELElBQVksZ0JBQWdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQTJDLENBQUM7SUFDNUUsQ0FBQztJQUVPLGdCQUFnQixD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UmVzdWx0LCBJRkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vZi1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHtcbiAgRmluZENsb3Nlc3RDb25uZWN0b3JSZXF1ZXN0LFxuICBHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0c0FuZFJlY3RzUmVxdWVzdCxcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdCxcbiAgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QsXG4gIElDb25uZWN0b3JBbmRSZWN0LCBJQ2xvc2VzdENvbm5lY3RvciwgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QsIFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3Rcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSwgRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7XG4gIEVGQ29ubmVjdGFibGVTaWRlLCBGTm9kZU91dGxldEJhc2UsXG4gIEZOb2RlT3V0cHV0QmFzZSxcbn0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgUm91bmRlZFJlY3QsIElMaW5lLCBJUG9pbnQsIFBvaW50RXh0ZW5zaW9ucywgUmVjdEV4dGVuc2lvbnMsIElSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBJRkNyZWF0ZUNvbm5lY3Rpb25EcmFnUmVzdWx0IH0gZnJvbSAnLi9pLWYtY3JlYXRlLWNvbm5lY3Rpb24tZHJhZy1yZXN1bHQnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEZDcmVhdGVDb25uZWN0aW9uRHJhZ0hhbmRsZXIgaW1wbGVtZW50cyBJRkRyYWdIYW5kbGVyIHtcblxuICBwdWJsaWMgZkV2ZW50VHlwZSA9ICdjcmVhdGUtY29ubmVjdGlvbic7XG4gIHB1YmxpYyBmRGF0YTogYW55O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZSZXN1bHQ6IEZEcmFnSGFuZGxlclJlc3VsdDxJRkNyZWF0ZUNvbm5lY3Rpb25EcmFnUmVzdWx0PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZk1lZGlhdG9yOiBGTWVkaWF0b3I7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdG9Db25uZWN0b3JSZWN0ID0gbmV3IFJvdW5kZWRSZWN0KCk7XG5cbiAgcHJpdmF0ZSBnZXQgX2ZDb25uZWN0aW9uKCk6IEZDb25uZWN0aW9uQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZlRlbXBDb25uZWN0aW9uITtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9mU25hcENvbm5lY3Rpb24oKTogRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mU25hcENvbm5lY3Rpb24gYXMgRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfZk91dHB1dFdpdGhSZWN0ITogSUNvbm5lY3RvckFuZFJlY3Q7XG5cbiAgcHJpdmF0ZSBfY2FuQmVDb25uZWN0ZWRJbnB1dHM6IElDb25uZWN0b3JBbmRSZWN0W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2ZPdXRwdXRPck91dGxldDogRk5vZGVPdXRwdXRCYXNlIHwgRk5vZGVPdXRsZXRCYXNlLFxuICAgIF9vblBvaW50ZXJEb3duUG9zaXRpb246IElQb2ludCxcbiAgKSB7XG4gICAgdGhpcy5fZlJlc3VsdCA9IF9pbmplY3Rvci5nZXQoRkRyYWdIYW5kbGVyUmVzdWx0KTtcbiAgICB0aGlzLl9mTWVkaWF0b3IgPSBfaW5qZWN0b3IuZ2V0KEZNZWRpYXRvcik7XG4gICAgdGhpcy5fZkNvbXBvbmVudHNTdG9yZSA9IF9pbmplY3Rvci5nZXQoRkNvbXBvbmVudHNTdG9yZSk7XG5cbiAgICB0aGlzLl90b0Nvbm5lY3RvclJlY3QgPSBSb3VuZGVkUmVjdC5mcm9tUmVjdChcbiAgICAgIFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoX29uUG9pbnRlckRvd25Qb3NpdGlvbi54LCBfb25Qb2ludGVyRG93blBvc2l0aW9uLnkpXG4gICAgKTtcbiAgICB0aGlzLmZEYXRhID0ge1xuICAgICAgZk91dHB1dE9yT3V0bGV0SWQ6IHRoaXMuX2ZPdXRwdXRPck91dGxldC5mSWQsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuX2dldEFuZE1hcmtDYW5CZUNvbm5lY3RlZElucHV0cygpO1xuICAgIHRoaXMuX2luaXRpYWxpemVTbmFwQ29ubmVjdGlvbigpO1xuICAgIHRoaXMuX2luaXRpYWxpemVDb25uZWN0aW9uRm9yQ3JlYXRlKCk7XG5cbiAgICB0aGlzLl9mT3V0cHV0V2l0aFJlY3QgPSB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJQ29ubmVjdG9yQW5kUmVjdD4obmV3IEdldENvbm5lY3RvckFuZFJlY3RSZXF1ZXN0KHRoaXMuX2ZPdXRwdXRPck91dGxldCkpO1xuXG4gICAgdGhpcy5fZkNvbm5lY3Rpb24uc2hvdygpO1xuICAgIHRoaXMub25Qb2ludGVyTW92ZShQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpKTtcblxuICAgIHRoaXMuX2ZSZXN1bHQuc2V0RGF0YSh7XG4gICAgICB0b0Nvbm5lY3RvclJlY3Q6IHRoaXMuX3RvQ29ubmVjdG9yUmVjdCxcbiAgICAgIGNhbkJlQ29ubmVjdGVkSW5wdXRzOiB0aGlzLl9jYW5CZUNvbm5lY3RlZElucHV0cyxcbiAgICAgIGZPdXRwdXRJZDogdGhpcy5fZk91dHB1dE9yT3V0bGV0LmZJZCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEFuZE1hcmtDYW5CZUNvbm5lY3RlZElucHV0cygpOiB2b2lkIHtcbiAgICB0aGlzLl9jYW5CZUNvbm5lY3RlZElucHV0cyA9IHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JBbmRSZWN0W10+KFxuICAgICAgbmV3IEdldEFsbENhbkJlQ29ubmVjdGVkSW5wdXRzQW5kUmVjdHNSZXF1ZXN0KHRoaXMuX2ZPdXRwdXRPck91dGxldClcbiAgICApO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QodGhpcy5fY2FuQmVDb25uZWN0ZWRJbnB1dHMubWFwKCh4KSA9PiB4LmZDb25uZWN0b3IpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0aWFsaXplU25hcENvbm5lY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9mU25hcENvbm5lY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uLmZPdXRwdXRJZCA9IHRoaXMuX2ZPdXRwdXRPck91dGxldC5mSWQ7XG4gICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVDb25uZWN0aW9uRm9yQ3JlYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZDb25uZWN0aW9uLmZPdXRwdXRJZCA9IHRoaXMuX2ZPdXRwdXRPck91dGxldC5mSWQ7XG4gICAgdGhpcy5fZkNvbm5lY3Rpb24uaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgZkNsb3Nlc3RJbnB1dCA9IHRoaXMuX2ZpbmRDbG9zZXN0SW5wdXQoZGlmZmVyZW5jZSk7XG5cbiAgICB0aGlzLl9kcmF3Q29ubmVjdGlvbkZvckNyZWF0ZShcbiAgICAgIHRoaXMuX3RvQ29ubmVjdG9yUmVjdC5hZGRQb2ludChkaWZmZXJlbmNlKSxcbiAgICAgIGZDbG9zZXN0SW5wdXQ/LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSB8fCBFRkNvbm5lY3RhYmxlU2lkZS5UT1BcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuX2ZTbmFwQ29ubmVjdGlvbikge1xuICAgICAgdGhpcy5fZHJhd1NuYXBDb25uZWN0aW9uKHRoaXMuX2dldENsb3Nlc3RJbnB1dEZvclNuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kcmF3Q29ubmVjdGlvbkZvckNyZWF0ZSh0b0Nvbm5lY3RvclJlY3Q6IElSb3VuZGVkUmVjdCwgZlNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogdm9pZCB7XG4gICAgY29uc3QgbGluZSA9IHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElMaW5lPihuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdChcbiAgICAgICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0LmZSZWN0LFxuICAgICAgICB0b0Nvbm5lY3RvclJlY3QsXG4gICAgICAgIHRoaXMuX2ZDb25uZWN0aW9uLmZCZWhhdmlvcixcbiAgICAgICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgZlNpZGVcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5fZkNvbm5lY3Rpb24uc2V0TGluZShsaW5lLCB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLCBmU2lkZSk7XG4gICAgdGhpcy5fZkNvbm5lY3Rpb24ucmVkcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3U25hcENvbm5lY3Rpb24oZkNsb3Nlc3RJbnB1dDogSUNsb3Nlc3RDb25uZWN0b3IgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAoZkNsb3Nlc3RJbnB1dCkge1xuICAgICAgY29uc3QgbGluZSA9IHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElMaW5lPihuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdChcbiAgICAgICAgICB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZlJlY3QsXG4gICAgICAgICAgZkNsb3Nlc3RJbnB1dC5mUmVjdCxcbiAgICAgICAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24hLmZCZWhhdmlvcixcbiAgICAgICAgICB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgICAgIGZDbG9zZXN0SW5wdXQuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24hLnNob3coKTtcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEuc2V0TGluZShsaW5lLCB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLCBmQ2xvc2VzdElucHV0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24hLnJlZHJhdygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24/LmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9maW5kQ2xvc2VzdElucHV0KGRpZmZlcmVuY2U6IElQb2ludCk6IElDbG9zZXN0Q29ubmVjdG9yIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUNsb3Nlc3RDb25uZWN0b3IgfCB1bmRlZmluZWQ+KFxuICAgICAgbmV3IEZpbmRDbG9zZXN0Q29ubmVjdG9yUmVxdWVzdChcbiAgICAgICAgdGhpcy5fdG9Db25uZWN0b3JSZWN0LmFkZFBvaW50KGRpZmZlcmVuY2UpLFxuICAgICAgICB0aGlzLl9jYW5CZUNvbm5lY3RlZElucHV0cyxcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q2xvc2VzdElucHV0Rm9yU25hcENvbm5lY3Rpb24oZkNsb3Nlc3RJbnB1dDogSUNsb3Nlc3RDb25uZWN0b3IgfCB1bmRlZmluZWQpOiBJQ2xvc2VzdENvbm5lY3RvciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGZDbG9zZXN0SW5wdXQgJiYgZkNsb3Nlc3RJbnB1dC5kaXN0YW5jZSA8IHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEuZlNuYXBUaHJlc2hvbGQgPyBmQ2xvc2VzdElucHV0IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlclVwKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZDb25uZWN0aW9uLnJlZHJhdygpO1xuICAgIHRoaXMuX2ZDb25uZWN0aW9uLmhpZGUoKTtcbiAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24/LmhpZGUoKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKFxuICAgICAgbmV3IFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QodGhpcy5fY2FuQmVDb25uZWN0ZWRJbnB1dHMubWFwKCh4KSA9PiB4LmZDb25uZWN0b3IpKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,107 +1,75 @@
1
1
  import { FDragHandlerResult } from '../../f-drag-handler';
2
- import { CalculateClosestInputRequest, GetAllCanBeConnectedInputsAndRectsRequest, CalculateConnectionLineByBehaviorRequest, GetConnectorAndRectRequest, MarkAllCanBeConnectedInputsRequest, UnmarkAllCanBeConnectedInputsRequest } from '../../../domain';
3
- import { RectExtensions, RoundedRect } from '@foblex/2d';
2
+ import { GetConnectorAndRectRequest, } from '../../../domain';
4
3
  import { FMediator } from '@foblex/mediator';
5
4
  import { FComponentsStore } from '../../../f-storage';
5
+ import { roundedRectFromPoint } from "./i-f-reassign-handler";
6
+ import { FReassignTargetDragHandler } from "./f-reassign-target.drag-handler";
7
+ import { FReassignSourceDragHandler } from "./f-reassign-source.drag-handler";
6
8
  export class FReassignConnectionDragHandler {
7
- _fConnection;
9
+ _connection;
10
+ _isTargetDragHandle;
8
11
  fEventType = 'reassign-connection';
9
12
  fData;
10
13
  _fResult;
11
14
  _fMediator;
12
- _fComponentsStore;
13
- _toConnectorRect = new RoundedRect();
15
+ _store;
14
16
  get _fSnapConnection() {
15
- return this._fComponentsStore.fSnapConnection;
17
+ return this._store.fSnapConnection;
16
18
  }
17
- _fOutputWithRect;
18
- _fInputWithRect;
19
- _canBeConnectedInputs = [];
20
- get _fOutput() {
21
- const result = this._fComponentsStore.fOutputs.find((x) => x.fId === this._fConnection.fOutputId);
19
+ get _sourceConnector() {
20
+ const result = this._store.fOutputs.find((x) => x.fId === this._connection.fOutputId);
22
21
  if (!result) {
23
22
  throw new Error('Connection output not found');
24
23
  }
25
24
  return result;
26
25
  }
27
- get _fInput() {
28
- const result = this._fComponentsStore.fInputs.find((x) => x.fId === this._fConnection.fInputId);
26
+ get _targetConnector() {
27
+ const result = this._store.fInputs.find((x) => x.fId === this._connection.fInputId);
29
28
  if (!result) {
30
29
  throw new Error('Connection input not found');
31
30
  }
32
31
  return result;
33
32
  }
34
- constructor(_injector, _fConnection) {
35
- this._fConnection = _fConnection;
33
+ get _sourceConnectorAndRect() {
34
+ return this._fMediator.execute(new GetConnectorAndRectRequest(this._sourceConnector));
35
+ }
36
+ get _targetConnectorAndRect() {
37
+ return this._fMediator.execute(new GetConnectorAndRectRequest(this._targetConnector));
38
+ }
39
+ _reassignHandler;
40
+ constructor(_injector, _connection, _isTargetDragHandle) {
41
+ this._connection = _connection;
42
+ this._isTargetDragHandle = _isTargetDragHandle;
36
43
  this._fResult = _injector.get(FDragHandlerResult);
37
44
  this._fMediator = _injector.get(FMediator);
38
- this._fComponentsStore = _injector.get(FComponentsStore);
39
- this._toConnectorRect = RoundedRect.fromRect(RectExtensions.initialize(this._fConnection.line.point2.x, this._fConnection.line.point2.y));
45
+ this._store = _injector.get(FComponentsStore);
40
46
  this.fData = {
41
- fConnectionId: this._fConnection.fId
47
+ fConnectionId: this._connection.fId()
42
48
  };
49
+ this._reassignHandler = this._isTargetDragHandle ? this._targetDragHandler() : this._sourceDragHandler();
50
+ }
51
+ _sourceDragHandler() {
52
+ return new FReassignSourceDragHandler(this._fMediator, this._connection, this._sourceConnectorAndRect, this._targetConnectorAndRect);
53
+ }
54
+ _targetDragHandler() {
55
+ return new FReassignTargetDragHandler(this._fMediator, this._connection, this._sourceConnectorAndRect, this._targetConnectorAndRect);
43
56
  }
44
57
  prepareDragSequence() {
45
- this._getAndMarkCanBeConnectedInputs();
46
- this._initializeSnapConnection();
47
- this._fOutputWithRect = this._fMediator.execute(new GetConnectorAndRectRequest(this._fOutput));
48
- this._fInputWithRect = this._fMediator.execute(new GetConnectorAndRectRequest(this._fInput));
58
+ this._reassignHandler.markConnectableConnector();
59
+ this._reassignHandler.initializeSnapConnection(this._fSnapConnection);
49
60
  this._fResult.setData({
50
- toConnectorRect: this._toConnectorRect,
51
- canBeConnectedInputs: this._canBeConnectedInputs,
52
- fConnection: this._fConnection
61
+ isTargetDragHandle: this._isTargetDragHandle,
62
+ sourceConnectorRect: roundedRectFromPoint(this._connection.line.point1),
63
+ targetConnectorRect: roundedRectFromPoint(this._connection.line.point2),
64
+ connectableConnectors: this._reassignHandler.getConnectableConnectors(),
65
+ fConnection: this._connection
53
66
  });
54
67
  }
55
- _getAndMarkCanBeConnectedInputs() {
56
- this._canBeConnectedInputs = this._fMediator.execute(new GetAllCanBeConnectedInputsAndRectsRequest(this._fOutput));
57
- this._fMediator.execute(new MarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
58
- }
59
- _initializeSnapConnection() {
60
- if (!this._fSnapConnection) {
61
- return;
62
- }
63
- this._fSnapConnection.fOutputId = this._fConnection.fOutputId;
64
- this._fSnapConnection.initialize();
65
- }
66
68
  onPointerMove(difference) {
67
- const fClosestInput = this._findClosestInput(difference);
68
- this._drawConnection(this._toConnectorRect.addPoint(difference), fClosestInput?.fConnector.fConnectableSide || this._fInputWithRect.fConnector.fConnectableSide);
69
- if (this._fSnapConnection) {
70
- this._drawSnapConnection(this._getClosestInputForSnapConnection(fClosestInput));
71
- }
72
- }
73
- _drawConnection(difference, fSide) {
74
- const line = this._getLineToPointer(difference, fSide);
75
- this._fConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fSide);
76
- this._fConnection.redraw();
77
- }
78
- _getLineToPointer(difference, fSide) {
79
- return this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this._fOutputWithRect.fRect, RoundedRect.fromRect(RectExtensions.initialize(difference.x, difference.y)), this._fConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, fSide));
80
- }
81
- _drawSnapConnection(fClosestInput) {
82
- if (fClosestInput) {
83
- const line = this._getLineToClosestInput(fClosestInput);
84
- this._fSnapConnection.show();
85
- this._fSnapConnection.setLine(line, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide);
86
- this._fSnapConnection.redraw();
87
- }
88
- else {
89
- this._fSnapConnection?.hide();
90
- }
91
- }
92
- _getLineToClosestInput(fClosestInput) {
93
- return this._fMediator.execute(new CalculateConnectionLineByBehaviorRequest(this._fOutputWithRect.fRect, fClosestInput.fRect, this._fSnapConnection.fBehavior, this._fOutputWithRect.fConnector.fConnectableSide, fClosestInput.fConnector.fConnectableSide));
94
- }
95
- _findClosestInput(difference) {
96
- return this._fMediator.execute(new CalculateClosestInputRequest(this._toConnectorRect.addPoint(difference), this._canBeConnectedInputs));
97
- }
98
- _getClosestInputForSnapConnection(fClosestInput) {
99
- return fClosestInput && fClosestInput.distance < this._fSnapConnection.fSnapThreshold ? fClosestInput : undefined;
69
+ this._reassignHandler.onPointerMove(difference);
100
70
  }
101
71
  onPointerUp() {
102
- this._drawConnection(this._toConnectorRect, this._fInputWithRect.fConnector.fConnectableSide);
103
- this._fSnapConnection?.hide();
104
- this._fMediator.execute(new UnmarkAllCanBeConnectedInputsRequest(this._canBeConnectedInputs.map((x) => x.fConnector)));
72
+ this._reassignHandler.onPointerUp();
105
73
  }
106
74
  }
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZWFzc2lnbi1jb25uZWN0aW9uLmRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1jb25uZWN0aW9uL2YtcmVhc3NpZ24tY29ubmVjdGlvbi9mLXJlYXNzaWduLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHlDQUF5QyxFQUN6Qyx3Q0FBd0MsRUFBRSwwQkFBMEIsRUFDbEMsa0NBQWtDLEVBQUUsb0NBQW9DLEVBQzNHLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFpQixjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUl0RCxNQUFNLE9BQU8sOEJBQThCO0lBc0MvQjtJQXBDSCxVQUFVLEdBQUcscUJBQXFCLENBQUM7SUFDbkMsS0FBSyxDQUFNO0lBRUQsUUFBUSxDQUFxRDtJQUM3RCxVQUFVLENBQVk7SUFDdEIsaUJBQWlCLENBQW1CO0lBRXBDLGdCQUFnQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFFdEQsSUFBWSxnQkFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBMkMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sZ0JBQWdCLENBQXFCO0lBQ3JDLGVBQWUsQ0FBcUI7SUFFcEMscUJBQXFCLEdBQXdCLEVBQUUsQ0FBQztJQUV4RCxJQUFZLFFBQVE7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJ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LENBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQzFDLElBQUksQ0FBQyxxQkFBcUIsQ0FDM0IsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGlDQUFpQyxDQUFDLGFBQXdDO1FBQ2hGLE9BQU8sYUFBYSxJQUFJLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDckgsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQ3JCLElBQUksb0NBQW9DLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQzlGLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGRHJhZ0hhbmRsZXJSZXN1bHQsIElGRHJhZ0hhbmRsZXIgfSBmcm9tICcuLi8uLi9mLWRyYWctaGFuZGxlcic7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDbG9zZXN0SW5wdXRSZXF1ZXN0LFxuICBHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0c0FuZFJlY3RzUmVxdWVzdCxcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdCwgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QsXG4gIElDb25uZWN0b3JBbmRSZWN0LCBJQ2xvc2VzdElucHV0LCBNYXJrQWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNSZXF1ZXN0LCBVbm1hcmtBbGxDYW5CZUNvbm5lY3RlZElucHV0c1JlcXVlc3Rcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSwgRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlLCBGQ29ubmVjdG9yQmFzZSwgRk5vZGVPdXRwdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgSUxpbmUsIElQb2ludCwgUmVjdEV4dGVuc2lvbnMsIFJvdW5kZWRSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgSUZSZWFzc2lnbkNvbm5lY3Rpb25EcmFnUmVzdWx0IH0gZnJvbSAnLi9pLWYtcmVhc3NpZ24tY29ubmVjdGlvbi1kcmFnLXJlc3VsdCc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgRlJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyIGltcGxlbWVudHMgSUZEcmFnSGFuZGxlciB7XG5cbiAgcHVibGljIGZFdmVudFR5cGUgPSAncmVhc3NpZ24tY29ubmVjdGlvbic7XG4gIHB1YmxpYyBmRGF0YTogYW55O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZSZXN1bHQ6IEZEcmFnSGFuZGxlclJlc3VsdDxJRlJlYXNzaWduQ29ubmVjdGlvbkRyYWdSZXN1bHQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9mTWVkaWF0b3I6IEZNZWRpYXRvcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF90b0Nvbm5lY3RvclJlY3QgPSBuZXcgUm91bmRlZFJlY3QoKTtcblxuICBwcml2YXRlIGdldCBfZlNuYXBDb25uZWN0aW9uKCk6IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZlNuYXBDb25uZWN0aW9uIGFzIEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgX2ZPdXRwdXRXaXRoUmVjdCE6IElDb25uZWN0b3JBbmRSZWN0O1xuICBwcml2YXRlIF9mSW5wdXRXaXRoUmVjdCE6IElDb25uZWN0b3JBbmRSZWN0O1xuXG4gIHByaXZhdGUgX2NhbkJlQ29ubmVjdGVkSW5wdXRzOiBJQ29ubmVjdG9yQW5kUmVjdFtdID0gW107XG5cbiAgcHJpdmF0ZSBnZXQgX2ZPdXRwdXQoKTogRkNvbm5lY3RvckJhc2Uge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZk91dHB1dHMuZmluZCgoeCkgPT4geC5mSWQgPT09IHRoaXMuX2ZDb25uZWN0aW9uLmZPdXRwdXRJZCk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29ubmVjdGlvbiBvdXRwdXQgbm90IGZvdW5kJyk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZklucHV0KCk6IEZDb25uZWN0b3JCYXNlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZJbnB1dHMuZmluZCgoeCkgPT4geC5mSWQgPT09IHRoaXMuX2ZDb25uZWN0aW9uLmZJbnB1dElkKTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb25uZWN0aW9uIGlucHV0IG5vdCBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9mQ29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICApIHtcbiAgICB0aGlzLl9mUmVzdWx0ID0gX2luamVjdG9yLmdldChGRHJhZ0hhbmRsZXJSZXN1bHQpO1xuICAgIHRoaXMuX2ZNZWRpYXRvciA9IF9pbmplY3Rvci5nZXQoRk1lZGlhdG9yKTtcbiAgICB0aGlzLl9mQ29tcG9uZW50c1N0b3JlID0gX2luamVjdG9yLmdldChGQ29tcG9uZW50c1N0b3JlKTtcblxuICAgIHRoaXMuX3RvQ29ubmVjdG9yUmVjdCA9IFJvdW5kZWRSZWN0LmZyb21SZWN0KFxuICAgICAgUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSh0aGlzLl9mQ29ubmVjdGlvbi5saW5lLnBvaW50Mi54LCB0aGlzLl9mQ29ubmVjdGlvbi5saW5lLnBvaW50Mi55KVxuICAgICk7XG4gICAgdGhpcy5mRGF0YSA9IHtcbiAgICAgIGZDb25uZWN0aW9uSWQ6IHRoaXMuX2ZDb25uZWN0aW9uLmZJZFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9nZXRBbmRNYXJrQ2FuQmVDb25uZWN0ZWRJbnB1dHMoKTtcbiAgICB0aGlzLl9pbml0aWFsaXplU25hcENvbm5lY3Rpb24oKTtcblxuICAgIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdCA9IHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JBbmRSZWN0PihuZXcgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QodGhpcy5fZk91dHB1dCkpO1xuICAgIHRoaXMuX2ZJbnB1dFdpdGhSZWN0ID0gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvckFuZFJlY3Q+KG5ldyBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCh0aGlzLl9mSW5wdXQpKTtcblxuICAgIHRoaXMuX2ZSZXN1bHQuc2V0RGF0YSh7XG4gICAgICB0b0Nvbm5lY3RvclJlY3Q6IHRoaXMuX3RvQ29ubmVjdG9yUmVjdCxcbiAgICAgIGNhbkJlQ29ubmVjdGVkSW5wdXRzOiB0aGlzLl9jYW5CZUNvbm5lY3RlZElucHV0cyxcbiAgICAgIGZDb25uZWN0aW9uOiB0aGlzLl9mQ29ubmVjdGlvblxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QW5kTWFya0NhbkJlQ29ubmVjdGVkSW5wdXRzKCk6IHZvaWQge1xuICAgIHRoaXMuX2NhbkJlQ29ubmVjdGVkSW5wdXRzID0gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvckFuZFJlY3RbXT4oXG4gICAgICBuZXcgR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNBbmRSZWN0c1JlcXVlc3QodGhpcy5fZk91dHB1dCBhcyBGTm9kZU91dHB1dERpcmVjdGl2ZSlcbiAgICApO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgTWFya0FsbENhbkJlQ29ubmVjdGVkSW5wdXRzUmVxdWVzdCh0aGlzLl9jYW5CZUNvbm5lY3RlZElucHV0cy5tYXAoKHgpID0+IHguZkNvbm5lY3RvcikpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVTbmFwQ29ubmVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2ZTbmFwQ29ubmVjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24uZk91dHB1dElkID0gdGhpcy5fZkNvbm5lY3Rpb24uZk91dHB1dElkO1xuICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbi5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmQ2xvc2VzdElucHV0ID0gdGhpcy5fZmluZENsb3Nlc3RJbnB1dChkaWZmZXJlbmNlKTtcblxuICAgIHRoaXMuX2RyYXdDb25uZWN0aW9uKFxuICAgICAgdGhpcy5fdG9Db25uZWN0b3JSZWN0LmFkZFBvaW50KGRpZmZlcmVuY2UpLFxuICAgICAgZkNsb3Nlc3RJbnB1dD8uZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlIHx8IHRoaXMuX2ZJbnB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZVxuICAgICk7XG4gICAgaWYgKHRoaXMuX2ZTbmFwQ29ubmVjdGlvbikge1xuICAgICAgdGhpcy5fZHJhd1NuYXBDb25uZWN0aW9uKHRoaXMuX2dldENsb3Nlc3RJbnB1dEZvclNuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kcmF3Q29ubmVjdGlvbihkaWZmZXJlbmNlOiBJUG9pbnQsIGZTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLl9nZXRMaW5lVG9Qb2ludGVyKGRpZmZlcmVuY2UsIGZTaWRlKTtcbiAgICB0aGlzLl9mQ29ubmVjdGlvbi5zZXRMaW5lKGxpbmUsIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsIGZTaWRlKTtcbiAgICB0aGlzLl9mQ29ubmVjdGlvbi5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldExpbmVUb1BvaW50ZXIoZGlmZmVyZW5jZTogSVBvaW50LCBmU2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiBJTGluZSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElMaW5lPihuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdChcbiAgICAgICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0LmZSZWN0LFxuICAgICAgICBSb3VuZGVkUmVjdC5mcm9tUmVjdChSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKGRpZmZlcmVuY2UueCwgZGlmZmVyZW5jZS55KSksXG4gICAgICAgIHRoaXMuX2ZDb25uZWN0aW9uLmZCZWhhdmlvcixcbiAgICAgICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgZlNpZGVcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZHJhd1NuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQ6IElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAoZkNsb3Nlc3RJbnB1dCkge1xuICAgICAgY29uc3QgbGluZSA9IHRoaXMuX2dldExpbmVUb0Nsb3Nlc3RJbnB1dChmQ2xvc2VzdElucHV0KTtcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEuc2hvdygpO1xuICAgICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uIS5zZXRMaW5lKGxpbmUsIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsIGZDbG9zZXN0SW5wdXQuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlKTtcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEucmVkcmF3KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbj8uaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldExpbmVUb0Nsb3Nlc3RJbnB1dChmQ2xvc2VzdElucHV0OiBJQ2xvc2VzdElucHV0KTogSUxpbmUge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJTGluZT4obmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25MaW5lQnlCZWhhdmlvclJlcXVlc3QoXG4gICAgICB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZlJlY3QsXG4gICAgICBmQ2xvc2VzdElucHV0LmZSZWN0LFxuICAgICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uIS5mQmVoYXZpb3IsXG4gICAgICB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgZkNsb3Nlc3RJbnB1dC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGVcbiAgICApKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRDbG9zZXN0SW5wdXQoZGlmZmVyZW5jZTogSVBvaW50KTogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQ+KFxuICAgICAgbmV3IENhbGN1bGF0ZUNsb3Nlc3RJbnB1dFJlcXVlc3QoXG4gICAgICAgIHRoaXMuX3RvQ29ubmVjdG9yUmVjdC5hZGRQb2ludChkaWZmZXJlbmNlKSxcbiAgICAgICAgdGhpcy5fY2FuQmVDb25uZWN0ZWRJbnB1dHMsXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENsb3Nlc3RJbnB1dEZvclNuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQ6IElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQpOiBJQ2xvc2VzdElucHV0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZkNsb3Nlc3RJbnB1dCAmJiBmQ2xvc2VzdElucHV0LmRpc3RhbmNlIDwgdGhpcy5fZlNuYXBDb25uZWN0aW9uIS5mU25hcFRocmVzaG9sZCA/IGZDbG9zZXN0SW5wdXQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fZHJhd0Nvbm5lY3Rpb24odGhpcy5fdG9Db25uZWN0b3JSZWN0LCB0aGlzLl9mSW5wdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUpO1xuICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbj8uaGlkZSgpO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgVW5tYXJrQWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNSZXF1ZXN0KHRoaXMuX2NhbkJlQ29ubmVjdGVkSW5wdXRzLm1hcCgoeCkgPT4geC5mQ29ubmVjdG9yKSlcbiAgICApO1xuICB9XG59XG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZWFzc2lnbi1jb25uZWN0aW9uLmRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1jb25uZWN0aW9uL2YtcmVhc3NpZ24tY29ubmVjdGlvbi9mLXJlYXNzaWduLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxrQkFBa0IsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsMEJBQTBCLEdBRTNCLE1BQU0saUJBQWlCLENBQUM7QUFJekIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBR3BELE9BQU8sRUFBb0Isb0JBQW9CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RSxNQUFNLE9BQU8sOEJBQThCO0lBeUMvQjtJQUNBO0lBeENILFVBQVUsR0FBRyxxQkFBcUIsQ0FBQztJQUNuQyxLQUFLLENBQU07SUFFRCxRQUFRLENBQXFEO0lBQzdELFVBQVUsQ0FBWTtJQUN0QixNQUFNLENBQW1CO0lBRTFDLElBQVksZ0JBQWdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUEyQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFZLGdCQUFnQjtRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENB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Z0JBQWdCLENBQUMsd0JBQXdCLEVBQUU7WUFDdkUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBa0I7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGRHJhZ0hhbmRsZXJSZXN1bHQsIElGRHJhZ0hhbmRsZXJ9IGZyb20gJy4uLy4uL2YtZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7XG4gIEdldENvbm5lY3RvckFuZFJlY3RSZXF1ZXN0LFxuICBJQ29ubmVjdG9yQW5kUmVjdCxcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7RkNvbm5lY3Rpb25CYXNlLCBGU25hcENvbm5lY3Rpb25Db21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQge0ZOb2RlSW5wdXREaXJlY3RpdmUsIEZOb2RlT3V0cHV0RGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtJUG9pbnR9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHtGTWVkaWF0b3J9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtGQ29tcG9uZW50c1N0b3JlfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHtJRlJlYXNzaWduQ29ubmVjdGlvbkRyYWdSZXN1bHR9IGZyb20gJy4vaS1mLXJlYXNzaWduLWNvbm5lY3Rpb24tZHJhZy1yZXN1bHQnO1xuaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lGUmVhc3NpZ25IYW5kbGVyLCByb3VuZGVkUmVjdEZyb21Qb2ludH0gZnJvbSBcIi4vaS1mLXJlYXNzaWduLWhhbmRsZXJcIjtcbmltcG9ydCB7RlJlYXNzaWduVGFyZ2V0RHJhZ0hhbmRsZXJ9IGZyb20gXCIuL2YtcmVhc3NpZ24tdGFyZ2V0LmRyYWctaGFuZGxlclwiO1xuaW1wb3J0IHtGUmVhc3NpZ25Tb3VyY2VEcmFnSGFuZGxlcn0gZnJvbSBcIi4vZi1yZWFzc2lnbi1zb3VyY2UuZHJhZy1oYW5kbGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBGUmVhc3NpZ25Db25uZWN0aW9uRHJhZ0hhbmRsZXIgaW1wbGVtZW50cyBJRkRyYWdIYW5kbGVyIHtcblxuICBwdWJsaWMgZkV2ZW50VHlwZSA9ICdyZWFzc2lnbi1jb25uZWN0aW9uJztcbiAgcHVibGljIGZEYXRhOiBhbnk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZlJlc3VsdDogRkRyYWdIYW5kbGVyUmVzdWx0PElGUmVhc3NpZ25Db25uZWN0aW9uRHJhZ1Jlc3VsdD47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZNZWRpYXRvcjogRk1lZGlhdG9yO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZTogRkNvbXBvbmVudHNTdG9yZTtcblxuICBwcml2YXRlIGdldCBfZlNuYXBDb25uZWN0aW9uKCk6IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZTbmFwQ29ubmVjdGlvbiBhcyBGU25hcENvbm5lY3Rpb25Db21wb25lbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBfc291cmNlQ29ubmVjdG9yKCk6IEZOb2RlT3V0cHV0RGlyZWN0aXZlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9zdG9yZS5mT3V0cHV0cy5maW5kKCh4KSA9PiB4LmZJZCA9PT0gdGhpcy5fY29ubmVjdGlvbi5mT3V0cHV0SWQpO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gb3V0cHV0IG5vdCBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0IGFzIEZOb2RlT3V0cHV0RGlyZWN0aXZlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3RhcmdldENvbm5lY3RvcigpOiBGTm9kZUlucHV0RGlyZWN0aXZlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9zdG9yZS5mSW5wdXRzLmZpbmQoKHgpID0+IHguZklkID09PSB0aGlzLl9jb25uZWN0aW9uLmZJbnB1dElkKTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb25uZWN0aW9uIGlucHV0IG5vdCBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0IGFzIEZOb2RlSW5wdXREaXJlY3RpdmU7XG4gIH1cblxuICBwcml2YXRlIGdldCBfc291cmNlQ29ubmVjdG9yQW5kUmVjdCgpOiBJQ29ubmVjdG9yQW5kUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JBbmRSZWN0PihuZXcgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QodGhpcy5fc291cmNlQ29ubmVjdG9yKSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBfdGFyZ2V0Q29ubmVjdG9yQW5kUmVjdCgpOiBJQ29ubmVjdG9yQW5kUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JBbmRSZWN0PihuZXcgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QodGhpcy5fdGFyZ2V0Q29ubmVjdG9yKSk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFzc2lnbkhhbmRsZXIhOiBJRlJlYXNzaWduSGFuZGxlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2Nvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSxcbiAgICBwcml2YXRlIF9pc1RhcmdldERyYWdIYW5kbGU6IGJvb2xlYW5cbiAgKSB7XG4gICAgdGhpcy5fZlJlc3VsdCA9IF9pbmplY3Rvci5nZXQoRkRyYWdIYW5kbGVyUmVzdWx0KTtcbiAgICB0aGlzLl9mTWVkaWF0b3IgPSBfaW5qZWN0b3IuZ2V0KEZNZWRpYXRvcik7XG4gICAgdGhpcy5fc3RvcmUgPSBfaW5qZWN0b3IuZ2V0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gICAgdGhpcy5mRGF0YSA9IHtcbiAgICAgIGZDb25uZWN0aW9uSWQ6IHRoaXMuX2Nvbm5lY3Rpb24uZklkKClcbiAgICB9O1xuXG4gICAgdGhpcy5fcmVhc3NpZ25IYW5kbGVyID0gdGhpcy5faXNUYXJnZXREcmFnSGFuZGxlID8gdGhpcy5fdGFyZ2V0RHJhZ0hhbmRsZXIoKSA6IHRoaXMuX3NvdXJjZURyYWdIYW5kbGVyKCk7XG4gIH1cblxuICBwcml2YXRlIF9zb3VyY2VEcmFnSGFuZGxlcigpOiBGUmVhc3NpZ25Tb3VyY2VEcmFnSGFuZGxlciB7XG4gICAgcmV0dXJuIG5ldyBGUmVhc3NpZ25Tb3VyY2VEcmFnSGFuZGxlcih0aGlzLl9mTWVkaWF0b3IsIHRoaXMuX2Nvbm5lY3Rpb24sIHRoaXMuX3NvdXJjZUNvbm5lY3RvckFuZFJlY3QsIHRoaXMuX3RhcmdldENvbm5lY3RvckFuZFJlY3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdGFyZ2V0RHJhZ0hhbmRsZXIoKTogRlJlYXNzaWduVGFyZ2V0RHJhZ0hhbmRsZXIge1xuICAgIHJldHVybiBuZXcgRlJlYXNzaWduVGFyZ2V0RHJhZ0hhbmRsZXIodGhpcy5fZk1lZGlhdG9yLCB0aGlzLl9jb25uZWN0aW9uLCB0aGlzLl9zb3VyY2VDb25uZWN0b3JBbmRSZWN0LCB0aGlzLl90YXJnZXRDb25uZWN0b3JBbmRSZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuX3JlYXNzaWduSGFuZGxlci5tYXJrQ29ubmVjdGFibGVDb25uZWN0b3IoKTtcbiAgICB0aGlzLl9yZWFzc2lnbkhhbmRsZXIuaW5pdGlhbGl6ZVNuYXBDb25uZWN0aW9uKHRoaXMuX2ZTbmFwQ29ubmVjdGlvbik7XG5cbiAgICB0aGlzLl9mUmVzdWx0LnNldERhdGEoe1xuICAgICAgaXNUYXJnZXREcmFnSGFuZGxlOiB0aGlzLl9pc1RhcmdldERyYWdIYW5kbGUsXG4gICAgICBzb3VyY2VDb25uZWN0b3JSZWN0OiByb3VuZGVkUmVjdEZyb21Qb2ludCh0aGlzLl9jb25uZWN0aW9uLmxpbmUucG9pbnQxKSxcbiAgICAgIHRhcmdldENvbm5lY3RvclJlY3Q6IHJvdW5kZWRSZWN0RnJvbVBvaW50KHRoaXMuX2Nvbm5lY3Rpb24ubGluZS5wb2ludDIpLFxuICAgICAgY29ubmVjdGFibGVDb25uZWN0b3JzOiB0aGlzLl9yZWFzc2lnbkhhbmRsZXIuZ2V0Q29ubmVjdGFibGVDb25uZWN0b3JzKCksXG4gICAgICBmQ29ubmVjdGlvbjogdGhpcy5fY29ubmVjdGlvblxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fcmVhc3NpZ25IYW5kbGVyLm9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZSk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVhc3NpZ25IYW5kbGVyLm9uUG9pbnRlclVwKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,15 +1,21 @@
1
1
  export class FReassignConnectionEvent {
2
- fConnectionId;
3
- fOutputId;
4
- oldFInputId;
5
- newFInputId;
6
- fDropPosition;
7
- constructor(fConnectionId, fOutputId, oldFInputId, newFInputId, fDropPosition) {
8
- this.fConnectionId = fConnectionId;
9
- this.fOutputId = fOutputId;
10
- this.oldFInputId = oldFInputId;
11
- this.newFInputId = newFInputId;
12
- this.fDropPosition = fDropPosition;
2
+ connectionId;
3
+ isSourceReassign;
4
+ isTargetReassign;
5
+ oldSourceId;
6
+ newSourceId;
7
+ oldTargetId;
8
+ newTargetId;
9
+ dropPoint;
10
+ constructor(connectionId, isSourceReassign, isTargetReassign, oldSourceId, newSourceId, oldTargetId, newTargetId, dropPoint) {
11
+ this.connectionId = connectionId;
12
+ this.isSourceReassign = isSourceReassign;
13
+ this.isTargetReassign = isTargetReassign;
14
+ this.oldSourceId = oldSourceId;
15
+ this.newSourceId = newSourceId;
16
+ this.oldTargetId = oldTargetId;
17
+ this.newTargetId = newTargetId;
18
+ this.dropPoint = dropPoint;
13
19
  }
14
20
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZWFzc2lnbi1jb25uZWN0aW9uLmV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWNvbm5lY3Rpb24vZi1yZWFzc2lnbi1jb25uZWN0aW9uL2YtcmVhc3NpZ24tY29ubmVjdGlvbi5ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sd0JBQXdCO0lBRzFCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFMVCxZQUNTLGFBQXFCLEVBQ3JCLFNBQWlCLEVBQ2pCLFdBQW1CLEVBQ25CLFdBQStCLEVBQy9CLGFBQXFCO1FBSnJCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLGtCQUFhLEdBQWIsYUFBYSxDQUFRO0lBRTlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5leHBvcnQgY2xhc3MgRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZkNvbm5lY3Rpb25JZDogc3RyaW5nLFxuICAgIHB1YmxpYyBmT3V0cHV0SWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb2xkRklucHV0SWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgbmV3RklucHV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBwdWJsaWMgZkRyb3BQb3NpdGlvbjogSVBvaW50LFxuICApIHtcbiAgfVxufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZWFzc2lnbi1jb25uZWN0aW9uLmV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWNvbm5lY3Rpb24vZi1yZWFzc2lnbi1jb25uZWN0aW9uL2YtcmVhc3NpZ24tY29ubmVjdGlvbi5ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sd0JBQXdCO0lBRzFCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFSVCxZQUNTLFlBQW9CLEVBQ3BCLGdCQUF5QixFQUN6QixnQkFBeUIsRUFDekIsV0FBbUIsRUFDbkIsV0FBK0IsRUFDL0IsV0FBbUIsRUFDbkIsV0FBK0IsRUFDL0IsU0FBaUI7UUFQakIsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFTO1FBQ3pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUztRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFFMUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJUG9pbnR9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5leHBvcnQgY2xhc3MgRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29ubmVjdGlvbklkOiBzdHJpbmcsXG4gICAgcHVibGljIGlzU291cmNlUmVhc3NpZ246IGJvb2xlYW4sXG4gICAgcHVibGljIGlzVGFyZ2V0UmVhc3NpZ246IGJvb2xlYW4sXG4gICAgcHVibGljIG9sZFNvdXJjZUlkOiBzdHJpbmcsXG4gICAgcHVibGljIG5ld1NvdXJjZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcHVibGljIG9sZFRhcmdldElkOiBzdHJpbmcsXG4gICAgcHVibGljIG5ld1RhcmdldElkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcHVibGljIGRyb3BQb2ludDogSVBvaW50LFxuICApIHtcbiAgfVxufVxuIl19
@@ -0,0 +1,83 @@
1
+ import { CalculateConnectionLineByBehaviorRequest, FindClosestConnectorRequest, GetAllCanBeConnectedSourceConnectorsAndRectsRequest, MarkConnectableConnectorsRequest, UnmarkConnectableConnectorsRequest } from "../../../domain";
2
+ import { isClosestConnectorInsideSnapThreshold, roundedRectFromPoint } from "./i-f-reassign-handler";
3
+ export class FReassignSourceDragHandler {
4
+ _mediator;
5
+ _connection;
6
+ _sourceConnectorAndRect;
7
+ _targetConnectorAndRect;
8
+ _connectableConnectors = [];
9
+ get _sourceConnector() {
10
+ return this._sourceConnectorAndRect.fConnector;
11
+ }
12
+ get _targetConnector() {
13
+ return this._targetConnectorAndRect.fConnector;
14
+ }
15
+ _connectorRect;
16
+ _snapConnection;
17
+ constructor(_mediator, _connection, _sourceConnectorAndRect, _targetConnectorAndRect) {
18
+ this._mediator = _mediator;
19
+ this._connection = _connection;
20
+ this._sourceConnectorAndRect = _sourceConnectorAndRect;
21
+ this._targetConnectorAndRect = _targetConnectorAndRect;
22
+ this._connectorRect = roundedRectFromPoint(this._connection.line.point1);
23
+ }
24
+ getConnectableConnectors() {
25
+ return this._connectableConnectors;
26
+ }
27
+ markConnectableConnector() {
28
+ this._connectableConnectors = this._mediator.execute(new GetAllCanBeConnectedSourceConnectorsAndRectsRequest(this._targetConnector));
29
+ const isExistCurrentSourceConnector = this._connectableConnectors.some((x) => x.fConnector.fId === this._sourceConnector.fId);
30
+ if (!isExistCurrentSourceConnector) {
31
+ this._connectableConnectors.push(this._sourceConnectorAndRect);
32
+ }
33
+ this._mediator.execute(new MarkConnectableConnectorsRequest(this._connectableConnectors.map((x) => x.fConnector)));
34
+ }
35
+ initializeSnapConnection(snapConnection) {
36
+ this._snapConnection = snapConnection;
37
+ if (!snapConnection) {
38
+ return;
39
+ }
40
+ snapConnection.fInputId = this._connection.fInputId;
41
+ snapConnection.initialize();
42
+ }
43
+ onPointerMove(difference) {
44
+ const newPoint = this._connectorRect.addPoint(difference);
45
+ const fClosestConnector = this._findClosestConnector(newPoint, this._connectableConnectors);
46
+ this._drawConnection(newPoint, fClosestConnector?.fConnector.fConnectableSide || this._sourceConnector.fConnectableSide);
47
+ if (this._snapConnection) {
48
+ this._drawSnapConnection(isClosestConnectorInsideSnapThreshold(fClosestConnector, this._snapConnection));
49
+ }
50
+ }
51
+ _findClosestConnector(point, connectors) {
52
+ return this._mediator.execute(new FindClosestConnectorRequest(point, connectors));
53
+ }
54
+ _drawConnection(newPoint, fSide) {
55
+ const line = this._calculateNewLine(newPoint, fSide);
56
+ this._connection.setLine(line, fSide, this._targetConnectorAndRect.fConnector.fConnectableSide);
57
+ this._connection.redraw();
58
+ }
59
+ _calculateNewLine(sourcePoint, fSide) {
60
+ return this._mediator.execute(new CalculateConnectionLineByBehaviorRequest(roundedRectFromPoint(sourcePoint), this._targetConnectorAndRect.fRect, this._connection.fBehavior, fSide, this._targetConnectorAndRect.fConnector.fConnectableSide));
61
+ }
62
+ _drawSnapConnection(fClosestConnector) {
63
+ const snapConnection = this._snapConnection;
64
+ if (fClosestConnector) {
65
+ const line = this._getLineToClosestSourceConnector(fClosestConnector, snapConnection);
66
+ snapConnection.show();
67
+ snapConnection.setLine(line, fClosestConnector.fConnector.fConnectableSide, this._targetConnector.fConnectableSide);
68
+ snapConnection.redraw();
69
+ }
70
+ else {
71
+ snapConnection.hide();
72
+ }
73
+ }
74
+ _getLineToClosestSourceConnector(fClosestInput, snapConnection) {
75
+ return this._mediator.execute(new CalculateConnectionLineByBehaviorRequest(fClosestInput.fRect, this._targetConnectorAndRect.fRect, snapConnection.fBehavior, fClosestInput.fConnector.fConnectableSide, this._targetConnector.fConnectableSide));
76
+ }
77
+ onPointerUp() {
78
+ this._drawConnection(this._connectorRect, this._sourceConnectorAndRect.fConnector.fConnectableSide);
79
+ this._snapConnection?.hide();
80
+ this._mediator.execute(new UnmarkConnectableConnectorsRequest(this._connectableConnectors.map((x) => x.fConnector)));
81
+ }
82
+ }
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZWFzc2lnbi1zb3VyY2UuZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWNvbm5lY3Rpb24vZi1yZWFzc2lnbi1jb25uZWN0aW9uL2YtcmVhc3NpZ24tc291cmNlLmRyYWctaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsd0NBQXdDLEVBQ3hDLDJCQUEyQixFQUMzQixtREFBbUQsRUFFbkQsZ0NBQWdDLEVBQUUsa0NBQWtDLEVBQ3JFLE1BQU0saUJBQWlCLENBQUM7QUFJekIsT0FBTyxFQUFvQixxQ0FBcUMsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRXRILE1BQU0sT0FBTywwQkFBMEI7SUFpQmxCO0lBQ0E7SUFDQTtJQUNBO0lBbEJYLHNCQUFzQixHQUF3QixFQUFFLENBQUM7SUFFekQsSUFBWSxnQkFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBa0MsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBWSxnQkFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBaUMsQ0FBQztJQUN4RSxDQUFDO0lBRWdCLGNBQWMsQ0FBZTtJQUV0QyxlQUFlLENBQXVDO0lBRTlELFlBQ21CLFNBQW9CLEVBQ3BCLFdBQTRCLEVBQzVCLHVCQUEwQyxFQUMxQyx1QkFBMEM7UUFIMUMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFDNUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFtQjtRQUMxQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQW1CO1FBRTNELElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0UsQ0FB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LE9BQU8sQ0FDcEIsSUFBSSxrQ0FBa0MsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDN0YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Rk1lZGlhdG9yfSBmcm9tIFwiQGZvYmxleC9tZWRpYXRvclwiO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdCxcbiAgRmluZENsb3Nlc3RDb25uZWN0b3JSZXF1ZXN0LFxuICBHZXRBbGxDYW5CZUNvbm5lY3RlZFNvdXJjZUNvbm5lY3RvcnNBbmRSZWN0c1JlcXVlc3QsIElDbG9zZXN0Q29ubmVjdG9yLFxuICBJQ29ubmVjdG9yQW5kUmVjdCxcbiAgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QsIFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3Rcbn0gZnJvbSBcIi4uLy4uLy4uL2RvbWFpblwiO1xuaW1wb3J0IHtFRkNvbm5lY3RhYmxlU2lkZSwgRk5vZGVJbnB1dERpcmVjdGl2ZSwgRk5vZGVPdXRwdXREaXJlY3RpdmV9IGZyb20gXCIuLi8uLi8uLi9mLWNvbm5lY3RvcnNcIjtcbmltcG9ydCB7RkNvbm5lY3Rpb25CYXNlLCBGU25hcENvbm5lY3Rpb25Db21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi9mLWNvbm5lY3Rpb25cIjtcbmltcG9ydCB7SUxpbmUsIElQb2ludCwgUm91bmRlZFJlY3R9IGZyb20gXCJAZm9ibGV4LzJkXCI7XG5pbXBvcnQge0lGUmVhc3NpZ25IYW5kbGVyLCBpc0Nsb3Nlc3RDb25uZWN0b3JJbnNpZGVTbmFwVGhyZXNob2xkLCByb3VuZGVkUmVjdEZyb21Qb2ludH0gZnJvbSBcIi4vaS1mLXJlYXNzaWduLWhhbmRsZXJcIjtcblxuZXhwb3J0IGNsYXNzIEZSZWFzc2lnblNvdXJjZURyYWdIYW5kbGVyIGltcGxlbWVudHMgSUZSZWFzc2lnbkhhbmRsZXIge1xuXG4gIHByaXZhdGUgX2Nvbm5lY3RhYmxlQ29ubmVjdG9yczogSUNvbm5lY3RvckFuZFJlY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2V0IF9zb3VyY2VDb25uZWN0b3IoKTogRk5vZGVPdXRwdXREaXJlY3RpdmUge1xuICAgIHJldHVybiB0aGlzLl9zb3VyY2VDb25uZWN0b3JBbmRSZWN0LmZDb25uZWN0b3IgYXMgRk5vZGVPdXRwdXREaXJlY3RpdmU7XG4gIH1cblxuICBwcml2YXRlIGdldCBfdGFyZ2V0Q29ubmVjdG9yKCk6IEZOb2RlSW5wdXREaXJlY3RpdmUge1xuICAgIHJldHVybiB0aGlzLl90YXJnZXRDb25uZWN0b3JBbmRSZWN0LmZDb25uZWN0b3IgYXMgRk5vZGVJbnB1dERpcmVjdGl2ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nvbm5lY3RvclJlY3QhOiBSb3VuZGVkUmVjdDtcblxuICBwcml2YXRlIF9zbmFwQ29ubmVjdGlvbjogRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yOiBGTWVkaWF0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3NvdXJjZUNvbm5lY3RvckFuZFJlY3Q6IElDb25uZWN0b3JBbmRSZWN0LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhcmdldENvbm5lY3RvckFuZFJlY3Q6IElDb25uZWN0b3JBbmRSZWN0LFxuICApIHtcbiAgICB0aGlzLl9jb25uZWN0b3JSZWN0ID0gcm91bmRlZFJlY3RGcm9tUG9pbnQodGhpcy5fY29ubmVjdGlvbi5saW5lLnBvaW50MSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29ubmVjdGFibGVDb25uZWN0b3JzKCk6IElDb25uZWN0b3JBbmRSZWN0W10ge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0YWJsZUNvbm5lY3RvcnM7XG4gIH1cblxuICBwdWJsaWMgbWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nvbm5lY3RhYmxlQ29ubmVjdG9ycyA9IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvckFuZFJlY3RbXT4oXG4gICAgICBuZXcgR2V0QWxsQ2FuQmVDb25uZWN0ZWRTb3VyY2VDb25uZWN0b3JzQW5kUmVjdHNSZXF1ZXN0KHRoaXMuX3RhcmdldENvbm5lY3RvcilcbiAgICApO1xuICAgIGNvbnN0IGlzRXhpc3RDdXJyZW50U291cmNlQ29ubmVjdG9yID0gdGhpcy5fY29ubmVjdGFibGVDb25uZWN0b3JzLnNvbWUoKHgpID0+IHguZkNvbm5lY3Rvci5mSWQgPT09IHRoaXMuX3NvdXJjZUNvbm5lY3Rvci5mSWQpO1xuICAgIGlmICghaXNFeGlzdEN1cnJlbnRTb3VyY2VDb25uZWN0b3IpIHtcbiAgICAgIHRoaXMuX2Nvbm5lY3RhYmxlQ29ubmVjdG9ycy5wdXNoKHRoaXMuX3NvdXJjZUNvbm5lY3RvckFuZFJlY3QpO1xuICAgIH1cblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QodGhpcy5fY29ubmVjdGFibGVDb25uZWN0b3JzLm1hcCgoeCkgPT4geC5mQ29ubmVjdG9yKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemVTbmFwQ29ubmVjdGlvbihzbmFwQ29ubmVjdGlvbjogRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5fc25hcENvbm5lY3Rpb24gPSBzbmFwQ29ubmVjdGlvbjtcbiAgICBpZiAoIXNuYXBDb25uZWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNuYXBDb25uZWN0aW9uLmZJbnB1dElkID0gdGhpcy5fY29ubmVjdGlvbi5mSW5wdXRJZDtcbiAgICBzbmFwQ29ubmVjdGlvbi5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdQb2ludCA9IHRoaXMuX2Nvbm5lY3RvclJlY3QuYWRkUG9pbnQoZGlmZmVyZW5jZSk7XG5cbiAgICBjb25zdCBmQ2xvc2VzdENvbm5lY3RvciA9IHRoaXMuX2ZpbmRDbG9zZXN0Q29ubmVjdG9yKG5ld1BvaW50LCB0aGlzLl9jb25uZWN0YWJsZUNvbm5lY3RvcnMpO1xuICAgIHRoaXMuX2RyYXdDb25uZWN0aW9uKFxuICAgICAgbmV3UG9pbnQsXG4gICAgICBmQ2xvc2VzdENvbm5lY3Rvcj8uZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlIHx8IHRoaXMuX3NvdXJjZUNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlXG4gICAgKTtcbiAgICBpZiAodGhpcy5fc25hcENvbm5lY3Rpb24pIHtcbiAgICAgIHRoaXMuX2RyYXdTbmFwQ29ubmVjdGlvbihpc0Nsb3Nlc3RDb25uZWN0b3JJbnNpZGVTbmFwVGhyZXNob2xkKGZDbG9zZXN0Q29ubmVjdG9yLCB0aGlzLl9zbmFwQ29ubmVjdGlvbikpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRDbG9zZXN0Q29ubmVjdG9yKHBvaW50OiBJUG9pbnQsIGNvbm5lY3RvcnM6IElDb25uZWN0b3JBbmRSZWN0W10pOiBJQ2xvc2VzdENvbm5lY3RvciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNsb3Nlc3RDb25uZWN0b3IgfCB1bmRlZmluZWQ+KG5ldyBGaW5kQ2xvc2VzdENvbm5lY3RvclJlcXVlc3QocG9pbnQsIGNvbm5lY3RvcnMpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RyYXdDb25uZWN0aW9uKG5ld1BvaW50OiBJUG9pbnQsIGZTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLl9jYWxjdWxhdGVOZXdMaW5lKG5ld1BvaW50LCBmU2lkZSk7XG4gICAgdGhpcy5fY29ubmVjdGlvbi5zZXRMaW5lKGxpbmUsIGZTaWRlLCB0aGlzLl90YXJnZXRDb25uZWN0b3JBbmRSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgdGhpcy5fY29ubmVjdGlvbi5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZU5ld0xpbmUoc291cmNlUG9pbnQ6IElQb2ludCwgZlNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogSUxpbmUge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElMaW5lPihuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdChcbiAgICAgICAgcm91bmRlZFJlY3RGcm9tUG9pbnQoc291cmNlUG9pbnQpLFxuICAgICAgICB0aGlzLl90YXJnZXRDb25uZWN0b3JBbmRSZWN0LmZSZWN0LFxuICAgICAgICB0aGlzLl9jb25uZWN0aW9uLmZCZWhhdmlvcixcbiAgICAgICAgZlNpZGUsXG4gICAgICAgIHRoaXMuX3RhcmdldENvbm5lY3RvckFuZFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3U25hcENvbm5lY3Rpb24oZkNsb3Nlc3RDb25uZWN0b3I6IElDbG9zZXN0Q29ubmVjdG9yIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgY29uc3Qgc25hcENvbm5lY3Rpb24gPSB0aGlzLl9zbmFwQ29ubmVjdGlvbiE7XG4gICAgaWYgKGZDbG9zZXN0Q29ubmVjdG9yKSB7XG4gICAgICBjb25zdCBsaW5lID0gdGhpcy5fZ2V0TGluZVRvQ2xvc2VzdFNvdXJjZUNvbm5lY3RvcihmQ2xvc2VzdENvbm5lY3Rvciwgc25hcENvbm5lY3Rpb24pO1xuICAgICAgc25hcENvbm5lY3Rpb24uc2hvdygpO1xuICAgICAgc25hcENvbm5lY3Rpb24uc2V0TGluZShsaW5lLCBmQ2xvc2VzdENvbm5lY3Rvci5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsIHRoaXMuX3RhcmdldENvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlKTtcbiAgICAgIHNuYXBDb25uZWN0aW9uLnJlZHJhdygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzbmFwQ29ubmVjdGlvbi5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TGluZVRvQ2xvc2VzdFNvdXJjZUNvbm5lY3RvcihmQ2xvc2VzdElucHV0OiBJQ2xvc2VzdENvbm5lY3Rvciwgc25hcENvbm5lY3Rpb246IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCk6IElMaW5lIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTxJTGluZT4obmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25MaW5lQnlCZWhhdmlvclJlcXVlc3QoXG4gICAgICBmQ2xvc2VzdElucHV0LmZSZWN0LFxuICAgICAgdGhpcy5fdGFyZ2V0Q29ubmVjdG9yQW5kUmVjdC5mUmVjdCxcbiAgICAgIHNuYXBDb25uZWN0aW9uLmZCZWhhdmlvcixcbiAgICAgIGZDbG9zZXN0SW5wdXQuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgdGhpcy5fdGFyZ2V0Q29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGVcbiAgICApKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmF3Q29ubmVjdGlvbih0aGlzLl9jb25uZWN0b3JSZWN0LCB0aGlzLl9zb3VyY2VDb25uZWN0b3JBbmRSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgdGhpcy5fc25hcENvbm5lY3Rpb24/LmhpZGUoKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgVW5tYXJrQ29ubmVjdGFibGVDb25uZWN0b3JzUmVxdWVzdCh0aGlzLl9jb25uZWN0YWJsZUNvbm5lY3RvcnMubWFwKCh4KSA9PiB4LmZDb25uZWN0b3IpKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==