@foblex/flow 17.0.5 → 17.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/domain/f-draggable/providers.d.ts +1 -1
- package/{f-draggable/domain → domain/f-node}/get-parent-nodes/get-parent-nodes.execution.d.ts +2 -4
- package/domain/f-node/index.d.ts +2 -0
- package/domain/f-node/providers.d.ts +3 -1
- package/domain/providers.d.ts +1 -1
- package/esm2022/domain/f-node/get-node-padding/get-node-padding.execution.mjs +34 -0
- package/esm2022/domain/f-node/get-node-padding/get-node-padding.request.mjs +9 -0
- package/esm2022/domain/f-node/get-node-padding/index.mjs +3 -0
- package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.execution.mjs +34 -0
- package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.request.mjs +7 -0
- package/esm2022/domain/f-node/get-parent-nodes/index.mjs +3 -0
- package/esm2022/domain/f-node/index.mjs +3 -1
- package/esm2022/domain/f-node/providers.mjs +5 -1
- package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +6 -6
- package/esm2022/f-draggable/domain/index.mjs +1 -4
- package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.mjs +2 -2
- package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.request.mjs +1 -1
- package/esm2022/f-draggable/domain/providers.mjs +1 -7
- package/esm2022/f-draggable/f-draggable-base.mjs +1 -1
- package/esm2022/f-draggable/f-draggable.directive.mjs +8 -2
- package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +32 -35
- package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.mjs +12 -15
- package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +37 -31
- package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.execution.mjs +41 -43
- package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.validator.mjs +19 -23
- package/esm2022/f-draggable/node/node.drag-handler.mjs +25 -10
- package/esm2022/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.mjs +3 -2
- package/esm2022/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +4 -5
- package/esm2022/f-draggable/node-resize/node-resize.drag-handler.mjs +3 -3
- package/esm2022/f-flow.module.mjs +1 -1
- package/esm2022/f-node/f-drag-handle.directive.mjs +22 -0
- package/esm2022/f-node/index.mjs +3 -3
- package/esm2022/f-node/is-node.mjs +4 -0
- package/esm2022/f-node/providers.mjs +2 -2
- package/f-backgroud/providers.d.ts +1 -1
- package/f-connection/providers.d.ts +1 -1
- package/f-connectors/providers.d.ts +1 -1
- package/f-draggable/connections/providers.d.ts +1 -1
- package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.d.ts +1 -1
- package/f-draggable/domain/index.d.ts +0 -3
- package/f-draggable/domain/providers.d.ts +1 -4
- package/f-draggable/f-draggable-base.d.ts +2 -0
- package/f-draggable/f-draggable.directive.d.ts +4 -2
- package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +7 -9
- package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.d.ts +3 -4
- package/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
- package/f-draggable/node/node-move-finalize/node-move-finalize.execution.d.ts +11 -11
- package/f-draggable/node/node-move-preparation/node-move-preparation.execution.d.ts +11 -14
- package/f-draggable/node/node-move-preparation/node-move-preparation.validator.d.ts +6 -9
- package/f-draggable/node/node.drag-handler.d.ts +9 -5
- package/f-draggable/node/providers.d.ts +1 -1
- package/f-draggable/providers.d.ts +1 -1
- package/f-flow.module.d.ts +1 -1
- package/f-minimap/domain/providers.d.ts +1 -1
- package/f-node/{f-drag-handle/f-drag-handle.directive.d.ts → f-drag-handle.directive.d.ts} +1 -1
- package/f-node/index.d.ts +2 -2
- package/f-node/providers.d.ts +2 -2
- package/f-storage/providers.d.ts +1 -1
- package/fesm2022/foblex-flow.mjs +229 -245
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +1 -1
- package/esm2022/f-draggable/domain/get-node-padding/get-node-padding.execution.mjs +0 -34
- package/esm2022/f-draggable/domain/get-node-padding/get-node-padding.request.mjs +0 -9
- package/esm2022/f-draggable/domain/get-node-padding/index.mjs +0 -3
- package/esm2022/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.execution.mjs +0 -30
- package/esm2022/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.request.mjs +0 -7
- package/esm2022/f-draggable/domain/get-normalized-node-rect/index.mjs +0 -3
- package/esm2022/f-draggable/domain/get-parent-nodes/get-parent-nodes.execution.mjs +0 -37
- package/esm2022/f-draggable/domain/get-parent-nodes/get-parent-nodes.request.mjs +0 -7
- package/esm2022/f-draggable/domain/get-parent-nodes/index.mjs +0 -3
- package/esm2022/f-node/domain/index.mjs +0 -2
- package/esm2022/f-node/domain/is-node.mjs +0 -4
- package/esm2022/f-node/f-drag-handle/f-drag-handle.directive.mjs +0 -22
- package/esm2022/f-node/f-drag-handle/index.mjs +0 -2
- package/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.execution.d.ts +0 -13
- package/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.request.d.ts +0 -5
- package/f-draggable/domain/get-normalized-node-rect/index.d.ts +0 -2
- package/f-node/domain/index.d.ts +0 -1
- package/f-node/f-drag-handle/index.d.ts +0 -1
- /package/{f-draggable/domain → domain/f-node}/get-node-padding/get-node-padding.execution.d.ts +0 -0
- /package/{f-draggable/domain → domain/f-node}/get-node-padding/get-node-padding.request.d.ts +0 -0
- /package/{f-draggable/domain → domain/f-node}/get-node-padding/index.d.ts +0 -0
- /package/{f-draggable/domain → domain/f-node}/get-parent-nodes/get-parent-nodes.request.d.ts +0 -0
- /package/{f-draggable/domain → domain/f-node}/get-parent-nodes/index.d.ts +0 -0
- /package/f-node/{domain/is-node.d.ts → is-node.d.ts} +0 -0
|
@@ -1,50 +1,47 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { CreateMoveNodesDragModelFromSelectionRequest } from './create-move-nodes-drag-model-from-selection.request';
|
|
4
|
-
import { FExecutionRegister } from '@foblex/mediator';
|
|
4
|
+
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
5
|
+
import { FComponentsStore } from '../../../f-storage';
|
|
6
|
+
import { FDraggableDataContext } from '../../f-draggable-data-context';
|
|
5
7
|
import { NodeDragHandler } from '../node.drag-handler';
|
|
6
8
|
import { GetNodeMoveRestrictionsRequest } from './domain/get-node-move-restrictions';
|
|
7
9
|
import { PutOutputConnectionHandlersToArrayRequest } from './domain/put-output-connection-handlers-to-array';
|
|
8
10
|
import { PutInputConnectionHandlersToArrayRequest } from './domain/put-input-connection-handlers-to-array';
|
|
9
11
|
import { NodeResizeByChildDragHandler } from '../node-resize-by-child.drag-handler';
|
|
10
|
-
import {
|
|
11
|
-
import { GetDeepChildrenNodesAndGroupsRequest } from '../../../domain';
|
|
12
|
+
import { IsArrayHasParentNodeRequest } from '../../domain';
|
|
13
|
+
import { GetDeepChildrenNodesAndGroupsRequest, GetParentNodesRequest } from '../../../domain';
|
|
12
14
|
import { flatMap } from '@foblex/utils';
|
|
13
15
|
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "../../../f-storage";
|
|
15
|
-
import * as i2 from "../../f-draggable-data-context";
|
|
16
|
-
import * as i3 from "@foblex/mediator";
|
|
17
16
|
let CreateMoveNodesDragModelFromSelectionExecution = class CreateMoveNodesDragModelFromSelectionExecution {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
constructor(fComponentsStore, fDraggableDataContext, fMediator) {
|
|
22
|
-
this.fComponentsStore = fComponentsStore;
|
|
23
|
-
this.fDraggableDataContext = fDraggableDataContext;
|
|
24
|
-
this.fMediator = fMediator;
|
|
25
|
-
}
|
|
17
|
+
_fMediator = inject(FMediator);
|
|
18
|
+
_fComponentsStore = inject(FComponentsStore);
|
|
19
|
+
_fDraggableDataContext = inject(FDraggableDataContext);
|
|
26
20
|
handle(request) {
|
|
27
|
-
const itemsToDrag = this.
|
|
21
|
+
const itemsToDrag = this._getNodesWithRestrictions(this._getSelectedNodes(request.nodeWithDisabledSelection));
|
|
28
22
|
return this.getDragHandlersWithConnections(this.getDragHandlersFromNodes(itemsToDrag), this.getAllOutputIds(itemsToDrag), this.getAllInputIds(itemsToDrag));
|
|
29
23
|
}
|
|
30
|
-
|
|
31
|
-
const result = this.
|
|
32
|
-
.map((x) => this._findNode(x.hostElement))
|
|
33
|
-
.filter((x) => !!x);
|
|
24
|
+
_getSelectedNodes(nodeWithDisabledSelection) {
|
|
25
|
+
const result = this._getNodesFromSelection();
|
|
34
26
|
if (nodeWithDisabledSelection) {
|
|
35
27
|
result.push(nodeWithDisabledSelection);
|
|
36
28
|
}
|
|
37
29
|
return result;
|
|
38
30
|
}
|
|
31
|
+
_getNodesFromSelection() {
|
|
32
|
+
return this._fDraggableDataContext.selectedItems
|
|
33
|
+
.map((x) => this._findNode(x.hostElement))
|
|
34
|
+
.filter((x) => !!x);
|
|
35
|
+
}
|
|
39
36
|
_findNode(hostElement) {
|
|
40
|
-
return this.
|
|
37
|
+
return this._fComponentsStore.fNodes.find(n => n.isContains(hostElement));
|
|
41
38
|
}
|
|
42
|
-
|
|
39
|
+
_getNodesWithRestrictions(nodesToDrag) {
|
|
43
40
|
const result = [];
|
|
44
|
-
|
|
45
|
-
const hasParentNodeInSelected = this.
|
|
46
|
-
const restrictions = this.
|
|
47
|
-
const parentNodes = this.
|
|
41
|
+
nodesToDrag.forEach((x) => {
|
|
42
|
+
const hasParentNodeInSelected = this._fMediator.send(new IsArrayHasParentNodeRequest(x, nodesToDrag));
|
|
43
|
+
const restrictions = this._fMediator.send(new GetNodeMoveRestrictionsRequest(x, hasParentNodeInSelected));
|
|
44
|
+
const parentNodes = this._fMediator.send(new GetParentNodesRequest(x));
|
|
48
45
|
result.push({ node: x, parentNodes, ...restrictions }, ...this.getChildrenItemsToDrag(x, restrictions));
|
|
49
46
|
});
|
|
50
47
|
return result;
|
|
@@ -53,36 +50,36 @@ let CreateMoveNodesDragModelFromSelectionExecution = class CreateMoveNodesDragMo
|
|
|
53
50
|
return this.getChildrenNodes(node.fId).map((x) => ({ node: x, ...restrictions }));
|
|
54
51
|
}
|
|
55
52
|
getChildrenNodes(fId) {
|
|
56
|
-
return this.
|
|
53
|
+
return this._fMediator.send(new GetDeepChildrenNodesAndGroupsRequest(fId));
|
|
57
54
|
}
|
|
58
55
|
getAllOutputIds(items) {
|
|
59
56
|
return flatMap(items, (item) => this.getOutputsForNode(item.node).map((x) => x.fId));
|
|
60
57
|
}
|
|
61
58
|
getOutputsForNode(node) {
|
|
62
|
-
return this.
|
|
59
|
+
return this._fComponentsStore.fOutputs.filter((x) => node.isContains(x.hostElement));
|
|
63
60
|
}
|
|
64
61
|
getAllInputIds(items) {
|
|
65
62
|
return flatMap(items, (item) => this.getInputsForNode(item.node).map((x) => x.fId));
|
|
66
63
|
}
|
|
67
64
|
getInputsForNode(node) {
|
|
68
|
-
return this.
|
|
65
|
+
return this._fComponentsStore.fInputs.filter((x) => node.isContains(x.hostElement));
|
|
69
66
|
}
|
|
70
67
|
getDragHandlersFromNodes(items) {
|
|
71
68
|
let result = [];
|
|
72
69
|
items.forEach((node) => {
|
|
73
|
-
result.push(new NodeDragHandler(this.
|
|
70
|
+
result.push(new NodeDragHandler(this._fDraggableDataContext, this._fComponentsStore, node.node, node.min, node.max), ...(node.parentNodes || []).map(() => new NodeResizeByChildDragHandler(this._fDraggableDataContext)));
|
|
74
71
|
});
|
|
75
72
|
return result;
|
|
76
73
|
}
|
|
77
74
|
getDragHandlersWithConnections(handlers, outputIds, inputIds) {
|
|
78
75
|
let result = handlers;
|
|
79
76
|
handlers.filter((x) => x instanceof NodeDragHandler).forEach((dragHandler) => {
|
|
80
|
-
this.
|
|
81
|
-
this.
|
|
77
|
+
this._fMediator.send(new PutOutputConnectionHandlersToArrayRequest(dragHandler, inputIds, result));
|
|
78
|
+
this._fMediator.send(new PutInputConnectionHandlersToArrayRequest(dragHandler, outputIds, result));
|
|
82
79
|
});
|
|
83
80
|
return result;
|
|
84
81
|
}
|
|
85
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CreateMoveNodesDragModelFromSelectionExecution, deps: [
|
|
82
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CreateMoveNodesDragModelFromSelectionExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
86
83
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CreateMoveNodesDragModelFromSelectionExecution });
|
|
87
84
|
};
|
|
88
85
|
CreateMoveNodesDragModelFromSelectionExecution = __decorate([
|
|
@@ -91,5 +88,5 @@ CreateMoveNodesDragModelFromSelectionExecution = __decorate([
|
|
|
91
88
|
export { CreateMoveNodesDragModelFromSelectionExecution };
|
|
92
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CreateMoveNodesDragModelFromSelectionExecution, decorators: [{
|
|
93
90
|
type: Injectable
|
|
94
|
-
}]
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vdmUtbm9kZXMtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvbi5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL25vZGUvY3JlYXRlLW1vdmUtbm9kZXMtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvbi9jcmVhdGUtbW92ZS1ub2Rlcy1kcmFnLW1vZGVsLWZyb20tc2VsZWN0aW9uLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsNENBQTRDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNySCxPQUFPLEVBQUUsa0JBQWtCLEVBQXlCLE1BQU0sa0JBQWtCLENBQUM7QUFJN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSXZELE9BQU8sRUFBRSw4QkFBOEIsRUFBeUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RyxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RyxPQUFPLEVBQ0wsd0NBQXdDLEVBQ3pDLE1BQU0saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBSWpDLElBQU0sOENBQThDLEdBQXBELE1BQU0sOENBQThDO0lBSS9DO0lBQ0E7SUFDQTtJQUhWLFlBQ1UsZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1QyxTQUFvQjtRQUZwQixxQkFBZ0IsR0FB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SSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUNwRyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sOEJBQThCLENBQ3BDLFFBQTBCLEVBQUUsU0FBbUIsRUFBRSxRQUFrQjtRQUVuRSxJQUFJLE1BQU0sR0FBcUIsUUFBUSxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUMzRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLHlDQUF5QyxDQUFDLFdBQThCLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDckgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSx3Q0FBd0MsQ0FBQyxXQUE4QixFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzt1R0EzRlUsOENBQThDOzJHQUE5Qyw4Q0FBOEM7O0FBQTlDLDhDQUE4QztJQUQxRCxrQkFBa0IsQ0FBQyw0Q0FBNEMsQ0FBQztHQUNwRCw4Q0FBOEMsQ0E0RjFEOzsyRkE1RlksOENBQThDO2tCQUYxRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3JlYXRlTW92ZU5vZGVzRHJhZ01vZGVsRnJvbVNlbGVjdGlvblJlcXVlc3QgfSBmcm9tICcuL2NyZWF0ZS1tb3ZlLW5vZGVzLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb24ucmVxdWVzdCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuLi8uLi9pLWRyYWdnYWJsZS1pdGVtJztcbmltcG9ydCB7IE5vZGVEcmFnSGFuZGxlciB9IGZyb20gJy4uL25vZGUuZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBJTm9kZVdpdGhEaXN0YW5jZVJlc3RyaWN0aW9ucyB9IGZyb20gJy4vaS1ub2RlLXdpdGgtZGlzdGFuY2UtcmVzdHJpY3Rpb25zJztcbmltcG9ydCB7IEdldE5vZGVNb3ZlUmVzdHJpY3Rpb25zUmVxdWVzdCwgSU5vZGVNb3ZlUmVzdHJpY3Rpb25zIH0gZnJvbSAnLi9kb21haW4vZ2V0LW5vZGUtbW92ZS1yZXN0cmljdGlvbnMnO1xuaW1wb3J0IHsgUHV0T3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJzVG9BcnJheVJlcXVlc3QgfSBmcm9tICcuL2RvbWFpbi9wdXQtb3V0cHV0LWNvbm5lY3Rpb24taGFuZGxlcnMtdG8tYXJyYXknO1xuaW1wb3J0IHtcbiAgUHV0SW5wdXRDb25uZWN0aW9uSGFuZGxlcnNUb0FycmF5UmVxdWVzdFxufSBmcm9tICcuL2RvbWFpbi9wdXQtaW5wdXQtY29ubmVjdGlvbi1oYW5kbGVycy10by1hcnJheSc7XG5pbXBvcnQgeyBOb2RlUmVzaXplQnlDaGlsZERyYWdIYW5kbGVyIH0gZnJvbSAnLi4vbm9kZS1yZXNpemUtYnktY2hpbGQuZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEdldFBhcmVudE5vZGVzUmVxdWVzdCwgSXNBcnJheUhhc1BhcmVudE5vZGVSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEdldERlZXBDaGlsZHJlbk5vZGVzQW5kR3JvdXBzUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBmbGF0TWFwIH0gZnJvbSAnQGZvYmxleC91dGlscyc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoQ3JlYXRlTW92ZU5vZGVzRHJhZ01vZGVsRnJvbVNlbGVjdGlvblJlcXVlc3QpXG5leHBvcnQgY2xhc3MgQ3JlYXRlTW92ZU5vZGVzRHJhZ01vZGVsRnJvbVNlbGVjdGlvbkV4ZWN1dGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248Q3JlYXRlTW92ZU5vZGVzRHJhZ01vZGVsRnJvbVNlbGVjdGlvblJlcXVlc3QsIElEcmFnZ2FibGVJdGVtW10+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICBwcml2YXRlIGZNZWRpYXRvcjogRk1lZGlhdG9yXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBDcmVhdGVNb3ZlTm9kZXNEcmFnTW9kZWxGcm9tU2VsZWN0aW9uUmVxdWVzdCk6IElEcmFnZ2FibGVJdGVtW10ge1xuICAgIGNvbnN0IGl0ZW1zVG9EcmFnID0gdGhpcy5nZXROb2Rlc1dpdGhSZXN0cmljdGlvbnModGhpcy5nZXRTZWxlY3RlZE5vZGVzKHJlcXVlc3Qubm9kZVdpdGhEaXNhYmxlZFNlbGVjdGlvbikpO1xuICAgIHJldHVybiB0aGlzLmdldERyYWdIYW5kbGVyc1dpdGhDb25uZWN0aW9ucyhcbiAgICAgIHRoaXMuZ2V0RHJhZ0hhbmRsZXJzRnJvbU5vZGVzKGl0ZW1zVG9EcmFnKSxcbiAgICAgIHRoaXMuZ2V0QWxsT3V0cHV0SWRzKGl0ZW1zVG9EcmFnKSxcbiAgICAgIHRoaXMuZ2V0QWxsSW5wdXRJZHMoaXRlbXNUb0RyYWcpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VsZWN0ZWROb2Rlcyhub2RlV2l0aERpc2FibGVkU2VsZWN0aW9uPzogRk5vZGVCYXNlKTogRk5vZGVCYXNlW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXNcbiAgICAgIC5tYXAoKHgpID0+IHRoaXMuX2ZpbmROb2RlKHguaG9zdEVsZW1lbnQpKVxuICAgICAgLmZpbHRlcigoeCk6IHggaXMgRk5vZGVCYXNlID0+ICEheCk7XG4gICAgaWYobm9kZVdpdGhEaXNhYmxlZFNlbGVjdGlvbikge1xuICAgICAgcmVzdWx0LnB1c2gobm9kZVdpdGhEaXNhYmxlZFNlbGVjdGlvbik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIF9maW5kTm9kZShob3N0RWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50KTogRk5vZGVCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZOb2Rlcy5maW5kKG4gPT4gbi5pc0NvbnRhaW5zKGhvc3RFbGVtZW50KSk7XG4gIH1cblxuICBwcml2YXRlIGdldE5vZGVzV2l0aFJlc3RyaWN0aW9ucyhzZWxlY3RlZE5vZGVzOiBGTm9kZUJhc2VbXSk6IElOb2RlV2l0aERpc3RhbmNlUmVzdHJpY3Rpb25zW10ge1xuICAgIGNvbnN0IHJlc3VsdDogSU5vZGVXaXRoRGlzdGFuY2VSZXN0cmljdGlvbnNbXSA9IFtdO1xuXG4gICAgc2VsZWN0ZWROb2Rlcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICBjb25zdCBoYXNQYXJlbnROb2RlSW5TZWxlY3RlZCA9IHRoaXMuZk1lZGlhdG9yLnNlbmQ8Ym9vbGVhbj4obmV3IElzQXJyYXlIYXNQYXJlbnROb2RlUmVxdWVzdCh4LCBzZWxlY3RlZE5vZGVzKSk7XG4gICAgICBjb25zdCByZXN0cmljdGlvbnMgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElOb2RlTW92ZVJlc3RyaWN0aW9ucz4obmV3IEdldE5vZGVNb3ZlUmVzdHJpY3Rpb25zUmVxdWVzdCh4LCBoYXNQYXJlbnROb2RlSW5TZWxlY3RlZCkpO1xuICAgICAgY29uc3QgcGFyZW50Tm9kZXMgPSB0aGlzLmZNZWRpYXRvci5zZW5kPEZOb2RlQmFzZVtdPihuZXcgR2V0UGFyZW50Tm9kZXNSZXF1ZXN0KHgpKTtcbiAgICAgIHJlc3VsdC5wdXNoKHsgbm9kZTogeCwgcGFyZW50Tm9kZXMsIC4uLnJlc3RyaWN0aW9ucyB9LCAuLi50aGlzLmdldENoaWxkcmVuSXRlbXNUb0RyYWcoeCwgcmVzdHJpY3Rpb25zKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDaGlsZHJlbkl0ZW1zVG9EcmFnKG5vZGU6IEZOb2RlQmFzZSwgcmVzdHJpY3Rpb25zOiBJTm9kZU1vdmVSZXN0cmljdGlvbnMpOiBJTm9kZVdpdGhEaXN0YW5jZVJlc3RyaWN0aW9uc1tdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGlsZHJlbk5vZGVzKG5vZGUuZklkKS5tYXAoKHgpID0+ICh7IG5vZGU6IHgsIC4uLnJlc3RyaWN0aW9ucyB9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldENoaWxkcmVuTm9kZXMoZklkOiBzdHJpbmcpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQ8Rk5vZGVCYXNlW10+KG5ldyBHZXREZWVwQ2hpbGRyZW5Ob2Rlc0FuZEdyb3Vwc1JlcXVlc3QoZklkKSk7XG4gIH1cblxuICBwcml2YXRlIGdldEFsbE91dHB1dElkcyhpdGVtczogSU5vZGVXaXRoRGlzdGFuY2VSZXN0cmljdGlvbnNbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gZmxhdE1hcChpdGVtcywgKGl0ZW06IElOb2RlV2l0aERpc3RhbmNlUmVzdHJpY3Rpb25zKSA9PiB0aGlzLmdldE91dHB1dHNGb3JOb2RlKGl0ZW0ubm9kZSkubWFwKCh4KSA9PiB4LmZJZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdXRwdXRzRm9yTm9kZShub2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZPdXRwdXRzLmZpbHRlcigoeCkgPT4gbm9kZS5pc0NvbnRhaW5zKHguaG9zdEVsZW1lbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsSW5wdXRJZHMoaXRlbXM6IElOb2RlV2l0aERpc3RhbmNlUmVzdHJpY3Rpb25zW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGZsYXRNYXAoaXRlbXMsIChpdGVtOiBJTm9kZVdpdGhEaXN0YW5jZVJlc3RyaWN0aW9ucykgPT4gdGhpcy5nZXRJbnB1dHNGb3JOb2RlKGl0ZW0ubm9kZSkubWFwKCh4KSA9PiB4LmZJZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnB1dHNGb3JOb2RlKG5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZklucHV0cy5maWx0ZXIoKHgpID0+IG5vZGUuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSk7XG4gIH1cblxuICBwcml2YXRlIGdldERyYWdIYW5kbGVyc0Zyb21Ob2RlcyhpdGVtczogSU5vZGVXaXRoRGlzdGFuY2VSZXN0cmljdGlvbnNbXSk6IElEcmFnZ2FibGVJdGVtW10ge1xuICAgIGxldCByZXN1bHQ6IElEcmFnZ2FibGVJdGVtW10gPSBbXTtcblxuICAgIGl0ZW1zLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICBuZXcgTm9kZURyYWdIYW5kbGVyKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LCBub2RlLm5vZGUsIG5vZGUubWluLCBub2RlLm1heCksXG4gICAgICAgIC4uLihub2RlLnBhcmVudE5vZGVzIHx8IFtdKS5tYXAoKCkgPT4gbmV3IE5vZGVSZXNpemVCeUNoaWxkRHJhZ0hhbmRsZXIodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQpKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcmFnSGFuZGxlcnNXaXRoQ29ubmVjdGlvbnMoXG4gICAgaGFuZGxlcnM6IElEcmFnZ2FibGVJdGVtW10sIG91dHB1dElkczogc3RyaW5nW10sIGlucHV0SWRzOiBzdHJpbmdbXVxuICApOiBJRHJhZ2dhYmxlSXRlbVtdIHtcbiAgICBsZXQgcmVzdWx0OiBJRHJhZ2dhYmxlSXRlbVtdID0gaGFuZGxlcnM7XG4gICAgaGFuZGxlcnMuZmlsdGVyKCh4KSA9PiB4IGluc3RhbmNlb2YgTm9kZURyYWdIYW5kbGVyKS5mb3JFYWNoKChkcmFnSGFuZGxlcikgPT4ge1xuICAgICAgdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgUHV0T3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJzVG9BcnJheVJlcXVlc3QoZHJhZ0hhbmRsZXIgYXMgTm9kZURyYWdIYW5kbGVyLCBpbnB1dElkcywgcmVzdWx0KSk7XG4gICAgICB0aGlzLmZNZWRpYXRvci5zZW5kKG5ldyBQdXRJbnB1dENvbm5lY3Rpb25IYW5kbGVyc1RvQXJyYXlSZXF1ZXN0KGRyYWdIYW5kbGVyIGFzIE5vZGVEcmFnSGFuZGxlciwgb3V0cHV0SWRzLCByZXN1bHQpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
|
|
91
|
+
}] });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vdmUtbm9kZXMtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvbi5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL25vZGUvY3JlYXRlLW1vdmUtbm9kZXMtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvbi9jcmVhdGUtbW92ZS1ub2Rlcy1kcmFnLW1vZGVsLWZyb20tc2VsZWN0aW9uLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDckgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUl2RCxPQUFPLEVBQUUsOEJBQThCLEVBQXlCLE1BQU0scUNBQXFDLENBQUM7QUFDNUcsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0csT0FBTyxFQUNMLHdDQUF3QyxFQUN6QyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUlq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amVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3JlYXRlTW92ZU5vZGVzRHJhZ01vZGVsRnJvbVNlbGVjdGlvblJlcXVlc3QgfSBmcm9tICcuL2NyZWF0ZS1tb3ZlLW5vZGVzLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb24ucmVxdWVzdCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuLi8uLi9pLWRyYWdnYWJsZS1pdGVtJztcbmltcG9ydCB7IE5vZGVEcmFnSGFuZGxlciB9IGZyb20gJy4uL25vZGUuZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBJTm9kZVdpdGhEaXN0YW5jZVJlc3RyaWN0aW9ucyB9IGZyb20gJy4vaS1ub2RlLXdpdGgtZGlzdGFuY2UtcmVzdHJpY3Rpb25zJztcbmltcG9ydCB7IEdldE5vZGVNb3ZlUmVzdHJpY3Rpb25zUmVxdWVzdCwgSU5vZGVNb3ZlUmVzdHJpY3Rpb25zIH0gZnJvbSAnLi9kb21haW4vZ2V0LW5vZGUtbW92ZS1yZXN0cmljdGlvbnMnO1xuaW1wb3J0IHsgUHV0T3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJzVG9BcnJheVJlcXVlc3QgfSBmcm9tICcuL2RvbWFpbi9wdXQtb3V0cHV0LWNvbm5lY3Rpb24taGFuZGxlcnMtdG8tYXJyYXknO1xuaW1wb3J0IHtcbiAgUHV0SW5wdXRDb25uZWN0aW9uSGFuZGxlcnNUb0FycmF5UmVxdWVzdFxufSBmcm9tICcuL2RvbWFpbi9wdXQtaW5wdXQtY29ubmVjdGlvbi1oYW5kbGVycy10by1hcnJheSc7XG5pbXBvcnQgeyBOb2RlUmVzaXplQnlDaGlsZERyYWdIYW5kbGVyIH0gZnJvbSAnLi4vbm9kZS1yZXNpemUtYnktY2hpbGQuZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IElzQXJyYXlIYXNQYXJlbnROb2RlUmVxdWVzdCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBHZXREZWVwQ2hpbGRyZW5Ob2Rlc0FuZEdyb3Vwc1JlcXVlc3QsIEdldFBhcmVudE5vZGVzUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBmbGF0TWFwIH0gZnJvbSAnQGZvYmxleC91dGlscyc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoQ3JlYXRlTW92ZU5vZGVzRHJhZ01vZGVsRnJvbVNlbGVjdGlvblJlcXVlc3QpXG5leHBvcnQgY2xhc3MgQ3JlYXRlTW92ZU5vZGVzRHJhZ01vZGVsRnJvbVNlbGVjdGlvbkV4ZWN1dGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248Q3JlYXRlTW92ZU5vZGVzRHJhZ01vZGVsRnJvbVNlbGVjdGlvblJlcXVlc3QsIElEcmFnZ2FibGVJdGVtW10+IHtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSBfZkNvbXBvbmVudHNTdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcbiAgcHJpdmF0ZSBfZkRyYWdnYWJsZURhdGFDb250ZXh0ID0gaW5qZWN0KEZEcmFnZ2FibGVEYXRhQ29udGV4dCk7XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBDcmVhdGVNb3ZlTm9kZXNEcmFnTW9kZWxGcm9tU2VsZWN0aW9uUmVxdWVzdCk6IElEcmFnZ2FibGVJdGVtW10ge1xuICAgIGNvbnN0IGl0ZW1zVG9EcmFnID0gdGhpcy5fZ2V0Tm9kZXNXaXRoUmVzdHJpY3Rpb25zKFxuICAgICAgdGhpcy5fZ2V0U2VsZWN0ZWROb2RlcyhyZXF1ZXN0Lm5vZGVXaXRoRGlzYWJsZWRTZWxlY3Rpb24pXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5nZXREcmFnSGFuZGxlcnNXaXRoQ29ubmVjdGlvbnMoXG4gICAgICB0aGlzLmdldERyYWdIYW5kbGVyc0Zyb21Ob2RlcyhpdGVtc1RvRHJhZyksXG4gICAgICB0aGlzLmdldEFsbE91dHB1dElkcyhpdGVtc1RvRHJhZyksXG4gICAgICB0aGlzLmdldEFsbElucHV0SWRzKGl0ZW1zVG9EcmFnKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRTZWxlY3RlZE5vZGVzKG5vZGVXaXRoRGlzYWJsZWRTZWxlY3Rpb24/OiBGTm9kZUJhc2UpOiBGTm9kZUJhc2VbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZ2V0Tm9kZXNGcm9tU2VsZWN0aW9uKCk7XG4gICAgaWYobm9kZVdpdGhEaXNhYmxlZFNlbGVjdGlvbikge1xuICAgICAgcmVzdWx0LnB1c2gobm9kZVdpdGhEaXNhYmxlZFNlbGVjdGlvbik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIF9nZXROb2Rlc0Zyb21TZWxlY3Rpb24oKTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtc1xuICAgICAgLm1hcCgoeCkgPT4gdGhpcy5fZmluZE5vZGUoeC5ob3N0RWxlbWVudCkpXG4gICAgICAuZmlsdGVyKCh4KTogeCBpcyBGTm9kZUJhc2UgPT4gISF4KTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmROb2RlKGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBGTm9kZUJhc2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZOb2Rlcy5maW5kKG4gPT4gbi5pc0NvbnRhaW5zKGhvc3RFbGVtZW50KSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXROb2Rlc1dpdGhSZXN0cmljdGlvbnMobm9kZXNUb0RyYWc6IEZOb2RlQmFzZVtdKTogSU5vZGVXaXRoRGlzdGFuY2VSZXN0cmljdGlvbnNbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBJTm9kZVdpdGhEaXN0YW5jZVJlc3RyaWN0aW9uc1tdID0gW107XG5cbiAgICBub2Rlc1RvRHJhZy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICBjb25zdCBoYXNQYXJlbnROb2RlSW5TZWxlY3RlZCA9IHRoaXMuX2ZNZWRpYXRvci5zZW5kPGJvb2xlYW4+KG5ldyBJc0FycmF5SGFzUGFyZW50Tm9kZVJlcXVlc3QoeCwgbm9kZXNUb0RyYWcpKTtcbiAgICAgIGNvbnN0IHJlc3RyaWN0aW9ucyA9IHRoaXMuX2ZNZWRpYXRvci5zZW5kPElOb2RlTW92ZVJlc3RyaWN0aW9ucz4obmV3IEdldE5vZGVNb3ZlUmVzdHJpY3Rpb25zUmVxdWVzdCh4LCBoYXNQYXJlbnROb2RlSW5TZWxlY3RlZCkpO1xuICAgICAgY29uc3QgcGFyZW50Tm9kZXMgPSB0aGlzLl9mTWVkaWF0b3Iuc2VuZDxGTm9kZUJhc2VbXT4obmV3IEdldFBhcmVudE5vZGVzUmVxdWVzdCh4KSk7XG4gICAgICByZXN1bHQucHVzaCh7IG5vZGU6IHgsIHBhcmVudE5vZGVzLCAuLi5yZXN0cmljdGlvbnMgfSwgLi4udGhpcy5nZXRDaGlsZHJlbkl0ZW1zVG9EcmFnKHgsIHJlc3RyaWN0aW9ucykpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2hpbGRyZW5JdGVtc1RvRHJhZyhub2RlOiBGTm9kZUJhc2UsIHJlc3RyaWN0aW9uczogSU5vZGVNb3ZlUmVzdHJpY3Rpb25zKTogSU5vZGVXaXRoRGlzdGFuY2VSZXN0cmljdGlvbnNbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hpbGRyZW5Ob2Rlcyhub2RlLmZJZCkubWFwKCh4KSA9PiAoeyBub2RlOiB4LCAuLi5yZXN0cmljdGlvbnMgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDaGlsZHJlbk5vZGVzKGZJZDogc3RyaW5nKTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3Iuc2VuZDxGTm9kZUJhc2VbXT4obmV3IEdldERlZXBDaGlsZHJlbk5vZGVzQW5kR3JvdXBzUmVxdWVzdChmSWQpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsT3V0cHV0SWRzKGl0ZW1zOiBJTm9kZVdpdGhEaXN0YW5jZVJlc3RyaWN0aW9uc1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBmbGF0TWFwKGl0ZW1zLCAoaXRlbTogSU5vZGVXaXRoRGlzdGFuY2VSZXN0cmljdGlvbnMpID0+IHRoaXMuZ2V0T3V0cHV0c0Zvck5vZGUoaXRlbS5ub2RlKS5tYXAoKHgpID0+IHguZklkKSk7XG4gIH1cblxuICBwcml2YXRlIGdldE91dHB1dHNGb3JOb2RlKG5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZPdXRwdXRzLmZpbHRlcigoeCkgPT4gbm9kZS5pc0NvbnRhaW5zKHguaG9zdEVsZW1lbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsSW5wdXRJZHMoaXRlbXM6IElOb2RlV2l0aERpc3RhbmNlUmVzdHJpY3Rpb25zW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGZsYXRNYXAoaXRlbXMsIChpdGVtOiBJTm9kZVdpdGhEaXN0YW5jZVJlc3RyaWN0aW9ucykgPT4gdGhpcy5nZXRJbnB1dHNGb3JOb2RlKGl0ZW0ubm9kZSkubWFwKCh4KSA9PiB4LmZJZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnB1dHNGb3JOb2RlKG5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZJbnB1dHMuZmlsdGVyKCh4KSA9PiBub2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcmFnSGFuZGxlcnNGcm9tTm9kZXMoaXRlbXM6IElOb2RlV2l0aERpc3RhbmNlUmVzdHJpY3Rpb25zW10pOiBJRHJhZ2dhYmxlSXRlbVtdIHtcbiAgICBsZXQgcmVzdWx0OiBJRHJhZ2dhYmxlSXRlbVtdID0gW107XG5cbiAgICBpdGVtcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICByZXN1bHQucHVzaChcbiAgICAgICAgbmV3IE5vZGVEcmFnSGFuZGxlcih0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQsIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUsIG5vZGUubm9kZSwgbm9kZS5taW4sIG5vZGUubWF4KSxcbiAgICAgICAgLi4uKG5vZGUucGFyZW50Tm9kZXMgfHwgW10pLm1hcCgoKSA9PiBuZXcgTm9kZVJlc2l6ZUJ5Q2hpbGREcmFnSGFuZGxlcih0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQpKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcmFnSGFuZGxlcnNXaXRoQ29ubmVjdGlvbnMoXG4gICAgaGFuZGxlcnM6IElEcmFnZ2FibGVJdGVtW10sIG91dHB1dElkczogc3RyaW5nW10sIGlucHV0SWRzOiBzdHJpbmdbXVxuICApOiBJRHJhZ2dhYmxlSXRlbVtdIHtcbiAgICBsZXQgcmVzdWx0OiBJRHJhZ2dhYmxlSXRlbVtdID0gaGFuZGxlcnM7XG4gICAgaGFuZGxlcnMuZmlsdGVyKCh4KSA9PiB4IGluc3RhbmNlb2YgTm9kZURyYWdIYW5kbGVyKS5mb3JFYWNoKChkcmFnSGFuZGxlcikgPT4ge1xuICAgICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQobmV3IFB1dE91dHB1dENvbm5lY3Rpb25IYW5kbGVyc1RvQXJyYXlSZXF1ZXN0KGRyYWdIYW5kbGVyIGFzIE5vZGVEcmFnSGFuZGxlciwgaW5wdXRJZHMsIHJlc3VsdCkpO1xuICAgICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQobmV3IFB1dElucHV0Q29ubmVjdGlvbkhhbmRsZXJzVG9BcnJheVJlcXVlc3QoZHJhZ0hhbmRsZXIgYXMgTm9kZURyYWdIYW5kbGVyLCBvdXRwdXRJZHMsIHJlc3VsdCkpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { GetNodeMoveRestrictionsRequest } from './get-node-move-restrictions.request';
|
|
4
4
|
import { PointExtensions } from '@foblex/2d';
|
|
5
|
-
import { FExecutionRegister } from '@foblex/mediator';
|
|
6
|
-
import {
|
|
5
|
+
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
6
|
+
import { GetNormalizedParentNodeRectRequest } from '../../../../domain';
|
|
7
|
+
import { GetNormalizedElementRectRequest } from '../../../../../domain';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@foblex/mediator";
|
|
9
9
|
let GetNodeMoveRestrictionsExecution = class GetNodeMoveRestrictionsExecution {
|
|
10
|
-
|
|
11
|
-
constructor(fMediator) {
|
|
12
|
-
this.fMediator = fMediator;
|
|
13
|
-
}
|
|
10
|
+
_fMediator = inject(FMediator);
|
|
14
11
|
handle(request) {
|
|
15
12
|
if (request.fNode.fParentId && !request.hasParentNodeInSelected) {
|
|
16
13
|
const fParentNodeRect = this.getParentNodeRect(request.fNode);
|
|
17
|
-
const fCurrentNodeRect = this.
|
|
14
|
+
const fCurrentNodeRect = this._getNodeRect(request.fNode);
|
|
18
15
|
return {
|
|
19
16
|
min: PointExtensions.initialize(fParentNodeRect.x - fCurrentNodeRect.x, fParentNodeRect.y - fCurrentNodeRect.y),
|
|
20
17
|
max: PointExtensions.initialize((fParentNodeRect.x + fParentNodeRect.width) - (fCurrentNodeRect.x + fCurrentNodeRect.width), (fParentNodeRect.y + fParentNodeRect.height) - (fCurrentNodeRect.y + fCurrentNodeRect.height))
|
|
@@ -22,13 +19,13 @@ let GetNodeMoveRestrictionsExecution = class GetNodeMoveRestrictionsExecution {
|
|
|
22
19
|
}
|
|
23
20
|
return { ...DEFAULT_RESTRICTIONS };
|
|
24
21
|
}
|
|
25
|
-
|
|
26
|
-
return this.
|
|
22
|
+
_getNodeRect(fNode) {
|
|
23
|
+
return this._fMediator.send(new GetNormalizedElementRectRequest(fNode.hostElement));
|
|
27
24
|
}
|
|
28
25
|
getParentNodeRect(fNode) {
|
|
29
|
-
return this.
|
|
26
|
+
return this._fMediator.send(new GetNormalizedParentNodeRectRequest(fNode));
|
|
30
27
|
}
|
|
31
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNodeMoveRestrictionsExecution, deps: [
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNodeMoveRestrictionsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
29
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNodeMoveRestrictionsExecution });
|
|
33
30
|
};
|
|
34
31
|
GetNodeMoveRestrictionsExecution = __decorate([
|
|
@@ -37,9 +34,9 @@ GetNodeMoveRestrictionsExecution = __decorate([
|
|
|
37
34
|
export { GetNodeMoveRestrictionsExecution };
|
|
38
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNodeMoveRestrictionsExecution, decorators: [{
|
|
39
36
|
type: Injectable
|
|
40
|
-
}]
|
|
37
|
+
}] });
|
|
41
38
|
const DEFAULT_RESTRICTIONS = {
|
|
42
39
|
min: PointExtensions.initialize(-Infinity, -Infinity),
|
|
43
40
|
max: PointExtensions.initialize(Infinity, Infinity)
|
|
44
41
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5vZGUtbW92ZS1yZXN0cmljdGlvbnMuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9ub2RlL2NyZWF0ZS1tb3ZlLW5vZGVzLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb24vZG9tYWluL2dldC1ub2RlLW1vdmUtcmVzdHJpY3Rpb25zL2dldC1ub2RlLW1vdmUtcmVzdHJpY3Rpb25zLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFTLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBSWpFLElBQU0sZ0NBQWdDLEdBQXRDLE1BQU0sZ0NBQWdDO0lBR25DLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFaEMsTUFBTSxDQUFDLE9BQXVDO1FBQ25ELElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNoRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUQsT0FBTztnQkFDTCxHQUFHLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQztnQkFDL0csR0FBRyxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQzdCLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQzNGLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQzlGO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEVBQUUsR0FBRyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBZ0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBUSxJQUFJLCtCQUErQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFnQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFRLElBQUksa0NBQWtDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO3VHQTFCVSxnQ0FBZ0M7MkdBQWhDLGdDQUFnQzs7QUFBaEMsZ0NBQWdDO0lBRDVDLGtCQUFrQixDQUFDLDhCQUE4QixDQUFDO0dBQ3RDLGdDQUFnQyxDQTJCNUM7OzJGQTNCWSxnQ0FBZ0M7a0JBRjVDLFVBQVU7O0FBK0JYLE1BQU0sb0JBQW9CLEdBQTBCO0lBQ2xELEdBQUcsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQ3JELEdBQUcsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7Q0FDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR2V0Tm9kZU1vdmVSZXN0cmljdGlvbnNSZXF1ZXN0IH0gZnJvbSAnLi9nZXQtbm9kZS1tb3ZlLXJlc3RyaWN0aW9ucy5yZXF1ZXN0JztcbmltcG9ydCB7IElSZWN0LCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IElOb2RlTW92ZVJlc3RyaWN0aW9ucyB9IGZyb20gJy4vaS1ub2RlLW1vdmUtcmVzdHJpY3Rpb25zJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBHZXROb3JtYWxpemVkUGFyZW50Tm9kZVJlY3RSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXROb2RlTW92ZVJlc3RyaWN0aW9uc1JlcXVlc3QpXG5leHBvcnQgY2xhc3MgR2V0Tm9kZU1vdmVSZXN0cmljdGlvbnNFeGVjdXRpb25cbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPEdldE5vZGVNb3ZlUmVzdHJpY3Rpb25zUmVxdWVzdCwgSU5vZGVNb3ZlUmVzdHJpY3Rpb25zPiB7XG5cbiAgcHJpdmF0ZSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBHZXROb2RlTW92ZVJlc3RyaWN0aW9uc1JlcXVlc3QpOiBJTm9kZU1vdmVSZXN0cmljdGlvbnMge1xuICAgIGlmIChyZXF1ZXN0LmZOb2RlLmZQYXJlbnRJZCAmJiAhcmVxdWVzdC5oYXNQYXJlbnROb2RlSW5TZWxlY3RlZCkge1xuICAgICAgY29uc3QgZlBhcmVudE5vZGVSZWN0ID0gdGhpcy5nZXRQYXJlbnROb2RlUmVjdChyZXF1ZXN0LmZOb2RlKTtcbiAgICAgIGNvbnN0IGZDdXJyZW50Tm9kZVJlY3QgPSB0aGlzLl9nZXROb2RlUmVjdChyZXF1ZXN0LmZOb2RlKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1pbjogUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoZlBhcmVudE5vZGVSZWN0LnggLSBmQ3VycmVudE5vZGVSZWN0LngsIGZQYXJlbnROb2RlUmVjdC55IC0gZkN1cnJlbnROb2RlUmVjdC55KSxcbiAgICAgICAgbWF4OiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShcbiAgICAgICAgICAoZlBhcmVudE5vZGVSZWN0LnggKyBmUGFyZW50Tm9kZVJlY3Qud2lkdGgpIC0gKGZDdXJyZW50Tm9kZVJlY3QueCArIGZDdXJyZW50Tm9kZVJlY3Qud2lkdGgpLFxuICAgICAgICAgIChmUGFyZW50Tm9kZVJlY3QueSArIGZQYXJlbnROb2RlUmVjdC5oZWlnaHQpIC0gKGZDdXJyZW50Tm9kZVJlY3QueSArIGZDdXJyZW50Tm9kZVJlY3QuaGVpZ2h0KSxcbiAgICAgICAgKVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHsgLi4uREVGQVVMVF9SRVNUUklDVElPTlMgfTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vZGVSZWN0KGZOb2RlOiBGTm9kZUJhc2UpOiBJUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5zZW5kPElSZWN0PihuZXcgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdChmTm9kZS5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJlbnROb2RlUmVjdChmTm9kZTogRk5vZGVCYXNlKTogSVJlY3Qge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3Iuc2VuZDxJUmVjdD4obmV3IEdldE5vcm1hbGl6ZWRQYXJlbnROb2RlUmVjdFJlcXVlc3QoZk5vZGUpKTtcbiAgfVxufVxuXG5jb25zdCBERUZBVUxUX1JFU1RSSUNUSU9OUzogSU5vZGVNb3ZlUmVzdHJpY3Rpb25zID0ge1xuICBtaW46IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKC1JbmZpbml0eSwgLUluZmluaXR5KSxcbiAgbWF4OiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShJbmZpbml0eSwgSW5maW5pdHkpXG59O1xuIl19
|
|
@@ -1,53 +1,59 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { NodeMoveFinalizeRequest } from './node-move-finalize.request';
|
|
4
4
|
import { Point } from '@foblex/2d';
|
|
5
|
-
import { FExecutionRegister } from '@foblex/mediator';
|
|
6
|
-
import {
|
|
5
|
+
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
6
|
+
import { FComponentsStore } from '../../../f-storage';
|
|
7
|
+
import { FDraggableDataContext } from '../../f-draggable-data-context';
|
|
8
|
+
import { IsConnectionUnderNodeRequest } from '../../domain';
|
|
7
9
|
import { NodeDragToParentDragHandler } from '../node-drag-to-parent.drag-handler';
|
|
10
|
+
import { NodeDragHandler } from '../node.drag-handler';
|
|
8
11
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../../../f-storage";
|
|
10
|
-
import * as i2 from "../../f-draggable-data-context";
|
|
11
|
-
import * as i3 from "@foblex/mediator";
|
|
12
12
|
let NodeMoveFinalizeExecution = class NodeMoveFinalizeExecution {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
get
|
|
17
|
-
return this.
|
|
18
|
-
}
|
|
19
|
-
constructor(fComponentsStore, fDraggableDataContext, fMediator) {
|
|
20
|
-
this.fComponentsStore = fComponentsStore;
|
|
21
|
-
this.fDraggableDataContext = fDraggableDataContext;
|
|
22
|
-
this.fMediator = fMediator;
|
|
13
|
+
_fMediator = inject(FMediator);
|
|
14
|
+
_fComponentsStore = inject(FComponentsStore);
|
|
15
|
+
_fDraggableDataContext = inject(FDraggableDataContext);
|
|
16
|
+
get _fHost() {
|
|
17
|
+
return this._fComponentsStore.fFlow.hostElement;
|
|
23
18
|
}
|
|
24
19
|
handle(request) {
|
|
25
|
-
const difference = this.
|
|
26
|
-
this.
|
|
20
|
+
const difference = this._getDifferenceWithLineAlignment(this._getDifferenceBetweenPreparationAndFinalize(request.event.getPosition()));
|
|
21
|
+
const firstNodeOrGroup = this._fDraggableDataContext.draggableItems
|
|
22
|
+
.find((x) => x instanceof NodeDragHandler);
|
|
23
|
+
const differenceWithCellSize = firstNodeOrGroup.getDifferenceWithCellSize(difference);
|
|
24
|
+
this._finalizeMove(differenceWithCellSize);
|
|
25
|
+
this._fMediator.send(new IsConnectionUnderNodeRequest());
|
|
26
|
+
this._fDraggableDataContext.fLineAlignment?.complete();
|
|
27
|
+
}
|
|
28
|
+
_finalizeMove(difference) {
|
|
29
|
+
this._getItems().forEach((x) => {
|
|
27
30
|
x.onPointerMove({ ...difference });
|
|
28
31
|
x.onPointerUp?.();
|
|
29
32
|
});
|
|
30
|
-
this.fMediator.send(new IsConnectionUnderNodeRequest());
|
|
31
|
-
this.fDraggableDataContext.fLineAlignment?.complete();
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
-
return this.
|
|
34
|
+
_getItems() {
|
|
35
|
+
return this._fDraggableDataContext.draggableItems
|
|
35
36
|
.filter((x) => !(x instanceof NodeDragToParentDragHandler));
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
-
return Point.fromPoint(position).elementTransform(this.
|
|
39
|
-
.div(this.
|
|
40
|
-
.sub(this.
|
|
38
|
+
_getDifferenceBetweenPreparationAndFinalize(position) {
|
|
39
|
+
return Point.fromPoint(position).elementTransform(this._fHost)
|
|
40
|
+
.div(this._fDraggableDataContext.onPointerDownScale)
|
|
41
|
+
.sub(this._fDraggableDataContext.onPointerDownPosition);
|
|
42
|
+
}
|
|
43
|
+
_getDifferenceWithLineAlignment(difference) {
|
|
44
|
+
return this._applyLineAlignmentDifference(difference, this._getLineAlignmentDifference(difference));
|
|
45
|
+
}
|
|
46
|
+
_getLineAlignmentDifference(difference) {
|
|
47
|
+
return this._fDraggableDataContext.fLineAlignment?.findNearestCoordinate(difference);
|
|
41
48
|
}
|
|
42
|
-
|
|
43
|
-
const intersection = this.fDraggableDataContext.fLineAlignment?.findNearestCoordinate(difference);
|
|
49
|
+
_applyLineAlignmentDifference(difference, intersection) {
|
|
44
50
|
if (intersection) {
|
|
45
51
|
difference.x = intersection.xResult.value ? (difference.x - intersection.xResult.distance) : difference.x;
|
|
46
52
|
difference.y = intersection.yResult.value ? (difference.y - intersection.yResult.distance) : difference.y;
|
|
47
53
|
}
|
|
48
54
|
return difference;
|
|
49
55
|
}
|
|
50
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMoveFinalizeExecution, deps: [
|
|
56
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMoveFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
51
57
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMoveFinalizeExecution });
|
|
52
58
|
};
|
|
53
59
|
NodeMoveFinalizeExecution = __decorate([
|
|
@@ -56,5 +62,5 @@ NodeMoveFinalizeExecution = __decorate([
|
|
|
56
62
|
export { NodeMoveFinalizeExecution };
|
|
57
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMoveFinalizeExecution, decorators: [{
|
|
58
64
|
type: Injectable
|
|
59
|
-
}]
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
}] });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1tb3ZlLWZpbmFsaXplLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvbm9kZS9ub2RlLW1vdmUtZmluYWxpemUvbm9kZS1tb3ZlLWZpbmFsaXplLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFVLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUNMLDRCQUE0QixFQUM3QixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBSWhELElBQU0seUJBQXlCLEdBQS9CLE1BQU0seUJBQXlCO0lBRTVCLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0Msc0JBQXNCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFL0QsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQU0sQ0FBQyxXQUFXLENBQUM7SUFDbkQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFnQztRQUM1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dCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3QgfSBmcm9tICcuL25vZGUtbW92ZS1maW5hbGl6ZS5yZXF1ZXN0JztcbmltcG9ydCB7IElQb2ludCwgUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQge1xuICBJc0Nvbm5lY3Rpb25VbmRlck5vZGVSZXF1ZXN0XG59IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBJRHJhZ2dhYmxlSXRlbSB9IGZyb20gJy4uLy4uL2ktZHJhZ2dhYmxlLWl0ZW0nO1xuaW1wb3J0IHsgTm9kZURyYWdUb1BhcmVudERyYWdIYW5kbGVyIH0gZnJvbSAnLi4vbm9kZS1kcmFnLXRvLXBhcmVudC5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgSUxpbmVBbGlnbm1lbnRSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9mLWxpbmUtYWxpZ25tZW50JztcbmltcG9ydCB7IE5vZGVEcmFnSGFuZGxlciB9IGZyb20gJy4uL25vZGUuZHJhZy1oYW5kbGVyJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihOb2RlTW92ZUZpbmFsaXplUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBOb2RlTW92ZUZpbmFsaXplRXhlY3V0aW9uIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxOb2RlTW92ZUZpbmFsaXplUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIF9mRHJhZ2dhYmxlRGF0YUNvbnRleHQgPSBpbmplY3QoRkRyYWdnYWJsZURhdGFDb250ZXh0KTtcblxuICBwcml2YXRlIGdldCBfZkhvc3QoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZGbG93IS5ob3N0RWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3QpOiB2b2lkIHtcbiAgICBjb25zdCBkaWZmZXJlbmNlID0gdGhpcy5fZ2V0RGlmZmVyZW5jZVdpdGhMaW5lQWxpZ25tZW50KFxuICAgICAgdGhpcy5fZ2V0RGlmZmVyZW5jZUJldHdlZW5QcmVwYXJhdGlvbkFuZEZpbmFsaXplKHJlcXVlc3QuZXZlbnQuZ2V0UG9zaXRpb24oKSlcbiAgICApO1xuXG4gICAgY29uc3QgZmlyc3ROb2RlT3JHcm91cCA9IHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtc1xuICAgICAgLmZpbmQoKHgpID0+IHggaW5zdGFuY2VvZiBOb2RlRHJhZ0hhbmRsZXIpITtcblxuICAgIGNvbnN0IGRpZmZlcmVuY2VXaXRoQ2VsbFNpemUgPSBmaXJzdE5vZGVPckdyb3VwLmdldERpZmZlcmVuY2VXaXRoQ2VsbFNpemUoZGlmZmVyZW5jZSk7XG5cbiAgICB0aGlzLl9maW5hbGl6ZU1vdmUoZGlmZmVyZW5jZVdpdGhDZWxsU2l6ZSk7XG5cbiAgICB0aGlzLl9mTWVkaWF0b3Iuc2VuZChuZXcgSXNDb25uZWN0aW9uVW5kZXJOb2RlUmVxdWVzdCgpKTtcbiAgICB0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZkxpbmVBbGlnbm1lbnQ/LmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9maW5hbGl6ZU1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fZ2V0SXRlbXMoKS5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICB4Lm9uUG9pbnRlck1vdmUoeyAuLi5kaWZmZXJlbmNlIH0pO1xuICAgICAgeC5vblBvaW50ZXJVcD8uKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJdGVtcygpOiBJRHJhZ2dhYmxlSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zXG4gICAgICAuZmlsdGVyKCh4KSA9PiAhKHggaW5zdGFuY2VvZiBOb2RlRHJhZ1RvUGFyZW50RHJhZ0hhbmRsZXIpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERpZmZlcmVuY2VCZXR3ZWVuUHJlcGFyYXRpb25BbmRGaW5hbGl6ZShwb3NpdGlvbjogSVBvaW50KTogUG9pbnQge1xuICAgIHJldHVybiBQb2ludC5mcm9tUG9pbnQocG9zaXRpb24pLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5fZkhvc3QpXG4gICAgICAuZGl2KHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpXG4gICAgICAuc3ViKHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGlmZmVyZW5jZVdpdGhMaW5lQWxpZ25tZW50KGRpZmZlcmVuY2U6IElQb2ludCk6IElQb2ludCB7XG4gICAgcmV0dXJuIHRoaXMuX2FwcGx5TGluZUFsaWdubWVudERpZmZlcmVuY2UoXG4gICAgICBkaWZmZXJlbmNlLFxuICAgICAgdGhpcy5fZ2V0TGluZUFsaWdubWVudERpZmZlcmVuY2UoZGlmZmVyZW5jZSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TGluZUFsaWdubWVudERpZmZlcmVuY2UoZGlmZmVyZW5jZTogSVBvaW50KTogSUxpbmVBbGlnbm1lbnRSZXN1bHQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZkxpbmVBbGlnbm1lbnQ/LmZpbmROZWFyZXN0Q29vcmRpbmF0ZShkaWZmZXJlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5TGluZUFsaWdubWVudERpZmZlcmVuY2UoZGlmZmVyZW5jZTogSVBvaW50LCBpbnRlcnNlY3Rpb246IElMaW5lQWxpZ25tZW50UmVzdWx0IHwgdW5kZWZpbmVkKTogSVBvaW50IHtcbiAgICBpZiAoaW50ZXJzZWN0aW9uKSB7XG4gICAgICBkaWZmZXJlbmNlLnggPSBpbnRlcnNlY3Rpb24ueFJlc3VsdC52YWx1ZSA/IChkaWZmZXJlbmNlLnggLSBpbnRlcnNlY3Rpb24ueFJlc3VsdC5kaXN0YW5jZSEpIDogZGlmZmVyZW5jZS54O1xuICAgICAgZGlmZmVyZW5jZS55ID0gaW50ZXJzZWN0aW9uLnlSZXN1bHQudmFsdWUgPyAoZGlmZmVyZW5jZS55IC0gaW50ZXJzZWN0aW9uLnlSZXN1bHQuZGlzdGFuY2UhKSA6IGRpZmZlcmVuY2UueTtcbiAgICB9XG4gICAgcmV0dXJuIGRpZmZlcmVuY2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,66 +1,64 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { NodeMovePreparationRequest } from './node-move-preparation.request';
|
|
4
4
|
import { Point } from '@foblex/2d';
|
|
5
|
-
import { FExecutionRegister } from '@foblex/mediator';
|
|
5
|
+
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
6
|
+
import { FComponentsStore } from '../../../f-storage';
|
|
7
|
+
import { FDraggableDataContext } from '../../f-draggable-data-context';
|
|
6
8
|
import { NodeDragHandler } from '../node.drag-handler';
|
|
7
9
|
import { CreateMoveNodesDragModelFromSelectionRequest } from '../create-move-nodes-drag-model-from-selection';
|
|
8
10
|
import { SelectAndUpdateNodeLayerRequest } from '../../../domain';
|
|
9
11
|
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "../../../f-storage";
|
|
11
|
-
import * as i2 from "../../f-draggable-data-context";
|
|
12
|
-
import * as i3 from "@foblex/mediator";
|
|
13
12
|
let NodeMovePreparationExecution = class NodeMovePreparationExecution {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
get
|
|
18
|
-
return this.
|
|
13
|
+
_fMediator = inject(FMediator);
|
|
14
|
+
_fComponentsStore = inject(FComponentsStore);
|
|
15
|
+
_fDraggableDataContext = inject(FDraggableDataContext);
|
|
16
|
+
get _transform() {
|
|
17
|
+
return this._fComponentsStore.fCanvas.transform;
|
|
19
18
|
}
|
|
20
|
-
get
|
|
21
|
-
return this.
|
|
22
|
-
}
|
|
23
|
-
constructor(fComponentsStore, fDraggableDataContext, fMediator) {
|
|
24
|
-
this.fComponentsStore = fComponentsStore;
|
|
25
|
-
this.fDraggableDataContext = fDraggableDataContext;
|
|
26
|
-
this.fMediator = fMediator;
|
|
19
|
+
get _fHost() {
|
|
20
|
+
return this._fComponentsStore.fFlow.hostElement;
|
|
27
21
|
}
|
|
28
22
|
handle(request) {
|
|
29
|
-
const
|
|
30
|
-
|
|
23
|
+
const itemsToDrag = this._calculateDraggableItems(this._getNode(request.event.targetElement));
|
|
24
|
+
this._initializeLineAlignment(itemsToDrag);
|
|
25
|
+
this._fDraggableDataContext.onPointerDownScale = this._transform.scale;
|
|
26
|
+
this._fDraggableDataContext.onPointerDownPosition = Point.fromPoint(request.event.getPosition())
|
|
27
|
+
.elementTransform(this._fHost).div(this._transform.scale);
|
|
28
|
+
this._fDraggableDataContext.draggableItems = itemsToDrag;
|
|
29
|
+
}
|
|
30
|
+
_getNode(targetElement) {
|
|
31
|
+
const result = this._fComponentsStore.fNodes.find(n => n.isContains(targetElement));
|
|
32
|
+
if (!result) {
|
|
31
33
|
throw new Error('Node not found');
|
|
32
34
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
//We drag nodes from selection model
|
|
38
|
+
_calculateDraggableItems(fNode) {
|
|
39
|
+
let result = [];
|
|
40
|
+
if (!fNode.fSelectionDisabled) {
|
|
41
|
+
// Need to select node before drag
|
|
42
|
+
this._fMediator.send(new SelectAndUpdateNodeLayerRequest(fNode));
|
|
43
|
+
result = this._dragModelFromSelection();
|
|
37
44
|
}
|
|
38
45
|
else {
|
|
39
|
-
|
|
46
|
+
// User can drag node that can't be selected
|
|
47
|
+
result = this._dragModelFromSelection(fNode);
|
|
40
48
|
}
|
|
41
|
-
|
|
42
|
-
this.fDraggableDataContext.onPointerDownScale = this.transform.scale;
|
|
43
|
-
this.fDraggableDataContext.onPointerDownPosition = Point.fromPoint(request.event.getPosition())
|
|
44
|
-
.elementTransform(this.flowHost).div(this.transform.scale);
|
|
45
|
-
this.fDraggableDataContext.draggableItems = itemsToDrag;
|
|
46
|
-
}
|
|
47
|
-
selectAndUpdateNodeLayer(node) {
|
|
48
|
-
this.fMediator.send(new SelectAndUpdateNodeLayerRequest(node));
|
|
49
|
-
}
|
|
50
|
-
getNode(targetElement) {
|
|
51
|
-
return this.fComponentsStore.fNodes.find(n => n.isContains(targetElement));
|
|
49
|
+
return result;
|
|
52
50
|
}
|
|
53
|
-
|
|
54
|
-
return this.
|
|
51
|
+
_dragModelFromSelection(nodeWithDisabledSelection) {
|
|
52
|
+
return this._fMediator.send(new CreateMoveNodesDragModelFromSelectionRequest(nodeWithDisabledSelection));
|
|
55
53
|
}
|
|
56
|
-
|
|
57
|
-
this.
|
|
54
|
+
_initializeLineAlignment(itemsToDrag) {
|
|
55
|
+
this._fDraggableDataContext.fLineAlignment?.initialize(this._fComponentsStore.fNodes, this._filterNodesFromDraggableItems(itemsToDrag));
|
|
58
56
|
}
|
|
59
|
-
|
|
57
|
+
_filterNodesFromDraggableItems(items) {
|
|
60
58
|
return items.filter((x) => x instanceof NodeDragHandler)
|
|
61
59
|
.map(x => x.fNode);
|
|
62
60
|
}
|
|
63
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMovePreparationExecution, deps: [
|
|
61
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMovePreparationExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
64
62
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMovePreparationExecution });
|
|
65
63
|
};
|
|
66
64
|
NodeMovePreparationExecution = __decorate([
|
|
@@ -69,5 +67,5 @@ NodeMovePreparationExecution = __decorate([
|
|
|
69
67
|
export { NodeMovePreparationExecution };
|
|
70
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NodeMovePreparationExecution, decorators: [{
|
|
71
69
|
type: Injectable
|
|
72
|
-
}]
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
}] });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1tb3ZlLXByZXBhcmF0aW9uLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvbm9kZS9ub2RlLW1vdmUtcHJlcGFyYXRpb24vbm9kZS1tb3ZlLXByZXBhcmF0aW9uLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFtQixLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsNENBQTRDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM5RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFJM0QsSUFBTSw0QkFBNEIsR0FBbEMsTUFBTSw0QkFBNEI7SUFFL0IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixpQkFBaUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3QyxzQkFBc0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUUvRCxJQUFZLFVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBWSxNQUFN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L2NvcmUnO1xuaW1wb3J0IHsgTm9kZU1vdmVQcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuL25vZGUtbW92ZS1wcmVwYXJhdGlvbi5yZXF1ZXN0JztcbmltcG9ydCB7IElUcmFuc2Zvcm1Nb2RlbCwgUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBJRHJhZ2dhYmxlSXRlbSB9IGZyb20gJy4uLy4uL2ktZHJhZ2dhYmxlLWl0ZW0nO1xuaW1wb3J0IHsgTm9kZURyYWdIYW5kbGVyIH0gZnJvbSAnLi4vbm9kZS5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IENyZWF0ZU1vdmVOb2Rlc0RyYWdNb2RlbEZyb21TZWxlY3Rpb25SZXF1ZXN0IH0gZnJvbSAnLi4vY3JlYXRlLW1vdmUtbm9kZXMtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvbic7XG5pbXBvcnQgeyBTZWxlY3RBbmRVcGRhdGVOb2RlTGF5ZXJSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihOb2RlTW92ZVByZXBhcmF0aW9uUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBOb2RlTW92ZVByZXBhcmF0aW9uRXhlY3V0aW9uIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxOb2RlTW92ZVByZXBhcmF0aW9uUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIF9mRHJhZ2dhYmxlRGF0YUNvbnRleHQgPSBpbmplY3QoRkRyYWdnYWJsZURhdGFDb250ZXh0KTtcblxuICBwcml2YXRlIGdldCBfdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2ZIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IE5vZGVNb3ZlUHJlcGFyYXRpb25SZXF1ZXN0KTogdm9pZCB7XG5cbiAgICBjb25zdCBpdGVtc1RvRHJhZyA9IHRoaXMuX2NhbGN1bGF0ZURyYWdnYWJsZUl0ZW1zKFxuICAgICAgdGhpcy5fZ2V0Tm9kZShyZXF1ZXN0LmV2ZW50LnRhcmdldEVsZW1lbnQpXG4gICAgKTtcblxuICAgIHRoaXMuX2luaXRpYWxpemVMaW5lQWxpZ25tZW50KGl0ZW1zVG9EcmFnKTtcblxuICAgIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUgPSB0aGlzLl90cmFuc2Zvcm0uc2NhbGU7XG4gICAgdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbiA9IFBvaW50LmZyb21Qb2ludChyZXF1ZXN0LmV2ZW50LmdldFBvc2l0aW9uKCkpXG4gICAgICAuZWxlbWVudFRyYW5zZm9ybSh0aGlzLl9mSG9zdCkuZGl2KHRoaXMuX3RyYW5zZm9ybS5zY2FsZSk7XG4gICAgdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zID0gaXRlbXNUb0RyYWc7XG4gIH1cblxuICBwcml2YXRlIF9nZXROb2RlKHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50KTogRk5vZGVCYXNlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZOb2Rlcy5maW5kKG4gPT4gbi5pc0NvbnRhaW5zKHRhcmdldEVsZW1lbnQpKSE7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm9kZSBub3QgZm91bmQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8vV2UgZHJhZyBub2RlcyBmcm9tIHNlbGVjdGlvbiBtb2RlbFxuICBwcml2YXRlIF9jYWxjdWxhdGVEcmFnZ2FibGVJdGVtcyhmTm9kZTogRk5vZGVCYXNlKTogSURyYWdnYWJsZUl0ZW1bXSB7XG4gICAgbGV0IHJlc3VsdDogSURyYWdnYWJsZUl0ZW1bXSA9IFtdO1xuICAgIGlmICghZk5vZGUuZlNlbGVjdGlvbkRpc2FibGVkKSB7XG4gICAgICAvLyBOZWVkIHRvIHNlbGVjdCBub2RlIGJlZm9yZSBkcmFnXG4gICAgICB0aGlzLl9mTWVkaWF0b3Iuc2VuZChuZXcgU2VsZWN0QW5kVXBkYXRlTm9kZUxheWVyUmVxdWVzdChmTm9kZSkpO1xuXG4gICAgICByZXN1bHQgPSB0aGlzLl9kcmFnTW9kZWxGcm9tU2VsZWN0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVzZXIgY2FuIGRyYWcgbm9kZSB0aGF0IGNhbid0IGJlIHNlbGVjdGVkXG4gICAgICByZXN1bHQgPSB0aGlzLl9kcmFnTW9kZWxGcm9tU2VsZWN0aW9uKGZOb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgX2RyYWdNb2RlbEZyb21TZWxlY3Rpb24obm9kZVdpdGhEaXNhYmxlZFNlbGVjdGlvbj86IEZOb2RlQmFzZSk6IElEcmFnZ2FibGVJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3Iuc2VuZChcbiAgICAgIG5ldyBDcmVhdGVNb3ZlTm9kZXNEcmFnTW9kZWxGcm9tU2VsZWN0aW9uUmVxdWVzdChub2RlV2l0aERpc2FibGVkU2VsZWN0aW9uKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0aWFsaXplTGluZUFsaWdubWVudChpdGVtc1RvRHJhZzogSURyYWdnYWJsZUl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5mTGluZUFsaWdubWVudD8uaW5pdGlhbGl6ZShcbiAgICAgIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZk5vZGVzLCB0aGlzLl9maWx0ZXJOb2Rlc0Zyb21EcmFnZ2FibGVJdGVtcyhpdGVtc1RvRHJhZylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyTm9kZXNGcm9tRHJhZ2dhYmxlSXRlbXMoaXRlbXM6IElEcmFnZ2FibGVJdGVtW10pOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoeCkgPT4geCBpbnN0YW5jZW9mIE5vZGVEcmFnSGFuZGxlcilcbiAgICAgIC5tYXAoeCA9PiAoeCBhcyBOb2RlRHJhZ0hhbmRsZXIpLmZOb2RlKTtcbiAgfVxufVxuIl19
|