"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_observables_lib_index_js"],{

/***/ "../node_modules/@jupyterlab/observables/lib/index.js":
/*!************************************************************!*\
  !*** ../node_modules/@jupyterlab/observables/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 */   ModelDB: () => (/* reexport safe */ _modeldb__WEBPACK_IMPORTED_MODULE_0__.ModelDB),\n/* harmony export */   ObservableJSON: () => (/* reexport safe */ _observablejson__WEBPACK_IMPORTED_MODULE_1__.ObservableJSON),\n/* harmony export */   ObservableList: () => (/* reexport safe */ _observablelist__WEBPACK_IMPORTED_MODULE_2__.ObservableList),\n/* harmony export */   ObservableMap: () => (/* reexport safe */ _observablemap__WEBPACK_IMPORTED_MODULE_3__.ObservableMap),\n/* harmony export */   ObservableString: () => (/* reexport safe */ _observablestring__WEBPACK_IMPORTED_MODULE_4__.ObservableString),\n/* harmony export */   ObservableUndoableList: () => (/* reexport safe */ _undoablelist__WEBPACK_IMPORTED_MODULE_5__.ObservableUndoableList),\n/* harmony export */   ObservableValue: () => (/* reexport safe */ _modeldb__WEBPACK_IMPORTED_MODULE_0__.ObservableValue)\n/* harmony export */ });\n/* harmony import */ var _modeldb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modeldb */ \"../node_modules/@jupyterlab/observables/lib/modeldb.js\");\n/* harmony import */ var _observablejson__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./observablejson */ \"../node_modules/@jupyterlab/observables/lib/observablejson.js\");\n/* harmony import */ var _observablelist__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./observablelist */ \"../node_modules/@jupyterlab/observables/lib/observablelist.js\");\n/* harmony import */ var _observablemap__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./observablemap */ \"../node_modules/@jupyterlab/observables/lib/observablemap.js\");\n/* harmony import */ var _observablestring__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./observablestring */ \"../node_modules/@jupyterlab/observables/lib/observablestring.js\");\n/* harmony import */ var _undoablelist__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./undoablelist */ \"../node_modules/@jupyterlab/observables/lib/undoablelist.js\");\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n/**\n * @packageDocumentation\n * @module observables\n */\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/observables/lib/index.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/observables/lib/modeldb.js":
