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

/***/ "../node_modules/@jupyterlab/completer-extension/lib/index.js":
/*!********************************************************************!*\
  !*** ../node_modules/@jupyterlab/completer-extension/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 */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/completer */ \"webpack/sharing/consume/default/@jupyterlab/completer/@jupyterlab/completer\");\n/* harmony import */ var _jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _lumino_commands__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @lumino/commands */ \"webpack/sharing/consume/default/@lumino/commands/@lumino/commands\");\n/* harmony import */ var _lumino_commands__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_lumino_commands__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _renderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./renderer */ \"../node_modules/@jupyterlab/completer-extension/lib/renderer.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/**\n * @packageDocumentation\n * @module completer-extension\n */\n\n\n\n\n\n\n\nconst COMPLETION_MANAGER_PLUGIN = '@jupyterlab/completer-extension:manager';\nconst INLINE_COMPLETER_PLUGIN = '@jupyterlab/completer-extension:inline-completer';\nvar CommandIDs;\n(function (CommandIDs) {\n    CommandIDs.nextInline = 'inline-completer:next';\n    CommandIDs.previousInline = 'inline-completer:previous';\n    CommandIDs.acceptInline = 'inline-completer:accept';\n    CommandIDs.invokeInline = 'inline-completer:invoke';\n})(CommandIDs || (CommandIDs = {}));\nconst defaultProviders = {\n    id: '@jupyterlab/completer-extension:base-service',\n    description: 'Adds context and kernel completion providers.',\n    requires: [_jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__.ICompletionProviderManager],\n    autoStart: true,\n    activate: (app, completionManager) => {\n        completionManager.registerProvider(new _jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__.ContextCompleterProvider());\n        completionManager.registerProvider(new _jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__.KernelCompleterProvider());\n    }\n};\nconst inlineHistoryProvider = {\n    id: '@jupyterlab/completer-extension:inline-history',\n    description: 'Adds inline completion provider suggesting code from execution history.',\n    requires: [_jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__.ICompletionProviderManager],\n    optional: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__.ITranslator],\n    autoStart: true,\n    activate: (app, completionManager, translator) => {\n        completionManager.registerInlineProvider(new _jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__.HistoryInlineCompletionProvider({\n            translator: translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__.nullTranslator\n        }));\n    }\n};\nconst inlineCompleterFactory = {\n    id: '@jupyterlab/completer-extension:inline-completer-factory',\n    description: 'Provides a factory for inline completer.',\n    provides: _jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__.IInlineCompleterFactory,\n    optional: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__.ITranslator],\n    autoStart: true,\n    activate: (app, translator) => {\n        const trans = (translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__.nullTranslator).load('jupyterlab');\n        return {\n            factory: options => {\n                const inlineCompleter = new _jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__.InlineCompleter({\n                    ...options,\n                    trans: trans\n                });\n                const describeShortcut = (commandID) => {\n                    const binding = app.commands.keyBindings.find(binding => binding.command === commandID);\n                    const keys = binding\n                        ? _lumino_commands__WEBPACK_IMPORTED_MODULE_4__.CommandRegistry.formatKeystroke(binding.keys)\n                        : '';\n                    return keys ? `${keys}` : '';\n                };\n                const labelCache = {\n                    [CommandIDs.previousInline]: describeShortcut(CommandIDs.previousInline),\n                    [CommandIDs.nextInline]: describeShortcut(CommandIDs.nextInline),\n                    [CommandIDs.acceptInline]: describeShortcut(CommandIDs.acceptInline)\n                };\n                app.commands.keyBindingChanged.connect((_emitter, change) => {\n                    const command = change.binding.command;\n                    if (labelCache.hasOwnProperty(command)) {\n                        labelCache[command] =\n                            describeShortcut(command);\n                    }\n                });\n                inlineCompleter.toolbar.addItem('previous-inline-completion', new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.CommandToolbarButton({\n                    commands: app.commands,\n                    icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.caretLeftIcon,\n                    id: CommandIDs.previousInline,\n                    label: () => labelCache[CommandIDs.previousInline],\n                    caption: trans.__('Previous')\n                }));\n                inlineCompleter.toolbar.addItem('next-inline-completion', new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.CommandToolbarButton({\n                    commands: app.commands,\n                    icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.caretRightIcon,\n                    id: CommandIDs.nextInline,\n                    label: () => labelCache[CommandIDs.nextInline],\n                    caption: trans.__('Next')\n                }));\n                inlineCompleter.toolbar.addItem('accept-inline-completion', new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.CommandToolbarButton({\n                    commands: app.commands,\n                    icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.checkIcon,\n                    id: CommandIDs.acceptInline,\n                    label: () => labelCache[CommandIDs.acceptInline],\n                    caption: trans.__('Accept')\n                }));\n                return inlineCompleter;\n            }\n        };\n    }\n};\nconst inlineCompleter = {\n    id: INLINE_COMPLETER_PLUGIN,\n    description: 'Provides a factory for inline completer.',\n    requires: [\n        _jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__.ICompletionProviderManager,\n        _jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__.IInlineCompleterFactory,\n        _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__.ISettingRegistry\n    ],\n    optional: [_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__.ITranslator],\n    autoStart: true,\n    activate: (app, completionManager, factory, settings, translator) => {\n        completionManager.setInlineCompleterFactory(factory);\n        const trans = (translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_3__.nullTranslator).load('jupyterlab');\n        const isEnabled = () => !!app.shell.currentWidget && !!completionManager.inline;\n        app.commands.addCommand(CommandIDs.nextInline, {\n            execute: () => {\n                var _a;\n                (_a = completionManager.inline) === null || _a === void 0 ? void 0 : _a.cycle(app.shell.currentWidget.id, 'next');\n            },\n            label: trans.__('Next Inline Completion'),\n            isEnabled\n        });\n        app.commands.addCommand(CommandIDs.previousInline, {\n            execute: () => {\n                var _a;\n                (_a = completionManager.inline) === null || _a === void 0 ? void 0 : _a.cycle(app.shell.currentWidget.id, 'previous');\n            },\n            label: trans.__('Previous Inline Completion'),\n            isEnabled\n        });\n        app.commands.addCommand(CommandIDs.acceptInline, {\n            execute: () => {\n                var _a;\n                (_a = completionManager.inline) === null || _a === void 0 ? void 0 : _a.accept(app.shell.currentWidget.id);\n            },\n            label: trans.__('Accept Inline Completion'),\n            isEnabled\n        });\n        app.commands.addCommand(CommandIDs.invokeInline, {\n            execute: () => {\n                var _a;\n                (_a = completionManager.inline) === null || _a === void 0 ? void 0 : _a.invoke(app.shell.currentWidget.id);\n            },\n            label: trans.__('Invoke Inline Completer'),\n            isEnabled\n        });\n        const updateSettings = (settings) => {\n            var _a;\n            (_a = completionManager.inline) === null || _a === void 0 ? void 0 : _a.configure(settings.composite);\n        };\n        app.restored\n            .then(() => {\n            var _a;\n            const availableProviders = (_a = completionManager.inlineProviders) !== null && _a !== void 0 ? _a : [];\n            const composeDefaults = (provider) => {\n                var _a, _b;\n                return {\n                    // By default all providers are opt-out, but\n                    // any provider can configure itself to be opt-in.\n                    enabled: true,\n                    timeout: 5000,\n                    debouncerDelay: 0,\n                    ...((_b = (_a = provider.schema) === null || _a === void 0 ? void 0 : _a.default) !== null && _b !== void 0 ? _b : {})\n                };\n            };\n            settings.transform(INLINE_COMPLETER_PLUGIN, {\n                compose: plugin => {\n                    var _a, _b;\n                    const providers = (_a = plugin.data.composite['providers']) !== null && _a !== void 0 ? _a : {};\n                    for (const provider of availableProviders) {\n                        const defaults = composeDefaults(provider);\n                        providers[provider.identifier] = {\n                            ...defaults,\n                            ...((_b = providers[provider.identifier]) !== null && _b !== void 0 ? _b : {})\n                        };\n                    }\n                    // Add fallback defaults in composite settings values\n                    plugin.data['composite']['providers'] = providers;\n                    return plugin;\n                },\n                fetch: plugin => {\n                    var _a, _b;\n                    const schema = plugin.schema.properties;\n                    const providersSchema = {};\n                    for (const provider of availableProviders) {\n                        providersSchema[provider.identifier] = {\n                            title: trans.__('%1 provider', provider.name),\n                            properties: {\n                                ...((_b = (_a = provider.schema) === null || _a === void 0 ? void 0 : _a.properties) !== null && _b !== void 0 ? _b : {}),\n                                timeout: {\n                                    title: trans.__('Timeout'),\n                                    description: trans.__('Timeout for %1 provider (in milliseconds).', provider.name),\n                                    type: 'number',\n                                    minimum: 0\n                                },\n                                debouncerDelay: {\n                                    title: trans.__('Debouncer delay'),\n                                    minimum: 0,\n                                    description: trans.__('Time since the last key press to wait before requesting completions from %1 provider (in milliseconds).', provider.name),\n                                    type: 'number'\n                                },\n                                enabled: {\n                                    title: trans.__('Enabled'),\n                                    description: trans.__('Whether to fetch completions %1 provider.', provider.name),\n                                    type: 'boolean'\n                                }\n                            },\n                            default: composeDefaults(provider),\n                            type: 'object'\n                        };\n                    }\n                    // Populate schema for providers settings\n                    schema['providers']['properties'] = providersSchema;\n                    return plugin;\n                }\n            });\n            const settingsPromise = settings.load(INLINE_COMPLETER_PLUGIN);\n            settingsPromise\n                .then(settingValues => {\n                updateSettings(settingValues);\n                settingValues.changed.connect(newSettings => {\n                    updateSettings(newSettings);\n                });\n            })\n                .catch(console.error);\n        })\n            .catch(console.error);\n        const findKeybinding = (commandID) => {\n            return app.commands.keyBindings.find(binding => binding.command === commandID);\n        };\n        const keyBindings = {\n            [CommandIDs.acceptInline]: findKeybinding(CommandIDs.acceptInline),\n            [CommandIDs.invokeInline]: findKeybinding(CommandIDs.invokeInline)\n        };\n        app.commands.keyBindingChanged.connect((_emitter, change) => {\n            const command = change.binding.command;\n            if (keyBindings.hasOwnProperty(command)) {\n                keyBindings[command] =\n                    findKeybinding(command);\n            }\n        });\n        const evtKeydown = (event) => {\n            // Handle bindings to `Tab` key specially\n            if (!(event.target instanceof Element)) {\n                return;\n            }\n            const target = event.target;\n            switch (event.keyCode) {\n                case 9: {\n                    // Tab key\n                    const potentialTabBindings = [\n                        // Note: `accept` should come ahead of `invoke` due to specificity\n                        keyBindings[CommandIDs.acceptInline],\n                        keyBindings[CommandIDs.invokeInline]\n                    ];\n                    for (const binding of potentialTabBindings) {\n                        if (binding &&\n                            binding.keys.length === 1 &&\n                            binding.keys[0] === 'Tab' &&\n                            target.closest(binding.selector)) {\n                            app.commands.execute(binding.command).catch(console.error);\n                            event.preventDefault();\n                            event.stopPropagation();\n                            event.stopImmediatePropagation();\n                            return;\n                        }\n                    }\n                    break;\n                }\n                default:\n                    return;\n            }\n        };\n        document.addEventListener('keydown', evtKeydown, true);\n    }\n};\nconst manager = {\n    id: COMPLETION_MANAGER_PLUGIN,\n    description: 'Provides the completion provider manager.',\n    requires: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__.ISettingRegistry],\n    optional: [_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.IFormRendererRegistry],\n    provides: _jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__.ICompletionProviderManager,\n    autoStart: true,\n    activate: (app, settings, editorRegistry) => {\n        const AVAILABLE_PROVIDERS = 'availableProviders';\n        const PROVIDER_TIMEOUT = 'providerTimeout';\n        const SHOW_DOCUMENT_PANEL = 'showDocumentationPanel';\n        const CONTINUOUS_HINTING = 'autoCompletion';\n        const manager = new _jupyterlab_completer__WEBPACK_IMPORTED_MODULE_1__.CompletionProviderManager();\n        const updateSetting = (settingValues, availableProviders) => {\n            var _a;\n            const providersData = settingValues.get(AVAILABLE_PROVIDERS);\n            const timeout = settingValues.get(PROVIDER_TIMEOUT);\n            const showDoc = settingValues.get(SHOW_DOCUMENT_PANEL);\n            const continuousHinting = settingValues.get(CONTINUOUS_HINTING);\n            manager.setTimeout(timeout.composite);\n            manager.setShowDocumentationPanel(showDoc.composite);\n            manager.setContinuousHinting(continuousHinting.composite);\n            const selectedProviders = (_a = providersData.user) !== null && _a !== void 0 ? _a : providersData.composite;\n            const sortedProviders = Object.entries(selectedProviders !== null && selectedProviders !== void 0 ? selectedProviders : {})\n                .filter(val => val[1] >= 0 && availableProviders.includes(val[0]))\n                .sort(([, rank1], [, rank2]) => rank2 - rank1)\n                .map(item => item[0]);\n            manager.activateProvider(sortedProviders);\n        };\n        app.restored\n            .then(() => {\n            const availableProviders = [...manager.getProviders().entries()];\n            const availableProviderIDs = availableProviders.map(([key, value]) => key);\n            settings.transform(COMPLETION_MANAGER_PLUGIN, {\n                fetch: plugin => {\n                    const schema = plugin.schema.properties;\n                    const defaultValue = {};\n                    availableProviders.forEach(([key, value], index) => {\n                        var _a;\n                        defaultValue[key] = (_a = value.rank) !== null && _a !== void 0 ? _a : (index + 1) * 10;\n                    });\n                    schema[AVAILABLE_PROVIDERS]['default'] = defaultValue;\n                    return plugin;\n                }\n            });\n            const settingsPromise = settings.load(COMPLETION_MANAGER_PLUGIN);\n            settingsPromise\n                .then(settingValues => {\n                updateSetting(settingValues, availableProviderIDs);\n                settingValues.changed.connect(newSettings => {\n                    updateSetting(newSettings, availableProviderIDs);\n                });\n            })\n                .catch(console.error);\n        })\n            .catch(console.error);\n        if (editorRegistry) {\n            const renderer = {\n                fieldRenderer: (props) => {\n                    return (0,_renderer__WEBPACK_IMPORTED_MODULE_5__.renderAvailableProviders)(props);\n                }\n            };\n            editorRegistry.addRenderer(`${COMPLETION_MANAGER_PLUGIN}.availableProviders`, renderer);\n        }\n        return manager;\n    }\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [\n    manager,\n    defaultProviders,\n    inlineHistoryProvider,\n    inlineCompleterFactory,\n    inlineCompleter\n];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (plugins);\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/completer-extension/lib/index.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/completer-extension/lib/renderer.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@jupyterlab/completer-extension/lib/renderer.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 */   renderAvailableProviders: () => (/* binding */ renderAvailableProviders)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\nconst AVAILABLE_PROVIDERS = 'availableProviders';\n/**\n * Custom setting renderer for provider rank.\n */\nfunction renderAvailableProviders(props) {\n    const { schema } = props;\n    const title = schema.title;\n    const desc = schema.description;\n    const settings = props.formContext.settings;\n    const userData = settings.get(AVAILABLE_PROVIDERS).user;\n    const items = {\n        ...schema.default\n    };\n    if (userData) {\n        for (const key of Object.keys(items)) {\n            if (key in userData) {\n                items[key] = userData[key];\n            }\n            else {\n                items[key] = -1;\n            }\n        }\n    }\n    const [settingValue, setValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(items);\n    const onSettingChange = (key, e) => {\n        const newValue = {\n            ...settingValue,\n            [key]: parseInt(e.target.value)\n        };\n        settings.set(AVAILABLE_PROVIDERS, newValue).catch(console.error);\n        setValue(newValue);\n    };\n    return (\n    //TODO Remove hard coded class names\n    react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n        react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"fieldset\", null,\n            react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"legend\", null, title),\n            react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", { className: \"field-description\" }, desc),\n            Object.keys(items).map(key => {\n                return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { key: key, className: \"form-group small-field\" },\n                    react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n                        react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"h3\", null,\n                            \" \",\n                            key),\n                        react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"inputFieldWrapper\" },\n                            react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { className: \"form-control\", type: \"number\", value: settingValue[key], onChange: e => {\n                                    onSettingChange(key, e);\n                                } })))));\n            }))));\n}\n//# sourceMappingURL=renderer.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/completer-extension/lib/renderer.js?");

/***/ })

}]);