@foblex/flow 18.3.0 → 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/index.d.ts +1 -0
- package/domain/f-connection/providers.d.ts +2 -1
- package/domain/f-connection/redraw-connections/redraw-connections.d.ts +1 -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/index.mjs +2 -1
- package/esm2022/domain/f-connection/providers.mjs +3 -1
- package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +6 -2
- 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-v2/components/connection-content/f-connection-content.mjs +18 -4
- 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-worker/features/calculate-connection-worker-payload-item/calculate-connection-worker-payload-item.mjs +13 -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 +13 -1
- 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 +20 -16
- 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-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-worker/features/calculate-connection-worker-payload-item/calculate-connection-worker-payload-item.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-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 +17 -16
- 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 +7648 -7120
- 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
|
@@ -3,9 +3,11 @@ import { inject, Injectable } from '@angular/core';
|
|
|
3
3
|
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
4
4
|
import { CalculateConnectionWorkerPayloadItemRequest } from './calculate-connection-worker-payload-item-request';
|
|
5
5
|
import { ResolveConnectionWorkerContextRequest, } from '../resolve-connection-worker-context';
|
|
6
|
+
import { FComponentsStore } from '../../../f-storage';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
let CalculateConnectionWorkerPayloadItem = class CalculateConnectionWorkerPayloadItem {
|
|
8
9
|
_mediator = inject(FMediator);
|
|
10
|
+
_store = inject(FComponentsStore);
|
|
9
11
|
handle({ connection, cache, }) {
|
|
10
12
|
const context = this._mediator.execute(new ResolveConnectionWorkerContextRequest(connection, cache));
|
|
11
13
|
if (!context) {
|
|
@@ -18,17 +20,27 @@ let CalculateConnectionWorkerPayloadItem = class CalculateConnectionWorkerPayloa
|
|
|
18
20
|
inputSide: connection.fInputSide(),
|
|
19
21
|
sourceConnectableSide: source.fConnectableSide,
|
|
20
22
|
targetConnectableSide: target.fConnectableSide,
|
|
23
|
+
sourceRotation: this._store.nodes.get(source.fNodeId)?._rotate || 0,
|
|
24
|
+
targetRotation: this._store.nodes.get(target.fNodeId)?._rotate || 0,
|
|
21
25
|
sourceRect: {
|
|
22
26
|
x: sourceRect.x,
|
|
23
27
|
y: sourceRect.y,
|
|
24
28
|
width: sourceRect.width,
|
|
25
29
|
height: sourceRect.height,
|
|
30
|
+
radius1: sourceRect.radius1,
|
|
31
|
+
radius2: sourceRect.radius2,
|
|
32
|
+
radius3: sourceRect.radius3,
|
|
33
|
+
radius4: sourceRect.radius4,
|
|
26
34
|
},
|
|
27
35
|
targetRect: {
|
|
28
36
|
x: targetRect.x,
|
|
29
37
|
y: targetRect.y,
|
|
30
38
|
width: targetRect.width,
|
|
31
39
|
height: targetRect.height,
|
|
40
|
+
radius1: targetRect.radius1,
|
|
41
|
+
radius2: targetRect.radius2,
|
|
42
|
+
radius3: targetRect.radius3,
|
|
43
|
+
radius4: targetRect.radius4,
|
|
32
44
|
},
|
|
33
45
|
};
|
|
34
46
|
}
|
|
@@ -42,4 +54,4 @@ export { CalculateConnectionWorkerPayloadItem };
|
|
|
42
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectionWorkerPayloadItem, decorators: [{
|
|
43
55
|
type: Injectable
|
|
44
56
|
}] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3Rpb24td29ya2VyLXBheWxvYWQtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci9mZWF0dXJlcy9jYWxjdWxhdGUtY29ubmVjdGlvbi13b3JrZXItcGF5bG9hZC1pdGVtL2NhbGN1bGF0ZS1jb25uZWN0aW9uLXdvcmtlci1wYXlsb2FkLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNqSCxPQUFPLEVBRUwscUNBQXFDLEdBQ3RDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBSS9DLElBQU0sb0NBQW9DLEdBQTFDLE1BQU0sb0NBQW9DO0lBSTlCLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sQ0FBQyxFQUNaLFVBQVUsRUFDVixLQUFLLEdBQ3VDO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUNwQyxJQUFJLHFDQUFxQyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FDN0QsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFM0QsT0FBTztZQUNMLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUztZQUM5QixVQUFVLEVBQUUsVUFBVSxDQUFDLFdBQVcsRUFBRTtZQUNwQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRTtZQUNsQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsZ0JBQWdCO1lBQzlDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7WUFDOUMsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUM7WUFDbkUsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUM7WUFDbkUsVUFBVSxFQUFFO2dCQUNWLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDZixDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ2YsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO2dCQUN2QixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07Z0JBQ3pCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztnQkFDM0IsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO2dCQUMzQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87Z0JBQzNCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTzthQUM1QjtZQUNELFVBQVUsRUFBRTtnQkFDVixDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNmLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztnQkFDdkIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNO2dCQUN6QixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87Z0JBQzNCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztnQkFDM0IsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO2dCQUMzQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87YUFDNUI7U0FDRixDQUFDO0lBQ0osQ0FBQzt3R0FqRFUsb0NBQW9DOzRHQUFwQyxvQ0FBb0M7O0FBQXBDLG9DQUFvQztJQURoRCxrQkFBa0IsQ0FBQywyQ0FBMkMsQ0FBQztHQUNuRCxvQ0FBb0MsQ0FrRGhEOzs0RkFsRFksb0NBQW9DO2tCQUZoRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgSUZDb25uZWN0aW9uV29ya2VyUmVxdWVzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBDYWxjdWxhdGVDb25uZWN0aW9uV29ya2VyUGF5bG9hZEl0ZW1SZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi13b3JrZXItcGF5bG9hZC1pdGVtLXJlcXVlc3QnO1xuaW1wb3J0IHtcbiAgSUZDb25uZWN0aW9uV29ya2VyQ29udGV4dCxcbiAgUmVzb2x2ZUNvbm5lY3Rpb25Xb3JrZXJDb250ZXh0UmVxdWVzdCxcbn0gZnJvbSAnLi4vcmVzb2x2ZS1jb25uZWN0aW9uLXdvcmtlci1jb250ZXh0JztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKENhbGN1bGF0ZUNvbm5lY3Rpb25Xb3JrZXJQYXlsb2FkSXRlbVJlcXVlc3QpXG5leHBvcnQgY2xhc3MgQ2FsY3VsYXRlQ29ubmVjdGlvbldvcmtlclBheWxvYWRJdGVtXG4gIGltcGxlbWVudHNcbiAgICBJRXhlY3V0aW9uPENhbGN1bGF0ZUNvbm5lY3Rpb25Xb3JrZXJQYXlsb2FkSXRlbVJlcXVlc3QsIElGQ29ubmVjdGlvbldvcmtlclJlcXVlc3RJdGVtIHwgbnVsbD5cbntcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG5cbiAgcHVibGljIGhhbmRsZSh7XG4gICAgY29ubmVjdGlvbixcbiAgICBjYWNoZSxcbiAgfTogQ2FsY3VsYXRlQ29ubmVjdGlvbldvcmtlclBheWxvYWRJdGVtUmVxdWVzdCk6IElGQ29ubmVjdGlvbldvcmtlclJlcXVlc3RJdGVtIHwgbnVsbCB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUZDb25uZWN0aW9uV29ya2VyQ29udGV4dCB8IG51bGw+KFxuICAgICAgbmV3IFJlc29sdmVDb25uZWN0aW9uV29ya2VyQ29udGV4dFJlcXVlc3QoY29ubmVjdGlvbiwgY2FjaGUpLFxuICAgICk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB7IHNvdXJjZSwgdGFyZ2V0LCBzb3VyY2VSZWN0LCB0YXJnZXRSZWN0IH0gPSBjb250ZXh0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJlaGF2aW9yOiBjb25uZWN0aW9uLmZCZWhhdmlvcixcbiAgICAgIG91dHB1dFNpZGU6IGNvbm5lY3Rpb24uZk91dHB1dFNpZGUoKSxcbiAgICAgIGlucHV0U2lkZTogY29ubmVjdGlvbi5mSW5wdXRTaWRlKCksXG4gICAgICBzb3VyY2VDb25uZWN0YWJsZVNpZGU6IHNvdXJjZS5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgdGFyZ2V0Q29ubmVjdGFibGVTaWRlOiB0YXJnZXQuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgIHNvdXJjZVJvdGF0aW9uOiB0aGlzLl9zdG9yZS5ub2Rlcy5nZXQoc291cmNlLmZOb2RlSWQpPy5fcm90YXRlIHx8IDAsXG4gICAgICB0YXJnZXRSb3RhdGlvbjogdGhpcy5fc3RvcmUubm9kZXMuZ2V0KHRhcmdldC5mTm9kZUlkKT8uX3JvdGF0ZSB8fCAwLFxuICAgICAgc291cmNlUmVjdDoge1xuICAgICAgICB4OiBzb3VyY2VSZWN0LngsXG4gICAgICAgIHk6IHNvdXJjZVJlY3QueSxcbiAgICAgICAgd2lkdGg6IHNvdXJjZVJlY3Qud2lkdGgsXG4gICAgICAgIGhlaWdodDogc291cmNlUmVjdC5oZWlnaHQsXG4gICAgICAgIHJhZGl1czE6IHNvdXJjZVJlY3QucmFkaXVzMSxcbiAgICAgICAgcmFkaXVzMjogc291cmNlUmVjdC5yYWRpdXMyLFxuICAgICAgICByYWRpdXMzOiBzb3VyY2VSZWN0LnJhZGl1czMsXG4gICAgICAgIHJhZGl1czQ6IHNvdXJjZVJlY3QucmFkaXVzNCxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRSZWN0OiB7XG4gICAgICAgIHg6IHRhcmdldFJlY3QueCxcbiAgICAgICAgeTogdGFyZ2V0UmVjdC55LFxuICAgICAgICB3aWR0aDogdGFyZ2V0UmVjdC53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiB0YXJnZXRSZWN0LmhlaWdodCxcbiAgICAgICAgcmFkaXVzMTogdGFyZ2V0UmVjdC5yYWRpdXMxLFxuICAgICAgICByYWRpdXMyOiB0YXJnZXRSZWN0LnJhZGl1czIsXG4gICAgICAgIHJhZGl1czM6IHRhcmdldFJlY3QucmFkaXVzMyxcbiAgICAgICAgcmFkaXVzNDogdGFyZ2V0UmVjdC5yYWRpdXM0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWNvbm5lY3Rpb24td29ya2VyLXJlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi13b3JrZXIvbW9kZWwvaS1mLWNvbm5lY3Rpb24td29ya2VyLXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUZDb25uZWN0aW9uV29ya2VyUmVjdCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgcmFkaXVzMTogbnVtYmVyO1xuICByYWRpdXMyOiBudW1iZXI7XG4gIHJhZGl1czM6IG51bWJlcjtcbiAgcmFkaXVzNDogbnVtYmVyO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWNvbm5lY3Rpb24td29ya2VyLXJlcXVlc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci9tb2RlbC9pLWYtY29ubmVjdGlvbi13b3JrZXItcmVxdWVzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRkNvbm5lY3Rpb25Xb3JrZXJSZWN0IH0gZnJvbSAnLi9pLWYtY29ubmVjdGlvbi13b3JrZXItcmVjdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZDb25uZWN0aW9uV29ya2VyUmVxdWVzdEl0ZW0ge1xuICBvcmlnaW5hbEluZGV4PzogbnVtYmVyO1xuICBiZWhhdmlvcjogc3RyaW5nO1xuICBvdXRwdXRTaWRlOiBzdHJpbmc7XG4gIGlucHV0U2lkZTogc3RyaW5nO1xuICBzb3VyY2VDb25uZWN0YWJsZVNpZGU6IHN0cmluZztcbiAgdGFyZ2V0Q29ubmVjdGFibGVTaWRlOiBzdHJpbmc7XG4gIHNvdXJjZVJvdGF0aW9uOiBudW1iZXI7XG4gIHRhcmdldFJvdGF0aW9uOiBudW1iZXI7XG4gIHNvdXJjZVJlY3Q6IElGQ29ubmVjdGlvbldvcmtlclJlY3Q7XG4gIHRhcmdldFJlY3Q6IElGQ29ubmVjdGlvbldvcmtlclJlY3Q7XG59XG4iXX0=
|
|
@@ -48,11 +48,19 @@ function calculateItem(item) {
|
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
if (item.sourceRotation || item.targetRotation) {
|
|
52
|
+
return { originalIndex: item.originalIndex, supported: false };
|
|
53
|
+
}
|
|
54
|
+
|
|
51
55
|
if (item.behavior !== 'fixed') {
|
|
52
56
|
if (item.behavior !== 'floating') {
|
|
53
57
|
return { originalIndex: item.originalIndex, supported: false };
|
|
54
58
|
}
|
|
55
59
|
|
|
60
|
+
if (hasRoundedCorners(item.sourceRect) || hasRoundedCorners(item.targetRect)) {
|
|
61
|
+
return { originalIndex: item.originalIndex, supported: false };
|
|
62
|
+
}
|
|
63
|
+
|
|
56
64
|
return {
|
|
57
65
|
originalIndex: item.originalIndex,
|
|
58
66
|
supported: true,
|
|
@@ -144,6 +152,10 @@ function buildFloatingLine(sourceRect, targetRect) {
|
|
|
144
152
|
};
|
|
145
153
|
}
|
|
146
154
|
|
|
155
|
+
function hasRoundedCorners(rect) {
|
|
156
|
+
return !!(rect.radius1 || rect.radius2 || rect.radius3 || rect.radius4);
|
|
157
|
+
}
|
|
158
|
+
|
|
147
159
|
function getRectCenter(rect) {
|
|
148
160
|
return {
|
|
149
161
|
x: rect.x + rect.width / 2,
|
|
@@ -232,4 +244,4 @@ export function revokeConnectionWorkerUrl(workerUrl, urlApi) {
|
|
|
232
244
|
}
|
|
233
245
|
resolvedUrlApi.revokeObjectURL(workerUrl);
|
|
234
246
|
}
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi13b3JrZXItcnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci93b3JrZXIvY29ubmVjdGlvbi13b3JrZXItcnVudGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FvTTVDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFFVCxNQUFNLFVBQVUsa0NBQWtDLENBQUMsU0FBb0M7SUFDckYsT0FBTyxDQUFDLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSw4QkFBOEIsQ0FDNUMsU0FBb0M7SUFFcEMsTUFBTSxhQUFhLEdBQUcsU0FBbUUsQ0FBQztJQUMxRixNQUFNLFFBQVEsR0FBRyxhQUFhLEVBQUUsSUFBSSxDQUFDO0lBQ3JDLE1BQU0sVUFBVSxHQUFHLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDekMsTUFBTSxNQUFNLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQztJQUNsQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFDRSxPQUFPLE1BQU0sRUFBRSxlQUFlLEtBQUssVUFBVTtRQUM3QyxPQUFPLE1BQU0sQ0FBQyxlQUFlLEtBQUssVUFBVSxFQUM1QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTztRQUNMLFFBQVE7UUFDUixVQUFVO1FBQ1YsTUFBTTtLQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE9BQWlDO0lBQ3pFLE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLEVBQUU7UUFDOUQsSUFBSSxFQUFFLGlCQUFpQjtLQUN4QixDQUFDLENBQUM7SUFFSCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLFNBQW9DLEVBQ3BDLE1BQW1EO0lBRW5ELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNFLElBQUksT0FBTyxjQUFjLEVBQUUsZUFBZSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzFELE9BQU87SUFDVCxDQUFDO0lBRUQsY0FBYyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBUQ29ubmVjdGlvbldvcmtlclVybEFwaSA9IFBpY2s8dHlwZW9mIFVSTCwgJ2NyZWF0ZU9iamVjdFVSTCcgfCAncmV2b2tlT2JqZWN0VVJMJz47XG5cbnR5cGUgVENvbm5lY3Rpb25Xb3JrZXJSdW50aW1lID0ge1xuICBibG9iQ3RvcjogdHlwZW9mIEJsb2I7XG4gIHdvcmtlckN0b3I6IHR5cGVvZiBXb3JrZXI7XG4gIHVybEFwaTogVENvbm5lY3Rpb25Xb3JrZXJVcmxBcGk7XG59O1xuXG5jb25zdCBGX0NPTk5FQ1RJT05fV09SS0VSX1NPVVJDRSA9IFN0cmluZy5yYXdgXG5jb25zdCBFUFNJTE9OID0gMC41O1xuXG5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IGRhdGEgPSBldmVudD8uZGF0YTtcbiAgY29uc3QgcmVxdWVzdElkID0gZGF0YT8ucmVxdWVzdElkO1xuICBjb25zdCBpdGVtcyA9IEFycmF5LmlzQXJyYXkoZGF0YT8uaXRlbXMpID8gZGF0YS5pdGVtcyA6IFtdO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gY2FsY3VsYXRlSXRlbShpdGVtKSk7XG4gICAgcG9zdE1lc3NhZ2UoeyByZXF1ZXN0SWQsIHJlc3VsdHMgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0Nvbm5lY3Rpb24gd29ya2VyIGZhaWxlZC4nO1xuICAgIHBvc3RNZXNzYWdlKHsgcmVxdWVzdElkLCBlcnJvcjogbWVzc2FnZSB9KTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUl0ZW0oaXRlbSkge1xuICBjb25zdCBzb3VyY2VDZW50ZXJYID0gaXRlbS5zb3VyY2VSZWN0LnggKyBpdGVtLnNvdXJjZVJlY3Qud2lkdGggLyAyO1xuICBjb25zdCBzb3VyY2VDZW50ZXJZID0gaXRlbS5zb3VyY2VSZWN0LnkgKyBpdGVtLnNvdXJjZVJlY3QuaGVpZ2h0IC8gMjtcbiAgY29uc3QgdGFyZ2V0Q2VudGVyWCA9IGl0ZW0udGFyZ2V0UmVjdC54ICsgaXRlbS50YXJnZXRSZWN0LndpZHRoIC8gMjtcbiAgY29uc3QgdGFyZ2V0Q2VudGVyWSA9IGl0ZW0udGFyZ2V0UmVjdC55ICsgaXRlbS50YXJnZXRSZWN0LmhlaWdodCAvIDI7XG5cbiAgY29uc3Qgc291cmNlU2lkZSA9IHJlc29sdmVDb25uZWN0YWJsZVNpZGUoXG4gICAgaXRlbS5vdXRwdXRTaWRlLFxuICAgIHRhcmdldENlbnRlclggLSBzb3VyY2VDZW50ZXJYLFxuICAgIHRhcmdldENlbnRlclkgLSBzb3VyY2VDZW50ZXJZLFxuICAgIGl0ZW0uc291cmNlQ29ubmVjdGFibGVTaWRlLFxuICApO1xuXG4gIGNvbnN0IHRhcmdldFNpZGUgPSByZXNvbHZlQ29ubmVjdGFibGVTaWRlKFxuICAgIGl0ZW0uaW5wdXRTaWRlLFxuICAgIHNvdXJjZUNlbnRlclggLSB0YXJnZXRDZW50ZXJYLFxuICAgIHNvdXJjZUNlbnRlclkgLSB0YXJnZXRDZW50ZXJZLFxuICAgIGl0ZW0udGFyZ2V0Q29ubmVjdGFibGVTaWRlLFxuICApO1xuXG4gIGlmIChpdGVtLmJlaGF2aW9yID09PSAnZml4ZWRfY2VudGVyJykge1xuICAgIHJldHVybiB7XG4gICAgICBvcmlnaW5hbEluZGV4OiBpdGVtLm9yaWdpbmFsSW5kZXgsXG4gICAgICBzdXBwb3J0ZWQ6IHRydWUsXG4gICAgICBzb3VyY2VTaWRlLFxuICAgICAgdGFyZ2V0U2lkZSxcbiAgICAgIGxpbmU6IHtcbiAgICAgICAgcG9pbnQxOiB7IHg6IHNvdXJjZUNlbnRlclgsIHk6IHNvdXJjZUNlbnRlclkgfSxcbiAgICAgICAgcG9pbnQyOiB7IHg6IHRhcmdldENlbnRlclgsIHk6IHRhcmdldENlbnRlclkgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGlmIChpdGVtLmJlaGF2aW9yICE9PSAnZml4ZWQnKSB7XG4gICAgaWYgKGl0ZW0uYmVoYXZpb3IgIT09ICdmbG9hdGluZycpIHtcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsSW5kZXg6IGl0ZW0ub3JpZ2luYWxJbmRleCwgc3VwcG9ydGVkOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBvcmlnaW5hbEluZGV4OiBpdGVtLm9yaWdpbmFsSW5kZXgsXG4gICAgICBzdXBwb3J0ZWQ6IHRydWUsXG4gICAgICBzb3VyY2VTaWRlLFxuICAgICAgdGFyZ2V0U2lkZSxcbiAgICAgIGxpbmU6IGJ1aWxkRmxvYXRpbmdMaW5lKGl0ZW0uc291cmNlUmVjdCwgaXRlbS50YXJnZXRSZWN0KSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgbGluZSA9IGJ1aWxkRml4ZWRMaW5lKGl0ZW0uc291cmNlUmVjdCwgaXRlbS50YXJnZXRSZWN0LCBzb3VyY2VTaWRlLCB0YXJnZXRTaWRlKTtcbiAgaWYgKCFsaW5lKSB7XG4gICAgcmV0dXJuIHsgb3JpZ2luYWxJbmRleDogaXRlbS5vcmlnaW5hbEluZGV4LCBzdXBwb3J0ZWQ6IGZhbHNlIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG9yaWdpbmFsSW5kZXg6IGl0ZW0ub3JpZ2luYWxJbmRleCxcbiAgICBzdXBwb3J0ZWQ6IHRydWUsXG4gICAgc291cmNlU2lkZSxcbiAgICB0YXJnZXRTaWRlLFxuICAgIGxpbmUsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVDb25uZWN0YWJsZVNpZGUocmVxdWVzdGVkU2lkZSwgZGVsdGFYLCBkZWx0YVksIGZhbGxiYWNrU2lkZSkge1xuICBpZiAocmVxdWVzdGVkU2lkZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgcmV0dXJuIGZhbGxiYWNrU2lkZTtcbiAgfVxuXG4gIGNvbnN0IGFic1ggPSBNYXRoLmFicyhkZWx0YVgpO1xuICBjb25zdCBhYnNZID0gTWF0aC5hYnMoZGVsdGFZKTtcbiAgY29uc3QgbmVhclplcm8gPSBhYnNYIDwgRVBTSUxPTiAmJiBhYnNZIDwgRVBTSUxPTjtcblxuICBpZiAobmVhclplcm8pIHtcbiAgICByZXR1cm4gZmFsbGJhY2tTaWRlO1xuICB9XG5cbiAgY29uc3QgaG9yaXpvbnRhbERvbWluYW50ID0gYWJzWCA+PSBhYnNZO1xuXG4gIHN3aXRjaCAocmVxdWVzdGVkU2lkZSkge1xuICAgIGNhc2UgJ2NhbGN1bGF0ZSc6XG4gICAgICByZXR1cm4gaG9yaXpvbnRhbERvbWluYW50ID8gKGRlbHRhWCA+PSAwID8gJ3JpZ2h0JyA6ICdsZWZ0JykgOiBkZWx0YVkgPj0gMCA/ICdib3R0b20nIDogJ3RvcCc7XG5cbiAgICBjYXNlICdjYWxjdWxhdGVfaG9yaXpvbnRhbCc6XG4gICAgICBpZiAoYWJzWCA8IEVQU0lMT04pIHtcbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrU2lkZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlbHRhWCA+PSAwID8gJ3JpZ2h0JyA6ICdsZWZ0JztcblxuICAgIGNhc2UgJ2NhbGN1bGF0ZV92ZXJ0aWNhbCc6XG4gICAgICBpZiAoYWJzWSA8IEVQU0lMT04pIHtcbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrU2lkZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlbHRhWSA+PSAwID8gJ2JvdHRvbScgOiAndG9wJztcblxuICAgIGNhc2UgJ3RvcCc6XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICBjYXNlICdsZWZ0JzpcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICByZXR1cm4gcmVxdWVzdGVkU2lkZTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsbGJhY2tTaWRlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRml4ZWRMaW5lKHNvdXJjZVJlY3QsIHRhcmdldFJlY3QsIHNvdXJjZVNpZGUsIHRhcmdldFNpZGUpIHtcbiAgY29uc3Qgc291cmNlQW5jaG9yID0gc291cmNlU2lkZSA9PT0gJ2F1dG8nID8gJ2JvdHRvbScgOiBzb3VyY2VTaWRlO1xuICBjb25zdCB0YXJnZXRBbmNob3IgPSB0YXJnZXRTaWRlID09PSAnYXV0bycgPyAndG9wJyA6IHRhcmdldFNpZGU7XG5cbiAgY29uc3QgcG9pbnQxID0gZ2V0U2lkZVBvaW50KHNvdXJjZVJlY3QsIHNvdXJjZUFuY2hvcik7XG4gIGNvbnN0IHBvaW50MiA9IGdldFNpZGVQb2ludCh0YXJnZXRSZWN0LCB0YXJnZXRBbmNob3IpO1xuXG4gIGlmICghcG9pbnQxIHx8ICFwb2ludDIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7IHBvaW50MSwgcG9pbnQyIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRmxvYXRpbmdMaW5lKHNvdXJjZVJlY3QsIHRhcmdldFJlY3QpIHtcbiAgY29uc3Qgc291cmNlQ2VudGVyID0gZ2V0UmVjdENlbnRlcihzb3VyY2VSZWN0KTtcbiAgY29uc3QgdGFyZ2V0Q2VudGVyID0gZ2V0UmVjdENlbnRlcih0YXJnZXRSZWN0KTtcblxuICByZXR1cm4ge1xuICAgIHBvaW50MTogZ2V0UmVjdEJvcmRlckludGVyc2VjdGlvbihzb3VyY2VSZWN0LCBzb3VyY2VDZW50ZXIsIHRhcmdldENlbnRlciksXG4gICAgcG9pbnQyOiBnZXRSZWN0Qm9yZGVySW50ZXJzZWN0aW9uKHRhcmdldFJlY3QsIHRhcmdldENlbnRlciwgc291cmNlQ2VudGVyKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVjdENlbnRlcihyZWN0KSB7XG4gIHJldHVybiB7XG4gICAgeDogcmVjdC54ICsgcmVjdC53aWR0aCAvIDIsXG4gICAgeTogcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRSZWN0Qm9yZGVySW50ZXJzZWN0aW9uKHJlY3QsIGZyb20sIHRvKSB7XG4gIGNvbnN0IGhhbGZXaWR0aCA9IHJlY3Qud2lkdGggLyAyO1xuICBjb25zdCBoYWxmSGVpZ2h0ID0gcmVjdC5oZWlnaHQgLyAyO1xuICBjb25zdCBjZW50ZXIgPSBnZXRSZWN0Q2VudGVyKHJlY3QpO1xuXG4gIGNvbnN0IGR4ID0gdG8ueCAtIGZyb20ueDtcbiAgY29uc3QgZHkgPSB0by55IC0gZnJvbS55O1xuXG4gIGlmIChNYXRoLmFicyhkeCkgPCBFUFNJTE9OICYmIE1hdGguYWJzKGR5KSA8IEVQU0lMT04pIHtcbiAgICByZXR1cm4gY2VudGVyO1xuICB9XG5cbiAgY29uc3Qgc2NhbGVYID0gTWF0aC5hYnMoZHgpIDwgRVBTSUxPTiA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IGhhbGZXaWR0aCAvIE1hdGguYWJzKGR4KTtcbiAgY29uc3Qgc2NhbGVZID0gTWF0aC5hYnMoZHkpIDwgRVBTSUxPTiA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IGhhbGZIZWlnaHQgLyBNYXRoLmFicyhkeSk7XG4gIGNvbnN0IHNjYWxlID0gTWF0aC5taW4oc2NhbGVYLCBzY2FsZVkpO1xuXG4gIHJldHVybiB7XG4gICAgeDogY2VudGVyLnggKyBkeCAqIHNjYWxlLFxuICAgIHk6IGNlbnRlci55ICsgZHkgKiBzY2FsZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U2lkZVBvaW50KHJlY3QsIHNpZGUpIHtcbiAgY29uc3QgY2VudGVyWCA9IHJlY3QueCArIHJlY3Qud2lkdGggLyAyO1xuICBjb25zdCBjZW50ZXJZID0gcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyO1xuXG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICByZXR1cm4geyB4OiBjZW50ZXJYLCB5OiByZWN0LnkgfTtcblxuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIHJldHVybiB7IHg6IHJlY3QueCArIHJlY3Qud2lkdGgsIHk6IGNlbnRlclkgfTtcblxuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICByZXR1cm4geyB4OiBjZW50ZXJYLCB5OiByZWN0LnkgKyByZWN0LmhlaWdodCB9O1xuXG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICByZXR1cm4geyB4OiByZWN0LngsIHk6IGNlbnRlclkgfTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuYC50cmltKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Nvbm5lY3Rpb25Xb3JrZXJSdW50aW1lU3VwcG9ydGVkKHdpbmRvd1JlZjogV2luZG93IHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICByZXR1cm4gISFyZXNvbHZlQ29ubmVjdGlvbldvcmtlclJ1bnRpbWUod2luZG93UmVmKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb25uZWN0aW9uV29ya2VyUnVudGltZShcbiAgd2luZG93UmVmOiBXaW5kb3cgfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogVENvbm5lY3Rpb25Xb3JrZXJSdW50aW1lIHwgbnVsbCB7XG4gIGNvbnN0IHJ1bnRpbWVXaW5kb3cgPSB3aW5kb3dSZWYgYXMgUGFydGlhbDxXaW5kb3cgJiB0eXBlb2YgZ2xvYmFsVGhpcz4gfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb25zdCBibG9iQ3RvciA9IHJ1bnRpbWVXaW5kb3c/LkJsb2I7XG4gIGNvbnN0IHdvcmtlckN0b3IgPSBydW50aW1lV2luZG93Py5Xb3JrZXI7XG4gIGNvbnN0IHVybEFwaSA9IHJ1bnRpbWVXaW5kb3c/LlVSTDtcbiAgaWYgKCFibG9iQ3RvciB8fCAhd29ya2VyQ3Rvcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiB1cmxBcGk/LmNyZWF0ZU9iamVjdFVSTCAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgIHR5cGVvZiB1cmxBcGkucmV2b2tlT2JqZWN0VVJMICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBibG9iQ3RvcixcbiAgICB3b3JrZXJDdG9yLFxuICAgIHVybEFwaSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbm5lY3Rpb25Xb3JrZXJVcmwocnVudGltZTogVENvbm5lY3Rpb25Xb3JrZXJSdW50aW1lKTogc3RyaW5nIHtcbiAgY29uc3QgYmxvYiA9IG5ldyBydW50aW1lLmJsb2JDdG9yKFtGX0NPTk5FQ1RJT05fV09SS0VSX1NPVVJDRV0sIHtcbiAgICB0eXBlOiAndGV4dC9qYXZhc2NyaXB0JyxcbiAgfSk7XG5cbiAgcmV0dXJuIHJ1bnRpbWUudXJsQXBpLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldm9rZUNvbm5lY3Rpb25Xb3JrZXJVcmwoXG4gIHdvcmtlclVybDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgdXJsQXBpPzogUGljazx0eXBlb2YgVVJMLCAncmV2b2tlT2JqZWN0VVJMJz4gfCBudWxsLFxuKTogdm9pZCB7XG4gIGlmICghd29ya2VyVXJsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcmVzb2x2ZWRVcmxBcGkgPSB1cmxBcGkgPz8gKHR5cGVvZiBVUkwgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IFVSTCk7XG4gIGlmICh0eXBlb2YgcmVzb2x2ZWRVcmxBcGk/LnJldm9rZU9iamVjdFVSTCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlc29sdmVkVXJsQXBpLnJldm9rZU9iamVjdFVSTCh3b3JrZXJVcmwpO1xufVxuIl19
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi13b3JrZXItcnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci93b3JrZXIvY29ubmVjdGlvbi13b3JrZXItcnVudGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnTjVDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFFVCxNQUFNLFVBQVUsa0NBQWtDLENBQUMsU0FBb0M7SUFDckYsT0FBTyxDQUFDLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSw4QkFBOEIsQ0FDNUMsU0FBb0M7SUFFcEMsTUFBTSxhQUFhLEdBQUcsU0FBbUUsQ0FBQztJQUMxRixNQUFNLFFBQVEsR0FBRyxhQUFhLEVBQUUsSUFBSSxDQUFDO0lBQ3JDLE1BQU0sVUFBVSxHQUFHLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDekMsTUFBTSxNQUFNLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQztJQUNsQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFDRSxPQUFPLE1BQU0sRUFBRSxlQUFlLEtBQUssVUFBVTtRQUM3QyxPQUFPLE1BQU0sQ0FBQyxlQUFlLEtBQUssVUFBVSxFQUM1QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTztRQUNMLFFBQVE7UUFDUixVQUFVO1FBQ1YsTUFBTTtLQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE9BQWlDO0lBQ3pFLE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLEVBQUU7UUFDOUQsSUFBSSxFQUFFLGlCQUFpQjtLQUN4QixDQUFDLENBQUM7SUFFSCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLFNBQW9DLEVBQ3BDLE1BQW1EO0lBRW5ELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNFLElBQUksT0FBTyxjQUFjLEVBQUUsZUFBZSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzFELE9BQU87SUFDVCxDQUFDO0lBRUQsY0FBYyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBUQ29ubmVjdGlvbldvcmtlclVybEFwaSA9IFBpY2s8dHlwZW9mIFVSTCwgJ2NyZWF0ZU9iamVjdFVSTCcgfCAncmV2b2tlT2JqZWN0VVJMJz47XG5cbnR5cGUgVENvbm5lY3Rpb25Xb3JrZXJSdW50aW1lID0ge1xuICBibG9iQ3RvcjogdHlwZW9mIEJsb2I7XG4gIHdvcmtlckN0b3I6IHR5cGVvZiBXb3JrZXI7XG4gIHVybEFwaTogVENvbm5lY3Rpb25Xb3JrZXJVcmxBcGk7XG59O1xuXG5jb25zdCBGX0NPTk5FQ1RJT05fV09SS0VSX1NPVVJDRSA9IFN0cmluZy5yYXdgXG5jb25zdCBFUFNJTE9OID0gMC41O1xuXG5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IGRhdGEgPSBldmVudD8uZGF0YTtcbiAgY29uc3QgcmVxdWVzdElkID0gZGF0YT8ucmVxdWVzdElkO1xuICBjb25zdCBpdGVtcyA9IEFycmF5LmlzQXJyYXkoZGF0YT8uaXRlbXMpID8gZGF0YS5pdGVtcyA6IFtdO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gY2FsY3VsYXRlSXRlbShpdGVtKSk7XG4gICAgcG9zdE1lc3NhZ2UoeyByZXF1ZXN0SWQsIHJlc3VsdHMgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0Nvbm5lY3Rpb24gd29ya2VyIGZhaWxlZC4nO1xuICAgIHBvc3RNZXNzYWdlKHsgcmVxdWVzdElkLCBlcnJvcjogbWVzc2FnZSB9KTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUl0ZW0oaXRlbSkge1xuICBjb25zdCBzb3VyY2VDZW50ZXJYID0gaXRlbS5zb3VyY2VSZWN0LnggKyBpdGVtLnNvdXJjZVJlY3Qud2lkdGggLyAyO1xuICBjb25zdCBzb3VyY2VDZW50ZXJZID0gaXRlbS5zb3VyY2VSZWN0LnkgKyBpdGVtLnNvdXJjZVJlY3QuaGVpZ2h0IC8gMjtcbiAgY29uc3QgdGFyZ2V0Q2VudGVyWCA9IGl0ZW0udGFyZ2V0UmVjdC54ICsgaXRlbS50YXJnZXRSZWN0LndpZHRoIC8gMjtcbiAgY29uc3QgdGFyZ2V0Q2VudGVyWSA9IGl0ZW0udGFyZ2V0UmVjdC55ICsgaXRlbS50YXJnZXRSZWN0LmhlaWdodCAvIDI7XG5cbiAgY29uc3Qgc291cmNlU2lkZSA9IHJlc29sdmVDb25uZWN0YWJsZVNpZGUoXG4gICAgaXRlbS5vdXRwdXRTaWRlLFxuICAgIHRhcmdldENlbnRlclggLSBzb3VyY2VDZW50ZXJYLFxuICAgIHRhcmdldENlbnRlclkgLSBzb3VyY2VDZW50ZXJZLFxuICAgIGl0ZW0uc291cmNlQ29ubmVjdGFibGVTaWRlLFxuICApO1xuXG4gIGNvbnN0IHRhcmdldFNpZGUgPSByZXNvbHZlQ29ubmVjdGFibGVTaWRlKFxuICAgIGl0ZW0uaW5wdXRTaWRlLFxuICAgIHNvdXJjZUNlbnRlclggLSB0YXJnZXRDZW50ZXJYLFxuICAgIHNvdXJjZUNlbnRlclkgLSB0YXJnZXRDZW50ZXJZLFxuICAgIGl0ZW0udGFyZ2V0Q29ubmVjdGFibGVTaWRlLFxuICApO1xuXG4gIGlmIChpdGVtLmJlaGF2aW9yID09PSAnZml4ZWRfY2VudGVyJykge1xuICAgIHJldHVybiB7XG4gICAgICBvcmlnaW5hbEluZGV4OiBpdGVtLm9yaWdpbmFsSW5kZXgsXG4gICAgICBzdXBwb3J0ZWQ6IHRydWUsXG4gICAgICBzb3VyY2VTaWRlLFxuICAgICAgdGFyZ2V0U2lkZSxcbiAgICAgIGxpbmU6IHtcbiAgICAgICAgcG9pbnQxOiB7IHg6IHNvdXJjZUNlbnRlclgsIHk6IHNvdXJjZUNlbnRlclkgfSxcbiAgICAgICAgcG9pbnQyOiB7IHg6IHRhcmdldENlbnRlclgsIHk6IHRhcmdldENlbnRlclkgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGlmIChpdGVtLnNvdXJjZVJvdGF0aW9uIHx8IGl0ZW0udGFyZ2V0Um90YXRpb24pIHtcbiAgICByZXR1cm4geyBvcmlnaW5hbEluZGV4OiBpdGVtLm9yaWdpbmFsSW5kZXgsIHN1cHBvcnRlZDogZmFsc2UgfTtcbiAgfVxuXG4gIGlmIChpdGVtLmJlaGF2aW9yICE9PSAnZml4ZWQnKSB7XG4gICAgaWYgKGl0ZW0uYmVoYXZpb3IgIT09ICdmbG9hdGluZycpIHtcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsSW5kZXg6IGl0ZW0ub3JpZ2luYWxJbmRleCwgc3VwcG9ydGVkOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIGlmIChoYXNSb3VuZGVkQ29ybmVycyhpdGVtLnNvdXJjZVJlY3QpIHx8IGhhc1JvdW5kZWRDb3JuZXJzKGl0ZW0udGFyZ2V0UmVjdCkpIHtcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsSW5kZXg6IGl0ZW0ub3JpZ2luYWxJbmRleCwgc3VwcG9ydGVkOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBvcmlnaW5hbEluZGV4OiBpdGVtLm9yaWdpbmFsSW5kZXgsXG4gICAgICBzdXBwb3J0ZWQ6IHRydWUsXG4gICAgICBzb3VyY2VTaWRlLFxuICAgICAgdGFyZ2V0U2lkZSxcbiAgICAgIGxpbmU6IGJ1aWxkRmxvYXRpbmdMaW5lKGl0ZW0uc291cmNlUmVjdCwgaXRlbS50YXJnZXRSZWN0KSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgbGluZSA9IGJ1aWxkRml4ZWRMaW5lKGl0ZW0uc291cmNlUmVjdCwgaXRlbS50YXJnZXRSZWN0LCBzb3VyY2VTaWRlLCB0YXJnZXRTaWRlKTtcbiAgaWYgKCFsaW5lKSB7XG4gICAgcmV0dXJuIHsgb3JpZ2luYWxJbmRleDogaXRlbS5vcmlnaW5hbEluZGV4LCBzdXBwb3J0ZWQ6IGZhbHNlIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG9yaWdpbmFsSW5kZXg6IGl0ZW0ub3JpZ2luYWxJbmRleCxcbiAgICBzdXBwb3J0ZWQ6IHRydWUsXG4gICAgc291cmNlU2lkZSxcbiAgICB0YXJnZXRTaWRlLFxuICAgIGxpbmUsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVDb25uZWN0YWJsZVNpZGUocmVxdWVzdGVkU2lkZSwgZGVsdGFYLCBkZWx0YVksIGZhbGxiYWNrU2lkZSkge1xuICBpZiAocmVxdWVzdGVkU2lkZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgcmV0dXJuIGZhbGxiYWNrU2lkZTtcbiAgfVxuXG4gIGNvbnN0IGFic1ggPSBNYXRoLmFicyhkZWx0YVgpO1xuICBjb25zdCBhYnNZID0gTWF0aC5hYnMoZGVsdGFZKTtcbiAgY29uc3QgbmVhclplcm8gPSBhYnNYIDwgRVBTSUxPTiAmJiBhYnNZIDwgRVBTSUxPTjtcblxuICBpZiAobmVhclplcm8pIHtcbiAgICByZXR1cm4gZmFsbGJhY2tTaWRlO1xuICB9XG5cbiAgY29uc3QgaG9yaXpvbnRhbERvbWluYW50ID0gYWJzWCA+PSBhYnNZO1xuXG4gIHN3aXRjaCAocmVxdWVzdGVkU2lkZSkge1xuICAgIGNhc2UgJ2NhbGN1bGF0ZSc6XG4gICAgICByZXR1cm4gaG9yaXpvbnRhbERvbWluYW50ID8gKGRlbHRhWCA+PSAwID8gJ3JpZ2h0JyA6ICdsZWZ0JykgOiBkZWx0YVkgPj0gMCA/ICdib3R0b20nIDogJ3RvcCc7XG5cbiAgICBjYXNlICdjYWxjdWxhdGVfaG9yaXpvbnRhbCc6XG4gICAgICBpZiAoYWJzWCA8IEVQU0lMT04pIHtcbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrU2lkZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlbHRhWCA+PSAwID8gJ3JpZ2h0JyA6ICdsZWZ0JztcblxuICAgIGNhc2UgJ2NhbGN1bGF0ZV92ZXJ0aWNhbCc6XG4gICAgICBpZiAoYWJzWSA8IEVQU0lMT04pIHtcbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrU2lkZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlbHRhWSA+PSAwID8gJ2JvdHRvbScgOiAndG9wJztcblxuICAgIGNhc2UgJ3RvcCc6XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICBjYXNlICdsZWZ0JzpcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICByZXR1cm4gcmVxdWVzdGVkU2lkZTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsbGJhY2tTaWRlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRml4ZWRMaW5lKHNvdXJjZVJlY3QsIHRhcmdldFJlY3QsIHNvdXJjZVNpZGUsIHRhcmdldFNpZGUpIHtcbiAgY29uc3Qgc291cmNlQW5jaG9yID0gc291cmNlU2lkZSA9PT0gJ2F1dG8nID8gJ2JvdHRvbScgOiBzb3VyY2VTaWRlO1xuICBjb25zdCB0YXJnZXRBbmNob3IgPSB0YXJnZXRTaWRlID09PSAnYXV0bycgPyAndG9wJyA6IHRhcmdldFNpZGU7XG5cbiAgY29uc3QgcG9pbnQxID0gZ2V0U2lkZVBvaW50KHNvdXJjZVJlY3QsIHNvdXJjZUFuY2hvcik7XG4gIGNvbnN0IHBvaW50MiA9IGdldFNpZGVQb2ludCh0YXJnZXRSZWN0LCB0YXJnZXRBbmNob3IpO1xuXG4gIGlmICghcG9pbnQxIHx8ICFwb2ludDIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7IHBvaW50MSwgcG9pbnQyIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRmxvYXRpbmdMaW5lKHNvdXJjZVJlY3QsIHRhcmdldFJlY3QpIHtcbiAgY29uc3Qgc291cmNlQ2VudGVyID0gZ2V0UmVjdENlbnRlcihzb3VyY2VSZWN0KTtcbiAgY29uc3QgdGFyZ2V0Q2VudGVyID0gZ2V0UmVjdENlbnRlcih0YXJnZXRSZWN0KTtcblxuICByZXR1cm4ge1xuICAgIHBvaW50MTogZ2V0UmVjdEJvcmRlckludGVyc2VjdGlvbihzb3VyY2VSZWN0LCBzb3VyY2VDZW50ZXIsIHRhcmdldENlbnRlciksXG4gICAgcG9pbnQyOiBnZXRSZWN0Qm9yZGVySW50ZXJzZWN0aW9uKHRhcmdldFJlY3QsIHRhcmdldENlbnRlciwgc291cmNlQ2VudGVyKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaGFzUm91bmRlZENvcm5lcnMocmVjdCkge1xuICByZXR1cm4gISEocmVjdC5yYWRpdXMxIHx8IHJlY3QucmFkaXVzMiB8fCByZWN0LnJhZGl1czMgfHwgcmVjdC5yYWRpdXM0KTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVjdENlbnRlcihyZWN0KSB7XG4gIHJldHVybiB7XG4gICAgeDogcmVjdC54ICsgcmVjdC53aWR0aCAvIDIsXG4gICAgeTogcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRSZWN0Qm9yZGVySW50ZXJzZWN0aW9uKHJlY3QsIGZyb20sIHRvKSB7XG4gIGNvbnN0IGhhbGZXaWR0aCA9IHJlY3Qud2lkdGggLyAyO1xuICBjb25zdCBoYWxmSGVpZ2h0ID0gcmVjdC5oZWlnaHQgLyAyO1xuICBjb25zdCBjZW50ZXIgPSBnZXRSZWN0Q2VudGVyKHJlY3QpO1xuXG4gIGNvbnN0IGR4ID0gdG8ueCAtIGZyb20ueDtcbiAgY29uc3QgZHkgPSB0by55IC0gZnJvbS55O1xuXG4gIGlmIChNYXRoLmFicyhkeCkgPCBFUFNJTE9OICYmIE1hdGguYWJzKGR5KSA8IEVQU0lMT04pIHtcbiAgICByZXR1cm4gY2VudGVyO1xuICB9XG5cbiAgY29uc3Qgc2NhbGVYID0gTWF0aC5hYnMoZHgpIDwgRVBTSUxPTiA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IGhhbGZXaWR0aCAvIE1hdGguYWJzKGR4KTtcbiAgY29uc3Qgc2NhbGVZID0gTWF0aC5hYnMoZHkpIDwgRVBTSUxPTiA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IGhhbGZIZWlnaHQgLyBNYXRoLmFicyhkeSk7XG4gIGNvbnN0IHNjYWxlID0gTWF0aC5taW4oc2NhbGVYLCBzY2FsZVkpO1xuXG4gIHJldHVybiB7XG4gICAgeDogY2VudGVyLnggKyBkeCAqIHNjYWxlLFxuICAgIHk6IGNlbnRlci55ICsgZHkgKiBzY2FsZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U2lkZVBvaW50KHJlY3QsIHNpZGUpIHtcbiAgY29uc3QgY2VudGVyWCA9IHJlY3QueCArIHJlY3Qud2lkdGggLyAyO1xuICBjb25zdCBjZW50ZXJZID0gcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyO1xuXG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICByZXR1cm4geyB4OiBjZW50ZXJYLCB5OiByZWN0LnkgfTtcblxuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIHJldHVybiB7IHg6IHJlY3QueCArIHJlY3Qud2lkdGgsIHk6IGNlbnRlclkgfTtcblxuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICByZXR1cm4geyB4OiBjZW50ZXJYLCB5OiByZWN0LnkgKyByZWN0LmhlaWdodCB9O1xuXG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICByZXR1cm4geyB4OiByZWN0LngsIHk6IGNlbnRlclkgfTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuYC50cmltKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Nvbm5lY3Rpb25Xb3JrZXJSdW50aW1lU3VwcG9ydGVkKHdpbmRvd1JlZjogV2luZG93IHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICByZXR1cm4gISFyZXNvbHZlQ29ubmVjdGlvbldvcmtlclJ1bnRpbWUod2luZG93UmVmKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb25uZWN0aW9uV29ya2VyUnVudGltZShcbiAgd2luZG93UmVmOiBXaW5kb3cgfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogVENvbm5lY3Rpb25Xb3JrZXJSdW50aW1lIHwgbnVsbCB7XG4gIGNvbnN0IHJ1bnRpbWVXaW5kb3cgPSB3aW5kb3dSZWYgYXMgUGFydGlhbDxXaW5kb3cgJiB0eXBlb2YgZ2xvYmFsVGhpcz4gfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb25zdCBibG9iQ3RvciA9IHJ1bnRpbWVXaW5kb3c/LkJsb2I7XG4gIGNvbnN0IHdvcmtlckN0b3IgPSBydW50aW1lV2luZG93Py5Xb3JrZXI7XG4gIGNvbnN0IHVybEFwaSA9IHJ1bnRpbWVXaW5kb3c/LlVSTDtcbiAgaWYgKCFibG9iQ3RvciB8fCAhd29ya2VyQ3Rvcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiB1cmxBcGk/LmNyZWF0ZU9iamVjdFVSTCAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgIHR5cGVvZiB1cmxBcGkucmV2b2tlT2JqZWN0VVJMICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBibG9iQ3RvcixcbiAgICB3b3JrZXJDdG9yLFxuICAgIHVybEFwaSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbm5lY3Rpb25Xb3JrZXJVcmwocnVudGltZTogVENvbm5lY3Rpb25Xb3JrZXJSdW50aW1lKTogc3RyaW5nIHtcbiAgY29uc3QgYmxvYiA9IG5ldyBydW50aW1lLmJsb2JDdG9yKFtGX0NPTk5FQ1RJT05fV09SS0VSX1NPVVJDRV0sIHtcbiAgICB0eXBlOiAndGV4dC9qYXZhc2NyaXB0JyxcbiAgfSk7XG5cbiAgcmV0dXJuIHJ1bnRpbWUudXJsQXBpLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldm9rZUNvbm5lY3Rpb25Xb3JrZXJVcmwoXG4gIHdvcmtlclVybDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgdXJsQXBpPzogUGljazx0eXBlb2YgVVJMLCAncmV2b2tlT2JqZWN0VVJMJz4gfCBudWxsLFxuKTogdm9pZCB7XG4gIGlmICghd29ya2VyVXJsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcmVzb2x2ZWRVcmxBcGkgPSB1cmxBcGkgPz8gKHR5cGVvZiBVUkwgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IFVSTCk7XG4gIGlmICh0eXBlb2YgcmVzb2x2ZWRVcmxBcGk/LnJldm9rZU9iamVjdFVSTCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlc29sdmVkVXJsQXBpLnJldm9rZU9iamVjdFVSTCh3b3JrZXJVcmwpO1xufVxuIl19
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Point, PointExtensions } from '@foblex/2d';
|
|
2
|
+
const REBASE_AUTO_PAN_KINDS = new Set(['create-connection', 'reassign-connection', 'drag-node']);
|
|
3
|
+
const DIRECT_AUTO_PAN_KINDS = new Set(['selection-area']);
|
|
4
|
+
const AUXILIARY_AUTO_PAN_KINDS = new Set(['assign-to-container']);
|
|
5
|
+
export function resolveAutoPanMode(kinds) {
|
|
6
|
+
let result = null;
|
|
7
|
+
for (const kind of kinds) {
|
|
8
|
+
if (AUXILIARY_AUTO_PAN_KINDS.has(kind)) {
|
|
9
|
+
continue;
|
|
10
|
+
}
|
|
11
|
+
const next = REBASE_AUTO_PAN_KINDS.has(kind)
|
|
12
|
+
? 'rebase'
|
|
13
|
+
: DIRECT_AUTO_PAN_KINDS.has(kind)
|
|
14
|
+
? 'direct'
|
|
15
|
+
: null;
|
|
16
|
+
if (!next) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
if (!result) {
|
|
20
|
+
result = next;
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (result !== next) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
export function calculateAutoPanDelta(pointerPosition, hostRect, threshold, speed, acceleration) {
|
|
30
|
+
return PointExtensions.initialize(calculateAutoPanAxisDelta(pointerPosition.x, hostRect.left, hostRect.right, threshold, speed, acceleration), calculateAutoPanAxisDelta(pointerPosition.y, hostRect.top, hostRect.bottom, threshold, speed, acceleration));
|
|
31
|
+
}
|
|
32
|
+
export function calculateAutoPanAxisDelta(pointerCoordinate, min, max, threshold, speed, acceleration) {
|
|
33
|
+
const normalizedThreshold = Math.max(0, threshold);
|
|
34
|
+
const normalizedSpeed = Math.max(0, speed);
|
|
35
|
+
if (!normalizedThreshold || !normalizedSpeed) {
|
|
36
|
+
return 0;
|
|
37
|
+
}
|
|
38
|
+
if (pointerCoordinate <= min + normalizedThreshold) {
|
|
39
|
+
const ratio = clamp((min + normalizedThreshold - pointerCoordinate) / normalizedThreshold, 0, 1);
|
|
40
|
+
return resolveAxisSpeed(ratio, normalizedSpeed, acceleration);
|
|
41
|
+
}
|
|
42
|
+
if (pointerCoordinate >= max - normalizedThreshold) {
|
|
43
|
+
const ratio = clamp((pointerCoordinate - (max - normalizedThreshold)) / normalizedThreshold, 0, 1);
|
|
44
|
+
return -resolveAxisSpeed(ratio, normalizedSpeed, acceleration);
|
|
45
|
+
}
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
export function rebaseAutoPanPointerDownPosition(position, canvasDelta, scale) {
|
|
49
|
+
const normalizedScale = scale || 1;
|
|
50
|
+
return Point.fromPoint(position).add(Point.fromPoint(canvasDelta).div(normalizedScale));
|
|
51
|
+
}
|
|
52
|
+
function resolveAxisSpeed(ratio, speed, acceleration) {
|
|
53
|
+
return acceleration ? speed * ratio : speed;
|
|
54
|
+
}
|
|
55
|
+
function clamp(value, min, max) {
|
|
56
|
+
return Math.max(min, Math.min(max, value));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1wYW4udXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2F1dG8tcGFuL2F1dG8tcGFuLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSTVELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ2pHLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7QUFDMUQsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztBQUVsRSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBZTtJQUNoRCxJQUFJLE1BQU0sR0FBd0IsSUFBSSxDQUFDO0lBRXZDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxTQUFTO1FBQ1gsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDMUMsQ0FBQyxDQUFDLFFBQVE7WUFDVixDQUFDLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLFFBQVE7Z0JBQ1YsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVYLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFF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IjpbImltcG9ydCB7IElQb2ludCwgUG9pbnQsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5leHBvcnQgdHlwZSBUQXV0b1Bhbk1vZGUgPSAncmViYXNlJyB8ICdkaXJlY3QnO1xuXG5jb25zdCBSRUJBU0VfQVVUT19QQU5fS0lORFMgPSBuZXcgU2V0KFsnY3JlYXRlLWNvbm5lY3Rpb24nLCAncmVhc3NpZ24tY29ubmVjdGlvbicsICdkcmFnLW5vZGUnXSk7XG5jb25zdCBESVJFQ1RfQVVUT19QQU5fS0lORFMgPSBuZXcgU2V0KFsnc2VsZWN0aW9uLWFyZWEnXSk7XG5jb25zdCBBVVhJTElBUllfQVVUT19QQU5fS0lORFMgPSBuZXcgU2V0KFsnYXNzaWduLXRvLWNvbnRhaW5lciddKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVBdXRvUGFuTW9kZShraW5kczogc3RyaW5nW10pOiBUQXV0b1Bhbk1vZGUgfCBudWxsIHtcbiAgbGV0IHJlc3VsdDogVEF1dG9QYW5Nb2RlIHwgbnVsbCA9IG51bGw7XG5cbiAgZm9yIChjb25zdCBraW5kIG9mIGtpbmRzKSB7XG4gICAgaWYgKEFVWElMSUFSWV9BVVRPX1BBTl9LSU5EUy5oYXMoa2luZCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHQgPSBSRUJBU0VfQVVUT19QQU5fS0lORFMuaGFzKGtpbmQpXG4gICAgICA/ICdyZWJhc2UnXG4gICAgICA6IERJUkVDVF9BVVRPX1BBTl9LSU5EUy5oYXMoa2luZClcbiAgICAgICAgPyAnZGlyZWN0J1xuICAgICAgICA6IG51bGw7XG5cbiAgICBpZiAoIW5leHQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICByZXN1bHQgPSBuZXh0O1xuXG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0ICE9PSBuZXh0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQXV0b1BhbkRlbHRhKFxuICBwb2ludGVyUG9zaXRpb246IElQb2ludCxcbiAgaG9zdFJlY3Q6IERPTVJlY3QsXG4gIHRocmVzaG9sZDogbnVtYmVyLFxuICBzcGVlZDogbnVtYmVyLFxuICBhY2NlbGVyYXRpb246IGJvb2xlYW4sXG4pOiBJUG9pbnQge1xuICByZXR1cm4gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoXG4gICAgY2FsY3VsYXRlQXV0b1BhbkF4aXNEZWx0YShcbiAgICAgIHBvaW50ZXJQb3NpdGlvbi54LFxuICAgICAgaG9zdFJlY3QubGVmdCxcbiAgICAgIGhvc3RSZWN0LnJpZ2h0LFxuICAgICAgdGhyZXNob2xkLFxuICAgICAgc3BlZWQsXG4gICAgICBhY2NlbGVyYXRpb24sXG4gICAgKSxcbiAgICBjYWxjdWxhdGVBdXRvUGFuQXhpc0RlbHRhKFxuICAgICAgcG9pbnRlclBvc2l0aW9uLnksXG4gICAgICBob3N0UmVjdC50b3AsXG4gICAgICBob3N0UmVjdC5ib3R0b20sXG4gICAgICB0aHJlc2hvbGQsXG4gICAgICBzcGVlZCxcbiAgICAgIGFjY2VsZXJhdGlvbixcbiAgICApLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQXV0b1BhbkF4aXNEZWx0YShcbiAgcG9pbnRlckNvb3JkaW5hdGU6IG51bWJlcixcbiAgbWluOiBudW1iZXIsXG4gIG1heDogbnVtYmVyLFxuICB0aHJlc2hvbGQ6IG51bWJlcixcbiAgc3BlZWQ6IG51bWJlcixcbiAgYWNjZWxlcmF0aW9uOiBib29sZWFuLFxuKTogbnVtYmVyIHtcbiAgY29uc3Qgbm9ybWFsaXplZFRocmVzaG9sZCA9IE1hdGgubWF4KDAsIHRocmVzaG9sZCk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRTcGVlZCA9IE1hdGgubWF4KDAsIHNwZWVkKTtcblxuICBpZiAoIW5vcm1hbGl6ZWRUaHJlc2hvbGQgfHwgIW5vcm1hbGl6ZWRTcGVlZCkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYgKHBvaW50ZXJDb29yZGluYXRlIDw9IG1pbiArIG5vcm1hbGl6ZWRUaHJlc2hvbGQpIHtcbiAgICBjb25zdCByYXRpbyA9IGNsYW1wKFxuICAgICAgKG1pbiArIG5vcm1hbGl6ZWRUaHJlc2hvbGQgLSBwb2ludGVyQ29vcmRpbmF0ZSkgLyBub3JtYWxpemVkVGhyZXNob2xkLFxuICAgICAgMCxcbiAgICAgIDEsXG4gICAgKTtcblxuICAgIHJldHVybiByZXNvbHZlQXhpc1NwZWVkKHJhdGlvLCBub3JtYWxpemVkU3BlZWQsIGFjY2VsZXJhdGlvbik7XG4gIH1cblxuICBpZiAocG9pbnRlckNvb3JkaW5hdGUgPj0gbWF4IC0gbm9ybWFsaXplZFRocmVzaG9sZCkge1xuICAgIGNvbnN0IHJhdGlvID0gY2xhbXAoXG4gICAgICAocG9pbnRlckNvb3JkaW5hdGUgLSAobWF4IC0gbm9ybWFsaXplZFRocmVzaG9sZCkpIC8gbm9ybWFsaXplZFRocmVzaG9sZCxcbiAgICAgIDAsXG4gICAgICAxLFxuICAgICk7XG5cbiAgICByZXR1cm4gLXJlc29sdmVBeGlzU3BlZWQocmF0aW8sIG5vcm1hbGl6ZWRTcGVlZCwgYWNjZWxlcmF0aW9uKTtcbiAgfVxuXG4gIHJldHVybiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmViYXNlQXV0b1BhblBvaW50ZXJEb3duUG9zaXRpb24oXG4gIHBvc2l0aW9uOiBJUG9pbnQsXG4gIGNhbnZhc0RlbHRhOiBJUG9pbnQsXG4gIHNjYWxlOiBudW1iZXIsXG4pOiBQb2ludCB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRTY2FsZSA9IHNjYWxlIHx8IDE7XG5cbiAgcmV0dXJuIFBvaW50LmZyb21Qb2ludChwb3NpdGlvbikuYWRkKFBvaW50LmZyb21Qb2ludChjYW52YXNEZWx0YSkuZGl2KG5vcm1hbGl6ZWRTY2FsZSkpO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlQXhpc1NwZWVkKHJhdGlvOiBudW1iZXIsIHNwZWVkOiBudW1iZXIsIGFjY2VsZXJhdGlvbjogYm9vbGVhbik6IG51bWJlciB7XG4gIHJldHVybiBhY2NlbGVyYXRpb24gPyBzcGVlZCAqIHJhdGlvIDogc3BlZWQ7XG59XG5cbmZ1bmN0aW9uIGNsYW1wKHZhbHVlOiBudW1iZXIsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLm1heChtaW4sIE1hdGgubWluKG1heCwgdmFsdWUpKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './auto-pan.utils';
|
|
2
|
+
export * from './providers';
|
|
3
|
+
export * from './run-auto-pan-frame';
|
|
4
|
+
export * from './stop-auto-pan';
|
|
5
|
+
export * from './stored-pointer-event';
|
|
6
|
+
export * from './sync-auto-pan';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2F1dG8tcGFuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0by1wYW4udXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9ydW4tYXV0by1wYW4tZnJhbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9wLWF1dG8tcGFuJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmVkLXBvaW50ZXItZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zeW5jLWF1dG8tcGFuJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { RunAutoPanFrame } from './run-auto-pan-frame';
|
|
2
|
+
import { StopAutoPan } from './stop-auto-pan';
|
|
3
|
+
import { SyncAutoPan } from './sync-auto-pan';
|
|
4
|
+
export const DRAG_AUTO_PAN_PROVIDERS = [SyncAutoPan, RunAutoPanFrame, StopAutoPan];
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9hdXRvLXBhbi9wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVuQXV0b1BhbkZyYW1lIH0gZnJvbSAnLi9ydW4tYXV0by1wYW4tZnJhbWUnO1xuaW1wb3J0IHsgU3RvcEF1dG9QYW4gfSBmcm9tICcuL3N0b3AtYXV0by1wYW4nO1xuaW1wb3J0IHsgU3luY0F1dG9QYW4gfSBmcm9tICcuL3N5bmMtYXV0by1wYW4nO1xuXG5leHBvcnQgY29uc3QgRFJBR19BVVRPX1BBTl9QUk9WSURFUlMgPSBbU3luY0F1dG9QYW4sIFJ1bkF1dG9QYW5GcmFtZSwgU3RvcEF1dG9QYW5dO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './run-auto-pan-frame';
|
|
2
|
+
export * from './run-auto-pan-frame-request';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2F1dG8tcGFuL3J1bi1hdXRvLXBhbi1mcmFtZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3J1bi1hdXRvLXBhbi1mcmFtZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bi1hdXRvLXBhbi1mcmFtZS1yZXF1ZXN0JztcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export class RunAutoPanFrameRequest {
|
|
2
|
+
static fToken = Symbol('RunAutoPanFrameRequest');
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWF1dG8tcGFuLWZyYW1lLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2F1dG8tcGFuL3J1bi1hdXRvLXBhbi1mcmFtZS9ydW4tYXV0by1wYW4tZnJhbWUtcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLE1BQU0sQ0FBVSxNQUFNLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUnVuQXV0b1BhbkZyYW1lUmVxdWVzdCB7XG4gIHN0YXRpYyByZWFkb25seSBmVG9rZW4gPSBTeW1ib2woJ1J1bkF1dG9QYW5GcmFtZVJlcXVlc3QnKTtcbn1cbiJdfQ==
|
|
@@ -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==
|