// 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);