"use strict";
/*
 * 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__) => {

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 _jupyter_ydoc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyter/ydoc */ \"webpack/sharing/consume/default/@jupyter/ydoc/@jupyter/ydoc\");\n/* harmony import */ var _jupyter_ydoc__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyter_ydoc__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/observables */ \"webpack/sharing/consume/default/@jupyterlab/observables/@jupyterlab/observables\");\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_observables__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 implementation of the editor model.\n     */\n    class Model {\n        /**\n         * Construct a new Model.\n         */\n        constructor(options = {}) {\n            var _a, _b;\n            /**\n             * Whether the model should disposed the shared model on disposal or not.\n             */\n            this.standaloneModel = false;\n            this._isDisposed = false;\n            this._selections = new _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_1__.ObservableMap();\n            this._mimeType = 'text/plain';\n            this._mimeTypeChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal(this);\n            // Track if we need to dispose the model or not.\n            this.standaloneModel = typeof options.sharedModel === 'undefined';\n            this.sharedModel = (_a = options.sharedModel) !== null && _a !== void 0 ? _a : new _jupyter_ydoc__WEBPACK_IMPORTED_MODULE_0__.YFile();\n            this._mimeType = (_b = options.mimeType) !== null && _b !== void 0 ? _b : 'text/plain';\n        }\n        /**\n         * A signal emitted when a mimetype changes.\n         */\n        get mimeTypeChanged() {\n            return this._mimeTypeChanged;\n        }\n        /**\n         * Get the selections for the model.\n         */\n        get selections() {\n            return this._selections;\n        }\n        /**\n         * A mime type of the model.\n         */\n        get mimeType() {\n            return this._mimeType;\n        }\n        set mimeType(newValue) {\n            const oldValue = this.mimeType;\n            if (oldValue === newValue) {\n                return;\n            }\n            this._mimeType = newValue;\n            this._mimeTypeChanged.emit({\n                name: 'mimeType',\n                oldValue: oldValue,\n                newValue: newValue\n            });\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            this._selections.dispose();\n            if (this.standaloneModel) {\n                this.sharedModel.dispose();\n            }\n            _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal.clearData(this);\n        }\n    }\n    CodeEditor.Model = Model;\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__) => {

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 */   \"CodeEditorWrapper\": () => (/* reexport safe */ _widget__WEBPACK_IMPORTED_MODULE_6__.CodeEditorWrapper),\n/* harmony export */   \"CodeViewerWidget\": () => (/* reexport safe */ _viewer__WEBPACK_IMPORTED_MODULE_5__.CodeViewerWidget),\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 */   \"IPositionModel\": () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_4__.IPositionModel),\n/* harmony export */   \"JSONEditor\": () => (/* reexport safe */ _jsoneditor__WEBPACK_IMPORTED_MODULE_1__.JSONEditor),\n/* harmony export */   \"LineCol\": () => (/* reexport safe */ _lineCol__WEBPACK_IMPORTED_MODULE_2__.LineCol)\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 _lineCol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lineCol */ \"../node_modules/@jupyterlab/codeeditor/lib/lineCol.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/* harmony import */ var _viewer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./viewer */ \"../node_modules/@jupyterlab/codeeditor/lib/viewer.js\");\n/* harmony import */ var _widget__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./widget */ \"../node_modules/@jupyterlab/codeeditor/lib/widget.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\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__) => {

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({ mimeType: 'application/json' });\n        model.sharedModel.changed.connect(this._onModelChanged, this);\n        this.model = model;\n        this.editor = options.editorFactory({\n            host: this.editorHostNode,\n            model,\n            config: {\n                readOnly: true\n            }\n        });\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     * Dispose of the editor.\n     */\n    dispose() {\n        var _a;\n        if (this.isDisposed) {\n            return;\n        }\n        (_a = this.source) === null || _a === void 0 ? void 0 : _a.dispose();\n        this.model.dispose();\n        this.editor.dispose();\n        super.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 '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    }\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    _onModelChanged(model, change) {\n        if (change.sourceChange) {\n            let valid = true;\n            try {\n                const value = JSON.parse(this.editor.model.sharedModel.getSource());\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    /**\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.sharedModel.getSource());\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.sharedModel.setSource(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.sharedModel.setSource(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._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/lineCol.js":
/*!*************************************************************!*\
  !*** ../node_modules/@jupyterlab/codeeditor/lib/lineCol.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"LineCol\": () => (/* binding */ LineCol)\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 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// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n/**\n * A component for rendering a \"go-to-line\" form.\n */\nclass LineFormComponent extends (react__WEBPACK_IMPORTED_MODULE_3___default().Component) {\n    /**\n     * Construct a new LineFormComponent.\n     */\n    constructor(props) {\n        super(props);\n        /**\n         * Handle a change to the value in the input field.\n         */\n        this._handleChange = (event) => {\n            this.setState({ value: event.currentTarget.value });\n        };\n        /**\n         * Handle submission of the input field.\n         */\n        this._handleSubmit = (event) => {\n            event.preventDefault();\n            const value = parseInt(this._textInput.value, 10);\n            if (!isNaN(value) &&\n                isFinite(value) &&\n                1 <= value &&\n                value <= this.props.maxLine) {\n                this.props.handleSubmit(value);\n            }\n            return false;\n        };\n        /**\n         * Handle focusing of the input field.\n         */\n        this._handleFocus = () => {\n            this.setState({ hasFocus: true });\n        };\n        /**\n         * Handle blurring of the input field.\n         */\n        this._handleBlur = () => {\n            this.setState({ hasFocus: false });\n        };\n        this._textInput = null;\n        this.translator = props.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n        this._trans = this.translator.load('jupyterlab');\n        this.state = {\n            value: '',\n            hasFocus: false\n        };\n    }\n    /**\n     * Focus the element on mount.\n     */\n    componentDidMount() {\n        this._textInput.focus();\n    }\n    /**\n     * Render the LineFormComponent.\n     */\n    render() {\n        return (react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", { className: \"jp-lineFormSearch\" },\n            react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"form\", { name: \"lineColumnForm\", onSubmit: this._handleSubmit, noValidate: true },\n                react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", { className: (0,_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.classes)('jp-lineFormWrapper', 'lm-lineForm-wrapper', this.state.hasFocus ? 'jp-lineFormWrapperFocusWithin' : undefined) },\n                    react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", { type: \"text\", className: \"jp-lineFormInput\", onChange: this._handleChange, onFocus: this._handleFocus, onBlur: this._handleBlur, value: this.state.value, ref: input => {\n                            this._textInput = input;\n                        } }),\n                    react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", { className: \"jp-baseLineForm jp-lineFormButtonContainer\" },\n                        react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.lineFormIcon.react, { className: \"jp-baseLineForm jp-lineFormButtonIcon\", elementPosition: \"center\" }),\n                        react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", { type: \"submit\", className: \"jp-baseLineForm jp-lineFormButton\", value: \"\" }))),\n                react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"label\", { className: \"jp-lineFormCaption\" }, this._trans.__('Go to line number between 1 and %1', this.props.maxLine)))));\n    }\n}\n/**\n * A pure functional component for rendering a line/column\n * status item.\n */\nfunction LineColComponent(props) {\n    const translator = props.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n    const trans = translator.load('jupyterlab');\n    return (react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_0__.TextItem, { onClick: props.handleClick, source: trans.__('Ln %1, Col %2', props.line, props.column), title: trans.__('Go to line number…') }));\n}\n/**\n * A widget implementing a line/column status item.\n */\nclass LineCol extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.VDomRenderer {\n    /**\n     * Construct a new LineCol status item.\n     */\n    constructor(translator) {\n        super(new LineCol.Model());\n        this._popup = null;\n        this.addClass('jp-mod-highlighted');\n        this.translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n    }\n    /**\n     * Render the status item.\n     */\n    render() {\n        if (this.model === null) {\n            return null;\n        }\n        else {\n            return (react__WEBPACK_IMPORTED_MODULE_3___default().createElement(LineColComponent, { line: this.model.line, column: this.model.column, translator: this.translator, handleClick: () => this._handleClick() }));\n        }\n    }\n    /**\n     * A click handler for the widget.\n     */\n    _handleClick() {\n        if (this._popup) {\n            this._popup.dispose();\n        }\n        const body = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.ReactWidget.create(react__WEBPACK_IMPORTED_MODULE_3___default().createElement(LineFormComponent, { handleSubmit: val => this._handleSubmit(val), currentLine: this.model.line, maxLine: this.model.editor.lineCount, translator: this.translator }));\n        this._popup = (0,_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_0__.showPopup)({\n            body: body,\n            anchor: this,\n            align: 'right'\n        });\n    }\n    /**\n     * Handle submission for the widget.\n     */\n    _handleSubmit(value) {\n        this.model.editor.setCursorPosition({ line: value - 1, column: 0 });\n        this._popup.dispose();\n        this.model.editor.focus();\n    }\n}\n/**\n * A namespace for LineCol statics.\n */\n(function (LineCol) {\n    /**\n     * A VDom model for a status item tracking the line/column of an editor.\n     */\n    class Model extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.VDomModel {\n        constructor() {\n            super(...arguments);\n            /**\n             * React to a change in the cursors of the current editor.\n             */\n            this._onSelectionChanged = () => {\n                const oldState = this._getAllState();\n                const pos = this.editor.getCursorPosition();\n                this._line = pos.line + 1;\n                this._column = pos.column + 1;\n                this._triggerChange(oldState, this._getAllState());\n            };\n            this._line = 1;\n            this._column = 1;\n            this._editor = null;\n        }\n        /**\n         * The current editor of the model.\n         */\n        get editor() {\n            return this._editor;\n        }\n        set editor(editor) {\n            var _a;\n            const oldEditor = this._editor;\n            if ((_a = oldEditor === null || oldEditor === void 0 ? void 0 : oldEditor.model) === null || _a === void 0 ? void 0 : _a.selections) {\n                oldEditor.model.selections.changed.disconnect(this._onSelectionChanged);\n            }\n            const oldState = this._getAllState();\n            this._editor = editor;\n            if (!this._editor) {\n                this._column = 1;\n                this._line = 1;\n            }\n            else {\n                this._editor.model.selections.changed.connect(this._onSelectionChanged);\n                const pos = this._editor.getCursorPosition();\n                this._column = pos.column + 1;\n                this._line = pos.line + 1;\n            }\n            this._triggerChange(oldState, this._getAllState());\n        }\n        /**\n         * The current line of the model.\n         */\n        get line() {\n            return this._line;\n        }\n        /**\n         * The current column of the model.\n         */\n        get column() {\n            return this._column;\n        }\n        _getAllState() {\n            return [this._line, this._column];\n        }\n        _triggerChange(oldState, newState) {\n            if (oldState[0] !== newState[0] || oldState[1] !== newState[1]) {\n                this.stateChanged.emit(void 0);\n            }\n        }\n    }\n    LineCol.Model = Model;\n})(LineCol || (LineCol = {}));\n//# sourceMappingURL=lineCol.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codeeditor/lib/lineCol.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/codeeditor/lib/mimetype.js":
