/*
 * 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_jupyterlab_codeeditor_lib_index_js"],{

/***/ "../node_modules/@jupyterlab/codeeditor/lib/editor.js":
/*!************************************************************!*\
  !*** ../node_modules/@jupyterlab/codeeditor/lib/editor.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 */   \"CodeEditor\": () => (/* binding */ CodeEditor)\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_shared_models__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/shared-models */ \"webpack/sharing/consume/default/@jupyterlab/shared-models/@jupyterlab/shared-models\");\n/* harmony import */ var _jupyterlab_shared_models__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_shared_models__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 * A namespace for code editors.\n *\n * #### Notes\n * - A code editor is a set of common assumptions which hold for all concrete editors.\n * - Changes in implementations of the code editor should only be caused by changes in concrete editors.\n * - Common JLab services which are based on the code editor should belong to `IEditorServices`.\n */\nvar CodeEditor;\n(function (CodeEditor) {\n    /**\n     * The default selection style.\n     */\n    CodeEditor.defaultSelectionStyle = {\n        className: '',\n        displayName: '',\n        color: 'black'\n    };\n    /**\n     * The default implementation of the editor model.\n     */\n    class Model {\n        /**\n         * Construct a new Model.\n         */\n        constructor(options) {\n            /**\n             * A mutex to update the shared model.\n             */\n            this._mutex = _jupyterlab_shared_models__WEBPACK_IMPORTED_MODULE_1__.createMutex();\n            this._isDisposed = false;\n            this._mimeTypeChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal(this);\n            this._sharedModelSwitched = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal(this);\n            options = options || {};\n            if (options.modelDB) {\n                this.modelDB = options.modelDB;\n            }\n            else {\n                this.modelDB = new _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__.ModelDB();\n            }\n            this.sharedModel = _jupyterlab_shared_models__WEBPACK_IMPORTED_MODULE_1__.createStandaloneCell(this.type, options.id);\n            this.sharedModel.changed.connect(this._onSharedModelChanged, this);\n            const value = this.modelDB.createString('value');\n            value.changed.connect(this._onModelDBValueChanged, this);\n            value.text = value.text || options.value || '';\n            const mimeType = this.modelDB.createValue('mimeType');\n            mimeType.changed.connect(this._onModelDBMimeTypeChanged, this);\n            mimeType.set(options.mimeType || 'text/plain');\n            this.modelDB.createMap('selections');\n        }\n        /**\n         * When we initialize a cell model, we create a standalone model that cannot be shared in a YNotebook.\n         * Call this function to re-initialize the local representation based on a fresh shared model (e.g. models.YFile or models.YCodeCell).\n         *\n         * @param sharedModel\n         * @param reinitialize Whether to reinitialize the shared model.\n         */\n        switchSharedModel(sharedModel, reinitialize) {\n            if (reinitialize) {\n                // update local modeldb\n                // @todo also change metadata\n                this.value.text = sharedModel.getSource();\n            }\n            this.sharedModel.changed.disconnect(this._onSharedModelChanged, this);\n            // clone model retrieve a shared (not standalone) model\n            this.sharedModel = sharedModel;\n            this.sharedModel.changed.connect(this._onSharedModelChanged, this);\n            this._sharedModelSwitched.emit(true);\n        }\n        /**\n         * We update the modeldb store when the shared model changes.\n         * To ensure that we don't run into infinite loops, we wrap this call in a \"mutex\".\n         * The \"mutex\" ensures that the wrapped code can only be executed by either the sharedModelChanged handler\n         * or the modelDB change handler.\n         */\n        _onSharedModelChanged(sender, change) {\n            this._mutex(() => {\n                if (change.sourceChange) {\n                    const value = this.modelDB.get('value');\n                    let currpos = 0;\n                    change.sourceChange.forEach(delta => {\n                        if (delta.insert != null) {\n                            value.insert(currpos, delta.insert);\n                            currpos += delta.insert.length;\n                        }\n                        else if (delta.delete != null) {\n                            value.remove(currpos, currpos + delta.delete);\n                        }\n                        else if (delta.retain != null) {\n                            currpos += delta.retain;\n                        }\n                    });\n                }\n            });\n        }\n        /**\n         * Handle a change to the modelDB value.\n         */\n        _onModelDBValueChanged(value, event) {\n            this._mutex(() => {\n                this.sharedModel.transact(() => {\n                    switch (event.type) {\n                        case 'insert':\n                            this.sharedModel.updateSource(event.start, event.start, event.value);\n                            break;\n                        case 'remove':\n                            this.sharedModel.updateSource(event.start, event.end);\n                            break;\n                        default:\n                            this.sharedModel.setSource(value.text);\n                            break;\n                    }\n                });\n            });\n        }\n        get type() {\n            return 'code';\n        }\n        /**\n         * A signal emitted when a mimetype changes.\n         */\n        get mimeTypeChanged() {\n            return this._mimeTypeChanged;\n        }\n        /**\n         * A signal emitted when the shared model was switched.\n         */\n        get sharedModelSwitched() {\n            return this._sharedModelSwitched;\n        }\n        /**\n         * Get the value of the model.\n         */\n        get value() {\n            return this.modelDB.get('value');\n        }\n        /**\n         * Get the selections for the model.\n         */\n        get selections() {\n            return this.modelDB.get('selections');\n        }\n        /**\n         * A mime type of the model.\n         */\n        get mimeType() {\n            return this.modelDB.getValue('mimeType');\n        }\n        set mimeType(newValue) {\n            const oldValue = this.mimeType;\n            if (oldValue === newValue) {\n                return;\n            }\n            this.modelDB.setValue('mimeType', newValue);\n        }\n        /**\n         * 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            _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal.clearData(this);\n        }\n        _onModelDBMimeTypeChanged(mimeType, args) {\n            this._mimeTypeChanged.emit({\n                name: 'mimeType',\n                oldValue: args.oldValue,\n                newValue: args.newValue\n            });\n        }\n    }\n    CodeEditor.Model = Model;\n    /**\n     * The default configuration options for an editor.\n     */\n    CodeEditor.defaultConfig = {\n        cursorBlinkRate: 530,\n        fontFamily: null,\n        fontSize: null,\n        lineHeight: null,\n        lineNumbers: false,\n        lineWrap: 'on',\n        wordWrapColumn: 80,\n        readOnly: false,\n        tabSize: 4,\n        insertSpaces: true,\n        matchBrackets: true,\n        autoClosingBrackets: false,\n        handlePaste: true,\n        rulers: [],\n        codeFolding: false\n    };\n})(CodeEditor || (CodeEditor = {}));\n//# sourceMappingURL=editor.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codeeditor/lib/editor.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/codeeditor/lib/index.js":
