@eclipse-glsp/client 2.2.0-next.341 → 2.2.0-next.343

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 (24) hide show
  1. package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts.map +1 -1
  2. package/lib/features/element-template/mouse-tracking-element-position-listener.js +3 -2
  3. package/lib/features/element-template/mouse-tracking-element-position-listener.js.map +1 -1
  4. package/lib/features/export/glsp-svg-exporter.d.ts +24 -2
  5. package/lib/features/export/glsp-svg-exporter.d.ts.map +1 -1
  6. package/lib/features/export/glsp-svg-exporter.js +74 -16
  7. package/lib/features/export/glsp-svg-exporter.js.map +1 -1
  8. package/lib/features/tools/node-creation/container-manager.d.ts +7 -6
  9. package/lib/features/tools/node-creation/container-manager.d.ts.map +1 -1
  10. package/lib/features/tools/node-creation/container-manager.js +1 -1
  11. package/lib/features/tools/node-creation/container-manager.js.map +1 -1
  12. package/lib/features/tools/node-creation/insert-indicator.d.ts.map +1 -1
  13. package/lib/features/tools/node-creation/insert-indicator.js +1 -1
  14. package/lib/features/tools/node-creation/insert-indicator.js.map +1 -1
  15. package/lib/features/tools/node-creation/node-creation-tool.d.ts +3 -2
  16. package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -1
  17. package/lib/features/tools/node-creation/node-creation-tool.js +13 -4
  18. package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -1
  19. package/package.json +3 -3
  20. package/src/features/element-template/mouse-tracking-element-position-listener.ts +3 -2
  21. package/src/features/export/glsp-svg-exporter.ts +88 -18
  22. package/src/features/tools/node-creation/container-manager.ts +9 -7
  23. package/src/features/tools/node-creation/insert-indicator.ts +1 -1
  24. package/src/features/tools/node-creation/node-creation-tool.ts +24 -4
