@theia/application-manager 1.30.0-next.2 → 1.30.0-next.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,5 +6,7 @@ export declare class FrontendGenerator extends AbstractGenerator {
6
6
  protected compileIndexHead(frontendModules: Map<string, string>): string;
7
7
  protected compileIndexJs(frontendModules: Map<string, string>): string;
8
8
  protected compileElectronMain(electronMainModules?: Map<string, string>): string;
9
+ /** HTML for secondary windows that contain an extracted widget. */
10
+ protected compileSecondaryWindowHtml(): string;
9
11
  }
10
12
  //# sourceMappingURL=frontend-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG3E,qBAAa,iBAAkB,SAAQ,iBAAiB;IAE9C,QAAQ,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7D,SAAS,CAAC,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAc3E,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAexE,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAQxE,SAAS,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IA2DtE,SAAS,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CAoEnF"}
1
+ {"version":3,"file":"frontend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG3E,qBAAa,iBAAkB,SAAQ,iBAAiB;IAE9C,QAAQ,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7D,SAAS,CAAC,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAc3E,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAexE,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAQxE,SAAS,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IA2DtE,SAAS,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAoEhF,mEAAmE;IACnE,SAAS,CAAC,0BAA0B,IAAI,MAAM;CA2CjD"}
@@ -24,6 +24,7 @@ class FrontendGenerator extends abstract_generator_1.AbstractGenerator {
24
24
  const frontendModules = this.pck.targetFrontendModules;
25
25
  await this.write(this.pck.frontend('index.html'), this.compileIndexHtml(frontendModules));
26
26
  await this.write(this.pck.frontend('index.js'), this.compileIndexJs(frontendModules));
27
+ await this.write(this.pck.frontend('secondary-window.html'), this.compileSecondaryWindowHtml());
27
28
  if (this.pck.isElectron()) {
28
29
  const electronMainModules = this.pck.targetElectronMainModules;
29
30
  await this.write(this.pck.frontend('electron-main.js'), this.compileElectronMain(electronMainModules));
@@ -186,6 +187,50 @@ module.exports = Promise.resolve()${this.compileElectronMainModuleImports(electr
186
187
  });
187
188
  `;
188
189
  }
190
+ /** HTML for secondary windows that contain an extracted widget. */
191
+ compileSecondaryWindowHtml() {
192
+ return `<!DOCTYPE html>
193
+ <html lang="en">
194
+
195
+ <head>
196
+ <meta charset="UTF-8">
197
+ <title>Theia — Secondary Window</title>
198
+ <style>
199
+ html, body {
200
+ overflow: hidden;
201
+ -ms-overflow-style: none;
202
+ }
203
+
204
+ body {
205
+ margin: 0;
206
+ }
207
+
208
+ html,
209
+ head,
210
+ body,
211
+ #widget-host,
212
+ .p-Widget {
213
+ width: 100% !important;
214
+ height: 100% !important;
215
+ }
216
+ </style>
217
+ <script>
218
+ window.addEventListener('message', e => {
219
+ // Only process messages from Theia main window
220
+ if (e.source === window.opener) {
221
+ // Delegate message to iframe
222
+ document.getElementsByTagName('iframe').item(0).contentWindow.postMessage({ ...e.data }, '*');
223
+ }
224
+ });
225
+ </script>
226
+ </head>
227
+
228
+ <body>
229
+ <div id="widget-host"></div>
230
+ </body>
231
+
232
+ </html>`;
233
+ }
189
234
  }
190
235
  exports.FrontendGenerator = FrontendGenerator;
191
236
  //# sourceMappingURL=frontend-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-generator.js","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontend-generator.js","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webpack-generator.d.ts","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAOf,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAC;IAQnE,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3D,SAAS,CAAC,oBAAoB,IAAI,MAAM;IA6JxC,SAAS,CAAC,wBAAwB,IAAI,MAAM;CAoB/C"}
1
+ {"version":3,"file":"webpack-generator.d.ts","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAOf,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAC;IAQnE,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3D,SAAS,CAAC,oBAAoB,IAAI,MAAM;IA8KxC,SAAS,CAAC,wBAAwB,IAAI,MAAM;CAoB/C"}
@@ -51,6 +51,7 @@ class WebpackGenerator extends abstract_generator_1.AbstractGenerator {
51
51
  const path = require('path');
52
52
  const webpack = require('webpack');
53
53
  const yargs = require('yargs');
54
+ const CopyWebpackPlugin = require('copy-webpack-plugin');
54
55
  const CircularDependencyPlugin = require('circular-dependency-plugin');
55
56
  const CompressionPlugin = require('compression-webpack-plugin')
56
57
 
@@ -67,6 +68,12 @@ const { mode, staticCompression } = yargs.option('mode', {
67
68
  const development = mode === 'development';
68
69
 
69
70
  const plugins = [
71
+ new CopyWebpackPlugin({
72
+ patterns: [{
73
+ // copy secondary window html file to lib folder
74
+ from: path.resolve(__dirname, 'src-gen/frontend/secondary-window.html')
75
+ }]
76
+ }),
70
77
  new webpack.ProvidePlugin({
71
78
  // the Buffer class doesn't exist in the browser but some dependencies rely on it
72
79
  Buffer: ['buffer', 'Buffer']
@@ -99,6 +106,16 @@ module.exports = {
99
106
  cache: staticCompression,
100
107
  module: {
101
108
  rules: [
109
+ {
110
+ // Removes the host check in PhosphorJS to enable moving widgets to secondary windows.
111
+ test: /widget\\.js$/,
112
+ loader: 'string-replace-loader',
113
+ include: /node_modules[\\\\/]@phosphor[\\\\/]widgets[\\\\/]lib/,
114
+ options: {
115
+ search: /^.*?throw new Error\\('Host is not attached.'\\).*?$/gm,
116
+ replace: ''
117
+ }
118
+ },
102
119
  {
103
120
  test: /\\.css$/,
104
121
  exclude: /materialcolors\\.css$|\\.useable\\.css$/,
@@ -1 +1 @@
1
- {"version":3,"file":"webpack-generator.js","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAEhF,8BAA8B;AAC9B,+BAA+B;AAC/B,6DAAyD;AAEzD,MAAa,gBAAiB,SAAQ,sCAAiB;IAEnD,KAAK,CAAC,QAAQ;QACV,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAClE,IAAI,MAAM,IAAI,CAAC,+BAA+B,EAAE,EAAE;YAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;SACtE;IACL,CAAC;IAES,KAAK,CAAC,+BAA+B;QAC3C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;YACzC,OAAO,IAAI,CAAC;SACf;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAClD,CAAC;IAES,OAAO,CAAC,UAAkB,EAAE,IAAY;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnF,CAAC;IAES,oBAAoB;QAC1B,OAAO;;+CAEgC,IAAI,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA0CpD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,6EAA6E,CAAC;;;;;;;;eAQ7F,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqGtD,CAAC;IACA,CAAC;IAES,wBAAwB;QAC9B,OAAO;;;;;4BAKa,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;;;;;;;;;;;yBAWrC,CAAC;IACtB,CAAC;CAEJ;AA9MD,4CA8MC"}
1
+ {"version":3,"file":"webpack-generator.js","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAEhF,8BAA8B;AAC9B,+BAA+B;AAC/B,6DAAyD;AAEzD,MAAa,gBAAiB,SAAQ,sCAAiB;IAEnD,KAAK,CAAC,QAAQ;QACV,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAClE,IAAI,MAAM,IAAI,CAAC,+BAA+B,EAAE,EAAE;YAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;SACtE;IACL,CAAC;IAES,KAAK,CAAC,+BAA+B;QAC3C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;YACzC,OAAO,IAAI,CAAC;SACf;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAClD,CAAC;IAES,OAAO,CAAC,UAAkB,EAAE,IAAY;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnF,CAAC;IAES,oBAAoB;QAC1B,OAAO;;+CAEgC,IAAI,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiDpD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,6EAA6E,CAAC;;;;;;;;eAQ7F,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GtD,CAAC;IACA,CAAC;IAES,wBAAwB;QAC9B,OAAO;;;;;4BAKa,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;;;;;;;;;;;yBAWrC,CAAC;IACtB,CAAC;CAEJ;AA/ND,4CA+NC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/application-manager",
3
- "version": "1.30.0-next.2+af83aaa66b5",
3
+ "version": "1.30.0-next.7+98a0bf6944d",
4
4
  "description": "Theia application manager API.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -33,8 +33,8 @@
33
33
  "@babel/plugin-transform-classes": "^7.10.0",
34
34
  "@babel/plugin-transform-runtime": "^7.10.0",
35
35
  "@babel/preset-env": "^7.10.0",
36
- "@theia/application-package": "1.30.0-next.2+af83aaa66b5",
37
- "@theia/ffmpeg": "1.30.0-next.2+af83aaa66b5",
36
+ "@theia/application-package": "1.30.0-next.7+98a0bf6944d",
37
+ "@theia/ffmpeg": "1.30.0-next.7+98a0bf6944d",
38
38
  "@types/fs-extra": "^4.0.2",
39
39
  "@types/semver": "^7.3.8",
40
40
  "babel-loader": "^8.2.2",
@@ -54,6 +54,7 @@
54
54
  "source-map": "^0.6.1",
55
55
  "source-map-loader": "^2.0.1",
56
56
  "source-map-support": "^0.5.19",
57
+ "string-replace-loader": "^3.1.0",
57
58
  "style-loader": "^2.0.0",
58
59
  "umd-compat-loader": "^2.1.2",
59
60
  "webpack": "^5.48.0",
@@ -76,5 +77,5 @@
76
77
  "nyc": {
77
78
  "extends": "../../configs/nyc.json"
78
79
  },
79
- "gitHead": "af83aaa66b51e9da92f43d828837e020216bf085"
80
+ "gitHead": "98a0bf6944d8ef0cfa3cef52b1c1cb35b4eea063"
80
81
  }
@@ -25,6 +25,7 @@ export class FrontendGenerator extends AbstractGenerator {
25
25
  const frontendModules = this.pck.targetFrontendModules;
26
26
  await this.write(this.pck.frontend('index.html'), this.compileIndexHtml(frontendModules));
27
27
  await this.write(this.pck.frontend('index.js'), this.compileIndexJs(frontendModules));
28
+ await this.write(this.pck.frontend('secondary-window.html'), this.compileSecondaryWindowHtml());
28
29
  if (this.pck.isElectron()) {
29
30
  const electronMainModules = this.pck.targetElectronMainModules;
30
31
  await this.write(this.pck.frontend('electron-main.js'), this.compileElectronMain(electronMainModules));
@@ -195,4 +196,48 @@ module.exports = Promise.resolve()${this.compileElectronMainModuleImports(electr
195
196
  `;
196
197
  }
197
198
 
199
+ /** HTML for secondary windows that contain an extracted widget. */
200
+ protected compileSecondaryWindowHtml(): string {
201
+ return `<!DOCTYPE html>
202
+ <html lang="en">
203
+
204
+ <head>
205
+ <meta charset="UTF-8">
206
+ <title>Theia — Secondary Window</title>
207
+ <style>
208
+ html, body {
209
+ overflow: hidden;
210
+ -ms-overflow-style: none;
211
+ }
212
+
213
+ body {
214
+ margin: 0;
215
+ }
216
+
217
+ html,
218
+ head,
219
+ body,
220
+ #widget-host,
221
+ .p-Widget {
222
+ width: 100% !important;
223
+ height: 100% !important;
224
+ }
225
+ </style>
226
+ <script>
227
+ window.addEventListener('message', e => {
228
+ // Only process messages from Theia main window
229
+ if (e.source === window.opener) {
230
+ // Delegate message to iframe
231
+ document.getElementsByTagName('iframe').item(0).contentWindow.postMessage({ ...e.data }, '*');
232
+ }
233
+ });
234
+ </script>
235
+ </head>
236
+
237
+ <body>
238
+ <div id="widget-host"></div>
239
+ </body>
240
+
241
+ </html>`;
242
+ }
198
243
  }
