/*
 * 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([["vendors-node_modules_lumino_commands_dist_index_es6_js"],{

/***/ "../node_modules/@lumino/commands/dist/index.es6.js":
/*!**********************************************************!*\
  !*** ../node_modules/@lumino/commands/dist/index.es6.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 */   \"CommandRegistry\": () => (/* binding */ CommandRegistry)\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_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_domutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/domutils */ \"webpack/sharing/consume/default/@lumino/domutils/@lumino/domutils\");\n/* harmony import */ var _lumino_domutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_domutils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _lumino_keyboard__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @lumino/keyboard */ \"../node_modules/@lumino/keyboard/dist/index.es6.js\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n\n\n// Copyright (c) Jupyter Development Team.\n/**\n * An object which manages a collection of commands.\n *\n * #### Notes\n * A command registry can be used to populate a variety of action-based\n * widgets, such as command palettes, menus, and toolbars.\n */\nvar CommandRegistry = /** @class */ (function () {\n    /**\n     * Construct a new command registry.\n     */\n    function CommandRegistry() {\n        this._timerID = 0;\n        this._replaying = false;\n        this._keystrokes = [];\n        this._keydownEvents = [];\n        this._keyBindings = [];\n        this._exactKeyMatch = null;\n        this._commands = Object.create(null);\n        this._commandChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_5__.Signal(this);\n        this._commandExecuted = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_5__.Signal(this);\n        this._keyBindingChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_5__.Signal(this);\n    }\n    Object.defineProperty(CommandRegistry.prototype, \"commandChanged\", {\n        /**\n         * A signal emitted when a command has changed.\n         *\n         * #### Notes\n         * This signal is useful for visual representations of commands which\n         * need to refresh when the state of a relevant command has changed.\n         */\n        get: function () {\n            return this._commandChanged;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(CommandRegistry.prototype, \"commandExecuted\", {\n        /**\n         * A signal emitted when a command has executed.\n         *\n         * #### Notes\n         * Care should be taken when consuming this signal. The command system is used\n         * by many components for many user actions. Handlers registered with this\n         * signal must return quickly to ensure the overall application remains responsive.\n         */\n        get: function () {\n            return this._commandExecuted;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(CommandRegistry.prototype, \"keyBindingChanged\", {\n        /**\n         * A signal emitted when a key binding is changed.\n         */\n        get: function () {\n            return this._keyBindingChanged;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(CommandRegistry.prototype, \"keyBindings\", {\n        /**\n         * A read-only array of the key bindings in the registry.\n         */\n        get: function () {\n            return this._keyBindings;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * List the ids of the registered commands.\n     *\n     * @returns A new array of the registered command ids.\n     */\n    CommandRegistry.prototype.listCommands = function () {\n        return Object.keys(this._commands);\n    };\n    /**\n     * Test whether a specific command is registered.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @returns `true` if the command is registered, `false` otherwise.\n     */\n    CommandRegistry.prototype.hasCommand = function (id) {\n        return id in this._commands;\n    };\n    /**\n     * Add a command to the registry.\n     *\n     * @param id - The unique id of the command.\n     *\n     * @param options - The options for the command.\n     *\n     * @returns A disposable which will remove the command.\n     *\n     * @throws An error if the given `id` is already registered.\n     */\n    CommandRegistry.prototype.addCommand = function (id, options) {\n        var _this = this;\n        // Throw an error if the id is already registered.\n        if (id in this._commands) {\n            throw new Error(\"Command '\" + id + \"' already registered.\");\n        }\n        // Add the command to the registry.\n        this._commands[id] = Private.createCommand(options);\n        // Emit the `commandChanged` signal.\n        this._commandChanged.emit({ id: id, type: 'added' });\n        // Return a disposable which will remove the command.\n        return new _lumino_disposable__WEBPACK_IMPORTED_MODULE_2__.DisposableDelegate(function () {\n            // Remove the command from the registry.\n            delete _this._commands[id];\n            // Emit the `commandChanged` signal.\n            _this._commandChanged.emit({ id: id, type: 'removed' });\n        });\n    };\n    /**\n     * Notify listeners that the state of a command has changed.\n     *\n     * @param id - The id of the command which has changed. If more than\n     *   one command has changed, this argument should be omitted.\n     *\n     * @throws An error if the given `id` is not registered.\n     *\n     * #### Notes\n     * This method should be called by the command author whenever the\n     * application state changes such that the results of the command\n     * metadata functions may have changed.\n     *\n     * This will cause the `commandChanged` signal to be emitted.\n     */\n    CommandRegistry.prototype.notifyCommandChanged = function (id) {\n        if (id !== undefined && !(id in this._commands)) {\n            throw new Error(\"Command '\" + id + \"' is not registered.\");\n        }\n        this._commandChanged.emit({ id: id, type: id ? 'changed' : 'many-changed' });\n    };\n    /**\n     * Get the display label for a specific command.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns The display label for the command, or an empty string\n     *   if the command is not registered.\n     */\n    CommandRegistry.prototype.label = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.label.call(undefined, args) : '';\n    };\n    /**\n     * Get the mnemonic index for a specific command.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns The mnemonic index for the command, or `-1` if the\n     *   command is not registered.\n     */\n    CommandRegistry.prototype.mnemonic = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.mnemonic.call(undefined, args) : -1;\n    };\n    /**\n     * Get the icon renderer for a specific command.\n     *\n     * DEPRECATED: if set to a string value, the .icon field will\n     * function as an alias for the .iconClass field, for backwards\n     * compatibility. In the future when this is removed, the default\n     * return type will become undefined.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns The icon renderer for the command, or\n     *   an empty string if the command is not registered.\n     */\n    CommandRegistry.prototype.icon = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.icon.call(undefined, args) : /* <DEPRECATED> */ '' /* </DEPRECATED> */ /* <FUTURE> undefined </FUTURE> */;\n    };\n    /**\n     * Get the icon class for a specific command.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns The icon class for the command, or an empty string if\n     *   the command is not registered.\n     */\n    CommandRegistry.prototype.iconClass = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.iconClass.call(undefined, args) : '';\n    };\n    /**\n     * Get the icon label for a specific command.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns The icon label for the command, or an empty string if\n     *   the command is not registered.\n     */\n    CommandRegistry.prototype.iconLabel = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.iconLabel.call(undefined, args) : '';\n    };\n    /**\n     * Get the short form caption for a specific command.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns The caption for the command, or an empty string if the\n     *   command is not registered.\n     */\n    CommandRegistry.prototype.caption = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.caption.call(undefined, args) : '';\n    };\n    /**\n     * Get the usage help text for a specific command.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns The usage text for the command, or an empty string if\n     *   the command is not registered.\n     */\n    CommandRegistry.prototype.usage = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.usage.call(undefined, args) : '';\n    };\n    /**\n     * Get the extra class name for a specific command.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns The class name for the command, or an empty string if\n     *   the command is not registered.\n     */\n    CommandRegistry.prototype.className = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.className.call(undefined, args) : '';\n    };\n    /**\n     * Get the dataset for a specific command.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns The dataset for the command, or an empty dataset if\n     *   the command is not registered.\n     */\n    CommandRegistry.prototype.dataset = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.dataset.call(undefined, args) : {};\n    };\n    /**\n     * Test whether a specific command is enabled.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns A boolean indicating whether the command is enabled,\n     *   or `false` if the command is not registered.\n     */\n    CommandRegistry.prototype.isEnabled = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.isEnabled.call(undefined, args) : false;\n    };\n    /**\n     * Test whether a specific command is toggled.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns A boolean indicating whether the command is toggled,\n     *   or `false` if the command is not registered.\n     */\n    CommandRegistry.prototype.isToggled = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.isToggled.call(undefined, args) : false;\n    };\n    /**\n     * Test whether a specific command is toggleable.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns A boolean indicating whether the command is toggleable,\n     *   or `false` if the command is not registered.\n     */\n    CommandRegistry.prototype.isToggleable = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.isToggleable : false;\n    };\n    /**\n     * Test whether a specific command is visible.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns A boolean indicating whether the command is visible,\n     *   or `false` if the command is not registered.\n     */\n    CommandRegistry.prototype.isVisible = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        var cmd = this._commands[id];\n        return cmd ? cmd.isVisible.call(undefined, args) : false;\n    };\n    /**\n     * Execute a specific command.\n     *\n     * @param id - The id of the command of interest.\n     *\n     * @param args - The arguments for the command.\n     *\n     * @returns A promise which resolves with the result of the command.\n     *\n     * #### Notes\n     * The promise will reject if the command throws an exception,\n     * or if the command is not registered.\n     */\n    CommandRegistry.prototype.execute = function (id, args) {\n        if (args === void 0) { args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject; }\n        // Reject if the command is not registered.\n        var cmd = this._commands[id];\n        if (!cmd) {\n            return Promise.reject(new Error(\"Command '\" + id + \"' not registered.\"));\n        }\n        // Execute the command and reject if an exception is thrown.\n        var value;\n        try {\n            value = cmd.execute.call(undefined, args);\n        }\n        catch (err) {\n            value = Promise.reject(err);\n        }\n        // Create the return promise which resolves the result.\n        var result = Promise.resolve(value);\n        // Emit the command executed signal.\n        this._commandExecuted.emit({ id: id, args: args, result: result });\n        // Return the result promise to the caller.\n        return result;\n    };\n    /**\n     * Add a key binding to the registry.\n     *\n     * @param options - The options for creating the key binding.\n     *\n     * @returns A disposable which removes the added key binding.\n     *\n     * #### Notes\n     * If multiple key bindings are registered for the same sequence, the\n     * binding with the highest selector specificity is executed first. A\n     * tie is broken by using the most recently added key binding.\n     *\n     * Ambiguous key bindings are resolved with a timeout. As an example,\n     * suppose two key bindings are registered: one with the key sequence\n     * `['Ctrl D']`, and another with `['Ctrl D', 'Ctrl W']`. If the user\n     * presses `Ctrl D`, the first binding cannot be immediately executed\n     * since the user may intend to complete the chord with `Ctrl W`. For\n     * such cases, a timer is used to allow the chord to be completed. If\n     * the chord is not completed before the timeout, the first binding\n     * is executed.\n     */\n    CommandRegistry.prototype.addKeyBinding = function (options) {\n        var _this = this;\n        // Create the binding for the given options.\n        var binding = Private.createKeyBinding(options);\n        // Add the key binding to the bindings array.\n        this._keyBindings.push(binding);\n        // Emit the `bindingChanged` signal.\n        this._keyBindingChanged.emit({ binding: binding, type: 'added' });\n        // Return a disposable which will remove the binding.\n        return new _lumino_disposable__WEBPACK_IMPORTED_MODULE_2__.DisposableDelegate(function () {\n            // Remove the binding from the array.\n            _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__.ArrayExt.removeFirstOf(_this._keyBindings, binding);\n            // Emit the `bindingChanged` signal.\n            _this._keyBindingChanged.emit({ binding: binding, type: 'removed' });\n        });\n    };\n    /**\n     * Process a `'keydown'` event and invoke a matching key binding.\n     *\n     * @param event - The event object for a `'keydown'` event.\n     *\n     * #### Notes\n     * This should be called in response to a `'keydown'` event in order\n     * to invoke the command for the best matching key binding.\n     *\n     * The registry **does not** install its own listener for `'keydown'`\n     * events. This allows the application full control over the nodes\n     * and phase for which the registry processes `'keydown'` events.\n     *\n     * When the keydown event is processed, if the event target or any of its\n     * ancestor nodes has a `data-lm-suppress-shortcuts` attribute, its keydown\n     * events will not invoke commands.\n     */\n    CommandRegistry.prototype.processKeydownEvent = function (event) {\n        // Bail immediately if playing back keystrokes.\n        if (this._replaying) {\n            return;\n        }\n        // Get the normalized keystroke for the event.\n        var keystroke = CommandRegistry.keystrokeForKeydownEvent(event);\n        // If the keystroke is not valid for the keyboard layout, replay\n        // any suppressed events and clear the pending state.\n        if (!keystroke) {\n            this._replayKeydownEvents();\n            this._clearPendingState();\n            return;\n        }\n        // Add the keystroke to the current key sequence.\n        this._keystrokes.push(keystroke);\n        // Find the exact and partial matches for the key sequence.\n        var _a = Private.matchKeyBinding(this._keyBindings, this._keystrokes, event), exact = _a.exact, partial = _a.partial;\n        // If there is no exact match and no partial match, replay\n        // any suppressed events and clear the pending state.\n        if (!exact && !partial) {\n            this._replayKeydownEvents();\n            this._clearPendingState();\n            return;\n        }\n        // Stop propagation of the event. If there is only a partial match,\n        // the event will be replayed if a final exact match never occurs.\n        event.preventDefault();\n        event.stopPropagation();\n        // If there is an exact match but no partial match, the exact match\n        // can be dispatched immediately. The pending state is cleared so\n        // the next key press starts from the default state.\n        if (exact && !partial) {\n            this._executeKeyBinding(exact);\n            this._clearPendingState();\n            return;\n        }\n        // If there is both an exact match and a partial match, the exact\n        // match is stored for future dispatch in case the timer expires\n        // before a more specific match is triggered.\n        if (exact) {\n            this._exactKeyMatch = exact;\n        }\n        // Store the event for possible playback in the future.\n        this._keydownEvents.push(event);\n        // (Re)start the timer to dispatch the most recent exact match\n        // in case the partial match fails to result in an exact match.\n        this._startTimer();\n    };\n    /**\n     * Start or restart the pending timeout.\n     */\n    CommandRegistry.prototype._startTimer = function () {\n        var _this = this;\n        this._clearTimer();\n        this._timerID = window.setTimeout(function () {\n            _this._onPendingTimeout();\n        }, Private.CHORD_TIMEOUT);\n    };\n    /**\n     * Clear the pending timeout.\n     */\n    CommandRegistry.prototype._clearTimer = function () {\n        if (this._timerID !== 0) {\n            clearTimeout(this._timerID);\n            this._timerID = 0;\n        }\n    };\n    /**\n     * Replay the keydown events which were suppressed.\n     */\n    CommandRegistry.prototype._replayKeydownEvents = function () {\n        if (this._keydownEvents.length === 0) {\n            return;\n        }\n        this._replaying = true;\n        this._keydownEvents.forEach(Private.replayKeyEvent);\n        this._replaying = false;\n    };\n    /**\n     * Execute the command for the given key binding.\n     *\n     * If the command is missing or disabled, a warning will be logged.\n     */\n    CommandRegistry.prototype._executeKeyBinding = function (binding) {\n        var command = binding.command, args = binding.args;\n        if (!this.hasCommand(command) || !this.isEnabled(command, args)) {\n            var word = this.hasCommand(command) ? 'enabled' : 'registered';\n            var keys = binding.keys.join(', ');\n            var msg1 = \"Cannot execute key binding '\" + keys + \"':\";\n            var msg2 = \"command '\" + command + \"' is not \" + word + \".\";\n            console.warn(msg1 + \" \" + msg2);\n            return;\n        }\n        this.execute(command, args);\n    };\n    /**\n     * Clear the internal pending state.\n     */\n    CommandRegistry.prototype._clearPendingState = function () {\n        this._clearTimer();\n        this._exactKeyMatch = null;\n        this._keystrokes.length = 0;\n        this._keydownEvents.length = 0;\n    };\n    /**\n     * Handle the partial match timeout.\n     */\n    CommandRegistry.prototype._onPendingTimeout = function () {\n        this._timerID = 0;\n        if (this._exactKeyMatch) {\n            this._executeKeyBinding(this._exactKeyMatch);\n        }\n        else {\n            this._replayKeydownEvents();\n        }\n        this._clearPendingState();\n    };\n    return CommandRegistry;\n}());\n/**\n * The namespace for the `CommandRegistry` class statics.\n */\n(function (CommandRegistry) {\n    /**\n     * Parse a keystroke into its constituent components.\n     *\n     * @param keystroke - The keystroke of interest.\n     *\n     * @returns The parsed components of the keystroke.\n     *\n     * #### Notes\n     * The keystroke should be of the form:\n     *   `[<modifier 1> [<modifier 2> [<modifier N> ]]]<primary key>`\n     *\n     * The supported modifiers are: `Accel`, `Alt`, `Cmd`, `Ctrl`, and\n     * `Shift`. The `Accel` modifier is translated to `Cmd` on Mac and\n     * `Ctrl` on all other platforms.\n     *\n     * The parsing is tolerant and will not throw exceptions. Notably:\n     *   - Duplicate modifiers are ignored.\n     *   - Extra primary keys are ignored.\n     *   - The order of modifiers and primary key is irrelevant.\n     *   - The keystroke parts should be separated by whitespace.\n     *   - The keystroke is case sensitive.\n     */\n    function parseKeystroke(keystroke) {\n        var key = '';\n        var alt = false;\n        var cmd = false;\n        var ctrl = false;\n        var shift = false;\n        for (var _i = 0, _a = keystroke.split(/\\s+/); _i < _a.length; _i++) {\n            var token = _a[_i];\n            if (token === 'Accel') {\n                if (_lumino_domutils__WEBPACK_IMPORTED_MODULE_3__.Platform.IS_MAC) {\n                    cmd = true;\n                }\n                else {\n                    ctrl = true;\n                }\n            }\n            else if (token === 'Alt') {\n                alt = true;\n            }\n            else if (token === 'Cmd') {\n                cmd = true;\n            }\n            else if (token === 'Ctrl') {\n                ctrl = true;\n            }\n            else if (token === 'Shift') {\n                shift = true;\n            }\n            else if (token.length > 0) {\n                key = token;\n            }\n        }\n        return { cmd: cmd, ctrl: ctrl, alt: alt, shift: shift, key: key };\n    }\n    CommandRegistry.parseKeystroke = parseKeystroke;\n    /**\n     * Normalize a keystroke into a canonical representation.\n     *\n     * @param keystroke - The keystroke of interest.\n     *\n     * @returns The normalized representation of the keystroke.\n     *\n     * #### Notes\n     * This normalizes the keystroke by removing duplicate modifiers and\n     * extra primary keys, and assembling the parts in a canonical order.\n     *\n     * The `Cmd` modifier is ignored on non-Mac platforms.\n     */\n    function normalizeKeystroke(keystroke) {\n        var mods = '';\n        var parts = parseKeystroke(keystroke);\n        if (parts.ctrl) {\n            mods += 'Ctrl ';\n        }\n        if (parts.alt) {\n            mods += 'Alt ';\n        }\n        if (parts.shift) {\n            mods += 'Shift ';\n        }\n        if (parts.cmd && _lumino_domutils__WEBPACK_IMPORTED_MODULE_3__.Platform.IS_MAC) {\n            mods += 'Cmd ';\n        }\n        return mods + parts.key;\n    }\n    CommandRegistry.normalizeKeystroke = normalizeKeystroke;\n    /**\n     * Get the platform-specific normalized keys for an options object.\n     *\n     * @param options - The options for the key binding.\n     *\n     * @returns Array of combined, normalized keys.\n     */\n    function normalizeKeys(options) {\n        var keys;\n        if (_lumino_domutils__WEBPACK_IMPORTED_MODULE_3__.Platform.IS_WIN) {\n            keys = options.winKeys || options.keys;\n        }\n        else if (_lumino_domutils__WEBPACK_IMPORTED_MODULE_3__.Platform.IS_MAC) {\n            keys = options.macKeys || options.keys;\n        }\n        else {\n            keys = options.linuxKeys || options.keys;\n        }\n        return keys.map(normalizeKeystroke);\n    }\n    CommandRegistry.normalizeKeys = normalizeKeys;\n    /**\n     * Format a keystroke for display on the local system.\n     */\n    function formatKeystroke(keystroke) {\n        var mods = '';\n        var parts = parseKeystroke(keystroke);\n        if (_lumino_domutils__WEBPACK_IMPORTED_MODULE_3__.Platform.IS_MAC) {\n            if (parts.ctrl) {\n                mods += '\\u2303 ';\n            }\n            if (parts.alt) {\n                mods += '\\u2325 ';\n            }\n            if (parts.shift) {\n                mods += '\\u21E7 ';\n            }\n            if (parts.cmd) {\n                mods += '\\u2318 ';\n            }\n        }\n        else {\n            if (parts.ctrl) {\n                mods += 'Ctrl+';\n            }\n            if (parts.alt) {\n                mods += 'Alt+';\n            }\n            if (parts.shift) {\n                mods += 'Shift+';\n            }\n        }\n        return mods + parts.key;\n    }\n    CommandRegistry.formatKeystroke = formatKeystroke;\n    /**\n     * Create a normalized keystroke for a `'keydown'` event.\n     *\n     * @param event - The event object for a `'keydown'` event.\n     *\n     * @returns A normalized keystroke, or an empty string if the event\n     *   does not represent a valid keystroke for the given layout.\n     */\n    function keystrokeForKeydownEvent(event) {\n        var key = (0,_lumino_keyboard__WEBPACK_IMPORTED_MODULE_4__.getKeyboardLayout)().keyForKeydownEvent(event);\n        if (!key) {\n            return '';\n        }\n        var mods = '';\n        if (event.ctrlKey) {\n            mods += 'Ctrl ';\n        }\n        if (event.altKey) {\n            mods += 'Alt ';\n        }\n        if (event.shiftKey) {\n            mods += 'Shift ';\n        }\n        if (event.metaKey && _lumino_domutils__WEBPACK_IMPORTED_MODULE_3__.Platform.IS_MAC) {\n            mods += 'Cmd ';\n        }\n        return mods + key;\n    }\n    CommandRegistry.keystrokeForKeydownEvent = keystrokeForKeydownEvent;\n})(CommandRegistry || (CommandRegistry = {}));\n/**\n * The namespace for the module implementation details.\n */\nvar Private;\n(function (Private) {\n    /**\n     * The timeout in ms for triggering a key binding chord.\n     */\n    Private.CHORD_TIMEOUT = 1000;\n    /**\n     * Create a normalized command from an options object.\n     */\n    function createCommand(options) {\n        var icon;\n        var iconClass;\n        /* <DEPRECATED> */\n        if (!(options.icon) || typeof options.icon === 'string') {\n            // alias icon to iconClass\n            iconClass = asFunc(options.iconClass || options.icon, emptyStringFunc);\n            icon = iconClass;\n        }\n        else {\n            /* /<DEPRECATED> */\n            iconClass = asFunc(options.iconClass, emptyStringFunc);\n            icon = asFunc(options.icon, undefinedFunc);\n            /* <DEPRECATED> */\n        }\n        /* </DEPRECATED> */\n        return {\n            execute: options.execute,\n            label: asFunc(options.label, emptyStringFunc),\n            mnemonic: asFunc(options.mnemonic, negativeOneFunc),\n            icon: icon,\n            iconClass: iconClass,\n            iconLabel: asFunc(options.iconLabel, emptyStringFunc),\n            caption: asFunc(options.caption, emptyStringFunc),\n            usage: asFunc(options.usage, emptyStringFunc),\n            className: asFunc(options.className, emptyStringFunc),\n            dataset: asFunc(options.dataset, emptyDatasetFunc),\n            isEnabled: options.isEnabled || trueFunc,\n            isToggled: options.isToggled || falseFunc,\n            isToggleable: options.isToggleable || !!options.isToggled,\n            isVisible: options.isVisible || trueFunc\n        };\n    }\n    Private.createCommand = createCommand;\n    /**\n     * Create a key binding object from key binding options.\n     */\n    function createKeyBinding(options) {\n        return {\n            keys: CommandRegistry.normalizeKeys(options),\n            selector: validateSelector(options),\n            command: options.command,\n            args: options.args || _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.emptyObject\n        };\n    }\n    Private.createKeyBinding = createKeyBinding;\n    /**\n     * Find the key bindings which match a key sequence.\n     *\n     * This returns a match result which contains the best exact matching\n     * binding, and a flag which indicates if there are partial matches.\n     */\n    function matchKeyBinding(bindings, keys, event) {\n        // The current best exact match.\n        var exact = null;\n        // Whether a partial match has been found.\n        var partial = false;\n        // The match distance for the exact match.\n        var distance = Infinity;\n        // The specificity for the exact match.\n        var specificity = 0;\n        // Iterate over the bindings and search for the best match.\n        for (var i = 0, n = bindings.length; i < n; ++i) {\n            // Lookup the current binding.\n            var binding = bindings[i];\n            // Check whether the key binding sequence is a match.\n            var sqm = matchSequence(binding.keys, keys);\n            // If there is no match, the binding is ignored.\n            if (sqm === 0 /* None */) {\n                continue;\n            }\n            // If it is a partial match and no other partial match has been\n            // found, ensure the selector matches and set the partial flag.\n            if (sqm === 2 /* Partial */) {\n                if (!partial && targetDistance(binding.selector, event) !== -1) {\n                    partial = true;\n                }\n                continue;\n            }\n            // Ignore the match if the selector doesn't match, or if the\n            // matched node is farther away than the current best match.\n            var td = targetDistance(binding.selector, event);\n            if (td === -1 || td > distance) {\n                continue;\n            }\n            // Get the specificity for the selector.\n            var sp = _lumino_domutils__WEBPACK_IMPORTED_MODULE_3__.Selector.calculateSpecificity(binding.selector);\n            // Update the best match if this match is stronger.\n            if (!exact || td < distance || sp >= specificity) {\n                exact = binding;\n                distance = td;\n                specificity = sp;\n            }\n        }\n        // Return the match result.\n        return { exact: exact, partial: partial };\n    }\n    Private.matchKeyBinding = matchKeyBinding;\n    /**\n     * Replay a keyboard event.\n     *\n     * This synthetically dispatches a clone of the keyboard event.\n     */\n    function replayKeyEvent(event) {\n        event.target.dispatchEvent(cloneKeyboardEvent(event));\n    }\n    Private.replayKeyEvent = replayKeyEvent;\n    /**\n     * A singleton empty string function.\n     */\n    var emptyStringFunc = function () { return ''; };\n    /**\n     * A singleton `-1` number function\n     */\n    var negativeOneFunc = function () { return -1; };\n    /**\n     * A singleton true boolean function.\n     */\n    var trueFunc = function () { return true; };\n    /**\n     * A singleton false boolean function.\n     */\n    var falseFunc = function () { return false; };\n    /**\n     * A singleton empty dataset function.\n     */\n    var emptyDatasetFunc = function () { return ({}); };\n    /**\n     * A singleton undefined function\n     */\n    var undefinedFunc = function () { return undefined; };\n    /**\n     * Cast a value or command func to a command func.\n     */\n    function asFunc(value, dfault) {\n        if (value === undefined) {\n            return dfault;\n        }\n        if (typeof value === 'function') {\n            return value;\n        }\n        return function () { return value; };\n    }\n    /**\n     * Validate the selector for an options object.\n     *\n     * This returns the validated selector, or throws if the selector is\n     * invalid or contains commas.\n     */\n    function validateSelector(options) {\n        if (options.selector.indexOf(',') !== -1) {\n            throw new Error(\"Selector cannot contain commas: \" + options.selector);\n        }\n        if (!_lumino_domutils__WEBPACK_IMPORTED_MODULE_3__.Selector.isValid(options.selector)) {\n            throw new Error(\"Invalid selector: \" + options.selector);\n        }\n        return options.selector;\n    }\n    /**\n     * Test whether a key binding sequence matches a key sequence.\n     *\n     * Returns a `SequenceMatch` value indicating the type of match.\n     */\n    function matchSequence(bindKeys, userKeys) {\n        if (bindKeys.length < userKeys.length) {\n            return 0 /* None */;\n        }\n        for (var i = 0, n = userKeys.length; i < n; ++i) {\n            if (bindKeys[i] !== userKeys[i]) {\n                return 0 /* None */;\n            }\n        }\n        if (bindKeys.length > userKeys.length) {\n            return 2 /* Partial */;\n        }\n        return 1 /* Exact */;\n    }\n    /**\n     * Find the distance from the target node to the first matching node.\n     *\n     * This traverses the event path from `target` to `currentTarget` and\n     * computes the distance from `target` to the first node which matches\n     * the CSS selector. If no match is found, `-1` is returned.\n     */\n    function targetDistance(selector, event) {\n        var targ = event.target;\n        var curr = event.currentTarget;\n        for (var dist = 0; targ !== null; targ = targ.parentElement, ++dist) {\n            if (targ.hasAttribute('data-lm-suppress-shortcuts')) {\n                return -1;\n            }\n            /* <DEPRECATED> */\n            if (targ.hasAttribute('data-p-suppress-shortcuts')) {\n                return -1;\n            }\n            /* </DEPRECATED> */\n            if (_lumino_domutils__WEBPACK_IMPORTED_MODULE_3__.Selector.matches(targ, selector)) {\n                return dist;\n            }\n            if (targ === curr) {\n                return -1;\n            }\n        }\n        return -1;\n    }\n    /**\n     * Clone a keyboard event.\n     */\n    function cloneKeyboardEvent(event) {\n        // A custom event is required because Chrome nulls out the\n        // `keyCode` field in user-generated `KeyboardEvent` types.\n        var clone = document.createEvent('Event');\n        var bubbles = event.bubbles || true;\n        var cancelable = event.cancelable || true;\n        clone.initEvent(event.type || 'keydown', bubbles, cancelable);\n        clone.key = event.key || '';\n        clone.keyCode = event.keyCode || 0;\n        clone.which = event.keyCode || 0;\n        clone.ctrlKey = event.ctrlKey || false;\n        clone.altKey = event.altKey || false;\n        clone.shiftKey = event.shiftKey || false;\n        clone.metaKey = event.metaKey || false;\n        clone.view = event.view || window;\n        return clone;\n    }\n})(Private || (Private = {}));\n\n\n//# sourceMappingURL=index.es6.js.map\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@lumino/commands/dist/index.es6.js?");