@@ -1 +1 @@
1
- {"version":3,"file":"mouse-tracking-element-position-listener.d.ts","sourceRoot":"","sources":["../../../src/features/element-template/mouse-tracking-element-position-listener.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,MAAM,EAAa,aAAa,EAAc,KAAK,EAA6B,MAAM,uBAAuB,CAAC;AACvH,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAEhG,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACtD,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;CACrD;AAED,qBAAa,oCAAqC,SAAQ,sBAAsB;IAKxE,SAAS,CAAC,SAAS,EAAE,MAAM;IAC3B,SAAS,CAAC,IAAI,EAAE,eAAe;IAC/B,SAAS,CAAC,cAAc,EAAE,UAAU,GAAG,QAAQ;IANnD,SAAS,CAAC,iBAAiB,EAAE,eAAe,CAAC;IAC7C,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAGzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,eAAe,EACrB,cAAc,GAAE,UAAU,GAAG,QAAqB;IAOhE,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS;IAKzF,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IA0BnE,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAK9F,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK;IAO9G,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAKhF,OAAO,IAAI,IAAI;CAI3B"}
1
+ {"version":3,"file":"mouse-tracking-element-position-listener.d.ts","sourceRoot":"","sources":["../../../src/features/element-template/mouse-tracking-element-position-listener.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,MAAM,EAAa,aAAa,EAAc,KAAK,EAA6B,MAAM,uBAAuB,CAAC;AACvH,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAEhG,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACtD,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;CACrD;AAED,qBAAa,oCAAqC,SAAQ,sBAAsB;IAKxE,SAAS,CAAC,SAAS,EAAE,MAAM;IAC3B,SAAS,CAAC,IAAI,EAAE,eAAe;IAC/B,SAAS,CAAC,cAAc,EAAE,UAAU,GAAG,QAAQ;IANnD,SAAS,CAAC,iBAAiB,EAAE,eAAe,CAAC;IAC7C,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAGzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,eAAe,EACrB,cAAc,GAAE,UAAU,GAAG,QAAqB;IAOhE,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS;IAKzF,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IA2BnE,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAK9F,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK;IAO9G,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAKhF,OAAO,IAAI,IAAI;CAI3B"}
@@ -40,10 +40,11 @@ class MouseTrackingElementPositionListener extends drag_aware_mouse_listener_1.D
40
40
  if (!element) {
41
41
  return [];
42
42
  }
43
- if (!this.tracker.isTracking()) {
43
+ const isInitializing = !this.tracker.isTracking();
44
+ if (isInitializing) {
44
45
  this.initialize(element, ctx, event);
45
46
  }
46
- const move = this.tracker.moveElements([element], { snap: event, restrict: event });
47
+ const move = this.tracker.moveElements([element], { snap: event, restrict: event, skipStatic: !isInitializing });
47
48
  const elementMove = move.elementMoves[0];
48
49
  if (!elementMove) {
49
50
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"mouse-tracking-element-position-listener.js","sourceRoot":"","sources":["../../../src/features/element-template/mouse-tracking-element-position-listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mouse-tracking-element-position-listener.js","sourceRoot":"","sources":["../../../src/features/element-template/mouse-tracking-element-position-listener.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,28 @@
1
- import { ExportSvgAction, RequestAction, GModelRoot, SvgExporter } from '@eclipse-glsp/sprotty';
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { ExportSvgAction, GModelRoot, RequestAction, SvgExporter } from '@eclipse-glsp/sprotty';
2
17
  export declare class GLSPSvgExporter extends SvgExporter {
3
- export(root: GModelRoot, _request?: RequestAction<ExportSvgAction>): void;
18
+ export(root: GModelRoot, request?: RequestAction<ExportSvgAction>): void;
19
+ protected createSvg(svgElement: SVGSVGElement, root: GModelRoot): string;
4
20
  protected findSvgElement(): SVGSVGElement | null;
21
+ protected prepareSvgElement(svgElement: SVGSVGElement, root: GModelRoot, request?: RequestAction<ExportSvgAction>): SVGSVGElement;
22
+ protected copyStyles(source: Element, target: Element, skippedProperties: string[]): void;
23
+ protected copyStyle(source: Element, target: Element, skippedProperties: string[]): void;
24
+ protected shouldUpdateStyle(element: any): element is ElementCSSInlineStyle;
25
+ protected getSvgExport(serializedSvgElement: string, svgElement: SVGElement, root: GModelRoot, request?: RequestAction<ExportSvgAction>): string;
26
+ protected getSvgExportStyle(svgElement: SVGElement, root: GModelRoot, request?: RequestAction<ExportSvgAction>): string | undefined;
5
27
  }
6
28
  //# sourceMappingURL=glsp-svg-exporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glsp-svg-exporter.d.ts","sourceRoot":"","sources":["../../../src/features/export/glsp-svg-exporter.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEhG,qBACa,eAAgB,SAAQ,WAAW;IACnC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;IAuBlF,SAAS,CAAC,cAAc,IAAI,aAAa,GAAG,IAAI;CAKnD"}
1
+ {"version":3,"file":"glsp-svg-exporter.d.ts","sourceRoot":"","sources":["../../../src/features/export/glsp-svg-exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIhG,qBACa,eAAgB,SAAQ,WAAW;IACnC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;cAa9D,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM;IAWjF,SAAS,CAAC,cAAc,IAAI,aAAa,GAAG,IAAI;IAMhD,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,aAAa;cAI9G,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI;IAalG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI;IA0BxF,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,qBAAqB;IAK3E,SAAS,CAAC,YAAY,CAClB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GACzC,MAAM;IAKT,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,MAAM,GAAG,SAAS;CAUtI"}
@@ -22,35 +22,93 @@ exports.GLSPSvgExporter = void 0;
22
22
  *
23
23
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
24
24
  ********************************************************************************/
25
+ const sprotty_1 = require("@eclipse-glsp/sprotty");
25
26
  const inversify_1 = require("inversify");
26
27
  const uuid_1 = require("uuid");
27
- const sprotty_1 = require("@eclipse-glsp/sprotty");
28
28
  let GLSPSvgExporter = class GLSPSvgExporter extends sprotty_1.SvgExporter {
29
- export(root, _request) {
29
+ export(root, request) {
30
30
  if (typeof document !== 'undefined') {
31
- const svgElement = this.findSvgElement();
31
+ let svgElement = this.findSvgElement();
32
32
  if (svgElement) {
33
- // createSvg requires the svg to have a non-empty id, so we generate one if necessary
34
- const originalId = svgElement.id;
35
- try {
36
- svgElement.id = originalId || (0, uuid_1.v4)();
37
- // provide generated svg code with respective sizing for proper viewing in browser and remove undesired border
38
- const bounds = this.getBounds(root);
39
- const svg = this.createSvg(svgElement, root).replace('style="', `style="width: ${bounds.width}px !important;height: ${bounds.height}px !important;border: none !important;`);
40
- // do not give request/response id here as otherwise the action is treated as an unrequested response
41
- this.actionDispatcher.dispatch(sprotty_1.ExportSvgAction.create(svg));
42
- }
43
- finally {
44
- svgElement.id = originalId;
45
- }
33
+ svgElement = this.prepareSvgElement(svgElement, root, request);
34
+ const serializedSvg = this.createSvg(svgElement, root);
35
+ const svgExport = this.getSvgExport(serializedSvg, svgElement, root, request);
36
+ // do not give request/response id here as otherwise the action is treated as an unrequested response
37
+ this.actionDispatcher.dispatch(sprotty_1.ExportSvgAction.create(svgExport));
46
38
  }
47
39
  }
48
40
  }
41
+ createSvg(svgElement, root) {
42
+ // createSvg requires the svg to have a non-empty id, so we generate one if necessary
43
+ const originalId = svgElement.id;
44
+ try {
45
+ svgElement.id = originalId || (0, uuid_1.v4)();
46
+ return super.createSvg(svgElement, root);
47
+ }
48
+ finally {
49
+ svgElement.id = originalId;
50
+ }
51
+ }
49
52
  findSvgElement() {
50
53
  const div = document.getElementById(this.options.hiddenDiv);
51
54
  // search for first svg element as hierarchy within Sprotty might change
52
55
  return div && div.querySelector('svg');
53
56
  }
57
+ prepareSvgElement(svgElement, root, request) {
58
+ return svgElement;
59
+ }
60
+ copyStyles(source, target, skippedProperties) {
61
+ this.copyStyle(source, target, skippedProperties);
62
+ // IE doesn't retrun anything on source.children
63
+ for (let i = 0; i < source.childNodes.length; ++i) {
64
+ const sourceChild = source.childNodes[i];
65
+ const targetChild = target.childNodes[i];
66
+ if (sourceChild instanceof Element) {
67
+ this.copyStyles(sourceChild, targetChild, []);
68
+ }
69
+ }
70
+ }
71
+ copyStyle(source, target, skippedProperties) {
72
+ const sourceStyle = getComputedStyle(source);
73
+ const targetStyle = getComputedStyle(target);
74
+ let style = '';
75
+ for (let i = 0; i < sourceStyle.length; i++) {
76
+ const propertyName = sourceStyle[i];
77
+ if (!skippedProperties.includes(propertyName)) {
78
+ const propertyValue = sourceStyle.getPropertyValue(propertyName);
79
+ const propertyPriority = sourceStyle.getPropertyPriority(propertyName);
80
+ if (targetStyle.getPropertyValue(propertyName) !== propertyValue) {
81
+ if (this.shouldUpdateStyle(target)) {
82
+ // rather set the property directly on the element to keep other values intact
83
+ target.style.setProperty(propertyName, propertyValue);
84
+ }
85
+ else {
86
+ // collect all properties to set them at once
87
+ style += `${propertyName}: ${propertyValue}${propertyPriority ? ' !' + propertyPriority : ''}; `;
88
+ }
89
+ }
90
+ }
91
+ }
92
+ if (style !== '') {
93
+ target.setAttribute('style', style.trim());
94
+ }
95
+ }
96
+ shouldUpdateStyle(element) {
97
+ // we want to simply update the style of elements and keep other values intact if they have a style property
98
+ return 'tagName' in element && 'style' in element;
99
+ }
100
+ getSvgExport(serializedSvgElement, svgElement, root, request) {
101
+ const svgExportStyle = this.getSvgExportStyle(svgElement, root, request);
102
+ return svgExportStyle ? serializedSvgElement.replace('style="', `style="${svgExportStyle}`) : serializedSvgElement;
103
+ }
104
+ getSvgExportStyle(svgElement, root, request) {
105
+ // provide generated svg code with respective sizing for proper viewing in browser and remove undesired border
106
+ const bounds = this.getBounds(root);
107
+ return (`width: ${bounds.width}px !important;` +
108
+ `height: ${bounds.height}px !important;` +
109
+ 'border: none !important;' +
110
+ 'cursor: default !important;');
111
+ }
54
112
  };
55
113
  exports.GLSPSvgExporter = GLSPSvgExporter;
56
114
  exports.GLSPSvgExporter = GLSPSvgExporter = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"glsp-svg-exporter.js","sourceRoot":"","sources":["../../../src/features/export/glsp-svg-exporter.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAAuC;AACvC,+BAAkC;AAClC,mDAAgG;AAGzF,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,qBAAW;IACnC,MAAM,CAAC,IAAgB,EAAE,QAAyC;QACvE,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,IAAI,UAAU,EAAE,CAAC;gBACb,qFAAqF;gBACrF,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACD,UAAU,CAAC,EAAE,GAAG,UAAU,IAAI,IAAA,SAAI,GAAE,CAAC;oBACrC,8GAA8G;oBAC9G,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACpC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,OAAO,CAChD,SAAS,EACT,iBAAiB,MAAM,CAAC,KAAK,yBAAyB,MAAM,CAAC,MAAM,wCAAwC,CAC9G,CAAC;oBACF,qGAAqG;oBACrG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,yBAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,CAAC;wBAAS,CAAC;oBACP,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAES,cAAc;QACpB,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5D,wEAAwE;QACxE,OAAO,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;CACJ,CAAA;AA7BY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,sBAAU,GAAE;GACA,eAAe,CA6B3B"}
1
+ {"version":3,"file":"glsp-svg-exporter.js","sourceRoot":"","sources":["../../../src/features/export/glsp-svg-exporter.ts"],"names":[],"mappings":"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"}
@@ -17,12 +17,6 @@ import { GModelElement, Point } from '@eclipse-glsp/sprotty';
17
17
  import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
18
18
  import { ContainerElement } from '../../hints/model';
19
19
  import { ChangeBoundsManager } from '../change-bounds/change-bounds-manager';
20
- export interface TrackedInsert {
21
- elementTypeId: string;
22
- location: Point;
23
- container?: GModelElement;
24
- valid: boolean;
25
- }
26
20
  export interface InsertOptions extends Record<string, unknown> {
27
21
  /** Flag to indicate whether the location within a container needs to be valid. Default: false */
28
22
  validateLocationInContainer?: boolean;
@@ -32,6 +26,13 @@ export interface InsertOptions extends Record<string, unknown> {
32
26
  evt?: MouseEvent;
33
27
  }
34
28
  export declare const DEFAULT_INSERT_OPTIONS: InsertOptions;
29
+ export interface TrackedInsert {
30
+ elementTypeId: string;
31
+ location: Point;
32
+ container?: GModelElement;
33
+ valid: boolean;
34
+ options: InsertOptions;
35
+ }
35
36
  export declare class ContainerManager {
36
37
  protected readonly changeBoundsManager: ChangeBoundsManager;
37
38
  insert(proxy: GModelElement, location: Point, elementTypeId: string, opts?: Partial<InsertOptions>): TrackedInsert;
@@ -1 +1 @@
1
- {"version":3,"file":"container-manager.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/container-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,aAAa,EAAE,KAAK,EAA0B,MAAM,uBAAuB,CAAC;AAGrF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAiB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,MAAM,WAAW,aAAa;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,iGAAiG;IACjG,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,2EAA2E;IAC3E,GAAG,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,eAAO,MAAM,sBAAsB,EAAE,aAEpC,CAAC;AAEF,qBACa,gBAAgB;IACI,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAEzF,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IAWlH,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS;IAOlG,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,eAAe;CASvI"}
1
+ {"version":3,"file":"container-manager.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/container-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,aAAa,EAAE,KAAK,EAA0B,MAAM,uBAAuB,CAAC;AAGrF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAiB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAE7E,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,iGAAiG;IACjG,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,2EAA2E;IAC3E,GAAG,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,eAAO,MAAM,sBAAsB,EAAE,aAEpC,CAAC;AAEF,MAAM,WAAW,aAAa;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;CAC1B;AAED,qBACa,gBAAgB;IACI,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAEzF,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IAWlH,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS;IAOlG,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,eAAe;CASvI"}
@@ -43,7 +43,7 @@ let ContainerManager = class ContainerManager {
43
43
  // we need to check whether the location is valid either because we do not have a container or the option is set
44
44
  valid = (_a = opts === null || opts === void 0 ? void 0 : opts.validLocationOverwrite) !== null && _a !== void 0 ? _a : this.changeBoundsManager.hasValidPosition(proxy, location);
45
45
  }
46
- return { elementTypeId, container, location, valid };
46
+ return { elementTypeId, container, location, valid, options };
47
47
  }
48
48
  findContainer(location, ctx, evt) {
49
49
  // reverse order of children to find the innermost, top-rendered containers first
@@ -1 +1 @@
1
- {"version":3,"file":"container-manager.js","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/container-manager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;AAElF,mDAAqF;AACrF,yCAA+C;AAC/C,sEAAyG;AAEzG,6CAAoE;AACpE,kFAA6E;AAmBhE,QAAA,sBAAsB,GAAkB;IACjD,2BAA2B,EAAE,KAAK;CACrC,CAAC;AAGK,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAGzB,MAAM,CAAC,KAAoB,EAAE,QAAe,EAAE,aAAqB,EAAE,IAA6B;;QAC9F,MAAM,OAAO,mCAAQ,8BAAsB,GAAK,IAAI,CAAE,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC;QACjE,IAAI,KAAK,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,2BAA2B,CAAC,EAAE,CAAC;YAC/D,gHAAgH;YAChH,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,sBAAsB,mCAAI,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvG,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACzD,CAAC;IAED,aAAa,CAAC,QAAe,EAAE,GAAkB,EAAE,GAAgB;QAC/D,iFAAiF;QACjF,OAAO,IAAA,gCAAsB,EAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;aAC5C,OAAO,EAAE;aACT,IAAI,CAAC,OAAO,CAAC,EAAE,WAAC,OAAA,IAAA,qBAAa,EAAC,OAAO,CAAC,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,QAAQ,CAAC,gCAAiB,CAAC,CAAA,CAAA,EAAA,CAAiC,CAAC;IACrI,CAAC;IAED,iBAAiB,CAAC,QAAyB,EAAE,aAA4B,EAAE,GAAmB,EAAE,KAAkB;QAC9G,kBAAkB;QAClB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACvB,QAAQ,CAAC,GAAG,CAAC,IAAA,mCAAoB,EAAC,wBAAS,CAAC,qBAAqB,CAAC,EAAE,IAAA,mCAAoB,EAAC,wBAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACjH,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,GAAG,CAAC,IAAA,mCAAoB,EAAC,wBAAS,CAAC,aAAa,CAAC,EAAE,IAAA,mCAAoB,GAAE,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAA;AA9BY,4CAAgB;AACuB;IAA/C,IAAA,kBAAM,EAAC,2CAAmB,CAAC;8BAAyC,2CAAmB;6DAAC;2BADhF,gBAAgB;IAD5B,IAAA,sBAAU,GAAE;GACA,gBAAgB,CA8B5B"}
1
+ {"version":3,"file":"container-manager.js","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/container-manager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;AAElF,mDAAqF;AACrF,yCAA+C;AAC/C,sEAAyG;AAEzG,6CAAoE;AACpE,kFAA6E;AAahE,QAAA,sBAAsB,GAAkB;IACjD,2BAA2B,EAAE,KAAK;CACrC,CAAC;AAWK,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAGzB,MAAM,CAAC,KAAoB,EAAE,QAAe,EAAE,aAAqB,EAAE,IAA6B;;QAC9F,MAAM,OAAO,mCAAQ,8BAAsB,GAAK,IAAI,CAAE,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC;QACjE,IAAI,KAAK,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,2BAA2B,CAAC,EAAE,CAAC;YAC/D,gHAAgH;YAChH,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,sBAAsB,mCAAI,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvG,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAClE,CAAC;IAED,aAAa,CAAC,QAAe,EAAE,GAAkB,EAAE,GAAgB;QAC/D,iFAAiF;QACjF,OAAO,IAAA,gCAAsB,EAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;aAC5C,OAAO,EAAE;aACT,IAAI,CAAC,OAAO,CAAC,EAAE,WAAC,OAAA,IAAA,qBAAa,EAAC,OAAO,CAAC,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,QAAQ,CAAC,gCAAiB,CAAC,CAAA,CAAA,EAAA,CAAiC,CAAC;IACrI,CAAC;IAED,iBAAiB,CAAC,QAAyB,EAAE,aAA4B,EAAE,GAAmB,EAAE,KAAkB;QAC9G,kBAAkB;QAClB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACvB,QAAQ,CAAC,GAAG,CAAC,IAAA,mCAAoB,EAAC,wBAAS,CAAC,qBAAqB,CAAC,EAAE,IAAA,mCAAoB,EAAC,wBAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACjH,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,GAAG,CAAC,IAAA,mCAAoB,EAAC,wBAAS,CAAC,aAAa,CAAC,EAAE,IAAA,mCAAoB,GAAE,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAA;AA9BY,4CAAgB;AACuB;IAA/C,IAAA,kBAAM,EAAC,2CAAmB,CAAC;8BAAyC,2CAAmB;6DAAC;2BADhF,gBAAgB;IAD5B,IAAA,sBAAU,GAAE;GACA,gBAAgB,CA8B5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"insert-indicator.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/insert-indicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAgD,MAAM,uBAAuB,CAAC;AAEzH,OAAO,EAAE,SAAS,EAAe,MAAM,4BAA4B,CAAC;AAEpE,eAAO,MAAM,UAAU,WAAW,CAAC;AAEnC,qBAAa,eAAgB,SAAQ,KAAM,YAAW,SAAS;IAC3D,gBAAyB,gBAAgB,WAA6C;IAEtF,MAAM,CAAC,IAAI,SAA2B;IAE7B,EAAE,EAAE,MAAM,CAAU;IACpB,IAAI,EAAE,MAAM,CAAwB;IACpC,QAAQ,CAAC,EAAE,UAAU,CAAsD;IAC3E,UAAU,EAAE,MAAM,EAAE,CAAwC;IAC5D,IAAI,EAAE,SAAS,CAA2B;IACnD,IAAI,EAAE,IAAI,CAAM;gBAEJ,MAAM,CAAC,EAAE,MAAM;CAM9B"}
1
+ {"version":3,"file":"insert-indicator.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/insert-indicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAgD,MAAM,uBAAuB,CAAC;AAEzH,OAAO,EAAE,SAAS,EAAe,MAAM,4BAA4B,CAAC;AAEpE,eAAO,MAAM,UAAU,WAAW,CAAC;AAEnC,qBAAa,eAAgB,SAAQ,KAAM,YAAW,SAAS;IAC3D,gBAAyB,gBAAgB,WAA6C;IAEtF,MAAM,CAAC,IAAI,SAA2B;IAE7B,EAAE,EAAE,MAAM,CAAU;IACpB,IAAI,EAAE,MAAM,CAAwB;IACpC,QAAQ,CAAC,EAAE,UAAU,CAAsD;IAC3E,UAAU,EAAE,MAAM,EAAE,CAAwC;IAC5D,IAAI,EAAE,SAAS,CAAkB;IAC1C,IAAI,EAAE,IAAI,CAAM;gBAEJ,MAAM,CAAC,EAAE,MAAM;CAM9B"}
@@ -27,7 +27,7 @@ class InsertIndicator extends sprotty_1.GNode {
27
27
  this.type = InsertIndicator.TYPE;
28
28
  this.features = (0, sprotty_1.createFeatureSet)(InsertIndicator.DEFAULT_FEATURES);
29
29
  this.cssClasses = ['insert-indicator', 'sprotty-node'];
30
- this.size = { width: 1, height: 1 };
30
+ this.size = sprotty_1.Dimension.ZERO;
31
31
  this.args = {};
32
32
  if (length) {
33
33
  this.args = { [exports.ARG_LENGTH]: length };
@@ -1 +1 @@
1
- {"version":3,"file":"insert-indicator.js","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/insert-indicator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAElF,mDAAyH;AACzH,+BAAkC;AAClC,6DAAoE;AAEvD,QAAA,UAAU,GAAG,QAAQ,CAAC;AAEnC,MAAa,eAAgB,SAAQ,eAAK;IAYtC,YAAY,MAAe;QACvB,KAAK,EAAE,CAAC;QARH,OAAE,GAAW,IAAA,SAAI,GAAE,CAAC;QACpB,SAAI,GAAW,eAAe,CAAC,IAAI,CAAC;QACpC,aAAQ,GAAgB,IAAA,0BAAgB,EAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC3E,eAAU,GAAa,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;QAC5D,SAAI,GAAc,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACnD,SAAI,GAAS,EAAE,CAAC;QAIZ,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACzC,CAAC;IACL,CAAC;;AAjBL,0CAkBC;AAjB4B,gCAAgB,GAAG,CAAC,uBAAa,EAAE,qBAAW,EAAE,0BAAW,CAAC,AAA5C,CAA6C;AAE/E,oBAAI,GAAG,uBAAuB,AAA1B,CAA2B"}
1
+ {"version":3,"file":"insert-indicator.js","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/insert-indicator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAElF,mDAAyH;AACzH,+BAAkC;AAClC,6DAAoE;AAEvD,QAAA,UAAU,GAAG,QAAQ,CAAC;AAEnC,MAAa,eAAgB,SAAQ,eAAK;IAYtC,YAAY,MAAe;QACvB,KAAK,EAAE,CAAC;QARH,OAAE,GAAW,IAAA,SAAI,GAAE,CAAC;QACpB,SAAI,GAAW,eAAe,CAAC,IAAI,CAAC;QACpC,aAAQ,GAAgB,IAAA,0BAAgB,EAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC3E,eAAU,GAAa,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;QAC5D,SAAI,GAAc,mBAAS,CAAC,IAAI,CAAC;QAC1C,SAAI,GAAS,EAAE,CAAC;QAIZ,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACzC,CAAC;IACL,CAAC;;AAjBL,0CAkBC;AAjB4B,gCAAgB,GAAG,CAAC,uBAAa,EAAE,qBAAW,EAAE,0BAAW,CAAC,AAA5C,CAA6C;AAE/E,oBAAI,GAAG,uBAAuB,AAA1B,CAA2B"}
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, Disposable, GModelElement, GhostElement, IModelFactory, TriggerNodeCreationAction } from '@eclipse-glsp/sprotty';
16
+ import { Action, Args, Disposable, GModelElement, GhostElement, IModelFactory, TriggerNodeCreationAction } from '@eclipse-glsp/sprotty';
17
17
  import '../../../../css/ghost-element.css';
18
18
  import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
19
19
  import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
@@ -51,7 +51,8 @@ export declare class NodeCreationToolMouseListener extends DragAwareMouseListene
51
51
  protected ghostElementId: string;
52
52
  constructor(triggerAction: TriggerNodeCreationAction, tool: NodeCreationTool, ghostElement: GhostElement);
53
53
  get elementTypeId(): string;
54
- nonDraggingMouseUp(target: GModelElement, event: MouseEvent): Action[];
54
+ nonDraggingMouseUp(ctx: GModelElement, event: MouseEvent): Action[];
55
+ protected getCreateNodeOperationArgs(insert: TrackedInsert, ctx: GModelElement, event: MouseEvent): Args | undefined;
55
56
  protected createGhostElement(ghostElement: GhostElement): string;
56
57
  protected getGhostElement(ctx: GModelElement, event: MouseEvent): MoveableElement | undefined;
57
58
  protected getTrackedInsert(ctx: GModelElement, event: MouseEvent): TrackedInsert;
@@ -1 +1 @@
1
- {"version":3,"file":"node-creation-tool.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/node-creation-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,MAAM,EAEN,UAAU,EAEV,aAAa,EACb,YAAY,EACZ,aAAa,EAGb,yBAAyB,EAG5B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,oCAAoC,EAAE,eAAe,EAAE,MAAM,iEAAiE,CAAC;AAExI,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGtE,qBACa,gBAAiB,SAAQ,gBAAgB,CAAC,yBAAyB,CAAE,YAAW,eAAe;IACxG,MAAM,CAAC,EAAE,SAAsB;IAE/B,SAAS,CAAC,eAAe,sCAAgC;IAE5B,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACrD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACzC,YAAY,EAAE,aAAa,CAAC;IAEzD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,QAAQ,IAAI,IAAI;IAOhB,SAAS,CAAC,qBAAqB,IAAI,aAAa;IAIhD,SAAS,CAAC,yBAAyB,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU;IAU5G,SAAS,CAAC,0BAA0B,CAAC,YAAY,EAAE,YAAY,GAAG,UAAU;IAK5E,SAAS,CAAC,gCAAgC,IAAI,eAAe;CAGhE;AAED,qBAAa,0BAA2B,SAAQ,oCAAoC;IAG5E,SAAS,CAAC,aAAa,EAAE,MAAM;cACZ,IAAI,EAAE,gBAAgB;gBAFzC,SAAS,EAAE,MAAM,EACP,aAAa,EAAE,MAAM,EACZ,IAAI,EAAE,gBAAgB,EACzC,cAAc,GAAE,UAAU,GAAG,QAAqB;cAKnC,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;CAQrG;AAED,qBAAa,6BAA8B,SAAQ,sBAAsB;IAMjE,SAAS,CAAC,aAAa,EAAE,yBAAyB;IAClD,SAAS,CAAC,IAAI,EAAE,gBAAgB;IAChC,SAAS,CAAC,YAAY,EAAE,YAAY;IAPxC,SAAS,CAAC,cAAc,EAAE,eAAe,CAAC;IAC1C,SAAS,CAAC,oBAAoB,EAAE,eAAe,CAAC;IAChD,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;gBAGnB,aAAa,EAAE,yBAAyB,EACxC,IAAI,EAAE,gBAAgB,EACtB,YAAY,EAAE,YAAY;IASxC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEQ,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IA6B/E,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM;IAUhE,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS;IAK7F,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa;IAQhF,SAAS,CAAC,yBAAyB,IAAI,IAAI;IAIlC,OAAO,IAAI,IAAI;CAI3B"}
1
+ {"version":3,"file":"node-creation-tool.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/node-creation-tool.ts"],"names":[],"mappings":"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"}
@@ -115,15 +115,15 @@ class NodeCreationToolMouseListener extends drag_aware_mouse_listener_1.DragAwar
115
115
  get elementTypeId() {
116
116
  return this.triggerAction.elementTypeId;
117
117
  }
118
- nonDraggingMouseUp(target, event) {
118
+ nonDraggingMouseUp(ctx, event) {
119
119
  var _a;
120
120
  const result = [];
121
- const insert = this.getTrackedInsert(target, event);
121
+ const insert = this.getTrackedInsert(ctx, event);
122
122
  if (insert.valid) {
123
123
  result.push(sprotty_1.CreateNodeOperation.create(this.elementTypeId, {
124
124
  location: insert.location,
125
125
  containerId: (_a = insert.container) === null || _a === void 0 ? void 0 : _a.id,
126
- args: this.triggerAction.args
126
+ args: this.getCreateNodeOperationArgs(insert, ctx, event)
127
127
  }));
128
128
  }
129
129
  if ((0, sprotty_1.isCtrlOrCmd)(event)) {
@@ -141,6 +141,15 @@ class NodeCreationToolMouseListener extends drag_aware_mouse_listener_1.DragAwar
141
141
  result.push(tool_1.EnableDefaultToolsAction.create());
142
142
  return result;
143
143
  }
144
+ getCreateNodeOperationArgs(insert, ctx, event) {
145
+ let args = Object.assign({}, this.triggerAction.args);
146
+ const ghostElement = this.getGhostElement(ctx, event);
147
+ if (ghostElement) {
148
+ const ghostDimensions = (0, sprotty_1.isBoundsAware)(ghostElement) ? sprotty_1.Bounds.dimension(ghostElement.bounds) : sprotty_1.Dimension.ZERO;
149
+ args = Object.assign(Object.assign({}, args), { 'ghost-x': ghostElement.position.x, 'ghost-y': ghostElement.position.y, 'ghost-width': ghostDimensions.width, 'ghost-height': ghostDimensions.height });
150
+ }
151
+ return args;
152
+ }
144
153
  createGhostElement(ghostElement) {
145
154
  const templates = [ghostElement.template];
146
155
  this.ghostElementFeedback.add(add_template_element_1.AddTemplateElementsAction.create({ templates, addClasses: [css_feedback_1.CSS_HIDDEN, css_feedback_1.CSS_GHOST_ELEMENT] }), remove_template_element_1.RemoveTemplateElementsAction.create({ templates }));
@@ -154,7 +163,7 @@ class NodeCreationToolMouseListener extends drag_aware_mouse_listener_1.DragAwar
154
163
  getTrackedInsert(ctx, event) {
155
164
  const ghostElement = this.getGhostElement(ctx, event);
156
165
  if (!ghostElement) {
157
- return { elementTypeId: this.elementTypeId, location: sprotty_1.Point.ORIGIN, valid: false };
166
+ return { elementTypeId: this.elementTypeId, location: sprotty_1.Point.ORIGIN, valid: false, options: { evt: event } };
158
167
  }
159
168
  return this.tool.containerManager.insert(ghostElement, ghostElement.position, this.elementTypeId, { evt: event });
160
169
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node-creation-tool.js","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/node-creation-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-creation-tool.js","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/node-creation-tool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-glsp/client",
3
- "version": "2.2.0-next.341+65b68e3",
3
+ "version": "2.2.0-next.343+fce3a6a",
4
4
  "description": "A sprotty-based client for GLSP",
5
5
  "keywords": [
6
6
  "eclipse",
@@ -46,7 +46,7 @@
46
46
  "watch": "tsc -w"
47
47
  },
48
48
  "dependencies": {
49
- "@eclipse-glsp/sprotty": "2.2.0-next.341+65b68e3",
49
+ "@eclipse-glsp/sprotty": "2.2.0-next.343+fce3a6a",
50
50
  "autocompleter": "^9.1.0",
51
51
  "file-saver": "^2.0.5",
52
52
  "lodash": "4.17.21"
@@ -61,5 +61,5 @@
61
61
  "publishConfig": {
62
62
  "access": "public"
63
63
  },
64
- "gitHead": "65b68e37b8d18852c6a8a4a81f5db5f716ef926b"
64
+ "gitHead": "fce3a6a6ce57c215d995e40c1d5eaebdc3c36b08"
65
65
  }
@@ -54,10 +54,11 @@ export class MouseTrackingElementPositionListener extends DragAwareMouseListener
54
54
  if (!element) {
55
55
  return [];
56
56
  }
57
- if (!this.tracker.isTracking()) {
57
+ const isInitializing = !this.tracker.isTracking();
58
+ if (isInitializing) {
58
59
  this.initialize(element, ctx, event);
59
60
  }
60
- const move = this.tracker.moveElements([element], { snap: event, restrict: event });
61
+ const move = this.tracker.moveElements([element], { snap: event, restrict: event, skipStatic: !isInitializing });
61
62
  const elementMove = move.elementMoves[0];
62
63
  if (!elementMove) {
63
64
  return [];
@@ -13,38 +13,108 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { ExportSvgAction, GModelRoot, RequestAction, SvgExporter } from '@eclipse-glsp/sprotty';
16
17
  import { injectable } from 'inversify';
17
18
  import { v4 as uuid } from 'uuid';
18
- import { ExportSvgAction, RequestAction, GModelRoot, SvgExporter } from '@eclipse-glsp/sprotty';
19
19
 
20
20
  @injectable()
21
21
  export class GLSPSvgExporter extends SvgExporter {
22
- override export(root: GModelRoot, _request?: RequestAction<ExportSvgAction>): void {
22
+ override export(root: GModelRoot, request?: RequestAction<ExportSvgAction>): void {
23
23
  if (typeof document !== 'undefined') {
24
- const svgElement = this.findSvgElement();
24
+ let svgElement = this.findSvgElement();
25
25
  if (svgElement) {
26
- // createSvg requires the svg to have a non-empty id, so we generate one if necessary
27
- const originalId = svgElement.id;
28
- try {
29
- svgElement.id = originalId || uuid();
30
- // provide generated svg code with respective sizing for proper viewing in browser and remove undesired border
31
- const bounds = this.getBounds(root);
32
- const svg = this.createSvg(svgElement, root).replace(
33
- 'style="',
34
- `style="width: ${bounds.width}px !important;height: ${bounds.height}px !important;border: none !important;`
35
- );
36
- // do not give request/response id here as otherwise the action is treated as an unrequested response
37
- this.actionDispatcher.dispatch(ExportSvgAction.create(svg));
38
- } finally {
39
- svgElement.id = originalId;
40
- }
26
+ svgElement = this.prepareSvgElement(svgElement, root, request);
27
+ const serializedSvg = this.createSvg(svgElement, root);
28
+ const svgExport = this.getSvgExport(serializedSvg, svgElement, root, request);
29
+ // do not give request/response id here as otherwise the action is treated as an unrequested response
30
+ this.actionDispatcher.dispatch(ExportSvgAction.create(svgExport));
41
31
  }
42
32
  }
43
33
  }
44
34
 
35
+ protected override createSvg(svgElement: SVGSVGElement, root: GModelRoot): string {
36
+ // createSvg requires the svg to have a non-empty id, so we generate one if necessary
37
+ const originalId = svgElement.id;
38
+ try {
39
+ svgElement.id = originalId || uuid();
40
+ return super.createSvg(svgElement, root);
41
+ } finally {
42
+ svgElement.id = originalId;
43
+ }
44
+ }
45
+
45
46
  protected findSvgElement(): SVGSVGElement | null {
46
47
  const div = document.getElementById(this.options.hiddenDiv);
47
48
  // search for first svg element as hierarchy within Sprotty might change
48
49
  return div && div.querySelector('svg');
49
50
  }
51
+
52
+ protected prepareSvgElement(svgElement: SVGSVGElement, root: GModelRoot, request?: RequestAction<ExportSvgAction>): SVGSVGElement {
53
+ return svgElement;
54
+ }
55
+
56
+ protected override copyStyles(source: Element, target: Element, skippedProperties: string[]): void {
57
+ this.copyStyle(source, target, skippedProperties);
58
+
59
+ // IE doesn't retrun anything on source.children
60
+ for (let i = 0; i < source.childNodes.length; ++i) {
61
+ const sourceChild = source.childNodes[i];
62
+ const targetChild = target.childNodes[i];
63
+ if (sourceChild instanceof Element) {
64
+ this.copyStyles(sourceChild, targetChild as Element, []);
65
+ }
66
+ }
67
+ }
68
+
69
+ protected copyStyle(source: Element, target: Element, skippedProperties: string[]): void {
70
+ const sourceStyle = getComputedStyle(source);
71
+ const targetStyle = getComputedStyle(target);
72
+
73
+ let style = '';
74
+ for (let i = 0; i < sourceStyle.length; i++) {
75
+ const propertyName = sourceStyle[i];
76
+ if (!skippedProperties.includes(propertyName)) {
77
+ const propertyValue = sourceStyle.getPropertyValue(propertyName);
78
+ const propertyPriority = sourceStyle.getPropertyPriority(propertyName);
79
+ if (targetStyle.getPropertyValue(propertyName) !== propertyValue) {
80
+ if (this.shouldUpdateStyle(target)) {
81
+ // rather set the property directly on the element to keep other values intact
82
+ target.style.setProperty(propertyName, propertyValue);
83
+ } else {
84
+ // collect all properties to set them at once
85
+ style += `${propertyName}: ${propertyValue}${propertyPriority ? ' !' + propertyPriority : ''}; `;
86
+ }
87
+ }
88
+ }
89
+ }
90
+ if (style !== '') {
91
+ target.setAttribute('style', style.trim());
92
+ }
93
+ }
94
+
95
+ protected shouldUpdateStyle(element: any): element is ElementCSSInlineStyle {
96
+ // we want to simply update the style of elements and keep other values intact if they have a style property
97
+ return 'tagName' in element && 'style' in element;
98
+ }
99
+
100
+ protected getSvgExport(
101
+ serializedSvgElement: string,
102
+ svgElement: SVGElement,
103
+ root: GModelRoot,
104
+ request?: RequestAction<ExportSvgAction>
105
+ ): string {
106
+ const svgExportStyle = this.getSvgExportStyle(svgElement, root, request);
107
+ return svgExportStyle ? serializedSvgElement.replace('style="', `style="${svgExportStyle}`) : serializedSvgElement;
108
+ }
109
+
110
+ protected getSvgExportStyle(svgElement: SVGElement, root: GModelRoot, request?: RequestAction<ExportSvgAction>): string | undefined {
111
+ // provide generated svg code with respective sizing for proper viewing in browser and remove undesired border
112
+ const bounds = this.getBounds(root);
113
+ return (
114
+ `width: ${bounds.width}px !important;` +
115
+ `height: ${bounds.height}px !important;` +
116
+ 'border: none !important;' +
117
+ 'cursor: default !important;'
118
+ );
119
+ }
50
120
  }
@@ -20,12 +20,6 @@ import { CSS_GHOST_ELEMENT, CursorCSS, cursorFeedbackAction } from '../../../bas
20
20
  import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
21
21
  import { ContainerElement, isContainable } from '../../hints/model';
22
22
  import { ChangeBoundsManager } from '../change-bounds/change-bounds-manager';
23
- export interface TrackedInsert {
24
- elementTypeId: string;
25
- location: Point;
26
- container?: GModelElement;
27
- valid: boolean;
28
- }
29
23
 
30
24
  export interface InsertOptions extends Record<string, unknown> {
31
25
  /** Flag to indicate whether the location within a container needs to be valid. Default: false */
@@ -42,6 +36,14 @@ export const DEFAULT_INSERT_OPTIONS: InsertOptions = {
42
36
  validateLocationInContainer: false
43
37
  };
44
38
 
39
+ export interface TrackedInsert {
40
+ elementTypeId: string;
41
+ location: Point;
42
+ container?: GModelElement;
43
+ valid: boolean;
44
+ options: InsertOptions;
45
+ }
46
+
45
47
  @injectable()
46
48
  export class ContainerManager {
47
49
  @inject(ChangeBoundsManager) protected readonly changeBoundsManager: ChangeBoundsManager;
@@ -54,7 +56,7 @@ export class ContainerManager {
54
56
  // we need to check whether the location is valid either because we do not have a container or the option is set
55
57
  valid = opts?.validLocationOverwrite ?? this.changeBoundsManager.hasValidPosition(proxy, location);
56
58
  }
57
- return { elementTypeId, container, location, valid };
59
+ return { elementTypeId, container, location, valid, options };
58
60
  }
59
61
 
60
62
  findContainer(location: Point, ctx: GModelElement, evt?: MouseEvent): ContainerElement | undefined {
@@ -29,7 +29,7 @@ export class InsertIndicator extends GNode implements ArgsAware {
29
29
  override type: string = InsertIndicator.TYPE;
30
30
  override features?: FeatureSet = createFeatureSet(InsertIndicator.DEFAULT_FEATURES);
31
31
  override cssClasses: string[] = ['insert-indicator', 'sprotty-node'];
32
- override size: Dimension = { width: 1, height: 1 };
32
+ override size: Dimension = Dimension.ZERO;
33
33
  args: Args = {};
34
34
 
35
35
  constructor(length?: number) {
@@ -15,7 +15,10 @@
15
15
  ********************************************************************************/
16
16
  import {
17
17
  Action,
18
+ Args,
19
+ Bounds,
18
20
  CreateNodeOperation,
21
+ Dimension,
19
22
  Disposable,
20
23
  DisposableCollection,
21
24
  GModelElement,
@@ -24,6 +27,7 @@ import {
24
27
  Point,
25
28
  TYPES,
26
29
  TriggerNodeCreationAction,
30
+ isBoundsAware,
27
31
  isCtrlOrCmd,
28
32
  isMoveable
29
33
  } from '@eclipse-glsp/sprotty';
@@ -129,16 +133,16 @@ export class NodeCreationToolMouseListener extends DragAwareMouseListener {
129
133
  return this.triggerAction.elementTypeId;
130
134
  }
131
135
 
132
- override nonDraggingMouseUp(target: GModelElement, event: MouseEvent): Action[] {
136
+ override nonDraggingMouseUp(ctx: GModelElement, event: MouseEvent): Action[] {
133
137
  const result: Action[] = [];
134
138
 
135
- const insert = this.getTrackedInsert(target, event);
139
+ const insert = this.getTrackedInsert(ctx, event);
136
140
  if (insert.valid) {
137
141
  result.push(
138
142
  CreateNodeOperation.create(this.elementTypeId, {
139
143
  location: insert.location,
140
144
  containerId: insert.container?.id,
141
- args: this.triggerAction.args
145
+ args: this.getCreateNodeOperationArgs(insert, ctx, event)
142
146
  })
143
147
  );
144
148
  }
@@ -158,6 +162,22 @@ export class NodeCreationToolMouseListener extends DragAwareMouseListener {
158
162
  return result;
159
163
  }
160
164
 
165
+ protected getCreateNodeOperationArgs(insert: TrackedInsert, ctx: GModelElement, event: MouseEvent): Args | undefined {
166
+ let args = { ...this.triggerAction.args };
167
+ const ghostElement = this.getGhostElement(ctx, event);
168
+ if (ghostElement) {
169
+ const ghostDimensions = isBoundsAware(ghostElement) ? Bounds.dimension(ghostElement.bounds) : Dimension.ZERO;
170
+ args = {
171
+ ...args,
172
+ 'ghost-x': ghostElement.position.x,
173
+ 'ghost-y': ghostElement.position.y,
174
+ 'ghost-width': ghostDimensions.width,
175
+ 'ghost-height': ghostDimensions.height
176
+ };
177
+ }
178
+ return args;
179
+ }
180
+
161
181
  protected createGhostElement(ghostElement: GhostElement): string {
162
182
  const templates = [ghostElement.template];
163
183
  this.ghostElementFeedback.add(
@@ -176,7 +196,7 @@ export class NodeCreationToolMouseListener extends DragAwareMouseListener {
176
196
  protected getTrackedInsert(ctx: GModelElement, event: MouseEvent): TrackedInsert {
177
197
  const ghostElement = this.getGhostElement(ctx, event);
178
198
  if (!ghostElement) {
179
- return { elementTypeId: this.elementTypeId, location: Point.ORIGIN, valid: false };
199
+ return { elementTypeId: this.elementTypeId, location: Point.ORIGIN, valid: false, options: { evt: event } };
180
200
  }
181
201
  return this.tool.containerManager.insert(ghostElement, ghostElement.position, this.elementTypeId, { evt: event });
182
202
  }