/*!**************************************************************!*\
  !*** ../node_modules/@jupyterlab/codeeditor/lib/mimetype.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

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__) => {

eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"IEditorServices\": () => (/* binding */ IEditorServices),\n/* harmony export */   \"IPositionModel\": () => (/* binding */ IPositionModel)\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 * Code editor services token.\n */\nconst IEditorServices = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/codeeditor:IEditorServices', `A service for the text editor provider\n  for the application. Use this to create new text editors and host them in your\n  UI elements.`);\n/**\n * Code editor cursor position token.\n */\nconst IPositionModel = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/codeeditor:IPositionModel', `A service to handle an code editor cursor position.`);\n//# sourceMappingURL=tokens.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codeeditor/lib/tokens.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/codeeditor/lib/viewer.js":
/*!************************************************************!*\
  !*** ../node_modules/@jupyterlab/codeeditor/lib/viewer.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"CodeViewerWidget\": () => (/* binding */ CodeViewerWidget)\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 _editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./editor */ \"../node_modules/@jupyterlab/codeeditor/lib/editor.js\");\n/* harmony import */ var _widget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./widget */ \"../node_modules/@jupyterlab/codeeditor/lib/widget.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\nclass CodeViewerWidget extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_0__.Widget {\n    /**\n     * Construct a new code viewer widget.\n     */\n    constructor(options) {\n        var _a;\n        super();\n        this.model = options.model;\n        const editorWidget = new _widget__WEBPACK_IMPORTED_MODULE_1__.CodeEditorWrapper({\n            factory: options.factory,\n            model: this.model,\n            editorOptions: {\n                ...options.editorOptions,\n                config: { ...(_a = options.editorOptions) === null || _a === void 0 ? void 0 : _a.config, readOnly: true }\n            }\n        });\n        this.editor = editorWidget.editor;\n        const layout = (this.layout = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_0__.StackedLayout());\n        layout.addWidget(editorWidget);\n    }\n    static createCodeViewer(options) {\n        const { content, mimeType, ...others } = options;\n        const model = new _editor__WEBPACK_IMPORTED_MODULE_2__.CodeEditor.Model({\n            mimeType\n        });\n        model.sharedModel.setSource(content);\n        const widget = new CodeViewerWidget({ ...others, model });\n        widget.disposed.connect(() => {\n            model.dispose();\n        });\n        return widget;\n    }\n    get content() {\n        return this.model.sharedModel.getSource();\n    }\n    get mimeType() {\n        return this.model.mimeType;\n    }\n}\n//# sourceMappingURL=viewer.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/codeeditor/lib/viewer.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/codeeditor/lib/widget.js":
/*!************************************************************!*\
  !*** ../node_modules/@jupyterlab/codeeditor/lib/widget.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

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        const { factory, model, editorOptions } = options;\n        const editor = (this.editor = factory({\n            host: this.node,\n            model,\n            ...editorOptions\n        }));\n        editor.model.selections.changed.connect(this._onSelectionsChanged, this);\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        this.editor.dispose();\n        super.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    }\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     * 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.sharedModel.updateSource(offset, 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?");

/***/ })

}]);