@eclipse-glsp/client 2.8.0-next.14 → 2.8.0-next.16

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.
@@ -32,6 +32,7 @@ export declare class GLSPHiddenBoundsUpdater extends HiddenBoundsUpdater {
32
32
  protected getElement2BoundsData(): Map<BoundsAwareModelElement, BoundsDataExt>;
33
33
  decorate(vnode: VNode, element: GModelElement): VNode;
34
34
  postUpdate(cause?: Action): void;
35
+ protected cleanUp(): void;
35
36
  protected focusOnElements(elementIDs: string[]): void;
36
37
  protected expandElementId(id: string, index: ModelIndexImpl, elementIDs: string[]): string[];
37
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"glsp-hidden-bounds-updater.d.ts","sourceRoot":"","sources":["../../../src/features/bounds/glsp-hidden-bounds-updater.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EACH,MAAM,EACN,UAAU,EAEV,kBAAkB,EAIlB,uBAAuB,EAEvB,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EAGjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAqD,MAAM,yBAAyB,CAAC;AAIrH,qBAAa,aAAc,SAAQ,UAAU;IACzC,UAAU,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBACa,uBAAwB,SAAQ,mBAAmB;IACpB,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACrE,SAAS,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAE5E,SAAS,CAAC,aAAa,EAAE,uBAAuB,EAAE,CAAM;IAExD,SAAS,CAAC,qBAAqB,IAAI,GAAG,CAAC,uBAAuB,EAAE,aAAa,CAAC;IAIrE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK;IAQrD,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAuEzC,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IAYrD,SAAS,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAG/F"}
1
+ {"version":3,"file":"glsp-hidden-bounds-updater.d.ts","sourceRoot":"","sources":["../../../src/features/bounds/glsp-hidden-bounds-updater.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EACH,MAAM,EACN,UAAU,EAEV,kBAAkB,EAIlB,uBAAuB,EAEvB,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EAGjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAqD,MAAM,yBAAyB,CAAC;AAIrH,qBAAa,aAAc,SAAQ,UAAU;IACzC,UAAU,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBACa,uBAAwB,SAAQ,mBAAmB;IACpB,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACrE,SAAS,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAE5E,SAAS,CAAC,aAAa,EAAE,uBAAuB,EAAE,CAAM;IAExD,SAAS,CAAC,qBAAqB,IAAI,GAAG,CAAC,uBAAuB,EAAE,aAAa,CAAC;IAIrE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK;IAQrD,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAwEzC,SAAS,CAAC,OAAO,IAAI,IAAI;IAMzB,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IAYrD,SAAS,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAG/F"}
@@ -55,69 +55,77 @@ let GLSPHiddenBoundsUpdater = class GLSPHiddenBoundsUpdater extends sprotty_1.Hi
55
55
  return vnode;
56
56
  }
57
57
  postUpdate(cause) {
58
- if (cause === undefined || cause.kind !== sprotty_1.RequestBoundsAction.KIND) {
59
- return;
60
- }
61
- if (local_bounds_1.LocalRequestBoundsAction.is(cause) && cause.elementIDs) {
62
- this.focusOnElements(cause.elementIDs);
63
- }
64
- // collect bounds and layout data in element2BoundsData
65
- this.getBoundsFromDOM();
66
- this.layouter.layout(this.getElement2BoundsData());
67
- // prepare data for action
68
- const resizes = [];
69
- const alignments = [];
70
- const layoutData = [];
71
- this.getElement2BoundsData().forEach((boundsData, element) => {
72
- if (boundsData.boundsChanged && boundsData.bounds !== undefined) {
73
- const resize = {
74
- elementId: element.id,
75
- newSize: {
76
- width: boundsData.bounds.width,
77
- height: boundsData.bounds.height
78
- }
79
- };
80
- // don't copy position if the element is layouted by the server
81
- if (element instanceof sprotty_1.GChildElement && (0, sprotty_1.isLayoutContainer)(element.parent)) {
82
- resize.newPosition = {
83
- x: boundsData.bounds.x,
84
- y: boundsData.bounds.y
85
- };
86
- }
87
- resizes.push(resize);
58
+ try {
59
+ if (cause === undefined || cause.kind !== sprotty_1.RequestBoundsAction.KIND) {
60
+ return;
88
61
  }
89
- if (boundsData.alignmentChanged && boundsData.alignment !== undefined) {
90
- alignments.push({
91
- elementId: element.id,
92
- newAlignment: boundsData.alignment
93
- });
62
+ if (local_bounds_1.LocalRequestBoundsAction.is(cause) && cause.elementIDs) {
63
+ this.focusOnElements(cause.elementIDs);
94
64
  }
95
- if (layout_data_1.LayoutAware.is(boundsData)) {
96
- layoutData.push({ elementId: element.id, layoutData: boundsData.layoutData });
65
+ // collect bounds and layout data in element2BoundsData
66
+ this.getBoundsFromDOM();
67
+ this.layouter.layout(this.getElement2BoundsData());
68
+ // prepare data for action
69
+ const resizes = [];
70
+ const alignments = [];
71
+ const layoutData = [];
72
+ this.getElement2BoundsData().forEach((boundsData, element) => {
73
+ if (boundsData.boundsChanged && boundsData.bounds !== undefined) {
74
+ const resize = {
75
+ elementId: element.id,
76
+ newSize: {
77
+ width: boundsData.bounds.width,
78
+ height: boundsData.bounds.height
79
+ }
80
+ };
81
+ // don't copy position if the element is layouted by the server
82
+ if (element instanceof sprotty_1.GChildElement && (0, sprotty_1.isLayoutContainer)(element.parent)) {
83
+ resize.newPosition = {
84
+ x: boundsData.bounds.x,
85
+ y: boundsData.bounds.y
86
+ };
87
+ }
88
+ resizes.push(resize);
89
+ }
90
+ if (boundsData.alignmentChanged && boundsData.alignment !== undefined) {
91
+ alignments.push({
92
+ elementId: element.id,
93
+ newAlignment: boundsData.alignment
94
+ });
95
+ }
96
+ if (layout_data_1.LayoutAware.is(boundsData)) {
97
+ layoutData.push({ elementId: element.id, layoutData: boundsData.layoutData });
98
+ }
99
+ });
100
+ const routes = this.element2route.length === 0 ? undefined : this.element2route;
101
+ // prepare and dispatch action
102
+ const responseId = cause.requestId;
103
+ const revision = this.root !== undefined ? this.root.revision : undefined;
104
+ const canvasBounds = this.editorContext.canvasBounds;
105
+ const viewport = this.editorContext.viewportData;
106
+ const computedBoundsAction = sprotty_1.ComputedBoundsAction.create(resizes, {
107
+ revision,
108
+ alignments,
109
+ layoutData,
110
+ routes,
111
+ responseId,
112
+ canvasBounds,
113
+ viewport
114
+ });
115
+ if (local_bounds_1.LocalRequestBoundsAction.is(cause)) {
116
+ local_bounds_1.LocalComputedBoundsAction.mark(computedBoundsAction);
97
117
  }
98
- });
99
- const routes = this.element2route.length === 0 ? undefined : this.element2route;
100
- // prepare and dispatch action
101
- const responseId = cause.requestId;
102
- const revision = this.root !== undefined ? this.root.revision : undefined;
103
- const canvasBounds = this.editorContext.canvasBounds;
104
- const viewport = this.editorContext.viewportData;
105
- const computedBoundsAction = sprotty_1.ComputedBoundsAction.create(resizes, {
106
- revision,
107
- alignments,
108
- layoutData,
109
- routes,
110
- responseId,
111
- canvasBounds,
112
- viewport
113
- });
114
- if (local_bounds_1.LocalRequestBoundsAction.is(cause)) {
115
- local_bounds_1.LocalComputedBoundsAction.mark(computedBoundsAction);
118
+ this.actionDispatcher.dispatch(computedBoundsAction);
119
+ }
120
+ finally {
121
+ // always reset collected data so hidden renderings with other causes (e.g. exports/failures) do not leak into the next run
122
+ this.cleanUp();
116
123
  }
117
- this.actionDispatcher.dispatch(computedBoundsAction);
118
- // cleanup
124
+ }
125
+ cleanUp() {
119
126
  this.getElement2BoundsData().clear();
120
127
  this.element2route = [];
128
+ this.root = undefined;
121
129
  }
122
130
  focusOnElements(elementIDs) {
123
131
  const data = this.getElement2BoundsData();
@@ -1 +1 @@
1
- {"version":3,"file":"glsp-hidden-bounds-updater.js","sourceRoot":"","sources":["../../../src/features/bounds/glsp-hidden-bounds-updater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"glsp-hidden-bounds-updater.js","sourceRoot":"","sources":["../../../src/features/bounds/glsp-hidden-bounds-updater.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.8.0-next.14",
3
+ "version": "2.8.0-next.16",
4
4
  "description": "A sprotty-based client for GLSP",
5
5
  "keywords": [
6
6
  "eclipse",
@@ -44,7 +44,7 @@
44
44
  "file-saver": "^2.0.5",
45
45
  "snabbdom": "~3.5.1",
46
46
  "vscode-jsonrpc": "8.2.0",
47
- "@eclipse-glsp/sprotty": "2.8.0-next.14"
47
+ "@eclipse-glsp/sprotty": "2.8.0-next.16"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@types/file-saver": "^2.0.5"
@@ -67,74 +67,81 @@ export class GLSPHiddenBoundsUpdater extends HiddenBoundsUpdater {
67
67
  }
68
68
 
69
69
  override postUpdate(cause?: Action): void {
70
- if (cause === undefined || cause.kind !== RequestBoundsAction.KIND) {
71
- return;
72
- }
70
+ try {
71
+ if (cause === undefined || cause.kind !== RequestBoundsAction.KIND) {
72
+ return;
73
+ }
73
74
 
74
- if (LocalRequestBoundsAction.is(cause) && cause.elementIDs) {
75
- this.focusOnElements(cause.elementIDs);
76
- }
75
+ if (LocalRequestBoundsAction.is(cause) && cause.elementIDs) {
76
+ this.focusOnElements(cause.elementIDs);
77
+ }
77
78
 
78
- // collect bounds and layout data in element2BoundsData
79
- this.getBoundsFromDOM();
80
- this.layouter.layout(this.getElement2BoundsData());
79
+ // collect bounds and layout data in element2BoundsData
80
+ this.getBoundsFromDOM();
81
+ this.layouter.layout(this.getElement2BoundsData());
81
82
 
82
- // prepare data for action
83
- const resizes: ElementAndBounds[] = [];
84
- const alignments: ElementAndAlignment[] = [];
85
- const layoutData: ElementAndLayoutData[] = [];
86
- this.getElement2BoundsData().forEach((boundsData, element) => {
87
- if (boundsData.boundsChanged && boundsData.bounds !== undefined) {
88
- const resize: ElementAndBounds = {
89
- elementId: element.id,
90
- newSize: {
91
- width: boundsData.bounds.width,
92
- height: boundsData.bounds.height
93
- }
94
- };
95
- // don't copy position if the element is layouted by the server
96
- if (element instanceof GChildElement && isLayoutContainer(element.parent)) {
97
- resize.newPosition = {
98
- x: boundsData.bounds.x,
99
- y: boundsData.bounds.y
83
+ // prepare data for action
84
+ const resizes: ElementAndBounds[] = [];
85
+ const alignments: ElementAndAlignment[] = [];
86
+ const layoutData: ElementAndLayoutData[] = [];
87
+ this.getElement2BoundsData().forEach((boundsData, element) => {
88
+ if (boundsData.boundsChanged && boundsData.bounds !== undefined) {
89
+ const resize: ElementAndBounds = {
90
+ elementId: element.id,
91
+ newSize: {
92
+ width: boundsData.bounds.width,
93
+ height: boundsData.bounds.height
94
+ }
100
95
  };
96
+ // don't copy position if the element is layouted by the server
97
+ if (element instanceof GChildElement && isLayoutContainer(element.parent)) {
98
+ resize.newPosition = {
99
+ x: boundsData.bounds.x,
100
+ y: boundsData.bounds.y
101
+ };
102
+ }
103
+ resizes.push(resize);
101
104
  }
102
- resizes.push(resize);
103
- }
104
- if (boundsData.alignmentChanged && boundsData.alignment !== undefined) {
105
- alignments.push({
106
- elementId: element.id,
107
- newAlignment: boundsData.alignment
108
- });
109
- }
110
- if (LayoutAware.is(boundsData)) {
111
- layoutData.push({ elementId: element.id, layoutData: boundsData.layoutData });
112
- }
113
- });
114
- const routes = this.element2route.length === 0 ? undefined : this.element2route;
105
+ if (boundsData.alignmentChanged && boundsData.alignment !== undefined) {
106
+ alignments.push({
107
+ elementId: element.id,
108
+ newAlignment: boundsData.alignment
109
+ });
110
+ }
111
+ if (LayoutAware.is(boundsData)) {
112
+ layoutData.push({ elementId: element.id, layoutData: boundsData.layoutData });
113
+ }
114
+ });
115
+ const routes = this.element2route.length === 0 ? undefined : this.element2route;
115
116
 
116
- // prepare and dispatch action
117
- const responseId = (cause as RequestBoundsAction).requestId;
118
- const revision = this.root !== undefined ? this.root.revision : undefined;
119
- const canvasBounds = this.editorContext.canvasBounds;
120
- const viewport = this.editorContext.viewportData;
121
- const computedBoundsAction = ComputedBoundsAction.create(resizes, {
122
- revision,
123
- alignments,
124
- layoutData,
125
- routes,
126
- responseId,
127
- canvasBounds,
128
- viewport
129
- });
130
- if (LocalRequestBoundsAction.is(cause)) {
131
- LocalComputedBoundsAction.mark(computedBoundsAction);
117
+ // prepare and dispatch action
118
+ const responseId = (cause as RequestBoundsAction).requestId;
119
+ const revision = this.root !== undefined ? this.root.revision : undefined;
120
+ const canvasBounds = this.editorContext.canvasBounds;
121
+ const viewport = this.editorContext.viewportData;
122
+ const computedBoundsAction = ComputedBoundsAction.create(resizes, {
123
+ revision,
124
+ alignments,
125
+ layoutData,
126
+ routes,
127
+ responseId,
128
+ canvasBounds,
129
+ viewport
130
+ });
131
+ if (LocalRequestBoundsAction.is(cause)) {
132
+ LocalComputedBoundsAction.mark(computedBoundsAction);
133
+ }
134
+ this.actionDispatcher.dispatch(computedBoundsAction);
135
+ } finally {
136
+ // always reset collected data so hidden renderings with other causes (e.g. exports/failures) do not leak into the next run
137
+ this.cleanUp();
132
138
  }
133
- this.actionDispatcher.dispatch(computedBoundsAction);
139
+ }
134
140
 
135
- // cleanup
141
+ protected cleanUp(): void {
136
142
  this.getElement2BoundsData().clear();
137
143
  this.element2route = [];
144
+ this.root = undefined;
138
145
  }
139
146
 
140
147
  protected focusOnElements(elementIDs: string[]): void {