You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			1013 lines
		
	
	
		
			45 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			1013 lines
		
	
	
		
			45 KiB
		
	
	
	
		
			JavaScript
		
	
| "use strict";
 | |
| (self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] = self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] || []).push([[8579],{
 | |
| 
 | |
| /***/ 88579:
 | |
| /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 | |
| 
 | |
| __webpack_require__.r(__webpack_exports__);
 | |
| /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 | |
| /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
 | |
| /* harmony export */ });
 | |
| /* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42613);
 | |
| /* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__);
 | |
| /* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14123);
 | |
| /* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__);
 | |
| /* harmony import */ var _jupyterlab_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45198);
 | |
| /* harmony import */ var _jupyterlab_console__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_console__WEBPACK_IMPORTED_MODULE_2__);
 | |
| /* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(365);
 | |
| /* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__);
 | |
| /* harmony import */ var _jupyterlab_docmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22301);
 | |
| /* harmony import */ var _jupyterlab_docmanager__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_docmanager__WEBPACK_IMPORTED_MODULE_4__);
 | |
| /* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(68530);
 | |
| /* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_5__);
 | |
| /* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(90815);
 | |
| /* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_6__);
 | |
| /* harmony import */ var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(49069);
 | |
| /* harmony import */ var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7__);
 | |
| /* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(86252);
 | |
| /* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_8__);
 | |
| /* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(24973);
 | |
| /* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__);
 | |
| /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(95125);
 | |
| /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__);
 | |
| /* harmony import */ var _jupyter_notebook_ui_components__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(2779);
 | |
| /* harmony import */ var _jupyter_notebook_ui_components__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_jupyter_notebook_ui_components__WEBPACK_IMPORTED_MODULE_11__);
 | |
| /* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(5406);
 | |
| /* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_12__);
 | |
| /* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(38302);
 | |
| /* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_lumino_disposable__WEBPACK_IMPORTED_MODULE_13__);
 | |
| /* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(60920);
 | |
| /* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_14__);
 | |
| // Copyright (c) Jupyter Development Team.
 | |
| // Distributed under the terms of the Modified BSD License.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * A regular expression to match path to notebooks and documents
 | |
|  */
 | |
| const TREE_PATTERN = new RegExp('/(notebooks|edit)/(.*)');
 | |
| /**
 | |
|  * A regular expression to suppress the file extension from display for .ipynb files.
 | |
|  */
 | |
| const STRIP_IPYNB = /\.ipynb$/;
 | |
| /**
 | |
|  * The JupyterLab document manager plugin id.
 | |
|  */
 | |
| const JUPYTERLAB_DOCMANAGER_PLUGIN_ID = '@jupyterlab/docmanager-extension:plugin';
 | |
| /**
 | |
|  * The command IDs used by the application plugin.
 | |
|  */
 | |
| var CommandIDs;
 | |
| (function (CommandIDs) {
 | |
|     /**
 | |
|      * Duplicate the current document and open the new document
 | |
|      */
 | |
|     CommandIDs.duplicate = 'application:duplicate';
 | |
|     /**
 | |
|      * Handle local links
 | |
|      */
 | |
|     CommandIDs.handleLink = 'application:handle-local-link';
 | |
|     /**
 | |
|      * Toggle Top Bar visibility
 | |
|      */
 | |
|     CommandIDs.toggleTop = 'application:toggle-top';
 | |
|     /**
 | |
|      * Toggle side panel visibility
 | |
|      */
 | |
|     CommandIDs.togglePanel = 'application:toggle-panel';
 | |
|     /**
 | |
|      * Toggle the Zen mode
 | |
|      */
 | |
|     CommandIDs.toggleZen = 'application:toggle-zen';
 | |
|     /**
 | |
|      * Open JupyterLab
 | |
|      */
 | |
|     CommandIDs.openLab = 'application:open-lab';
 | |
|     /**
 | |
|      * Open the tree page.
 | |
|      */
 | |
|     CommandIDs.openTree = 'application:open-tree';
 | |
|     /**
 | |
|      * Rename the current document
 | |
|      */
 | |
|     CommandIDs.rename = 'application:rename';
 | |
|     /**
 | |
|      * Resolve tree path
 | |
|      */
 | |
|     CommandIDs.resolveTree = 'application:resolve-tree';
 | |
| })(CommandIDs || (CommandIDs = {}));
 | |
| /**
 | |
|  * Check if the application is dirty before closing the browser tab.
 | |
|  */
 | |
| const dirty = {
 | |
|     id: '@jupyter-notebook/application-extension:dirty',
 | |
|     description: 'Check if the application is dirty before closing the browser tab.',
 | |
|     autoStart: true,
 | |
|     requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILabStatus, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__.ITranslator],
 | |