/*!**************************************************************!*\
  !*** ../node_modules/@jupyterlab/observables/lib/modeldb.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 */   ModelDB: () => (/* binding */ ModelDB),\n/* harmony export */   ObservableValue: () => (/* binding */ ObservableValue)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/disposable */ \"webpack/sharing/consume/default/@lumino/disposable/@lumino/disposable\");\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_disposable__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/* harmony import */ var _observablejson__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./observablejson */ \"../node_modules/@jupyterlab/observables/lib/observablejson.js\");\n/* harmony import */ var _observablemap__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./observablemap */ \"../node_modules/@jupyterlab/observables/lib/observablemap.js\");\n/* harmony import */ var _observablestring__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./observablestring */ \"../node_modules/@jupyterlab/observables/lib/observablestring.js\");\n/* harmony import */ var _undoablelist__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./undoablelist */ \"../node_modules/@jupyterlab/observables/lib/undoablelist.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n\n/**\n * A concrete implementation of an `IObservableValue`.\n */\nclass ObservableValue {\n    /**\n     * Constructor for the value.\n     *\n     * @param initialValue the starting value for the `ObservableValue`.\n     */\n    constructor(initialValue = null) {\n        this._value = null;\n        this._changed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal(this);\n        this._isDisposed = false;\n        this._value = initialValue;\n    }\n    /**\n     * The observable type.\n     */\n    get type() {\n        return 'Value';\n    }\n    /**\n     * Whether the value has been disposed.\n     */\n    get isDisposed() {\n        return this._isDisposed;\n    }\n    /**\n     * The changed signal.\n     */\n    get changed() {\n        return this._changed;\n    }\n    /**\n     * Get the current value, or `undefined` if it has not been set.\n     */\n    get() {\n        return this._value;\n    }\n    /**\n     * Set the current value.\n     */\n    set(value) {\n        const oldValue = this._value;\n        if (_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.JSONExt.deepEqual(oldValue, value)) {\n            return;\n        }\n        this._value = value;\n        this._changed.emit({\n            oldValue: oldValue,\n            newValue: value\n        });\n    }\n    /**\n     * Dispose of the resources held by the value.\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        this._value = null;\n    }\n}\n/**\n * The namespace for the `ObservableValue` class statics.\n */\n(function (ObservableValue) {\n    /**\n     * The changed args object emitted by the `IObservableValue`.\n     */\n    class IChangedArgs {\n    }\n    ObservableValue.IChangedArgs = IChangedArgs;\n})(ObservableValue || (ObservableValue = {}));\n/**\n * A concrete implementation of an `IModelDB`.\n */\nclass ModelDB {\n    /**\n     * Constructor for the `ModelDB`.\n     */\n    constructor(options = {}) {\n        /**\n         * Whether the model has been populated with\n         * any model values.\n         */\n        this.isPrepopulated = false;\n        /**\n         * Whether the model is collaborative.\n         */\n        this.isCollaborative = false;\n        /**\n         * A promise resolved when the model is connected\n         * to its backend. For the in-memory ModelDB it\n         * is immediately resolved.\n         */\n        this.connected = Promise.resolve(void 0);\n        this._toDispose = false;\n        this._isDisposed = false;\n        this._disposables = new _lumino_disposable__WEBPACK_IMPORTED_MODULE_1__.DisposableSet();\n        this._basePath = options.basePath || '';\n        if (options.baseDB) {\n            this._db = options.baseDB;\n        }\n        else {\n            this._db = new _observablemap__WEBPACK_IMPORTED_MODULE_3__.ObservableMap();\n            this._toDispose = true;\n        }\n    }\n    /**\n     * The base path for the `ModelDB`. This is prepended\n     * to all the paths that are passed in to the member\n     * functions of the object.\n     */\n    get basePath() {\n        return this._basePath;\n    }\n    /**\n     * Whether the database is disposed.\n     */\n    get isDisposed() {\n        return this._isDisposed;\n    }\n    /**\n     * Get a value for a path.\n     *\n     * @param path the path for the object.\n     *\n     * @returns an `IObservable`.\n     */\n    get(path) {\n        return this._db.get(this._resolvePath(path));\n    }\n    /**\n     * Whether the `IModelDB` has an object at this path.\n     *\n     * @param path the path for the object.\n     *\n     * @returns a boolean for whether an object is at `path`.\n     */\n    has(path) {\n        return this._db.has(this._resolvePath(path));\n    }\n    /**\n     * Create a string and insert it in the database.\n     *\n     * @param path the path for the string.\n     *\n     * @returns the string that was created.\n     */\n    createString(path) {\n        const str = new _observablestring__WEBPACK_IMPORTED_MODULE_4__.ObservableString();\n        this._disposables.add(str);\n        this.set(path, str);\n        return str;\n    }\n    /**\n     * Create an undoable list and insert it in the database.\n     *\n     * @param path the path for the list.\n     *\n     * @returns the list that was created.\n     *\n     * #### Notes\n     * The list can only store objects that are simple\n     * JSON Objects and primitives.\n     */\n    createList(path) {\n        const vec = new _undoablelist__WEBPACK_IMPORTED_MODULE_5__.ObservableUndoableList(new _undoablelist__WEBPACK_IMPORTED_MODULE_5__.ObservableUndoableList.IdentitySerializer());\n        this._disposables.add(vec);\n        this.set(path, vec);\n        return vec;\n    }\n    /**\n     * Create a map and insert it in the database.\n     *\n     * @param path the path for the map.\n     *\n     * @returns the map that was created.\n     *\n     * #### Notes\n     * The map can only store objects that are simple\n     * JSON Objects and primitives.\n     */\n    createMap(path) {\n        const map = new _observablejson__WEBPACK_IMPORTED_MODULE_6__.ObservableJSON();\n        this._disposables.add(map);\n        this.set(path, map);\n        return map;\n    }\n    /**\n     * Create an opaque value and insert it in the database.\n     *\n     * @param path the path for the value.\n     *\n     * @returns the value that was created.\n     */\n    createValue(path) {\n        const val = new ObservableValue();\n        this._disposables.add(val);\n        this.set(path, val);\n        return val;\n    }\n    /**\n     * Get a value at a path, or `undefined if it has not been set\n     * That value must already have been created using `createValue`.\n     *\n     * @param path the path for the value.\n     */\n    getValue(path) {\n        const val = this.get(path);\n        if (!val || val.type !== 'Value') {\n            throw Error('Can only call getValue for an ObservableValue');\n        }\n        return val.get();\n    }\n    /**\n     * Set a value at a path. That value must already have\n     * been created using `createValue`.\n     *\n     * @param path the path for the value.\n     *\n     * @param value the new value.\n     */\n    setValue(path, value) {\n        const val = this.get(path);\n        if (!val || val.type !== 'Value') {\n            throw Error('Can only call setValue on an ObservableValue');\n        }\n        val.set(value);\n    }\n    /**\n     * Create a view onto a subtree of the model database.\n     *\n     * @param basePath the path for the root of the subtree.\n     *\n     * @returns an `IModelDB` with a view onto the original\n     *   `IModelDB`, with `basePath` prepended to all paths.\n     */\n    view(basePath) {\n        const view = new ModelDB({ basePath, baseDB: this });\n        this._disposables.add(view);\n        return view;\n    }\n    /**\n     * Set a value at a path. Not intended to\n     * be called by user code, instead use the\n     * `create*` factory methods.\n     *\n     * @param path the path to set the value at.\n     *\n     * @param value the value to set at the path.\n     */\n    set(path, value) {\n        this._db.set(this._resolvePath(path), value);\n    }\n    /**\n     * Dispose of the resources held by the database.\n     */\n    dispose() {\n        if (this.isDisposed) {\n            return;\n        }\n        this._isDisposed = true;\n        if (this._toDispose) {\n            this._db.dispose();\n        }\n        this._disposables.dispose();\n    }\n    /**\n     * Compute the fully resolved path for a path argument.\n     */\n    _resolvePath(path) {\n        if (this._basePath) {\n            path = this._basePath + '.' + path;\n        }\n        return path;\n    }\n}\n//# sourceMappingURL=modeldb.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/observables/lib/modeldb.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/observables/lib/observablejson.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@jupyterlab/observables/lib/observablejson.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 */   ObservableJSON: () => (/* binding */ ObservableJSON)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/messaging */ \"webpack/sharing/consume/default/@lumino/messaging/@lumino/messaging\");\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_messaging__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _observablemap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./observablemap */ \"../node_modules/@jupyterlab/observables/lib/observablemap.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n/**\n * A concrete Observable map for JSON data.\n */\nclass ObservableJSON extends _observablemap__WEBPACK_IMPORTED_MODULE_2__.ObservableMap {\n    /**\n     * Construct a new observable JSON object.\n     */\n    constructor(options = {}) {\n        super({\n            itemCmp: _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.JSONExt.deepEqual,\n            values: options.values\n        });\n    }\n    /**\n     * Serialize the model to JSON.\n     */\n    toJSON() {\n        const out = Object.create(null);\n        const keys = this.keys();\n        for (const key of keys) {\n            const value = this.get(key);\n            if (value !== undefined) {\n                out[key] = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.JSONExt.deepCopy(value);\n            }\n        }\n        return out;\n    }\n}\n/**\n * The namespace for ObservableJSON static data.\n */\n(function (ObservableJSON) {\n    /**\n     * An observable JSON change message.\n     */\n    class ChangeMessage extends _lumino_messaging__WEBPACK_IMPORTED_MODULE_1__.Message {\n        /**\n         * Create a new metadata changed message.\n         */\n        constructor(type, args) {\n            super(type);\n            this.args = args;\n        }\n    }\n    ObservableJSON.ChangeMessage = ChangeMessage;\n})(ObservableJSON || (ObservableJSON = {}));\n//# sourceMappingURL=observablejson.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/observables/lib/observablejson.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/observables/lib/observablelist.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@jupyterlab/observables/lib/observablelist.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 */   ObservableList: () => (/* binding */ ObservableList)\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_signaling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_1__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n/**\n * A concrete implementation of [[IObservableList]].\n */\nclass ObservableList {\n    /**\n     * Construct a new observable map.\n     */\n    constructor(options = {}) {\n        this._array = [];\n        this._isDisposed = false;\n        this._changed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal(this);\n        if (options.values) {\n            for (const value of options.values) {\n                this._array.push(value);\n            }\n        }\n        this._itemCmp = options.itemCmp || Private.itemCmp;\n    }\n    /**\n     * The type of this object.\n     */\n    get type() {\n        return 'List';\n    }\n    /**\n     * A signal emitted when the list has changed.\n     */\n    get changed() {\n        return this._changed;\n    }\n    /**\n     * The length of the list.\n     */\n    get length() {\n        return this._array.length;\n    }\n    /**\n     * Test whether the list has been disposed.\n     */\n    get isDisposed() {\n        return this._isDisposed;\n    }\n    /**\n     * Dispose of the resources held by the list.\n     */\n    dispose() {\n        if (this._isDisposed) {\n            return;\n        }\n        this._isDisposed = true;\n        _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal.clearData(this);\n        this.clear();\n    }\n    /**\n     * Create an iterator over the values in the list.\n     *\n     * @returns A new iterator starting at the front of the list.\n     *\n     * #### Complexity\n     * Constant.\n     *\n     * #### Iterator Validity\n     * No changes.\n     */\n    [Symbol.iterator]() {\n        return this._array[Symbol.iterator]();\n    }\n    /**\n     * Get the value at the specified index.\n     *\n     * @param index - The positive integer index of interest.\n     *\n     * @returns The value at the specified index.\n     *\n     * #### Undefined Behavior\n     * An `index` which is non-integral or out of range.\n     */\n    get(index) {\n        return this._array[index];\n    }\n    /**\n     * Set the value at the specified index.\n     *\n     * @param index - The positive integer index of interest.\n     *\n     * @param value - The value to set at the specified index.\n     *\n     * #### Complexity\n     * Constant.\n     *\n     * #### Iterator Validity\n     * No changes.\n     *\n     * #### Undefined Behavior\n     * An `index` which is non-integral or out of range.\n     */\n    set(index, value) {\n        const oldValue = this._array[index];\n        if (value === undefined) {\n            throw new Error('Cannot set an undefined item');\n        }\n        // Bail if the value does not change.\n        const itemCmp = this._itemCmp;\n        if (itemCmp(oldValue, value)) {\n            return;\n        }\n        this._array[index] = value;\n        this._changed.emit({\n            type: 'set',\n            oldIndex: index,\n            newIndex: index,\n            oldValues: [oldValue],\n            newValues: [value]\n        });\n    }\n    /**\n     * Add a value to the end of the list.\n     *\n     * @param value - The value to add to the end of the list.\n     *\n     * @returns The new length of the list.\n     *\n     * #### Complexity\n     * Constant.\n     *\n     * #### Notes\n     * By convention, the oldIndex is set to -1 to indicate\n     * an push operation.\n     *\n     * #### Iterator Validity\n     * No changes.\n     */\n    push(value) {\n        const num = this._array.push(value);\n        this._changed.emit({\n            type: 'add',\n            oldIndex: -1,\n            newIndex: this.length - 1,\n            oldValues: [],\n            newValues: [value]\n        });\n        return num;\n    }\n    /**\n     * Insert a value into the list at a specific index.\n     *\n     * @param index - The index at which to insert the value.\n     *\n     * @param value - The value to set at the specified index.\n     *\n     * #### Complexity\n     * Linear.\n     *\n     * #### Iterator Validity\n     * No changes.\n     *\n     * #### Notes\n     * The `index` will be clamped to the bounds of the list.\n     *\n     * By convention, the oldIndex is set to -2 to indicate\n     * an insert operation.\n     *\n     * The value -2 as oldIndex can be used to distinguish from the push\n     * method which will use a value -1.\n     *\n     * #### Undefined Behavior\n     * An `index` which is non-integral.\n     */\n    insert(index, value) {\n        if (index === this._array.length) {\n            this._array.push(value);\n        }\n        else {\n            _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__.ArrayExt.insert(this._array, index, value);\n        }\n        this._changed.emit({\n            type: 'add',\n            oldIndex: -2,\n            newIndex: index,\n            oldValues: [],\n            newValues: [value]\n        });\n    }\n    /**\n     * Remove the first occurrence of a value from the list.\n     *\n     * @param value - The value of interest.\n     *\n     * @returns The index of the removed value, or `-1` if the value\n     *   is not contained in the list.\n     *\n     * #### Complexity\n     * Linear.\n     *\n     * #### Iterator Validity\n     * Iterators pointing at the removed value and beyond are invalidated.\n     */\n    removeValue(value) {\n        const itemCmp = this._itemCmp;\n        const index = _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__.ArrayExt.findFirstIndex(this._array, item => {\n            return itemCmp(item, value);\n        });\n        this.remove(index);\n        return index;\n    }\n    /**\n     * Remove and return the value at a specific index.\n     *\n     * @param index - The index of the value of interest.\n     *\n     * @returns The value at the specified index, or `undefined` if the\n     *   index is out of range.\n     *\n     * #### Complexity\n     * Constant.\n     *\n     * #### Iterator Validity\n     * Iterators pointing at the removed value and beyond are invalidated.\n     *\n     * #### Undefined Behavior\n     * An `index` which is non-integral.\n     */\n    remove(index) {\n        const value = _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__.ArrayExt.removeAt(this._array, index);\n        if (value === undefined) {\n            return;\n        }\n        this._changed.emit({\n            type: 'remove',\n            oldIndex: index,\n            newIndex: -1,\n            newValues: [],\n            oldValues: [value]\n        });\n        return value;\n    }\n    /**\n     * Remove all values from the list.\n     *\n     * #### Complexity\n     * Linear.\n     *\n     * #### Iterator Validity\n     * All current iterators are invalidated.\n     */\n    clear() {\n        const copy = this._array.slice();\n        this._array.length = 0;\n        this._changed.emit({\n            type: 'remove',\n            oldIndex: 0,\n            newIndex: 0,\n            newValues: [],\n            oldValues: copy\n        });\n    }\n    /**\n     * Move a value from one index to another.\n     *\n     * @param fromIndex - The index of the element to move.\n     *\n     * @param toIndex - The index to move the element to.\n     *\n     * #### Complexity\n     * Constant.\n     *\n     * #### Iterator Validity\n     * Iterators pointing at the lesser of the `fromIndex` and the `toIndex`\n     * and beyond are invalidated.\n     *\n     * #### Undefined Behavior\n     * A `fromIndex` or a `toIndex` which is non-integral.\n     */\n    move(fromIndex, toIndex) {\n        if (this.length <= 1 || fromIndex === toIndex) {\n            return;\n        }\n        const values = [this._array[fromIndex]];\n        _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__.ArrayExt.move(this._array, fromIndex, toIndex);\n        this._changed.emit({\n            type: 'move',\n            oldIndex: fromIndex,\n            newIndex: toIndex,\n            oldValues: values,\n            newValues: values\n        });\n    }\n    /**\n     * Push a set of values to the back of the list.\n     *\n     * @param values - An iterable set of values to add.\n     *\n     * @returns The new length of the list.\n     *\n     * #### Complexity\n     * Linear.\n     *\n     * #### Notes\n     * By convention, the oldIndex is set to -1 to indicate\n     * an push operation.\n     *\n     * #### Iterator Validity\n     * No changes.\n     */\n    pushAll(values) {\n        const newIndex = this.length;\n        for (const value of values) {\n            this._array.push(value);\n        }\n        this._changed.emit({\n            type: 'add',\n            oldIndex: -1,\n            newIndex,\n            oldValues: [],\n            newValues: Array.from(values)\n        });\n        return this.length;\n    }\n    /**\n     * Insert a set of items into the list at the specified index.\n     *\n     * @param index - The index at which to insert the values.\n     *\n     * @param values - The values to insert at the specified index.\n     *\n     * #### Complexity.\n     * Linear.\n     *\n     * #### Iterator Validity\n     * No changes.\n     *\n     * #### Notes\n     * The `index` will be clamped to the bounds of the list.\n     * By convention, the oldIndex is set to -2 to indicate\n     * an insert operation.\n     *\n     * #### Undefined Behavior.\n     * An `index` which is non-integral.\n     */\n    insertAll(index, values) {\n        const newIndex = index;\n        for (const value of values) {\n            _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__.ArrayExt.insert(this._array, index++, value);\n        }\n        this._changed.emit({\n            type: 'add',\n            oldIndex: -2,\n            newIndex,\n            oldValues: [],\n            newValues: Array.from(values)\n        });\n    }\n    /**\n     * Remove a range of items from the list.\n     *\n     * @param startIndex - The start index of the range to remove (inclusive).\n     *\n     * @param endIndex - The end index of the range to remove (exclusive).\n     *\n     * @returns The new length of the list.\n     *\n     * #### Complexity\n     * Linear.\n     *\n     * #### Iterator Validity\n     * Iterators pointing to the first removed value and beyond are invalid.\n     *\n     * #### Undefined Behavior\n     * A `startIndex` or `endIndex` which is non-integral.\n     */\n    removeRange(startIndex, endIndex) {\n        const oldValues = this._array.slice(startIndex, endIndex);\n        for (let i = startIndex; i < endIndex; i++) {\n            _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__.ArrayExt.removeAt(this._array, startIndex);\n        }\n        this._changed.emit({\n            type: 'remove',\n            oldIndex: startIndex,\n            newIndex: -1,\n            oldValues,\n            newValues: []\n        });\n        return this.length;\n    }\n}\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n    /**\n     * The default strict equality item cmp.\n     */\n    function itemCmp(first, second) {\n        return first === second;\n    }\n    Private.itemCmp = itemCmp;\n})(Private || (Private = {}));\n//# sourceMappingURL=observablelist.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/observables/lib/observablelist.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/observables/lib/observablemap.js":
