@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.
- package/lib/generator/frontend-generator.d.ts +2 -0
- package/lib/generator/frontend-generator.d.ts.map +1 -1
- package/lib/generator/frontend-generator.js +45 -0
- package/lib/generator/frontend-generator.js.map +1 -1
- package/lib/generator/webpack-generator.d.ts.map +1 -1
- package/lib/generator/webpack-generator.js +17 -0
- package/lib/generator/webpack-generator.js.map +1 -1
- package/package.json +5 -4
- package/src/generator/frontend-generator.ts +45 -0
- package/src/generator/webpack-generator.ts +17 -0
|
@@ -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;
|
|
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":";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,8CAA8C;AAE9C,6DAA2E;AAC3E,2BAA8C;AAE9C,MAAa,iBAAkB,SAAQ,sCAAiB;IAEpD,KAAK,CAAC,QAAQ,CAAC,UAA4B,EAAE;QACzC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACvD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;QAC1F,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;QACtF,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE;YACvB,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC;YAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC;SAC1G;IACL,CAAC;IAES,mBAAmB,CAAC,eAAoC;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;QACjE,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,EAAE,CAAC;SACb;QAED,4BAA4B;QAC5B,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE;YACtB,OAAO,IAAA,iBAAY,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC5C;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAES,gBAAgB,CAAC,eAAoC;QAC3D,OAAO;;;QAGP,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;;;;iCAIb,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC;;;;QAIlE,CAAC;IACL,CAAC;IAES,gBAAgB,CAAC,eAAoC;QAC3D,OAAO;;;;WAIJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,UAAU,CAAC;IAChE,CAAC;IAES,cAAc,CAAC,eAAoC;QACzD,MAAM,qBAAqB,GAAG,IAAI,CAAC,4BAA4B,CAAC,eAAe,CAAC;YAC5E,gCAAgC;aAC/B,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnC,OAAO;;EAEb,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC;;;;;;wCAMR,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;;EAE1F,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;;;;;;CAMrB,CAAC;;;;;;;;mEAQiE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YACvE,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,+DAA+D;;;;;;;;8BAQnD,qBAAqB;;;;;;;;;;;;;;;;;;CAkBlD,CAAC;IACE,CAAC;IAES,mBAAmB,CAAC,mBAAyC;QACnE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6BE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;2BAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA2B/D,IAAI,CAAC,gCAAgC,CAAC,mBAAmB,CAAC;;;;;;;CAO7F,CAAC;IACE,CAAC;
|
|
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;
|
|
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
|
|
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.
|
|
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.
|
|
37
|
-
"@theia/ffmpeg": "1.30.0-next.
|
|
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": "
|
|
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$/,
|