|     activate: (app, status, translator) => {
 | |
|         if (!(app instanceof _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.NotebookApp)) {
 | |
|             throw new Error(`${dirty.id} must be activated in Jupyter Notebook.`);
 | |
|         }
 | |
|         const trans = translator.load('notebook');
 | |
|         const message = trans.__('Are you sure you want to exit Jupyter Notebook?\n\nAny unsaved changes will be lost.');
 | |
|         window.addEventListener('beforeunload', (event) => {
 | |
|             if (app.status.isDirty) {
 | |
|                 return (event.returnValue = message);
 | |
|             }
 | |
|         });
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * The application info.
 | |
|  */
 | |
| const info = {
 | |
|     id: '@jupyter-notebook/application-extension:info',
 | |
|     autoStart: true,
 | |
|     provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterLab.IInfo,
 | |
|     activate: (app) => {
 | |
|         if (!(app instanceof _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.NotebookApp)) {
 | |
|             throw new Error(`${info.id} must be activated in Jupyter Notebook.`);
 | |
|         }
 | |
|         return app.info;
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * The logo plugin.
 | |
|  */
 | |
| const logo = {
 | |
|     id: '@jupyter-notebook/application-extension:logo',
 | |
|     description: 'The logo plugin.',
 | |
|     autoStart: true,
 | |
|     activate: (app) => {
 | |
|         const baseUrl = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PageConfig.getBaseUrl();
 | |
|         const node = document.createElement('a');
 | |
|         node.href = `${baseUrl}tree`;
 | |
|         node.target = '_blank';
 | |
|         node.rel = 'noopener noreferrer';
 | |
|         const logo = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_14__.Widget({ node });
 | |
|         _jupyter_notebook_ui_components__WEBPACK_IMPORTED_MODULE_11__.jupyterIcon.element({
 | |
|             container: node,
 | |
|             elementPosition: 'center',
 | |
|             padding: '2px 2px 2px 8px',
 | |
|             height: '28px',
 | |
|             width: 'auto',
 | |
|             cursor: 'pointer',
 | |
|             margin: 'auto',
 | |
|         });
 | |
|         logo.id = 'jp-NotebookLogo';
 | |
|         app.shell.add(logo, 'top', { rank: 0 });
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * A plugin to open documents in the main area.
 | |
|  */
 | |
| const opener = {
 | |
|     id: '@jupyter-notebook/application-extension:opener',
 | |
|     description: 'A plugin to open documents in the main area.',
 | |
|     autoStart: true,
 | |
|     requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IRouter, _jupyterlab_docmanager__WEBPACK_IMPORTED_MODULE_4__.IDocumentManager],
 | |
|     optional: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_8__.ISettingRegistry],
 | |
|     activate: (app, router, docManager, settingRegistry) => {
 | |
|         const { commands, docRegistry } = app;
 | |
|         const command = 'router:tree';
 | |
|         commands.addCommand(command, {
 | |
|             execute: (args) => {
 | |
|                 var _a;
 | |
|                 const parsed = args;
 | |
|                 const matches = (_a = parsed.path.match(TREE_PATTERN)) !== null && _a !== void 0 ? _a : [];
 | |
|                 const [, , path] = matches;
 | |
|                 if (!path) {
 | |
|                     return;
 | |
|                 }
 | |
|                 app.started.then(async () => {
 | |
|                     var _a;
 | |
|                     const file = decodeURIComponent(path);
 | |
|                     const urlParams = new URLSearchParams(parsed.search);
 | |
|                     let defaultFactory = docRegistry.defaultWidgetFactory(path).name;
 | |
|                     // Explicitly get the default viewers from the settings because
 | |
|                     // JupyterLab might not have had the time to load the settings yet (race condition)
 | |
|                     // Relevant code: https://github.com/jupyterlab/jupyterlab/blob/d56ff811f39b3c10c6d8b6eb27a94624b753eb53/packages/docmanager-extension/src/index.tsx#L265-L293
 | |
|                     if (settingRegistry) {
 | |
|                         const settings = await settingRegistry.load(JUPYTERLAB_DOCMANAGER_PLUGIN_ID);
 | |
|                         const defaultViewers = settings.get('defaultViewers').composite;
 | |
|                         // get the file types for the path
 | |
|                         const types = docRegistry.getFileTypesForPath(path);
 | |
|                         // for each file type, check if there is a default viewer and if it
 | |
|                         // is available in the docRegistry. If it is the case, use it as the
 | |
|                         // default factory
 | |
|                         types.forEach((ft) => {
 | |
|                             if (defaultViewers[ft.name] !== undefined &&
 | |
|                                 docRegistry.getWidgetFactory(defaultViewers[ft.name])) {
 | |
|                                 defaultFactory = defaultViewers[ft.name];
 | |
|                             }
 | |
|                         });
 | |
|                     }
 | |
|                     const factory = (_a = urlParams.get('factory')) !== null && _a !== void 0 ? _a : defaultFactory;
 | |
|                     docManager.open(file, factory, undefined, {
 | |
|                         ref: '_noref',
 | |
|                     });
 | |
|                 });
 | |
|             },
 | |
|         });
 | |
|         router.register({ command, pattern: TREE_PATTERN });
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * A plugin to customize menus
 | |
|  */
 | |
| const menus = {
 | |
|     id: '@jupyter-notebook/application-extension:menus',
 | |
|     description: 'A plugin to customize menus.',
 | |
|     requires: [_jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_6__.IMainMenu],
 | |
|     autoStart: true,
 | |
|     activate: (app, menu) => {
 | |
|         // always disable the Tabs menu
 | |
|         menu.tabsMenu.dispose();
 | |
|         const page = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PageConfig.getOption('notebookPage');
 | |
|         switch (page) {
 | |
|             case 'consoles':
 | |
|             case 'terminals':
 | |
|             case 'tree':
 | |
|                 menu.editMenu.dispose();
 | |
|                 menu.kernelMenu.dispose();
 | |
|                 menu.runMenu.dispose();
 | |
|                 break;
 | |
|             case 'edit':
 | |
|                 menu.kernelMenu.dispose();
 | |
|                 menu.runMenu.dispose();
 | |
|                 break;
 | |
|             default:
 | |
|                 break;
 | |
|         }
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * A plugin to provide a spacer at rank 900 in the menu area
 | |
|  */
 | |
| const menuSpacer = {
 | |
|     id: '@jupyter-notebook/application-extension:menu-spacer',
 | |
|     description: 'A plugin to provide a spacer at rank 900 in the menu area.',
 | |
|     autoStart: true,
 | |
|     activate: (app) => {
 | |
|         const menu = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_14__.Widget();
 | |
|         menu.id = _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.DOMUtils.createDomID();
 | |
|         menu.addClass('jp-NotebookSpacer');
 | |
|         app.shell.add(menu, 'menu', { rank: 900 });
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * Add commands to open the tree and running pages.
 | |
|  */
 | |
| const pages = {
 | |
|     id: '@jupyter-notebook/application-extension:pages',
 | |
|     description: 'Add commands to open the tree and running pages.',
 | |
|     autoStart: true,
 | |
|     requires: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__.ITranslator],
 | |
|     optional: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ICommandPalette],
 | |
|     activate: (app, translator, palette) => {
 | |
|         const trans = translator.load('notebook');
 | |
|         const baseUrl = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PageConfig.getBaseUrl();
 | |
|         app.commands.addCommand(CommandIDs.openLab, {
 | |
|             label: trans.__('Open JupyterLab'),
 | |
|             execute: () => {
 | |
|                 window.open(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.URLExt.join(baseUrl, 'lab'));
 | |
|             },
 | |
|         });
 | |
|         const page = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PageConfig.getOption('notebookPage');
 | |
|         app.commands.addCommand(CommandIDs.openTree, {
 | |
|             label: trans.__('File Browser'),
 | |
|             execute: () => {
 | |
|                 if (page === 'tree') {
 | |
|                     app.commands.execute('filebrowser:activate');
 | |
|                 }
 | |
|                 else {
 | |
|                     window.open(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.URLExt.join(baseUrl, 'tree'));
 | |
|                 }
 | |
|             },
 | |
|         });
 | |
|         if (palette) {
 | |
|             palette.addItem({ command: CommandIDs.openLab, category: 'View' });
 | |
|             palette.addItem({ command: CommandIDs.openTree, category: 'View' });
 | |
|         }
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * A plugin to open paths in new browser tabs.
 | |
|  */
 | |
| const pathOpener = {
 | |
|     id: '@jupyter-notebook/application-extension:path-opener',
 | |
|     description: 'A plugin to open paths in new browser tabs.',
 | |
|     autoStart: true,
 | |
|     provides: _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.INotebookPathOpener,
 | |
|     activate: (app) => {
 | |
|         return _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.defaultNotebookPathOpener;
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * The default paths for a Jupyter Notebook app.
 | |
|  */
 | |
| const paths = {
 | |
|     id: '@jupyter-notebook/application-extension:paths',
 | |
|     description: 'The default paths for a Jupyter Notebook app.',
 | |
|     autoStart: true,
 | |
|     provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEnd.IPaths,
 | |
|     activate: (app) => {
 | |
|         if (!(app instanceof _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.NotebookApp)) {
 | |
|             throw new Error(`${paths.id} must be activated in Jupyter Notebook.`);
 | |
|         }
 | |
|         return app.paths;
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * A plugin providing a rendermime registry.
 | |
|  */
 | |
| const rendermime = {
 | |
|     id: '@jupyter-notebook/application-extension:rendermime',
 | |
|     description: 'A plugin providing a rendermime registry.',
 | |
|     autoStart: true,
 | |
|     provides: _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7__.IRenderMimeRegistry,
 | |
|     optional: [
 | |
|         _jupyterlab_docmanager__WEBPACK_IMPORTED_MODULE_4__.IDocumentManager,
 | |
|         _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7__.ILatexTypesetter,
 | |
|         _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ISanitizer,
 | |
|         _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7__.IMarkdownParser,
 | |
|         _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__.ITranslator,
 | |
|         _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.INotebookPathOpener,
 | |
|     ],
 | |
|     activate: (app, docManager, latexTypesetter, sanitizer, markdownParser, translator, notebookPathOpener) => {
 | |
|         const trans = (translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__.nullTranslator).load('jupyterlab');
 | |
|         const opener = notebookPathOpener !== null && notebookPathOpener !== void 0 ? notebookPathOpener : _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.defaultNotebookPathOpener;
 | |
|         if (docManager) {
 | |
|             app.commands.addCommand(CommandIDs.handleLink, {
 | |
|                 label: trans.__('Handle Local Link'),
 | |
|                 execute: (args) => {
 | |
|                     const path = args['path'];
 | |
|                     if (path === undefined || path === null) {
 | |
|                         return;
 | |
|                     }
 | |
|                     return docManager.services.contents
 | |
|                         .get(path, { content: false })
 | |
|                         .then((model) => {
 | |
|                         const baseUrl = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PageConfig.getBaseUrl();
 | |
|                         opener.open({
 | |
|                             prefix: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.URLExt.join(baseUrl, 'tree'),
 | |
|                             path: model.path,
 | |
|                             target: '_blank',
 | |
|                         });
 | |
|                     });
 | |
|                 },
 | |
|             });
 | |
|         }
 | |
|         return new _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7__.RenderMimeRegistry({
 | |
|             initialFactories: _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7__.standardRendererFactories,
 | |
|             linkHandler: !docManager
 | |
|                 ? undefined
 | |
|                 : {
 | |
|                     handleLink: (node, path, id) => {
 | |
|                         // If node has the download attribute explicitly set, use the
 | |
|                         // default browser downloading behavior.
 | |
|                         if (node.tagName === 'A' && node.hasAttribute('download')) {
 | |
|                             return;
 | |
|                         }
 | |
|                         app.commandLinker.connectNode(node, CommandIDs.handleLink, {
 | |
|                             path,
 | |
|                             id,
 | |
|                         });
 | |
|                     },
 | |
|                 },
 | |
|             latexTypesetter: latexTypesetter !== null && latexTypesetter !== void 0 ? latexTypesetter : undefined,
 | |
|             markdownParser: markdownParser !== null && markdownParser !== void 0 ? markdownParser : undefined,
 | |
|             translator: translator !== null && translator !== void 0 ? translator : undefined,
 | |
|             sanitizer: sanitizer !== null && sanitizer !== void 0 ? sanitizer : undefined,
 | |
|         });
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * The default Jupyter Notebook application shell.
 | |
|  */
 | |
| const shell = {
 | |
|     id: '@jupyter-notebook/application-extension:shell',
 | |
|     description: 'The default Jupyter Notebook application shell.',
 | |
|     autoStart: true,
 | |
|     provides: _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.INotebookShell,
 | |
|     optional: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_8__.ISettingRegistry],
 | |
|     activate: (app, settingRegistry) => {
 | |
|         if (!(app.shell instanceof _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.NotebookShell)) {
 | |
|             throw new Error(`${shell.id} did not find a NotebookShell instance.`);
 | |
|         }
 | |
|         const notebookShell = app.shell;
 | |
|         if (settingRegistry) {
 | |
|             settingRegistry
 | |
|                 .load(shell.id)
 | |
|                 .then((settings) => {
 | |
|                 // Add a layer of customization to support app shell mode
 | |
|                 const customLayout = settings.composite['layout'];
 | |
|                 // Restore the layout.
 | |
|                 void notebookShell.restoreLayout(customLayout);
 | |
|             })
 | |
|                 .catch((reason) => {
 | |
|                 console.error('Fail to load settings for the layout restorer.');
 | |
|                 console.error(reason);
 | |
|             });
 | |
|         }
 | |
|         return notebookShell;
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * The default splash screen provider.
 | |
|  */
 | |
| const splash = {
 | |
|     id: '@jupyter-notebook/application-extension:splash',
 | |
|     description: 'Provides an empty splash screen.',
 | |
|     autoStart: true,
 | |
|     provides: _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ISplashScreen,
 | |
|     activate: (app) => {
 | |
|         const { restored } = app;
 | |
|         const splash = document.createElement('div');
 | |
|         splash.style.position = 'absolute';
 | |
|         splash.style.width = '100%';
 | |
|         splash.style.height = '100%';
 | |
|         splash.style.zIndex = '10';
 | |
|         return {
 | |
|             show: (light = true) => {
 | |
|                 splash.style.backgroundColor = light ? 'white' : '#111111';
 | |
|                 document.body.appendChild(splash);
 | |
|                 return new _lumino_disposable__WEBPACK_IMPORTED_MODULE_13__.DisposableDelegate(async () => {
 | |
|                     await restored;
 | |
|                     document.body.removeChild(splash);
 | |
|                 });
 | |
|             },
 | |
|         };
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * The default JupyterLab application status provider.
 | |
|  */
 | |
| const status = {
 | |
|     id: '@jupyter-notebook/application-extension:status',
 | |
|     description: 'The default JupyterLab application status provider.',
 | |
|     autoStart: true,
 | |
|     provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILabStatus,
 | |
|     activate: (app) => {
 | |
|         if (!(app instanceof _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.NotebookApp)) {
 | |
|             throw new Error(`${status.id} must be activated in Jupyter Notebook.`);
 | |
|         }
 | |
|         return app.status;
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * A plugin to display the document title in the browser tab title
 | |
|  */
 | |
| const tabTitle = {
 | |
|     id: '@jupyter-notebook/application-extension:tab-title',
 | |
|     description: 'A plugin to display the document title in the browser tab title.',
 | |
|     autoStart: true,
 | |
|     requires: [_jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.INotebookShell],
 | |
|     activate: (app, shell) => {
 | |
|         const setTabTitle = () => {
 | |
|             const current = shell.currentWidget;
 | |
|             if (current instanceof _jupyterlab_console__WEBPACK_IMPORTED_MODULE_2__.ConsolePanel) {
 | |
|                 const update = () => {
 | |
|                     const title = current.sessionContext.path || current.sessionContext.name;
 | |
|                     const basename = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PathExt.basename(title);
 | |
|                     // Strip the ".ipynb" suffix from filenames for display in tab titles.
 | |
|                     document.title = basename.replace(STRIP_IPYNB, '');
 | |
|                 };
 | |
|                 current.sessionContext.sessionChanged.connect(update);
 | |
|                 update();
 | |
|                 return;
 | |
|             }
 | |
|             else if (current instanceof _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_5__.DocumentWidget) {
 | |
|                 const update = () => {
 | |
|                     const basename = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PathExt.basename(current.context.path);
 | |
|                     document.title = basename.replace(STRIP_IPYNB, '');
 | |
|                 };
 | |
|                 current.context.pathChanged.connect(update);
 | |
|                 update();
 | |
|             }
 | |
|         };
 | |
|         shell.currentChanged.connect(setTabTitle);
 | |
|         setTabTitle();
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * A plugin to display and rename the title of a file
 | |
|  */
 | |
| const title = {
 | |
|     id: '@jupyter-notebook/application-extension:title',
 | |
|     description: 'A plugin to display and rename the title of a file.',
 | |
|     autoStart: true,
 | |
|     requires: [_jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.INotebookShell, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__.ITranslator],
 | |
|     optional: [_jupyterlab_docmanager__WEBPACK_IMPORTED_MODULE_4__.IDocumentManager, _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IRouter, _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.IToolbarWidgetRegistry],
 | |
|     activate: (app, shell, translator, docManager, router, toolbarRegistry) => {
 | |
|         const { commands } = app;
 | |
|         const trans = translator.load('notebook');
 | |
|         const node = document.createElement('div');
 | |
|         if (toolbarRegistry) {
 | |
|             toolbarRegistry.addFactory('TopBar', 'widgetTitle', (toolbar) => {
 | |
|                 const widget = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_14__.Widget({ node });
 | |
|                 widget.id = 'jp-title';
 | |
|                 return widget;
 | |
|             });
 | |
|         }
 | |
|         const addTitle = async () => {
 | |
|             const current = shell.currentWidget;
 | |
|             if (!current || !(current instanceof _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_5__.DocumentWidget)) {
 | |
|                 return;
 | |
|             }
 | |
|             if (node.children.length > 0) {
 | |
|                 return;
 | |
|             }
 | |
|             const h = document.createElement('h1');
 | |
|             h.textContent = current.title.label.replace(STRIP_IPYNB, '');
 | |
|             node.appendChild(h);
 | |
|             node.style.marginLeft = '10px';
 | |
|             if (!docManager) {
 | |
|                 return;
 | |
|             }
 | |
|             const isEnabled = () => {
 | |
|                 const { currentWidget } = shell;
 | |
|                 return !!(currentWidget && docManager.contextForWidget(currentWidget));
 | |
|             };
 | |
|             commands.addCommand(CommandIDs.duplicate, {
 | |
|                 label: () => trans.__('Duplicate'),
 | |
|                 isEnabled,
 | |
|                 execute: async () => {
 | |
|                     if (!isEnabled()) {
 | |
|                         return;
 | |
|                     }
 | |
|                     // Duplicate the file, and open the new file.
 | |
|                     const result = await docManager.duplicate(current.context.path);
 | |
|                     await commands.execute('docmanager:open', { path: result.path });
 | |
|                 },
 | |
|             });
 | |
|             commands.addCommand(CommandIDs.rename, {
 | |
|                 label: () => trans.__('Rename…'),
 | |
|                 isEnabled,
 | |
|                 execute: async () => {
 | |
|                     var _a;
 | |
|                     if (!isEnabled()) {
 | |
|                         return;
 | |
|                     }
 | |
|                     try {
 | |
|                         const result = await (0,_jupyterlab_docmanager__WEBPACK_IMPORTED_MODULE_4__.renameDialog)(docManager, current.context);
 | |
|                         // activate the current widget to bring the focus
 | |
|                         if (current) {
 | |
|                             current.activate();
 | |
|                         }
 | |
|                         if (result === null) {
 | |
|                             return;
 | |
|                         }
 | |
|                     }
 | |
|                     catch (error) {
 | |
|                         (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.showErrorMessage)(trans.__('Rename Error'), error.message ||
 | |
|                             trans.__('An error occurred while renaming the file.'));
 | |
|                         return;
 | |
|                     }
 | |
|                     const newPath = current.context.path;
 | |
|                     const basename = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PathExt.basename(newPath);
 | |
|                     h.textContent = basename.replace(STRIP_IPYNB, '');
 | |
|                     if (!router) {
 | |
|                         return;
 | |
|                     }
 | |
|                     const matches = (_a = router.current.path.match(TREE_PATTERN)) !== null && _a !== void 0 ? _a : [];
 | |
|                     const [, route, path] = matches;
 | |
|                     if (!route || !path) {
 | |
|                         return;
 | |
|                     }
 | |
|                     const encoded = encodeURIComponent(newPath);
 | |
|                     router.navigate(`/${route}/${encoded}`, {
 | |
|                         skipRouting: true,
 | |
|                     });
 | |
|                 },
 | |
|             });
 | |
|             node.onclick = async () => {
 | |
|                 void commands.execute(CommandIDs.rename);
 | |
|             };
 | |
|         };
 | |
|         shell.currentChanged.connect(addTitle);
 | |
|         void addTitle();
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * Plugin to toggle the top header visibility.
 | |
|  */
 | |
| const topVisibility = {
 | |
|     id: '@jupyter-notebook/application-extension:top',
 | |
|     description: 'Plugin to toggle the top header visibility.',
 | |
|     requires: [_jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.INotebookShell, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__.ITranslator],
 | |
|     optional: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_8__.ISettingRegistry, _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ICommandPalette],
 | |
|     activate: (app, notebookShell, translator, settingRegistry, palette) => {
 | |
|         const trans = translator.load('notebook');
 | |
|         const top = notebookShell.top;
 | |
|         const pluginId = topVisibility.id;
 | |
|         app.commands.addCommand(CommandIDs.toggleTop, {
 | |
|             label: trans.__('Show Header'),
 | |
|             execute: () => {
 | |
|                 top.setHidden(top.isVisible);
 | |
|                 if (settingRegistry) {
 | |
|                     void settingRegistry.set(pluginId, 'visible', top.isVisible ? 'yes' : 'no');
 | |
|                 }
 | |
|             },
 | |
|             isToggled: () => top.isVisible,
 | |
|         });
 | |
|         let adjustToScreen = false;
 | |
|         if (settingRegistry) {
 | |
|             const loadSettings = settingRegistry.load(pluginId);
 | |
|             const updateSettings = (settings) => {
 | |
|                 // 'visible' property from user preferences or default settings
 | |
|                 let visible = settings.get('visible').composite;
 | |
|                 if (settings.user.visible !== undefined) {
 | |
|                     visible = settings.user.visible;
 | |
|                 }
 | |
|                 top.setHidden(visible === 'no');
 | |
|                 // adjust to screen from user preferences or default settings
 | |
|                 adjustToScreen = visible === 'automatic';
 | |
|             };
 | |
|             Promise.all([loadSettings, app.restored])
 | |
|                 .then(([settings]) => {
 | |
|                 updateSettings(settings);
 | |
|                 settings.changed.connect((settings) => {
 | |
|                     updateSettings(settings);
 | |
|                 });
 | |
|             })
 | |
|                 .catch((reason) => {
 | |
|                 console.error(reason.message);
 | |
|             });
 | |
|         }
 | |
|         if (palette) {
 | |
|             palette.addItem({ command: CommandIDs.toggleTop, category: 'View' });
 | |
|         }
 | |
|         const onChanged = () => {
 | |
|             if (!adjustToScreen) {
 | |
|                 return;
 | |
|             }
 | |
|             if (app.format === 'desktop') {
 | |
|                 notebookShell.expandTop();
 | |
|             }
 | |
|             else {
 | |
|                 notebookShell.collapseTop();
 | |
|             }
 | |
|         };
 | |
|         // listen on format change (mobile and desktop) to make the view more compact
 | |
|         app.formatChanged.connect(onChanged);
 | |
|     },
 | |
|     autoStart: true,
 | |
| };
 | |
| /**
 | |
|  * Plugin to toggle the left or right side panel's visibility.
 | |
|  */
 | |
| const sidePanelVisibility = {
 | |
|     id: '@jupyter-notebook/application-extension:sidepanel',
 | |
|     description: 'Plugin to toggle the visibility of left or right side panel.',
 | |
|     requires: [_jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.INotebookShell, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__.ITranslator],
 | |
|     optional: [_jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_6__.IMainMenu, _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ICommandPalette],
 | |
|     autoStart: true,
 | |
|     activate: (app, notebookShell, translator, menu, palette) => {
 | |
|         const trans = translator.load('notebook');
 | |
|         /* Arguments for togglePanel command:
 | |
|          * side, left or right area
 | |
|          * title, widget title to show in the menu
 | |
|          * id, widget ID to activate in the side panel
 | |
|          */
 | |
|         app.commands.addCommand(CommandIDs.togglePanel, {
 | |
|             label: (args) => args['title'],
 | |
|             caption: (args) => {
 | |
|                 // We do not substitute the parameter into the string because the parameter is not
 | |
|                 // localized (e.g., it is always 'left') even though the string is localized.
 | |
|                 if (args['side'] === 'left') {
 | |
|                     return trans.__('Show %1 in the left sidebar', args['title']);
 | |
|                 }
 | |
|                 else if (args['side'] === 'right') {
 | |
|                     return trans.__('Show %1 in the right sidebar', args['title']);
 | |
|                 }
 | |
|                 return trans.__('Show %1 in the sidebar', args['title']);
 | |
|             },
 | |
|             execute: (args) => {
 | |
|                 var _a, _b;
 | |
|                 switch (args['side']) {
 | |
|                     case 'left':
 | |
|                         if (notebookShell.leftCollapsed) {
 | |
|                             notebookShell.expandLeft(args.id);
 | |
|                         }
 | |
|                         else if (((_a = notebookShell.leftHandler.currentWidget) === null || _a === void 0 ? void 0 : _a.id) !== args.id) {
 | |
|                             notebookShell.expandLeft(args.id);
 | |
|                         }
 | |
|                         else {
 | |
|                             notebookShell.collapseLeft();
 | |
|                             if (notebookShell.currentWidget) {
 | |
|                                 notebookShell.activateById(notebookShell.currentWidget.id);
 | |
|                             }
 | |
|                         }
 | |
|                         break;
 | |
|                     case 'right':
 | |
|                         if (notebookShell.rightCollapsed) {
 | |
|                             notebookShell.expandRight(args.id);
 | |
|                         }
 | |
|                         else if (((_b = notebookShell.rightHandler.currentWidget) === null || _b === void 0 ? void 0 : _b.id) !== args.id) {
 | |
|                             notebookShell.expandRight(args.id);
 | |
|                         }
 | |
|                         else {
 | |
|                             notebookShell.collapseRight();
 | |
|                             if (notebookShell.currentWidget) {
 | |
|                                 notebookShell.activateById(notebookShell.currentWidget.id);
 | |
|                             }
 | |
|                         }
 | |
|                         break;
 | |
|                 }
 | |
|             },
 | |
|             isToggled: (args) => {
 | |
|                 switch (args['side']) {
 | |
|                     case 'left': {
 | |
|                         if (notebookShell.leftCollapsed) {
 | |
|                             return false;
 | |
|                         }
 | |
|                         const currentWidget = notebookShell.leftHandler.currentWidget;
 | |
|                         if (!currentWidget) {
 | |
|                             return false;
 | |
|                         }
 | |
|                         return currentWidget.id === args['id'];
 | |
|                     }
 | |
|                     case 'right': {
 | |
|                         if (notebookShell.rightCollapsed) {
 | |
|                             return false;
 | |
|                         }
 | |
|                         const currentWidget = notebookShell.rightHandler.currentWidget;
 | |
|                         if (!currentWidget) {
 | |
|                             return false;
 | |
|                         }
 | |
|                         return currentWidget.id === args['id'];
 | |
|                     }
 | |
|                 }
 | |
|                 return false;
 | |
|             },
 | |
|         });
 | |
|         const sidePanelMenu = {
 | |
|             left: null,
 | |
|             right: null,
 | |
|         };
 | |
|         /**
 | |
|          * The function which adds entries to the View menu for each widget of a side panel.
 | |
|          *
 | |
|          * @param area - 'left' or 'right', the area of the side panel.
 | |
|          * @param entryLabel - the name of the main entry in the View menu for that side panel.
 | |
|          * @returns - The disposable menu added to the View menu or null.
 | |
|          */
 | |
|         const updateMenu = (area, entryLabel) => {
 | |
|             var _a;
 | |
|             if (menu === null) {
 | |
|                 return null;
 | |
|             }
 | |
|             // Remove the previous menu entry for this side panel.
 | |
|             (_a = sidePanelMenu[area]) === null || _a === void 0 ? void 0 : _a.dispose();
 | |
|             // Creates a new menu entry and populates it with side panel widgets.
 | |
|             const newMenu = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_14__.Menu({ commands: app.commands });
 | |
|             newMenu.title.label = entryLabel;
 | |
|             const widgets = notebookShell.widgets(area);
 | |
|             let menuToAdd = false;
 | |
|             for (const widget of widgets) {
 | |
|                 newMenu.addItem({
 | |
|                     command: CommandIDs.togglePanel,
 | |
|                     args: {
 | |
|                         side: area,
 | |
|                         title: `Show ${widget.title.caption}`,
 | |
|                         id: widget.id,
 | |
|                     },
 | |
|                 });
 | |
|                 menuToAdd = true;
 | |
|             }
 | |
|             // If there are widgets, add the menu to the main menu entry.
 | |
|             if (menuToAdd) {
 | |
|                 sidePanelMenu[area] = menu.viewMenu.addItem({
 | |
|                     type: 'submenu',
 | |
|                     submenu: newMenu,
 | |
|                 });
 | |
|             }
 | |
|         };
 | |
|         app.restored.then(() => {
 | |
|             // Create menu entries for the left and right panel.
 | |
|             if (menu) {
 | |
|                 const getSidePanelLabel = (area) => {
 | |
|                     if (area === 'left') {
 | |
|                         return trans.__('Left Sidebar');
 | |
|                     }
 | |
|                     else {
 | |
|                         return trans.__('Right Sidebar');
 | |
|                     }
 | |
|                 };
 | |
|                 const leftArea = notebookShell.leftHandler.area;
 | |
|                 const leftLabel = getSidePanelLabel(leftArea);
 | |
|                 updateMenu(leftArea, leftLabel);
 | |
|                 const rightArea = notebookShell.rightHandler.area;
 | |
|                 const rightLabel = getSidePanelLabel(rightArea);
 | |
|                 updateMenu(rightArea, rightLabel);
 | |
|                 const handleSidePanelChange = (sidePanel, widget) => {
 | |
|                     const label = getSidePanelLabel(sidePanel.area);
 | |
|                     updateMenu(sidePanel.area, label);
 | |
|                 };
 | |
|                 notebookShell.leftHandler.widgetAdded.connect(handleSidePanelChange);
 | |
|                 notebookShell.leftHandler.widgetRemoved.connect(handleSidePanelChange);
 | |
|                 notebookShell.rightHandler.widgetAdded.connect(handleSidePanelChange);
 | |
|                 notebookShell.rightHandler.widgetRemoved.connect(handleSidePanelChange);
 | |
|             }
 | |
|             // Add palette entries for side panels.
 | |
|             if (palette) {
 | |
|                 const sidePanelPalette = new _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.SidePanelPalette({
 | |
|                     commandPalette: palette,
 | |
|                     command: CommandIDs.togglePanel,
 | |
|                 });
 | |
|                 notebookShell.leftHandler.widgets.forEach((widget) => {
 | |
|                     sidePanelPalette.addItem(widget, notebookShell.leftHandler.area);
 | |
|                 });
 | |
|                 notebookShell.rightHandler.widgets.forEach((widget) => {
 | |
|                     sidePanelPalette.addItem(widget, notebookShell.rightHandler.area);
 | |
|                 });
 | |
|                 // Update menu and palette when widgets are added or removed from side panels.
 | |
|                 notebookShell.leftHandler.widgetAdded.connect((sidePanel, widget) => {
 | |
|                     sidePanelPalette.addItem(widget, sidePanel.area);
 | |
|                 });
 | |
|                 notebookShell.leftHandler.widgetRemoved.connect((sidePanel, widget) => {
 | |
|                     sidePanelPalette.removeItem(widget, sidePanel.area);
 | |
|                 });
 | |
|                 notebookShell.rightHandler.widgetAdded.connect((sidePanel, widget) => {
 | |
|                     sidePanelPalette.addItem(widget, sidePanel.area);
 | |
|                 });
 | |
|                 notebookShell.rightHandler.widgetRemoved.connect((sidePanel, widget) => {
 | |
|                     sidePanelPalette.removeItem(widget, sidePanel.area);
 | |
|                 });
 | |
|             }
 | |
|         });
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * The default tree route resolver plugin.
 | |
|  */
 | |
| const tree = {
 | |
|     id: '@jupyter-notebook/application-extension:tree-resolver',
 | |
|     description: 'The default tree route resolver plugin.',
 | |
|     autoStart: true,
 | |
|     requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IRouter],
 | |
|     provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEnd.ITreeResolver,
 | |
|     activate: (app, router) => {
 | |
|         const { commands } = app;
 | |
|         const set = new _lumino_disposable__WEBPACK_IMPORTED_MODULE_13__.DisposableSet();
 | |
|         const delegate = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_12__.PromiseDelegate();
 | |
|         const treePattern = new RegExp('/(/tree/.*)?');
 | |
|         set.add(commands.addCommand(CommandIDs.resolveTree, {
 | |
|             execute: (async (args) => {
 | |
|                 var _a;
 | |
|                 if (set.isDisposed) {
 | |
|                     return;
 | |
|                 }
 | |
|                 const query = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.URLExt.queryStringToObject((_a = args.search) !== null && _a !== void 0 ? _a : '');
 | |
|                 const browser = query['file-browser-path'] || '';
 | |
|                 // Remove the file browser path from the query string.
 | |
|                 delete query['file-browser-path'];
 | |
|                 // Clean up artifacts immediately upon routing.
 | |
|                 set.dispose();
 | |
|                 delegate.resolve({ browser, file: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PageConfig.getOption('treePath') });
 | |
|             }),
 | |
|         }));
 | |
|         set.add(router.register({ command: CommandIDs.resolveTree, pattern: treePattern }));
 | |
|         // If a route is handled by the router without the tree command being
 | |
|         // invoked, resolve to `null` and clean up artifacts.
 | |
|         const listener = () => {
 | |
|             if (set.isDisposed) {
 | |
|                 return;
 | |
|             }
 | |
|             set.dispose();
 | |
|             delegate.resolve(null);
 | |
|         };
 | |
|         router.routed.connect(listener);
 | |
|         set.add(new _lumino_disposable__WEBPACK_IMPORTED_MODULE_13__.DisposableDelegate(() => {
 | |
|             router.routed.disconnect(listener);
 | |
|         }));
 | |
|         return { paths: delegate.promise };
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * Plugin to update tree path.
 | |
|  */
 | |
| const treePathUpdater = {
 | |
|     id: '@jupyter-notebook/application-extension:tree-updater',
 | |
|     description: 'Plugin to update tree path.',
 | |
|     requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IRouter],
 | |
|     provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ITreePathUpdater,
 | |
|     activate: (app, router) => {
 | |
|         function updateTreePath(treePath) {
 | |
|             if (treePath !== _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PageConfig.getOption('treePath')) {
 | |
|                 const path = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.URLExt.join(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PageConfig.getOption('baseUrl') || '/', 'tree', _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.URLExt.encodeParts(treePath));
 | |
|                 router.navigate(path, { skipRouting: true });
 | |
|                 // Persist the new tree path to PageConfig as it is used elsewhere at runtime.
 | |
|                 _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__.PageConfig.setOption('treePath', treePath);
 | |
|             }
 | |
|         }
 | |
|         return updateTreePath;
 | |
|     },
 | |
|     autoStart: true,
 | |
| };
 | |
| /**
 | |
|  * Translator plugin
 | |
|  */
 | |
| const translator = {
 | |
|     id: '@jupyter-notebook/application-extension:translator',
 | |
|     description: 'Translator plugin',
 | |
|     requires: [_jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.INotebookShell, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__.ITranslator],
 | |
|     autoStart: true,
 | |
|     activate: (app, notebookShell, translator) => {
 | |
|         notebookShell.translator = translator;
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * Zen mode plugin
 | |
|  */
 | |
| const zen = {
 | |
|     id: '@jupyter-notebook/application-extension:zen',
 | |
|     description: 'Zen mode plugin.',
 | |
|     autoStart: true,
 | |
|     requires: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__.ITranslator],
 | |
|     optional: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ICommandPalette, _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__.INotebookShell],
 | |
|     activate: (app, translator, palette, notebookShell) => {
 | |
|         const { commands } = app;
 | |
|         const elem = document.documentElement;
 | |
|         const trans = translator.load('notebook');
 | |
|         const toggleOn = () => {
 | |
|             notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.collapseTop();
 | |
|             notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.menu.setHidden(true);
 | |
|             zenModeEnabled = true;
 | |
|         };
 | |
|         const toggleOff = () => {
 | |
|             notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.expandTop();
 | |
|             notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.menu.setHidden(false);
 | |
|             zenModeEnabled = false;
 | |
|         };
 | |
|         let zenModeEnabled = false;
 | |
|         commands.addCommand(CommandIDs.toggleZen, {
 | |
|             label: trans.__('Toggle Zen Mode'),
 | |
|             execute: () => {
 | |
|                 if (!zenModeEnabled) {
 | |
|                     elem.requestFullscreen();
 | |
|                     toggleOn();
 | |
|                 }
 | |
|                 else {
 | |
|                     document.exitFullscreen();
 | |
|                     toggleOff();
 | |
|                 }
 | |
|             },
 | |
|         });
 | |
|         document.addEventListener('fullscreenchange', () => {
 | |
|             if (!document.fullscreenElement) {
 | |
|                 toggleOff();
 | |
|             }
 | |
|         });
 | |
|         if (palette) {
 | |
|             palette.addItem({ command: CommandIDs.toggleZen, category: 'Mode' });
 | |
|         }
 | |
|     },
 | |
| };
 | |
| /**
 | |
|  * Export the plugins as default.
 | |
|  */
 | |
| const plugins = [
 | |
|     dirty,
 | |
|     info,
 | |
|     logo,
 | |
|     menus,
 | |
|     menuSpacer,
 | |
|     opener,
 | |
|     pages,
 | |
|     pathOpener,
 | |
|     paths,
 | |
|     rendermime,
 | |
|     shell,
 | |
|     sidePanelVisibility,
 | |
|     splash,
 | |
|     status,
 | |
|     tabTitle,
 | |
|     title,
 | |
|     topVisibility,
 | |
|     tree,
 | |
|     treePathUpdater,
 | |
|     translator,
 | |
|     zen,
 | |
| ];
 | |
| /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (plugins);
 | |
| 
 | |
| 
 | |
| /***/ })
 | |
| 
 | |
| }]);
 | |
| //# sourceMappingURL=8579.99a2cfdadca015d1340d.js.map?v=99a2cfdadca015d1340d
 |