@eclipse-glsp/client 2.1.0-next.305 → 2.1.0-next.306
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/lib/features/change-bounds/position-snapper.js +4 -4
- package/lib/features/change-bounds/position-snapper.js.map +1 -1
- package/lib/features/helper-lines/helper-line-feedback.d.ts +30 -11
- package/lib/features/helper-lines/helper-line-feedback.d.ts.map +1 -1
- package/lib/features/helper-lines/helper-line-feedback.js +93 -32
- package/lib/features/helper-lines/helper-line-feedback.js.map +1 -1
- package/lib/features/helper-lines/helper-line-manager-default.d.ts +42 -11
- package/lib/features/helper-lines/helper-line-manager-default.d.ts.map +1 -1
- package/lib/features/helper-lines/helper-line-manager-default.js +21 -16
- package/lib/features/helper-lines/helper-line-manager-default.js.map +1 -1
- package/lib/features/helper-lines/helper-line-manager.d.ts +8 -1
- package/lib/features/helper-lines/helper-line-manager.d.ts.map +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/utils/gmodel-util.d.ts +1 -0
- package/lib/utils/gmodel-util.d.ts.map +1 -1
- package/lib/utils/gmodel-util.js +10 -1
- package/lib/utils/gmodel-util.js.map +1 -1
- package/package.json +3 -3
- package/src/features/change-bounds/position-snapper.ts +4 -4
- package/src/features/helper-lines/helper-line-feedback.ts +127 -45
- package/src/features/helper-lines/helper-line-manager-default.ts +68 -20
- package/src/features/helper-lines/helper-line-manager.ts +8 -1
- package/src/features/tools/change-bounds/change-bounds-tool-feedback.ts +1 -1
- package/src/utils/gmodel-util.ts +12 -0
|
@@ -62,16 +62,16 @@ let PositionSnapper = class PositionSnapper {
|
|
|
62
62
|
}
|
|
63
63
|
const minimum = { x: 0, y: 0 };
|
|
64
64
|
if (directions.includes(model_1.Direction.Left) && helperLines.some(line => line.isLeft || line.isCenter)) {
|
|
65
|
-
minimum.x = this.helperLineManager.
|
|
65
|
+
minimum.x = this.helperLineManager.getMinimumMoveDelta(target, isSnap, model_1.Direction.Left);
|
|
66
66
|
}
|
|
67
67
|
else if (directions.includes(model_1.Direction.Right) && helperLines.some(line => line.isRight || line.isCenter)) {
|
|
68
|
-
minimum.x = this.helperLineManager.
|
|
68
|
+
minimum.x = this.helperLineManager.getMinimumMoveDelta(target, isSnap, model_1.Direction.Right);
|
|
69
69
|
}
|
|
70
70
|
if (directions.includes(model_1.Direction.Up) && helperLines.some(line => line.isTop || line.isMiddle)) {
|
|
71
|
-
minimum.y = this.helperLineManager.
|
|
71
|
+
minimum.y = this.helperLineManager.getMinimumMoveDelta(target, isSnap, model_1.Direction.Up);
|
|
72
72
|
}
|
|
73
73
|
else if (directions.includes(model_1.Direction.Down) && helperLines.some(line => line.isBottom || line.isMiddle)) {
|
|
74
|
-
minimum.y = this.helperLineManager.
|
|
74
|
+
minimum.y = this.helperLineManager.getMinimumMoveDelta(target, isSnap, model_1.Direction.Down);
|
|
75
75
|
}
|
|
76
76
|
return minimum;
|
|
77
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position-snapper.js","sourceRoot":"","sources":["../../../src/features/change-bounds/position-snapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,mDAAwF;AACxF,yCAAyD;AAEzD,iDAA4E;AAGrE,IAAM,eAAe,GAArB,MAAM,eAAe;IACxB,YACkD,OAAkB,EACR,iBAAsC;QADhD,YAAO,GAAP,OAAO,CAAW;QACR,sBAAiB,GAAjB,iBAAiB,CAAqB;IAC/F,CAAC;IAEJ,YAAY,CAAC,QAAe,EAAE,OAAsB,EAAE,SAAkB,IAAI;QACxE,OAAO,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC5G,CAAC;IAED,SAAS,CAAC,aAAoB,EAAE,OAAsB,EAAE,MAAe,EAAE,UAAuB;QAC5F,MAAM,KAAK,GAAoB,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACjF,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,YAAY,EAAE;YACf,OAAO,KAAK,CAAC;SAChB;QACD,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,eAAe,CAAC,MAAqB,EAAE,MAAe,EAAE,UAAuB;QACrF,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;IAES,oBAAoB,CAAC,MAAqB,EAAE,MAAe,EAAE,UAAuB;QAC1F,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACzB,OAAO,SAAS,CAAC;SACpB;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAiB,CAAC;QAC9F,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,OAAO,GAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAChD,IAAI,UAAU,CAAC,QAAQ,CAAC,iBAAS,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/F,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"position-snapper.js","sourceRoot":"","sources":["../../../src/features/change-bounds/position-snapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,38 +13,56 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action, Bounds, CommandExecutionContext, CommandReturn, GModelElement, GModelRoot, Viewport } from '@eclipse-glsp/sprotty';
|
|
16
|
+
import { Action, Bounds, CommandExecutionContext, CommandReturn, GModelElement, GModelRoot, ILogger, Point, Viewport } from '@eclipse-glsp/sprotty';
|
|
17
17
|
import '../../../css/helper-lines.css';
|
|
18
18
|
import { FeedbackCommand } from '../../base/feedback/feedback-command';
|
|
19
19
|
import { BoundsAwareModelElement } from '../../utils/gmodel-util';
|
|
20
20
|
import { HelperLine, HelperLineType } from './model';
|
|
21
21
|
export type ViewportLineType = typeof HelperLineType.Center | typeof HelperLineType.Middle | string;
|
|
22
|
-
export
|
|
23
|
-
export declare const
|
|
22
|
+
export type AlignmentElementFilter = (element: BoundsAwareModelElement, referenceElementIds: string[]) => boolean;
|
|
23
|
+
export declare const isTopLevelBoundsAwareElement: AlignmentElementFilter;
|
|
24
24
|
export interface DrawHelperLinesFeedbackAction extends Action {
|
|
25
25
|
kind: typeof DrawHelperLinesFeedbackAction.KIND;
|
|
26
26
|
elementIds: string[];
|
|
27
27
|
elementLines?: HelperLineType[];
|
|
28
28
|
viewportLines?: ViewportLineType[];
|
|
29
29
|
alignmentEpsilon?: number;
|
|
30
|
+
alignmentElementFilter?: AlignmentElementFilter;
|
|
31
|
+
debug?: boolean;
|
|
30
32
|
}
|
|
33
|
+
export declare const ALL_ELEMENT_LINE_TYPES: ("left" | "right" | "center" | "top" | "bottom" | "middle" | "left-right" | "right-left" | "bottom-top" | "top-bottom")[];
|
|
34
|
+
export declare const ALL_VIEWPORT_LINE_TYPES: ("center" | "middle")[];
|
|
35
|
+
export declare const DEFAULT_ELEMENT_LINES: ("left" | "right" | "center" | "top" | "bottom" | "middle" | "left-right" | "right-left" | "bottom-top" | "top-bottom")[];
|
|
36
|
+
export declare const DEFAULT_VIEWPORT_LINES: ("center" | "middle")[];
|
|
37
|
+
export declare const DEFAULT_EPSILON = 1;
|
|
38
|
+
export declare const DEFAULT_ALIGNABLE_ELEMENT_FILTER: (element: BoundsAwareModelElement) => boolean;
|
|
39
|
+
export declare const DEFAULT_DEBUG = false;
|
|
31
40
|
export declare namespace DrawHelperLinesFeedbackAction {
|
|
32
41
|
const KIND = "drawHelperLines";
|
|
33
42
|
function create(options: Omit<DrawHelperLinesFeedbackAction, 'kind'>): DrawHelperLinesFeedbackAction;
|
|
34
43
|
}
|
|
35
44
|
export declare class DrawHelperLinesFeedbackCommand extends FeedbackCommand {
|
|
36
|
-
|
|
45
|
+
protected logger: ILogger;
|
|
37
46
|
static readonly KIND = "drawHelperLines";
|
|
38
|
-
|
|
47
|
+
protected elementIds: string[];
|
|
48
|
+
protected elementLines: HelperLineType[];
|
|
49
|
+
protected viewportLines: ViewportLineType[];
|
|
50
|
+
protected alignmentEpsilon: number;
|
|
51
|
+
protected alignableElementFilter: AlignmentElementFilter;
|
|
52
|
+
protected isAlignableElementPredicate: (element: GModelElement) => element is BoundsAwareModelElement;
|
|
53
|
+
protected debug: boolean;
|
|
54
|
+
constructor(action: DrawHelperLinesFeedbackAction, logger: ILogger);
|
|
39
55
|
execute(context: CommandExecutionContext): CommandReturn;
|
|
40
|
-
protected
|
|
56
|
+
protected isAlignableElement(element: GModelElement): element is BoundsAwareModelElement;
|
|
41
57
|
protected calcReferenceBounds(referenceElements: BoundsAwareModelElement[]): Bounds;
|
|
58
|
+
protected calcBounds(element: BoundsAwareModelElement): Bounds;
|
|
42
59
|
protected calcHelperLines(elements: BoundsAwareModelElement[], bounds: Bounds, context: CommandExecutionContext): HelperLine[];
|
|
43
|
-
protected calcHelperLinesForViewport(root: Viewport & GModelRoot, bounds: Bounds, lineTypes
|
|
44
|
-
protected calcHelperLinesForElement(element: BoundsAwareModelElement, bounds: Bounds, lineTypes
|
|
45
|
-
protected calcHelperLinesForBounds(elementBounds: Bounds, bounds: Bounds, lineTypes
|
|
46
|
-
protected isAligned(coordinate: (elem: Bounds) => number, leftBounds: Bounds, rightBounds: Bounds, epsilon
|
|
47
|
-
protected isMatch(leftCoordinate: number, rightCoordinate: number, epsilon
|
|
60
|
+
protected calcHelperLinesForViewport(root: Viewport & GModelRoot, bounds: Bounds, lineTypes: HelperLineType[]): HelperLine[];
|
|
61
|
+
protected calcHelperLinesForElement(element: BoundsAwareModelElement, bounds: Bounds, lineTypes: HelperLineType[]): HelperLine[];
|
|
62
|
+
protected calcHelperLinesForBounds(elementBounds: Bounds, bounds: Bounds, lineTypes: HelperLineType[]): HelperLine[];
|
|
63
|
+
protected isAligned(coordinate: (elem: Bounds) => number, leftBounds: Bounds, rightBounds: Bounds, epsilon: number): boolean;
|
|
64
|
+
protected isMatch(leftCoordinate: number, rightCoordinate: number, epsilon: number): boolean;
|
|
65
|
+
protected log(message: string, ...params: any[]): void;
|
|
48
66
|
}
|
|
49
67
|
export interface RemoveHelperLinesFeedbackAction extends Action {
|
|
50
68
|
kind: typeof RemoveHelperLinesFeedbackAction.KIND;
|
|
@@ -61,4 +79,5 @@ export declare class RemoveHelperLinesFeedbackCommand extends FeedbackCommand {
|
|
|
61
79
|
}
|
|
62
80
|
export declare function removeHelperLines(root: GModelRoot): void;
|
|
63
81
|
export declare function removeSelectionBounds(root: GModelRoot): void;
|
|
82
|
+
export declare function boundsInViewport(element: GModelElement, bounds: Bounds | Point): Bounds | Point;
|
|
64
83
|
//# sourceMappingURL=helper-line-feedback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper-line-feedback.d.ts","sourceRoot":"","sources":["../../../src/features/helper-lines/helper-line-feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EACH,MAAM,EACN,MAAM,EACN,uBAAuB,EACvB,aAAa,
|
|
1
|
+
{"version":3,"file":"helper-line-feedback.d.ts","sourceRoot":"","sources":["../../../src/features/helper-lines/helper-line-feedback.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
27
27
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.removeSelectionBounds = exports.removeHelperLines = exports.RemoveHelperLinesFeedbackCommand = exports.RemoveHelperLinesFeedbackAction = exports.DrawHelperLinesFeedbackCommand = exports.DrawHelperLinesFeedbackAction = exports.ALL_VIEWPORT_LINE_TYPES = exports.ALL_ELEMENT_LINE_TYPES = void 0;
|
|
30
|
+
exports.boundsInViewport = exports.removeSelectionBounds = exports.removeHelperLines = exports.RemoveHelperLinesFeedbackCommand = exports.RemoveHelperLinesFeedbackAction = exports.DrawHelperLinesFeedbackCommand = exports.DrawHelperLinesFeedbackAction = exports.DEFAULT_DEBUG = exports.DEFAULT_ALIGNABLE_ELEMENT_FILTER = exports.DEFAULT_EPSILON = exports.DEFAULT_VIEWPORT_LINES = exports.DEFAULT_ELEMENT_LINES = exports.ALL_VIEWPORT_LINE_TYPES = exports.ALL_ELEMENT_LINE_TYPES = exports.isTopLevelBoundsAwareElement = void 0;
|
|
31
31
|
const sprotty_1 = require("@eclipse-glsp/sprotty");
|
|
32
32
|
const inversify_1 = require("inversify");
|
|
33
33
|
const lodash_1 = require("lodash");
|
|
@@ -37,8 +37,16 @@ const geometry_util_1 = require("../../utils/geometry-util");
|
|
|
37
37
|
const gmodel_util_1 = require("../../utils/gmodel-util");
|
|
38
38
|
const viewpoint_util_1 = require("../../utils/viewpoint-util");
|
|
39
39
|
const model_1 = require("./model");
|
|
40
|
+
const isTopLevelBoundsAwareElement = element => (0, gmodel_util_1.findTopLevelElementByFeature)(element, sprotty_1.isBoundsAware, sprotty_1.isViewport) === element;
|
|
41
|
+
exports.isTopLevelBoundsAwareElement = isTopLevelBoundsAwareElement;
|
|
40
42
|
exports.ALL_ELEMENT_LINE_TYPES = Object.values(model_1.HelperLineType);
|
|
41
43
|
exports.ALL_VIEWPORT_LINE_TYPES = [model_1.HelperLineType.Center, model_1.HelperLineType.Middle];
|
|
44
|
+
exports.DEFAULT_ELEMENT_LINES = exports.ALL_ELEMENT_LINE_TYPES;
|
|
45
|
+
exports.DEFAULT_VIEWPORT_LINES = exports.ALL_VIEWPORT_LINE_TYPES;
|
|
46
|
+
exports.DEFAULT_EPSILON = 1;
|
|
47
|
+
const DEFAULT_ALIGNABLE_ELEMENT_FILTER = (element) => (0, gmodel_util_1.isVisibleOnCanvas)(element) && !(0, gmodel_util_1.isRoutable)(element) && !(element instanceof sprotty_1.GLabel) && !(0, sprotty_1.isDecoration)(element);
|
|
48
|
+
exports.DEFAULT_ALIGNABLE_ELEMENT_FILTER = DEFAULT_ALIGNABLE_ELEMENT_FILTER;
|
|
49
|
+
exports.DEFAULT_DEBUG = false;
|
|
42
50
|
var DrawHelperLinesFeedbackAction;
|
|
43
51
|
(function (DrawHelperLinesFeedbackAction) {
|
|
44
52
|
DrawHelperLinesFeedbackAction.KIND = 'drawHelperLines';
|
|
@@ -48,138 +56,182 @@ var DrawHelperLinesFeedbackAction;
|
|
|
48
56
|
DrawHelperLinesFeedbackAction.create = create;
|
|
49
57
|
})(DrawHelperLinesFeedbackAction || (exports.DrawHelperLinesFeedbackAction = DrawHelperLinesFeedbackAction = {}));
|
|
50
58
|
let DrawHelperLinesFeedbackCommand = class DrawHelperLinesFeedbackCommand extends feedback_command_1.FeedbackCommand {
|
|
51
|
-
constructor(action) {
|
|
59
|
+
constructor(action, logger) {
|
|
60
|
+
var _a, _b, _c, _d, _e;
|
|
52
61
|
super();
|
|
53
|
-
this.
|
|
62
|
+
this.logger = logger;
|
|
63
|
+
this.elementIds = action.elementIds;
|
|
64
|
+
this.elementLines = (_a = action.elementLines) !== null && _a !== void 0 ? _a : exports.DEFAULT_ELEMENT_LINES;
|
|
65
|
+
this.viewportLines = (_b = action.viewportLines) !== null && _b !== void 0 ? _b : exports.DEFAULT_VIEWPORT_LINES;
|
|
66
|
+
this.alignmentEpsilon = (_c = action.alignmentEpsilon) !== null && _c !== void 0 ? _c : exports.DEFAULT_EPSILON;
|
|
67
|
+
this.alignableElementFilter = (_d = action.alignmentElementFilter) !== null && _d !== void 0 ? _d : exports.DEFAULT_ALIGNABLE_ELEMENT_FILTER;
|
|
68
|
+
this.isAlignableElementPredicate = this.isAlignableElement.bind(this);
|
|
69
|
+
this.debug = (_e = action.debug) !== null && _e !== void 0 ? _e : exports.DEFAULT_DEBUG;
|
|
54
70
|
}
|
|
55
71
|
execute(context) {
|
|
56
72
|
removeHelperLines(context.root);
|
|
57
73
|
removeSelectionBounds(context.root);
|
|
58
|
-
const
|
|
59
|
-
|
|
74
|
+
const alignableElements = (0, gmodel_util_1.getMatchingElements)(context.root.index, this.isAlignableElementPredicate);
|
|
75
|
+
this.log('All alignable elements: ', alignableElements);
|
|
76
|
+
const [referenceElements, elements] = (0, lodash_1.partition)(alignableElements, element => this.elementIds.includes(element.id));
|
|
77
|
+
this.log('Split alignable elements into reference elements and other elements: ', referenceElements, elements);
|
|
60
78
|
if (referenceElements.length === 0) {
|
|
79
|
+
this.log('--> No helper lines as we do not have any reference elements.');
|
|
61
80
|
return context.root;
|
|
62
81
|
}
|
|
63
82
|
const referenceBounds = this.calcReferenceBounds(referenceElements);
|
|
83
|
+
this.log('Bounds encompasing all reference elements: ', referenceBounds);
|
|
64
84
|
const helperLines = this.calcHelperLines(elements, referenceBounds, context);
|
|
65
85
|
if (referenceElements.length > 1) {
|
|
66
86
|
context.root.add(new model_1.SelectionBounds(referenceBounds));
|
|
87
|
+
this.log('Render selection bounds for more than one reference element:', referenceBounds);
|
|
67
88
|
}
|
|
68
89
|
helperLines.forEach(helperLine => context.root.add(helperLine));
|
|
90
|
+
if (helperLines.length > 0) {
|
|
91
|
+
this.log(`--> Add ${helperLines.length} helper lines to root:`, helperLines);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
this.log('--> Add no helper lines to root.');
|
|
95
|
+
}
|
|
69
96
|
return context.root;
|
|
70
97
|
}
|
|
71
|
-
|
|
72
|
-
return (0, sprotty_1.isBoundsAware)(element) &&
|
|
98
|
+
isAlignableElement(element) {
|
|
99
|
+
return (0, sprotty_1.isBoundsAware)(element) && this.alignableElementFilter(element, this.elementIds);
|
|
73
100
|
}
|
|
74
101
|
calcReferenceBounds(referenceElements) {
|
|
75
|
-
return referenceElements.map(element => element
|
|
102
|
+
return referenceElements.map(element => this.calcBounds(element)).reduce(sprotty_1.Bounds.combine, sprotty_1.Bounds.EMPTY);
|
|
103
|
+
}
|
|
104
|
+
calcBounds(element) {
|
|
105
|
+
return (0, viewpoint_util_1.toAbsoluteBounds)(element);
|
|
76
106
|
}
|
|
77
107
|
calcHelperLines(elements, bounds, context) {
|
|
78
108
|
const helperLines = [];
|
|
79
109
|
const viewport = (0, sprotty_1.findParentByFeature)(context.root, sprotty_1.isViewport);
|
|
80
110
|
if (viewport) {
|
|
81
|
-
helperLines.push(...this.calcHelperLinesForViewport(viewport, bounds));
|
|
111
|
+
helperLines.push(...this.calcHelperLinesForViewport(viewport, bounds, this.viewportLines));
|
|
82
112
|
}
|
|
83
|
-
elements
|
|
113
|
+
elements
|
|
114
|
+
.flatMap(element => this.calcHelperLinesForElement(element, bounds, this.elementLines))
|
|
115
|
+
.forEach(line => helperLines.push(line));
|
|
84
116
|
return helperLines;
|
|
85
117
|
}
|
|
86
118
|
calcHelperLinesForViewport(root, bounds, lineTypes) {
|
|
87
|
-
var _a;
|
|
88
|
-
if (lineTypes === void 0) { lineTypes = (_a = this.action.viewportLines) !== null && _a !== void 0 ? _a : exports.ALL_VIEWPORT_LINE_TYPES; }
|
|
89
119
|
const helperLines = [];
|
|
120
|
+
this.log('Find helperlines for viewport:', root);
|
|
90
121
|
const viewportBounds = (0, viewpoint_util_1.getViewportBounds)(root, root.canvasBounds);
|
|
91
122
|
if (lineTypes.includes(model_1.HelperLineType.Center) && this.isAligned(geometry_util_1.center, viewportBounds, bounds, 2)) {
|
|
92
123
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.topCenter)(viewportBounds), (0, geometry_util_1.bottomCenter)(viewportBounds), model_1.HelperLineType.Center));
|
|
124
|
+
this.log('- Reference bounds center align with viewport.', viewportBounds);
|
|
93
125
|
}
|
|
94
126
|
if (lineTypes.includes(model_1.HelperLineType.Middle) && this.isAligned(geometry_util_1.middle, viewportBounds, bounds, 2)) {
|
|
95
127
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.middleLeft)(viewportBounds), (0, geometry_util_1.middleRight)(viewportBounds), model_1.HelperLineType.Middle));
|
|
128
|
+
this.log('- Reference bounds middle align with viewport.', viewportBounds);
|
|
129
|
+
}
|
|
130
|
+
if (helperLines.length > 0) {
|
|
131
|
+
this.log(`--> Add ${helperLines.length} helperlines for viewport:`, helperLines);
|
|
96
132
|
}
|
|
97
133
|
return helperLines;
|
|
98
134
|
}
|
|
99
135
|
calcHelperLinesForElement(element, bounds, lineTypes) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
return this.calcHelperLinesForBounds(element.bounds, bounds, lineTypes);
|
|
136
|
+
this.log('Find helperlines for element:', element);
|
|
137
|
+
return this.calcHelperLinesForBounds(this.calcBounds(element), bounds, lineTypes);
|
|
103
138
|
}
|
|
104
139
|
calcHelperLinesForBounds(elementBounds, bounds, lineTypes) {
|
|
105
|
-
var _a;
|
|
106
|
-
if (lineTypes === void 0) { lineTypes = (_a = this.action.elementLines) !== null && _a !== void 0 ? _a : exports.ALL_ELEMENT_LINE_TYPES; }
|
|
107
140
|
const helperLines = [];
|
|
108
|
-
if (lineTypes.includes(model_1.HelperLineType.Left) && this.isAligned(geometry_util_1.left, elementBounds, bounds)) {
|
|
141
|
+
if (lineTypes.includes(model_1.HelperLineType.Left) && this.isAligned(geometry_util_1.left, elementBounds, bounds, this.alignmentEpsilon)) {
|
|
109
142
|
const [above, below] = (0, geometry_util_1.sortBy)(geometry_util_1.top, elementBounds, bounds); // higher top-value ==> lower
|
|
110
143
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.bottomLeft)(below), (0, geometry_util_1.topLeft)(above), model_1.HelperLineType.Left));
|
|
144
|
+
this.log('- Reference bounds left align with element', elementBounds);
|
|
111
145
|
}
|
|
112
|
-
if (lineTypes.includes(model_1.HelperLineType.Center) && this.isAligned(geometry_util_1.center, elementBounds, bounds)) {
|
|
146
|
+
if (lineTypes.includes(model_1.HelperLineType.Center) && this.isAligned(geometry_util_1.center, elementBounds, bounds, this.alignmentEpsilon)) {
|
|
113
147
|
const [above, below] = (0, geometry_util_1.sortBy)(geometry_util_1.top, elementBounds, bounds); // higher top-value ==> lower
|
|
114
148
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.topCenter)(above), (0, geometry_util_1.bottomCenter)(below), model_1.HelperLineType.Center));
|
|
149
|
+
this.log('- Reference bounds center align with element', elementBounds);
|
|
115
150
|
}
|
|
116
|
-
if (lineTypes.includes(model_1.HelperLineType.Right) && this.isAligned(geometry_util_1.right, elementBounds, bounds)) {
|
|
151
|
+
if (lineTypes.includes(model_1.HelperLineType.Right) && this.isAligned(geometry_util_1.right, elementBounds, bounds, this.alignmentEpsilon)) {
|
|
117
152
|
const [above, below] = (0, geometry_util_1.sortBy)(geometry_util_1.top, elementBounds, bounds); // higher top-value ==> lower
|
|
118
153
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.bottomRight)(below), (0, geometry_util_1.topRight)(above), model_1.HelperLineType.Right));
|
|
154
|
+
this.log('- Reference bounds right align with element', elementBounds);
|
|
119
155
|
}
|
|
120
|
-
if (lineTypes.includes(model_1.HelperLineType.Bottom) && this.isAligned(geometry_util_1.bottom, elementBounds, bounds)) {
|
|
156
|
+
if (lineTypes.includes(model_1.HelperLineType.Bottom) && this.isAligned(geometry_util_1.bottom, elementBounds, bounds, this.alignmentEpsilon)) {
|
|
121
157
|
const [before, after] = (0, geometry_util_1.sortBy)(geometry_util_1.left, elementBounds, bounds); // higher left-value ==> more to the right
|
|
122
158
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.bottomLeft)(before), (0, geometry_util_1.bottomRight)(after), model_1.HelperLineType.Bottom));
|
|
159
|
+
this.log('- Reference bounds bottom align with element', elementBounds);
|
|
123
160
|
}
|
|
124
|
-
if (lineTypes.includes(model_1.HelperLineType.Middle) && this.isAligned(geometry_util_1.middle, elementBounds, bounds)) {
|
|
161
|
+
if (lineTypes.includes(model_1.HelperLineType.Middle) && this.isAligned(geometry_util_1.middle, elementBounds, bounds, this.alignmentEpsilon)) {
|
|
125
162
|
const [before, after] = (0, geometry_util_1.sortBy)(geometry_util_1.left, elementBounds, bounds); // higher left-value ==> more to the right
|
|
126
163
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.middleLeft)(before), (0, geometry_util_1.middleRight)(after), model_1.HelperLineType.Middle));
|
|
164
|
+
this.log('- Reference bounds middle align with element', elementBounds);
|
|
127
165
|
}
|
|
128
|
-
if (lineTypes.includes(model_1.HelperLineType.Top) && this.isAligned(geometry_util_1.top, elementBounds, bounds)) {
|
|
166
|
+
if (lineTypes.includes(model_1.HelperLineType.Top) && this.isAligned(geometry_util_1.top, elementBounds, bounds, this.alignmentEpsilon)) {
|
|
129
167
|
const [before, after] = (0, geometry_util_1.sortBy)(geometry_util_1.left, elementBounds, bounds); // higher left-value ==> more to the right
|
|
130
168
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.topLeft)(before), (0, geometry_util_1.topRight)(after), model_1.HelperLineType.Top));
|
|
169
|
+
this.log('- Reference bounds top align with element', elementBounds);
|
|
131
170
|
}
|
|
132
|
-
if (lineTypes.includes(model_1.HelperLineType.LeftRight) && this.isMatch((0, geometry_util_1.left)(elementBounds), (0, geometry_util_1.right)(bounds),
|
|
171
|
+
if (lineTypes.includes(model_1.HelperLineType.LeftRight) && this.isMatch((0, geometry_util_1.left)(elementBounds), (0, geometry_util_1.right)(bounds), this.alignmentEpsilon)) {
|
|
133
172
|
if ((0, geometry_util_1.isAbove)(bounds, elementBounds)) {
|
|
134
173
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.bottomLeft)(elementBounds), (0, geometry_util_1.topRight)(bounds), model_1.HelperLineType.RightLeft));
|
|
174
|
+
this.log('- Reference bounds right aligns with element left', elementBounds);
|
|
135
175
|
}
|
|
136
176
|
else {
|
|
137
177
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.topLeft)(elementBounds), (0, geometry_util_1.bottomRight)(bounds), model_1.HelperLineType.RightLeft));
|
|
178
|
+
this.log('- Reference bounds right aligns with element left', elementBounds);
|
|
138
179
|
}
|
|
139
180
|
}
|
|
140
|
-
if (lineTypes.includes(model_1.HelperLineType.LeftRight) && this.isMatch((0, geometry_util_1.right)(elementBounds), (0, geometry_util_1.left)(bounds),
|
|
181
|
+
if (lineTypes.includes(model_1.HelperLineType.LeftRight) && this.isMatch((0, geometry_util_1.right)(elementBounds), (0, geometry_util_1.left)(bounds), this.alignmentEpsilon)) {
|
|
141
182
|
if ((0, geometry_util_1.isAbove)(bounds, elementBounds)) {
|
|
142
183
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.bottomRight)(elementBounds), (0, geometry_util_1.topLeft)(bounds), model_1.HelperLineType.LeftRight));
|
|
184
|
+
this.log('- Reference bounds left aligns with element right', elementBounds);
|
|
143
185
|
}
|
|
144
186
|
else {
|
|
145
187
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.topRight)(elementBounds), (0, geometry_util_1.bottomLeft)(bounds), model_1.HelperLineType.LeftRight));
|
|
188
|
+
this.log('- Reference bounds left aligns with element right', elementBounds);
|
|
146
189
|
}
|
|
147
190
|
}
|
|
148
|
-
if (lineTypes.includes(model_1.HelperLineType.TopBottom) && this.isMatch((0, geometry_util_1.top)(elementBounds), (0, geometry_util_1.bottom)(bounds),
|
|
191
|
+
if (lineTypes.includes(model_1.HelperLineType.TopBottom) && this.isMatch((0, geometry_util_1.top)(elementBounds), (0, geometry_util_1.bottom)(bounds), this.alignmentEpsilon)) {
|
|
149
192
|
if ((0, geometry_util_1.isBefore)(bounds, elementBounds)) {
|
|
150
193
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.topRight)(elementBounds), (0, geometry_util_1.bottomLeft)(bounds), model_1.HelperLineType.BottomTop));
|
|
194
|
+
this.log('- Reference bounds bottom aligns with element top', elementBounds);
|
|
151
195
|
}
|
|
152
196
|
else {
|
|
153
197
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.topLeft)(elementBounds), (0, geometry_util_1.bottomRight)(bounds), model_1.HelperLineType.BottomTop));
|
|
198
|
+
this.log('- Reference bounds bottom aligns with element top', elementBounds);
|
|
154
199
|
}
|
|
155
200
|
}
|
|
156
|
-
if (lineTypes.includes(model_1.HelperLineType.TopBottom) && this.isMatch((0, geometry_util_1.bottom)(elementBounds), (0, geometry_util_1.top)(bounds),
|
|
201
|
+
if (lineTypes.includes(model_1.HelperLineType.TopBottom) && this.isMatch((0, geometry_util_1.bottom)(elementBounds), (0, geometry_util_1.top)(bounds), this.alignmentEpsilon)) {
|
|
157
202
|
if ((0, geometry_util_1.isBefore)(bounds, elementBounds)) {
|
|
158
203
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.bottomRight)(elementBounds), (0, geometry_util_1.topLeft)(bounds), model_1.HelperLineType.TopBottom));
|
|
204
|
+
this.log('- Reference bounds top aligns with element bottom', elementBounds);
|
|
159
205
|
}
|
|
160
206
|
else {
|
|
161
207
|
helperLines.push(new model_1.HelperLine((0, geometry_util_1.bottomLeft)(elementBounds), (0, geometry_util_1.topRight)(bounds), model_1.HelperLineType.TopBottom));
|
|
208
|
+
this.log('- Reference bounds top aligns with element bottom', elementBounds);
|
|
162
209
|
}
|
|
163
210
|
}
|
|
211
|
+
if (helperLines.length > 0) {
|
|
212
|
+
this.log(`--> Add ${helperLines.length} helperlines for element:`, helperLines);
|
|
213
|
+
}
|
|
164
214
|
return helperLines;
|
|
165
215
|
}
|
|
166
216
|
isAligned(coordinate, leftBounds, rightBounds, epsilon) {
|
|
167
|
-
var _a;
|
|
168
|
-
if (epsilon === void 0) { epsilon = (_a = this.action.alignmentEpsilon) !== null && _a !== void 0 ? _a : 1; }
|
|
169
217
|
return this.isMatch(coordinate(leftBounds), coordinate(rightBounds), epsilon);
|
|
170
218
|
}
|
|
171
219
|
isMatch(leftCoordinate, rightCoordinate, epsilon) {
|
|
172
|
-
var _a;
|
|
173
|
-
if (epsilon === void 0) { epsilon = (_a = this.action.alignmentEpsilon) !== null && _a !== void 0 ? _a : 1; }
|
|
174
220
|
return Math.abs(leftCoordinate - rightCoordinate) < epsilon;
|
|
175
221
|
}
|
|
222
|
+
log(message, ...params) {
|
|
223
|
+
if (this.debug) {
|
|
224
|
+
this.logger.log(this, message, params);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
176
227
|
};
|
|
177
228
|
exports.DrawHelperLinesFeedbackCommand = DrawHelperLinesFeedbackCommand;
|
|
178
229
|
DrawHelperLinesFeedbackCommand.KIND = DrawHelperLinesFeedbackAction.KIND;
|
|
179
230
|
exports.DrawHelperLinesFeedbackCommand = DrawHelperLinesFeedbackCommand = __decorate([
|
|
180
231
|
(0, inversify_1.injectable)(),
|
|
181
232
|
__param(0, (0, inversify_1.inject)(sprotty_1.TYPES.Action)),
|
|
182
|
-
|
|
233
|
+
__param(1, (0, inversify_1.inject)(sprotty_1.TYPES.ILogger)),
|
|
234
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
183
235
|
], DrawHelperLinesFeedbackCommand);
|
|
184
236
|
var RemoveHelperLinesFeedbackAction;
|
|
185
237
|
(function (RemoveHelperLinesFeedbackAction) {
|
|
@@ -215,4 +267,13 @@ function removeSelectionBounds(root) {
|
|
|
215
267
|
(0, gmodel_util_1.forEachElement)(root.index, model_1.isSelectionBounds, line => root.remove(line));
|
|
216
268
|
}
|
|
217
269
|
exports.removeSelectionBounds = removeSelectionBounds;
|
|
270
|
+
function boundsInViewport(element, bounds) {
|
|
271
|
+
if (element instanceof sprotty_1.GChildElement && !(0, sprotty_1.isViewport)(element.parent)) {
|
|
272
|
+
return boundsInViewport(element.parent, element.parent.localToParent(bounds));
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
return bounds;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
exports.boundsInViewport = boundsInViewport;
|
|
218
279
|
//# sourceMappingURL=helper-line-feedback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper-line-feedback.js","sourceRoot":"","sources":["../../../src/features/helper-lines/helper-line-feedback.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helper-line-feedback.js","sourceRoot":"","sources":["../../../src/features/helper-lines/helper-line-feedback.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;;;;AAElF,mDAiB+B;AAC/B,yCAA+C;AAC/C,mCAAmC;AACnC,yCAAuC;AACvC,2EAAuE;AACvE,6DAkBmC;AACnC,yDAOiC;AACjC,+DAAiF;AACjF,mCAAuG;AAMhG,MAAM,4BAA4B,GAA2B,OAAO,CAAC,EAAE,CAC1E,IAAA,0CAA4B,EAAC,OAAO,EAAE,uBAAa,EAAE,oBAAU,CAAC,KAAK,OAAO,CAAC;AADpE,QAAA,4BAA4B,gCACwC;AAYpE,QAAA,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAc,CAAC,CAAC;AACvD,QAAA,uBAAuB,GAAG,CAAC,sBAAc,CAAC,MAAM,EAAE,sBAAc,CAAC,MAAM,CAAC,CAAC;AAEzE,QAAA,qBAAqB,GAAG,8BAAsB,CAAC;AAC/C,QAAA,sBAAsB,GAAG,+BAAuB,CAAC;AACjD,QAAA,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,gCAAgC,GAAG,CAAC,OAAgC,EAAW,EAAE,CAC1F,IAAA,+BAAiB,EAAC,OAAO,CAAC,IAAI,CAAC,IAAA,wBAAU,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,YAAY,gBAAM,CAAC,IAAI,CAAC,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;AADpG,QAAA,gCAAgC,oCACoE;AACpG,QAAA,aAAa,GAAG,KAAK,CAAC;AAEnC,IAAiB,6BAA6B,CAS7C;AATD,WAAiB,6BAA6B;IAC7B,kCAAI,GAAG,iBAAiB,CAAC;IAEtC,SAAgB,MAAM,CAAC,OAAoD;QACvE,uBACI,IAAI,EAAE,8BAAA,IAAI,IACP,OAAO,EACZ;IACN,CAAC;IALe,oCAAM,SAKrB,CAAA;AACL,CAAC,EATgB,6BAA6B,6CAA7B,6BAA6B,QAS7C;AAGM,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,kCAAe;IAW/D,YAC0B,MAAqC,EAC1B,MAAe;;QAEhD,KAAK,EAAE,CAAC;QAFyB,WAAM,GAAN,MAAM,CAAS;QAGhD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,MAAA,MAAM,CAAC,YAAY,mCAAI,6BAAqB,CAAC;QACjE,IAAI,CAAC,aAAa,GAAG,MAAA,MAAM,CAAC,aAAa,mCAAI,8BAAsB,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,uBAAe,CAAC;QACnE,IAAI,CAAC,sBAAsB,GAAG,MAAA,MAAM,CAAC,sBAAsB,mCAAI,wCAAgC,CAAC;QAChG,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,qBAAa,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,OAAgC;QACpC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,iBAAiB,GAAG,IAAA,iCAAmB,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACpG,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAAC;QACxD,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,GAAG,IAAA,kBAAS,EAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,GAAG,CAAC,uEAAuE,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAC/G,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;YAC1E,OAAO,OAAO,CAAC,IAAI,CAAC;SACvB;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,eAAe,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAC7E,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,uBAAe,CAAC,eAAe,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,8DAA8D,EAAE,eAAe,CAAC,CAAC;SAC7F;QACD,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,WAAW,WAAW,CAAC,MAAM,wBAAwB,EAAE,WAAW,CAAC,CAAC;SAChF;aAAM;YACH,IAAI,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;SAChD;QACD,OAAO,OAAO,CAAC,IAAI,CAAC;IACxB,CAAC;IAES,kBAAkB,CAAC,OAAsB;QAC/C,OAAO,IAAA,uBAAa,EAAC,OAAO,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3F,CAAC;IAES,mBAAmB,CAAC,iBAA4C;QACtE,OAAO,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAM,CAAC,OAAO,EAAE,gBAAM,CAAC,KAAK,CAAC,CAAC;IAC3G,CAAC;IAES,UAAU,CAAC,OAAgC;QACjD,OAAO,IAAA,iCAAgB,EAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAES,eAAe,CAAC,QAAmC,EAAE,MAAc,EAAE,OAAgC;QAC3G,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAA,6BAAmB,EAAC,OAAO,CAAC,IAAI,EAAE,oBAAU,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE;YACV,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;SAC9F;QACD,QAAQ;aACH,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aACtF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,OAAO,WAAW,CAAC;IACvB,CAAC;IAES,0BAA0B,CAAC,IAA2B,EAAE,MAAc,EAAE,SAA2B;QACzG,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,IAAA,kCAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,sBAAM,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE;YAChG,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,yBAAS,EAAC,cAAc,CAAC,EAAE,IAAA,4BAAY,EAAC,cAAc,CAAC,EAAE,sBAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YACjH,IAAI,CAAC,GAAG,CAAC,gDAAgD,EAAE,cAAc,CAAC,CAAC;SAC9E;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,sBAAM,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE;YAChG,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,0BAAU,EAAC,cAAc,CAAC,EAAE,IAAA,2BAAW,EAAC,cAAc,CAAC,EAAE,sBAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YACjH,IAAI,CAAC,GAAG,CAAC,gDAAgD,EAAE,cAAc,CAAC,CAAC;SAC9E;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,WAAW,WAAW,CAAC,MAAM,4BAA4B,EAAE,WAAW,CAAC,CAAC;SACpF;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;IAES,yBAAyB,CAAC,OAAgC,EAAE,MAAc,EAAE,SAA2B;QAC7G,IAAI,CAAC,GAAG,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IAES,wBAAwB,CAAC,aAAqB,EAAE,MAAc,EAAE,SAA2B;QACjG,MAAM,WAAW,GAAiB,EAAE,CAAC;QAErC,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAI,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC/G,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAA,sBAAM,EAAC,mBAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,6BAA6B;YACxF,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,0BAAU,EAAC,KAAK,CAAC,EAAE,IAAA,uBAAO,EAAC,KAAK,CAAC,EAAE,sBAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACzF,IAAI,CAAC,GAAG,CAAC,4CAA4C,EAAE,aAAa,CAAC,CAAC;SACzE;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,sBAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACnH,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAA,sBAAM,EAAC,mBAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,6BAA6B;YACxF,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,yBAAS,EAAC,KAAK,CAAC,EAAE,IAAA,4BAAY,EAAC,KAAK,CAAC,EAAE,sBAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/F,IAAI,CAAC,GAAG,CAAC,8CAA8C,EAAE,aAAa,CAAC,CAAC;SAC3E;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAK,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACjH,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAA,sBAAM,EAAC,mBAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,6BAA6B;YACxF,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,2BAAW,EAAC,KAAK,CAAC,EAAE,IAAA,wBAAQ,EAAC,KAAK,CAAC,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5F,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,aAAa,CAAC,CAAC;SAC1E;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,sBAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACnH,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAA,sBAAM,EAAC,oBAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,0CAA0C;YACvG,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,0BAAU,EAAC,MAAM,CAAC,EAAE,IAAA,2BAAW,EAAC,KAAK,CAAC,EAAE,sBAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YAChG,IAAI,CAAC,GAAG,CAAC,8CAA8C,EAAE,aAAa,CAAC,CAAC;SAC3E;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,sBAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACnH,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAA,sBAAM,EAAC,oBAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,0CAA0C;YACvG,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,0BAAU,EAAC,MAAM,CAAC,EAAE,IAAA,2BAAW,EAAC,KAAK,CAAC,EAAE,sBAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YAChG,IAAI,CAAC,GAAG,CAAC,8CAA8C,EAAE,aAAa,CAAC,CAAC;SAC3E;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAG,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC7G,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAA,sBAAM,EAAC,oBAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,0CAA0C;YACvG,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,uBAAO,EAAC,MAAM,CAAC,EAAE,IAAA,wBAAQ,EAAC,KAAK,CAAC,EAAE,sBAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YACvF,IAAI,CAAC,GAAG,CAAC,2CAA2C,EAAE,aAAa,CAAC,CAAC;SACxE;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAA,oBAAI,EAAC,aAAa,CAAC,EAAE,IAAA,qBAAK,EAAC,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACzH,IAAI,IAAA,uBAAO,EAAC,MAAM,EAAE,aAAa,CAAC,EAAE;gBAChC,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,0BAAU,EAAC,aAAa,CAAC,EAAE,IAAA,wBAAQ,EAAC,MAAM,CAAC,EAAE,sBAAc,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxG,IAAI,CAAC,GAAG,CAAC,mDAAmD,EAAE,aAAa,CAAC,CAAC;aAChF;iBAAM;gBACH,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,uBAAO,EAAC,aAAa,CAAC,EAAE,IAAA,2BAAW,EAAC,MAAM,CAAC,EAAE,sBAAc,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxG,IAAI,CAAC,GAAG,CAAC,mDAAmD,EAAE,aAAa,CAAC,CAAC;aAChF;SACJ;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAA,qBAAK,EAAC,aAAa,CAAC,EAAE,IAAA,oBAAI,EAAC,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACzH,IAAI,IAAA,uBAAO,EAAC,MAAM,EAAE,aAAa,CAAC,EAAE;gBAChC,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,2BAAW,EAAC,aAAa,CAAC,EAAE,IAAA,uBAAO,EAAC,MAAM,CAAC,EAAE,sBAAc,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxG,IAAI,CAAC,GAAG,CAAC,mDAAmD,EAAE,aAAa,CAAC,CAAC;aAChF;iBAAM;gBACH,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,wBAAQ,EAAC,aAAa,CAAC,EAAE,IAAA,0BAAU,EAAC,MAAM,CAAC,EAAE,sBAAc,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxG,IAAI,CAAC,GAAG,CAAC,mDAAmD,EAAE,aAAa,CAAC,CAAC;aAChF;SACJ;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAA,mBAAG,EAAC,aAAa,CAAC,EAAE,IAAA,sBAAM,EAAC,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACzH,IAAI,IAAA,wBAAQ,EAAC,MAAM,EAAE,aAAa,CAAC,EAAE;gBACjC,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,wBAAQ,EAAC,aAAa,CAAC,EAAE,IAAA,0BAAU,EAAC,MAAM,CAAC,EAAE,sBAAc,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxG,IAAI,CAAC,GAAG,CAAC,mDAAmD,EAAE,aAAa,CAAC,CAAC;aAChF;iBAAM;gBACH,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,uBAAO,EAAC,aAAa,CAAC,EAAE,IAAA,2BAAW,EAAC,MAAM,CAAC,EAAE,sBAAc,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxG,IAAI,CAAC,GAAG,CAAC,mDAAmD,EAAE,aAAa,CAAC,CAAC;aAChF;SACJ;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAA,sBAAM,EAAC,aAAa,CAAC,EAAE,IAAA,mBAAG,EAAC,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACzH,IAAI,IAAA,wBAAQ,EAAC,MAAM,EAAE,aAAa,CAAC,EAAE;gBACjC,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,2BAAW,EAAC,aAAa,CAAC,EAAE,IAAA,uBAAO,EAAC,MAAM,CAAC,EAAE,sBAAc,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxG,IAAI,CAAC,GAAG,CAAC,mDAAmD,EAAE,aAAa,CAAC,CAAC;aAChF;iBAAM;gBACH,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAU,CAAC,IAAA,0BAAU,EAAC,aAAa,CAAC,EAAE,IAAA,wBAAQ,EAAC,MAAM,CAAC,EAAE,sBAAc,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxG,IAAI,CAAC,GAAG,CAAC,mDAAmD,EAAE,aAAa,CAAC,CAAC;aAChF;SACJ;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,WAAW,WAAW,CAAC,MAAM,2BAA2B,EAAE,WAAW,CAAC,CAAC;SACnF;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAES,SAAS,CAAC,UAAoC,EAAE,UAAkB,EAAE,WAAmB,EAAE,OAAe;QAC9G,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAES,OAAO,CAAC,cAAsB,EAAE,eAAuB,EAAE,OAAe;QAC9E,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,eAAe,CAAC,GAAG,OAAO,CAAC;IAChE,CAAC;IAES,GAAG,CAAC,OAAe,EAAE,GAAG,MAAa;QAC3C,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SAC1C;IACL,CAAC;;AApMQ,wEAA8B;AACvB,mCAAI,GAAG,6BAA6B,CAAC,IAAI,AAArC,CAAsC;yCADjD,8BAA8B;IAD1C,IAAA,sBAAU,GAAE;IAaJ,WAAA,IAAA,kBAAM,EAAC,eAAK,CAAC,MAAM,CAAC,CAAA;IACpB,WAAA,IAAA,kBAAM,EAAC,eAAK,CAAC,OAAO,CAAC,CAAA;;GAbjB,8BAA8B,CAqM1C;AAMD,IAAiB,+BAA+B,CAS/C;AATD,WAAiB,+BAA+B;IAC/B,oCAAI,GAAG,mBAAmB,CAAC;IAExC,SAAgB,MAAM,CAAC,UAAyD,EAAE;QAC9E,uBACI,IAAI,EAAE,gCAAA,IAAI,IACP,OAAO,EACZ;IACN,CAAC;IALe,sCAAM,SAKrB,CAAA;AACL,CAAC,EATgB,+BAA+B,+CAA/B,+BAA+B,QAS/C;AAGM,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,kCAAe;IAGjE,YAAyC,MAAuC;QAC5E,KAAK,EAAE,CAAC;QAD6B,WAAM,GAAN,MAAM,CAAiC;IAEhF,CAAC;IAEQ,OAAO,CAAC,OAAgC;QAC7C,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC,IAAI,CAAC;IACxB,CAAC;;AAXQ,4EAAgC;AACzB,qCAAI,GAAG,+BAA+B,CAAC,IAAI,AAAvC,CAAwC;2CADnD,gCAAgC;IAD5C,IAAA,sBAAU,GAAE;IAII,WAAA,IAAA,kBAAM,EAAC,eAAK,CAAC,MAAM,CAAC,CAAA;;GAHxB,gCAAgC,CAY5C;AAED,SAAgB,iBAAiB,CAAC,IAAgB;IAC9C,IAAA,4BAAc,EAAC,IAAI,CAAC,KAAK,EAAE,oBAAY,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC;AAFD,8CAEC;AAED,SAAgB,qBAAqB,CAAC,IAAgB;IAClD,IAAA,4BAAc,EAAC,IAAI,CAAC,KAAK,EAAE,yBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7E,CAAC;AAFD,sDAEC;AAED,SAAgB,gBAAgB,CAAC,OAAsB,EAAE,MAAsB;IAC3E,IAAI,OAAO,YAAY,uBAAa,IAAI,CAAC,IAAA,oBAAU,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjE,OAAO,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAW,CAAC,CAAC;KAC3F;SAAM;QACH,OAAO,MAAM,CAAC;KACjB;AACL,CAAC;AAND,4CAMC"}
|
|
@@ -13,26 +13,57 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action, DisposableCollection, GModelElement, GModelRoot, IActionHandler,
|
|
16
|
+
import { Action, DisposableCollection, GModelElement, GModelRoot, IActionHandler, MoveAction, Point, SetBoundsAction } from '@eclipse-glsp/sprotty';
|
|
17
17
|
import { IFeedbackActionDispatcher } from '../../base/feedback/feedback-action-dispatcher';
|
|
18
18
|
import { ISelectionListener, SelectionService } from '../../base/selection-service';
|
|
19
19
|
import { SetBoundsFeedbackAction } from '../bounds/set-bounds-feedback-command';
|
|
20
20
|
import { MoveFinishedEventAction, MoveInitializedEventAction } from '../tools/change-bounds/change-bounds-tool-feedback';
|
|
21
|
-
import { DrawHelperLinesFeedbackAction, ViewportLineType } from './helper-line-feedback';
|
|
21
|
+
import { AlignmentElementFilter, DrawHelperLinesFeedbackAction, ViewportLineType } from './helper-line-feedback';
|
|
22
22
|
import { IHelperLineManager } from './helper-line-manager';
|
|
23
23
|
import { Direction, HelperLineType } from './model';
|
|
24
|
+
export interface IHelperLineOptions {
|
|
25
|
+
/**
|
|
26
|
+
* A list of helper line types that should be rendered when elements are aligned.
|
|
27
|
+
* Defaults to all possible alignments.
|
|
28
|
+
*/
|
|
29
|
+
elementLines?: HelperLineType[];
|
|
30
|
+
/**
|
|
31
|
+
* A list of helper line types that should be rendered when an element is aligned with the viewport.
|
|
32
|
+
* Defaults to middle and center alignment.
|
|
33
|
+
*/
|
|
34
|
+
viewportLines?: ViewportLineType[];
|
|
35
|
+
/**
|
|
36
|
+
* The minimum difference between two coordinates
|
|
37
|
+
* Defaults to 1.
|
|
38
|
+
*/
|
|
39
|
+
alignmentEpsilon?: number;
|
|
40
|
+
/**
|
|
41
|
+
* A filter that is applied to determine on which elements the alignment calculation is performed.
|
|
42
|
+
* By default all top-level bounds-aware, non-routable elements that are visible on the canvas are considered.
|
|
43
|
+
*/
|
|
44
|
+
alignmentElementFilter?: AlignmentElementFilter;
|
|
45
|
+
/**
|
|
46
|
+
* The minimum move delta that is necessary for an element to break through a helper line.
|
|
47
|
+
* Defaults to { x: 1, y: 1 } whereas the x represents the horizontal distance and y represents the vertical distance.
|
|
48
|
+
*/
|
|
49
|
+
minimumMoveDelta?: Point;
|
|
50
|
+
/**
|
|
51
|
+
* Produces debug output.
|
|
52
|
+
* Defaults to false.
|
|
53
|
+
*/
|
|
54
|
+
debug?: boolean;
|
|
55
|
+
}
|
|
56
|
+
export declare const DEFAULT_MOVE_DELTA: {
|
|
57
|
+
x: number;
|
|
58
|
+
y: number;
|
|
59
|
+
};
|
|
60
|
+
export declare const DEFAULT_HELPER_LINE_OPTIONS: Required<IHelperLineOptions>;
|
|
24
61
|
export declare class HelperLineManager implements IActionHandler, ISelectionListener, IHelperLineManager {
|
|
25
62
|
protected feedbackDispatcher: IFeedbackActionDispatcher;
|
|
26
63
|
protected selectionService: SelectionService;
|
|
27
|
-
protected
|
|
28
|
-
protected
|
|
29
|
-
x: number;
|
|
30
|
-
y: number;
|
|
31
|
-
};
|
|
64
|
+
protected userOptions?: IHelperLineOptions;
|
|
65
|
+
protected options: Required<IHelperLineOptions>;
|
|
32
66
|
protected feedback: DisposableCollection;
|
|
33
|
-
protected elementLines?: HelperLineType[];
|
|
34
|
-
protected viewportLines?: ViewportLineType[];
|
|
35
|
-
protected alignmentEpsilon?: number;
|
|
36
67
|
protected init(): void;
|
|
37
68
|
handle(action: Action): void;
|
|
38
69
|
protected handleMoveInitializedAction(_action: MoveInitializedEventAction): void;
|
|
@@ -41,6 +72,6 @@ export declare class HelperLineManager implements IActionHandler, ISelectionList
|
|
|
41
72
|
protected createHelperLineFeedback(elementIds: string[]): DrawHelperLinesFeedbackAction;
|
|
42
73
|
protected handleSetBoundsAction(action: SetBoundsAction | SetBoundsFeedbackAction): void;
|
|
43
74
|
selectionChanged(root: Readonly<GModelRoot>, selectedElements: string[], deselectedElements?: string[] | undefined): void;
|
|
44
|
-
|
|
75
|
+
getMinimumMoveDelta(element: GModelElement, isSnap: boolean, direction: Direction): number;
|
|
45
76
|
}
|
|
46
77
|
//# sourceMappingURL=helper-line-manager-default.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper-line-manager-default.d.ts","sourceRoot":"","sources":["../../../src/features/helper-lines/helper-line-manager-default.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,MAAM,EACN,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"helper-line-manager-default.d.ts","sourceRoot":"","sources":["../../../src/features/helper-lines/helper-line-manager-default.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,MAAM,EACN,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,cAAc,EACd,UAAU,EACV,KAAK,EACL,eAAe,EAElB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AACzH,OAAO,EACH,sBAAsB,EAMtB,6BAA6B,EAE7B,gBAAgB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC;;;OAGG;IACH,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC;IAEzB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB;;;CAAiB,CAAC;AAEjD,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,kBAAkB,CAOpE,CAAC;AAEF,qBACa,iBAAkB,YAAW,cAAc,EAAE,kBAAkB,EAAE,kBAAkB;IACnD,SAAS,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;IACvE,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACzB,SAAS,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEzF,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAChD,SAAS,CAAC,QAAQ,EAAE,oBAAoB,CAA8B;IAGtE,SAAS,CAAC,IAAI,IAAI,IAAI;IAOtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAY5B,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAMhF,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAI1E,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAUpD,SAAS,CAAC,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,6BAA6B;IAIvF,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,uBAAuB,GAAG,IAAI;IAMxF,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI;IAIzH,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM;CAQ7F"}
|
|
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.HelperLineManager = void 0;
|
|
12
|
+
exports.HelperLineManager = exports.DEFAULT_HELPER_LINE_OPTIONS = exports.DEFAULT_MOVE_DELTA = void 0;
|
|
13
13
|
/********************************************************************************
|
|
14
14
|
* Copyright (c) 2023 EclipseSource and others.
|
|
15
15
|
*
|
|
@@ -29,20 +29,25 @@ const sprotty_1 = require("@eclipse-glsp/sprotty");
|
|
|
29
29
|
const inversify_1 = require("inversify");
|
|
30
30
|
const selection_service_1 = require("../../base/selection-service");
|
|
31
31
|
const set_bounds_feedback_command_1 = require("../bounds/set-bounds-feedback-command");
|
|
32
|
-
const snap_1 = require("../change-bounds/snap");
|
|
33
32
|
const change_bounds_tool_feedback_1 = require("../tools/change-bounds/change-bounds-tool-feedback");
|
|
34
33
|
const helper_line_feedback_1 = require("./helper-line-feedback");
|
|
35
34
|
const model_1 = require("./model");
|
|
35
|
+
exports.DEFAULT_MOVE_DELTA = { x: 1, y: 1 };
|
|
36
|
+
exports.DEFAULT_HELPER_LINE_OPTIONS = {
|
|
37
|
+
elementLines: helper_line_feedback_1.DEFAULT_ELEMENT_LINES,
|
|
38
|
+
viewportLines: helper_line_feedback_1.DEFAULT_VIEWPORT_LINES,
|
|
39
|
+
alignmentEpsilon: helper_line_feedback_1.DEFAULT_EPSILON,
|
|
40
|
+
alignmentElementFilter: helper_line_feedback_1.DEFAULT_ALIGNABLE_ELEMENT_FILTER,
|
|
41
|
+
minimumMoveDelta: exports.DEFAULT_MOVE_DELTA,
|
|
42
|
+
debug: helper_line_feedback_1.DEFAULT_DEBUG
|
|
43
|
+
};
|
|
36
44
|
let HelperLineManager = class HelperLineManager {
|
|
37
45
|
constructor() {
|
|
38
|
-
this.snapSize = { x: 20, y: 20 };
|
|
39
46
|
this.feedback = new sprotty_1.DisposableCollection();
|
|
40
47
|
}
|
|
41
48
|
init() {
|
|
49
|
+
this.options = Object.assign(Object.assign({}, exports.DEFAULT_HELPER_LINE_OPTIONS), this.userOptions);
|
|
42
50
|
this.selectionService.onSelectionChanged(change => this.selectionChanged(change.root, change.selectedElements, change.deselectedElements));
|
|
43
|
-
if (this.snapper instanceof snap_1.GridSnapper) {
|
|
44
|
-
this.snapSize = { x: this.snapper.grid.x * 2, y: this.snapper.grid.y * 2 };
|
|
45
|
-
}
|
|
46
51
|
}
|
|
47
52
|
handle(action) {
|
|
48
53
|
if (change_bounds_tool_feedback_1.MoveInitializedEventAction.is(action)) {
|
|
@@ -77,12 +82,7 @@ let HelperLineManager = class HelperLineManager {
|
|
|
77
82
|
}
|
|
78
83
|
}
|
|
79
84
|
createHelperLineFeedback(elementIds) {
|
|
80
|
-
return helper_line_feedback_1.DrawHelperLinesFeedbackAction.create({
|
|
81
|
-
elementIds,
|
|
82
|
-
elementLines: this.elementLines,
|
|
83
|
-
viewportLines: this.viewportLines,
|
|
84
|
-
alignmentEpsilon: this.alignmentEpsilon
|
|
85
|
-
});
|
|
85
|
+
return helper_line_feedback_1.DrawHelperLinesFeedbackAction.create(Object.assign({ elementIds }, this.options));
|
|
86
86
|
}
|
|
87
87
|
handleSetBoundsAction(action) {
|
|
88
88
|
const elementIds = action.bounds.map(bound => bound.elementId);
|
|
@@ -92,8 +92,13 @@ let HelperLineManager = class HelperLineManager {
|
|
|
92
92
|
selectionChanged(root, selectedElements, deselectedElements) {
|
|
93
93
|
this.feedback.dispose();
|
|
94
94
|
}
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
getMinimumMoveDelta(element, isSnap, direction) {
|
|
96
|
+
if (!isSnap) {
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
return direction === model_1.Direction.Left || direction === model_1.Direction.Right
|
|
100
|
+
? this.options.minimumMoveDelta.x
|
|
101
|
+
: this.options.minimumMoveDelta.y;
|
|
97
102
|
}
|
|
98
103
|
};
|
|
99
104
|
exports.HelperLineManager = HelperLineManager;
|
|
@@ -107,9 +112,9 @@ __decorate([
|
|
|
107
112
|
], HelperLineManager.prototype, "selectionService", void 0);
|
|
108
113
|
__decorate([
|
|
109
114
|
(0, inversify_1.optional)(),
|
|
110
|
-
(0, inversify_1.inject)(sprotty_1.TYPES.
|
|
115
|
+
(0, inversify_1.inject)(sprotty_1.TYPES.IHelperLineOptions),
|
|
111
116
|
__metadata("design:type", Object)
|
|
112
|
-
], HelperLineManager.prototype, "
|
|
117
|
+
], HelperLineManager.prototype, "userOptions", void 0);
|
|
113
118
|
__decorate([
|
|
114
119
|
(0, inversify_1.postConstruct)(),
|
|
115
120
|
__metadata("design:type", Function),
|