| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848 |
- // 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.
- */
- import { PageConfig, JupyterPluginRegistry} from '@jupyterlab/coreutils';
- import './style.js';
- async function createModule(scope, module) {
- try {
- const factory = await window._JUPYTERLAB[scope].get(module);
- const instance = factory();
- instance.__scope__ = scope;
- return instance;
- } catch(e) {
- console.warn(`Failed to create module: package: ${scope}; module: ${module}`);
- throw e;
- }
- }
- /**
- * The main entry point for the application.
- */
- export async function main() {
- // Handle a browser test.
- // Set up error handling prior to loading extensions.
- 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)
- };
- }
- var pluginRegistry = new JupyterPluginRegistry();
- var JupyterLab = require('@jupyterlab/application').JupyterLab;
- var disabled = [];
- var deferred = [];
- var ignorePlugins = [];
- var register = [];
- const federatedExtensionPromises = [];
- const federatedMimeExtensionPromises = [];
- const federatedStylePromises = [];
- // Start initializing the federated extensions
- const extensions = JSON.parse(
- PageConfig.getOption('federated_extensions')
- );
- // Keep a mapping of renamed plugin ids to ensure user configs don't break.
- // The mapping is defined in the main index.js for JupyterLab, since it may not be relevant for
- // other lab-based applications (they may not use the same set of plugins).
- const renamedPluginIds = {
- '@jupyterlab/application:mimedocument': '@jupyterlab/application-extension:mimedocument',
- '@jupyterlab/help-extension:licenses': '@jupyterlab/apputils-extension:licenses-plugin',
- '@jupyterlab/lsp:ILSPCodeExtractorsManager': '@jupyterlab/lsp-extension:code-extractor-manager',
- '@jupyterlab/translation:translator': '@jupyterlab/translation-extension:translator',
- '@jupyterlab/workspaces:commands': '@jupyterlab/workspaces-extension:commands'
- };
- // Transparently handle the case of renamed plugins, so current configs don't break.
- // And emit a warning in the dev tools console to notify about the rename so
- // users can update their config.
- const disabledExtensions = PageConfig.Extension.disabled.map(id => {
- if (renamedPluginIds[id]) {
- console.warn(`Plugin ${id} has been renamed to ${renamedPluginIds[id]}. Consider updating your config to use the new name.`);
- return renamedPluginIds[id];
- }
- return id;
- });
- const deferredExtensions = PageConfig.Extension.deferred.map(id => {
- if (renamedPluginIds[id]) {
- console.warn(`Plugin id ${id} has been renamed to ${renamedPluginIds[id]}. Consider updating your config to use the new name.`);
- return renamedPluginIds[id];
- }
- return id;
- });
- // This is basically a copy of PageConfig.Extension.isDisabled to
- // take into account the case of renamed plugins.
- const isPluginDisabled = (id) => {
- const separatorIndex = id.indexOf(':');
- let extName = '';
- if (separatorIndex !== -1) {
- extName = id.slice(0, separatorIndex);
- }
- return disabledExtensions.some(val => val === id || (extName && val === extName));
- }
- // This is basically a copy of PageConfig.Extension.isDeferred to
- // take into account the case of renamed plugins.
- const isPluginDeferred = (id) => {
- const separatorIndex = id.indexOf(':');
- let extName = '';
- if (separatorIndex !== -1) {
- extName = id.slice(0, separatorIndex);
- }
- return deferredExtensions.some(val => val === id || (extName && val === extName));
- }
- const queuedFederated = [];
- extensions.forEach(data => {
- if (data.extension) {
- queuedFederated.push(data.name);
- federatedExtensionPromises.push(createModule(data.name, data.extension));
- }
- if (data.mimeExtension) {
- queuedFederated.push(data.name);
- federatedMimeExtensionPromises.push(createModule(data.name, data.mimeExtension));
- }
- if (data.style && !isPluginDisabled(data.name)) {
- federatedStylePromises.push(createModule(data.name, data.style));
- }
- });
- const allPlugins = [];
- /**
- * Get the plugins from an extension.
- */
- function getPlugins(extension) {
- // Handle commonjs or es2015 modules
- let exports;
- if (extension.hasOwnProperty('__esModule')) {
- exports = extension.default;
- } else {
- // CommonJS exports.
- exports = extension;
- }
- return Array.isArray(exports) ? exports : [exports];
- }
- /**
- * Iterate over active plugins in an extension.
- *
- * #### Notes
- * This also populates the disabled, deferred, and ignored arrays.
- */
- function* activePlugins(extension) {
- const plugins = getPlugins(extension);
- for (let plugin of plugins) {
- const isDisabled = isPluginDisabled(plugin.id);
- allPlugins.push({
- id: plugin.id,
- description: plugin.description,
- requires: plugin.requires ?? [],
- optional: plugin.optional ?? [],
- provides: plugin.provides ?? null,
- autoStart: plugin.autoStart,
- enabled: !isDisabled,
- extension: extension.__scope__
- });
- if (isDisabled) {
- disabled.push(plugin.id);
- continue;
- }
- if (isPluginDeferred(plugin.id)) {
- deferred.push(plugin.id);
- ignorePlugins.push(plugin.id);
- }
- yield plugin;
- }
- }
- // Handle the registered mime extensions.
- const mimeExtensions = [];
- if (!queuedFederated.includes('@jupyterlab/javascript-extension')) {
- try {
- let ext = require('@jupyterlab/javascript-extension');
- ext.__scope__ = '@jupyterlab/javascript-extension';
- for (let plugin of activePlugins(ext)) {
- mimeExtensions.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/json-extension')) {
- try {
- let ext = require('@jupyterlab/json-extension');
- ext.__scope__ = '@jupyterlab/json-extension';
- for (let plugin of activePlugins(ext)) {
- mimeExtensions.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/mermaid-extension')) {
- try {
- let ext = require('@jupyterlab/mermaid-extension/lib/mime.js');
- ext.__scope__ = '@jupyterlab/mermaid-extension';
- for (let plugin of activePlugins(ext)) {
- mimeExtensions.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/pdf-extension')) {
- try {
- let ext = require('@jupyterlab/pdf-extension');
- ext.__scope__ = '@jupyterlab/pdf-extension';
- for (let plugin of activePlugins(ext)) {
- mimeExtensions.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/vega5-extension')) {
- try {
- let ext = require('@jupyterlab/vega5-extension');
- ext.__scope__ = '@jupyterlab/vega5-extension';
- for (let plugin of activePlugins(ext)) {
- mimeExtensions.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- // Add the federated mime extensions.
- const federatedMimeExtensions = await Promise.allSettled(federatedMimeExtensionPromises);
- federatedMimeExtensions.forEach(p => {
- if (p.status === "fulfilled") {
- for (let plugin of activePlugins(p.value)) {
- mimeExtensions.push(plugin);
- }
- } else {
- console.error(p.reason);
- }
- });
- // Handled the registered standard extensions.
- if (!queuedFederated.includes('@jupyterlab/application-extension')) {
- try {
- let ext = require('@jupyterlab/application-extension');
- ext.__scope__ = '@jupyterlab/application-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/apputils-extension')) {
- try {
- let ext = require('@jupyterlab/apputils-extension');
- ext.__scope__ = '@jupyterlab/apputils-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/audio-extension')) {
- try {
- let ext = require('@jupyterlab/audio-extension');
- ext.__scope__ = '@jupyterlab/audio-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/cell-toolbar-extension')) {
- try {
- let ext = require('@jupyterlab/cell-toolbar-extension');
- ext.__scope__ = '@jupyterlab/cell-toolbar-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/celltags-extension')) {
- try {
- let ext = require('@jupyterlab/celltags-extension');
- ext.__scope__ = '@jupyterlab/celltags-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/codemirror-extension')) {
- try {
- let ext = require('@jupyterlab/codemirror-extension');
- ext.__scope__ = '@jupyterlab/codemirror-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/completer-extension')) {
- try {
- let ext = require('@jupyterlab/completer-extension');
- ext.__scope__ = '@jupyterlab/completer-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/console-extension')) {
- try {
- let ext = require('@jupyterlab/console-extension');
- ext.__scope__ = '@jupyterlab/console-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/csvviewer-extension')) {
- try {
- let ext = require('@jupyterlab/csvviewer-extension');
- ext.__scope__ = '@jupyterlab/csvviewer-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/debugger-extension')) {
- try {
- let ext = require('@jupyterlab/debugger-extension');
- ext.__scope__ = '@jupyterlab/debugger-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/docmanager-extension')) {
- try {
- let ext = require('@jupyterlab/docmanager-extension');
- ext.__scope__ = '@jupyterlab/docmanager-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/documentsearch-extension')) {
- try {
- let ext = require('@jupyterlab/documentsearch-extension');
- ext.__scope__ = '@jupyterlab/documentsearch-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/extensionmanager-extension')) {
- try {
- let ext = require('@jupyterlab/extensionmanager-extension');
- ext.__scope__ = '@jupyterlab/extensionmanager-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/filebrowser-extension')) {
- try {
- let ext = require('@jupyterlab/filebrowser-extension');
- ext.__scope__ = '@jupyterlab/filebrowser-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/fileeditor-extension')) {
- try {
- let ext = require('@jupyterlab/fileeditor-extension');
- ext.__scope__ = '@jupyterlab/fileeditor-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/help-extension')) {
- try {
- let ext = require('@jupyterlab/help-extension');
- ext.__scope__ = '@jupyterlab/help-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/htmlviewer-extension')) {
- try {
- let ext = require('@jupyterlab/htmlviewer-extension');
- ext.__scope__ = '@jupyterlab/htmlviewer-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/hub-extension')) {
- try {
- let ext = require('@jupyterlab/hub-extension');
- ext.__scope__ = '@jupyterlab/hub-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/imageviewer-extension')) {
- try {
- let ext = require('@jupyterlab/imageviewer-extension');
- ext.__scope__ = '@jupyterlab/imageviewer-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/inspector-extension')) {
- try {
- let ext = require('@jupyterlab/inspector-extension');
- ext.__scope__ = '@jupyterlab/inspector-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/launcher-extension')) {
- try {
- let ext = require('@jupyterlab/launcher-extension');
- ext.__scope__ = '@jupyterlab/launcher-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/logconsole-extension')) {
- try {
- let ext = require('@jupyterlab/logconsole-extension');
- ext.__scope__ = '@jupyterlab/logconsole-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/lsp-extension')) {
- try {
- let ext = require('@jupyterlab/lsp-extension');
- ext.__scope__ = '@jupyterlab/lsp-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/mainmenu-extension')) {
- try {
- let ext = require('@jupyterlab/mainmenu-extension');
- ext.__scope__ = '@jupyterlab/mainmenu-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/markdownviewer-extension')) {
- try {
- let ext = require('@jupyterlab/markdownviewer-extension');
- ext.__scope__ = '@jupyterlab/markdownviewer-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/markedparser-extension')) {
- try {
- let ext = require('@jupyterlab/markedparser-extension');
- ext.__scope__ = '@jupyterlab/markedparser-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/mathjax-extension')) {
- try {
- let ext = require('@jupyterlab/mathjax-extension');
- ext.__scope__ = '@jupyterlab/mathjax-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/mermaid-extension')) {
- try {
- let ext = require('@jupyterlab/mermaid-extension');
- ext.__scope__ = '@jupyterlab/mermaid-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/metadataform-extension')) {
- try {
- let ext = require('@jupyterlab/metadataform-extension');
- ext.__scope__ = '@jupyterlab/metadataform-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/notebook-extension')) {
- try {
- let ext = require('@jupyterlab/notebook-extension');
- ext.__scope__ = '@jupyterlab/notebook-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/pluginmanager-extension')) {
- try {
- let ext = require('@jupyterlab/pluginmanager-extension');
- ext.__scope__ = '@jupyterlab/pluginmanager-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/rendermime-extension')) {
- try {
- let ext = require('@jupyterlab/rendermime-extension');
- ext.__scope__ = '@jupyterlab/rendermime-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/running-extension')) {
- try {
- let ext = require('@jupyterlab/running-extension');
- ext.__scope__ = '@jupyterlab/running-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/services-extension')) {
- try {
- let ext = require('@jupyterlab/services-extension');
- ext.__scope__ = '@jupyterlab/services-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/settingeditor-extension')) {
- try {
- let ext = require('@jupyterlab/settingeditor-extension');
- ext.__scope__ = '@jupyterlab/settingeditor-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/shortcuts-extension')) {
- try {
- let ext = require('@jupyterlab/shortcuts-extension');
- ext.__scope__ = '@jupyterlab/shortcuts-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/statusbar-extension')) {
- try {
- let ext = require('@jupyterlab/statusbar-extension');
- ext.__scope__ = '@jupyterlab/statusbar-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/terminal-extension')) {
- try {
- let ext = require('@jupyterlab/terminal-extension');
- ext.__scope__ = '@jupyterlab/terminal-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/theme-dark-extension')) {
- try {
- let ext = require('@jupyterlab/theme-dark-extension');
- ext.__scope__ = '@jupyterlab/theme-dark-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/theme-dark-high-contrast-extension')) {
- try {
- let ext = require('@jupyterlab/theme-dark-high-contrast-extension');
- ext.__scope__ = '@jupyterlab/theme-dark-high-contrast-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/theme-light-extension')) {
- try {
- let ext = require('@jupyterlab/theme-light-extension');
- ext.__scope__ = '@jupyterlab/theme-light-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/toc-extension')) {
- try {
- let ext = require('@jupyterlab/toc-extension');
- ext.__scope__ = '@jupyterlab/toc-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/tooltip-extension')) {
- try {
- let ext = require('@jupyterlab/tooltip-extension');
- ext.__scope__ = '@jupyterlab/tooltip-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/translation-extension')) {
- try {
- let ext = require('@jupyterlab/translation-extension');
- ext.__scope__ = '@jupyterlab/translation-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/ui-components-extension')) {
- try {
- let ext = require('@jupyterlab/ui-components-extension');
- ext.__scope__ = '@jupyterlab/ui-components-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/video-extension')) {
- try {
- let ext = require('@jupyterlab/video-extension');
- ext.__scope__ = '@jupyterlab/video-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- if (!queuedFederated.includes('@jupyterlab/workspaces-extension')) {
- try {
- let ext = require('@jupyterlab/workspaces-extension');
- ext.__scope__ = '@jupyterlab/workspaces-extension';
- for (let plugin of activePlugins(ext)) {
- register.push(plugin);
- }
- } catch (e) {
- console.error(e);
- }
- }
- // Add the federated extensions.
- const federatedExtensions = await Promise.allSettled(federatedExtensionPromises);
- federatedExtensions.forEach(p => {
- if (p.status === "fulfilled") {
- for (let plugin of activePlugins(p.value)) {
- register.push(plugin);
- }
- } else {
- console.error(p.reason);
- }
- });
- // Load all federated component styles and log errors for any that do not
- (await Promise.allSettled(federatedStylePromises)).filter(({status}) => status === "rejected").forEach(({reason}) => {
- console.error(reason);
- });
- // 2. Register the plugins
- pluginRegistry.registerPlugins(register);
- // 3. Get and resolve the service manager and connection status plugins
- const IConnectionStatus = require('@jupyterlab/services').IConnectionStatus;
- const IServiceManager = require('@jupyterlab/services').IServiceManager;
- const connectionStatus = await pluginRegistry.resolveOptionalService(IConnectionStatus);
- const serviceManager = await pluginRegistry.resolveRequiredService(IServiceManager);
- const lab = new JupyterLab({
- pluginRegistry,
- serviceManager,
- mimeExtensions,
- connectionStatus,
- disabled: {
- matches: disabled,
- patterns: disabledExtensions
- .map(function (val) { return val.raw; })
- },
- deferred: {
- matches: deferred,
- patterns: deferredExtensions
- .map(function (val) { return val.raw; })
- },
- availablePlugins: allPlugins
- });
- // 4. Start the application, which will activate the other plugins
- lab.start({ ignorePlugins, bubblingKeydown: true });
- // 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.jupyterapp = lab;
- }
- // Handle a browser test.
- if (browserTest.toLowerCase() === 'true') {
- 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);
- }
- }
|