@@ -56,6 +56,7 @@ export class WebpackGenerator extends AbstractGenerator {
56
56
  const path = require('path');
57
57
  const webpack = require('webpack');
58
58
  const yargs = require('yargs');
59
+ const CopyWebpackPlugin = require('copy-webpack-plugin');
59
60
  const CircularDependencyPlugin = require('circular-dependency-plugin');
60
61
  const CompressionPlugin = require('compression-webpack-plugin')
61
62
 
@@ -72,6 +73,12 @@ const { mode, staticCompression } = yargs.option('mode', {
72
73
  const development = mode === 'development';
73
74
 
74
75
  const plugins = [
76
+ new CopyWebpackPlugin({
77
+ patterns: [{
78
+ // copy secondary window html file to lib folder
79
+ from: path.resolve(__dirname, 'src-gen/frontend/secondary-window.html')
80
+ }]
81
+ }),
75
82
  new webpack.ProvidePlugin({
76
83
  // the Buffer class doesn't exist in the browser but some dependencies rely on it
77
84
  Buffer: ['buffer', 'Buffer']
@@ -104,6 +111,16 @@ module.exports = {
104
111
  cache: staticCompression,
105
112
  module: {
106
113
  rules: [
114
+ {
115
+ // Removes the host check in PhosphorJS to enable moving widgets to secondary windows.
116
+ test: /widget\\.js$/,
117
+ loader: 'string-replace-loader',
118
+ include: /node_modules[\\\\/]@phosphor[\\\\/]widgets[\\\\/]lib/,
119
+ options: {
120
+ search: /^.*?throw new Error\\('Host is not attached.'\\).*?$/gm,
121
+ replace: ''
122
+ }
123
+ },
107
124
  {
108
125
  test: /\\.css$/,
109
126
  exclude: /materialcolors\\.css$|\\.useable\\.css$/,