@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.
- package/domain/css-cls.d.ts +1 -1
- package/domain/f-connection/create-connection-markers/create-connection-markers.execution.d.ts +2 -5
- package/domain/f-connectors/find-closest-connector/find-closest-connector.execution.d.ts +11 -0
- package/domain/f-connectors/find-closest-connector/find-closest-connector.request.d.ts +8 -0
- package/domain/f-connectors/find-closest-connector/index.d.ts +2 -0
- package/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.d.ts +25 -0
- package/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.request.d.ts +8 -0
- package/domain/f-connectors/find-connectable-connector-using-priority-and-position/index.d.ts +2 -0
- 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
- 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
- package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.d.ts +2 -0
- package/domain/f-connectors/{i-closest-input.d.ts → i-closest-connector.d.ts} +1 -1
- package/domain/f-connectors/index.d.ts +6 -5
- package/domain/f-connectors/mark-connectable-connectors/index.d.ts +2 -0
- package/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.execution.d.ts +10 -0
- package/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.request.d.ts +6 -0
- package/domain/f-connectors/providers.d.ts +6 -5
- package/domain/f-connectors/unmark-connectable-connectors/index.d.ts +2 -0
- package/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.execution.d.ts +10 -0
- package/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.request.d.ts +6 -0
- package/domain/f-draggable/providers.d.ts +1 -1
- package/domain/providers.d.ts +1 -1
- package/esm2022/domain/css-cls.mjs +2 -2
- package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node.execution.mjs +2 -2
- package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +17 -18
- package/esm2022/domain/f-connectors/find-closest-connector/find-closest-connector.execution.mjs +42 -0
- package/esm2022/domain/f-connectors/find-closest-connector/find-closest-connector.request.mjs +10 -0
- package/esm2022/domain/f-connectors/{find-input-at-position → find-closest-connector}/index.mjs +3 -3
- package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.mjs +93 -0
- package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.request.mjs +10 -0
- package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/index.mjs +3 -0
- 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
- 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
- package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.mjs +3 -0
- package/esm2022/domain/f-connectors/i-closest-connector.mjs +2 -0
- package/esm2022/domain/f-connectors/index.mjs +7 -6
- package/esm2022/domain/f-connectors/mark-connectable-connectors/index.mjs +3 -0
- package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.execution.mjs +27 -0
- package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.request.mjs +8 -0
- package/esm2022/domain/f-connectors/providers.mjs +11 -9
- package/esm2022/domain/f-connectors/unmark-connectable-connectors/index.mjs +3 -0
- package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.execution.mjs +27 -0
- package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.request.mjs +8 -0
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.mjs +2 -2
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +2 -2
- package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.execution.mjs +5 -5
- package/esm2022/domain/f-selection/select/select.execution.mjs +3 -3
- package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.mjs +2 -2
- package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.mjs +2 -2
- package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.mjs +2 -2
- package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.execution.mjs +3 -3
- package/esm2022/f-canvas/f-canvas.component.mjs +2 -2
- package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +7 -2
- package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +3 -2
- package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +2 -2
- package/esm2022/f-connection/common/f-connection-base.mjs +16 -12
- package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +2 -2
- package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +2 -2
- package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +4 -4
- package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +8 -8
- package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +2 -2
- package/esm2022/f-connection/common/i-has-connection-color.mjs +1 -1
- package/esm2022/f-connection/common/i-has-connection-from-to.mjs +1 -1
- package/esm2022/f-connection/f-connection/f-connection.component.mjs +23 -52
- package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-response.mjs +1 -1
- package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +21 -48
- package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +21 -48
- package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +2 -2
- package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +2 -2
- package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +2 -2
- package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +2 -2
- package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.mjs +3 -3
- package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +6 -6
- package/esm2022/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.mjs +3 -3
- package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +5 -5
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.mjs +41 -73
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.event.mjs +18 -12
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +83 -0
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +82 -0
- package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-handler.mjs +8 -0
- package/esm2022/f-draggable/f-connection/f-reassign-connection/index.mjs +5 -1
- package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-finalize/f-reassign-connection-finalize.execution.mjs +27 -21
- package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +8 -11
- package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/index.mjs +2 -1
- package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.mjs +17 -0
- package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.execution.mjs +3 -3
- 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
- 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
- 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
- package/esm2022/f-draggable/f-node-move/f-summary-node-move.drag-handler.mjs +2 -2
- package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.mjs +2 -2
- package/esm2022/f-draggable/f-node-resize/f-node-resize.drag-handler.mjs +2 -2
- package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +2 -2
- package/esm2022/f-draggable/f-node-rotate/f-node-rotate.drag-handler.mjs +2 -2
- package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +2 -2
- package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.execution.mjs +2 -2
- package/esm2022/f-flow/f-flow.component.mjs +3 -3
- package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +1 -1
- package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +3 -4
- package/esm2022/f-minimap/f-minimap-flow.directive.mjs +7 -9
- package/esm2022/f-minimap/f-minimap-view.directive.mjs +3 -3
- package/esm2022/f-minimap/f-minimap.component.mjs +19 -30
- package/esm2022/f-node/f-group.directive.mjs +6 -9
- package/esm2022/f-node/f-node-base.mjs +1 -1
- package/esm2022/f-node/f-node.directive.mjs +6 -9
- package/esm2022/mixins/change-selection/change-selection.mjs +3 -2
- package/esm2022/mixins/change-selection/i-selectable.mjs +1 -1
- package/f-connection/common/f-connection-base.d.ts +15 -12
- package/f-connection/common/i-has-connection-color.d.ts +3 -2
- package/f-connection/common/i-has-connection-from-to.d.ts +2 -1
- package/f-connection/f-connection/f-connection.component.d.ts +17 -15
- package/f-connection/f-connection-builder/i-f-connection-builder-response.d.ts +1 -0
- package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +16 -15
- package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +16 -15
- package/f-connection/providers.d.ts +1 -1
- package/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +2 -2
- package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.d.ts +11 -17
- package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.event.d.ts +9 -6
- package/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.d.ts +27 -0
- package/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.d.ts +28 -0
- package/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.d.ts +4 -2
- package/f-draggable/f-connection/f-reassign-connection/i-f-reassign-handler.d.ts +12 -0
- package/f-draggable/f-connection/f-reassign-connection/index.d.ts +4 -0
- package/f-draggable/f-connection/f-reassign-connection/reassign-finalize/f-reassign-connection-finalize.execution.d.ts +6 -6
- package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.d.ts +0 -1
- package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/index.d.ts +1 -0
- package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.d.ts +5 -0
- package/f-draggable/f-drop-to-group/providers.d.ts +1 -1
- package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
- package/f-draggable/f-node-move/providers.d.ts +1 -1
- package/f-draggable/f-node-resize/providers.d.ts +1 -1
- package/f-draggable/providers.d.ts +1 -1
- package/f-external-item/domain/providers.d.ts +1 -1
- package/f-flow/f-flow.component.d.ts +1 -1
- package/f-minimap/domain/providers.d.ts +1 -1
- package/f-minimap/f-minimap-canvas.directive.d.ts +1 -1
- package/f-minimap/f-minimap-flow.directive.d.ts +4 -4
- package/f-minimap/f-minimap-view.directive.d.ts +1 -1
- package/f-minimap/f-minimap.component.d.ts +8 -8
- package/f-minimap/providers.d.ts +1 -1
- package/f-node/f-group.directive.d.ts +2 -2
- package/f-node/f-node-base.d.ts +2 -2
- package/f-node/f-node.directive.d.ts +2 -2
- package/f-node/providers.d.ts +2 -2
- package/f-selection-area/domain/providers.d.ts +1 -1
- package/f-storage/providers.d.ts +1 -1
- package/fesm2022/foblex-flow.mjs +592 -490
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/mixins/change-selection/i-selectable.d.ts +2 -1
- package/package.json +1 -1
- package/domain/f-connectors/calculate-closest-input/calculate-closest-input.execution.d.ts +0 -11
- package/domain/f-connectors/calculate-closest-input/calculate-closest-input.request.d.ts +0 -8
- package/domain/f-connectors/calculate-closest-input/index.d.ts +0 -2
- package/domain/f-connectors/find-input-at-position/find-input-at-position.execution.d.ts +0 -25
- package/domain/f-connectors/find-input-at-position/find-input-at-position.request.d.ts +0 -9
- package/domain/f-connectors/find-input-at-position/index.d.ts +0 -2
- package/domain/f-connectors/mark-all-can-be-connected-inputs/index.d.ts +0 -2
- package/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.execution.d.ts +0 -10
- package/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.request.d.ts +0 -6
- package/domain/f-connectors/unmark-all-can-be-connected-inputs/index.d.ts +0 -2
- package/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.execution.d.ts +0 -10
- package/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.request.d.ts +0 -6
- package/esm2022/domain/f-connectors/calculate-closest-input/calculate-closest-input.execution.mjs +0 -42
- package/esm2022/domain/f-connectors/calculate-closest-input/calculate-closest-input.request.mjs +0 -10
- package/esm2022/domain/f-connectors/calculate-closest-input/index.mjs +0 -3
- package/esm2022/domain/f-connectors/find-input-at-position/find-input-at-position.execution.mjs +0 -92
- package/esm2022/domain/f-connectors/find-input-at-position/find-input-at-position.request.mjs +0 -12
- package/esm2022/domain/f-connectors/i-closest-input.mjs +0 -2
- package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/index.mjs +0 -3
- package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.execution.mjs +0 -27
- package/esm2022/domain/f-connectors/mark-all-can-be-connected-inputs/mark-all-can-be-connected-inputs.request.mjs +0 -8
- package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/index.mjs +0 -3
- package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.execution.mjs +0 -27
- package/esm2022/domain/f-connectors/unmark-all-can-be-connected-inputs/unmark-all-can-be-connected-inputs.request.mjs +0 -8
package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs
CHANGED
|
@@ -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,
|
|
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
|
|
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,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jcmVhdGUtY29ubmVjdGlvbi1maW5hbGl6ZS5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtY29ubmVjdGlvbi9mLWNyZWF0ZS1jb25uZWN0aW9uL2NyZWF0ZS1maW5hbGl6ZS9mLWNyZWF0ZS1jb25uZWN0aW9uLWZpbmFsaXplLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFvRCxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHN0QsT0FBTyxFQUFDLHVEQUF1RCxFQUFDLE1BQU0sb0JBQW9CLENBQUM7O0FBSXBGLElBQU0sa0NBQWtDLEdBQXhDLE1BQU0sa0NBQWtDO0lBR3JDLFFBQVEsR0FBcUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFeEYsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixpQkFBaUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3QyxzQkFBc0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUUvRCxJQUFZLGFBQWE7UUFDdkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFFLENBQUMsQ0FBa0MsQ0FBQztJQUN6RixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQXlDO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVPLFFBQVE7UUFDZCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNwRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLDRCQUE0QixDQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWUsQ0FBQyxNQUFrQztRQUN4RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUEwQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVUsMkVBQTJFLENBQUMsQ0FBQztRQUMzSixDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDL0QsSUFBSSxnQ0FBZ0MsQ0FBQyxNQUF5QixDQUFDLENBQ2hFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNiLENBQUM7SUFFTyxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTyxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBb0I7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQ3ZELElBQUksc0JBQXNCLENBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFDOUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFDdEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUNwQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8scUJBQXFCLENBQUMsS0FBb0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDNUIsSUFBSSx1REFBdUQsQ0FDekQsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUM3QyxDQUNGLENBQUM7SUFDSixDQUFDO3dHQTdEVSxrQ0FBa0M7NEdBQWxDLGtDQUFrQzs7QUFBbEMsa0NBQWtDO0lBRDlDLGtCQUFrQixDQUFDLGdDQUFnQyxDQUFDO0dBQ3hDLGtDQUFrQyxDQThEOUM7OzRGQTlEWSxrQ0FBa0M7a0JBRjlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlLCBGTm9kZU91dGxldEJhc2UsIEZOb2RlT3V0cHV0QmFzZSwgaXNOb2RlT3V0bGV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZDcmVhdGVDb25uZWN0aW9uRmluYWxpemVSZXF1ZXN0IH0gZnJvbSAnLi9mLWNyZWF0ZS1jb25uZWN0aW9uLWZpbmFsaXplLnJlcXVlc3QnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBHZXRGaXJzdENvbm5lY3RhYmxlT3V0cHV0UmVxdWVzdCB9IGZyb20gJy4uL2dldC1maXJzdC1jb25uZWN0YWJsZS1vdXRwdXQnO1xuaW1wb3J0IHsgRkNyZWF0ZUNvbm5lY3Rpb25FdmVudCB9IGZyb20gJy4uL2YtY3JlYXRlLWNvbm5lY3Rpb24uZXZlbnQnO1xuaW1wb3J0IHsgRkNyZWF0ZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB9IGZyb20gJy4uL2YtY3JlYXRlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEZEcmFnSGFuZGxlclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL2YtZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IElGQ3JlYXRlQ29ubmVjdGlvbkRyYWdSZXN1bHQgfSBmcm9tICcuLi9pLWYtY3JlYXRlLWNvbm5lY3Rpb24tZHJhZy1yZXN1bHQnO1xuaW1wb3J0IHtJUG9pbnRlckV2ZW50fSBmcm9tIFwiLi4vLi4vLi4vLi4vZHJhZy10b29sa2l0XCI7XG5pbXBvcnQge0ZpbmRDb25uZWN0YWJsZUNvbm5lY3RvclVzaW5nUHJpb3JpdHlBbmRQb3NpdGlvblJlcXVlc3R9IGZyb20gXCIuLi8uLi8uLi8uLi9kb21haW5cIjtcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplRXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUhhbmRsZXI8RkNyZWF0ZUNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIF9mUmVzdWx0OiBGRHJhZ0hhbmRsZXJSZXN1bHQ8SUZDcmVhdGVDb25uZWN0aW9uRHJhZ1Jlc3VsdD4gPSBpbmplY3QoRkRyYWdIYW5kbGVyUmVzdWx0KTtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSBfZkNvbXBvbmVudHNTdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcbiAgcHJpdmF0ZSBfZkRyYWdnYWJsZURhdGFDb250ZXh0ID0gaW5qZWN0KEZEcmFnZ2FibGVEYXRhQ29udGV4dCk7XG5cbiAgcHJpdmF0ZSBnZXQgX2ZEcmFnSGFuZGxlcigpOiBGQ3JlYXRlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zWyAwIF0gYXMgRkNyZWF0ZUNvbm5lY3Rpb25EcmFnSGFuZGxlcjtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogRkNyZWF0ZUNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmVtaXRFdmVudChyZXF1ZXN0LmV2ZW50KTtcbiAgICB0aGlzLl9mRHJhZ0hhbmRsZXIub25Qb2ludGVyVXAoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5zb21lKFxuICAgICAgKHgpID0+IHggaW5zdGFuY2VvZiBGQ3JlYXRlQ29ubmVjdGlvbkRyYWdIYW5kbGVyXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFyZ2V0T3V0cHV0KG91dHB1dDogRkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQpOiBGQ29ubmVjdG9yQmFzZSB7XG4gICAgaWYgKCFvdXRwdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgT3V0cHV0IHdpdGggZk91dHB1dElkICR7IHRoaXMuX2ZSZXN1bHQuZ2V0RGF0YSgpLmZPdXRwdXRJZCB9IG5vdCBmb3VuZC4gTWFrZSBzdXJlIHRoZXJlIGlzIG5vIGYtY29ubmVjdGlvbiB0byBhIG5vbi1leGlzdGVudCBmT3V0cHV0LmApO1xuICAgIH1cbiAgICByZXR1cm4gaXNOb2RlT3V0bGV0KG91dHB1dC5ob3N0RWxlbWVudCkgPyB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxGTm9kZU91dHB1dEJhc2U+KFxuICAgICAgbmV3IEdldEZpcnN0Q29ubmVjdGFibGVPdXRwdXRSZXF1ZXN0KG91dHB1dCBhcyBGTm9kZU91dGxldEJhc2UpXG4gICAgKSA6IG91dHB1dDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3V0cHV0KCk6IEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mT3V0cHV0cy5maW5kKCh4KSA9PiB4LmZJZCA9PT0gdGhpcy5fZlJlc3VsdC5nZXREYXRhKCkuZk91dHB1dElkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3V0bGV0KCk6IEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mT3V0bGV0cy5maW5kKCh4KSA9PiB4LmZJZCA9PT0gdGhpcy5fZlJlc3VsdC5nZXREYXRhKCkuZk91dHB1dElkKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEV2ZW50KGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlPy5mQ3JlYXRlQ29ubmVjdGlvbi5lbWl0KFxuICAgICAgbmV3IEZDcmVhdGVDb25uZWN0aW9uRXZlbnQoXG4gICAgICAgIHRoaXMuZ2V0VGFyZ2V0T3V0cHV0KHRoaXMuZ2V0T3V0cHV0KCkgfHwgdGhpcy5nZXRPdXRsZXQoKSkuZklkLFxuICAgICAgICB0aGlzLl9nZXRJbnB1dFVuZGVyUG9pbnRlcihldmVudCk/LmZJZCxcbiAgICAgICAgZXZlbnQuZ2V0UG9zaXRpb24oKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnB1dFVuZGVyUG9pbnRlcihldmVudDogSVBvaW50ZXJFdmVudCk6IEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8RkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQ+KFxuICAgICAgbmV3IEZpbmRDb25uZWN0YWJsZUNvbm5lY3RvclVzaW5nUHJpb3JpdHlBbmRQb3NpdGlvblJlcXVlc3QoXG4gICAgICAgIGV2ZW50LmdldFBvc2l0aW9uKCksXG4gICAgICAgIHRoaXMuX2ZSZXN1bHQuZ2V0RGF0YSgpLmNhbkJlQ29ubmVjdGVkSW5wdXRzXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
|
package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FDragHandlerResult } from '../../f-drag-handler';
|
|
2
|
-
import {
|
|
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
|
|
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
|
|
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
|
|
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 {
|
|
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
|
-
|
|
9
|
+
_connection;
|
|
10
|
+
_isTargetDragHandle;
|
|
8
11
|
fEventType = 'reassign-connection';
|
|
9
12
|
fData;
|
|
10
13
|
_fResult;
|
|
11
14
|
_fMediator;
|
|
12
|
-
|
|
13
|
-
_toConnectorRect = new RoundedRect();
|
|
15
|
+
_store;
|
|
14
16
|
get _fSnapConnection() {
|
|
15
|
-
return this.
|
|
17
|
+
return this._store.fSnapConnection;
|
|
16
18
|
}
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
28
|
-
const result = this.
|
|
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
|
-
|
|
35
|
-
this.
|
|
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.
|
|
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.
|
|
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.
|
|
46
|
-
this.
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
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.
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZWFzc2lnbi1jb25uZWN0aW9uLmRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1jb25uZWN0aW9uL2YtcmVhc3NpZ24tY29ubmVjdGlvbi9mLXJlYXNzaWduLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHlDQUF5QyxFQUN6Qyx3Q0FBd0MsRUFBRSwwQkFBMEIsRUFDbEMsa0NBQWtDLEVBQUUsb0NBQW9DLEVBQzNHLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFpQixjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUl0RCxNQUFNLE9BQU8sOEJBQThCO0lBc0MvQjtJQXBDSCxVQUFVLEdBQUcscUJBQXFCLENBQUM7SUFDbkMsS0FBSyxDQUFNO0lBRUQsUUFBUSxDQUFxRDtJQUM3RCxVQUFVLENBQVk7SUFDdEIsaUJBQWlCLENBQW1CO0lBRXBDLGdCQUFnQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFFdEQsSUFBWSxnQkFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBMkMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sZ0JBQWdCLENBQXFCO0lBQ3JDLGVBQWUsQ0FBcUI7SUFFcEMscUJBQXFCLEdBQXdCLEVBQUUsQ0FBQztJQUV4RCxJQUFZLFFBQVE7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFZLE9BQU87UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxZQUNFLFNBQW1CLEVBQ1gsWUFBNkI7UUFBN0IsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBRXJDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUMxQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUM1RixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUc7U0FDckMsQ0FBQztJQUNKLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFvQixJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQW9CLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFaEgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDcEIsZUFBZSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdEMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtZQUNoRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLCtCQUErQjtRQUNyQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQ2xELElBQUkseUNBQXlDLENBQUMsSUFBSSxDQUFDLFFBQWdDLENBQUMsQ0FDckYsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUNyQixJQUFJLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUM1RixDQUFDO0lBQ0osQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQzlELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sYUFBYSxDQUFDLFVBQWtCO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsZUFBZSxDQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUMxQyxhQUFhLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUMvRixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsVUFBa0IsRUFBRSxLQUF3QjtRQUNsRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFVBQWtCLEVBQUUsS0FBd0I7UUFDcEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBUSxJQUFJLHdDQUF3QyxDQUM5RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUMzQixXQUFXLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDM0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQ2pELEtBQUssQ0FDTixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sbUJBQW1CLENBQUMsYUFBd0M7UUFDbEUsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLGdCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxnQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ25JLElBQUksQ0FBQyxnQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUFDLGFBQTRCO1FBQ3pELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQVEsSUFBSSx3Q0FBd0MsQ0FDaEYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFDM0IsYUFBYSxDQUFDLEtBQUssRUFDbkIsSUFBSSxDQUFDLGdCQUFpQixDQUFDLFNBQVMsRUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFDakQsYUFBYSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFVBQWtCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQzVCLElBQUksNEJBQTRCLENBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQzFDLElBQUksQ0FBQyxxQkFBcUIsQ0FDM0IsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGlDQUFpQyxDQUFDLGFBQXdDO1FBQ2hGLE9BQU8sYUFBYSxJQUFJLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDckgsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQ3JCLElBQUksb0NBQW9DLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQzlGLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGRHJhZ0hhbmRsZXJSZXN1bHQsIElGRHJhZ0hhbmRsZXIgfSBmcm9tICcuLi8uLi9mLWRyYWctaGFuZGxlcic7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDbG9zZXN0SW5wdXRSZXF1ZXN0LFxuICBHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0c0FuZFJlY3RzUmVxdWVzdCxcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdCwgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QsXG4gIElDb25uZWN0b3JBbmRSZWN0LCBJQ2xvc2VzdElucHV0LCBNYXJrQWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNSZXF1ZXN0LCBVbm1hcmtBbGxDYW5CZUNvbm5lY3RlZElucHV0c1JlcXVlc3Rcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSwgRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlLCBGQ29ubmVjdG9yQmFzZSwgRk5vZGVPdXRwdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgSUxpbmUsIElQb2ludCwgUmVjdEV4dGVuc2lvbnMsIFJvdW5kZWRSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgSUZSZWFzc2lnbkNvbm5lY3Rpb25EcmFnUmVzdWx0IH0gZnJvbSAnLi9pLWYtcmVhc3NpZ24tY29ubmVjdGlvbi1kcmFnLXJlc3VsdCc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgRlJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyIGltcGxlbWVudHMgSUZEcmFnSGFuZGxlciB7XG5cbiAgcHVibGljIGZFdmVudFR5cGUgPSAncmVhc3NpZ24tY29ubmVjdGlvbic7XG4gIHB1YmxpYyBmRGF0YTogYW55O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZSZXN1bHQ6IEZEcmFnSGFuZGxlclJlc3VsdDxJRlJlYXNzaWduQ29ubmVjdGlvbkRyYWdSZXN1bHQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9mTWVkaWF0b3I6IEZNZWRpYXRvcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF90b0Nvbm5lY3RvclJlY3QgPSBuZXcgUm91bmRlZFJlY3QoKTtcblxuICBwcml2YXRlIGdldCBfZlNuYXBDb25uZWN0aW9uKCk6IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZlNuYXBDb25uZWN0aW9uIGFzIEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgX2ZPdXRwdXRXaXRoUmVjdCE6IElDb25uZWN0b3JBbmRSZWN0O1xuICBwcml2YXRlIF9mSW5wdXRXaXRoUmVjdCE6IElDb25uZWN0b3JBbmRSZWN0O1xuXG4gIHByaXZhdGUgX2NhbkJlQ29ubmVjdGVkSW5wdXRzOiBJQ29ubmVjdG9yQW5kUmVjdFtdID0gW107XG5cbiAgcHJpdmF0ZSBnZXQgX2ZPdXRwdXQoKTogRkNvbm5lY3RvckJhc2Uge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZk91dHB1dHMuZmluZCgoeCkgPT4geC5mSWQgPT09IHRoaXMuX2ZDb25uZWN0aW9uLmZPdXRwdXRJZCk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29ubmVjdGlvbiBvdXRwdXQgbm90IGZvdW5kJyk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZklucHV0KCk6IEZDb25uZWN0b3JCYXNlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZJbnB1dHMuZmluZCgoeCkgPT4geC5mSWQgPT09IHRoaXMuX2ZDb25uZWN0aW9uLmZJbnB1dElkKTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb25uZWN0aW9uIGlucHV0IG5vdCBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9mQ29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICApIHtcbiAgICB0aGlzLl9mUmVzdWx0ID0gX2luamVjdG9yLmdldChGRHJhZ0hhbmRsZXJSZXN1bHQpO1xuICAgIHRoaXMuX2ZNZWRpYXRvciA9IF9pbmplY3Rvci5nZXQoRk1lZGlhdG9yKTtcbiAgICB0aGlzLl9mQ29tcG9uZW50c1N0b3JlID0gX2luamVjdG9yLmdldChGQ29tcG9uZW50c1N0b3JlKTtcblxuICAgIHRoaXMuX3RvQ29ubmVjdG9yUmVjdCA9IFJvdW5kZWRSZWN0LmZyb21SZWN0KFxuICAgICAgUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSh0aGlzLl9mQ29ubmVjdGlvbi5saW5lLnBvaW50Mi54LCB0aGlzLl9mQ29ubmVjdGlvbi5saW5lLnBvaW50Mi55KVxuICAgICk7XG4gICAgdGhpcy5mRGF0YSA9IHtcbiAgICAgIGZDb25uZWN0aW9uSWQ6IHRoaXMuX2ZDb25uZWN0aW9uLmZJZFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9nZXRBbmRNYXJrQ2FuQmVDb25uZWN0ZWRJbnB1dHMoKTtcbiAgICB0aGlzLl9pbml0aWFsaXplU25hcENvbm5lY3Rpb24oKTtcblxuICAgIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdCA9IHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JBbmRSZWN0PihuZXcgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QodGhpcy5fZk91dHB1dCkpO1xuICAgIHRoaXMuX2ZJbnB1dFdpdGhSZWN0ID0gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvckFuZFJlY3Q+KG5ldyBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCh0aGlzLl9mSW5wdXQpKTtcblxuICAgIHRoaXMuX2ZSZXN1bHQuc2V0RGF0YSh7XG4gICAgICB0b0Nvbm5lY3RvclJlY3Q6IHRoaXMuX3RvQ29ubmVjdG9yUmVjdCxcbiAgICAgIGNhbkJlQ29ubmVjdGVkSW5wdXRzOiB0aGlzLl9jYW5CZUNvbm5lY3RlZElucHV0cyxcbiAgICAgIGZDb25uZWN0aW9uOiB0aGlzLl9mQ29ubmVjdGlvblxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QW5kTWFya0NhbkJlQ29ubmVjdGVkSW5wdXRzKCk6IHZvaWQge1xuICAgIHRoaXMuX2NhbkJlQ29ubmVjdGVkSW5wdXRzID0gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvckFuZFJlY3RbXT4oXG4gICAgICBuZXcgR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNBbmRSZWN0c1JlcXVlc3QodGhpcy5fZk91dHB1dCBhcyBGTm9kZU91dHB1dERpcmVjdGl2ZSlcbiAgICApO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgTWFya0FsbENhbkJlQ29ubmVjdGVkSW5wdXRzUmVxdWVzdCh0aGlzLl9jYW5CZUNvbm5lY3RlZElucHV0cy5tYXAoKHgpID0+IHguZkNvbm5lY3RvcikpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVTbmFwQ29ubmVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2ZTbmFwQ29ubmVjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9mU25hcENvbm5lY3Rpb24uZk91dHB1dElkID0gdGhpcy5fZkNvbm5lY3Rpb24uZk91dHB1dElkO1xuICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbi5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmQ2xvc2VzdElucHV0ID0gdGhpcy5fZmluZENsb3Nlc3RJbnB1dChkaWZmZXJlbmNlKTtcblxuICAgIHRoaXMuX2RyYXdDb25uZWN0aW9uKFxuICAgICAgdGhpcy5fdG9Db25uZWN0b3JSZWN0LmFkZFBvaW50KGRpZmZlcmVuY2UpLFxuICAgICAgZkNsb3Nlc3RJbnB1dD8uZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlIHx8IHRoaXMuX2ZJbnB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZVxuICAgICk7XG4gICAgaWYgKHRoaXMuX2ZTbmFwQ29ubmVjdGlvbikge1xuICAgICAgdGhpcy5fZHJhd1NuYXBDb25uZWN0aW9uKHRoaXMuX2dldENsb3Nlc3RJbnB1dEZvclNuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kcmF3Q29ubmVjdGlvbihkaWZmZXJlbmNlOiBJUG9pbnQsIGZTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLl9nZXRMaW5lVG9Qb2ludGVyKGRpZmZlcmVuY2UsIGZTaWRlKTtcbiAgICB0aGlzLl9mQ29ubmVjdGlvbi5zZXRMaW5lKGxpbmUsIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsIGZTaWRlKTtcbiAgICB0aGlzLl9mQ29ubmVjdGlvbi5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldExpbmVUb1BvaW50ZXIoZGlmZmVyZW5jZTogSVBvaW50LCBmU2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiBJTGluZSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElMaW5lPihuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdChcbiAgICAgICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0LmZSZWN0LFxuICAgICAgICBSb3VuZGVkUmVjdC5mcm9tUmVjdChSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKGRpZmZlcmVuY2UueCwgZGlmZmVyZW5jZS55KSksXG4gICAgICAgIHRoaXMuX2ZDb25uZWN0aW9uLmZCZWhhdmlvcixcbiAgICAgICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgZlNpZGVcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZHJhd1NuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQ6IElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAoZkNsb3Nlc3RJbnB1dCkge1xuICAgICAgY29uc3QgbGluZSA9IHRoaXMuX2dldExpbmVUb0Nsb3Nlc3RJbnB1dChmQ2xvc2VzdElucHV0KTtcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEuc2hvdygpO1xuICAgICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uIS5zZXRMaW5lKGxpbmUsIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsIGZDbG9zZXN0SW5wdXQuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlKTtcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbiEucmVkcmF3KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbj8uaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldExpbmVUb0Nsb3Nlc3RJbnB1dChmQ2xvc2VzdElucHV0OiBJQ2xvc2VzdElucHV0KTogSUxpbmUge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJTGluZT4obmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25MaW5lQnlCZWhhdmlvclJlcXVlc3QoXG4gICAgICB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZlJlY3QsXG4gICAgICBmQ2xvc2VzdElucHV0LmZSZWN0LFxuICAgICAgdGhpcy5fZlNuYXBDb25uZWN0aW9uIS5mQmVoYXZpb3IsXG4gICAgICB0aGlzLl9mT3V0cHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgZkNsb3Nlc3RJbnB1dC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGVcbiAgICApKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRDbG9zZXN0SW5wdXQoZGlmZmVyZW5jZTogSVBvaW50KTogSUNsb3Nlc3RJbnB1dCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQ+KFxuICAgICAgbmV3IENhbGN1bGF0ZUNsb3Nlc3RJbnB1dFJlcXVlc3QoXG4gICAgICAgIHRoaXMuX3RvQ29ubmVjdG9yUmVjdC5hZGRQb2ludChkaWZmZXJlbmNlKSxcbiAgICAgICAgdGhpcy5fY2FuQmVDb25uZWN0ZWRJbnB1dHMsXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENsb3Nlc3RJbnB1dEZvclNuYXBDb25uZWN0aW9uKGZDbG9zZXN0SW5wdXQ6IElDbG9zZXN0SW5wdXQgfCB1bmRlZmluZWQpOiBJQ2xvc2VzdElucHV0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZkNsb3Nlc3RJbnB1dCAmJiBmQ2xvc2VzdElucHV0LmRpc3RhbmNlIDwgdGhpcy5fZlNuYXBDb25uZWN0aW9uIS5mU25hcFRocmVzaG9sZCA/IGZDbG9zZXN0SW5wdXQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fZHJhd0Nvbm5lY3Rpb24odGhpcy5fdG9Db25uZWN0b3JSZWN0LCB0aGlzLl9mSW5wdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUpO1xuICAgIHRoaXMuX2ZTbmFwQ29ubmVjdGlvbj8uaGlkZSgpO1xuXG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgVW5tYXJrQWxsQ2FuQmVDb25uZWN0ZWRJbnB1dHNSZXF1ZXN0KHRoaXMuX2NhbkJlQ29ubmVjdGVkSW5wdXRzLm1hcCgoeCkgPT4geC5mQ29ubmVjdG9yKSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZWFzc2lnbi1jb25uZWN0aW9uLmRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1jb25uZWN0aW9uL2YtcmVhc3NpZ24tY29ubmVjdGlvbi9mLXJlYXNzaWduLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxrQkFBa0IsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsMEJBQTBCLEdBRTNCLE1BQU0saUJBQWlCLENBQUM7QUFJekIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBR3BELE9BQU8sRUFBb0Isb0JBQW9CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RSxNQUFNLE9BQU8sOEJBQThCO0lBeUMvQjtJQUNBO0lBeENILFVBQVUsR0FBRyxxQkFBcUIsQ0FBQztJQUNuQyxLQUFLLENBQU07SUFFRCxRQUFRLENBQXFEO0lBQzdELFVBQVUsQ0FBWTtJQUN0QixNQUFNLENBQW1CO0lBRTFDLElBQVksZ0JBQWdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUEyQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFZLGdCQUFnQjtRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENB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Z0JBQWdCLENBQUMsd0JBQXdCLEVBQUU7WUFDdkUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBa0I7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGRHJhZ0hhbmRsZXJSZXN1bHQsIElGRHJhZ0hhbmRsZXJ9IGZyb20gJy4uLy4uL2YtZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7XG4gIEdldENvbm5lY3RvckFuZFJlY3RSZXF1ZXN0LFxuICBJQ29ubmVjdG9yQW5kUmVjdCxcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7RkNvbm5lY3Rpb25CYXNlLCBGU25hcENvbm5lY3Rpb25Db21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQge0ZOb2RlSW5wdXREaXJlY3RpdmUsIEZOb2RlT3V0cHV0RGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtJUG9pbnR9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHtGTWVkaWF0b3J9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtGQ29tcG9uZW50c1N0b3JlfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHtJRlJlYXNzaWduQ29ubmVjdGlvbkRyYWdSZXN1bHR9IGZyb20gJy4vaS1mLXJlYXNzaWduLWNvbm5lY3Rpb24tZHJhZy1yZXN1bHQnO1xuaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lGUmVhc3NpZ25IYW5kbGVyLCByb3VuZGVkUmVjdEZyb21Qb2ludH0gZnJvbSBcIi4vaS1mLXJlYXNzaWduLWhhbmRsZXJcIjtcbmltcG9ydCB7RlJlYXNzaWduVGFyZ2V0RHJhZ0hhbmRsZXJ9IGZyb20gXCIuL2YtcmVhc3NpZ24tdGFyZ2V0LmRyYWctaGFuZGxlclwiO1xuaW1wb3J0IHtGUmVhc3NpZ25Tb3VyY2VEcmFnSGFuZGxlcn0gZnJvbSBcIi4vZi1yZWFzc2lnbi1zb3VyY2UuZHJhZy1oYW5kbGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBGUmVhc3NpZ25Db25uZWN0aW9uRHJhZ0hhbmRsZXIgaW1wbGVtZW50cyBJRkRyYWdIYW5kbGVyIHtcblxuICBwdWJsaWMgZkV2ZW50VHlwZSA9ICdyZWFzc2lnbi1jb25uZWN0aW9uJztcbiAgcHVibGljIGZEYXRhOiBhbnk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZlJlc3VsdDogRkRyYWdIYW5kbGVyUmVzdWx0PElGUmVhc3NpZ25Db25uZWN0aW9uRHJhZ1Jlc3VsdD47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZNZWRpYXRvcjogRk1lZGlhdG9yO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZTogRkNvbXBvbmVudHNTdG9yZTtcblxuICBwcml2YXRlIGdldCBfZlNuYXBDb25uZWN0aW9uKCk6IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZTbmFwQ29ubmVjdGlvbiBhcyBGU25hcENvbm5lY3Rpb25Db21wb25lbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBfc291cmNlQ29ubmVjdG9yKCk6IEZOb2RlT3V0cHV0RGlyZWN0aXZlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9zdG9yZS5mT3V0cHV0cy5maW5kKCh4KSA9PiB4LmZJZCA9PT0gdGhpcy5fY29ubmVjdGlvbi5mT3V0cHV0SWQpO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gb3V0cHV0IG5vdCBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0IGFzIEZOb2RlT3V0cHV0RGlyZWN0aXZlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3RhcmdldENvbm5lY3RvcigpOiBGTm9kZUlucHV0RGlyZWN0aXZlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9zdG9yZS5mSW5wdXRzLmZpbmQoKHgpID0+IHguZklkID09PSB0aGlzLl9jb25uZWN0aW9uLmZJbnB1dElkKTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb25uZWN0aW9uIGlucHV0IG5vdCBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0IGFzIEZOb2RlSW5wdXREaXJlY3RpdmU7XG4gIH1cblxuICBwcml2YXRlIGdldCBfc291cmNlQ29ubmVjdG9yQW5kUmVjdCgpOiBJQ29ubmVjdG9yQW5kUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JBbmRSZWN0PihuZXcgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QodGhpcy5fc291cmNlQ29ubmVjdG9yKSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBfdGFyZ2V0Q29ubmVjdG9yQW5kUmVjdCgpOiBJQ29ubmVjdG9yQW5kUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JBbmRSZWN0PihuZXcgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QodGhpcy5fdGFyZ2V0Q29ubmVjdG9yKSk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFzc2lnbkhhbmRsZXIhOiBJRlJlYXNzaWduSGFuZGxlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2Nvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSxcbiAgICBwcml2YXRlIF9pc1RhcmdldERyYWdIYW5kbGU6IGJvb2xlYW5cbiAgKSB7XG4gICAgdGhpcy5fZlJlc3VsdCA9IF9pbmplY3Rvci5nZXQoRkRyYWdIYW5kbGVyUmVzdWx0KTtcbiAgICB0aGlzLl9mTWVkaWF0b3IgPSBfaW5qZWN0b3IuZ2V0KEZNZWRpYXRvcik7XG4gICAgdGhpcy5fc3RvcmUgPSBfaW5qZWN0b3IuZ2V0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gICAgdGhpcy5mRGF0YSA9IHtcbiAgICAgIGZDb25uZWN0aW9uSWQ6IHRoaXMuX2Nvbm5lY3Rpb24uZklkKClcbiAgICB9O1xuXG4gICAgdGhpcy5fcmVhc3NpZ25IYW5kbGVyID0gdGhpcy5faXNUYXJnZXREcmFnSGFuZGxlID8gdGhpcy5fdGFyZ2V0RHJhZ0hhbmRsZXIoKSA6IHRoaXMuX3NvdXJjZURyYWdIYW5kbGVyKCk7XG4gIH1cblxuICBwcml2YXRlIF9zb3VyY2VEcmFnSGFuZGxlcigpOiBGUmVhc3NpZ25Tb3VyY2VEcmFnSGFuZGxlciB7XG4gICAgcmV0dXJuIG5ldyBGUmVhc3NpZ25Tb3VyY2VEcmFnSGFuZGxlcih0aGlzLl9mTWVkaWF0b3IsIHRoaXMuX2Nvbm5lY3Rpb24sIHRoaXMuX3NvdXJjZUNvbm5lY3RvckFuZFJlY3QsIHRoaXMuX3RhcmdldENvbm5lY3RvckFuZFJlY3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdGFyZ2V0RHJhZ0hhbmRsZXIoKTogRlJlYXNzaWduVGFyZ2V0RHJhZ0hhbmRsZXIge1xuICAgIHJldHVybiBuZXcgRlJlYXNzaWduVGFyZ2V0RHJhZ0hhbmRsZXIodGhpcy5fZk1lZGlhdG9yLCB0aGlzLl9jb25uZWN0aW9uLCB0aGlzLl9zb3VyY2VDb25uZWN0b3JBbmRSZWN0LCB0aGlzLl90YXJnZXRDb25uZWN0b3JBbmRSZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuX3JlYXNzaWduSGFuZGxlci5tYXJrQ29ubmVjdGFibGVDb25uZWN0b3IoKTtcbiAgICB0aGlzLl9yZWFzc2lnbkhhbmRsZXIuaW5pdGlhbGl6ZVNuYXBDb25uZWN0aW9uKHRoaXMuX2ZTbmFwQ29ubmVjdGlvbik7XG5cbiAgICB0aGlzLl9mUmVzdWx0LnNldERhdGEoe1xuICAgICAgaXNUYXJnZXREcmFnSGFuZGxlOiB0aGlzLl9pc1RhcmdldERyYWdIYW5kbGUsXG4gICAgICBzb3VyY2VDb25uZWN0b3JSZWN0OiByb3VuZGVkUmVjdEZyb21Qb2ludCh0aGlzLl9jb25uZWN0aW9uLmxpbmUucG9pbnQxKSxcbiAgICAgIHRhcmdldENvbm5lY3RvclJlY3Q6IHJvdW5kZWRSZWN0RnJvbVBvaW50KHRoaXMuX2Nvbm5lY3Rpb24ubGluZS5wb2ludDIpLFxuICAgICAgY29ubmVjdGFibGVDb25uZWN0b3JzOiB0aGlzLl9yZWFzc2lnbkhhbmRsZXIuZ2V0Q29ubmVjdGFibGVDb25uZWN0b3JzKCksXG4gICAgICBmQ29ubmVjdGlvbjogdGhpcy5fY29ubmVjdGlvblxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fcmVhc3NpZ25IYW5kbGVyLm9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZSk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVhc3NpZ25IYW5kbGVyLm9uUG9pbnRlclVwKCk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.event.mjs
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
export class FReassignConnectionEvent {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
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,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZWFzc2lnbi1jb25uZWN0aW9uLmV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWNvbm5lY3Rpb24vZi1yZWFzc2lnbi1jb25uZWN0aW9uL2YtcmVhc3NpZ24tY29ubmVjdGlvbi5ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sd0JBQXdCO0lBRzFCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFSVCxZQUNTLFlBQW9CLEVBQ3BCLGdCQUF5QixFQUN6QixnQkFBeUIsRUFDekIsV0FBbUIsRUFDbkIsV0FBK0IsRUFDL0IsV0FBbUIsRUFDbkIsV0FBK0IsRUFDL0IsU0FBaUI7UUFQakIsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFTO1FBQ3pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUztRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFFMUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJUG9pbnR9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5leHBvcnQgY2xhc3MgRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29ubmVjdGlvbklkOiBzdHJpbmcsXG4gICAgcHVibGljIGlzU291cmNlUmVhc3NpZ246IGJvb2xlYW4sXG4gICAgcHVibGljIGlzVGFyZ2V0UmVhc3NpZ246IGJvb2xlYW4sXG4gICAgcHVibGljIG9sZFNvdXJjZUlkOiBzdHJpbmcsXG4gICAgcHVibGljIG5ld1NvdXJjZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcHVibGljIG9sZFRhcmdldElkOiBzdHJpbmcsXG4gICAgcHVibGljIG5ld1RhcmdldElkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcHVibGljIGRyb3BQb2ludDogSVBvaW50LFxuICApIHtcbiAgfVxufVxuIl19
|
package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs
ADDED
|
@@ -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==
|