/***/ }),

/***/ "../node_modules/@lumino/keyboard/dist/index.es6.js":
/*!**********************************************************!*\
  !*** ../node_modules/@lumino/keyboard/dist/index.es6.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 */   \"EN_US\": () => (/* binding */ EN_US),\n/* harmony export */   \"KeycodeLayout\": () => (/* binding */ KeycodeLayout),\n/* harmony export */   \"getKeyboardLayout\": () => (/* binding */ getKeyboardLayout),\n/* harmony export */   \"setKeyboardLayout\": () => (/* binding */ setKeyboardLayout)\n/* harmony export */ });\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\n/**\n * Get the global application keyboard layout instance.\n *\n * @returns The keyboard layout for use by the application.\n *\n * #### Notes\n * The default keyboard layout is US-English.\n */\nfunction getKeyboardLayout() {\n    return Private.keyboardLayout;\n}\n/**\n * Set the global application keyboard layout instance.\n *\n * @param - The keyboard layout for use by the application.\n *\n * #### Notes\n * The keyboard layout should typically be set on application startup\n * to a layout which is appropriate for the user's system.\n */\nfunction setKeyboardLayout(layout) {\n    Private.keyboardLayout = layout;\n}\n/**\n * A concrete implementation of [[IKeyboardLayout]] based on keycodes.\n *\n * The `keyCode` property of a `'keydown'` event is a browser and OS\n * specific representation of the physical key (not character) which\n * was pressed on a keyboard. While not the most convenient API, it\n * is currently the only one which works reliably on all browsers.\n *\n * This class accepts a user-defined mapping of keycode to key, which\n * allows for reliable shortcuts tailored to the user's system.\n */\nvar KeycodeLayout = /** @class */ (function () {\n    /**\n     * Construct a new keycode layout.\n     *\n     * @param name - The human readable name for the layout.\n     *\n     * @param codes - A mapping of keycode to key value.\n     */\n    function KeycodeLayout(name, codes) {\n        this.name = name;\n        this._codes = codes;\n        this._keys = KeycodeLayout.extractKeys(codes);\n    }\n    /**\n     * Get an array of the key values supported by the layout.\n     *\n     * @returns A new array of the supported key values.\n     */\n    KeycodeLayout.prototype.keys = function () {\n        return Object.keys(this._keys);\n    };\n    /**\n     * Test whether the given key is a valid value for the layout.\n     *\n     * @param key - The user provided key to test for validity.\n     *\n     * @returns `true` if the key is valid, `false` otherwise.\n     */\n    KeycodeLayout.prototype.isValidKey = function (key) {\n        return key in this._keys;\n    };\n    /**\n     * Get the key for a `'keydown'` event.\n     *\n     * @param event - The event object for a `'keydown'` event.\n     *\n     * @returns The associated key value, or an empty string if\n     *   the event does not represent a valid primary key.\n     */\n    KeycodeLayout.prototype.keyForKeydownEvent = function (event) {\n        return this._codes[event.keyCode] || '';\n    };\n    return KeycodeLayout;\n}());\n/**\n * The namespace for the `KeycodeLayout` class statics.\n */\n(function (KeycodeLayout) {\n    /**\n     * Extract the set of keys from a code map.\n     *\n     * @param code - The code map of interest.\n     *\n     * @returns A set of the keys in the code map.\n     */\n    function extractKeys(codes) {\n        var keys = Object.create(null);\n        for (var c in codes) {\n            keys[codes[c]] = true;\n        }\n        return keys;\n    }\n    KeycodeLayout.extractKeys = extractKeys;\n})(KeycodeLayout || (KeycodeLayout = {}));\n/**\n * A keycode-based keyboard layout for US English keyboards.\n *\n * This layout is valid for the following OS/Browser combinations.\n *\n * - Windows\n *   - Chrome\n *   - Firefox\n *   - IE\n *\n * - OSX\n *   - Chrome\n *   - Firefox\n *   - Safari\n *\n * - Linux\n *   - Chrome\n *   - Firefox\n *\n * Other combinations may also work, but are untested.\n */\nvar EN_US = new KeycodeLayout('en-us', {\n    8: 'Backspace',\n    9: 'Tab',\n    13: 'Enter',\n    19: 'Pause',\n    27: 'Escape',\n    32: 'Space',\n    33: 'PageUp',\n    34: 'PageDown',\n    35: 'End',\n    36: 'Home',\n    37: 'ArrowLeft',\n    38: 'ArrowUp',\n    39: 'ArrowRight',\n    40: 'ArrowDown',\n    45: 'Insert',\n    46: 'Delete',\n    48: '0',\n    49: '1',\n    50: '2',\n    51: '3',\n    52: '4',\n    53: '5',\n    54: '6',\n    55: '7',\n    56: '8',\n    57: '9',\n    59: ';',\n    61: '=',\n    65: 'A',\n    66: 'B',\n    67: 'C',\n    68: 'D',\n    69: 'E',\n    70: 'F',\n    71: 'G',\n    72: 'H',\n    73: 'I',\n    74: 'J',\n    75: 'K',\n    76: 'L',\n    77: 'M',\n    78: 'N',\n    79: 'O',\n    80: 'P',\n    81: 'Q',\n    82: 'R',\n    83: 'S',\n    84: 'T',\n    85: 'U',\n    86: 'V',\n    87: 'W',\n    88: 'X',\n    89: 'Y',\n    90: 'Z',\n    93: 'ContextMenu',\n    96: '0',\n    97: '1',\n    98: '2',\n    99: '3',\n    100: '4',\n    101: '5',\n    102: '6',\n    103: '7',\n    104: '8',\n    105: '9',\n    106: '*',\n    107: '+',\n    109: '-',\n    110: '.',\n    111: '/',\n    112: 'F1',\n    113: 'F2',\n    114: 'F3',\n    115: 'F4',\n    116: 'F5',\n    117: 'F6',\n    118: 'F7',\n    119: 'F8',\n    120: 'F9',\n    121: 'F10',\n    122: 'F11',\n    123: 'F12',\n    173: '-',\n    186: ';',\n    187: '=',\n    188: ',',\n    189: '-',\n    190: '.',\n    191: '/',\n    192: '`',\n    219: '[',\n    220: '\\\\',\n    221: ']',\n    222: '\\''\n});\n/**\n * The namespace for the module implementation details.\n */\nvar Private;\n(function (Private) {\n    /**\n     * The global keyboard layout instance.\n     */\n    Private.keyboardLayout = EN_US;\n})(Private || (Private = {}));\n\n\n//# sourceMappingURL=index.es6.js.map\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@lumino/keyboard/dist/index.es6.js?");

/***/ })

}]);