/*!***********************************************************!*\
  !*** ../node_modules/@jupyterlab/codeeditor/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 */   \"CodeEditor\": () => (/* reexport safe */ _editor__WEBPACK_IMPORTED_MODULE_0__.CodeEditor),\n/* harmony export */   \"JSONEditor\": () => (/* reexport safe */ _jsoneditor__WEBPACK_IMPORTED_MODULE_1__.JSONEditor),\n/* harmony export */   \"CodeEditorWrapper\": () => (/* reexport safe */ _widget__WEBPACK_IMPORTED_MODULE_2__.CodeEditorWrapper),\n/* harmony export */   \"IEditorMimeTypeService\": () => (/* reexport safe */ _mimetype__WEBPACK_IMPORTED_MODULE_3__.IEditorMimeTypeService),\n/* harmony export */   \"IEditorServices\": () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_4__.IEditorServices)\n/* harmony export */ });\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./editor */ \"../node_modules/@jupyterlab/codeeditor/lib/editor.js\");\n/* harmony import */ var _jsoneditor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsoneditor */ \"../node_modules/@jupyterlab/codeeditor/lib/jsoneditor.js\");\n/* harmony import */ var _widget__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./widget */ \"../node_modules/@jupyterlab/codeeditor/lib/widget.js\");\n/* harmony import */ var _mimetype__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mimetype */ \"../node_modules/@jupyterlab/codeeditor/lib/mimetype.js\");\n/* harmony import */ var _tokens__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tokens */ \"../node_modules/@jupyterlab/codeeditor/lib/tokens.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/**\n * @packageDocumentation\n * @module codeeditor\n */\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codeeditor/lib/index.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/codeeditor/lib/jsoneditor.js":
