diff --git a/notebook/static/notebook_core.d9cc5a1247ca2267f405.js b/notebook/static/notebook_core.d9cc5a1247ca2267f405.js new file mode 100644 index 0000000000..c9b205d49a --- /dev/null +++ b/notebook/static/notebook_core.d9cc5a1247ca2267f405.js @@ -0,0 +1,12319 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] = self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] || []).push([["notebook_core"],{ + +/***/ "../node_modules/@jupyterlab/application-extension/lib/index.js": +/*!**********************************************************************!*\ + !*** ../node_modules/@jupyterlab/application-extension/lib/index.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_CONTEXT_ITEM_RANK: () => (/* binding */ DEFAULT_CONTEXT_ITEM_RANK),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/application */ \"webpack/sharing/consume/default/@jupyterlab/application/@jupyterlab/application\");\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_property_inspector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/property-inspector */ \"webpack/sharing/consume/default/@jupyterlab/property-inspector/@jupyterlab/property-inspector\");\n/* harmony import */ var _jupyterlab_property_inspector__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_property_inspector__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @jupyterlab/statedb */ \"webpack/sharing/consume/default/@jupyterlab/statedb/@jupyterlab/statedb\");\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @jupyterlab/statusbar */ \"webpack/sharing/consume/default/@jupyterlab/statusbar/@jupyterlab/statusbar\");\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _lumino_commands__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @lumino/commands */ \"webpack/sharing/consume/default/@lumino/commands/@lumino/commands\");\n/* harmony import */ var _lumino_commands__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_lumino_commands__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @lumino/disposable */ \"webpack/sharing/consume/default/@lumino/disposable/@lumino/disposable\");\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_lumino_disposable__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var _topbar__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./topbar */ \"../node_modules/@jupyterlab/application-extension/lib/topbar.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/**\n * @packageDocumentation\n * @module application-extension\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Default context menu item rank\n */\nconst DEFAULT_CONTEXT_ITEM_RANK = 100;\n/**\n * The command IDs used by the application plugin.\n */\nvar CommandIDs;\n(function (CommandIDs) {\n CommandIDs.activateNextTab = 'application:activate-next-tab';\n CommandIDs.activatePreviousTab = 'application:activate-previous-tab';\n CommandIDs.activateNextTabBar = 'application:activate-next-tab-bar';\n CommandIDs.activatePreviousTabBar = 'application:activate-previous-tab-bar';\n CommandIDs.close = 'application:close';\n CommandIDs.closeOtherTabs = 'application:close-other-tabs';\n CommandIDs.closeRightTabs = 'application:close-right-tabs';\n CommandIDs.closeAll = 'application:close-all';\n CommandIDs.setMode = 'application:set-mode';\n CommandIDs.showPropertyPanel = 'property-inspector:show-panel';\n CommandIDs.resetLayout = 'application:reset-layout';\n CommandIDs.toggleContextMenu = 'application:toggle-context-menu';\n CommandIDs.toggleHeader = 'application:toggle-header';\n CommandIDs.toggleMode = 'application:toggle-mode';\n CommandIDs.toggleLeftArea = 'application:toggle-left-area';\n CommandIDs.toggleRightArea = 'application:toggle-right-area';\n CommandIDs.toggleSideTabBar = 'application:toggle-side-tabbar';\n CommandIDs.toggleSidebarWidget = 'application:toggle-sidebar-widget';\n CommandIDs.togglePresentationMode = 'application:toggle-presentation-mode';\n CommandIDs.toggleFullscreenMode = 'application:toggle-fullscreen-mode';\n CommandIDs.tree = 'router:tree';\n CommandIDs.switchSidebar = 'sidebar:switch';\n})(CommandIDs || (CommandIDs = {}));\n/**\n * A plugin to register the commands for the main application.\n */\nconst mainCommands = {\n id: '@jupyterlab/application-extension:commands',\n description: 'Adds commands related to the shell.',\n autoStart: true,\n requires: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7__.ITranslator],\n optional: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILabShell, _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ICommandPalette],\n activate: (app, translator, labShell, palette) => {\n var _a;\n const { commands, shell } = app;\n const trans = translator.load('jupyterlab');\n const category = trans.__('Main Area');\n // Add Command to override the JLab context menu.\n commands.addCommand(_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEndContextMenu.contextMenu, {\n label: trans.__('Shift+Right Click for Browser Menu'),\n isEnabled: () => false,\n execute: () => void 0\n });\n // Returns the widget associated with the most recent contextmenu event.\n const contextMenuWidget = () => {\n const test = (node) => !!node.dataset.id;\n const node = app.contextMenuHitTest(test);\n if (!node) {\n // Fall back to active widget if path cannot be obtained from event.\n return shell.currentWidget;\n }\n return ((0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_9__.find)(shell.widgets('main'), widget => widget.id === node.dataset.id) ||\n shell.currentWidget);\n };\n // Closes an array of widgets.\n const closeWidgets = (widgets) => {\n widgets.forEach(widget => widget.close());\n };\n // Find the tab area for a widget within a specific dock area.\n const findTab = (area, widget) => {\n if (area.type === 'tab-area') {\n return area.widgets.includes(widget) ? area : null;\n }\n if (area.type === 'split-area') {\n for (const child of area.children) {\n const found = findTab(child, widget);\n if (found) {\n return found;\n }\n }\n }\n return null;\n };\n // Find the tab area for a widget within the main dock area.\n const tabAreaFor = (widget) => {\n var _a;\n const layout = labShell === null || labShell === void 0 ? void 0 : labShell.saveLayout();\n const mainArea = layout === null || layout === void 0 ? void 0 : layout.mainArea;\n if (!mainArea || _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getOption('mode') !== 'multiple-document') {\n return null;\n }\n const area = (_a = mainArea.dock) === null || _a === void 0 ? void 0 : _a.main;\n return area ? findTab(area, widget) : null;\n };\n // Returns an array of all widgets to the right of a widget in a tab area.\n const widgetsRightOf = (widget) => {\n const { id } = widget;\n const tabArea = tabAreaFor(widget);\n const widgets = tabArea ? tabArea.widgets || [] : [];\n const index = widgets.findIndex(widget => widget.id === id);\n if (index < 0) {\n return [];\n }\n return widgets.slice(index + 1);\n };\n // Gets and returns the dataId of currently active tab in the specified sidebar (left or right)\n // or an empty string\n const activeSidePanelWidget = (side) => {\n // default active element is luancher (luancher-0)\n let activeTab;\n if (side != 'left' && side != 'right') {\n throw Error(`Unsupported sidebar: ${side}`);\n }\n if (side === 'left') {\n activeTab = document.querySelector('.lm-TabBar-tab.lm-mod-current');\n }\n else {\n const query = document.querySelectorAll('.lm-TabBar-tab.lm-mod-current');\n activeTab = query[query.length - 1];\n }\n const activeTabDataId = activeTab === null || activeTab === void 0 ? void 0 : activeTab.getAttribute('data-id');\n if (activeTabDataId) {\n return activeTabDataId === null || activeTabDataId === void 0 ? void 0 : activeTabDataId.toString();\n }\n else {\n return '';\n }\n };\n // Sets tab focus on the element\n function setTabFocus(focusElement) {\n if (focusElement) {\n focusElement.focus();\n }\n }\n commands.addCommand(CommandIDs.close, {\n label: () => trans.__('Close Tab'),\n isEnabled: () => {\n const widget = contextMenuWidget();\n return !!widget && widget.title.closable;\n },\n execute: () => {\n const widget = contextMenuWidget();\n if (widget) {\n widget.close();\n }\n }\n });\n commands.addCommand(CommandIDs.closeOtherTabs, {\n label: () => trans.__('Close All Other Tabs'),\n isEnabled: () => {\n // Ensure there are at least two widgets.\n return (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_9__.some)(shell.widgets('main'), (_, i) => i === 1);\n },\n execute: () => {\n const widget = contextMenuWidget();\n if (!widget) {\n return;\n }\n const { id } = widget;\n for (const widget of shell.widgets('main')) {\n if (widget.id !== id) {\n widget.close();\n }\n }\n }\n });\n commands.addCommand(CommandIDs.closeRightTabs, {\n label: () => trans.__('Close Tabs to Right'),\n isEnabled: () => !!contextMenuWidget() &&\n widgetsRightOf(contextMenuWidget()).length > 0,\n execute: () => {\n const widget = contextMenuWidget();\n if (!widget) {\n return;\n }\n closeWidgets(widgetsRightOf(widget));\n }\n });\n (_a = shell.currentChanged) === null || _a === void 0 ? void 0 : _a.connect(() => {\n [\n CommandIDs.close,\n CommandIDs.closeOtherTabs,\n CommandIDs.closeRightTabs\n ].forEach(cmd => commands.notifyCommandChanged(cmd));\n });\n if (labShell) {\n commands.addCommand(CommandIDs.activateNextTab, {\n label: trans.__('Activate Next Tab'),\n execute: () => {\n labShell.activateNextTab();\n }\n });\n commands.addCommand(CommandIDs.activatePreviousTab, {\n label: trans.__('Activate Previous Tab'),\n execute: () => {\n labShell.activatePreviousTab();\n }\n });\n commands.addCommand(CommandIDs.activateNextTabBar, {\n label: trans.__('Activate Next Tab Bar'),\n execute: () => {\n labShell.activateNextTabBar();\n }\n });\n commands.addCommand(CommandIDs.activatePreviousTabBar, {\n label: trans.__('Activate Previous Tab Bar'),\n execute: () => {\n labShell.activatePreviousTabBar();\n }\n });\n commands.addCommand(CommandIDs.closeAll, {\n label: trans.__('Close All Tabs'),\n execute: () => {\n labShell.closeAll();\n }\n });\n commands.addCommand(CommandIDs.toggleHeader, {\n label: trans.__('Show Header'),\n execute: () => {\n if (labShell.mode === 'single-document') {\n labShell.toggleTopInSimpleModeVisibility();\n }\n },\n isToggled: () => labShell.isTopInSimpleModeVisible(),\n isVisible: () => labShell.mode === 'single-document'\n });\n commands.addCommand(CommandIDs.toggleLeftArea, {\n label: trans.__('Show Left Sidebar'),\n execute: () => {\n if (labShell.leftCollapsed) {\n labShell.expandLeft();\n }\n else {\n labShell.collapseLeft();\n if (labShell.currentWidget) {\n labShell.activateById(labShell.currentWidget.id);\n }\n }\n },\n isToggled: () => !labShell.leftCollapsed,\n isEnabled: () => !labShell.isEmpty('left')\n });\n commands.addCommand(CommandIDs.toggleRightArea, {\n label: trans.__('Show Right Sidebar'),\n execute: () => {\n if (labShell.rightCollapsed) {\n labShell.expandRight();\n }\n else {\n labShell.collapseRight();\n if (labShell.currentWidget) {\n labShell.activateById(labShell.currentWidget.id);\n }\n }\n },\n isToggled: () => !labShell.rightCollapsed,\n isEnabled: () => !labShell.isEmpty('right')\n });\n commands.addCommand(CommandIDs.toggleSidebarWidget, {\n label: args => args === undefined ||\n args.side === undefined ||\n args.index === undefined\n ? trans.__('Toggle Sidebar Element')\n : args.side === 'right'\n ? trans.__('Toggle Element %1 in Right Sidebar', parseInt(args.index, 10) + 1)\n : trans.__('Toggle Element %1 in Left Sidebar', parseInt(args.index, 10) + 1),\n execute: args => {\n const index = parseInt(args.index, 10);\n if (args.side != 'left' && args.side != 'right') {\n throw Error(`Unsupported sidebar: ${args.side}`);\n }\n const widgets = Array.from(labShell.widgets(args.side));\n if (index >= widgets.length) {\n return;\n }\n const widgetId = widgets[index].id;\n const focusElement = document.querySelector(\"[data-id='\" + widgetId + \"']\");\n if (activeSidePanelWidget(args.side) === widgetId) {\n if (args.side == 'left') {\n labShell.collapseLeft();\n setTabFocus(focusElement);\n }\n if (args.side == 'right') {\n labShell.collapseRight();\n setTabFocus(focusElement);\n }\n }\n else {\n labShell.activateById(widgetId);\n setTabFocus(focusElement);\n }\n }\n });\n commands.addCommand(CommandIDs.toggleSideTabBar, {\n label: args => args.side === 'right'\n ? trans.__('Show Right Activity Bar')\n : trans.__('Show Left Activity Bar'),\n execute: args => {\n if (args.side === 'right') {\n labShell.toggleSideTabBarVisibility('right');\n }\n else {\n labShell.toggleSideTabBarVisibility('left');\n }\n },\n isToggled: args => args.side === 'right'\n ? labShell.isSideTabBarVisible('right')\n : labShell.isSideTabBarVisible('left'),\n isEnabled: args => args.side === 'right'\n ? !labShell.isEmpty('right')\n : !labShell.isEmpty('left')\n });\n commands.addCommand(CommandIDs.togglePresentationMode, {\n label: () => trans.__('Presentation Mode'),\n execute: () => {\n labShell.presentationMode = !labShell.presentationMode;\n },\n isToggled: () => labShell.presentationMode,\n isVisible: () => true\n });\n commands.addCommand(CommandIDs.toggleFullscreenMode, {\n label: trans.__('Fullscreen Mode'),\n execute: () => {\n if (document.fullscreenElement === null ||\n document.fullscreenElement === undefined) {\n document.documentElement.requestFullscreen().catch(reason => {\n console.error('Failed to enter fullscreen mode.', reason);\n });\n }\n else if (document.fullscreenElement !== null) {\n document.exitFullscreen().catch(reason => {\n console.error('Failed to exit fullscreen mode.', reason);\n });\n }\n },\n isToggled: () => document.fullscreenElement !== null\n });\n commands.addCommand(CommandIDs.setMode, {\n label: args => args['mode']\n ? trans.__('Set %1 mode.', args['mode'])\n : trans.__('Set the layout `mode`.'),\n caption: trans.__('The layout `mode` can be \"single-document\" or \"multiple-document\".'),\n isVisible: args => {\n const mode = args['mode'];\n return mode === 'single-document' || mode === 'multiple-document';\n },\n execute: args => {\n const mode = args['mode'];\n if (mode === 'single-document' || mode === 'multiple-document') {\n labShell.mode = mode;\n return;\n }\n throw new Error(`Unsupported application shell mode: ${mode}`);\n }\n });\n commands.addCommand(CommandIDs.toggleMode, {\n label: trans.__('Simple Interface'),\n isToggled: () => labShell.mode === 'single-document',\n execute: () => {\n const args = labShell.mode === 'multiple-document'\n ? { mode: 'single-document' }\n : { mode: 'multiple-document' };\n return commands.execute(CommandIDs.setMode, args);\n }\n });\n commands.addCommand(CommandIDs.resetLayout, {\n label: trans.__('Reset Default Layout'),\n execute: () => {\n // Turn off presentation mode\n if (labShell.presentationMode) {\n commands\n .execute(CommandIDs.togglePresentationMode)\n .catch(reason => {\n console.error('Failed to undo presentation mode.', reason);\n });\n }\n // Turn off fullscreen mode\n if (document.fullscreenElement !== null ||\n document.fullscreenElement !== undefined) {\n commands.execute(CommandIDs.toggleFullscreenMode).catch(reason => {\n console.error('Failed to exit fullscreen mode.', reason);\n });\n }\n // Display top header\n if (labShell.mode === 'single-document' &&\n !labShell.isTopInSimpleModeVisible()) {\n commands.execute(CommandIDs.toggleHeader).catch(reason => {\n console.error('Failed to display title header.', reason);\n });\n }\n // Display side tabbar\n ['left', 'right'].forEach(side => {\n if (!labShell.isSideTabBarVisible(side) &&\n !labShell.isEmpty(side)) {\n commands\n .execute(CommandIDs.toggleSideTabBar, { side })\n .catch(reason => {\n console.error(`Failed to show ${side} activity bar.`, reason);\n });\n }\n });\n // Some actions are also trigger indirectly\n // - by listening to this command execution.\n }\n });\n }\n if (palette) {\n [\n CommandIDs.activateNextTab,\n CommandIDs.activatePreviousTab,\n CommandIDs.activateNextTabBar,\n CommandIDs.activatePreviousTabBar,\n CommandIDs.close,\n CommandIDs.closeAll,\n CommandIDs.closeOtherTabs,\n CommandIDs.closeRightTabs,\n CommandIDs.toggleHeader,\n CommandIDs.toggleLeftArea,\n CommandIDs.toggleRightArea,\n CommandIDs.togglePresentationMode,\n CommandIDs.toggleFullscreenMode,\n CommandIDs.toggleMode,\n CommandIDs.resetLayout\n ].forEach(command => palette.addItem({ command, category }));\n ['right', 'left'].forEach(side => {\n palette.addItem({\n command: CommandIDs.toggleSideTabBar,\n category,\n args: { side }\n });\n });\n }\n }\n};\n/**\n * The main extension.\n */\nconst main = {\n id: '@jupyterlab/application-extension:main',\n description: 'Initializes the application and provides the URL tree path handler.',\n requires: [\n _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IRouter,\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.IWindowResolver,\n _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7__.ITranslator,\n _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEnd.ITreeResolver\n ],\n optional: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IConnectionLost],\n provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ITreePathUpdater,\n activate: (app, router, resolver, translator, treeResolver, connectionLost) => {\n const trans = translator.load('jupyterlab');\n if (!(app instanceof _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterLab)) {\n throw new Error(`${main.id} must be activated in JupyterLab.`);\n }\n // These two internal state variables are used to manage the two source\n // of the tree part of the URL being updated: 1) path of the active document,\n // 2) path of the default browser if the active main area widget isn't a document.\n let _docTreePath = '';\n let _defaultBrowserTreePath = '';\n function updateTreePath(treePath) {\n // Wait for tree resolver to finish before updating the path because it use the PageConfig['treePath']\n void treeResolver.paths.then(() => {\n _defaultBrowserTreePath = treePath;\n if (!_docTreePath) {\n const url = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getUrl({ treePath });\n const path = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.parse(url).pathname;\n router.navigate(path, { skipRouting: true });\n // Persist the new tree path to PageConfig as it is used elsewhere at runtime.\n _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.setOption('treePath', treePath);\n }\n });\n }\n // Requiring the window resolver guarantees that the application extension\n // only loads if there is a viable window name. Otherwise, the application\n // will short-circuit and ask the user to navigate away.\n const workspace = resolver.name;\n console.debug(`Starting application in workspace: \"${workspace}\"`);\n // If there were errors registering plugins, tell the user.\n if (app.registerPluginErrors.length !== 0) {\n const body = (react__WEBPACK_IMPORTED_MODULE_14__.createElement(\"pre\", null, app.registerPluginErrors.map(e => e.message).join('\\n')));\n void (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.showErrorMessage)(trans.__('Error Registering Plugins'), {\n message: body\n });\n }\n // Watch the mode and update the page URL to /lab or /doc to reflect the\n // change.\n app.shell.modeChanged.connect((_, args) => {\n const url = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getUrl({ mode: args });\n const path = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.parse(url).pathname;\n router.navigate(path, { skipRouting: true });\n // Persist this mode change to PageConfig as it is used elsewhere at runtime.\n _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.setOption('mode', args);\n });\n // Wait for tree resolver to finish before updating the path because it use the PageConfig['treePath']\n void treeResolver.paths.then(() => {\n // Watch the path of the current widget in the main area and update the page\n // URL to reflect the change.\n app.shell.currentPathChanged.connect((_, args) => {\n const maybeTreePath = args.newValue;\n const treePath = maybeTreePath || _defaultBrowserTreePath;\n const url = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getUrl({ treePath: treePath });\n const path = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.parse(url).pathname;\n router.navigate(path, { skipRouting: true });\n // Persist the new tree path to PageConfig as it is used elsewhere at runtime.\n _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.setOption('treePath', treePath);\n _docTreePath = maybeTreePath;\n });\n });\n // If the connection to the server is lost, handle it with the\n // connection lost handler.\n connectionLost = connectionLost || _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ConnectionLost;\n app.serviceManager.connectionFailure.connect((manager, error) => connectionLost(manager, error, translator));\n const builder = app.serviceManager.builder;\n const build = () => {\n return builder\n .build()\n .then(() => {\n return (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n title: trans.__('Build Complete'),\n body: (react__WEBPACK_IMPORTED_MODULE_14__.createElement(\"div\", null,\n trans.__('Build successfully completed, reload page?'),\n react__WEBPACK_IMPORTED_MODULE_14__.createElement(\"br\", null),\n trans.__('You will lose any unsaved changes.'))),\n buttons: [\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({\n label: trans.__('Reload Without Saving'),\n actions: ['reload']\n }),\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: trans.__('Save and Reload') })\n ],\n hasClose: true\n });\n })\n .then(({ button: { accept, actions } }) => {\n if (accept) {\n void app.commands\n .execute('docmanager:save')\n .then(() => {\n router.reload();\n })\n .catch(err => {\n void (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.showErrorMessage)(trans.__('Save Failed'), {\n message: react__WEBPACK_IMPORTED_MODULE_14__.createElement(\"pre\", null, err.message)\n });\n });\n }\n else if (actions.includes('reload')) {\n router.reload();\n }\n })\n .catch(err => {\n void (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.showErrorMessage)(trans.__('Build Failed'), {\n message: react__WEBPACK_IMPORTED_MODULE_14__.createElement(\"pre\", null, err.message)\n });\n });\n };\n if (builder.isAvailable && builder.shouldCheck) {\n void builder.getStatus().then(response => {\n if (response.status === 'building') {\n return build();\n }\n if (response.status !== 'needed') {\n return;\n }\n const body = (react__WEBPACK_IMPORTED_MODULE_14__.createElement(\"div\", null,\n trans.__('JupyterLab build is suggested:'),\n react__WEBPACK_IMPORTED_MODULE_14__.createElement(\"br\", null),\n react__WEBPACK_IMPORTED_MODULE_14__.createElement(\"pre\", null, response.message)));\n void (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n title: trans.__('Build Recommended'),\n body,\n buttons: [\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton(),\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: trans.__('Build') })\n ]\n }).then(result => (result.button.accept ? build() : undefined));\n });\n }\n return updateTreePath;\n },\n autoStart: true\n};\n/**\n * Plugin to build the context menu from the settings.\n */\nconst contextMenuPlugin = {\n id: '@jupyterlab/application-extension:context-menu',\n description: 'Populates the context menu.',\n autoStart: true,\n requires: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__.ISettingRegistry, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7__.ITranslator],\n optional: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ICommandPalette],\n activate: (app, settingRegistry, translator, palette) => {\n const trans = translator.load('jupyterlab');\n function createMenu(options) {\n const menu = new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_8__.RankedMenu({ ...options, commands: app.commands });\n if (options.label) {\n menu.title.label = trans.__(options.label);\n }\n return menu;\n }\n // Load the context menu lately so plugins are loaded.\n app.started\n .then(() => {\n return Private.loadSettingsContextMenu(app.contextMenu, app.commands, settingRegistry, createMenu, translator);\n })\n .then(() => {\n if (palette) {\n palette === null || palette === void 0 ? void 0 : palette.addItem({\n category: trans.__('Settings'),\n command: CommandIDs.toggleContextMenu\n });\n }\n })\n .catch(reason => {\n console.error('Failed to load context menu items from settings registry.', reason);\n });\n }\n};\n/**\n * Check if the application is dirty before closing the browser tab.\n */\nconst dirty = {\n id: '@jupyterlab/application-extension:dirty',\n description: 'Adds safeguard dialog when closing the browser tab with unsaved modifications.',\n autoStart: true,\n requires: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7__.ITranslator],\n activate: (app, translator) => {\n if (!(app instanceof _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterLab)) {\n throw new Error(`${dirty.id} must be activated in JupyterLab.`);\n }\n const trans = translator.load('jupyterlab');\n const message = trans.__('Are you sure you want to exit JupyterLab?\\n\\nAny unsaved changes will be lost.');\n // The spec for the `beforeunload` event is implemented differently by\n // the different browser vendors. Consequently, the `event.returnValue`\n // attribute needs to set in addition to a return value being returned.\n // For more information, see:\n // https://developer.mozilla.org/en/docs/Web/Events/beforeunload\n window.addEventListener('beforeunload', event => {\n if (app.status.isDirty) {\n return (event.returnValue = message);\n }\n });\n }\n};\n/**\n * The default layout restorer provider.\n */\nconst layout = {\n id: '@jupyterlab/application-extension:layout',\n description: 'Provides the shell layout restorer.',\n requires: [_jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_5__.IStateDB, _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILabShell, _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__.ISettingRegistry],\n optional: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7__.ITranslator],\n activate: (app, state, labShell, settingRegistry, translator) => {\n const trans = (translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7__.nullTranslator).load('jupyterlab');\n const first = app.started;\n const registry = app.commands;\n const mode = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getOption('mode');\n const restorer = new _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.LayoutRestorer({\n connector: state,\n first,\n registry,\n mode\n });\n settingRegistry\n .load(shell.id)\n .then(settings => {\n var _a, _b;\n // Add a layer of customization to support app shell mode\n const customizedLayout = settings.composite['layout'];\n // Restore the layout.\n void labShell\n .restoreLayout(mode, restorer, {\n 'multiple-document': (_a = customizedLayout.multiple) !== null && _a !== void 0 ? _a : {},\n 'single-document': (_b = customizedLayout.single) !== null && _b !== void 0 ? _b : {}\n })\n .then(() => {\n labShell.layoutModified.connect(() => {\n void restorer.save(labShell.saveLayout());\n });\n settings.changed.connect(onSettingsChanged);\n Private.activateSidebarSwitcher(app, labShell, settings, trans);\n });\n })\n .catch(reason => {\n console.error('Fail to load settings for the layout restorer.');\n console.error(reason);\n });\n return restorer;\n async function onSettingsChanged(settings) {\n if (!_lumino_coreutils__WEBPACK_IMPORTED_MODULE_10__.JSONExt.deepEqual(settings.composite['layout'], {\n single: labShell.userLayout['single-document'],\n multiple: labShell.userLayout['multiple-document']\n })) {\n const result = await (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n title: trans.__('Information'),\n body: trans.__('User layout customization has changed. You may need to reload JupyterLab to see the changes.'),\n buttons: [\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton(),\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: trans.__('Reload') })\n ]\n });\n if (result.button.accept) {\n location.reload();\n }\n }\n }\n },\n autoStart: true,\n provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILayoutRestorer\n};\n/**\n * The default URL router provider.\n */\nconst router = {\n id: '@jupyterlab/application-extension:router',\n description: 'Provides the URL router',\n requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEnd.IPaths],\n activate: (app, paths) => {\n const { commands } = app;\n const base = paths.urls.base;\n const router = new _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.Router({ base, commands });\n void app.started.then(() => {\n // Route the very first request on load.\n void router.route();\n // Route all pop state events.\n window.addEventListener('popstate', () => {\n void router.route();\n });\n });\n return router;\n },\n autoStart: true,\n provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IRouter\n};\n/**\n * The default tree route resolver plugin.\n */\nconst tree = {\n id: '@jupyterlab/application-extension:tree-resolver',\n description: 'Provides the tree route resolver',\n autoStart: true,\n requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IRouter],\n provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEnd.ITreeResolver,\n activate: (app, router) => {\n const { commands } = app;\n const set = new _lumino_disposable__WEBPACK_IMPORTED_MODULE_12__.DisposableSet();\n const delegate = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_10__.PromiseDelegate();\n const treePattern = new RegExp('/(lab|doc)(/workspaces/[a-zA-Z0-9-_]+)?(/tree/.*)?');\n set.add(commands.addCommand(CommandIDs.tree, {\n execute: async (args) => {\n var _a;\n if (set.isDisposed) {\n return;\n }\n const query = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.queryStringToObject((_a = args.search) !== null && _a !== void 0 ? _a : '');\n const browser = query['file-browser-path'] || '';\n // Remove the file browser path from the query string.\n delete query['file-browser-path'];\n // Clean up artifacts immediately upon routing.\n set.dispose();\n delegate.resolve({ browser, file: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getOption('treePath') });\n }\n }));\n set.add(router.register({ command: CommandIDs.tree, pattern: treePattern }));\n // If a route is handled by the router without the tree command being\n // invoked, resolve to `null` and clean up artifacts.\n const listener = () => {\n if (set.isDisposed) {\n return;\n }\n set.dispose();\n delegate.resolve(null);\n };\n router.routed.connect(listener);\n set.add(new _lumino_disposable__WEBPACK_IMPORTED_MODULE_12__.DisposableDelegate(() => {\n router.routed.disconnect(listener);\n }));\n return { paths: delegate.promise };\n }\n};\n/**\n * The default URL not found extension.\n */\nconst notfound = {\n id: '@jupyterlab/application-extension:notfound',\n description: 'Defines the behavior for not found URL (aka route).',\n requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEnd.IPaths, _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IRouter, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7__.ITranslator],\n activate: (_, paths, router, translator) => {\n const trans = translator.load('jupyterlab');\n const bad = paths.urls.notFound;\n if (!bad) {\n return;\n }\n const base = router.base;\n const message = trans.__('The path: %1 was not found. JupyterLab redirected to: %2', bad, base);\n // Change the URL back to the base application URL.\n router.navigate('');\n void (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.showErrorMessage)(trans.__('Path Not Found'), { message });\n },\n autoStart: true\n};\n/**\n * Change the favicon changing based on the busy status;\n */\nconst busy = {\n id: '@jupyterlab/application-extension:faviconbusy',\n description: 'Handles the favicon depending on the application status.',\n requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILabStatus],\n activate: async (_, status) => {\n status.busySignal.connect((_, isBusy) => {\n const favicon = document.querySelector(`link[rel=\"icon\"]${isBusy ? '.idle.favicon' : '.busy.favicon'}`);\n if (!favicon) {\n return;\n }\n const newFavicon = document.querySelector(`link${isBusy ? '.busy.favicon' : '.idle.favicon'}`);\n if (!newFavicon) {\n return;\n }\n // If we have the two icons with the special classes, then toggle them.\n if (favicon !== newFavicon) {\n favicon.rel = '';\n newFavicon.rel = 'icon';\n // Firefox doesn't seem to recognize just changing rel, so we also\n // reinsert the link into the DOM.\n newFavicon.parentNode.replaceChild(newFavicon, newFavicon);\n }\n });\n },\n autoStart: true\n};\n/**\n * The default JupyterLab application shell.\n */\nconst shell = {\n id: '@jupyterlab/application-extension:shell',\n description: 'Provides the JupyterLab shell. It has an extended API compared to `app.shell`.',\n optional: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__.ISettingRegistry],\n activate: (app, settingRegistry) => {\n if (!(app.shell instanceof _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.LabShell)) {\n throw new Error(`${shell.id} did not find a LabShell instance.`);\n }\n if (settingRegistry) {\n void settingRegistry.load(shell.id).then(settings => {\n app.shell.updateConfig(settings.composite);\n settings.changed.connect(() => {\n app.shell.updateConfig(settings.composite);\n });\n });\n }\n return app.shell;\n },\n autoStart: true,\n provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILabShell\n};\n/**\n * The default JupyterLab application status provider.\n */\nconst status = {\n id: '@jupyterlab/application-extension:status',\n description: 'Provides the application status.',\n activate: (app) => {\n if (!(app instanceof _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterLab)) {\n throw new Error(`${status.id} must be activated in JupyterLab.`);\n }\n return app.status;\n },\n autoStart: true,\n provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILabStatus\n};\n/**\n * The default JupyterLab application-specific information provider.\n *\n * #### Notes\n * This plugin should only be used by plugins that specifically need to access\n * JupyterLab application information, e.g., listing extensions that have been\n * loaded or deferred within JupyterLab.\n */\nconst info = {\n id: '@jupyterlab/application-extension:info',\n description: 'Provides the application information.',\n activate: (app) => {\n if (!(app instanceof _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterLab)) {\n throw new Error(`${info.id} must be activated in JupyterLab.`);\n }\n return app.info;\n },\n autoStart: true,\n provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterLab.IInfo\n};\n/**\n * The default JupyterLab paths dictionary provider.\n */\nconst paths = {\n id: '@jupyterlab/application-extension:paths',\n description: 'Provides the application paths.',\n activate: (app) => {\n if (!(app instanceof _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterLab)) {\n throw new Error(`${paths.id} must be activated in JupyterLab.`);\n }\n return app.paths;\n },\n autoStart: true,\n provides: _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEnd.IPaths\n};\n/**\n * The default property inspector provider.\n */\nconst propertyInspector = {\n id: '@jupyterlab/application-extension:property-inspector',\n description: 'Provides the property inspector.',\n autoStart: true,\n requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILabShell, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7__.ITranslator],\n optional: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILayoutRestorer],\n provides: _jupyterlab_property_inspector__WEBPACK_IMPORTED_MODULE_3__.IPropertyInspectorProvider,\n activate: (app, labshell, translator, restorer) => {\n const trans = translator.load('jupyterlab');\n const widget = new _jupyterlab_property_inspector__WEBPACK_IMPORTED_MODULE_3__.SideBarPropertyInspectorProvider({\n shell: labshell,\n translator\n });\n widget.title.icon = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_8__.buildIcon;\n widget.title.caption = trans.__('Property Inspector');\n widget.id = 'jp-property-inspector';\n labshell.add(widget, 'right', { rank: 100, type: 'Property Inspector' });\n app.commands.addCommand(CommandIDs.showPropertyPanel, {\n label: trans.__('Property Inspector'),\n execute: () => {\n labshell.activateById(widget.id);\n }\n });\n if (restorer) {\n restorer.add(widget, 'jp-property-inspector');\n }\n return widget;\n }\n};\nconst jupyterLogo = {\n id: '@jupyterlab/application-extension:logo',\n description: 'Sets the application logo.',\n autoStart: true,\n requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILabShell],\n activate: (app, shell) => {\n const logo = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_13__.Widget();\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_8__.jupyterIcon.element({\n container: logo.node,\n elementPosition: 'center',\n margin: '2px 2px 2px 8px',\n height: 'auto',\n width: '16px'\n });\n logo.id = 'jp-MainLogo';\n shell.add(logo, 'top', { rank: 0 });\n }\n};\n/**\n * The simple interface mode switch in the status bar.\n */\nconst modeSwitchPlugin = {\n id: '@jupyterlab/application-extension:mode-switch',\n description: 'Adds the interface mode switch',\n requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILabShell, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_7__.ITranslator],\n optional: [_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_6__.IStatusBar, _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__.ISettingRegistry],\n activate: (app, labShell, translator, statusBar, settingRegistry) => {\n if (statusBar === null) {\n // Bail early\n return;\n }\n const trans = translator.load('jupyterlab');\n const modeSwitch = new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_8__.Switch();\n modeSwitch.id = 'jp-single-document-mode';\n modeSwitch.valueChanged.connect((_, args) => {\n labShell.mode = args.newValue ? 'single-document' : 'multiple-document';\n });\n labShell.modeChanged.connect((_, mode) => {\n modeSwitch.value = mode === 'single-document';\n });\n if (settingRegistry) {\n const loadSettings = settingRegistry.load(shell.id);\n const updateSettings = (settings) => {\n const startMode = settings.get('startMode').composite;\n if (startMode) {\n labShell.mode =\n startMode === 'single' ? 'single-document' : 'multiple-document';\n }\n };\n Promise.all([loadSettings, app.restored])\n .then(([settings]) => {\n updateSettings(settings);\n })\n .catch((reason) => {\n console.error(reason.message);\n });\n }\n // Show the current file browser shortcut in its title.\n const updateModeSwitchTitle = () => {\n const binding = app.commands.keyBindings.find(b => b.command === 'application:toggle-mode');\n if (binding) {\n const ks = binding.keys.map(_lumino_commands__WEBPACK_IMPORTED_MODULE_11__.CommandRegistry.formatKeystroke).join(', ');\n modeSwitch.caption = trans.__('Simple Interface (%1)', ks);\n }\n else {\n modeSwitch.caption = trans.__('Simple Interface');\n }\n };\n updateModeSwitchTitle();\n app.commands.keyBindingChanged.connect(() => {\n updateModeSwitchTitle();\n });\n modeSwitch.label = trans.__('Simple');\n statusBar.registerStatusItem(modeSwitchPlugin.id, {\n priority: 1,\n item: modeSwitch,\n align: 'left',\n rank: -1\n });\n },\n autoStart: true\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [\n contextMenuPlugin,\n dirty,\n main,\n mainCommands,\n layout,\n router,\n tree,\n notfound,\n busy,\n shell,\n status,\n info,\n modeSwitchPlugin,\n paths,\n propertyInspector,\n jupyterLogo,\n _topbar__WEBPACK_IMPORTED_MODULE_15__.topbar\n];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (plugins);\nvar Private;\n(function (Private) {\n async function displayInformation(trans) {\n const result = await (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n title: trans.__('Information'),\n body: trans.__('Context menu customization has changed. You will need to reload JupyterLab to see the changes.'),\n buttons: [\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton(),\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: trans.__('Reload') })\n ]\n });\n if (result.button.accept) {\n location.reload();\n }\n }\n async function loadSettingsContextMenu(contextMenu, commands, registry, menuFactory, translator) {\n var _a;\n const trans = translator.load('jupyterlab');\n const pluginId = contextMenuPlugin.id;\n let canonical = null;\n let loaded = {};\n /**\n * Populate the plugin's schema defaults.\n *\n * We keep track of disabled entries in case the plugin is loaded\n * after the menu initialization.\n */\n function populate(schema) {\n var _a, _b;\n loaded = {};\n const pluginDefaults = Object.keys(registry.plugins)\n .map(plugin => {\n var _a, _b;\n const items = (_b = (_a = registry.plugins[plugin].schema['jupyter.lab.menus']) === null || _a === void 0 ? void 0 : _a.context) !== null && _b !== void 0 ? _b : [];\n loaded[plugin] = items;\n return items;\n })\n .concat([(_b = (_a = schema['jupyter.lab.menus']) === null || _a === void 0 ? void 0 : _a.context) !== null && _b !== void 0 ? _b : []])\n .reduceRight((acc, val) => _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__.SettingRegistry.reconcileItems(acc, val, true), []);\n // Apply default value as last step to take into account overrides.json\n // The standard default being [] as the plugin must use `jupyter.lab.menus.context`\n // to define their default value.\n schema.properties.contextMenu.default = _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__.SettingRegistry.reconcileItems(pluginDefaults, schema.properties.contextMenu.default, true)\n // flatten one level\n .sort((a, b) => { var _a, _b; return ((_a = a.rank) !== null && _a !== void 0 ? _a : Infinity) - ((_b = b.rank) !== null && _b !== void 0 ? _b : Infinity); });\n }\n // Transform the plugin object to return different schema than the default.\n registry.transform(pluginId, {\n compose: plugin => {\n var _a, _b, _c, _d;\n // Only override the canonical schema the first time.\n if (!canonical) {\n canonical = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_10__.JSONExt.deepCopy(plugin.schema);\n populate(canonical);\n }\n const defaults = (_c = (_b = (_a = canonical.properties) === null || _a === void 0 ? void 0 : _a.contextMenu) === null || _b === void 0 ? void 0 : _b.default) !== null && _c !== void 0 ? _c : [];\n const user = {\n ...plugin.data.user,\n contextMenu: (_d = plugin.data.user.contextMenu) !== null && _d !== void 0 ? _d : []\n };\n const composite = {\n ...plugin.data.composite,\n contextMenu: _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__.SettingRegistry.reconcileItems(defaults, user.contextMenu, false)\n };\n plugin.data = { composite, user };\n return plugin;\n },\n fetch: plugin => {\n // Only override the canonical schema the first time.\n if (!canonical) {\n canonical = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_10__.JSONExt.deepCopy(plugin.schema);\n populate(canonical);\n }\n return {\n data: plugin.data,\n id: plugin.id,\n raw: plugin.raw,\n schema: canonical,\n version: plugin.version\n };\n }\n });\n // Repopulate the canonical variable after the setting registry has\n // preloaded all initial plugins.\n const settings = await registry.load(pluginId);\n // Set the suppress flag on document.body if necessary.\n const setDisabled = (settings) => {\n const root = document.body;\n const isDisabled = root.hasAttribute('data-jp-suppress-context-menu');\n const shouldDisable = settings.get('disabled').composite;\n if (isDisabled && !shouldDisable) {\n root.removeAttribute('data-jp-suppress-context-menu');\n }\n else if (shouldDisable && !isDisabled) {\n root.setAttribute('data-jp-suppress-context-menu', 'true');\n }\n };\n const contextItems = (_a = settings.composite.contextMenu) !== null && _a !== void 0 ? _a : [];\n // Create menu item for non-disabled element\n _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__.SettingRegistry.filterDisabledItems(contextItems).forEach(item => {\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.MenuFactory.addContextItem({\n // We have to set the default rank because Lumino is sorting the visible items\n rank: DEFAULT_CONTEXT_ITEM_RANK,\n ...item\n }, contextMenu, menuFactory);\n });\n settings.changed.connect(() => {\n var _a;\n // As extension may change the context menu through API,\n // prompt the user to reload if the menu has been updated.\n const newItems = (_a = settings.composite.contextMenu) !== null && _a !== void 0 ? _a : [];\n if (!_lumino_coreutils__WEBPACK_IMPORTED_MODULE_10__.JSONExt.deepEqual(contextItems, newItems)) {\n void displayInformation(trans);\n }\n setDisabled(settings);\n });\n registry.pluginChanged.connect(async (sender, plugin) => {\n var _a, _b, _c, _d;\n if (plugin !== pluginId) {\n // If the plugin changed its menu.\n const oldItems = (_a = loaded[plugin]) !== null && _a !== void 0 ? _a : [];\n const newItems = (_c = (_b = registry.plugins[plugin].schema['jupyter.lab.menus']) === null || _b === void 0 ? void 0 : _b.context) !== null && _c !== void 0 ? _c : [];\n if (!_lumino_coreutils__WEBPACK_IMPORTED_MODULE_10__.JSONExt.deepEqual(oldItems, newItems)) {\n if (loaded[plugin]) {\n // The plugin has changed, request the user to reload the UI\n await displayInformation(trans);\n }\n else {\n // The plugin was not yet loaded when the menu was built => update the menu\n loaded[plugin] = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_10__.JSONExt.deepCopy(newItems);\n // Merge potential disabled state\n const toAdd = (_d = _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__.SettingRegistry.reconcileItems(newItems, contextItems, false, false)) !== null && _d !== void 0 ? _d : [];\n _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__.SettingRegistry.filterDisabledItems(toAdd).forEach(item => {\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.MenuFactory.addContextItem({\n // We have to set the default rank because Lumino is sorting the visible items\n rank: DEFAULT_CONTEXT_ITEM_RANK,\n ...item\n }, contextMenu, menuFactory);\n });\n }\n }\n }\n });\n // Handle disabled status.\n setDisabled(settings);\n commands.addCommand(CommandIDs.toggleContextMenu, {\n label: trans.__('Enable Context Menu'),\n isToggleable: true,\n isToggled: () => !settings.get('disabled').composite,\n execute: () => void settings.set('disabled', !settings.get('disabled').composite)\n });\n }\n Private.loadSettingsContextMenu = loadSettingsContextMenu;\n function activateSidebarSwitcher(app, labShell, settings, trans) {\n // Add a command to switch a side panels's side\n app.commands.addCommand(CommandIDs.switchSidebar, {\n label: trans.__('Switch Sidebar Side'),\n execute: () => {\n // First, try to find the correct panel based on the application\n // context menu click. Bail if we don't find a sidebar for the widget.\n const contextNode = app.contextMenuHitTest(node => !!node.dataset.id);\n if (!contextNode) {\n return;\n }\n const id = contextNode.dataset['id'];\n const leftPanel = document.getElementById('jp-left-stack');\n const node = document.getElementById(id);\n let newLayout = null;\n // Move the panel to the other side.\n if (leftPanel && node && leftPanel.contains(node)) {\n const widget = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_9__.find)(labShell.widgets('left'), w => w.id === id);\n if (widget) {\n newLayout = labShell.move(widget, 'right');\n labShell.activateById(widget.id);\n }\n }\n else {\n const widget = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_9__.find)(labShell.widgets('right'), w => w.id === id);\n if (widget) {\n newLayout = labShell.move(widget, 'left');\n labShell.activateById(widget.id);\n }\n }\n if (newLayout) {\n settings\n .set('layout', {\n single: newLayout['single-document'],\n multiple: newLayout['multiple-document']\n })\n .catch(reason => {\n console.error('Failed to save user layout customization.', reason);\n });\n }\n }\n });\n app.commands.commandExecuted.connect((registry, executed) => {\n if (executed.id === CommandIDs.resetLayout) {\n settings.remove('layout').catch(reason => {\n console.error('Failed to remove user layout customization.', reason);\n });\n }\n });\n }\n Private.activateSidebarSwitcher = activateSidebarSwitcher;\n})(Private || (Private = {}));\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application-extension/lib/index.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application-extension/lib/topbar.js": +/*!***********************************************************************!*\ + !*** ../node_modules/@jupyterlab/application-extension/lib/topbar.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ topbar: () => (/* binding */ topbar)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_3__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n\nconst TOPBAR_FACTORY = 'TopBar';\n/**\n * A plugin adding a toolbar to the top area.\n */\nconst topbar = {\n id: '@jupyterlab/application-extension:top-bar',\n description: 'Adds a toolbar to the top area (next to the main menu bar).',\n autoStart: true,\n requires: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.ISettingRegistry, _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.IToolbarWidgetRegistry],\n optional: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2__.ITranslator],\n activate: (app, settingRegistry, toolbarRegistry, translator) => {\n const trans = (translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2__.nullTranslator).load('jupyterlab');\n const toolbar = new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_3__.Toolbar();\n toolbar.id = 'jp-top-bar';\n toolbar.node.setAttribute('aria-label', trans.__('Topbar toolbar'));\n // Set toolbar\n (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.setToolbar)(toolbar, (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.createToolbarFactory)(toolbarRegistry, settingRegistry, TOPBAR_FACTORY, topbar.id, translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2__.nullTranslator), toolbar);\n app.shell.add(toolbar, 'top', { rank: 900 });\n }\n};\n//# sourceMappingURL=topbar.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application-extension/lib/topbar.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application-extension/style/index.js": +/*!************************************************************************!*\ + !*** ../node_modules/@jupyterlab/application-extension/style/index.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lumino_widgets_style_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/widgets/style/index.js */ \"../node_modules/@lumino/widgets/style/index.js\");\n/* harmony import */ var _jupyterlab_ui_components_style_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components/style/index.js */ \"../node_modules/@jupyterlab/ui-components/style/index.js\");\n/* harmony import */ var _jupyterlab_statusbar_style_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/statusbar/style/index.js */ \"../node_modules/@jupyterlab/statusbar/style/index.js\");\n/* harmony import */ var _jupyterlab_application_style_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/application/style/index.js */ \"../node_modules/@jupyterlab/application/style/index.js\");\n/* harmony import */ var _jupyterlab_property_inspector_style_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/property-inspector/style/index.js */ \"../node_modules/@jupyterlab/property-inspector/style/index.js\");\n/* harmony import */ var _base_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./base.css */ \"../node_modules/@jupyterlab/application-extension/style/base.css\");\n/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application-extension/style/index.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/connectionlost.js": +/*!*********************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/connectionlost.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ConnectionLost: () => (/* binding */ ConnectionLost)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n/**\n * A default connection lost handler, which brings up an error dialog.\n */\nconst ConnectionLost = async function (manager, err, translator) {\n translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n const trans = translator.load('jupyterlab');\n const title = trans.__('Server Connection Error');\n const networkMsg = trans.__('A connection to the Jupyter server could not be established.\\n' +\n 'JupyterLab will continue trying to reconnect.\\n' +\n 'Check your network connection or Jupyter server configuration.\\n');\n if (!Private.displayConnectionLost) {\n return;\n }\n if (Private.serverConnectionLost) {\n // Wait for the pre-existing promise to complete\n await Private.serverConnectionLost;\n return;\n }\n const dialog = (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.showDialog)({\n title: title,\n body: networkMsg,\n checkbox: {\n label: trans.__('Do not show this message again in this session.'),\n caption: trans.__('If checked, you will not see a dialog informing you about an issue with server connection in this session.')\n },\n buttons: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Dialog.cancelButton({ label: trans.__('Close') })]\n })\n .then(result => {\n if (result.isChecked) {\n Private.displayConnectionLost = false;\n }\n return;\n })\n .catch(error => {\n console.error('An error occurred while showing the dialog: ', error);\n })\n .finally(() => {\n Private.serverConnectionLost = undefined;\n });\n Private.serverConnectionLost = dialog;\n};\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n /**\n * Boolean determining if connection lost dialog is displayed.\n */\n Private.displayConnectionLost = true;\n})(Private || (Private = {}));\n//# sourceMappingURL=connectionlost.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/connectionlost.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/frontend.js": +/*!***************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/frontend.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ JupyterFrontEnd: () => (/* binding */ JupyterFrontEnd),\n/* harmony export */ JupyterFrontEndContextMenu: () => (/* binding */ JupyterFrontEndContextMenu)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/docregistry */ \"webpack/sharing/consume/default/@jupyterlab/docregistry/@jupyterlab/docregistry\");\n/* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/services */ \"webpack/sharing/consume/default/@jupyterlab/services/@jupyterlab/services\");\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _lumino_application__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @lumino/application */ \"webpack/sharing/consume/default/@lumino/application/@lumino/application\");\n/* harmony import */ var _lumino_application__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_lumino_application__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_6__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n\n/**\n * The base Jupyter front-end application class.\n *\n * @typeparam `T` - The `shell` type. Defaults to `JupyterFrontEnd.IShell`.\n *\n * @typeparam `U` - The type for supported format names. Defaults to `string`.\n *\n * #### Notes\n * This type is useful as a generic application against which front-end plugins\n * can be authored. It inherits from the Lumino `Application`.\n */\nclass JupyterFrontEnd extends _lumino_application__WEBPACK_IMPORTED_MODULE_4__.Application {\n /**\n * Construct a new JupyterFrontEnd object.\n */\n constructor(options) {\n super(options);\n this._formatChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_6__.Signal(this);\n // Class to scope global Jupyter CSS rules\n options.shell.addClass('jp-ThemedContainer');\n // render context menu/submenus with inline svg icon tweaks\n this.contextMenu = new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_3__.ContextMenuSvg({\n commands: this.commands,\n renderer: options.contextMenuRenderer,\n groupByTarget: false,\n sortBySelector: false\n });\n // The default restored promise if one does not exist in the options.\n const restored = new Promise(resolve => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n this.commandLinker =\n options.commandLinker || new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.CommandLinker({ commands: this.commands });\n this.docRegistry = options.docRegistry || new _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1__.DocumentRegistry();\n this.restored =\n options.restored ||\n this.started.then(() => restored).catch(() => restored);\n this.serviceManager = options.serviceManager || new _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__.ServiceManager();\n }\n /**\n * The application form factor, e.g., `desktop` or `mobile`.\n */\n get format() {\n return this._format;\n }\n set format(format) {\n if (this._format !== format) {\n this._format = format;\n document.body.dataset['format'] = format;\n this._formatChanged.emit(format);\n }\n }\n /**\n * A signal that emits when the application form factor changes.\n */\n get formatChanged() {\n return this._formatChanged;\n }\n /**\n * Walks up the DOM hierarchy of the target of the active `contextmenu`\n * event, testing each HTMLElement ancestor for a user-supplied function. This can\n * be used to find an HTMLElement on which to operate, given a context menu click.\n *\n * @param fn - a function that takes an `HTMLElement` and returns a\n * boolean for whether it is the element the requester is seeking.\n *\n * @returns an HTMLElement or undefined, if none is found.\n */\n contextMenuHitTest(fn) {\n if (!this._contextMenuEvent ||\n !(this._contextMenuEvent.target instanceof Node)) {\n return undefined;\n }\n let node = this._contextMenuEvent.target;\n do {\n if (node instanceof HTMLElement && fn(node)) {\n return node;\n }\n node = node.parentNode;\n } while (node && node.parentNode && node !== node.parentNode);\n return undefined;\n // TODO: we should be able to use .composedPath() to simplify this function\n // down to something like the below, but it seems like composedPath is\n // sometimes returning an empty list.\n /*\n if (this._contextMenuEvent) {\n this._contextMenuEvent\n .composedPath()\n .filter(x => x instanceof HTMLElement)\n .find(test);\n }\n return undefined;\n */\n }\n /**\n * A method invoked on a document `'contextmenu'` event.\n */\n evtContextMenu(event) {\n this._contextMenuEvent = event;\n if (event.shiftKey ||\n Private.suppressContextMenu(event.target)) {\n return;\n }\n const opened = this.contextMenu.open(event);\n if (opened) {\n const items = this.contextMenu.menu.items;\n // If only the context menu information will be shown,\n // with no real commands, close the context menu and\n // allow the native one to open.\n if (items.length === 1 &&\n items[0].command === JupyterFrontEndContextMenu.contextMenu) {\n this.contextMenu.menu.close();\n return;\n }\n // Stop propagation and allow the application context menu to show.\n event.preventDefault();\n event.stopPropagation();\n }\n }\n}\n/**\n * The namespace for `JupyterFrontEnd` class statics.\n */\n(function (JupyterFrontEnd) {\n /**\n * Is JupyterLab in document mode?\n *\n * @param path - Full URL of JupyterLab\n * @param paths - The current IPaths object hydrated from PageConfig.\n */\n function inDocMode(path, paths) {\n const docPattern = new RegExp(`^${paths.urls.doc}`);\n const match = path.match(docPattern);\n if (match) {\n return true;\n }\n else {\n return false;\n }\n }\n JupyterFrontEnd.inDocMode = inDocMode;\n /**\n * The application paths dictionary token.\n */\n JupyterFrontEnd.IPaths = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_5__.Token('@jupyterlab/application:IPaths', `A service providing information about various\n URLs and server paths for the current application. Use this service if you want to\n assemble URLs to use the JupyterLab REST API.`);\n /**\n * The application tree resolver token.\n *\n * #### Notes\n * Not all Jupyter front-end applications will have a tree resolver\n * implemented on the client-side. This token should not be required as a\n * dependency if it is possible to make it an optional dependency.\n */\n JupyterFrontEnd.ITreeResolver = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_5__.Token('@jupyterlab/application:ITreeResolver', 'A service to resolve the tree path.');\n})(JupyterFrontEnd || (JupyterFrontEnd = {}));\n/**\n * A namespace for module-private functionality.\n */\nvar Private;\n(function (Private) {\n /**\n * Returns whether the element is itself, or a child of, an element with the `jp-suppress-context-menu` data attribute.\n */\n function suppressContextMenu(element) {\n return element.closest('[data-jp-suppress-context-menu]') !== null;\n }\n Private.suppressContextMenu = suppressContextMenu;\n})(Private || (Private = {}));\n/**\n * A namespace for the context menu override.\n */\nvar JupyterFrontEndContextMenu;\n(function (JupyterFrontEndContextMenu) {\n /**\n * An id for a private context-menu-info ersatz command.\n */\n JupyterFrontEndContextMenu.contextMenu = '__internal:context-menu-info';\n})(JupyterFrontEndContextMenu || (JupyterFrontEndContextMenu = {}));\n//# sourceMappingURL=frontend.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/frontend.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/index.js": +/*!************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/index.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ConnectionLost: () => (/* reexport safe */ _connectionlost__WEBPACK_IMPORTED_MODULE_0__.ConnectionLost),\n/* harmony export */ IConnectionLost: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_8__.IConnectionLost),\n/* harmony export */ ILabShell: () => (/* reexport safe */ _shell__WEBPACK_IMPORTED_MODULE_6__.ILabShell),\n/* harmony export */ ILabStatus: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_8__.ILabStatus),\n/* harmony export */ ILayoutRestorer: () => (/* reexport safe */ _layoutrestorer__WEBPACK_IMPORTED_MODULE_3__.ILayoutRestorer),\n/* harmony export */ IMimeDocumentTracker: () => (/* reexport safe */ _mimerenderers__WEBPACK_IMPORTED_MODULE_4__.IMimeDocumentTracker),\n/* harmony export */ IRouter: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_8__.IRouter),\n/* harmony export */ ITreePathUpdater: () => (/* reexport safe */ _treepathupdater__WEBPACK_IMPORTED_MODULE_9__.ITreePathUpdater),\n/* harmony export */ JupyterFrontEnd: () => (/* reexport safe */ _frontend__WEBPACK_IMPORTED_MODULE_1__.JupyterFrontEnd),\n/* harmony export */ JupyterFrontEndContextMenu: () => (/* reexport safe */ _frontend__WEBPACK_IMPORTED_MODULE_1__.JupyterFrontEndContextMenu),\n/* harmony export */ JupyterLab: () => (/* reexport safe */ _lab__WEBPACK_IMPORTED_MODULE_2__.JupyterLab),\n/* harmony export */ LabShell: () => (/* reexport safe */ _shell__WEBPACK_IMPORTED_MODULE_6__.LabShell),\n/* harmony export */ LabStatus: () => (/* reexport safe */ _status__WEBPACK_IMPORTED_MODULE_7__.LabStatus),\n/* harmony export */ LayoutRestorer: () => (/* reexport safe */ _layoutrestorer__WEBPACK_IMPORTED_MODULE_3__.LayoutRestorer),\n/* harmony export */ Router: () => (/* reexport safe */ _router__WEBPACK_IMPORTED_MODULE_5__.Router),\n/* harmony export */ addSemanticCommand: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_10__.addSemanticCommand),\n/* harmony export */ createRendermimePlugin: () => (/* reexport safe */ _mimerenderers__WEBPACK_IMPORTED_MODULE_4__.createRendermimePlugin),\n/* harmony export */ createRendermimePlugins: () => (/* reexport safe */ _mimerenderers__WEBPACK_IMPORTED_MODULE_4__.createRendermimePlugins),\n/* harmony export */ createSemanticCommand: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_10__.createSemanticCommand)\n/* harmony export */ });\n/* harmony import */ var _connectionlost__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./connectionlost */ \"../node_modules/@jupyterlab/application/lib/connectionlost.js\");\n/* harmony import */ var _frontend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./frontend */ \"../node_modules/@jupyterlab/application/lib/frontend.js\");\n/* harmony import */ var _lab__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lab */ \"../node_modules/@jupyterlab/application/lib/lab.js\");\n/* harmony import */ var _layoutrestorer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./layoutrestorer */ \"../node_modules/@jupyterlab/application/lib/layoutrestorer.js\");\n/* harmony import */ var _mimerenderers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mimerenderers */ \"../node_modules/@jupyterlab/application/lib/mimerenderers.js\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./router */ \"../node_modules/@jupyterlab/application/lib/router.js\");\n/* harmony import */ var _shell__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./shell */ \"../node_modules/@jupyterlab/application/lib/shell.js\");\n/* harmony import */ var _status__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./status */ \"../node_modules/@jupyterlab/application/lib/status.js\");\n/* harmony import */ var _tokens__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./tokens */ \"../node_modules/@jupyterlab/application/lib/tokens.js\");\n/* harmony import */ var _treepathupdater__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./treepathupdater */ \"../node_modules/@jupyterlab/application/lib/treepathupdater.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils */ \"../node_modules/@jupyterlab/application/lib/utils.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/**\n * @packageDocumentation\n * @module application\n */\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/index.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/lab.js": +/*!**********************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/lab.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ JupyterLab: () => (/* binding */ JupyterLab)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/docregistry */ \"webpack/sharing/consume/default/@jupyterlab/docregistry/@jupyterlab/docregistry\");\n/* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/services */ \"webpack/sharing/consume/default/@jupyterlab/services/@jupyterlab/services\");\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _frontend__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./frontend */ \"../node_modules/@jupyterlab/application/lib/frontend.js\");\n/* harmony import */ var _mimerenderers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./mimerenderers */ \"../node_modules/@jupyterlab/application/lib/mimerenderers.js\");\n/* harmony import */ var _shell__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./shell */ \"../node_modules/@jupyterlab/application/lib/shell.js\");\n/* harmony import */ var _status__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./status */ \"../node_modules/@jupyterlab/application/lib/status.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n\n\n/**\n * JupyterLab is the main application class. It is instantiated once and shared.\n */\nclass JupyterLab extends _frontend__WEBPACK_IMPORTED_MODULE_4__.JupyterFrontEnd {\n /**\n * Construct a new JupyterLab object.\n */\n constructor(options = { shell: new _shell__WEBPACK_IMPORTED_MODULE_5__.LabShell() }) {\n super({\n ...options,\n shell: options.shell || new _shell__WEBPACK_IMPORTED_MODULE_5__.LabShell(),\n serviceManager: options.serviceManager ||\n new _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__.ServiceManager({\n standby: () => {\n return !this._info.isConnected || 'when-hidden';\n }\n })\n });\n /**\n * The name of the JupyterLab application.\n */\n this.name = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('appName') || 'JupyterLab';\n /**\n * A namespace/prefix plugins may use to denote their provenance.\n */\n this.namespace = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('appNamespace') || this.name;\n /**\n * A list of all errors encountered when registering plugins.\n *\n * @deprecated This is unused and may be removed in a future version.\n */\n this.registerPluginErrors = [];\n /**\n * The application busy and dirty status signals and flags.\n */\n this.status = new _status__WEBPACK_IMPORTED_MODULE_6__.LabStatus(this);\n /**\n * The version of the JupyterLab application.\n */\n this.version = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('appVersion') || 'unknown';\n this._allPluginsActivated = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate();\n // Populate application info.\n this._info = new JupyterLab.Info(options);\n this.restored = this.shell.restored\n .then(async () => {\n const activated = [];\n const deferred = this.activateDeferredPlugins().catch(error => {\n console.error('Error when activating deferred plugins\\n:', error);\n });\n activated.push(deferred);\n if (this._info.deferred) {\n const customizedDeferred = Promise.all(this._info.deferred.matches.map(pluginID => this.activatePlugin(pluginID))).catch(error => {\n console.error('Error when activating customized list of deferred plugins:\\n', error);\n });\n activated.push(customizedDeferred);\n }\n Promise.all(activated)\n .then(() => {\n this._allPluginsActivated.resolve();\n })\n .catch(() => undefined);\n })\n .catch(() => undefined);\n // Populate application paths override the defaults if necessary.\n const defaultURLs = JupyterLab.defaultPaths.urls;\n const defaultDirs = JupyterLab.defaultPaths.directories;\n const optionURLs = (options.paths && options.paths.urls) || {};\n const optionDirs = (options.paths && options.paths.directories) || {};\n this._paths = {\n urls: Object.keys(defaultURLs).reduce((acc, key) => {\n if (key in optionURLs) {\n const value = optionURLs[key];\n acc[key] = value;\n }\n else {\n acc[key] = defaultURLs[key];\n }\n return acc;\n }, {}),\n directories: Object.keys(JupyterLab.defaultPaths.directories).reduce((acc, key) => {\n if (key in optionDirs) {\n const value = optionDirs[key];\n acc[key] = value;\n }\n else {\n acc[key] = defaultDirs[key];\n }\n return acc;\n }, {})\n };\n if (this._info.devMode) {\n this.shell.addClass('jp-mod-devMode');\n }\n // Add initial model factory.\n this.docRegistry.addModelFactory(new _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1__.Base64ModelFactory());\n if (options.mimeExtensions) {\n for (const plugin of (0,_mimerenderers__WEBPACK_IMPORTED_MODULE_7__.createRendermimePlugins)(options.mimeExtensions)) {\n this.registerPlugin(plugin);\n }\n }\n }\n /**\n * The JupyterLab application information dictionary.\n */\n get info() {\n return this._info;\n }\n /**\n * The JupyterLab application paths dictionary.\n */\n get paths() {\n return this._paths;\n }\n /**\n * Promise that resolves when all the plugins are activated, including the deferred.\n */\n get allPluginsActivated() {\n return this._allPluginsActivated.promise;\n }\n /**\n * Register plugins from a plugin module.\n *\n * @param mod - The plugin module to register.\n *\n * @deprecated This is unused and may be removed in a future version.\n */\n registerPluginModule(mod) {\n let data = mod.default;\n // Handle commonjs exports.\n if (!mod.hasOwnProperty('__esModule')) {\n data = mod;\n }\n if (!Array.isArray(data)) {\n data = [data];\n }\n data.forEach(item => {\n try {\n this.registerPlugin(item);\n }\n catch (error) {\n this.registerPluginErrors.push(error);\n }\n });\n }\n /**\n * Register the plugins from multiple plugin modules.\n *\n * @param mods - The plugin modules to register.\n *\n * @deprecated This is unused and may be removed in a future version.\n */\n registerPluginModules(mods) {\n mods.forEach(mod => {\n this.registerPluginModule(mod);\n });\n }\n /**\n * Override keydown handling to prevent command shortcuts from preventing user input.\n *\n * This introduces a slight delay to the command invocation, but no delay to user input.\n */\n evtKeydown(keyDownEvent) {\n const permissionToExecute = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate();\n // Hold the execution of any keybinding until we know if this event would cause text insertion\n this.commands.holdKeyBindingExecution(keyDownEvent, permissionToExecute.promise);\n // Process the key immediately to invoke the prevent default handlers as needed\n this.commands.processKeydownEvent(keyDownEvent);\n // If we do not know the target, we cannot check if input would be inserted\n // as there is no target to attach the `beforeinput` event listener; in that\n // case we just permit execution immediately (this may happen for programmatic\n // uses of keydown)\n const target = keyDownEvent.target;\n if (!target) {\n return permissionToExecute.resolve(true);\n }\n let onBeforeInput = null;\n let onBeforeKeyUp = null;\n const disconnectListeners = () => {\n if (onBeforeInput) {\n target.removeEventListener('beforeinput', onBeforeInput);\n }\n if (onBeforeKeyUp) {\n target.removeEventListener('keyup', onBeforeKeyUp);\n }\n };\n // Permit the execution conditionally, depending on whether the event would lead to text insertion\n const causesInputPromise = Promise.race([\n new Promise(resolve => {\n onBeforeInput = (inputEvent) => {\n switch (inputEvent.inputType) {\n case 'historyUndo':\n case 'historyRedo': {\n if (inputEvent.target instanceof Element &&\n inputEvent.target.closest('[data-jp-undoer]')) {\n // Allow to use custom undo/redo bindings on `jpUndoer`s\n inputEvent.preventDefault();\n disconnectListeners();\n return resolve(false);\n }\n break;\n }\n case 'insertLineBreak': {\n if (inputEvent.target instanceof Element &&\n inputEvent.target.closest('.jp-Cell')) {\n // Allow to override the default action of Shift + Enter on cells as this is used for cell execution\n inputEvent.preventDefault();\n disconnectListeners();\n return resolve(false);\n }\n break;\n }\n }\n disconnectListeners();\n return resolve(true);\n };\n target.addEventListener('beforeinput', onBeforeInput, { once: true });\n }),\n new Promise(resolve => {\n onBeforeKeyUp = (keyUpEvent) => {\n if (keyUpEvent.code === keyDownEvent.code) {\n disconnectListeners();\n return resolve(false);\n }\n };\n target.addEventListener('keyup', onBeforeKeyUp, { once: true });\n }),\n new Promise(resolve => {\n setTimeout(() => {\n disconnectListeners();\n return resolve(false);\n }, Private.INPUT_GUARD_TIMEOUT);\n })\n ]);\n causesInputPromise\n .then(willCauseInput => {\n permissionToExecute.resolve(!willCauseInput);\n })\n .catch(console.warn);\n }\n}\n/**\n * The namespace for `JupyterLab` class statics.\n */\n(function (JupyterLab) {\n /**\n * The application info token.\n */\n JupyterLab.IInfo = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.Token('@jupyterlab/application:IInfo', 'A service providing metadata about the current application, including disabled extensions and whether dev mode is enabled.');\n /**\n * The information about a JupyterLab application.\n */\n class Info {\n constructor({ connectionStatus, ...options } = {}) {\n var _a, _b, _c, _d, _e, _f, _g;\n this._connectionStatus = connectionStatus !== null && connectionStatus !== void 0 ? connectionStatus : new _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__.ConnectionStatus();\n this._availablePlugins =\n (_a = options.availablePlugins) !== null && _a !== void 0 ? _a : JupyterLab.defaultInfo.availablePlugins;\n this._devMode = (_b = options.devMode) !== null && _b !== void 0 ? _b : JupyterLab.defaultInfo.devMode;\n this._deferred = JSON.parse(JSON.stringify((_c = options.deferred) !== null && _c !== void 0 ? _c : JupyterLab.defaultInfo.deferred));\n this._disabled = JSON.parse(JSON.stringify((_d = options.disabled) !== null && _d !== void 0 ? _d : JupyterLab.defaultInfo.disabled));\n this._filesCached =\n (_e = options.filesCached) !== null && _e !== void 0 ? _e : JupyterLab.defaultInfo.filesCached;\n this._mimeExtensions = JSON.parse(JSON.stringify((_f = options.mimeExtensions) !== null && _f !== void 0 ? _f : JupyterLab.defaultInfo.mimeExtensions));\n this.isConnected =\n (_g = options.isConnected) !== null && _g !== void 0 ? _g : JupyterLab.defaultInfo.isConnected;\n }\n /**\n * The information about available plugins.\n */\n get availablePlugins() {\n return this._availablePlugins;\n }\n /**\n * Whether the application is in dev mode.\n */\n get devMode() {\n return this._devMode;\n }\n /**\n * The collection of deferred extension patterns and matched extensions.\n */\n get deferred() {\n return this._deferred;\n }\n /**\n * The collection of disabled extension patterns and matched extensions.\n */\n get disabled() {\n return this._disabled;\n }\n /**\n * Whether files are cached on the server.\n */\n get filesCached() {\n return this._filesCached;\n }\n /**\n * Every periodic network polling should be paused while this is set\n * to `false`. Extensions should use this value to decide whether to proceed\n * with the polling.\n * The extensions may also set this value to `false` if there is no need to\n * fetch anything from the server backend basing on some conditions\n * (e.g. when an error message dialog is displayed).\n * At the same time, the extensions are responsible for setting this value\n * back to `true`.\n */\n get isConnected() {\n return this._connectionStatus.isConnected;\n }\n set isConnected(v) {\n this._connectionStatus.isConnected = v;\n }\n /**\n * The mime renderer extensions.\n */\n get mimeExtensions() {\n return this._mimeExtensions;\n }\n }\n JupyterLab.Info = Info;\n /**\n * The default JupyterLab application info.\n */\n JupyterLab.defaultInfo = {\n devMode: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('devMode').toLowerCase() === 'true',\n deferred: { patterns: [], matches: [] },\n disabled: { patterns: [], matches: [] },\n mimeExtensions: [],\n availablePlugins: [],\n filesCached: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('cacheFiles').toLowerCase() === 'true',\n isConnected: true\n };\n /**\n * The default JupyterLab application paths.\n */\n JupyterLab.defaultPaths = {\n urls: {\n base: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('baseUrl'),\n notFound: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('notFoundUrl'),\n app: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('appUrl'),\n doc: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('docUrl'),\n static: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('staticUrl'),\n settings: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('settingsUrl'),\n themes: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('themesUrl'),\n translations: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('translationsApiUrl'),\n hubHost: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('hubHost') || undefined,\n hubPrefix: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('hubPrefix') || undefined,\n hubUser: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('hubUser') || undefined,\n hubServerName: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('hubServerName') || undefined\n },\n directories: {\n appSettings: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('appSettingsDir'),\n schemas: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('schemasDir'),\n static: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('staticDir'),\n templates: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('templatesDir'),\n themes: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('themesDir'),\n userSettings: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('userSettingsDir'),\n serverRoot: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('serverRoot'),\n workspaces: _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.getOption('workspacesDir')\n }\n };\n})(JupyterLab || (JupyterLab = {}));\n/**\n * A namespace for module-private functionality.\n */\nvar Private;\n(function (Private) {\n /**\n * The delay for invoking a command introduced by user input guard.\n * Decreasing this value may lead to commands incorrectly triggering\n * on user input. Increasing this value will lead to longer delay for\n * command invocation. Note that user input is never delayed.\n *\n * The value represents the number in milliseconds.\n */\n Private.INPUT_GUARD_TIMEOUT = 10;\n})(Private || (Private = {}));\n//# sourceMappingURL=lab.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/lab.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/layoutrestorer.js": +/*!*********************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/layoutrestorer.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ILayoutRestorer: () => (/* binding */ ILayoutRestorer),\n/* harmony export */ LayoutRestorer: () => (/* binding */ LayoutRestorer)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_properties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/properties */ \"webpack/sharing/consume/default/@lumino/properties/@lumino/properties\");\n/* harmony import */ var _lumino_properties__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_properties__WEBPACK_IMPORTED_MODULE_1__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n\n/**\n * The layout restorer token.\n */\nconst ILayoutRestorer = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/application:ILayoutRestorer', 'A service providing application layout restoration functionality. Use this to have your activities restored across page loads.');\n/**\n * The data connector key for restorer data.\n */\nconst KEY = 'layout-restorer:data';\n/**\n * The default implementation of a layout restorer.\n *\n * #### Notes\n * The lifecycle for state restoration is subtle. The sequence of events is:\n *\n * 1. The layout restorer plugin is instantiated and makes a `fetch` call to\n * the data connector that stores the layout restoration data. The `fetch`\n * call returns a promise that resolves in step 6, below.\n *\n * 2. Other plugins that care about state restoration require the layout\n * restorer as a dependency.\n *\n * 3. As each load-time plugin initializes (which happens before the front-end\n * application has `started`), it instructs the layout restorer whether\n * the restorer ought to `restore` its widgets by passing in its widget\n * tracker.\n * Alternatively, a plugin that does not require its own widget tracker\n * (because perhaps it only creates a single widget, like a command palette),\n * can simply `add` its widget along with a persistent unique name to the\n * layout restorer so that its layout state can be restored when the lab\n * application restores.\n *\n * 4. After all the load-time plugins have finished initializing, the front-end\n * application `started` promise will resolve. This is the `first`\n * promise that the layout restorer waits for. By this point, all of the\n * plugins that care about restoration will have instructed the layout\n * restorer to `restore` their widget trackers.\n *\n * 5. The layout restorer will then instruct each plugin's widget tracker\n * to restore its state and reinstantiate whichever widgets it wants. The\n * tracker returns a promise to the layout restorer that resolves when it\n * has completed restoring the tracked widgets it cares about.\n *\n * 6. As each widget tracker finishes restoring the widget instances it cares\n * about, it resolves the promise that was returned to the layout restorer\n * (in step 5). After all of the promises that the restorer is awaiting have\n * settled, the restorer then resolves the outstanding `fetch` promise\n * (from step 1) and hands off a layout state object to the application\n * shell's `restoreLayout` method for restoration.\n *\n * 7. Once the application shell has finished restoring the layout, the\n * JupyterLab application's `restored` promise is resolved.\n *\n * Of particular note are steps 5 and 6: since data restoration of plugins\n * is accomplished by executing commands, the command that is used to restore\n * the data of each plugin must return a promise that only resolves when the\n * widget has been created and added to the plugin's widget tracker.\n */\nclass LayoutRestorer {\n /**\n * Create a layout restorer.\n */\n constructor(options) {\n this._deferred = new Array();\n this._deferredMainArea = null;\n this._firstDone = false;\n this._promisesDone = false;\n this._promises = [];\n this._restored = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.PromiseDelegate();\n this._trackers = new Set();\n this._widgets = new Map();\n this._mode = 'multiple-document';\n this._connector = options.connector;\n this._first = options.first;\n this._registry = options.registry;\n if (options.mode) {\n this._mode = options.mode;\n }\n void this._first\n .then(() => {\n this._firstDone = true;\n })\n .then(() => Promise.all(this._promises))\n .then(() => {\n this._promisesDone = true;\n // Release the tracker set.\n this._trackers.clear();\n })\n .then(() => {\n this._restored.resolve(void 0);\n });\n }\n /**\n * Whether full layout restoration is deferred and is currently incomplete.\n *\n * #### Notes\n * This flag is useful for tracking when the application has started in\n * 'single-document' mode and the main area has not yet been restored.\n */\n get isDeferred() {\n return this._deferred.length > 0;\n }\n /**\n * A promise resolved when the layout restorer is ready to receive signals.\n */\n get restored() {\n return this._restored.promise;\n }\n /**\n * Add a widget to be tracked by the layout restorer.\n */\n add(widget, name) {\n Private.nameProperty.set(widget, name);\n this._widgets.set(name, widget);\n widget.disposed.connect(this._onWidgetDisposed, this);\n }\n /**\n * Fetch the layout state for the application.\n *\n * #### Notes\n * Fetching the layout relies on all widget restoration to be complete, so\n * calls to `fetch` are guaranteed to return after restoration is complete.\n */\n async fetch() {\n var _a;\n const blank = {\n fresh: true,\n mainArea: null,\n downArea: null,\n leftArea: null,\n rightArea: null,\n topArea: null,\n relativeSizes: null\n };\n const layout = this._connector.fetch(KEY);\n try {\n const [data] = await Promise.all([layout, this.restored]);\n if (!data) {\n return blank;\n }\n const { main, down, left, right, relativeSizes, top } = data;\n // If any data exists, then this is not a fresh session.\n const fresh = false;\n // Rehydrate main area.\n let mainArea = null;\n if (this._mode === 'multiple-document') {\n mainArea = this._rehydrateMainArea(main);\n }\n else {\n this._deferredMainArea = main;\n }\n // Rehydrate down area.\n const downArea = this._rehydrateDownArea(down);\n // Rehydrate left area.\n const leftArea = this._rehydrateSideArea(left);\n // Rehydrate right area.\n const rightArea = this._rehydrateSideArea(right);\n return {\n fresh,\n mainArea,\n downArea,\n leftArea,\n rightArea,\n relativeSizes: relativeSizes || null,\n topArea: (_a = top) !== null && _a !== void 0 ? _a : null\n };\n }\n catch (error) {\n return blank;\n }\n }\n /**\n * Restore the widgets of a particular widget tracker.\n *\n * @param tracker - The widget tracker whose widgets will be restored.\n *\n * @param options - The restoration options.\n */\n async restore(tracker, options) {\n if (this._firstDone) {\n throw new Error('restore() must be called before `first` has resolved.');\n }\n const { namespace } = tracker;\n if (this._trackers.has(namespace)) {\n throw new Error(`The tracker \"${namespace}\" is already restored.`);\n }\n const { args, command, name, when } = options;\n // Add the tracker to the private trackers collection.\n this._trackers.add(namespace);\n // Whenever a new widget is added to the tracker, record its name.\n tracker.widgetAdded.connect((_, widget) => {\n const widgetName = name(widget);\n if (widgetName) {\n this.add(widget, `${namespace}:${widgetName}`);\n }\n }, this);\n // Whenever a widget is updated, get its new name.\n tracker.widgetUpdated.connect((_, widget) => {\n const widgetName = name(widget);\n if (widgetName) {\n const name = `${namespace}:${widgetName}`;\n Private.nameProperty.set(widget, name);\n this._widgets.set(name, widget);\n }\n });\n const first = this._first;\n if (this._mode == 'multiple-document') {\n const promise = tracker\n .restore({\n args: args || (() => _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.JSONExt.emptyObject),\n command,\n connector: this._connector,\n name,\n registry: this._registry,\n when: when ? [first].concat(when) : first\n })\n .catch(error => {\n console.error(error);\n });\n this._promises.push(promise);\n return promise;\n }\n tracker.defer({\n args: args || (() => _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.JSONExt.emptyObject),\n command,\n connector: this._connector,\n name,\n registry: this._registry,\n when: when ? [first].concat(when) : first\n });\n this._deferred.push(tracker);\n }\n /**\n * Restore the application layout if its restoration has been deferred.\n *\n * @returns - the rehydrated main area.\n */\n async restoreDeferred() {\n if (!this.isDeferred) {\n return null;\n }\n // Empty the deferred list and wait for all trackers to restore.\n const wait = Promise.resolve();\n const promises = this._deferred.map(t => wait.then(() => t.restore()));\n this._deferred.length = 0;\n await Promise.all(promises);\n // Rehydrate the main area layout.\n return this._rehydrateMainArea(this._deferredMainArea);\n }\n /**\n * Save the layout state for the application.\n */\n save(layout) {\n var _a;\n // If there are promises that are unresolved, bail.\n if (!this._promisesDone) {\n const warning = 'save() was called prematurely.';\n console.warn(warning);\n return Promise.reject(warning);\n }\n const dehydrated = {};\n // Save the cached main area layout if restoration is deferred.\n dehydrated.main = this.isDeferred\n ? this._deferredMainArea\n : this._dehydrateMainArea(layout.mainArea);\n // Update only the current widget in the db when restoration is deferred.\n // Useful for providing the tab title in doc mode.\n if (this.isDeferred) {\n const currentWidget = (_a = layout.mainArea) === null || _a === void 0 ? void 0 : _a.currentWidget;\n if (currentWidget) {\n const widgetName = Private.nameProperty.get(currentWidget);\n dehydrated.main = {\n ...dehydrated.main,\n current: widgetName || undefined\n };\n }\n }\n dehydrated.down = this._dehydrateDownArea(layout.downArea);\n dehydrated.left = this._dehydrateSideArea(layout.leftArea);\n dehydrated.right = this._dehydrateSideArea(layout.rightArea);\n dehydrated.relativeSizes = layout.relativeSizes;\n dehydrated.top = { ...layout.topArea };\n return this._connector.save(KEY, dehydrated);\n }\n /**\n * Dehydrate a main area description into a serializable object.\n */\n _dehydrateMainArea(area) {\n if (!area) {\n return null;\n }\n return Private.serializeMain(area);\n }\n /**\n * Rehydrate a serialized main area description object.\n *\n * #### Notes\n * This function consumes data that can become corrupted, so it uses type\n * coercion to guarantee the dehydrated object is safely processed.\n */\n _rehydrateMainArea(area) {\n if (!area) {\n return null;\n }\n return Private.deserializeMain(area, this._widgets);\n }\n /**\n * Dehydrate a down area description into a serializable object.\n */\n _dehydrateDownArea(area) {\n if (!area) {\n return null;\n }\n const dehydrated = {\n size: area.size\n };\n if (area.currentWidget) {\n const current = Private.nameProperty.get(area.currentWidget);\n if (current) {\n dehydrated.current = current;\n }\n }\n if (area.widgets) {\n dehydrated.widgets = area.widgets\n .map(widget => Private.nameProperty.get(widget))\n .filter(name => !!name);\n }\n return dehydrated;\n }\n /**\n * Rehydrate a serialized side area description object.\n *\n * #### Notes\n * This function consumes data that can become corrupted, so it uses type\n * coercion to guarantee the dehydrated object is safely processed.\n */\n _rehydrateDownArea(area) {\n var _a;\n if (!area) {\n return { currentWidget: null, size: 0.0, widgets: null };\n }\n const internal = this._widgets;\n const currentWidget = area.current && internal.has(`${area.current}`)\n ? internal.get(`${area.current}`)\n : null;\n const widgets = !Array.isArray(area.widgets)\n ? null\n : area.widgets\n .map(name => internal.has(`${name}`) ? internal.get(`${name}`) : null)\n .filter(widget => !!widget);\n return {\n currentWidget: currentWidget,\n size: (_a = area.size) !== null && _a !== void 0 ? _a : 0.0,\n widgets: widgets\n };\n }\n /**\n * Dehydrate a side area description into a serializable object.\n */\n _dehydrateSideArea(area) {\n if (!area) {\n return null;\n }\n const dehydrated = {\n collapsed: area.collapsed,\n visible: area.visible\n };\n if (area.currentWidget) {\n const current = Private.nameProperty.get(area.currentWidget);\n if (current) {\n dehydrated.current = current;\n }\n }\n if (area.widgets) {\n dehydrated.widgets = area.widgets\n .map(widget => Private.nameProperty.get(widget))\n .filter(name => !!name);\n }\n if (area.widgetStates) {\n dehydrated.widgetStates = area.widgetStates;\n }\n return dehydrated;\n }\n /**\n * Rehydrate a serialized side area description object.\n *\n * #### Notes\n * This function consumes data that can become corrupted, so it uses type\n * coercion to guarantee the dehydrated object is safely processed.\n */\n _rehydrateSideArea(area) {\n var _a, _b;\n if (!area) {\n return {\n collapsed: true,\n currentWidget: null,\n visible: true,\n widgets: null,\n widgetStates: {\n ['null']: {\n sizes: null,\n expansionStates: null\n }\n }\n };\n }\n const internal = this._widgets;\n const collapsed = (_a = area.collapsed) !== null && _a !== void 0 ? _a : false;\n const currentWidget = area.current && internal.has(`${area.current}`)\n ? internal.get(`${area.current}`)\n : null;\n const widgets = !Array.isArray(area.widgets)\n ? null\n : area.widgets\n .map(name => internal.has(`${name}`) ? internal.get(`${name}`) : null)\n .filter(widget => !!widget);\n const widgetStates = area.widgetStates;\n return {\n collapsed,\n currentWidget: currentWidget,\n widgets: widgets,\n visible: (_b = area.visible) !== null && _b !== void 0 ? _b : true,\n widgetStates: widgetStates\n };\n }\n /**\n * Handle a widget disposal.\n */\n _onWidgetDisposed(widget) {\n const name = Private.nameProperty.get(widget);\n this._widgets.delete(name);\n }\n}\n/*\n * A namespace for private data.\n */\nvar Private;\n(function (Private) {\n /**\n * An attached property for a widget's ID in the serialized restore data.\n */\n Private.nameProperty = new _lumino_properties__WEBPACK_IMPORTED_MODULE_1__.AttachedProperty({\n name: 'name',\n create: owner => ''\n });\n /**\n * Serialize individual areas within the main area.\n */\n function serializeArea(area) {\n if (!area || !area.type) {\n return null;\n }\n if (area.type === 'tab-area') {\n return {\n type: 'tab-area',\n currentIndex: area.currentIndex,\n widgets: area.widgets\n .map(widget => Private.nameProperty.get(widget))\n .filter(name => !!name)\n };\n }\n return {\n type: 'split-area',\n orientation: area.orientation,\n sizes: area.sizes,\n children: area.children\n .map(serializeArea)\n .filter(area => !!area)\n };\n }\n /**\n * Return a dehydrated, serializable version of the main dock panel.\n */\n function serializeMain(area) {\n const dehydrated = {\n dock: (area && area.dock && serializeArea(area.dock.main)) || null\n };\n if (area) {\n if (area.currentWidget) {\n const current = Private.nameProperty.get(area.currentWidget);\n if (current) {\n dehydrated.current = current;\n }\n }\n }\n return dehydrated;\n }\n Private.serializeMain = serializeMain;\n /**\n * Deserialize individual areas within the main area.\n *\n * #### Notes\n * Because this data comes from a potentially unreliable foreign source, it is\n * typed as a `JSONObject`; but the actual expected type is:\n * `ITabArea | ISplitArea`.\n *\n * For fault tolerance, types are manually checked in deserialization.\n */\n function deserializeArea(area, names) {\n if (!area) {\n return null;\n }\n // Because this data is saved to a foreign data source, its type safety is\n // not guaranteed when it is retrieved, so exhaustive checks are necessary.\n const type = area.type || 'unknown';\n if (type === 'unknown' || (type !== 'tab-area' && type !== 'split-area')) {\n console.warn(`Attempted to deserialize unknown type: ${type}`);\n return null;\n }\n if (type === 'tab-area') {\n const { currentIndex, widgets } = area;\n const hydrated = {\n type: 'tab-area',\n currentIndex: currentIndex || 0,\n widgets: (widgets &&\n widgets\n .map(widget => names.get(widget))\n .filter(widget => !!widget)) ||\n []\n };\n // Make sure the current index is within bounds.\n if (hydrated.currentIndex > hydrated.widgets.length - 1) {\n hydrated.currentIndex = 0;\n }\n return hydrated;\n }\n const { orientation, sizes, children } = area;\n const hydrated = {\n type: 'split-area',\n orientation: orientation,\n sizes: sizes || [],\n children: (children &&\n children\n .map(child => deserializeArea(child, names))\n .filter(widget => !!widget)) ||\n []\n };\n return hydrated;\n }\n /**\n * Return the hydrated version of the main dock panel, ready to restore.\n *\n * #### Notes\n * Because this data comes from a potentially unreliable foreign source, it is\n * typed as a `JSONObject`; but the actual expected type is: `IMainArea`.\n *\n * For fault tolerance, types are manually checked in deserialization.\n */\n function deserializeMain(area, names) {\n if (!area) {\n return null;\n }\n const name = area.current || null;\n const dock = area.dock || null;\n return {\n currentWidget: (name && names.has(name) && names.get(name)) || null,\n dock: dock ? { main: deserializeArea(dock, names) } : null\n };\n }\n Private.deserializeMain = deserializeMain;\n})(Private || (Private = {}));\n//# sourceMappingURL=layoutrestorer.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/layoutrestorer.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/mimerenderers.js": +/*!********************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/mimerenderers.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ IMimeDocumentTracker: () => (/* binding */ IMimeDocumentTracker),\n/* harmony export */ createRendermimePlugin: () => (/* binding */ createRendermimePlugin),\n/* harmony export */ createRendermimePlugins: () => (/* binding */ createRendermimePlugins)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/docregistry */ \"webpack/sharing/consume/default/@jupyterlab/docregistry/@jupyterlab/docregistry\");\n/* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/rendermime */ \"webpack/sharing/consume/default/@jupyterlab/rendermime/@jupyterlab/rendermime\");\n/* harmony import */ var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _lumino_properties__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @lumino/properties */ \"webpack/sharing/consume/default/@lumino/properties/@lumino/properties\");\n/* harmony import */ var _lumino_properties__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_lumino_properties__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _layoutrestorer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./layoutrestorer */ \"../node_modules/@jupyterlab/application/lib/layoutrestorer.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n\n\n/**\n * The mime document tracker token.\n */\nconst IMimeDocumentTracker = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_5__.Token('@jupyterlab/application:IMimeDocumentTracker', 'A widget tracker for documents rendered using a mime renderer extension. Use this if you want to list and interact with documents rendered by such extensions.');\n/**\n * Create rendermime plugins for rendermime extension modules.\n */\nfunction createRendermimePlugins(extensions) {\n const plugins = [];\n const namespace = 'application-mimedocuments';\n const tracker = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.WidgetTracker({ namespace });\n extensions.forEach(mod => {\n let data = mod.default;\n // Handle CommonJS exports.\n if (!mod.hasOwnProperty('__esModule')) {\n data = mod;\n }\n if (!Array.isArray(data)) {\n data = [data];\n }\n data.forEach(item => {\n plugins.push(createRendermimePlugin(tracker, item));\n });\n });\n // Also add a meta-plugin handling state restoration\n // and exposing the mime document widget tracker.\n plugins.push({\n id: '@jupyterlab/application-extension:mimedocument',\n description: 'Provides a mime document widget tracker.',\n optional: [_layoutrestorer__WEBPACK_IMPORTED_MODULE_7__.ILayoutRestorer],\n provides: IMimeDocumentTracker,\n autoStart: true,\n activate: (app, restorer) => {\n if (restorer) {\n void restorer.restore(tracker, {\n command: 'docmanager:open',\n args: widget => ({\n path: widget.context.path,\n factory: Private.factoryNameProperty.get(widget)\n }),\n name: widget => `${widget.context.path}:${Private.factoryNameProperty.get(widget)}`\n });\n }\n return tracker;\n }\n });\n return plugins;\n}\n/**\n * Create rendermime plugins for rendermime extension modules.\n */\nfunction createRendermimePlugin(tracker, item) {\n return {\n id: item.id,\n description: item.description,\n requires: [_jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_2__.IRenderMimeRegistry, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__.ITranslator],\n autoStart: true,\n activate: (app, rendermime, translator) => {\n // Add the mime renderer.\n if (item.rank !== undefined) {\n rendermime.addFactory(item.rendererFactory, item.rank);\n }\n else {\n rendermime.addFactory(item.rendererFactory);\n }\n // Handle the widget factory.\n if (!item.documentWidgetFactoryOptions) {\n return;\n }\n const registry = app.docRegistry;\n let options = [];\n if (Array.isArray(item.documentWidgetFactoryOptions)) {\n options = item.documentWidgetFactoryOptions;\n }\n else {\n options = [\n item.documentWidgetFactoryOptions\n ];\n }\n if (item.fileTypes) {\n item.fileTypes.forEach(ft => {\n if (ft.icon) {\n // upconvert the contents of the icon field to a proper LabIcon\n ft = { ...ft, icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.LabIcon.resolve({ icon: ft.icon }) };\n }\n app.docRegistry.addFileType(ft);\n });\n }\n options.forEach(option => {\n const toolbarFactory = option.toolbarFactory\n ? (w) => option.toolbarFactory(w.content.renderer)\n : undefined;\n const factory = new _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_1__.MimeDocumentFactory({\n renderTimeout: item.renderTimeout,\n dataType: item.dataType,\n rendermime,\n modelName: option.modelName,\n name: option.name,\n primaryFileType: registry.getFileType(option.primaryFileType),\n fileTypes: option.fileTypes,\n defaultFor: option.defaultFor,\n defaultRendered: option.defaultRendered,\n toolbarFactory,\n translator,\n factory: item.rendererFactory\n });\n registry.addWidgetFactory(factory);\n factory.widgetCreated.connect((sender, widget) => {\n Private.factoryNameProperty.set(widget, factory.name);\n // Notify the widget tracker if restore data needs to update.\n widget.context.pathChanged.connect(() => {\n void tracker.save(widget);\n });\n void tracker.add(widget);\n });\n });\n }\n };\n}\n/**\n * Private namespace for the module.\n */\nvar Private;\n(function (Private) {\n /**\n * An attached property for keeping the factory name\n * that was used to create a mimedocument.\n */\n Private.factoryNameProperty = new _lumino_properties__WEBPACK_IMPORTED_MODULE_6__.AttachedProperty({\n name: 'factoryName',\n create: () => undefined\n });\n})(Private || (Private = {}));\n//# sourceMappingURL=mimerenderers.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/mimerenderers.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/router.js": +/*!*************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/router.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Router: () => (/* binding */ Router)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/disposable */ \"webpack/sharing/consume/default/@lumino/disposable/@lumino/disposable\");\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_disposable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_3__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n\n\n\n/**\n * A static class that routes URLs within the application.\n */\nclass Router {\n /**\n * Create a URL router.\n */\n constructor(options) {\n /**\n * If a matching rule's command resolves with the `stop` token during routing,\n * no further matches will execute.\n */\n this.stop = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.Token('@jupyterlab/application:Router#stop');\n this._routed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__.Signal(this);\n this._rules = new Map();\n this.base = options.base;\n this.commands = options.commands;\n }\n /**\n * Returns the parsed current URL of the application.\n */\n get current() {\n var _a, _b;\n const { base } = this;\n const parsed = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.URLExt.parse(window.location.href);\n const { search, hash } = parsed;\n const path = (_b = (_a = parsed.pathname) === null || _a === void 0 ? void 0 : _a.replace(base, '/')) !== null && _b !== void 0 ? _b : '';\n const request = path + search + hash;\n return { hash, path, request, search };\n }\n /**\n * A signal emitted when the router routes a route.\n */\n get routed() {\n return this._routed;\n }\n /**\n * Navigate to a new path within the application.\n *\n * @param path - The new path or empty string if redirecting to root.\n *\n * @param options - The navigation options.\n */\n navigate(path, options = {}) {\n const { base } = this;\n const { history } = window;\n const { hard } = options;\n const old = document.location.href;\n const url = path && path.indexOf(base) === 0 ? path : _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.URLExt.join(base, path);\n if (url === old) {\n return hard ? this.reload() : undefined;\n }\n history.pushState({}, '', url);\n if (hard) {\n return this.reload();\n }\n if (!options.skipRouting) {\n // Because a `route()` call may still be in the stack after having received\n // a `stop` token, wait for the next stack frame before calling `route()`.\n requestAnimationFrame(() => {\n void this.route();\n });\n }\n }\n /**\n * Register to route a path pattern to a command.\n *\n * @param options - The route registration options.\n *\n * @returns A disposable that removes the registered rule from the router.\n */\n register(options) {\n var _a;\n const { command, pattern } = options;\n const rank = (_a = options.rank) !== null && _a !== void 0 ? _a : 100;\n const rules = this._rules;\n rules.set(pattern, { command, rank });\n return new _lumino_disposable__WEBPACK_IMPORTED_MODULE_2__.DisposableDelegate(() => {\n rules.delete(pattern);\n });\n }\n /**\n * Cause a hard reload of the document.\n */\n reload() {\n window.location.reload();\n }\n /**\n * Route a specific path to an action.\n *\n * #### Notes\n * If a pattern is matched, its command will be invoked with arguments that\n * match the `IRouter.ILocation` interface.\n */\n route() {\n const { commands, current, stop } = this;\n const { request } = current;\n const routed = this._routed;\n const rules = this._rules;\n const matches = [];\n // Collect all rules that match the URL.\n rules.forEach((rule, pattern) => {\n if (request === null || request === void 0 ? void 0 : request.match(pattern)) {\n matches.push(rule);\n }\n });\n // Order the matching rules by rank and enqueue them.\n const queue = matches.sort((a, b) => b.rank - a.rank);\n const done = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.PromiseDelegate();\n // Process each enqueued command sequentially and short-circuit if a promise\n // resolves with the `stop` token.\n const next = async () => {\n if (!queue.length) {\n routed.emit(current);\n done.resolve(undefined);\n return;\n }\n const { command } = queue.pop();\n try {\n const request = this.current.request;\n const result = await commands.execute(command, current);\n if (result === stop) {\n queue.length = 0;\n console.debug(`Routing ${request} was short-circuited by ${command}`);\n }\n }\n catch (reason) {\n console.warn(`Routing ${request} to ${command} failed`, reason);\n }\n void next();\n };\n void next();\n return done.promise;\n }\n}\n//# sourceMappingURL=router.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/router.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/shell.js": +/*!************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/shell.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ILabShell: () => (/* binding */ ILabShell),\n/* harmony export */ LabShell: () => (/* binding */ LabShell)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/docregistry */ \"webpack/sharing/consume/default/@jupyterlab/docregistry/@jupyterlab/docregistry\");\n/* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/messaging */ \"webpack/sharing/consume/default/@lumino/messaging/@lumino/messaging\");\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_messaging__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _lumino_polling__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @lumino/polling */ \"webpack/sharing/consume/default/@lumino/polling/@lumino/polling\");\n/* harmony import */ var _lumino_polling__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_lumino_polling__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_8__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n\n\n\n/**\n * The class name added to AppShell instances.\n */\nconst APPLICATION_SHELL_CLASS = 'jp-LabShell';\n/**\n * The class name added to side bar instances.\n */\nconst SIDEBAR_CLASS = 'jp-SideBar';\n/**\n * The class name added to the current widget's title.\n */\nconst CURRENT_CLASS = 'jp-mod-current';\n/**\n * The class name added to the active widget's title.\n */\nconst ACTIVE_CLASS = 'jp-mod-active';\n/**\n * The default rank of items added to a sidebar.\n */\nconst DEFAULT_RANK = 900;\nconst ACTIVITY_CLASS = 'jp-Activity';\n/**\n * The JupyterLab application shell token.\n */\nconst ILabShell = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_4__.Token('@jupyterlab/application:ILabShell', 'A service for interacting with the JupyterLab shell. The top-level ``application`` object also has a reference to the shell, but it has a restricted interface in order to be agnostic to different shell implementations on the application. Use this to get more detailed information about currently active widgets and layout state.');\n/**\n * The application shell for JupyterLab.\n */\nclass LabShell extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.Widget {\n /**\n * Construct a new application shell.\n */\n constructor(options) {\n super();\n /**\n * A message hook for child add/remove messages on the main area dock panel.\n */\n this._dockChildHook = (handler, msg) => {\n switch (msg.type) {\n case 'child-added':\n msg.child.addClass(ACTIVITY_CLASS);\n this._tracker.add(msg.child);\n break;\n case 'child-removed':\n msg.child.removeClass(ACTIVITY_CLASS);\n this._tracker.remove(msg.child);\n break;\n default:\n break;\n }\n return true;\n };\n this._activeChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_7__.Signal(this);\n this._cachedLayout = null;\n this._currentChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_7__.Signal(this);\n this._currentPath = '';\n this._currentPathChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_7__.Signal(this);\n this._modeChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_7__.Signal(this);\n this._isRestored = false;\n this._layoutModified = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_7__.Signal(this);\n this._layoutDebouncer = new _lumino_polling__WEBPACK_IMPORTED_MODULE_6__.Debouncer(() => {\n this._layoutModified.emit(undefined);\n }, 0);\n this._restored = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_4__.PromiseDelegate();\n this._tracker = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.FocusTracker();\n this._topHandlerHiddenByUser = false;\n this._idTypeMap = new Map();\n this._mainOptionsCache = new Map();\n this._sideOptionsCache = new Map();\n this._delayedWidget = new Array();\n this.addClass(APPLICATION_SHELL_CLASS);\n this.id = 'main';\n if ((options === null || options === void 0 ? void 0 : options.waitForRestore) === false) {\n this._userLayout = { 'multiple-document': {}, 'single-document': {} };\n }\n // Skip Links\n const skipLinkWidget = (this._skipLinkWidget = new Private.SkipLinkWidget(this));\n this._skipLinkWidget.show();\n // Wrap the skip widget to customize its position and size\n const skipLinkWrapper = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.Panel();\n skipLinkWrapper.addClass('jp-skiplink-wrapper');\n skipLinkWrapper.addWidget(skipLinkWidget);\n const headerPanel = (this._headerPanel = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxPanel());\n const menuHandler = (this._menuHandler = new Private.PanelHandler());\n menuHandler.panel.node.setAttribute('role', 'navigation');\n const topHandler = (this._topHandler = new Private.PanelHandler());\n topHandler.panel.node.setAttribute('role', 'banner');\n const bottomPanel = (this._bottomPanel = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxPanel());\n bottomPanel.node.setAttribute('role', 'contentinfo');\n const hboxPanel = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxPanel();\n const vsplitPanel = (this._vsplitPanel =\n new Private.RestorableSplitPanel());\n const dockPanel = (this._dockPanel = new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.DockPanelSvg({\n hiddenMode: _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.Widget.HiddenMode.Display\n }));\n _lumino_messaging__WEBPACK_IMPORTED_MODULE_5__.MessageLoop.installMessageHook(dockPanel, this._dockChildHook);\n const hsplitPanel = (this._hsplitPanel =\n new Private.RestorableSplitPanel());\n const downPanel = (this._downPanel = new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.TabPanelSvg({\n tabsMovable: true\n }));\n const leftHandler = (this._leftHandler = new Private.SideBarHandler());\n const rightHandler = (this._rightHandler = new Private.SideBarHandler());\n const rootLayout = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxLayout();\n headerPanel.id = 'jp-header-panel';\n menuHandler.panel.id = 'jp-menu-panel';\n topHandler.panel.id = 'jp-top-panel';\n bottomPanel.id = 'jp-bottom-panel';\n hboxPanel.id = 'jp-main-content-panel';\n vsplitPanel.id = 'jp-main-vsplit-panel';\n dockPanel.id = 'jp-main-dock-panel';\n hsplitPanel.id = 'jp-main-split-panel';\n downPanel.id = 'jp-down-stack';\n leftHandler.sideBar.addClass(SIDEBAR_CLASS);\n leftHandler.sideBar.addClass('jp-mod-left');\n leftHandler.sideBar.node.setAttribute('role', 'complementary');\n leftHandler.stackedPanel.id = 'jp-left-stack';\n rightHandler.sideBar.addClass(SIDEBAR_CLASS);\n rightHandler.sideBar.addClass('jp-mod-right');\n rightHandler.sideBar.node.setAttribute('role', 'complementary');\n rightHandler.stackedPanel.id = 'jp-right-stack';\n dockPanel.node.setAttribute('role', 'main');\n hboxPanel.spacing = 0;\n vsplitPanel.spacing = 1;\n dockPanel.spacing = 5;\n hsplitPanel.spacing = 1;\n headerPanel.direction = 'top-to-bottom';\n vsplitPanel.orientation = 'vertical';\n hboxPanel.direction = 'left-to-right';\n hsplitPanel.orientation = 'horizontal';\n bottomPanel.direction = 'bottom-to-top';\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.SplitPanel.setStretch(leftHandler.stackedPanel, 0);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.SplitPanel.setStretch(downPanel, 0);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.SplitPanel.setStretch(dockPanel, 1);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.SplitPanel.setStretch(rightHandler.stackedPanel, 0);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxPanel.setStretch(leftHandler.sideBar, 0);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxPanel.setStretch(hsplitPanel, 1);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxPanel.setStretch(rightHandler.sideBar, 0);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.SplitPanel.setStretch(vsplitPanel, 1);\n hsplitPanel.addWidget(leftHandler.stackedPanel);\n hsplitPanel.addWidget(dockPanel);\n hsplitPanel.addWidget(rightHandler.stackedPanel);\n vsplitPanel.addWidget(hsplitPanel);\n vsplitPanel.addWidget(downPanel);\n hboxPanel.addWidget(leftHandler.sideBar);\n hboxPanel.addWidget(vsplitPanel);\n hboxPanel.addWidget(rightHandler.sideBar);\n rootLayout.direction = 'top-to-bottom';\n rootLayout.spacing = 0; // TODO make this configurable?\n // Use relative sizing to set the width of the side panels.\n // This will still respect the min-size of children widget in the stacked\n // panel. The default sizes will be overwritten during layout restoration.\n vsplitPanel.setRelativeSizes([3, 1]);\n hsplitPanel.setRelativeSizes([1, 2.5, 1]);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxLayout.setStretch(headerPanel, 0);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxLayout.setStretch(menuHandler.panel, 0);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxLayout.setStretch(topHandler.panel, 0);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxLayout.setStretch(hboxPanel, 1);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.BoxLayout.setStretch(bottomPanel, 0);\n rootLayout.addWidget(skipLinkWrapper);\n rootLayout.addWidget(headerPanel);\n rootLayout.addWidget(topHandler.panel);\n rootLayout.addWidget(hboxPanel);\n rootLayout.addWidget(bottomPanel);\n // initially hiding header and bottom panel when no elements inside,\n this._headerPanel.hide();\n this._bottomPanel.hide();\n this._downPanel.hide();\n this.layout = rootLayout;\n // Connect change listeners.\n this._tracker.currentChanged.connect(this._onCurrentChanged, this);\n this._tracker.activeChanged.connect(this._onActiveChanged, this);\n // Connect main layout change listener.\n this._dockPanel.layoutModified.connect(this._onLayoutModified, this);\n // Connect vsplit layout change listener\n this._vsplitPanel.updated.connect(this._onLayoutModified, this);\n // Connect down panel change listeners\n this._downPanel.currentChanged.connect(this._onLayoutModified, this);\n this._downPanel.tabBar.tabMoved.connect(this._onTabPanelChanged, this);\n this._downPanel.stackedPanel.widgetRemoved.connect(this._onTabPanelChanged, this);\n // Catch current changed events on the side handlers.\n this._leftHandler.updated.connect(this._onLayoutModified, this);\n this._rightHandler.updated.connect(this._onLayoutModified, this);\n // Catch update events on the horizontal split panel\n this._hsplitPanel.updated.connect(this._onLayoutModified, this);\n // Setup single-document-mode title bar\n const titleHandler = (this._titleHandler = new Private.TitleHandler(this));\n this.add(titleHandler, 'top', { rank: 100 });\n if (this._dockPanel.mode === 'multiple-document') {\n this._topHandler.addWidget(this._menuHandler.panel, 100);\n titleHandler.hide();\n }\n else {\n rootLayout.insertWidget(3, this._menuHandler.panel);\n }\n this.translator = _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n // Wire up signals to update the title panel of the simple interface mode to\n // follow the title of this.currentWidget\n this.currentChanged.connect((sender, args) => {\n let newValue = args.newValue;\n let oldValue = args.oldValue;\n // Stop watching the title of the previously current widget\n if (oldValue) {\n oldValue.title.changed.disconnect(this._updateTitlePanelTitle, this);\n if (oldValue instanceof _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_0__.DocumentWidget) {\n oldValue.context.pathChanged.disconnect(this._updateCurrentPath, this);\n }\n }\n // Start watching the title of the new current widget\n if (newValue) {\n newValue.title.changed.connect(this._updateTitlePanelTitle, this);\n this._updateTitlePanelTitle();\n if (newValue instanceof _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_0__.DocumentWidget) {\n newValue.context.pathChanged.connect(this._updateCurrentPath, this);\n }\n }\n this._updateCurrentPath();\n });\n }\n /**\n * A signal emitted when main area's active focus changes.\n */\n get activeChanged() {\n return this._activeChanged;\n }\n /**\n * The active widget in the shell's main area.\n */\n get activeWidget() {\n return this._tracker.activeWidget;\n }\n /**\n * Whether the add buttons for each main area tab bar are enabled.\n */\n get addButtonEnabled() {\n return this._dockPanel.addButtonEnabled;\n }\n set addButtonEnabled(value) {\n this._dockPanel.addButtonEnabled = value;\n }\n /**\n * A signal emitted when the add button on a main area tab bar is clicked.\n */\n get addRequested() {\n return this._dockPanel.addRequested;\n }\n /**\n * A signal emitted when main area's current focus changes.\n */\n get currentChanged() {\n return this._currentChanged;\n }\n /**\n * Current document path.\n */\n // FIXME deprecation `undefined` is to ensure backward compatibility in 4.x\n get currentPath() {\n return this._currentPath;\n }\n /**\n * A signal emitted when the path of the current document changes.\n *\n * This also fires when the current document itself changes.\n */\n get currentPathChanged() {\n return this._currentPathChanged;\n }\n /**\n * The current widget in the shell's main area.\n */\n get currentWidget() {\n return this._tracker.currentWidget;\n }\n /**\n * A signal emitted when the main area's layout is modified.\n */\n get layoutModified() {\n return this._layoutModified;\n }\n /**\n * Whether the left area is collapsed.\n */\n get leftCollapsed() {\n return !this._leftHandler.sideBar.currentTitle;\n }\n /**\n * Whether the left area is collapsed.\n */\n get rightCollapsed() {\n return !this._rightHandler.sideBar.currentTitle;\n }\n /**\n * Whether JupyterLab is in presentation mode with the\n * `jp-mod-presentationMode` CSS class.\n */\n get presentationMode() {\n return this.hasClass('jp-mod-presentationMode');\n }\n set presentationMode(value) {\n this.toggleClass('jp-mod-presentationMode', value);\n }\n /**\n * The main dock area's user interface mode.\n */\n get mode() {\n return this._dockPanel.mode;\n }\n set mode(mode) {\n const dock = this._dockPanel;\n if (mode === dock.mode) {\n return;\n }\n const applicationCurrentWidget = this.currentWidget;\n if (mode === 'single-document') {\n // Cache the current multi-document layout before changing the mode.\n this._cachedLayout = dock.saveLayout();\n dock.mode = mode;\n // In case the active widget in the dock panel is *not* the active widget\n // of the application, defer to the application.\n if (this.currentWidget) {\n dock.activateWidget(this.currentWidget);\n }\n // Adjust menu and title\n this.layout.insertWidget(3, this._menuHandler.panel);\n this._titleHandler.show();\n this._updateTitlePanelTitle();\n if (this._topHandlerHiddenByUser) {\n this._topHandler.panel.hide();\n }\n }\n else {\n // Cache a reference to every widget currently in the dock panel before\n // changing its mode.\n const widgets = Array.from(dock.widgets());\n dock.mode = mode;\n // Restore cached layout if possible.\n if (this._cachedLayout) {\n // Remove any disposed widgets in the cached layout and restore.\n Private.normalizeAreaConfig(dock, this._cachedLayout.main);\n dock.restoreLayout(this._cachedLayout);\n this._cachedLayout = null;\n }\n // If layout restoration has been deferred, restore layout now.\n if (this._layoutRestorer.isDeferred) {\n this._layoutRestorer\n .restoreDeferred()\n .then(mainArea => {\n if (mainArea) {\n const { currentWidget, dock } = mainArea;\n if (dock) {\n this._dockPanel.restoreLayout(dock);\n }\n if (currentWidget) {\n this.activateById(currentWidget.id);\n }\n }\n })\n .catch(reason => {\n console.error('Failed to restore the deferred layout.');\n console.error(reason);\n });\n }\n // Add any widgets created during single document mode, which have\n // subsequently been removed from the dock panel after the multiple document\n // layout has been restored. If the widget has add options cached for\n // the widget (i.e., if it has been placed with respect to another widget),\n // then take that into account.\n widgets.forEach(widget => {\n if (!widget.parent) {\n this._addToMainArea(widget, {\n ...this._mainOptionsCache.get(widget),\n activate: false\n });\n }\n });\n this._mainOptionsCache.clear();\n // In case the active widget in the dock panel is *not* the active widget\n // of the application, defer to the application.\n if (applicationCurrentWidget) {\n dock.activateWidget(applicationCurrentWidget);\n }\n // Adjust menu and title\n this.add(this._menuHandler.panel, 'top', { rank: 100 });\n this._titleHandler.hide();\n }\n // Set the mode data attribute on the applications shell node.\n this.node.dataset.shellMode = mode;\n this._downPanel.fit();\n // Emit the mode changed signal\n this._modeChanged.emit(mode);\n }\n /**\n * A signal emitted when the shell/dock panel change modes (single/multiple document).\n */\n get modeChanged() {\n return this._modeChanged;\n }\n /**\n * Promise that resolves when state is first restored, returning layout\n * description.\n */\n get restored() {\n return this._restored.promise;\n }\n get translator() {\n var _a;\n return (_a = this._translator) !== null && _a !== void 0 ? _a : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n }\n set translator(value) {\n if (value !== this._translator) {\n this._translator = value;\n // Set translator for tab bars\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.TabBarSvg.translator = value;\n const trans = value.load('jupyterlab');\n this._menuHandler.panel.node.setAttribute('aria-label', trans.__('main menu'));\n this._leftHandler.sideBar.node.setAttribute('aria-label', trans.__('main sidebar'));\n this._leftHandler.sideBar.contentNode.setAttribute('aria-label', trans.__('main sidebar'));\n this._rightHandler.sideBar.node.setAttribute('aria-label', trans.__('alternate sidebar'));\n this._rightHandler.sideBar.contentNode.setAttribute('aria-label', trans.__('alternate sidebar'));\n this._topHandler.panel.node.setAttribute('aria-label', trans.__('Top Bar'));\n this._bottomPanel.node.setAttribute('aria-label', trans.__('Bottom Panel'));\n this._dockPanel.node.setAttribute('aria-label', trans.__('Main Content'));\n }\n }\n /**\n * User customized shell layout.\n */\n get userLayout() {\n return _lumino_coreutils__WEBPACK_IMPORTED_MODULE_4__.JSONExt.deepCopy(this._userLayout);\n }\n /**\n * Activate a widget in its area.\n */\n activateById(id) {\n if (this._leftHandler.has(id)) {\n this._leftHandler.activate(id);\n return;\n }\n if (this._rightHandler.has(id)) {\n this._rightHandler.activate(id);\n return;\n }\n const tabIndex = this._downPanel.tabBar.titles.findIndex(title => title.owner.id === id);\n if (tabIndex >= 0) {\n this._downPanel.currentIndex = tabIndex;\n return;\n }\n const dock = this._dockPanel;\n const widget = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.find)(dock.widgets(), value => value.id === id);\n if (widget) {\n dock.activateWidget(widget);\n }\n }\n /**\n * Activate widget in specified area.\n *\n * ### Notes\n * The alpha version of this method only supports activating the \"main\" area.\n *\n * @alpha\n * @param area Name of area to activate\n */\n activateArea(area = 'main') {\n switch (area) {\n case 'main':\n {\n const current = this._currentTabBar();\n if (!current) {\n return;\n }\n if (current.currentTitle) {\n current.currentTitle.owner.activate();\n }\n }\n return;\n case 'left':\n case 'right':\n case 'header':\n case 'top':\n case 'menu':\n case 'bottom':\n console.debug(`Area: ${area} activation not yet implemented`);\n break;\n default:\n throw new Error(`Invalid area: ${area}`);\n }\n }\n /**\n * Activate the next Tab in the active TabBar.\n */\n activateNextTab() {\n const current = this._currentTabBar();\n if (!current) {\n return;\n }\n const ci = current.currentIndex;\n if (ci === -1) {\n return;\n }\n if (ci < current.titles.length - 1) {\n current.currentIndex += 1;\n if (current.currentTitle) {\n current.currentTitle.owner.activate();\n }\n return;\n }\n if (ci === current.titles.length - 1) {\n const nextBar = this._adjacentBar('next');\n if (nextBar) {\n nextBar.currentIndex = 0;\n if (nextBar.currentTitle) {\n nextBar.currentTitle.owner.activate();\n }\n }\n }\n }\n /**\n * Activate the previous Tab in the active TabBar.\n */\n activatePreviousTab() {\n const current = this._currentTabBar();\n if (!current) {\n return;\n }\n const ci = current.currentIndex;\n if (ci === -1) {\n return;\n }\n if (ci > 0) {\n current.currentIndex -= 1;\n if (current.currentTitle) {\n current.currentTitle.owner.activate();\n }\n return;\n }\n if (ci === 0) {\n const prevBar = this._adjacentBar('previous');\n if (prevBar) {\n const len = prevBar.titles.length;\n prevBar.currentIndex = len - 1;\n if (prevBar.currentTitle) {\n prevBar.currentTitle.owner.activate();\n }\n }\n }\n }\n /**\n * Activate the next TabBar.\n */\n activateNextTabBar() {\n const nextBar = this._adjacentBar('next');\n if (nextBar) {\n if (nextBar.currentTitle) {\n nextBar.currentTitle.owner.activate();\n }\n }\n }\n /**\n * Activate the next TabBar.\n */\n activatePreviousTabBar() {\n const nextBar = this._adjacentBar('previous');\n if (nextBar) {\n if (nextBar.currentTitle) {\n nextBar.currentTitle.owner.activate();\n }\n }\n }\n /**\n * Add a widget to the JupyterLab shell\n *\n * @param widget Widget\n * @param area Area\n * @param options Options\n */\n add(widget, area = 'main', options) {\n var _a;\n if (!this._userLayout) {\n this._delayedWidget.push({ widget, area, options });\n return;\n }\n let userPosition;\n if ((options === null || options === void 0 ? void 0 : options.type) && this._userLayout[this.mode][options.type]) {\n userPosition = this._userLayout[this.mode][options.type];\n this._idTypeMap.set(widget.id, options.type);\n }\n else {\n userPosition = this._userLayout[this.mode][widget.id];\n }\n if (options === null || options === void 0 ? void 0 : options.type) {\n this._idTypeMap.set(widget.id, options.type);\n widget.disposed.connect(() => {\n this._idTypeMap.delete(widget.id);\n });\n }\n area = (_a = userPosition === null || userPosition === void 0 ? void 0 : userPosition.area) !== null && _a !== void 0 ? _a : area;\n options =\n options || (userPosition === null || userPosition === void 0 ? void 0 : userPosition.options)\n ? {\n ...options,\n ...userPosition === null || userPosition === void 0 ? void 0 : userPosition.options\n }\n : undefined;\n switch (area || 'main') {\n case 'bottom':\n return this._addToBottomArea(widget, options);\n case 'down':\n return this._addToDownArea(widget, options);\n case 'header':\n return this._addToHeaderArea(widget, options);\n case 'left':\n return this._addToLeftArea(widget, options);\n case 'main':\n return this._addToMainArea(widget, options);\n case 'menu':\n return this._addToMenuArea(widget, options);\n case 'right':\n return this._addToRightArea(widget, options);\n case 'top':\n return this._addToTopArea(widget, options);\n default:\n throw new Error(`Invalid area: ${area}`);\n }\n }\n /**\n * Move a widget type to a new area.\n *\n * The type is determined from the `widget.id` and fallback to `widget.id`.\n *\n * #### Notes\n * If `mode` is undefined, both mode are updated.\n * The new layout is now persisted.\n *\n * @param widget Widget to move\n * @param area New area\n * @param mode Mode to change\n * @returns The new user layout\n */\n move(widget, area, mode) {\n var _a;\n const type = (_a = this._idTypeMap.get(widget.id)) !== null && _a !== void 0 ? _a : widget.id;\n for (const m of ['single-document', 'multiple-document'].filter(c => !mode || c === mode)) {\n this._userLayout[m][type] = {\n ...this._userLayout[m][type],\n area\n };\n }\n this.add(widget, area);\n return this._userLayout;\n }\n /**\n * Collapse the left area.\n */\n collapseLeft() {\n this._leftHandler.collapse();\n this._onLayoutModified();\n }\n /**\n * Collapse the right area.\n */\n collapseRight() {\n this._rightHandler.collapse();\n this._onLayoutModified();\n }\n /**\n * Dispose the shell.\n */\n dispose() {\n if (this.isDisposed) {\n return;\n }\n this._layoutDebouncer.dispose();\n super.dispose();\n }\n /**\n * Expand the left area.\n *\n * #### Notes\n * This will open the most recently used tab,\n * or the first tab if there is no most recently used.\n */\n expandLeft() {\n this._leftHandler.expand();\n this._onLayoutModified();\n }\n /**\n * Expand the right area.\n *\n * #### Notes\n * This will open the most recently used tab,\n * or the first tab if there is no most recently used.\n */\n expandRight() {\n this._rightHandler.expand();\n this._onLayoutModified();\n }\n /**\n * Close all widgets in the main and down area.\n */\n closeAll() {\n // Make a copy of all the widget in the dock panel (using `Array.from()`)\n // before removing them because removing them while iterating through them\n // modifies the underlying data of the iterator.\n Array.from(this._dockPanel.widgets()).forEach(widget => widget.close());\n this._downPanel.stackedPanel.widgets.forEach(widget => widget.close());\n }\n /**\n * Whether an side tab bar is visible or not.\n *\n * @param side Sidebar of interest\n * @returns Side tab bar visibility\n */\n isSideTabBarVisible(side) {\n switch (side) {\n case 'left':\n return this._leftHandler.isVisible;\n case 'right':\n return this._rightHandler.isVisible;\n }\n }\n /**\n * Whether the top bar in simple mode is visible or not.\n *\n * @returns Top bar visibility\n */\n isTopInSimpleModeVisible() {\n return !this._topHandlerHiddenByUser;\n }\n /**\n * True if the given area is empty.\n */\n isEmpty(area) {\n switch (area) {\n case 'bottom':\n return this._bottomPanel.widgets.length === 0;\n case 'down':\n return this._downPanel.stackedPanel.widgets.length === 0;\n case 'header':\n return this._headerPanel.widgets.length === 0;\n case 'left':\n return this._leftHandler.stackedPanel.widgets.length === 0;\n case 'main':\n return this._dockPanel.isEmpty;\n case 'menu':\n return this._menuHandler.panel.widgets.length === 0;\n case 'right':\n return this._rightHandler.stackedPanel.widgets.length === 0;\n case 'top':\n return this._topHandler.panel.widgets.length === 0;\n default:\n return true;\n }\n }\n /**\n * Restore the layout state and configuration for the application shell.\n *\n * #### Notes\n * This should only be called once.\n */\n async restoreLayout(mode, layoutRestorer, configuration = {}) {\n var _a, _b, _c, _d;\n // Set the configuration and add widgets added before the shell was ready.\n this._userLayout = {\n 'single-document': (_a = configuration['single-document']) !== null && _a !== void 0 ? _a : {},\n 'multiple-document': (_b = configuration['multiple-document']) !== null && _b !== void 0 ? _b : {}\n };\n this._delayedWidget.forEach(({ widget, area, options }) => {\n this.add(widget, area, options);\n });\n this._delayedWidget.length = 0;\n this._layoutRestorer = layoutRestorer;\n // Get the layout from the restorer\n const layout = await layoutRestorer.fetch();\n // Reset the layout\n const { mainArea, downArea, leftArea, rightArea, topArea, relativeSizes } = layout;\n // Rehydrate the main area.\n if (mainArea) {\n const { currentWidget, dock } = mainArea;\n if (dock && mode === 'multiple-document') {\n this._dockPanel.restoreLayout(dock);\n }\n if (mode) {\n this.mode = mode;\n }\n if (currentWidget) {\n this.activateById(currentWidget.id);\n }\n }\n else {\n // This is needed when loading in an empty workspace in single doc mode\n if (mode) {\n this.mode = mode;\n }\n }\n if ((topArea === null || topArea === void 0 ? void 0 : topArea.simpleVisibility) !== undefined) {\n this._topHandlerHiddenByUser = !topArea.simpleVisibility;\n if (this.mode === 'single-document') {\n this._topHandler.panel.setHidden(this._topHandlerHiddenByUser);\n }\n }\n // Rehydrate the down area\n if (downArea) {\n const { currentWidget, widgets, size } = downArea;\n const widgetIds = (_c = widgets === null || widgets === void 0 ? void 0 : widgets.map(widget => widget.id)) !== null && _c !== void 0 ? _c : [];\n // Remove absent widgets\n this._downPanel.tabBar.titles\n .filter(title => !widgetIds.includes(title.owner.id))\n .map(title => title.owner.close());\n // Add new widgets\n const titleIds = this._downPanel.tabBar.titles.map(title => title.owner.id);\n widgets === null || widgets === void 0 ? void 0 : widgets.filter(widget => !titleIds.includes(widget.id)).map(widget => this._downPanel.addWidget(widget));\n // Reorder tabs\n while (!_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.ArrayExt.shallowEqual(widgetIds, this._downPanel.tabBar.titles.map(title => title.owner.id))) {\n this._downPanel.tabBar.titles.forEach((title, index) => {\n const position = widgetIds.findIndex(id => title.owner.id == id);\n if (position >= 0 && position != index) {\n this._downPanel.tabBar.insertTab(position, title);\n }\n });\n }\n if (currentWidget) {\n const index = this._downPanel.stackedPanel.widgets.findIndex(widget => widget.id === currentWidget.id);\n if (index) {\n this._downPanel.currentIndex = index;\n (_d = this._downPanel.currentWidget) === null || _d === void 0 ? void 0 : _d.activate();\n }\n }\n if (size && size > 0.0) {\n this._vsplitPanel.setRelativeSizes([1.0 - size, size]);\n }\n else {\n // Close all tabs and hide the panel\n this._downPanel.stackedPanel.widgets.forEach(widget => widget.close());\n this._downPanel.hide();\n }\n }\n // Rehydrate the left area.\n if (leftArea) {\n this._leftHandler.rehydrate(leftArea);\n }\n else {\n if (mode === 'single-document') {\n this.collapseLeft();\n }\n }\n // Rehydrate the right area.\n if (rightArea) {\n this._rightHandler.rehydrate(rightArea);\n }\n else {\n if (mode === 'single-document') {\n this.collapseRight();\n }\n }\n // Restore the relative sizes.\n if (relativeSizes) {\n this._hsplitPanel.setRelativeSizes(relativeSizes);\n }\n if (!this._isRestored) {\n // Make sure all messages in the queue are finished before notifying\n // any extensions that are waiting for the promise that guarantees the\n // application state has been restored.\n _lumino_messaging__WEBPACK_IMPORTED_MODULE_5__.MessageLoop.flush();\n this._restored.resolve(layout);\n }\n }\n /**\n * Save the dehydrated state of the application shell.\n */\n saveLayout() {\n // If the application is in single document mode, use the cached layout if\n // available. Otherwise, default to querying the dock panel for layout.\n const layout = {\n mainArea: {\n currentWidget: this._tracker.currentWidget,\n dock: this.mode === 'single-document'\n ? this._cachedLayout || this._dockPanel.saveLayout()\n : this._dockPanel.saveLayout()\n },\n downArea: {\n currentWidget: this._downPanel.currentWidget,\n widgets: Array.from(this._downPanel.stackedPanel.widgets),\n size: this._vsplitPanel.relativeSizes()[1]\n },\n leftArea: this._leftHandler.dehydrate(),\n rightArea: this._rightHandler.dehydrate(),\n topArea: { simpleVisibility: !this._topHandlerHiddenByUser },\n relativeSizes: this._hsplitPanel.relativeSizes()\n };\n return layout;\n }\n /**\n * Toggle top header visibility in simple mode\n *\n * Note: Does nothing in multi-document mode\n */\n toggleTopInSimpleModeVisibility() {\n if (this.mode === 'single-document') {\n if (this._topHandler.panel.isVisible) {\n this._topHandlerHiddenByUser = true;\n this._topHandler.panel.hide();\n }\n else {\n this._topHandlerHiddenByUser = false;\n this._topHandler.panel.show();\n this._updateTitlePanelTitle();\n }\n this._onLayoutModified();\n }\n }\n /**\n * Toggle side tab bar visibility\n *\n * @param side Sidebar of interest\n */\n toggleSideTabBarVisibility(side) {\n if (side === 'right') {\n if (this._rightHandler.isVisible) {\n this._rightHandler.hide();\n }\n else {\n this._rightHandler.show();\n }\n }\n else {\n if (this._leftHandler.isVisible) {\n this._leftHandler.hide();\n }\n else {\n this._leftHandler.show();\n }\n }\n }\n /**\n * Update the shell configuration.\n *\n * @param config Shell configuration\n */\n updateConfig(config) {\n if (config.hiddenMode) {\n switch (config.hiddenMode) {\n case 'display':\n this._dockPanel.hiddenMode = _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.Widget.HiddenMode.Display;\n break;\n case 'scale':\n this._dockPanel.hiddenMode = _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.Widget.HiddenMode.Scale;\n break;\n case 'contentVisibility':\n this._dockPanel.hiddenMode = _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.Widget.HiddenMode.ContentVisibility;\n break;\n }\n }\n }\n /**\n * Returns the widgets for an application area.\n */\n widgets(area) {\n switch (area !== null && area !== void 0 ? area : 'main') {\n case 'main':\n return this._dockPanel.widgets();\n case 'left':\n return (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.map)(this._leftHandler.sideBar.titles, t => t.owner);\n case 'right':\n return (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.map)(this._rightHandler.sideBar.titles, t => t.owner);\n case 'header':\n return this._headerPanel.children();\n case 'top':\n return this._topHandler.panel.children();\n case 'menu':\n return this._menuHandler.panel.children();\n case 'bottom':\n return this._bottomPanel.children();\n default:\n throw new Error(`Invalid area: ${area}`);\n }\n }\n /**\n * Handle `after-attach` messages for the application shell.\n */\n onAfterAttach(msg) {\n this.node.dataset.shellMode = this.mode;\n }\n /**\n * Update the title panel title based on the title of the current widget.\n */\n _updateTitlePanelTitle() {\n let current = this.currentWidget;\n const inputElement = this._titleHandler.inputElement;\n inputElement.value = current ? current.title.label : '';\n inputElement.title = current ? current.title.caption : '';\n }\n /**\n * The path of the current widget changed, fire the _currentPathChanged signal.\n */\n _updateCurrentPath() {\n let current = this.currentWidget;\n let newValue = '';\n if (current && current instanceof _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_0__.DocumentWidget) {\n newValue = current.context.path;\n }\n this._currentPathChanged.emit({\n newValue: newValue,\n oldValue: this._currentPath\n });\n this._currentPath = newValue;\n }\n /**\n * Add a widget to the left content area.\n *\n * #### Notes\n * Widgets must have a unique `id` property, which will be used as the DOM id.\n */\n _addToLeftArea(widget, options) {\n if (!widget.id) {\n console.error('Widgets added to app shell must have unique id property.');\n return;\n }\n options = options || this._sideOptionsCache.get(widget) || {};\n this._sideOptionsCache.set(widget, options);\n const rank = 'rank' in options ? options.rank : DEFAULT_RANK;\n this._leftHandler.addWidget(widget, rank);\n this._onLayoutModified();\n }\n /**\n * Add a widget to the main content area.\n *\n * #### Notes\n * Widgets must have a unique `id` property, which will be used as the DOM id.\n * All widgets added to the main area should be disposed after removal\n * (disposal before removal will remove the widget automatically).\n *\n * In the options, `ref` defaults to `null`, `mode` defaults to `'tab-after'`,\n * and `activate` defaults to `true`.\n */\n _addToMainArea(widget, options) {\n if (!widget.id) {\n console.error('Widgets added to app shell must have unique id property.');\n return;\n }\n options = options || {};\n const dock = this._dockPanel;\n const mode = options.mode || 'tab-after';\n let ref = this.currentWidget;\n if (options.ref) {\n ref = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.find)(dock.widgets(), value => value.id === options.ref) || null;\n }\n const { title } = widget;\n // Add widget ID to tab so that we can get a handle on the tab's widget\n // (for context menu support)\n title.dataset = { ...title.dataset, id: widget.id };\n if (title.icon instanceof _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.LabIcon) {\n // bind an appropriate style to the icon\n title.icon = title.icon.bindprops({\n stylesheet: 'mainAreaTab'\n });\n }\n else if (typeof title.icon === 'string' || !title.icon) {\n // add some classes to help with displaying css background imgs\n title.iconClass = (0,_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.classes)(title.iconClass, 'jp-Icon');\n }\n dock.addWidget(widget, { mode, ref });\n // The dock panel doesn't account for placement information while\n // in single document mode, so upon rehydrating any widgets that were\n // added will not be in the correct place. Cache the placement information\n // here so that we can later rehydrate correctly.\n if (dock.mode === 'single-document') {\n this._mainOptionsCache.set(widget, options);\n }\n if (options.activate !== false) {\n dock.activateWidget(widget);\n }\n }\n /**\n * Add a widget to the right content area.\n *\n * #### Notes\n * Widgets must have a unique `id` property, which will be used as the DOM id.\n */\n _addToRightArea(widget, options) {\n if (!widget.id) {\n console.error('Widgets added to app shell must have unique id property.');\n return;\n }\n options = options || this._sideOptionsCache.get(widget) || {};\n const rank = 'rank' in options ? options.rank : DEFAULT_RANK;\n this._sideOptionsCache.set(widget, options);\n this._rightHandler.addWidget(widget, rank);\n this._onLayoutModified();\n }\n /**\n * Add a widget to the top content area.\n *\n * #### Notes\n * Widgets must have a unique `id` property, which will be used as the DOM id.\n */\n _addToTopArea(widget, options) {\n var _a;\n if (!widget.id) {\n console.error('Widgets added to app shell must have unique id property.');\n return;\n }\n options = options || {};\n const rank = (_a = options.rank) !== null && _a !== void 0 ? _a : DEFAULT_RANK;\n this._topHandler.addWidget(widget, rank);\n this._onLayoutModified();\n if (this._topHandler.panel.isHidden) {\n this._topHandler.panel.show();\n }\n }\n /**\n * Add a widget to the title content area.\n *\n * #### Notes\n * Widgets must have a unique `id` property, which will be used as the DOM id.\n */\n _addToMenuArea(widget, options) {\n var _a;\n if (!widget.id) {\n console.error('Widgets added to app shell must have unique id property.');\n return;\n }\n options = options || {};\n const rank = (_a = options.rank) !== null && _a !== void 0 ? _a : DEFAULT_RANK;\n this._menuHandler.addWidget(widget, rank);\n this._onLayoutModified();\n if (this._menuHandler.panel.isHidden) {\n this._menuHandler.panel.show();\n }\n }\n /**\n * Add a widget to the header content area.\n *\n * #### Notes\n * Widgets must have a unique `id` property, which will be used as the DOM id.\n */\n _addToHeaderArea(widget, options) {\n if (!widget.id) {\n console.error('Widgets added to app shell must have unique id property.');\n return;\n }\n // Temporary: widgets are added to the panel in order of insertion.\n this._headerPanel.addWidget(widget);\n this._onLayoutModified();\n if (this._headerPanel.isHidden) {\n this._headerPanel.show();\n }\n }\n /**\n * Add a widget to the bottom content area.\n *\n * #### Notes\n * Widgets must have a unique `id` property, which will be used as the DOM id.\n */\n _addToBottomArea(widget, options) {\n if (!widget.id) {\n console.error('Widgets added to app shell must have unique id property.');\n return;\n }\n // Temporary: widgets are added to the panel in order of insertion.\n this._bottomPanel.addWidget(widget);\n this._onLayoutModified();\n if (this._bottomPanel.isHidden) {\n this._bottomPanel.show();\n }\n }\n _addToDownArea(widget, options) {\n if (!widget.id) {\n console.error('Widgets added to app shell must have unique id property.');\n return;\n }\n options = options || {};\n const { title } = widget;\n // Add widget ID to tab so that we can get a handle on the tab's widget\n // (for context menu support)\n title.dataset = { ...title.dataset, id: widget.id };\n if (title.icon instanceof _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.LabIcon) {\n // bind an appropriate style to the icon\n title.icon = title.icon.bindprops({\n stylesheet: 'mainAreaTab'\n });\n }\n else if (typeof title.icon === 'string' || !title.icon) {\n // add some classes to help with displaying css background imgs\n title.iconClass = (0,_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.classes)(title.iconClass, 'jp-Icon');\n }\n this._downPanel.addWidget(widget);\n this._onLayoutModified();\n if (this._downPanel.isHidden) {\n this._downPanel.show();\n }\n }\n /*\n * Return the tab bar adjacent to the current TabBar or `null`.\n */\n _adjacentBar(direction) {\n const current = this._currentTabBar();\n if (!current) {\n return null;\n }\n const bars = Array.from(this._dockPanel.tabBars());\n const len = bars.length;\n const index = bars.indexOf(current);\n if (direction === 'previous') {\n return index > 0 ? bars[index - 1] : index === 0 ? bars[len - 1] : null;\n }\n // Otherwise, direction is 'next'.\n return index < len - 1\n ? bars[index + 1]\n : index === len - 1\n ? bars[0]\n : null;\n }\n /*\n * Return the TabBar that has the currently active Widget or null.\n */\n _currentTabBar() {\n const current = this._tracker.currentWidget;\n if (!current) {\n return null;\n }\n const title = current.title;\n const bars = this._dockPanel.tabBars();\n return (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.find)(bars, bar => bar.titles.indexOf(title) > -1) || null;\n }\n /**\n * Handle a change to the dock area active widget.\n */\n _onActiveChanged(sender, args) {\n if (args.newValue) {\n args.newValue.title.className += ` ${ACTIVE_CLASS}`;\n }\n if (args.oldValue) {\n args.oldValue.title.className = args.oldValue.title.className.replace(ACTIVE_CLASS, '');\n }\n this._activeChanged.emit(args);\n }\n /**\n * Handle a change to the dock area current widget.\n */\n _onCurrentChanged(sender, args) {\n if (args.newValue) {\n args.newValue.title.className += ` ${CURRENT_CLASS}`;\n }\n if (args.oldValue) {\n args.oldValue.title.className = args.oldValue.title.className.replace(CURRENT_CLASS, '');\n }\n this._currentChanged.emit(args);\n this._onLayoutModified();\n }\n /**\n * Handle a change on the down panel widgets\n */\n _onTabPanelChanged() {\n if (this._downPanel.stackedPanel.widgets.length === 0) {\n this._downPanel.hide();\n }\n this._onLayoutModified();\n }\n /**\n * Handle a change to the layout.\n */\n _onLayoutModified() {\n void this._layoutDebouncer.invoke();\n }\n}\nvar Private;\n(function (Private) {\n /**\n * A less-than comparison function for side bar rank items.\n */\n function itemCmp(first, second) {\n return first.rank - second.rank;\n }\n Private.itemCmp = itemCmp;\n /**\n * Removes widgets that have been disposed from an area config, mutates area.\n */\n function normalizeAreaConfig(parent, area) {\n if (!area) {\n return;\n }\n if (area.type === 'tab-area') {\n area.widgets = area.widgets.filter(widget => !widget.isDisposed && widget.parent === parent);\n return;\n }\n area.children.forEach(child => {\n normalizeAreaConfig(parent, child);\n });\n }\n Private.normalizeAreaConfig = normalizeAreaConfig;\n /**\n * A class which manages a panel and sorts its widgets by rank.\n */\n class PanelHandler {\n constructor() {\n /**\n * A message hook for child add/remove messages on the main area dock panel.\n */\n this._panelChildHook = (handler, msg) => {\n switch (msg.type) {\n case 'child-added':\n {\n const widget = msg.child;\n // If we already know about this widget, we're done\n if (this._items.find(v => v.widget === widget)) {\n break;\n }\n // Otherwise, add to the end by default\n const rank = this._items[this._items.length - 1].rank;\n this._items.push({ widget, rank });\n }\n break;\n case 'child-removed':\n {\n const widget = msg.child;\n _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.ArrayExt.removeFirstWhere(this._items, v => v.widget === widget);\n }\n break;\n default:\n break;\n }\n return true;\n };\n this._items = new Array();\n this._panel = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.Panel();\n _lumino_messaging__WEBPACK_IMPORTED_MODULE_5__.MessageLoop.installMessageHook(this._panel, this._panelChildHook);\n }\n /**\n * Get the panel managed by the handler.\n */\n get panel() {\n return this._panel;\n }\n /**\n * Add a widget to the panel.\n *\n * If the widget is already added, it will be moved.\n */\n addWidget(widget, rank) {\n widget.parent = null;\n const item = { widget, rank };\n const index = _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.ArrayExt.upperBound(this._items, item, Private.itemCmp);\n _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.ArrayExt.insert(this._items, index, item);\n this._panel.insertWidget(index, widget);\n }\n }\n Private.PanelHandler = PanelHandler;\n /**\n * A class which manages a side bar and related stacked panel.\n */\n class SideBarHandler {\n /**\n * Construct a new side bar handler.\n */\n constructor() {\n this._isHiddenByUser = false;\n this._items = new Array();\n this._updated = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_7__.Signal(this);\n this._sideBar = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.TabBar({\n insertBehavior: 'none',\n removeBehavior: 'none',\n allowDeselect: true,\n orientation: 'vertical'\n });\n this._stackedPanel = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.StackedPanel();\n this._sideBar.hide();\n this._stackedPanel.hide();\n this._lastCurrent = null;\n this._sideBar.currentChanged.connect(this._onCurrentChanged, this);\n this._sideBar.tabActivateRequested.connect(this._onTabActivateRequested, this);\n this._stackedPanel.widgetRemoved.connect(this._onWidgetRemoved, this);\n }\n /**\n * Whether the side bar is visible\n */\n get isVisible() {\n return this._sideBar.isVisible;\n }\n /**\n * Get the tab bar managed by the handler.\n */\n get sideBar() {\n return this._sideBar;\n }\n /**\n * Get the stacked panel managed by the handler\n */\n get stackedPanel() {\n return this._stackedPanel;\n }\n /**\n * Signal fires when the stack panel or the sidebar changes\n */\n get updated() {\n return this._updated;\n }\n /**\n * Handles a movement to the handles of a widget\n */\n _onHandleMoved() {\n return this._refreshVisibility();\n }\n /**\n * Handles changes to the expansion status of a widget\n */\n _onExpansionToggle(sender, index) {\n return this._refreshVisibility();\n }\n /**\n * Expand the sidebar.\n *\n * #### Notes\n * This will open the most recently used tab, or the first tab\n * if there is no most recently used.\n */\n expand() {\n const previous = this._lastCurrent || (this._items.length > 0 && this._items[0].widget);\n if (previous) {\n this.activate(previous.id);\n }\n }\n /**\n * Activate a widget residing in the side bar by ID.\n *\n * @param id - The widget's unique ID.\n */\n activate(id) {\n const widget = this._findWidgetByID(id);\n if (widget) {\n this._sideBar.currentTitle = widget.title;\n widget.activate();\n }\n }\n /**\n * Test whether the sidebar has the given widget by id.\n */\n has(id) {\n return this._findWidgetByID(id) !== null;\n }\n /**\n * Collapse the sidebar so no items are expanded.\n */\n collapse() {\n this._sideBar.currentTitle = null;\n }\n /**\n * Add a widget and its title to the stacked panel and side bar.\n *\n * If the widget is already added, it will be moved.\n */\n addWidget(widget, rank) {\n var _a, _b, _c, _d;\n widget.parent = null;\n widget.hide();\n const item = { widget, rank };\n const index = this._findInsertIndex(item);\n _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.ArrayExt.insert(this._items, index, item);\n this._stackedPanel.insertWidget(index, widget);\n const title = this._sideBar.insertTab(index, widget.title);\n // Store the parent id in the title dataset\n // in order to dispatch click events to the right widget.\n title.dataset = { id: widget.id };\n if (title.icon instanceof _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.LabIcon) {\n // bind an appropriate style to the icon\n title.icon = title.icon.bindprops({\n stylesheet: 'sideBar'\n });\n }\n else if (typeof title.icon === 'string' && title.icon != '') {\n // add some classes to help with displaying css background imgs\n title.iconClass = (0,_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.classes)(title.iconClass, 'jp-Icon', 'jp-Icon-20');\n }\n else if (!title.icon && !title.label) {\n // add a fallback icon if there is no title label nor icon\n title.icon = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.tabIcon.bindprops({\n stylesheet: 'sideBar'\n });\n }\n // @ts-expect-error sometimes widget is an Accordion Panel\n (_b = (_a = widget.content) === null || _a === void 0 ? void 0 : _a.expansionToggled) === null || _b === void 0 ? void 0 : _b.connect(this._onExpansionToggle, this);\n // @ts-expect-error sometimes widget is a SidePanel\n (_d = (_c = widget.content) === null || _c === void 0 ? void 0 : _c.handleMoved) === null || _d === void 0 ? void 0 : _d.connect(this._onHandleMoved, this);\n this._refreshVisibility();\n }\n /**\n * Dehydrate the side bar data.\n */\n dehydrate() {\n const collapsed = this._sideBar.currentTitle === null;\n const widgets = Array.from(this._stackedPanel.widgets);\n const currentWidget = widgets[this._sideBar.currentIndex];\n const widgetStates = {};\n this._stackedPanel.widgets.forEach((w) => {\n if (w.id && w.content instanceof _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.SplitPanel) {\n widgetStates[w.id] = {\n sizes: w.content.relativeSizes(),\n expansionStates: w.content.widgets.map(wi => wi.isVisible)\n };\n }\n });\n return {\n collapsed,\n currentWidget,\n visible: !this._isHiddenByUser,\n widgets,\n widgetStates\n };\n }\n /**\n * Rehydrate the side bar.\n */\n rehydrate(data) {\n if (data.currentWidget) {\n this.activate(data.currentWidget.id);\n }\n if (data.collapsed) {\n this.collapse();\n }\n if (!data.visible) {\n this.hide();\n }\n if (data.widgetStates) {\n this._stackedPanel.widgets.forEach((w) => {\n var _a;\n if (w.id && w.content instanceof _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.SplitPanel) {\n const state = (_a = data.widgetStates[w.id]) !== null && _a !== void 0 ? _a : {};\n w.content.widgets.forEach((wi, widx) => {\n var _a;\n const expansion = ((_a = state.expansionStates) !== null && _a !== void 0 ? _a : [])[widx];\n if (typeof expansion === 'boolean' &&\n w.content instanceof _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.AccordionPanel) {\n expansion ? w.content.expand(widx) : w.content.collapse(widx);\n }\n });\n if (state.sizes) {\n w.content.setRelativeSizes(state.sizes);\n }\n }\n });\n }\n }\n /**\n * Hide the side bar even if it contains widgets\n */\n hide() {\n this._isHiddenByUser = true;\n this._refreshVisibility();\n }\n /**\n * Show the side bar if it contains widgets\n */\n show() {\n this._isHiddenByUser = false;\n this._refreshVisibility();\n }\n /**\n * Find the insertion index for a rank item.\n */\n _findInsertIndex(item) {\n return _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.ArrayExt.upperBound(this._items, item, Private.itemCmp);\n }\n /**\n * Find the index of the item with the given widget, or `-1`.\n */\n _findWidgetIndex(widget) {\n return _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.ArrayExt.findFirstIndex(this._items, i => i.widget === widget);\n }\n /**\n * Find the widget which owns the given title, or `null`.\n */\n _findWidgetByTitle(title) {\n const item = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.find)(this._items, value => value.widget.title === title);\n return item ? item.widget : null;\n }\n /**\n * Find the widget with the given id, or `null`.\n */\n _findWidgetByID(id) {\n const item = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.find)(this._items, value => value.widget.id === id);\n return item ? item.widget : null;\n }\n /**\n * Refresh the visibility of the side bar and stacked panel.\n */\n _refreshVisibility() {\n this._stackedPanel.setHidden(this._sideBar.currentTitle === null);\n this._sideBar.setHidden(this._isHiddenByUser || this._sideBar.titles.length === 0);\n this._updated.emit();\n }\n /**\n * Handle the `currentChanged` signal from the sidebar.\n */\n _onCurrentChanged(sender, args) {\n const oldWidget = args.previousTitle\n ? this._findWidgetByTitle(args.previousTitle)\n : null;\n const newWidget = args.currentTitle\n ? this._findWidgetByTitle(args.currentTitle)\n : null;\n if (oldWidget) {\n oldWidget.hide();\n }\n if (newWidget) {\n newWidget.show();\n }\n this._lastCurrent = newWidget || oldWidget;\n this._refreshVisibility();\n }\n /**\n * Handle a `tabActivateRequest` signal from the sidebar.\n */\n _onTabActivateRequested(sender, args) {\n args.title.owner.activate();\n }\n /*\n * Handle the `widgetRemoved` signal from the stacked panel.\n */\n _onWidgetRemoved(sender, widget) {\n if (widget === this._lastCurrent) {\n this._lastCurrent = null;\n }\n _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.ArrayExt.removeAt(this._items, this._findWidgetIndex(widget));\n this._sideBar.removeTab(widget.title);\n this._refreshVisibility();\n }\n }\n Private.SideBarHandler = SideBarHandler;\n class SkipLinkWidget extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.Widget {\n /**\n * Construct a new skipLink widget.\n */\n constructor(shell) {\n super();\n this.addClass('jp-skiplink');\n this.id = 'jp-skiplink';\n this._shell = shell;\n this._createSkipLink('Skip to main panel', 'main');\n }\n handleEvent(event) {\n var _a, _b;\n switch (event.type) {\n case 'click':\n if (event.target instanceof HTMLElement) {\n this._shell.activateArea((_b = (_a = event.target) === null || _a === void 0 ? void 0 : _a.dataset) === null || _b === void 0 ? void 0 : _b.targetarea);\n }\n break;\n }\n }\n /**\n * Handle `after-attach` messages for the widget.\n */\n onAfterAttach(msg) {\n super.onAfterAttach(msg);\n this.node.addEventListener('click', this);\n }\n /**\n * A message handler invoked on a `'before-detach'`\n * message\n */\n onBeforeDetach(msg) {\n this.node.removeEventListener('click', this);\n super.onBeforeDetach(msg);\n }\n _createSkipLink(skipLinkText, area) {\n const skipLink = document.createElement('a');\n skipLink.href = '#';\n skipLink.tabIndex = 0;\n skipLink.text = skipLinkText;\n skipLink.className = 'skip-link';\n skipLink.dataset['targetarea'] = area;\n this.node.appendChild(skipLink);\n }\n }\n Private.SkipLinkWidget = SkipLinkWidget;\n class TitleHandler extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.Widget {\n /**\n * Construct a new title handler.\n */\n constructor(shell) {\n super();\n this._selected = false;\n const inputElement = document.createElement('input');\n inputElement.type = 'text';\n this.node.appendChild(inputElement);\n this._shell = shell;\n this.id = 'jp-title-panel-title';\n }\n /**\n * Handle `after-attach` messages for the widget.\n */\n onAfterAttach(msg) {\n super.onAfterAttach(msg);\n this.inputElement.addEventListener('keyup', this);\n this.inputElement.addEventListener('click', this);\n this.inputElement.addEventListener('blur', this);\n }\n /**\n * Handle `before-detach` messages for the widget.\n */\n onBeforeDetach(msg) {\n super.onBeforeDetach(msg);\n this.inputElement.removeEventListener('keyup', this);\n this.inputElement.removeEventListener('click', this);\n this.inputElement.removeEventListener('blur', this);\n }\n handleEvent(event) {\n switch (event.type) {\n case 'keyup':\n void this._evtKeyUp(event);\n break;\n case 'click':\n this._evtClick(event);\n break;\n case 'blur':\n this._selected = false;\n break;\n }\n }\n /**\n * Handle `keyup` events on the handler.\n */\n async _evtKeyUp(event) {\n if (event.key == 'Enter') {\n const widget = this._shell.currentWidget;\n if (widget == null) {\n return;\n }\n const oldName = widget.title.label;\n const inputElement = this.inputElement;\n const newName = inputElement.value;\n inputElement.blur();\n if (newName !== oldName) {\n widget.title.label = newName;\n }\n else {\n inputElement.value = oldName;\n }\n }\n }\n /**\n * Handle `click` events on the handler.\n */\n _evtClick(event) {\n // only handle primary button clicks\n if (event.button !== 0 || this._selected) {\n return;\n }\n const inputElement = this.inputElement;\n event.preventDefault();\n event.stopPropagation();\n this._selected = true;\n const selectEnd = inputElement.value.indexOf('.');\n if (selectEnd === -1) {\n inputElement.select();\n }\n else {\n inputElement.setSelectionRange(0, selectEnd);\n }\n }\n /**\n * The input element containing the parent widget's title.\n */\n get inputElement() {\n return this.node.children[0];\n }\n }\n Private.TitleHandler = TitleHandler;\n class RestorableSplitPanel extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_8__.SplitPanel {\n /**\n * Construct a new RestorableSplitPanel.\n */\n constructor(options = {}) {\n super(options);\n this._updated = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_7__.Signal(this);\n }\n /**\n * A signal emitted when the split panel is updated.\n */\n get updated() {\n return this._updated;\n }\n /**\n * Emit 'updated' signal on 'update' requests.\n */\n onUpdateRequest(msg) {\n super.onUpdateRequest(msg);\n this._updated.emit();\n }\n }\n Private.RestorableSplitPanel = RestorableSplitPanel;\n})(Private || (Private = {}));\n//# sourceMappingURL=shell.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/shell.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/status.js": +/*!*************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/status.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LabStatus: () => (/* binding */ LabStatus)\n/* harmony export */ });\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/disposable */ \"webpack/sharing/consume/default/@lumino/disposable/@lumino/disposable\");\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_disposable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_1__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n/**\n * The application status signals and flags class.\n */\nclass LabStatus {\n /**\n * Construct a new status object.\n */\n constructor(app) {\n this._busyCount = 0;\n this._dirtyCount = 0;\n this._busySignal = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal(app);\n this._dirtySignal = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal(app);\n }\n /**\n * Returns a signal for when application changes its busy status.\n */\n get busySignal() {\n return this._busySignal;\n }\n /**\n * Returns a signal for when application changes its dirty status.\n */\n get dirtySignal() {\n return this._dirtySignal;\n }\n /**\n * Whether the application is busy.\n */\n get isBusy() {\n return this._busyCount > 0;\n }\n /**\n * Whether the application is dirty.\n */\n get isDirty() {\n return this._dirtyCount > 0;\n }\n /**\n * Set the application state to dirty.\n *\n * @returns A disposable used to clear the dirty state for the caller.\n */\n setDirty() {\n const oldDirty = this.isDirty;\n this._dirtyCount++;\n if (this.isDirty !== oldDirty) {\n this._dirtySignal.emit(this.isDirty);\n }\n return new _lumino_disposable__WEBPACK_IMPORTED_MODULE_0__.DisposableDelegate(() => {\n const oldDirty = this.isDirty;\n this._dirtyCount = Math.max(0, this._dirtyCount - 1);\n if (this.isDirty !== oldDirty) {\n this._dirtySignal.emit(this.isDirty);\n }\n });\n }\n /**\n * Set the application state to busy.\n *\n * @returns A disposable used to clear the busy state for the caller.\n */\n setBusy() {\n const oldBusy = this.isBusy;\n this._busyCount++;\n if (this.isBusy !== oldBusy) {\n this._busySignal.emit(this.isBusy);\n }\n return new _lumino_disposable__WEBPACK_IMPORTED_MODULE_0__.DisposableDelegate(() => {\n const oldBusy = this.isBusy;\n this._busyCount--;\n if (this.isBusy !== oldBusy) {\n this._busySignal.emit(this.isBusy);\n }\n });\n }\n}\n//# sourceMappingURL=status.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/status.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/tokens.js": +/*!*************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/tokens.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ IConnectionLost: () => (/* binding */ IConnectionLost),\n/* harmony export */ ILabStatus: () => (/* binding */ ILabStatus),\n/* harmony export */ IRouter: () => (/* binding */ IRouter)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * A token for which a plugin can provide to respond to connection failures\n * to the application server.\n */\nconst IConnectionLost = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/application:IConnectionLost', `A service for invoking the dialog shown\n when JupyterLab has lost its connection to the server. Use this if, for some reason,\n you want to bring up the \"connection lost\" dialog under new circumstances.`);\n/**\n * The application status token.\n */\nconst ILabStatus = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/application:ILabStatus', `A service for interacting with the application busy/dirty\n status. Use this if you want to set the application \"busy\" favicon, or to set\n the application \"dirty\" status, which asks the user for confirmation before leaving the application page.`);\n/**\n * The URL Router token.\n */\nconst IRouter = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/application:IRouter', 'The URL router used by the application. Use this to add custom URL-routing for your extension (e.g., to invoke a command if the user navigates to a sub-path).');\n//# sourceMappingURL=tokens.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/tokens.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/treepathupdater.js": +/*!**********************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/treepathupdater.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ITreePathUpdater: () => (/* binding */ ITreePathUpdater)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/**\n * The tree path updater token.\n */\nconst ITreePathUpdater = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/application:ITreePathUpdater', 'A service to update the tree path.');\n//# sourceMappingURL=treepathupdater.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/treepathupdater.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/lib/utils.js": +/*!************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/lib/utils.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addSemanticCommand: () => (/* binding */ addSemanticCommand),\n/* harmony export */ createSemanticCommand: () => (/* binding */ createSemanticCommand)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n/**\n * Add a semantic commands to the application and take care\n * of setting up the command changed signal.\n *\n * @param options Semantic command options\n */\nfunction addSemanticCommand(options) {\n const { id, commands, shell, semanticCommands, default: defaultValues, overrides, trans } = options;\n commands.addCommand(id, {\n ...createSemanticCommand({ commands, shell }, semanticCommands, defaultValues !== null && defaultValues !== void 0 ? defaultValues : {}, trans !== null && trans !== void 0 ? trans : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator.load('jupyterlab')),\n ...overrides\n });\n const commandList = Array.isArray(semanticCommands)\n ? semanticCommands\n : [semanticCommands];\n const onCommandChanged = (commands, args) => {\n if (args.id) {\n if (args.id === id && args.type === 'removed') {\n commands.commandChanged.disconnect(onCommandChanged);\n }\n else {\n const commandIds = commandList.reduce((agg, cmd) => agg.concat(cmd.ids), []);\n if (commandIds.includes(args.id)) {\n switch (args.type) {\n case 'changed':\n case 'many-changed':\n commands.notifyCommandChanged(id);\n break;\n case 'removed':\n for (const cmd of commandList) {\n cmd.remove(args.id);\n }\n break;\n }\n }\n }\n }\n };\n commands.commandChanged.connect(onCommandChanged);\n}\n/**\n * Create the command options from the given semantic commands list\n * and the given default values.\n *\n * @param app Jupyter Application\n * @param semanticCommands Single semantic command or a list of commands\n * @param defaultValues Default values\n * @param trans Translation bundle\n * @returns Command options\n *\n * @deprecated Please use {@link addSemanticCommand}. This function will\n * be removed of the public API in JupyterLab 5.\n */\nfunction createSemanticCommand(app, semanticCommands, defaultValues, trans) {\n const { commands, shell } = app;\n const commandList = Array.isArray(semanticCommands)\n ? semanticCommands\n : [semanticCommands];\n return {\n label: concatenateTexts('label'),\n caption: concatenateTexts('caption'),\n isEnabled: () => {\n var _a;\n const isEnabled = reduceAttribute('isEnabled');\n return ((isEnabled.length > 0 &&\n !isEnabled.some(enabled => enabled === false)) ||\n ((_a = defaultValues.isEnabled) !== null && _a !== void 0 ? _a : false));\n },\n isToggled: () => {\n var _a;\n const isToggled = reduceAttribute('isToggled');\n return (isToggled.some(enabled => enabled === true) ||\n ((_a = defaultValues.isToggled) !== null && _a !== void 0 ? _a : false));\n },\n isVisible: () => {\n var _a;\n const isVisible = reduceAttribute('isVisible');\n return ((isVisible.length > 0 &&\n !isVisible.some(visible => visible === false)) ||\n ((_a = defaultValues.isVisible) !== null && _a !== void 0 ? _a : true));\n },\n execute: async () => {\n const widget = shell.currentWidget;\n const commandIds = commandList.map(cmd => widget !== null ? cmd.getActiveCommandId(widget) : null);\n const toExecute = commandIds.filter(commandId => commandId !== null && commands.isEnabled(commandId));\n let result = null;\n if (toExecute.length > 0) {\n for (const commandId of toExecute) {\n const args = { [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.SemanticCommand.WIDGET]: widget.id };\n result = await commands.execute(commandId, args);\n if (typeof result === 'boolean' && result === false) {\n // If a command returns a boolean, assume it is the execution success status\n // So break if it is false.\n break;\n }\n }\n }\n else if (defaultValues.execute) {\n result = await commands.execute(defaultValues.execute);\n }\n return result;\n }\n };\n function reduceAttribute(attribute) {\n const widget = shell.currentWidget;\n const commandIds = commandList.map(cmd => widget !== null ? cmd.getActiveCommandId(widget) : null);\n const attributes = commandIds\n .filter(commandId => commandId !== null)\n .map(commandId => commands[attribute](commandId));\n return attributes;\n }\n function concatenateTexts(attribute) {\n return () => {\n var _a;\n const texts = reduceAttribute(attribute).map((text, textIndex) => attribute == 'caption' && textIndex > 0\n ? text.toLocaleLowerCase()\n : text);\n switch (texts.length) {\n case 0:\n return (_a = defaultValues[attribute]) !== null && _a !== void 0 ? _a : '';\n case 1:\n return texts[0];\n default: {\n const hasEllipsis = texts.some(l => /…$/.test(l));\n const main = texts\n .slice(undefined, -1)\n .map(l => l.replace(/…$/, ''))\n .join(', ');\n const end = texts.slice(-1)[0].replace(/…$/, '') + (hasEllipsis ? '…' : '');\n return trans.__('%1 and %2', main, end);\n }\n }\n };\n }\n}\n//# sourceMappingURL=utils.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/lib/utils.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/application/style/index.js": +/*!**************************************************************!*\ + !*** ../node_modules/@jupyterlab/application/style/index.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _fortawesome_fontawesome_free_css_all_min_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fortawesome/fontawesome-free/css/all.min.css */ \"../node_modules/@fortawesome/fontawesome-free/css/all.min.css\");\n/* harmony import */ var _fortawesome_fontawesome_free_css_v4_shims_min_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @fortawesome/fontawesome-free/css/v4-shims.min.css */ \"../node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css\");\n/* harmony import */ var _lumino_widgets_style_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/widgets/style/index.js */ \"../node_modules/@lumino/widgets/style/index.js\");\n/* harmony import */ var _jupyterlab_ui_components_style_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/ui-components/style/index.js */ \"../node_modules/@jupyterlab/ui-components/style/index.js\");\n/* harmony import */ var _jupyterlab_apputils_style_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/apputils/style/index.js */ \"../node_modules/@jupyterlab/apputils/style/index.js\");\n/* harmony import */ var _jupyterlab_docregistry_style_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @jupyterlab/docregistry/style/index.js */ \"../node_modules/@jupyterlab/docregistry/style/index.js\");\n/* harmony import */ var _base_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./base.css */ \"../node_modules/@jupyterlab/application/style/base.css\");\n/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/index.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/announcements.js": +/*!***************************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/announcements.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ announcements: () => (/* binding */ announcements)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/services */ \"webpack/sharing/consume/default/@jupyterlab/services/@jupyterlab/services\");\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n\n\nconst COMMAND_HELP_OPEN = 'help:open';\nconst NEWS_API_URL = '/lab/api/news';\nconst UPDATE_API_URL = '/lab/api/update';\nconst PRIVACY_URL = 'https://jupyterlab.readthedocs.io/en/latest/privacy_policies.html';\n/**\n * Call the announcement API\n *\n * @param endpoint Endpoint to request\n * @param init Initial values for the request\n * @returns The response body interpreted as JSON\n */\nasync function requestAPI(endpoint, init = {}) {\n // Make request to Jupyter API\n const settings = _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__.ServerConnection.makeSettings();\n const requestUrl = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__.URLExt.join(settings.baseUrl, endpoint);\n let response;\n try {\n response = await _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__.ServerConnection.makeRequest(requestUrl, init, settings);\n }\n catch (error) {\n throw new _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__.ServerConnection.NetworkError(error);\n }\n const data = await response.json();\n if (!response.ok) {\n throw new _jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__.ServerConnection.ResponseError(response, data.message);\n }\n return data;\n}\nconst announcements = {\n id: '@jupyterlab/apputils-extension:announcements',\n description: 'Add the announcement feature. It will fetch news on the internet and check for application updates.',\n autoStart: true,\n optional: [_jupyterlab_services__WEBPACK_IMPORTED_MODULE_2__.IConfigSectionManager, _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_3__.ISettingRegistry, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__.ITranslator],\n activate: (app, configSectionManager, settingRegistry, translator) => {\n var _a, _b;\n const CONFIG_SECTION_NAME = announcements.id.replace(/[^\\w]/g, '');\n void Promise.all([\n app.restored,\n (_a = settingRegistry === null || settingRegistry === void 0 ? void 0 : settingRegistry.load('@jupyterlab/apputils-extension:notification')) !== null && _a !== void 0 ? _a : Promise.resolve(null),\n // Use config instead of state to store independently of the workspace\n // if a news has been displayed or not.\n (_b = configSectionManager === null || configSectionManager === void 0 ? void 0 : configSectionManager.create({\n name: CONFIG_SECTION_NAME\n })) !== null && _b !== void 0 ? _b : Promise.resolve(null)\n ]).then(async ([_, settings, config]) => {\n const trans = (translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__.nullTranslator).load('jupyterlab');\n // Store dismiss state\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.manager.changed.connect((manager, change) => {\n var _a;\n if (change.type !== 'removed') {\n return;\n }\n const { id, tags } = ((_a = change\n .notification.options.data) !== null && _a !== void 0 ? _a : {});\n if ((tags !== null && tags !== void 0 ? tags : []).some(tag => ['news', 'update'].includes(tag)) && id) {\n const update = {};\n update[id] = { seen: true, dismissed: true };\n config === null || config === void 0 ? void 0 : config.update(update).catch(reason => {\n console.error(`Failed to update the announcements config:\\n${reason}`);\n });\n }\n });\n const mustFetchNews = settings === null || settings === void 0 ? void 0 : settings.get('fetchNews').composite;\n if (mustFetchNews === 'none') {\n const notificationId = _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.emit(trans.__('Would you like to get notified about official Jupyter news?'), 'default', {\n autoClose: false,\n actions: [\n {\n label: trans.__('Open privacy policy'),\n caption: PRIVACY_URL,\n callback: event => {\n event.preventDefault();\n if (app.commands.hasCommand(COMMAND_HELP_OPEN)) {\n void app.commands.execute(COMMAND_HELP_OPEN, {\n text: trans.__('Privacy policies'),\n url: PRIVACY_URL\n });\n }\n else {\n window.open(PRIVACY_URL, '_blank', 'noreferrer');\n }\n },\n displayType: 'link'\n },\n {\n label: trans.__('Yes'),\n callback: () => {\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.dismiss(notificationId);\n config === null || config === void 0 ? void 0 : config.update({}).then(() => fetchNews()).catch(reason => {\n console.error(`Failed to get the news:\\n${reason}`);\n });\n settings === null || settings === void 0 ? void 0 : settings.set('fetchNews', 'true').catch((reason) => {\n console.error(`Failed to save setting 'fetchNews':\\n${reason}`);\n });\n }\n },\n {\n label: trans.__('No'),\n callback: () => {\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.dismiss(notificationId);\n settings === null || settings === void 0 ? void 0 : settings.set('fetchNews', 'false').catch((reason) => {\n console.error(`Failed to save setting 'fetchNews':\\n${reason}`);\n });\n }\n }\n ]\n });\n }\n else {\n await fetchNews();\n }\n async function fetchNews() {\n var _a, _b, _c, _d;\n if (((_a = settings === null || settings === void 0 ? void 0 : settings.get('fetchNews').composite) !== null && _a !== void 0 ? _a : 'false') === 'true') {\n try {\n const response = await requestAPI(NEWS_API_URL);\n for (const { link, message, type, options } of response.news) {\n // @ts-expect-error data has no index\n const id = options.data['id'];\n // Filter those notifications\n const state = (_b = config === null || config === void 0 ? void 0 : config.data[id]) !== null && _b !== void 0 ? _b : {\n seen: false,\n dismissed: false\n };\n if (!state.dismissed) {\n options.actions = [\n {\n label: trans.__('Hide'),\n caption: trans.__('Never show this notification again.'),\n callback: () => {\n const update = {};\n update[id] = { seen: true, dismissed: true };\n config === null || config === void 0 ? void 0 : config.update(update).catch(reason => {\n console.error(`Failed to update the announcements config:\\n${reason}`);\n });\n }\n }\n ];\n if ((link === null || link === void 0 ? void 0 : link.length) === 2) {\n options.actions.push({\n label: link[0],\n caption: link[1],\n callback: () => {\n window.open(link[1], '_blank', 'noreferrer');\n },\n displayType: 'link'\n });\n }\n if (!state.seen) {\n options.autoClose = 5000;\n const update = {};\n update[id] = { seen: true };\n config === null || config === void 0 ? void 0 : config.update(update).catch(reason => {\n console.error(`Failed to update the announcements config:\\n${reason}`);\n });\n }\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.emit(message, type, options);\n }\n }\n }\n catch (reason) {\n console.log('Failed to get the announcements.', reason);\n }\n }\n if ((_c = settings === null || settings === void 0 ? void 0 : settings.get('checkForUpdates').composite) !== null && _c !== void 0 ? _c : true) {\n const response = await requestAPI(UPDATE_API_URL);\n if (response.notification) {\n const { link, message, type, options } = response.notification;\n // @ts-expect-error data has no index\n const id = options.data['id'];\n const state = (_d = config === null || config === void 0 ? void 0 : config.data[id]) !== null && _d !== void 0 ? _d : {\n seen: false,\n dismissed: false\n };\n if (!state.dismissed) {\n let notificationId;\n options.actions = [\n {\n label: trans.__('Ignore all updates'),\n caption: trans.__('Do not prompt me if a new JupyterLab version is available.'),\n callback: () => {\n settings === null || settings === void 0 ? void 0 : settings.set('checkForUpdates', false).then(() => {\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.dismiss(notificationId);\n }).catch((reason) => {\n console.error('Failed to set the `checkForUpdates` setting.', reason);\n });\n }\n }\n ];\n if ((link === null || link === void 0 ? void 0 : link.length) === 2) {\n options.actions.push({\n label: link[0],\n caption: link[1],\n callback: () => {\n window.open(link[1], '_blank', 'noreferrer');\n },\n // Because the link to the changelog is the primary option,\n // display it in an accent color.\n displayType: 'accent'\n });\n }\n if (!state.seen) {\n options.autoClose = 5000;\n const update = {};\n update[id] = { seen: true };\n config === null || config === void 0 ? void 0 : config.update(update).catch(reason => {\n console.error(`Failed to update the announcements config:\\n${reason}`);\n });\n }\n notificationId = _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.emit(message, type, options);\n }\n }\n }\n }\n });\n }\n};\n//# sourceMappingURL=announcements.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/announcements.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/index.js": +/*!*******************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/index.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ kernelSettings: () => (/* binding */ kernelSettings),\n/* harmony export */ toggleHeader: () => (/* binding */ toggleHeader)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/application */ \"webpack/sharing/consume/default/@jupyterlab/application/@jupyterlab/application\");\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/statedb */ \"webpack/sharing/consume/default/@jupyterlab/statedb/@jupyterlab/statedb\");\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @lumino/disposable */ \"webpack/sharing/consume/default/@lumino/disposable/@lumino/disposable\");\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_lumino_disposable__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _lumino_polling__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @lumino/polling */ \"webpack/sharing/consume/default/@lumino/polling/@lumino/polling\");\n/* harmony import */ var _lumino_polling__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_lumino_polling__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _announcements__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./announcements */ \"../node_modules/@jupyterlab/apputils-extension/lib/announcements.js\");\n/* harmony import */ var _licensesplugin__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./licensesplugin */ \"../node_modules/@jupyterlab/apputils-extension/lib/licensesplugin.js\");\n/* harmony import */ var _notificationplugin__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./notificationplugin */ \"../node_modules/@jupyterlab/apputils-extension/lib/notificationplugin.js\");\n/* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./palette */ \"../node_modules/@jupyterlab/apputils-extension/lib/palette.js\");\n/* harmony import */ var _settingsplugin__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./settingsplugin */ \"../node_modules/@jupyterlab/apputils-extension/lib/settingsplugin.js\");\n/* harmony import */ var _statusbarplugin__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./statusbarplugin */ \"../node_modules/@jupyterlab/apputils-extension/lib/statusbarplugin.js\");\n/* harmony import */ var _subshell_settings__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./subshell-settings */ \"../node_modules/@jupyterlab/apputils-extension/lib/subshell-settings.js\");\n/* harmony import */ var _themesplugins__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./themesplugins */ \"../node_modules/@jupyterlab/apputils-extension/lib/themesplugins.js\");\n/* harmony import */ var _toolbarregistryplugin__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./toolbarregistryplugin */ \"../node_modules/@jupyterlab/apputils-extension/lib/toolbarregistryplugin.js\");\n/* harmony import */ var _workspacesplugin__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./workspacesplugin */ \"../node_modules/@jupyterlab/apputils-extension/lib/workspacesplugin.js\");\n/* harmony import */ var _shortcuts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./shortcuts */ \"../node_modules/@jupyterlab/apputils-extension/lib/shortcuts.js\");\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n/**\n * @packageDocumentation\n * @module apputils-extension\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * The interval in milliseconds before recover options appear during splash.\n */\nconst SPLASH_RECOVER_TIMEOUT = 12000;\n/**\n * The command IDs used by the apputils plugin.\n */\nvar CommandIDs;\n(function (CommandIDs) {\n CommandIDs.loadState = 'apputils:load-statedb';\n CommandIDs.print = 'apputils:print';\n CommandIDs.reset = 'apputils:reset';\n CommandIDs.resetOnLoad = 'apputils:reset-on-load';\n CommandIDs.runFirstEnabled = 'apputils:run-first-enabled';\n CommandIDs.runAllEnabled = 'apputils:run-all-enabled';\n CommandIDs.toggleHeader = 'apputils:toggle-header';\n CommandIDs.displayShortcuts = 'apputils:display-shortcuts';\n})(CommandIDs || (CommandIDs = {}));\n/**\n * The default command palette extension.\n */\nconst palette = {\n id: '@jupyterlab/apputils-extension:palette',\n description: 'Provides the command palette.',\n autoStart: true,\n requires: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.ITranslator],\n provides: _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ICommandPalette,\n optional: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_3__.ISettingRegistry],\n activate: (app, translator, settingRegistry) => {\n return _palette__WEBPACK_IMPORTED_MODULE_10__.Palette.activate(app, translator, settingRegistry);\n }\n};\n/**\n * The default command palette's restoration extension.\n *\n * #### Notes\n * The command palette's restoration logic is handled separately from the\n * command palette provider extension because the layout restorer dependency\n * causes the command palette to be unavailable to other extensions earlier\n * in the application load cycle.\n */\nconst paletteRestorer = {\n id: '@jupyterlab/apputils-extension:palette-restorer',\n description: 'Restores the command palette.',\n autoStart: true,\n requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILayoutRestorer, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.ITranslator],\n activate: (app, restorer, translator) => {\n _palette__WEBPACK_IMPORTED_MODULE_10__.Palette.restore(app, restorer, translator);\n }\n};\n/**\n * The default window name resolver provider.\n */\nconst resolver = {\n id: '@jupyterlab/apputils-extension:resolver',\n description: 'Provides the window name resolver.',\n autoStart: true,\n provides: _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.IWindowResolver,\n requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEnd.IPaths, _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IRouter],\n activate: async (app, paths, router) => {\n const { hash, search } = router.current;\n const query = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.queryStringToObject(search || '');\n const solver = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.WindowResolver();\n const workspace = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getOption('workspace');\n const treePath = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getOption('treePath');\n const mode = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getOption('mode') === 'multiple-document' ? 'lab' : 'doc';\n // This is used as a key in local storage to refer to workspaces, either the name\n // of the workspace or the string PageConfig.defaultWorkspace. Both lab and doc modes share the same workspace.\n const candidate = workspace ? workspace : _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.defaultWorkspace;\n const rest = treePath ? _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.join('tree', treePath) : '';\n try {\n await solver.resolve(candidate);\n return solver;\n }\n catch (error) {\n // Window resolution has failed so the URL must change. Return a promise\n // that never resolves to prevent the application from loading plugins\n // that rely on `IWindowResolver`.\n return new Promise(() => {\n const { base } = paths.urls;\n const pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n const random = pool[Math.floor(Math.random() * pool.length)];\n let path = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.join(base, mode, 'workspaces', `auto-${random}`);\n path = rest ? _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.join(path, _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.encodeParts(rest)) : path;\n // Reset the workspace on load.\n query['reset'] = '';\n const url = path + _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.objectToQueryString(query) + (hash || '');\n router.navigate(url, { hard: true });\n });\n }\n }\n};\n/**\n * The default splash screen provider.\n */\nconst splash = {\n id: '@jupyterlab/apputils-extension:splash',\n description: 'Provides the splash screen.',\n autoStart: true,\n requires: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.ITranslator],\n provides: _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ISplashScreen,\n activate: (app, translator) => {\n const trans = translator.load('jupyterlab');\n const { commands, restored } = app;\n // Create splash element and populate it.\n const splash = document.createElement('div');\n const galaxy = document.createElement('div');\n const logo = document.createElement('div');\n splash.id = 'jupyterlab-splash';\n galaxy.id = 'galaxy';\n logo.id = 'main-logo';\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_6__.jupyterFaviconIcon.element({\n container: logo,\n stylesheet: 'splash'\n });\n galaxy.appendChild(logo);\n ['1', '2', '3'].forEach(id => {\n const moon = document.createElement('div');\n const planet = document.createElement('div');\n moon.id = `moon${id}`;\n moon.className = 'moon orbit';\n planet.id = `planet${id}`;\n planet.className = 'planet';\n moon.appendChild(planet);\n galaxy.appendChild(moon);\n });\n splash.appendChild(galaxy);\n // Create debounced recovery dialog function.\n let dialog;\n const recovery = new _lumino_polling__WEBPACK_IMPORTED_MODULE_9__.Throttler(async () => {\n if (dialog) {\n return;\n }\n dialog = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog({\n title: trans.__('Loading…'),\n body: trans.__(`The loading screen is taking a long time.\nWould you like to clear the workspace or keep waiting?`),\n buttons: [\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: trans.__('Keep Waiting') }),\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog.warnButton({ label: trans.__('Clear Workspace') })\n ]\n });\n try {\n const result = await dialog.launch();\n dialog.dispose();\n dialog = null;\n if (result.button.accept && commands.hasCommand(CommandIDs.reset)) {\n return commands.execute(CommandIDs.reset);\n }\n // Re-invoke the recovery timer in the next frame.\n requestAnimationFrame(() => {\n // Because recovery can be stopped, handle invocation rejection.\n void recovery.invoke().catch(_ => undefined);\n });\n }\n catch (error) {\n /* no-op */\n }\n }, { limit: SPLASH_RECOVER_TIMEOUT, edge: 'trailing' });\n // Return ISplashScreen.\n let splashCount = 0;\n return {\n show: (light = true) => {\n splash.classList.remove('splash-fade');\n splash.classList.toggle('light', light);\n splash.classList.toggle('dark', !light);\n splashCount++;\n document.body.appendChild(splash);\n // Because recovery can be stopped, handle invocation rejection.\n void recovery.invoke().catch(_ => undefined);\n return new _lumino_disposable__WEBPACK_IMPORTED_MODULE_8__.DisposableDelegate(async () => {\n await restored;\n if (--splashCount === 0) {\n void recovery.stop();\n if (dialog) {\n dialog.dispose();\n dialog = null;\n }\n splash.classList.add('splash-fade');\n window.setTimeout(() => {\n document.body.removeChild(splash);\n }, 200);\n }\n });\n }\n };\n }\n};\nconst print = {\n id: '@jupyterlab/apputils-extension:print',\n description: 'Add the print capability',\n autoStart: true,\n requires: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.ITranslator],\n activate: (app, translator) => {\n var _a;\n const trans = translator.load('jupyterlab');\n app.commands.addCommand(CommandIDs.print, {\n label: trans.__('Print…'),\n isEnabled: () => {\n const widget = app.shell.currentWidget;\n return _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Printing.getPrintFunction(widget) !== null;\n },\n execute: async () => {\n const widget = app.shell.currentWidget;\n const printFunction = _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Printing.getPrintFunction(widget);\n if (printFunction) {\n await printFunction();\n }\n }\n });\n (_a = app.shell.currentChanged) === null || _a === void 0 ? void 0 : _a.connect(() => {\n app.commands.notifyCommandChanged(CommandIDs.print);\n });\n }\n};\nconst toggleHeader = {\n id: '@jupyterlab/apputils-extension:toggle-header',\n description: 'Adds a command to display the main area widget content header.',\n autoStart: true,\n requires: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.ITranslator],\n optional: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ICommandPalette],\n activate: (app, translator, palette) => {\n var _a;\n const trans = translator.load('jupyterlab');\n const category = trans.__('Main Area');\n app.commands.addCommand(CommandIDs.toggleHeader, {\n label: trans.__('Show Header Above Content'),\n isEnabled: () => app.shell.currentWidget instanceof _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.MainAreaWidget &&\n !app.shell.currentWidget.contentHeader.isDisposed &&\n app.shell.currentWidget.contentHeader.widgets.length > 0,\n isToggled: () => {\n const widget = app.shell.currentWidget;\n return widget instanceof _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.MainAreaWidget\n ? !widget.contentHeader.isHidden\n : false;\n },\n execute: async () => {\n const widget = app.shell.currentWidget;\n if (widget instanceof _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.MainAreaWidget) {\n widget.contentHeader.setHidden(!widget.contentHeader.isHidden);\n }\n }\n });\n (_a = app.shell.currentChanged) === null || _a === void 0 ? void 0 : _a.connect(() => {\n app.commands.notifyCommandChanged(CommandIDs.toggleHeader);\n });\n if (palette) {\n palette.addItem({ command: CommandIDs.toggleHeader, category });\n }\n }\n};\n/**\n * Update the browser title based on the workspace and the current\n * active item.\n */\nasync function updateTabTitle(workspace, db, name) {\n var _a, _b;\n const data = await db.toJSON();\n let current = (_b = (_a = data['layout-restorer:data']) === null || _a === void 0 ? void 0 : _a.main) === null || _b === void 0 ? void 0 : _b.current;\n if (current === undefined ||\n !(current.startsWith('notebook') || current.startsWith('editor'))) {\n document.title = `${_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getOption('appName') || 'JupyterLab'}${workspace === 'default' ? '' : ` (${workspace})`}`;\n }\n else {\n // File name from current path\n let currentFile = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PathExt.basename(decodeURIComponent(window.location.href));\n // Truncate to first 12 characters of current document name + ... if length > 15\n currentFile =\n currentFile.length > 15\n ? currentFile.slice(0, 12).concat(`…`)\n : currentFile;\n workspace =\n workspace.length > 15 ? workspace.slice(0, 12).concat(`…`) : workspace;\n // Number of restorable items that are either notebooks or editors\n const count = Object.keys(data).filter(item => item.startsWith('notebook') || item.startsWith('editor')).length;\n document.title = `${currentFile}${count > 1 ? ` (${count})` : ``} - ${workspace === 'default' ? name : workspace}`;\n }\n}\n/**\n * The default state database for storing application state.\n *\n * #### Notes\n * If this extension is loaded with a window resolver, it will automatically add\n * state management commands, URL support for `clone` and `reset`, and workspace\n * auto-saving. Otherwise, it will return a simple in-memory state database.\n */\nconst state = {\n id: '@jupyterlab/apputils-extension:state',\n description: 'Provides the application state. It is stored per workspaces.',\n autoStart: true,\n provides: _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_4__.IStateDB,\n requires: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEnd.IPaths, _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IRouter, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.ITranslator],\n optional: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.IWindowResolver],\n activate: (app, paths, router, translator, resolver) => {\n const trans = translator.load('jupyterlab');\n if (resolver === null) {\n return new _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_4__.StateDB();\n }\n let resolved = false;\n const { commands, name, serviceManager } = app;\n const { workspaces } = serviceManager;\n const workspace = resolver.name;\n const transform = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_7__.PromiseDelegate();\n const db = new _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_4__.StateDB({ transform: transform.promise });\n const save = new _lumino_polling__WEBPACK_IMPORTED_MODULE_9__.Debouncer(async () => {\n const id = workspace;\n const metadata = { id };\n const data = await db.toJSON();\n await workspaces.save(id, { data, metadata });\n });\n // Any time the local state database changes, save the workspace.\n db.changed.connect(() => void save.invoke(), db);\n db.changed.connect(() => updateTabTitle(workspace, db, name));\n commands.addCommand(CommandIDs.loadState, {\n label: trans.__('Load state for the current workspace.'),\n execute: async (args) => {\n // Since the command can be executed an arbitrary number of times, make\n // sure it is safe to call multiple times.\n if (resolved) {\n return;\n }\n const { hash, path, search } = args;\n const query = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.queryStringToObject(search || '');\n const clone = typeof query['clone'] === 'string'\n ? query['clone'] === ''\n ? _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.defaultWorkspace\n : query['clone']\n : null;\n const source = clone || workspace || null;\n if (source === null) {\n console.error(`${CommandIDs.loadState} cannot load null workspace.`);\n return;\n }\n try {\n const saved = await workspaces.fetch(source);\n // If this command is called after a reset, the state database\n // will already be resolved.\n if (!resolved) {\n resolved = true;\n transform.resolve({ type: 'overwrite', contents: saved.data });\n }\n }\n catch ({ message }) {\n console.warn(`Fetching workspace \"${workspace}\" failed.`, message);\n // If the workspace does not exist, cancel the data transformation\n // and save a workspace with the current user state data.\n if (!resolved) {\n resolved = true;\n transform.resolve({ type: 'cancel', contents: null });\n }\n }\n if (source === clone) {\n // Maintain the query string parameters but remove `clone`.\n delete query['clone'];\n const url = path + _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.objectToQueryString(query) + hash;\n const cloned = save.invoke().then(() => router.stop);\n // After the state has been cloned, navigate to the URL.\n void cloned.then(() => {\n router.navigate(url);\n });\n return cloned;\n }\n // After the state database has finished loading, save it.\n await save.invoke();\n }\n });\n commands.addCommand(CommandIDs.reset, {\n label: trans.__('Reset Application State'),\n execute: async ({ reload }) => {\n await db.clear();\n await save.invoke();\n if (reload) {\n router.reload();\n }\n }\n });\n commands.addCommand(CommandIDs.resetOnLoad, {\n label: trans.__('Reset state when loading for the workspace.'),\n execute: (args) => {\n const { hash, path, search } = args;\n const query = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.queryStringToObject(search || '');\n const reset = 'reset' in query;\n const clone = 'clone' in query;\n if (!reset) {\n return;\n }\n // If the state database has already been resolved, resetting is\n // impossible without reloading.\n if (resolved) {\n return router.reload();\n }\n // Empty the state database.\n resolved = true;\n transform.resolve({ type: 'clear', contents: null });\n // Maintain the query string parameters but remove `reset`.\n delete query['reset'];\n const url = path + _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.objectToQueryString(query) + hash;\n const cleared = db.clear().then(() => save.invoke());\n // After the state has been reset, navigate to the URL.\n if (clone) {\n void cleared.then(() => {\n router.navigate(url, { hard: true });\n });\n }\n else {\n void cleared.then(() => {\n router.navigate(url);\n });\n }\n return cleared;\n }\n });\n router.register({\n command: CommandIDs.loadState,\n pattern: /.?/,\n rank: 30 // High priority: 30:100.\n });\n router.register({\n command: CommandIDs.resetOnLoad,\n pattern: /(\\?reset|\\&reset)($|&)/,\n rank: 20 // High priority: 20:100.\n });\n return db;\n }\n};\n/**\n * The default session context dialogs extension.\n */\nconst sessionDialogs = {\n id: '@jupyterlab/apputils-extension:sessionDialogs',\n description: 'Provides the session context dialogs.',\n provides: _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ISessionContextDialogs,\n optional: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.ITranslator, _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_3__.ISettingRegistry],\n autoStart: true,\n activate: async (app, translator, settingRegistry) => {\n return new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.SessionContextDialogs({\n translator: translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.nullTranslator,\n settingRegistry: settingRegistry !== null && settingRegistry !== void 0 ? settingRegistry : null\n });\n }\n};\n/**\n * Utility commands\n */\nconst utilityCommands = {\n id: '@jupyterlab/apputils-extension:utilityCommands',\n description: 'Adds meta commands to run set of other commands.',\n requires: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.ITranslator],\n optional: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ICommandPalette],\n autoStart: true,\n activate: (app, translator, palette) => {\n const trans = translator.load('jupyterlab');\n const { commands } = app;\n commands.addCommand(CommandIDs.runFirstEnabled, {\n label: trans.__('Run First Enabled Command'),\n execute: args => {\n const commands = args.commands;\n const commandArgs = args.args;\n const argList = Array.isArray(args);\n for (let i = 0; i < commands.length; i++) {\n const cmd = commands[i];\n const arg = argList ? commandArgs[i] : commandArgs;\n if (app.commands.isEnabled(cmd, arg)) {\n return app.commands.execute(cmd, arg);\n }\n }\n }\n });\n // Add a command for taking lists of commands and command arguments\n // and running all the enabled commands.\n commands.addCommand(CommandIDs.runAllEnabled, {\n label: trans.__('Run All Enabled Commands Passed as Args'),\n execute: async (args) => {\n var _a, _b;\n const commands = (_a = args.commands) !== null && _a !== void 0 ? _a : [];\n const commandArgs = args.args;\n const argList = Array.isArray(args);\n const errorIfNotEnabled = (_b = args.errorIfNotEnabled) !== null && _b !== void 0 ? _b : false;\n for (let i = 0; i < commands.length; i++) {\n const cmd = commands[i];\n const arg = argList ? commandArgs[i] : commandArgs;\n if (app.commands.isEnabled(cmd, arg)) {\n await app.commands.execute(cmd, arg);\n }\n else {\n if (errorIfNotEnabled) {\n console.error(`${cmd} is not enabled.`);\n }\n }\n }\n },\n isEnabled: args => {\n var _a;\n const commands = (_a = args.commands) !== null && _a !== void 0 ? _a : [];\n const commandArgs = args.args;\n const argList = Array.isArray(args);\n return commands.some((cmd, idx) => app.commands.isEnabled(cmd, argList ? commandArgs[idx] : commandArgs));\n }\n });\n commands.addCommand(CommandIDs.displayShortcuts, {\n label: trans.__('Show Keyboard Shortcuts…'),\n caption: trans.__('Show relevant keyboard shortcuts for the current active widget'),\n execute: args => {\n var _a;\n const currentWidget = app.shell.currentWidget;\n const included = currentWidget === null || currentWidget === void 0 ? void 0 : currentWidget.node.contains(document.activeElement);\n if (!included && currentWidget instanceof _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.MainAreaWidget) {\n const currentNode = (_a = currentWidget.content.node) !== null && _a !== void 0 ? _a : currentWidget === null || currentWidget === void 0 ? void 0 : currentWidget.node;\n currentNode === null || currentNode === void 0 ? void 0 : currentNode.focus();\n }\n const options = { commands, trans };\n return (0,_shortcuts__WEBPACK_IMPORTED_MODULE_11__.displayShortcuts)(options);\n }\n });\n if (palette) {\n const category = trans.__('Help');\n palette.addItem({ command: CommandIDs.displayShortcuts, category });\n }\n }\n};\n/**\n * The default HTML sanitizer.\n */\nconst sanitizer = {\n id: '@jupyterlab/apputils-extension:sanitizer',\n description: 'Provides the HTML sanitizer.',\n autoStart: true,\n provides: _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ISanitizer,\n requires: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_3__.ISettingRegistry],\n activate: (app, settings) => {\n const sanitizer = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Sanitizer();\n const loadSetting = (setting) => {\n const allowedSchemes = setting.get('allowedSchemes')\n .composite;\n const autolink = setting.get('autolink').composite;\n const allowNamedProperties = setting.get('allowNamedProperties')\n .composite;\n if (allowedSchemes) {\n sanitizer.setAllowedSchemes(allowedSchemes);\n }\n sanitizer.setAutolink(autolink);\n sanitizer.setAllowNamedProperties(allowNamedProperties);\n };\n // Wait for the application to be restored and\n // for the settings for this plugin to be loaded\n settings\n .load('@jupyterlab/apputils-extension:sanitizer')\n .then(setting => {\n // Read the settings\n loadSetting(setting);\n // Listen for your plugin setting changes using Signal\n setting.changed.connect(loadSetting);\n })\n .catch(reason => {\n console.error(`Failed to load sanitizer settings:`, reason);\n });\n return sanitizer;\n }\n};\n/*\n * A plugin owning the kernel settings\n */\nconst kernelSettings = {\n id: '@jupyterlab/apputils-extension:kernels-settings',\n description: 'Reserves the name for kernel settings.',\n autoStart: true,\n requires: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_3__.ISettingRegistry],\n activate: (_app, settingRegistry) => {\n void settingRegistry.load(kernelSettings.id);\n }\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [\n kernelSettings,\n _announcements__WEBPACK_IMPORTED_MODULE_12__.announcements,\n _statusbarplugin__WEBPACK_IMPORTED_MODULE_13__.kernelStatus,\n _licensesplugin__WEBPACK_IMPORTED_MODULE_14__.licensesClient,\n _licensesplugin__WEBPACK_IMPORTED_MODULE_14__.licensesPlugin,\n _notificationplugin__WEBPACK_IMPORTED_MODULE_15__.notificationPlugin,\n palette,\n paletteRestorer,\n print,\n resolver,\n _statusbarplugin__WEBPACK_IMPORTED_MODULE_13__.runningSessionsStatus,\n _subshell_settings__WEBPACK_IMPORTED_MODULE_16__.subshellsSettings,\n sanitizer,\n _settingsplugin__WEBPACK_IMPORTED_MODULE_17__.settingsConnector,\n _settingsplugin__WEBPACK_IMPORTED_MODULE_17__.settingsPlugin,\n state,\n splash,\n sessionDialogs,\n _themesplugins__WEBPACK_IMPORTED_MODULE_18__.themesPlugin,\n _themesplugins__WEBPACK_IMPORTED_MODULE_18__.themesPaletteMenuPlugin,\n toggleHeader,\n _toolbarregistryplugin__WEBPACK_IMPORTED_MODULE_19__.toolbarRegistry,\n utilityCommands,\n _workspacesplugin__WEBPACK_IMPORTED_MODULE_20__.workspacesPlugin\n];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (plugins);\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/index.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/licensesplugin.js": +/*!****************************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/licensesplugin.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ licensesClient: () => (/* binding */ licensesClient),\n/* harmony export */ licensesPlugin: () => (/* binding */ licensesPlugin)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/application */ \"webpack/sharing/consume/default/@jupyterlab/application/@jupyterlab/application\");\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/mainmenu */ \"webpack/sharing/consume/default/@jupyterlab/mainmenu/@jupyterlab/mainmenu\");\n/* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_5__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n\n\n\n/**\n * The command IDs used by the licenses plugin.\n */\nvar CommandIDs;\n(function (CommandIDs) {\n CommandIDs.licenses = 'apputils:licenses';\n CommandIDs.licenseReport = 'apputils:license-report';\n CommandIDs.refreshLicenses = 'apputils:licenses-refresh';\n})(CommandIDs || (CommandIDs = {}));\n/**\n * The license client plugin for fetching licenses.\n */\nconst licensesClient = {\n id: '@jupyterlab/apputils-extension:licenses-client',\n description: 'The licenses client plugin for fetching licenses.',\n autoStart: true,\n provides: _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ILicensesClient,\n activate: (app) => {\n const licensesUrl = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.join(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getBaseUrl(), _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getOption('licensesUrl')) + '/';\n const serverSettings = app.serviceManager.serverSettings;\n return new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Licenses.LicensesClient({ licensesUrl, serverSettings });\n }\n};\n/**\n * A plugin to add a licenses reporting tools.\n */\nconst licensesPlugin = {\n id: '@jupyterlab/apputils-extension:licenses-plugin',\n description: 'Adds licenses reporting tools.',\n requires: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ILicensesClient, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__.ITranslator],\n optional: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILayoutRestorer, _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__.IMainMenu, _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ICommandPalette],\n autoStart: true,\n activate: (app, client, translator, restorer, menu, palette) => {\n const { commands, shell } = app;\n const trans = translator.load('jupyterlab');\n const category = trans.__('Help');\n const downloadAsText = trans.__('Download All Licenses as');\n const refreshLicenses = trans.__('Refresh Licenses');\n const licensesNamespace = 'help-licenses';\n const licensesTracker = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.WidgetTracker({\n namespace: licensesNamespace\n });\n // translation strings\n const licensesText = trans.__('Licenses');\n // an incrementer for license widget ids\n let counter = 0;\n /**\n * Create a MainAreaWidget for a license viewer\n */\n function createLicenseWidget(args) {\n const licensesModel = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Licenses.Model({\n ...args,\n client,\n trans\n });\n const content = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Licenses({ model: licensesModel });\n content.id = `${licensesNamespace}-${++counter}`;\n content.title.label = licensesText;\n content.title.icon = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_5__.copyrightIcon;\n const main = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.MainAreaWidget({\n content,\n reveal: licensesModel.licensesReady\n });\n main.toolbar.addItem('refresh-licenses', new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_5__.CommandToolbarButton({\n id: CommandIDs.refreshLicenses,\n args: { noLabel: 1 },\n commands\n }));\n main.toolbar.addItem('spacer', _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_5__.Toolbar.createSpacerItem());\n for (const format of Object.keys(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Licenses.REPORT_FORMATS)) {\n const button = new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_5__.CommandToolbarButton({\n id: CommandIDs.licenseReport,\n args: { format, noLabel: 1 },\n commands\n });\n main.toolbar.addItem(`download-${format}`, button);\n }\n return main;\n }\n /**\n * Return a full license report format based on a format name\n */\n function formatOrDefault(format) {\n return (_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Licenses.REPORT_FORMATS[format] ||\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Licenses.REPORT_FORMATS[_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Licenses.DEFAULT_FORMAT]);\n }\n // register license-related commands\n commands.addCommand(CommandIDs.licenses, {\n label: licensesText,\n execute: (args) => {\n // bail if no license API is available from the server\n if (!_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getOption('licensesUrl')) {\n console.warn('No license API available from the server');\n return;\n }\n const licenseMain = createLicenseWidget(args);\n shell.add(licenseMain, 'main', { type: 'Licenses' });\n // add to tracker so it can be restored, and update when choices change\n void licensesTracker.add(licenseMain);\n licenseMain.content.model.trackerDataChanged.connect(() => {\n void licensesTracker.save(licenseMain);\n });\n return licenseMain;\n }\n });\n commands.addCommand(CommandIDs.refreshLicenses, {\n label: args => (args.noLabel ? '' : refreshLicenses),\n caption: refreshLicenses,\n icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_5__.refreshIcon,\n execute: async () => {\n var _a;\n return (_a = licensesTracker.currentWidget) === null || _a === void 0 ? void 0 : _a.content.model.initLicenses();\n }\n });\n commands.addCommand(CommandIDs.licenseReport, {\n label: args => {\n if (args.noLabel) {\n return '';\n }\n const format = formatOrDefault(`${args.format}`);\n return `${downloadAsText} ${format.title}`;\n },\n caption: args => {\n const format = formatOrDefault(`${args.format}`);\n return `${downloadAsText} ${format.title}`;\n },\n icon: args => {\n const format = formatOrDefault(`${args.format}`);\n return format.icon;\n },\n execute: async (args) => {\n var _a;\n const format = formatOrDefault(`${args.format}`);\n return await ((_a = licensesTracker.currentWidget) === null || _a === void 0 ? void 0 : _a.content.model.download({\n format: format.id\n }));\n }\n });\n // handle optional integrations\n if (palette) {\n palette.addItem({ command: CommandIDs.licenses, category });\n }\n if (menu) {\n const helpMenu = menu.helpMenu;\n helpMenu.addGroup([{ command: CommandIDs.licenses }], 0);\n }\n if (restorer) {\n void restorer.restore(licensesTracker, {\n command: CommandIDs.licenses,\n name: widget => 'licenses',\n args: widget => {\n const { currentBundleName, currentPackageIndex, packageFilter } = widget.content.model;\n const args = {\n currentBundleName,\n currentPackageIndex,\n packageFilter\n };\n return args;\n }\n });\n }\n }\n};\n//# sourceMappingURL=licensesplugin.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/licensesplugin.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/notificationplugin.js": +/*!********************************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/notificationplugin.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ notificationPlugin: () => (/* binding */ notificationPlugin)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/statusbar */ \"webpack/sharing/consume/default/@jupyterlab/statusbar/@jupyterlab/statusbar\");\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-dom/client */ \"../node_modules/react-dom/client.js\");\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n\n\n\n\n\n\n/**\n * Toast close button class\n */\nconst TOAST_CLOSE_BUTTON_CLASS = 'jp-Notification-Toast-Close';\n/**\n * Toast close button class right margin required due to custom hover effect\n */\nconst TOAST_CLOSE_BUTTON_MARGIN_CLASS = 'jp-Notification-Toast-Close-Margin';\n/**\n * Maximal number of characters displayed in a notification.\n */\nconst MAX_MESSAGE_LENGTH = 140;\nvar CommandIDs;\n(function (CommandIDs) {\n /**\n * Dismiss a notification\n */\n CommandIDs.dismiss = 'apputils:dismiss-notification';\n /**\n * Display all notifications\n */\n CommandIDs.display = 'apputils:display-notifications';\n /**\n * Create a notification\n */\n CommandIDs.notify = 'apputils:notify';\n /**\n * Update a notification\n */\n CommandIDs.update = 'apputils:update-notification';\n})(CommandIDs || (CommandIDs = {}));\n/**\n * Half spacing between subitems in a status item.\n */\nconst HALF_SPACING = 4;\n/**\n * Notification center view\n */\nfunction NotificationCenter(props) {\n const { manager, onClose, trans } = props;\n // Markdown parsed notifications\n const [notifications, setNotifications] = react__WEBPACK_IMPORTED_MODULE_7__.useState([]);\n // Load asynchronously react-toastify icons\n const [icons, setIcons] = react__WEBPACK_IMPORTED_MODULE_7__.useState(null);\n react__WEBPACK_IMPORTED_MODULE_7__.useEffect(() => {\n async function onChanged() {\n setNotifications(await Promise.all(manager.notifications.map(async (n) => {\n return Object.freeze({\n ...n\n });\n })));\n }\n if (notifications.length !== manager.count) {\n void onChanged();\n }\n manager.changed.connect(onChanged);\n return () => {\n manager.changed.disconnect(onChanged);\n };\n }, [manager]);\n react__WEBPACK_IMPORTED_MODULE_7__.useEffect(() => {\n Private.getIcons()\n .then(toastifyIcons => {\n setIcons(toastifyIcons);\n })\n .catch(r => {\n console.error(`Failed to get react-toastify icons:\\n${r}`);\n });\n }, []);\n return (react__WEBPACK_IMPORTED_MODULE_7__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.UseSignal, { signal: manager.changed }, () => (react__WEBPACK_IMPORTED_MODULE_7__.createElement(react__WEBPACK_IMPORTED_MODULE_7__.Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"h2\", { className: \"jp-Notification-Header jp-Toolbar\" },\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"span\", { className: \"jp-Toolbar-item\" }, manager.count > 0\n ? trans._n('%1 notification', '%1 notifications', manager.count)\n : trans.__('No notifications')),\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"span\", { className: \"jp-Toolbar-item jp-Toolbar-spacer\" }),\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.ToolbarButtonComponent, { noFocusOnClick: false, onClick: () => {\n manager.dismiss();\n }, icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.deleteIcon, tooltip: trans.__('Dismiss all notifications'), enabled: manager.count > 0 }),\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.ToolbarButtonComponent, { noFocusOnClick: false, onClick: onClose, icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.closeIcon, tooltip: trans.__('Hide notifications') })),\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"ol\", { className: \"jp-Notification-List\" }, notifications.map(notification => {\n var _a;\n const { id, message, type, options } = notification;\n const toastType = type === 'in-progress' ? 'default' : type;\n const closeNotification = () => {\n manager.dismiss(id);\n };\n const icon = type === 'default'\n ? null\n : type === 'in-progress'\n ? (_a = icons === null || icons === void 0 ? void 0 : icons.spinner) !== null && _a !== void 0 ? _a : null\n : icons && icons[type];\n return (react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"li\", { className: \"jp-Notification-List-Item\", key: notification.id, onClick: event => {\n // Stop propagation to avoid closing the popup on click\n event.stopPropagation();\n } },\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"div\", { className: `Toastify__toast Toastify__toast-theme--light Toastify__toast--${toastType} jp-Notification-Toast-${toastType}` },\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"div\", { className: \"Toastify__toast-body\" },\n icon && (react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"div\", { className: \"Toastify__toast-icon\" }, icon({ theme: 'light', type: toastType }))),\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"div\", null, Private.createContent(message, closeNotification, options.actions))),\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(Private.CloseButton, { close: closeNotification, closeIcon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.deleteIcon.react, title: trans.__('Dismiss notification'), closeIconMargin: true }))));\n }))))));\n}\n/**\n * Status widget model\n */\nclass NotificationStatusModel extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.VDomModel {\n constructor(manager) {\n super();\n this.manager = manager;\n this._highlight = false;\n this._listOpened = false;\n this._doNotDisturbMode = false;\n this._count = manager.count;\n this.manager.changed.connect(this.onNotificationChanged, this);\n }\n /**\n * Number of notifications.\n */\n get count() {\n return this._count;\n }\n /**\n * Whether to silence all notifications or not.\n */\n get doNotDisturbMode() {\n return this._doNotDisturbMode;\n }\n set doNotDisturbMode(v) {\n this._doNotDisturbMode = v;\n }\n /**\n * Whether to highlight the status widget or not.\n */\n get highlight() {\n return this._highlight;\n }\n /**\n * Whether the popup is opened or not.\n */\n get listOpened() {\n return this._listOpened;\n }\n set listOpened(v) {\n this._listOpened = v;\n if (this._listOpened || this._highlight) {\n this._highlight = false;\n }\n this.stateChanged.emit();\n }\n onNotificationChanged(_, change) {\n // Set private attribute to trigger only once the signal emission\n this._count = this.manager.count;\n const { autoClose } = change.notification.options;\n const noToast = this.doNotDisturbMode ||\n (typeof autoClose === 'number' && autoClose <= 0);\n // Highlight if\n // the list is not opened (the style change if list is opened due to clickedItem style in statusbar.)\n // the change type is not removed\n // the notification will be hidden\n if (!this._listOpened && change.type !== 'removed' && noToast) {\n this._highlight = true;\n }\n this.stateChanged.emit();\n }\n}\n/**\n * Status view\n */\nfunction NotificationStatus(props) {\n return (react__WEBPACK_IMPORTED_MODULE_7__.createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_2__.GroupItem, { spacing: HALF_SPACING, onClick: () => {\n props.onClick();\n }, title: props.count > 0\n ? props.trans._n('%1 notification', '%1 notifications', props.count)\n : props.trans.__('No notifications') },\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_2__.TextItem, { className: \"jp-Notification-Status-Text\", source: `${props.count}` }),\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.bellIcon.react, { top: '2px', stylesheet: 'statusBar' })));\n}\n/**\n * Add notification center and toast\n */\nconst notificationPlugin = {\n id: '@jupyterlab/apputils-extension:notification',\n description: 'Add the notification center and its status indicator.',\n autoStart: true,\n optional: [_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_2__.IStatusBar, _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.ISettingRegistry, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__.ITranslator],\n activate: (app, statusBar, settingRegistry, translator) => {\n Private.translator = translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__.nullTranslator;\n const trans = Private.translator.load('jupyterlab');\n const model = new NotificationStatusModel(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.manager);\n model.doNotDisturbMode = false;\n if (settingRegistry) {\n void Promise.all([\n settingRegistry.load(notificationPlugin.id),\n app.restored\n ]).then(([plugin]) => {\n const updateSettings = () => {\n model.doNotDisturbMode = plugin.get('doNotDisturbMode')\n .composite;\n };\n updateSettings();\n plugin.changed.connect(updateSettings);\n });\n }\n app.commands.addCommand(CommandIDs.notify, {\n label: trans.__('Emit a notification'),\n caption: trans.__('Notification is described by {message: string, type?: string, options?: {autoClose?: number | false, actions: {label: string, commandId: string, args?: ReadOnlyJSONObject, caption?: string, className?: string}[], data?: ReadOnlyJSONValue}}.'),\n execute: args => {\n var _a;\n const { message, type } = args;\n const options = (_a = args.options) !== null && _a !== void 0 ? _a : {};\n return _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.manager.notify(message, type !== null && type !== void 0 ? type : 'default', {\n ...options,\n actions: options.actions\n ? options.actions.map((action) => {\n return {\n ...action,\n callback: () => {\n app.commands\n .execute(action.commandId, action.args)\n .catch(r => {\n console.error(`Failed to executed '${action.commandId}':\\n${r}`);\n });\n }\n };\n })\n : null\n });\n }\n });\n app.commands.addCommand(CommandIDs.update, {\n label: trans.__('Update a notification'),\n caption: trans.__('Notification is described by {id: string, message: string, type?: string, options?: {autoClose?: number | false, actions: {label: string, commandId: string, args?: ReadOnlyJSONObject, caption?: string, className?: string}[], data?: ReadOnlyJSONValue}}.'),\n execute: args => {\n const { id, message, type, ...options } = args;\n return _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.manager.update({\n id,\n message,\n type: type !== null && type !== void 0 ? type : 'default',\n ...options,\n actions: options.actions\n ? options.actions.map((action) => {\n return {\n ...action,\n callback: () => {\n app.commands\n .execute(action.commandId, action.args)\n .catch(r => {\n console.error(`Failed to executed '${action.commandId}':\\n${r}`);\n });\n }\n };\n })\n : null\n });\n }\n });\n app.commands.addCommand(CommandIDs.dismiss, {\n label: trans.__('Dismiss a notification'),\n execute: args => {\n const { id } = args;\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.manager.dismiss(id);\n }\n });\n let popup = null;\n model.listOpened = false;\n const notificationList = _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.ReactWidget.create(react__WEBPACK_IMPORTED_MODULE_7__.createElement(NotificationCenter, { manager: _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.manager, onClose: () => {\n popup === null || popup === void 0 ? void 0 : popup.dispose();\n }, trans: trans }));\n notificationList.addClass('jp-Notification-Center');\n async function onNotification(manager, change) {\n var _a;\n if (model.doNotDisturbMode || (popup !== null && !popup.isDisposed)) {\n return;\n }\n const { message, type, options, id } = change.notification;\n if (typeof options.autoClose === 'number' && options.autoClose <= 0) {\n // If the notification is silent, bail early.\n return;\n }\n switch (change.type) {\n case 'added':\n await Private.createToast(id, message, type, options);\n break;\n case 'updated':\n {\n const toast = await Private.toast();\n const actions = options.actions;\n const autoClose = (_a = options.autoClose) !== null && _a !== void 0 ? _a : (actions && actions.length > 0 ? false : null);\n if (toast.isActive(id)) {\n // Update existing toast\n const closeToast = () => {\n // Dismiss the displayed toast\n toast.dismiss(id);\n // Dismiss the notification from the queue\n manager.dismiss(id);\n };\n toast.update(id, {\n type: type === 'in-progress' ? null : type,\n isLoading: type === 'in-progress',\n autoClose: autoClose,\n render: Private.createContent(message, closeToast, options.actions)\n });\n }\n else {\n // Needs to recreate a closed toast\n await Private.createToast(id, message, type, options);\n }\n }\n break;\n case 'removed':\n await Private.toast().then(t => {\n t.dismiss(id);\n });\n break;\n }\n }\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.manager.changed.connect(onNotification);\n const displayNotifications = () => {\n if (popup) {\n popup.dispose();\n popup = null;\n }\n else {\n popup = (0,_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_2__.showPopup)({\n body: notificationList,\n anchor: notificationStatus,\n align: 'right',\n hasDynamicSize: true,\n startHidden: true\n });\n // Dismiss all toasts when opening the notification center\n Private.toast()\n .then(t => {\n t.dismiss();\n })\n .catch(r => {\n console.error(`Failed to dismiss all toasts:\\n${r}`);\n })\n .finally(() => {\n popup === null || popup === void 0 ? void 0 : popup.launch();\n // Focus on the pop-up\n notificationList.node.focus();\n popup === null || popup === void 0 ? void 0 : popup.disposed.connect(() => {\n model.listOpened = false;\n popup = null;\n });\n });\n }\n model.listOpened = popup !== null;\n };\n app.commands.addCommand(CommandIDs.display, {\n label: trans.__('Show Notifications'),\n execute: displayNotifications\n });\n const notificationStatus = _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.ReactWidget.create(react__WEBPACK_IMPORTED_MODULE_7__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.UseSignal, { signal: model.stateChanged }, () => {\n if (model.highlight || (popup && !popup.isDisposed)) {\n notificationStatus.addClass('jp-mod-selected');\n }\n else {\n notificationStatus.removeClass('jp-mod-selected');\n }\n return (react__WEBPACK_IMPORTED_MODULE_7__.createElement(NotificationStatus, { count: model.count, highlight: model.highlight, trans: trans, onClick: displayNotifications }));\n }));\n notificationStatus.addClass('jp-Notification-Status');\n if (statusBar) {\n statusBar.registerStatusItem(notificationPlugin.id, {\n item: notificationStatus,\n align: 'right',\n rank: -1\n });\n }\n else {\n notificationStatus.addClass('jp-ThemedContainer');\n // if the status bar is not available, position the notification\n // status in the bottom right corner of the page\n notificationStatus.node.style.position = 'fixed';\n notificationStatus.node.style.bottom = '0';\n // 10px is the default padding for the status bar\n notificationStatus.node.style.right = '10px';\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_6__.Widget.attach(notificationStatus, document.body);\n notificationStatus.show();\n }\n }\n};\nvar Private;\n(function (Private) {\n /**\n * Translator object for private namespace\n */\n Private.translator = _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__.nullTranslator;\n /**\n * Pointer to asynchronously loaded react-toastify\n */\n let toastify = null;\n function CloseButton(props) {\n var _a;\n return (react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"button\", { className: `jp-Button jp-mod-minimal ${TOAST_CLOSE_BUTTON_CLASS}${props.closeIconMargin ? ` ${TOAST_CLOSE_BUTTON_MARGIN_CLASS}` : ''}`, title: (_a = props.title) !== null && _a !== void 0 ? _a : '', onClick: props.close },\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(props.closeIcon, { className: \"jp-icon-hover\", tag: \"span\" })));\n }\n Private.CloseButton = CloseButton;\n function ToastifyCloseButton(props) {\n const trans = Private.translator.load('jupyterlab');\n return (react__WEBPACK_IMPORTED_MODULE_7__.createElement(CloseButton, { close: props.closeToast, closeIcon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.closeIcon.react, title: trans.__('Hide notification') }));\n }\n let waitForToastify = null;\n /**\n * Asynchronously load the toast container\n *\n * @returns The toast object\n */\n async function toast() {\n if (waitForToastify === null) {\n waitForToastify = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_5__.PromiseDelegate();\n }\n else {\n await waitForToastify.promise;\n }\n if (toastify === null) {\n toastify = await __webpack_require__.e(/*! import() */ \"webpack_sharing_consume_default_react-toastify_react-toastify\").then(__webpack_require__.t.bind(__webpack_require__, /*! react-toastify */ \"webpack/sharing/consume/default/react-toastify/react-toastify\", 23));\n const container = document.body.appendChild(document.createElement('div'));\n container.id = 'react-toastify-container';\n container.classList.add('jp-ThemedContainer');\n const root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_8__.createRoot)(container);\n root.render(react__WEBPACK_IMPORTED_MODULE_7__.createElement(toastify.ToastContainer, { draggable: false, closeOnClick: false, hideProgressBar: true, newestOnTop: true, pauseOnFocusLoss: true, pauseOnHover: true, position: \"bottom-right\", className: \"jp-toastContainer\", transition: toastify.Slide, closeButton: ToastifyCloseButton }));\n waitForToastify.resolve();\n }\n return toastify.toast;\n }\n Private.toast = toast;\n /**\n * react-toastify icons loader\n */\n async function getIcons() {\n if (toastify === null) {\n await toast();\n }\n return toastify.Icons;\n }\n Private.getIcons = getIcons;\n const displayType2Class = {\n accent: 'jp-mod-accept',\n link: 'jp-mod-link',\n warn: 'jp-mod-warn',\n default: ''\n };\n /**\n * Create a button with customized callback in a toast\n */\n function ToastButton({ action, closeToast }) {\n var _a, _b;\n const clickHandler = (event) => {\n action.callback(event);\n if (!event.defaultPrevented) {\n closeToast();\n }\n };\n const classes = [\n 'jp-toast-button',\n displayType2Class[(_a = action.displayType) !== null && _a !== void 0 ? _a : 'default']\n ].join(' ');\n return (react__WEBPACK_IMPORTED_MODULE_7__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.Button, { title: (_b = action.caption) !== null && _b !== void 0 ? _b : action.label, className: classes, onClick: clickHandler, small: true }, action.label));\n }\n /**\n * Helper function to construct the notification content\n *\n * @param message Message to print in the notification\n * @param closeHandler Function closing the notification\n * @param actions Toast actions\n */\n function createContent(message, closeHandler, actions) {\n var _a;\n const shortenMessage = message.length > MAX_MESSAGE_LENGTH\n ? message.slice(0, MAX_MESSAGE_LENGTH) + '…'\n : message;\n return (react__WEBPACK_IMPORTED_MODULE_7__.createElement(react__WEBPACK_IMPORTED_MODULE_7__.Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"div\", { className: \"jp-toast-message\" }, shortenMessage.split('\\n').map((part, index) => (react__WEBPACK_IMPORTED_MODULE_7__.createElement(react__WEBPACK_IMPORTED_MODULE_7__.Fragment, { key: `part-${index}` },\n index > 0 ? react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"br\", null) : null,\n part)))),\n ((_a = actions === null || actions === void 0 ? void 0 : actions.length) !== null && _a !== void 0 ? _a : 0) > 0 && (react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"div\", { className: \"jp-toast-buttonBar\" },\n react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"div\", { className: \"jp-toast-spacer\" }),\n actions.map((action, idx) => {\n return (react__WEBPACK_IMPORTED_MODULE_7__.createElement(ToastButton, { key: 'button-' + idx, action: action, closeToast: closeHandler }));\n })))));\n }\n Private.createContent = createContent;\n /**\n * Create a toast notification\n *\n * @param toastId Toast unique id\n * @param message Toast message\n * @param type Toast type\n * @param options Toast options\n * @returns Toast id\n */\n async function createToast(toastId, message, type, options = {}) {\n const { actions, autoClose, data } = options;\n const t = await toast();\n const toastOptions = {\n autoClose: autoClose !== null && autoClose !== void 0 ? autoClose : (actions && actions.length > 0 ? false : undefined),\n data: data,\n className: `jp-Notification-Toast-${type}`,\n toastId,\n type: type === 'in-progress' ? null : type,\n isLoading: type === 'in-progress'\n };\n return t(({ closeToast }) => createContent(message, () => {\n if (closeToast)\n closeToast();\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Notification.manager.dismiss(toastId);\n }, actions), toastOptions);\n }\n Private.createToast = createToast;\n})(Private || (Private = {}));\n//# sourceMappingURL=notificationplugin.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/notificationplugin.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/palette.js": +/*!*********************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/palette.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Palette: () => (/* binding */ Palette)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _lumino_commands__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @lumino/commands */ \"webpack/sharing/consume/default/@lumino/commands/@lumino/commands\");\n/* harmony import */ var _lumino_commands__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_lumino_commands__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/disposable */ \"webpack/sharing/consume/default/@lumino/disposable/@lumino/disposable\");\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_disposable__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_6__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n\n\n\n\n\n\n/**\n * The command IDs used by the apputils extension.\n */\nvar CommandIDs;\n(function (CommandIDs) {\n CommandIDs.activate = 'apputils:activate-command-palette';\n})(CommandIDs || (CommandIDs = {}));\nconst PALETTE_PLUGIN_ID = '@jupyterlab/apputils-extension:palette';\n/**\n * A thin wrapper around the `CommandPalette` class to conform with the\n * JupyterLab interface for the application-wide command palette.\n */\nclass Palette {\n /**\n * Create a palette instance.\n */\n constructor(palette, translator) {\n this.translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n const trans = this.translator.load('jupyterlab');\n this._palette = palette;\n this._palette.title.label = '';\n this._palette.title.caption = trans.__('Command Palette');\n }\n /**\n * The placeholder text of the command palette's search input.\n */\n set placeholder(placeholder) {\n this._palette.inputNode.placeholder = placeholder;\n }\n get placeholder() {\n return this._palette.inputNode.placeholder;\n }\n /**\n * Activate the command palette for user input.\n */\n activate() {\n this._palette.activate();\n }\n /**\n * Add a command item to the command palette.\n *\n * @param options - The options for creating the command item.\n *\n * @returns A disposable that will remove the item from the palette.\n */\n addItem(options) {\n const item = this._palette.addItem(options);\n return new _lumino_disposable__WEBPACK_IMPORTED_MODULE_5__.DisposableDelegate(() => {\n this._palette.removeItem(item);\n });\n }\n}\n/**\n * A namespace for `Palette` statics.\n */\n(function (Palette) {\n /**\n * Activate the command palette.\n */\n function activate(app, translator, settingRegistry) {\n const { commands, shell } = app;\n const trans = translator.load('jupyterlab');\n const palette = Private.createPalette(app, translator);\n const modalPalette = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.ModalCommandPalette({ commandPalette: palette });\n let modal = false;\n palette.node.setAttribute('role', 'region');\n palette.node.setAttribute('aria-label', trans.__('Command Palette Section'));\n shell.add(palette, 'left', { rank: 300, type: 'Command Palette' });\n if (settingRegistry) {\n const loadSettings = settingRegistry.load(PALETTE_PLUGIN_ID);\n const updateSettings = (settings) => {\n const newModal = settings.get('modal').composite;\n if (modal && !newModal) {\n palette.parent = null;\n modalPalette.detach();\n shell.add(palette, 'left', { rank: 300, type: 'Command Palette' });\n }\n else if (!modal && newModal) {\n palette.parent = null;\n modalPalette.palette = palette;\n palette.show();\n modalPalette.attach();\n }\n modal = newModal;\n };\n Promise.all([loadSettings, app.restored])\n .then(([settings]) => {\n updateSettings(settings);\n settings.changed.connect(settings => {\n updateSettings(settings);\n });\n })\n .catch((reason) => {\n console.error(reason.message);\n });\n }\n // Show the current palette shortcut in its title.\n const updatePaletteTitle = () => {\n const binding = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.find)(app.commands.keyBindings, b => b.command === CommandIDs.activate);\n if (binding) {\n const ks = binding.keys.map(_lumino_commands__WEBPACK_IMPORTED_MODULE_4__.CommandRegistry.formatKeystroke).join(', ');\n palette.title.caption = trans.__('Commands (%1)', ks);\n }\n else {\n palette.title.caption = trans.__('Commands');\n }\n };\n updatePaletteTitle();\n app.commands.keyBindingChanged.connect(() => {\n updatePaletteTitle();\n });\n commands.addCommand(CommandIDs.activate, {\n execute: () => {\n if (modal) {\n modalPalette.activate();\n }\n else {\n shell.activateById(palette.id);\n }\n },\n label: trans.__('Activate Command Palette')\n });\n palette.inputNode.placeholder = trans.__('SEARCH');\n return new Palette(palette, translator);\n }\n Palette.activate = activate;\n /**\n * Restore the command palette.\n */\n function restore(app, restorer, translator) {\n const palette = Private.createPalette(app, translator);\n // Let the application restorer track the command palette for restoration of\n // application state (e.g. setting the command palette as the current side bar\n // widget).\n restorer.add(palette, 'command-palette');\n }\n Palette.restore = restore;\n})(Palette || (Palette = {}));\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n /**\n * The private command palette instance.\n */\n let palette;\n /**\n * Create the application-wide command palette.\n */\n function createPalette(app, translator) {\n if (!palette) {\n // use a renderer tweaked to use inline svg icons\n palette = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_6__.CommandPalette({\n commands: app.commands,\n renderer: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.CommandPaletteSvg.defaultRenderer\n });\n palette.id = 'command-palette';\n palette.title.icon = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.paletteIcon;\n const trans = translator.load('jupyterlab');\n palette.title.label = trans.__('Commands');\n }\n return palette;\n }\n Private.createPalette = createPalette;\n})(Private || (Private = {}));\n//# sourceMappingURL=palette.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/palette.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/settingconnector.js": +/*!******************************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/settingconnector.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SettingConnector: () => (/* binding */ SettingConnector)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/statedb */ \"webpack/sharing/consume/default/@jupyterlab/statedb/@jupyterlab/statedb\");\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_polling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/polling */ \"webpack/sharing/consume/default/@lumino/polling/@lumino/polling\");\n/* harmony import */ var _lumino_polling__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_polling__WEBPACK_IMPORTED_MODULE_2__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n/**\n * A data connector for fetching settings.\n *\n * #### Notes\n * This connector adds a query parameter to the base services setting manager.\n */\nclass SettingConnector extends _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_1__.DataConnector {\n constructor(connector) {\n super();\n this._throttlers = Object.create(null);\n this._connector = connector;\n }\n /**\n * Fetch settings for a plugin.\n * @param id - The plugin ID\n *\n * #### Notes\n * The REST API requests are throttled at one request per plugin per 100ms.\n */\n fetch(id) {\n const throttlers = this._throttlers;\n if (!(id in throttlers)) {\n throttlers[id] = new _lumino_polling__WEBPACK_IMPORTED_MODULE_2__.Throttler(() => this._connector.fetch(id), 100);\n }\n return throttlers[id].invoke();\n }\n async list(query = 'all') {\n const { isDisabled } = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.Extension;\n const { ids, values } = await this._connector.list(query === 'ids' ? 'ids' : undefined);\n if (query === 'all') {\n return { ids, values };\n }\n if (query === 'ids') {\n return { ids };\n }\n return {\n ids: ids.filter(id => !isDisabled(id)),\n values: values.filter(({ id }) => !isDisabled(id))\n };\n }\n async save(id, raw) {\n await this._connector.save(id, raw);\n }\n}\n//# sourceMappingURL=settingconnector.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/settingconnector.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/settingsplugin.js": +/*!****************************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/settingsplugin.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ settingsConnector: () => (/* binding */ settingsConnector),\n/* harmony export */ settingsPlugin: () => (/* binding */ settingsPlugin)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _settingconnector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingconnector */ \"../node_modules/@jupyterlab/apputils-extension/lib/settingconnector.js\");\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n\n\n/**\n * Provides the settings connector as a separate plugin to allow for alternative\n * implementations that may want to fetch settings from a different source or\n * endpoint.\n */\nconst settingsConnector = {\n id: '@jupyterlab/apputils-extension:settings-connector',\n description: 'Provides the settings connector.',\n autoStart: true,\n provides: _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.ISettingConnector,\n activate: (app) => new _settingconnector__WEBPACK_IMPORTED_MODULE_2__.SettingConnector(app.serviceManager.settings)\n};\n/**\n * The default setting registry provider.\n */\nconst settingsPlugin = {\n id: '@jupyterlab/apputils-extension:settings',\n autoStart: true,\n provides: _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.ISettingRegistry,\n optional: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.ISettingConnector],\n description: 'Provides the setting registry.',\n activate: async (app, settingsConnector) => {\n const { isDisabled } = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PageConfig.Extension;\n const connector = settingsConnector !== null && settingsConnector !== void 0 ? settingsConnector : new _settingconnector__WEBPACK_IMPORTED_MODULE_2__.SettingConnector(app.serviceManager.settings);\n // On startup, check if a plugin is available in the application.\n // This helps avoid loading plugin files from other lab-based applications\n // that have placed their schemas next to the JupyterLab schemas. Different lab-based\n // applications might not have the same set of plugins loaded on the page.\n // As an example this helps prevent having new toolbar items added by another application\n // appear in JupyterLab as a side-effect when they are defined via the settings system.\n const registry = new _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.SettingRegistry({\n connector,\n plugins: (await connector.list('active')).values.filter(value => app.hasPlugin(value.id))\n });\n // If there are plugins that have schemas that are not in the setting\n // registry after the application has restored, try to load them manually\n // because otherwise, its settings will never become available in the\n // setting registry.\n void app.restored.then(async () => {\n const plugins = await connector.list('ids');\n plugins.ids.forEach(async (id) => {\n if (!app.hasPlugin(id) || isDisabled(id) || id in registry.plugins) {\n return;\n }\n try {\n await registry.load(id);\n }\n catch (error) {\n console.warn(`Settings failed to load for (${id})`, error);\n if (!app.isPluginActivated(id)) {\n console.warn(`If 'jupyter.lab.transform=true' in the plugin schema, this ` +\n `may happen if {autoStart: false} in (${id}) or if it is ` +\n `one of the deferredExtensions in page config.`);\n }\n }\n });\n });\n return registry;\n }\n};\n//# sourceMappingURL=settingsplugin.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/settingsplugin.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/shortcuts.js": +/*!***********************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/shortcuts.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ displayShortcuts: () => (/* binding */ displayShortcuts)\n/* harmony export */ });\n/* harmony import */ var _lumino_commands__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/commands */ \"webpack/sharing/consume/default/@lumino/commands/@lumino/commands\");\n/* harmony import */ var _lumino_commands__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_commands__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_domutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/domutils */ \"webpack/sharing/consume/default/@lumino/domutils/@lumino/domutils\");\n/* harmony import */ var _lumino_domutils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_domutils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_3__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n\n/**\n * The class name for each row of ContextShortcutTable\n */\nconst SHORTCUT_TABLE_ROW_CLASS = 'jp-ContextualShortcut-TableRow';\n/**\n * The class name for the last row of ContextShortcutTable\n */\nconst SHORTCUT_TABLE_LAST_ROW_CLASS = 'jp-ContextualShortcut-TableLastRow';\n/**\n * The class name for each item of ContextShortcutTable\n */\nconst SHORTCUT_TABLE_ITEM_CLASS = 'jp-ContextualShortcut-TableItem';\n/**\n * The class name for each button-like symbol representing a key used in a shortcut in the ContextShortcutTable\n */\nconst SHORTCUT_KEY_CLASS = 'jp-ContextualShortcut-Key';\nfunction displayShortcuts(options) {\n const { commands, trans, activeElement } = options;\n const elt = activeElement !== null && activeElement !== void 0 ? activeElement : document.activeElement;\n /**\n * Find the distance from the target node to the first matching node.\n *\n * Based on Lumino private function commands.Private.targetDistance\n * This traverses the DOM path from `elt` to the root\n * computes the distance from `elt` to the first node which matches\n * the CSS selector. If no match is found, `-1` is returned.\n *\n * It also stops traversal if the `data-lm-suppress-shortcuts` or\n * `data-p-suppress-shortcuts` attributes are found.\n */\n function formatKeys(keys) {\n const topContainer = [];\n keys.forEach((key, index) => {\n const container = [];\n key.split(' ').forEach((ch, chIndex) => {\n container.push(react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"span\", { className: SHORTCUT_KEY_CLASS, key: `ch-${chIndex}` },\n react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"kbd\", null, ch)), react__WEBPACK_IMPORTED_MODULE_2__.createElement(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, { key: `fragment-${chIndex}` }, \" + \"));\n });\n topContainer.push(react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"span\", { key: `key-${index}` }, container.slice(0, -1)), react__WEBPACK_IMPORTED_MODULE_2__.createElement(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, { key: `fragment-${index}` }, \" + \"));\n });\n return react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"span\", null, topContainer.slice(0, -1));\n }\n function capitalizeString(str) {\n const capitalizedStr = str.charAt(0).toUpperCase() + str.slice(1);\n return capitalizedStr;\n }\n function formatLabel(b) {\n const label = commands.label(b.command);\n const commandID = b.command.split(':')[1];\n const automaticLabel = commandID.split('-');\n let capitalizedLabel = '';\n for (let i = 0; i < automaticLabel.length; i++) {\n const str = capitalizeString(automaticLabel[i]);\n capitalizedLabel = capitalizedLabel + ' ' + str;\n }\n if (label.length > 0) {\n return label;\n }\n else {\n return capitalizedLabel;\n }\n }\n function matchDistance(selector, elt) {\n let targ = elt;\n for (let dist = 0; targ !== null && targ !== targ.parentElement; targ = targ.parentElement, ++dist) {\n if (targ.hasAttribute('data-lm-suppress-shortcuts')) {\n return -1;\n }\n if (targ.matches(selector)) {\n return dist;\n }\n }\n return -1;\n }\n // Find active keybindings for target element\n const activeBindings = new Map();\n for (let i = 0; i < commands.keyBindings.length; i++) {\n const kb = commands.keyBindings[i];\n let distance = matchDistance(kb.selector, elt);\n if (distance < 0) {\n continue;\n }\n let formatted = _lumino_commands__WEBPACK_IMPORTED_MODULE_0__.CommandRegistry.formatKeystroke(kb.keys);\n if (activeBindings.has(formatted)) {\n let oldBinding = activeBindings.get(formatted);\n // if the existing binding takes precedence, ignore this binding by continuing\n if (oldBinding[0] < distance ||\n (oldBinding[0] === distance &&\n _lumino_domutils__WEBPACK_IMPORTED_MODULE_1__.Selector.calculateSpecificity(oldBinding[1].selector) >\n _lumino_domutils__WEBPACK_IMPORTED_MODULE_1__.Selector.calculateSpecificity(kb.selector))) {\n continue;\n }\n }\n activeBindings.set(formatted, [distance, kb]);\n }\n // Group shortcuts by distance\n let maxDistance = -1;\n const groupedBindings = new Map();\n for (let [distance, binding] of activeBindings.values()) {\n maxDistance = Math.max(distance, maxDistance);\n if (!groupedBindings.has(distance)) {\n groupedBindings.set(distance, []);\n }\n groupedBindings.get(distance).push(binding);\n }\n // Display shortcuts by group\n const bindingTable = [];\n for (let d = 0; d <= maxDistance; d++) {\n if (groupedBindings.has(d)) {\n bindingTable.push(groupedBindings.get(d).map(b => (react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"tr\", { className: SHORTCUT_TABLE_ROW_CLASS, key: `${b.command}-${b.keys.join('-').replace(' ', '_')}` },\n react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"td\", { className: SHORTCUT_TABLE_ITEM_CLASS }, formatLabel(b)),\n react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"td\", { className: SHORTCUT_TABLE_ITEM_CLASS }, formatKeys([...b.keys]))))));\n bindingTable.push(react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"tr\", { className: SHORTCUT_TABLE_LAST_ROW_CLASS, key: `group-${d}-last` }));\n }\n }\n const body = (react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"table\", null,\n react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"tbody\", null, bindingTable)));\n return (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_3__.showDialog)({\n title: trans.__('Keyboard Shortcuts'),\n body,\n buttons: [\n _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_3__.Dialog.cancelButton({\n label: trans.__('Close')\n })\n ]\n });\n}\n//# sourceMappingURL=shortcuts.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/shortcuts.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/statusbarplugin.js": +/*!*****************************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/statusbarplugin.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ kernelStatus: () => (/* binding */ kernelStatus),\n/* harmony export */ runningSessionsStatus: () => (/* binding */ runningSessionsStatus)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/application */ \"webpack/sharing/consume/default/@jupyterlab/application/@jupyterlab/application\");\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/statusbar */ \"webpack/sharing/consume/default/@jupyterlab/statusbar/@jupyterlab/statusbar\");\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n\n\n\n\n/**\n * A plugin that provides a kernel status item to the status bar.\n */\nconst kernelStatus = {\n id: '@jupyterlab/apputils-extension:kernel-status',\n description: 'Provides the kernel status indicator model.',\n autoStart: true,\n requires: [_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.IStatusBar],\n provides: _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.IKernelStatusModel,\n optional: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ISessionContextDialogs, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__.ITranslator, _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.ILabShell],\n activate: (app, statusBar, sessionDialogs_, translator_, labShell) => {\n const translator = translator_ !== null && translator_ !== void 0 ? translator_ : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__.nullTranslator;\n const sessionDialogs = sessionDialogs_ !== null && sessionDialogs_ !== void 0 ? sessionDialogs_ : new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.SessionContextDialogs({ translator });\n // When the status item is clicked, launch the kernel\n // selection dialog for the current session.\n const changeKernel = async () => {\n if (!item.model.sessionContext) {\n return;\n }\n await sessionDialogs.selectKernel(item.model.sessionContext);\n };\n const changeKernelOnKeyDown = async (event) => {\n if (event.key === 'Enter' ||\n event.key === 'Spacebar' ||\n event.key === ' ') {\n event.preventDefault();\n event.stopPropagation();\n return changeKernel();\n }\n };\n // Create the status item.\n const item = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.KernelStatus({ onClick: changeKernel, onKeyDown: changeKernelOnKeyDown }, translator);\n const providers = new Set();\n const addSessionProvider = (provider) => {\n providers.add(provider);\n if (app.shell.currentWidget) {\n updateSession(app.shell, {\n newValue: app.shell.currentWidget,\n oldValue: null\n });\n }\n };\n function updateSession(shell, changes) {\n var _a;\n const { oldValue, newValue } = changes;\n // Clean up after the old value if it exists,\n // listen for changes to the title of the activity\n if (oldValue) {\n oldValue.title.changed.disconnect(onTitleChanged);\n }\n item.model.sessionContext =\n (_a = [...providers]\n .map(provider => provider(changes.newValue))\n .filter(session => session !== null)[0]) !== null && _a !== void 0 ? _a : null;\n if (newValue && item.model.sessionContext) {\n onTitleChanged(newValue.title);\n newValue.title.changed.connect(onTitleChanged);\n }\n }\n // When the title of the active widget changes, update the label\n // of the hover text.\n const onTitleChanged = (title) => {\n item.model.activityName = title.label;\n };\n if (labShell) {\n labShell.currentChanged.connect(updateSession);\n }\n statusBar.registerStatusItem(kernelStatus.id, {\n priority: 1,\n item,\n align: 'left',\n rank: 1,\n isActive: () => item.model.sessionContext !== null\n });\n return { addSessionProvider };\n }\n};\n/*\n * A plugin providing running terminals and sessions information\n * to the status bar.\n */\nconst runningSessionsStatus = {\n id: '@jupyterlab/apputils-extension:running-sessions-status',\n description: 'Add the running sessions and terminals status bar item.',\n autoStart: true,\n requires: [_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.IStatusBar, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_4__.ITranslator],\n optional: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__.ISettingRegistry],\n activate: (app, statusBar, translator, settingRegistry) => {\n const createStatusItem = (options) => {\n const item = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.RunningSessions({\n onClick: () => app.shell.activateById('jp-running-sessions'),\n onKeyDown: (event) => {\n if (event.key === 'Enter' ||\n event.key === 'Spacebar' ||\n event.key === ' ') {\n event.preventDefault();\n event.stopPropagation();\n app.shell.activateById('jp-running-sessions');\n }\n },\n serviceManager: app.serviceManager,\n translator,\n ...options\n });\n item.model.sessions = Array.from(app.serviceManager.sessions.running()).length;\n item.model.terminals = Array.from(app.serviceManager.terminals.running()).length;\n return item;\n };\n const registerItem = (options) => {\n const item = createStatusItem(options);\n return statusBar.registerStatusItem(runningSessionsStatus.id, {\n item,\n align: 'left',\n rank: 0\n });\n };\n if (settingRegistry) {\n let disposable;\n const onSettingsUpdated = (kernelSettings, terminalsSettings) => {\n var _a, _b;\n const showTerminalsMap = {\n 'if-any': undefined,\n never: false,\n always: true\n };\n const showKernels = (_a = kernelSettings === null || kernelSettings === void 0 ? void 0 : kernelSettings.get('showStatusBarItem').composite) !== null && _a !== void 0 ? _a : true;\n const showTerminals = showTerminalsMap[(_b = terminalsSettings === null || terminalsSettings === void 0 ? void 0 : terminalsSettings.get('showStatusBarItem').composite) !== null && _b !== void 0 ? _b : 'if-any'];\n disposable === null || disposable === void 0 ? void 0 : disposable.dispose();\n if (showKernels || showTerminals !== false) {\n disposable = registerItem({\n showKernels,\n showTerminals\n });\n }\n };\n const kernelsPluginId = '@jupyterlab/apputils-extension:kernels-settings';\n const terminalPluginId = '@jupyterlab/terminal-extension:plugin';\n void Promise.all([\n // Settings may be missing if the respective plugins are not enabled/included.\n kernelsPluginId in settingRegistry.plugins\n ? settingRegistry.load(kernelsPluginId).catch(() => undefined)\n : Promise.resolve(undefined),\n terminalPluginId in settingRegistry.plugins\n ? settingRegistry.load(terminalPluginId).catch(() => undefined)\n : Promise.resolve(undefined)\n ]).then(([kernelSettings, terminalSettings]) => {\n onSettingsUpdated(kernelSettings, terminalSettings);\n if (kernelSettings) {\n kernelSettings.changed.connect(settings => {\n kernelSettings = settings;\n onSettingsUpdated(kernelSettings, terminalSettings);\n });\n }\n if (terminalSettings) {\n terminalSettings.changed.connect(settings => {\n terminalSettings = settings;\n onSettingsUpdated(kernelSettings, terminalSettings);\n });\n }\n });\n }\n else {\n registerItem({\n showKernels: true\n });\n }\n }\n};\n//# sourceMappingURL=statusbarplugin.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/statusbarplugin.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/subshell-settings.js": +/*!*******************************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/subshell-settings.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ subshellsSettings: () => (/* binding */ subshellsSettings)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_0__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*\n * A plugin loading kernel subshell settings.\n */\nconst subshellsSettings = {\n id: '@jupyterlab/apputils-extension:subshell-settings',\n description: 'Kernel subshell settings.',\n autoStart: true,\n requires: [],\n optional: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_0__.ISettingRegistry],\n activate: (app, settingRegistry) => {\n if (settingRegistry) {\n app.started\n .then(async () => {\n const subshellsSettings = await settingRegistry.load('@jupyterlab/apputils-extension:kernels-settings');\n const commsOverSubshells = subshellsSettings.get('commsOverSubshells')\n .composite;\n app.serviceManager.kernels.commsOverSubshells = commsOverSubshells;\n subshellsSettings.changed.connect(() => {\n const commsOverSubshells = subshellsSettings.get('commsOverSubshells').composite;\n app.serviceManager.kernels.commsOverSubshells = commsOverSubshells;\n });\n })\n .catch(reason => {\n console.error('Fail to load settings for the subshells.');\n console.error(reason);\n });\n }\n }\n};\n//# sourceMappingURL=subshell-settings.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/subshell-settings.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/themesplugins.js": +/*!***************************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/themesplugins.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ themesPaletteMenuPlugin: () => (/* binding */ themesPaletteMenuPlugin),\n/* harmony export */ themesPlugin: () => (/* binding */ themesPlugin)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/application */ \"webpack/sharing/consume/default/@jupyterlab/application/@jupyterlab/application\");\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/mainmenu */ \"webpack/sharing/consume/default/@jupyterlab/mainmenu/@jupyterlab/mainmenu\");\n/* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _style_scrollbar_raw_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../style/scrollbar.raw.css */ \"../node_modules/@jupyterlab/apputils-extension/style/scrollbar.raw.css\");\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n\n\n\n\n\n\nvar CommandIDs;\n(function (CommandIDs) {\n CommandIDs.changeTheme = 'apputils:change-theme';\n CommandIDs.changePreferredLightTheme = 'apputils:change-light-theme';\n CommandIDs.changePreferredDarkTheme = 'apputils:change-dark-theme';\n CommandIDs.toggleAdaptiveTheme = 'apputils:adaptive-theme';\n CommandIDs.themeScrollbars = 'apputils:theme-scrollbars';\n CommandIDs.changeFont = 'apputils:change-font';\n CommandIDs.incrFontSize = 'apputils:incr-font-size';\n CommandIDs.decrFontSize = 'apputils:decr-font-size';\n})(CommandIDs || (CommandIDs = {}));\nfunction createStyleSheet(text) {\n const style = document.createElement('style');\n style.setAttribute('type', 'text/css');\n style.appendChild(document.createTextNode(text));\n return style;\n}\n/**\n * The default theme manager provider.\n */\nconst themesPlugin = {\n id: '@jupyterlab/apputils-extension:themes',\n description: 'Provides the theme manager.',\n requires: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_4__.ISettingRegistry, _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEnd.IPaths, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.ITranslator],\n optional: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ISplashScreen],\n activate: (app, settings, paths, translator, splash) => {\n const trans = translator.load('jupyterlab');\n const host = app.shell;\n const commands = app.commands;\n const url = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.join(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.PageConfig.getBaseUrl(), paths.urls.themes);\n const key = themesPlugin.id;\n const manager = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ThemeManager({\n key,\n host,\n settings,\n splash: splash !== null && splash !== void 0 ? splash : undefined,\n url\n });\n let scrollbarsStyleElement = null;\n // Keep a synchronously set reference to the current theme,\n // since the asynchronous setting of the theme in `changeTheme`\n // can lead to an incorrect toggle on the currently used theme.\n let currentTheme;\n manager.themeChanged.connect((sender, args) => {\n // Set data attributes on the application shell for the current theme.\n currentTheme = args.newValue;\n document.body.dataset.jpThemeLight = String(manager.isLight(currentTheme));\n document.body.dataset.jpThemeName = currentTheme;\n document.body.style.colorScheme = manager.isLight(currentTheme)\n ? 'light'\n : 'dark';\n if (document.body.dataset.jpThemeScrollbars !==\n String(manager.themeScrollbars(currentTheme))) {\n document.body.dataset.jpThemeScrollbars = String(manager.themeScrollbars(currentTheme));\n if (manager.themeScrollbars(currentTheme)) {\n if (!scrollbarsStyleElement) {\n scrollbarsStyleElement = createStyleSheet(_style_scrollbar_raw_css__WEBPACK_IMPORTED_MODULE_6__);\n }\n if (!scrollbarsStyleElement.parentElement) {\n document.body.appendChild(scrollbarsStyleElement);\n }\n }\n else {\n if (scrollbarsStyleElement && scrollbarsStyleElement.parentElement) {\n scrollbarsStyleElement.parentElement.removeChild(scrollbarsStyleElement);\n }\n }\n }\n commands.notifyCommandChanged(CommandIDs.changeTheme);\n });\n commands.addCommand(CommandIDs.changeTheme, {\n label: args => {\n if (args.theme === undefined) {\n return trans.__('Switch to the provided `theme`.');\n }\n const theme = args['theme'];\n const displayName = manager.getDisplayName(theme);\n return args['isPalette']\n ? trans.__('Use Theme: %1', displayName)\n : displayName;\n },\n isToggled: args => args['theme'] === currentTheme,\n execute: args => {\n const theme = args['theme'];\n if (theme === manager.theme) {\n return;\n }\n // Disable adaptive theme if users decide to change the theme when adaptive theme is on\n if (manager.isToggledAdaptiveTheme()) {\n return manager.toggleAdaptiveTheme();\n }\n return manager.setTheme(theme);\n }\n });\n commands.addCommand(CommandIDs.changePreferredLightTheme, {\n label: args => {\n if (args.theme === undefined) {\n return trans.__('Switch to the provided light `theme`.');\n }\n const theme = args['theme'];\n const displayName = manager.getDisplayName(theme);\n return args['isPalette']\n ? trans.__('Set Preferred Light Theme: %1', displayName)\n : displayName;\n },\n isToggled: args => args['theme'] === manager.preferredLightTheme,\n execute: args => {\n const theme = args['theme'];\n if (theme === manager.preferredLightTheme) {\n return;\n }\n return manager.setPreferredLightTheme(theme);\n }\n });\n commands.addCommand(CommandIDs.changePreferredDarkTheme, {\n label: args => {\n if (args.theme === undefined) {\n return trans.__('Switch to the provided dark `theme`.');\n }\n const theme = args['theme'];\n const displayName = manager.getDisplayName(theme);\n return args['isPalette']\n ? trans.__('Set Preferred Dark Theme: %1', displayName)\n : displayName;\n },\n isToggled: args => args['theme'] === manager.preferredDarkTheme,\n execute: args => {\n const theme = args['theme'];\n if (theme === manager.preferredDarkTheme) {\n return;\n }\n return manager.setPreferredDarkTheme(theme);\n }\n });\n commands.addCommand(CommandIDs.toggleAdaptiveTheme, {\n // Avoid lengthy option text in menu\n label: args => args['isPalette']\n ? trans.__('Synchronize Styling Theme with System Settings')\n : trans.__('Synchronize with System Settings'),\n isToggled: () => manager.isToggledAdaptiveTheme(),\n execute: () => {\n manager.toggleAdaptiveTheme().catch(console.warn);\n }\n });\n commands.addCommand(CommandIDs.themeScrollbars, {\n label: trans.__('Theme Scrollbars'),\n isToggled: () => manager.isToggledThemeScrollbars(),\n execute: () => manager.toggleThemeScrollbars()\n });\n commands.addCommand(CommandIDs.changeFont, {\n label: args => args['enabled'] ? `${args['font']}` : trans.__('waiting for fonts'),\n isEnabled: args => args['enabled'],\n isToggled: args => manager.getCSS(args['key']) === args['font'],\n execute: args => manager.setCSSOverride(args['key'], args['font'])\n });\n commands.addCommand(CommandIDs.incrFontSize, {\n label: args => {\n switch (args.key) {\n case 'code-font-size':\n return trans.__('Increase Code Font Size');\n case 'content-font-size1':\n return trans.__('Increase Content Font Size');\n case 'ui-font-size1':\n return trans.__('Increase UI Font Size');\n default:\n return trans.__('Increase Font Size');\n }\n },\n execute: args => manager.incrFontSize(args['key'])\n });\n commands.addCommand(CommandIDs.decrFontSize, {\n label: args => {\n switch (args.key) {\n case 'code-font-size':\n return trans.__('Decrease Code Font Size');\n case 'content-font-size1':\n return trans.__('Decrease Content Font Size');\n case 'ui-font-size1':\n return trans.__('Decrease UI Font Size');\n default:\n return trans.__('Decrease Font Size');\n }\n },\n execute: args => manager.decrFontSize(args['key'])\n });\n return manager;\n },\n autoStart: true,\n provides: _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.IThemeManager\n};\n/**\n * The default theme manager's UI command palette and main menu functionality.\n *\n * #### Notes\n * This plugin loads separately from the theme manager plugin in order to\n * prevent blocking of the theme manager while it waits for the command palette\n * and main menu to become available.\n */\nconst themesPaletteMenuPlugin = {\n id: '@jupyterlab/apputils-extension:themes-palette-menu',\n description: 'Adds theme commands to the menu and the command palette.',\n requires: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.IThemeManager, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.ITranslator],\n optional: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ICommandPalette, _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__.IMainMenu],\n activate: (app, manager, translator, palette, mainMenu) => {\n const trans = translator.load('jupyterlab');\n // If we have a main menu, add the theme manager to the settings menu.\n if (mainMenu) {\n void app.restored.then(() => {\n var _a;\n const isPalette = false;\n const themeMenu = (_a = mainMenu.settingsMenu.items.find(item => {\n var _a;\n return item.type === 'submenu' &&\n ((_a = item.submenu) === null || _a === void 0 ? void 0 : _a.id) === 'jp-mainmenu-settings-apputilstheme';\n })) === null || _a === void 0 ? void 0 : _a.submenu;\n // choose a theme\n if (themeMenu) {\n manager.themes.forEach((theme, index) => {\n themeMenu.insertItem(index, {\n command: CommandIDs.changeTheme,\n args: { isPalette, theme }\n });\n });\n }\n });\n }\n // If we have a command palette, add theme switching options to it.\n if (palette) {\n void app.restored.then(() => {\n const category = trans.__('Theme');\n const command = CommandIDs.changeTheme;\n const isPalette = true;\n // choose a theme\n manager.themes.forEach(theme => {\n palette.addItem({ command, args: { isPalette, theme }, category });\n });\n // choose preferred light theme\n manager.themes.forEach(theme => {\n palette.addItem({\n command: CommandIDs.changePreferredLightTheme,\n args: { isPalette, theme },\n category\n });\n });\n // choose preferred dark theme\n manager.themes.forEach(theme => {\n palette.addItem({\n command: CommandIDs.changePreferredDarkTheme,\n args: { isPalette, theme },\n category\n });\n });\n // toggle adaptive theme\n palette.addItem({\n command: CommandIDs.toggleAdaptiveTheme,\n args: { isPalette },\n category\n });\n // toggle scrollbar theming\n palette.addItem({ command: CommandIDs.themeScrollbars, category });\n // increase/decrease code font size\n palette.addItem({\n command: CommandIDs.incrFontSize,\n args: {\n key: 'code-font-size'\n },\n category\n });\n palette.addItem({\n command: CommandIDs.decrFontSize,\n args: {\n key: 'code-font-size'\n },\n category\n });\n // increase/decrease content font size\n palette.addItem({\n command: CommandIDs.incrFontSize,\n args: {\n key: 'content-font-size1'\n },\n category\n });\n palette.addItem({\n command: CommandIDs.decrFontSize,\n args: {\n key: 'content-font-size1'\n },\n category\n });\n // increase/decrease ui font size\n palette.addItem({\n command: CommandIDs.incrFontSize,\n args: {\n key: 'ui-font-size1'\n },\n category\n });\n palette.addItem({\n command: CommandIDs.decrFontSize,\n args: {\n key: 'ui-font-size1'\n },\n category\n });\n });\n }\n },\n autoStart: true\n};\n//# sourceMappingURL=themesplugins.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/themesplugins.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/toolbarregistryplugin.js": +/*!***********************************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/toolbarregistryplugin.js ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ toolbarRegistry: () => (/* binding */ toolbarRegistry)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n/**\n * The default toolbar registry.\n */\nconst toolbarRegistry = {\n id: '@jupyterlab/apputils-extension:toolbar-registry',\n description: 'Provides toolbar items registry.',\n autoStart: true,\n provides: _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.IToolbarWidgetRegistry,\n activate: (app) => {\n const registry = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.ToolbarWidgetRegistry({\n defaultFactory: (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.createDefaultFactory)(app.commands)\n });\n return registry;\n }\n};\n//# sourceMappingURL=toolbarregistryplugin.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/toolbarregistryplugin.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/lib/workspacesplugin.js": +/*!******************************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/lib/workspacesplugin.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ workspacesPlugin: () => (/* binding */ workspacesPlugin)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/application */ \"webpack/sharing/consume/default/@jupyterlab/application/@jupyterlab/application\");\n/* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/docregistry */ \"webpack/sharing/consume/default/@jupyterlab/docregistry/@jupyterlab/docregistry\");\n/* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/statedb */ \"webpack/sharing/consume/default/@jupyterlab/statedb/@jupyterlab/statedb\");\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _jupyterlab_workspaces__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/workspaces */ \"webpack/sharing/consume/default/@jupyterlab/workspaces/@jupyterlab/workspaces\");\n/* harmony import */ var _jupyterlab_workspaces__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_workspaces__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_6__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n\nconst WORKSPACE_NAME = 'jupyterlab-workspace';\nconst WORKSPACE_EXT = '.' + WORKSPACE_NAME;\nconst LAST_SAVE_ID = 'workspace-ui:lastSave';\nconst ICON_NAME = 'jp-JupyterIcon';\n/**\n * The workspace MIME renderer.\n */\nconst workspacesPlugin = {\n id: '@jupyterlab/apputils-extension:workspaces',\n description: 'Add workspace file type.',\n autoStart: true,\n requires: [_jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_3__.IStateDB, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.ITranslator, _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.JupyterFrontEnd.IPaths],\n optional: [_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__.IRouter, _jupyterlab_workspaces__WEBPACK_IMPORTED_MODULE_4__.IWorkspaceCommands],\n activate: (app, state, translator, paths, router, workspaceCommands) => {\n // The workspace factory creates dummy widgets to load a new workspace.\n const factory = new Private.WorkspaceFactory({\n workspaces: app.serviceManager.workspaces,\n state,\n translator,\n open: async (id) => {\n if (workspaceCommands) {\n await app.commands.execute(workspaceCommands.open, { workspace: id });\n }\n else {\n const workspacesBase = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__.URLExt.join(paths.urls.app, 'workspaces');\n const url = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__.URLExt.join(workspacesBase, id);\n if (!url.startsWith(workspacesBase)) {\n throw new Error('Can only be used for workspaces');\n }\n if (router) {\n router.navigate(url, { hard: true });\n }\n else {\n document.location.href = url;\n }\n }\n }\n });\n const trans = translator.load('jupyterlab');\n app.docRegistry.addFileType({\n name: WORKSPACE_NAME,\n contentType: 'file',\n fileFormat: 'text',\n displayName: trans.__('JupyterLab Workspace File'),\n extensions: [WORKSPACE_EXT],\n mimeTypes: ['text/json'],\n iconClass: ICON_NAME\n });\n app.docRegistry.addWidgetFactory(factory);\n }\n};\nvar Private;\n(function (Private) {\n /**\n * This widget factory is used to handle double click on workspace\n */\n class WorkspaceFactory extends _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_2__.ABCWidgetFactory {\n /**\n * Construct a widget factory that uploads a workspace and navigates to it.\n *\n * @param options - The instantiation options for a `WorkspaceFactory`.\n */\n constructor(options) {\n const trans = (options.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_5__.nullTranslator).load('jupyterlab');\n super({\n name: 'Workspace loader',\n label: trans.__('Workspace loader'),\n fileTypes: [WORKSPACE_NAME],\n defaultFor: [WORKSPACE_NAME],\n readOnly: true\n });\n this._state = options.state;\n this._workspaces = options.workspaces;\n this._open = options.open;\n }\n /**\n * Loads the workspace into load, and jump to it\n * @param context This is used to query the workspace content\n */\n createNewWidget(context) {\n // Save a file's contents as a workspace and navigate to that workspace.\n void context.ready.then(async () => {\n const file = context.model;\n const workspace = file.toJSON();\n const path = context.path;\n const id = workspace.metadata.id;\n // Save the file contents as a workspace.\n await this._workspaces.save(id, workspace);\n // Save last save location for the save command.\n await this._state.save(LAST_SAVE_ID, path);\n // Navigate to new workspace.\n await this._open(id);\n });\n return dummyWidget(context);\n }\n }\n Private.WorkspaceFactory = WorkspaceFactory;\n /**\n * Returns a dummy widget with disposed content that doesn't render in the UI.\n *\n * @param context - The file context.\n */\n function dummyWidget(context) {\n const widget = new _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_2__.DocumentWidget({ content: new _lumino_widgets__WEBPACK_IMPORTED_MODULE_6__.Widget(), context });\n widget.content.dispose();\n return widget;\n }\n})(Private || (Private = {}));\n//# sourceMappingURL=workspacesplugin.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/lib/workspacesplugin.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils-extension/style/index.js": +/*!*********************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils-extension/style/index.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lumino_widgets_style_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/widgets/style/index.js */ \"../node_modules/@lumino/widgets/style/index.js\");\n/* harmony import */ var _jupyterlab_ui_components_style_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components/style/index.js */ \"../node_modules/@jupyterlab/ui-components/style/index.js\");\n/* harmony import */ var _jupyterlab_statusbar_style_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/statusbar/style/index.js */ \"../node_modules/@jupyterlab/statusbar/style/index.js\");\n/* harmony import */ var _jupyterlab_apputils_style_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/apputils/style/index.js */ \"../node_modules/@jupyterlab/apputils/style/index.js\");\n/* harmony import */ var _jupyterlab_docregistry_style_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/docregistry/style/index.js */ \"../node_modules/@jupyterlab/docregistry/style/index.js\");\n/* harmony import */ var _jupyterlab_application_style_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @jupyterlab/application/style/index.js */ \"../node_modules/@jupyterlab/application/style/index.js\");\n/* harmony import */ var _jupyterlab_mainmenu_style_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @jupyterlab/mainmenu/style/index.js */ \"../node_modules/@jupyterlab/mainmenu/style/index.js\");\n/* harmony import */ var _base_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./base.css */ \"../node_modules/@jupyterlab/apputils-extension/style/base.css\");\n/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/style/index.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/clipboard.js": +/*!*************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/clipboard.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Clipboard: () => (/* binding */ Clipboard)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * The clipboard interface.\n */\nvar Clipboard;\n(function (Clipboard) {\n /**\n * Get the application clipboard instance.\n */\n function getInstance() {\n return Private.instance;\n }\n Clipboard.getInstance = getInstance;\n /**\n * Set the application clipboard instance.\n */\n function setInstance(value) {\n Private.instance = value;\n }\n Clipboard.setInstance = setInstance;\n /**\n * Copy text to the system clipboard.\n *\n * #### Notes\n * This can only be called in response to a user input event.\n */\n function copyToSystem(clipboardData) {\n const node = document.body;\n const handler = (event) => {\n const data = event.clipboardData || window.clipboardData;\n if (typeof clipboardData === 'string') {\n data.setData('text', clipboardData);\n }\n else {\n clipboardData.types().map((mimeType) => {\n data.setData(mimeType, clipboardData.getData(mimeType));\n });\n }\n event.preventDefault();\n node.removeEventListener('copy', handler);\n };\n node.addEventListener('copy', handler);\n generateEvent(node);\n }\n Clipboard.copyToSystem = copyToSystem;\n /**\n * Generate a clipboard event on a node.\n *\n * @param node - The element on which to generate the event.\n *\n * @param type - The type of event to generate.\n * `'paste'` events cannot be programmatically generated.\n *\n * #### Notes\n * This can only be called in response to a user input event.\n */\n function generateEvent(node, type = 'copy') {\n // http://stackoverflow.com/a/5210367\n // Identify selected text.\n let sel = window.getSelection();\n // Save the current selection.\n const savedRanges = [];\n for (let i = 0, len = (sel === null || sel === void 0 ? void 0 : sel.rangeCount) || 0; i < len; ++i) {\n savedRanges[i] = sel.getRangeAt(i).cloneRange();\n }\n // Select the node content.\n const range = document.createRange();\n range.selectNodeContents(node);\n if (sel) {\n sel.removeAllRanges();\n sel.addRange(range);\n }\n // Execute the command.\n document.execCommand(type);\n // Restore the previous selection.\n sel = window.getSelection();\n if (sel) {\n sel.removeAllRanges();\n for (let i = 0, len = savedRanges.length; i < len; ++i) {\n sel.addRange(savedRanges[i]);\n }\n }\n }\n Clipboard.generateEvent = generateEvent;\n})(Clipboard || (Clipboard = {}));\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n /**\n * The application clipboard instance.\n */\n Private.instance = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.MimeData();\n})(Private || (Private = {}));\n//# sourceMappingURL=clipboard.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/clipboard.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/commandlinker.js": +/*!*****************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/commandlinker.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CommandLinker: () => (/* binding */ CommandLinker)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/**\n * The command data attribute added to nodes that are connected.\n */\nconst COMMAND_ATTR = 'commandlinker-command';\n/**\n * The args data attribute added to nodes that are connected.\n */\nconst ARGS_ATTR = 'commandlinker-args';\n/**\n * A static class that provides helper methods to generate clickable nodes that\n * execute registered commands with pre-populated arguments.\n */\nclass CommandLinker {\n /**\n * Instantiate a new command linker.\n */\n constructor(options) {\n this._isDisposed = false;\n this._commands = options.commands;\n document.body.addEventListener('click', this);\n }\n /**\n * Test whether the linker is disposed.\n */\n get isDisposed() {\n return this._isDisposed;\n }\n /**\n * Dispose of the resources held by the linker.\n */\n dispose() {\n if (this.isDisposed) {\n return;\n }\n this._isDisposed = true;\n document.body.removeEventListener('click', this);\n }\n /**\n * Connect a command/argument pair to a given node so that when it is clicked,\n * the command will execute.\n *\n * @param node - The node being connected.\n *\n * @param command - The command ID to execute upon click.\n *\n * @param args - The arguments with which to invoke the command.\n *\n * @returns The same node that was passed in, after it has been connected.\n *\n * #### Notes\n * Only `click` events will execute the command on a connected node. So, there\n * are two considerations that are relevant:\n * 1. If a node is connected, the default click action will be prevented.\n * 2. The `HTMLElement` passed in should be clickable.\n */\n connectNode(node, command, args) {\n node.setAttribute(`data-${COMMAND_ATTR}`, command);\n if (args !== void 0) {\n node.setAttribute(`data-${ARGS_ATTR}`, JSON.stringify(args));\n }\n return node;\n }\n /**\n * Disconnect a node that has been connected to execute a command on click.\n *\n * @param node - The node being disconnected.\n *\n * @returns The same node that was passed in, after it has been disconnected.\n *\n * #### Notes\n * This method is safe to call multiple times and is safe to call on nodes\n * that were never connected.\n *\n * This method can be called on rendered virtual DOM nodes that were populated\n * using the `populateVNodeDataset` method in order to disconnect them from\n * executing their command/argument pair.\n */\n disconnectNode(node) {\n node.removeAttribute(`data-${COMMAND_ATTR}`);\n node.removeAttribute(`data-${ARGS_ATTR}`);\n return node;\n }\n /**\n * Handle the DOM events for the command linker helper class.\n *\n * @param event - The DOM event sent to the class.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the panel's DOM node. It should\n * not be called directly by user code.\n */\n handleEvent(event) {\n switch (event.type) {\n case 'click':\n this._evtClick(event);\n break;\n default:\n return;\n }\n }\n /**\n * Populate the `dataset` attribute within the collection of attributes used\n * to instantiate a virtual DOM node with the values necessary for its\n * rendered DOM node to respond to clicks by executing a command/argument\n * pair.\n *\n * @param command - The command ID to execute upon click.\n *\n * @param args - The arguments with which to invoke the command.\n *\n * @returns A `dataset` collection for use within virtual node attributes.\n *\n * #### Notes\n * The return value can be used on its own as the value for the `dataset`\n * attribute of a virtual element, or it can be added to an existing `dataset`\n * as in the example below.\n *\n * #### Example\n * ```typescript\n * let command = 'some:command-id';\n * let args = { alpha: 'beta' };\n * let anchor = h.a({\n * className: 'some-class',\n * dataset: {\n * foo: '1',\n * bar: '2',\n * ../...linker.populateVNodeDataset(command, args)\n * }\n * }, 'some text');\n * ```\n */\n populateVNodeDataset(command, args) {\n let dataset;\n if (args !== void 0) {\n dataset = { [ARGS_ATTR]: JSON.stringify(args), [COMMAND_ATTR]: command };\n }\n else {\n dataset = { [COMMAND_ATTR]: command };\n }\n return dataset;\n }\n /**\n * The global click handler that deploys commands/argument pairs that are\n * attached to the node being clicked.\n */\n _evtClick(event) {\n let target = event.target;\n while (target && target.parentElement) {\n if (target.hasAttribute(`data-${COMMAND_ATTR}`)) {\n event.preventDefault();\n const command = target.getAttribute(`data-${COMMAND_ATTR}`);\n if (!command) {\n return;\n }\n const argsValue = target.getAttribute(`data-${ARGS_ATTR}`);\n let args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.JSONExt.emptyObject;\n if (argsValue) {\n args = JSON.parse(argsValue);\n }\n void this._commands.execute(command, args);\n return;\n }\n target = target.parentElement;\n }\n }\n}\n//# sourceMappingURL=commandlinker.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/commandlinker.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/commandpalette.js": +/*!******************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/commandpalette.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ModalCommandPalette: () => (/* binding */ ModalCommandPalette)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_1__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n\n/**\n * Class name identifying the input group with search icon.\n */\nconst SEARCH_ICON_GROUP_CLASS = 'jp-SearchIconGroup';\n/**\n * Wrap the command palette in a modal to make it more usable.\n */\nclass ModalCommandPalette extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__.Panel {\n constructor(options) {\n super();\n this.addClass('jp-ModalCommandPalette');\n this.addClass('jp-ThemedContainer');\n this.id = 'modal-command-palette';\n this.palette = options.commandPalette;\n this._commandPalette.commands.commandExecuted.connect(() => {\n if (this.isAttached && this.isVisible) {\n this.hideAndReset();\n }\n });\n // required to properly receive blur and focus events;\n // selection of items with mouse may not work without this.\n this.node.tabIndex = 0;\n }\n get palette() {\n return this._commandPalette;\n }\n set palette(value) {\n this._commandPalette = value;\n if (!this.searchIconGroup) {\n this._commandPalette.inputNode.insertAdjacentElement('afterend', this.createSearchIconGroup());\n }\n this.addWidget(value);\n this.hideAndReset();\n }\n attach() {\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__.Widget.attach(this, document.body);\n }\n detach() {\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__.Widget.detach(this);\n }\n /**\n * Hide the modal command palette and reset its search.\n */\n hideAndReset() {\n this.hide();\n this._commandPalette.inputNode.value = '';\n this._commandPalette.refresh();\n }\n /**\n * Handle incoming events.\n */\n handleEvent(event) {\n switch (event.type) {\n case 'keydown':\n this._evtKeydown(event);\n break;\n case 'blur': {\n // if the focus shifted outside of this DOM element, hide and reset.\n if (\n // focus went away from child element\n this.node.contains(event.target) &&\n // and it did NOT go to another child element but someplace else\n !this.node.contains(event.relatedTarget)) {\n event.stopPropagation();\n this.hideAndReset();\n }\n break;\n }\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n default:\n break;\n }\n }\n /**\n * Find the element with search icon group.\n */\n get searchIconGroup() {\n return this._commandPalette.node.getElementsByClassName(SEARCH_ICON_GROUP_CLASS)[0];\n }\n /**\n * Create element with search icon group.\n */\n createSearchIconGroup() {\n const inputGroup = document.createElement('div');\n inputGroup.classList.add(SEARCH_ICON_GROUP_CLASS);\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.searchIcon.render(inputGroup);\n return inputGroup;\n }\n /**\n * A message handler invoked on an `'after-attach'` message.\n */\n onAfterAttach(msg) {\n this.node.addEventListener('keydown', this, true);\n this.node.addEventListener('contextmenu', this, true);\n }\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n onAfterDetach(msg) {\n this.node.removeEventListener('keydown', this, true);\n this.node.removeEventListener('contextmenu', this, true);\n }\n onBeforeHide(msg) {\n document.removeEventListener('blur', this, true);\n }\n onAfterShow(msg) {\n document.addEventListener('blur', this, true);\n }\n /**\n * A message handler invoked on an `'activate-request'` message.\n */\n onActivateRequest(msg) {\n if (this.isAttached) {\n this.show();\n this._commandPalette.activate();\n }\n }\n /**\n * Handle the `'keydown'` event for the widget.\n */\n _evtKeydown(event) {\n // Check for escape key\n switch (event.keyCode) {\n case 27: // Escape.\n event.stopPropagation();\n event.preventDefault();\n this.hideAndReset();\n break;\n default:\n break;\n }\n }\n}\n//# sourceMappingURL=commandpalette.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/commandpalette.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/dialog.js": +/*!**********************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/dialog.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Dialog: () => (/* binding */ Dialog),\n/* harmony export */ showDialog: () => (/* binding */ showDialog),\n/* harmony export */ showErrorMessage: () => (/* binding */ showErrorMessage)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @lumino/messaging */ \"webpack/sharing/consume/default/@lumino/messaging/@lumino/messaging\");\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_lumino_messaging__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _widgettracker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./widgettracker */ \"../node_modules/@jupyterlab/apputils/lib/widgettracker.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n\n\n/**\n * Create and show a dialog.\n *\n * @param options - The dialog setup options.\n *\n * @returns A promise that resolves with whether the dialog was accepted.\n */\nfunction showDialog(options = {}) {\n const dialog = new Dialog(options);\n return dialog.launch();\n}\n/**\n * Show an error message dialog.\n *\n * @param title - The title of the dialog box.\n *\n * @param error - the error to show in the dialog body (either a string\n * or an object with a string `message` property).\n */\nfunction showErrorMessage(title, error, buttons) {\n const trans = Dialog.translator.load('jupyterlab');\n buttons = buttons !== null && buttons !== void 0 ? buttons : [Dialog.cancelButton({ label: trans.__('Close') })];\n console.warn('Showing error:', error);\n // Cache promises to prevent multiple copies of identical dialogs showing\n // to the user.\n const body = typeof error === 'string' ? error : error.message;\n const key = title + '----' + body;\n const promise = Private.errorMessagePromiseCache.get(key);\n if (promise) {\n return promise;\n }\n else {\n const dialogPromise = showDialog({\n title: title,\n body: body,\n buttons: buttons\n }).then(() => {\n Private.errorMessagePromiseCache.delete(key);\n }, error => {\n // TODO: Use .finally() above when supported\n Private.errorMessagePromiseCache.delete(key);\n throw error;\n });\n Private.errorMessagePromiseCache.set(key, dialogPromise);\n return dialogPromise;\n }\n}\n/**\n * A modal dialog widget.\n */\nclass Dialog extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget {\n /**\n * Create a dialog panel instance.\n *\n * @param options - The dialog setup options.\n */\n constructor(options = {}) {\n const dialogNode = document.createElement('dialog');\n dialogNode.ariaModal = 'true';\n super({ node: dialogNode });\n this._hasValidationErrors = false;\n this._ready = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate();\n this._focusNodeSelector = '';\n this.addClass('jp-Dialog');\n this.addClass('jp-ThemedContainer');\n const normalized = Private.handleOptions(options);\n const renderer = normalized.renderer;\n this._host = normalized.host;\n this._defaultButton = normalized.defaultButton;\n this._buttons = normalized.buttons;\n this._hasClose = normalized.hasClose;\n this._buttonNodes = this._buttons.map(b => renderer.createButtonNode(b));\n this._checkboxNode = null;\n this._lastMouseDownInDialog = false;\n if (normalized.checkbox) {\n const { label = '', caption = '', checked = false, className = '' } = normalized.checkbox;\n this._checkboxNode = renderer.createCheckboxNode({\n label,\n caption: caption !== null && caption !== void 0 ? caption : label,\n checked,\n className\n });\n }\n const layout = (this.layout = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.PanelLayout());\n const content = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Panel();\n content.addClass('jp-Dialog-content');\n if (typeof options.body === 'string') {\n content.addClass('jp-Dialog-content-small');\n dialogNode.ariaLabel = [normalized.title, options.body].join(' ');\n }\n layout.addWidget(content);\n this._body = normalized.body;\n const header = renderer.createHeader(normalized.title, () => this.reject(), options);\n const body = renderer.createBody(normalized.body);\n const footer = renderer.createFooter(this._buttonNodes, this._checkboxNode);\n content.addWidget(header);\n content.addWidget(body);\n content.addWidget(footer);\n this._bodyWidget = body;\n this._primary = this._buttonNodes[this._defaultButton];\n this._focusNodeSelector = options.focusNodeSelector;\n // Add new dialogs to the tracker.\n void Dialog.tracker.add(this);\n }\n /**\n * A promise that resolves when the Dialog first rendering is done.\n */\n get ready() {\n return this._ready.promise;\n }\n /**\n * Dispose of the resources used by the dialog.\n */\n dispose() {\n const promise = this._promise;\n if (promise) {\n this._promise = null;\n promise.reject(void 0);\n _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__.ArrayExt.removeFirstOf(Private.launchQueue, promise.promise);\n }\n super.dispose();\n }\n /**\n * Launch the dialog as a modal window.\n *\n * @returns a promise that resolves with the result of the dialog.\n */\n launch() {\n // Return the existing dialog if already open.\n if (this._promise) {\n return this._promise.promise;\n }\n const promise = (this._promise = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate());\n const promises = Promise.all(Private.launchQueue);\n Private.launchQueue.push(this._promise.promise);\n return promises.then(() => {\n // Do not show Dialog if it was disposed of before it was at the front of the launch queue\n if (!this._promise) {\n return Promise.resolve({\n button: Dialog.cancelButton(),\n isChecked: null,\n value: null\n });\n }\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget.attach(this, this._host);\n return promise.promise;\n });\n }\n /**\n * Resolve the current dialog.\n *\n * @param index - An optional index to the button to resolve.\n *\n * #### Notes\n * Will default to the defaultIndex.\n * Will resolve the current `show()` with the button value.\n * Will be a no-op if the dialog is not shown.\n */\n resolve(index) {\n if (!this._promise) {\n return;\n }\n if (index === undefined) {\n index = this._defaultButton;\n }\n this._resolve(this._buttons[index]);\n }\n /**\n * Reject the current dialog with a default reject value.\n *\n * #### Notes\n * Will be a no-op if the dialog is not shown.\n */\n reject() {\n if (!this._promise) {\n return;\n }\n this._resolve(Dialog.cancelButton());\n }\n /**\n * Handle the DOM events for the directory listing.\n *\n * @param event - The DOM event sent to the widget.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the panel's DOM node. It should\n * not be called directly by user code.\n */\n handleEvent(event) {\n switch (event.type) {\n case 'keydown':\n this._evtKeydown(event);\n break;\n case 'mousedown':\n this._evtMouseDown(event);\n break;\n case 'click':\n this._evtClick(event);\n break;\n case 'input':\n this._evtInput(event);\n break;\n case 'focus':\n this._evtFocus(event);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n default:\n break;\n }\n }\n /**\n * A message handler invoked on an `'after-attach'` message.\n */\n onAfterAttach(msg) {\n const node = this.node;\n node.addEventListener('keydown', this, true);\n node.addEventListener('contextmenu', this, true);\n node.addEventListener('click', this, true);\n document.addEventListener('mousedown', this, true);\n document.addEventListener('focus', this, true);\n document.addEventListener('input', this, true);\n this._first = Private.findFirstFocusable(this.node);\n this._original = document.activeElement;\n const setFocus = () => {\n var _a;\n if (this._focusNodeSelector) {\n const body = this.node.querySelector('.jp-Dialog-body');\n const el = body === null || body === void 0 ? void 0 : body.querySelector(this._focusNodeSelector);\n if (el) {\n this._primary = el;\n }\n }\n (_a = this._primary) === null || _a === void 0 ? void 0 : _a.focus();\n this._ready.resolve();\n };\n if (this._bodyWidget instanceof _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget &&\n this._bodyWidget.renderPromise !== undefined) {\n this._bodyWidget\n .renderPromise.then(() => {\n setFocus();\n })\n .catch(() => {\n console.error(\"Error while loading Dialog's body\");\n });\n }\n else {\n setFocus();\n }\n }\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n onAfterDetach(msg) {\n const node = this.node;\n node.removeEventListener('keydown', this, true);\n node.removeEventListener('contextmenu', this, true);\n node.removeEventListener('click', this, true);\n document.removeEventListener('focus', this, true);\n document.removeEventListener('mousedown', this, true);\n document.removeEventListener('input', this, true);\n this._original.focus();\n }\n /**\n * A message handler invoked on a `'close-request'` message.\n */\n onCloseRequest(msg) {\n if (this._promise) {\n this.reject();\n }\n super.onCloseRequest(msg);\n }\n /**\n * Handle the `'input'` event for dialog's children.\n *\n * @param event - The DOM event sent to the widget\n */\n _evtInput(_event) {\n this._hasValidationErrors = !!this.node.querySelector(':invalid');\n for (let i = 0; i < this._buttons.length; i++) {\n if (this._buttons[i].accept) {\n this._buttonNodes[i].disabled = this._hasValidationErrors;\n }\n }\n }\n /**\n * Handle the `'click'` event for a dialog button.\n *\n * @param event - The DOM event sent to the widget\n */\n _evtClick(event) {\n const content = this.node.getElementsByClassName('jp-Dialog-content')[0];\n if (!content.contains(event.target)) {\n event.stopPropagation();\n event.preventDefault();\n if (this._hasClose && !this._lastMouseDownInDialog) {\n this.reject();\n }\n return;\n }\n for (const buttonNode of this._buttonNodes) {\n if (buttonNode.contains(event.target)) {\n const index = this._buttonNodes.indexOf(buttonNode);\n this.resolve(index);\n }\n }\n }\n /**\n * Handle the `'keydown'` event for the widget.\n *\n * @param event - The DOM event sent to the widget\n */\n _evtKeydown(event) {\n // Check for escape key\n switch (event.keyCode) {\n case 27: // Escape.\n event.stopPropagation();\n event.preventDefault();\n if (this._hasClose) {\n this.reject();\n }\n break;\n case 37: {\n // Left arrow\n const activeEl = document.activeElement;\n if (activeEl instanceof HTMLButtonElement) {\n let idx = this._buttonNodes.indexOf(activeEl) - 1;\n // Handle a left arrows on the first button\n if (idx < 0) {\n idx = this._buttonNodes.length - 1;\n }\n const node = this._buttonNodes[idx];\n event.stopPropagation();\n event.preventDefault();\n node.focus();\n }\n break;\n }\n case 39: {\n // Right arrow\n const activeEl = document.activeElement;\n if (activeEl instanceof HTMLButtonElement) {\n let idx = this._buttonNodes.indexOf(activeEl) + 1;\n // Handle a right arrows on the last button\n if (idx == this._buttons.length) {\n idx = 0;\n }\n const node = this._buttonNodes[idx];\n event.stopPropagation();\n event.preventDefault();\n node.focus();\n }\n break;\n }\n case 9: {\n // Tab.\n // Handle a tab on the last button.\n const node = this._buttonNodes[this._buttons.length - 1];\n if (document.activeElement === node && !event.shiftKey) {\n event.stopPropagation();\n event.preventDefault();\n this._first.focus();\n }\n break;\n }\n case 13: {\n // Enter.\n event.stopPropagation();\n event.preventDefault();\n const activeEl = document.activeElement;\n if (activeEl instanceof HTMLButtonElement) {\n const index = this._buttonNodes.indexOf(activeEl);\n if (index !== -1) {\n this.resolve(index);\n }\n }\n else if (!(activeEl instanceof HTMLTextAreaElement)) {\n const index = this._defaultButton;\n this.resolve(index);\n }\n break;\n }\n default:\n break;\n }\n }\n /**\n * Handle the `'focus'` event for the widget.\n *\n * @param event - The DOM event sent to the widget\n */\n _evtFocus(event) {\n var _a;\n const target = event.target;\n if (!this.node.contains(target)) {\n event.stopPropagation();\n (_a = this._buttonNodes[this._defaultButton]) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }\n /**\n * Handle the `'mousedown'` event for the widget.\n *\n * @param event - The DOM event sent to the widget\n */\n _evtMouseDown(event) {\n const content = this.node.getElementsByClassName('jp-Dialog-content')[0];\n const target = event.target;\n this._lastMouseDownInDialog = content.contains(target);\n }\n /**\n * Resolve a button item.\n */\n _resolve(button) {\n var _a, _b, _c;\n if (this._hasValidationErrors && button.accept) {\n // Do not allow accepting with validation errors\n return;\n }\n // Prevent loopback.\n const promise = this._promise;\n if (!promise) {\n this.dispose();\n return;\n }\n this._promise = null;\n _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__.ArrayExt.removeFirstOf(Private.launchQueue, promise.promise);\n const body = this._body;\n let value = null;\n if (button.accept &&\n body instanceof _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget &&\n typeof body.getValue === 'function') {\n value = body.getValue();\n }\n this.dispose();\n promise.resolve({\n button,\n isChecked: (_c = (_b = (_a = this._checkboxNode) === null || _a === void 0 ? void 0 : _a.querySelector('input')) === null || _b === void 0 ? void 0 : _b.checked) !== null && _c !== void 0 ? _c : null,\n value\n });\n }\n}\n/**\n * The namespace for Dialog class statics.\n */\n(function (Dialog) {\n /**\n * Translator object.\n */\n Dialog.translator = _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n /**\n * Create a button item.\n */\n function createButton(value) {\n value.accept = value.accept !== false;\n const trans = Dialog.translator.load('jupyterlab');\n const defaultLabel = value.accept ? trans.__('Ok') : trans.__('Cancel');\n return {\n ariaLabel: value.ariaLabel || value.label || defaultLabel,\n label: value.label || defaultLabel,\n iconClass: value.iconClass || '',\n iconLabel: value.iconLabel || '',\n caption: value.caption || '',\n className: value.className || '',\n accept: value.accept,\n actions: value.actions || [],\n displayType: value.displayType || 'default'\n };\n }\n Dialog.createButton = createButton;\n /**\n * Create a reject button.\n */\n function cancelButton(options = {}) {\n options.accept = false;\n return createButton(options);\n }\n Dialog.cancelButton = cancelButton;\n /**\n * Create an accept button.\n */\n function okButton(options = {}) {\n options.accept = true;\n return createButton(options);\n }\n Dialog.okButton = okButton;\n /**\n * Create a warn button.\n */\n function warnButton(options = {}) {\n options.displayType = 'warn';\n return createButton(options);\n }\n Dialog.warnButton = warnButton;\n /**\n * Disposes all dialog instances.\n *\n * #### Notes\n * This function should only be used in tests or cases where application state\n * may be discarded.\n */\n function flush() {\n Dialog.tracker.forEach(dialog => {\n dialog.dispose();\n });\n }\n Dialog.flush = flush;\n /**\n * The default implementation of a dialog renderer.\n */\n class Renderer {\n /**\n * Create the header of the dialog.\n *\n * @param title - The title of the dialog.\n *\n * @returns A widget for the dialog header.\n */\n createHeader(title, reject = () => {\n /* empty */\n }, options = {}) {\n let header;\n const handleMouseDown = (event) => {\n // Fire action only when left button is pressed.\n if (event.button === 0) {\n event.preventDefault();\n reject();\n }\n };\n const handleKeyDown = (event) => {\n const { key } = event;\n if (key === 'Enter' || key === ' ') {\n reject();\n }\n };\n if (typeof title === 'string') {\n const trans = Dialog.translator.load('jupyterlab');\n header = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget.create(react__WEBPACK_IMPORTED_MODULE_6__.createElement(react__WEBPACK_IMPORTED_MODULE_6__.Fragment, null,\n title,\n options.hasClose && (react__WEBPACK_IMPORTED_MODULE_6__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Button, { className: \"jp-Dialog-close-button\", onMouseDown: handleMouseDown, onKeyDown: handleKeyDown, title: trans.__('Cancel'), minimal: true },\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.LabIcon.resolveReact, { icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.closeIcon, tag: \"span\" })))));\n }\n else {\n header = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget.create(title);\n }\n header.addClass('jp-Dialog-header');\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Styling.styleNode(header.node);\n return header;\n }\n /**\n * Create the body of the dialog.\n *\n * @param value - The input value for the body.\n *\n * @returns A widget for the body.\n */\n createBody(value) {\n const styleReactWidget = (widget) => {\n if (widget.renderPromise !== undefined) {\n widget.renderPromise\n .then(() => {\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Styling.styleNode(widget.node);\n })\n .catch(() => {\n console.error(\"Error while loading Dialog's body\");\n });\n }\n else {\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Styling.styleNode(widget.node);\n }\n };\n let body;\n if (typeof value === 'string') {\n body = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget({ node: document.createElement('span') });\n body.node.textContent = value;\n }\n else if (value instanceof _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget) {\n body = value;\n if (body instanceof _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget) {\n styleReactWidget(body);\n }\n else {\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Styling.styleNode(body.node);\n }\n }\n else {\n body = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget.create(value);\n // Immediately update the body even though it has not yet attached in\n // order to trigger a render of the DOM nodes from the React element.\n _lumino_messaging__WEBPACK_IMPORTED_MODULE_4__.MessageLoop.sendMessage(body, _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget.Msg.UpdateRequest);\n styleReactWidget(body);\n }\n body.addClass('jp-Dialog-body');\n return body;\n }\n /**\n * Create the footer of the dialog.\n *\n * @param buttons - The buttons nodes to add to the footer.\n * @param checkbox - The checkbox node to add to the footer.\n *\n * @returns A widget for the footer.\n */\n createFooter(buttons, checkbox) {\n const footer = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget();\n footer.addClass('jp-Dialog-footer');\n if (checkbox) {\n footer.node.appendChild(checkbox);\n footer.node.insertAdjacentHTML('beforeend', '
');\n }\n const footerButton = document.createElement('div');\n for (const button of buttons) {\n footerButton.appendChild(button);\n }\n footer.node.appendChild(footerButton);\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Styling.styleNode(footer.node);\n return footer;\n }\n /**\n * Create a button node for the dialog.\n *\n * @param button - The button data.\n *\n * @returns A node for the button.\n */\n createButtonNode(button) {\n const e = document.createElement('button');\n e.className = this.createItemClass(button);\n e.appendChild(this.renderIcon(button));\n e.appendChild(this.renderLabel(button));\n return e;\n }\n /**\n * Create a checkbox node for the dialog.\n *\n * @param checkbox - The checkbox data.\n *\n * @returns A node for the checkbox.\n */\n createCheckboxNode(checkbox) {\n const e = document.createElement('label');\n e.className = 'jp-Dialog-checkbox';\n if (checkbox.className) {\n e.classList.add(checkbox.className);\n }\n e.title = checkbox.caption;\n e.textContent = checkbox.label;\n const input = document.createElement('input');\n input.type = 'checkbox';\n input.checked = !!checkbox.checked;\n e.insertAdjacentElement('afterbegin', input);\n return e;\n }\n /**\n * Create the class name for the button.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the button.\n */\n createItemClass(data) {\n // Setup the initial class name.\n let name = 'jp-Dialog-button';\n // Add the other state classes.\n if (data.accept) {\n name += ' jp-mod-accept';\n }\n else {\n name += ' jp-mod-reject';\n }\n if (data.displayType === 'warn') {\n name += ' jp-mod-warn';\n }\n // Add the extra class.\n const extra = data.className;\n if (extra) {\n name += ` ${extra}`;\n }\n // Return the complete class name.\n return name;\n }\n /**\n * Render an icon element for a dialog item.\n *\n * @param data - The data to use for rendering the icon.\n *\n * @returns An HTML element representing the icon.\n */\n renderIcon(data) {\n const e = document.createElement('div');\n e.className = this.createIconClass(data);\n e.appendChild(document.createTextNode(data.iconLabel));\n return e;\n }\n /**\n * Create the class name for the button icon.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the item icon.\n */\n createIconClass(data) {\n const name = 'jp-Dialog-buttonIcon';\n const extra = data.iconClass;\n return extra ? `${name} ${extra}` : name;\n }\n /**\n * Render the label element for a button.\n *\n * @param data - The data to use for rendering the label.\n *\n * @returns An HTML element representing the item label.\n */\n renderLabel(data) {\n const e = document.createElement('div');\n e.className = 'jp-Dialog-buttonLabel';\n e.title = data.caption;\n e.ariaLabel = data.ariaLabel;\n e.appendChild(document.createTextNode(data.label));\n return e;\n }\n }\n Dialog.Renderer = Renderer;\n /**\n * The default renderer instance.\n */\n Dialog.defaultRenderer = new Renderer();\n /**\n * The dialog widget tracker.\n */\n Dialog.tracker = new _widgettracker__WEBPACK_IMPORTED_MODULE_7__.WidgetTracker({\n namespace: '@jupyterlab/apputils:Dialog'\n });\n})(Dialog || (Dialog = {}));\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n /**\n * The queue for launching dialogs.\n */\n Private.launchQueue = [];\n Private.errorMessagePromiseCache = new Map();\n /**\n * Handle the input options for a dialog.\n *\n * @param options - The input options.\n *\n * @returns A new options object with defaults applied.\n */\n function handleOptions(options = {}) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const buttons = (_a = options.buttons) !== null && _a !== void 0 ? _a : [\n Dialog.cancelButton(),\n Dialog.okButton()\n ];\n return {\n title: (_b = options.title) !== null && _b !== void 0 ? _b : '',\n body: (_c = options.body) !== null && _c !== void 0 ? _c : '',\n host: (_d = options.host) !== null && _d !== void 0 ? _d : document.body,\n checkbox: (_e = options.checkbox) !== null && _e !== void 0 ? _e : null,\n buttons,\n defaultButton: (_f = options.defaultButton) !== null && _f !== void 0 ? _f : buttons.length - 1,\n renderer: (_g = options.renderer) !== null && _g !== void 0 ? _g : Dialog.defaultRenderer,\n focusNodeSelector: (_h = options.focusNodeSelector) !== null && _h !== void 0 ? _h : '',\n hasClose: (_j = options.hasClose) !== null && _j !== void 0 ? _j : true\n };\n }\n Private.handleOptions = handleOptions;\n /**\n * Find the first focusable item in the dialog.\n */\n function findFirstFocusable(node) {\n const candidateSelectors = [\n 'input',\n 'select',\n 'a[href]',\n 'textarea',\n 'button',\n '[tabindex]'\n ].join(',');\n return node.querySelectorAll(candidateSelectors)[0];\n }\n Private.findFirstFocusable = findFirstFocusable;\n})(Private || (Private = {}));\n//# sourceMappingURL=dialog.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/dialog.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/domutils.js": +/*!************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/domutils.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DOMUtils: () => (/* binding */ DOMUtils)\n/* harmony export */ });\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_domutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/domutils */ \"webpack/sharing/consume/default/@lumino/domutils/@lumino/domutils\");\n/* harmony import */ var _lumino_domutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_domutils__WEBPACK_IMPORTED_MODULE_2__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n/**\n * The namespace for DOM utilities.\n */\nvar DOMUtils;\n(function (DOMUtils) {\n /**\n * Get the index of the node at a client position, or `-1`.\n */\n function hitTestNodes(nodes, x, y) {\n return _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__.ArrayExt.findFirstIndex(nodes, node => {\n return _lumino_domutils__WEBPACK_IMPORTED_MODULE_2__.ElementExt.hitTest(node, x, y);\n });\n }\n DOMUtils.hitTestNodes = hitTestNodes;\n /**\n * Find the first element matching a class name.\n * Only use this function when the element existence is guaranteed.\n */\n function findElement(parent, className) {\n return parent.querySelector(`.${className}`);\n }\n DOMUtils.findElement = findElement;\n /**\n * Find the first element matching a class name.\n */\n function findElements(parent, className) {\n return parent.getElementsByClassName(className);\n }\n DOMUtils.findElements = findElements;\n /**\n * Create a DOM id with prefix \"id-\" to solve bug for UUIDs beginning with numbers.\n */\n function createDomID() {\n return `id-${_lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.UUID.uuid4()}`;\n }\n DOMUtils.createDomID = createDomID;\n /**\n * Check whether the active element descendant from given parent is editable.\n * When checking active elements it includes elements in the open shadow DOM.\n */\n function hasActiveEditableElement(parent, root = document) {\n const element = root.activeElement;\n return !!(element &&\n parent.contains(element) &&\n (element.matches(':read-write') ||\n (element.shadowRoot &&\n hasActiveEditableElement(element.shadowRoot, element.shadowRoot))));\n }\n DOMUtils.hasActiveEditableElement = hasActiveEditableElement;\n})(DOMUtils || (DOMUtils = {}));\n//# sourceMappingURL=domutils.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/domutils.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/index.js": +/*!*********************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/index.js ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Clipboard: () => (/* reexport safe */ _clipboard__WEBPACK_IMPORTED_MODULE_1__.Clipboard),\n/* harmony export */ Collapse: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Collapser),\n/* harmony export */ CommandLinker: () => (/* reexport safe */ _commandlinker__WEBPACK_IMPORTED_MODULE_2__.CommandLinker),\n/* harmony export */ CommandToolbarButton: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.CommandToolbarButton),\n/* harmony export */ CommandToolbarButtonComponent: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.CommandToolbarButtonComponent),\n/* harmony export */ DOMUtils: () => (/* reexport safe */ _domutils__WEBPACK_IMPORTED_MODULE_5__.DOMUtils),\n/* harmony export */ Dialog: () => (/* reexport safe */ _dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog),\n/* harmony export */ HoverBox: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.HoverBox),\n/* harmony export */ ICommandPalette: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_18__.ICommandPalette),\n/* harmony export */ IFrame: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.IFrame),\n/* harmony export */ IKernelStatusModel: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_18__.IKernelStatusModel),\n/* harmony export */ ILicensesClient: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_18__.ILicensesClient),\n/* harmony export */ ISanitizer: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_18__.ISanitizer),\n/* harmony export */ ISessionContextDialogs: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_18__.ISessionContextDialogs),\n/* harmony export */ ISplashScreen: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_18__.ISplashScreen),\n/* harmony export */ IThemeManager: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_18__.IThemeManager),\n/* harmony export */ IToolbarWidgetRegistry: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_18__.IToolbarWidgetRegistry),\n/* harmony export */ IWindowResolver: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_18__.IWindowResolver),\n/* harmony export */ InputDialog: () => (/* reexport safe */ _inputdialog__WEBPACK_IMPORTED_MODULE_6__.InputDialog),\n/* harmony export */ KernelStatus: () => (/* reexport safe */ _kernelstatuses__WEBPACK_IMPORTED_MODULE_7__.KernelStatus),\n/* harmony export */ Licenses: () => (/* reexport safe */ _licenses__WEBPACK_IMPORTED_MODULE_8__.Licenses),\n/* harmony export */ MainAreaWidget: () => (/* reexport safe */ _mainareawidget__WEBPACK_IMPORTED_MODULE_9__.MainAreaWidget),\n/* harmony export */ MenuFactory: () => (/* reexport safe */ _menufactory__WEBPACK_IMPORTED_MODULE_10__.MenuFactory),\n/* harmony export */ ModalCommandPalette: () => (/* reexport safe */ _commandpalette__WEBPACK_IMPORTED_MODULE_3__.ModalCommandPalette),\n/* harmony export */ Notification: () => (/* reexport safe */ _notification__WEBPACK_IMPORTED_MODULE_11__.Notification),\n/* harmony export */ NotificationManager: () => (/* reexport safe */ _notification__WEBPACK_IMPORTED_MODULE_11__.NotificationManager),\n/* harmony export */ Printing: () => (/* reexport safe */ _printing__WEBPACK_IMPORTED_MODULE_12__.Printing),\n/* harmony export */ ReactWidget: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.ReactWidget),\n/* harmony export */ RunningSessions: () => (/* reexport safe */ _runningSessions__WEBPACK_IMPORTED_MODULE_13__.RunningSessions),\n/* harmony export */ Sanitizer: () => (/* reexport safe */ _sanitizer__WEBPACK_IMPORTED_MODULE_14__.Sanitizer),\n/* harmony export */ SemanticCommand: () => (/* reexport safe */ _semanticCommand__WEBPACK_IMPORTED_MODULE_15__.SemanticCommand),\n/* harmony export */ SessionContext: () => (/* reexport safe */ _sessioncontext__WEBPACK_IMPORTED_MODULE_16__.SessionContext),\n/* harmony export */ SessionContextDialogs: () => (/* reexport safe */ _sessioncontext__WEBPACK_IMPORTED_MODULE_16__.SessionContextDialogs),\n/* harmony export */ Spinner: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Spinner),\n/* harmony export */ Styling: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Styling),\n/* harmony export */ ThemeManager: () => (/* reexport safe */ _thememanager__WEBPACK_IMPORTED_MODULE_17__.ThemeManager),\n/* harmony export */ Toolbar: () => (/* binding */ Toolbar),\n/* harmony export */ ToolbarButton: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.ToolbarButton),\n/* harmony export */ ToolbarButtonComponent: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.ToolbarButtonComponent),\n/* harmony export */ ToolbarWidgetRegistry: () => (/* reexport safe */ _toolbar__WEBPACK_IMPORTED_MODULE_19__.ToolbarWidgetRegistry),\n/* harmony export */ UseSignal: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.UseSignal),\n/* harmony export */ VDomModel: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.VDomModel),\n/* harmony export */ VDomRenderer: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.VDomRenderer),\n/* harmony export */ WidgetTracker: () => (/* reexport safe */ _widgettracker__WEBPACK_IMPORTED_MODULE_21__.WidgetTracker),\n/* harmony export */ WindowResolver: () => (/* reexport safe */ _windowresolver__WEBPACK_IMPORTED_MODULE_22__.WindowResolver),\n/* harmony export */ addCommandToolbarButtonClass: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.addCommandToolbarButtonClass),\n/* harmony export */ addToolbarButtonClass: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.addToolbarButtonClass),\n/* harmony export */ createDefaultFactory: () => (/* reexport safe */ _toolbar__WEBPACK_IMPORTED_MODULE_19__.createDefaultFactory),\n/* harmony export */ createToolbarFactory: () => (/* reexport safe */ _toolbar__WEBPACK_IMPORTED_MODULE_20__.createToolbarFactory),\n/* harmony export */ setToolbar: () => (/* reexport safe */ _toolbar__WEBPACK_IMPORTED_MODULE_20__.setToolbar),\n/* harmony export */ showDialog: () => (/* reexport safe */ _dialog__WEBPACK_IMPORTED_MODULE_4__.showDialog),\n/* harmony export */ showErrorMessage: () => (/* reexport safe */ _dialog__WEBPACK_IMPORTED_MODULE_4__.showErrorMessage),\n/* harmony export */ translateKernelStatuses: () => (/* reexport safe */ _kernelstatuses__WEBPACK_IMPORTED_MODULE_7__.translateKernelStatuses)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _toolbar__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./toolbar */ \"../node_modules/@jupyterlab/apputils/lib/toolbar/widget.js\");\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./clipboard */ \"../node_modules/@jupyterlab/apputils/lib/clipboard.js\");\n/* harmony import */ var _commandlinker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./commandlinker */ \"../node_modules/@jupyterlab/apputils/lib/commandlinker.js\");\n/* harmony import */ var _commandpalette__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./commandpalette */ \"../node_modules/@jupyterlab/apputils/lib/commandpalette.js\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dialog */ \"../node_modules/@jupyterlab/apputils/lib/dialog.js\");\n/* harmony import */ var _domutils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./domutils */ \"../node_modules/@jupyterlab/apputils/lib/domutils.js\");\n/* harmony import */ var _inputdialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./inputdialog */ \"../node_modules/@jupyterlab/apputils/lib/inputdialog.js\");\n/* harmony import */ var _kernelstatuses__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./kernelstatuses */ \"../node_modules/@jupyterlab/apputils/lib/kernelstatuses.js\");\n/* harmony import */ var _licenses__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./licenses */ \"../node_modules/@jupyterlab/apputils/lib/licenses.js\");\n/* harmony import */ var _mainareawidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./mainareawidget */ \"../node_modules/@jupyterlab/apputils/lib/mainareawidget.js\");\n/* harmony import */ var _menufactory__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./menufactory */ \"../node_modules/@jupyterlab/apputils/lib/menufactory.js\");\n/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./notification */ \"../node_modules/@jupyterlab/apputils/lib/notification.js\");\n/* harmony import */ var _printing__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./printing */ \"../node_modules/@jupyterlab/apputils/lib/printing.js\");\n/* harmony import */ var _runningSessions__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./runningSessions */ \"../node_modules/@jupyterlab/apputils/lib/runningSessions.js\");\n/* harmony import */ var _sanitizer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./sanitizer */ \"../node_modules/@jupyterlab/apputils/lib/sanitizer.js\");\n/* harmony import */ var _semanticCommand__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./semanticCommand */ \"../node_modules/@jupyterlab/apputils/lib/semanticCommand.js\");\n/* harmony import */ var _sessioncontext__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./sessioncontext */ \"../node_modules/@jupyterlab/apputils/lib/sessioncontext.js\");\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./thememanager */ \"../node_modules/@jupyterlab/apputils/lib/thememanager.js\");\n/* harmony import */ var _tokens__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./tokens */ \"../node_modules/@jupyterlab/apputils/lib/tokens.js\");\n/* harmony import */ var _toolbar__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./toolbar */ \"../node_modules/@jupyterlab/apputils/lib/toolbar/registry.js\");\n/* harmony import */ var _toolbar__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./toolbar */ \"../node_modules/@jupyterlab/apputils/lib/toolbar/factory.js\");\n/* harmony import */ var _widgettracker__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./widgettracker */ \"../node_modules/@jupyterlab/apputils/lib/widgettracker.js\");\n/* harmony import */ var _windowresolver__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./windowresolver */ \"../node_modules/@jupyterlab/apputils/lib/windowresolver.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/**\n * @packageDocumentation\n * @module apputils\n */\n\n\n/**\n * @deprecated since v4\n * These widgets are now in @jupyterlab/ui-components\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Merge Toolbar namespace to preserve API\n/**\n * @deprecated since v4\n * This class is in @jupyterlab/ui-components\n */\nclass Toolbar extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Toolbar {\n}\n(function (Toolbar) {\n Toolbar.createInterruptButton = _toolbar__WEBPACK_IMPORTED_MODULE_23__.Toolbar.createInterruptButton;\n Toolbar.createKernelNameItem = _toolbar__WEBPACK_IMPORTED_MODULE_23__.Toolbar.createKernelNameItem;\n Toolbar.createKernelStatusItem = _toolbar__WEBPACK_IMPORTED_MODULE_23__.Toolbar.createKernelStatusItem;\n Toolbar.createRestartButton = _toolbar__WEBPACK_IMPORTED_MODULE_23__.Toolbar.createRestartButton;\n /**\n * @deprecated since v4\n * This helper function is in @jupyterlab/ui-components\n */\n Toolbar.createSpacerItem = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Toolbar.createSpacerItem;\n})(Toolbar || (Toolbar = {}));\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/index.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/inputdialog.js": +/*!***************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/inputdialog.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InputDialog: () => (/* binding */ InputDialog)\n/* harmony export */ });\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dialog */ \"../node_modules/@jupyterlab/apputils/lib/dialog.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\nconst INPUT_DIALOG_CLASS = 'jp-Input-Dialog';\nconst INPUT_BOOLEAN_DIALOG_CLASS = 'jp-Input-Boolean-Dialog';\n/**\n * Namespace for input dialogs\n */\nvar InputDialog;\n(function (InputDialog) {\n /**\n * Create and show a input dialog for a boolean.\n *\n * @param options - The dialog setup options.\n *\n * @returns A promise that resolves with whether the dialog was accepted\n */\n function getBoolean(options) {\n return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n ...options,\n body: new InputBooleanDialog(options),\n buttons: [\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n ],\n focusNodeSelector: 'input'\n });\n }\n InputDialog.getBoolean = getBoolean;\n /**\n * Create and show a input dialog for a number.\n *\n * @param options - The dialog setup options.\n *\n * @returns A promise that resolves with whether the dialog was accepted\n */\n function getNumber(options) {\n return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n ...options,\n body: new InputNumberDialog(options),\n buttons: [\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n ],\n focusNodeSelector: 'input'\n });\n }\n InputDialog.getNumber = getNumber;\n /**\n * Create and show a input dialog for a choice.\n *\n * @param options - The dialog setup options.\n *\n * @returns A promise that resolves with whether the dialog was accepted\n */\n function getItem(options) {\n return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n ...options,\n body: new InputItemsDialog(options),\n buttons: [\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n ],\n focusNodeSelector: options.editable ? 'input' : 'select'\n });\n }\n InputDialog.getItem = getItem;\n /**\n * Create and show a input dialog for a choice.\n *\n * @param options - The dialog setup options.\n *\n * @returns A promise that resolves with whether the dialog was accepted\n */\n function getMultipleItems(options) {\n return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n ...options,\n body: new InputMultipleItemsDialog(options),\n buttons: [\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n ]\n });\n }\n InputDialog.getMultipleItems = getMultipleItems;\n /**\n * Create and show a input dialog for a text.\n *\n * @param options - The dialog setup options.\n *\n * @returns A promise that resolves with whether the dialog was accepted\n */\n function getText(options) {\n return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n ...options,\n body: new InputTextDialog(options),\n buttons: [\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n ],\n focusNodeSelector: 'input'\n });\n }\n InputDialog.getText = getText;\n /**\n * Create and show a input dialog for a password.\n *\n * @param options - The dialog setup options.\n *\n * @returns A promise that resolves with whether the dialog was accepted\n */\n function getPassword(options) {\n return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n ...options,\n body: new InputPasswordDialog(options),\n buttons: [\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n ],\n focusNodeSelector: 'input'\n });\n }\n InputDialog.getPassword = getPassword;\n})(InputDialog || (InputDialog = {}));\n/**\n * Base widget for input dialog body\n */\nclass InputDialogBase extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_0__.Widget {\n /**\n * InputDialog constructor\n *\n * @param label Input field label\n */\n constructor(options) {\n super();\n this.addClass(INPUT_DIALOG_CLASS);\n this._input = document.createElement('input');\n this._input.classList.add('jp-mod-styled');\n this._input.id = 'jp-dialog-input-id';\n if (options.label !== undefined) {\n const labelElement = document.createElement('label');\n labelElement.textContent = options.label;\n labelElement.htmlFor = this._input.id;\n // Initialize the node\n this.node.appendChild(labelElement);\n }\n const wrapper = document.createElement('div');\n wrapper.className = 'jp-InputDialog-inputWrapper';\n if (options.prefix) {\n const prefix = document.createElement('span');\n prefix.className = 'jp-InputDialog-inputPrefix';\n prefix.textContent = options.prefix;\n // Both US WDS (https://designsystem.digital.gov/components/input-prefix-suffix/)\n // and UK DS (https://design-system.service.gov.uk/components/text-input/) recommend\n // hiding prefixes and suffixes from screen readers.\n prefix.ariaHidden = 'true';\n wrapper.appendChild(prefix);\n }\n wrapper.appendChild(this._input);\n if (options.suffix) {\n const suffix = document.createElement('span');\n suffix.className = 'jp-InputDialog-inputSuffix';\n suffix.textContent = options.suffix;\n suffix.ariaHidden = 'true';\n wrapper.appendChild(suffix);\n }\n this.node.appendChild(wrapper);\n }\n}\n/**\n * Widget body for input boolean dialog\n */\nclass InputBooleanDialog extends InputDialogBase {\n /**\n * InputBooleanDialog constructor\n *\n * @param options Constructor options\n */\n constructor(options) {\n super(options);\n this.addClass(INPUT_BOOLEAN_DIALOG_CLASS);\n this._input.type = 'checkbox';\n this._input.checked = options.value ? true : false;\n }\n /**\n * Get the text specified by the user\n */\n getValue() {\n return this._input.checked;\n }\n}\n/**\n * Widget body for input number dialog\n */\nclass InputNumberDialog extends InputDialogBase {\n /**\n * InputNumberDialog constructor\n *\n * @param options Constructor options\n */\n constructor(options) {\n super(options);\n this._input.type = 'number';\n this._input.value = options.value ? options.value.toString() : '0';\n }\n /**\n * Get the number specified by the user.\n */\n getValue() {\n if (this._input.value) {\n return Number(this._input.value);\n }\n else {\n return Number.NaN;\n }\n }\n}\n/**\n * Base widget body for input text/password/email dialog\n */\nclass InputDialogTextBase extends InputDialogBase {\n /**\n * InputDialogTextBase constructor\n *\n * @param options Constructor options\n */\n constructor(options) {\n super(options);\n this._input.value = options.text ? options.text : '';\n if (options.placeholder) {\n this._input.placeholder = options.placeholder;\n }\n if (options.pattern) {\n this._input.pattern = options.pattern;\n }\n if (options.required) {\n this._input.required = options.required;\n }\n }\n /**\n * Get the text specified by the user\n */\n getValue() {\n return this._input.value;\n }\n}\n/**\n * Widget body for input text dialog\n */\nclass InputTextDialog extends InputDialogTextBase {\n /**\n * InputTextDialog constructor\n *\n * @param options Constructor options\n */\n constructor(options) {\n var _a;\n super(options);\n this._input.type = 'text';\n this._initialSelectionRange = Math.min(this._input.value.length, Math.max(0, (_a = options.selectionRange) !== null && _a !== void 0 ? _a : this._input.value.length));\n }\n /**\n * A message handler invoked on an `'after-attach'` message.\n */\n onAfterAttach(msg) {\n super.onAfterAttach(msg);\n if (this._initialSelectionRange > 0 && this._input.value) {\n this._input.setSelectionRange(0, this._initialSelectionRange);\n }\n }\n}\n/**\n * Widget body for input password dialog\n */\nclass InputPasswordDialog extends InputDialogTextBase {\n /**\n * InputPasswordDialog constructor\n *\n * @param options Constructor options\n */\n constructor(options) {\n super(options);\n this._input.type = 'password';\n }\n /**\n * A message handler invoked on an `'after-attach'` message.\n */\n onAfterAttach(msg) {\n super.onAfterAttach(msg);\n if (this._input.value) {\n this._input.select();\n }\n }\n}\n/**\n * Widget body for input list dialog\n */\nclass InputItemsDialog extends InputDialogBase {\n /**\n * InputItemsDialog constructor\n *\n * @param options Constructor options\n */\n constructor(options) {\n super(options);\n this._editable = options.editable || false;\n let current = options.current || 0;\n let defaultIndex;\n if (typeof current === 'number') {\n defaultIndex = Math.max(0, Math.min(current, options.items.length - 1));\n current = '';\n }\n this._list = document.createElement('select');\n options.items.forEach((item, index) => {\n const option = document.createElement('option');\n if (index === defaultIndex) {\n option.selected = true;\n current = item;\n }\n option.value = item;\n option.textContent = item;\n this._list.appendChild(option);\n });\n if (options.editable) {\n /* Use of list and datalist */\n const data = document.createElement('datalist');\n data.id = 'input-dialog-items';\n data.appendChild(this._list);\n this._input.type = 'list';\n this._input.value = current;\n this._input.setAttribute('list', data.id);\n if (options.placeholder) {\n this._input.placeholder = options.placeholder;\n }\n this.node.appendChild(data);\n }\n else {\n /* Use select directly */\n this._input.parentElement.replaceChild(this._list, this._input);\n }\n }\n /**\n * Get the user choice\n */\n getValue() {\n if (this._editable) {\n return this._input.value;\n }\n else {\n return this._list.value;\n }\n }\n}\n/**\n * Widget body for input list dialog\n */\nclass InputMultipleItemsDialog extends InputDialogBase {\n /**\n * InputMultipleItemsDialog constructor\n *\n * @param options Constructor options\n */\n constructor(options) {\n super(options);\n let defaults = options.defaults || [];\n this._list = document.createElement('select');\n this._list.setAttribute('multiple', '');\n options.items.forEach(item => {\n const option = document.createElement('option');\n option.value = item;\n option.textContent = item;\n this._list.appendChild(option);\n });\n // use the select\n this._input.remove();\n this.node.appendChild(this._list);\n // select the current ones\n const htmlOptions = this._list.options;\n for (let i = 0; i < htmlOptions.length; i++) {\n const option = htmlOptions[i];\n if (defaults.includes(option.value)) {\n option.selected = true;\n }\n else {\n option.selected = false;\n }\n }\n }\n /**\n * Get the user choices\n */\n getValue() {\n let result = [];\n for (let opt of this._list.options) {\n if (opt.selected && !opt.classList.contains('hidden')) {\n result.push(opt.value || opt.text);\n }\n }\n return result;\n }\n}\n//# sourceMappingURL=inputdialog.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/inputdialog.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/kernelstatuses.js": +/*!******************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/kernelstatuses.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ KernelStatus: () => (/* binding */ KernelStatus),\n/* harmony export */ translateKernelStatuses: () => (/* binding */ translateKernelStatuses)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/statusbar */ \"webpack/sharing/consume/default/@jupyterlab/statusbar/@jupyterlab/statusbar\");\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n/**\n * Helper function to translate kernel statuses mapping by using\n * input translator.\n *\n * @param translator - Language translator.\n * @return The translated kernel status mapping.\n */\nfunction translateKernelStatuses(translator) {\n translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n const trans = translator.load('jupyterlab');\n const translated = {\n unknown: trans.__('Unknown'),\n starting: trans.__('Starting'),\n idle: trans.__('Idle'),\n busy: trans.__('Busy'),\n terminating: trans.__('Terminating'),\n restarting: trans.__('Restarting'),\n autorestarting: trans.__('Autorestarting'),\n dead: trans.__('Dead'),\n connected: trans.__('Connected'),\n connecting: trans.__('Connecting'),\n disconnected: trans.__('Disconnected'),\n initializing: trans.__('Initializing'),\n '': ''\n };\n return translated;\n}\n/**\n * A pure functional component for rendering kernel status.\n */\nfunction KernelStatusComponent(props) {\n const translator = props.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n const trans = translator.load('jupyterlab');\n let statusText = '';\n if (props.status) {\n statusText = ` | ${props.status}`;\n }\n return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_0__.TextItem, { onClick: props.handleClick, onKeyDown: props.handleKeyDown, source: `${props.kernelName}${statusText}`, title: trans.__('Change kernel for %1', props.activityName), tabIndex: 0 }));\n}\n/**\n * A VDomRenderer widget for displaying the status of a kernel.\n */\nclass KernelStatus extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.VDomRenderer {\n /**\n * Construct the kernel status widget.\n */\n constructor(opts, translator) {\n super(new KernelStatus.Model(translator));\n this.translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n this._handleClick = opts.onClick;\n this._handleKeyDown = opts.onKeyDown;\n this.addClass('jp-mod-highlighted');\n }\n /**\n * Render the kernel status item.\n */\n render() {\n if (this.model === null) {\n return null;\n }\n else {\n return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(KernelStatusComponent, { status: this.model.status, kernelName: this.model.kernelName, activityName: this.model.activityName, handleClick: this._handleClick, handleKeyDown: this._handleKeyDown, translator: this.translator }));\n }\n }\n}\n/**\n * A namespace for KernelStatus statics.\n */\n(function (KernelStatus) {\n /**\n * A VDomModel for the kernel status indicator.\n */\n class Model extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.VDomModel {\n constructor(translator) {\n super();\n this._activityName = '';\n this._kernelName = '';\n this._kernelStatus = '';\n this._sessionContext = null;\n translator = translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n this._trans = translator.load('jupyterlab');\n this._statusNames = translateKernelStatuses(translator);\n }\n /**\n * The name of the kernel.\n */\n get kernelName() {\n return this._kernelName;\n }\n /**\n * The current status of the kernel.\n */\n get status() {\n return this._kernelStatus\n ? this._statusNames[this._kernelStatus]\n : undefined;\n }\n /**\n * A display name for the activity.\n */\n get activityName() {\n return this._activityName;\n }\n set activityName(val) {\n const oldVal = this._activityName;\n if (oldVal === val) {\n return;\n }\n this._activityName = val;\n this.stateChanged.emit();\n }\n /**\n * The current client session associated with the kernel status indicator.\n */\n get sessionContext() {\n return this._sessionContext;\n }\n set sessionContext(sessionContext) {\n var _a, _b, _c, _d;\n (_a = this._sessionContext) === null || _a === void 0 ? void 0 : _a.statusChanged.disconnect(this._onKernelStatusChanged, this);\n (_b = this._sessionContext) === null || _b === void 0 ? void 0 : _b.connectionStatusChanged.disconnect(this._onKernelStatusChanged, this);\n (_c = this._sessionContext) === null || _c === void 0 ? void 0 : _c.kernelChanged.disconnect(this._onKernelChanged, this);\n const oldState = this._getAllState();\n this._sessionContext = sessionContext;\n this._kernelStatus = sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.kernelDisplayStatus;\n this._kernelName =\n (_d = sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.kernelDisplayName) !== null && _d !== void 0 ? _d : this._trans.__('No Kernel');\n sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.statusChanged.connect(this._onKernelStatusChanged, this);\n sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.connectionStatusChanged.connect(this._onKernelStatusChanged, this);\n sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.kernelChanged.connect(this._onKernelChanged, this);\n this._triggerChange(oldState, this._getAllState());\n }\n /**\n * React to changes to the kernel status.\n */\n _onKernelStatusChanged() {\n var _a;\n this._kernelStatus = (_a = this._sessionContext) === null || _a === void 0 ? void 0 : _a.kernelDisplayStatus;\n this.stateChanged.emit(void 0);\n }\n /**\n * React to changes in the kernel.\n */\n _onKernelChanged(_sessionContext, change) {\n var _a;\n const oldState = this._getAllState();\n // sync setting of status and display name\n this._kernelStatus = (_a = this._sessionContext) === null || _a === void 0 ? void 0 : _a.kernelDisplayStatus;\n this._kernelName = _sessionContext.kernelDisplayName;\n this._triggerChange(oldState, this._getAllState());\n }\n _getAllState() {\n return [this._kernelName, this._kernelStatus, this._activityName];\n }\n _triggerChange(oldState, newState) {\n if (_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepEqual(oldState, newState)) {\n this.stateChanged.emit(void 0);\n }\n }\n }\n KernelStatus.Model = Model;\n})(KernelStatus || (KernelStatus = {}));\n//# sourceMappingURL=kernelstatuses.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/kernelstatuses.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/licenses.js": +/*!************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/licenses.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Licenses: () => (/* binding */ Licenses)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/services */ \"webpack/sharing/consume/default/@jupyterlab/services/@jupyterlab/services\");\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _lumino_virtualdom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @lumino/virtualdom */ \"webpack/sharing/consume/default/@lumino/virtualdom/@lumino/virtualdom\");\n/* harmony import */ var _lumino_virtualdom__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_lumino_virtualdom__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n\nconst FILTER_SECTION_TITLE_CLASS = 'jp-Licenses-Filters-title';\n/**\n * A license viewer\n */\nclass Licenses extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.SplitPanel {\n constructor(options) {\n super();\n this.addClass('jp-Licenses');\n this.model = options.model;\n this.initLeftPanel();\n this.initFilters();\n this.initBundles();\n this.initGrid();\n this.initLicenseText();\n this.setRelativeSizes([1, 2, 3]);\n void this.model.initLicenses().then(() => this._updateBundles());\n this.model.trackerDataChanged.connect(() => {\n this.title.label = this.model.title;\n });\n }\n /**\n * Handle disposing of the widget\n */\n dispose() {\n if (this.isDisposed) {\n return;\n }\n this._bundles.currentChanged.disconnect(this.onBundleSelected, this);\n this.model.dispose();\n super.dispose();\n }\n /**\n * Initialize the left area for filters and bundles\n */\n initLeftPanel() {\n this._leftPanel = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Panel();\n this._leftPanel.addClass('jp-Licenses-FormArea');\n this.addWidget(this._leftPanel);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.SplitPanel.setStretch(this._leftPanel, 1);\n }\n /**\n * Initialize the filters\n */\n initFilters() {\n this._filters = new Licenses.Filters(this.model);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.SplitPanel.setStretch(this._filters, 1);\n this._leftPanel.addWidget(this._filters);\n }\n /**\n * Initialize the listing of available bundles\n */\n initBundles() {\n this._bundles = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.TabBar({\n orientation: 'vertical',\n renderer: new Licenses.BundleTabRenderer(this.model)\n });\n this._bundles.addClass('jp-Licenses-Bundles');\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.SplitPanel.setStretch(this._bundles, 1);\n this._leftPanel.addWidget(this._bundles);\n this._bundles.currentChanged.connect(this.onBundleSelected, this);\n this.model.stateChanged.connect(() => this._bundles.update());\n }\n /**\n * Initialize the listing of packages within the current bundle\n */\n initGrid() {\n this._grid = new Licenses.Grid(this.model);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.SplitPanel.setStretch(this._grid, 1);\n this.addWidget(this._grid);\n }\n /**\n * Initialize the full text of the current package\n */\n initLicenseText() {\n this._licenseText = new Licenses.FullText(this.model);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.SplitPanel.setStretch(this._grid, 1);\n this.addWidget(this._licenseText);\n }\n /**\n * Event handler for updating the model with the current bundle\n */\n onBundleSelected() {\n var _a;\n if ((_a = this._bundles.currentTitle) === null || _a === void 0 ? void 0 : _a.label) {\n this.model.currentBundleName = this._bundles.currentTitle.label;\n }\n }\n /**\n * Update the bundle tabs.\n */\n _updateBundles() {\n this._bundles.clearTabs();\n let i = 0;\n const { currentBundleName } = this.model;\n let currentIndex = 0;\n for (const bundle of this.model.bundleNames) {\n const tab = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget();\n tab.title.label = bundle;\n if (bundle === currentBundleName) {\n currentIndex = i;\n }\n this._bundles.insertTab(++i, tab.title);\n }\n this._bundles.currentIndex = currentIndex;\n }\n}\n/** A namespace for license components */\n(function (Licenses) {\n /**\n * License report formats understood by the server (once lower-cased)\n */\n Licenses.REPORT_FORMATS = {\n markdown: {\n id: 'markdown',\n title: 'Markdown',\n icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.markdownIcon\n },\n csv: {\n id: 'csv',\n title: 'CSV',\n icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.spreadsheetIcon\n },\n json: {\n id: 'json',\n title: 'JSON',\n icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.jsonIcon\n }\n };\n /**\n * The default format (most human-readable)\n */\n Licenses.DEFAULT_FORMAT = 'markdown';\n /**\n * A class used for fetching licenses from the server.\n */\n class LicensesClient {\n /**\n * Create a new license client.\n */\n constructor(options = {}) {\n var _a;\n this._licensesUrl = options.licensesUrl || '';\n this._serverSettings =\n (_a = options.serverSettings) !== null && _a !== void 0 ? _a : _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__.ServerConnection.makeSettings();\n }\n /**\n * Download the licenses in the requested format.\n */\n async download(options) {\n const url = `${this._licensesUrl}?format=${options.format}&download=1`;\n const element = document.createElement('a');\n element.href = url;\n element.download = '';\n document.body.appendChild(element);\n element.click();\n document.body.removeChild(element);\n URL.revokeObjectURL(url);\n return void 0;\n }\n /**\n * Fetch the license bundles from the server.\n */\n async getBundles() {\n const response = await _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__.ServerConnection.makeRequest(this._licensesUrl, {}, this._serverSettings);\n return response.json();\n }\n }\n Licenses.LicensesClient = LicensesClient;\n /**\n * A model for license data\n */\n class Model extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.VDomModel {\n constructor(options) {\n super();\n this._selectedPackageChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__.Signal(this);\n this._trackerDataChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__.Signal(this);\n this._currentPackageIndex = 0;\n this._licensesReady = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__.PromiseDelegate();\n this._packageFilter = {};\n this._trans = options.trans;\n this._client = options.client;\n if (options.currentBundleName) {\n this._currentBundleName = options.currentBundleName;\n }\n if (options.packageFilter) {\n this._packageFilter = options.packageFilter;\n }\n if (options.currentPackageIndex) {\n this._currentPackageIndex = options.currentPackageIndex;\n }\n }\n /**\n * Handle the initial request for the licenses from the server.\n */\n async initLicenses() {\n try {\n this._serverResponse = await this._client.getBundles();\n this._licensesReady.resolve();\n this.stateChanged.emit(void 0);\n }\n catch (err) {\n this._licensesReady.reject(err);\n }\n }\n /**\n * Download the licenses in the requested format.\n */\n async download(options) {\n return this._client.download(options);\n }\n /**\n * A promise that resolves when the licenses from the server change\n */\n get selectedPackageChanged() {\n return this._selectedPackageChanged;\n }\n /**\n * A promise that resolves when the trackable data changes\n */\n get trackerDataChanged() {\n return this._trackerDataChanged;\n }\n /**\n * The names of the license bundles available\n */\n get bundleNames() {\n var _a;\n return Object.keys(((_a = this._serverResponse) === null || _a === void 0 ? void 0 : _a.bundles) || {});\n }\n /**\n * The current license bundle\n */\n get currentBundleName() {\n if (this._currentBundleName) {\n return this._currentBundleName;\n }\n if (this.bundleNames.length) {\n return this.bundleNames[0];\n }\n return null;\n }\n /**\n * Set the current license bundle, and reset the selected index\n */\n set currentBundleName(currentBundleName) {\n if (this._currentBundleName !== currentBundleName) {\n this._currentBundleName = currentBundleName;\n this.stateChanged.emit(void 0);\n this._trackerDataChanged.emit(void 0);\n }\n }\n /**\n * A promise that resolves when the licenses are available from the server\n */\n get licensesReady() {\n return this._licensesReady.promise;\n }\n /**\n * All the license bundles, keyed by the distributing packages\n */\n get bundles() {\n var _a;\n return ((_a = this._serverResponse) === null || _a === void 0 ? void 0 : _a.bundles) || {};\n }\n /**\n * The index of the currently-selected package within its license bundle\n */\n get currentPackageIndex() {\n return this._currentPackageIndex;\n }\n /**\n * Update the currently-selected package within its license bundle\n */\n set currentPackageIndex(currentPackageIndex) {\n if (this._currentPackageIndex === currentPackageIndex) {\n return;\n }\n this._currentPackageIndex = currentPackageIndex;\n this._selectedPackageChanged.emit(void 0);\n this.stateChanged.emit(void 0);\n this._trackerDataChanged.emit(void 0);\n }\n /**\n * The license data for the currently-selected package\n */\n get currentPackage() {\n var _a;\n if (this.currentBundleName &&\n this.bundles &&\n this._currentPackageIndex != null) {\n return this.getFilteredPackages(((_a = this.bundles[this.currentBundleName]) === null || _a === void 0 ? void 0 : _a.packages) || [])[this._currentPackageIndex];\n }\n return null;\n }\n /**\n * A translation bundle\n */\n get trans() {\n return this._trans;\n }\n get title() {\n return `${this._currentBundleName || ''} ${this._trans.__('Licenses')}`.trim();\n }\n /**\n * The current package filter\n */\n get packageFilter() {\n return this._packageFilter;\n }\n set packageFilter(packageFilter) {\n this._packageFilter = packageFilter;\n this.stateChanged.emit(void 0);\n this._trackerDataChanged.emit(void 0);\n }\n /**\n * Get filtered packages from current bundle where at least one token of each\n * key is present.\n */\n getFilteredPackages(allRows) {\n let rows = [];\n let filters = Object.entries(this._packageFilter)\n .filter(([k, v]) => v && `${v}`.trim().length)\n .map(([k, v]) => [k, `${v}`.toLowerCase().trim().split(' ')]);\n for (const row of allRows) {\n let keyHits = 0;\n for (const [key, bits] of filters) {\n let bitHits = 0;\n let rowKeyValue = `${row[key]}`.toLowerCase();\n for (const bit of bits) {\n if (rowKeyValue.includes(bit)) {\n bitHits += 1;\n }\n }\n if (bitHits) {\n keyHits += 1;\n }\n }\n if (keyHits === filters.length) {\n rows.push(row);\n }\n }\n return Object.values(rows);\n }\n }\n Licenses.Model = Model;\n /**\n * A filter form for limiting the packages displayed\n */\n class Filters extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.VDomRenderer {\n constructor(model) {\n super(model);\n /**\n * Render a filter input\n */\n this.renderFilter = (key) => {\n const value = this.model.packageFilter[key] || '';\n return (react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"input\", { type: \"text\", name: key, defaultValue: value, className: \"jp-mod-styled\", onInput: this.onFilterInput }));\n };\n /**\n * Handle a filter input changing\n */\n this.onFilterInput = (evt) => {\n const input = evt.currentTarget;\n const { name, value } = input;\n this.model.packageFilter = { ...this.model.packageFilter, [name]: value };\n };\n this.addClass('jp-Licenses-Filters');\n this.addClass('jp-RenderedHTMLCommon');\n }\n render() {\n const { trans } = this.model;\n return (react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"label\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"strong\", { className: FILTER_SECTION_TITLE_CLASS }, trans.__('Filter Licenses By'))),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"ul\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"li\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"label\", null, trans.__('Package')),\n this.renderFilter('name')),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"li\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"label\", null, trans.__('Version')),\n this.renderFilter('versionInfo')),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"li\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"label\", null, trans.__('License')),\n this.renderFilter('licenseId'))),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"label\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"strong\", { className: FILTER_SECTION_TITLE_CLASS }, trans.__('Distributions')))));\n }\n }\n Licenses.Filters = Filters;\n /**\n * A fancy bundle renderer with the package count\n */\n class BundleTabRenderer extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.TabBar.Renderer {\n constructor(model) {\n super();\n this.closeIconSelector = '.lm-TabBar-tabCloseIcon';\n this.model = model;\n }\n /**\n * Render a full bundle\n */\n renderTab(data) {\n let title = data.title.caption;\n let key = this.createTabKey(data);\n let style = this.createTabStyle(data);\n let className = this.createTabClass(data);\n let dataset = this.createTabDataset(data);\n return _lumino_virtualdom__WEBPACK_IMPORTED_MODULE_4__.h.li({ key, className, title, style, dataset }, this.renderIcon(data), this.renderLabel(data), this.renderCountBadge(data));\n }\n /**\n * Render the package count\n */\n renderCountBadge(data) {\n const bundle = data.title.label;\n const { bundles } = this.model;\n const packages = this.model.getFilteredPackages((bundles && bundle ? bundles[bundle].packages : []) || []);\n return _lumino_virtualdom__WEBPACK_IMPORTED_MODULE_4__.h.label({}, `${packages.length}`);\n }\n }\n Licenses.BundleTabRenderer = BundleTabRenderer;\n /**\n * A grid of licenses\n */\n class Grid extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.VDomRenderer {\n constructor(model) {\n super(model);\n /**\n * Render a single package's license information\n */\n this.renderRow = (row, index) => {\n const selected = index === this.model.currentPackageIndex;\n const onCheck = () => (this.model.currentPackageIndex = index);\n return (react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"tr\", { key: row.name, className: selected ? 'jp-mod-selected' : '', onClick: onCheck },\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"td\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"input\", { type: \"radio\", name: \"show-package-license\", value: index, onChange: onCheck, checked: selected })),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"th\", null, row.name),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"td\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"code\", null, row.versionInfo)),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"td\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"code\", null, row.licenseId))));\n };\n this.addClass('jp-Licenses-Grid');\n this.addClass('jp-RenderedHTMLCommon');\n }\n /**\n * Render a grid of package license information\n */\n render() {\n var _a;\n const { bundles, currentBundleName, trans } = this.model;\n const filteredPackages = this.model.getFilteredPackages(bundles && currentBundleName\n ? ((_a = bundles[currentBundleName]) === null || _a === void 0 ? void 0 : _a.packages) || []\n : []);\n if (!filteredPackages.length) {\n return (react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"blockquote\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"em\", null, trans.__('No Packages found'))));\n }\n return (react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"form\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"table\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"thead\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"tr\", null,\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"td\", null),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"th\", null, trans.__('Package')),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"th\", null, trans.__('Version')),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"th\", null, trans.__('License')))),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"tbody\", null, filteredPackages.map(this.renderRow)))));\n }\n }\n Licenses.Grid = Grid;\n /**\n * A package's full license text\n */\n class FullText extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.VDomRenderer {\n constructor(model) {\n super(model);\n this.addClass('jp-Licenses-Text');\n this.addClass('jp-RenderedHTMLCommon');\n this.addClass('jp-RenderedMarkdown');\n }\n /**\n * Render the license text, or a null state if no package is selected\n */\n render() {\n const { currentPackage, trans } = this.model;\n let head = '';\n let quote = trans.__('No Package selected');\n let code = '';\n if (currentPackage) {\n const { name, versionInfo, licenseId, extractedText } = currentPackage;\n head = `${name} v${versionInfo}`;\n quote = `${trans.__('License')}: ${licenseId || trans.__('No License ID found')}`;\n code = extractedText || trans.__('No License Text found');\n }\n return [\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"h1\", { key: \"h1\" }, head),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"blockquote\", { key: \"quote\" },\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"em\", null, quote)),\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"code\", { key: \"code\" }, code)\n ];\n }\n }\n Licenses.FullText = FullText;\n})(Licenses || (Licenses = {}));\n//# sourceMappingURL=licenses.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/licenses.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/mainareawidget.js": +/*!******************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/mainareawidget.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MainAreaWidget: () => (/* binding */ MainAreaWidget)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/messaging */ \"webpack/sharing/consume/default/@lumino/messaging/@lumino/messaging\");\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_messaging__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _domutils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./domutils */ \"../node_modules/@jupyterlab/apputils/lib/domutils.js\");\n/* harmony import */ var _printing__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./printing */ \"../node_modules/@jupyterlab/apputils/lib/printing.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n/**\n * A flag to indicate that event handlers are caught in the capture phase.\n */\nconst USE_CAPTURE = true;\n/**\n * A widget meant to be contained in the JupyterLab main area.\n *\n * #### Notes\n * Mirrors all of the `title` attributes of the content.\n * This widget is `closable` by default.\n * This widget is automatically disposed when closed.\n * This widget ensures its own focus when activated.\n */\nclass MainAreaWidget extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.Widget {\n /**\n * Construct a new main area widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options) {\n super(options);\n this._changeGuard = false;\n this._spinner = new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Spinner();\n this._isRevealed = false;\n this._evtMouseDown = () => {\n if (!this.node.contains(document.activeElement)) {\n this._focusContent();\n }\n };\n this.addClass('jp-MainAreaWidget');\n // Set contain=strict to avoid many forced layout rendering while adding cells.\n // Don't forget to remove the CSS class when your remove the spinner to allow\n // the content to be rendered.\n // @see https://github.com/jupyterlab/jupyterlab/issues/9381\n this.addClass('jp-MainAreaWidget-ContainStrict');\n this.id = _domutils__WEBPACK_IMPORTED_MODULE_4__.DOMUtils.createDomID();\n const trans = (options.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator).load('jupyterlab');\n const content = (this._content = options.content);\n content.node.setAttribute('role', 'region');\n content.node.setAttribute('aria-label', trans.__('notebook content'));\n const toolbar = (this._toolbar =\n options.toolbar || new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactiveToolbar({ noFocusOnClick: true }));\n toolbar.node.setAttribute('role', 'toolbar');\n toolbar.node.setAttribute('aria-label', trans.__('notebook actions'));\n const contentHeader = (this._contentHeader =\n options.contentHeader ||\n new _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxPanel({\n direction: 'top-to-bottom',\n spacing: 0\n }));\n const layout = (this.layout = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxLayout({ spacing: 0 }));\n layout.direction = 'top-to-bottom';\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxLayout.setStretch(toolbar, 0);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxLayout.setStretch(contentHeader, 0);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxLayout.setStretch(content, 1);\n layout.addWidget(toolbar);\n layout.addWidget(contentHeader);\n layout.addWidget(content);\n if (!content.id) {\n content.id = _domutils__WEBPACK_IMPORTED_MODULE_4__.DOMUtils.createDomID();\n }\n content.node.tabIndex = -1;\n this._updateTitle();\n content.title.changed.connect(this._updateTitle, this);\n this.title.closable = true;\n this.title.changed.connect(this._updateContentTitle, this);\n if (options.reveal) {\n this.node.appendChild(this._spinner.node);\n this._revealed = options.reveal\n .then(() => {\n if (content.isDisposed) {\n this.dispose();\n return;\n }\n content.disposed.connect(() => this.dispose());\n const active = document.activeElement === this._spinner.node;\n this._disposeSpinner();\n this._isRevealed = true;\n if (active) {\n this._focusContent();\n }\n })\n .catch(e => {\n // Show a revealed promise error.\n const error = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.Widget();\n error.addClass('jp-MainAreaWidget-error');\n // Show the error to the user.\n const pre = document.createElement('pre');\n pre.textContent = String(e);\n error.node.appendChild(pre);\n _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxLayout.setStretch(error, 1);\n this._disposeSpinner();\n content.dispose();\n this._content = null;\n toolbar.dispose();\n this._toolbar = null;\n layout.addWidget(error);\n this._isRevealed = true;\n throw error;\n });\n }\n else {\n // Handle no reveal promise.\n this._spinner.dispose();\n this.removeClass('jp-MainAreaWidget-ContainStrict');\n content.disposed.connect(() => this.dispose());\n this._isRevealed = true;\n this._revealed = Promise.resolve(undefined);\n }\n }\n /**\n * Print method. Deferred to content.\n */\n [_printing__WEBPACK_IMPORTED_MODULE_5__.Printing.symbol]() {\n if (!this._content) {\n return null;\n }\n return _printing__WEBPACK_IMPORTED_MODULE_5__.Printing.getPrintFunction(this._content);\n }\n /**\n * The content hosted by the widget.\n */\n get content() {\n return this._content;\n }\n /**\n * The toolbar hosted by the widget.\n */\n get toolbar() {\n return this._toolbar;\n }\n /**\n * A panel for widgets that sit between the toolbar and the content.\n * Imagine a formatting toolbar, notification headers, etc.\n */\n get contentHeader() {\n return this._contentHeader;\n }\n /**\n * Whether the content widget or an error is revealed.\n */\n get isRevealed() {\n return this._isRevealed;\n }\n /**\n * A promise that resolves when the widget is revealed.\n */\n get revealed() {\n return this._revealed;\n }\n /**\n * Handle `'activate-request'` messages.\n */\n onActivateRequest(msg) {\n if (this._isRevealed) {\n this._focusContent();\n }\n else {\n this._spinner.node.focus();\n }\n }\n /**\n * Handle `after-attach` messages for the widget.\n */\n onAfterAttach(msg) {\n super.onAfterAttach(msg);\n // Focus content in capture phase to ensure relevant commands operate on the\n // current main area widget.\n // Add the event listener directly instead of using `handleEvent` in order\n // to save sub-classes from needing to reason about calling it as well.\n this.node.addEventListener('mousedown', this._evtMouseDown, USE_CAPTURE);\n }\n /**\n * Handle `before-detach` messages for the widget.\n */\n onBeforeDetach(msg) {\n this.node.removeEventListener('mousedown', this._evtMouseDown, USE_CAPTURE);\n super.onBeforeDetach(msg);\n }\n /**\n * Handle `'close-request'` messages.\n */\n onCloseRequest(msg) {\n this.dispose();\n }\n /**\n * Handle `'update-request'` messages by forwarding them to the content.\n */\n onUpdateRequest(msg) {\n if (this._content) {\n _lumino_messaging__WEBPACK_IMPORTED_MODULE_2__.MessageLoop.sendMessage(this._content, msg);\n }\n }\n _disposeSpinner() {\n this.node.removeChild(this._spinner.node);\n this._spinner.dispose();\n this.removeClass('jp-MainAreaWidget-ContainStrict');\n }\n /**\n * Update the title based on the attributes of the child widget.\n */\n _updateTitle() {\n if (this._changeGuard || !this.content) {\n return;\n }\n this._changeGuard = true;\n const content = this.content;\n this.title.label = content.title.label;\n this.title.mnemonic = content.title.mnemonic;\n this.title.icon = content.title.icon;\n this.title.iconClass = content.title.iconClass;\n this.title.iconLabel = content.title.iconLabel;\n this.title.caption = content.title.caption;\n this.title.className = content.title.className;\n this.title.dataset = content.title.dataset;\n this._changeGuard = false;\n }\n /**\n * Update the content title based on attributes of the main widget.\n */\n _updateContentTitle() {\n if (this._changeGuard || !this.content) {\n return;\n }\n this._changeGuard = true;\n const content = this.content;\n content.title.label = this.title.label;\n content.title.mnemonic = this.title.mnemonic;\n content.title.icon = this.title.icon;\n content.title.iconClass = this.title.iconClass;\n content.title.iconLabel = this.title.iconLabel;\n content.title.caption = this.title.caption;\n content.title.className = this.title.className;\n content.title.dataset = this.title.dataset;\n this._changeGuard = false;\n }\n /**\n * Give focus to the content.\n */\n _focusContent() {\n if (!this.content) {\n return;\n }\n // Focus the content node if we aren't already focused on it or a\n // descendent.\n if (!this.content.node.contains(document.activeElement)) {\n this.content.node.focus();\n }\n // Activate the content asynchronously (which may change the focus).\n this.content.activate();\n }\n}\n//# sourceMappingURL=mainareawidget.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/mainareawidget.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/menufactory.js": +/*!***************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/menufactory.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MenuFactory: () => (/* binding */ MenuFactory)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n/**\n * Helper functions to build a menu from the settings\n */\nvar MenuFactory;\n(function (MenuFactory) {\n /**\n * Create menus from their description\n *\n * @param data Menubar description\n * @param menuFactory Factory for empty menu\n */\n function createMenus(data, menuFactory) {\n return data\n .filter(item => !item.disabled)\n .sort((a, b) => { var _a, _b; return ((_a = a.rank) !== null && _a !== void 0 ? _a : Infinity) - ((_b = b.rank) !== null && _b !== void 0 ? _b : Infinity); })\n .map(menuItem => {\n return dataToMenu(menuItem, menuFactory);\n });\n }\n MenuFactory.createMenus = createMenus;\n /**\n * Convert a menu description in a JupyterLabMenu object\n *\n * @param item Menu description\n * @param menuFactory Empty menu factory\n * @returns The menu widget\n */\n function dataToMenu(item, menuFactory) {\n var _a, _b;\n const menu = menuFactory(item);\n menu.id = item.id;\n // Set the label in case the menu factory did not.\n if (!menu.title.label) {\n menu.title.label = (_a = item.label) !== null && _a !== void 0 ? _a : _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.Text.titleCase(menu.id.trim());\n }\n if (item.icon) {\n menu.title.icon = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.LabIcon.resolve({ icon: item.icon });\n }\n if (item.mnemonic !== undefined) {\n menu.title.mnemonic = item.mnemonic;\n }\n (_b = item.items) === null || _b === void 0 ? void 0 : _b.filter(item => !item.disabled).sort((a, b) => { var _a, _b; return ((_a = a.rank) !== null && _a !== void 0 ? _a : Infinity) - ((_b = b.rank) !== null && _b !== void 0 ? _b : Infinity); }).map(item => {\n addItem(item, menu, menuFactory);\n });\n return menu;\n }\n /**\n * Convert an item description in a context menu item object\n *\n * @param item Context menu item\n * @param menu Context menu to populate\n * @param menuFactory Empty menu factory\n */\n function addContextItem(item, menu, menuFactory) {\n const { submenu, ...newItem } = item;\n // Commands may not have been registered yet; so we don't force it to exist\n menu.addItem({\n ...newItem,\n submenu: submenu ? dataToMenu(submenu, menuFactory) : null\n });\n }\n MenuFactory.addContextItem = addContextItem;\n /**\n * Convert an item description in a menu item object\n *\n * @param item Menu item\n * @param menu Menu to populate\n * @param menuFactory Empty menu factory\n */\n function addItem(item, menu, menuFactory) {\n const { submenu, ...newItem } = item;\n // Commands may not have been registered yet; so we don't force it to exist\n menu.addItem({\n ...newItem,\n submenu: submenu ? dataToMenu(submenu, menuFactory) : null\n });\n }\n /**\n * Update an existing list of menu and returns\n * the new elements.\n *\n * #### Note\n * New elements are added to the current menu list.\n *\n * @param menus Current menus\n * @param data New description to take into account\n * @param menuFactory Empty menu factory\n * @returns Newly created menus\n */\n function updateMenus(menus, data, menuFactory) {\n const newMenus = [];\n data.forEach(item => {\n const menu = menus.find(menu => menu.id === item.id);\n if (menu) {\n mergeMenus(item, menu, menuFactory);\n }\n else {\n if (!item.disabled) {\n newMenus.push(dataToMenu(item, menuFactory));\n }\n }\n });\n menus.push(...newMenus);\n return newMenus;\n }\n MenuFactory.updateMenus = updateMenus;\n function mergeMenus(item, menu, menuFactory) {\n var _a;\n if (item.disabled) {\n menu.dispose();\n }\n else {\n (_a = item.items) === null || _a === void 0 ? void 0 : _a.forEach(entry => {\n var _a, _b;\n const existingItem = menu === null || menu === void 0 ? void 0 : menu.items.find((i, idx) => {\n var _a, _b, _c;\n return i.type === entry.type &&\n i.command === ((_a = entry.command) !== null && _a !== void 0 ? _a : '') &&\n ((_b = i.submenu) === null || _b === void 0 ? void 0 : _b.id) === ((_c = entry.submenu) === null || _c === void 0 ? void 0 : _c.id);\n });\n if (existingItem && entry.type !== 'separator') {\n if (entry.disabled) {\n menu.removeItem(existingItem);\n }\n else {\n switch ((_a = entry.type) !== null && _a !== void 0 ? _a : 'command') {\n case 'command':\n if (entry.command) {\n if (!_lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__.JSONExt.deepEqual(existingItem.args, (_b = entry.args) !== null && _b !== void 0 ? _b : {})) {\n addItem(entry, menu, menuFactory);\n }\n }\n break;\n case 'submenu':\n if (entry.submenu) {\n mergeMenus(entry.submenu, existingItem.submenu, menuFactory);\n }\n }\n }\n }\n else {\n addItem(entry, menu, menuFactory);\n }\n });\n }\n }\n})(MenuFactory || (MenuFactory = {}));\n//# sourceMappingURL=menufactory.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/menufactory.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/notification.js": +/*!****************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/notification.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Notification: () => (/* binding */ Notification),\n/* harmony export */ NotificationManager: () => (/* binding */ NotificationManager)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_1__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n/**\n * Notification manager\n */\nclass NotificationManager {\n constructor() {\n this._isDisposed = false;\n this._queue = [];\n this._changed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal(this);\n }\n /**\n * Signal emitted whenever a notification changes.\n */\n get changed() {\n return this._changed;\n }\n /**\n * Total number of notifications.\n */\n get count() {\n return this._queue.length;\n }\n /**\n * Whether the manager is disposed or not.\n */\n get isDisposed() {\n return this._isDisposed;\n }\n /**\n * The list of notifications.\n */\n get notifications() {\n return this._queue.slice();\n }\n /**\n * Dismiss one notification (specified by its id) or all if no id provided.\n *\n * @param id Notification id\n */\n dismiss(id) {\n if (typeof id === 'undefined') {\n const q = this._queue.slice();\n this._queue.length = 0;\n for (const notification of q) {\n this._changed.emit({\n type: 'removed',\n notification\n });\n }\n }\n else {\n const notificationIndex = this._queue.findIndex(n => n.id === id);\n if (notificationIndex > -1) {\n const notification = this._queue.splice(notificationIndex, 1)[0];\n this._changed.emit({\n type: 'removed',\n notification\n });\n }\n }\n }\n /**\n * Dispose the manager.\n */\n dispose() {\n if (this._isDisposed) {\n return;\n }\n this._isDisposed = true;\n _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal.clearData(this);\n }\n /**\n * Test whether a notification exists or not.\n *\n * @param id Notification id\n * @returns Notification status\n */\n has(id) {\n return this._queue.findIndex(n => n.id === id) > -1;\n }\n /**\n * Add a new notification.\n *\n * This will trigger the `changed` signal with an `added` event.\n *\n * @param message Notification message\n * @param type Notification type\n * @param options Notification option\n * @returns Notification unique id\n */\n notify(message, type, options) {\n const now = Date.now();\n const { progress, ...othersOptions } = options;\n const notification = Object.freeze({\n id: _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.UUID.uuid4(),\n createdAt: now,\n modifiedAt: now,\n message,\n type,\n options: {\n // By default notification will be silent\n autoClose: 0,\n progress: typeof progress === 'number'\n ? Math.min(Math.max(0, progress), 1)\n : progress,\n ...othersOptions\n }\n });\n this._queue.unshift(notification);\n this._changed.emit({\n type: 'added',\n notification\n });\n return notification.id;\n }\n /**\n * Update an existing notification.\n *\n * If the notification does not exists this won't do anything.\n *\n * Once updated the notification will be moved at the begin\n * of the notification stack.\n *\n * @param args Update options\n * @returns Whether the update was successful or not.\n */\n update(args) {\n const { id, message, actions, autoClose, data, progress, type } = args;\n const newProgress = typeof progress === 'number'\n ? Math.min(Math.max(0, progress), 1)\n : progress;\n const notificationIndex = this._queue.findIndex(n => n.id === id);\n if (notificationIndex > -1) {\n const oldNotification = this._queue[notificationIndex];\n // We need to create a new object as notification are frozen; i.e. cannot be edited\n const notification = Object.freeze({\n ...oldNotification,\n message: message !== null && message !== void 0 ? message : oldNotification.message,\n type: type !== null && type !== void 0 ? type : oldNotification.type,\n options: {\n actions: actions !== null && actions !== void 0 ? actions : oldNotification.options.actions,\n autoClose: autoClose !== null && autoClose !== void 0 ? autoClose : oldNotification.options.autoClose,\n data: data !== null && data !== void 0 ? data : oldNotification.options.data,\n progress: newProgress !== null && newProgress !== void 0 ? newProgress : oldNotification.options.progress\n },\n modifiedAt: Date.now()\n });\n this._queue.splice(notificationIndex, 1);\n this._queue.unshift(notification);\n this._changed.emit({\n type: 'updated',\n notification\n });\n return true;\n }\n return false;\n }\n}\n/**\n * Notification namespace\n */\nvar Notification;\n(function (Notification) {\n /**\n * The global notification manager.\n */\n Notification.manager = new NotificationManager();\n /**\n * Dismiss one notification (specified by its id) or all if no id provided\n *\n * @param id notification id\n */\n function dismiss(id) {\n Notification.manager.dismiss(id);\n }\n Notification.dismiss = dismiss;\n /**\n * Helper function to emit a notification.\n *\n * #### Notes\n * The message will be truncated if longer than 140 characters.\n *\n * @param message Notification message\n * @param type Notification type\n * @param options Options for the error notification\n * @returns Notification unique id\n */\n function emit(message, type = 'default', options = {}) {\n return Notification.manager.notify(message, type, options);\n }\n Notification.emit = emit;\n /**\n * Helper function to emit an error notification.\n *\n * #### Notes\n * The message will be truncated if longer than 140 characters.\n *\n * @param message Notification message\n * @param options Options for the error notification\n * @returns Notification unique id\n */\n function error(message, options = {}) {\n return Notification.manager.notify(message, 'error', options);\n }\n Notification.error = error;\n /**\n * Helper function to emit an info notification.\n *\n * #### Notes\n * The message will be truncated if longer than 140 characters.\n *\n * @param message Notification message\n * @param options Options for the info notification\n * @returns Notification unique id\n */\n function info(message, options = {}) {\n return Notification.manager.notify(message, 'info', options);\n }\n Notification.info = info;\n /**\n * Helper function to show an in-progress notification.\n *\n * #### Notes\n * The message will be truncated if longer than 140 characters.\n *\n * @param promise Promise to wait for\n * @param options Options for the in-progress notification\n * @returns Notification unique id\n */\n function promise(promise, options) {\n var _a;\n const { pending, error, success } = options;\n const id = Notification.manager.notify(pending.message, 'in-progress', (_a = pending.options) !== null && _a !== void 0 ? _a : {});\n promise\n .then(result => {\n var _a, _b, _c;\n Notification.manager.update({\n id,\n message: success.message(result, (_a = success.options) === null || _a === void 0 ? void 0 : _a.data),\n type: 'success',\n ...success.options,\n data: (_c = (_b = success.options) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : result\n });\n })\n .catch(reason => {\n var _a, _b, _c;\n Notification.manager.update({\n id,\n message: error.message(reason, (_a = error.options) === null || _a === void 0 ? void 0 : _a.data),\n type: 'error',\n ...error.options,\n data: (_c = (_b = error.options) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : reason\n });\n });\n return id;\n }\n Notification.promise = promise;\n /**\n * Helper function to emit a success notification.\n *\n * #### Notes\n * The message will be truncated if longer than 140 characters.\n *\n * @param message Notification message\n * @param options Options for the success notification\n * @returns Notification unique id\n */\n function success(message, options = {}) {\n return Notification.manager.notify(message, 'success', options);\n }\n Notification.success = success;\n /**\n * Helper function to update a notification.\n *\n * If the notification does not exists, nothing will happen.\n *\n * Once updated the notification will be moved at the begin\n * of the notification stack.\n *\n * #### Notes\n * The message will be truncated if longer than 140 characters.\n *\n * @param args Update options\n * @returns Whether the update was successful or not.\n */\n function update(args) {\n return Notification.manager.update(args);\n }\n Notification.update = update;\n /**\n * Helper function to emit a warning notification.\n *\n * #### Notes\n * The message will be truncated if longer than 140 characters.\n *\n * @param message Notification message\n * @param options Options for the warning notification\n * @returns Notification unique id\n */\n function warning(message, options = {}) {\n return Notification.manager.notify(message, 'warning', options);\n }\n Notification.warning = warning;\n})(Notification || (Notification = {}));\n//# sourceMappingURL=notification.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/notification.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/printing.js": +/*!************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/printing.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Printing: () => (/* binding */ Printing)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/services */ \"webpack/sharing/consume/default/@jupyterlab/services/@jupyterlab/services\");\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * Any object is \"printable\" if it implements the `IPrintable` interface.\n *\n * To do this it, it must have a method called `Printing.symbol` which returns either a function\n * to print the object or null if it cannot be printed.\n *\n * One way of printing is to use the `printWidget` function, which creates a hidden iframe\n * and copies the DOM nodes from your widget to that iframe and printing just that iframe.\n *\n * Another way to print is to use the `printURL` function, which takes a URL and prints that page.\n */\nvar Printing;\n(function (Printing) {\n /**\n * Symbol to use for a method that returns a function to print an object.\n */\n Printing.symbol = Symbol('printable');\n /**\n * Returns whether an object implements a print method.\n */\n function isPrintable(a) {\n if (typeof a !== 'object' || !a) {\n return false;\n }\n return Printing.symbol in a;\n }\n Printing.isPrintable = isPrintable;\n /**\n * Returns the print function for an object, or null if it does not provide a handler.\n */\n function getPrintFunction(val) {\n if (isPrintable(val)) {\n return val[Printing.symbol]();\n }\n return null;\n }\n Printing.getPrintFunction = getPrintFunction;\n /**\n * Prints a widget by copying it's DOM node\n * to a hidden iframe and printing that iframe.\n */\n function printWidget(widget) {\n return printContent(widget.node);\n }\n Printing.printWidget = printWidget;\n /**\n * Prints a URL by loading it into an iframe.\n *\n * @param url URL to load into an iframe.\n */\n async function printURL(url) {\n const settings = _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__.ServerConnection.makeSettings();\n const text = await (await _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__.ServerConnection.makeRequest(url, {}, settings)).text();\n return printContent(text);\n }\n Printing.printURL = printURL;\n /**\n * Prints a URL or an element in an iframe and then removes the iframe after printing.\n */\n async function printContent(textOrEl) {\n const isText = typeof textOrEl === 'string';\n const iframe = createIFrame();\n const parent = window.document.body;\n parent.appendChild(iframe);\n if (isText) {\n iframe.srcdoc = textOrEl;\n await resolveWhenLoaded(iframe);\n }\n else {\n iframe.src = 'about:blank';\n await resolveWhenLoaded(iframe);\n setIFrameNode(iframe, textOrEl);\n }\n const printed = resolveAfterEvent();\n launchPrint(iframe.contentWindow);\n // Once the print dialog has been dismissed, we regain event handling,\n // and it should be safe to discard the hidden iframe.\n await printed;\n parent.removeChild(iframe);\n }\n /**\n * Creates a new hidden iframe and appends it to the document\n *\n * Modified from\n * https://github.com/joseluisq/printd/blob/eb7948d602583c055ab6dee3ee294b6a421da4b6/src/index.ts#L24\n */\n function createIFrame() {\n const el = window.document.createElement('iframe');\n // We need both allow-modals and allow-same-origin to be able to\n // call print in the iframe.\n // We intentionally do not allow scripts:\n // https://github.com/jupyterlab/jupyterlab/pull/5850#pullrequestreview-230899790\n el.setAttribute('sandbox', 'allow-modals allow-same-origin');\n const css = 'visibility:hidden;width:0;height:0;position:absolute;z-index:-9999;bottom:0;';\n el.setAttribute('style', css);\n el.setAttribute('width', '0');\n el.setAttribute('height', '0');\n return el;\n }\n /**\n * Copies a node from the base document to the iframe.\n */\n function setIFrameNode(iframe, node) {\n iframe.contentDocument.body.appendChild(node.cloneNode(true));\n iframe.contentDocument.close();\n }\n /**\n * Promise that resolves when all resources are loaded in the window.\n */\n function resolveWhenLoaded(iframe) {\n return new Promise(resolve => {\n iframe.onload = () => resolve();\n });\n }\n /**\n * A promise that resolves after the next mousedown, mousemove, or\n * keydown event. We use this as a proxy for determining when the\n * main window has regained control after the print dialog is removed.\n *\n * We can't use the usual window.onafterprint handler because we\n * disallow Javascript execution in the print iframe.\n */\n function resolveAfterEvent() {\n return new Promise(resolve => {\n const onEvent = () => {\n document.removeEventListener('mousemove', onEvent, true);\n document.removeEventListener('mousedown', onEvent, true);\n document.removeEventListener('keydown', onEvent, true);\n resolve();\n };\n document.addEventListener('mousemove', onEvent, true);\n document.addEventListener('mousedown', onEvent, true);\n document.addEventListener('keydown', onEvent, true);\n });\n }\n /**\n * Prints a content window.\n */\n function launchPrint(contentWindow) {\n const result = contentWindow.document.execCommand('print', false);\n // execCommand won't work in firefox so we call the `print` method instead if it fails\n // https://github.com/joseluisq/printd/blob/eb7948d602583c055ab6dee3ee294b6a421da4b6/src/index.ts#L148\n if (!result) {\n contentWindow.print();\n }\n }\n})(Printing || (Printing = {}));\n//# sourceMappingURL=printing.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/printing.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/runningSessions.js": +/*!*******************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/runningSessions.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RunningSessions: () => (/* binding */ RunningSessions)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/statusbar */ \"webpack/sharing/consume/default/@jupyterlab/statusbar/@jupyterlab/statusbar\");\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n/**\n * Half spacing between subitems in a status item, in pixels.\n */\nconst HALF_SPACING = 4;\n/**\n * A pure functional component for rendering kernel and terminal sessions.\n *\n * @param props the props for the component.\n *\n * @returns a tsx component for the running sessions.\n */\nfunction RunningSessionsComponent(props) {\n var _a, _b;\n const showKernels = (_a = props.showKernels) !== null && _a !== void 0 ? _a : true;\n const showTerminals = (_b = props.showTerminals) !== null && _b !== void 0 ? _b : props.terminals > 0;\n return (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.GroupItem, { tabIndex: 0, spacing: HALF_SPACING, onClick: props.handleClick, onKeyDown: props.handleKeyDown, style: { cursor: 'pointer' } },\n showTerminals ? (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.GroupItem, { spacing: HALF_SPACING },\n react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.TextItem, { source: props.terminals }),\n react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.terminalIcon.react, { verticalAlign: \"middle\", stylesheet: \"statusBar\" }))) : null,\n showKernels ? (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.GroupItem, { spacing: HALF_SPACING },\n react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.TextItem, { source: props.sessions }),\n react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.kernelIcon.react, { verticalAlign: \"middle\", stylesheet: \"statusBar\" }))) : null));\n}\n/**\n * A VDomRenderer for a RunningSessions status item.\n */\nclass RunningSessions extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.VDomRenderer {\n /**\n * Create a new RunningSessions widget.\n */\n constructor(opts) {\n super(new RunningSessions.Model());\n this._serviceManager = opts.serviceManager;\n this._handleClick = opts.onClick;\n this._handleKeyDown = opts.onKeyDown;\n this.translator = opts.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n this._showKernels = opts.showKernels;\n this._showTerminals = opts.showTerminals;\n this._trans = this.translator.load('jupyterlab');\n this._serviceManager.sessions.runningChanged.connect(this._onSessionsRunningChanged, this);\n this._serviceManager.terminals.runningChanged.connect(this._onTerminalsRunningChanged, this);\n this.addClass('jp-mod-highlighted');\n }\n /**\n * Render the running sessions widget.\n */\n render() {\n if (!this.model) {\n return null;\n }\n // TODO-TRANS: Should probably be handled differently.\n // This is more localizable friendly: \"Terminals: %1 | Kernels: %2\"\n // Generate a localized caption for the tooltip\n const caption = this._trans.__('%1 Terminals, %2 Kernel sessions', this.model.terminals, this.model.sessions);\n // Explicitly synchronize the title attribute with the Lumino widget's DOM\n // This ensures the tooltip displays correctly when hovering over the widget\n this.node.title = caption;\n return (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(RunningSessionsComponent, { sessions: this.model.sessions, terminals: this.model.terminals, handleClick: this._handleClick, handleKeyDown: this._handleKeyDown, showKernels: this._showKernels, showTerminals: this._showTerminals }));\n }\n /**\n * Dispose of the status item.\n */\n dispose() {\n super.dispose();\n this._serviceManager.sessions.runningChanged.disconnect(this._onSessionsRunningChanged, this);\n this._serviceManager.terminals.runningChanged.disconnect(this._onTerminalsRunningChanged, this);\n }\n /**\n * Set the number of kernel sessions when the list changes.\n */\n _onSessionsRunningChanged(manager, sessions) {\n this.model.sessions = sessions.length;\n }\n /**\n * Set the number of terminal sessions when the list changes.\n */\n _onTerminalsRunningChanged(manager, terminals) {\n this.model.terminals = terminals.length;\n }\n}\n/**\n * A namespace for RunningSessions statics.\n */\n(function (RunningSessions) {\n /**\n * A VDomModel for the RunningSessions status item.\n */\n class Model extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.VDomModel {\n constructor() {\n super(...arguments);\n this._terminals = 0;\n this._sessions = 0;\n }\n /**\n * The number of active kernel sessions.\n */\n get sessions() {\n return this._sessions;\n }\n set sessions(sessions) {\n const oldSessions = this._sessions;\n this._sessions = sessions;\n if (oldSessions !== this._sessions) {\n this.stateChanged.emit(void 0);\n }\n }\n /**\n * The number of active terminal sessions.\n */\n get terminals() {\n return this._terminals;\n }\n set terminals(terminals) {\n const oldTerminals = this._terminals;\n this._terminals = terminals;\n if (oldTerminals !== this._terminals) {\n this.stateChanged.emit(void 0);\n }\n }\n }\n RunningSessions.Model = Model;\n})(RunningSessions || (RunningSessions = {}));\n//# sourceMappingURL=runningSessions.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/runningSessions.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/sanitizer.js": +/*!*************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/sanitizer.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Sanitizer: () => (/* binding */ Sanitizer)\n/* harmony export */ });\n/* harmony import */ var sanitize_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! sanitize-html */ \"../node_modules/sanitize-html/index.js\");\n/* harmony import */ var sanitize_html__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(sanitize_html__WEBPACK_IMPORTED_MODULE_0__);\n/* eslint-disable camelcase */\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * Helper class that contains regular expressions for inline CSS style validation.\n *\n * Which properties (and values) to allow is largely based on the Google Caja project:\n * https://github.com/google/caja\n *\n * The regular expressions are largly based on the syntax definition found at\n * https://developer.mozilla.org/en-US/docs/Web/CSS.\n */\nclass CssProp {\n static reg(r) {\n return new RegExp('^' + r + '$', 'i');\n }\n}\n/*\n * Numeric base expressions used to help build more complex regular expressions\n */\nCssProp.N = {\n integer: `[+-]?[0-9]+`,\n integer_pos: `[+]?[0-9]+`,\n integer_zero_ff: `([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])`,\n number: `[+-]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?`,\n number_pos: `[+]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?`,\n number_zero_hundred: `[+]?(([0-9]|[1-9][0-9])([.][0-9]+)?|100)`,\n number_zero_one: `[+]?(1([.][0]+)?|0?([.][0-9]+)?)`\n};\n/*\n * Base expressions of common CSS syntax elements\n */\nCssProp.B = {\n angle: `(${CssProp.N.number}(deg|rad|grad|turn)|0)`,\n frequency: `${CssProp.N.number}(Hz|kHz)`,\n ident: String.raw `-?([_a-z]|[\\xA0-\\xFF]|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])([_a-z0-9-]|[\\xA0-\\xFF]|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])*`,\n len_or_perc: `(0|${CssProp.N.number}(px|em|rem|ex|in|cm|mm|pt|pc|%))`,\n length: `(${CssProp.N.number}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,\n length_pos: `(${CssProp.N.number_pos}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,\n percentage: `${CssProp.N.number}%`,\n percentage_pos: `${CssProp.N.number_pos}%`,\n percentage_zero_hundred: `${CssProp.N.number_zero_hundred}%`,\n string: String.raw `(\\\"([^\\n\\r\\f\\\\\"]|\\\\\\n|\\r\\n|\\r|\\f|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])*\\\")|(\\'([^\\n\\r\\f\\\\']|\\\\\\n|\\r\\n|\\r|\\f|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])*\\')`,\n time: `${CssProp.N.number}(s|ms)`,\n url: `url\\\\(.*?\\\\)`,\n z_index: `[+-]?[0-9]{1,7}`\n};\n/*\n * Atomic (i.e. not dependent on other regular expressions) sub RegEx segments\n */\nCssProp.A = {\n absolute_size: `xx-small|x-small|small|medium|large|x-large|xx-large`,\n attachment: `scroll|fixed|local`,\n bg_origin: `border-box|padding-box|content-box`,\n border_style: `none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset`,\n box: `border-box|padding-box|content-box`,\n display_inside: `auto|block|table|flex|grid`,\n display_outside: `block-level|inline-level|none|table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption`,\n ending_shape: `circle|ellipse`,\n generic_family: `serif|sans-serif|cursive|fantasy|monospace`,\n generic_voice: `male|female|child`,\n relative_size: `smaller|larger`,\n repeat_style: `repeat-x|repeat-y|((?:repeat|space|round|no-repeat)(?:\\\\s*(?:repeat|space|round|no-repeat))?)`,\n side_or_corner: `(left|right)?\\\\s*(top|bottom)?`,\n single_animation_direction: `normal|reverse|alternate|alternate-reverse`,\n single_animation_fill_mode: `none|forwards|backwards|both`,\n single_animation_play_state: `running|paused`\n};\n/*\n * Color definition sub expressions\n */\nCssProp._COLOR = {\n hex: `\\\\#(0x)?[0-9a-f]+`,\n name: `aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|transparent|violet|wheat|white|whitesmoke|yellow|yellowgreen`,\n rgb: String.raw `rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)`,\n rgba: String.raw `rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(${CssProp.N.integer_zero_ff}|${CssProp.N.number_zero_one}|${CssProp.B.percentage_zero_hundred})\\s*\\)`\n};\n/*\n * Compound (i.e. dependent on other (sub) regular expressions) sub RegEx segments\n */\nCssProp._C = {\n alpha: `${CssProp.N.integer_zero_ff}|${CssProp.N.number_zero_one}|${CssProp.B.percentage_zero_hundred}`,\n alphavalue: CssProp.N.number_zero_one,\n bg_position: `((${CssProp.B.len_or_perc}|left|center|right|top|bottom)\\\\s*){1,4}`,\n bg_size: `(${CssProp.B.length_pos}|${CssProp.B.percentage}|auto){1,2}|cover|contain`,\n border_width: `thin|medium|thick|${CssProp.B.length}`,\n bottom: `${CssProp.B.length}|auto`,\n color: `${CssProp._COLOR.hex}|${CssProp._COLOR.rgb}|${CssProp._COLOR.rgba}|${CssProp._COLOR.name}`,\n color_stop_length: `(${CssProp.B.len_or_perc}\\\\s*){1,2}`,\n linear_color_hint: `${CssProp.B.len_or_perc}`,\n family_name: `${CssProp.B.string}|(${CssProp.B.ident}\\\\s*)+`,\n image_decl: CssProp.B.url,\n left: `${CssProp.B.length}|auto`,\n loose_quotable_words: `(${CssProp.B.ident})+`,\n margin_width: `${CssProp.B.len_or_perc}|auto`,\n padding_width: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}`,\n page_url: CssProp.B.url,\n position: `((${CssProp.B.len_or_perc}|left|center|right|top|bottom)\\\\s*){1,4}`,\n right: `${CssProp.B.length}|auto`,\n shadow: '',\n size: `closest-side|farthest-side|closest-corner|farthest-corner|${CssProp.B.length}|(${CssProp.B.len_or_perc})\\\\s+(${CssProp.B.len_or_perc})`,\n top: `${CssProp.B.length}|auto`\n};\nCssProp._C1 = {\n image_list: `image\\\\(\\\\s*(${CssProp.B.url})*\\\\s*(${CssProp.B.url}|${CssProp._C.color})\\\\s*\\\\)`,\n linear_color_stop: `(${CssProp._C.color})(\\\\s*${CssProp._C.color_stop_length})?`,\n shadow: `((${CssProp._C.color})\\\\s+((${CssProp.B.length})\\\\s*){2,4}(\\s+inset)?)|((inset\\\\s+)?((${CssProp.B.length})\\\\s*){2,4}\\\\s*(${CssProp._C.color})?)`\n};\nCssProp._C2 = {\n color_stop_list: `((${CssProp._C1.linear_color_stop})(\\\\s*(${CssProp._C.linear_color_hint}))?\\\\s*,\\\\s*)+(${CssProp._C1.linear_color_stop})`,\n shape: `rect\\\\(\\\\s*(${CssProp._C.top})\\\\s*,\\\\s*(${CssProp._C.right})\\\\s*,\\\\s*(${CssProp._C.bottom})\\\\s*,\\\\s*(${CssProp._C.left})\\\\s*\\\\)`\n};\nCssProp._C3 = {\n linear_gradient: `linear-gradient\\\\((((${CssProp.B.angle})|to\\\\s+(${CssProp.A.side_or_corner}))\\\\s*,\\\\s*)?\\\\s*(${CssProp._C2.color_stop_list})\\\\s*\\\\)`,\n radial_gradient: `radial-gradient\\\\(((((${CssProp.A.ending_shape})|(${CssProp._C.size}))\\\\s*)*\\\\s*(at\\\\s+${CssProp._C.position})?\\\\s*,\\\\s*)?\\\\s*(${CssProp._C2.color_stop_list})\\\\s*\\\\)`\n};\nCssProp._C4 = {\n image: `${CssProp.B.url}|${CssProp._C3.linear_gradient}|${CssProp._C3.radial_gradient}|${CssProp._C1.image_list}`,\n bg_image: `(${CssProp.B.url}|${CssProp._C3.linear_gradient}|${CssProp._C3.radial_gradient}|${CssProp._C1.image_list})|none`\n};\nCssProp.C = {\n ...CssProp._C,\n ...CssProp._C1,\n ...CssProp._C2,\n ...CssProp._C3,\n ...CssProp._C4\n};\n/*\n * Property value regular expressions not dependent on other sub expressions\n */\nCssProp.AP = {\n border_collapse: `collapse|separate`,\n box: `normal|none|contents`,\n box_sizing: `content-box|padding-box|border-box`,\n caption_side: `top|bottom`,\n clear: `none|left|right|both`,\n direction: `ltr|rtl`,\n empty_cells: `show|hide`,\n float: `left|right|none`,\n font_stretch: `normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded`,\n font_style: `normal|italic|oblique`,\n font_variant: `normal|small-caps`,\n font_weight: `normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900`,\n list_style_position: `inside|outside`,\n list_style_type: `disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-latin|upper-latin|armenian|georgian|lower-alpha|upper-alpha|none`,\n overflow: `visible|hidden|scroll|auto`,\n overflow_wrap: `normal|break-word`,\n overflow_x: `visible|hidden|scroll|auto|no-display|no-content`,\n page_break_after: `auto|always|avoid|left|right`,\n page_break_before: `auto|always|avoid|left|right`,\n page_break_inside: `avoid|auto`,\n position: `static|relative|absolute`,\n resize: `none|both|horizontal|vertical`,\n speak: `normal|none|spell-out`,\n speak_header: `once|always`,\n speak_numeral: `digits|continuous`,\n speak_punctuation: `code|none`,\n table_layout: `auto|fixed`,\n text_align: `left|right|center|justify`,\n text_decoration: `none|((underline|overline|line-through|blink)\\\\s*)+`,\n text_transform: `capitalize|uppercase|lowercase|none`,\n text_wrap: `normal|unrestricted|none|suppress`,\n unicode_bidi: `normal|embed|bidi-override`,\n visibility: `visible|hidden|collapse`,\n white_space: `normal|pre|nowrap|pre-wrap|pre-line`,\n word_break: `normal|keep-all|break-all`\n};\n/*\n * Compound propertiy value regular expressions (i.e. dependent on other sub expressions)\n */\nCssProp._CP = {\n background_attachment: `${CssProp.A.attachment}(,\\\\s*${CssProp.A.attachment})*`,\n background_color: CssProp.C.color,\n background_origin: `${CssProp.A.box}(,\\\\s*${CssProp.A.box})*`,\n background_repeat: `${CssProp.A.repeat_style}(,\\\\s*${CssProp.A.repeat_style})*`,\n border: `((${CssProp.C.border_width}|${CssProp.A.border_style}|${CssProp.C.color})\\\\s*){1,3}`,\n border_radius: `((${CssProp.B.len_or_perc})\\\\s*){1,4}(\\\\/\\\\s*((${CssProp.B.len_or_perc})\\\\s*){1,4})?`,\n border_spacing: `${CssProp.B.length}\\\\s*(${CssProp.B.length})?`,\n border_top_color: CssProp.C.color,\n border_top_style: CssProp.A.border_style,\n border_width: `((${CssProp.C.border_width})\\\\s*){1,4}`,\n color: CssProp.C.color,\n cursor: `(${CssProp.B.url}(\\\\s*,\\\\s*)?)*(auto|crosshair|default|pointer|move|e-resize|ne-resize|nw-resize|n-resize|se-resize|sw-resize|s-resize|w-resize|text|wait|help|progress|all-scroll|col-resize|hand|no-drop|not-allowed|row-resize|vertical-text)`,\n display: `inline|block|list-item|run-in|inline-list-item|inline-block|table|inline-table|table-cell|table-caption|flex|inline-flex|grid|inline-grid|${CssProp.A.display_inside}|${CssProp.A.display_outside}|inherit|inline-box|inline-stack`,\n display_outside: CssProp.A.display_outside,\n elevation: `${CssProp.B.angle}|below|level|above|higher|lower`,\n font_family: `(${CssProp.C.family_name}|${CssProp.A.generic_family})(,\\\\s*(${CssProp.C.family_name}|${CssProp.A.generic_family}))*`,\n height: `${CssProp.B.length}|${CssProp.B.percentage}|auto`,\n letter_spacing: `normal|${CssProp.B.length}`,\n list_style_image: `${CssProp.C.image}|none`,\n margin_right: CssProp.C.margin_width,\n max_height: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}|none|auto`,\n min_height: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}|auto`,\n opacity: CssProp.C.alphavalue,\n outline_color: `${CssProp.C.color}|invert`,\n outline_width: CssProp.C.border_width,\n padding: `((${CssProp.C.padding_width})\\\\s*){1,4}`,\n padding_top: CssProp.C.padding_width,\n pitch_range: CssProp.N.number,\n right: `${CssProp.B.length}|${CssProp.B.percentage}|auto`,\n stress: CssProp.N.number,\n text_indent: `${CssProp.B.length}|${CssProp.B.percentage}`,\n text_shadow: `none|${CssProp.C.shadow}(,\\\\s*(${CssProp.C.shadow}))*`,\n volume: `${CssProp.N.number_pos}|${CssProp.B.percentage_pos}|silent|x-soft|soft|medium|loud|x-loud`,\n word_wrap: CssProp.AP.overflow_wrap,\n zoom: `normal|${CssProp.N.number_pos}|${CssProp.B.percentage_pos}`,\n backface_visibility: CssProp.AP.visibility,\n background_clip: `${CssProp.A.box}(,\\\\s*(${CssProp.A.box}))*`,\n background_position: `${CssProp.C.bg_position}(,\\\\s*(${CssProp.C.bg_position}))*`,\n border_bottom_color: CssProp.C.color,\n border_bottom_style: CssProp.A.border_style,\n border_color: `((${CssProp.C.color})\\\\s*){1,4}`,\n border_left_color: CssProp.C.color,\n border_right_color: CssProp.C.color,\n border_style: `((${CssProp.A.border_style})\\\\s*){1,4}`,\n border_top_left_radius: `(${CssProp.B.length}|${CssProp.B.percentage})(\\\\s*(${CssProp.B.length}|${CssProp.B.percentage}))?`,\n border_top_width: CssProp.C.border_width,\n box_shadow: `none|${CssProp.C.shadow}(,\\\\s*(${CssProp.C.shadow}))*`,\n clip: `${CssProp.C.shape}|auto`,\n display_inside: CssProp.A.display_inside,\n font_size: `${CssProp.A.absolute_size}|${CssProp.A.relative_size}|${CssProp.B.length_pos}|${CssProp.B.percentage_pos}`,\n line_height: `normal|${CssProp.N.number_pos}|${CssProp.B.length_pos}|${CssProp.B.percentage_pos}`,\n margin_left: CssProp.C.margin_width,\n max_width: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}|none|auto`,\n outline_style: CssProp.A.border_style,\n padding_bottom: CssProp.C.padding_width,\n padding_right: CssProp.C.padding_width,\n perspective: `none|${CssProp.B.length}`,\n richness: CssProp.N.number,\n text_overflow: `((clip|ellipsis|${CssProp.B.string})\\\\s*){1,2}`,\n top: `${CssProp.B.length}|${CssProp.B.percentage}|auto`,\n width: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}|auto`,\n z_index: `auto|${CssProp.B.z_index}`,\n // Simplified background\n background: `(((${CssProp.C.bg_position}\\\\s*(\\\\/\\\\s*${CssProp.C.bg_size})?)|(${CssProp.A.repeat_style})|(${CssProp.A.attachment})|(${CssProp.A.bg_origin})|(${CssProp.C.bg_image})|(${CssProp.C.color}))\\\\s*)+`,\n background_size: `${CssProp.C.bg_size}(,\\\\s*${CssProp.C.bg_size})*`,\n border_bottom_left_radius: `(${CssProp.B.length}|${CssProp.B.percentage})(\\\\s*(${CssProp.B.length}|${CssProp.B.percentage}))?`,\n border_bottom_width: CssProp.C.border_width,\n border_left_style: CssProp.A.border_style,\n border_right_style: CssProp.A.border_style,\n border_top: `((${CssProp.C.border_width}|${CssProp.A.border_style}|${CssProp.C.color})\\\\s*){1,3}`,\n bottom: `${CssProp.B.len_or_perc}|auto`,\n list_style: `((${CssProp.AP.list_style_type}|${CssProp.AP.list_style_position}|${CssProp.C.image}|none})\\\\s*){1,3}`,\n margin_top: CssProp.C.margin_width,\n outline: `((${CssProp.C.color}|invert|${CssProp.A.border_style}|${CssProp.C.border_width})\\\\s*){1,3}`,\n overflow_y: CssProp.AP.overflow_x,\n pitch: `${CssProp.B.frequency}|x-low|low|medium|high|x-high`,\n vertical_align: `baseline|sub|super|top|text-top|middle|bottom|text-bottom|${CssProp.B.len_or_perc}`,\n word_spacing: `normal|${CssProp.B.length}`,\n background_image: `${CssProp.C.bg_image}(,\\\\s*${CssProp.C.bg_image})*`,\n border_bottom_right_radius: `(${CssProp.B.length}|${CssProp.B.percentage})(\\\\s*(${CssProp.B.length}|${CssProp.B.percentage}))?`,\n border_left_width: CssProp.C.border_width,\n border_right_width: CssProp.C.border_width,\n left: `${CssProp.B.len_or_perc}|auto`,\n margin_bottom: CssProp.C.margin_width,\n pause_after: `${CssProp.B.time}|${CssProp.B.percentage}`,\n speech_rate: `${CssProp.N.number}|x-slow|slow|medium|fast|x-fast|faster|slower`,\n transition_duration: `${CssProp.B.time}(,\\\\s*${CssProp.B.time})*`,\n border_bottom: `((${CssProp.C.border_width}|${CssProp.A.border_style}|${CssProp.C.color})\\\\s*){1,3}`,\n border_right: `((${CssProp.C.border_width}|${CssProp.A.border_style}|${CssProp.C.color})\\\\s*){1,3}`,\n margin: `((${CssProp.C.margin_width})\\\\s*){1,4}`,\n padding_left: CssProp.C.padding_width,\n border_left: `((${CssProp.C.border_width}|${CssProp.A.border_style}|${CssProp.C.color})\\\\s*){1,3}`,\n quotes: `(${CssProp.B.string}\\\\s*${CssProp.B.string})+|none`,\n border_top_right_radius: `(${CssProp.B.length}|${CssProp.B.percentage})(\\\\s*(${CssProp.B.length}|${CssProp.B.percentage}))?`,\n min_width: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}|auto`\n};\nCssProp._CP1 = {\n font: `(((((${CssProp.AP.font_style}|${CssProp.AP.font_variant}|${CssProp.AP.font_weight})\\\\s*){1,3})?\\\\s*(${CssProp._CP.font_size})\\\\s*(\\\\/\\\\s*(${CssProp._CP.line_height}))?\\\\s+(${CssProp._CP.font_family}))|caption|icon|menu|message-box|small-caption|status-bar)`\n};\nCssProp.CP = { ...CssProp._CP, ...CssProp._CP1 };\n// CSS Property value validation regular expressions for use with sanitize-html\nCssProp.BORDER_COLLAPSE = CssProp.reg(CssProp.AP.border_collapse);\nCssProp.BOX = CssProp.reg(CssProp.AP.box);\nCssProp.BOX_SIZING = CssProp.reg(CssProp.AP.box_sizing);\nCssProp.CAPTION_SIDE = CssProp.reg(CssProp.AP.caption_side);\nCssProp.CLEAR = CssProp.reg(CssProp.AP.clear);\nCssProp.DIRECTION = CssProp.reg(CssProp.AP.direction);\nCssProp.EMPTY_CELLS = CssProp.reg(CssProp.AP.empty_cells);\nCssProp.FLOAT = CssProp.reg(CssProp.AP.float);\nCssProp.FONT_STRETCH = CssProp.reg(CssProp.AP.font_stretch);\nCssProp.FONT_STYLE = CssProp.reg(CssProp.AP.font_style);\nCssProp.FONT_VARIANT = CssProp.reg(CssProp.AP.font_variant);\nCssProp.FONT_WEIGHT = CssProp.reg(CssProp.AP.font_weight);\nCssProp.LIST_STYLE_POSITION = CssProp.reg(CssProp.AP.list_style_position);\nCssProp.LIST_STYLE_TYPE = CssProp.reg(CssProp.AP.list_style_type);\nCssProp.OVERFLOW = CssProp.reg(CssProp.AP.overflow);\nCssProp.OVERFLOW_WRAP = CssProp.reg(CssProp.AP.overflow_wrap);\nCssProp.OVERFLOW_X = CssProp.reg(CssProp.AP.overflow_x);\nCssProp.PAGE_BREAK_AFTER = CssProp.reg(CssProp.AP.page_break_after);\nCssProp.PAGE_BREAK_BEFORE = CssProp.reg(CssProp.AP.page_break_before);\nCssProp.PAGE_BREAK_INSIDE = CssProp.reg(CssProp.AP.page_break_inside);\nCssProp.POSITION = CssProp.reg(CssProp.AP.position);\nCssProp.RESIZE = CssProp.reg(CssProp.AP.resize);\nCssProp.SPEAK = CssProp.reg(CssProp.AP.speak);\nCssProp.SPEAK_HEADER = CssProp.reg(CssProp.AP.speak_header);\nCssProp.SPEAK_NUMERAL = CssProp.reg(CssProp.AP.speak_numeral);\nCssProp.SPEAK_PUNCTUATION = CssProp.reg(CssProp.AP.speak_punctuation);\nCssProp.TABLE_LAYOUT = CssProp.reg(CssProp.AP.table_layout);\nCssProp.TEXT_ALIGN = CssProp.reg(CssProp.AP.text_align);\nCssProp.TEXT_DECORATION = CssProp.reg(CssProp.AP.text_decoration);\nCssProp.TEXT_TRANSFORM = CssProp.reg(CssProp.AP.text_transform);\nCssProp.TEXT_WRAP = CssProp.reg(CssProp.AP.text_wrap);\nCssProp.UNICODE_BIDI = CssProp.reg(CssProp.AP.unicode_bidi);\nCssProp.VISIBILITY = CssProp.reg(CssProp.AP.visibility);\nCssProp.WHITE_SPACE = CssProp.reg(CssProp.AP.white_space);\nCssProp.WORD_BREAK = CssProp.reg(CssProp.AP.word_break);\nCssProp.BACKGROUND_ATTACHMENT = CssProp.reg(CssProp.CP.background_attachment);\nCssProp.BACKGROUND_COLOR = CssProp.reg(CssProp.CP.background_color);\nCssProp.BACKGROUND_ORIGIN = CssProp.reg(CssProp.CP.background_origin);\nCssProp.BACKGROUND_REPEAT = CssProp.reg(CssProp.CP.background_repeat);\nCssProp.BORDER = CssProp.reg(CssProp.CP.border);\nCssProp.BORDER_RADIUS = CssProp.reg(CssProp.CP.border_radius);\nCssProp.BORDER_SPACING = CssProp.reg(CssProp.CP.border_spacing);\nCssProp.BORDER_TOP_COLOR = CssProp.reg(CssProp.CP.border_top_color);\nCssProp.BORDER_TOP_STYLE = CssProp.reg(CssProp.CP.border_top_style);\nCssProp.BORDER_WIDTH = CssProp.reg(CssProp.CP.border_width);\nCssProp.COLOR = CssProp.reg(CssProp.CP.color);\nCssProp.CURSOR = CssProp.reg(CssProp.CP.cursor);\nCssProp.DISPLAY = CssProp.reg(CssProp.CP.display);\nCssProp.DISPLAY_OUTSIDE = CssProp.reg(CssProp.CP.display_outside);\nCssProp.ELEVATION = CssProp.reg(CssProp.CP.elevation);\nCssProp.FONT_FAMILY = CssProp.reg(CssProp.CP.font_family);\nCssProp.HEIGHT = CssProp.reg(CssProp.CP.height);\nCssProp.LETTER_SPACING = CssProp.reg(CssProp.CP.letter_spacing);\nCssProp.LIST_STYLE_IMAGE = CssProp.reg(CssProp.CP.list_style_image);\nCssProp.MARGIN_RIGHT = CssProp.reg(CssProp.CP.margin_right);\nCssProp.MAX_HEIGHT = CssProp.reg(CssProp.CP.max_height);\nCssProp.MIN_HEIGHT = CssProp.reg(CssProp.CP.min_height);\nCssProp.OPACITY = CssProp.reg(CssProp.CP.opacity);\nCssProp.OUTLINE_COLOR = CssProp.reg(CssProp.CP.outline_color);\nCssProp.OUTLINE_WIDTH = CssProp.reg(CssProp.CP.outline_width);\nCssProp.PADDING = CssProp.reg(CssProp.CP.padding);\nCssProp.PADDING_TOP = CssProp.reg(CssProp.CP.padding_top);\nCssProp.PITCH_RANGE = CssProp.reg(CssProp.CP.pitch_range);\nCssProp.RIGHT = CssProp.reg(CssProp.CP.right);\nCssProp.STRESS = CssProp.reg(CssProp.CP.stress);\nCssProp.TEXT_INDENT = CssProp.reg(CssProp.CP.text_indent);\nCssProp.TEXT_SHADOW = CssProp.reg(CssProp.CP.text_shadow);\nCssProp.VOLUME = CssProp.reg(CssProp.CP.volume);\nCssProp.WORD_WRAP = CssProp.reg(CssProp.CP.word_wrap);\nCssProp.ZOOM = CssProp.reg(CssProp.CP.zoom);\nCssProp.BACKFACE_VISIBILITY = CssProp.reg(CssProp.CP.backface_visibility);\nCssProp.BACKGROUND_CLIP = CssProp.reg(CssProp.CP.background_clip);\nCssProp.BACKGROUND_POSITION = CssProp.reg(CssProp.CP.background_position);\nCssProp.BORDER_BOTTOM_COLOR = CssProp.reg(CssProp.CP.border_bottom_color);\nCssProp.BORDER_BOTTOM_STYLE = CssProp.reg(CssProp.CP.border_bottom_style);\nCssProp.BORDER_COLOR = CssProp.reg(CssProp.CP.border_color);\nCssProp.BORDER_LEFT_COLOR = CssProp.reg(CssProp.CP.border_left_color);\nCssProp.BORDER_RIGHT_COLOR = CssProp.reg(CssProp.CP.border_right_color);\nCssProp.BORDER_STYLE = CssProp.reg(CssProp.CP.border_style);\nCssProp.BORDER_TOP_LEFT_RADIUS = CssProp.reg(CssProp.CP.border_top_left_radius);\nCssProp.BORDER_TOP_WIDTH = CssProp.reg(CssProp.CP.border_top_width);\nCssProp.BOX_SHADOW = CssProp.reg(CssProp.CP.box_shadow);\nCssProp.CLIP = CssProp.reg(CssProp.CP.clip);\nCssProp.DISPLAY_INSIDE = CssProp.reg(CssProp.CP.display_inside);\nCssProp.FONT_SIZE = CssProp.reg(CssProp.CP.font_size);\nCssProp.LINE_HEIGHT = CssProp.reg(CssProp.CP.line_height);\nCssProp.MARGIN_LEFT = CssProp.reg(CssProp.CP.margin_left);\nCssProp.MAX_WIDTH = CssProp.reg(CssProp.CP.max_width);\nCssProp.OUTLINE_STYLE = CssProp.reg(CssProp.CP.outline_style);\nCssProp.PADDING_BOTTOM = CssProp.reg(CssProp.CP.padding_bottom);\nCssProp.PADDING_RIGHT = CssProp.reg(CssProp.CP.padding_right);\nCssProp.PERSPECTIVE = CssProp.reg(CssProp.CP.perspective);\nCssProp.RICHNESS = CssProp.reg(CssProp.CP.richness);\nCssProp.TEXT_OVERFLOW = CssProp.reg(CssProp.CP.text_overflow);\nCssProp.TOP = CssProp.reg(CssProp.CP.top);\nCssProp.WIDTH = CssProp.reg(CssProp.CP.width);\nCssProp.Z_INDEX = CssProp.reg(CssProp.CP.z_index);\nCssProp.BACKGROUND = CssProp.reg(CssProp.CP.background);\nCssProp.BACKGROUND_SIZE = CssProp.reg(CssProp.CP.background_size);\nCssProp.BORDER_BOTTOM_LEFT_RADIUS = CssProp.reg(CssProp.CP.border_bottom_left_radius);\nCssProp.BORDER_BOTTOM_WIDTH = CssProp.reg(CssProp.CP.border_bottom_width);\nCssProp.BORDER_LEFT_STYLE = CssProp.reg(CssProp.CP.border_left_style);\nCssProp.BORDER_RIGHT_STYLE = CssProp.reg(CssProp.CP.border_right_style);\nCssProp.BORDER_TOP = CssProp.reg(CssProp.CP.border_top);\nCssProp.BOTTOM = CssProp.reg(CssProp.CP.bottom);\nCssProp.LIST_STYLE = CssProp.reg(CssProp.CP.list_style);\nCssProp.MARGIN_TOP = CssProp.reg(CssProp.CP.margin_top);\nCssProp.OUTLINE = CssProp.reg(CssProp.CP.outline);\nCssProp.OVERFLOW_Y = CssProp.reg(CssProp.CP.overflow_y);\nCssProp.PITCH = CssProp.reg(CssProp.CP.pitch);\nCssProp.VERTICAL_ALIGN = CssProp.reg(CssProp.CP.vertical_align);\nCssProp.WORD_SPACING = CssProp.reg(CssProp.CP.word_spacing);\nCssProp.BACKGROUND_IMAGE = CssProp.reg(CssProp.CP.background_image);\nCssProp.BORDER_BOTTOM_RIGHT_RADIUS = CssProp.reg(CssProp.CP.border_bottom_right_radius);\nCssProp.BORDER_LEFT_WIDTH = CssProp.reg(CssProp.CP.border_left_width);\nCssProp.BORDER_RIGHT_WIDTH = CssProp.reg(CssProp.CP.border_right_width);\nCssProp.LEFT = CssProp.reg(CssProp.CP.left);\nCssProp.MARGIN_BOTTOM = CssProp.reg(CssProp.CP.margin_bottom);\nCssProp.PAUSE_AFTER = CssProp.reg(CssProp.CP.pause_after);\nCssProp.SPEECH_RATE = CssProp.reg(CssProp.CP.speech_rate);\nCssProp.TRANSITION_DURATION = CssProp.reg(CssProp.CP.transition_duration);\nCssProp.BORDER_BOTTOM = CssProp.reg(CssProp.CP.border_bottom);\nCssProp.BORDER_RIGHT = CssProp.reg(CssProp.CP.border_right);\nCssProp.MARGIN = CssProp.reg(CssProp.CP.margin);\nCssProp.PADDING_LEFT = CssProp.reg(CssProp.CP.padding_left);\nCssProp.BORDER_LEFT = CssProp.reg(CssProp.CP.border_left);\nCssProp.FONT = CssProp.reg(CssProp.CP.font);\nCssProp.QUOTES = CssProp.reg(CssProp.CP.quotes);\nCssProp.BORDER_TOP_RIGHT_RADIUS = CssProp.reg(CssProp.CP.border_top_right_radius);\nCssProp.MIN_WIDTH = CssProp.reg(CssProp.CP.min_width);\n/**\n * A class to sanitize HTML strings.\n */\nclass Sanitizer {\n constructor() {\n this._autolink = true;\n this._allowNamedProperties = false;\n this._generateOptions = () => ({\n // HTML tags that are allowed to be used. Tags were extracted from Google Caja\n allowedTags: [\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'colspan',\n 'command',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'i',\n // 'iframe' is allowed by Google Caja, but disallowed by default by sanitize-html\n // , 'iframe'\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'map',\n 'mark',\n 'menu',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'pre',\n 'progress',\n 'q',\n 'rowspan',\n 's',\n 'samp',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strike',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr'\n ],\n // Attributes that HTML tags are allowed to have, extracted from Google Caja.\n // See https://github.com/jupyterlab/jupyterlab/issues/1812#issuecomment-285848435\n allowedAttributes: {\n '*': [\n 'class',\n 'dir',\n 'draggable',\n 'hidden',\n ...(this._allowNamedProperties ? ['id'] : []),\n 'inert',\n 'itemprop',\n 'itemref',\n 'itemscope',\n 'lang',\n 'spellcheck',\n 'style',\n 'title',\n 'translate'\n ],\n // 'rel' and 'target' were *not* allowed by Google Caja\n a: [\n 'accesskey',\n 'coords',\n 'href',\n 'hreflang',\n ...(this._allowNamedProperties ? ['name'] : []),\n 'rel',\n 'shape',\n 'tabindex',\n 'target',\n 'type'\n ],\n area: [\n 'accesskey',\n 'alt',\n 'coords',\n 'href',\n 'nohref',\n 'shape',\n 'tabindex'\n ],\n // 'autoplay' was *not* allowed by Google Caja\n audio: [\n 'autoplay',\n 'controls',\n 'loop',\n 'mediagroup',\n 'muted',\n 'preload',\n 'src'\n ],\n bdo: ['dir'],\n blockquote: ['cite'],\n br: ['clear'],\n button: [\n 'accesskey',\n 'data-commandlinker-args',\n 'data-commandlinker-command',\n 'disabled',\n ...(this._allowNamedProperties ? ['name'] : []),\n 'tabindex',\n 'type',\n 'value'\n ],\n canvas: ['height', 'width'],\n caption: ['align'],\n col: ['align', 'char', 'charoff', 'span', 'valign', 'width'],\n colgroup: ['align', 'char', 'charoff', 'span', 'valign', 'width'],\n command: [\n 'checked',\n 'command',\n 'disabled',\n 'icon',\n 'label',\n 'radiogroup',\n 'type'\n ],\n data: ['value'],\n del: ['cite', 'datetime'],\n details: ['open'],\n dir: ['compact'],\n div: ['align'],\n dl: ['compact'],\n fieldset: ['disabled'],\n font: ['color', 'face', 'size'],\n form: [\n 'accept',\n 'autocomplete',\n 'enctype',\n 'method',\n ...(this._allowNamedProperties ? ['name'] : []),\n 'novalidate'\n ],\n h1: ['align'],\n h2: ['align'],\n h3: ['align'],\n h4: ['align'],\n h5: ['align'],\n h6: ['align'],\n hr: ['align', 'noshade', 'size', 'width'],\n iframe: [\n 'align',\n 'frameborder',\n 'height',\n 'marginheight',\n 'marginwidth',\n 'width'\n ],\n img: [\n 'align',\n 'alt',\n 'border',\n 'height',\n 'hspace',\n 'ismap',\n ...(this._allowNamedProperties ? ['name'] : []),\n 'src',\n 'usemap',\n 'vspace',\n 'width'\n ],\n input: [\n 'accept',\n 'accesskey',\n 'align',\n 'alt',\n 'autocomplete',\n 'checked',\n 'disabled',\n 'inputmode',\n 'ismap',\n 'list',\n 'max',\n 'maxlength',\n 'min',\n 'multiple',\n ...(this._allowNamedProperties ? ['name'] : []),\n 'placeholder',\n 'readonly',\n 'required',\n 'size',\n 'src',\n 'step',\n 'tabindex',\n 'type',\n 'usemap',\n 'value'\n ],\n ins: ['cite', 'datetime'],\n label: ['accesskey', 'for'],\n legend: ['accesskey', 'align'],\n li: ['type', 'value'],\n map: this._allowNamedProperties ? ['name'] : [],\n menu: ['compact', 'label', 'type'],\n meter: ['high', 'low', 'max', 'min', 'value'],\n ol: ['compact', 'reversed', 'start', 'type'],\n optgroup: ['disabled', 'label'],\n option: ['disabled', 'label', 'selected', 'value'],\n output: ['for', ...(this._allowNamedProperties ? ['name'] : [])],\n p: ['align'],\n pre: ['width'],\n progress: ['max', 'min', 'value'],\n q: ['cite'],\n select: [\n 'autocomplete',\n 'disabled',\n 'multiple',\n ...(this._allowNamedProperties ? ['name'] : []),\n 'required',\n 'size',\n 'tabindex'\n ],\n source: ['type'],\n table: [\n 'align',\n 'bgcolor',\n 'border',\n 'cellpadding',\n 'cellspacing',\n 'frame',\n 'rules',\n 'summary',\n 'width'\n ],\n tbody: ['align', 'char', 'charoff', 'valign'],\n td: [\n 'abbr',\n 'align',\n 'axis',\n 'bgcolor',\n 'char',\n 'charoff',\n 'colspan',\n 'headers',\n 'height',\n 'nowrap',\n 'rowspan',\n 'scope',\n 'valign',\n 'width'\n ],\n textarea: [\n 'accesskey',\n 'autocomplete',\n 'cols',\n 'disabled',\n 'inputmode',\n ...(this._allowNamedProperties ? ['name'] : []),\n 'placeholder',\n 'readonly',\n 'required',\n 'rows',\n 'tabindex',\n 'wrap'\n ],\n tfoot: ['align', 'char', 'charoff', 'valign'],\n th: [\n 'abbr',\n 'align',\n 'axis',\n 'bgcolor',\n 'char',\n 'charoff',\n 'colspan',\n 'headers',\n 'height',\n 'nowrap',\n 'rowspan',\n 'scope',\n 'valign',\n 'width'\n ],\n thead: ['align', 'char', 'charoff', 'valign'],\n tr: ['align', 'bgcolor', 'char', 'charoff', 'valign'],\n track: ['default', 'kind', 'label', 'srclang'],\n ul: ['compact', 'type'],\n video: [\n 'autoplay',\n 'controls',\n 'height',\n 'loop',\n 'mediagroup',\n 'muted',\n 'poster',\n 'preload',\n 'src',\n 'width'\n ]\n },\n // Inline CSS styles that HTML tags may have (and their allowed values)\n allowedStyles: {\n // To simplify the data, all styles are allowed on all tags that allow the style attribute\n '*': {\n 'backface-visibility': [CssProp.BACKFACE_VISIBILITY],\n background: [CssProp.BACKGROUND],\n 'background-attachment': [CssProp.BACKGROUND_ATTACHMENT],\n 'background-clip': [CssProp.BACKGROUND_CLIP],\n 'background-color': [CssProp.BACKGROUND_COLOR],\n 'background-image': [CssProp.BACKGROUND_IMAGE],\n 'background-origin': [CssProp.BACKGROUND_ORIGIN],\n 'background-position': [CssProp.BACKGROUND_POSITION],\n 'background-repeat': [CssProp.BACKGROUND_REPEAT],\n 'background-size': [CssProp.BACKGROUND_SIZE],\n border: [CssProp.BORDER],\n 'border-bottom': [CssProp.BORDER_BOTTOM],\n 'border-bottom-color': [CssProp.BORDER_BOTTOM_COLOR],\n 'border-bottom-left-radius': [CssProp.BORDER_BOTTOM_LEFT_RADIUS],\n 'border-bottom-right-radius': [CssProp.BORDER_BOTTOM_RIGHT_RADIUS],\n 'border-bottom-style': [CssProp.BORDER_BOTTOM_STYLE],\n 'border-bottom-width': [CssProp.BORDER_BOTTOM_WIDTH],\n 'border-collapse': [CssProp.BORDER_COLLAPSE],\n 'border-color': [CssProp.BORDER_COLOR],\n 'border-left': [CssProp.BORDER_LEFT],\n 'border-left-color': [CssProp.BORDER_LEFT_COLOR],\n 'border-left-style': [CssProp.BORDER_LEFT_STYLE],\n 'border-left-width': [CssProp.BORDER_LEFT_WIDTH],\n 'border-radius': [CssProp.BORDER_RADIUS],\n 'border-right': [CssProp.BORDER_RIGHT],\n 'border-right-color': [CssProp.BORDER_RIGHT_COLOR],\n 'border-right-style': [CssProp.BORDER_RIGHT_STYLE],\n 'border-right-width': [CssProp.BORDER_RIGHT_WIDTH],\n 'border-spacing': [CssProp.BORDER_SPACING],\n 'border-style': [CssProp.BORDER_STYLE],\n 'border-top': [CssProp.BORDER_TOP],\n 'border-top-color': [CssProp.BORDER_TOP_COLOR],\n 'border-top-left-radius': [CssProp.BORDER_TOP_LEFT_RADIUS],\n 'border-top-right-radius': [CssProp.BORDER_TOP_RIGHT_RADIUS],\n 'border-top-style': [CssProp.BORDER_TOP_STYLE],\n 'border-top-width': [CssProp.BORDER_TOP_WIDTH],\n 'border-width': [CssProp.BORDER_WIDTH],\n bottom: [CssProp.BOTTOM],\n box: [CssProp.BOX],\n 'box-shadow': [CssProp.BOX_SHADOW],\n 'box-sizing': [CssProp.BOX_SIZING],\n 'caption-side': [CssProp.CAPTION_SIDE],\n clear: [CssProp.CLEAR],\n clip: [CssProp.CLIP],\n color: [CssProp.COLOR],\n cursor: [CssProp.CURSOR],\n direction: [CssProp.DIRECTION],\n display: [CssProp.DISPLAY],\n 'display-inside': [CssProp.DISPLAY_INSIDE],\n 'display-outside': [CssProp.DISPLAY_OUTSIDE],\n elevation: [CssProp.ELEVATION],\n 'empty-cells': [CssProp.EMPTY_CELLS],\n float: [CssProp.FLOAT],\n font: [CssProp.FONT],\n 'font-family': [CssProp.FONT_FAMILY],\n 'font-size': [CssProp.FONT_SIZE],\n 'font-stretch': [CssProp.FONT_STRETCH],\n 'font-style': [CssProp.FONT_STYLE],\n 'font-variant': [CssProp.FONT_VARIANT],\n 'font-weight': [CssProp.FONT_WEIGHT],\n height: [CssProp.HEIGHT],\n left: [CssProp.LEFT],\n 'letter-spacing': [CssProp.LETTER_SPACING],\n 'line-height': [CssProp.LINE_HEIGHT],\n 'list-style': [CssProp.LIST_STYLE],\n 'list-style-image': [CssProp.LIST_STYLE_IMAGE],\n 'list-style-position': [CssProp.LIST_STYLE_POSITION],\n 'list-style-type': [CssProp.LIST_STYLE_TYPE],\n margin: [CssProp.MARGIN],\n 'margin-bottom': [CssProp.MARGIN_BOTTOM],\n 'margin-left': [CssProp.MARGIN_LEFT],\n 'margin-right': [CssProp.MARGIN_RIGHT],\n 'margin-top': [CssProp.MARGIN_TOP],\n 'max-height': [CssProp.MAX_HEIGHT],\n 'max-width': [CssProp.MAX_WIDTH],\n 'min-height': [CssProp.MIN_HEIGHT],\n 'min-width': [CssProp.MIN_WIDTH],\n opacity: [CssProp.OPACITY],\n outline: [CssProp.OUTLINE],\n 'outline-color': [CssProp.OUTLINE_COLOR],\n 'outline-style': [CssProp.OUTLINE_STYLE],\n 'outline-width': [CssProp.OUTLINE_WIDTH],\n overflow: [CssProp.OVERFLOW],\n 'overflow-wrap': [CssProp.OVERFLOW_WRAP],\n 'overflow-x': [CssProp.OVERFLOW_X],\n 'overflow-y': [CssProp.OVERFLOW_Y],\n padding: [CssProp.PADDING],\n 'padding-bottom': [CssProp.PADDING_BOTTOM],\n 'padding-left': [CssProp.PADDING_LEFT],\n 'padding-right': [CssProp.PADDING_RIGHT],\n 'padding-top': [CssProp.PADDING_TOP],\n 'page-break-after': [CssProp.PAGE_BREAK_AFTER],\n 'page-break-before': [CssProp.PAGE_BREAK_BEFORE],\n 'page-break-inside': [CssProp.PAGE_BREAK_INSIDE],\n 'pause-after': [CssProp.PAUSE_AFTER],\n perspective: [CssProp.PERSPECTIVE],\n pitch: [CssProp.PITCH],\n 'pitch-range': [CssProp.PITCH_RANGE],\n position: [CssProp.POSITION],\n quotes: [CssProp.QUOTES],\n resize: [CssProp.RESIZE],\n richness: [CssProp.RICHNESS],\n right: [CssProp.RIGHT],\n speak: [CssProp.SPEAK],\n 'speak-header': [CssProp.SPEAK_HEADER],\n 'speak-numeral': [CssProp.SPEAK_NUMERAL],\n 'speak-punctuation': [CssProp.SPEAK_PUNCTUATION],\n 'speech-rate': [CssProp.SPEECH_RATE],\n stress: [CssProp.STRESS],\n 'table-layout': [CssProp.TABLE_LAYOUT],\n 'text-align': [CssProp.TEXT_ALIGN],\n 'text-decoration': [CssProp.TEXT_DECORATION],\n 'text-indent': [CssProp.TEXT_INDENT],\n 'text-overflow': [CssProp.TEXT_OVERFLOW],\n 'text-shadow': [CssProp.TEXT_SHADOW],\n 'text-transform': [CssProp.TEXT_TRANSFORM],\n 'text-wrap': [CssProp.TEXT_WRAP],\n top: [CssProp.TOP],\n 'unicode-bidi': [CssProp.UNICODE_BIDI],\n 'vertical-align': [CssProp.VERTICAL_ALIGN],\n visibility: [CssProp.VISIBILITY],\n volume: [CssProp.VOLUME],\n 'white-space': [CssProp.WHITE_SPACE],\n width: [CssProp.WIDTH],\n 'word-break': [CssProp.WORD_BREAK],\n 'word-spacing': [CssProp.WORD_SPACING],\n 'word-wrap': [CssProp.WORD_WRAP],\n 'z-index': [CssProp.Z_INDEX],\n zoom: [CssProp.ZOOM]\n }\n },\n transformTags: {\n // Set the \"rel\" attribute for tags to \"nofollow\".\n a: sanitize_html__WEBPACK_IMPORTED_MODULE_0___default().simpleTransform('a', { rel: 'nofollow' }),\n // Set the \"disabled\" attribute for tags.\n input: sanitize_html__WEBPACK_IMPORTED_MODULE_0___default().simpleTransform('input', { disabled: 'disabled' })\n },\n allowedSchemes: [...(sanitize_html__WEBPACK_IMPORTED_MODULE_0___default().defaults).allowedSchemes],\n allowedSchemesByTag: {\n // Allow 'attachment:' img src (used for markdown cell attachments).\n img: sanitize_html__WEBPACK_IMPORTED_MODULE_0___default().defaults.allowedSchemes.concat(['attachment'])\n },\n // Override of the default option, so we can skip 'src' attribute validation.\n // 'src' Attributes are validated to be URIs, which does not allow for embedded (image) data.\n // Since embedded data is no longer deemed to be a threat, validation can be skipped.\n // See https://github.com/jupyterlab/jupyterlab/issues/5183\n allowedSchemesAppliedToAttributes: ['href', 'cite']\n });\n this._options = this._generateOptions();\n }\n /**\n * Sanitize an HTML string.\n *\n * @param dirty - The dirty text.\n *\n * @param options - The optional sanitization options.\n *\n * @returns The sanitized string.\n */\n sanitize(dirty, options) {\n return sanitize_html__WEBPACK_IMPORTED_MODULE_0___default()(dirty, { ...this._options, ...(options || {}) });\n }\n /**\n * @returns Whether to replace URLs by HTML anchors.\n */\n getAutolink() {\n return this._autolink;\n }\n /**\n * Set the allowed schemes\n *\n * @param scheme Allowed schemes\n */\n setAllowedSchemes(scheme) {\n // Force copy of `scheme`\n this._options.allowedSchemes = [...scheme];\n }\n /**\n * Set the URL replacement boolean.\n *\n * @param autolink URL replacement boolean.\n */\n setAutolink(autolink) {\n this._autolink = autolink;\n }\n /**\n * Set the whether to allow `name` and `id` attributes.\n */\n setAllowNamedProperties(allowNamedProperties) {\n this._allowNamedProperties = allowNamedProperties;\n this._options = this._generateOptions();\n }\n}\n//# sourceMappingURL=sanitizer.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/sanitizer.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/semanticCommand.js": +/*!*******************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/semanticCommand.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SemanticCommand: () => (/* binding */ SemanticCommand)\n/* harmony export */ });\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n/**\n * Semantic group of commands\n */\nclass SemanticCommand {\n constructor() {\n this._commands = new Array();\n }\n /**\n * The command IDs used by this semantic command.\n */\n get ids() {\n return this._commands.map(c => c.id);\n }\n /**\n * Add a command to the semantic group\n *\n * @param command Command to add\n */\n add(command) {\n if (this._commands.map(c => c.id).includes(command.id)) {\n throw Error(`Command ${command.id} is already defined.`);\n }\n this._commands.push({\n isEnabled: () => true,\n rank: SemanticCommand.DEFAULT_RANK,\n ...command\n });\n }\n /**\n * Get the command id of the enabled command from this group\n * for the given widget.\n *\n * @param widget Widget\n * @returns Command id\n */\n getActiveCommandId(widget) {\n var _a;\n const commands = this._commands\n .filter(c => c.isEnabled(widget))\n .sort((a, b) => {\n const rankDelta = a.rank - b.rank;\n return rankDelta || (a.id < b.id ? -1 : 1);\n });\n const command = (_a = commands[0]) !== null && _a !== void 0 ? _a : { id: null };\n return command.id;\n }\n /**\n * Remove a command ID.\n *\n * @param id Command ID to remove\n */\n remove(id) {\n const index = this._commands.findIndex(c => c.id === id);\n if (index >= 0) {\n this._commands.splice(index, 1);\n }\n }\n}\n/**\n * Default rank for semantic command\n */\nSemanticCommand.DEFAULT_RANK = 500;\n/**\n * The `args` key for a semantic command's current widget ID.\n */\nSemanticCommand.WIDGET = 'semanticWidget';\n//# sourceMappingURL=semanticCommand.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/semanticCommand.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/sessioncontext.js": +/*!******************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/sessioncontext.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SessionContext: () => (/* binding */ SessionContext),\n/* harmony export */ SessionContextDialogs: () => (/* binding */ SessionContextDialogs)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./dialog */ \"../node_modules/@jupyterlab/apputils/lib/dialog.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n\n\n/**\n * The default implementation for a session context object.\n */\nclass SessionContext {\n /**\n * Construct a new session context.\n */\n constructor(options) {\n var _a, _b, _c, _d;\n this._path = '';\n this._name = '';\n this._type = '';\n this._prevKernelName = '';\n this._isDisposed = false;\n this._disposed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n this._session = null;\n this._ready = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate();\n this._initializing = false;\n this._initStarted = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate();\n this._initPromise = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate();\n this._isReady = false;\n this._isTerminating = false;\n this._isRestarting = false;\n this._kernelChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n this._preferenceChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n this._sessionChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n this._statusChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n this._connectionStatusChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n this._pendingInput = false;\n this._iopubMessage = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n this._unhandledMessage = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n this._propertyChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n this._dialog = null;\n this._busyDisposable = null;\n this._pendingKernelName = '';\n this._pendingSessionRequest = '';\n this.kernelManager = options.kernelManager;\n this.sessionManager = options.sessionManager;\n this.specsManager = options.specsManager;\n this.translator = options.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n this._trans = this.translator.load('jupyterlab');\n this._path = (_a = options.path) !== null && _a !== void 0 ? _a : _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.UUID.uuid4();\n this._type = (_b = options.type) !== null && _b !== void 0 ? _b : '';\n this._name = (_c = options.name) !== null && _c !== void 0 ? _c : '';\n this._setBusy = options.setBusy;\n this._kernelPreference = (_d = options.kernelPreference) !== null && _d !== void 0 ? _d : {};\n }\n /**\n * The current session connection.\n */\n get session() {\n var _a;\n return (_a = this._session) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * The session path.\n *\n * #### Notes\n * Typically `.session.path` should be used. This attribute is useful if\n * there is no current session.\n */\n get path() {\n return this._path;\n }\n /**\n * The session type.\n *\n * #### Notes\n * Typically `.session.type` should be used. This attribute is useful if\n * there is no current session.\n */\n get type() {\n return this._type;\n }\n /**\n * The session name.\n *\n * #### Notes\n * Typically `.session.name` should be used. This attribute is useful if\n * there is no current session.\n */\n get name() {\n return this._name;\n }\n /**\n * A signal emitted when the kernel connection changes, proxied from the session connection.\n */\n get kernelChanged() {\n return this._kernelChanged;\n }\n /**\n * A signal emitted when the session connection changes.\n */\n get sessionChanged() {\n return this._sessionChanged;\n }\n /**\n * A signal emitted when the kernel status changes, proxied from the kernel.\n */\n get statusChanged() {\n return this._statusChanged;\n }\n /**\n * A flag indicating if the session has pending input, proxied from the kernel.\n */\n get pendingInput() {\n return this._pendingInput;\n }\n /**\n * A signal emitted when the kernel status changes, proxied from the kernel.\n */\n get connectionStatusChanged() {\n return this._connectionStatusChanged;\n }\n /**\n * A signal emitted for iopub kernel messages, proxied from the kernel.\n */\n get iopubMessage() {\n return this._iopubMessage;\n }\n /**\n * A signal emitted for an unhandled kernel message, proxied from the kernel.\n */\n get unhandledMessage() {\n return this._unhandledMessage;\n }\n /**\n * A signal emitted when a session property changes, proxied from the current session.\n */\n get propertyChanged() {\n return this._propertyChanged;\n }\n /**\n * The kernel preference of this client session.\n *\n * This is used when selecting a new kernel, and should reflect the sort of\n * kernel the activity prefers.\n */\n get kernelPreference() {\n return this._kernelPreference;\n }\n set kernelPreference(value) {\n if (!_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepEqual(value, this._kernelPreference)) {\n const oldValue = this._kernelPreference;\n this._kernelPreference = value;\n this._preferenceChanged.emit({\n name: 'kernelPreference',\n oldValue,\n newValue: _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepCopy(value)\n });\n }\n }\n /**\n * Signal emitted if the kernel preference changes.\n */\n get kernelPreferenceChanged() {\n return this._preferenceChanged;\n }\n /**\n * Whether the context is ready.\n */\n get isReady() {\n return this._isReady;\n }\n /**\n * A promise that is fulfilled when the context is ready.\n */\n get ready() {\n return this._ready.promise;\n }\n /**\n * Whether the context is terminating.\n */\n get isTerminating() {\n return this._isTerminating;\n }\n /**\n * Whether the context is restarting.\n */\n get isRestarting() {\n return this._isRestarting;\n }\n /**\n * Whether the kernel is \"No Kernel\" or not.\n *\n * #### Notes\n * As the displayed name is translated, this can be used directly.\n */\n get hasNoKernel() {\n return this.kernelDisplayName === this.noKernelName;\n }\n /**\n * The display name of the current kernel, or a sensible alternative.\n *\n * #### Notes\n * This is a convenience function to have a consistent sensible name for the\n * kernel.\n */\n get kernelDisplayName() {\n var _a, _b, _c, _d, _e, _f, _g;\n const kernel = (_a = this.session) === null || _a === void 0 ? void 0 : _a.kernel;\n if (this._pendingKernelName === this.noKernelName) {\n return this.noKernelName;\n }\n if (this._pendingKernelName) {\n return ((_d = (_c = (_b = this.specsManager.specs) === null || _b === void 0 ? void 0 : _b.kernelspecs[this._pendingKernelName]) === null || _c === void 0 ? void 0 : _c.display_name) !== null && _d !== void 0 ? _d : this._pendingKernelName);\n }\n if (!kernel) {\n return this.noKernelName;\n }\n return ((_g = (_f = (_e = this.specsManager.specs) === null || _e === void 0 ? void 0 : _e.kernelspecs[kernel.name]) === null || _f === void 0 ? void 0 : _f.display_name) !== null && _g !== void 0 ? _g : kernel.name);\n }\n /**\n * A sensible status to display\n *\n * #### Notes\n * This combines the status and connection status into a single status for\n * the user.\n */\n get kernelDisplayStatus() {\n var _a, _b;\n const kernel = (_a = this.session) === null || _a === void 0 ? void 0 : _a.kernel;\n if (this._isTerminating) {\n return 'terminating';\n }\n if (this._isRestarting) {\n return 'restarting';\n }\n if (this._pendingKernelName === this.noKernelName) {\n return 'unknown';\n }\n if (!kernel && this._pendingKernelName) {\n return 'initializing';\n }\n if (!kernel &&\n !this.isReady &&\n this.kernelPreference.canStart !== false &&\n this.kernelPreference.shouldStart !== false) {\n return 'initializing';\n }\n return ((_b = ((kernel === null || kernel === void 0 ? void 0 : kernel.connectionStatus) === 'connected'\n ? kernel === null || kernel === void 0 ? void 0 : kernel.status\n : kernel === null || kernel === void 0 ? void 0 : kernel.connectionStatus)) !== null && _b !== void 0 ? _b : 'unknown');\n }\n /**\n * The name of the previously started kernel.\n */\n get prevKernelName() {\n return this._prevKernelName;\n }\n /**\n * Test whether the context is disposed.\n */\n get isDisposed() {\n return this._isDisposed;\n }\n /**\n * A signal emitted when the poll is disposed.\n */\n get disposed() {\n return this._disposed;\n }\n /**\n * Get the constant displayed name for \"No Kernel\"\n */\n get noKernelName() {\n return this._trans.__('No Kernel');\n }\n /**\n * Dispose of the resources held by the context.\n */\n dispose() {\n if (this._isDisposed) {\n return;\n }\n this._isDisposed = true;\n this._disposed.emit();\n if (this._session) {\n if (this.kernelPreference.shutdownOnDispose) {\n // Fire and forget the session shutdown request\n this.sessionManager.shutdown(this._session.id).catch(reason => {\n console.error(`Kernel not shut down ${reason}`);\n });\n }\n // Dispose the session connection\n this._session.dispose();\n this._session = null;\n }\n if (this._dialog) {\n this._dialog.dispose();\n }\n if (this._busyDisposable) {\n this._busyDisposable.dispose();\n this._busyDisposable = null;\n }\n _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal.clearData(this);\n }\n /**\n * Starts new Kernel.\n *\n * @returns Whether to ask the user to pick a kernel.\n */\n async startKernel() {\n const preference = this.kernelPreference;\n if (!preference.autoStartDefault && preference.shouldStart === false) {\n return true;\n }\n let options;\n if (preference.id) {\n options = { id: preference.id };\n }\n else {\n const name = Private.getDefaultKernel({\n specs: this.specsManager.specs,\n sessions: this.sessionManager.running(),\n preference\n });\n if (name) {\n options = { name };\n }\n }\n if (options) {\n try {\n await this._changeKernel(options);\n return false;\n }\n catch (err) {\n /* no-op */\n }\n }\n // Always fall back to selecting a kernel\n return true;\n }\n /**\n * Restart the current Kernel.\n *\n * @returns A promise that resolves when the kernel is restarted.\n */\n async restartKernel() {\n var _a, _b, _c, _d, _e, _f;\n const kernel = ((_a = this.session) === null || _a === void 0 ? void 0 : _a.kernel) || null;\n if (this._isRestarting) {\n return;\n }\n this._isRestarting = true;\n this._isReady = false;\n this._statusChanged.emit('restarting');\n try {\n await ((_c = (_b = this.session) === null || _b === void 0 ? void 0 : _b.kernel) === null || _c === void 0 ? void 0 : _c.restart());\n this._isReady = true;\n }\n catch (e) {\n console.error(e);\n }\n this._isRestarting = false;\n this._statusChanged.emit(((_e = (_d = this.session) === null || _d === void 0 ? void 0 : _d.kernel) === null || _e === void 0 ? void 0 : _e.status) || 'unknown');\n this._kernelChanged.emit({\n name: 'kernel',\n oldValue: kernel,\n newValue: ((_f = this.session) === null || _f === void 0 ? void 0 : _f.kernel) || null\n });\n }\n /**\n * Change the current kernel associated with the session.\n */\n async changeKernel(options = {}) {\n if (this.isDisposed) {\n throw new Error('Disposed');\n }\n // Wait for the initialization method to try\n // and start its kernel first to ensure consistent\n // ordering.\n await this._initStarted.promise;\n return this._changeKernel(options);\n }\n /**\n * Kill the kernel and shutdown the session.\n *\n * @returns A promise that resolves when the session is shut down.\n */\n async shutdown() {\n if (this.isDisposed || !this._initializing) {\n return;\n }\n await this._initStarted.promise;\n this._pendingSessionRequest = '';\n this._pendingKernelName = this.noKernelName;\n return this._shutdownSession();\n }\n /**\n * Initialize the session context\n *\n * @returns A promise that resolves with whether to ask the user to select a kernel.\n *\n * #### Notes\n * If a server session exists on the current path, we will connect to it.\n * If preferences include disabling `canStart` or `shouldStart`, no\n * server session will be started.\n * If a kernel id is given, we attempt to start a session with that id.\n * If a default kernel is available, we connect to it.\n * Otherwise we ask the user to select a kernel.\n */\n async initialize() {\n if (this._initializing) {\n return this._initPromise.promise;\n }\n this._initializing = true;\n const needsSelection = await this._initialize();\n if (!needsSelection) {\n this._isReady = true;\n this._ready.resolve(undefined);\n }\n if (!this._pendingSessionRequest) {\n this._initStarted.resolve(void 0);\n }\n this._initPromise.resolve(needsSelection);\n return needsSelection;\n }\n /**\n * Inner initialize function that doesn't handle promises.\n * This makes it easier to consolidate promise handling logic.\n */\n async _initialize() {\n const manager = this.sessionManager;\n await manager.ready;\n await manager.refreshRunning();\n const model = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__.find)(manager.running(), item => {\n return item.path === this._path;\n });\n if (model) {\n try {\n const session = manager.connectTo({ model });\n this._handleNewSession(session);\n }\n catch (err) {\n void this._handleSessionError(err);\n return Promise.reject(err);\n }\n }\n return await this._startIfNecessary();\n }\n /**\n * Shut down the current session.\n */\n async _shutdownSession() {\n var _a;\n const session = this._session;\n // Capture starting values in case an error is raised.\n const isTerminating = this._isTerminating;\n const isReady = this._isReady;\n this._isTerminating = true;\n this._isReady = false;\n this._statusChanged.emit('terminating');\n try {\n await (session === null || session === void 0 ? void 0 : session.shutdown());\n this._isTerminating = false;\n session === null || session === void 0 ? void 0 : session.dispose();\n this._session = null;\n const kernel = (session === null || session === void 0 ? void 0 : session.kernel) || null;\n this._statusChanged.emit('unknown');\n this._kernelChanged.emit({\n name: 'kernel',\n oldValue: kernel,\n newValue: null\n });\n this._sessionChanged.emit({\n name: 'session',\n oldValue: session,\n newValue: null\n });\n }\n catch (err) {\n this._isTerminating = isTerminating;\n this._isReady = isReady;\n const status = (_a = session === null || session === void 0 ? void 0 : session.kernel) === null || _a === void 0 ? void 0 : _a.status;\n if (status === undefined) {\n this._statusChanged.emit('unknown');\n }\n else {\n this._statusChanged.emit(status);\n }\n throw err;\n }\n return;\n }\n /**\n * Start the session if necessary.\n *\n * @returns Whether to ask the user to pick a kernel.\n */\n async _startIfNecessary() {\n var _a;\n const preference = this.kernelPreference;\n if (this.isDisposed ||\n ((_a = this.session) === null || _a === void 0 ? void 0 : _a.kernel) ||\n preference.shouldStart === false ||\n preference.canStart === false) {\n // Not necessary to start a kernel\n return false;\n }\n return this.startKernel();\n }\n /**\n * Change the kernel.\n */\n async _changeKernel(model = {}) {\n if (model.name) {\n this._pendingKernelName = model.name;\n }\n if (!this._session) {\n this._kernelChanged.emit({\n name: 'kernel',\n oldValue: null,\n newValue: null\n });\n }\n // Guarantee that the initialized kernel\n // will be started first.\n if (!this._pendingSessionRequest) {\n this._initStarted.resolve(void 0);\n }\n // If we already have a session, just change the kernel.\n if (this._session && !this._isTerminating) {\n try {\n await this._session.changeKernel(model);\n return this._session.kernel;\n }\n catch (err) {\n void this._handleSessionError(err);\n throw err;\n }\n }\n // Use a UUID for the path to overcome a race condition on the server\n // where it will re-use a session for a given path but only after\n // the kernel finishes starting.\n // We later switch to the real path below.\n // Use the correct directory so the kernel will be started in that directory.\n const dirName = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PathExt.dirname(this._path);\n const requestId = (this._pendingSessionRequest = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PathExt.join(dirName, _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.UUID.uuid4()));\n try {\n this._statusChanged.emit('starting');\n const session = await this.sessionManager.startNew({\n path: requestId,\n type: this._type,\n name: this._name,\n kernel: model\n });\n // Handle a preempt.\n if (this._pendingSessionRequest !== session.path) {\n await session.shutdown();\n session.dispose();\n return null;\n }\n // Change to the real path.\n await session.setPath(this._path);\n // Update the name in case it has changed since we launched the session.\n await session.setName(this._name);\n if (this._session && !this._isTerminating) {\n await this._shutdownSession();\n }\n return this._handleNewSession(session);\n }\n catch (err) {\n void this._handleSessionError(err);\n throw err;\n }\n }\n /**\n * Handle a new session object.\n */\n _handleNewSession(session) {\n var _a, _b, _c;\n if (this.isDisposed) {\n throw Error('Disposed');\n }\n if (!this._isReady) {\n this._isReady = true;\n this._ready.resolve(undefined);\n }\n if (this._session) {\n this._session.dispose();\n }\n this._session = session;\n this._pendingKernelName = '';\n if (session) {\n this._prevKernelName = (_b = (_a = session.kernel) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';\n session.disposed.connect(this._onSessionDisposed, this);\n session.propertyChanged.connect(this._onPropertyChanged, this);\n session.kernelChanged.connect(this._onKernelChanged, this);\n session.statusChanged.connect(this._onStatusChanged, this);\n session.connectionStatusChanged.connect(this._onConnectionStatusChanged, this);\n session.pendingInput.connect(this._onPendingInput, this);\n session.iopubMessage.connect(this._onIopubMessage, this);\n session.unhandledMessage.connect(this._onUnhandledMessage, this);\n if (session.path !== this._path) {\n this._onPropertyChanged(session, 'path');\n }\n if (session.name !== this._name) {\n this._onPropertyChanged(session, 'name');\n }\n if (session.type !== this._type) {\n this._onPropertyChanged(session, 'type');\n }\n }\n // Any existing session/kernel connection was disposed above when the session was\n // disposed, so the oldValue should be null.\n this._sessionChanged.emit({\n name: 'session',\n oldValue: null,\n newValue: session\n });\n this._kernelChanged.emit({\n oldValue: null,\n newValue: (session === null || session === void 0 ? void 0 : session.kernel) || null,\n name: 'kernel'\n });\n this._statusChanged.emit(((_c = session === null || session === void 0 ? void 0 : session.kernel) === null || _c === void 0 ? void 0 : _c.status) || 'unknown');\n return (session === null || session === void 0 ? void 0 : session.kernel) || null;\n }\n /**\n * Handle an error in session startup.\n */\n async _handleSessionError(err) {\n this._handleNewSession(null);\n let traceback = '';\n let message = '';\n try {\n traceback = err.traceback;\n message = err.message;\n }\n catch (err) {\n // no-op\n }\n await this._displayKernelError(message, traceback);\n }\n /**\n * Display kernel error\n */\n async _displayKernelError(message, traceback) {\n const body = (react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"div\", null,\n message && react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"pre\", null, message),\n traceback && (react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"details\", { className: \"jp-mod-wide\" },\n react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"pre\", null, traceback)))));\n const dialog = (this._dialog = new _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog({\n title: this._trans.__('Error Starting Kernel'),\n body,\n buttons: [_dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog.okButton()]\n }));\n await dialog.launch();\n this._dialog = null;\n }\n /**\n * Handle a session termination.\n */\n _onSessionDisposed() {\n if (this._session) {\n const oldValue = this._session;\n this._session = null;\n const newValue = this._session;\n this._sessionChanged.emit({ name: 'session', oldValue, newValue });\n }\n }\n /**\n * Handle a change to a session property.\n */\n _onPropertyChanged(sender, property) {\n switch (property) {\n case 'path':\n this._path = sender.path;\n break;\n case 'name':\n this._name = sender.name;\n break;\n case 'type':\n this._type = sender.type;\n break;\n default:\n throw new Error(`unrecognized property ${property}`);\n }\n this._propertyChanged.emit(property);\n }\n /**\n * Handle a change to the kernel.\n */\n _onKernelChanged(sender, args) {\n this._kernelChanged.emit(args);\n }\n /**\n * Handle a change to the session status.\n */\n _onStatusChanged(sender, status) {\n var _a;\n if (status === 'dead') {\n const model = (_a = sender.kernel) === null || _a === void 0 ? void 0 : _a.model;\n if (model === null || model === void 0 ? void 0 : model.reason) {\n const traceback = model.traceback || '';\n void this._displayKernelError(model.reason, traceback);\n }\n }\n // Set that this kernel is busy, if we haven't already\n // If we have already, and now we aren't busy, dispose\n // of the busy disposable.\n if (this._setBusy) {\n if (status === 'busy') {\n if (!this._busyDisposable) {\n this._busyDisposable = this._setBusy();\n }\n }\n else {\n if (this._busyDisposable) {\n this._busyDisposable.dispose();\n this._busyDisposable = null;\n }\n }\n }\n // Proxy the signal\n this._statusChanged.emit(status);\n }\n /**\n * Handle a change to the session status.\n */\n _onConnectionStatusChanged(sender, status) {\n // Proxy the signal\n this._connectionStatusChanged.emit(status);\n }\n /**\n * Handle a change to the pending input.\n */\n _onPendingInput(sender, value) {\n // Set the signal value\n this._pendingInput = value;\n }\n /**\n * Handle an iopub message.\n */\n _onIopubMessage(sender, message) {\n if (message.header.msg_type === 'shutdown_reply') {\n this.session.kernel.removeInputGuard();\n }\n this._iopubMessage.emit(message);\n }\n /**\n * Handle an unhandled message.\n */\n _onUnhandledMessage(sender, message) {\n this._unhandledMessage.emit(message);\n }\n}\n/**\n * A namespace for `SessionContext` statics.\n */\n(function (SessionContext) {\n /**\n * Get the default kernel name given select options.\n */\n function getDefaultKernel(options) {\n const { preference } = options;\n const { shouldStart } = preference;\n if (shouldStart === false) {\n return null;\n }\n return Private.getDefaultKernel(options);\n }\n SessionContext.getDefaultKernel = getDefaultKernel;\n})(SessionContext || (SessionContext = {}));\n/**\n * The default implementation of the client session dialog provider.\n */\nclass SessionContextDialogs {\n constructor(options = {}) {\n var _a;\n this._translator = (_a = options.translator) !== null && _a !== void 0 ? _a : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n this._settingRegistry = options.settingRegistry || null;\n }\n /**\n * Select a kernel for the session.\n */\n async selectKernel(sessionContext) {\n if (sessionContext.isDisposed) {\n return Promise.resolve();\n }\n const translator = this._translator;\n const trans = translator.load('jupyterlab');\n // If there is no existing kernel, offer the option to keep no kernel.\n let label = trans.__('Cancel');\n if (sessionContext.hasNoKernel) {\n label = sessionContext.kernelDisplayName;\n }\n const buttons = [\n _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog.cancelButton({ label }),\n _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog.okButton({\n label: trans.__('Select'),\n ariaLabel: trans.__('Select Kernel')\n })\n ];\n const autoStartDefault = sessionContext.kernelPreference.autoStartDefault;\n const hasCheckbox = typeof autoStartDefault === 'boolean';\n const dialog = new _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog({\n title: trans.__('Select Kernel'),\n body: Private.createKernelSelector(sessionContext, translator),\n buttons,\n checkbox: hasCheckbox\n ? {\n label: trans.__('Always start the preferred kernel'),\n caption: trans.__('Remember my choice and always start the preferred kernel'),\n checked: autoStartDefault\n }\n : null\n });\n const result = await dialog.launch();\n if (sessionContext.isDisposed || !result.button.accept) {\n return;\n }\n if (hasCheckbox && result.isChecked !== null) {\n sessionContext.kernelPreference = {\n ...sessionContext.kernelPreference,\n autoStartDefault: result.isChecked\n };\n }\n const model = result.value;\n if (model === null && !sessionContext.hasNoKernel) {\n return sessionContext.shutdown();\n }\n if (model) {\n await sessionContext.changeKernel(model);\n }\n }\n /**\n * Restart the session.\n *\n * @returns A promise that resolves with whether the kernel has restarted.\n *\n * #### Notes\n * If there is a running kernel, present a dialog.\n * If there is no kernel, we start a kernel with the last run\n * kernel name and resolves with `true`.\n */\n async restart(sessionContext) {\n var _a, _b, _c, _d, _e;\n const trans = this._translator.load('jupyterlab');\n await sessionContext.initialize();\n if (sessionContext.isDisposed) {\n throw new Error('session already disposed');\n }\n const kernel = (_a = sessionContext.session) === null || _a === void 0 ? void 0 : _a.kernel;\n if (!kernel && sessionContext.prevKernelName) {\n await sessionContext.changeKernel({\n name: sessionContext.prevKernelName\n });\n return true;\n }\n // Bail if there is no previous kernel to start.\n if (!kernel) {\n throw new Error('No kernel to restart');\n }\n // Skip the dialog and restart the kernel\n const kernelPluginId = '@jupyterlab/apputils-extension:sessionDialogs';\n const skipKernelRestartDialog = (_c = (_b = sessionContext.kernelPreference) === null || _b === void 0 ? void 0 : _b.skipKernelRestartDialog) !== null && _c !== void 0 ? _c : false;\n const skipKernelRestartDialogSetting = (_e = (await ((_d = this._settingRegistry) === null || _d === void 0 ? void 0 : _d.get(kernelPluginId, 'skipKernelRestartDialog')))) === null || _e === void 0 ? void 0 : _e.composite;\n if (skipKernelRestartDialogSetting || skipKernelRestartDialog) {\n await sessionContext.restartKernel();\n return true;\n }\n const restartBtn = _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog.warnButton({\n label: trans.__('Restart'),\n ariaLabel: trans.__('Confirm Kernel Restart')\n });\n const result = await (0,_dialog__WEBPACK_IMPORTED_MODULE_7__.showDialog)({\n title: trans.__('Restart Kernel?'),\n body: trans.__('Do you want to restart the kernel of %1? All variables will be lost.', sessionContext.name),\n buttons: [\n _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog.cancelButton({ ariaLabel: trans.__('Cancel Kernel Restart') }),\n restartBtn\n ],\n checkbox: {\n label: trans.__('Do not ask me again.'),\n caption: trans.__('If checked, the kernel will restart without confirmation prompt in the future; you can change this back in the settings.')\n }\n });\n if (kernel.isDisposed) {\n return false;\n }\n if (result.button.accept) {\n if (typeof result.isChecked === 'boolean' && result.isChecked == true) {\n sessionContext.kernelPreference = {\n ...sessionContext.kernelPreference,\n skipKernelRestartDialog: true\n };\n }\n await sessionContext.restartKernel();\n return true;\n }\n return false;\n }\n}\n(function (SessionContextDialogs) {\n /**\n * Returns available kernel options grouped based on session context.\n *\n * #### Notes\n * If a language preference is set in the given session context, the options\n * returned are grouped with the language preference at the top:\n *\n * - (Start %1 Kernel, language)\n * - { all kernelspecs whose language matches in alphabetical order }\n * - (Use No Kernel)\n * - `No Kernel`\n * - (Start Kernel)\n * - { all other kernelspecs in alphabetical order }\n * - (Connect to Existing %1 Kernel, language)\n * - { all running kernels whose language matches in alphabetical order }\n * - (Connect to Kernel)\n * - { all other running kernels in alphabetical order }\n *\n * If no language preference is set, these groups and options are returned:\n *\n * - (Start Kernel)\n * - { all kernelspecs in alphabetical order }\n * - (Use No Kernel)\n * - `No Kernel`\n * - (Connect to Existing Kernel)\n * - { all running kernels in alphabetical order }\n *\n * If the session has a kernel ID and a kernel exists with that id, its\n * corresponding option has `selected` set to `true`. Otherwise if the session\n * context language preference is set, the first kernelspec that matches it is\n * selected.\n */\n function kernelOptions(sessionContext, translator = null) {\n var _a, _b, _c, _d, _e, _f, _g;\n const options = { disabled: false, groups: [] };\n // Create mapping of sessions and kernel ids.\n const kernels = Array.from((_b = (_a = sessionContext.kernelManager) === null || _a === void 0 ? void 0 : _a.running()) !== null && _b !== void 0 ? _b : \n // If kernel manager is unavailable use kernels from running sessions.\n // TODO: Remove this (next version) when kernel manager is guaranteed.\n Array.from(sessionContext.sessionManager.running())\n .filter(session => !!session.kernel)\n .map(session => session.kernel));\n const sessions = Array.from((_c = sessionContext.sessionManager.running()) !== null && _c !== void 0 ? _c : []).reduce((sessions, session) => {\n var _a;\n if ((_a = session.kernel) === null || _a === void 0 ? void 0 : _a.id)\n sessions[session.kernel.id] = session;\n return sessions;\n }, {});\n const preference = {\n ...sessionContext.kernelPreference,\n id: (_e = (_d = sessionContext.session) === null || _d === void 0 ? void 0 : _d.kernel) === null || _e === void 0 ? void 0 : _e.id\n };\n const currentKernelDisplayName = !sessionContext.hasNoKernel\n ? sessionContext.kernelDisplayName\n : null;\n const specs = {\n default: '',\n kernelspecs: Object.create(null),\n ...sessionContext.specsManager.specs\n };\n // Create mapping of languages and kernel names.\n const sorted = [];\n const languages = Object.create(null);\n for (const name in specs.kernelspecs) {\n sorted.push(specs.kernelspecs[name]);\n languages[name] = specs.kernelspecs[name].language;\n }\n sorted.sort((a, b) => a.display_name.localeCompare(b.display_name));\n translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n const trans = translator.load('jupyterlab');\n const language = preference.language ||\n languages[preference.name] ||\n (preference.id ? languages[(_f = sessions[preference.id]) === null || _f === void 0 ? void 0 : _f.name] : '');\n const labels = {\n connectKernel: trans.__('Connect to Existing Kernel'),\n startPreferred: trans.__('Start %1 Kernel', language),\n startOther: trans.__('Start Kernel'),\n connectToPreferred: trans.__('Connect to Existing %1 Kernel', language),\n connectToOther: trans.__('Connect to Other Kernel'),\n noKernel: trans.__('No Kernel'),\n startKernel: trans.__('Start Kernel'),\n useNoKernel: trans.__('Use No Kernel')\n };\n const noKernel = {\n label: labels.useNoKernel,\n options: [\n {\n text: labels.noKernel,\n title: labels.noKernel,\n value: JSON.stringify(null)\n }\n ]\n };\n const optionForKernel = (kernel, displayName, session) => {\n const sessionName = session\n ? session.name || _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PathExt.basename(session.path)\n : kernel.name || trans.__('Unknown Kernel');\n return {\n text: `${sessionName} (${kernel.id.split('-')[0]})`,\n title: (session ? `${trans.__('Path: %1', session.path)}\\n` : ``) +\n `${trans.__('Name: %1', sessionName)}\\n` +\n `${trans.__('Kernel Name: %1', displayName !== null && displayName !== void 0 ? displayName : kernel.name)}\\n` +\n `${trans.__('Kernel Id: %1', kernel.id)}`,\n value: JSON.stringify({ id: kernel.id })\n };\n };\n const optionForSpec = (spec) => ({\n text: spec.display_name,\n value: JSON.stringify({ name: spec.name })\n });\n // If a kernel cannot be started, bail.\n if (preference.canStart === false) {\n options.disabled = true;\n options.groups.push(noKernel);\n return options;\n }\n // Create kernel option groups based on whether language preference exists.\n if (language) {\n // Add all kernelspecs, separating out the preferred language first.\n const preferred = {\n label: labels.startPreferred,\n options: []\n };\n const other = {\n label: labels.startOther,\n options: []\n };\n const preferredRunning = {\n label: labels.connectToPreferred,\n options: []\n };\n const otherRunning = {\n label: labels.connectToOther,\n options: []\n };\n for (const spec of sorted) {\n (spec.language === language ? preferred : other).options.push(optionForSpec(spec));\n }\n options.groups.push(preferred);\n options.groups.push(noKernel);\n options.groups.push(other);\n kernels\n .map(kernel => {\n var _a, _b;\n return ({\n option: optionForKernel(kernel, (_b = (_a = specs.kernelspecs[kernel.name]) === null || _a === void 0 ? void 0 : _a.display_name) !== null && _b !== void 0 ? _b : '', sessions[kernel.id]),\n language: languages[kernel.name]\n });\n })\n .sort((a, b) => a.option.text.localeCompare(b.option.text))\n .forEach(kernel => (language === kernel.language\n ? preferredRunning\n : otherRunning).options.push(kernel.option));\n if (preferredRunning.options.length)\n options.groups.push(preferredRunning);\n if (otherRunning.options.length)\n options.groups.push(otherRunning);\n }\n else {\n // Add kernelspecs first.\n options.groups.push({\n label: labels.startKernel,\n options: sorted.map(spec => optionForSpec(spec))\n });\n // Next add the no kernel option.\n options.groups.push(noKernel);\n // Add running kernels.\n options.groups.push({\n label: labels.connectKernel,\n options: kernels\n .map(kernel => {\n var _a, _b;\n return optionForKernel(kernel, (_b = (_a = specs.kernelspecs[kernel.name]) === null || _a === void 0 ? void 0 : _a.display_name) !== null && _b !== void 0 ? _b : '', sessions[kernel.id]);\n })\n .sort((a, b) => a.text.localeCompare(b.text))\n });\n }\n // Set the selected option.\n if (preference.id || currentKernelDisplayName || preference.name) {\n for (const group of options.groups) {\n for (const option of group.options) {\n const choice = JSON.parse(option.value);\n if (!choice)\n continue;\n if (preference.id) {\n if (preference.id === choice.id) {\n option.selected = true;\n return options;\n }\n continue;\n }\n if (currentKernelDisplayName) {\n if (currentKernelDisplayName ===\n ((_g = specs.kernelspecs[choice.name]) === null || _g === void 0 ? void 0 : _g.display_name)) {\n option.selected = true;\n return options;\n }\n continue;\n }\n if (preference.name) {\n if (preference.name === choice.name) {\n option.selected = true;\n return options;\n }\n continue;\n }\n }\n }\n }\n return options;\n }\n SessionContextDialogs.kernelOptions = kernelOptions;\n})(SessionContextDialogs || (SessionContextDialogs = {}));\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n /**\n * Return a kernel selector widget.\n */\n Private.createKernelSelector = (sessionContext, translator) => new KernelSelector({\n node: createSelectorNode(sessionContext, translator)\n });\n /**\n * A widget that provides a kernel selection.\n */\n class KernelSelector extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget {\n /**\n * Get the value of the kernel selector widget.\n */\n getValue() {\n const selector = this.node.querySelector('select');\n return JSON.parse(selector.value);\n }\n }\n /**\n * Create an HTML node for a kernel selector widget.\n */\n function createSelectorNode(sessionContext, translator) {\n // Create the dialog body.\n translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n const trans = translator.load('jupyterlab');\n const body = document.createElement('div');\n const text = document.createElement('label');\n text.textContent = `${trans.__('Select kernel for:')} \"${sessionContext.name}\"`;\n body.appendChild(text);\n const select = document.createElement('select');\n const options = SessionContextDialogs.kernelOptions(sessionContext, translator);\n if (options.disabled)\n select.disabled = true;\n for (const group of options.groups) {\n const { label, options } = group;\n const optgroup = document.createElement('optgroup');\n optgroup.label = label;\n for (const { selected, text, title, value } of options) {\n const option = document.createElement('option');\n if (selected)\n option.selected = true;\n if (title)\n option.title = title;\n option.text = text;\n option.value = value;\n optgroup.appendChild(option);\n }\n select.appendChild(optgroup);\n }\n body.appendChild(select);\n return body;\n }\n /**\n * Get the default kernel name given select options.\n */\n function getDefaultKernel(options) {\n var _a;\n const { specs, preference } = options;\n const { name, language, canStart, autoStartDefault } = preference;\n if (!specs || canStart === false) {\n return null;\n }\n const defaultName = autoStartDefault ? specs.default : null;\n if (!name && !language) {\n return defaultName;\n }\n // Look for an exact match of a spec name.\n for (const specName in specs.kernelspecs) {\n if (specName === name) {\n return name;\n }\n }\n // Bail if there is no language.\n if (!language) {\n return defaultName;\n }\n // Check for a single kernel matching the language.\n const matches = [];\n for (const specName in specs.kernelspecs) {\n const kernelLanguage = (_a = specs.kernelspecs[specName]) === null || _a === void 0 ? void 0 : _a.language;\n if (language === kernelLanguage) {\n matches.push(specName);\n }\n }\n if (matches.length === 1) {\n const specName = matches[0];\n console.warn('No exact match found for ' +\n specName +\n ', using kernel ' +\n specName +\n ' that matches ' +\n 'language=' +\n language);\n return specName;\n }\n // No matches found.\n return defaultName;\n }\n Private.getDefaultKernel = getDefaultKernel;\n})(Private || (Private = {}));\n//# sourceMappingURL=sessioncontext.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/sessioncontext.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/thememanager.js": +/*!****************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/thememanager.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ThemeManager: () => (/* binding */ ThemeManager)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/disposable */ \"webpack/sharing/consume/default/@lumino/disposable/@lumino/disposable\");\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_disposable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dialog */ \"../node_modules/@jupyterlab/apputils/lib/dialog.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n/**\n * The number of milliseconds between theme loading attempts.\n */\nconst REQUEST_INTERVAL = 75;\n/**\n * The number of times to attempt to load a theme before giving up.\n */\nconst REQUEST_THRESHOLD = 20;\n/**\n * A class that provides theme management.\n */\nclass ThemeManager {\n /**\n * Construct a new theme manager.\n */\n constructor(options) {\n this._current = null;\n this._links = [];\n this._overrides = {};\n this._overrideProps = {};\n this._outstanding = null;\n this._pending = 0;\n this._requests = {};\n this._themes = {};\n this._themeChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__.Signal(this);\n const { host, key, splash, url } = options;\n this.translator = options.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n this._trans = this.translator.load('jupyterlab');\n const registry = options.settings;\n this._base = url;\n this._host = host;\n this._splash = splash || null;\n void registry.load(key).then(settings => {\n this._settings = settings;\n // set up css overrides once we have a pointer to the settings schema\n this._initOverrideProps();\n this._settings.changed.connect(this._loadSettings, this);\n this._loadSettings();\n });\n }\n /**\n * Get the name of the current theme.\n */\n get theme() {\n return this._current;\n }\n /**\n * Get the name of the preferred light theme.\n */\n get preferredLightTheme() {\n return this._settings.composite['preferred-light-theme'];\n }\n /**\n * Get the name of the preferred dark theme.\n */\n get preferredDarkTheme() {\n return this._settings.composite['preferred-dark-theme'];\n }\n /**\n * Get the name of the preferred theme\n * When `adaptive-theme` is disabled, get current theme;\n * Else, depending on the system settings, get preferred light or dark theme.\n */\n get preferredTheme() {\n if (!this.isToggledAdaptiveTheme()) {\n return this.theme;\n }\n if (this.isSystemColorSchemeDark()) {\n return this.preferredDarkTheme;\n }\n return this.preferredLightTheme;\n }\n /**\n * The names of the registered themes.\n */\n get themes() {\n return Object.keys(this._themes);\n }\n /**\n * Get the names of the light themes.\n */\n get lightThemes() {\n return Object.entries(this._themes)\n .filter(([_, theme]) => theme.isLight)\n .map(([name, _]) => name);\n }\n /**\n * Get the names of the dark themes.\n */\n get darkThemes() {\n return Object.entries(this._themes)\n .filter(([_, theme]) => !theme.isLight)\n .map(([name, _]) => name);\n }\n /**\n * A signal fired when the application theme changes.\n */\n get themeChanged() {\n return this._themeChanged;\n }\n /**\n * Test if the system's preferred color scheme is dark\n */\n isSystemColorSchemeDark() {\n return (window.matchMedia &&\n window.matchMedia('(prefers-color-scheme: dark)').matches);\n }\n /**\n * Get the value of a CSS variable from its key.\n *\n * @param key - A Jupyterlab CSS variable, without the leading '--jp-'.\n *\n * @returns value - The current value of the Jupyterlab CSS variable\n */\n getCSS(key) {\n var _a;\n return ((_a = this._overrides[key]) !== null && _a !== void 0 ? _a : getComputedStyle(document.documentElement).getPropertyValue(`--jp-${key}`));\n }\n /**\n * Load a theme CSS file by path.\n *\n * @param path - The path of the file to load.\n */\n loadCSS(path) {\n const base = this._base;\n const href = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.URLExt.isLocal(path) ? _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.URLExt.join(base, path) : path;\n const links = this._links;\n return new Promise((resolve, reject) => {\n const link = document.createElement('link');\n link.setAttribute('rel', 'stylesheet');\n link.setAttribute('type', 'text/css');\n link.setAttribute('href', href);\n link.addEventListener('load', () => {\n resolve(undefined);\n });\n link.addEventListener('error', () => {\n reject(`Stylesheet failed to load: ${href}`);\n });\n document.body.appendChild(link);\n links.push(link);\n // add any css overrides to document\n this.loadCSSOverrides();\n });\n }\n /**\n * Loads all current CSS overrides from settings. If an override has been\n * removed or is invalid, this function unloads it instead.\n */\n loadCSSOverrides() {\n var _a;\n const newOverrides = (_a = this._settings.user['overrides']) !== null && _a !== void 0 ? _a : {};\n // iterate over the union of current and new CSS override keys\n Object.keys({ ...this._overrides, ...newOverrides }).forEach(key => {\n const val = newOverrides[key];\n if (val && this.validateCSS(key, val)) {\n // validation succeeded, set the override\n document.documentElement.style.setProperty(`--jp-${key}`, val);\n }\n else {\n // if key is not present or validation failed, the override will be removed\n delete newOverrides[key];\n document.documentElement.style.removeProperty(`--jp-${key}`);\n }\n });\n // replace the current overrides with the new ones\n this._overrides = newOverrides;\n }\n /**\n * Validate a CSS value w.r.t. a key\n *\n * @param key - A Jupyterlab CSS variable, without the leading '--jp-'.\n *\n * @param val - A candidate CSS value\n */\n validateCSS(key, val) {\n // determine the css property corresponding to the key\n const prop = this._overrideProps[key];\n if (!prop) {\n console.warn('CSS validation failed: could not find property corresponding to key.\\n' +\n `key: '${key}', val: '${val}'`);\n return false;\n }\n // use built-in validation once we have the corresponding property\n if (CSS.supports(prop, val)) {\n return true;\n }\n else {\n console.warn('CSS validation failed: invalid value.\\n' +\n `key: '${key}', val: '${val}', prop: '${prop}'`);\n return false;\n }\n }\n /**\n * Register a theme with the theme manager.\n *\n * @param theme - The theme to register.\n *\n * @returns A disposable that can be used to unregister the theme.\n */\n register(theme) {\n const { name } = theme;\n const themes = this._themes;\n if (themes[name]) {\n throw new Error(`Theme already registered for ${name}`);\n }\n themes[name] = theme;\n return new _lumino_disposable__WEBPACK_IMPORTED_MODULE_2__.DisposableDelegate(() => {\n delete themes[name];\n });\n }\n /**\n * Add a CSS override to the settings.\n */\n setCSSOverride(key, value) {\n return this._settings.set('overrides', {\n ...this._overrides,\n [key]: value\n });\n }\n /**\n * Set the current theme.\n */\n setTheme(name) {\n return this._settings.set('theme', name);\n }\n /**\n * Set the preferred light theme.\n */\n setPreferredLightTheme(name) {\n return this._settings.set('preferred-light-theme', name);\n }\n /**\n * Set the preferred dark theme.\n */\n setPreferredDarkTheme(name) {\n return this._settings.set('preferred-dark-theme', name);\n }\n /**\n * Test whether a given theme is light.\n */\n isLight(name) {\n return this._themes[name].isLight;\n }\n /**\n * Increase a font size w.r.t. its current setting or its value in the\n * current theme.\n *\n * @param key - A Jupyterlab font size CSS variable, without the leading '--jp-'.\n */\n incrFontSize(key) {\n return this._incrFontSize(key, true);\n }\n /**\n * Decrease a font size w.r.t. its current setting or its value in the\n * current theme.\n *\n * @param key - A Jupyterlab font size CSS variable, without the leading '--jp-'.\n */\n decrFontSize(key) {\n return this._incrFontSize(key, false);\n }\n /**\n * Test whether a given theme styles scrollbars,\n * and if the user has scrollbar styling enabled.\n */\n themeScrollbars(name) {\n return (!!this._settings.composite['theme-scrollbars'] &&\n !!this._themes[name].themeScrollbars);\n }\n /**\n * Test if the user has scrollbar styling enabled.\n */\n isToggledThemeScrollbars() {\n return !!this._settings.composite['theme-scrollbars'];\n }\n /**\n * Toggle the `theme-scrollbars` setting.\n */\n toggleThemeScrollbars() {\n return this._settings.set('theme-scrollbars', !this._settings.composite['theme-scrollbars']);\n }\n /**\n * Test if the user enables adaptive theme.\n */\n isToggledAdaptiveTheme() {\n return !!this._settings.composite['adaptive-theme'];\n }\n /**\n * Toggle the `adaptive-theme` setting.\n */\n toggleAdaptiveTheme() {\n return this._settings.set('adaptive-theme', !this._settings.composite['adaptive-theme']);\n }\n /**\n * Get the display name of the theme.\n */\n getDisplayName(name) {\n var _a, _b;\n return (_b = (_a = this._themes[name]) === null || _a === void 0 ? void 0 : _a.displayName) !== null && _b !== void 0 ? _b : name;\n }\n /**\n * Change a font size by a positive or negative increment.\n */\n _incrFontSize(key, add = true) {\n var _a;\n // get the numeric and unit parts of the current font size\n const parts = ((_a = this.getCSS(key)) !== null && _a !== void 0 ? _a : '13px').split(/([a-zA-Z]+)/);\n // determine the increment\n const incr = (add ? 1 : -1) * (parts[1] === 'em' ? 0.1 : 1);\n // increment the font size and set it as an override\n return this.setCSSOverride(key, `${Number(parts[0]) + incr}${parts[1]}`);\n }\n /**\n * Initialize the key -> property dict for the overrides\n */\n _initOverrideProps() {\n const definitions = this._settings.schema.definitions;\n const overidesSchema = definitions.cssOverrides.properties;\n Object.keys(overidesSchema).forEach(key => {\n // override validation is against the CSS property in the description\n // field. Example: for key ui-font-family, .description is font-family\n let description;\n switch (key) {\n case 'code-font-size':\n case 'content-font-size1':\n case 'ui-font-size1':\n description = 'font-size';\n break;\n default:\n description = overidesSchema[key].description;\n break;\n }\n this._overrideProps[key] = description;\n });\n }\n /**\n * Handle the current settings.\n */\n _loadSettings() {\n const outstanding = this._outstanding;\n const pending = this._pending;\n const requests = this._requests;\n // If another request is pending, cancel it.\n if (pending) {\n window.clearTimeout(pending);\n this._pending = 0;\n }\n const settings = this._settings;\n const themes = this._themes;\n let theme = settings.composite['theme'];\n if (this.isToggledAdaptiveTheme()) {\n if (this.isSystemColorSchemeDark()) {\n theme = this.preferredDarkTheme;\n }\n else {\n theme = this.preferredLightTheme;\n }\n }\n // If another promise is outstanding, wait until it finishes before\n // attempting to load the settings. Because outstanding promises cannot\n // be aborted, the order in which they occur must be enforced.\n if (outstanding) {\n outstanding\n .then(() => {\n this._loadSettings();\n })\n .catch(() => {\n this._loadSettings();\n });\n this._outstanding = null;\n return;\n }\n // Increment the request counter.\n requests[theme] = requests[theme] ? requests[theme] + 1 : 1;\n // If the theme exists, load it right away.\n if (themes[theme]) {\n this._outstanding = this._loadTheme(theme);\n delete requests[theme];\n return;\n }\n // If the request has taken too long, give up.\n if (requests[theme] > REQUEST_THRESHOLD) {\n const fallback = settings.default('theme');\n // Stop tracking the requests for this theme.\n delete requests[theme];\n if (!themes[fallback]) {\n this._onError(this._trans.__('Neither theme %1 nor default %2 loaded.', theme, fallback));\n return;\n }\n console.warn(`Could not load theme ${theme}, using default ${fallback}.`);\n this._outstanding = this._loadTheme(fallback);\n return;\n }\n // If the theme does not yet exist, attempt to wait for it.\n this._pending = window.setTimeout(() => {\n this._loadSettings();\n }, REQUEST_INTERVAL);\n }\n /**\n * Load the theme.\n *\n * #### Notes\n * This method assumes that the `theme` exists.\n */\n _loadTheme(theme) {\n var _a;\n const current = this._current;\n const links = this._links;\n const themes = this._themes;\n const splash = this._splash\n ? this._splash.show(themes[theme].isLight)\n : new _lumino_disposable__WEBPACK_IMPORTED_MODULE_2__.DisposableDelegate(() => undefined);\n // Unload any CSS files that have been loaded.\n links.forEach(link => {\n if (link.parentElement) {\n link.parentElement.removeChild(link);\n }\n });\n links.length = 0;\n const themeProps = (_a = this._settings.schema.properties) === null || _a === void 0 ? void 0 : _a.theme;\n if (themeProps) {\n themeProps.enum = Object.keys(themes).map(value => { var _a; return (_a = themes[value].displayName) !== null && _a !== void 0 ? _a : value; });\n }\n // Unload the previously loaded theme.\n const old = current ? themes[current].unload() : Promise.resolve();\n return Promise.all([old, themes[theme].load()])\n .then(() => {\n this._current = theme;\n this._themeChanged.emit({\n name: 'theme',\n oldValue: current,\n newValue: theme\n });\n // Need to force a redraw of the app here to avoid a Chrome rendering\n // bug that can leave the scrollbars in an invalid state\n this._host.hide();\n // If we hide/show the widget too quickly, no redraw will happen.\n // requestAnimationFrame delays until after the next frame render.\n requestAnimationFrame(() => {\n this._host.show();\n Private.fitAll(this._host);\n splash.dispose();\n });\n })\n .catch(reason => {\n this._onError(reason);\n splash.dispose();\n });\n }\n /**\n * Handle a theme error.\n */\n _onError(reason) {\n void (0,_dialog__WEBPACK_IMPORTED_MODULE_4__.showDialog)({\n title: this._trans.__('Error Loading Theme'),\n body: String(reason),\n buttons: [_dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog.okButton({ label: this._trans.__('OK') })]\n });\n }\n}\n/**\n * A namespace for module private data.\n */\nvar Private;\n(function (Private) {\n /**\n * Fit a widget and all of its children, recursively.\n */\n function fitAll(widget) {\n for (const child of widget.children()) {\n fitAll(child);\n }\n widget.fit();\n }\n Private.fitAll = fitAll;\n})(Private || (Private = {}));\n//# sourceMappingURL=thememanager.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/thememanager.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/tokens.js": +/*!**********************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/tokens.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ICommandPalette: () => (/* binding */ ICommandPalette),\n/* harmony export */ IKernelStatusModel: () => (/* binding */ IKernelStatusModel),\n/* harmony export */ ILicensesClient: () => (/* binding */ ILicensesClient),\n/* harmony export */ ISanitizer: () => (/* binding */ ISanitizer),\n/* harmony export */ ISessionContextDialogs: () => (/* binding */ ISessionContextDialogs),\n/* harmony export */ ISplashScreen: () => (/* binding */ ISplashScreen),\n/* harmony export */ IThemeManager: () => (/* binding */ IThemeManager),\n/* harmony export */ IToolbarWidgetRegistry: () => (/* binding */ IToolbarWidgetRegistry),\n/* harmony export */ IWindowResolver: () => (/* binding */ IWindowResolver)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * The command palette token.\n */\nconst ICommandPalette = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:ICommandPalette', `A service for the application command palette\n in the left panel. Use this to add commands to the palette.`);\n/**\n * The kernel status indicator model.\n */\nconst IKernelStatusModel = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:IKernelStatusModel', 'A service to register kernel session provider to the kernel status indicator.');\n/**\n * The license client for fetching licenses.\n */\nconst ILicensesClient = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:ILicensesClient', 'A service for fetching licenses.');\n/**\n * The session context dialogs token.\n */\nconst ISessionContextDialogs = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:ISessionContextDialogs', 'A service for handling the session dialogs.');\n/**\n * The theme manager token.\n */\nconst IThemeManager = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:IThemeManager', 'A service for the theme manager for the application. This is used primarily in theme extensions to register new themes.');\n/**\n * The sanitizer token.\n */\nconst ISanitizer = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:ISanitizer', 'A service for sanitizing HTML strings.');\n/**\n * The main menu token.\n */\nconst ISplashScreen = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:ISplashScreen', `A service for the splash screen for the application.\n Use this if you want to show the splash screen for your own purposes.`);\n/**\n * The default window resolver token.\n */\nconst IWindowResolver = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:IWindowResolver', `A service for a window resolver for the\n application. JupyterLab workspaces are given a name, which are determined using\n the window resolver. Require this if you want to use the name of the current workspace.`);\n/**\n * The toolbar registry token.\n */\nconst IToolbarWidgetRegistry = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:IToolbarWidgetRegistry', `A registry for toolbar widgets. Require this\n if you want to build the toolbar dynamically from a data definition (stored in settings for example).`);\n//# sourceMappingURL=tokens.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/tokens.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/toolbar/factory.js": +/*!*******************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/toolbar/factory.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createToolbarFactory: () => (/* binding */ createToolbarFactory),\n/* harmony export */ setToolbar: () => (/* binding */ setToolbar)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/observables */ \"webpack/sharing/consume/default/@jupyterlab/observables/@jupyterlab/observables\");\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dialog */ \"../node_modules/@jupyterlab/apputils/lib/dialog.js\");\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n\n\n/**\n * Default toolbar item rank\n *\n * #### Notes\n * This will place item just before the white spacer item in the notebook toolbar.\n */\nconst DEFAULT_TOOLBAR_ITEM_RANK = 50;\nconst TOOLBAR_KEY = 'jupyter.lab.toolbars';\n/**\n * Display warning when the toolbar definition have been modified.\n *\n * @param trans Translation bundle\n */\nasync function displayInformation(trans) {\n const result = await (0,_dialog__WEBPACK_IMPORTED_MODULE_4__.showDialog)({\n title: trans.__('Information'),\n body: trans.__('Toolbar customization has changed. You will need to reload JupyterLab to see the changes.'),\n buttons: [\n _dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog.cancelButton(),\n _dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog.okButton({ label: trans.__('Reload') })\n ]\n });\n if (result.button.accept) {\n location.reload();\n }\n}\n/**\n * Set the toolbar definition by accumulating all settings definition.\n *\n * The list will be populated only with the enabled items.\n *\n * @param toolbarItems Observable list to populate\n * @param registry Application settings registry\n * @param factoryName Widget factory name that needs a toolbar\n * @param pluginId Settings plugin id\n * @param translator Translator object\n * @param propertyId Property holding the toolbar definition in the settings; default 'toolbar'\n * @returns List of toolbar items\n */\nasync function setToolbarItems(toolbarItems, registry, factoryName, pluginId, translator, propertyId = 'toolbar') {\n var _a;\n const trans = translator.load('jupyterlab');\n let canonical = null;\n let loaded = {};\n let listenPlugin = true;\n try {\n /**\n * Populate the plugin's schema defaults.\n *\n * We keep track of disabled entries in case the plugin is loaded\n * after the toolbar initialization.\n */\n function populate(schema) {\n var _a, _b;\n loaded = {};\n const pluginDefaults = Object.keys(registry.plugins)\n // Filter out the current plugin (will be listed when reloading)\n // because we control its addition after the mapping step\n .filter(plugin => plugin !== pluginId)\n .map(plugin => {\n var _a, _b;\n const items = (_b = ((_a = registry.plugins[plugin].schema[TOOLBAR_KEY]) !== null && _a !== void 0 ? _a : {})[factoryName]) !== null && _b !== void 0 ? _b : [];\n loaded[plugin] = items;\n return items;\n })\n .concat([(_b = ((_a = schema[TOOLBAR_KEY]) !== null && _a !== void 0 ? _a : {})[factoryName]) !== null && _b !== void 0 ? _b : []])\n .reduceRight((acc, val) => _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.SettingRegistry.reconcileToolbarItems(acc, val, true), []);\n // Apply default value as last step to take into account overrides.json\n // The standard toolbars default is [] as the plugin must use\n // `jupyter.lab.toolbars.` to define its default value.\n schema.properties[propertyId].default =\n _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.SettingRegistry.reconcileToolbarItems(pluginDefaults, schema.properties[propertyId].default, true).sort((a, b) => {\n var _a, _b;\n return ((_a = a.rank) !== null && _a !== void 0 ? _a : DEFAULT_TOOLBAR_ITEM_RANK) -\n ((_b = b.rank) !== null && _b !== void 0 ? _b : DEFAULT_TOOLBAR_ITEM_RANK);\n });\n }\n // Transform the plugin object to return different schema than the default.\n registry.transform(pluginId, {\n compose: plugin => {\n var _a, _b, _c, _d, _e;\n // Only override the canonical schema the first time.\n if (!canonical) {\n canonical = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepCopy(plugin.schema);\n populate(canonical);\n }\n const defaults = (_c = ((_b = ((_a = canonical.properties) !== null && _a !== void 0 ? _a : {})[propertyId]) !== null && _b !== void 0 ? _b : {}).default) !== null && _c !== void 0 ? _c : [];\n // Initialize the settings\n const user = plugin.data.user;\n const composite = plugin.data.composite;\n // Overrides the value with using the aggregated default for the toolbar property\n user[propertyId] =\n (_d = plugin.data.user[propertyId]) !== null && _d !== void 0 ? _d : [];\n composite[propertyId] = ((_e = _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.SettingRegistry.reconcileToolbarItems(defaults, user[propertyId], false)) !== null && _e !== void 0 ? _e : []).sort((a, b) => {\n var _a, _b;\n return ((_a = a.rank) !== null && _a !== void 0 ? _a : DEFAULT_TOOLBAR_ITEM_RANK) -\n ((_b = b.rank) !== null && _b !== void 0 ? _b : DEFAULT_TOOLBAR_ITEM_RANK);\n });\n plugin.data = { composite, user };\n return plugin;\n },\n fetch: plugin => {\n // Only override the canonical schema the first time.\n if (!canonical) {\n canonical = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepCopy(plugin.schema);\n populate(canonical);\n }\n return {\n data: plugin.data,\n id: plugin.id,\n raw: plugin.raw,\n schema: canonical,\n version: plugin.version\n };\n }\n });\n }\n catch (error) {\n if (error.name === 'TransformError') {\n // Assume the existing transformer is the toolbar builder transformer\n // from another factory set up.\n listenPlugin = false;\n }\n else {\n throw error;\n }\n }\n // Repopulate the canonical variable after the setting registry has\n // preloaded all initial plugins.\n const settings = await registry.load(pluginId);\n // React to customization by the user\n settings.changed.connect(() => {\n var _a;\n const newItems = (_a = settings.composite[propertyId]) !== null && _a !== void 0 ? _a : [];\n transferSettings(newItems);\n });\n const transferSettings = (newItems) => {\n // This is not optimal but safer because a toolbar item with the same\n // name cannot be inserted (it will be a no-op). But that could happen\n // if the settings are changing the items order.\n toolbarItems.clear();\n toolbarItems.pushAll(newItems.filter(item => !item.disabled));\n };\n // Initialize the toolbar\n transferSettings((_a = settings.composite[propertyId]) !== null && _a !== void 0 ? _a : []);\n // React to plugin changes if no other transformer exists, otherwise bail.\n if (!listenPlugin) {\n return;\n }\n registry.pluginChanged.connect(async (sender, plugin) => {\n var _a, _b, _c;\n // Since the plugin storing the toolbar definition is transformed above,\n // if it has changed, it means that a request to reload was triggered.\n // Hence the toolbar definitions from the other plugins have been\n // automatically reset during the transform step.\n if (plugin === pluginId) {\n return;\n }\n // If a plugin changed its toolbar items\n const oldItems = (_a = loaded[plugin]) !== null && _a !== void 0 ? _a : [];\n const newItems = (_c = ((_b = registry.plugins[plugin].schema[TOOLBAR_KEY]) !== null && _b !== void 0 ? _b : {})[factoryName]) !== null && _c !== void 0 ? _c : [];\n if (!_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepEqual(oldItems, newItems)) {\n if (loaded[plugin]) {\n // The plugin has changed, request the user to reload the UI\n await displayInformation(trans);\n }\n else {\n if (newItems.length > 0) {\n // Empty the default values to avoid toolbar settings collisions.\n canonical = null;\n const schema = registry.plugins[pluginId].schema;\n schema.properties.toolbar.default = [];\n // Run again the transformations.\n await registry.load(pluginId, true);\n }\n }\n }\n });\n}\n/**\n * Create the toolbar factory for a given container widget based\n * on a data description stored in settings\n *\n * @param toolbarRegistry Toolbar widgets registry\n * @param settingsRegistry Settings registry\n * @param factoryName Toolbar container factory name\n * @param pluginId Settings plugin id\n * @param translator Translator\n * @param propertyId Toolbar definition key in the settings plugin\n * @returns List of toolbar widgets factory\n */\nfunction createToolbarFactory(toolbarRegistry, settingsRegistry, factoryName, pluginId, translator, propertyId = 'toolbar') {\n const items = new _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__.ObservableList({\n itemCmp: (a, b) => _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepEqual(a, b)\n });\n // Get toolbar definition from the settings\n setToolbarItems(items, settingsRegistry, factoryName, pluginId, translator, propertyId).catch(reason => {\n console.error(`Failed to load toolbar items for factory ${factoryName} from ${pluginId}`, reason);\n });\n return (widget) => {\n const updateToolbar = (list, change) => {\n switch (change.type) {\n case 'move':\n toolbar.move(change.oldIndex, change.newIndex);\n break;\n case 'add':\n change.newValues.forEach(item => toolbar.push({\n name: item.name,\n widget: toolbarRegistry.createWidget(factoryName, widget, item)\n }));\n break;\n case 'remove':\n change.oldValues.forEach(() => toolbar.remove(change.oldIndex));\n break;\n case 'set':\n change.newValues.forEach(item => toolbar.set(change.newIndex, {\n name: item.name,\n widget: toolbarRegistry.createWidget(factoryName, widget, item)\n }));\n break;\n }\n };\n const updateWidget = (registry, itemName) => {\n const itemIndex = Array.from(items).findIndex(item => item.name === itemName);\n if (itemIndex >= 0) {\n toolbar.set(itemIndex, {\n name: itemName,\n widget: toolbarRegistry.createWidget(factoryName, widget, items.get(itemIndex))\n });\n }\n };\n const toolbar = new _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__.ObservableList({\n values: Array.from(items).map(item => {\n return {\n name: item.name,\n widget: toolbarRegistry.createWidget(factoryName, widget, item)\n };\n })\n });\n // Re-render the widget if a new factory has been added.\n toolbarRegistry.factoryAdded.connect(updateWidget);\n items.changed.connect(updateToolbar);\n widget.disposed.connect(() => {\n items.changed.disconnect(updateToolbar);\n toolbarRegistry.factoryAdded.disconnect(updateWidget);\n });\n return toolbar;\n };\n}\n/**\n * Set the toolbar items of a widget from a factory\n *\n * @param widget Widget with the toolbar to set\n * @param factory Toolbar items factory\n * @param toolbar Separated toolbar if widget is a raw widget\n */\nfunction setToolbar(widget, factory, toolbar) {\n var _a;\n // @ts-expect-error Widget has no toolbar\n if (!widget.toolbar && !toolbar) {\n console.log(`Widget ${widget.id} has no 'toolbar' and no explicit toolbar was provided.`);\n return;\n }\n // @ts-expect-error Widget has no toolbar\n const toolbar_ = (_a = widget.toolbar) !== null && _a !== void 0 ? _a : toolbar;\n const items = factory(widget);\n if (Array.isArray(items)) {\n items.forEach(({ name, widget: item }) => {\n toolbar_.addItem(name, item);\n });\n }\n else {\n const updateToolbar = (list, changes) => {\n switch (changes.type) {\n case 'add':\n changes.newValues.forEach((item, index) => {\n toolbar_.insertItem(changes.newIndex + index, item.name, item.widget);\n });\n break;\n case 'move':\n changes.oldValues.forEach(item => {\n item.widget.parent = null;\n });\n changes.newValues.forEach((item, index) => {\n toolbar_.insertItem(changes.newIndex + index, item.name, item.widget);\n });\n break;\n case 'remove':\n changes.oldValues.forEach(item => {\n item.widget.parent = null;\n });\n break;\n case 'set':\n changes.oldValues.forEach(item => {\n item.widget.parent = null;\n });\n changes.newValues.forEach((item, index) => {\n const existingIndex = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__.findIndex)(toolbar_.names(), name => item.name === name);\n if (existingIndex >= 0) {\n Array.from(toolbar_.children())[existingIndex].parent = null;\n }\n toolbar_.insertItem(changes.newIndex + index, item.name, item.widget);\n });\n break;\n }\n };\n updateToolbar(items, {\n newIndex: 0,\n newValues: Array.from(items),\n oldIndex: 0,\n oldValues: [],\n type: 'add'\n });\n items.changed.connect(updateToolbar);\n widget.disposed.connect(() => {\n items.changed.disconnect(updateToolbar);\n });\n }\n}\n//# sourceMappingURL=factory.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/toolbar/factory.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/toolbar/registry.js": +/*!********************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/toolbar/registry.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ToolbarWidgetRegistry: () => (/* binding */ ToolbarWidgetRegistry),\n/* harmony export */ createDefaultFactory: () => (/* binding */ createDefaultFactory)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_2__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n/**\n * Concrete implementation of IToolbarWidgetRegistry interface\n */\nclass ToolbarWidgetRegistry {\n constructor(options) {\n this._widgets = new Map();\n this._factoryAdded = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal(this);\n this._defaultFactory = options.defaultFactory;\n }\n /**\n * Default toolbar item factory\n */\n get defaultFactory() {\n return this._defaultFactory;\n }\n set defaultFactory(factory) {\n this._defaultFactory = factory;\n }\n /**\n * A signal emitted when a factory widget has been added.\n */\n get factoryAdded() {\n return this._factoryAdded;\n }\n /**\n * Create a toolbar item widget\n *\n * @param widgetFactory The widget factory name that creates the toolbar\n * @param widget The newly widget containing the toolbar\n * @param toolbarItem The toolbar item definition\n * @returns The widget to be inserted in the toolbar.\n */\n createWidget(widgetFactory, widget, toolbarItem) {\n var _a;\n const factory = (_a = this._widgets.get(widgetFactory)) === null || _a === void 0 ? void 0 : _a.get(toolbarItem.name);\n return factory\n ? factory(widget)\n : this._defaultFactory(widgetFactory, widget, toolbarItem);\n }\n /**\n * Add a new toolbar item factory\n *\n * @param widgetFactory The widget factory name that creates the toolbar\n * @param toolbarItemName The unique toolbar item\n * @param factory The factory function that receives the widget containing the toolbar and returns the toolbar widget.\n * @returns The previously defined factory\n */\n addFactory(widgetFactory, toolbarItemName, factory) {\n let namespace = this._widgets.get(widgetFactory);\n const oldFactory = namespace === null || namespace === void 0 ? void 0 : namespace.get(toolbarItemName);\n if (!namespace) {\n namespace = new Map();\n this._widgets.set(widgetFactory, namespace);\n }\n namespace.set(toolbarItemName, factory);\n this._factoryAdded.emit(toolbarItemName);\n return oldFactory;\n }\n /**\n * Register a new toolbar item factory\n *\n * @param widgetFactory The widget factory name that creates the toolbar\n * @param toolbarItemName The unique toolbar item\n * @param factory The factory function that receives the widget containing the toolbar and returns the toolbar widget.\n * @returns The previously defined factory\n *\n * @deprecated since v4 use `addFactory` instead\n */\n registerFactory(widgetFactory, toolbarItemName, factory) {\n return this.addFactory(widgetFactory, toolbarItemName, factory);\n }\n}\n/**\n * Create the default toolbar item widget factory\n *\n * @param commands Application commands registry\n * @returns Default factory\n */\nfunction createDefaultFactory(commands) {\n return (widgetFactory, widget, toolbarItem) => {\n var _a, _b;\n switch ((_a = toolbarItem.type) !== null && _a !== void 0 ? _a : 'command') {\n case 'command': {\n const { command: tId, args: tArgs, label: tLabel, caption: tCaption, icon: tIcon } = toolbarItem;\n const id = tId !== null && tId !== void 0 ? tId : '';\n const args = { toolbar: true, ...tArgs };\n const icon = tIcon ? _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.LabIcon.resolve({ icon: tIcon }) : undefined;\n const toolbar = widget.toolbar;\n // If there is an icon, undefined label will results in no label\n // otherwise the label will be set using the setting or the command label\n const label = (icon !== null && icon !== void 0 ? icon : commands.icon(id, args)) ? tLabel !== null && tLabel !== void 0 ? tLabel : '' : tLabel;\n return new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.CommandToolbarButton({\n commands,\n id,\n args,\n icon,\n label,\n caption: tCaption,\n noFocusOnClick: (_b = toolbar === null || toolbar === void 0 ? void 0 : toolbar.noFocusOnClick) !== null && _b !== void 0 ? _b : false\n });\n }\n case 'spacer':\n return _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Toolbar.createSpacerItem();\n default:\n return new _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__.Widget();\n }\n };\n}\n//# sourceMappingURL=registry.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/toolbar/registry.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/toolbar/widget.js": +/*!******************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/toolbar/widget.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Toolbar: () => (/* binding */ Toolbar)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _sessioncontext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../sessioncontext */ \"../node_modules/@jupyterlab/apputils/lib/sessioncontext.js\");\n/* harmony import */ var _kernelstatuses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../kernelstatuses */ \"../node_modules/@jupyterlab/apputils/lib/kernelstatuses.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n/**\n * The class name added to toolbar kernel name text.\n */\nconst TOOLBAR_KERNEL_NAME_CLASS = 'jp-Toolbar-kernelName';\n/**\n * The class name added to toolbar kernel status icon.\n */\nconst TOOLBAR_KERNEL_STATUS_CLASS = 'jp-Toolbar-kernelStatus';\n/**\n * The namespace for Toolbar class statics.\n */\nvar Toolbar;\n(function (Toolbar) {\n /**\n * Create an interrupt toolbar item.\n *\n * @deprecated since version v3.2\n * This is dead code now.\n */\n function createInterruptButton(sessionContext, translator) {\n translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n const trans = translator.load('jupyterlab');\n return new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton({\n icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.stopIcon,\n onClick: () => {\n var _a, _b;\n void ((_b = (_a = sessionContext.session) === null || _a === void 0 ? void 0 : _a.kernel) === null || _b === void 0 ? void 0 : _b.interrupt());\n },\n tooltip: trans.__('Interrupt the kernel')\n });\n }\n Toolbar.createInterruptButton = createInterruptButton;\n /**\n * Create a restart toolbar item.\n *\n * @deprecated since v3.2\n * This is dead code now.\n */\n function createRestartButton(sessionContext, dialogs, translator) {\n translator = translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n const trans = translator.load('jupyterlab');\n return new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton({\n icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.refreshIcon,\n onClick: () => {\n void (dialogs !== null && dialogs !== void 0 ? dialogs : new _sessioncontext__WEBPACK_IMPORTED_MODULE_4__.SessionContextDialogs({ translator })).restart(sessionContext);\n },\n tooltip: trans.__('Restart the kernel')\n });\n }\n Toolbar.createRestartButton = createRestartButton;\n /**\n * Create a kernel name indicator item.\n *\n * #### Notes\n * It will display the `'display_name`' of the session context. It can\n * handle a change in context or kernel.\n */\n function createKernelNameItem(sessionContext, dialogs, translator) {\n const el = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget.create(react__WEBPACK_IMPORTED_MODULE_3__.createElement(Private.KernelNameComponent, { sessionContext: sessionContext, dialogs: dialogs !== null && dialogs !== void 0 ? dialogs : new _sessioncontext__WEBPACK_IMPORTED_MODULE_4__.SessionContextDialogs({ translator }), translator: translator }));\n el.addClass('jp-KernelName');\n return el;\n }\n Toolbar.createKernelNameItem = createKernelNameItem;\n /**\n * Create a kernel status indicator item.\n *\n * @deprecated since v3.5\n * The kernel status indicator is now replaced by the execution status indicator.\n *\n * #### Notes\n * It will show a busy status if the kernel status is busy.\n * It will show the current status in the node title.\n * It can handle a change to the context or the kernel.\n */\n function createKernelStatusItem(sessionContext, translator) {\n return new Private.KernelStatus(sessionContext, translator);\n }\n Toolbar.createKernelStatusItem = createKernelStatusItem;\n})(Toolbar || (Toolbar = {}));\n/**\n * A namespace for private data.\n */\nvar Private;\n(function (Private) {\n /**\n * React component for a kernel name button.\n *\n * This wraps the ToolbarButtonComponent and watches the kernel\n * session for changes.\n */\n function KernelNameComponent(props) {\n const translator = props.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n const trans = translator.load('jupyterlab');\n const callback = () => {\n void props.dialogs.selectKernel(props.sessionContext);\n };\n return (react__WEBPACK_IMPORTED_MODULE_3__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.UseSignal, { signal: props.sessionContext.kernelChanged, initialSender: props.sessionContext }, sessionContext => (react__WEBPACK_IMPORTED_MODULE_3__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButtonComponent, { className: TOOLBAR_KERNEL_NAME_CLASS, onClick: callback, tooltip: trans.__('Switch kernel'), label: sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.kernelDisplayName }))));\n }\n Private.KernelNameComponent = KernelNameComponent;\n /**\n * A toolbar item that displays kernel status.\n *\n * @deprecated This code is not use any longer and will be removed in JupyterLab 5\n */\n class KernelStatus extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_2__.Widget {\n /**\n * Construct a new kernel status widget.\n */\n constructor(sessionContext, translator) {\n super();\n this.translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n this._trans = this.translator.load('jupyterlab');\n this.addClass(TOOLBAR_KERNEL_STATUS_CLASS);\n this._statusNames = (0,_kernelstatuses__WEBPACK_IMPORTED_MODULE_5__.translateKernelStatuses)(this.translator);\n this._onStatusChanged(sessionContext);\n sessionContext.statusChanged.connect(this._onStatusChanged, this);\n sessionContext.connectionStatusChanged.connect(this._onStatusChanged, this);\n }\n /**\n * Handle a status on a kernel.\n */\n _onStatusChanged(sessionContext) {\n if (this.isDisposed) {\n return;\n }\n const status = sessionContext.kernelDisplayStatus;\n const circleIconProps = {\n container: this.node,\n title: this._trans.__('Kernel %1', this._statusNames[status] || status),\n stylesheet: 'toolbarButton',\n alignSelf: 'normal',\n height: '24px'\n };\n // set the icon\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.LabIcon.remove(this.node);\n if (status === 'busy' ||\n status === 'starting' ||\n status === 'terminating' ||\n status === 'restarting' ||\n status === 'initializing') {\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.circleIcon.element(circleIconProps);\n }\n else if (status === 'connecting' ||\n status === 'disconnected' ||\n status === 'unknown') {\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.offlineBoltIcon.element(circleIconProps);\n }\n else {\n _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.circleEmptyIcon.element(circleIconProps);\n }\n }\n }\n Private.KernelStatus = KernelStatus;\n})(Private || (Private = {}));\n//# sourceMappingURL=widget.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/toolbar/widget.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/widgettracker.js": +/*!*****************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/widgettracker.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WidgetTracker: () => (/* binding */ WidgetTracker)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/statedb */ \"webpack/sharing/consume/default/@jupyterlab/statedb/@jupyterlab/statedb\");\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_2__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n/**\n * A class that keeps track of widget instances on an Application shell.\n *\n * @typeparam T - The type of widget being tracked. Defaults to `Widget`.\n *\n * #### Notes\n * The API surface area of this concrete implementation is substantially larger\n * than the widget tracker interface it implements. The interface is intended\n * for export by JupyterLab plugins that create widgets and have clients who may\n * wish to keep track of newly created widgets. This class, however, can be used\n * internally by plugins to restore state as well.\n */\nclass WidgetTracker {\n /**\n * Create a new widget tracker.\n *\n * @param options - The instantiation options for a widget tracker.\n */\n constructor(options) {\n this._currentChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal(this);\n this._deferred = null;\n this._isDisposed = false;\n this._widgetAdded = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal(this);\n this._widgetUpdated = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal(this);\n const focus = (this._focusTracker = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_2__.FocusTracker());\n const pool = (this._pool = new _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_0__.RestorablePool(options));\n this.namespace = options.namespace;\n focus.currentChanged.connect((_, current) => {\n if (current.newValue !== this.currentWidget) {\n pool.current = current.newValue;\n }\n }, this);\n pool.added.connect((_, widget) => {\n this._widgetAdded.emit(widget);\n }, this);\n pool.currentChanged.connect((_, widget) => {\n // If the pool's current reference is `null` but the focus tracker has a\n // current widget, update the pool to match the focus tracker.\n if (widget === null && focus.currentWidget) {\n pool.current = focus.currentWidget;\n return;\n }\n this.onCurrentChanged(widget);\n this._currentChanged.emit(widget);\n }, this);\n pool.updated.connect((_, widget) => {\n this._widgetUpdated.emit(widget);\n }, this);\n }\n /**\n * A signal emitted when the current widget changes.\n */\n get currentChanged() {\n return this._currentChanged;\n }\n /**\n * The current widget is the most recently focused or added widget.\n *\n * #### Notes\n * It is the most recently focused widget, or the most recently added\n * widget if no widget has taken focus.\n */\n get currentWidget() {\n return this._pool.current || null;\n }\n /**\n * A promise resolved when the tracker has been restored.\n */\n get restored() {\n if (this._deferred) {\n return Promise.resolve();\n }\n else {\n return this._pool.restored;\n }\n }\n /**\n * The number of widgets held by the tracker.\n */\n get size() {\n return this._pool.size;\n }\n /**\n * A signal emitted when a widget is added.\n *\n * #### Notes\n * This signal will only fire when a widget is added to the tracker. It will\n * not fire if a widget is injected into the tracker.\n */\n get widgetAdded() {\n return this._widgetAdded;\n }\n /**\n * A signal emitted when a widget is updated.\n */\n get widgetUpdated() {\n return this._widgetUpdated;\n }\n /**\n * Add a new widget to the tracker.\n *\n * @param widget - The widget being added.\n *\n * #### Notes\n * The widget passed into the tracker is added synchronously; its existence in\n * the tracker can be checked with the `has()` method. The promise this method\n * returns resolves after the widget has been added and saved to an underlying\n * restoration connector, if one is available.\n *\n * The newly added widget becomes the current widget unless the focus tracker\n * already had a focused widget.\n */\n async add(widget) {\n this._focusTracker.add(widget);\n await this._pool.add(widget);\n if (!this._focusTracker.activeWidget) {\n this._pool.current = widget;\n }\n }\n /**\n * Test whether the tracker is disposed.\n */\n get isDisposed() {\n return this._isDisposed;\n }\n /**\n * Dispose of the resources held by the tracker.\n */\n dispose() {\n if (this.isDisposed) {\n return;\n }\n this._isDisposed = true;\n this._pool.dispose();\n this._focusTracker.dispose();\n _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal.clearData(this);\n }\n /**\n * Find the first widget in the tracker that satisfies a filter function.\n *\n * @param fn The filter function to call on each widget.\n *\n * #### Notes\n * If no widget is found, the value returned is `undefined`.\n */\n find(fn) {\n return this._pool.find(fn);\n }\n /**\n * Iterate through each widget in the tracker.\n *\n * @param fn - The function to call on each widget.\n */\n forEach(fn) {\n return this._pool.forEach(fn);\n }\n /**\n * Filter the widgets in the tracker based on a predicate.\n *\n * @param fn - The function by which to filter.\n */\n filter(fn) {\n return this._pool.filter(fn);\n }\n /**\n * Inject a foreign widget into the widget tracker.\n *\n * @param widget - The widget to inject into the tracker.\n *\n * #### Notes\n * Injected widgets will not have their state saved by the tracker.\n *\n * The primary use case for widget injection is for a plugin that offers a\n * sub-class of an extant plugin to have its instances share the same commands\n * as the parent plugin (since most relevant commands will use the\n * `currentWidget` of the parent plugin's widget tracker). In this situation,\n * the sub-class plugin may well have its own widget tracker for layout and\n * state restoration in addition to injecting its widgets into the parent\n * plugin's widget tracker.\n */\n inject(widget) {\n return this._pool.inject(widget);\n }\n /**\n * Check if this tracker has the specified widget.\n *\n * @param widget - The widget whose existence is being checked.\n */\n has(widget) {\n return this._pool.has(widget);\n }\n /**\n * Restore the widgets in this tracker's namespace.\n *\n * @param options - The configuration options that describe restoration.\n *\n * @returns A promise that resolves when restoration has completed.\n *\n * #### Notes\n * This function should not typically be invoked by client code.\n * Its primary use case is to be invoked by a restorer.\n */\n async restore(options) {\n const deferred = this._deferred;\n if (deferred) {\n this._deferred = null;\n return this._pool.restore(deferred);\n }\n if (options) {\n return this._pool.restore(options);\n }\n console.warn('No options provided to restore the tracker.');\n }\n /**\n * Save the restore options for this tracker, but do not restore yet.\n *\n * @param options - The configuration options that describe restoration.\n *\n * ### Notes\n * This function is useful when starting the shell in 'single-document' mode,\n * to avoid restoring all useless widgets. It should not ordinarily be called\n * by client code.\n */\n defer(options) {\n this._deferred = options;\n }\n /**\n * Save the restore data for a given widget.\n *\n * @param widget - The widget being saved.\n */\n async save(widget) {\n return this._pool.save(widget);\n }\n /**\n * Handle the current change event.\n *\n * #### Notes\n * The default implementation is a no-op.\n */\n onCurrentChanged(value) {\n /* no-op */\n }\n}\n//# sourceMappingURL=widgettracker.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/widgettracker.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/lib/windowresolver.js": +/*!******************************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/lib/windowresolver.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WindowResolver: () => (/* binding */ WindowResolver)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * A concrete implementation of a window name resolver.\n */\nclass WindowResolver {\n /**\n * The resolved window name.\n *\n * #### Notes\n * If the `resolve` promise has not resolved, the behavior is undefined.\n */\n get name() {\n return this._name;\n }\n /**\n * Resolve a window name to use as a handle among shared resources.\n *\n * @param candidate - The potential window name being resolved.\n *\n * #### Notes\n * Typically, the name candidate should be a JupyterLab workspace name or\n * an empty string if there is no workspace.\n *\n * If the returned promise rejects, a window name cannot be resolved without\n * user intervention, which typically means navigation to a new URL.\n */\n resolve(candidate) {\n return Private.resolve(candidate).then(name => {\n this._name = name;\n });\n }\n}\n/*\n * A namespace for private module data.\n */\nvar Private;\n(function (Private) {\n /**\n * The internal prefix for private local storage keys.\n */\n const PREFIX = '@jupyterlab/statedb:StateDB';\n /**\n * The local storage beacon key.\n */\n const BEACON = `${PREFIX}:beacon`;\n /**\n * The timeout (in ms) to wait for beacon responders.\n *\n * #### Notes\n * This value is a whole number between 200 and 500 in order to prevent\n * perfect timeout collisions between multiple simultaneously opening windows\n * that have the same URL. This is an edge case because multiple windows\n * should not ordinarily share the same URL, but it can be contrived.\n */\n const TIMEOUT = Math.floor(200 + Math.random() * 300);\n /**\n * The local storage window key.\n */\n const WINDOW = `${PREFIX}:window`;\n /**\n * Current beacon request\n *\n * #### Notes\n * We keep track of the current request so that we can ignore our own beacon\n * requests. This is to work around a bug in Safari, where Safari sometimes\n * triggers local storage events for changes made by the current tab. See\n * https://github.com/jupyterlab/jupyterlab/issues/6921#issuecomment-540817283\n * for more details.\n */\n let currentBeaconRequest = null;\n /**\n * A potential preferred default window name.\n */\n let candidate = null;\n /**\n * The window name promise.\n */\n const delegate = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.PromiseDelegate();\n /**\n * The known window names.\n */\n const known = {};\n /**\n * The window name.\n */\n let name = null;\n /**\n * Whether the name resolution has completed.\n */\n let resolved = false;\n /**\n * Start the storage event handler.\n */\n function initialize() {\n // Listen to all storage events for beacons and window names.\n window.addEventListener('storage', (event) => {\n const { key, newValue } = event;\n // All the keys we care about have values.\n if (newValue === null) {\n return;\n }\n // If the beacon was fired, respond with a ping.\n if (key === BEACON &&\n newValue !== currentBeaconRequest &&\n candidate !== null) {\n ping(resolved ? name : candidate);\n return;\n }\n // If the window name is resolved, bail.\n if (resolved || key !== WINDOW) {\n return;\n }\n const reported = newValue.replace(/\\-\\d+$/, '');\n // Store the reported window name.\n known[reported] = null;\n // If a reported window name and candidate collide, reject the candidate.\n if (!candidate || candidate in known) {\n reject();\n }\n });\n }\n /**\n * Ping peers with payload.\n */\n function ping(payload) {\n if (payload === null) {\n return;\n }\n const { localStorage } = window;\n localStorage.setItem(WINDOW, `${payload}-${new Date().getTime()}`);\n }\n /**\n * Reject the candidate.\n */\n function reject() {\n resolved = true;\n currentBeaconRequest = null;\n delegate.reject(`Window name candidate \"${candidate}\" already exists`);\n }\n /**\n * Returns a promise that resolves with the window name used for restoration.\n */\n function resolve(potential) {\n if (resolved) {\n return delegate.promise;\n }\n // Set the local candidate.\n candidate = potential;\n if (candidate in known) {\n reject();\n return delegate.promise;\n }\n const { localStorage, setTimeout } = window;\n // Wait until other windows have reported before claiming the candidate.\n setTimeout(() => {\n if (resolved) {\n return;\n }\n // If the window name has not already been resolved, check one last time\n // to confirm it is not a duplicate before resolving.\n if (!candidate || candidate in known) {\n return reject();\n }\n resolved = true;\n currentBeaconRequest = null;\n delegate.resolve((name = candidate));\n ping(name);\n }, TIMEOUT);\n // Fire the beacon to collect other windows' names.\n currentBeaconRequest = `${Math.random()}-${new Date().getTime()}`;\n localStorage.setItem(BEACON, currentBeaconRequest);\n return delegate.promise;\n }\n Private.resolve = resolve;\n // Initialize the storage listener at runtime.\n (() => {\n initialize();\n })();\n})(Private || (Private = {}));\n//# sourceMappingURL=windowresolver.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/windowresolver.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/apputils/style/index.js": +/*!***********************************************************!*\ + !*** ../node_modules/@jupyterlab/apputils/style/index.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lumino_widgets_style_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/widgets/style/index.js */ \"../node_modules/@lumino/widgets/style/index.js\");\n/* harmony import */ var _jupyterlab_ui_components_style_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components/style/index.js */ \"../node_modules/@jupyterlab/ui-components/style/index.js\");\n/* harmony import */ var _jupyterlab_statusbar_style_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/statusbar/style/index.js */ \"../node_modules/@jupyterlab/statusbar/style/index.js\");\n/* harmony import */ var _base_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./base.css */ \"../node_modules/@jupyterlab/apputils/style/base.css\");\n/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */\n\n\n\n\n\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/style/index.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/attachments/lib/index.js": +/*!************************************************************!*\ + !*** ../node_modules/@jupyterlab/attachments/lib/index.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AttachmentsModel: () => (/* reexport safe */ _model__WEBPACK_IMPORTED_MODULE_0__.AttachmentsModel),\n/* harmony export */ AttachmentsResolver: () => (/* reexport safe */ _model__WEBPACK_IMPORTED_MODULE_0__.AttachmentsResolver)\n/* harmony export */ });\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./model */ \"../node_modules/@jupyterlab/attachments/lib/model.js\");\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n/**\n * @packageDocumentation\n * @module attachments\n */\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/attachments/lib/index.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/attachments/lib/model.js": +/*!************************************************************!*\ + !*** ../node_modules/@jupyterlab/attachments/lib/model.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AttachmentsModel: () => (/* binding */ AttachmentsModel),\n/* harmony export */ AttachmentsResolver: () => (/* binding */ AttachmentsResolver)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/observables */ \"webpack/sharing/consume/default/@jupyterlab/observables/@jupyterlab/observables\");\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/rendermime */ \"webpack/sharing/consume/default/@jupyterlab/rendermime/@jupyterlab/rendermime\");\n/* harmony import */ var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_2__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n/**\n * The default implementation of the IAttachmentsModel.\n */\nclass AttachmentsModel {\n /**\n * Construct a new observable outputs instance.\n */\n constructor(options) {\n var _a;\n this._map = new _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__.ObservableMap();\n this._isDisposed = false;\n this._stateChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal(this);\n this._changed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal(this);\n this._serialized = null;\n this._changeGuard = false;\n this.contentFactory =\n (_a = options.contentFactory) !== null && _a !== void 0 ? _a : AttachmentsModel.defaultContentFactory;\n if (options.values) {\n for (const key of Object.keys(options.values)) {\n if (options.values[key] !== undefined) {\n this.set(key, options.values[key]);\n }\n }\n }\n this._map.changed.connect(this._onMapChanged, this);\n }\n /**\n * A signal emitted when the model state changes.\n */\n get stateChanged() {\n return this._stateChanged;\n }\n /**\n * A signal emitted when the model changes.\n */\n get changed() {\n return this._changed;\n }\n /**\n * The keys of the attachments in the model.\n */\n get keys() {\n return this._map.keys();\n }\n /**\n * Get the length of the items in the model.\n */\n get length() {\n return this._map.keys().length;\n }\n /**\n * Test whether the model is disposed.\n */\n get isDisposed() {\n return this._isDisposed;\n }\n /**\n * Dispose of the resources used by the model.\n */\n dispose() {\n if (this.isDisposed) {\n return;\n }\n this._isDisposed = true;\n this._map.dispose();\n _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal.clearData(this);\n }\n /**\n * Whether the specified key is set.\n */\n has(key) {\n return this._map.has(key);\n }\n /**\n * Get an item at the specified key.\n */\n get(key) {\n return this._map.get(key);\n }\n /**\n * Set the value at the specified key.\n */\n set(key, value) {\n // Normalize stream data.\n const item = this._createItem({ value });\n this._map.set(key, item);\n }\n /**\n * Remove the attachment whose name is the specified key\n */\n remove(key) {\n this._map.delete(key);\n }\n /**\n * Clear all of the attachments.\n */\n clear() {\n this._map.values().forEach((item) => {\n item.dispose();\n });\n this._map.clear();\n }\n /**\n * Deserialize the model from JSON.\n *\n * #### Notes\n * This will clear any existing data.\n */\n fromJSON(values) {\n this.clear();\n Object.keys(values).forEach(key => {\n if (values[key] !== undefined) {\n this.set(key, values[key]);\n }\n });\n }\n /**\n * Serialize the model to JSON.\n */\n toJSON() {\n const ret = {};\n for (const key of this._map.keys()) {\n ret[key] = this._map.get(key).toJSON();\n }\n return ret;\n }\n /**\n * Create an attachment item and hook up its signals.\n */\n _createItem(options) {\n const factory = this.contentFactory;\n const item = factory.createAttachmentModel(options);\n item.changed.connect(this._onGenericChange, this);\n return item;\n }\n /**\n * Handle a change to the list.\n */\n _onMapChanged(sender, args) {\n if (this._serialized && !this._changeGuard) {\n this._changeGuard = true;\n this._serialized.set(this.toJSON());\n this._changeGuard = false;\n }\n this._changed.emit(args);\n this._stateChanged.emit(void 0);\n }\n /**\n * Handle a change to an item.\n */\n _onGenericChange() {\n this._stateChanged.emit(void 0);\n }\n}\n/**\n * The namespace for AttachmentsModel class statics.\n */\n(function (AttachmentsModel) {\n /**\n * The default implementation of a `IAttachmentsModel.IContentFactory`.\n */\n class ContentFactory {\n /**\n * Create an attachment model.\n */\n createAttachmentModel(options) {\n return new _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_1__.AttachmentModel(options);\n }\n }\n AttachmentsModel.ContentFactory = ContentFactory;\n /**\n * The default attachment model factory.\n */\n AttachmentsModel.defaultContentFactory = new ContentFactory();\n})(AttachmentsModel || (AttachmentsModel = {}));\n/**\n * A resolver for cell attachments 'attachment:filename'.\n *\n * Will resolve to a data: url.\n */\nclass AttachmentsResolver {\n /**\n * Create an attachments resolver object.\n */\n constructor(options) {\n this._parent = options.parent || null;\n this._model = options.model;\n }\n /**\n * Resolve a relative url to a correct server path.\n */\n async resolveUrl(url) {\n if (this._parent && !url.startsWith('attachment:')) {\n return this._parent.resolveUrl(url);\n }\n return url;\n }\n /**\n * Get the download url of a given absolute server path.\n *\n * #### Notes\n * The returned URL may include a query parameter.\n */\n async getDownloadUrl(path) {\n if (this._parent && !path.startsWith('attachment:')) {\n return this._parent.getDownloadUrl(path);\n }\n // Return a data URL with the data of the url\n const key = path.slice('attachment:'.length);\n const attachment = this._model.get(key);\n if (attachment === undefined) {\n // Resolve with unprocessed path, to show as broken image\n return path;\n }\n const { data } = attachment;\n const mimeType = Object.keys(data)[0];\n // Only support known safe types:\n if (mimeType === undefined ||\n _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_1__.imageRendererFactory.mimeTypes.indexOf(mimeType) === -1) {\n throw new Error(`Cannot render unknown image mime type \"${mimeType}\".`);\n }\n const dataUrl = `data:${mimeType};base64,${data[mimeType]}`;\n return dataUrl;\n }\n /**\n * Whether the URL should be handled by the resolver\n * or not.\n */\n isLocal(url) {\n var _a, _b, _c;\n if (this._parent && !url.startsWith('attachment:')) {\n return (_c = (_b = (_a = this._parent).isLocal) === null || _b === void 0 ? void 0 : _b.call(_a, url)) !== null && _c !== void 0 ? _c : true;\n }\n return true;\n }\n}\n//# sourceMappingURL=model.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/attachments/lib/model.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/attachments/style/index.js": +/*!**************************************************************!*\ + !*** ../node_modules/@jupyterlab/attachments/style/index.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _jupyterlab_rendermime_style_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/rendermime/style/index.js */ \"../node_modules/@jupyterlab/rendermime/style/index.js\");\n/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */\n\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/attachments/style/index.js?"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application-extension/style/base.css": +/*!************************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application-extension/style/base.css ***! + \************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n|\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n#jp-MainLogo {\n width: calc(var(--jp-private-sidebar-tab-width) + var(--jp-border-width));\n}\n\n#jp-top-bar {\n --jp-private-toolbar-height: var(--jp-private-menu-panel-height);\n\n flex: 1 1 auto;\n padding: 0 2px;\n box-shadow: none;\n border: none;\n align-items: center;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application-extension/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/base.css": +/*!**************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/base.css ***! + \**************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_core_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./core.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/core.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_datagrid_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./datagrid.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/datagrid.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_dockpanel_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./dockpanel.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/dockpanel.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_menus_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./menus.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/menus.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_scrollbar_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./scrollbar.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/scrollbar.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_tabs_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./tabs.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/tabs.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_buttons_css__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./buttons.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/buttons.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_sidepanel_css__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./sidepanel.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/sidepanel.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_titlepanel_css__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./titlepanel.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/titlepanel.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_skiplink_css__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./skiplink.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/skiplink.css\");\n// Imports\n\n\n\n\n\n\n\n\n\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_core_css__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_datagrid_css__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_dockpanel_css__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_menus_css__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_scrollbar_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_tabs_css__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_buttons_css__WEBPACK_IMPORTED_MODULE_8__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_sidepanel_css__WEBPACK_IMPORTED_MODULE_9__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_titlepanel_css__WEBPACK_IMPORTED_MODULE_10__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_skiplink_css__WEBPACK_IMPORTED_MODULE_11__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* Sibling imports */\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/buttons.css": +/*!*****************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/buttons.css ***! + \*****************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-flat-button-height: 24px;\n --jp-flat-button-padding: 8px 12px;\n}\n\n/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-ThemedContainer button {\n border-radius: var(--jp-border-radius);\n}\n\n.jp-ThemedContainer button:focus-visible {\n outline: 1px solid var(--jp-accept-color-active, var(--jp-brand-color1));\n outline-offset: -1px;\n}\n\nbutton.jp-mod-styled.jp-mod-accept {\n background: var(--jp-accept-color-normal, var(--md-blue-500, #2196f3));\n border: 0;\n color: white;\n}\n\nbutton.jp-mod-styled.jp-mod-accept:hover {\n background: var(--jp-accept-color-hover, var(--md-blue-600, #1e88e5));\n}\n\nbutton.jp-mod-styled.jp-mod-accept:active {\n background: var(--jp-accept-color-active, var(--md-blue-700, #1976d2));\n}\n\nbutton.jp-mod-styled.jp-mod-accept:focus-visible {\n outline: 1px solid var(--jp-accept-color-active, var(--jp-brand-color1));\n}\n\nbutton.jp-mod-styled.jp-mod-reject {\n background: var(--jp-reject-color-normal, var(--md-grey-500, #9e9e9e));\n border: 0;\n color: white;\n}\n\nbutton.jp-mod-styled.jp-mod-reject:hover {\n background: var(--jp-reject-color-hover, var(--md-grey-600, #757575));\n}\n\nbutton.jp-mod-styled.jp-mod-reject:active {\n background: var(--jp-reject-color-active, var(--md-grey-700, #616161));\n}\n\nbutton.jp-mod-styled.jp-mod-reject:focus-visible {\n outline: 1px solid var(--jp-reject-color-active, var(--md-grey-700, #616161));\n}\n\nbutton.jp-mod-styled.jp-mod-warn {\n background: var(--jp-warn-color-normal, var(--jp-error-color1));\n border: 0;\n color: white;\n}\n\nbutton.jp-mod-styled.jp-mod-warn:hover {\n background: var(--jp-warn-color-hover, var(--md-red-600, #e53935));\n}\n\nbutton.jp-mod-styled.jp-mod-warn:active {\n background: var(--jp-warn-color-active, var(--md-red-700, #d32f2f));\n}\n\nbutton.jp-mod-styled.jp-mod-warn:focus-visible {\n outline: 1px solid var(--jp-warn-color-active, var(--md-red-700, #d32f2f));\n}\n\n.jp-Button-flat {\n text-decoration: none;\n padding: var(--jp-flat-button-padding);\n font-weight: 500;\n background-color: transparent;\n height: var(--jp-private-running-shutdown-button-height);\n line-height: var(--jp-private-running-shutdown-button-height);\n transition: background-color 0.1s ease;\n border-radius: 2px;\n}\n\n.jp-Button-flat:focus {\n border: none;\n box-shadow: none;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/buttons.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/core.css": +/*!**************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/core.css ***! + \**************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-menu-panel-height: 27px;\n}\n\n.lm-Widget.lm-mod-hidden {\n display: none !important;\n}\n\n.jp-ThemedContainer {\n font-family: var(--jp-ui-font-family);\n background: var(--jp-layout-color3);\n margin: 0;\n padding: 0;\n overflow: hidden;\n}\n\n.jp-LabShell {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.jp-LabShell.jp-mod-devMode {\n border-top: 4px solid red;\n}\n\n#jp-main-dock-panel {\n padding: 5px;\n}\n\n#jp-main-dock-panel[data-mode='single-document'] {\n padding: 0;\n}\n\n#jp-main-dock-panel[data-mode='single-document'] .jp-MainAreaWidget {\n border: none;\n}\n\n#jp-top-panel {\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n background: var(--jp-layout-color1);\n display: flex;\n min-height: var(--jp-private-menubar-height);\n overflow: visible;\n\n /* relax lumino strict CSS contaiment to allow painting the menu bar item\n over the menu in order to create an illusion of partial border */\n contain: style size !important;\n}\n\n#jp-menu-panel {\n min-height: var(--jp-private-menu-panel-height);\n background: var(--jp-layout-color1);\n}\n\n#jp-down-stack {\n border-bottom: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n.jp-LabShell[data-shell-mode='single-document'] #jp-top-panel {\n border-bottom: none;\n}\n\n.jp-LabShell[data-shell-mode='single-document'] #jp-menu-panel {\n padding-left: calc(\n var(--jp-private-sidebar-tab-width) + var(--jp-border-width)\n );\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n\n /* Adjust min-height so open menus show up in the right place */\n min-height: calc(\n var(--jp-private-menu-panel-height) + var(--jp-border-width)\n );\n}\n\n#jp-bottom-panel {\n background: var(--jp-layout-color1);\n display: flex;\n}\n\n#jp-single-document-mode {\n margin: 0 8px;\n display: flex;\n align-items: center;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/core.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/datagrid.css": +/*!******************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/datagrid.css ***! + \******************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.lm-DataGrid {\n min-width: 64px;\n min-height: 64px;\n border: 1px solid #a0a0a0;\n}\n\n.lm-DataGrid-scrollCorner {\n background-color: #f0f0f0;\n}\n\n.lm-DataGrid-scrollCorner::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 1px;\n height: 1px;\n background-color: #a0a0a0;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/datagrid.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/dockpanel.css": +/*!*******************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/dockpanel.css ***! + \*******************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| DockPanel\n|----------------------------------------------------------------------------*/\n\n.lm-DockPanel-widget,\n.lm-TabPanel-stackedPanel {\n background: var(--jp-layout-color0);\n border-left: var(--jp-border-width) solid var(--jp-border-color1);\n border-right: var(--jp-border-width) solid var(--jp-border-color1);\n border-bottom: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n.lm-DockPanel-overlay {\n background: rgba(33, 150, 243, 0.1);\n border: var(--jp-border-width) dashed var(--jp-brand-color1);\n transition-property: top, left, right, bottom;\n transition-duration: 150ms;\n transition-timing-function: ease;\n}\n\n.lm-DockPanel-overlay.lm-mod-root-top,\n.lm-DockPanel-overlay.lm-mod-root-left,\n.lm-DockPanel-overlay.lm-mod-root-right,\n.lm-DockPanel-overlay.lm-mod-root-bottom,\n.lm-DockPanel-overlay.lm-mod-root-center {\n border-width: 2px;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/dockpanel.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/menus.css": +/*!***************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/menus.css ***! + \***************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-menubar-height: 28px;\n --jp-private-menu-item-height: 24px;\n}\n\n/*-----------------------------------------------------------------------------\n| MenuBar\n|----------------------------------------------------------------------------*/\n\n.lm-MenuBar {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n overflow: hidden;\n}\n\n.lm-MenuBar:hover {\n overflow-x: auto;\n}\n\n.lm-MenuBar-menu.jp-ThemedContainer {\n top: calc(-2 * var(--jp-border-width));\n scrollbar-width: none;\n -ms-overflow-style: none;\n overflow: auto;\n background:\n linear-gradient(var(--jp-layout-color0) 30%, rgba(0, 0, 0, 0)) center top,\n linear-gradient(rgba(0, 0, 0, 0), var(--jp-layout-color0) 70%) center bottom,\n radial-gradient(\n farthest-side at 50% 0,\n color-mix(\n in hsl,\n var(--jp-layout-color0) 50%,\n var(--jp-inverse-layout-color0) 30%\n ),\n rgba(0, 0, 0, 0)\n )\n center top,\n radial-gradient(\n farthest-side at 50% 100%,\n color-mix(\n in hsl,\n var(--jp-layout-color0) 50%,\n var(--jp-inverse-layout-color0) 30%\n ),\n rgba(0, 0, 0, 0)\n )\n center bottom;\n background-color: var(--jp-layout-color0);\n background-repeat: no-repeat;\n background-size:\n 100% 40px,\n 100% 40px,\n 100% 14px,\n 100% 14px;\n background-attachment: local, local, scroll, scroll;\n}\n\n.lm-MenuBar-menu.jp-ThemedContainer::-webkit-scrollbar {\n display: none;\n}\n\n.lm-MenuBar-item {\n padding: 0 8px;\n border-left: var(--jp-border-width) solid transparent;\n border-right: var(--jp-border-width) solid transparent;\n border-top: var(--jp-border-width) solid transparent;\n line-height: calc(\n var(--jp-private-menubar-height) - var(--jp-border-width) * 2\n );\n}\n\n.lm-MenuBar-content:focus-visible {\n outline-offset: -3px; /* this value is a compromise between Firefox, Chrome,\n and Safari over this outline's visibility and discretion */\n}\n\n.lm-MenuBar:focus-visible {\n outline: 1px solid var(--jp-accept-color-active, var(--jp-brand-color1));\n outline-offset: -1px;\n}\n\n.lm-MenuBar-menu:focus-visible,\n.lm-MenuBar-item:focus-visible,\n.lm-Menu-item:focus-visible {\n outline: unset;\n outline-offset: unset;\n -moz-outline-radius: unset;\n}\n\n.lm-MenuBar-item.lm-mod-active {\n background: var(--jp-layout-color2);\n}\n\n.lm-MenuBar.lm-mod-active .lm-MenuBar-item.lm-mod-active {\n z-index: 10001;\n background: var(--jp-layout-color0);\n color: var(--jp-ui-font-color0);\n border-left: var(--jp-border-width) solid var(--jp-border-color1);\n border-right: var(--jp-border-width) solid var(--jp-border-color1);\n box-shadow: var(--jp-elevation-z6);\n}\n\n/* stylelint-disable-next-line selector-max-class */\n.jp-LabShell[data-shell-mode='single-document']\n .lm-MenuBar.lm-mod-active\n .lm-MenuBar-item.lm-mod-active {\n border-top: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n.lm-MenuBar-item.lm-mod-disabled {\n color: var(--jp-ui-font-color3);\n}\n\n.lm-MenuBar-item.lm-type-separator {\n margin: 2px;\n padding: 0;\n border: none;\n border-left: var(--jp-border-width) solid var(--jp-border-color2);\n}\n\n.lm-MenuBar-itemMnemonic {\n text-decoration: underline;\n}\n\n/*-----------------------------------------------------------------------------\n| Menu\n|----------------------------------------------------------------------------*/\n\n.lm-Menu {\n z-index: 10000;\n padding: 4px 0;\n background: var(--jp-layout-color0);\n color: var(--jp-ui-font-color0);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n font-size: var(--jp-ui-font-size1);\n box-shadow: var(--jp-elevation-z6);\n}\n\n.lm-Menu-item {\n min-height: var(--jp-private-menu-item-height);\n max-height: var(--jp-private-menu-item-height);\n padding: 0;\n line-height: var(--jp-private-menu-item-height);\n}\n\n.lm-Menu-item.lm-mod-active {\n background: var(--jp-layout-color2);\n}\n\n.lm-Menu-item.lm-mod-disabled {\n color: var(--jp-ui-font-color3);\n}\n\n.lm-Menu-itemIcon {\n width: 21px;\n padding: 0 2px 0 4px;\n margin-top: -2px;\n}\n\n.lm-Menu-itemLabel {\n padding: 0 32px 0 2px;\n}\n\n.lm-Menu-itemMnemonic {\n text-decoration: underline;\n}\n\n.lm-Menu-itemShortcut {\n padding: 0;\n}\n\n.lm-Menu-itemSubmenuIcon {\n width: 18px;\n padding: 0 4px 0 0;\n}\n\n.lm-Menu-item[data-type='separator'] > div {\n padding: 0;\n height: 9px;\n}\n\n.lm-Menu-item[data-type='separator'] > div::after {\n content: '';\n display: block;\n position: relative;\n top: 4px;\n border-top: var(--jp-border-width) solid var(--jp-layout-color2);\n mix-blend-mode: multiply;\n}\n\n/* gray out icon/caret for disabled menu items */\n.lm-Menu-item.lm-mod-disabled > .lm-Menu-itemIcon,\n.lm-Menu-item[data-type='submenu'].lm-mod-disabled > .lm-Menu-itemSubmenuIcon {\n opacity: 0.4;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/menus.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/scrollbar.css": +/*!*******************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/scrollbar.css ***! + \*******************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*\n * Mozilla scrollbar styling\n */\n\n/* use standard opaque scrollbars for most nodes */\n[data-jp-theme-scrollbars='true'] {\n scrollbar-color: rgb(var(--jp-scrollbar-thumb-color))\n var(--jp-scrollbar-background-color);\n}\n\n/* for code nodes, use a transparent style of scrollbar. These selectors\n * will match lower in the tree, and so will override the above */\n[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar,\n[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar {\n scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;\n}\n\n/* tiny scrollbar */\n\n.jp-scrollbar-tiny {\n scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;\n scrollbar-width: thin;\n}\n\n/* tiny scrollbar */\n\n.jp-scrollbar-tiny::-webkit-scrollbar,\n.jp-scrollbar-tiny::-webkit-scrollbar-corner {\n background-color: transparent;\n height: 4px;\n width: 4px;\n}\n\n.jp-scrollbar-tiny::-webkit-scrollbar-thumb {\n background: rgba(var(--jp-scrollbar-thumb-color), 0.5);\n}\n\n.jp-scrollbar-tiny::-webkit-scrollbar-track:horizontal {\n border-left: 0 solid transparent;\n border-right: 0 solid transparent;\n}\n\n.jp-scrollbar-tiny::-webkit-scrollbar-track:vertical {\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n}\n\n/*\n * Lumino\n */\n\n.lm-ScrollBar[data-orientation='horizontal'] {\n min-height: 16px;\n max-height: 16px;\n min-width: 45px;\n border-top: 1px solid #a0a0a0;\n}\n\n.lm-ScrollBar[data-orientation='vertical'] {\n min-width: 16px;\n max-width: 16px;\n min-height: 45px;\n border-left: 1px solid #a0a0a0;\n}\n\n.lm-ScrollBar-button {\n background-color: #f0f0f0;\n background-position: center center;\n min-height: 15px;\n max-height: 15px;\n min-width: 15px;\n max-width: 15px;\n}\n\n.lm-ScrollBar-button:hover {\n background-color: #dadada;\n}\n\n.lm-ScrollBar-button.lm-mod-active {\n background-color: #cdcdcd;\n}\n\n.lm-ScrollBar-track {\n background: #f0f0f0;\n}\n\n.lm-ScrollBar-thumb {\n background: #cdcdcd;\n}\n\n.lm-ScrollBar-thumb:hover {\n background: #bababa;\n}\n\n.lm-ScrollBar-thumb.lm-mod-active {\n background: #a0a0a0;\n}\n\n.lm-ScrollBar[data-orientation='horizontal'] .lm-ScrollBar-thumb {\n height: 100%;\n min-width: 15px;\n border-left: 1px solid #a0a0a0;\n border-right: 1px solid #a0a0a0;\n}\n\n.lm-ScrollBar[data-orientation='vertical'] .lm-ScrollBar-thumb {\n width: 100%;\n min-height: 15px;\n border-top: 1px solid #a0a0a0;\n border-bottom: 1px solid #a0a0a0;\n}\n\n.lm-ScrollBar[data-orientation='horizontal']\n .lm-ScrollBar-button[data-action='decrement'] {\n background-image: var(--jp-icon-caret-left);\n background-size: 17px;\n}\n\n.lm-ScrollBar[data-orientation='horizontal']\n .lm-ScrollBar-button[data-action='increment'] {\n background-image: var(--jp-icon-caret-right);\n background-size: 17px;\n}\n\n.lm-ScrollBar[data-orientation='vertical']\n .lm-ScrollBar-button[data-action='decrement'] {\n background-image: var(--jp-icon-caret-up);\n background-size: 17px;\n}\n\n.lm-ScrollBar[data-orientation='vertical']\n .lm-ScrollBar-button[data-action='increment'] {\n background-image: var(--jp-icon-caret-down);\n background-size: 17px;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/scrollbar.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/sidepanel.css": +/*!*******************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/sidepanel.css ***! + \*******************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-sidebar-tab-width: 32px;\n}\n\n/*-----------------------------------------------------------------------------\n| SideBar\n|----------------------------------------------------------------------------*/\n\n.jp-SideBar {\n /* This is needed so that all font sizing of children done in ems is\n * relative to this base size */\n font-size: var(--jp-ui-font-size1);\n}\n\n.jp-SideBar.lm-TabBar,\n#jp-down-stack .lm-TabBar {\n color: var(--jp-ui-font-color2);\n background: var(--jp-layout-color2);\n font-size: var(--jp-ui-font-size1);\n overflow: visible;\n}\n\n.jp-SideBar.lm-TabBar {\n min-width: calc(var(--jp-private-sidebar-tab-width) + var(--jp-border-width));\n max-width: calc(var(--jp-private-sidebar-tab-width) + var(--jp-border-width));\n display: block;\n}\n\n.jp-SideBar .lm-TabBar-content {\n margin: 0;\n padding: 0;\n display: flex;\n align-items: stretch;\n list-style-type: none;\n height: var(--jp-private-sidebar-tab-width);\n}\n\n.jp-SideBar .lm-TabBar-tab {\n padding: 16px 0;\n border: none;\n overflow: visible;\n flex-direction: column;\n position: relative;\n}\n\n.jp-SideBar .lm-TabBar-tab:focus-visible {\n /* --accent-fill-focus is computed by the jp toolkit to ensure accessibility */\n outline: 2px solid var(--accent-fill-focus, var(--jp-brand-color1));\n outline-offset: -3px;\n}\n\n.jp-SideBar .lm-TabBar-tab.lm-mod-current::after {\n /* Internal border override pseudo-element */\n position: absolute;\n content: '';\n bottom: 0;\n right: 0;\n top: 0;\n left: 0;\n border: var(--jp-border-width) solid var(--jp-layout-color1);\n}\n\n.jp-SideBar .lm-TabBar-tab:not(.lm-mod-current),\n#jp-down-stack .lm-TabBar-tab:not(.lm-mod-current) {\n background: var(--jp-layout-color2);\n}\n\n.jp-SideBar .lm-TabBar-tabIcon.jp-SideBar-tabIcon {\n min-width: 20px;\n min-height: 20px;\n background-size: 20px;\n display: inline-block;\n vertical-align: middle;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n.jp-SideBar .lm-TabBar-tabLabel {\n line-height: var(--jp-private-sidebar-tab-width);\n}\n\n.jp-SideBar .lm-TabBar-tab:hover:not(.lm-mod-current),\n#jp-down-stack .lm-TabBar-tab:hover:not(.lm-mod-current) {\n background: var(--jp-layout-color1);\n}\n\n.jp-SideBar.lm-TabBar::after {\n /* Internal border pseudo-element */\n position: absolute;\n content: '';\n bottom: 0;\n right: 0;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n\n/* Borders */\n\n/* stylelint-disable selector-max-class */\n\n.jp-SideBar.lm-TabBar .lm-TabBar-tab + .lm-TabBar-tab {\n border-top: var(--jp-border-width) solid var(--jp-layout-color2);\n}\n\n.jp-SideBar.lm-TabBar .lm-TabBar-tab.lm-mod-current + .lm-TabBar-tab {\n border-top: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n.jp-SideBar.lm-TabBar .lm-TabBar-tab + .lm-TabBar-tab.lm-mod-current {\n border-top: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n.jp-SideBar.lm-TabBar .lm-TabBar-tab.lm-mod-current:last-child {\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n.jp-SideBar.lm-TabBar .lm-TabBar-tabLabel {\n writing-mode: vertical-rl;\n}\n\n/* Left */\n\n/* Borders */\n\n.jp-SideBar.lm-TabBar.jp-mod-left .lm-TabBar-content {\n /* Internal border spacing */\n margin-right: var(--jp-border-width);\n}\n\n.jp-SideBar.lm-TabBar.jp-mod-left .lm-TabBar-tab.lm-mod-current::after {\n /* Internal border override */\n right: calc(-1 * var(--jp-border-width));\n}\n\n.jp-SideBar.lm-TabBar.jp-mod-left::after {\n /* Internal border */\n border-right: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n/* Transforms */\n\n.jp-SideBar.lm-TabBar.jp-mod-left .lm-TabBar-tabLabel {\n transform: rotate(180deg);\n}\n\n/* Right */\n\n/* Borders */\n\n.jp-SideBar.lm-TabBar.jp-mod-right .lm-TabBar-content {\n /* Internal border spacing */\n margin-left: var(--jp-border-width);\n}\n\n.jp-SideBar.lm-TabBar.jp-mod-right .lm-TabBar-tab.lm-mod-current::after {\n /* Internal border override */\n left: calc(-1 * var(--jp-border-width));\n}\n\n.jp-SideBar.lm-TabBar.jp-mod-right::after {\n /* Internal border */\n border-left: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n/* Down */\n\n/* Borders */\n\n#jp-down-stack > .lm-TabBar {\n border-top: var(--jp-border-width) solid var(--jp-border-color0);\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n#jp-down-stack > .lm-TabBar .lm-TabBar-tab {\n border-left: none;\n border-right: none;\n}\n\n#jp-down-stack > .lm-TabBar .lm-TabBar-tab.lm-mod-current {\n border: var(--jp-border-width) solid var(--jp-border-color1);\n border-bottom: none;\n transform: translateY(var(--jp-border-width));\n}\n\n#jp-down-stack > .lm-TabBar .lm-TabBar-tab.lm-mod-current:first-child {\n border: none;\n border-right: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n/* stylelint-enable selector-max-class */\n\n/* Stack panels */\n\n#jp-left-stack > .lm-Widget,\n#jp-right-stack > .lm-Widget {\n min-width: var(--jp-sidebar-min-width);\n background-color: var(--jp-layout-color1);\n}\n\n#jp-right-stack {\n border-left: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n#jp-left-stack {\n border-right: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n#jp-down-stack > .lm-TabPanel-stackedPanel {\n border: none;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/sidepanel.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/skiplink.css": +/*!******************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/skiplink.css ***! + \******************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n|\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-skiplink-wrapper {\n overflow: visible;\n\n /* override strict containment added via Lumino PR\n [#506](https://github.com/jupyterlab/lumino/pull/506) */\n contain: size style !important;\n}\n\n.jp-skiplink {\n position: absolute;\n top: -100em;\n}\n\n.jp-skiplink:focus-within {\n position: absolute;\n z-index: 10000;\n top: 0;\n left: 46%;\n margin: 0 auto;\n padding: 1em;\n width: 15%;\n box-shadow: var(--jp-elevation-z4);\n border-radius: 4px;\n background: var(--jp-layout-color0);\n text-align: center;\n}\n\n.jp-skiplink:focus-within a {\n text-decoration: underline;\n color: var(--jp-content-link-color);\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/skiplink.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/tabs.css": +/*!**************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/tabs.css ***! + \**************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n /* These need to be root because tabs get attached to the body during dragging. */\n --jp-private-horizontal-tab-height: 24px;\n --jp-private-horizontal-tab-width: 216px;\n --jp-private-horizontal-tab-active-top-border: 2px;\n}\n\n/*-----------------------------------------------------------------------------\n| Tabs in the dock panel\n|----------------------------------------------------------------------------*/\n\n.lm-DockPanel-tabBar,\n.lm-TabPanel-tabBar {\n overflow: visible;\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n}\n\n.lm-DockPanel-tabBar[data-orientation='horizontal'],\n.lm-TabPanel-tabBar[data-orientation='horizontal'] {\n min-height: calc(\n var(--jp-private-horizontal-tab-height) + 2 * var(--jp-border-width)\n );\n}\n\n.lm-DockPanel-tabBar[data-orientation='vertical'] {\n min-width: 80px;\n}\n\n.lm-DockPanel-tabBar > .lm-TabBar-content,\n.lm-TabPanel-tabBar > .lm-TabBar-content {\n align-items: flex-end;\n min-width: 0;\n min-height: 0;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab,\n.lm-TabPanel-tabBar .lm-TabBar-tab {\n flex: 0 1 var(--jp-private-horizontal-tab-width);\n align-items: center;\n min-height: calc(\n var(--jp-private-horizontal-tab-height) + 2 * var(--jp-border-width)\n );\n min-width: 0;\n margin-left: calc(-1 * var(--jp-border-width));\n line-height: var(--jp-private-horizontal-tab-height);\n padding: 0 8px;\n background: var(--jp-layout-color2);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n border-bottom: none;\n position: relative;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab:focus-visible,\n.lm-DockPanel-tabBar .lm-TabBar-addButton:focus-visible,\n.lm-TabPanel-tabBar .lm-TabBar-tab:focus-visible {\n border: 1px solid var(--accent-fill-focus);\n border-bottom: none;\n\n /* Thicken the border by 1px within the element border */\n box-shadow: 0 0 0 1px inset var(--accent-fill-focus);\n outline: none;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab:not(.lm-mod-current):focus-visible::after,\n.lm-TabPanel-tabBar .lm-TabBar-tab:not(.lm-mod-current):focus-visible::after {\n border-bottom-color: var(--accent-fill-focus);\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab:hover:not(.lm-mod-current),\n.lm-TabPanel-tabBar .lm-TabBar-tab:hover:not(.lm-mod-current) {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab:not(.lm-mod-current)::after,\n.lm-DockPanel-tabBar .lm-TabBar-addButton::after {\n position: absolute;\n content: '';\n bottom: 0;\n left: calc(-1 * var(--jp-border-width));\n width: calc(100% + 2 * var(--jp-border-width));\n border-bottom: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab:first-child,\n.lm-TabPanel-tabBar .lm-TabBar-tab:first-child {\n margin-left: 0;\n}\n\n/* This is a current tab of a tab bar in the dock panel: each tab bar has 1. */\n.lm-DockPanel-tabBar .lm-TabBar-tab.lm-mod-current {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n.lm-TabPanel-tabBar .lm-TabBar-tab.lm-mod-current {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n/* This is the main application level current tab: only 1 exists. */\n.lm-DockPanel-tabBar .lm-TabBar-tab.jp-mod-current::before {\n position: absolute;\n top: calc(-1 * var(--jp-border-width) + 1px);\n left: calc(-1 * var(--jp-border-width));\n content: '';\n height: var(--jp-private-horizontal-tab-active-top-border);\n width: calc(100% + 2 * var(--jp-border-width));\n background: var(--jp-brand-color1);\n}\n\n/* This is the left tab bar current tab: only 1 exists. */\n.lm-TabBar-tab.lm-mod-current {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab,\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab {\n flex: 0 1 40px;\n margin-top: -1px;\n line-height: 40px;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab {\n border-right: none;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab {\n border-left: none;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab:first-child,\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab:first-child {\n margin-top: 0;\n}\n\n/* stylelint-disable selector-max-class */\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab.lm-mod-current,\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab.lm-mod-current {\n min-width: 80px;\n max-width: 80px;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab.lm-mod-current {\n transform: translateX(-1px);\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab .lm-TabBar-tabIcon,\n.lm-TabBar-tab.lm-mod-drag-image .lm-TabBar-tabIcon,\n.lm-TabPanel-tabBar .lm-TabBar-tab .lm-TabBar-tabIcon {\n width: 14px;\n background-position: left center;\n background-repeat: no-repeat;\n background-size: 14px;\n margin-right: 4px;\n}\n\n/* stylelint-enable selector-max-class */\n\n.lm-TabBar-tab.lm-mod-drag-image {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n border-top: var(--jp-border-width) solid var(--jp-brand-color1);\n box-shadow: var(--jp-elevation-z4);\n font-size: var(--jp-ui-font-size1);\n line-height: var(--jp-private-horizontal-tab-height);\n min-height: var(--jp-private-horizontal-tab-height);\n min-width: var(--jp-private-horizontal-tab-width);\n padding: 0 10px;\n transform: translateX(-40%) translateY(-58%);\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/tabs.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/titlepanel.css": +/*!********************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/application/style/titlepanel.css ***! + \********************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-title-panel-height: 28px;\n}\n\n#jp-title-panel {\n min-height: var(--jp-private-title-panel-height);\n width: 100%;\n display: flex;\n background: var(--jp-layout-color1);\n}\n\n#jp-title-panel-title {\n flex: 1 1 auto;\n margin-left: 8px;\n}\n\n#jp-title-panel-title input {\n background: transparent;\n margin: 0;\n height: 28px;\n width: 100%;\n box-sizing: border-box;\n border: none;\n font-size: 18px;\n font-weight: normal;\n font-family: var(--jp-ui-font-family);\n line-height: var(--jp-private-title-panel-height);\n color: var(--jp-ui-font-color0);\n outline: none;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/application/style/titlepanel.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils-extension/style/base.css": +/*!*********************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils-extension/style/base.css ***! + \*********************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_notification_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./notification.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils-extension/style/notification.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_splash_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./splash.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils-extension/style/splash.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_contextualhelp_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./contextualhelp.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils-extension/style/contextualhelp.css\");\n// Imports\n\n\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_notification_css__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_splash_css__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_contextualhelp_css__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils-extension/style/contextualhelp.css": +/*!*******************************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils-extension/style/contextualhelp.css ***! + \*******************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n:root {\n --jp-private-shortcuts-key-padding-horizontal: 0.47em;\n --jp-private-shortcuts-key-padding-vertical: 0.28em;\n --jp-private-shortcuts-label-padding-horizontal: 0.47em;\n}\n\n.jp-ContextualShortcut-TableRow {\n font-size: var(--jp-ui-font-size1);\n font-family: var(--jp-ui-font-family);\n}\n\n.jp-ContextualShortcut-TableItem {\n margin-left: auto;\n margin-right: auto;\n color: var(--jp-inverse-layout-color0);\n font-size: var(--jp-ui-font-size1);\n line-height: 2em;\n padding-right: var(--jp-private-shortcuts-label-padding-horizontal);\n}\n\n.jp-ContextualShortcut-TableLastRow {\n height: 2em;\n}\n\n.jp-ContextualShortcut-Key {\n font-family: var(--jp-code-font-family);\n border-width: var(--jp-border-width);\n border-radius: var(--jp-border-radius);\n border-style: solid;\n border-color: var(--jp-border-color1);\n color: var(--jp-ui-font-color1);\n background: var(--jp-layout-color1);\n padding-left: var(--jp-private-shortcuts-key-padding-horizontal);\n padding-right: var(--jp-private-shortcuts-key-padding-horizontal);\n padding-top: var(--jp-private-shortcuts-key-padding-vertical);\n padding-bottom: var(--jp-private-shortcuts-key-padding-vertical);\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/style/contextualhelp.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils-extension/style/notification.css": +/*!*****************************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils-extension/style/notification.css ***! + \*****************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_react_toastify_dist_ReactToastify_min_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!../../../react-toastify/dist/ReactToastify.min.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/react-toastify/dist/ReactToastify.min.css\");\n// Imports\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_react_toastify_dist_ReactToastify_min_css__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n:root {\n --toastify-color-light: var(--jp-layout-color1);\n --toastify-color-dark: var(--jp-layout-color1);\n --toastify-color-info: var(--jp-info-color1);\n --toastify-color-success: var(--jp-success-color1);\n --toastify-color-warning: var(--jp-warn-color1);\n --toastify-color-error: var(--jp-error-color1);\n --toastify-color-transparent: rgba(255, 255, 255, 0.7);\n --toastify-icon-color-info: var(--toastify-color-info);\n --toastify-icon-color-success: var(--toastify-color-success);\n --toastify-icon-color-warning: var(--toastify-color-warning);\n --toastify-icon-color-error: var(--toastify-color-error);\n --toastify-toast-width: 25em;\n --toastify-toast-background: var(--jp-layout-color1);\n --toastify-toast-min-height: 64px;\n --toastify-toast-max-height: 800px;\n --toastify-font-family: var(--jp-ui-font-family);\n --toastify-z-index: 9999;\n --toastify-text-color-light: var(--jp-ui-font-color1);\n --toastify-text-color-dark: var(--jp-ui-font-color1);\n --toastify-text-color-info: var(--jp-ui-font-color1);\n --toastify-text-color-success: var(--jp-ui-font-color1);\n --toastify-text-color-warning: var(--jp-ui-font-color1);\n --toastify-text-color-error: var(--jp-ui-font-color1);\n --toastify-spinner-color: #616161;\n --toastify-spinner-color-empty-area: #e0e0e0;\n --toastify-color-progress-light: linear-gradient(\n to right,\n #4cd964,\n #5ac8fa,\n #007aff,\n #34aadc,\n #5856d6,\n #ff2d55\n );\n --toastify-color-progress-dark: #bb86fc;\n --toastify-color-progress-info: var(--toastify-color-info);\n --toastify-color-progress-success: var(--toastify-color-success);\n --toastify-color-progress-warning: var(--toastify-color-warning);\n --toastify-color-progress-error: var(--toastify-color-error);\n}\n\n.jp-Notification-List {\n list-style: none;\n margin: 0;\n padding: 4px;\n width: var(--toastify-toast-width);\n overflow-y: auto;\n max-height: 55vh;\n box-sizing: border-box;\n background-color: var(--jp-layout-color2);\n}\n\n.jp-Notification-Header {\n display: flex;\n font-size: var(--jp-ui-font-size1);\n padding-left: 8px;\n padding-right: 4px;\n margin: 0;\n align-items: center;\n user-select: none;\n}\n\n.jp-Notification-List-Item {\n padding: 2px 0;\n}\n\n.jp-Notification-List .Toastify__toast {\n margin: 0;\n}\n\n.jp-Notification-Status.jp-mod-selected {\n background-color: var(--jp-brand-color1);\n}\n\n.jp-Notification-Status.jp-mod-selected .jp-Notification-Status-Text {\n color: var(--jp-ui-inverse-font-color1);\n}\n\n.Toastify__toast {\n min-height: unset;\n padding: 4px;\n font-size: var(--jp-ui-font-size1);\n border-width: var(--jp-border-width);\n border-radius: var(--jp-border-radius);\n border-color: var(--jp-border-color1);\n box-shadow: var(--jp-elevation-z4);\n cursor: default;\n}\n\n.Toastify__toast-body {\n display: flex;\n flex-grow: 1;\n}\n\n.jp-Notification-Toast-Close {\n padding: 0;\n position: absolute;\n right: 0.1px;\n cursor: pointer;\n}\n\n.jp-Notification-Toast-Close-Margin {\n margin-right: 4px;\n}\n\n.jp-toastContainer .jp-Notification-Toast-Close:hover {\n /* The close button has its own hover style */\n background: none;\n}\n\n.Toastify__toast.jp-Notification-Toast-error {\n border-top: 5px solid var(--jp-error-color1);\n}\n\n.Toastify__toast.jp-Notification-Toast-warning {\n border-top: 5px solid var(--jp-warn-color1);\n}\n\n.Toastify__toast.jp-Notification-Toast-info {\n border-top: 5px solid var(--jp-info-color1);\n}\n\n.Toastify__toast.jp-Notification-Toast-success {\n border-top: 5px solid var(--jp-success-color1);\n}\n\n.Toastify__toast.jp-Notification-Toast-in-progress {\n border-top: 5px solid var(--jp-layout-color1);\n}\n\n.Toastify__toast-body a {\n color: var(--jp-content-link-color);\n}\n\n.Toastify__toast-body a:hover {\n color: var(--jp-content-link-color);\n text-decoration: underline;\n}\n\n.jp-toast-message {\n padding-inline-end: 16px;\n}\n\n/* p elements are added by the markdown rendering.\n * Removing its default margin allows to reduce toast size.\n */\n.Toastify__toast-body p:first-child,\n.Toastify__toast-body h1:first-child,\n.Toastify__toast-body h2:first-child,\n.Toastify__toast-body h3:first-child,\n.Toastify__toast-body h4:first-child,\n.Toastify__toast-body h5:first-child,\n.Toastify__toast-body h6:first-child,\n.Toastify__toast-body ol:first-child,\n.Toastify__toast-body ul:first-child {\n margin-top: 0;\n}\n\n.Toastify__toast-body p:last-child,\n.Toastify__toast-body h1:last-child,\n.Toastify__toast-body h2:last-child,\n.Toastify__toast-body h3:last-child,\n.Toastify__toast-body h4:last-child,\n.Toastify__toast-body h5:last-child,\n.Toastify__toast-body h6:last-child,\n.Toastify__toast-body ol:last-child,\n.Toastify__toast-body ul:last-child {\n margin-bottom: 0;\n}\n\n.jp-toast-buttonBar {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n flex: 0 0 auto;\n padding-block-start: 8px;\n}\n\n.jp-toast-spacer {\n flex-grow: 1;\n flex-shrink: 1;\n}\n\n.jp-toast-button {\n margin-top: 1px;\n margin-bottom: 1px;\n margin-right: 0;\n margin-left: 3px;\n color: var(--jp-ui-font-color1);\n background-color: var(--jp-layout-color2);\n border: none;\n}\n\n.jp-toast-button:focus {\n outline: 1px solid var(--jp-reject-color-normal, var(--jp-layout-color2));\n outline-offset: 1px;\n -moz-outline-radius: 0;\n}\n\n.jp-toast-button:focus-visible {\n border: none;\n}\n\n.jp-toast-button:hover {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-toast-button.jp-mod-accept {\n background: var(--jp-accept-color-normal, var(--jp-brand-color1));\n color: var(--jp-ui-inverse-font-color1);\n}\n\n.jp-toast-button.jp-mod-accept:focus {\n outline-color: var(--jp-accept-color-normal, var(--jp-brand-color1));\n}\n\n.jp-toast-button.jp-mod-accept:hover {\n background: var(--jp-accept-color-hover, var(--jp-brand-color0));\n}\n\n.jp-toast-button.jp-mod-warn {\n background: var(--jp-warn-color-normal, var(--jp-warn-color1));\n color: var(--jp-ui-inverse-font-color1);\n}\n\n.jp-toast-button.jp-mod-warn:focus {\n outline-color: var(--jp-warn-color-normal, var(--jp-warn-color1));\n}\n\n.jp-toast-button.jp-mod-warn:hover {\n background: var(--jp-warn-color-hover, var(--jp-warn-color0));\n}\n\n.jp-toast-button.jp-mod-link {\n color: var(--jp-content-link-color);\n text-decoration: underline;\n text-decoration-color: var(--jp-content-link-color);\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/style/notification.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils-extension/style/splash.css": +/*!***********************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils-extension/style/splash.css ***! + \***********************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n#jupyterlab-splash {\n z-index: 10;\n position: absolute;\n overflow: hidden;\n width: 100%;\n height: 100%;\n background-position: center 40%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n#jupyterlab-splash.light {\n background-color: white;\n}\n\n#jupyterlab-splash.dark {\n background-color: var(--md-grey-900, #212121);\n}\n\n.splash-fade {\n animation: 0.5s fade-out forwards;\n}\n\n#galaxy {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.planet {\n background-repeat: no-repeat;\n background-size: cover;\n animation-iteration-count: infinite;\n animation-name: orbit;\n}\n\n#moon1.orbit {\n opacity: 1;\n animation: orbit 2s ease;\n width: 200px;\n height: 140px;\n margin-top: -53px;\n margin-left: -54px;\n}\n\n#moon2.orbit {\n opacity: 1;\n animation: orbit 2s ease;\n width: 132px;\n height: 180px;\n margin-top: -66px;\n margin-left: -85px;\n}\n\n#moon3.orbit {\n opacity: 1;\n display: flex;\n align-items: flex-end;\n animation: orbit 2s ease;\n width: 220px;\n height: 166px;\n margin-top: -96px;\n margin-left: -50px;\n}\n\n#moon1 .planet {\n height: 12px;\n width: 12px;\n border-radius: 50%;\n}\n\n#moon2 .planet {\n height: 16px;\n width: 16px;\n border-radius: 50%;\n float: right;\n}\n\n#moon3 .planet {\n height: 20px;\n width: 20px;\n border-radius: 50%;\n}\n\n#jupyterlab-splash.light #moon1 .planet {\n background-color: #6f7070;\n}\n\n#jupyterlab-splash.light #moon2 .planet {\n background-color: #767677;\n}\n\n#jupyterlab-splash.light #moon3 .planet {\n background-color: #989798;\n}\n\n#jupyterlab-splash.dark #moon1 .planet,\n#jupyterlab-splash.dark #moon2 .planet,\n#jupyterlab-splash.dark #moon3 .planet {\n background-color: white;\n}\n\n.orbit {\n animation-iteration-count: 1;\n position: absolute;\n top: 50%;\n left: 50%;\n border-radius: 50%;\n}\n\n@keyframes orbit {\n 0% {\n transform: rotateZ(0deg);\n }\n\n 100% {\n transform: rotateZ(-720deg);\n }\n}\n\n@keyframes orbit2 {\n 0% {\n transform: rotateZ(0deg);\n }\n\n 100% {\n transform: rotateZ(720deg);\n }\n}\n\n@keyframes fade-in {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes fade-out {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils-extension/style/splash.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/base.css": +/*!***********************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/base.css ***! + \***********************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_commandpalette_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./commandpalette.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/commandpalette.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_dialog_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./dialog.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/dialog.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_inputdialog_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./inputdialog.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/inputdialog.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_licenses_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./licenses.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/licenses.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_mainareawidget_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./mainareawidget.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/mainareawidget.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_materialcolors_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./materialcolors.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/materialcolors.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_toolbar_css__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./toolbar.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/toolbar.css\");\n// Imports\n\n\n\n\n\n\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_commandpalette_css__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_dialog_css__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_inputdialog_css__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_licenses_css__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_mainareawidget_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_materialcolors_css__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_toolbar_css__WEBPACK_IMPORTED_MODULE_8__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/commandpalette.css": +/*!*********************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/commandpalette.css ***! + \*********************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-commandpalette-search-height: 28px;\n}\n\n/*-----------------------------------------------------------------------------\n| Overall styles\n|----------------------------------------------------------------------------*/\n\n.lm-CommandPalette {\n padding-bottom: 0;\n color: var(--jp-ui-font-color1);\n background: var(--jp-layout-color1);\n\n /* This is needed so that all font sizing of children done in ems is\n * relative to this base size */\n font-size: var(--jp-ui-font-size1);\n}\n\n/*-----------------------------------------------------------------------------\n| Modal variant\n|----------------------------------------------------------------------------*/\n\n.jp-ModalCommandPalette.jp-ThemedContainer {\n position: absolute;\n z-index: 10000;\n top: 38px;\n left: 30%;\n margin: 0;\n padding: 4px;\n width: 40%;\n box-shadow: var(--jp-elevation-z4);\n border-radius: 4px;\n background: var(--jp-layout-color0);\n}\n\n.jp-ModalCommandPalette .lm-CommandPalette {\n max-height: 40vh;\n}\n\n.jp-ModalCommandPalette .lm-CommandPalette .lm-close-icon::after {\n display: none;\n}\n\n.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-header {\n display: none;\n}\n\n.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item {\n margin-left: 4px;\n margin-right: 4px;\n}\n\n.jp-ModalCommandPalette\n .lm-CommandPalette\n .lm-CommandPalette-item.lm-mod-disabled {\n display: none;\n}\n\n/*-----------------------------------------------------------------------------\n| Search\n|----------------------------------------------------------------------------*/\n\n.lm-CommandPalette-search {\n padding: 4px;\n background-color: var(--jp-layout-color1);\n z-index: 2;\n}\n\n.lm-CommandPalette-wrapper {\n /* stylelint-disable-next-line csstree/validator */\n overflow: overlay;\n padding: 0 9px;\n background-color: var(--jp-input-active-background);\n height: 30px;\n box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);\n}\n\n.lm-CommandPalette.lm-mod-focused .lm-CommandPalette-wrapper {\n box-shadow:\n inset 0 0 0 1px var(--jp-input-active-box-shadow-color),\n inset 0 0 0 3px var(--jp-input-active-box-shadow-color);\n}\n\n.jp-SearchIconGroup {\n color: white;\n background-color: var(--jp-brand-color1);\n position: absolute;\n top: 4px;\n right: 4px;\n padding: 5px 5px 1px;\n}\n\n.jp-SearchIconGroup svg {\n height: 20px;\n width: 20px;\n}\n\n.jp-SearchIconGroup .jp-icon3[fill] {\n fill: var(--jp-layout-color0);\n}\n\n.lm-CommandPalette-input {\n background: transparent;\n width: calc(100% - 18px);\n float: left;\n border: none;\n outline: none;\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color0);\n line-height: var(--jp-private-commandpalette-search-height);\n}\n\n.lm-CommandPalette-input::-webkit-input-placeholder,\n.lm-CommandPalette-input::-moz-placeholder,\n.lm-CommandPalette-input:-ms-input-placeholder {\n color: var(--jp-ui-font-color2);\n font-size: var(--jp-ui-font-size1);\n}\n\n/*-----------------------------------------------------------------------------\n| Results\n|----------------------------------------------------------------------------*/\n\n.lm-CommandPalette-header:first-child {\n margin-top: 0;\n}\n\n.lm-CommandPalette-header {\n border-bottom: solid var(--jp-border-width) var(--jp-border-color2);\n color: var(--jp-ui-font-color1);\n cursor: pointer;\n display: flex;\n font-size: var(--jp-ui-font-size0);\n font-weight: 600;\n letter-spacing: 1px;\n margin-top: 8px;\n padding: 8px 0 8px 12px;\n text-transform: uppercase;\n}\n\n.lm-CommandPalette-header.lm-mod-active {\n background: var(--jp-layout-color2);\n}\n\n.lm-CommandPalette-header > mark {\n background-color: transparent;\n font-weight: bold;\n color: var(--jp-ui-font-color1);\n}\n\n.lm-CommandPalette-item {\n padding: 4px 12px 4px 4px;\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n font-weight: 400;\n display: flex;\n}\n\n.lm-CommandPalette-item.lm-mod-disabled {\n color: var(--jp-ui-font-color2);\n}\n\n.lm-CommandPalette-item.lm-mod-active {\n color: var(--jp-ui-inverse-font-color1);\n background: var(--jp-brand-color1);\n}\n\n.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark {\n color: var(--jp-ui-inverse-font-color0);\n}\n\n.lm-CommandPalette-item.lm-mod-active .jp-icon-selectable[fill] {\n fill: var(--jp-layout-color0);\n}\n\n.lm-CommandPalette-item.lm-mod-active:hover:not(.lm-mod-disabled) {\n color: var(--jp-ui-inverse-font-color1);\n background: var(--jp-brand-color1);\n}\n\n.lm-CommandPalette-item:hover:not(.lm-mod-active):not(.lm-mod-disabled) {\n background: var(--jp-layout-color2);\n}\n\n.lm-CommandPalette-itemContent {\n overflow: hidden;\n}\n\n.lm-CommandPalette-itemLabel > mark {\n color: var(--jp-ui-font-color0);\n background-color: transparent;\n font-weight: bold;\n}\n\n.lm-CommandPalette-item.lm-mod-disabled mark {\n color: var(--jp-ui-font-color2);\n}\n\n.lm-CommandPalette-item .lm-CommandPalette-itemIcon {\n margin: 0 4px 0 0;\n position: relative;\n width: 16px;\n top: 2px;\n flex: 0 0 auto;\n}\n\n.lm-CommandPalette-item.lm-mod-disabled .lm-CommandPalette-itemIcon {\n opacity: 0.6;\n}\n\n.lm-CommandPalette-item .lm-CommandPalette-itemShortcut {\n flex: 0 0 auto;\n}\n\n.lm-CommandPalette-itemCaption {\n display: none;\n}\n\n.lm-CommandPalette-content {\n background-color: var(--jp-layout-color1);\n}\n\n.lm-CommandPalette-content:empty::after {\n content: 'No results';\n margin: auto;\n margin-top: 20px;\n width: 100px;\n display: block;\n font-size: var(--jp-ui-font-size2);\n font-family: var(--jp-ui-font-family);\n font-weight: lighter;\n}\n\n.lm-CommandPalette-emptyMessage {\n text-align: center;\n margin-top: 24px;\n line-height: 1.32;\n padding: 0 8px;\n color: var(--jp-content-font-color3);\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/style/commandpalette.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/dialog.css": +/*!*************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/dialog.css ***! + \*************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-Dialog.jp-ThemedContainer {\n position: absolute;\n z-index: 10000;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n top: 0;\n left: 0;\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n background: var(--jp-dialog-background);\n /* stylelint-disable */\n container-type: inline-size;\n /* stylelint-enable */\n}\n\n.jp-Dialog-content {\n display: flex;\n flex-direction: column;\n margin-left: auto;\n margin-right: auto;\n background: var(--jp-layout-color1);\n padding: 24px 24px 12px;\n min-width: 300px;\n min-height: 150px;\n max-width: 1000px;\n max-height: 500px;\n box-sizing: border-box;\n box-shadow: var(--jp-elevation-z20);\n word-wrap: break-word;\n border-radius: var(--jp-border-radius);\n\n /* This is needed so that all font sizing of children done in ems is\n * relative to this base size */\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color1);\n resize: both;\n overflow: hidden;\n}\n\n.jp-Dialog-content.jp-Dialog-content-small {\n max-width: 500px;\n}\n\n.jp-Dialog-button {\n overflow: visible;\n}\n\nbutton.jp-Dialog-button:disabled {\n opacity: 0.6;\n}\n\nbutton.jp-Dialog-button:focus {\n outline: 1px solid var(--jp-brand-color1);\n outline-offset: 4px;\n -moz-outline-radius: 0;\n}\n\nbutton.jp-Dialog-button:focus::-moz-focus-inner {\n border: 0;\n}\n\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus,\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus,\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {\n outline-offset: 4px;\n -moz-outline-radius: 0;\n}\n\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus {\n outline: 1px solid var(--jp-accept-color-normal, var(--jp-brand-color1));\n}\n\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus {\n outline: 1px solid var(--jp-warn-color-normal, var(--jp-error-color1));\n}\n\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {\n outline: 1px solid var(--jp-reject-color-normal, var(--md-grey-600, #757575));\n}\n\nbutton.jp-Dialog-close-button {\n padding: 0;\n height: 100%;\n min-width: unset;\n min-height: unset;\n}\n\n.jp-Dialog-header {\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n padding-bottom: 12px;\n font-size: var(--jp-ui-font-size3);\n font-weight: 400;\n color: var(--jp-ui-font-color1);\n}\n\n.jp-Dialog-body {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n font-size: var(--jp-ui-font-size1);\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n overflow: auto;\n}\n\n.jp-Dialog-footer {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n flex: 0 0 auto;\n margin-left: -12px;\n margin-right: -12px;\n padding: 12px;\n}\n\n.jp-Dialog-checkbox {\n padding-right: 5px;\n display: flex;\n align-items: center;\n}\n\n.jp-Dialog-spacer {\n flex: 1 1 auto;\n}\n\n.jp-Dialog-title {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.jp-Dialog-body > .jp-select-wrapper {\n width: 100%;\n}\n\n.jp-Dialog-body > button {\n padding: 0 16px;\n}\n\n.jp-Dialog-body > label {\n line-height: 1.4;\n color: var(--jp-ui-font-color0);\n}\n\n.jp-Dialog-button.jp-mod-styled:not(:last-child) {\n margin-right: 12px;\n}\n\n/* stylelint-disable */\n@container (max-width: 560px) {\n /* stylelint-enable */\n .jp-Dialog-footer {\n flex-direction: column;\n align-items: center;\n gap: 7px;\n }\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/style/dialog.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/inputdialog.css": +/*!******************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/inputdialog.css ***! + \******************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n.jp-Input-Boolean-Dialog {\n flex-direction: row-reverse;\n align-items: end;\n width: 100%;\n}\n\n.jp-Input-Boolean-Dialog > label {\n flex: 1 1 auto;\n}\n\n.jp-InputDialog-inputWrapper {\n display: flex;\n align-items: baseline;\n}\n\n.jp-InputDialog-inputWrapper > input.jp-mod-styled:invalid {\n border-color: var(--jp-error-color0);\n background: var(--jp-error-color3);\n}\n\n.jp-InputDialog-inputWrapper\n > input[required].jp-mod-styled:invalid:placeholder-shown {\n /* Do not show invalid style when placeholder is shown */\n border-color: unset;\n background: unset;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/style/inputdialog.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/licenses.css": +/*!***************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/licenses.css ***! + \***************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* licenses */\n.jp-Licenses {\n display: flex;\n flex-direction: row;\n align-items: stretch;\n background-color: var(--jp-layout-color0);\n}\n\n.jp-Licenses-FormArea {\n display: flex;\n flex-direction: column;\n min-width: calc(10 * var(--jp-ui-font-size1));\n width: calc(18 * var(--jp-ui-font-size1));\n}\n\n.jp-Licenses .lm-SplitPanel-handle:hover {\n background-color: var(--jp-brand-color2);\n}\n\n/* filters */\n.jp-Licenses-Filters {\n padding: var(--jp-ui-font-size1) calc(var(--jp-ui-font-size1) / 2) 0\n var(--jp-ui-font-size1);\n}\n\n.jp-Licenses-Filters label {\n display: block;\n}\n\n.jp-Licenses-Filters-title {\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 1px;\n font-size: var(--jp-ui-font-size0);\n color: var(--jp-ui-font-color0);\n}\n\n.jp-RenderedHTMLCommon.jp-Licenses-Filters ul,\n.jp-RenderedHTMLCommon.jp-Licenses-Filters li {\n list-style: none;\n color: var(--jp-ui-font-color0);\n}\n\n.jp-Licenses-Filters input {\n width: 100%;\n}\n\n.jp-RenderedHTMLCommon.jp-Licenses-Filters ul {\n padding: 0 0 var(--jp-ui-font-size1) 0;\n margin: 0;\n padding-bottom: var(--jp-ui-font-size1);\n}\n\n/* bundles */\n.jp-Licenses-Bundles {\n background-color: var(--jp-layout-color2);\n overflow-y: auto;\n flex: 1;\n}\n\n.jp-Licenses-Bundles .lm-TabBar-content {\n width: 100%;\n}\n\n.jp-Licenses-Bundles .lm-TabBar-tab {\n padding: calc(var(--jp-ui-font-size1) / 2);\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n.jp-Licenses-Bundles .lm-TabBar-tabLabel {\n text-overflow: ellipsis;\n}\n\n.jp-Licenses-Bundles .lm-TabBar-tab label {\n background-color: var(--jp-layout-color2);\n border-radius: var(--jp-ui-font-size1);\n width: calc(2.5 * var(--jp-ui-font-size1));\n padding: 0 calc(var(--jp-ui-font-size1) / 2);\n text-align: center;\n margin-left: calc(var(--jp-ui-font-size1) / 2);\n}\n\n.jp-Licenses-Bundles .lm-TabBar-tab.lm-mod-current {\n background-color: var(--jp-brand-color1);\n color: #fff;\n}\n\n.jp-Licenses-Bundles .lm-TabBar-tab.lm-mod-current label {\n background-color: #fff;\n color: var(--jp-brand-color1);\n}\n\n/* license grid */\n.jp-Licenses-Grid.jp-RenderedHTMLCommon {\n min-width: calc(var(--jp-ui-font-size1) * 10);\n display: flex;\n flex-direction: column;\n padding: 0;\n}\n\n.jp-Licenses-Grid.jp-RenderedHTMLCommon form {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n margin: 0;\n padding: 0;\n}\n\n.jp-RenderedHTMLCommon.jp-Licenses-Grid table {\n flex: 1;\n max-width: 100%;\n border: solid var(--jp-border-width) var(--jp-border-color2);\n border-top: 0;\n border-bottom: 0;\n margin: 0;\n}\n\n.jp-Licenses-Grid.jp-RenderedHTMLCommon td,\n.jp-Licenses-Grid.jp-RenderedHTMLCommon th {\n text-align: left;\n}\n\n.jp-Licenses-Grid td:nth-child(1) {\n max-width: calc(2 * var(--jp-ui-font-size1));\n}\n\n.jp-Licenses-Grid label {\n width: 100%;\n}\n\n.jp-Licenses .jp-Licenses-Grid.jp-RenderedHTMLCommon code {\n background-color: transparent;\n padding: 0;\n}\n\n.jp-Licenses-Grid.jp-RenderedHTMLCommon tr.jp-mod-selected {\n background-color: var(--jp-brand-color1);\n color: #fff;\n}\n\n.jp-Licenses-Grid.jp-RenderedHTMLCommon .jp-mod-selected code {\n color: #fff;\n}\n\n/* license text */\n.jp-Licenses-Text {\n min-width: calc(10 * var(--jp-ui-font-size1));\n padding: 0 0 0 var(--jp-ui-font-size1);\n display: flex;\n flex-direction: column;\n}\n\n.jp-Licenses-Text h1 {\n flex: initial;\n margin-bottom: 0;\n}\n\n.jp-Licenses-Text h1:empty {\n display: none;\n}\n\n.jp-Licenses-Text blockquote {\n flex: initial;\n}\n\n.jp-Licenses-Text.jp-RenderedHTMLCommon code {\n overflow-wrap: anywhere;\n overflow-y: auto;\n flex: 1;\n padding-right: var(--jp-ui-font-size1);\n margin-bottom: 0;\n padding-bottom: var(--jp-ui-font-size1);\n}\n\n.jp-Licenses-Text code:empty {\n display: none;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/style/licenses.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/mainareawidget.css": +/*!*********************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/mainareawidget.css ***! + \*********************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-MainAreaWidget > :focus {\n outline: none;\n}\n\n.jp-MainAreaWidget .jp-MainAreaWidget-error {\n padding: 6px;\n}\n\n.jp-MainAreaWidget .jp-MainAreaWidget-error > pre {\n width: auto;\n padding: 10px;\n background: var(--jp-error-color3);\n border: var(--jp-border-width) solid var(--jp-error-color1);\n border-radius: var(--jp-border-radius);\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/style/mainareawidget.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/materialcolors.css": +/*!*********************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/materialcolors.css ***! + \*********************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n/**\n * google-material-color v1.2.6\n * https://github.com/danlevan/google-material-color\n */\n:root {\n --md-red-50: #ffebee;\n --md-red-100: #ffcdd2;\n --md-red-200: #ef9a9a;\n --md-red-300: #e57373;\n --md-red-400: #ef5350;\n --md-red-500: #f44336;\n --md-red-600: #e53935;\n --md-red-700: #d32f2f;\n --md-red-800: #c62828;\n --md-red-900: #b71c1c;\n --md-red-A100: #ff8a80;\n --md-red-A200: #ff5252;\n --md-red-A400: #ff1744;\n --md-red-A700: #d50000;\n --md-pink-50: #fce4ec;\n --md-pink-100: #f8bbd0;\n --md-pink-200: #f48fb1;\n --md-pink-300: #f06292;\n --md-pink-400: #ec407a;\n --md-pink-500: #e91e63;\n --md-pink-600: #d81b60;\n --md-pink-700: #c2185b;\n --md-pink-800: #ad1457;\n --md-pink-900: #880e4f;\n --md-pink-A100: #ff80ab;\n --md-pink-A200: #ff4081;\n --md-pink-A400: #f50057;\n --md-pink-A700: #c51162;\n --md-purple-50: #f3e5f5;\n --md-purple-100: #e1bee7;\n --md-purple-200: #ce93d8;\n --md-purple-300: #ba68c8;\n --md-purple-400: #ab47bc;\n --md-purple-500: #9c27b0;\n --md-purple-600: #8e24aa;\n --md-purple-700: #7b1fa2;\n --md-purple-800: #6a1b9a;\n --md-purple-900: #4a148c;\n --md-purple-A100: #ea80fc;\n --md-purple-A200: #e040fb;\n --md-purple-A400: #d500f9;\n --md-purple-A700: #a0f;\n --md-deep-purple-50: #ede7f6;\n --md-deep-purple-100: #d1c4e9;\n --md-deep-purple-200: #b39ddb;\n --md-deep-purple-300: #9575cd;\n --md-deep-purple-400: #7e57c2;\n --md-deep-purple-500: #673ab7;\n --md-deep-purple-600: #5e35b1;\n --md-deep-purple-700: #512da8;\n --md-deep-purple-800: #4527a0;\n --md-deep-purple-900: #311b92;\n --md-deep-purple-A100: #b388ff;\n --md-deep-purple-A200: #7c4dff;\n --md-deep-purple-A400: #651fff;\n --md-deep-purple-A700: #6200ea;\n --md-indigo-50: #e8eaf6;\n --md-indigo-100: #c5cae9;\n --md-indigo-200: #9fa8da;\n --md-indigo-300: #7986cb;\n --md-indigo-400: #5c6bc0;\n --md-indigo-500: #3f51b5;\n --md-indigo-600: #3949ab;\n --md-indigo-700: #303f9f;\n --md-indigo-800: #283593;\n --md-indigo-900: #1a237e;\n --md-indigo-A100: #8c9eff;\n --md-indigo-A200: #536dfe;\n --md-indigo-A400: #3d5afe;\n --md-indigo-A700: #304ffe;\n --md-blue-50: #e3f2fd;\n --md-blue-100: #bbdefb;\n --md-blue-200: #90caf9;\n --md-blue-300: #64b5f6;\n --md-blue-400: #42a5f5;\n --md-blue-500: #2196f3;\n --md-blue-600: #1e88e5;\n --md-blue-700: #1976d2;\n --md-blue-800: #1565c0;\n --md-blue-900: #0d47a1;\n --md-blue-A100: #82b1ff;\n --md-blue-A200: #448aff;\n --md-blue-A400: #2979ff;\n --md-blue-A700: #2962ff;\n --md-light-blue-50: #e1f5fe;\n --md-light-blue-100: #b3e5fc;\n --md-light-blue-200: #81d4fa;\n --md-light-blue-300: #4fc3f7;\n --md-light-blue-400: #29b6f6;\n --md-light-blue-500: #03a9f4;\n --md-light-blue-600: #039be5;\n --md-light-blue-700: #0288d1;\n --md-light-blue-800: #0277bd;\n --md-light-blue-900: #01579b;\n --md-light-blue-A100: #80d8ff;\n --md-light-blue-A200: #40c4ff;\n --md-light-blue-A400: #00b0ff;\n --md-light-blue-A700: #0091ea;\n --md-cyan-50: #e0f7fa;\n --md-cyan-100: #b2ebf2;\n --md-cyan-200: #80deea;\n --md-cyan-300: #4dd0e1;\n --md-cyan-400: #26c6da;\n --md-cyan-500: #00bcd4;\n --md-cyan-600: #00acc1;\n --md-cyan-700: #0097a7;\n --md-cyan-800: #00838f;\n --md-cyan-900: #006064;\n --md-cyan-A100: #84ffff;\n --md-cyan-A200: #18ffff;\n --md-cyan-A400: #00e5ff;\n --md-cyan-A700: #00b8d4;\n --md-teal-50: #e0f2f1;\n --md-teal-100: #b2dfdb;\n --md-teal-200: #80cbc4;\n --md-teal-300: #4db6ac;\n --md-teal-400: #26a69a;\n --md-teal-500: #009688;\n --md-teal-600: #00897b;\n --md-teal-700: #00796b;\n --md-teal-800: #00695c;\n --md-teal-900: #004d40;\n --md-teal-A100: #a7ffeb;\n --md-teal-A200: #64ffda;\n --md-teal-A400: #1de9b6;\n --md-teal-A700: #00bfa5;\n --md-green-50: #e8f5e9;\n --md-green-100: #c8e6c9;\n --md-green-200: #a5d6a7;\n --md-green-300: #81c784;\n --md-green-400: #66bb6a;\n --md-green-500: #4caf50;\n --md-green-600: #43a047;\n --md-green-700: #388e3c;\n --md-green-800: #2e7d32;\n --md-green-900: #1b5e20;\n --md-green-A100: #b9f6ca;\n --md-green-A200: #69f0ae;\n --md-green-A400: #00e676;\n --md-green-A700: #00c853;\n --md-light-green-50: #f1f8e9;\n --md-light-green-100: #dcedc8;\n --md-light-green-200: #c5e1a5;\n --md-light-green-300: #aed581;\n --md-light-green-400: #9ccc65;\n --md-light-green-500: #8bc34a;\n --md-light-green-600: #7cb342;\n --md-light-green-700: #689f38;\n --md-light-green-800: #558b2f;\n --md-light-green-900: #33691e;\n --md-light-green-A100: #ccff90;\n --md-light-green-A200: #b2ff59;\n --md-light-green-A400: #76ff03;\n --md-light-green-A700: #64dd17;\n --md-lime-50: #f9fbe7;\n --md-lime-100: #f0f4c3;\n --md-lime-200: #e6ee9c;\n --md-lime-300: #dce775;\n --md-lime-400: #d4e157;\n --md-lime-500: #cddc39;\n --md-lime-600: #c0ca33;\n --md-lime-700: #afb42b;\n --md-lime-800: #9e9d24;\n --md-lime-900: #827717;\n --md-lime-A100: #f4ff81;\n --md-lime-A200: #eeff41;\n --md-lime-A400: #c6ff00;\n --md-lime-A700: #aeea00;\n --md-yellow-50: #fffde7;\n --md-yellow-100: #fff9c4;\n --md-yellow-200: #fff59d;\n --md-yellow-300: #fff176;\n --md-yellow-400: #ffee58;\n --md-yellow-500: #ffeb3b;\n --md-yellow-600: #fdd835;\n --md-yellow-700: #fbc02d;\n --md-yellow-800: #f9a825;\n --md-yellow-900: #f57f17;\n --md-yellow-A100: #ffff8d;\n --md-yellow-A200: #ff0;\n --md-yellow-A400: #ffea00;\n --md-yellow-A700: #ffd600;\n --md-amber-50: #fff8e1;\n --md-amber-100: #ffecb3;\n --md-amber-200: #ffe082;\n --md-amber-300: #ffd54f;\n --md-amber-400: #ffca28;\n --md-amber-500: #ffc107;\n --md-amber-600: #ffb300;\n --md-amber-700: #ffa000;\n --md-amber-800: #ff8f00;\n --md-amber-900: #ff6f00;\n --md-amber-A100: #ffe57f;\n --md-amber-A200: #ffd740;\n --md-amber-A400: #ffc400;\n --md-amber-A700: #ffab00;\n --md-orange-50: #fff3e0;\n --md-orange-100: #ffe0b2;\n --md-orange-200: #ffcc80;\n --md-orange-300: #ffb74d;\n --md-orange-400: #ffa726;\n --md-orange-500: #ff9800;\n --md-orange-600: #fb8c00;\n --md-orange-700: #f57c00;\n --md-orange-800: #ef6c00;\n --md-orange-900: #e65100;\n --md-orange-A100: #ffd180;\n --md-orange-A200: #ffab40;\n --md-orange-A400: #ff9100;\n --md-orange-A700: #ff6d00;\n --md-deep-orange-50: #fbe9e7;\n --md-deep-orange-100: #ffccbc;\n --md-deep-orange-200: #ffab91;\n --md-deep-orange-300: #ff8a65;\n --md-deep-orange-400: #ff7043;\n --md-deep-orange-500: #ff5722;\n --md-deep-orange-600: #f4511e;\n --md-deep-orange-700: #e64a19;\n --md-deep-orange-800: #d84315;\n --md-deep-orange-900: #bf360c;\n --md-deep-orange-A100: #ff9e80;\n --md-deep-orange-A200: #ff6e40;\n --md-deep-orange-A400: #ff3d00;\n --md-deep-orange-A700: #dd2c00;\n --md-brown-50: #efebe9;\n --md-brown-100: #d7ccc8;\n --md-brown-200: #bcaaa4;\n --md-brown-300: #a1887f;\n --md-brown-400: #8d6e63;\n --md-brown-500: #795548;\n --md-brown-600: #6d4c41;\n --md-brown-700: #5d4037;\n --md-brown-800: #4e342e;\n --md-brown-900: #3e2723;\n --md-grey-50: #fafafa;\n --md-grey-100: #f5f5f5;\n --md-grey-200: #eee;\n --md-grey-300: #e0e0e0;\n --md-grey-400: #bdbdbd;\n --md-grey-500: #9e9e9e;\n --md-grey-600: #757575;\n --md-grey-700: #616161;\n --md-grey-800: #424242;\n --md-grey-900: #212121;\n --md-blue-grey-50: #eceff1;\n --md-blue-grey-100: #cfd8dc;\n --md-blue-grey-200: #b0bec5;\n --md-blue-grey-300: #90a4ae;\n --md-blue-grey-400: #78909c;\n --md-blue-grey-500: #607d8b;\n --md-blue-grey-600: #546e7a;\n --md-blue-grey-700: #455a64;\n --md-blue-grey-800: #37474f;\n --md-blue-grey-900: #263238;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/style/materialcolors.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/toolbar.css": +/*!**************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/apputils/style/toolbar.css ***! + \**************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n/* @deprecated dead code to be removed in JupyterLab 5 */\n.jp-Toolbar-item.jp-Toolbar-kernelStatus {\n display: inline-block;\n width: 32px;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 16px;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/style/toolbar.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cell-toolbar/style/base.css": +/*!***************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cell-toolbar/style/base.css ***! + \***************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n.jp-cell-button .jp-icon3[fill] {\n fill: var(--jp-inverse-layout-color4);\n}\n\n.jp-cell-button:hover .jp-icon3[fill] {\n fill: var(--jp-inverse-layout-color2);\n}\n\n.jp-toolbar-overlap .jp-cell-toolbar {\n display: none;\n}\n\n.jp-cell-toolbar {\n display: flex;\n flex-direction: row;\n padding: 0;\n min-height: 25px;\n z-index: 6;\n position: absolute;\n right: 3px;\n\n /* Override .jp-Toolbar */\n background-color: transparent;\n border-bottom: inherit;\n box-shadow: none;\n}\n\n/* Overrides for mobile view hiding cell toolbar */\n@media only screen and (width <= 760px) {\n .jp-cell-toolbar {\n display: none;\n }\n}\n\n.jp-cell-toolbar button.jp-ToolbarButtonComponent {\n cursor: pointer;\n}\n\n.jp-cell-toolbar .jp-ToolbarButton button {\n display: none;\n}\n\n.jp-cell-toolbar .jp-ToolbarButton .jp-cell-all,\n.jp-CodeCell .jp-ToolbarButton .jp-cell-code,\n.jp-MarkdownCell .jp-ToolbarButton .jp-cell-markdown,\n.jp-RawCell .jp-ToolbarButton .jp-cell-raw {\n display: block;\n}\n\n.jp-cell-toolbar .jp-Toolbar-spacer {\n flex: 1 1 auto;\n}\n\n.jp-cell-mod-click {\n cursor: pointer;\n}\n\n/* Custom styling for rendered markdown cells so that cell toolbar is visible */\n.jp-MarkdownOutput {\n border-width: var(--jp-border-width);\n border-color: transparent;\n border-style: solid;\n}\n\n.jp-mod-active .jp-MarkdownOutput {\n border-color: var(--jp-cell-editor-border-color);\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/cell-toolbar/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/base.css": +/*!********************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/base.css ***! + \********************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_collapser_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./collapser.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/collapser.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_headerfooter_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./headerfooter.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/headerfooter.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_inputarea_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./inputarea.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/inputarea.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_placeholder_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./placeholder.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/placeholder.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_widget_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./widget.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/widget.css\");\n// Imports\n\n\n\n\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_collapser_css__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_headerfooter_css__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_inputarea_css__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_placeholder_css__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_widget_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/cells/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/collapser.css": +/*!*************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/collapser.css ***! + \*************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-Collapser {\n flex: 0 0 var(--jp-cell-collapser-width);\n padding: 0;\n margin: 0;\n border: none;\n outline: none;\n background: transparent;\n border-radius: var(--jp-border-radius);\n opacity: 1;\n}\n\n.jp-Collapser-child {\n display: block;\n width: 100%;\n box-sizing: border-box;\n\n /* height: 100% doesn't work because the height of its parent is computed from content */\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n/*-----------------------------------------------------------------------------\n| Printing\n|----------------------------------------------------------------------------*/\n\n/*\nHiding collapsers in print mode.\n\nNote: input and output wrappers have \"display: block\" property in print mode.\n*/\n\n@media print {\n .jp-Collapser {\n display: none;\n }\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/cells/style/collapser.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/headerfooter.css": +/*!****************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/headerfooter.css ***! + \****************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Header/Footer\n|----------------------------------------------------------------------------*/\n\n/* Hidden by zero height by default */\n.jp-CellHeader,\n.jp-CellFooter {\n height: 0;\n width: 100%;\n padding: 0;\n margin: 0;\n border: none;\n outline: none;\n background: transparent;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/cells/style/headerfooter.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/inputarea.css": +/*!*************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/inputarea.css ***! + \*************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Input\n|----------------------------------------------------------------------------*/\n\n/* All input areas */\n.jp-InputArea {\n display: flex;\n flex-direction: row;\n width: 100%;\n overflow: hidden;\n}\n\n.jp-InputArea-editor {\n flex: 1 1 auto;\n overflow: hidden;\n\n /* This is the non-active, default styling */\n border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);\n border-radius: 0;\n background: var(--jp-cell-editor-background);\n}\n\n.jp-InputPrompt {\n flex: 0 0 var(--jp-cell-prompt-width);\n width: var(--jp-cell-prompt-width);\n color: var(--jp-cell-inprompt-font-color);\n font-family: var(--jp-cell-prompt-font-family);\n padding: var(--jp-code-padding);\n letter-spacing: var(--jp-cell-prompt-letter-spacing);\n opacity: var(--jp-cell-prompt-opacity);\n line-height: var(--jp-code-line-height);\n font-size: var(--jp-code-font-size);\n border: var(--jp-border-width) solid transparent;\n\n /* Right align prompt text, don't wrap to handle large prompt numbers */\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n /* Disable text selection */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n/*-----------------------------------------------------------------------------\n| Print\n|----------------------------------------------------------------------------*/\n@media print {\n .jp-InputArea {\n display: table;\n table-layout: fixed;\n }\n\n .jp-InputArea-editor {\n display: table-cell;\n vertical-align: top;\n }\n\n .jp-InputPrompt {\n display: table-cell;\n vertical-align: top;\n }\n}\n\n/*-----------------------------------------------------------------------------\n| Mobile\n|----------------------------------------------------------------------------*/\n@media only screen and (width <= 760px) {\n .jp-InputArea {\n flex-direction: column;\n }\n\n .jp-InputArea-editor {\n margin-left: var(--jp-code-padding);\n }\n\n .jp-InputPrompt {\n flex: 0 0 auto;\n text-align: left;\n }\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/cells/style/inputarea.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/placeholder.css": +/*!***************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/placeholder.css ***! + \***************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Placeholder\n|----------------------------------------------------------------------------*/\n\n.jp-Placeholder {\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n\n.jp-Placeholder-prompt {\n flex: 0 0 var(--jp-cell-prompt-width);\n box-sizing: border-box;\n}\n\n.jp-Placeholder-content {\n flex: 1 1 auto;\n padding: 4px 6px;\n border: 1px solid transparent;\n border-radius: 0;\n background: none;\n box-sizing: border-box;\n cursor: pointer;\n}\n\n.jp-Placeholder-contentContainer {\n display: flex;\n}\n\n.jp-Placeholder-content:hover,\n.jp-InputPlaceholder > .jp-Placeholder-content:hover {\n border-color: var(--jp-layout-color3);\n}\n\n.jp-Placeholder-content .jp-MoreHorizIcon {\n width: 32px;\n height: 16px;\n border: 1px solid transparent;\n border-radius: var(--jp-border-radius);\n}\n\n.jp-Placeholder-content .jp-MoreHorizIcon:hover {\n border: 1px solid var(--jp-border-color1);\n box-shadow: var(--jp-toolbar-box-shadow);\n background-color: var(--jp-layout-color0);\n}\n\n.jp-PlaceholderText {\n white-space: nowrap;\n overflow-x: hidden;\n color: var(--jp-inverse-layout-color3);\n font-family: var(--jp-code-font-family);\n}\n\n.jp-InputPlaceholder > .jp-Placeholder-content {\n border-color: var(--jp-cell-editor-border-color);\n background: var(--jp-cell-editor-background);\n}\n\n/*-----------------------------------------------------------------------------\n| Print\n|----------------------------------------------------------------------------*/\n@media print {\n .jp-Placeholder {\n display: table;\n table-layout: fixed;\n }\n\n .jp-Placeholder-content {\n display: table-cell;\n }\n\n .jp-Placeholder-prompt {\n display: table-cell;\n }\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/cells/style/placeholder.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/widget.css": +/*!**********************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/cells/style/widget.css ***! + \**********************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Private CSS variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-cell-scrolling-output-offset: 5px;\n}\n\n/*-----------------------------------------------------------------------------\n| Cell\n|----------------------------------------------------------------------------*/\n\n.jp-Cell {\n padding: var(--jp-cell-padding);\n margin: 0;\n border: none;\n outline: none;\n background: transparent;\n}\n\n/*-----------------------------------------------------------------------------\n| Common input/output\n|----------------------------------------------------------------------------*/\n\n.jp-Cell-inputWrapper,\n.jp-Cell-outputWrapper {\n display: flex;\n flex-direction: row;\n padding: 0;\n margin: 0;\n\n /* Added to reveal the box-shadow on the input and output collapsers. */\n overflow: visible;\n}\n\n/* Only input/output areas inside cells */\n.jp-Cell-inputArea,\n.jp-Cell-outputArea {\n flex: 1 1 auto;\n}\n\n/*-----------------------------------------------------------------------------\n| Collapser\n|----------------------------------------------------------------------------*/\n\n/* Make the output collapser disappear when there is not output, but do so\n * in a manner that leaves it in the layout and preserves its width.\n */\n.jp-Cell.jp-mod-noOutputs .jp-Cell-outputCollapser {\n border: none !important;\n background: transparent !important;\n}\n\n.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputCollapser {\n min-height: var(--jp-cell-collapser-min-height);\n}\n\n/*-----------------------------------------------------------------------------\n| Output\n|----------------------------------------------------------------------------*/\n\n/* Put a space between input and output when there IS output */\n.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputWrapper {\n margin-top: 5px;\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea {\n overflow-y: auto;\n max-height: 24em;\n margin-left: var(--jp-private-cell-scrolling-output-offset);\n resize: vertical;\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea[style*='height'] {\n max-height: unset;\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea::after {\n content: ' ';\n box-shadow: inset 0 0 6px 2px rgb(0 0 0 / 30%);\n width: 100%;\n height: 100%;\n position: sticky;\n bottom: 0;\n top: 0;\n margin-top: -50%;\n float: left;\n display: block;\n pointer-events: none;\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-child {\n padding-top: 6px;\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-prompt {\n width: calc(\n var(--jp-cell-prompt-width) - var(--jp-private-cell-scrolling-output-offset)\n );\n flex: 0 0\n calc(\n var(--jp-cell-prompt-width) -\n var(--jp-private-cell-scrolling-output-offset)\n );\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-promptOverlay {\n left: calc(-1 * var(--jp-private-cell-scrolling-output-offset));\n}\n\n/*-----------------------------------------------------------------------------\n| CodeCell\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| MarkdownCell\n|----------------------------------------------------------------------------*/\n\n.jp-MarkdownOutput {\n flex: 1 1 auto;\n width: 100%;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: var(--jp-code-padding);\n}\n\n.jp-MarkdownOutput.jp-RenderedHTMLCommon {\n overflow: auto;\n}\n\n/* collapseHeadingButton (show always if hiddenCellsButton is _not_ shown) */\n.jp-collapseHeadingButton {\n display: flex;\n min-height: var(--jp-cell-collapser-min-height);\n font-size: var(--jp-code-font-size);\n position: absolute;\n background-color: transparent;\n background-size: 25px;\n background-repeat: no-repeat;\n background-position-x: center;\n background-position-y: top;\n background-image: var(--jp-icon-caret-down);\n right: 0;\n top: 0;\n bottom: 0;\n}\n\n.jp-collapseHeadingButton.jp-mod-collapsed {\n background-image: var(--jp-icon-caret-right);\n}\n\n/*\n set the container font size to match that of content\n so that the nested collapse buttons have the right size\n*/\n.jp-MarkdownCell .jp-InputPrompt {\n font-size: var(--jp-content-font-size1);\n}\n\n/*\n Align collapseHeadingButton with cell top header\n The font sizes are identical to the ones in packages/rendermime/style/base.css\n*/\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='1'] {\n font-size: var(--jp-content-font-size5);\n background-position-y: calc(0.3 * var(--jp-content-font-size5));\n}\n\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='2'] {\n font-size: var(--jp-content-font-size4);\n background-position-y: calc(0.3 * var(--jp-content-font-size4));\n}\n\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='3'] {\n font-size: var(--jp-content-font-size3);\n background-position-y: calc(0.3 * var(--jp-content-font-size3));\n}\n\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='4'] {\n font-size: var(--jp-content-font-size2);\n background-position-y: calc(0.3 * var(--jp-content-font-size2));\n}\n\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='5'] {\n font-size: var(--jp-content-font-size1);\n background-position-y: top;\n}\n\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='6'] {\n font-size: var(--jp-content-font-size0);\n background-position-y: top;\n}\n\n/* collapseHeadingButton (show only on (hover,active) if hiddenCellsButton is shown) */\n.jp-Notebook.jp-mod-showHiddenCellsButton .jp-collapseHeadingButton {\n display: none;\n}\n\n.jp-Notebook.jp-mod-showHiddenCellsButton\n :is(.jp-MarkdownCell:hover, .jp-mod-active)\n .jp-collapseHeadingButton {\n display: flex;\n}\n\n/* showHiddenCellsButton (only show if jp-mod-showHiddenCellsButton is set, which\nis a consequence of the showHiddenCellsButton option in Notebook Settings)*/\n.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton {\n margin-left: calc(var(--jp-cell-prompt-width) + 2 * var(--jp-code-padding));\n margin-top: var(--jp-code-padding);\n border: 1px solid var(--jp-border-color2);\n background-color: var(--jp-border-color3) !important;\n color: var(--jp-content-font-color0) !important;\n display: flex;\n}\n\n.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton:hover {\n background-color: var(--jp-border-color2) !important;\n}\n\n.jp-showHiddenCellsButton {\n display: none;\n}\n\n/*-----------------------------------------------------------------------------\n| Printing\n|----------------------------------------------------------------------------*/\n\n/*\nUsing block instead of flex to allow the use of the break-inside CSS property for\ncell outputs.\n*/\n\n@media print {\n .jp-Cell-inputWrapper,\n .jp-Cell-outputWrapper {\n display: block;\n }\n\n .jp-MarkdownOutput {\n display: table-cell;\n }\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/cells/style/widget.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/celltags-extension/style/base.css": +/*!*********************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/celltags-extension/style/base.css ***! + \*********************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n:root {\n --jp-add-tag-extra-width: 8px;\n}\n\n.jp-CellTags-Tag {\n height: 20px;\n border-radius: 10px;\n margin-right: 5px;\n margin-bottom: 10px;\n padding: 0 8px;\n font-size: var(--jp-ui-font-size1);\n display: inline-flex;\n justify-content: center;\n align-items: center;\n max-width: calc(100% - 25px);\n border: 1px solid var(--jp-border-color1);\n color: var(--jp-ui-font-color1);\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.jp-CellTags-Unapplied {\n background-color: var(--jp-layout-color2);\n}\n\n.jp-CellTags-Applied {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-CellTags-Add {\n white-space: nowrap;\n overflow: hidden;\n border: none;\n outline: none;\n resize: horizontal;\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color1);\n background: var(--jp-layout-color2);\n}\n\n.jp-CellTags-Holder {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.jp-CellTags-Empty {\n width: 4em;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/celltags-extension/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/codeeditor/style/base.css": +/*!*************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/codeeditor/style/base.css ***! + \*************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_linecol_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./linecol.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/codeeditor/style/linecol.css\");\n// Imports\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_linecol_css__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-JSONEditor {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.jp-JSONEditor-host {\n flex: 1 1 auto;\n border: var(--jp-border-width) solid var(--jp-input-border-color);\n border-radius: 0;\n background: var(--jp-layout-color0);\n min-height: 50px;\n padding: 1px;\n}\n\n.jp-JSONEditor.jp-mod-error .jp-JSONEditor-host {\n border-color: red;\n outline-color: red;\n}\n\n.jp-JSONEditor-header {\n display: flex;\n flex: 1 0 auto;\n padding: 0 0 0 12px;\n}\n\n.jp-JSONEditor-header label {\n flex: 0 0 auto;\n}\n\n.jp-JSONEditor-commitButton {\n height: 16px;\n width: 16px;\n background-size: 18px;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n.jp-JSONEditor-host.jp-mod-focused {\n background-color: var(--jp-input-active-background);\n border: 1px solid var(--jp-input-active-border-color);\n box-shadow: var(--jp-input-box-shadow);\n}\n\n.jp-Editor.jp-mod-dropTarget {\n border: var(--jp-border-width) solid var(--jp-input-active-border-color);\n box-shadow: var(--jp-input-box-shadow);\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codeeditor/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/codeeditor/style/linecol.css": +/*!****************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/codeeditor/style/linecol.css ***! + \****************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n.jp-lineFormSearch {\n padding: 4px 12px;\n background-color: var(--jp-layout-color2);\n box-shadow: var(--jp-toolbar-box-shadow);\n z-index: 2;\n font-size: var(--jp-ui-font-size1);\n}\n\n.jp-lineFormCaption {\n font-size: var(--jp-ui-font-size0);\n line-height: var(--jp-ui-font-size1);\n margin-top: 4px;\n color: var(--jp-ui-font-color0);\n}\n\n.jp-baseLineForm {\n border: none;\n border-top-right-radius: var(--jp-border-radius);\n border-bottom-right-radius: var(--jp-border-radius);\n position: absolute;\n background-size: 16px;\n background-repeat: no-repeat;\n background-position: center;\n outline: none;\n}\n\n.jp-lineFormButtonContainer {\n top: 4px;\n right: 8px;\n height: 24px;\n padding: 0 12px;\n width: 12px;\n}\n\n.jp-lineFormButtonIcon {\n top: 0;\n right: 0;\n background-color: var(--jp-brand-color1);\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n padding: 4px 6px;\n}\n\n.jp-lineFormButton {\n top: 0;\n right: 0;\n background-color: transparent;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n}\n\n.jp-lineFormWrapper {\n overflow: hidden;\n padding: 0 8px;\n border: 1px solid var(--jp-border-color0);\n border-top-left-radius: var(--jp-border-radius);\n border-bottom-left-radius: var(--jp-border-radius);\n background-color: var(--jp-input-active-background);\n height: 22px;\n}\n\n.jp-lineFormWrapperFocusWithin {\n border: var(--jp-border-width) solid var(--jp-input-active-border-color);\n box-shadow: var(--jp-input-box-shadow);\n}\n\n.jp-lineFormInput {\n background: transparent;\n width: 200px;\n height: 100%;\n border: none;\n outline: none;\n color: var(--jp-ui-font-color0);\n padding: 0;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codeeditor/style/linecol.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/codemirror/style/base.css": +/*!*************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/codemirror/style/base.css ***! + \*************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/getUrl.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII= */ \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII=\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _builder_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.cm-editor {\n line-height: var(--jp-code-line-height);\n font-size: var(--jp-code-font-size);\n font-family: var(--jp-code-font-family);\n border: 0;\n border-radius: 0;\n height: auto;\n\n /* Changed to auto to autogrow */\n}\n\n/* Suppress automatic focus indicator outline */\n.cm-editor.cm-focused {\n outline: unset;\n}\n\n.cm-editor pre {\n padding: 0 var(--jp-code-padding);\n}\n\n.jp-CodeMirrorEditor[data-type='inline'] .cm-dialog {\n background-color: var(--jp-layout-color0);\n color: var(--jp-content-font-color1);\n}\n\n.jp-CodeMirrorEditor {\n cursor: text;\n}\n\n/* When zoomed out 67% and 33% on a screen of 1440 width x 900 height */\n@media screen and (width >= 2138px) and (width <= 4319px) {\n .jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {\n border-left: var(--jp-code-cursor-width1) solid\n var(--jp-editor-cursor-color);\n }\n}\n\n/* When zoomed out less than 33% */\n@media screen and (width >= 4320px) {\n .jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {\n border-left: var(--jp-code-cursor-width2) solid\n var(--jp-editor-cursor-color);\n }\n}\n\n/* stylelint-disable selector-max-class */\n\n/* We need all this classes for higher specificity to override CodeMirror's rule */\n.cm-editor.jp-mod-readOnly > .cm-scroller > .cm-cursorLayer .cm-cursor {\n display: none;\n}\n\n/* stylelint-enable selector-max-class */\n\n.jp-CollaboratorCursor {\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: none;\n border-bottom: 3px solid;\n background-clip: content-box;\n margin-left: -5px;\n margin-right: -5px;\n}\n\n.cm-builtin {\n color: var(--jp-mirror-editor-builtin-color);\n}\n\n.cm-searching,\n.cm-searching span {\n /* \\`.cm-searching span\\`: we need to override syntax highlighting */\n background-color: var(--jp-search-unselected-match-background-color);\n color: var(--jp-search-unselected-match-color);\n}\n\n.cm-searching::selection,\n.cm-searching span::selection {\n background-color: var(--jp-search-unselected-match-background-color);\n color: var(--jp-search-unselected-match-color);\n}\n\n.jp-current-match > .cm-searching,\n.jp-current-match > .cm-searching span,\n.cm-searching > .jp-current-match,\n.cm-searching > .jp-current-match span {\n background-color: var(--jp-search-selected-match-background-color);\n color: var(--jp-search-selected-match-color);\n}\n\n.jp-current-match > .cm-searching::selection,\n.jp-current-match > .cm-searching span::selection,\n.cm-searching > .jp-current-match::selection,\n.cm-searching > .jp-current-match span::selection {\n background-color: var(--jp-search-selected-match-background-color);\n color: var(--jp-search-selected-match-color);\n}\n\n.cm-trailingspace {\n background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n background-position: center left;\n background-repeat: repeat-x;\n}\n\n.jp-CollaboratorCursor-hover {\n position: absolute;\n z-index: 1;\n transform: translateX(-50%);\n color: white;\n border-radius: 3px;\n padding-left: 4px;\n padding-right: 4px;\n padding-top: 1px;\n padding-bottom: 1px;\n text-align: center;\n font-size: var(--jp-ui-font-size1);\n white-space: nowrap;\n}\n\n.jp-CodeMirror-ruler {\n border-left: 1px dashed var(--jp-border-color2);\n}\n\n/* Styles for shared cursors (remote cursor locations and selected ranges) */\n.jp-CodeMirrorEditor .cm-ySelectionCaret {\n position: relative;\n border-left: 1px solid black;\n margin-left: -1px;\n margin-right: -1px;\n box-sizing: border-box;\n}\n\n.jp-CodeMirrorEditor .cm-ySelectionCaret > .cm-ySelectionInfo {\n white-space: nowrap;\n position: absolute;\n top: -1.15em;\n padding-bottom: 0.05em;\n left: -1px;\n font-size: 0.95em;\n font-family: var(--jp-ui-font-family);\n font-weight: bold;\n line-height: normal;\n user-select: none;\n color: white;\n padding-left: 2px;\n padding-right: 2px;\n z-index: 101;\n transition: opacity 0.3s ease-in-out;\n}\n\n.jp-CodeMirrorEditor .cm-ySelectionInfo {\n transition-delay: 0.7s;\n opacity: 0;\n}\n\n.jp-CodeMirrorEditor .cm-ySelectionCaret:hover > .cm-ySelectionInfo {\n opacity: 1;\n transition-delay: 0s;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codemirror/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/completer/style/base.css": +/*!************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/completer/style/base.css ***! + \************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-completer-item-height: 24px;\n\n /* Shift the baseline of the type character to align with the match text */\n --jp-private-completer-type-offset: 2px;\n}\n\n.jp-Completer {\n box-shadow: var(--jp-elevation-z6);\n background: var(--jp-layout-color1);\n color: var(--jp-content-font-color1);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n padding: 0;\n display: flex;\n flex-direction: row;\n\n /* Needed to avoid scrollbar issues when using cached width. */\n box-sizing: content-box;\n\n /* Position the completer relative to the text editor, align the '.' */\n margin: 4px 0 0 -30px;\n z-index: 10001;\n}\n\n.jp-Completer-docpanel {\n border-left: var(--jp-border-width) solid var(--jp-border-color1);\n width: 400px;\n flex-shrink: 0;\n overflow-y: scroll;\n overflow-x: auto;\n padding: 8px;\n max-height: calc((10 * var(--jp-private-completer-item-height)) - 16px);\n}\n\n.jp-Completer-docpanel pre {\n border: none;\n margin: 0;\n padding: 0;\n white-space: pre-wrap;\n}\n\n.jp-Completer-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n overflow-y: scroll;\n overflow-x: hidden;\n max-height: calc((10 * var(--jp-private-completer-item-height)));\n min-height: calc(var(--jp-private-completer-item-height));\n width: 100%;\n}\n\n.jp-Completer-item {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n height: var(--jp-private-completer-item-height);\n min-width: 150px;\n display: grid;\n grid-template-columns: min-content 1fr min-content;\n position: relative;\n}\n\n.jp-Completer-item .jp-Completer-match {\n box-sizing: border-box;\n margin: 0;\n padding: 0 8px 0 6px;\n height: var(--jp-private-completer-item-height);\n font-family: var(--jp-code-font-family);\n font-size: var(--jp-code-font-size);\n line-height: var(--jp-private-completer-item-height);\n white-space: nowrap;\n}\n\n.jp-Completer-deprecated .jp-Completer-match {\n text-decoration: line-through;\n color: var(--jp-content-font-color2);\n}\n\n.jp-Completer-item .jp-Completer-type {\n box-sizing: border-box;\n height: var(--jp-private-completer-item-height);\n background: transparent;\n width: var(--jp-private-completer-item-height);\n}\n\n.jp-Completer-item .jp-Completer-icon {\n /* Normal element size from LabIconStyle.ISheetOptions */\n height: 16px;\n width: 16px;\n}\n\n.jp-Completer-item .jp-Completer-monogram {\n text-align: center;\n color: white;\n width: var(--jp-private-completer-item-height);\n font-family: var(--jp-ui-font-family);\n font-size: var(--jp-ui-font-size1);\n line-height: calc(\n var(--jp-private-completer-item-height) -\n var(--jp-private-completer-type-offset)\n );\n padding-bottom: var(--jp-private-completer-type-offset);\n}\n\n.jp-Completer-item .jp-Completer-typeExtended {\n box-sizing: border-box;\n height: var(--jp-private-completer-item-height);\n text-align: right;\n background: transparent;\n color: var(--jp-ui-font-color2);\n font-family: var(--jp-code-font-family);\n font-size: var(--jp-code-font-size);\n line-height: var(--jp-private-completer-item-height);\n padding-right: 8px;\n}\n\n.jp-Completer-item:hover {\n background: var(--jp-layout-color2);\n opacity: 0.8;\n}\n\n.jp-Completer-item.jp-mod-active {\n background: var(--jp-brand-color1);\n color: white;\n}\n\n.jp-Completer-item .jp-Completer-match mark {\n font-weight: bold;\n background: inherit;\n color: inherit;\n}\n\n.jp-Completer-type[data-color-index='0'] {\n background: var(--jp-completer-type-background0, transparent);\n}\n\n.jp-Completer-type[data-color-index='1'] {\n background: var(--jp-completer-type-background1, #1f77b4);\n}\n\n.jp-Completer-type[data-color-index='2'] {\n background: var(--jp-completer-type-background2, #ff7f0e);\n}\n\n.jp-Completer-type[data-color-index='3'] {\n background: var(--jp-completer-type-background3, #2ca02c);\n}\n\n.jp-Completer-type[data-color-index='4'] {\n background: var(--jp-completer-type-background4, #d62728);\n}\n\n.jp-Completer-type[data-color-index='5'] {\n background: var(--jp-completer-type-background5, #9467bd);\n}\n\n.jp-Completer-type[data-color-index='6'] {\n background: var(--jp-completer-type-background6, #8c564b);\n}\n\n.jp-Completer-type[data-color-index='7'] {\n background: var(--jp-completer-type-background7, #e377c2);\n}\n\n.jp-Completer-type[data-color-index='8'] {\n background: var(--jp-completer-type-background8, #7f7f7f);\n}\n\n.jp-Completer-type[data-color-index='9'] {\n background: var(--jp-completer-type-background9, #bcbd22);\n}\n\n.jp-Completer-type[data-color-index='10'] {\n background: var(--jp-completer-type-background10, #17becf);\n}\n\n.jp-Completer-loading-bar-container {\n height: 2px;\n width: calc(100% - var(--jp-private-completer-item-height));\n left: var(--jp-private-completer-item-height);\n position: absolute;\n overflow: hidden;\n top: 0;\n}\n\n.jp-Completer-loading-bar {\n height: 100%;\n width: 50%;\n background-color: var(--jp-accent-color2);\n position: absolute;\n left: -50%;\n animation: jp-Completer-loading 2s ease-in 0.5s infinite;\n}\n\n@keyframes jp-Completer-loading {\n 0% {\n transform: translateX(0);\n }\n\n 100% {\n transform: translateX(400%);\n }\n}\n\n.jp-GhostText {\n color: var(--jp-ui-font-color3);\n white-space: pre-wrap;\n}\n\n.jp-GhostText-lineSpacer,\n.jp-GhostText-letterSpacer {\n opacity: 0;\n display: inline-block;\n vertical-align: top;\n /* stylelint-disable-next-line csstree/validator */\n text-wrap: none;\n}\n\n.jp-GhostText-letterSpacer {\n max-width: 0;\n}\n\n.jp-GhostText-lineSpacer {\n /* duration and delay are overwritten by inline styles */\n animation: jp-GhostText-hide 300ms 700ms ease-out forwards;\n}\n\n@keyframes jp-GhostText-hide {\n 0% {\n font-size: unset;\n }\n\n 100% {\n font-size: 0;\n }\n}\n\n.jp-GhostText-expandHidden {\n border: 1px solid var(--jp-border-color0);\n border-radius: var(--jp-border-radius);\n background: var(--jp-layout-color0);\n color: var(--jp-content-font-color3);\n padding: 0 4px;\n margin: 0 4px;\n cursor: default;\n}\n\n.jp-GhostText-hiddenWrapper:hover > .jp-GhostText-hiddenLines {\n display: inline;\n}\n\n.jp-GhostText-hiddenLines {\n display: none;\n}\n\n.jp-GhostText[data-animation='uncover'] {\n position: relative;\n}\n\n.jp-GhostText-streamedToken {\n white-space: pre;\n}\n\n.jp-GhostText[data-animation='uncover'] > .jp-GhostText-streamedToken {\n animation: jp-GhostText-typing 2s forwards;\n display: inline-flex;\n overflow: hidden;\n}\n\n@keyframes jp-GhostText-typing {\n from {\n max-width: 0;\n }\n\n to {\n max-width: 100%;\n }\n}\n\n.jp-GhostText-streamingIndicator::after {\n animation: jp-GhostText-streaming 2s infinite;\n animation-delay: 400ms;\n content: ' ';\n background: var(--jp-layout-color4);\n opacity: 0.2;\n}\n\n@keyframes jp-GhostText-streaming {\n 0% {\n opacity: 0.2;\n }\n\n 20% {\n opacity: 0.4;\n }\n\n 40% {\n opacity: 0.2;\n }\n}\n\n.jp-GhostText-errorIndicator::after {\n animation: jp-GhostText-error 500ms 1;\n animation-delay: 3500ms;\n color: var(--jp-error-color1);\n font-size: 150%;\n line-height: 10px;\n margin-left: 2px;\n padding: 0 4px;\n content: '⚠';\n cursor: help;\n position: relative;\n top: 2px;\n}\n\n@keyframes jp-GhostText-error {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n.jp-InlineCompleter {\n box-shadow: var(--jp-elevation-z2);\n background: var(--jp-layout-color1);\n color: var(--jp-content-font-color1);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 8px;\n}\n\n.jp-InlineCompleter-progressBar {\n height: 2px;\n position: absolute;\n top: 0;\n left: 0;\n background-color: var(--jp-accent-color2);\n}\n\n.jp-InlineCompleter[data-display='onHover'] {\n opacity: 0;\n transition:\n visibility 0s linear 0.1s,\n opacity 0.1s linear;\n visibility: hidden;\n}\n\n.jp-InlineCompleter[data-display='onHover']:hover,\n.jp-InlineCompleter-hover[data-display='onHover'] {\n opacity: 1;\n visibility: visible;\n transition-delay: 0s;\n}\n\n.jp-InlineCompleter[data-display='never'] {\n display: none;\n}\n\n.jp-InlineCompleter > .jp-Toolbar {\n box-shadow: none;\n border-bottom: none;\n background: none;\n}\n\n.jp-InlineCompleter[data-show-shortcuts='false']\n .jp-ToolbarButtonComponent-label {\n display: none;\n}\n\n.jp-InlineCompleter [data-command='inline-completer:next'] > svg,\n.jp-InlineCompleter [data-command='inline-completer:previous'] > svg {\n scale: 1.5;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/completer/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/console-extension/style/base.css": +/*!********************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/console-extension/style/base.css ***! + \********************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* Toolbar menu to select the prompt cell position */\n.jp-CodeConsolePromptMenu {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.jp-CodeConsolePromptMenu .lm-Menu-itemIcon > svg {\n vertical-align: sub;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/console-extension/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/console/style/base.css": +/*!**********************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/console/style/base.css ***! + \**********************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-ConsolePanel {\n display: flex;\n margin-top: -1px;\n min-width: 240px;\n min-height: 120px;\n}\n\n.jp-CodeConsole {\n height: 100%;\n padding: 0;\n display: flex;\n}\n\n.jp-CodeConsole .jp-Cell {\n padding: var(--jp-cell-padding);\n}\n\n/*-----------------------------------------------------------------------------\n| Content (already run cells)\n|----------------------------------------------------------------------------*/\n\n.jp-CodeConsole-content {\n background: var(--jp-layout-color0);\n overflow: auto;\n padding: 0 var(--jp-console-padding);\n min-width: calc(10 * var(--jp-ui-font-size1));\n min-height: calc(5 * var(--jp-ui-font-size1));\n}\n\n.jp-CodeConsole-content .jp-Cell:not(.jp-mod-active) .jp-InputPrompt {\n opacity: var(--jp-cell-prompt-not-active-opacity);\n color: var(--jp-cell-inprompt-font-color);\n cursor: move;\n}\n\n.jp-CodeConsole-content .jp-Cell:not(.jp-mod-active) .jp-OutputPrompt {\n opacity: var(--jp-cell-prompt-not-active-opacity);\n color: var(--jp-cell-outprompt-font-color);\n}\n\n/* This rule is for styling cell run by another activity in this console */\n\n/* .jp-CodeConsole-content .jp-Cell.jp-CodeConsole-foreignCell {\n} */\n\n.jp-CodeConsole-content .jp-InputArea-editor.jp-InputArea-editor {\n background: transparent;\n border: 1px solid transparent;\n}\n\n.jp-CodeConsole-content .jp-CodeConsole-banner .jp-InputPrompt {\n display: none;\n}\n\n/* collapser is hovered */\n.jp-CodeConsole-content .jp-Cell .jp-Collapser:hover {\n box-shadow: var(--jp-elevation-z2);\n background: var(--jp-brand-color1);\n opacity: var(--jp-cell-collapser-not-active-hover-opacity);\n}\n\n/*-----------------------------------------------------------------------------\n| Input/prompt cell\n|----------------------------------------------------------------------------*/\n\n.jp-CodeConsole-input {\n overflow: auto;\n padding: var(--jp-cell-padding) var(--jp-console-padding);\n\n /* This matches the box shadow on the notebook toolbar, eventually we should create\n * CSS variables for this */\n box-shadow: 0 0.4px 6px 0 rgba(0, 0, 0, 0.1);\n background: var(--jp-layout-color0);\n min-width: calc(10 * var(--jp-ui-font-size1));\n min-height: calc(4 * var(--jp-ui-font-size1));\n}\n\n.jp-CodeConsole-input .jp-CodeConsole-prompt .jp-InputArea {\n height: 100%;\n min-height: 100%;\n}\n\n.jp-CodeConsole-promptCell .jp-InputArea-editor.jp-mod-focused {\n border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);\n box-shadow: var(--jp-input-box-shadow);\n background-color: var(--jp-cell-editor-active-background);\n}\n\n/*-----------------------------------------------------------------------------\n| Presentation Mode (.jp-mod-presentationMode)\n|----------------------------------------------------------------------------*/\n\n.jp-mod-presentationMode .jp-CodeConsole {\n --jp-content-font-size1: var(--jp-content-presentation-font-size1);\n --jp-code-font-size: var(--jp-code-presentation-font-size);\n}\n\n.jp-mod-presentationMode .jp-CodeConsole .jp-Cell .jp-InputPrompt,\n.jp-mod-presentationMode .jp-CodeConsole .jp-Cell .jp-OutputPrompt {\n flex: 0 0 110px;\n}\n\n/*-----------------------------------------------------------------------------\n| Split Panel Container\n|----------------------------------------------------------------------------*/\n.jp-CodeConsole-split {\n display: flex;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.jp-CodeConsole-split.lm-SplitPanel .lm-SplitPanel-handle::after {\n background-color: var(--jp-border-color2);\n min-height: calc(2 * var(--jp-border-width));\n min-width: calc(2 * var(--jp-border-width));\n}\n\n/*-----------------------------------------------------------------------------\n| Mobile\n|----------------------------------------------------------------------------*/\n@media only screen and (width <= 760px) {\n .jp-CodeConsole-input {\n min-height: calc(6 * var(--jp-ui-font-size1));\n }\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/console/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/csvviewer/style/base.css": +/*!************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/csvviewer/style/base.css ***! + \************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-CSVViewer {\n display: flex;\n flex-direction: column;\n outline: none;\n\n /* This is needed so that all font sizing of children done in ems is\n * relative to this base size */\n font-size: var(--jp-ui-font-size1);\n}\n\n.jp-CSVDelimiter {\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n border: none;\n min-height: 24px;\n background: var(--jp-toolbar-background);\n z-index: 1;\n}\n\n.jp-CSVDelimiter .jp-CSVDelimiter-label {\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n padding-left: 8px;\n padding-right: 8px;\n}\n\n.jp-CSVDelimiter .jp-CSVDelimiter-dropdown {\n flex: 0 0 auto;\n vertical-align: middle;\n border-radius: 0;\n outline: none;\n height: 20px;\n margin-top: 2px;\n margin-bottom: 2px;\n}\n\n.jp-CSVDelimiter .jp-CSVDelimiter-dropdown select.jp-mod-styled {\n color: var(--jp-ui-font-color1);\n background: var(--jp-layout-color1);\n font-size: var(--jp-ui-font-size1);\n height: 20px;\n padding-right: 20px;\n}\n\n.jp-CSVViewer-grid {\n flex: 1 1 auto;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/csvviewer/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/base.css": +/*!***********************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/base.css ***! + \***********************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_breakpoints_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./breakpoints.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/breakpoints.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_callstack_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./callstack.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/callstack.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_editor_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./editor.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/editor.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_kernelSources_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./kernelSources.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/kernelSources.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_sidebar_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./sidebar.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/sidebar.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_sources_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./sources.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/sources.css\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_cjs_js_variables_css__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! -!../../builder/node_modules/css-loader/dist/cjs.js!./variables.css */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/variables.css\");\n// Imports\n\n\n\n\n\n\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_breakpoints_css__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_callstack_css__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_editor_css__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_kernelSources_css__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_sidebar_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_sources_css__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\n___CSS_LOADER_EXPORT___.i(_builder_node_modules_css_loader_dist_cjs_js_variables_css__WEBPACK_IMPORTED_MODULE_8__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-left-truncated {\n overflow: hidden;\n text-overflow: ellipsis;\n direction: rtl;\n}\n\n#jp-debugger .jp-switch-label {\n margin-right: 0;\n}\n\n.jp-DebuggerBugButton[aria-pressed='true'] {\n /* Undo default toolkit style */\n box-shadow: none;\n}\n\n.jp-DebuggerBugButton[aria-pressed='true'] path {\n fill: var(--jp-warn-color0);\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/debugger/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/breakpoints.css": +/*!******************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/breakpoints.css ***! + \******************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerBreakpoints {\n display: flex;\n flex-direction: column;\n min-height: 50px;\n padding-top: 3px;\n}\n\n.jp-DebuggerBreakpoints-body {\n padding: 10px;\n overflow: auto;\n}\n\n.jp-DebuggerBreakpoint {\n display: flex;\n align-items: center;\n}\n\n.jp-DebuggerBreakpoint:hover {\n background: var(--jp-layout-color2);\n cursor: pointer;\n}\n\n.jp-DebuggerBreakpoint-marker {\n font-size: 20px;\n padding-right: 5px;\n content: '●';\n color: var(--jp-error-color1);\n}\n\n.jp-DebuggerBreakpoint-source {\n white-space: nowrap;\n margin-right: 5px;\n}\n\n.jp-DebuggerBreakpoint-line {\n margin-left: auto;\n}\n\n.jp-DebuggerCallstackFrame {\n display: flex;\n align-items: center;\n}\n\n.jp-DebuggerCallstackFrame-name {\n white-space: nowrap;\n margin-right: 5px;\n}\n\n.jp-DebuggerCallstackFrame-location {\n margin-left: auto;\n}\n\n[data-jp-debugger='true'] .cm-breakpoint-gutter .cm-gutterElement:empty::after {\n content: '●';\n color: var(--jp-error-color1);\n opacity: 0;\n}\n\n.cm-gutter {\n cursor: default;\n}\n\n.cm-breakpoint-gutter .cm-gutterElement {\n color: var(--jp-error-color1);\n padding-left: 5px;\n font-size: 20px;\n position: relative;\n top: -5px;\n}\n\n[data-jp-debugger='true'].jp-Editor\n .cm-breakpoint-gutter\n .cm-gutterElement:empty:hover::after,\n[data-jp-debugger='true']\n .jp-Notebook\n .jp-CodeCell.jp-mod-selected\n .cm-breakpoint-gutter:empty:hover::after,\n[data-jp-debugger='true']\n .jp-Editor\n .cm-breakpoint-gutter\n .cm-gutterElement:empty:hover::after {\n opacity: 0.5;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/debugger/style/breakpoints.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/callstack.css": +/*!****************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/callstack.css ***! + \****************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerCallstack {\n display: flex;\n flex-direction: column;\n min-height: 50px;\n padding-top: 3px;\n}\n\n.jp-DebuggerCallstack-body {\n overflow: auto;\n}\n\n.jp-DebuggerCallstack-body ul {\n list-style: none;\n margin: 0;\n padding: 0;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n}\n\n.jp-DebuggerCallstack-body li {\n padding: 5px;\n padding-left: 8px;\n}\n\n.jp-DebuggerCallstack-body li.selected {\n color: white;\n background: var(--jp-brand-color1);\n}\n\n.jp-DebuggerCallstack .jp-ToolbarButtonComponent-label {\n display: none;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/debugger/style/callstack.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/editor.css": +/*!*************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/editor.css ***! + \*************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerEditor-highlight {\n text-shadow: 0 0 1px var(--jp-layout-color0);\n outline: 1px solid;\n}\n\nbody[data-jp-theme-light='false'] .jp-DebuggerEditor-highlight {\n background-color: var(--md-brown-800, #4e342e);\n outline-color: var(--md-brown-600, #6d4c41);\n}\n\nbody[data-jp-theme-light='true'] .jp-DebuggerEditor-highlight {\n background-color: var(--md-brown-100, #d7ccc8);\n outline-color: var(--md-brown-300, #a1887f);\n}\n\n.jp-DebuggerEditor-marker {\n position: absolute;\n left: -34px;\n top: -1px;\n color: var(--jp-error-color1);\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/debugger/style/editor.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/kernelSources.css": +/*!********************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/kernelSources.css ***! + \********************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerKernelSources {\n min-height: 50px;\n margin-top: 3px;\n}\n\n[data-jp-debugger='true'].jp-Editor .jp-mod-readOnly {\n background: var(--jp-layout-color2);\n height: 100%;\n}\n\n.jp-DebuggerKernelSources-body [data-jp-debugger='true'].jp-Editor {\n height: 100%;\n}\n\n.jp-DebuggerKernelSources-body {\n height: 100%;\n overflow-y: auto;\n}\n\n.jp-DebuggerKernelSource-filterBox {\n padding: 0;\n flex: 0 0 auto;\n margin: 0;\n position: sticky;\n top: 0;\n background-color: var(--jp-layout-color1);\n}\n\n.jp-DebuggerKernelSource-filterBox-hidden {\n display: none;\n}\n\n.jp-DebuggerKernelSource-source {\n display: flex;\n align-items: center;\n padding: 4px;\n cursor: pointer;\n}\n\n.jp-DebuggerKernelSource-source:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.jp-DebuggerKernelSource-source > svg {\n height: 16px;\n width: 16px;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/debugger/style/kernelSources.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/sidebar.css": +/*!**************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/sidebar.css ***! + \**************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-SidePanel-header > h2 {\n /* Set font-size to override default h2 sizing but keeping default --jp-ui-font-size0 */\n font-size: 100%;\n font-weight: 600;\n margin: 0 auto 0 0;\n padding: 4px 10px;\n}\n\n.jp-DebuggerSidebar-body\n .jp-AccordionPanel-title\n jp-toolbar::part(positioning-region) {\n flex-wrap: nowrap;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/debugger/style/sidebar.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/sources.css": +/*!**************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/sources.css ***! + \**************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerSources {\n min-height: 50px;\n margin-top: 3px;\n}\n\n[data-jp-debugger='true'].jp-Editor .jp-mod-readOnly {\n background: var(--jp-layout-color2);\n height: 100%;\n}\n\n.jp-DebuggerSources-body [data-jp-debugger='true'].jp-Editor {\n height: 100%;\n}\n\n.jp-DebuggerSources-body {\n height: 100%;\n}\n\n.jp-DebuggerSources-header-path {\n overflow: hidden;\n cursor: pointer;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--jp-ui-font-size0);\n color: var(--jp-ui-font-color1);\n user-select: text;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/debugger/style/sources.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/variables.css": +/*!****************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/debugger/style/variables.css ***! + \****************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerVariables {\n display: flex;\n flex-direction: column;\n min-height: 50px;\n padding-top: 3px;\n}\n\n.jp-DebuggerVariables-body {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 24px;\n overflow: auto;\n\n /* For absolute positioning of jp-DebuggerVariables-buttons. */\n position: relative;\n}\n\n.jp-DebuggerVariables-name {\n color: var(--jp-mirror-editor-attribute-color);\n grid-area: name;\n}\n\n.jp-DebuggerVariables-name:last-of-type {\n flex: 1 1 auto;\n}\n\n.jp-DebuggerVariables-name::after {\n content: ':';\n margin-right: 5px;\n}\n\n.jp-DebuggerVariables-detail {\n /* detail contains value for primitive types or name of the type otherwise */\n color: var(--jp-mirror-editor-string-color);\n flex: 1 1 auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.jp-DebuggerVariables-grid {\n flex: 1 1 auto;\n}\n\n.jp-DebuggerVariables-grid .lm-DataGrid {\n border: none;\n}\n\n.jp-DebuggerVariables-colorPalette {\n visibility: hidden;\n z-index: -999;\n position: absolute;\n left: -999px;\n top: -999px;\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-void {\n color: var(--jp-layout-color1);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-background {\n color: var(--jp-rendermime-table-row-background);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-header-background {\n color: var(--jp-layout-color2);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-grid-line {\n color: var(--jp-border-color3);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-header-grid-line {\n color: var(--jp-border-color3);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-selection {\n /* TODO: Fix JupyterLab light theme (alpha) so this can be a variable. */\n color: rgba(3, 169, 244, 0.2);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-text {\n color: var(--jp-content-font-color0);\n}\n\n.jp-VariableRendererPanel {\n overflow: auto;\n}\n\n.jp-VariableRendererPanel-renderer {\n overflow: auto;\n height: 100%;\n}\n\n.jp-VariableRenderer-TrustButton[aria-pressed='true'] {\n box-shadow: inset 0 var(--jp-border-width) 4px\n rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.6\n );\n}\n\n.jp-DebuggerRichVariable div[data-mime-type='text/plain'] > pre {\n white-space: normal;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/debugger/style/variables.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/docregistry/style/base.css": +/*!**************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/docregistry/style/base.css ***! + \**************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-MimeDocument {\n outline: none;\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/docregistry/style/base.css?../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js"); + +/***/ }), + +/***/ "../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/documentsearch/style/base.css": +/*!*****************************************************************************************************************************************!*\ + !*** ../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/cjs.js!../node_modules/@jupyterlab/documentsearch/style/base.css ***! + \*****************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../builder/node_modules/css-loader/dist/runtime/api.js */ \"../node_modules/@jupyterlab/builder/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _builder_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_builder_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n.jp-DocumentSearch-input {\n border: none;\n outline: none;\n color: var(--jp-ui-font-color0);\n font-size: var(--jp-ui-font-size1);\n background-color: var(--jp-layout-color0);\n font-family: var(--jp-ui-font-family);\n padding: 2px 1px;\n resize: none;\n white-space: pre;\n}\n\n.jp-DocumentSearch-overlay {\n position: absolute;\n background-color: var(--jp-toolbar-background);\n border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);\n border-left: var(--jp-border-width) solid var(--jp-toolbar-border-color);\n top: 0;\n right: 0;\n z-index: 7;\n min-width: 405px;\n padding: 2px;\n font-size: var(--jp-ui-font-size1);\n\n --jp-private-document-search-button-height: 20px;\n}\n\n.jp-DocumentSearch-overlay button {\n background-color: var(--jp-toolbar-background);\n outline: 0;\n}\n\n.jp-DocumentSearch-button-wrapper:disabled > .jp-DocumentSearch-button-content {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.jp-DocumentSearch-overlay button:not(:disabled):hover {\n background-color: var(--jp-layout-color2);\n}\n\n.jp-DocumentSearch-overlay button:not(:disabled):active {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-DocumentSearch-overlay-row {\n display: flex;\n align-items: center;\n margin-bottom: 2px;\n}\n\n.jp-DocumentSearch-button-content {\n display: inline-block;\n cursor: pointer;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n}\n\n.jp-DocumentSearch-button-content svg {\n width: 100%;\n height: 100%;\n}\n\n.jp-DocumentSearch-input-wrapper {\n border: var(--jp-border-width) solid var(--jp-border-color0);\n display: flex;\n background-color: var(--jp-layout-color0);\n margin: 2px;\n}\n\n.jp-DocumentSearch-input-wrapper:focus-within {\n border-color: var(--jp-cell-editor-active-border-color);\n}\n\n.jp-DocumentSearch-toggle-wrapper,\n.jp-DocumentSearch-button-wrapper {\n all: initial;\n overflow: hidden;\n display: inline-block;\n border: none;\n box-sizing: border-box;\n}\n\n.jp-DocumentSearch-toggle-wrapper {\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n}\n\n.jp-DocumentSearch-button-wrapper {\n flex-shrink: 0;\n width: var(--jp-private-document-search-button-height);\n height: var(--jp-private-document-search-button-height);\n}\n\n.jp-DocumentSearch-toggle-wrapper:focus,\n.jp-DocumentSearch-button-wrapper:focus {\n outline: var(--jp-border-width) solid\n var(--jp-cell-editor-active-border-color);\n outline-offset: -1px;\n}\n\n.jp-DocumentSearch-toggle-wrapper,\n.jp-DocumentSearch-button-wrapper,\n.jp-DocumentSearch-button-content:focus {\n outline: none;\n}\n\n.jp-DocumentSearch-toggle-placeholder {\n width: 5px;\n}\n\n.jp-DocumentSearch-input-button::before {\n display: block;\n padding-top: 100%;\n}\n\n.jp-DocumentSearch-input-button-off {\n opacity: var(--jp-search-toggle-off-opacity);\n}\n\n.jp-DocumentSearch-input-button-off:hover {\n opacity: var(--jp-search-toggle-hover-opacity);\n}\n\n.jp-DocumentSearch-input-button-on {\n opacity: var(--jp-search-toggle-on-opacity);\n}\n\n.jp-DocumentSearch-index-counter {\n padding-left: 10px;\n padding-right: 10px;\n user-select: none;\n min-width: 35px;\n display: inline-block;\n}\n\n.jp-DocumentSearch-up-down-wrapper {\n display: inline-block;\n padding-right: 2px;\n margin-left: auto;\n white-space: nowrap;\n}\n\n.jp-DocumentSearch-spacer {\n margin-left: auto;\n}\n\n.jp-DocumentSearch-up-down-wrapper button {\n outline: 0;\n border: none;\n width: var(--jp-private-document-search-button-height);\n height: var(--jp-private-document-search-button-height);\n vertical-align: middle;\n margin: 1px 5px 2px;\n}\n\nbutton:not(:disabled) > .jp-DocumentSearch-up-down-button:hover {\n background-color: var(--jp-layout-color2);\n}\n\nbutton:not(:disabled) > .jp-DocumentSearch-up-down-button:active {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-DocumentSearch-filter-button {\n border-radius: var(--jp-border-radius);\n}\n\n.jp-DocumentSearch-filter-button:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.jp-DocumentSearch-filter-button-enabled {\n background-color: var(--jp-layout-color2);\n}\n\n.jp-DocumentSearch-filter-button-enabled:hover {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-DocumentSearch-search-options {\n padding: 0 8px;\n margin-left: 3px;\n width: 100%;\n display: grid;\n justify-content: start;\n grid-template-columns: 1fr 1fr;\n align-items: center;\n justify-items: stretch;\n}\n\n.jp-DocumentSearch-search-filter-disabled {\n color: var(--jp-ui-font-color2);\n}\n\n.jp-DocumentSearch-search-filter {\n display: flex;\n align-items: center;\n user-select: none;\n}\n\n.jp-DocumentSearch-regex-error {\n color: var(--jp-error-color0);\n}\n\n.jp-DocumentSearch-replace-button-wrapper {\n overflow: hidden;\n display: inline-block;\n box-sizing: border-box;\n border: var(--jp-border-width) solid var(--jp-border-color0);\n margin: auto 2px;\n padding: 1px 4px;\n height: calc(var(--jp-private-document-search-button-height) + 2px);\n flex-shrink: 0;\n}\n\n.jp-DocumentSearch-replace-button-wrapper:focus {\n border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);\n}\n\n.jp-DocumentSearch-replace-button {\n display: inline-block;\n text-align: center;\n cursor: pointer;\n box-sizing: border-box;\n color: var(--jp-ui-font-color1);\n\n /* height - 2 * (padding of wrapper) */\n line-height: calc(var(--jp-private-document-search-button-height) - 2px);\n width: 100%;\n height: 100%;\n}\n\n.jp-DocumentSearch-replace-button:focus {\n outline: none;\n}\n\n.jp-DocumentSearch-replace-wrapper-class {\n margin-left: 14px;\n display: flex;\n}\n\n.jp-DocumentSearch-replace-toggle {\n border: none;\n background-color: var(--jp-toolbar-background);\n border-radius: var(--jp-border-radius);\n}\n\n.jp-DocumentSearch-replace-toggle:hover {\n background-color: var(--jp-layout-color2);\n}\n\n/*\n The following few rules allow the search box to expand horizontally,\n as the text within it grows. This is done by using putting\n the text within a wrapper element and using that wrapper for sizing,\n as