@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.
Files changed (26) hide show
  1. package/lib/features/change-bounds/position-snapper.js +4 -4
  2. package/lib/features/change-bounds/position-snapper.js.map +1 -1
  3. package/lib/features/helper-lines/helper-line-feedback.d.ts +30 -11
  4. package/lib/features/helper-lines/helper-line-feedback.d.ts.map +1 -1
  5. package/lib/features/helper-lines/helper-line-feedback.js +93 -32
  6. package/lib/features/helper-lines/helper-line-feedback.js.map +1 -1
  7. package/lib/features/helper-lines/helper-line-manager-default.d.ts +42 -11
  8. package/lib/features/helper-lines/helper-line-manager-default.d.ts.map +1 -1
  9. package/lib/features/helper-lines/helper-line-manager-default.js +21 -16
  10. package/lib/features/helper-lines/helper-line-manager-default.js.map +1 -1
  11. package/lib/features/helper-lines/helper-line-manager.d.ts +8 -1
  12. package/lib/features/helper-lines/helper-line-manager.d.ts.map +1 -1
  13. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js +1 -1
  14. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js.map +1 -1
  15. package/lib/tsconfig.tsbuildinfo +1 -1
  16. package/lib/utils/gmodel-util.d.ts +1 -0
  17. package/lib/utils/gmodel-util.d.ts.map +1 -1
  18. package/lib/utils/gmodel-util.js +10 -1
  19. package/lib/utils/gmodel-util.js.map +1 -1
  20. package/package.json +3 -3
  21. package/src/features/change-bounds/position-snapper.ts +4 -4
  22. package/src/features/helper-lines/helper-line-feedback.ts +127 -45
  23. package/src/features/helper-lines/helper-line-manager-default.ts +68 -20
  24. package/src/features/helper-lines/helper-line-manager.ts +8 -1
  25. package/src/features/tools/change-bounds/change-bounds-tool-feedback.ts +1 -1
  26. 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.getHelperLineSnapping(target, isSnap, model_1.Direction.Left);
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.getHelperLineSnapping(target, isSnap, model_1.Direction.Right);
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.getHelperLineSnapping(target, isSnap, model_1.Direction.Up);
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.getHelperLineSnapping(target, isSnap, model_1.Direction.Down);
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":"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"}
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 declare const ALL_ELEMENT_LINE_TYPES: ("left" | "right" | "center" | "top" | "bottom" | "middle" | "left-right" | "right-left" | "bottom-top" | "top-bottom")[];
23
- export declare const ALL_VIEWPORT_LINE_TYPES: ("center" | "middle")[];
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
- action: DrawHelperLinesFeedbackAction;
45
+ protected logger: ILogger;
37
46
  static readonly KIND = "drawHelperLines";
38
- constructor(action: DrawHelperLinesFeedbackAction);
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 isCompareElement(element: GModelElement): element is BoundsAwareModelElement;
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?: HelperLineType[]): HelperLine[];
44
- protected calcHelperLinesForElement(element: BoundsAwareModelElement, bounds: Bounds, lineTypes?: HelperLineType[]): HelperLine[];
45
- protected calcHelperLinesForBounds(elementBounds: Bounds, bounds: Bounds, lineTypes?: HelperLineType[]): HelperLine[];
46
- protected isAligned(coordinate: (elem: Bounds) => number, leftBounds: Bounds, rightBounds: Bounds, epsilon?: number): boolean;
47
- protected isMatch(leftCoordinate: number, rightCoordinate: number, epsilon?: number): boolean;
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":"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"}
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.action = action;
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 boundsAwareElements = (0, gmodel_util_1.getMatchingElements)(context.root.index, this.isCompareElement);
59
- const [referenceElements, elements] = (0, lodash_1.partition)(boundsAwareElements, element => this.action.elementIds.includes(element.id));
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
- isCompareElement(element) {
72
- return (0, sprotty_1.isBoundsAware)(element) && (0, gmodel_util_1.findTopLevelElementByFeature)(element, sprotty_1.isBoundsAware, sprotty_1.isViewport) === 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.bounds).reduce((combined, next) => sprotty_1.Bounds.combine(combined, next), sprotty_1.Bounds.EMPTY);
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.flatMap(element => this.calcHelperLinesForElement(element, bounds)).forEach(line => helperLines.push(line));
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
- var _a;
101
- if (lineTypes === void 0) { lineTypes = (_a = this.action.elementLines) !== null && _a !== void 0 ? _a : exports.ALL_ELEMENT_LINE_TYPES; }
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), 2)) {
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), 2)) {
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), 2)) {
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), 2)) {
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
- __metadata("design:paramtypes", [Object])
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":"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"}
@@ -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, ISnapper, MoveAction, SetBoundsAction } from '@eclipse-glsp/sprotty';
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 snapper?: ISnapper;
28
- protected snapSize: {
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
- getHelperLineSnapping(target: GModelElement, isSnap: boolean, direction: Direction): number;
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,QAAQ,EACR,UAAU,EACV,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;AAEhF,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AACzH,OAAO,EAAE,6BAA6B,EAAmC,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1H,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEpD,qBACa,iBAAkB,YAAW,cAAc,EAAE,kBAAkB,EAAE,kBAAkB;IACnD,SAAS,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;IACvE,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEjE,SAAS,CAAC,QAAQ;;;MAAoB;IACtC,SAAS,CAAC,QAAQ,EAAE,oBAAoB,CAA8B;IAEtE,SAAS,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1C,SAAS,CAAC,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7C,SAAS,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAGpC,SAAS,CAAC,IAAI,IAAI,IAAI;IAStB,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;IASvF,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,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM;CAG9F"}
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
- getHelperLineSnapping(target, isSnap, direction) {
96
- return direction === model_1.Direction.Left || direction === model_1.Direction.Right ? this.snapSize.x : this.snapSize.y;
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.ISnapper),
115
+ (0, inversify_1.inject)(sprotty_1.TYPES.IHelperLineOptions),
111
116
  __metadata("design:type", Object)
112
- ], HelperLineManager.prototype, "snapper", void 0);
117
+ ], HelperLineManager.prototype, "userOptions", void 0);
113
118
  __decorate([
114
119
  (0, inversify_1.postConstruct)(),
115
120
  __metadata("design:type", Function),