/*!****************************************************************!*\
  !*** ../node_modules/@jupyterlab/codeeditor/lib/jsoneditor.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 */   \"JSONEditor\": () => (/* binding */ JSONEditor)\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_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_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 _editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./editor */ \"../node_modules/@jupyterlab/codeeditor/lib/editor.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 class name added to a JSONEditor instance.\n */\nconst JSONEDITOR_CLASS = 'jp-JSONEditor';\n/**\n * The class name added when the Metadata editor contains invalid JSON.\n */\nconst ERROR_CLASS = 'jp-mod-error';\n/**\n * The class name added to the editor host node.\n */\nconst HOST_CLASS = 'jp-JSONEditor-host';\n/**\n * The class name added to the header area.\n */\nconst HEADER_CLASS = 'jp-JSONEditor-header';\n/**\n * A widget for editing observable JSON.\n */\nclass JSONEditor extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.Widget {\n    /**\n     * Construct a new JSON editor.\n     */\n    constructor(options) {\n        super();\n        this._dataDirty = false;\n        this._inputDirty = false;\n        this._source = null;\n        this._originalValue = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__.JSONExt.emptyObject;\n        this._changeGuard = false;\n        this.translator = options.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n        this._trans = this.translator.load('jupyterlab');\n        this.addClass(JSONEDITOR_CLASS);\n        this.headerNode = document.createElement('div');\n        this.headerNode.className = HEADER_CLASS;\n        this.revertButtonNode = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.undoIcon.element({\n            tag: 'span',\n            title: this._trans.__('Revert changes to data')\n        });\n        this.commitButtonNode = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.checkIcon.element({\n            tag: 'span',\n            title: this._trans.__('Commit changes to data'),\n            marginLeft: '8px'\n        });\n        this.editorHostNode = document.createElement('div');\n        this.editorHostNode.className = HOST_CLASS;\n        this.headerNode.appendChild(this.revertButtonNode);\n        this.headerNode.appendChild(this.commitButtonNode);\n        this.node.appendChild(this.headerNode);\n        this.node.appendChild(this.editorHostNode);\n        const model = new _editor__WEBPACK_IMPORTED_MODULE_4__.CodeEditor.Model();\n        model.value.text = this._trans.__('No data!');\n        model.mimeType = 'application/json';\n        model.value.changed.connect(this._onValueChanged, this);\n        this.model = model;\n        this.editor = options.editorFactory({ host: this.editorHostNode, model });\n        this.editor.setOption('readOnly', true);\n    }\n    /**\n     * The observable source.\n     */\n    get source() {\n        return this._source;\n    }\n    set source(value) {\n        if (this._source === value) {\n            return;\n        }\n        if (this._source) {\n            this._source.changed.disconnect(this._onSourceChanged, this);\n        }\n        this._source = value;\n        this.editor.setOption('readOnly', value === null);\n        if (value) {\n            value.changed.connect(this._onSourceChanged, this);\n        }\n        this._setValue();\n    }\n    /**\n     * Get whether the editor is dirty.\n     */\n    get isDirty() {\n        return this._dataDirty || this._inputDirty;\n    }\n    /**\n     * Handle the DOM events for the widget.\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 notebook panel's node. It should\n     * not be called directly by user code.\n     */\n    handleEvent(event) {\n        switch (event.type) {\n            case 'blur':\n                this._evtBlur(event);\n                break;\n            case 'click':\n                this._evtClick(event);\n                break;\n            default:\n                break;\n        }\n    }\n    /**\n     * Handle `after-attach` messages for the widget.\n     */\n    onAfterAttach(msg) {\n        const node = this.editorHostNode;\n        node.addEventListener('blur', this, true);\n        node.addEventListener('click', this, true);\n        this.revertButtonNode.hidden = true;\n        this.commitButtonNode.hidden = true;\n        this.headerNode.addEventListener('click', this);\n        if (this.isVisible) {\n            this.update();\n        }\n    }\n    /**\n     * Handle `after-show` messages for the widget.\n     */\n    onAfterShow(msg) {\n        this.update();\n    }\n    /**\n     * Handle `update-request` messages for the widget.\n     */\n    onUpdateRequest(msg) {\n        this.editor.refresh();\n    }\n    /**\n     * Handle `before-detach` messages for the widget.\n     */\n    onBeforeDetach(msg) {\n        const node = this.editorHostNode;\n        node.removeEventListener('blur', this, true);\n        node.removeEventListener('click', this, true);\n        this.headerNode.removeEventListener('click', this);\n    }\n    /**\n     * Handle a change to the metadata of the source.\n     */\n    _onSourceChanged(sender, args) {\n        if (this._changeGuard) {\n            return;\n        }\n        if (this._inputDirty || this.editor.hasFocus()) {\n            this._dataDirty = true;\n            return;\n        }\n        this._setValue();\n    }\n    /**\n     * Handle change events.\n     */\n    _onValueChanged() {\n        let valid = true;\n        try {\n            const value = JSON.parse(this.editor.model.value.text);\n            this.removeClass(ERROR_CLASS);\n            this._inputDirty =\n                !this._changeGuard && !_lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__.JSONExt.deepEqual(value, this._originalValue);\n        }\n        catch (err) {\n            this.addClass(ERROR_CLASS);\n            this._inputDirty = true;\n            valid = false;\n        }\n        this.revertButtonNode.hidden = !this._inputDirty;\n        this.commitButtonNode.hidden = !valid || !this._inputDirty;\n    }\n    /**\n     * Handle blur events for the text area.\n     */\n    _evtBlur(event) {\n        // Update the metadata if necessary.\n        if (!this._inputDirty && this._dataDirty) {\n            this._setValue();\n        }\n    }\n    /**\n     * Handle click events for the buttons.\n     */\n    _evtClick(event) {\n        const target = event.target;\n        if (this.revertButtonNode.contains(target)) {\n            this._setValue();\n        }\n        else if (this.commitButtonNode.contains(target)) {\n            if (!this.commitButtonNode.hidden && !this.hasClass(ERROR_CLASS)) {\n                this._changeGuard = true;\n                this._mergeContent();\n                this._changeGuard = false;\n                this._setValue();\n            }\n        }\n        else if (this.editorHostNode.contains(target)) {\n            this.editor.focus();\n        }\n    }\n    /**\n     * Merge the user content.\n     */\n    _mergeContent() {\n        const model = this.editor.model;\n        const old = this._originalValue;\n        const user = JSON.parse(model.value.text);\n        const source = this.source;\n        if (!source) {\n            return;\n        }\n        // If it is in user and has changed from old, set in new.\n        for (const key in user) {\n            if (!_lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__.JSONExt.deepEqual(user[key], old[key] || null)) {\n                source.set(key, user[key]);\n            }\n        }\n        // If it was in old and is not in user, remove from source.\n        for (const key in old) {\n            if (!(key in user)) {\n                source.delete(key);\n            }\n        }\n    }\n    /**\n     * Set the value given the owner contents.\n     */\n    _setValue() {\n        this._dataDirty = false;\n        this._inputDirty = false;\n        this.revertButtonNode.hidden = true;\n        this.commitButtonNode.hidden = true;\n        this.removeClass(ERROR_CLASS);\n        const model = this.editor.model;\n        const content = this._source ? this._source.toJSON() : {};\n        this._changeGuard = true;\n        if (content === void 0) {\n            model.value.text = this._trans.__('No data!');\n            this._originalValue = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__.JSONExt.emptyObject;\n        }\n        else {\n            const value = JSON.stringify(content, null, 4);\n            model.value.text = value;\n            this._originalValue = content;\n            // Move the cursor to within the brace.\n            if (value.length > 1 && value[0] === '{') {\n                this.editor.setCursorPosition({ line: 0, column: 1 });\n            }\n        }\n        this.editor.refresh();\n        this._changeGuard = false;\n        this.commitButtonNode.hidden = true;\n        this.revertButtonNode.hidden = true;\n    }\n}\n//# sourceMappingURL=jsoneditor.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codeeditor/lib/jsoneditor.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/codeeditor/lib/mimetype.js":