/*!********************************************************************!*\
  !*** ../node_modules/@jupyterlab/observables/lib/observablemap.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 */   ObservableMap: () => (/* binding */ ObservableMap)\n/* harmony export */ });\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_0__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * A concrete implementation of IObservableMap<T>.\n */\nclass ObservableMap {\n    /**\n     * Construct a new observable map.\n     */\n    constructor(options = {}) {\n        this._map = new Map();\n        this._changed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_0__.Signal(this);\n        this._isDisposed = false;\n        this._itemCmp = options.itemCmp || Private.itemCmp;\n        if (options.values) {\n            for (const key in options.values) {\n                this._map.set(key, options.values[key]);\n            }\n        }\n    }\n    /**\n     * The type of the Observable.\n     */\n    get type() {\n        return 'Map';\n    }\n    /**\n     * A signal emitted when the map has changed.\n     */\n    get changed() {\n        return this._changed;\n    }\n    /**\n     * Whether this map has been disposed.\n     */\n    get isDisposed() {\n        return this._isDisposed;\n    }\n    /**\n     * The number of key-value pairs in the map.\n     */\n    get size() {\n        return this._map.size;\n    }\n    /**\n     * Set a key-value pair in the map\n     *\n     * @param key - The key to set.\n     *\n     * @param value - The value for the key.\n     *\n     * @returns the old value for the key, or undefined\n     *   if that did not exist.\n     *\n     * @throws if the new value is undefined.\n     *\n     * #### Notes\n     * This is a no-op if the value does not change.\n     */\n    set(key, value) {\n        const oldVal = this._map.get(key);\n        if (value === undefined) {\n            throw Error('Cannot set an undefined value, use remove');\n        }\n        // Bail if the value does not change.\n        const itemCmp = this._itemCmp;\n        if (oldVal !== undefined && itemCmp(oldVal, value)) {\n            return oldVal;\n        }\n        this._map.set(key, value);\n        this._changed.emit({\n            type: oldVal ? 'change' : 'add',\n            key: key,\n            oldValue: oldVal,\n            newValue: value\n        });\n        return oldVal;\n    }\n    /**\n     * Get a value for a given key.\n     *\n     * @param key - the key.\n     *\n     * @returns the value for that key.\n     */\n    get(key) {\n        return this._map.get(key);\n    }\n    /**\n     * Check whether the map has a key.\n     *\n     * @param key - the key to check.\n     *\n     * @returns `true` if the map has the key, `false` otherwise.\n     */\n    has(key) {\n        return this._map.has(key);\n    }\n    /**\n     * Get a list of the keys in the map.\n     *\n     * @returns - a list of keys.\n     */\n    keys() {\n        const keyList = [];\n        this._map.forEach((v, k) => {\n            keyList.push(k);\n        });\n        return keyList;\n    }\n    /**\n     * Get a list of the values in the map.\n     *\n     * @returns - a list of values.\n     */\n    values() {\n        const valList = [];\n        this._map.forEach((v, k) => {\n            valList.push(v);\n        });\n        return valList;\n    }\n    /**\n     * Remove a key from the map\n     *\n     * @param key - the key to remove.\n     *\n     * @returns the value of the given key,\n     *   or undefined if that does not exist.\n     *\n     * #### Notes\n     * This is a no-op if the value does not change.\n     */\n    delete(key) {\n        const oldVal = this._map.get(key);\n        const removed = this._map.delete(key);\n        if (removed) {\n            this._changed.emit({\n                type: 'remove',\n                key: key,\n                oldValue: oldVal,\n                newValue: undefined\n            });\n        }\n        return oldVal;\n    }\n    /**\n     * Set the ObservableMap to an empty map.\n     */\n    clear() {\n        // Delete one by one to emit the correct signals.\n        const keyList = this.keys();\n        for (let i = 0; i < keyList.length; i++) {\n            this.delete(keyList[i]);\n        }\n    }\n    /**\n     * Dispose of the resources held by the map.\n     */\n    dispose() {\n        if (this.isDisposed) {\n            return;\n        }\n        this._isDisposed = true;\n        _lumino_signaling__WEBPACK_IMPORTED_MODULE_0__.Signal.clearData(this);\n        this._map.clear();\n    }\n}\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n    /**\n     * The default strict equality item comparator.\n     */\n    function itemCmp(first, second) {\n        return first === second;\n    }\n    Private.itemCmp = itemCmp;\n})(Private || (Private = {}));\n//# sourceMappingURL=observablemap.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/observables/lib/observablemap.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/observables/lib/observablestring.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@jupyterlab/observables/lib/observablestring.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 */   ObservableString: () => (/* binding */ ObservableString)\n/* harmony export */ });\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_0__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * A concrete implementation of [[IObservableString]]\n */\nclass ObservableString {\n    /**\n     * Construct a new observable string.\n     */\n    constructor(initialText = '') {\n        this._text = '';\n        this._isDisposed = false;\n        this._changed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_0__.Signal(this);\n        this._text = initialText;\n    }\n    /**\n     * The type of the Observable.\n     */\n    get type() {\n        return 'String';\n    }\n    /**\n     * A signal emitted when the string has changed.\n     */\n    get changed() {\n        return this._changed;\n    }\n    /**\n     * Set the value of the string.\n     */\n    set text(value) {\n        if (value.length === this._text.length && value === this._text) {\n            return;\n        }\n        this._text = value;\n        this._changed.emit({\n            type: 'set',\n            start: 0,\n            end: value.length,\n            value: value\n        });\n    }\n    /**\n     * Get the value of the string.\n     */\n    get text() {\n        return this._text;\n    }\n    /**\n     * Insert a substring.\n     *\n     * @param index - The starting index.\n     *\n     * @param text - The substring to insert.\n     */\n    insert(index, text) {\n        this._text = this._text.slice(0, index) + text + this._text.slice(index);\n        this._changed.emit({\n            type: 'insert',\n            start: index,\n            end: index + text.length,\n            value: text\n        });\n    }\n    /**\n     * Remove a substring.\n     *\n     * @param start - The starting index.\n     *\n     * @param end - The ending index.\n     */\n    remove(start, end) {\n        const oldValue = this._text.slice(start, end);\n        this._text = this._text.slice(0, start) + this._text.slice(end);\n        this._changed.emit({\n            type: 'remove',\n            start: start,\n            end: end,\n            value: oldValue\n        });\n    }\n    /**\n     * Set the ObservableString to an empty string.\n     */\n    clear() {\n        this.text = '';\n    }\n    /**\n     * Test whether the string has been disposed.\n     */\n    get isDisposed() {\n        return this._isDisposed;\n    }\n    /**\n     * Dispose of the resources held by the string.\n     */\n    dispose() {\n        if (this._isDisposed) {\n            return;\n        }\n        this._isDisposed = true;\n        _lumino_signaling__WEBPACK_IMPORTED_MODULE_0__.Signal.clearData(this);\n        this.clear();\n    }\n}\n//# sourceMappingURL=observablestring.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/observables/lib/observablestring.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/observables/lib/undoablelist.js":
/*!*******************************************************************!*\
  !*** ../node_modules/@jupyterlab/observables/lib/undoablelist.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 */   ObservableUndoableList: () => (/* binding */ ObservableUndoableList)\n/* harmony export */ });\n/* harmony import */ var _observablelist__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./observablelist */ \"../node_modules/@jupyterlab/observables/lib/observablelist.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * A concrete implementation of an observable undoable list.\n */\nclass ObservableUndoableList extends _observablelist__WEBPACK_IMPORTED_MODULE_0__.ObservableList {\n    /**\n     * Construct a new undoable observable list.\n     */\n    constructor(serializer) {\n        super();\n        this._inCompound = false;\n        this._isUndoable = true;\n        this._madeCompoundChange = false;\n        this._index = -1;\n        this._stack = [];\n        this._serializer = serializer;\n        this.changed.connect(this._onListChanged, this);\n    }\n    /**\n     * Whether the object can redo changes.\n     */\n    get canRedo() {\n        return this._index < this._stack.length - 1;\n    }\n    /**\n     * Whether the object can undo changes.\n     */\n    get canUndo() {\n        return this._index >= 0;\n    }\n    /**\n     * Begin a compound operation.\n     *\n     * @param isUndoAble - Whether the operation is undoable.\n     *   The default is `true`.\n     */\n    beginCompoundOperation(isUndoAble) {\n        this._inCompound = true;\n        this._isUndoable = isUndoAble !== false;\n        this._madeCompoundChange = false;\n    }\n    /**\n     * End a compound operation.\n     */\n    endCompoundOperation() {\n        this._inCompound = false;\n        this._isUndoable = true;\n        if (this._madeCompoundChange) {\n            this._index++;\n        }\n    }\n    /**\n     * Undo an operation.\n     */\n    undo() {\n        if (!this.canUndo) {\n            return;\n        }\n        const changes = this._stack[this._index];\n        this._isUndoable = false;\n        for (const change of changes.reverse()) {\n            this._undoChange(change);\n        }\n        this._isUndoable = true;\n        this._index--;\n    }\n    /**\n     * Redo an operation.\n     */\n    redo() {\n        if (!this.canRedo) {\n            return;\n        }\n        this._index++;\n        const changes = this._stack[this._index];\n        this._isUndoable = false;\n        for (const change of changes) {\n            this._redoChange(change);\n        }\n        this._isUndoable = true;\n    }\n    /**\n     * Clear the change stack.\n     */\n    clearUndo() {\n        this._index = -1;\n        this._stack = [];\n    }\n    /**\n     * Handle a change in the list.\n     */\n    _onListChanged(list, change) {\n        if (this.isDisposed || !this._isUndoable) {\n            return;\n        }\n        // Clear everything after this position if necessary.\n        if (!this._inCompound || !this._madeCompoundChange) {\n            this._stack = this._stack.slice(0, this._index + 1);\n        }\n        // Copy the change.\n        const evt = this._copyChange(change);\n        // Put the change in the stack.\n        if (this._stack[this._index + 1]) {\n            this._stack[this._index + 1].push(evt);\n        }\n        else {\n            this._stack.push([evt]);\n        }\n        // If not in a compound operation, increase index.\n        if (!this._inCompound) {\n            this._index++;\n        }\n        else {\n            this._madeCompoundChange = true;\n        }\n    }\n    /**\n     * Undo a change event.\n     */\n    _undoChange(change) {\n        let index = 0;\n        const serializer = this._serializer;\n        switch (change.type) {\n            case 'add':\n                for (let length = change.newValues.length; length > 0; length--) {\n                    this.remove(change.newIndex);\n                }\n                break;\n            case 'set':\n                index = change.oldIndex;\n                for (const value of change.oldValues) {\n                    this.set(index++, serializer.fromJSON(value));\n                }\n                break;\n            case 'remove':\n                index = change.oldIndex;\n                for (const value of change.oldValues) {\n                    this.insert(index++, serializer.fromJSON(value));\n                }\n                break;\n            case 'move':\n                this.move(change.newIndex, change.oldIndex);\n                break;\n            default:\n                return;\n        }\n    }\n    /**\n     * Redo a change event.\n     */\n    _redoChange(change) {\n        let index = 0;\n        const serializer = this._serializer;\n        switch (change.type) {\n            case 'add':\n                index = change.newIndex;\n                for (const value of change.newValues) {\n                    this.insert(index++, serializer.fromJSON(value));\n                }\n                break;\n            case 'set':\n                index = change.newIndex;\n                for (const value of change.newValues) {\n                    this.set(change.newIndex++, serializer.fromJSON(value));\n                }\n                break;\n            case 'remove':\n                for (let length = change.oldValues.length; length > 0; length--) {\n                    this.remove(change.oldIndex);\n                }\n                break;\n            case 'move':\n                this.move(change.oldIndex, change.newIndex);\n                break;\n            default:\n                return;\n        }\n    }\n    /**\n     * Copy a change as JSON.\n     */\n    _copyChange(change) {\n        const oldValues = [];\n        for (const value of change.oldValues) {\n            oldValues.push(this._serializer.toJSON(value));\n        }\n        const newValues = [];\n        for (const value of change.newValues) {\n            newValues.push(this._serializer.toJSON(value));\n        }\n        return {\n            type: change.type,\n            oldIndex: change.oldIndex,\n            newIndex: change.newIndex,\n            oldValues,\n            newValues\n        };\n    }\n}\n/**\n * Namespace for ObservableUndoableList utilities.\n */\n(function (ObservableUndoableList) {\n    /**\n     * A default, identity serializer.\n     */\n    class IdentitySerializer {\n        /**\n         * Identity serialize.\n         */\n        toJSON(value) {\n            return value;\n        }\n        /**\n         * Identity deserialize.\n         */\n        fromJSON(value) {\n            return value;\n        }\n    }\n    ObservableUndoableList.IdentitySerializer = IdentitySerializer;\n})(ObservableUndoableList || (ObservableUndoableList = {}));\n//# sourceMappingURL=undoablelist.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/observables/lib/undoablelist.js?");

/***/ })

}]);