@basthon/gui-base 0.50.3 → 0.50.5
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/main.d.ts +6 -2
- package/lib/main.js +18 -8
- package/package.json +5 -5
package/lib/main.d.ts
CHANGED
|
@@ -24,7 +24,6 @@ export declare class GUIBase {
|
|
|
24
24
|
protected _contentFilename: string;
|
|
25
25
|
protected _urlKey: string;
|
|
26
26
|
private _extensions;
|
|
27
|
-
private _urlExtensions;
|
|
28
27
|
private _console_error;
|
|
29
28
|
constructor(options: GUIOptions);
|
|
30
29
|
/**
|
|
@@ -92,6 +91,11 @@ export declare class GUIBase {
|
|
|
92
91
|
* Loading the content from query string (ipynb=/script= or from=).
|
|
93
92
|
*/
|
|
94
93
|
loadFromQS(key: string): Promise<string | null>;
|
|
94
|
+
/**
|
|
95
|
+
* Load all URL requested (and registered) extensions
|
|
96
|
+
* (call submited callback).
|
|
97
|
+
*/
|
|
98
|
+
private _loadExtensions;
|
|
95
99
|
/**
|
|
96
100
|
* Setup the UI (typically connect events, load extensions etc..).
|
|
97
101
|
*/
|
|
@@ -158,7 +162,7 @@ export declare class GUIBase {
|
|
|
158
162
|
/**
|
|
159
163
|
* Register an extension and its callback.
|
|
160
164
|
*/
|
|
161
|
-
registerExtension(name: string, callback: (() => void)): void;
|
|
165
|
+
registerExtension(name: string, callback: (() => Promise<void>)): void;
|
|
162
166
|
/**
|
|
163
167
|
* Opening file: If it has ext as extension, loading it in
|
|
164
168
|
* the editor or put on (emulated) local filesystem
|
package/lib/main.js
CHANGED
|
@@ -20,9 +20,6 @@ export class GUIBase {
|
|
|
20
20
|
/* per language checkpoints */
|
|
21
21
|
if (!options.noCheckpointsInit)
|
|
22
22
|
this._checkpoints = new CheckpointsManager(`${options.uiName}.${options.language}`, this._maxCheckpoints);
|
|
23
|
-
/* get requested extensions from URL */
|
|
24
|
-
const url = new URL(window.location.href);
|
|
25
|
-
this._urlExtensions = (url.searchParams.get("extensions") || "").split(',');
|
|
26
23
|
}
|
|
27
24
|
/**
|
|
28
25
|
* Language getter.
|
|
@@ -145,17 +142,29 @@ export class GUIBase {
|
|
|
145
142
|
return content;
|
|
146
143
|
}
|
|
147
144
|
/**
|
|
148
|
-
*
|
|
145
|
+
* Load all URL requested (and registered) extensions
|
|
146
|
+
* (call submited callback).
|
|
149
147
|
*/
|
|
150
|
-
async
|
|
151
|
-
|
|
152
|
-
|
|
148
|
+
async _loadExtensions() {
|
|
149
|
+
var _a, _b;
|
|
150
|
+
/* get requested extensions from URL */
|
|
151
|
+
const url = new URL(window.location.href);
|
|
152
|
+
const extensions = (_b = (_a = url.searchParams.get("extensions")) === null || _a === void 0 ? void 0 : _a.split(',')) !== null && _b !== void 0 ? _b : [];
|
|
153
|
+
// call callbacks for requested extensions
|
|
154
|
+
const promises = [];
|
|
155
|
+
for (const ext of extensions) {
|
|
153
156
|
const callback = this._extensions.get(ext);
|
|
154
157
|
if (callback != null)
|
|
155
|
-
callback();
|
|
158
|
+
promises.push(callback());
|
|
156
159
|
else
|
|
157
160
|
console.error(`Extension '${ext}' not supported.`);
|
|
158
161
|
}
|
|
162
|
+
await Promise.all(promises);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Setup the UI (typically connect events, load extensions etc..).
|
|
166
|
+
*/
|
|
167
|
+
async setupUI(options) {
|
|
159
168
|
/* wait for kernel load */
|
|
160
169
|
const kernel = await this.kernelLoader.kernelAvailable();
|
|
161
170
|
// this is ugly but it seems complicated to make
|
|
@@ -262,6 +271,7 @@ export class GUIBase {
|
|
|
262
271
|
window.addEventListener('error', onerror);
|
|
263
272
|
window.addEventListener("unhandledrejection", onerror);
|
|
264
273
|
console.error = (message) => onerror(new Error(message));
|
|
274
|
+
await this._loadExtensions();
|
|
265
275
|
await ((_a = this._checkpoints) === null || _a === void 0 ? void 0 : _a.ready());
|
|
266
276
|
await this.setupUI(options);
|
|
267
277
|
await this.loadInitialContent(options);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@basthon/gui-base",
|
|
3
|
-
"version": "0.50.
|
|
3
|
+
"version": "0.50.5",
|
|
4
4
|
"description": "Basthon - Base GUI",
|
|
5
5
|
"homepage": "https://basthon.fr",
|
|
6
6
|
"bugs": {
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"clean": "rm -rf lib/"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@basthon/checkpoints": "0.50.
|
|
29
|
-
"@basthon/kernel-base": "0.50.
|
|
30
|
-
"@basthon/kernel-loader": "0.50.
|
|
28
|
+
"@basthon/checkpoints": "0.50.5",
|
|
29
|
+
"@basthon/kernel-base": "0.50.5",
|
|
30
|
+
"@basthon/kernel-loader": "0.50.5",
|
|
31
31
|
"js-base64": "^3.7.2",
|
|
32
32
|
"pako": "^2.0.4",
|
|
33
33
|
"promise-delegate": "^1.0.1"
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"publishConfig": {
|
|
42
42
|
"access": "public"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "4e54c8730a9aff244c3c52c9a5c88efc8100b3bc"
|
|
45
45
|
}
|