@foblex/flow 17.0.6 → 17.0.7
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-connection/find-closest-input/find-closest-input.execution.d.ts +11 -0
- package/domain/f-connection/{find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.d.ts → find-closest-input/find-closest-input.request.d.ts} +2 -3
- package/domain/f-connection/find-closest-input/i-closest-input.d.ts +7 -0
- package/domain/f-connection/find-closest-input/index.d.ts +3 -0
- package/domain/f-connection/get-connector-with-rect/get-connector-with-rect.execution.d.ts +2 -3
- package/domain/f-connection/index.d.ts +1 -1
- package/domain/f-connection/providers.d.ts +2 -2
- package/domain/get-normalized-element-rect/get-normalized-element-rect-request.d.ts +2 -1
- package/domain/providers.d.ts +1 -1
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.request.mjs +1 -1
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.mjs +5 -3
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.mjs +19 -29
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +6 -3
- package/esm2022/domain/f-connection/find-closest-input/find-closest-input.execution.mjs +42 -0
- package/esm2022/domain/f-connection/find-closest-input/find-closest-input.request.mjs +9 -0
- package/esm2022/domain/f-connection/find-closest-input/i-closest-input.mjs +2 -0
- package/esm2022/domain/f-connection/find-closest-input/index.mjs +4 -0
- package/esm2022/domain/f-connection/get-connector-with-rect/get-connector-with-rect-request.mjs +1 -1
- package/esm2022/domain/f-connection/get-connector-with-rect/get-connector-with-rect.execution.mjs +7 -11
- package/esm2022/domain/f-connection/index.mjs +2 -2
- package/esm2022/domain/f-connection/providers.mjs +3 -3
- package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +2 -2
- package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +3 -3
- package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect-request.mjs +4 -2
- package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +5 -5
- package/esm2022/f-connection/f-connection/f-connection.component.mjs +6 -5
- package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +33 -19
- package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.mjs +29 -21
- package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +2 -2
- package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +2 -2
- package/esm2022/f-draggable/node/connection-base-drag-handler.mjs +2 -2
- package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +2 -2
- package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +2 -2
- package/esm2022/f-draggable/node/connection.drag-handler.mjs +2 -2
- package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.mjs +2 -2
- package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.mjs +15 -8
- package/esm2022/f-draggable/node/node-drag-to-parent.drag-handler.mjs +32 -17
- package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +1 -1
- package/esm2022/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +2 -2
- package/esm2022/f-draggable/node-resize/node-resize.drag-handler.mjs +2 -2
- package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.execution.mjs +2 -2
- package/esm2022/f-line-alignment/domain/index.mjs +1 -2
- package/esm2022/f-line-alignment/f-line-alignment.component.mjs +17 -12
- package/f-connection/f-connection/f-connection.component.d.ts +4 -2
- package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +8 -4
- package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +7 -4
- package/f-draggable/node/connection-base-drag-handler.d.ts +1 -1
- package/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.d.ts +4 -3
- package/f-draggable/node/node-drag-to-parent.drag-handler.d.ts +9 -4
- package/f-line-alignment/domain/index.d.ts +0 -1
- package/f-line-alignment/f-line-alignment.component.d.ts +2 -1
- package/fesm2022/foblex-flow.mjs +185 -242
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +3 -3
- package/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.d.ts +0 -11
- package/domain/f-connection/find-closest-input-using-snap-threshold/index.d.ts +0 -2
- package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.mjs +0 -39
- package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.mjs +0 -11
- package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/index.mjs +0 -3
- package/esm2022/f-line-alignment/domain/nearest-coordinate.mjs +0 -104
- package/f-line-alignment/domain/nearest-coordinate.d.ts +0 -27
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, inject, Input } from '@angular/core';
|
|
2
|
-
import { RectExtensions, SizeExtensions } from '@foblex/2d';
|
|
3
|
-
import { LineService
|
|
2
|
+
import { findClosestAlignment, RectExtensions, SizeExtensions } from '@foblex/2d';
|
|
3
|
+
import { LineService } from './domain';
|
|
4
4
|
import { F_LINE_ALIGNMENT, FLineAlignmentBase } from './f-line-alignment-base';
|
|
5
5
|
import { GetCanvasRequest, GetNormalizedElementRectRequest, GetFlowHostElementRequest } from '../domain';
|
|
6
6
|
import { FMediator } from '@foblex/mediator';
|
|
@@ -10,6 +10,7 @@ import * as i2 from "@foblex/platform";
|
|
|
10
10
|
export class FLineAlignmentComponent extends FLineAlignmentBase {
|
|
11
11
|
elementReference;
|
|
12
12
|
fDraggableDataContext;
|
|
13
|
+
DEBOUNCE_TIME = 10;
|
|
13
14
|
fAlignThreshold = 10;
|
|
14
15
|
get hostElement() {
|
|
15
16
|
return this.elementReference.nativeElement;
|
|
@@ -20,12 +21,10 @@ export class FLineAlignmentComponent extends FLineAlignmentBase {
|
|
|
20
21
|
rects = [];
|
|
21
22
|
_fMediator = inject(FMediator);
|
|
22
23
|
_fCanvas;
|
|
24
|
+
_debounceTimer = null;
|
|
23
25
|
get _transform() {
|
|
24
26
|
return this._fCanvas.transform;
|
|
25
27
|
}
|
|
26
|
-
get _fFlowHostElement() {
|
|
27
|
-
return this._fMediator.send(new GetFlowHostElementRequest());
|
|
28
|
-
}
|
|
29
28
|
constructor(elementReference, fDraggableDataContext, fBrowser) {
|
|
30
29
|
super();
|
|
31
30
|
this.elementReference = elementReference;
|
|
@@ -37,21 +36,24 @@ export class FLineAlignmentComponent extends FLineAlignmentBase {
|
|
|
37
36
|
this.fDraggableDataContext.fLineAlignment = this;
|
|
38
37
|
}
|
|
39
38
|
initialize(allNodes, currentNodes) {
|
|
40
|
-
this.size = this.
|
|
39
|
+
this.size = this._fMediator.send(new GetFlowHostElementRequest()).getBoundingClientRect();
|
|
41
40
|
this.rects = [];
|
|
42
41
|
const draggedNodeRects = currentNodes.map((x) => {
|
|
43
|
-
return this._fMediator.
|
|
42
|
+
return this._fMediator.execute(new GetNormalizedElementRectRequest(x.hostElement, false));
|
|
44
43
|
});
|
|
45
44
|
this.draggedNodeRect = RectExtensions.union(draggedNodeRects) || RectExtensions.initialize();
|
|
46
45
|
const allNodesExcludeCurrents = allNodes.filter((x) => {
|
|
47
46
|
return !currentNodes.includes(x);
|
|
48
47
|
});
|
|
49
48
|
this.rects = allNodesExcludeCurrents.map((x) => {
|
|
50
|
-
return this._fMediator.
|
|
49
|
+
return this._fMediator.execute(new GetNormalizedElementRectRequest(x.hostElement, false));
|
|
51
50
|
});
|
|
52
51
|
}
|
|
53
52
|
handle(difference) {
|
|
54
|
-
this.
|
|
53
|
+
if (this._debounceTimer) {
|
|
54
|
+
clearTimeout(this._debounceTimer);
|
|
55
|
+
}
|
|
56
|
+
this._debounceTimer = setTimeout(() => this.drawIntersectingLines(difference), this.DEBOUNCE_TIME);
|
|
55
57
|
}
|
|
56
58
|
drawIntersectingLines(difference) {
|
|
57
59
|
const intersect = this.findNearestCoordinate(difference);
|
|
@@ -70,12 +72,15 @@ export class FLineAlignmentComponent extends FLineAlignmentBase {
|
|
|
70
72
|
}
|
|
71
73
|
findNearestCoordinate(difference) {
|
|
72
74
|
const rect = RectExtensions.addPoint(this.draggedNodeRect, difference);
|
|
73
|
-
|
|
74
|
-
return { xResult: finder.findNearestCoordinateByX(), yResult: finder.findNearestCoordinateByY() };
|
|
75
|
+
return findClosestAlignment(this.rects, rect, this.fAlignThreshold);
|
|
75
76
|
}
|
|
76
77
|
complete() {
|
|
77
78
|
this.lineService.hideVerticalLine();
|
|
78
79
|
this.lineService.hideHorizontalLine();
|
|
80
|
+
if (this._debounceTimer) {
|
|
81
|
+
clearTimeout(this._debounceTimer);
|
|
82
|
+
this._debounceTimer = null;
|
|
83
|
+
}
|
|
79
84
|
}
|
|
80
85
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FLineAlignmentComponent, deps: [{ token: i0.ElementRef }, { token: i1.FDraggableDataContext }, { token: i2.BrowserService }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
86
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FLineAlignmentComponent, selector: "f-line-alignment", inputs: { fAlignThreshold: "fAlignThreshold" }, host: { classAttribute: "f-line-alignment f-component" }, providers: [
|
|
@@ -92,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
|
|
|
92
97
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FDraggableDataContext }, { type: i2.BrowserService }], propDecorators: { fAlignThreshold: [{
|
|
93
98
|
type: Input
|
|
94
99
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtbGluZS1hbGlnbm1lbnQvZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQXlDLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkcsT0FBTyxFQUF3QixXQUFXLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLCtCQUErQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQWdCN0MsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGtCQUFrQjtJQThCbkQ7SUFDQTtJQTVCSCxlQUFlLEdBQVcsRUFBRSxDQUFDO0lBRXBDLElBQW9CLFdBQVc7UUFDN0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFTyxXQUFXLENBQWM7SUFFekIsSUFBSSxHQUFVLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUUxQyxlQUFlLEdBQVUsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXJELEtBQUssR0FBWSxFQUFFLENBQUM7SUFFcEIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvQixRQUFRLENBQTBCO0lBRTFDLElBQVksVUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFTLENBQUMsU0FBUyxD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QyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRU0scUJBQXFCLENBQUMsVUFBa0I7UUFDN0MsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sTUFBTSxHQUFHLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRW5GLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLENBQUM7SUFDcEcsQ0FBQztJQUVlLFFBQVE7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO3VHQXhGVSx1QkFBdUI7MkZBQXZCLHVCQUF1QixxSkFKdkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUU7U0FDcEUsMkVBUlMsRUFBRTs7MkZBVUQsdUJBQXVCO2tCQVpuQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQixFQUFFLFlBRUYsWUFBWSxRQUNoQjt3QkFDSixPQUFPLEVBQUUsOEJBQThCO3FCQUN4QyxhQUNVO3dCQUNULEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcseUJBQXlCLEVBQUU7cUJBQ3BFO2dKQUtNLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQb2ludCwgSVJlY3QsIElTaXplLCBJVHJhbnNmb3JtTW9kZWwsIFJlY3RFeHRlbnNpb25zLCBTaXplRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSUxpbmVBbGlnbm1lbnRSZXN1bHQsIExpbmVTZXJ2aWNlLCBOZWFyZXN0Q29vcmRpbmF0ZUZpbmRlciB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZfTElORV9BTElHTk1FTlQsIEZMaW5lQWxpZ25tZW50QmFzZSB9IGZyb20gJy4vZi1saW5lLWFsaWdubWVudC1iYXNlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBHZXRDYW52YXNSZXF1ZXN0LCBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0LCBHZXRGbG93SG9zdEVsZW1lbnRSZXF1ZXN0IH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UgfSBmcm9tICdAZm9ibGV4L3BsYXRmb3JtJztcbmltcG9ydCB7IEZDYW52YXNCYXNlIH0gZnJvbSAnLi4vZi1jYW52YXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZi1saW5lLWFsaWdubWVudFwiLFxuICB0ZW1wbGF0ZTogXCJcIixcbiAgc3R5bGVVcmxzOiBbIFwiLi9mLWxpbmUtYWxpZ25tZW50LmNvbXBvbmVudC5zY3NzXCIgXSxcbiAgZXhwb3J0QXM6IFwiZkNvbXBvbmVudFwiLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2YtbGluZS1hbGlnbm1lbnQgZi1jb21wb25lbnQnXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9MSU5FX0FMSUdOTUVOVCwgdXNlRXhpc3Rpbmc6IEZMaW5lQWxpZ25tZW50Q29tcG9uZW50IH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRkxpbmVBbGlnbm1lbnRDb21wb25lbnQgZXh0ZW5kcyBGTGluZUFsaWdubWVudEJhc2UgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZkFsaWduVGhyZXNob2xkOiBudW1iZXIgPSAxMDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGxpbmVTZXJ2aWNlOiBMaW5lU2VydmljZTtcblxuICBwcml2YXRlIHNpemU6IElTaXplID0gU2l6ZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByaXZhdGUgZHJhZ2dlZE5vZGVSZWN0OiBJUmVjdCA9IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIHJlY3RzOiBJUmVjdFtdID0gW107XG5cbiAgcHJpdmF0ZSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgcHJpdmF0ZSBfZkNhbnZhczogRkNhbnZhc0Jhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBnZXQgX3RyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLl9mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBwcml2YXRlIGdldCBfZkZsb3dIb3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5zZW5kPEhUTUxFbGVtZW50PihuZXcgR2V0Rmxvd0hvc3RFbGVtZW50UmVxdWVzdCgpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICBmQnJvd3NlcjogQnJvd3NlclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxpbmVTZXJ2aWNlID0gbmV3IExpbmVTZXJ2aWNlKGZCcm93c2VyLCB0aGlzLmhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZkNhbnZhcyA9IHRoaXMuX2ZNZWRpYXRvci5zZW5kKG5ldyBHZXRDYW52YXNSZXF1ZXN0KCkpO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmZMaW5lQWxpZ25tZW50ID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBpbml0aWFsaXplKGFsbE5vZGVzOiBGTm9kZUJhc2VbXSwgY3VycmVudE5vZGVzOiBGTm9kZUJhc2VbXSk6IHZvaWQge1xuICAgIHRoaXMuc2l6ZSA9IHRoaXMuX2ZGbG93SG9zdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5yZWN0cyA9IFtdO1xuICAgIGNvbnN0IGRyYWdnZWROb2RlUmVjdHMgPSBjdXJyZW50Tm9kZXMubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0KHguaG9zdEVsZW1lbnQpKTtcbiAgICB9KTtcbiAgICB0aGlzLmRyYWdnZWROb2RlUmVjdCA9IFJlY3RFeHRlbnNpb25zLnVuaW9uKGRyYWdnZWROb2RlUmVjdHMpIHx8IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICAgIGNvbnN0IGFsbE5vZGVzRXhjbHVkZUN1cnJlbnRzID0gYWxsTm9kZXMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gIWN1cnJlbnROb2Rlcy5pbmNsdWRlcyh4KTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVjdHMgPSBhbGxOb2Rlc0V4Y2x1ZGVDdXJyZW50cy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3Iuc2VuZDxJUmVjdD4obmV3IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QoeC5ob3N0RWxlbWVudCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGhhbmRsZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdJbnRlcnNlY3RpbmdMaW5lcyhkaWZmZXJlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0ludGVyc2VjdGluZ0xpbmVzKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIGNvbnN0IGludGVyc2VjdCA9IHRoaXMuZmluZE5lYXJlc3RDb29yZGluYXRlKGRpZmZlcmVuY2UpO1xuICAgIGlmIChpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmRyYXdWZXJ0aWNhbExpbmUoaW50ZXJzZWN0LnhSZXN1bHQudmFsdWUsIHRoaXMuc2l6ZSwgdGhpcy5fdHJhbnNmb3JtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saW5lU2VydmljZS5oaWRlVmVydGljYWxMaW5lKCk7XG4gICAgfVxuICAgIGlmIChpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmRyYXdIb3Jpem9udGFsTGluZShpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSwgdGhpcy5zaXplLCB0aGlzLl90cmFuc2Zvcm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVIb3Jpem9udGFsTGluZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZTogSVBvaW50KTogSUxpbmVBbGlnbm1lbnRSZXN1bHQge1xuICAgIGNvbnN0IHJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5hZGRQb2ludCh0aGlzLmRyYWdnZWROb2RlUmVjdCwgZGlmZmVyZW5jZSk7XG4gICAgY29uc3QgZmluZGVyID0gbmV3IE5lYXJlc3RDb29yZGluYXRlRmluZGVyKHRoaXMucmVjdHMsIHJlY3QsIHRoaXMuZkFsaWduVGhyZXNob2xkKTtcblxuICAgIHJldHVybiB7IHhSZXN1bHQ6IGZpbmRlci5maW5kTmVhcmVzdENvb3JkaW5hdGVCeVgoKSwgeVJlc3VsdDogZmluZGVyLmZpbmROZWFyZXN0Q29vcmRpbmF0ZUJ5WSgpIH07XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29tcGxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5saW5lU2VydmljZS5oaWRlVmVydGljYWxMaW5lKCk7XG4gICAgdGhpcy5saW5lU2VydmljZS5oaWRlSG9yaXpvbnRhbExpbmUoKTtcbiAgfVxufVxuIl19
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtbGluZS1hbGlnbm1lbnQvZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQ0wsb0JBQW9CLEVBS3BCLGNBQWMsRUFDZCxjQUFjLEVBQ2YsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUF3QixXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLCtCQUErQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQWdCN0MsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGtCQUFrQjtJQThCbkQ7SUFDQTtJQTdCRixhQUFhLEdBQUcsRUFBRSxDQUFDO0lBR3BCLGVBQWUsR0FBVyxFQUFFLENBQUM7SUFFcEMsSUFBb0IsV0FBVztRQUM3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQUVPLFdBQVcsQ0FBYztJQUV6QixJQUFJLEdBQVUsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRTFDLGVBQWUsR0FBVSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFckQsS0FBSyxHQUFZLEVBQUUsQ0FBQztJQUVwQixVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRS9CLFFBQVEsQ0FBMEI7SUFFbEMsY0FBYyxHQUFRLElBQUksQ0FBQztJ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O3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBmaW5kQ2xvc2VzdEFsaWdubWVudCxcbiAgSVBvaW50LFxuICBJUmVjdCxcbiAgSVNpemUsXG4gIElUcmFuc2Zvcm1Nb2RlbCxcbiAgUmVjdEV4dGVuc2lvbnMsXG4gIFNpemVFeHRlbnNpb25zXG59IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSUxpbmVBbGlnbm1lbnRSZXN1bHQsIExpbmVTZXJ2aWNlIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRl9MSU5FX0FMSUdOTUVOVCwgRkxpbmVBbGlnbm1lbnRCYXNlIH0gZnJvbSAnLi9mLWxpbmUtYWxpZ25tZW50LWJhc2UnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IEdldENhbnZhc1JlcXVlc3QsIEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QsIEdldEZsb3dIb3N0RWxlbWVudFJlcXVlc3QgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRkNhbnZhc0Jhc2UgfSBmcm9tICcuLi9mLWNhbnZhcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJmLWxpbmUtYWxpZ25tZW50XCIsXG4gIHRlbXBsYXRlOiBcIlwiLFxuICBzdHlsZVVybHM6IFsgXCIuL2YtbGluZS1hbGlnbm1lbnQuY29tcG9uZW50LnNjc3NcIiBdLFxuICBleHBvcnRBczogXCJmQ29tcG9uZW50XCIsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1saW5lLWFsaWdubWVudCBmLWNvbXBvbmVudCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0xJTkVfQUxJR05NRU5ULCB1c2VFeGlzdGluZzogRkxpbmVBbGlnbm1lbnRDb21wb25lbnQgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGTGluZUFsaWdubWVudENvbXBvbmVudCBleHRlbmRzIEZMaW5lQWxpZ25tZW50QmFzZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIHByaXZhdGUgREVCT1VOQ0VfVElNRSA9IDEwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmQWxpZ25UaHJlc2hvbGQ6IG51bWJlciA9IDEwO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgbGluZVNlcnZpY2U6IExpbmVTZXJ2aWNlO1xuXG4gIHByaXZhdGUgc2l6ZTogSVNpemUgPSBTaXplRXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHJpdmF0ZSBkcmFnZ2VkTm9kZVJlY3Q6IElSZWN0ID0gUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByaXZhdGUgcmVjdHM6IElSZWN0W10gPSBbXTtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwcml2YXRlIF9mQ2FudmFzOiBGQ2FudmFzQmFzZSB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIF9kZWJvdW5jZVRpbWVyOiBhbnkgPSBudWxsO1xuXG4gIHByaXZhdGUgZ2V0IF90cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5fZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgIGZCcm93c2VyOiBCcm93c2VyU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGluZVNlcnZpY2UgPSBuZXcgTGluZVNlcnZpY2UoZkJyb3dzZXIsIHRoaXMuaG9zdEVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mQ2FudmFzID0gdGhpcy5fZk1lZGlhdG9yLnNlbmQobmV3IEdldENhbnZhc1JlcXVlc3QoKSk7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZkxpbmVBbGlnbm1lbnQgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGluaXRpYWxpemUoYWxsTm9kZXM6IEZOb2RlQmFzZVtdLCBjdXJyZW50Tm9kZXM6IEZOb2RlQmFzZVtdKTogdm9pZCB7XG4gICAgdGhpcy5zaXplID0gdGhpcy5fZk1lZGlhdG9yLnNlbmQ8SFRNTEVsZW1lbnQ+KG5ldyBHZXRGbG93SG9zdEVsZW1lbnRSZXF1ZXN0KCkpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMucmVjdHMgPSBbXTtcbiAgICBjb25zdCBkcmFnZ2VkTm9kZVJlY3RzID0gY3VycmVudE5vZGVzLm1hcCgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElSZWN0PihuZXcgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdCh4Lmhvc3RFbGVtZW50LCBmYWxzZSkpO1xuICAgIH0pO1xuICAgIHRoaXMuZHJhZ2dlZE5vZGVSZWN0ID0gUmVjdEV4dGVuc2lvbnMudW5pb24oZHJhZ2dlZE5vZGVSZWN0cykgfHwgUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gICAgY29uc3QgYWxsTm9kZXNFeGNsdWRlQ3VycmVudHMgPSBhbGxOb2Rlcy5maWx0ZXIoKHgpID0+IHtcbiAgICAgIHJldHVybiAhY3VycmVudE5vZGVzLmluY2x1ZGVzKHgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZWN0cyA9IGFsbE5vZGVzRXhjbHVkZUN1cnJlbnRzLm1hcCgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElSZWN0PihuZXcgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdCh4Lmhvc3RFbGVtZW50LCBmYWxzZSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGhhbmRsZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZGVib3VuY2VUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2RlYm91bmNlVGltZXIpO1xuICAgIH1cblxuICAgIHRoaXMuX2RlYm91bmNlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZHJhd0ludGVyc2VjdGluZ0xpbmVzKGRpZmZlcmVuY2UpLCB0aGlzLkRFQk9VTkNFX1RJTUUpO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmF3SW50ZXJzZWN0aW5nTGluZXMoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgaW50ZXJzZWN0ID0gdGhpcy5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gICAgaWYgKGludGVyc2VjdC54UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuZHJhd1ZlcnRpY2FsTGluZShpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSwgdGhpcy5zaXplLCB0aGlzLl90cmFuc2Zvcm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVWZXJ0aWNhbExpbmUoKTtcbiAgICB9XG4gICAgaWYgKGludGVyc2VjdC55UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuZHJhd0hvcml6b250YWxMaW5lKGludGVyc2VjdC55UmVzdWx0LnZhbHVlLCB0aGlzLnNpemUsIHRoaXMuX3RyYW5zZm9ybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuaGlkZUhvcml6b250YWxMaW5lKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbmROZWFyZXN0Q29vcmRpbmF0ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiBJTGluZUFsaWdubWVudFJlc3VsdCB7XG4gICAgY29uc3QgcmVjdCA9IFJlY3RFeHRlbnNpb25zLmFkZFBvaW50KHRoaXMuZHJhZ2dlZE5vZGVSZWN0LCBkaWZmZXJlbmNlKTtcblxuICAgIHJldHVybiBmaW5kQ2xvc2VzdEFsaWdubWVudCh0aGlzLnJlY3RzLCByZWN0LCB0aGlzLmZBbGlnblRocmVzaG9sZCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29tcGxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5saW5lU2VydmljZS5oaWRlVmVydGljYWxMaW5lKCk7XG4gICAgdGhpcy5saW5lU2VydmljZS5oaWRlSG9yaXpvbnRhbExpbmUoKTtcblxuICAgIGlmICh0aGlzLl9kZWJvdW5jZVRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fZGVib3VuY2VUaW1lcik7XG4gICAgICB0aGlzLl9kZWJvdW5jZVRpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -12,8 +12,8 @@ export declare class FConnectionComponent extends FConnectionBase implements OnI
|
|
|
12
12
|
fTextStartOffset: string;
|
|
13
13
|
fStartColor: string;
|
|
14
14
|
fEndColor: string;
|
|
15
|
-
fOutputId:
|
|
16
|
-
fInputId:
|
|
15
|
+
fOutputId: any;
|
|
16
|
+
fInputId: any;
|
|
17
17
|
fRadius: number;
|
|
18
18
|
fOffset: number;
|
|
19
19
|
fBehavior: EFConnectionBehavior;
|
|
@@ -37,4 +37,6 @@ export declare class FConnectionComponent extends FConnectionBase implements OnI
|
|
|
37
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionComponent, never>;
|
|
38
38
|
static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionComponent, "f-connection", ["fComponent"], { "fId": { "alias": "fConnectionId"; "required": false; }; "fText": { "alias": "fText"; "required": false; }; "fTextStartOffset": { "alias": "fTextStartOffset"; "required": false; }; "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fOutputId": { "alias": "fOutputId"; "required": false; }; "fInputId": { "alias": "fInputId"; "required": false; }; "fRadius": { "alias": "fRadius"; "required": false; }; "fOffset": { "alias": "fOffset"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "fDraggingDisabled": { "alias": "fReassignDisabled"; "required": false; }; "fSelectionDisabled": { "alias": "fSelectionDisabled"; "required": false; }; }, {}, ["fConnectionCenters"], ["*", "[fConnectionCenter]"], false, never>;
|
|
39
39
|
static ngAcceptInputType_fBehavior: unknown;
|
|
40
|
+
static ngAcceptInputType_fDraggingDisabled: unknown;
|
|
41
|
+
static ngAcceptInputType_fSelectionDisabled: unknown;
|
|
40
42
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IDraggableItem } from '../../i-draggable-item';
|
|
2
|
-
import {
|
|
2
|
+
import { IClosestInput } from '../../../domain';
|
|
3
3
|
import { FConnectionBase } from '../../../f-connection';
|
|
4
4
|
import { FConnectorBase } from '../../../f-connectors';
|
|
5
5
|
import { FMediator } from '@foblex/mediator';
|
|
@@ -17,9 +17,13 @@ export declare class CreateConnectionDragHandler implements IDraggableItem {
|
|
|
17
17
|
private canBeConnectedInputs;
|
|
18
18
|
constructor(fMediator: FMediator, fComponentsStore: FComponentsStore, fOutput: FConnectorBase, onPointerDownPosition: IPoint);
|
|
19
19
|
prepareDragSequence(): void;
|
|
20
|
+
private _initializeSnapConnection;
|
|
21
|
+
private _initializeConnectionForCreate;
|
|
20
22
|
onPointerMove(difference: IPoint): void;
|
|
21
|
-
private
|
|
22
|
-
private
|
|
23
|
-
getClosetInput(difference: IPoint):
|
|
23
|
+
private _drawConnectionForCreate;
|
|
24
|
+
private _drawSnapConnection;
|
|
25
|
+
getClosetInput(difference: IPoint): IClosestInput | undefined;
|
|
26
|
+
private _findClosestInput;
|
|
27
|
+
private _getClosestInputForSnapConnection;
|
|
24
28
|
onPointerUp(): void;
|
|
25
29
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IDraggableItem } from '../../i-draggable-item';
|
|
2
|
-
import {
|
|
2
|
+
import { IClosestInput } from '../../../domain';
|
|
3
3
|
import { FConnectionBase } from '../../../f-connection';
|
|
4
4
|
import { FMediator } from '@foblex/mediator';
|
|
5
5
|
import { IPoint, RoundedRect } from '@foblex/2d';
|
|
@@ -15,11 +15,14 @@ export declare class ReassignConnectionDragHandler implements IDraggableItem {
|
|
|
15
15
|
private canBeConnectedInputs;
|
|
16
16
|
constructor(fMediator: FMediator, fComponentsStore: FComponentsStore, fConnection: FConnectionBase);
|
|
17
17
|
prepareDragSequence(): void;
|
|
18
|
+
private _initializeSnapConnection;
|
|
18
19
|
private getOutput;
|
|
19
20
|
private getInput;
|
|
20
21
|
onPointerMove(difference: IPoint): void;
|
|
21
|
-
private
|
|
22
|
-
private
|
|
23
|
-
getClosetInput(difference: IPoint):
|
|
22
|
+
private _drawConnection;
|
|
23
|
+
private _drawSnapConnection;
|
|
24
|
+
getClosetInput(difference: IPoint): IClosestInput | undefined;
|
|
25
|
+
private _findClosestInput;
|
|
26
|
+
private _getClosestInputForSnapConnection;
|
|
24
27
|
onPointerUp(): void;
|
|
25
28
|
}
|
|
@@ -18,7 +18,7 @@ export declare abstract class ConnectionBaseDragHandler implements IDraggableIte
|
|
|
18
18
|
private getInput;
|
|
19
19
|
private connectorNotFoundPrefix;
|
|
20
20
|
abstract onPointerMove(difference: IPoint): void;
|
|
21
|
-
protected
|
|
21
|
+
protected getRestrictedDifference(difference: IPoint, restrictions: INodeMoveRestrictions): IPoint;
|
|
22
22
|
protected redrawConnection(line: ILine): void;
|
|
23
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConnectionBaseDragHandler, never>;
|
|
24
24
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ConnectionBaseDragHandler, never, never, {}, {}, never, never, false, never>;
|
|
@@ -12,9 +12,10 @@ export declare class NodeDragToParentPreparationExecution implements IExecution<
|
|
|
12
12
|
private get fCanvasPosition();
|
|
13
13
|
constructor(fMediator: FMediator, fDraggableDataContext: FDraggableDataContext, fComponentsStore: FComponentsStore);
|
|
14
14
|
handle(request: NodeDragToParentPreparationRequest): void;
|
|
15
|
-
private
|
|
16
|
-
private
|
|
17
|
-
private
|
|
15
|
+
private _getNotDraggedNodesRects;
|
|
16
|
+
private _getNodesBeingDragged;
|
|
17
|
+
private _addParentNodes;
|
|
18
|
+
private _getNotDraggedNodes;
|
|
18
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<NodeDragToParentPreparationExecution, never>;
|
|
19
20
|
static ɵprov: i0.ɵɵInjectableDeclaration<NodeDragToParentPreparationExecution>;
|
|
20
21
|
}
|
|
@@ -8,13 +8,18 @@ export declare class NodeDragToParentDragHandler implements IDraggableItem {
|
|
|
8
8
|
private fComponentsStore;
|
|
9
9
|
private fDraggableDataContext;
|
|
10
10
|
private notDraggedNodesRects;
|
|
11
|
-
private
|
|
12
|
-
private
|
|
11
|
+
private DEBOUNCE_TIME;
|
|
12
|
+
private get _transform();
|
|
13
|
+
private _onPointerDownPosition;
|
|
14
|
+
private _debounceTimer;
|
|
13
15
|
fNodeWithRect: INodeWithRect | null;
|
|
14
16
|
constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, notDraggedNodesRects: INodeWithRect[]);
|
|
17
|
+
private _toggleParentNode;
|
|
18
|
+
private _getNewPosition;
|
|
19
|
+
private _isNodeInsideAnotherNode;
|
|
15
20
|
onPointerMove(difference: IPoint): void;
|
|
16
|
-
private
|
|
17
|
-
private
|
|
21
|
+
private _markIncludeNode;
|
|
22
|
+
private _unmarkIncludeNode;
|
|
18
23
|
onPointerUp(): void;
|
|
19
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<NodeDragToParentDragHandler, never>;
|
|
20
25
|
static ɵdir: i0.ɵɵDirectiveDeclaration<NodeDragToParentDragHandler, never, never, {}, {}, never, never, false, never>;
|
|
@@ -9,6 +9,7 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
export declare class FLineAlignmentComponent extends FLineAlignmentBase implements AfterViewInit {
|
|
10
10
|
private elementReference;
|
|
11
11
|
private fDraggableDataContext;
|
|
12
|
+
private DEBOUNCE_TIME;
|
|
12
13
|
fAlignThreshold: number;
|
|
13
14
|
get hostElement(): HTMLElement;
|
|
14
15
|
private lineService;
|
|
@@ -17,8 +18,8 @@ export declare class FLineAlignmentComponent extends FLineAlignmentBase implemen
|
|
|
17
18
|
private rects;
|
|
18
19
|
private _fMediator;
|
|
19
20
|
private _fCanvas;
|
|
21
|
+
private _debounceTimer;
|
|
20
22
|
private get _transform();
|
|
21
|
-
private get _fFlowHostElement();
|
|
22
23
|
constructor(elementReference: ElementRef<HTMLElement>, fDraggableDataContext: FDraggableDataContext, fBrowser: BrowserService);
|
|
23
24
|
ngAfterViewInit(): void;
|
|
24
25
|
initialize(allNodes: FNodeBase[], currentNodes: FNodeBase[]): void;
|