You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
4.3 KiB
153 lines
4.3 KiB
// This file is auto-generated from the corresponding file in /dev_mode
|
|
/*-----------------------------------------------------------------------------
|
|
| Copyright (c) Jupyter Development Team.
|
|
| Distributed under the terms of the Modified BSD License.
|
|
|----------------------------------------------------------------------------*/
|
|
|
|
require('es6-promise/auto'); // polyfill Promise on IE
|
|
|
|
import {
|
|
PageConfig
|
|
} from '@jupyterlab/coreutils';
|
|
|
|
// eslint-disable-next-line no-undef
|
|
__webpack_public_path__ = PageConfig.getOption('fullStaticUrl') + '/';
|
|
|
|
// This must be after the public path is set.
|
|
// This cannot be extracted because the public path is dynamic.
|
|
require('./imports.css');
|
|
|
|
/**
|
|
* The main entry point for the application.
|
|
*/
|
|
function main() {
|
|
var JupyterLab = require('@jupyterlab/application').JupyterLab;
|
|
var disabled = [];
|
|
var deferred = [];
|
|
var ignorePlugins = [];
|
|
var register = [];
|
|
|
|
// Handle the registered mime extensions.
|
|
var mimeExtensions = [];
|
|
var extension;
|
|
var extMod;
|
|
var plugins = [];
|
|
{{#each jupyterlab_mime_extensions}}
|
|
try {
|
|
extMod = require('{{@key}}/{{this}}');
|
|
extension = extMod.default;
|
|
|
|
// Handle CommonJS exports.
|
|
if (!extMod.hasOwnProperty('__esModule')) {
|
|
extension = extMod;
|
|
}
|
|
|
|
plugins = Array.isArray(extension) ? extension : [extension];
|
|
plugins.forEach(function(plugin) {
|
|
if (PageConfig.Extension.isDeferred(plugin.id)) {
|
|
deferred.push(plugin.id);
|
|
ignorePlugins.push(plugin.id);
|
|
}
|
|
if (PageConfig.Extension.isDisabled(plugin.id)) {
|
|
disabled.push(plugin.id);
|
|
return;
|
|
}
|
|
mimeExtensions.push(plugin);
|
|
});
|
|
} catch (e) {
|
|
console.error(e);
|
|
}
|
|
{{/each}}
|
|
|
|
// Handled the registered standard extensions.
|
|
{{#each jupyterlab_extensions}}
|
|
try {
|
|
extMod = require('{{@key}}/{{this}}');
|
|
extension = extMod.default;
|
|
|
|
// Handle CommonJS exports.
|
|
if (!extMod.hasOwnProperty('__esModule')) {
|
|
extension = extMod;
|
|
}
|
|
|
|
plugins = Array.isArray(extension) ? extension : [extension];
|
|
plugins.forEach(function(plugin) {
|
|
if (PageConfig.Extension.isDeferred(plugin.id)) {
|
|
deferred.push(plugin.id);
|
|
ignorePlugins.push(plugin.id);
|
|
}
|
|
if (PageConfig.Extension.isDisabled(plugin.id)) {
|
|
disabled.push(plugin.id);
|
|
return;
|
|
}
|
|
register.push(plugin);
|
|
});
|
|
} catch (e) {
|
|
console.error(e);
|
|
}
|
|
{{/each}}
|
|
var lab = new JupyterLab({
|
|
mimeExtensions: mimeExtensions,
|
|
disabled: {
|
|
matches: disabled,
|
|
patterns: PageConfig.Extension.disabled
|
|
.map(function (val) { return val.raw; })
|
|
},
|
|
deferred: {
|
|
matches: deferred,
|
|
patterns: PageConfig.Extension.deferred
|
|
.map(function (val) { return val.raw; })
|
|
},
|
|
});
|
|
register.forEach(function(item) { lab.registerPluginModule(item); });
|
|
lab.start({ ignorePlugins: ignorePlugins });
|
|
|
|
// Expose global app instance when in dev mode or when toggled explicitly.
|
|
var exposeAppInBrowser = (PageConfig.getOption('exposeAppInBrowser') || '').toLowerCase() === 'true';
|
|
var devMode = (PageConfig.getOption('devMode') || '').toLowerCase() === 'true';
|
|
|
|
if (exposeAppInBrowser || devMode) {
|
|
window.jupyterlab = lab;
|
|
}
|
|
|
|
// Handle a browser test.
|
|
var browserTest = PageConfig.getOption('browserTest');
|
|
if (browserTest.toLowerCase() === 'true') {
|
|
var el = document.createElement('div');
|
|
el.id = 'browserTest';
|
|
document.body.appendChild(el);
|
|
el.textContent = '[]';
|
|
el.style.display = 'none';
|
|
var errors = [];
|
|
var reported = false;
|
|
var timeout = 25000;
|
|
|
|
var report = function() {
|
|
if (reported) {
|
|
return;
|
|
}
|
|
reported = true;
|
|
el.className = 'completed';
|
|
}
|
|
|
|
window.onerror = function(msg, url, line, col, error) {
|
|
errors.push(String(error));
|
|
el.textContent = JSON.stringify(errors)
|
|
};
|
|
console.error = function(message) {
|
|
errors.push(String(message));
|
|
el.textContent = JSON.stringify(errors)
|
|
};
|
|
|
|
lab.restored
|
|
.then(function() { report(errors); })
|
|
.catch(function(reason) { report([`RestoreError: ${reason.message}`]); });
|
|
|
|
// Handle failures to restore after the timeout has elapsed.
|
|
window.setTimeout(function() { report(errors); }, timeout);
|
|
}
|
|
|
|
}
|
|
|
|
window.addEventListener('load', main);
|