@foblex/flow 18.2.1 → 18.4.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/AI.md +69 -0
- package/README.md +40 -3
- package/STYLING.md +35 -0
- package/domain/f-connection/create-connection-markers/create-connection-markers.d.ts +3 -2
- package/domain/f-connection/index.d.ts +1 -0
- package/domain/f-connection/providers.d.ts +2 -1
- package/domain/f-connection/redraw-connections/redraw-connections.d.ts +3 -0
- package/domain/f-connection/resolve-connection-endpoint-rotation-context/index.d.ts +2 -0
- package/domain/f-connection/resolve-connection-endpoint-rotation-context/resolve-connection-endpoint-rotation-context-request.d.ts +8 -0
- package/domain/f-connection/resolve-connection-endpoint-rotation-context/resolve-connection-endpoint-rotation-context.d.ts +10 -0
- package/domain/f-draggable/on-pointer-move/on-pointer-move-request.d.ts +1 -1
- package/domain/f-draggable/on-pointer-move/on-pointer-move.d.ts +1 -0
- package/domain/get-normalized-connector-rect/get-normalized-connector-rect.d.ts +8 -0
- package/domain/providers.d.ts +1 -1
- package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.mjs +33 -6
- package/esm2022/domain/f-connection/index.mjs +2 -1
- package/esm2022/domain/f-connection/providers.mjs +3 -1
- package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +51 -4
- package/esm2022/domain/f-connection/resolve-connection-endpoint-rotation-context/index.mjs +3 -0
- package/esm2022/domain/f-connection/resolve-connection-endpoint-rotation-context/resolve-connection-endpoint-rotation-context-request.mjs +8 -0
- package/esm2022/domain/f-connection/resolve-connection-endpoint-rotation-context/resolve-connection-endpoint-rotation-context.mjs +35 -0
- package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move-request.mjs +1 -1
- package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.mjs +6 -2
- package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect.mjs +33 -3
- package/esm2022/f-auto-pan/f-auto-pan-base.mjs +11 -0
- package/esm2022/f-auto-pan/f-auto-pan.mjs +38 -0
- package/esm2022/f-auto-pan/index.mjs +4 -0
- package/esm2022/f-auto-pan/providers.mjs +3 -0
- package/esm2022/f-canvas/f-canvas.component.mjs +2 -2
- package/esm2022/f-connection/f-connection/f-connection.component.mjs +6 -6
- package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +6 -7
- package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +6 -7
- package/esm2022/f-connection/providers.mjs +8 -4
- package/esm2022/f-connection-v2/components/connection-content/f-connection-content.mjs +18 -4
- package/esm2022/f-connection-v2/components/connection-gradient/components/index.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer.mjs +17 -0
- package/esm2022/f-connection-v2/components/connection-gradient/components/render/index.mjs +3 -0
- package/esm2022/f-connection-v2/components/connection-gradient/components/render/models/f-connection-gradient-renderer-base.mjs +81 -0
- package/esm2022/f-connection-v2/components/connection-gradient/components/render/models/index.mjs +2 -0
- package/esm2022/f-connection-v2/components/connection-gradient/f-connection-gradient.mjs +14 -46
- package/esm2022/f-connection-v2/components/connection-gradient/index.mjs +2 -1
- package/esm2022/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.mjs +2 -3
- package/esm2022/f-connection-v2/components/connection-path/f-connection-path.mjs +11 -7
- package/esm2022/f-connection-v2/components/f-connection-base.mjs +13 -9
- package/esm2022/f-connection-v2/models/f-connection-components-parent.mjs +1 -1
- package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.mjs +6 -2
- package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder.mjs +3 -1
- package/esm2022/f-connection-v2/utils/connection-behaviour/models/i-calculate-behavior-request.mjs +1 -1
- package/esm2022/f-connection-v2/utils/connection-behaviour/utils/floating-behavior.mjs +8 -8
- package/esm2022/f-connection-v2/utils/connection-behaviour/utils/get-rotated-rounded-rect-intersection.mjs +35 -0
- package/esm2022/f-connection-v2/utils/create-gradient-dom-identifier.mjs +3 -3
- package/esm2022/f-connection-v2/utils/create-gradient-dom-url.mjs +3 -3
- package/esm2022/f-connection-worker/features/calculate-connection-worker-payload-item/calculate-connection-worker-payload-item.mjs +13 -1
- package/esm2022/f-connection-worker/features/ensure-connection-worker/ensure-connection-worker.mjs +11 -4
- package/esm2022/f-connection-worker/features/is-connection-worker-enabled/is-connection-worker-enabled.mjs +3 -2
- package/esm2022/f-connection-worker/model/f-connection-worker.mjs +5 -1
- package/esm2022/f-connection-worker/model/i-f-connection-worker-rect.mjs +1 -1
- package/esm2022/f-connection-worker/model/i-f-connection-worker-request-item.mjs +1 -1
- package/esm2022/f-connection-worker/worker/connection-worker-runtime.mjs +247 -0
- package/esm2022/f-draggable/auto-pan/auto-pan.utils.mjs +58 -0
- package/esm2022/f-draggable/auto-pan/index.mjs +7 -0
- package/esm2022/f-draggable/auto-pan/providers.mjs +5 -0
- package/esm2022/f-draggable/auto-pan/run-auto-pan-frame/index.mjs +3 -0
- package/esm2022/f-draggable/auto-pan/run-auto-pan-frame/run-auto-pan-frame-request.mjs +4 -0
- package/esm2022/f-draggable/auto-pan/run-auto-pan-frame/run-auto-pan-frame.mjs +97 -0
- package/esm2022/f-draggable/auto-pan/stop-auto-pan/index.mjs +3 -0
- package/esm2022/f-draggable/auto-pan/stop-auto-pan/stop-auto-pan-request.mjs +4 -0
- package/esm2022/f-draggable/auto-pan/stop-auto-pan/stop-auto-pan.mjs +32 -0
- package/esm2022/f-draggable/auto-pan/stored-pointer-event.mjs +25 -0
- package/esm2022/f-draggable/auto-pan/sync-auto-pan/index.mjs +3 -0
- package/esm2022/f-draggable/auto-pan/sync-auto-pan/sync-auto-pan-request.mjs +4 -0
- package/esm2022/f-draggable/auto-pan/sync-auto-pan/sync-auto-pan.mjs +75 -0
- package/esm2022/f-draggable/connection/create-connection/create-connection-handler/create-connection-handler.mjs +7 -4
- package/esm2022/f-draggable/connection/reassign-connection/reassign-connection-handler/reassign-connection-source-handler.mjs +7 -4
- package/esm2022/f-draggable/connection/reassign-connection/reassign-connection-handler/reassign-connection-target-handler.mjs +7 -4
- package/esm2022/f-draggable/drag-canvas/drag-canvas-handler/drag-canvas-handler.mjs +6 -3
- package/esm2022/f-draggable/drag-node/drag-node-dependent-connection-handlers/drag-node-connection-handler-base.mjs +6 -3
- package/esm2022/f-draggable/f-draggable-data-context.mjs +14 -1
- package/esm2022/f-draggable/f-draggable.directive.mjs +4 -1
- package/esm2022/f-draggable/index.mjs +2 -1
- package/esm2022/f-draggable/providers.mjs +3 -1
- package/esm2022/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-handler-base.mjs +6 -3
- package/esm2022/f-flow/f-flow.component.mjs +2 -2
- package/esm2022/f-flow.module.mjs +31 -26
- package/esm2022/f-storage/f-components-store.mjs +3 -1
- package/esm2022/f-zoom/f-zoom.directive.mjs +9 -11
- package/esm2022/f-zoom/wheel-zoom.utils.mjs +34 -0
- package/esm2022/public-api.mjs +2 -1
- package/f-auto-pan/f-auto-pan-base.d.ts +11 -0
- package/f-auto-pan/f-auto-pan.d.ts +13 -0
- package/f-auto-pan/index.d.ts +3 -0
- package/f-auto-pan/providers.d.ts +2 -0
- package/f-connection/f-connection/f-connection.component.d.ts +1 -1
- package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +1 -1
- package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +1 -1
- package/f-connection/providers.d.ts +3 -3
- package/f-connection-v2/components/connection-gradient/components/index.d.ts +1 -0
- package/f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer.d.ts +8 -0
- package/f-connection-v2/components/connection-gradient/components/render/index.d.ts +2 -0
- package/f-connection-v2/components/connection-gradient/components/render/models/f-connection-gradient-renderer-base.d.ts +25 -0
- package/f-connection-v2/components/connection-gradient/components/render/models/index.d.ts +1 -0
- package/f-connection-v2/components/connection-gradient/f-connection-gradient.d.ts +3 -11
- package/f-connection-v2/components/connection-gradient/index.d.ts +1 -0
- package/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.d.ts +3 -5
- package/f-connection-v2/components/connection-path/f-connection-path.d.ts +3 -2
- package/f-connection-v2/components/f-connection-base.d.ts +7 -4
- package/f-connection-v2/models/f-connection-components-parent.d.ts +0 -2
- package/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.d.ts +4 -1
- package/f-connection-v2/utils/connection-behaviour/models/i-calculate-behavior-request.d.ts +7 -1
- package/f-connection-v2/utils/connection-behaviour/utils/floating-behavior.d.ts +1 -1
- package/f-connection-v2/utils/connection-behaviour/utils/get-rotated-rounded-rect-intersection.d.ts +3 -0
- package/f-connection-v2/utils/create-gradient-dom-identifier.d.ts +1 -1
- package/f-connection-v2/utils/create-gradient-dom-url.d.ts +1 -1
- package/f-connection-worker/features/calculate-connection-worker-payload-item/calculate-connection-worker-payload-item.d.ts +1 -0
- package/f-connection-worker/model/f-connection-worker.d.ts +1 -0
- package/f-connection-worker/model/i-f-connection-worker-rect.d.ts +4 -0
- package/f-connection-worker/model/i-f-connection-worker-request-item.d.ts +2 -0
- package/f-connection-worker/worker/connection-worker-runtime.d.ts +11 -0
- package/f-draggable/auto-pan/auto-pan.utils.d.ts +6 -0
- package/f-draggable/auto-pan/index.d.ts +6 -0
- package/f-draggable/auto-pan/providers.d.ts +4 -0
- package/f-draggable/auto-pan/run-auto-pan-frame/index.d.ts +2 -0
- package/f-draggable/auto-pan/run-auto-pan-frame/run-auto-pan-frame-request.d.ts +3 -0
- package/f-draggable/auto-pan/run-auto-pan-frame/run-auto-pan-frame.d.ts +21 -0
- package/f-draggable/auto-pan/stop-auto-pan/index.d.ts +2 -0
- package/f-draggable/auto-pan/stop-auto-pan/stop-auto-pan-request.d.ts +3 -0
- package/f-draggable/auto-pan/stop-auto-pan/stop-auto-pan.d.ts +10 -0
- package/f-draggable/auto-pan/stored-pointer-event.d.ts +12 -0
- package/f-draggable/auto-pan/sync-auto-pan/index.d.ts +2 -0
- package/f-draggable/auto-pan/sync-auto-pan/sync-auto-pan-request.d.ts +3 -0
- package/f-draggable/auto-pan/sync-auto-pan/sync-auto-pan.d.ts +19 -0
- package/f-draggable/connection/create-connection/create-connection-handler/create-connection-handler.d.ts +1 -0
- package/f-draggable/connection/reassign-connection/reassign-connection-handler/reassign-connection-source-handler.d.ts +1 -0
- package/f-draggable/connection/reassign-connection/reassign-connection-handler/reassign-connection-target-handler.d.ts +1 -0
- package/f-draggable/drag-node/drag-node-dependent-connection-handlers/drag-node-connection-handler-base.d.ts +1 -0
- package/f-draggable/f-draggable-data-context.d.ts +7 -1
- package/f-draggable/index.d.ts +1 -0
- package/f-draggable/providers.d.ts +1 -1
- package/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-handler-base.d.ts +1 -0
- package/f-flow.module.d.ts +29 -27
- package/f-storage/f-components-store.d.ts +2 -0
- package/f-zoom/f-zoom.directive.d.ts +0 -1
- package/f-zoom/wheel-zoom.utils.d.ts +3 -0
- package/fesm2022/foblex-flow.mjs +8048 -7134
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +7 -7
- package/public-api.d.ts +1 -0
- package/schematics/ng-add/index.js +63 -2
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/shared/foblex-dependencies.js +1 -1
- package/styles/_index.scss +31 -0
- package/styles/default.scss +4 -0
- package/styles/domains/_connection.scss +175 -0
- package/styles/domains/_connector.scss +150 -0
- package/styles/domains/_external-item.scss +44 -0
- package/styles/domains/_flow-canvas.scss +41 -0
- package/styles/domains/_node-group.scss +230 -0
- package/styles/domains/_plugins.scss +100 -0
- package/styles/tokens/_ff-aliases.scss +117 -0
- package/styles/tokens/_primitive.scss +86 -0
- package/styles/tokens/_semantic.scss +131 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
4
|
+
import { Point, PointExtensions } from '@foblex/2d';
|
|
5
|
+
import { RunAutoPanFrameRequest } from './run-auto-pan-frame-request';
|
|
6
|
+
import { FComponentsStore, INSTANCES } from '../../../f-storage';
|
|
7
|
+
import { FDraggableDataContext } from '../../f-draggable-data-context';
|
|
8
|
+
import { calculateAutoPanDelta, rebaseAutoPanPointerDownPosition, resolveAutoPanMode, } from '../auto-pan.utils';
|
|
9
|
+
import { StopAutoPanRequest } from '../stop-auto-pan';
|
|
10
|
+
import { SyncAutoPanRequest } from '../sync-auto-pan';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
let RunAutoPanFrame = class RunAutoPanFrame {
|
|
13
|
+
_mediator = inject(FMediator);
|
|
14
|
+
_store = inject(FComponentsStore);
|
|
15
|
+
_dragContext = inject(FDraggableDataContext);
|
|
16
|
+
handle(_request) {
|
|
17
|
+
const mode = this._getAutoPanMode();
|
|
18
|
+
if (!this._canAutoPan(mode)) {
|
|
19
|
+
this._mediator.execute(new StopAutoPanRequest());
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const delta = this._getAutoPanDelta();
|
|
23
|
+
if (!delta.x && !delta.y) {
|
|
24
|
+
this._mediator.execute(new StopAutoPanRequest());
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
this._applyCanvasDelta(delta, mode);
|
|
28
|
+
this._replayLastPointerMove();
|
|
29
|
+
this._mediator.execute(new SyncAutoPanRequest());
|
|
30
|
+
}
|
|
31
|
+
_applyCanvasDelta(delta, mode) {
|
|
32
|
+
const transform = this._store.transform;
|
|
33
|
+
if (mode === 'rebase') {
|
|
34
|
+
this._dragContext.onPointerDownPosition = rebaseAutoPanPointerDownPosition(this._dragContext.onPointerDownPosition, delta, this._dragContext.onPointerDownScale || transform.scale || 1);
|
|
35
|
+
}
|
|
36
|
+
transform.position = Point.fromPoint(transform.position).add(delta);
|
|
37
|
+
this._store.fCanvas?.redraw();
|
|
38
|
+
this._dragContext.isAutoPanCanvasMoved = true;
|
|
39
|
+
}
|
|
40
|
+
_replayLastPointerMove() {
|
|
41
|
+
const event = this._dragContext.lastPointerEvent;
|
|
42
|
+
if (!event) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const difference = this._getPointerPositionInCanvas(event)
|
|
46
|
+
.div(this._dragContext.onPointerDownScale)
|
|
47
|
+
.sub(this._dragContext.onPointerDownPosition);
|
|
48
|
+
this._dragContext.draggableItems.forEach((item) => {
|
|
49
|
+
item.onPointerMove({ ...difference }, event);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
_getPointerPositionInCanvas(event) {
|
|
53
|
+
return Point.fromPoint(event.getPosition()).elementTransform(this._store.flowHost);
|
|
54
|
+
}
|
|
55
|
+
_canAutoPan(mode) {
|
|
56
|
+
return (!!this._store.fFlow &&
|
|
57
|
+
!!this._store.fCanvas &&
|
|
58
|
+
!!this._store.fDraggable?.isDragStarted &&
|
|
59
|
+
!!this._autoPan() &&
|
|
60
|
+
!!mode &&
|
|
61
|
+
this._edgeThreshold() > 0 &&
|
|
62
|
+
this._speed() > 0);
|
|
63
|
+
}
|
|
64
|
+
_getAutoPanMode() {
|
|
65
|
+
return resolveAutoPanMode(this._dragContext.draggableItems.map((x) => x.getEvent().kind));
|
|
66
|
+
}
|
|
67
|
+
_getAutoPanDelta() {
|
|
68
|
+
const pointerPosition = this._dragContext.lastPointerPosition;
|
|
69
|
+
const flowHost = this._store.fFlow?.hostElement;
|
|
70
|
+
if (!pointerPosition || !flowHost) {
|
|
71
|
+
return PointExtensions.initialize();
|
|
72
|
+
}
|
|
73
|
+
return calculateAutoPanDelta(pointerPosition, flowHost.getBoundingClientRect(), this._edgeThreshold(), this._speed(), this._acceleration());
|
|
74
|
+
}
|
|
75
|
+
_edgeThreshold() {
|
|
76
|
+
return Math.max(0, this._autoPan()?.fEdgeThreshold() ?? 0);
|
|
77
|
+
}
|
|
78
|
+
_speed() {
|
|
79
|
+
return Math.max(0, this._autoPan()?.fSpeed() ?? 0);
|
|
80
|
+
}
|
|
81
|
+
_acceleration() {
|
|
82
|
+
return !!this._autoPan()?.fAcceleration();
|
|
83
|
+
}
|
|
84
|
+
_autoPan() {
|
|
85
|
+
return this._store.instances.get(INSTANCES.AUTO_PAN);
|
|
86
|
+
}
|
|
87
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RunAutoPanFrame, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
88
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RunAutoPanFrame });
|
|
89
|
+
};
|
|
90
|
+
RunAutoPanFrame = __decorate([
|
|
91
|
+
FExecutionRegister(RunAutoPanFrameRequest)
|
|
92
|
+
], RunAutoPanFrame);
|
|
93
|
+
export { RunAutoPanFrame };
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RunAutoPanFrame, decorators: [{
|
|
95
|
+
type: Injectable
|
|
96
|
+
}] });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWF1dG8tcGFuLWZyYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9hdXRvLXBhbi9ydW4tYXV0by1wYW4tZnJhbWUvcnVuLWF1dG8tcGFuLWZyYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFVLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZ0NBQWdDLEVBQ2hDLGtCQUFrQixHQUVuQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUkvQyxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFlO0lBQ1QsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbEMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRXZELE1BQU0sQ0FBQyxRQUFnQztRQUM1QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEMsSUFBSSxD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QzVDLENBQUM7SUFFTyxRQUFRO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7d0dBM0dVLGVBQWU7NEdBQWYsZUFBZTs7QUFBZixlQUFlO0lBRDNCLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDO0dBQzlCLGVBQWUsQ0E0RzNCOzs0RkE1R1ksZUFBZTtrQkFGM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IElQb2ludCwgUG9pbnQsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgUnVuQXV0b1BhbkZyYW1lUmVxdWVzdCB9IGZyb20gJy4vcnVuLWF1dG8tcGFuLWZyYW1lLXJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSwgSU5TVEFOQ0VTIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQge1xuICBjYWxjdWxhdGVBdXRvUGFuRGVsdGEsXG4gIHJlYmFzZUF1dG9QYW5Qb2ludGVyRG93blBvc2l0aW9uLFxuICByZXNvbHZlQXV0b1Bhbk1vZGUsXG4gIFRBdXRvUGFuTW9kZSxcbn0gZnJvbSAnLi4vYXV0by1wYW4udXRpbHMnO1xuaW1wb3J0IHsgSVBvaW50ZXJFdmVudCB9IGZyb20gJy4uLy4uLy4uL2RyYWctdG9vbGtpdCc7XG5pbXBvcnQgeyBTdG9wQXV0b1BhblJlcXVlc3QgfSBmcm9tICcuLi9zdG9wLWF1dG8tcGFuJztcbmltcG9ydCB7IFN5bmNBdXRvUGFuUmVxdWVzdCB9IGZyb20gJy4uL3N5bmMtYXV0by1wYW4nO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKFJ1bkF1dG9QYW5GcmFtZVJlcXVlc3QpXG5leHBvcnQgY2xhc3MgUnVuQXV0b1BhbkZyYW1lIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxSdW5BdXRvUGFuRnJhbWVSZXF1ZXN0LCB2b2lkPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kcmFnQ29udGV4dCA9IGluamVjdChGRHJhZ2dhYmxlRGF0YUNvbnRleHQpO1xuXG4gIHB1YmxpYyBoYW5kbGUoX3JlcXVlc3Q6IFJ1bkF1dG9QYW5GcmFtZVJlcXVlc3QpOiB2b2lkIHtcbiAgICBjb25zdCBtb2RlID0gdGhpcy5fZ2V0QXV0b1Bhbk1vZGUoKTtcbiAgICBpZiAoIXRoaXMuX2NhbkF1dG9QYW4obW9kZSkpIHtcbiAgICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFN0b3BBdXRvUGFuUmVxdWVzdCgpKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbHRhID0gdGhpcy5fZ2V0QXV0b1BhbkRlbHRhKCk7XG4gICAgaWYgKCFkZWx0YS54ICYmICFkZWx0YS55KSB7XG4gICAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBTdG9wQXV0b1BhblJlcXVlc3QoKSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9hcHBseUNhbnZhc0RlbHRhKGRlbHRhLCBtb2RlKTtcbiAgICB0aGlzLl9yZXBsYXlMYXN0UG9pbnRlck1vdmUoKTtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBTeW5jQXV0b1BhblJlcXVlc3QoKSk7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseUNhbnZhc0RlbHRhKGRlbHRhOiBJUG9pbnQsIG1vZGU6IFRBdXRvUGFuTW9kZSk6IHZvaWQge1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IHRoaXMuX3N0b3JlLnRyYW5zZm9ybTtcblxuICAgIGlmIChtb2RlID09PSAncmViYXNlJykge1xuICAgICAgdGhpcy5fZHJhZ0NvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uID0gcmViYXNlQXV0b1BhblBvaW50ZXJEb3duUG9zaXRpb24oXG4gICAgICAgIHRoaXMuX2RyYWdDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbixcbiAgICAgICAgZGVsdGEsXG4gICAgICAgIHRoaXMuX2RyYWdDb250ZXh0Lm9uUG9pbnRlckRvd25TY2FsZSB8fCB0cmFuc2Zvcm0uc2NhbGUgfHwgMSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdHJhbnNmb3JtLnBvc2l0aW9uID0gUG9pbnQuZnJvbVBvaW50KHRyYW5zZm9ybS5wb3NpdGlvbikuYWRkKGRlbHRhKTtcbiAgICB0aGlzLl9zdG9yZS5mQ2FudmFzPy5yZWRyYXcoKTtcbiAgICB0aGlzLl9kcmFnQ29udGV4dC5pc0F1dG9QYW5DYW52YXNNb3ZlZCA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYXlMYXN0UG9pbnRlck1vdmUoKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnQgPSB0aGlzLl9kcmFnQ29udGV4dC5sYXN0UG9pbnRlckV2ZW50O1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkaWZmZXJlbmNlID0gdGhpcy5fZ2V0UG9pbnRlclBvc2l0aW9uSW5DYW52YXMoZXZlbnQpXG4gICAgICAuZGl2KHRoaXMuX2RyYWdDb250ZXh0Lm9uUG9pbnRlckRvd25TY2FsZSlcbiAgICAgIC5zdWIodGhpcy5fZHJhZ0NvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uKTtcblxuICAgIHRoaXMuX2RyYWdDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0ub25Qb2ludGVyTW92ZSh7IC4uLmRpZmZlcmVuY2UgfSwgZXZlbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UG9pbnRlclBvc2l0aW9uSW5DYW52YXMoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiBQb2ludCB7XG4gICAgcmV0dXJuIFBvaW50LmZyb21Qb2ludChldmVudC5nZXRQb3NpdGlvbigpKS5lbGVtZW50VHJhbnNmb3JtKHRoaXMuX3N0b3JlLmZsb3dIb3N0KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbkF1dG9QYW4obW9kZTogVEF1dG9QYW5Nb2RlIHwgbnVsbCk6IG1vZGUgaXMgVEF1dG9QYW5Nb2RlIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLl9zdG9yZS5mRmxvdyAmJlxuICAgICAgISF0aGlzLl9zdG9yZS5mQ2FudmFzICYmXG4gICAgICAhIXRoaXMuX3N0b3JlLmZEcmFnZ2FibGU/LmlzRHJhZ1N0YXJ0ZWQgJiZcbiAgICAgICEhdGhpcy5fYXV0b1BhbigpICYmXG4gICAgICAhIW1vZGUgJiZcbiAgICAgIHRoaXMuX2VkZ2VUaHJlc2hvbGQoKSA+IDAgJiZcbiAgICAgIHRoaXMuX3NwZWVkKCkgPiAwXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEF1dG9QYW5Nb2RlKCk6IFRBdXRvUGFuTW9kZSB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlQXV0b1Bhbk1vZGUodGhpcy5fZHJhZ0NvbnRleHQuZHJhZ2dhYmxlSXRlbXMubWFwKCh4KSA9PiB4LmdldEV2ZW50KCkua2luZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QXV0b1BhbkRlbHRhKCk6IElQb2ludCB7XG4gICAgY29uc3QgcG9pbnRlclBvc2l0aW9uID0gdGhpcy5fZHJhZ0NvbnRleHQubGFzdFBvaW50ZXJQb3NpdGlvbjtcbiAgICBjb25zdCBmbG93SG9zdCA9IHRoaXMuX3N0b3JlLmZGbG93Py5ob3N0RWxlbWVudDtcblxuICAgIGlmICghcG9pbnRlclBvc2l0aW9uIHx8ICFmbG93SG9zdCkge1xuICAgICAgcmV0dXJuIFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbGN1bGF0ZUF1dG9QYW5EZWx0YShcbiAgICAgIHBvaW50ZXJQb3NpdGlvbixcbiAgICAgIGZsb3dIb3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgdGhpcy5fZWRnZVRocmVzaG9sZCgpLFxuICAgICAgdGhpcy5fc3BlZWQoKSxcbiAgICAgIHRoaXMuX2FjY2VsZXJhdGlvbigpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9lZGdlVGhyZXNob2xkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWF4KDAsIHRoaXMuX2F1dG9QYW4oKT8uZkVkZ2VUaHJlc2hvbGQoKSA/PyAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NwZWVkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWF4KDAsIHRoaXMuX2F1dG9QYW4oKT8uZlNwZWVkKCkgPz8gMCk7XG4gIH1cblxuICBwcml2YXRlIF9hY2NlbGVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fYXV0b1BhbigpPy5mQWNjZWxlcmF0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIF9hdXRvUGFuKCkge1xuICAgIHJldHVybiB0aGlzLl9zdG9yZS5pbnN0YW5jZXMuZ2V0KElOU1RBTkNFUy5BVVRPX1BBTik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './stop-auto-pan';
|
|
2
|
+
export * from './stop-auto-pan-request';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2F1dG8tcGFuL3N0b3AtYXV0by1wYW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdG9wLWF1dG8tcGFuJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcC1hdXRvLXBhbi1yZXF1ZXN0JztcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export class StopAutoPanRequest {
|
|
2
|
+
static fToken = Symbol('StopAutoPanRequest');
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcC1hdXRvLXBhbi1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9hdXRvLXBhbi9zdG9wLWF1dG8tcGFuL3N0b3AtYXV0by1wYW4tcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU3RvcEF1dG9QYW5SZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnU3RvcEF1dG9QYW5SZXF1ZXN0Jyk7XG59XG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { FExecutionRegister } from '@foblex/mediator';
|
|
4
|
+
import { StopAutoPanRequest } from './stop-auto-pan-request';
|
|
5
|
+
import { FComponentsStore } from '../../../f-storage';
|
|
6
|
+
import { FDraggableDataContext } from '../../f-draggable-data-context';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
let StopAutoPan = class StopAutoPan {
|
|
9
|
+
_store = inject(FComponentsStore);
|
|
10
|
+
_dragContext = inject(FDraggableDataContext);
|
|
11
|
+
handle(_request) {
|
|
12
|
+
if (this._dragContext.autoPanFrameId !== null) {
|
|
13
|
+
cancelAnimationFrame(this._dragContext.autoPanFrameId);
|
|
14
|
+
this._dragContext.autoPanFrameId = null;
|
|
15
|
+
}
|
|
16
|
+
if (!this._dragContext.isAutoPanCanvasMoved) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
this._store.fCanvas?.emitCanvasChangeEvent();
|
|
20
|
+
this._dragContext.isAutoPanCanvasMoved = false;
|
|
21
|
+
}
|
|
22
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StopAutoPan, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StopAutoPan });
|
|
24
|
+
};
|
|
25
|
+
StopAutoPan = __decorate([
|
|
26
|
+
FExecutionRegister(StopAutoPanRequest)
|
|
27
|
+
], StopAutoPan);
|
|
28
|
+
export { StopAutoPan };
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StopAutoPan, decorators: [{
|
|
30
|
+
type: Injectable
|
|
31
|
+
}] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcC1hdXRvLXBhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvYXV0by1wYW4vc3RvcC1hdXRvLXBhbi9zdG9wLWF1dG8tcGFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFJaEUsSUFBTSxXQUFXLEdBQWpCLE1BQU0sV0FBVztJQUNMLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsQyxZQUFZLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFdkQsTUFBTSxDQUFDLFFBQTRCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBQ2pELENBQUM7d0dBaEJVLFdBQVc7NEdBQVgsV0FBVzs7QUFBWCxXQUFXO0lBRHZCLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDO0dBQzFCLFdBQVcsQ0FpQnZCOzs0RkFqQlksV0FBVztrQkFGdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBTdG9wQXV0b1BhblJlcXVlc3QgfSBmcm9tICcuL3N0b3AtYXV0by1wYW4tcmVxdWVzdCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoU3RvcEF1dG9QYW5SZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIFN0b3BBdXRvUGFuIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxTdG9wQXV0b1BhblJlcXVlc3QsIHZvaWQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdDb250ZXh0ID0gaW5qZWN0KEZEcmFnZ2FibGVEYXRhQ29udGV4dCk7XG5cbiAgcHVibGljIGhhbmRsZShfcmVxdWVzdDogU3RvcEF1dG9QYW5SZXF1ZXN0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2RyYWdDb250ZXh0LmF1dG9QYW5GcmFtZUlkICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9kcmFnQ29udGV4dC5hdXRvUGFuRnJhbWVJZCk7XG4gICAgICB0aGlzLl9kcmFnQ29udGV4dC5hdXRvUGFuRnJhbWVJZCA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9kcmFnQ29udGV4dC5pc0F1dG9QYW5DYW52YXNNb3ZlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0b3JlLmZDYW52YXM/LmVtaXRDYW52YXNDaGFuZ2VFdmVudCgpO1xuICAgIHRoaXMuX2RyYWdDb250ZXh0LmlzQXV0b1BhbkNhbnZhc01vdmVkID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { IPointerEvent } from '../../drag-toolkit';
|
|
2
|
+
export class StoredPointerEvent extends IPointerEvent {
|
|
3
|
+
_position;
|
|
4
|
+
_isMouseLeftButton;
|
|
5
|
+
_isMouseRightButton;
|
|
6
|
+
constructor(event) {
|
|
7
|
+
super(event.originalEvent, event.targetElement);
|
|
8
|
+
this._position = event.getPosition();
|
|
9
|
+
this._isMouseLeftButton = event.isMouseLeftButton();
|
|
10
|
+
this._isMouseRightButton = event.isMouseRightButton();
|
|
11
|
+
}
|
|
12
|
+
isMouseLeftButton() {
|
|
13
|
+
return this._isMouseLeftButton;
|
|
14
|
+
}
|
|
15
|
+
isMouseRightButton() {
|
|
16
|
+
return this._isMouseRightButton;
|
|
17
|
+
}
|
|
18
|
+
getPosition() {
|
|
19
|
+
return { ...this._position };
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export function storePointerEvent(event) {
|
|
23
|
+
return new StoredPointerEvent(event);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXBvaW50ZXItZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2F1dG8tcGFuL3N0b3JlZC1wb2ludGVyLWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsYUFBYTtJQUNsQyxTQUFTLENBQVM7SUFDbEIsa0JBQWtCLENBQVU7SUFDNUIsbUJBQW1CLENBQVU7SUFFOUMsWUFBWSxLQUFvQjtRQUM5QixLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFvQjtJQUNwRCxPQUFPLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSVBvaW50ZXJFdmVudCB9IGZyb20gJy4uLy4uL2RyYWctdG9vbGtpdCc7XG5cbmV4cG9ydCBjbGFzcyBTdG9yZWRQb2ludGVyRXZlbnQgZXh0ZW5kcyBJUG9pbnRlckV2ZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfcG9zaXRpb246IElQb2ludDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNNb3VzZUxlZnRCdXR0b246IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzTW91c2VSaWdodEJ1dHRvbjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihldmVudDogSVBvaW50ZXJFdmVudCkge1xuICAgIHN1cGVyKGV2ZW50Lm9yaWdpbmFsRXZlbnQsIGV2ZW50LnRhcmdldEVsZW1lbnQpO1xuXG4gICAgdGhpcy5fcG9zaXRpb24gPSBldmVudC5nZXRQb3NpdGlvbigpO1xuICAgIHRoaXMuX2lzTW91c2VMZWZ0QnV0dG9uID0gZXZlbnQuaXNNb3VzZUxlZnRCdXR0b24oKTtcbiAgICB0aGlzLl9pc01vdXNlUmlnaHRCdXR0b24gPSBldmVudC5pc01vdXNlUmlnaHRCdXR0b24oKTtcbiAgfVxuXG4gIHB1YmxpYyBpc01vdXNlTGVmdEJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNNb3VzZUxlZnRCdXR0b247XG4gIH1cblxuICBwdWJsaWMgaXNNb3VzZVJpZ2h0QnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc01vdXNlUmlnaHRCdXR0b247XG4gIH1cblxuICBwdWJsaWMgZ2V0UG9zaXRpb24oKTogSVBvaW50IHtcbiAgICByZXR1cm4geyAuLi50aGlzLl9wb3NpdGlvbiB9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9yZVBvaW50ZXJFdmVudChldmVudDogSVBvaW50ZXJFdmVudCk6IElQb2ludGVyRXZlbnQge1xuICByZXR1cm4gbmV3IFN0b3JlZFBvaW50ZXJFdmVudChldmVudCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './sync-auto-pan';
|
|
2
|
+
export * from './sync-auto-pan-request';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2F1dG8tcGFuL3N5bmMtYXV0by1wYW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zeW5jLWF1dG8tcGFuJztcbmV4cG9ydCAqIGZyb20gJy4vc3luYy1hdXRvLXBhbi1yZXF1ZXN0JztcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export class SyncAutoPanRequest {
|
|
2
|
+
static fToken = Symbol('SyncAutoPanRequest');
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1hdXRvLXBhbi1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9hdXRvLXBhbi9zeW5jLWF1dG8tcGFuL3N5bmMtYXV0by1wYW4tcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU3luY0F1dG9QYW5SZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnU3luY0F1dG9QYW5SZXF1ZXN0Jyk7XG59XG4iXX0=
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
4
|
+
import { PointExtensions } from '@foblex/2d';
|
|
5
|
+
import { SyncAutoPanRequest } from './sync-auto-pan-request';
|
|
6
|
+
import { StopAutoPanRequest } from '../stop-auto-pan';
|
|
7
|
+
import { RunAutoPanFrameRequest } from '../run-auto-pan-frame';
|
|
8
|
+
import { FComponentsStore, INSTANCES } from '../../../f-storage';
|
|
9
|
+
import { FDraggableDataContext } from '../../f-draggable-data-context';
|
|
10
|
+
import { calculateAutoPanDelta, resolveAutoPanMode } from '../auto-pan.utils';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
let SyncAutoPan = class SyncAutoPan {
|
|
13
|
+
_mediator = inject(FMediator);
|
|
14
|
+
_store = inject(FComponentsStore);
|
|
15
|
+
_dragContext = inject(FDraggableDataContext);
|
|
16
|
+
handle(_request) {
|
|
17
|
+
if (!this._canAutoPan() || !this._hasAutoPanDelta()) {
|
|
18
|
+
this._mediator.execute(new StopAutoPanRequest());
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (this._dragContext.autoPanFrameId !== null) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
this._dragContext.autoPanFrameId = requestAnimationFrame(() => {
|
|
25
|
+
this._dragContext.autoPanFrameId = null;
|
|
26
|
+
this._mediator.execute(new RunAutoPanFrameRequest());
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
_canAutoPan() {
|
|
30
|
+
return (!!this._store.fFlow &&
|
|
31
|
+
!!this._store.fCanvas &&
|
|
32
|
+
!!this._store.fDraggable?.isDragStarted &&
|
|
33
|
+
!!this._autoPan() &&
|
|
34
|
+
!!this._getAutoPanMode() &&
|
|
35
|
+
this._edgeThreshold() > 0 &&
|
|
36
|
+
this._speed() > 0);
|
|
37
|
+
}
|
|
38
|
+
_hasAutoPanDelta() {
|
|
39
|
+
const delta = this._getAutoPanDelta();
|
|
40
|
+
return !!delta.x || !!delta.y;
|
|
41
|
+
}
|
|
42
|
+
_getAutoPanDelta() {
|
|
43
|
+
const pointerPosition = this._dragContext.lastPointerPosition;
|
|
44
|
+
const flowHost = this._store.fFlow?.hostElement;
|
|
45
|
+
if (!pointerPosition || !flowHost) {
|
|
46
|
+
return PointExtensions.initialize();
|
|
47
|
+
}
|
|
48
|
+
return calculateAutoPanDelta(pointerPosition, flowHost.getBoundingClientRect(), this._edgeThreshold(), this._speed(), this._acceleration());
|
|
49
|
+
}
|
|
50
|
+
_getAutoPanMode() {
|
|
51
|
+
return resolveAutoPanMode(this._dragContext.draggableItems.map((x) => x.getEvent().kind));
|
|
52
|
+
}
|
|
53
|
+
_edgeThreshold() {
|
|
54
|
+
return Math.max(0, this._autoPan()?.fEdgeThreshold() ?? 0);
|
|
55
|
+
}
|
|
56
|
+
_speed() {
|
|
57
|
+
return Math.max(0, this._autoPan()?.fSpeed() ?? 0);
|
|
58
|
+
}
|
|
59
|
+
_acceleration() {
|
|
60
|
+
return !!this._autoPan()?.fAcceleration();
|
|
61
|
+
}
|
|
62
|
+
_autoPan() {
|
|
63
|
+
return this._store.instances.get(INSTANCES.AUTO_PAN);
|
|
64
|
+
}
|
|
65
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SyncAutoPan, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
66
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SyncAutoPan });
|
|
67
|
+
};
|
|
68
|
+
SyncAutoPan = __decorate([
|
|
69
|
+
FExecutionRegister(SyncAutoPanRequest)
|
|
70
|
+
], SyncAutoPan);
|
|
71
|
+
export { SyncAutoPan };
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SyncAutoPan, decorators: [{
|
|
73
|
+
type: Injectable
|
|
74
|
+
}] });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1hdXRvLXBhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvYXV0by1wYW4vc3luYy1hdXRvLXBhbi9zeW5jLWF1dG8tcGFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFVLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBSXZFLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFDTCxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsQyxZQUFZLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFdkQsTUFBTSxDQUFDLFFBQTRCO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxTQUFT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QzFCLFdBQVcsQ0E0RXZCOzs0RkE1RVksV0FBVztrQkFGdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IElQb2ludCwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBTeW5jQXV0b1BhblJlcXVlc3QgfSBmcm9tICcuL3N5bmMtYXV0by1wYW4tcmVxdWVzdCc7XG5pbXBvcnQgeyBTdG9wQXV0b1BhblJlcXVlc3QgfSBmcm9tICcuLi9zdG9wLWF1dG8tcGFuJztcbmltcG9ydCB7IFJ1bkF1dG9QYW5GcmFtZVJlcXVlc3QgfSBmcm9tICcuLi9ydW4tYXV0by1wYW4tZnJhbWUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSwgSU5TVEFOQ0VTIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBjYWxjdWxhdGVBdXRvUGFuRGVsdGEsIHJlc29sdmVBdXRvUGFuTW9kZSB9IGZyb20gJy4uL2F1dG8tcGFuLnV0aWxzJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihTeW5jQXV0b1BhblJlcXVlc3QpXG5leHBvcnQgY2xhc3MgU3luY0F1dG9QYW4gaW1wbGVtZW50cyBJRXhlY3V0aW9uPFN5bmNBdXRvUGFuUmVxdWVzdCwgdm9pZD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ0NvbnRleHQgPSBpbmplY3QoRkRyYWdnYWJsZURhdGFDb250ZXh0KTtcblxuICBwdWJsaWMgaGFuZGxlKF9yZXF1ZXN0OiBTeW5jQXV0b1BhblJlcXVlc3QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NhbkF1dG9QYW4oKSB8fCAhdGhpcy5faGFzQXV0b1BhbkRlbHRhKCkpIHtcbiAgICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFN0b3BBdXRvUGFuUmVxdWVzdCgpKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9kcmFnQ29udGV4dC5hdXRvUGFuRnJhbWVJZCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2RyYWdDb250ZXh0LmF1dG9QYW5GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuX2RyYWdDb250ZXh0LmF1dG9QYW5GcmFtZUlkID0gbnVsbDtcbiAgICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFJ1bkF1dG9QYW5GcmFtZVJlcXVlc3QoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jYW5BdXRvUGFuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMuX3N0b3JlLmZGbG93ICYmXG4gICAgICAhIXRoaXMuX3N0b3JlLmZDYW52YXMgJiZcbiAgICAgICEhdGhpcy5fc3RvcmUuZkRyYWdnYWJsZT8uaXNEcmFnU3RhcnRlZCAmJlxuICAgICAgISF0aGlzLl9hdXRvUGFuKCkgJiZcbiAgICAgICEhdGhpcy5fZ2V0QXV0b1Bhbk1vZGUoKSAmJlxuICAgICAgdGhpcy5fZWRnZVRocmVzaG9sZCgpID4gMCAmJlxuICAgICAgdGhpcy5fc3BlZWQoKSA+IDBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFzQXV0b1BhbkRlbHRhKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRlbHRhID0gdGhpcy5fZ2V0QXV0b1BhbkRlbHRhKCk7XG5cbiAgICByZXR1cm4gISFkZWx0YS54IHx8ICEhZGVsdGEueTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEF1dG9QYW5EZWx0YSgpOiBJUG9pbnQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbiA9IHRoaXMuX2RyYWdDb250ZXh0Lmxhc3RQb2ludGVyUG9zaXRpb247XG4gICAgY29uc3QgZmxvd0hvc3QgPSB0aGlzLl9zdG9yZS5mRmxvdz8uaG9zdEVsZW1lbnQ7XG5cbiAgICBpZiAoIXBvaW50ZXJQb3NpdGlvbiB8fCAhZmxvd0hvc3QpIHtcbiAgICAgIHJldHVybiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBjYWxjdWxhdGVBdXRvUGFuRGVsdGEoXG4gICAgICBwb2ludGVyUG9zaXRpb24sXG4gICAgICBmbG93SG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgIHRoaXMuX2VkZ2VUaHJlc2hvbGQoKSxcbiAgICAgIHRoaXMuX3NwZWVkKCksXG4gICAgICB0aGlzLl9hY2NlbGVyYXRpb24oKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QXV0b1Bhbk1vZGUoKSB7XG4gICAgcmV0dXJuIHJlc29sdmVBdXRvUGFuTW9kZSh0aGlzLl9kcmFnQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5tYXAoKHgpID0+IHguZ2V0RXZlbnQoKS5raW5kKSk7XG4gIH1cblxuICBwcml2YXRlIF9lZGdlVGhyZXNob2xkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWF4KDAsIHRoaXMuX2F1dG9QYW4oKT8uZkVkZ2VUaHJlc2hvbGQoKSA/PyAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NwZWVkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWF4KDAsIHRoaXMuX2F1dG9QYW4oKT8uZlNwZWVkKCkgPz8gMCk7XG4gIH1cblxuICBwcml2YXRlIF9hY2NlbGVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fYXV0b1BhbigpPy5mQWNjZWxlcmF0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIF9hdXRvUGFuKCkge1xuICAgIHJldHVybiB0aGlzLl9zdG9yZS5pbnN0YW5jZXMuZ2V0KElOU1RBTkNFUy5BVVRPX1BBTik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,7 +4,7 @@ import { inject, Injectable } from '@angular/core';
|
|
|
4
4
|
import { DragHandlerBase, FDragHandlerResult } from '../../../infrastructure';
|
|
5
5
|
import { ConnectionBehaviourBuilder, ConnectionBehaviourBuilderRequest, EFConnectableSide, } from '../../../../f-connection-v2';
|
|
6
6
|
import { FComponentsStore } from '../../../../f-storage';
|
|
7
|
-
import { CalculateClosestConnectorRequest, CalculateTargetConnectorsToConnectRequest, GetConnectorRectReferenceRequest, MarkConnectableConnectorsRequest, UnmarkConnectableConnectorsRequest, } from '../../../../domain';
|
|
7
|
+
import { CalculateClosestConnectorRequest, CalculateTargetConnectorsToConnectRequest, GetConnectorRectReferenceRequest, MarkConnectableConnectorsRequest, ResolveConnectionEndpointRotationContextRequest, UnmarkConnectableConnectorsRequest, } from '../../../../domain';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export class CreateConnectionHandler extends DragHandlerBase {
|
|
10
10
|
type = 'create-connection';
|
|
@@ -72,7 +72,7 @@ export class CreateConnectionHandler extends DragHandlerBase {
|
|
|
72
72
|
return this._mediator.execute(new CalculateClosestConnectorRequest(pointer, this._targets));
|
|
73
73
|
}
|
|
74
74
|
_drawCreateConnection(pointer, targetSide) {
|
|
75
|
-
const line = this._connectionBehaviour.handle(new ConnectionBehaviourBuilderRequest(this._sourceRef.rect, pointer, this._connection, this._sourceRef.connector.fConnectableSide, targetSide));
|
|
75
|
+
const line = this._connectionBehaviour.handle(new ConnectionBehaviourBuilderRequest(this._sourceRef.rect, pointer, this._connection, this._sourceRef.connector.fConnectableSide, targetSide, this._resolveRotationContext(this._sourceRef.connector)));
|
|
76
76
|
this._connection.setLine(line);
|
|
77
77
|
this._connection.redraw();
|
|
78
78
|
}
|
|
@@ -85,7 +85,7 @@ export class CreateConnectionHandler extends DragHandlerBase {
|
|
|
85
85
|
snap.hide();
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
88
|
-
const line = this._connectionBehaviour.handle(new ConnectionBehaviourBuilderRequest(this._sourceRef.rect, target.rect, snap, this._sourceRef.connector.fConnectableSide, target.connector.fConnectableSide));
|
|
88
|
+
const line = this._connectionBehaviour.handle(new ConnectionBehaviourBuilderRequest(this._sourceRef.rect, target.rect, snap, this._sourceRef.connector.fConnectableSide, target.connector.fConnectableSide, this._resolveRotationContext(this._sourceRef.connector), this._resolveRotationContext(target.connector)));
|
|
89
89
|
snap.show();
|
|
90
90
|
snap.setLine(line);
|
|
91
91
|
snap.redraw();
|
|
@@ -96,10 +96,13 @@ export class CreateConnectionHandler extends DragHandlerBase {
|
|
|
96
96
|
this._snapConnection?.hide();
|
|
97
97
|
this._mediator.execute(new UnmarkConnectableConnectorsRequest(this._targets.map((x) => x.connector)));
|
|
98
98
|
}
|
|
99
|
+
_resolveRotationContext(connector) {
|
|
100
|
+
return this._mediator.execute(new ResolveConnectionEndpointRotationContextRequest(connector));
|
|
101
|
+
}
|
|
99
102
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateConnectionHandler, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
100
103
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateConnectionHandler });
|
|
101
104
|
}
|
|
102
105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateConnectionHandler, decorators: [{
|
|
103
106
|
type: Injectable
|
|
104
107
|
}] });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbm5lY3Rpb24taGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvY29ubmVjdGlvbi9jcmVhdGUtY29ubmVjdGlvbi9jcmVhdGUtY29ubmVjdGlvbi1oYW5kbGVyL2NyZWF0ZS1jb25uZWN0aW9uLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBd0IsZUFBZSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlFLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsaUNBQWlDLEVBQ2pDLGlCQUFpQixHQUNsQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMseUNBQXlDLEVBQ3pDLGdDQUFnQyxFQUdoQyxnQ0FBZ0MsRUFDaEMsa0NBQWtDLEdBQ25DLE1BQU0sb0JBQW9CLENBQUM7O0FBSzVCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxlQUEyQztJQUNuRSxJQUFJLEdBQUcsbUJBQW1CLENBQUM7SUFDM0IsSUFBSSxHQUFHLG1CQUFtQixDQUFDO0lBRTNCLElBQUk7UUFDckIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUVnQixPQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7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OlsiaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBJUG9pbnQsIElSb3VuZGVkUmVjdCwgUG9pbnRFeHRlbnNpb25zLCBSZWN0RXh0ZW5zaW9ucywgUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRk5vZGVPdXRsZXRCYXNlLCBGTm9kZU91dHB1dEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRHJhZ0hhbmRsZXJCYXNlLCBGRHJhZ0hhbmRsZXJSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQgeyBJQ3JlYXRlQ29ubmVjdGlvbkV2ZW50RGF0YSB9IGZyb20gJy4uL2ktY3JlYXRlLWNvbm5lY3Rpb24tZXZlbnQtZGF0YSc7XG5pbXBvcnQge1xuICBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlcixcbiAgQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXJSZXF1ZXN0LFxuICBFRkNvbm5lY3RhYmxlU2lkZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0aW9uLXYyJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25Gb3JDcmVhdGVDb21wb25lbnQsIEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDbG9zZXN0Q29ubmVjdG9yUmVxdWVzdCxcbiAgQ2FsY3VsYXRlVGFyZ2V0Q29ubmVjdG9yc1RvQ29ubmVjdFJlcXVlc3QsXG4gIEdldENvbm5lY3RvclJlY3RSZWZlcmVuY2VSZXF1ZXN0LFxuICBJQ2xvc2VzdENvbm5lY3RvclJlZixcbiAgSUNvbm5lY3RvclJlY3RSZWYsXG4gIE1hcmtDb25uZWN0YWJsZUNvbm5lY3RvcnNSZXF1ZXN0LFxuICBVbm1hcmtDb25uZWN0YWJsZUNvbm5lY3RvcnNSZXF1ZXN0LFxufSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nO1xuXG50eXBlIEZTb3VyY2VDb25uZWN0b3IgPSBGTm9kZU91dHB1dEJhc2UgfCBGTm9kZU91dGxldEJhc2U7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDcmVhdGVDb25uZWN0aW9uSGFuZGxlciBleHRlbmRzIERyYWdIYW5kbGVyQmFzZTxJQ3JlYXRlQ29ubmVjdGlvbkV2ZW50RGF0YT4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHlwZSA9ICdjcmVhdGUtY29ubmVjdGlvbic7XG4gIHByb3RlY3RlZCByZWFkb25seSBraW5kID0gJ2NyZWF0ZS1jb25uZWN0aW9uJztcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGF0YSgpIHtcbiAgICByZXR1cm4geyBmT3V0cHV0T3JPdXRsZXRJZDogdGhpcy5fc291cmNlUmVmLmNvbm5lY3Rvci5mSWQoKSB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzdWx0ID0gaW5qZWN0KEZEcmFnSGFuZGxlclJlc3VsdCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nvbm5lY3Rpb25CZWhhdmlvdXIgPSBpbmplY3QoQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwcml2YXRlIGdldCBfY29ubmVjdGlvbigpOiBGQ29ubmVjdGlvbkZvckNyZWF0ZUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmNvbm5lY3Rpb25zLmdldEZvckNyZWF0ZSgpIGFzIEZDb25uZWN0aW9uRm9yQ3JlYXRlQ29tcG9uZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3NuYXBDb25uZWN0aW9uKCk6IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmNvbm5lY3Rpb25zLmdldEZvclNuYXAoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RhcmdldHM6IElDb25uZWN0b3JSZWN0UmVmW10gPSBbXTtcbiAgcHJpdmF0ZSBfc291cmNlUmVmITogSUNvbm5lY3RvclJlY3RSZWY8RlNvdXJjZUNvbm5lY3Rvcj47XG4gIHByaXZhdGUgX3BvaW50ZXJEb3duID0gbmV3IFJvdW5kZWRSZWN0KCk7XG5cbiAgcHVibGljIGluaXRpYWxpemUoc291cmNlOiBGU291cmNlQ29ubmVjdG9yLCBwb2ludGVyOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9zb3VyY2VSZWYgPSB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JSZWN0UmVmPEZTb3VyY2VDb25uZWN0b3I+PihcbiAgICAgIG5ldyBHZXRDb25uZWN0b3JSZWN0UmVmZXJlbmNlUmVxdWVzdChzb3VyY2UpLFxuICAgICk7XG4gICAgdGhpcy5fcG9pbnRlckRvd24gPSBSb3VuZGVkUmVjdC5mcm9tUmVjdChSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKHBvaW50ZXIueCwgcG9pbnRlci55KSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcHJlcGFyZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb2xsZWN0QW5kTWFya1RhcmdldHMoKTtcbiAgICB0aGlzLl9pbml0U25hcENvbm5lY3Rpb24oKTtcbiAgICB0aGlzLl9pbml0Q3JlYXRlQ29ubmVjdGlvbigpO1xuXG4gICAgdGhpcy5fY29ubmVjdGlvbi5zaG93KCk7XG4gICAgdGhpcy5vblBvaW50ZXJNb3ZlKFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCkpO1xuXG4gICAgdGhpcy5fcmVzdWx0LnNldERhdGEoe1xuICAgICAgdG9Db25uZWN0b3JSZWN0OiB0aGlzLl9wb2ludGVyRG93bixcbiAgICAgIGNhbkJlQ29ubmVjdGVkSW5wdXRzOiB0aGlzLl90YXJnZXRzLFxuICAgICAgZk91dHB1dElkOiB0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yLmZJZCgpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29sbGVjdEFuZE1hcmtUYXJnZXRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3RhcmdldHMgPSB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JSZWN0UmVmW10+KFxuICAgICAgbmV3IENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RSZXF1ZXN0KFxuICAgICAgICB0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yLFxuICAgICAgICB0aGlzLl9zb3VyY2VSZWYucmVjdC5ncmF2aXR5Q2VudGVyLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBNYXJrQ29ubmVjdGFibGVDb25uZWN0b3JzUmVxdWVzdCh0aGlzLl90YXJnZXRzLm1hcCgoeCkgPT4geC5jb25uZWN0b3IpKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdFNuYXBDb25uZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc25hcENvbm5lY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc25hcENvbm5lY3Rpb24uZk91dHB1dElkLnNldCh0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yLmZJZCgpKTtcbiAgICB0aGlzLl9zbmFwQ29ubmVjdGlvbi5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q3JlYXRlQ29ubmVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25uZWN0aW9uLmZPdXRwdXRJZC5zZXQodGhpcy5fc291cmNlUmVmLmNvbm5lY3Rvci5mSWQoKSk7XG4gICAgdGhpcy5fY29ubmVjdGlvbi5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludGVyID0gdGhpcy5fcG9pbnRlckRvd24uYWRkUG9pbnQoZGlmZmVyZW5jZSk7XG5cbiAgICBjb25zdCBjbG9zZXN0ID0gdGhpcy5fZmluZENsb3Nlc3RUYXJnZXQocG9pbnRlcik7XG4gICAgY29uc3QgdGFyZ2V0U2lkZSA9IGNsb3Nlc3Q/LmNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlIHx8IEVGQ29ubmVjdGFibGVTaWRlLlRPUDtcblxuICAgIHRoaXMuX2RyYXdDcmVhdGVDb25uZWN0aW9uKHBvaW50ZXIsIHRhcmdldFNpZGUpO1xuXG4gICAgY29uc3Qgc25hcCA9IHRoaXMuX3NuYXBDb25uZWN0aW9uO1xuICAgIGlmICghc25hcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNuYXBUYXJnZXQgPSBjbG9zZXN0ICYmIGNsb3Nlc3QuZGlzdGFuY2UgPCBzbmFwLmZTbmFwVGhyZXNob2xkID8gY2xvc2VzdCA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9kcmF3U25hcENvbm5lY3Rpb24oc25hcFRhcmdldCk7XG4gIH1cblxuICBwcml2YXRlIF9maW5kQ2xvc2VzdFRhcmdldChwb2ludGVyOiBJUG9pbnQpOiBJQ2xvc2VzdENvbm5lY3RvclJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNsb3Nlc3RDb25uZWN0b3JSZWYgfCB1bmRlZmluZWQ+KFxuICAgICAgbmV3IENhbGN1bGF0ZUNsb3Nlc3RDb25uZWN0b3JSZXF1ZXN0KHBvaW50ZXIsIHRoaXMuX3RhcmdldHMpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3Q3JlYXRlQ29ubmVjdGlvbihwb2ludGVyOiBJUm91bmRlZFJlY3QsIHRhcmdldFNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogdm9pZCB7XG4gICAgY29uc3QgbGluZSA9IHRoaXMuX2Nvbm5lY3Rpb25CZWhhdmlvdXIuaGFuZGxlKFxuICAgICAgbmV3IENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyUmVxdWVzdChcbiAgICAgICAgdGhpcy5fc291cmNlUmVmLnJlY3QsXG4gICAgICAgIHBvaW50ZXIsXG4gICAgICAgIHRoaXMuX2Nvbm5lY3Rpb24sXG4gICAgICAgIHRoaXMuX3NvdXJjZVJlZi5jb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgdGFyZ2V0U2lkZSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIHRoaXMuX2Nvbm5lY3Rpb24uc2V0TGluZShsaW5lKTtcbiAgICB0aGlzLl9jb25uZWN0aW9uLnJlZHJhdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZHJhd1NuYXBDb25uZWN0aW9uKHRhcmdldDogSUNsb3Nlc3RDb25uZWN0b3JSZWYgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBjb25zdCBzbmFwID0gdGhpcy5fc25hcENvbm5lY3Rpb247XG4gICAgaWYgKCFzbmFwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHNuYXAuaGlkZSgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGluZSA9IHRoaXMuX2Nvbm5lY3Rpb25CZWhhdmlvdXIuaGFuZGxlKFxuICAgICAgbmV3IENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyUmVxdWVzdChcbiAgICAgICAgdGhpcy5fc291cmNlUmVmLnJlY3QsXG4gICAgICAgIHRhcmdldC5yZWN0LFxuICAgICAgICBzbmFwLFxuICAgICAgICB0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICAgIHRhcmdldC5jb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICksXG4gICAgKTtcbiAgICBzbmFwLnNob3coKTtcbiAgICBzbmFwLnNldExpbmUobGluZSk7XG4gICAgc25hcC5yZWRyYXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25uZWN0aW9uLnJlZHJhdygpO1xuICAgIHRoaXMuX2Nvbm5lY3Rpb24uaGlkZSgpO1xuICAgIHRoaXMuX3NuYXBDb25uZWN0aW9uPy5oaWRlKCk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKFxuICAgICAgbmV3IFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QodGhpcy5fdGFyZ2V0cy5tYXAoKHgpID0+IHguY29ubmVjdG9yKSksXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbm5lY3Rpb24taGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvY29ubmVjdGlvbi9jcmVhdGUtY29ubmVjdGlvbi9jcmVhdGUtY29ubmVjdGlvbi1oYW5kbGVyL2NyZWF0ZS1jb25uZWN0aW9uLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBd0IsZUFBZSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlFLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsaUNBQWlDLEVBQ2pDLGlCQUFpQixHQUVsQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMseUNBQXlDLEVBQ3pDLGdDQUFnQyxFQUdoQyxnQ0FBZ0MsRUFDaEMsK0NBQStDLEVBQy9DLGtDQUFrQyxHQUNuQyxNQUFNLG9CQUFvQixDQUFDOztBQUs1QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZUFBMkM7SUFDbkUsSUFBSSxHQUFHLG1CQUFtQixDQUFDO0lBQzNCLElBQUksR0FBRyxtQkFBbUIsQ0FBQztJQUUzQixJQUFJO1FBQ3JCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFZ0IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxrQkFB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QUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDOUUsQ0FBQztJQUNKLENBQUM7SUFFTyx1QkFBdUIsQ0FDN0IsU0FBMEI7UUFFMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0IsSUFBSSwrQ0FBK0MsQ0FBQyxTQUFTLENBQUMsQ0FDL0QsQ0FBQztJQUNKLENBQUM7d0dBNUpVLHVCQUF1Qjs0R0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBJUG9pbnQsIElSb3VuZGVkUmVjdCwgUG9pbnRFeHRlbnNpb25zLCBSZWN0RXh0ZW5zaW9ucywgUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UsIEZOb2RlT3V0bGV0QmFzZSwgRk5vZGVPdXRwdXRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IERyYWdIYW5kbGVyQmFzZSwgRkRyYWdIYW5kbGVyUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vaW5mcmFzdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgSUNyZWF0ZUNvbm5lY3Rpb25FdmVudERhdGEgfSBmcm9tICcuLi9pLWNyZWF0ZS1jb25uZWN0aW9uLWV2ZW50LWRhdGEnO1xuaW1wb3J0IHtcbiAgQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXIsXG4gIENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyUmVxdWVzdCxcbiAgRUZDb25uZWN0YWJsZVNpZGUsXG4gIElDb25uZWN0aW9uRW5kcG9pbnRSb3RhdGlvbkNvbnRleHQsXG59IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdGlvbi12Mic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uRm9yQ3JlYXRlQ29tcG9uZW50LCBGU25hcENvbm5lY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ2xvc2VzdENvbm5lY3RvclJlcXVlc3QsXG4gIENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RSZXF1ZXN0LFxuICBHZXRDb25uZWN0b3JSZWN0UmVmZXJlbmNlUmVxdWVzdCxcbiAgSUNsb3Nlc3RDb25uZWN0b3JSZWYsXG4gIElDb25uZWN0b3JSZWN0UmVmLFxuICBNYXJrQ29ubmVjdGFibGVDb25uZWN0b3JzUmVxdWVzdCxcbiAgUmVzb2x2ZUNvbm5lY3Rpb25FbmRwb2ludFJvdGF0aW9uQ29udGV4dFJlcXVlc3QsXG4gIFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QsXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5cbnR5cGUgRlNvdXJjZUNvbm5lY3RvciA9IEZOb2RlT3V0cHV0QmFzZSB8IEZOb2RlT3V0bGV0QmFzZTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENyZWF0ZUNvbm5lY3Rpb25IYW5kbGVyIGV4dGVuZHMgRHJhZ0hhbmRsZXJCYXNlPElDcmVhdGVDb25uZWN0aW9uRXZlbnREYXRhPiB7XG4gIHByb3RlY3RlZCByZWFkb25seSB0eXBlID0gJ2NyZWF0ZS1jb25uZWN0aW9uJztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGtpbmQgPSAnY3JlYXRlLWNvbm5lY3Rpb24nO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkYXRhKCkge1xuICAgIHJldHVybiB7IGZPdXRwdXRPck91dGxldElkOiB0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yLmZJZCgpIH07XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9yZXN1bHQgPSBpbmplY3QoRkRyYWdIYW5kbGVyUmVzdWx0KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29ubmVjdGlvbkJlaGF2aW91ciA9IGluamVjdChDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHByaXZhdGUgZ2V0IF9jb25uZWN0aW9uKCk6IEZDb25uZWN0aW9uRm9yQ3JlYXRlQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUuY29ubmVjdGlvbnMuZ2V0Rm9yQ3JlYXRlKCkgYXMgRkNvbm5lY3Rpb25Gb3JDcmVhdGVDb21wb25lbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBfc25hcENvbm5lY3Rpb24oKTogRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUuY29ubmVjdGlvbnMuZ2V0Rm9yU25hcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdGFyZ2V0czogSUNvbm5lY3RvclJlY3RSZWZbXSA9IFtdO1xuICBwcml2YXRlIF9zb3VyY2VSZWYhOiBJQ29ubmVjdG9yUmVjdFJlZjxGU291cmNlQ29ubmVjdG9yPjtcbiAgcHJpdmF0ZSBfcG9pbnRlckRvd24gPSBuZXcgUm91bmRlZFJlY3QoKTtcblxuICBwdWJsaWMgaW5pdGlhbGl6ZShzb3VyY2U6IEZTb3VyY2VDb25uZWN0b3IsIHBvaW50ZXI6IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuX3NvdXJjZVJlZiA9IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvclJlY3RSZWY8RlNvdXJjZUNvbm5lY3Rvcj4+KFxuICAgICAgbmV3IEdldENvbm5lY3RvclJlY3RSZWZlcmVuY2VSZXF1ZXN0KHNvdXJjZSksXG4gICAgKTtcbiAgICB0aGlzLl9wb2ludGVyRG93biA9IFJvdW5kZWRSZWN0LmZyb21SZWN0KFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUocG9pbnRlci54LCBwb2ludGVyLnkpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbGxlY3RBbmRNYXJrVGFyZ2V0cygpO1xuICAgIHRoaXMuX2luaXRTbmFwQ29ubmVjdGlvbigpO1xuICAgIHRoaXMuX2luaXRDcmVhdGVDb25uZWN0aW9uKCk7XG5cbiAgICB0aGlzLl9jb25uZWN0aW9uLnNob3coKTtcbiAgICB0aGlzLm9uUG9pbnRlck1vdmUoUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKSk7XG5cbiAgICB0aGlzLl9yZXN1bHQuc2V0RGF0YSh7XG4gICAgICB0b0Nvbm5lY3RvclJlY3Q6IHRoaXMuX3BvaW50ZXJEb3duLFxuICAgICAgY2FuQmVDb25uZWN0ZWRJbnB1dHM6IHRoaXMuX3RhcmdldHMsXG4gICAgICBmT3V0cHV0SWQ6IHRoaXMuX3NvdXJjZVJlZi5jb25uZWN0b3IuZklkKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jb2xsZWN0QW5kTWFya1RhcmdldHMoKTogdm9pZCB7XG4gICAgdGhpcy5fdGFyZ2V0cyA9IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvclJlY3RSZWZbXT4oXG4gICAgICBuZXcgQ2FsY3VsYXRlVGFyZ2V0Q29ubmVjdG9yc1RvQ29ubmVjdFJlcXVlc3QoXG4gICAgICAgIHRoaXMuX3NvdXJjZVJlZi5jb25uZWN0b3IsXG4gICAgICAgIHRoaXMuX3NvdXJjZVJlZi5yZWN0LmdyYXZpdHlDZW50ZXIsXG4gICAgICApLFxuICAgICk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKFxuICAgICAgbmV3IE1hcmtDb25uZWN0YWJsZUNvbm5lY3RvcnNSZXF1ZXN0KHRoaXMuX3RhcmdldHMubWFwKCh4KSA9PiB4LmNvbm5lY3RvcikpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0U25hcENvbm5lY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9zbmFwQ29ubmVjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9zbmFwQ29ubmVjdGlvbi5mT3V0cHV0SWQuc2V0KHRoaXMuX3NvdXJjZVJlZi5jb25uZWN0b3IuZklkKCkpO1xuICAgIHRoaXMuX3NuYXBDb25uZWN0aW9uLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRDcmVhdGVDb25uZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nvbm5lY3Rpb24uZk91dHB1dElkLnNldCh0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yLmZJZCgpKTtcbiAgICB0aGlzLl9jb25uZWN0aW9uLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXIgPSB0aGlzLl9wb2ludGVyRG93bi5hZGRQb2ludChkaWZmZXJlbmNlKTtcblxuICAgIGNvbnN0IGNsb3Nlc3QgPSB0aGlzLl9maW5kQ2xvc2VzdFRhcmdldChwb2ludGVyKTtcbiAgICBjb25zdCB0YXJnZXRTaWRlID0gY2xvc2VzdD8uY29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUgfHwgRUZDb25uZWN0YWJsZVNpZGUuVE9QO1xuXG4gICAgdGhpcy5fZHJhd0NyZWF0ZUNvbm5lY3Rpb24ocG9pbnRlciwgdGFyZ2V0U2lkZSk7XG5cbiAgICBjb25zdCBzbmFwID0gdGhpcy5fc25hcENvbm5lY3Rpb247XG4gICAgaWYgKCFzbmFwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc25hcFRhcmdldCA9IGNsb3Nlc3QgJiYgY2xvc2VzdC5kaXN0YW5jZSA8IHNuYXAuZlNuYXBUaHJlc2hvbGQgPyBjbG9zZXN0IDogdW5kZWZpbmVkO1xuICAgIHRoaXMuX2RyYXdTbmFwQ29ubmVjdGlvbihzbmFwVGFyZ2V0KTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRDbG9zZXN0VGFyZ2V0KHBvaW50ZXI6IElQb2ludCk6IElDbG9zZXN0Q29ubmVjdG9yUmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTxJQ2xvc2VzdENvbm5lY3RvclJlZiB8IHVuZGVmaW5lZD4oXG4gICAgICBuZXcgQ2FsY3VsYXRlQ2xvc2VzdENvbm5lY3RvclJlcXVlc3QocG9pbnRlciwgdGhpcy5fdGFyZ2V0cyksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RyYXdDcmVhdGVDb25uZWN0aW9uKHBvaW50ZXI6IElSb3VuZGVkUmVjdCwgdGFyZ2V0U2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5lID0gdGhpcy5fY29ubmVjdGlvbkJlaGF2aW91ci5oYW5kbGUoXG4gICAgICBuZXcgQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXJSZXF1ZXN0KFxuICAgICAgICB0aGlzLl9zb3VyY2VSZWYucmVjdCxcbiAgICAgICAgcG9pbnRlcixcbiAgICAgICAgdGhpcy5fY29ubmVjdGlvbixcbiAgICAgICAgdGhpcy5fc291cmNlUmVmLmNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgICB0YXJnZXRTaWRlLFxuICAgICAgICB0aGlzLl9yZXNvbHZlUm90YXRpb25Db250ZXh0KHRoaXMuX3NvdXJjZVJlZi5jb25uZWN0b3IpLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgdGhpcy5fY29ubmVjdGlvbi5zZXRMaW5lKGxpbmUpO1xuICAgIHRoaXMuX2Nvbm5lY3Rpb24ucmVkcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3U25hcENvbm5lY3Rpb24odGFyZ2V0OiBJQ2xvc2VzdENvbm5lY3RvclJlZiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IHNuYXAgPSB0aGlzLl9zbmFwQ29ubmVjdGlvbjtcbiAgICBpZiAoIXNuYXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgc25hcC5oaWRlKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lID0gdGhpcy5fY29ubmVjdGlvbkJlaGF2aW91ci5oYW5kbGUoXG4gICAgICBuZXcgQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXJSZXF1ZXN0KFxuICAgICAgICB0aGlzLl9zb3VyY2VSZWYucmVjdCxcbiAgICAgICAgdGFyZ2V0LnJlY3QsXG4gICAgICAgIHNuYXAsXG4gICAgICAgIHRoaXMuX3NvdXJjZVJlZi5jb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgdGFyZ2V0LmNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgICB0aGlzLl9yZXNvbHZlUm90YXRpb25Db250ZXh0KHRoaXMuX3NvdXJjZVJlZi5jb25uZWN0b3IpLFxuICAgICAgICB0aGlzLl9yZXNvbHZlUm90YXRpb25Db250ZXh0KHRhcmdldC5jb25uZWN0b3IpLFxuICAgICAgKSxcbiAgICApO1xuICAgIHNuYXAuc2hvdygpO1xuICAgIHNuYXAuc2V0TGluZShsaW5lKTtcbiAgICBzbmFwLnJlZHJhdygpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlclVwKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nvbm5lY3Rpb24ucmVkcmF3KCk7XG4gICAgdGhpcy5fY29ubmVjdGlvbi5oaWRlKCk7XG4gICAgdGhpcy5fc25hcENvbm5lY3Rpb24/LmhpZGUoKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgVW5tYXJrQ29ubmVjdGFibGVDb25uZWN0b3JzUmVxdWVzdCh0aGlzLl90YXJnZXRzLm1hcCgoeCkgPT4geC5jb25uZWN0b3IpKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzb2x2ZVJvdGF0aW9uQ29udGV4dChcbiAgICBjb25uZWN0b3I/OiBGQ29ubmVjdG9yQmFzZSxcbiAgKTogSUNvbm5lY3Rpb25FbmRwb2ludFJvdGF0aW9uQ29udGV4dCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3Rpb25FbmRwb2ludFJvdGF0aW9uQ29udGV4dCB8IHVuZGVmaW5lZD4oXG4gICAgICBuZXcgUmVzb2x2ZUNvbm5lY3Rpb25FbmRwb2ludFJvdGF0aW9uQ29udGV4dFJlcXVlc3QoY29ubmVjdG9yKSxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CalculateClosestConnectorRequest, CalculateSourceConnectorsToConnectRequest, MarkConnectableConnectorsRequest, UnmarkConnectableConnectorsRequest, } from '../../../../domain';
|
|
1
|
+
import { CalculateClosestConnectorRequest, CalculateSourceConnectorsToConnectRequest, MarkConnectableConnectorsRequest, ResolveConnectionEndpointRotationContextRequest, UnmarkConnectableConnectorsRequest, } from '../../../../domain';
|
|
2
2
|
import { rectFromPoint, withinSnapThreshold } from './i-reassign-handler';
|
|
3
3
|
import { ConnectionBehaviourBuilderRequest, } from '../../../../f-connection-v2';
|
|
4
4
|
export class ReassignConnectionSourceHandler {
|
|
@@ -59,7 +59,7 @@ export class ReassignConnectionSourceHandler {
|
|
|
59
59
|
return this._mediator.execute(new CalculateClosestConnectorRequest(point, this._candidates));
|
|
60
60
|
}
|
|
61
61
|
_draw(sourceRect, sourceSide) {
|
|
62
|
-
const line = this._behaviour.handle(new ConnectionBehaviourBuilderRequest(sourceRect, this._targetRef.rect, this._connection, sourceSide, this._targetRef.connector.fConnectableSide));
|
|
62
|
+
const line = this._behaviour.handle(new ConnectionBehaviourBuilderRequest(sourceRect, this._targetRef.rect, this._connection, sourceSide, this._targetRef.connector.fConnectableSide, undefined, this._resolveRotationContext(this._targetRef.connector)));
|
|
63
63
|
this._connection.setLine(line);
|
|
64
64
|
this._connection.redraw();
|
|
65
65
|
}
|
|
@@ -72,7 +72,7 @@ export class ReassignConnectionSourceHandler {
|
|
|
72
72
|
snap.hide();
|
|
73
73
|
return;
|
|
74
74
|
}
|
|
75
|
-
const line = this._behaviour.handle(new ConnectionBehaviourBuilderRequest(closest.rect, this._targetRef.rect, snap, closest.connector.fConnectableSide, this._target.fConnectableSide));
|
|
75
|
+
const line = this._behaviour.handle(new ConnectionBehaviourBuilderRequest(closest.rect, this._targetRef.rect, snap, closest.connector.fConnectableSide, this._target.fConnectableSide, this._resolveRotationContext(closest.connector), this._resolveRotationContext(this._targetRef.connector)));
|
|
76
76
|
snap.show();
|
|
77
77
|
snap.setLine(line);
|
|
78
78
|
snap.redraw();
|
|
@@ -82,5 +82,8 @@ export class ReassignConnectionSourceHandler {
|
|
|
82
82
|
this._snap?.hide();
|
|
83
83
|
this._mediator.execute(new UnmarkConnectableConnectorsRequest(this._candidates.map((x) => x.connector)));
|
|
84
84
|
}
|
|
85
|
+
_resolveRotationContext(connector) {
|
|
86
|
+
return this._mediator.execute(new ResolveConnectionEndpointRotationContextRequest(connector));
|
|
87
|
+
}
|
|
85
88
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi1zb3VyY2UtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvY29ubmVjdGlvbi9yZWFzc2lnbi1jb25uZWN0aW9uL3JlYXNzaWduLWNvbm5lY3Rpb24taGFuZGxlci9yZWFzc2lnbi1jb25uZWN0aW9uLXNvdXJjZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMseUNBQXlDLEVBR3pDLGdDQUFnQyxFQUNoQyxrQ0FBa0MsR0FDbkMsTUFBTSxvQkFBb0IsQ0FBQztBQUk1QixPQUFPLEVBQW9CLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVGLE9BQU8sRUFFTCxpQ0FBaUMsR0FHbEMsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxNQUFNLE9BQU8sK0JBQStCO0lBZXZCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFsQlgsV0FBVyxHQUF3QixFQUFFLENBQUM7SUFDdEMsS0FBSyxDQUF1QztJQUVuQyxXQUFXLENBQWM7SUFFMUMsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFpQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFZLE9BQU87UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQWdDLENBQUM7SUFDMUQsQ0FBQztJQUVELFlBQ21CLFNBQW9CLEVBQ3BCLFVBQXNDLEVBQ3RDLFdBQTRCLEVBQzVCLFVBQTZCLEVBQzdCLFVBQTZCO1FBSjdCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBNEI7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBRTlD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cm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7XG4gIENhbGN1bGF0ZUNsb3Nlc3RDb25uZWN0b3JSZXF1ZXN0LFxuICBDYWxjdWxhdGVTb3VyY2VDb25uZWN0b3JzVG9Db25uZWN0UmVxdWVzdCxcbiAgSUNsb3Nlc3RDb25uZWN0b3JSZWYsXG4gIElDb25uZWN0b3JSZWN0UmVmLFxuICBNYXJrQ29ubmVjdGFibGVDb25uZWN0b3JzUmVxdWVzdCxcbiAgVW5tYXJrQ29ubmVjdGFibGVDb25uZWN0b3JzUmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZOb2RlSW5wdXREaXJlY3RpdmUsIEZOb2RlT3V0cHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBJTGluZSwgSVBvaW50LCBSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSVJlYXNzaWduSGFuZGxlciwgcmVjdEZyb21Qb2ludCwgd2l0aGluU25hcFRocmVzaG9sZCB9IGZyb20gJy4vaS1yZWFzc2lnbi1oYW5kbGVyJztcbmltcG9ydCB7XG4gIENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyLFxuICBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlclJlcXVlc3QsXG4gIEVGQ29ubmVjdGFibGVTaWRlLFxuICBGQ29ubmVjdGlvbkJhc2UsXG59IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdGlvbi12Mic7XG5cbmV4cG9ydCBjbGFzcyBSZWFzc2lnbkNvbm5lY3Rpb25Tb3VyY2VIYW5kbGVyIGltcGxlbWVudHMgSVJlYXNzaWduSGFuZGxlciB7XG4gIHByaXZhdGUgX2NhbmRpZGF0ZXM6IElDb25uZWN0b3JSZWN0UmVmW10gPSBbXTtcbiAgcHJpdmF0ZSBfc25hcDogRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FuY2hvclJlY3Q6IFJvdW5kZWRSZWN0O1xuXG4gIHByaXZhdGUgZ2V0IF9zb3VyY2UoKTogRk5vZGVPdXRwdXREaXJlY3RpdmUge1xuICAgIHJldHVybiB0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yIGFzIEZOb2RlT3V0cHV0RGlyZWN0aXZlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3RhcmdldCgpOiBGTm9kZUlucHV0RGlyZWN0aXZlIHtcbiAgICByZXR1cm4gdGhpcy5fdGFyZ2V0UmVmLmNvbm5lY3RvciBhcyBGTm9kZUlucHV0RGlyZWN0aXZlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3I6IEZNZWRpYXRvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9iZWhhdmlvdXI6IENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Nvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zb3VyY2VSZWY6IElDb25uZWN0b3JSZWN0UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhcmdldFJlZjogSUNvbm5lY3RvclJlY3RSZWYsXG4gICkge1xuICAgIHRoaXMuX2FuY2hvclJlY3QgPSByZWN0RnJvbVBvaW50KHRoaXMuX2Nvbm5lY3Rpb24ubGluZS5wb2ludDEpO1xuICB9XG5cbiAgcHVibGljIGNhbmRpZGF0ZXMoKTogSUNvbm5lY3RvclJlY3RSZWZbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbmRpZGF0ZXM7XG4gIH1cblxuICBwdWJsaWMgY29sbGVjdEFuZE1hcmtDYW5kaWRhdGVzKCk6IHZvaWQge1xuICAgIHRoaXMuX2NhbmRpZGF0ZXMgPSB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JSZWN0UmVmW10+KFxuICAgICAgbmV3IENhbGN1bGF0ZVNvdXJjZUNvbm5lY3RvcnNUb0Nvbm5lY3RSZXF1ZXN0KFxuICAgICAgICB0aGlzLl90YXJnZXQsXG4gICAgICAgIHRoaXMuX3RhcmdldFJlZi5yZWN0LmdyYXZpdHlDZW50ZXIsXG4gICAgICApLFxuICAgICk7XG5cbiAgICAvLyBFbnN1cmUgY3VycmVudCBzb3VyY2UgaXMgYWx3YXlzIGF2YWlsYWJsZSBhcyBhIGZhbGxiYWNrLlxuICAgIGlmICghdGhpcy5fY2FuZGlkYXRlcy5zb21lKCh4KSA9PiB4LmNvbm5lY3Rvci5mSWQoKSA9PT0gdGhpcy5fc291cmNlLmZJZCgpKSkge1xuICAgICAgdGhpcy5fY2FuZGlkYXRlcy5wdXNoKHRoaXMuX3NvdXJjZVJlZik7XG4gICAgfVxuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBNYXJrQ29ubmVjdGFibGVDb25uZWN0b3JzUmVxdWVzdCh0aGlzLl9jYW5kaWRhdGVzLm1hcCgoeCkgPT4geC5jb25uZWN0b3IpKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldFNuYXBDb25uZWN0aW9uKHNuYXA6IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuX3NuYXAgPSBzbmFwO1xuICAgIGlmICghc25hcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFRhcmdldCBpcyBmaXhlZCwgc28gc25hcC1wcmV2aWV3IGFsd2F5cyBlbmRzIGF0IGN1cnJlbnQgdGFyZ2V0LlxuICAgIHNuYXAuZklucHV0SWQuc2V0KHRoaXMuX2Nvbm5lY3Rpb24uZklucHV0SWQoKSk7XG4gICAgc25hcC5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludGVyUmVjdCA9IHRoaXMuX2FuY2hvclJlY3QuYWRkUG9pbnQoZGlmZmVyZW5jZSk7XG5cbiAgICBjb25zdCBjbG9zZXN0ID0gdGhpcy5fZmluZENsb3Nlc3QocG9pbnRlclJlY3QuZ3Jhdml0eUNlbnRlcik7XG4gICAgY29uc3Qgc291cmNlU2lkZSA9IGNsb3Nlc3Q/LmNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlID8/IHRoaXMuX3NvdXJjZS5mQ29ubmVjdGFibGVTaWRlO1xuXG4gICAgdGhpcy5fZHJhdyhwb2ludGVyUmVjdCwgc291cmNlU2lkZSk7XG5cbiAgICBjb25zdCBzbmFwID0gdGhpcy5fc25hcDtcbiAgICBpZiAoIXNuYXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9kcmF3U25hcCh3aXRoaW5TbmFwVGhyZXNob2xkKGNsb3Nlc3QsIHNuYXApKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRDbG9zZXN0KHBvaW50OiBJUG9pbnQpOiBJQ2xvc2VzdENvbm5lY3RvclJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNsb3Nlc3RDb25uZWN0b3JSZWYgfCB1bmRlZmluZWQ+KFxuICAgICAgbmV3IENhbGN1bGF0ZUNsb3Nlc3RDb25uZWN0b3JSZXF1ZXN0KHBvaW50LCB0aGlzLl9jYW5kaWRhdGVzKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZHJhdyhzb3VyY2VSZWN0OiBSb3VuZGVkUmVjdCwgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5lID0gdGhpcy5fYmVoYXZpb3VyLmhhbmRsZShcbiAgICAgIG5ldyBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlclJlcXVlc3QoXG4gICAgICAgIHNvdXJjZVJlY3QsXG4gICAgICAgIHRoaXMuX3RhcmdldFJlZi5yZWN0LFxuICAgICAgICB0aGlzLl9jb25uZWN0aW9uLFxuICAgICAgICBzb3VyY2VTaWRlLFxuICAgICAgICB0aGlzLl90YXJnZXRSZWYuY29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICApLFxuICAgICk7XG5cbiAgICB0aGlzLl9jb25uZWN0aW9uLnNldExpbmUobGluZSk7XG4gICAgdGhpcy5fY29ubmVjdGlvbi5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RyYXdTbmFwKGNsb3Nlc3Q6IElDbG9zZXN0Q29ubmVjdG9yUmVmIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgY29uc3Qgc25hcCA9IHRoaXMuX3NuYXA7XG4gICAgaWYgKCFzbmFwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFjbG9zZXN0KSB7XG4gICAgICBzbmFwLmhpZGUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmU6IElMaW5lID0gdGhpcy5fYmVoYXZpb3VyLmhhbmRsZShcbiAgICAgIG5ldyBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlclJlcXVlc3QoXG4gICAgICAgIGNsb3Nlc3QucmVjdCxcbiAgICAgICAgdGhpcy5fdGFyZ2V0UmVmLnJlY3QsXG4gICAgICAgIHNuYXAsXG4gICAgICAgIGNsb3Nlc3QuY29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICAgIHRoaXMuX3RhcmdldC5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgc25hcC5zaG93KCk7XG4gICAgc25hcC5zZXRMaW5lKGxpbmUpO1xuICAgIHNuYXAucmVkcmF3KCk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fZHJhdyh0aGlzLl9hbmNob3JSZWN0LCB0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUpO1xuICAgIHRoaXMuX3NuYXA/LmhpZGUoKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgVW5tYXJrQ29ubmVjdGFibGVDb25uZWN0b3JzUmVxdWVzdCh0aGlzLl9jYW5kaWRhdGVzLm1hcCgoeCkgPT4geC5jb25uZWN0b3IpKSxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi1zb3VyY2UtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvY29ubmVjdGlvbi9yZWFzc2lnbi1jb25uZWN0aW9uL3JlYXNzaWduLWNvbm5lY3Rpb24taGFuZGxlci9yZWFzc2lnbi1jb25uZWN0aW9uLXNvdXJjZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMseUNBQXlDLEVBR3pDLGdDQUFnQyxFQUNoQywrQ0FBK0MsRUFDL0Msa0NBQWtDLEdBQ25DLE1BQU0sb0JBQW9CLENBQUM7QUFRNUIsT0FBTyxFQUFvQixhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RixPQUFPLEVBRUwsaUNBQWlDLEdBSWxDLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsTUFBTSxPQUFPLCtCQUErQjtJQWV2QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBbEJYLFdBQVcsR0FBd0IsRUFBRSxDQUFDO0lBQ3RDLEtBQUssQ0FBdUM7SUFFbkMsV0FBVyxDQUFjO0lBRTFDLElBQVksT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBaUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFnQyxDQUFDO0lBQzFELENBQUM7SUFFRCxZQUNtQixTQUFvQixFQUNwQixVQUFzQyxFQUN0QyxXQUE0QixFQUM1QixVQUE2QixFQUM3QixVQUE2QjtRQUo3QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQTRCO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixlQUFVLEdBQVYsVUFB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LFNBQVMsQ0FBQyxPQUFPLENBQ3BCLElBQUksa0NBQWtDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUNqRixDQUFDO0lBQ0osQ0FBQztJQUVPLHVCQUF1QixDQUM3QixTQUEwQjtRQUUxQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQixJQUFJLCtDQUErQyxDQUFDLFNBQVMsQ0FBQyxDQUMvRCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDbG9zZXN0Q29ubmVjdG9yUmVxdWVzdCxcbiAgQ2FsY3VsYXRlU291cmNlQ29ubmVjdG9yc1RvQ29ubmVjdFJlcXVlc3QsXG4gIElDbG9zZXN0Q29ubmVjdG9yUmVmLFxuICBJQ29ubmVjdG9yUmVjdFJlZixcbiAgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QsXG4gIFJlc29sdmVDb25uZWN0aW9uRW5kcG9pbnRSb3RhdGlvbkNvbnRleHRSZXF1ZXN0LFxuICBVbm1hcmtDb25uZWN0YWJsZUNvbm5lY3RvcnNSZXF1ZXN0LFxufSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHtcbiAgRkNvbm5lY3RvckJhc2UsXG4gIEZOb2RlSW5wdXREaXJlY3RpdmUsXG4gIEZOb2RlT3V0cHV0RGlyZWN0aXZlLFxufSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IElMaW5lLCBJUG9pbnQsIFJvdW5kZWRSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJUmVhc3NpZ25IYW5kbGVyLCByZWN0RnJvbVBvaW50LCB3aXRoaW5TbmFwVGhyZXNob2xkIH0gZnJvbSAnLi9pLXJlYXNzaWduLWhhbmRsZXInO1xuaW1wb3J0IHtcbiAgQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXIsXG4gIENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyUmVxdWVzdCxcbiAgRUZDb25uZWN0YWJsZVNpZGUsXG4gIEZDb25uZWN0aW9uQmFzZSxcbiAgSUNvbm5lY3Rpb25FbmRwb2ludFJvdGF0aW9uQ29udGV4dCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0aW9uLXYyJztcblxuZXhwb3J0IGNsYXNzIFJlYXNzaWduQ29ubmVjdGlvblNvdXJjZUhhbmRsZXIgaW1wbGVtZW50cyBJUmVhc3NpZ25IYW5kbGVyIHtcbiAgcHJpdmF0ZSBfY2FuZGlkYXRlczogSUNvbm5lY3RvclJlY3RSZWZbXSA9IFtdO1xuICBwcml2YXRlIF9zbmFwOiBGU25hcENvbm5lY3Rpb25Db21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYW5jaG9yUmVjdDogUm91bmRlZFJlY3Q7XG5cbiAgcHJpdmF0ZSBnZXQgX3NvdXJjZSgpOiBGTm9kZU91dHB1dERpcmVjdGl2ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NvdXJjZVJlZi5jb25uZWN0b3IgYXMgRk5vZGVPdXRwdXREaXJlY3RpdmU7XG4gIH1cblxuICBwcml2YXRlIGdldCBfdGFyZ2V0KCk6IEZOb2RlSW5wdXREaXJlY3RpdmUge1xuICAgIHJldHVybiB0aGlzLl90YXJnZXRSZWYuY29ubmVjdG9yIGFzIEZOb2RlSW5wdXREaXJlY3RpdmU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvcjogRk1lZGlhdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2JlaGF2aW91cjogQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3NvdXJjZVJlZjogSUNvbm5lY3RvclJlY3RSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFyZ2V0UmVmOiBJQ29ubmVjdG9yUmVjdFJlZixcbiAgKSB7XG4gICAgdGhpcy5fYW5jaG9yUmVjdCA9IHJlY3RGcm9tUG9pbnQodGhpcy5fY29ubmVjdGlvbi5saW5lLnBvaW50MSk7XG4gIH1cblxuICBwdWJsaWMgY2FuZGlkYXRlcygpOiBJQ29ubmVjdG9yUmVjdFJlZltdIHtcbiAgICByZXR1cm4gdGhpcy5fY2FuZGlkYXRlcztcbiAgfVxuXG4gIHB1YmxpYyBjb2xsZWN0QW5kTWFya0NhbmRpZGF0ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fY2FuZGlkYXRlcyA9IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvclJlY3RSZWZbXT4oXG4gICAgICBuZXcgQ2FsY3VsYXRlU291cmNlQ29ubmVjdG9yc1RvQ29ubmVjdFJlcXVlc3QoXG4gICAgICAgIHRoaXMuX3RhcmdldCxcbiAgICAgICAgdGhpcy5fdGFyZ2V0UmVmLnJlY3QuZ3Jhdml0eUNlbnRlcixcbiAgICAgICksXG4gICAgKTtcblxuICAgIC8vIEVuc3VyZSBjdXJyZW50IHNvdXJjZSBpcyBhbHdheXMgYXZhaWxhYmxlIGFzIGEgZmFsbGJhY2suXG4gICAgaWYgKCF0aGlzLl9jYW5kaWRhdGVzLnNvbWUoKHgpID0+IHguY29ubmVjdG9yLmZJZCgpID09PSB0aGlzLl9zb3VyY2UuZklkKCkpKSB7XG4gICAgICB0aGlzLl9jYW5kaWRhdGVzLnB1c2godGhpcy5fc291cmNlUmVmKTtcbiAgICB9XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKFxuICAgICAgbmV3IE1hcmtDb25uZWN0YWJsZUNvbm5lY3RvcnNSZXF1ZXN0KHRoaXMuX2NhbmRpZGF0ZXMubWFwKCh4KSA9PiB4LmNvbm5lY3RvcikpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0U25hcENvbm5lY3Rpb24oc25hcDogRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5fc25hcCA9IHNuYXA7XG4gICAgaWYgKCFzbmFwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVGFyZ2V0IGlzIGZpeGVkLCBzbyBzbmFwLXByZXZpZXcgYWx3YXlzIGVuZHMgYXQgY3VycmVudCB0YXJnZXQuXG4gICAgc25hcC5mSW5wdXRJZC5zZXQodGhpcy5fY29ubmVjdGlvbi5mSW5wdXRJZCgpKTtcbiAgICBzbmFwLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJSZWN0ID0gdGhpcy5fYW5jaG9yUmVjdC5hZGRQb2ludChkaWZmZXJlbmNlKTtcblxuICAgIGNvbnN0IGNsb3Nlc3QgPSB0aGlzLl9maW5kQ2xvc2VzdChwb2ludGVyUmVjdC5ncmF2aXR5Q2VudGVyKTtcbiAgICBjb25zdCBzb3VyY2VTaWRlID0gY2xvc2VzdD8uY29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUgPz8gdGhpcy5fc291cmNlLmZDb25uZWN0YWJsZVNpZGU7XG5cbiAgICB0aGlzLl9kcmF3KHBvaW50ZXJSZWN0LCBzb3VyY2VTaWRlKTtcblxuICAgIGNvbnN0IHNuYXAgPSB0aGlzLl9zbmFwO1xuICAgIGlmICghc25hcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2RyYXdTbmFwKHdpdGhpblNuYXBUaHJlc2hvbGQoY2xvc2VzdCwgc25hcCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluZENsb3Nlc3QocG9pbnQ6IElQb2ludCk6IElDbG9zZXN0Q29ubmVjdG9yUmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTxJQ2xvc2VzdENvbm5lY3RvclJlZiB8IHVuZGVmaW5lZD4oXG4gICAgICBuZXcgQ2FsY3VsYXRlQ2xvc2VzdENvbm5lY3RvclJlcXVlc3QocG9pbnQsIHRoaXMuX2NhbmRpZGF0ZXMpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3KHNvdXJjZVJlY3Q6IFJvdW5kZWRSZWN0LCBzb3VyY2VTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLl9iZWhhdmlvdXIuaGFuZGxlKFxuICAgICAgbmV3IENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyUmVxdWVzdChcbiAgICAgICAgc291cmNlUmVjdCxcbiAgICAgICAgdGhpcy5fdGFyZ2V0UmVmLnJlY3QsXG4gICAgICAgIHRoaXMuX2Nvbm5lY3Rpb24sXG4gICAgICAgIHNvdXJjZVNpZGUsXG4gICAgICAgIHRoaXMuX3RhcmdldFJlZi5jb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB0aGlzLl9yZXNvbHZlUm90YXRpb25Db250ZXh0KHRoaXMuX3RhcmdldFJlZi5jb25uZWN0b3IpLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgdGhpcy5fY29ubmVjdGlvbi5zZXRMaW5lKGxpbmUpO1xuICAgIHRoaXMuX2Nvbm5lY3Rpb24ucmVkcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3U25hcChjbG9zZXN0OiBJQ2xvc2VzdENvbm5lY3RvclJlZiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IHNuYXAgPSB0aGlzLl9zbmFwO1xuICAgIGlmICghc25hcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghY2xvc2VzdCkge1xuICAgICAgc25hcC5oaWRlKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lOiBJTGluZSA9IHRoaXMuX2JlaGF2aW91ci5oYW5kbGUoXG4gICAgICBuZXcgQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXJSZXF1ZXN0KFxuICAgICAgICBjbG9zZXN0LnJlY3QsXG4gICAgICAgIHRoaXMuX3RhcmdldFJlZi5yZWN0LFxuICAgICAgICBzbmFwLFxuICAgICAgICBjbG9zZXN0LmNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgICB0aGlzLl90YXJnZXQuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgdGhpcy5fcmVzb2x2ZVJvdGF0aW9uQ29udGV4dChjbG9zZXN0LmNvbm5lY3RvciksXG4gICAgICAgIHRoaXMuX3Jlc29sdmVSb3RhdGlvbkNvbnRleHQodGhpcy5fdGFyZ2V0UmVmLmNvbm5lY3RvciksXG4gICAgICApLFxuICAgICk7XG5cbiAgICBzbmFwLnNob3coKTtcbiAgICBzbmFwLnNldExpbmUobGluZSk7XG4gICAgc25hcC5yZWRyYXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmF3KHRoaXMuX2FuY2hvclJlY3QsIHRoaXMuX3NvdXJjZVJlZi5jb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgdGhpcy5fc25hcD8uaGlkZSgpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBVbm1hcmtDb25uZWN0YWJsZUNvbm5lY3RvcnNSZXF1ZXN0KHRoaXMuX2NhbmRpZGF0ZXMubWFwKCh4KSA9PiB4LmNvbm5lY3RvcikpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNvbHZlUm90YXRpb25Db250ZXh0KFxuICAgIGNvbm5lY3Rvcj86IEZDb25uZWN0b3JCYXNlLFxuICApOiBJQ29ubmVjdGlvbkVuZHBvaW50Um90YXRpb25Db250ZXh0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTxJQ29ubmVjdGlvbkVuZHBvaW50Um90YXRpb25Db250ZXh0IHwgdW5kZWZpbmVkPihcbiAgICAgIG5ldyBSZXNvbHZlQ29ubmVjdGlvbkVuZHBvaW50Um90YXRpb25Db250ZXh0UmVxdWVzdChjb25uZWN0b3IpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CalculateClosestConnectorRequest, CalculateTargetConnectorsToConnectRequest, MarkConnectableConnectorsRequest, UnmarkConnectableConnectorsRequest, } from '../../../../domain';
|
|
1
|
+
import { CalculateClosestConnectorRequest, CalculateTargetConnectorsToConnectRequest, MarkConnectableConnectorsRequest, ResolveConnectionEndpointRotationContextRequest, UnmarkConnectableConnectorsRequest, } from '../../../../domain';
|
|
2
2
|
import { rectFromPoint, withinSnapThreshold } from './i-reassign-handler';
|
|
3
3
|
import { ConnectionBehaviourBuilderRequest, } from '../../../../f-connection-v2';
|
|
4
4
|
export class ReassignConnectionTargetHandler {
|
|
@@ -65,7 +65,7 @@ export class ReassignConnectionTargetHandler {
|
|
|
65
65
|
return this._mediator.execute(new CalculateClosestConnectorRequest(point, this._candidates));
|
|
66
66
|
}
|
|
67
67
|
_draw(targetRect, targetSide) {
|
|
68
|
-
const line = this._behaviour.handle(new ConnectionBehaviourBuilderRequest(this._sourceRef.rect, targetRect, this._connection, this._source.fConnectableSide, targetSide));
|
|
68
|
+
const line = this._behaviour.handle(new ConnectionBehaviourBuilderRequest(this._sourceRef.rect, targetRect, this._connection, this._source.fConnectableSide, targetSide, this._resolveRotationContext(this._sourceRef.connector), undefined));
|
|
69
69
|
this._connection.setLine(line);
|
|
70
70
|
this._connection.redraw();
|
|
71
71
|
}
|
|
@@ -78,10 +78,13 @@ export class ReassignConnectionTargetHandler {
|
|
|
78
78
|
snap.hide();
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
|
-
const line = this._behaviour.handle(new ConnectionBehaviourBuilderRequest(this._sourceRef.rect, closest.rect, snap, this._source.fConnectableSide, closest.connector.fConnectableSide));
|
|
81
|
+
const line = this._behaviour.handle(new ConnectionBehaviourBuilderRequest(this._sourceRef.rect, closest.rect, snap, this._source.fConnectableSide, closest.connector.fConnectableSide, this._resolveRotationContext(this._sourceRef.connector), this._resolveRotationContext(closest.connector)));
|
|
82
82
|
snap.show();
|
|
83
83
|
snap.setLine(line);
|
|
84
84
|
snap.redraw();
|
|
85
85
|
}
|
|
86
|
+
_resolveRotationContext(connector) {
|
|
87
|
+
return this._mediator.execute(new ResolveConnectionEndpointRotationContextRequest(connector));
|
|
88
|
+
}
|
|
86
89
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi10YXJnZXQtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvY29ubmVjdGlvbi9yZWFzc2lnbi1jb25uZWN0aW9uL3JlYXNzaWduLWNvbm5lY3Rpb24taGFuZGxlci9yZWFzc2lnbi1jb25uZWN0aW9uLXRhcmdldC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMseUNBQXlDLEVBR3pDLGdDQUFnQyxFQUNoQyxrQ0FBa0MsR0FDbkMsTUFBTSxvQkFBb0IsQ0FBQztBQUk1QixPQUFPLEVBQW9CLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVGLE9BQU8sRUFFTCxpQ0FBaUMsR0FHbEMsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxNQUFNLE9BQU8sK0JBQStCO0lBZXZCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFsQlgsV0FBVyxHQUF3QixFQUFFLENBQUM7SUFDdEMsS0FBSyxDQUF1QztJQUVuQyxXQUFXLENBQWM7SUFFMUMsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFpQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFZLE9BQU87UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQWdDLENBQUM7SUFDMUQsQ0FBQztJQUVELFlBQ21CLFNBQW9CLEVBQ3BCLFVBQXNDLEVBQ3RDLFdBQTRCLEVBQzVCLFVBQTZCLEVBQzdCLFVBQTZCO1FBSjdCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBNEI7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBRTlD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bnRlbnQiOlsiaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDbG9zZXN0Q29ubmVjdG9yUmVxdWVzdCxcbiAgQ2FsY3VsYXRlVGFyZ2V0Q29ubmVjdG9yc1RvQ29ubmVjdFJlcXVlc3QsXG4gIElDbG9zZXN0Q29ubmVjdG9yUmVmLFxuICBJQ29ubmVjdG9yUmVjdFJlZixcbiAgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QsXG4gIFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QsXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGTm9kZUlucHV0RGlyZWN0aXZlLCBGTm9kZU91dHB1dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGU25hcENvbm5lY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgSUxpbmUsIElQb2ludCwgUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IElSZWFzc2lnbkhhbmRsZXIsIHJlY3RGcm9tUG9pbnQsIHdpdGhpblNuYXBUaHJlc2hvbGQgfSBmcm9tICcuL2ktcmVhc3NpZ24taGFuZGxlcic7XG5pbXBvcnQge1xuICBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlcixcbiAgQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXJSZXF1ZXN0LFxuICBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgRkNvbm5lY3Rpb25CYXNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3Rpb24tdjInO1xuXG5leHBvcnQgY2xhc3MgUmVhc3NpZ25Db25uZWN0aW9uVGFyZ2V0SGFuZGxlciBpbXBsZW1lbnRzIElSZWFzc2lnbkhhbmRsZXIge1xuICBwcml2YXRlIF9jYW5kaWRhdGVzOiBJQ29ubmVjdG9yUmVjdFJlZltdID0gW107XG4gIHByaXZhdGUgX3NuYXA6IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hbmNob3JSZWN0OiBSb3VuZGVkUmVjdDtcblxuICBwcml2YXRlIGdldCBfc291cmNlKCk6IEZOb2RlT3V0cHV0RGlyZWN0aXZlIHtcbiAgICByZXR1cm4gdGhpcy5fc291cmNlUmVmLmNvbm5lY3RvciBhcyBGTm9kZU91dHB1dERpcmVjdGl2ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF90YXJnZXQoKTogRk5vZGVJbnB1dERpcmVjdGl2ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3RhcmdldFJlZi5jb25uZWN0b3IgYXMgRk5vZGVJbnB1dERpcmVjdGl2ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yOiBGTWVkaWF0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfYmVoYXZpb3VyOiBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc291cmNlUmVmOiBJQ29ubmVjdG9yUmVjdFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YXJnZXRSZWY6IElDb25uZWN0b3JSZWN0UmVmLFxuICApIHtcbiAgICB0aGlzLl9hbmNob3JSZWN0ID0gcmVjdEZyb21Qb2ludCh0aGlzLl9jb25uZWN0aW9uLmxpbmUucG9pbnQyKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5kaWRhdGVzKCk6IElDb25uZWN0b3JSZWN0UmVmW10ge1xuICAgIHJldHVybiB0aGlzLl9jYW5kaWRhdGVzO1xuICB9XG5cbiAgcHVibGljIGNvbGxlY3RBbmRNYXJrQ2FuZGlkYXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jYW5kaWRhdGVzID0gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTxJQ29ubmVjdG9yUmVjdFJlZltdPihcbiAgICAgIG5ldyBDYWxjdWxhdGVUYXJnZXRDb25uZWN0b3JzVG9Db25uZWN0UmVxdWVzdChcbiAgICAgICAgdGhpcy5fc291cmNlLFxuICAgICAgICB0aGlzLl9zb3VyY2VSZWYucmVjdC5ncmF2aXR5Q2VudGVyLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgLy8gRW5zdXJlIGN1cnJlbnQgdGFyZ2V0IGV4aXN0cyAodXN1YWxseSBpdCBhbHJlYWR5IGRvZXMpLlxuICAgIGNvbnN0IGN1cnJlbnRUYXJnZXRJZCA9IHRoaXMuX2Nvbm5lY3Rpb24uZklucHV0SWQoKTtcbiAgICBpZiAoY3VycmVudFRhcmdldElkICYmICF0aGlzLl9jYW5kaWRhdGVzLnNvbWUoKHgpID0+IHguY29ubmVjdG9yLmZJZCgpID09PSBjdXJyZW50VGFyZ2V0SWQpKSB7XG4gICAgICB0aGlzLl9jYW5kaWRhdGVzLnB1c2godGhpcy5fdGFyZ2V0UmVmKTtcbiAgICB9XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKFxuICAgICAgbmV3IE1hcmtDb25uZWN0YWJsZUNvbm5lY3RvcnNSZXF1ZXN0KHRoaXMuX2NhbmRpZGF0ZXMubWFwKCh4KSA9PiB4LmNvbm5lY3RvcikpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0U25hcENvbm5lY3Rpb24oc25hcDogRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5fc25hcCA9IHNuYXA7XG4gICAgaWYgKCFzbmFwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU291cmNlIGlzIGZpeGVkLCBzbyBzbmFwLXByZXZpZXcgYWx3YXlzIHN0YXJ0cyBhdCBjdXJyZW50IHNvdXJjZS5cbiAgICBzbmFwLmZPdXRwdXRJZC5zZXQodGhpcy5fY29ubmVjdGlvbi5mT3V0cHV0SWQoKSk7XG4gICAgc25hcC5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludGVyUmVjdCA9IHRoaXMuX2FuY2hvclJlY3QuYWRkUG9pbnQoZGlmZmVyZW5jZSk7XG5cbiAgICBjb25zdCBjbG9zZXN0ID0gdGhpcy5fZmluZENsb3Nlc3QocG9pbnRlclJlY3QuZ3Jhdml0eUNlbnRlcik7XG4gICAgY29uc3QgdGFyZ2V0U2lkZSA9IGNsb3Nlc3Q/LmNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlID8/IHRoaXMuX3RhcmdldC5mQ29ubmVjdGFibGVTaWRlO1xuXG4gICAgdGhpcy5fZHJhdyhwb2ludGVyUmVjdCwgdGFyZ2V0U2lkZSk7XG5cbiAgICBjb25zdCBzbmFwID0gdGhpcy5fc25hcDtcbiAgICBpZiAoIXNuYXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9kcmF3U25hcCh3aXRoaW5TbmFwVGhyZXNob2xkKGNsb3Nlc3QsIHNuYXApKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmF3KHRoaXMuX2FuY2hvclJlY3QsIHRoaXMuX3RhcmdldFJlZi5jb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgdGhpcy5fc25hcD8uaGlkZSgpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBVbm1hcmtDb25uZWN0YWJsZUNvbm5lY3RvcnNSZXF1ZXN0KHRoaXMuX2NhbmRpZGF0ZXMubWFwKCh4KSA9PiB4LmNvbm5lY3RvcikpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9maW5kQ2xvc2VzdChwb2ludDogSVBvaW50KTogSUNsb3Nlc3RDb25uZWN0b3JSZWYgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElDbG9zZXN0Q29ubmVjdG9yUmVmIHwgdW5kZWZpbmVkPihcbiAgICAgIG5ldyBDYWxjdWxhdGVDbG9zZXN0Q29ubmVjdG9yUmVxdWVzdChwb2ludCwgdGhpcy5fY2FuZGlkYXRlcyksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RyYXcodGFyZ2V0UmVjdDogUm91bmRlZFJlY3QsIHRhcmdldFNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogdm9pZCB7XG4gICAgY29uc3QgbGluZSA9IHRoaXMuX2JlaGF2aW91ci5oYW5kbGUoXG4gICAgICBuZXcgQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXJSZXF1ZXN0KFxuICAgICAgICB0aGlzLl9zb3VyY2VSZWYucmVjdCxcbiAgICAgICAgdGFyZ2V0UmVjdCxcbiAgICAgICAgdGhpcy5fY29ubmVjdGlvbixcbiAgICAgICAgdGhpcy5fc291cmNlLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICAgIHRhcmdldFNpZGUsXG4gICAgICApLFxuICAgICk7XG5cbiAgICB0aGlzLl9jb25uZWN0aW9uLnNldExpbmUobGluZSk7XG4gICAgdGhpcy5fY29ubmVjdGlvbi5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RyYXdTbmFwKGNsb3Nlc3Q6IElDbG9zZXN0Q29ubmVjdG9yUmVmIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgY29uc3Qgc25hcCA9IHRoaXMuX3NuYXA7XG4gICAgaWYgKCFzbmFwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFjbG9zZXN0KSB7XG4gICAgICBzbmFwLmhpZGUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmU6IElMaW5lID0gdGhpcy5fYmVoYXZpb3VyLmhhbmRsZShcbiAgICAgIG5ldyBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlclJlcXVlc3QoXG4gICAgICAgIHRoaXMuX3NvdXJjZVJlZi5yZWN0LFxuICAgICAgICBjbG9zZXN0LnJlY3QsXG4gICAgICAgIHNuYXAsXG4gICAgICAgIHRoaXMuX3NvdXJjZS5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgICBjbG9zZXN0LmNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgc25hcC5zaG93KCk7XG4gICAgc25hcC5zZXRMaW5lKGxpbmUpO1xuICAgIHNuYXAucmVkcmF3KCk7XG4gIH1cbn1cbiJdfQ==
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc3NpZ24tY29ubmVjdGlvbi10YXJnZXQtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvY29ubmVjdGlvbi9yZWFzc2lnbi1jb25uZWN0aW9uL3JlYXNzaWduLWNvbm5lY3Rpb24taGFuZGxlci9yZWFzc2lnbi1jb25uZWN0aW9uLXRhcmdldC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMseUNBQXlDLEVBR3pDLGdDQUFnQyxFQUNoQywrQ0FBK0MsRUFDL0Msa0NBQWtDLEdBQ25DLE1BQU0sb0JBQW9CLENBQUM7QUFRNUIsT0FBTyxFQUFvQixhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RixPQUFPLEVBRUwsaUNBQWlDLEdBSWxDLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsTUFBTSxPQUFPLCtCQUErQjtJQWV2QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBbEJYLFdBQVcsR0FBd0IsRUFBRSxDQUFDO0lBQ3RDLEtBQUssQ0FBdUM7SUFFbkMsV0FBVyxDQUFjO0lBRTFDLElBQVksT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBaUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFnQyxDQUFDO0lBQzFELENBQUM7SUFFRCxZQUNtQixTQUFvQixFQUNwQixVQUFzQyxFQUN0QyxXQUE0QixFQUM1QixVQUE2QixFQUM3QixVQUE2QjtRQUo3QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQTRCO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixlQUFVLEdBQVYsVUFB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LElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQ2hELENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTyx1QkFBdUIsQ0FDN0IsU0FBMEI7UUFFMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0IsSUFBSSwrQ0FBK0MsQ0FBQyxTQUFTLENBQUMsQ0FDL0QsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ2xvc2VzdENvbm5lY3RvclJlcXVlc3QsXG4gIENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RSZXF1ZXN0LFxuICBJQ2xvc2VzdENvbm5lY3RvclJlZixcbiAgSUNvbm5lY3RvclJlY3RSZWYsXG4gIE1hcmtDb25uZWN0YWJsZUNvbm5lY3RvcnNSZXF1ZXN0LFxuICBSZXNvbHZlQ29ubmVjdGlvbkVuZHBvaW50Um90YXRpb25Db250ZXh0UmVxdWVzdCxcbiAgVW5tYXJrQ29ubmVjdGFibGVDb25uZWN0b3JzUmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gIEZDb25uZWN0b3JCYXNlLFxuICBGTm9kZUlucHV0RGlyZWN0aXZlLFxuICBGTm9kZU91dHB1dERpcmVjdGl2ZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBJTGluZSwgSVBvaW50LCBSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSVJlYXNzaWduSGFuZGxlciwgcmVjdEZyb21Qb2ludCwgd2l0aGluU25hcFRocmVzaG9sZCB9IGZyb20gJy4vaS1yZWFzc2lnbi1oYW5kbGVyJztcbmltcG9ydCB7XG4gIENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyLFxuICBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlclJlcXVlc3QsXG4gIEVGQ29ubmVjdGFibGVTaWRlLFxuICBGQ29ubmVjdGlvbkJhc2UsXG4gIElDb25uZWN0aW9uRW5kcG9pbnRSb3RhdGlvbkNvbnRleHQsXG59IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdGlvbi12Mic7XG5cbmV4cG9ydCBjbGFzcyBSZWFzc2lnbkNvbm5lY3Rpb25UYXJnZXRIYW5kbGVyIGltcGxlbWVudHMgSVJlYXNzaWduSGFuZGxlciB7XG4gIHByaXZhdGUgX2NhbmRpZGF0ZXM6IElDb25uZWN0b3JSZWN0UmVmW10gPSBbXTtcbiAgcHJpdmF0ZSBfc25hcDogRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FuY2hvclJlY3Q6IFJvdW5kZWRSZWN0O1xuXG4gIHByaXZhdGUgZ2V0IF9zb3VyY2UoKTogRk5vZGVPdXRwdXREaXJlY3RpdmUge1xuICAgIHJldHVybiB0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yIGFzIEZOb2RlT3V0cHV0RGlyZWN0aXZlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3RhcmdldCgpOiBGTm9kZUlucHV0RGlyZWN0aXZlIHtcbiAgICByZXR1cm4gdGhpcy5fdGFyZ2V0UmVmLmNvbm5lY3RvciBhcyBGTm9kZUlucHV0RGlyZWN0aXZlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3I6IEZNZWRpYXRvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9iZWhhdmlvdXI6IENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Nvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zb3VyY2VSZWY6IElDb25uZWN0b3JSZWN0UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhcmdldFJlZjogSUNvbm5lY3RvclJlY3RSZWYsXG4gICkge1xuICAgIHRoaXMuX2FuY2hvclJlY3QgPSByZWN0RnJvbVBvaW50KHRoaXMuX2Nvbm5lY3Rpb24ubGluZS5wb2ludDIpO1xuICB9XG5cbiAgcHVibGljIGNhbmRpZGF0ZXMoKTogSUNvbm5lY3RvclJlY3RSZWZbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbmRpZGF0ZXM7XG4gIH1cblxuICBwdWJsaWMgY29sbGVjdEFuZE1hcmtDYW5kaWRhdGVzKCk6IHZvaWQge1xuICAgIHRoaXMuX2NhbmRpZGF0ZXMgPSB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JSZWN0UmVmW10+KFxuICAgICAgbmV3IENhbGN1bGF0ZVRhcmdldENvbm5lY3RvcnNUb0Nvbm5lY3RSZXF1ZXN0KFxuICAgICAgICB0aGlzLl9zb3VyY2UsXG4gICAgICAgIHRoaXMuX3NvdXJjZVJlZi5yZWN0LmdyYXZpdHlDZW50ZXIsXG4gICAgICApLFxuICAgICk7XG5cbiAgICAvLyBFbnN1cmUgY3VycmVudCB0YXJnZXQgZXhpc3RzICh1c3VhbGx5IGl0IGFscmVhZHkgZG9lcykuXG4gICAgY29uc3QgY3VycmVudFRhcmdldElkID0gdGhpcy5fY29ubmVjdGlvbi5mSW5wdXRJZCgpO1xuICAgIGlmIChjdXJyZW50VGFyZ2V0SWQgJiYgIXRoaXMuX2NhbmRpZGF0ZXMuc29tZSgoeCkgPT4geC5jb25uZWN0b3IuZklkKCkgPT09IGN1cnJlbnRUYXJnZXRJZCkpIHtcbiAgICAgIHRoaXMuX2NhbmRpZGF0ZXMucHVzaCh0aGlzLl90YXJnZXRSZWYpO1xuICAgIH1cblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUoXG4gICAgICBuZXcgTWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QodGhpcy5fY2FuZGlkYXRlcy5tYXAoKHgpID0+IHguY29ubmVjdG9yKSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTbmFwQ29ubmVjdGlvbihzbmFwOiBGU25hcENvbm5lY3Rpb25Db21wb25lbnQgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLl9zbmFwID0gc25hcDtcbiAgICBpZiAoIXNuYXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTb3VyY2UgaXMgZml4ZWQsIHNvIHNuYXAtcHJldmlldyBhbHdheXMgc3RhcnRzIGF0IGN1cnJlbnQgc291cmNlLlxuICAgIHNuYXAuZk91dHB1dElkLnNldCh0aGlzLl9jb25uZWN0aW9uLmZPdXRwdXRJZCgpKTtcbiAgICBzbmFwLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJSZWN0ID0gdGhpcy5fYW5jaG9yUmVjdC5hZGRQb2ludChkaWZmZXJlbmNlKTtcblxuICAgIGNvbnN0IGNsb3Nlc3QgPSB0aGlzLl9maW5kQ2xvc2VzdChwb2ludGVyUmVjdC5ncmF2aXR5Q2VudGVyKTtcbiAgICBjb25zdCB0YXJnZXRTaWRlID0gY2xvc2VzdD8uY29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUgPz8gdGhpcy5fdGFyZ2V0LmZDb25uZWN0YWJsZVNpZGU7XG5cbiAgICB0aGlzLl9kcmF3KHBvaW50ZXJSZWN0LCB0YXJnZXRTaWRlKTtcblxuICAgIGNvbnN0IHNuYXAgPSB0aGlzLl9zbmFwO1xuICAgIGlmICghc25hcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2RyYXdTbmFwKHdpdGhpblNuYXBUaHJlc2hvbGQoY2xvc2VzdCwgc25hcCkpO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlclVwKCk6IHZvaWQge1xuICAgIHRoaXMuX2RyYXcodGhpcy5fYW5jaG9yUmVjdCwgdGhpcy5fdGFyZ2V0UmVmLmNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlKTtcbiAgICB0aGlzLl9zbmFwPy5oaWRlKCk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKFxuICAgICAgbmV3IFVubWFya0Nvbm5lY3RhYmxlQ29ubmVjdG9yc1JlcXVlc3QodGhpcy5fY2FuZGlkYXRlcy5tYXAoKHgpID0+IHguY29ubmVjdG9yKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRDbG9zZXN0KHBvaW50OiBJUG9pbnQpOiBJQ2xvc2VzdENvbm5lY3RvclJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNsb3Nlc3RDb25uZWN0b3JSZWYgfCB1bmRlZmluZWQ+KFxuICAgICAgbmV3IENhbGN1bGF0ZUNsb3Nlc3RDb25uZWN0b3JSZXF1ZXN0KHBvaW50LCB0aGlzLl9jYW5kaWRhdGVzKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZHJhdyh0YXJnZXRSZWN0OiBSb3VuZGVkUmVjdCwgdGFyZ2V0U2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5lID0gdGhpcy5fYmVoYXZpb3VyLmhhbmRsZShcbiAgICAgIG5ldyBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlclJlcXVlc3QoXG4gICAgICAgIHRoaXMuX3NvdXJjZVJlZi5yZWN0LFxuICAgICAgICB0YXJnZXRSZWN0LFxuICAgICAgICB0aGlzLl9jb25uZWN0aW9uLFxuICAgICAgICB0aGlzLl9zb3VyY2UuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgdGFyZ2V0U2lkZSxcbiAgICAgICAgdGhpcy5fcmVzb2x2ZVJvdGF0aW9uQ29udGV4dCh0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yKSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgdGhpcy5fY29ubmVjdGlvbi5zZXRMaW5lKGxpbmUpO1xuICAgIHRoaXMuX2Nvbm5lY3Rpb24ucmVkcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3U25hcChjbG9zZXN0OiBJQ2xvc2VzdENvbm5lY3RvclJlZiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IHNuYXAgPSB0aGlzLl9zbmFwO1xuICAgIGlmICghc25hcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghY2xvc2VzdCkge1xuICAgICAgc25hcC5oaWRlKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lOiBJTGluZSA9IHRoaXMuX2JlaGF2aW91ci5oYW5kbGUoXG4gICAgICBuZXcgQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXJSZXF1ZXN0KFxuICAgICAgICB0aGlzLl9zb3VyY2VSZWYucmVjdCxcbiAgICAgICAgY2xvc2VzdC5yZWN0LFxuICAgICAgICBzbmFwLFxuICAgICAgICB0aGlzLl9zb3VyY2UuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgY2xvc2VzdC5jb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgdGhpcy5fcmVzb2x2ZVJvdGF0aW9uQ29udGV4dCh0aGlzLl9zb3VyY2VSZWYuY29ubmVjdG9yKSxcbiAgICAgICAgdGhpcy5fcmVzb2x2ZVJvdGF0aW9uQ29udGV4dChjbG9zZXN0LmNvbm5lY3RvciksXG4gICAgICApLFxuICAgICk7XG5cbiAgICBzbmFwLnNob3coKTtcbiAgICBzbmFwLnNldExpbmUobGluZSk7XG4gICAgc25hcC5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc29sdmVSb3RhdGlvbkNvbnRleHQoXG4gICAgY29ubmVjdG9yPzogRkNvbm5lY3RvckJhc2UsXG4gICk6IElDb25uZWN0aW9uRW5kcG9pbnRSb3RhdGlvbkNvbnRleHQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElDb25uZWN0aW9uRW5kcG9pbnRSb3RhdGlvbkNvbnRleHQgfCB1bmRlZmluZWQ+KFxuICAgICAgbmV3IFJlc29sdmVDb25uZWN0aW9uRW5kcG9pbnRSb3RhdGlvbkNvbnRleHRSZXF1ZXN0KGNvbm5lY3RvciksXG4gICAgKTtcbiAgfVxufVxuIl19
|