/*!**************************************************************!*\
  !*** ../node_modules/@jupyterlab/codeeditor/lib/mimetype.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 */   \"IEditorMimeTypeService\": () => (/* binding */ IEditorMimeTypeService)\n/* harmony export */ });\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/**\n * A namespace for `IEditorMimeTypeService`.\n */\nvar IEditorMimeTypeService;\n(function (IEditorMimeTypeService) {\n    /**\n     * The default mime type.\n     */\n    IEditorMimeTypeService.defaultMimeType = 'text/plain';\n})(IEditorMimeTypeService || (IEditorMimeTypeService = {}));\n//# sourceMappingURL=mimetype.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codeeditor/lib/mimetype.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/codeeditor/lib/tokens.js":
/*!************************************************************!*\
  !*** ../node_modules/@jupyterlab/codeeditor/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 */   \"IEditorServices\": () => (/* binding */ IEditorServices)\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/* tslint:disable */\n/**\n * Code editor services token.\n */\nconst IEditorServices = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/codeeditor:IEditorServices');\n//# sourceMappingURL=tokens.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codeeditor/lib/tokens.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/codeeditor/lib/widget.js":
/*!************************************************************!*\
  !*** ../node_modules/@jupyterlab/codeeditor/lib/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 */   \"CodeEditorWrapper\": () => (/* binding */ CodeEditorWrapper)\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// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * The class name added to an editor widget that has a primary selection.\n */\nconst HAS_SELECTION_CLASS = 'jp-mod-has-primary-selection';\n/**\n * The class name added to an editor widget that has a cursor/selection\n * within the whitespace at the beginning of a line\n */\nconst HAS_IN_LEADING_WHITESPACE_CLASS = 'jp-mod-in-leading-whitespace';\n/**\n * A class used to indicate a drop target.\n */\nconst DROP_TARGET_CLASS = 'jp-mod-dropTarget';\n/**\n * RegExp to test for leading whitespace\n */\nconst leadingWhitespaceRe = /^\\s+$/;\n/**\n * A widget which hosts a code editor.\n */\nclass CodeEditorWrapper extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_0__.Widget {\n    /**\n     * Construct a new code editor widget.\n     */\n    constructor(options) {\n        super();\n        this._hasRefreshedSinceAttach = false;\n        const editor = (this.editor = options.factory({\n            host: this.node,\n            model: options.model,\n            uuid: options.uuid,\n            config: options.config,\n            selectionStyle: options.selectionStyle\n        }));\n        editor.model.selections.changed.connect(this._onSelectionsChanged, this);\n        this._updateOnShow = options.updateOnShow !== false;\n    }\n    /**\n     * Get the model used by the widget.\n     */\n    get model() {\n        return this.editor.model;\n    }\n    /**\n     * Dispose of the resources held by the widget.\n     */\n    dispose() {\n        if (this.isDisposed) {\n            return;\n        }\n        super.dispose();\n        this.editor.dispose();\n    }\n    /**\n     * Handle the DOM events for the widget.\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 notebook panel's node. It should\n     * not be called directly by user code.\n     */\n    handleEvent(event) {\n        switch (event.type) {\n            case 'lm-dragenter':\n                this._evtDragEnter(event);\n                break;\n            case 'lm-dragleave':\n                this._evtDragLeave(event);\n                break;\n            case 'lm-dragover':\n                this._evtDragOver(event);\n                break;\n            case 'lm-drop':\n                this._evtDrop(event);\n                break;\n            default:\n                break;\n        }\n    }\n    /**\n     * Handle `'activate-request'` messages.\n     */\n    onActivateRequest(msg) {\n        this.editor.focus();\n    }\n    /**\n     * A message handler invoked on an `'after-attach'` message.\n     */\n    onAfterAttach(msg) {\n        super.onAfterAttach(msg);\n        const node = this.node;\n        node.addEventListener('lm-dragenter', this);\n        node.addEventListener('lm-dragleave', this);\n        node.addEventListener('lm-dragover', this);\n        node.addEventListener('lm-drop', this);\n        // We have to refresh at least once after attaching,\n        // while visible.\n        this._hasRefreshedSinceAttach = false;\n        if (this.isVisible) {\n            this.update();\n        }\n    }\n    /**\n     * Handle `before-detach` messages for the widget.\n     */\n    onBeforeDetach(msg) {\n        const node = this.node;\n        node.removeEventListener('lm-dragenter', this);\n        node.removeEventListener('lm-dragleave', this);\n        node.removeEventListener('lm-dragover', this);\n        node.removeEventListener('lm-drop', this);\n    }\n    /**\n     * A message handler invoked on an `'after-show'` message.\n     */\n    onAfterShow(msg) {\n        if (this._updateOnShow || !this._hasRefreshedSinceAttach) {\n            this.update();\n        }\n    }\n    /**\n     * A message handler invoked on a `'resize'` message.\n     */\n    onResize(msg) {\n        if (msg.width >= 0 && msg.height >= 0) {\n            this.editor.setSize(msg);\n        }\n        else if (this.isVisible) {\n            this.editor.resizeToFit();\n        }\n    }\n    /**\n     * A message handler invoked on an `'update-request'` message.\n     */\n    onUpdateRequest(msg) {\n        if (this.isVisible) {\n            this._hasRefreshedSinceAttach = true;\n            this.editor.refresh();\n        }\n    }\n    /**\n     * Handle a change in model selections.\n     */\n    _onSelectionsChanged() {\n        const { start, end } = this.editor.getSelection();\n        if (start.column !== end.column || start.line !== end.line) {\n            // a selection was made\n            this.addClass(HAS_SELECTION_CLASS);\n            this.removeClass(HAS_IN_LEADING_WHITESPACE_CLASS);\n        }\n        else {\n            // the cursor was placed\n            this.removeClass(HAS_SELECTION_CLASS);\n            if (this.editor\n                .getLine(end.line)\n                .slice(0, end.column)\n                .match(leadingWhitespaceRe)) {\n                this.addClass(HAS_IN_LEADING_WHITESPACE_CLASS);\n            }\n            else {\n                this.removeClass(HAS_IN_LEADING_WHITESPACE_CLASS);\n            }\n        }\n    }\n    /**\n     * Handle the `'lm-dragenter'` event for the widget.\n     */\n    _evtDragEnter(event) {\n        if (this.editor.getOption('readOnly') === true) {\n            return;\n        }\n        const data = Private.findTextData(event.mimeData);\n        if (data === undefined) {\n            return;\n        }\n        event.preventDefault();\n        event.stopPropagation();\n        this.addClass('jp-mod-dropTarget');\n    }\n    /**\n     * Handle the `'lm-dragleave'` event for the widget.\n     */\n    _evtDragLeave(event) {\n        this.removeClass(DROP_TARGET_CLASS);\n        if (this.editor.getOption('readOnly') === true) {\n            return;\n        }\n        const data = Private.findTextData(event.mimeData);\n        if (data === undefined) {\n            return;\n        }\n        event.preventDefault();\n        event.stopPropagation();\n    }\n    /**\n     * Handle the `'lm-dragover'` event for the widget.\n     */\n    _evtDragOver(event) {\n        this.removeClass(DROP_TARGET_CLASS);\n        if (this.editor.getOption('readOnly') === true) {\n            return;\n        }\n        const data = Private.findTextData(event.mimeData);\n        if (data === undefined) {\n            return;\n        }\n        event.preventDefault();\n        event.stopPropagation();\n        event.dropAction = 'copy';\n        this.addClass(DROP_TARGET_CLASS);\n    }\n    /**\n     * Handle the `'lm-drop'` event for the widget.\n     */\n    _evtDrop(event) {\n        if (this.editor.getOption('readOnly') === true) {\n            return;\n        }\n        const data = Private.findTextData(event.mimeData);\n        if (data === undefined) {\n            return;\n        }\n        const coordinate = {\n            top: event.y,\n            bottom: event.y,\n            left: event.x,\n            right: event.x,\n            x: event.x,\n            y: event.y,\n            width: 0,\n            height: 0\n        };\n        const position = this.editor.getPositionForCoordinate(coordinate);\n        if (position === null) {\n            return;\n        }\n        this.removeClass(DROP_TARGET_CLASS);\n        event.preventDefault();\n        event.stopPropagation();\n        if (event.proposedAction === 'none') {\n            event.dropAction = 'none';\n            return;\n        }\n        const offset = this.editor.getOffsetAt(position);\n        this.model.value.insert(offset, data);\n    }\n}\n/**\n * A namespace for private functionality.\n */\nvar Private;\n(function (Private) {\n    /**\n     * Given a MimeData instance, extract the first text data, if any.\n     */\n    function findTextData(mime) {\n        const types = mime.types();\n        const textType = types.find(t => t.indexOf('text') === 0);\n        if (textType === undefined) {\n            return undefined;\n        }\n        return mime.getData(textType);\n    }\n    Private.findTextData = findTextData;\n})(Private || (Private = {}));\n//# sourceMappingURL=widget.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codeeditor/lib/widget.js?");

/***/ })

}]);