-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomponent---src-pages-utbot-jsx-501a68dd31986aa0baf9.js.map
1 lines (1 loc) · 246 KB
/
component---src-pages-utbot-jsx-501a68dd31986aa0baf9.js.map
1
{"version":3,"file":"component---src-pages-utbot-jsx-501a68dd31986aa0baf9.js","mappings":"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","sources":["webpack://unittestbot-web/./node_modules/dedent/dist/dedent.js","webpack://unittestbot-web/./node_modules/prismjs/components/prism-c.js","webpack://unittestbot-web/./node_modules/prismjs/components/prism-clike.js","webpack://unittestbot-web/./node_modules/prismjs/components/prism-core.js","webpack://unittestbot-web/./node_modules/prismjs/components/prism-cpp.js","webpack://unittestbot-web/./node_modules/prismjs/components/prism-go.js","webpack://unittestbot-web/./node_modules/prismjs/components/prism-javascript.js","webpack://unittestbot-web/./node_modules/prismjs/components/prism-markup.js","webpack://unittestbot-web/./node_modules/prismjs/components/prism-python.js","webpack://unittestbot-web/./node_modules/core-js/internals/a-constructor.js","webpack://unittestbot-web/./node_modules/core-js/internals/is-constructor.js","webpack://unittestbot-web/./node_modules/core-js/internals/new-promise-capability.js","webpack://unittestbot-web/./node_modules/core-js/internals/promise-native-constructor.js","webpack://unittestbot-web/./node_modules/core-js/internals/promise-resolve.js","webpack://unittestbot-web/./node_modules/core-js/internals/species-constructor.js","webpack://unittestbot-web/./node_modules/core-js/modules/es.promise.finally.js","webpack://unittestbot-web/./node_modules/react-bootstrap/esm/Tooltip.js","webpack://unittestbot-web/./node_modules/react-bootstrap/esm/Spinner.js","webpack://unittestbot-web/./node_modules/react-bootstrap/esm/ButtonGroup.js","webpack://unittestbot-web/./node_modules/react-bootstrap/esm/ToggleButton.js","webpack://unittestbot-web/./node_modules/react-bootstrap/esm/ToggleButtonGroup.js","webpack://unittestbot-web/./node_modules/react-bootstrap/esm/ElementChildren.js","webpack://unittestbot-web/./node_modules/@restart/hooks/esm/useWillUnmount.js","webpack://unittestbot-web/./node_modules/@restart/hooks/esm/useUpdatedRef.js","webpack://unittestbot-web/./node_modules/@restart/hooks/esm/useTimeout.js","webpack://unittestbot-web/./node_modules/@restart/hooks/esm/useMounted.js","webpack://unittestbot-web/./node_modules/react-overlays/node_modules/@restart/hooks/esm/useMergedRefs.js","webpack://unittestbot-web/./node_modules/react-overlays/esm/useWaitForDOMRef.js","webpack://unittestbot-web/./node_modules/react-overlays/esm/Overlay.js","webpack://unittestbot-web/./node_modules/react-bootstrap/esm/Fade.js","webpack://unittestbot-web/./node_modules/react-bootstrap/esm/Overlay.js","webpack://unittestbot-web/./node_modules/react-bootstrap/esm/OverlayTrigger.js","webpack://unittestbot-web/./src/pages/styles/utbot-desktop.module.css","webpack://unittestbot-web/./src/pages/styles/utbot-mobile.module.css","webpack://unittestbot-web/./node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js","webpack://unittestbot-web/./node_modules/state-local/lib/es/state-local.js","webpack://unittestbot-web/./node_modules/@monaco-editor/loader/lib/es/config/index.js","webpack://unittestbot-web/./node_modules/@monaco-editor/loader/lib/es/utils/curry.js","webpack://unittestbot-web/./node_modules/@monaco-editor/loader/lib/es/utils/isObject.js","webpack://unittestbot-web/./node_modules/@monaco-editor/loader/lib/es/validators/index.js","webpack://unittestbot-web/./node_modules/@monaco-editor/loader/lib/es/utils/compose.js","webpack://unittestbot-web/./node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js","webpack://unittestbot-web/./node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js","webpack://unittestbot-web/./node_modules/@monaco-editor/loader/lib/es/loader/index.js","webpack://unittestbot-web/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://unittestbot-web/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://unittestbot-web/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://unittestbot-web/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://unittestbot-web/./node_modules/@monaco-editor/react/lib/es/Loading/Loading.js","webpack://unittestbot-web/./node_modules/@monaco-editor/react/lib/es/MonacoContainer/styles.js","webpack://unittestbot-web/./node_modules/@monaco-editor/react/lib/es/MonacoContainer/MonacoContainer.js","webpack://unittestbot-web/./node_modules/@monaco-editor/react/lib/es/MonacoContainer/index.js","webpack://unittestbot-web/./node_modules/@monaco-editor/react/lib/es/hooks/useMount/index.js","webpack://unittestbot-web/./node_modules/@monaco-editor/react/lib/es/hooks/useUpdate/index.js","webpack://unittestbot-web/./node_modules/@monaco-editor/react/lib/es/utils/index.js","webpack://unittestbot-web/./node_modules/@monaco-editor/react/lib/es/DiffEditor/DiffEditor.js","webpack://unittestbot-web/./node_modules/@monaco-editor/react/lib/es/hooks/usePrevious/index.js","webpack://unittestbot-web/./node_modules/@monaco-editor/react/lib/es/Editor/Editor.js","webpack://unittestbot-web/./node_modules/@monaco-editor/react/lib/es/Editor/index.js","webpack://unittestbot-web/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js","webpack://unittestbot-web/./src/utils/language.js","webpack://unittestbot-web/./src/images/copy-link-icon.png","webpack://unittestbot-web/./src/pages/utbot.jsx","webpack://unittestbot-web/./src/images/code-icon.png"],"sourcesContent":["\"use strict\";\n\nfunction dedent(strings) {\n var raw = void 0;\n if (typeof strings === \"string\") {\n // dedent can be used as a plain function\n raw = [strings];\n } else {\n raw = strings.raw;\n }\n\n // first, perform interpolation\n var result = \"\";\n for (var i = 0; i < raw.length; i++) {\n result += raw[i].\n // join lines when there is a suppressed newline\n replace(/\\\\\\n[ \\t]*/g, \"\").\n // handle escaped backticks\n replace(/\\\\`/g, \"`\");\n if (i < (arguments.length <= 1 ? 0 : arguments.length - 1)) {\n result += arguments.length <= i + 1 ? undefined : arguments[i + 1];\n }\n }\n\n // now strip indentation\n var lines = result.split(\"\\n\");\n var mindent = null;\n lines.forEach(function (l) {\n var m = l.match(/^(\\s+)\\S+/);\n if (m) {\n var indent = m[1].length;\n if (!mindent) {\n // this is the first indented line\n mindent = indent;\n } else {\n mindent = Math.min(mindent, indent);\n }\n }\n });\n if (mindent !== null) {\n result = lines.map(function (l) {\n return l[0] === \" \" ? l.slice(mindent) : l;\n }).join(\"\\n\");\n }\n\n // dedent eats leading and trailing whitespace too\n result = result.trim();\n\n // handle escaped newlines at the end to ensure they don't get stripped too\n return result.replace(/\\\\n/g, \"\\n\");\n}\nif (typeof module !== \"undefined\") {\n module.exports = dedent;\n}","Prism.languages.c = Prism.languages.extend('clike', {\n 'comment': {\n pattern: /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n lookbehind: true\n },\n 'keyword': /\\b(?:__attribute__|_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\\b/,\n 'function': /[a-z_]\\w*(?=\\s*\\()/i,\n 'number': /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n 'operator': />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n});\nPrism.languages.insertBefore('c', 'string', {\n 'macro': {\n // allow for multiline macro definitions\n // spaces after the # character compile fine with gcc\n pattern: /(^\\s*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n 'string': [{\n // highlight the path of the include statement as a string\n pattern: /^(#\\s*include\\s*)<[^>]+>/,\n lookbehind: true\n }, Prism.languages.c['string']],\n 'comment': Prism.languages.c['comment'],\n 'macro-name': [{\n pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n lookbehind: true\n }, {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n lookbehind: true,\n alias: 'function'\n }],\n // highlight macro directives as keywords\n 'directive': {\n pattern: /^(#\\s*)[a-z]+/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'directive-hash': /^#/,\n 'punctuation': /##|\\\\(?=[\\r\\n])/,\n 'expression': {\n pattern: /\\S[\\s\\S]*/,\n inside: Prism.languages.c\n }\n }\n },\n // highlight predefined macros as constants\n 'constant': /\\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\\b/\n});\ndelete Prism.languages.c['boolean'];","Prism.languages.clike = {\n 'comment': [{\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n }, {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }],\n 'string': {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n 'punctuation': /[.\\\\]/\n }\n },\n 'keyword': /\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\n 'boolean': /\\b(?:true|false)\\b/,\n 'function': /\\w+(?=\\()/,\n 'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n 'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n 'punctuation': /[{}[\\];(),.:]/\n};","/// <reference lib=\"WebWorker\"/>\n\nvar _self = typeof window !== 'undefined' ? window // if in browser\n: typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ? self // if in worker\n: {} // if in node js\n;\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = function (_self) {\n // Private helper vars\n var lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\n var uniqueId = 0;\n var _ = {\n /**\n * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n * additional languages or plugins yourself.\n *\n * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n *\n * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n * empty Prism object into the global scope before loading the Prism script like this:\n *\n * ```js\n * window.Prism = window.Prism || {};\n * Prism.manual = true;\n * // add a new <script> to load Prism's script\n * ```\n *\n * @default false\n * @type {boolean}\n * @memberof Prism\n * @public\n */\n manual: _self.Prism && _self.Prism.manual,\n disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, '&').replace(/</g, '<').replace(/\\u00a0/g, ' ');\n }\n },\n /**\n * Returns the name of the type of the given value.\n *\n * @param {any} o\n * @returns {string}\n * @example\n * type(null) === 'Null'\n * type(undefined) === 'Undefined'\n * type(123) === 'Number'\n * type('foo') === 'String'\n * type(true) === 'Boolean'\n * type([1, 2]) === 'Array'\n * type({}) === 'Object'\n * type(String) === 'Function'\n * type(/abc+/) === 'RegExp'\n */\n type: function type(o) {\n return Object.prototype.toString.call(o).slice(8, -1);\n },\n /**\n * Returns a unique number for the given object. Later calls will still return the same number.\n *\n * @param {Object} obj\n * @returns {number}\n */\n objId: function objId(obj) {\n if (!obj['__id']) {\n Object.defineProperty(obj, '__id', {\n value: ++uniqueId\n });\n }\n return obj['__id'];\n },\n /**\n * Creates a deep clone of the given object.\n *\n * The main intended use of this function is to clone language definitions.\n *\n * @param {T} o\n * @param {Record<number, any>} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone, id;\n switch (_.util.type(o)) {\n case 'Object':\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = /** @type {Record<string, any>} */{};\n visited[id] = clone;\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n return (/** @type {any} */clone\n );\n case 'Array':\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = [];\n visited[id] = clone;\n /** @type {Array} */ /** @type {any} */o.forEach(function (v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (/** @type {any} */clone\n );\n default:\n return o;\n }\n },\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function getLanguage(element) {\n while (element && !lang.test(element.className)) {\n element = element.parentElement;\n }\n if (element) {\n return (element.className.match(lang) || [, 'none'])[1].toLowerCase();\n }\n return 'none';\n },\n /**\n * Returns the script element that is currently executing.\n *\n * This does __not__ work for line script element.\n *\n * @returns {HTMLScriptElement | null}\n */\n currentScript: function currentScript() {\n if (typeof document === 'undefined') {\n return null;\n }\n if ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n return (/** @type {any} */document.currentScript\n );\n }\n\n // IE11 workaround\n // we'll get the src of the current script by parsing IE11's error stack trace\n // this will not work for inline scripts\n\n try {\n throw new Error();\n } catch (err) {\n // Get file src url from stack. Specifically works with the format of stack traces in IE.\n // A stack will look like this:\n //\n // Error\n // at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n // at Global code (http://localhost/components/prism-core.js:606:1)\n\n var src = (/at [^(\\r\\n]*\\((.*):.+:.+\\)$/i.exec(err.stack) || [])[1];\n if (src) {\n var scripts = document.getElementsByTagName('script');\n for (var i in scripts) {\n if (scripts[i].src == src) {\n return scripts[i];\n }\n }\n }\n return null;\n }\n },\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function isActive(element, className, defaultActivation) {\n var no = 'no-' + className;\n while (element) {\n var classList = element.classList;\n if (classList.contains(className)) {\n return true;\n }\n if (classList.contains(no)) {\n return false;\n }\n element = element.parentElement;\n }\n return !!defaultActivation;\n }\n },\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function extend(id, redef) {\n var lang = _.util.clone(_.languages[id]);\n for (var key in redef) {\n lang[key] = redef[key];\n }\n return lang;\n },\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n * this:\n *\n * ```js\n * Prism.languages.markup.style = {\n * // token\n * };\n * ```\n *\n * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n * before existing tokens. For the CSS example above, you would use it like this:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'cdata', {\n * 'style': {\n * // token\n * }\n * });\n * ```\n *\n * ## Special cases\n *\n * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n * will be ignored.\n *\n * This behavior can be used to insert tokens after `before`:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'comment', {\n * 'comment': Prism.languages.markup.comment,\n * // tokens after 'comment'\n * });\n * ```\n *\n * ## Limitations\n *\n * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n * deleting properties which is necessary to insert at arbitrary positions.\n *\n * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n * Instead, it will create a new object and replace all references to the target object with the new one. This\n * can be done without temporarily deleting properties, so the iteration order is well-defined.\n *\n * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n * you hold the target object in a variable, then the value of the variable will not change.\n *\n * ```js\n * var oldMarkup = Prism.languages.markup;\n * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n *\n * assert(oldMarkup !== Prism.languages.markup);\n * assert(newMarkup === Prism.languages.markup);\n * ```\n *\n * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n * object to be modified.\n * @param {string} before The key to insert before.\n * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n * object to be modified.\n *\n * Defaults to `Prism.languages`.\n * @returns {Grammar} The new grammar object.\n * @public\n */\n insertBefore: function insertBefore(inside, before, insert, root) {\n root = root || /** @type {any} */_.languages;\n var grammar = root[inside];\n /** @type {Grammar} */\n var ret = {};\n for (var token in grammar) {\n if (grammar.hasOwnProperty(token)) {\n if (token == before) {\n for (var newToken in insert) {\n if (insert.hasOwnProperty(newToken)) {\n ret[newToken] = insert[newToken];\n }\n }\n }\n\n // Do not insert token which also occur in insert. See #1525\n if (!insert.hasOwnProperty(token)) {\n ret[token] = grammar[token];\n }\n }\n }\n var old = root[inside];\n root[inside] = ret;\n\n // Update references in other language definitions\n _.languages.DFS(_.languages, function (key, value) {\n if (value === old && key != inside) {\n this[key] = ret;\n }\n });\n return ret;\n },\n // Traverse a language definition with Depth First Search\n DFS: function DFS(o, callback, type, visited) {\n visited = visited || {};\n var objId = _.util.objId;\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n callback.call(o, i, o[i], type || i);\n var property = o[i],\n propertyType = _.util.type(property);\n if (propertyType === 'Object' && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, null, visited);\n } else if (propertyType === 'Array' && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, i, visited);\n }\n }\n }\n }\n },\n plugins: {},\n /**\n * This is the most high-level function in Prism’s API.\n * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n * each one of them.\n *\n * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n *\n * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n * @memberof Prism\n * @public\n */\n highlightAll: function highlightAll(async, callback) {\n _.highlightAllUnder(document, async, callback);\n },\n /**\n * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n * {@link Prism.highlightElement} on each one of them.\n *\n * The following hooks will be run:\n * 1. `before-highlightall`\n * 2. `before-all-elements-highlight`\n * 3. All hooks of {@link Prism.highlightElement} for each element.\n *\n * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n * @memberof Prism\n * @public\n */\n highlightAllUnder: function highlightAllUnder(container, async, callback) {\n var env = {\n callback: callback,\n container: container,\n selector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n };\n _.hooks.run('before-highlightall', env);\n env.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n _.hooks.run('before-all-elements-highlight', env);\n for (var i = 0, element; element = env.elements[i++];) {\n _.highlightElement(element, async === true, env.callback);\n }\n },\n /**\n * Highlights the code inside a single element.\n *\n * The following hooks will be run:\n * 1. `before-sanity-check`\n * 2. `before-highlight`\n * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n * 4. `before-insert`\n * 5. `after-highlight`\n * 6. `complete`\n *\n * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n * the element's language.\n *\n * @param {Element} element The element containing the code.\n * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n *\n * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n * asynchronous highlighting to work. You can build your own bundle on the\n * [Download page](https://prismjs.com/download.html).\n * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n * @memberof Prism\n * @public\n */\n highlightElement: function highlightElement(element, async, callback) {\n // Find language\n var language = _.util.getLanguage(element);\n var grammar = _.languages[language];\n\n // Set language on the element, if not present\n element.className = element.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language;\n\n // Set language on the parent, for styling\n var parent = element.parentElement;\n if (parent && parent.nodeName.toLowerCase() === 'pre') {\n parent.className = parent.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language;\n }\n var code = element.textContent;\n var env = {\n element: element,\n language: language,\n grammar: grammar,\n code: code\n };\n function insertHighlightedCode(highlightedCode) {\n env.highlightedCode = highlightedCode;\n _.hooks.run('before-insert', env);\n env.element.innerHTML = env.highlightedCode;\n _.hooks.run('after-highlight', env);\n _.hooks.run('complete', env);\n callback && callback.call(env.element);\n }\n _.hooks.run('before-sanity-check', env);\n if (!env.code) {\n _.hooks.run('complete', env);\n callback && callback.call(env.element);\n return;\n }\n _.hooks.run('before-highlight', env);\n if (!env.grammar) {\n insertHighlightedCode(_.util.encode(env.code));\n return;\n }\n if (async && _self.Worker) {\n var worker = new Worker(_.filename);\n worker.onmessage = function (evt) {\n insertHighlightedCode(evt.data);\n };\n worker.postMessage(JSON.stringify({\n language: env.language,\n code: env.code,\n immediateClose: true\n }));\n } else {\n insertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n }\n },\n /**\n * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n * and the language definitions to use, and returns a string with the HTML produced.\n *\n * The following hooks will be run:\n * 1. `before-tokenize`\n * 2. `after-tokenize`\n * 3. `wrap`: On each {@link Token}.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @param {string} language The name of the language definition passed to `grammar`.\n * @returns {string} The highlighted HTML.\n * @memberof Prism\n * @public\n * @example\n * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n */\n highlight: function highlight(text, grammar, language) {\n var env = {\n code: text,\n grammar: grammar,\n language: language\n };\n _.hooks.run('before-tokenize', env);\n env.tokens = _.tokenize(env.code, env.grammar);\n _.hooks.run('after-tokenize', env);\n return Token.stringify(_.util.encode(env.tokens), env.language);\n },\n /**\n * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n * and the language definitions to use, and returns an array with the tokenized code.\n *\n * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n *\n * This method could be useful in other contexts as well, as a very crude parser.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @returns {TokenStream} An array of strings and tokens, a token stream.\n * @memberof Prism\n * @public\n * @example\n * let code = `var foo = 0;`;\n * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n * tokens.forEach(token => {\n * if (token instanceof Prism.Token && token.type === 'number') {\n * console.log(`Found numeric literal: ${token.content}`);\n * }\n * });\n */\n tokenize: function tokenize(text, grammar) {\n var rest = grammar.rest;\n if (rest) {\n for (var token in rest) {\n grammar[token] = rest[token];\n }\n delete grammar.rest;\n }\n var tokenList = new LinkedList();\n addAfter(tokenList, tokenList.head, text);\n matchGrammar(text, tokenList, grammar, tokenList.head, 0);\n return toArray(tokenList);\n },\n /**\n * @namespace\n * @memberof Prism\n * @public\n */\n hooks: {\n all: {},\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string} name The name of the hook.\n * @param {HookCallback} callback The callback function which is given environment variables.\n * @public\n */\n add: function add(name, callback) {\n var hooks = _.hooks.all;\n hooks[name] = hooks[name] || [];\n hooks[name].push(callback);\n },\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run: function run(name, env) {\n var callbacks = _.hooks.all[name];\n if (!callbacks || !callbacks.length) {\n return;\n }\n for (var i = 0, callback; callback = callbacks[i++];) {\n callback(env);\n }\n }\n },\n Token: Token\n };\n _self.Prism = _;\n\n // Typescript note:\n // The following can be used to import the Token type in JSDoc:\n //\n // @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n /**\n * Creates a new token.\n *\n * @param {string} type See {@link Token#type type}\n * @param {string | TokenStream} content See {@link Token#content content}\n * @param {string|string[]} [alias] The alias(es) of the token.\n * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n * @class\n * @global\n * @public\n */\n function Token(type, content, alias, matchedStr) {\n /**\n * The type of the token.\n *\n * This is usually the key of a pattern in a {@link Grammar}.\n *\n * @type {string}\n * @see GrammarToken\n * @public\n */\n this.type = type;\n /**\n * The strings or tokens contained by this token.\n *\n * This will be a token stream if the pattern matched also defined an `inside` grammar.\n *\n * @type {string | TokenStream}\n * @public\n */\n this.content = content;\n /**\n * The alias(es) of the token.\n *\n * @type {string|string[]}\n * @see GrammarToken\n * @public\n */\n this.alias = alias;\n // Copy of the full string this token was created from\n this.length = (matchedStr || '').length | 0;\n }\n\n /**\n * A token stream is an array of strings and {@link Token Token} objects.\n *\n * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n * them.\n *\n * 1. No adjacent strings.\n * 2. No empty strings.\n *\n * The only exception here is the token stream that only contains the empty string and nothing else.\n *\n * @typedef {Array<string | Token>} TokenStream\n * @global\n * @public\n */\n\n /**\n * Converts the given token or token stream to an HTML representation.\n *\n * The following hooks will be run:\n * 1. `wrap`: On each {@link Token}.\n *\n * @param {string | Token | TokenStream} o The token or token stream to be converted.\n * @param {string} language The name of current language.\n * @returns {string} The HTML representation of the token or token stream.\n * @memberof Token\n * @static\n */\n Token.stringify = function stringify(o, language) {\n if (typeof o == 'string') {\n return o;\n }\n if (Array.isArray(o)) {\n var s = '';\n o.forEach(function (e) {\n s += stringify(e, language);\n });\n return s;\n }\n var env = {\n type: o.type,\n content: stringify(o.content, language),\n tag: 'span',\n classes: ['token', o.type],\n attributes: {},\n language: language\n };\n var aliases = o.alias;\n if (aliases) {\n if (Array.isArray(aliases)) {\n Array.prototype.push.apply(env.classes, aliases);\n } else {\n env.classes.push(aliases);\n }\n }\n _.hooks.run('wrap', env);\n var attributes = '';\n for (var name in env.attributes) {\n attributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n }\n return '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n };\n\n /**\n * @param {RegExp} pattern\n * @param {number} pos\n * @param {string} text\n * @param {boolean} lookbehind\n * @returns {RegExpExecArray | null}\n */\n function matchPattern(pattern, pos, text, lookbehind) {\n pattern.lastIndex = pos;\n var match = pattern.exec(text);\n if (match && lookbehind && match[1]) {\n // change the match to remove the text matched by the Prism lookbehind group\n var lookbehindLength = match[1].length;\n match.index += lookbehindLength;\n match[0] = match[0].slice(lookbehindLength);\n }\n return match;\n }\n\n /**\n * @param {string} text\n * @param {LinkedList<string | Token>} tokenList\n * @param {any} grammar\n * @param {LinkedListNode<string | Token>} startNode\n * @param {number} startPos\n * @param {RematchOptions} [rematch]\n * @returns {void}\n * @private\n *\n * @typedef RematchOptions\n * @property {string} cause\n * @property {number} reach\n */\n function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n for (var token in grammar) {\n if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n continue;\n }\n var patterns = grammar[token];\n patterns = Array.isArray(patterns) ? patterns : [patterns];\n for (var j = 0; j < patterns.length; ++j) {\n if (rematch && rematch.cause == token + ',' + j) {\n return;\n }\n var patternObj = patterns[j],\n inside = patternObj.inside,\n lookbehind = !!patternObj.lookbehind,\n greedy = !!patternObj.greedy,\n alias = patternObj.alias;\n if (greedy && !patternObj.pattern.global) {\n // Without the global flag, lastIndex won't work\n var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n patternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n }\n\n /** @type {RegExp} */\n var pattern = patternObj.pattern || patternObj;\n for (\n // iterate the token list and keep track of the current token/string position\n var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {\n if (rematch && pos >= rematch.reach) {\n break;\n }\n var str = currentNode.value;\n if (tokenList.length > text.length) {\n // Something went terribly wrong, ABORT, ABORT!\n return;\n }\n if (str instanceof Token) {\n continue;\n }\n var removeCount = 1; // this is the to parameter of removeBetween\n var match;\n if (greedy) {\n match = matchPattern(pattern, pos, text, lookbehind);\n if (!match) {\n break;\n }\n var from = match.index;\n var to = match.index + match[0].length;\n var p = pos;\n\n // find the node that contains the match\n p += currentNode.value.length;\n while (from >= p) {\n currentNode = currentNode.next;\n p += currentNode.value.length;\n }\n // adjust pos (and p)\n p -= currentNode.value.length;\n pos = p;\n\n // the current node is a Token, then the match starts inside another Token, which is invalid\n if (currentNode.value instanceof Token) {\n continue;\n }\n\n // find the last node which is affected by this match\n for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === 'string'); k = k.next) {\n removeCount++;\n p += k.value.length;\n }\n removeCount--;\n\n // replace with the new match\n str = text.slice(pos, p);\n match.index -= pos;\n } else {\n match = matchPattern(pattern, 0, str, lookbehind);\n if (!match) {\n continue;\n }\n }\n var from = match.index,\n matchStr = match[0],\n before = str.slice(0, from),\n after = str.slice(from + matchStr.length);\n var reach = pos + str.length;\n if (rematch && reach > rematch.reach) {\n rematch.reach = reach;\n }\n var removeFrom = currentNode.prev;\n if (before) {\n removeFrom = addAfter(tokenList, removeFrom, before);\n pos += before.length;\n }\n removeRange(tokenList, removeFrom, removeCount);\n var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n currentNode = addAfter(tokenList, removeFrom, wrapped);\n if (after) {\n addAfter(tokenList, currentNode, after);\n }\n if (removeCount > 1) {\n // at least one Token object was removed, so we have to do some rematching\n // this can only happen if the current pattern is greedy\n matchGrammar(text, tokenList, grammar, currentNode.prev, pos, {\n cause: token + ',' + j,\n reach: reach\n });\n }\n }\n }\n }\n }\n\n /**\n * @typedef LinkedListNode\n * @property {T} value\n * @property {LinkedListNode<T> | null} prev The previous node.\n * @property {LinkedListNode<T> | null} next The next node.\n * @template T\n * @private\n */\n\n /**\n * @template T\n * @private\n */\n function LinkedList() {\n /** @type {LinkedListNode<T>} */\n var head = {\n value: null,\n prev: null,\n next: null\n };\n /** @type {LinkedListNode<T>} */\n var tail = {\n value: null,\n prev: head,\n next: null\n };\n head.next = tail;\n\n /** @type {LinkedListNode<T>} */\n this.head = head;\n /** @type {LinkedListNode<T>} */\n this.tail = tail;\n this.length = 0;\n }\n\n /**\n * Adds a new node with the given value to the list.\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {T} value\n * @returns {LinkedListNode<T>} The added node.\n * @template T\n */\n function addAfter(list, node, value) {\n // assumes that node != list.tail && values.length >= 0\n var next = node.next;\n var newNode = {\n value: value,\n prev: node,\n next: next\n };\n node.next = newNode;\n next.prev = newNode;\n list.length++;\n return newNode;\n }\n /**\n * Removes `count` nodes after the given node. The given node will not be removed.\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {number} count\n * @template T\n */\n function removeRange(list, node, count) {\n var next = node.next;\n for (var i = 0; i < count && next !== list.tail; i++) {\n next = next.next;\n }\n node.next = next;\n next.prev = node;\n list.length -= i;\n }\n /**\n * @param {LinkedList<T>} list\n * @returns {T[]}\n * @template T\n */\n function toArray(list) {\n var array = [];\n var node = list.head.next;\n while (node !== list.tail) {\n array.push(node.value);\n node = node.next;\n }\n return array;\n }\n if (!_self.document) {\n if (!_self.addEventListener) {\n // in Node.js\n return _;\n }\n if (!_.disableWorkerMessageHandler) {\n // In worker\n _self.addEventListener('message', function (evt) {\n var message = JSON.parse(evt.data),\n lang = message.language,\n code = message.code,\n immediateClose = message.immediateClose;\n _self.postMessage(_.highlight(code, _.languages[lang], lang));\n if (immediateClose) {\n _self.close();\n }\n }, false);\n }\n return _;\n }\n\n // Get current script and highlight\n var script = _.util.currentScript();\n if (script) {\n _.filename = script.src;\n if (script.hasAttribute('data-manual')) {\n _.manual = true;\n }\n }\n function highlightAutomaticallyCallback() {\n if (!_.manual) {\n _.highlightAll();\n }\n }\n if (!_.manual) {\n // If the document state is \"loading\", then we'll use DOMContentLoaded.\n // If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n // DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n // might take longer one animation frame to execute which can create a race condition where only some plugins have\n // been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n // See https://github.com/PrismJS/prism/issues/2102\n var readyState = document.readyState;\n if (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n document.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n } else {\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(highlightAutomaticallyCallback);\n } else {\n window.setTimeout(highlightAutomaticallyCallback, 16);\n }\n }\n }\n return _;\n}(_self);\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n global.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n*/\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n*/\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */","(function (Prism) {\n var keyword = /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/;\n Prism.languages.cpp = Prism.languages.extend('c', {\n 'class-name': [{\n pattern: RegExp(/(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(/<keyword>/g, function () {\n return keyword.source;\n })),\n lookbehind: true\n },\n // This is intended to capture the class name of method implementations like:\n // void foo::bar() const {}\n // However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n // it starts with an uppercase letter. This approximation should give decent results.\n /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/,\n // This will capture the class name before destructors like:\n // Foo::~Foo() {}\n /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i,\n // This also intends to capture the class name of method implementations but here the class has template\n // parameters, so it can't be a namespace (until C++ adds generic namespaces).\n /\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/],\n 'keyword': keyword,\n 'number': {\n pattern: /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n greedy: true\n },\n 'operator': />>=?|<<=?|->|([-+&|:])\\1|[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n 'boolean': /\\b(?:true|false)\\b/\n });\n Prism.languages.insertBefore('cpp', 'string', {\n 'raw-string': {\n pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n alias: 'string',\n greedy: true\n }\n });\n Prism.languages.insertBefore('cpp', 'class-name', {\n // the base clause is an optional list of parent classes\n // https://en.cppreference.com/w/cpp/language/class\n 'base-clause': {\n pattern: /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.extend('cpp', {})\n }\n });\n Prism.languages.insertBefore('inside', 'operator', {\n // All untokenized words that are not namespaces should be class names\n 'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n }, Prism.languages.cpp['base-clause']);\n})(Prism);","Prism.languages.go = Prism.languages.extend('clike', {\n 'string': {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'keyword': /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n 'boolean': /\\b(?:_|iota|nil|true|false)\\b/,\n 'number': /(?:\\b0x[a-f\\d]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[-+]?\\d+)?)i?/i,\n 'operator': /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n 'builtin': /\\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\\b/\n});\ndelete Prism.languages.go['class-name'];","Prism.languages.javascript = Prism.languages.extend('clike', {\n 'class-name': [Prism.languages.clike['class-name'], {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:prototype|constructor))/,\n lookbehind: true\n }],\n 'keyword': [{\n pattern: /((?:^|})\\s*)(?:catch|finally)\\b/,\n lookbehind: true\n }, {\n pattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|(?:get|set)(?=\\s*[\\[$\\w\\xA0-\\uFFFF])|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n lookbehind: true\n }],\n // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n 'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n 'number': /\\b(?:(?:0[xX](?:[\\dA-Fa-f](?:_[\\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\\d(?:_\\d)?)+n|NaN|Infinity)\\b|(?:\\b(?:\\d(?:_\\d)?)+\\.?(?:\\d(?:_\\d)?)*|\\B\\.(?:\\d(?:_\\d)?)+)(?:[Ee][+-]?(?:\\d(?:_\\d)?)+)?/,\n 'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|interface|extends|implements|instanceof|new)\\s+)[\\w.\\\\]+/;\nPrism.languages.insertBefore('javascript', 'keyword', {\n 'regex': {\n pattern: /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[gimyus]{0,6}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-flags': /[a-z]+$/,\n 'regex-delimiter': /^\\/|\\/$/\n }\n },\n // This must be declared before keyword because we use \"function\" inside the look-forward\n 'function-variable': {\n pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n },\n 'parameter': [{\n pattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }, {\n pattern: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n inside: Prism.languages.javascript\n }, {\n pattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }, {\n pattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }],\n 'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\nPrism.languages.insertBefore('javascript', 'string', {\n 'template-string': {\n pattern: /`(?:\\\\[\\s\\S]|\\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\\${)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n 'interpolation': {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\${|}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.javascript\n }\n },\n 'string': /[\\s\\S]+/\n }\n }\n});\nif (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript');\n}\nPrism.languages.js = Prism.languages.javascript;","Prism.languages.markup = {\n 'comment': /<!--[\\s\\S]*?-->/,\n 'prolog': /<\\?[\\s\\S]+?\\?>/,\n 'doctype': {\n // https://www.w3.org/TR/xml/#NT-doctypedecl\n pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n greedy: true,\n inside: {\n 'internal-subset': {\n pattern: /(\\[)[\\s\\S]+(?=\\]>$)/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n\n 'string': {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n 'punctuation': /^<!|>$|[[\\]]/,\n 'doctype-tag': /^DOCTYPE/,\n 'name': /[^\\s<>'\"]+/\n }\n },\n 'cdata': /<!\\[CDATA\\[[\\s\\S]*?]]>/i,\n 'tag': {\n pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n greedy: true,\n inside: {\n 'tag': {\n pattern: /^<\\/?[^\\s>\\/]+/,\n inside: {\n 'punctuation': /^<\\/?/,\n 'namespace': /^[^\\s>\\/:]+:/\n }\n },\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n 'punctuation': [{\n pattern: /^=/,\n alias: 'attr-equals'\n }, /\"|'/]\n }\n },\n 'punctuation': /\\/?>/,\n 'attr-name': {\n pattern: /[^\\s>\\/]+/,\n inside: {\n 'namespace': /^[^\\s>\\/:]+:/\n }\n }\n }\n },\n 'entity': [{\n pattern: /&[\\da-z]{1,8};/i,\n alias: 'named-entity'\n }, /&#x?[\\da-f]{1,8};/i]\n};\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] = Prism.languages.markup['entity'];\nPrism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup;\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.replace(/&/, '&');\n }\n});\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n /**\n * Adds an inlined language to markup.\n *\n * An example of an inlined language is CSS with `<style>` tags.\n *\n * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addInlined('style', 'css');\n */\n value: function addInlined(tagName, lang) {\n var includedCdataInside = {};\n includedCdataInside['language-' + lang] = {\n pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n lookbehind: true,\n inside: Prism.languages[lang]\n };\n includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n var inside = {\n 'included-cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n inside: includedCdataInside\n }\n };\n inside['language-' + lang] = {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages[lang]\n };\n var def = {};\n def[tagName] = {\n pattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () {\n return tagName;\n }), 'i'),\n lookbehind: true,\n greedy: true,\n inside: inside\n };\n Prism.languages.insertBefore('markup', 'cdata', def);\n }\n});\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\nPrism.languages.xml = Prism.languages.extend('markup', {});\nPrism.languages.ssml = Prism.languages.xml;\nPrism.languages.atom = Prism.languages.xml;\nPrism.languages.rss = Prism.languages.xml;","Prism.languages.python = {\n 'comment': {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n },\n 'string-interpolation': {\n pattern: /(?:f|rf|fr)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n greedy: true,\n inside: {\n 'interpolation': {\n // \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n pattern: /((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,\n lookbehind: true,\n inside: {\n 'format-spec': {\n pattern: /(:)[^:(){}]+(?=}$)/,\n lookbehind: true\n },\n 'conversion-option': {\n pattern: /![sra](?=[:}]$)/,\n alias: 'punctuation'\n },\n rest: null\n }\n },\n 'string': /[\\s\\S]+/\n }\n },\n 'triple-quoted-string': {\n pattern: /(?:[rub]|rb|br)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n greedy: true,\n alias: 'string'\n },\n 'string': {\n pattern: /(?:[rub]|rb|br)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n greedy: true\n },\n 'function': {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n lookbehind: true\n },\n 'class-name': {\n pattern: /(\\bclass\\s+)\\w+/i,\n lookbehind: true\n },\n 'decorator': {\n pattern: /(^\\s*)@\\w+(?:\\.\\w+)*/im,\n lookbehind: true,\n alias: ['annotation', 'punctuation'],\n inside: {\n 'punctuation': /\\./\n }\n },\n 'keyword': /\\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n 'builtin': /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n 'boolean': /\\b(?:True|False|None)\\b/,\n 'number': /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,\n 'operator': /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n 'punctuation': /[{}[\\];(),.:]/\n};\nPrism.languages.python['string-interpolation'].inside['interpolation'].inside.rest = Prism.languages.python;\nPrism.languages.py = Prism.languages.python;","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport isRequiredForA11y from 'prop-types-extra/lib/isRequiredForA11y';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n placement: 'right'\n};\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n placement = _ref.placement,\n className = _ref.className,\n style = _ref.style,\n children = _ref.children,\n arrowProps = _ref.arrowProps,\n _ = _ref.popper,\n _2 = _ref.show,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"placement\", \"className\", \"style\", \"children\", \"arrowProps\", \"popper\", \"show\"]);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'tooltip');\n var _ref2 = (placement == null ? void 0 : placement.split('-')) || [],\n primaryPlacement = _ref2[0];\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n style: style,\n role: \"tooltip\",\n \"x-placement\": primaryPlacement,\n className: classNames(className, bsPrefix, \"bs-tooltip-\" + primaryPlacement)\n }, props), /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"arrow\"\n }, arrowProps)), /*#__PURE__*/React.createElement(\"div\", {\n className: bsPrefix + \"-inner\"\n }, children));\n});\nTooltip.defaultProps = defaultProps;\nTooltip.displayName = 'Tooltip';\nexport default Tooltip;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar Spinner = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n variant = _ref.variant,\n animation = _ref.animation,\n size = _ref.size,\n children = _ref.children,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"variant\", \"animation\", \"size\", \"children\", \"as\", \"className\"]);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'spinner');\n var bsSpinnerPrefix = bsPrefix + \"-\" + animation;\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, bsSpinnerPrefix, size && bsSpinnerPrefix + \"-\" + size, variant && \"text-\" + variant)\n }), children);\n});\nSpinner.displayName = 'Spinner';\nexport default Spinner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n vertical: false,\n toggle: false,\n role: 'group'\n};\nvar ButtonGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n size = _ref.size,\n toggle = _ref.toggle,\n vertical = _ref.vertical,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n rest = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"size\", \"toggle\", \"vertical\", \"className\", \"as\"]);\n var prefix = useBootstrapPrefix(bsPrefix, 'btn-group');\n var baseClass = prefix;\n if (vertical) baseClass = prefix + \"-vertical\";\n return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {\n ref: ref,\n className: classNames(className, baseClass, size && prefix + \"-\" + size, toggle && prefix + \"-toggle\")\n }));\n});\nButtonGroup.displayName = 'ButtonGroup';\nButtonGroup.defaultProps = defaultProps;\nexport default ButtonGroup;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React, { useCallback, useState } from 'react';\nimport Button from './Button';\nvar noop = function noop() {\n return undefined;\n};\nvar ToggleButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var children = _ref.children,\n name = _ref.name,\n className = _ref.className,\n checked = _ref.checked,\n type = _ref.type,\n onChange = _ref.onChange,\n value = _ref.value,\n disabled = _ref.disabled,\n inputRef = _ref.inputRef,\n props = _objectWithoutPropertiesLoose(_ref, [\"children\", \"name\", \"className\", \"checked\", \"type\", \"onChange\", \"value\", \"disabled\", \"inputRef\"]);\n var _useState = useState(false),\n focused = _useState[0],\n setFocused = _useState[1];\n var handleFocus = useCallback(function (e) {\n if (e.target.tagName === 'INPUT') setFocused(true);\n }, []);\n var handleBlur = useCallback(function (e) {\n if (e.target.tagName === 'INPUT') setFocused(false);\n }, []);\n return /*#__PURE__*/React.createElement(Button, _extends({}, props, {\n ref: ref,\n className: classNames(className, focused && 'focus', disabled && 'disabled'),\n type: undefined,\n active: !!checked,\n as: \"label\"\n }), /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: type,\n value: value,\n ref: inputRef,\n autoComplete: \"off\",\n checked: !!checked,\n disabled: !!disabled,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: onChange || noop\n }), children);\n});\nToggleButton.displayName = 'ToggleButton';\nexport default ToggleButton;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport invariant from 'invariant';\nimport { useUncontrolled } from 'uncontrollable';\nimport chainFunction from './createChainedFunction';\nimport { map } from './ElementChildren';\nimport ButtonGroup from './ButtonGroup';\nimport ToggleButton from './ToggleButton';\nvar defaultProps = {\n type: 'radio',\n vertical: false\n};\nvar ToggleButtonGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _useUncontrolled = useUncontrolled(props, {\n value: 'onChange'\n }),\n children = _useUncontrolled.children,\n type = _useUncontrolled.type,\n name = _useUncontrolled.name,\n value = _useUncontrolled.value,\n onChange = _useUncontrolled.onChange,\n controlledProps = _objectWithoutPropertiesLoose(_useUncontrolled, [\"children\", \"type\", \"name\", \"value\", \"onChange\"]);\n var getValues = function getValues() {\n return value == null ? [] : [].concat(value);\n };\n var handleToggle = function handleToggle(inputVal, event) {\n if (!onChange) {\n return;\n }\n var values = getValues();\n var isActive = values.indexOf(inputVal) !== -1;\n if (type === 'radio') {\n if (!isActive && onChange) onChange(inputVal, event);\n return;\n }\n if (isActive) {\n onChange(values.filter(function (n) {\n return n !== inputVal;\n }), event);\n } else {\n onChange([].concat(values, [inputVal]), event);\n }\n };\n !(type !== 'radio' || !!name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A `name` is required to group the toggle buttons when the `type` ' + 'is set to \"radio\"') : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(ButtonGroup, _extends({}, controlledProps, {\n ref: ref,\n toggle: true\n }), map(children, function (child) {\n var values = getValues();\n var _child$props = child.props,\n childVal = _child$props.value,\n childOnChange = _child$props.onChange;\n var handler = function handler(e) {\n return handleToggle(childVal, e);\n };\n return /*#__PURE__*/React.cloneElement(child, {\n type: type,\n name: child.name || name,\n checked: values.indexOf(childVal) !== -1,\n onChange: chainFunction(childOnChange, handler)\n });\n }));\n});\nToggleButtonGroup.defaultProps = defaultProps;\nToggleButtonGroup.Button = ToggleButton;\nexport default ToggleButtonGroup;","import React from 'react';\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\n\nfunction map(children, func) {\n var index = 0;\n return React.Children.map(children, function (child) {\n return /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child;\n });\n}\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\n\nfunction forEach(children, func) {\n var index = 0;\n React.Children.forEach(children, function (child) {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\nexport { map, forEach };","import useUpdatedRef from './useUpdatedRef';\nimport { useEffect } from 'react';\n/**\n * Attach a callback that fires when a component unmounts\n *\n * @param fn Handler to run when the component unmounts\n * @category effects\n */\n\nexport default function useWillUnmount(fn) {\n var onUnmount = useUpdatedRef(fn);\n useEffect(function () {\n return function () {\n return onUnmount.current();\n };\n }, []);\n}","import { useRef } from 'react';\n/**\n * Returns a ref that is immediately updated with the new value\n *\n * @param value The Ref value\n * @category refs\n */\n\nexport default function useUpdatedRef(value) {\n var valueRef = useRef(value);\n valueRef.current = value;\n return valueRef;\n}","import { useMemo, useRef } from 'react';\nimport useMounted from './useMounted';\nimport useWillUnmount from './useWillUnmount';\n/*\n * Browsers including Internet Explorer, Chrome, Safari, and Firefox store the\n * delay as a 32-bit signed integer internally. This causes an integer overflow\n * when using delays larger than 2,147,483,647 ms (about 24.8 days),\n * resulting in the timeout being executed immediately.\n *\n * via: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout\n */\n\nvar MAX_DELAY_MS = Math.pow(2, 31) - 1;\nfunction setChainedTimeout(handleRef, fn, timeoutAtMs) {\n var delayMs = timeoutAtMs - Date.now();\n handleRef.current = delayMs <= MAX_DELAY_MS ? setTimeout(fn, delayMs) : setTimeout(function () {\n return setChainedTimeout(handleRef, fn, timeoutAtMs);\n }, MAX_DELAY_MS);\n}\n/**\n * Returns a controller object for setting a timeout that is properly cleaned up\n * once the component unmounts. New timeouts cancel and replace existing ones.\n *\n *\n *\n * ```tsx\n * const { set, clear } = useTimeout();\n * const [hello, showHello] = useState(false);\n * //Display hello after 5 seconds\n * set(() => showHello(true), 5000);\n * return (\n * <div className=\"App\">\n * {hello ? <h3>Hello</h3> : null}\n * </div>\n * );\n * ```\n */\n\nexport default function useTimeout() {\n var isMounted = useMounted(); // types are confused between node and web here IDK\n\n var handleRef = useRef();\n useWillUnmount(function () {\n return clearTimeout(handleRef.current);\n });\n return useMemo(function () {\n var clear = function clear() {\n return clearTimeout(handleRef.current);\n };\n function set(fn, delayMs) {\n if (delayMs === void 0) {\n delayMs = 0;\n }\n if (!isMounted()) return;\n clear();\n if (delayMs <= MAX_DELAY_MS) {\n // For simplicity, if the timeout is short, just set a normal timeout.\n handleRef.current = setTimeout(fn, delayMs);\n } else {\n setChainedTimeout(handleRef, fn, Date.now() + delayMs);\n }\n }\n return {\n set: set,\n clear: clear\n };\n }, []);\n}","import { useRef, useEffect } from 'react';\n/**\n * Track whether a component is current mounted. Generally less preferable than\n * properlly canceling effects so they don't run after a component is unmounted,\n * but helpful in cases where that isn't feasible, such as a `Promise` resolution.\n *\n * @returns a function that returns the current isMounted state of the component\n *\n * ```ts\n * const [data, setData] = useState(null)\n * const isMounted = useMounted()\n *\n * useEffect(() => {\n * fetchdata().then((newData) => {\n * if (isMounted()) {\n * setData(newData);\n * }\n * })\n * })\n * ```\n */\n\nexport default function useMounted() {\n var mounted = useRef(true);\n var isMounted = useRef(function () {\n return mounted.current;\n });\n useEffect(function () {\n return function () {\n mounted.current = false;\n };\n }, []);\n return isMounted.current;\n}","import { useMemo } from 'react';\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\nexport function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (a) a(value);\n if (b) b(value);\n };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef<HTMLButtonElement>();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return <button ref={mergedRef} {...props}/>\n * })\n * ```\n *\n * @param refA A Callback or mutable Ref\n * @param refB A Callback or mutable Ref\n * @category refs\n */\n\nfunction useMergedRefs(refA, refB) {\n return useMemo(function () {\n return mergeRefs(refA, refB);\n }, [refA, refB]);\n}\nexport default useMergedRefs;","import ownerDocument from 'dom-helpers/ownerDocument';\nimport { useState, useEffect } from 'react';\nexport var resolveContainerRef = function resolveContainerRef(ref) {\n var _ref;\n if (typeof document === 'undefined') return null;\n if (ref == null) return ownerDocument().body;\n if (typeof ref === 'function') ref = ref();\n if (ref && 'current' in ref) ref = ref.current;\n if ((_ref = ref) != null && _ref.nodeType) return ref || null;\n return null;\n};\nexport default function useWaitForDOMRef(ref, onResolved) {\n var _useState = useState(function () {\n return resolveContainerRef(ref);\n }),\n resolvedRef = _useState[0],\n setRef = _useState[1];\n if (!resolvedRef) {\n var earlyRef = resolveContainerRef(ref);\n if (earlyRef) setRef(earlyRef);\n }\n useEffect(function () {\n if (onResolved && resolvedRef) {\n onResolved(resolvedRef);\n }\n }, [onResolved, resolvedRef]);\n useEffect(function () {\n var nextRef = resolveContainerRef(ref);\n if (nextRef !== resolvedRef) {\n setRef(nextRef);\n }\n }, [ref, resolvedRef]);\n return resolvedRef;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { placements } from './popper';\nimport usePopper from './usePopper';\nimport useRootClose from './useRootClose';\nimport useWaitForDOMRef from './useWaitForDOMRef';\nimport mergeOptionsWithPopperConfig from './mergeOptionsWithPopperConfig';\n\n/**\n * Built on top of `Popper.js`, the overlay component is\n * great for custom tooltip overlays.\n */\nvar Overlay = /*#__PURE__*/React.forwardRef(function (props, outerRef) {\n var flip = props.flip,\n offset = props.offset,\n placement = props.placement,\n _props$containerPaddi = props.containerPadding,\n containerPadding = _props$containerPaddi === void 0 ? 5 : _props$containerPaddi,\n _props$popperConfig = props.popperConfig,\n popperConfig = _props$popperConfig === void 0 ? {} : _props$popperConfig,\n Transition = props.transition;\n var _useCallbackRef = useCallbackRef(),\n rootElement = _useCallbackRef[0],\n attachRef = _useCallbackRef[1];\n var _useCallbackRef2 = useCallbackRef(),\n arrowElement = _useCallbackRef2[0],\n attachArrowRef = _useCallbackRef2[1];\n var mergedRef = useMergedRefs(attachRef, outerRef);\n var container = useWaitForDOMRef(props.container);\n var target = useWaitForDOMRef(props.target);\n var _useState = useState(!props.show),\n exited = _useState[0],\n setExited = _useState[1];\n var _usePopper = usePopper(target, rootElement, mergeOptionsWithPopperConfig({\n placement: placement,\n enableEvents: !!props.show,\n containerPadding: containerPadding || 5,\n flip: flip,\n offset: offset,\n arrowElement: arrowElement,\n popperConfig: popperConfig\n })),\n styles = _usePopper.styles,\n attributes = _usePopper.attributes,\n popper = _objectWithoutPropertiesLoose(_usePopper, [\"styles\", \"attributes\"]);\n if (props.show) {\n if (exited) setExited(false);\n } else if (!props.transition && !exited) {\n setExited(true);\n }\n var handleHidden = function handleHidden() {\n setExited(true);\n if (props.onExited) {\n props.onExited.apply(props, arguments);\n }\n }; // Don't un-render the overlay while it's transitioning out.\n\n var mountOverlay = props.show || Transition && !exited;\n useRootClose(rootElement, props.onHide, {\n disabled: !props.rootClose || props.rootCloseDisabled,\n clickTrigger: props.rootCloseEvent\n });\n if (!mountOverlay) {\n // Don't bother showing anything if we don't have to.\n return null;\n }\n var child = props.children(_extends({}, popper, {\n show: !!props.show,\n props: _extends({}, attributes.popper, {\n style: styles.popper,\n ref: mergedRef\n }),\n arrowProps: _extends({}, attributes.arrow, {\n style: styles.arrow,\n ref: attachArrowRef\n })\n }));\n if (Transition) {\n var onExit = props.onExit,\n onExiting = props.onExiting,\n onEnter = props.onEnter,\n onEntering = props.onEntering,\n onEntered = props.onEntered;\n child = /*#__PURE__*/React.createElement(Transition, {\n \"in\": props.show,\n appear: true,\n onExit: onExit,\n onExiting: onExiting,\n onExited: handleHidden,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered\n }, child);\n }\n return container ? /*#__PURE__*/ReactDOM.createPortal(child, container) : null;\n});\nOverlay.displayName = 'Overlay';\nOverlay.propTypes = {\n /**\n * Set the visibility of the Overlay\n */\n show: PropTypes.bool,\n /** Specify where the overlay element is positioned in relation to the target element */\n placement: PropTypes.oneOf(placements),\n /**\n * A DOM Element, Ref to an element, or function that returns either. The `target` element is where\n * the overlay is positioned relative to.\n */\n target: PropTypes.any,\n /**\n * A DOM Element, Ref to an element, or function that returns either. The `container` will have the Portal children\n * appended to it.\n */\n container: PropTypes.any,\n /**\n * Enables the Popper.js `flip` modifier, allowing the Overlay to\n * automatically adjust it's placement in case of overlap with the viewport or toggle.\n * Refer to the [flip docs](https://popper.js.org/popper-documentation.html#modifiers..flip.enabled) for more info\n */\n flip: PropTypes.bool,\n /**\n * A render prop that returns an element to overlay and position. See\n * the [react-popper documentation](https://github.com/FezVrasta/react-popper#children) for more info.\n *\n * @type {Function ({\n * show: boolean,\n * placement: Placement,\n * update: () => void,\n * forceUpdate: () => void,\n * props: {\n * ref: (?HTMLElement) => void,\n * style: { [string]: string | number },\n * aria-labelledby: ?string\n * [string]: string | number,\n * },\n * arrowProps: {\n * ref: (?HTMLElement) => void,\n * style: { [string]: string | number },\n * [string]: string | number,\n * },\n * }) => React.Element}\n */\n children: PropTypes.func.isRequired,\n /**\n * Control how much space there is between the edge of the boundary element and overlay.\n * A convenience shortcut to setting `popperConfig.modfiers.preventOverflow.padding`\n */\n containerPadding: PropTypes.number,\n /**\n * A set of popper options and props passed directly to react-popper's Popper component.\n */\n popperConfig: PropTypes.object,\n /**\n * Specify whether the overlay should trigger `onHide` when the user clicks outside the overlay\n */\n rootClose: PropTypes.bool,\n /**\n * Specify event for toggling overlay\n */\n rootCloseEvent: PropTypes.oneOf(['click', 'mousedown']),\n /**\n * Specify disabled for disable RootCloseWrapper\n */\n rootCloseDisabled: PropTypes.bool,\n /**\n * A Callback fired by the Overlay when it wishes to be hidden.\n *\n * __required__ when `rootClose` is `true`.\n *\n * @type func\n */\n onHide: function onHide(props) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (props.rootClose) {\n var _PropTypes$func;\n return (_PropTypes$func = PropTypes.func).isRequired.apply(_PropTypes$func, [props].concat(args));\n }\n return PropTypes.func.apply(PropTypes, [props].concat(args));\n },\n /**\n * A `[email protected]` `<Transition/>` component\n * used to animate the overlay as it changes visibility.\n */\n // @ts-ignore\n transition: PropTypes.elementType,\n /**\n * Callback fired before the Overlay transitions in\n */\n onEnter: PropTypes.func,\n /**\n * Callback fired as the Overlay begins to transition in\n */\n onEntering: PropTypes.func,\n /**\n * Callback fired after the Overlay finishes transitioning in\n */\n onEntered: PropTypes.func,\n /**\n * Callback fired right before the Overlay transitions out\n */\n onExit: PropTypes.func,\n /**\n * Callback fired as the Overlay begins to transition out\n */\n onExiting: PropTypes.func,\n /**\n * Callback fired after the Overlay finishes transitioning out\n */\n onExited: PropTypes.func\n};\nexport default Overlay;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _fadeStyles;\nimport classNames from 'classnames';\nimport React, { useCallback } from 'react';\nimport Transition, { ENTERED, ENTERING } from 'react-transition-group/Transition';\nimport transitionEndListener from './transitionEndListener';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nvar defaultProps = {\n in: false,\n timeout: 300,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false\n};\nvar fadeStyles = (_fadeStyles = {}, _fadeStyles[ENTERING] = 'show', _fadeStyles[ENTERED] = 'show', _fadeStyles);\nvar Fade = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, [\"className\", \"children\"]);\n var handleEnter = useCallback(function (node) {\n triggerBrowserReflow(node);\n if (props.onEnter) props.onEnter(node);\n }, [props]);\n return /*#__PURE__*/React.createElement(Transition, _extends({\n ref: ref,\n addEndListener: transitionEndListener\n }, props, {\n onEnter: handleEnter\n }), function (status, innerProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({}, innerProps, {\n className: classNames('fade', className, children.props.className, fadeStyles[status])\n }));\n });\n});\nFade.defaultProps = defaultProps;\nFade.displayName = 'Fade';\nexport default Fade;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport BaseOverlay from 'react-overlays/Overlay';\nimport safeFindDOMNode from 'react-overlays/safeFindDOMNode';\nimport usePopperMarginModifiers from './usePopperMarginModifiers';\nimport Fade from './Fade';\nvar defaultProps = {\n transition: Fade,\n rootClose: false,\n show: false,\n placement: 'top'\n};\nfunction wrapRefs(props, arrowProps) {\n var ref = props.ref;\n var aRef = arrowProps.ref;\n props.ref = ref.__wrapped || (ref.__wrapped = function (r) {\n return ref(safeFindDOMNode(r));\n });\n arrowProps.ref = aRef.__wrapped || (aRef.__wrapped = function (r) {\n return aRef(safeFindDOMNode(r));\n });\n}\nfunction Overlay(_ref) {\n var overlay = _ref.children,\n transition = _ref.transition,\n _ref$popperConfig = _ref.popperConfig,\n popperConfig = _ref$popperConfig === void 0 ? {} : _ref$popperConfig,\n outerProps = _objectWithoutPropertiesLoose(_ref, [\"children\", \"transition\", \"popperConfig\"]);\n var popperRef = useRef({});\n var _usePopperMarginModif = usePopperMarginModifiers(),\n ref = _usePopperMarginModif[0],\n marginModifiers = _usePopperMarginModif[1];\n var actualTransition = transition === true ? Fade : transition || null;\n return /*#__PURE__*/React.createElement(BaseOverlay, _extends({}, outerProps, {\n ref: ref,\n popperConfig: _extends({}, popperConfig, {\n modifiers: marginModifiers.concat(popperConfig.modifiers || [])\n }),\n transition: actualTransition\n }), function (_ref2) {\n var _state$modifiersData$;\n var overlayProps = _ref2.props,\n arrowProps = _ref2.arrowProps,\n show = _ref2.show,\n update = _ref2.update,\n _ = _ref2.forceUpdate,\n placement = _ref2.placement,\n state = _ref2.state,\n props = _objectWithoutPropertiesLoose(_ref2, [\"props\", \"arrowProps\", \"show\", \"update\", \"forceUpdate\", \"placement\", \"state\"]);\n wrapRefs(overlayProps, arrowProps);\n var popper = Object.assign(popperRef.current, {\n state: state,\n scheduleUpdate: update,\n placement: placement,\n outOfBoundaries: (state == null ? void 0 : (_state$modifiersData$ = state.modifiersData.hide) == null ? void 0 : _state$modifiersData$.isReferenceHidden) || false\n });\n if (typeof overlay === 'function') return overlay(_extends({}, props, overlayProps, {\n placement: placement,\n show: show\n }, !transition && show && {\n className: 'show'\n }, {\n popper: popper,\n arrowProps: arrowProps\n }));\n return /*#__PURE__*/React.cloneElement(overlay, _extends({}, props, overlayProps, {\n placement: placement,\n arrowProps: arrowProps,\n popper: popper,\n className: classNames(overlay.props.className, !transition && show && 'show'),\n style: _extends({}, overlay.props.style, overlayProps.style)\n }));\n });\n}\nOverlay.defaultProps = defaultProps;\nexport default Overlay;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport contains from 'dom-helpers/contains';\nimport React, { cloneElement, useCallback, useRef } from 'react';\nimport useTimeout from '@restart/hooks/useTimeout';\nimport safeFindDOMNode from 'react-overlays/safeFindDOMNode';\nimport warning from 'warning';\nimport { useUncontrolledProp } from 'uncontrollable';\nimport Overlay from './Overlay';\nvar RefHolder = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(RefHolder, _React$Component);\n function RefHolder() {\n return _React$Component.apply(this, arguments) || this;\n }\n var _proto = RefHolder.prototype;\n _proto.render = function render() {\n return this.props.children;\n };\n return RefHolder;\n}(React.Component);\nfunction normalizeDelay(delay) {\n return delay && typeof delay === 'object' ? delay : {\n show: delay,\n hide: delay\n };\n} // Simple implementation of mouseEnter and mouseLeave.\n// React's built version is broken: https://github.com/facebook/react/issues/4251\n// for cases when the trigger is disabled and mouseOut/Over can cause flicker\n// moving from one child element to another.\n\nfunction handleMouseOverOut(\n// eslint-disable-next-line @typescript-eslint/no-shadow\nhandler, args, relatedNative) {\n var e = args[0];\n var target = e.currentTarget;\n var related = e.relatedTarget || e.nativeEvent[relatedNative];\n if ((!related || related !== target) && !contains(target, related)) {\n handler.apply(void 0, args);\n }\n}\nvar defaultProps = {\n defaultShow: false,\n trigger: ['hover', 'focus']\n};\nfunction OverlayTrigger(_ref) {\n var trigger = _ref.trigger,\n overlay = _ref.overlay,\n children = _ref.children,\n _ref$popperConfig = _ref.popperConfig,\n popperConfig = _ref$popperConfig === void 0 ? {} : _ref$popperConfig,\n propsShow = _ref.show,\n _ref$defaultShow = _ref.defaultShow,\n defaultShow = _ref$defaultShow === void 0 ? false : _ref$defaultShow,\n onToggle = _ref.onToggle,\n propsDelay = _ref.delay,\n placement = _ref.placement,\n _ref$flip = _ref.flip,\n flip = _ref$flip === void 0 ? placement && placement.indexOf('auto') !== -1 : _ref$flip,\n props = _objectWithoutPropertiesLoose(_ref, [\"trigger\", \"overlay\", \"children\", \"popperConfig\", \"show\", \"defaultShow\", \"onToggle\", \"delay\", \"placement\", \"flip\"]);\n var triggerNodeRef = useRef(null);\n var timeout = useTimeout();\n var hoverStateRef = useRef('');\n var _useUncontrolledProp = useUncontrolledProp(propsShow, defaultShow, onToggle),\n show = _useUncontrolledProp[0],\n setShow = _useUncontrolledProp[1];\n var delay = normalizeDelay(propsDelay);\n var _ref2 = typeof children !== 'function' ? React.Children.only(children).props : {},\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick;\n var getTarget = useCallback(function () {\n return safeFindDOMNode(triggerNodeRef.current);\n }, []);\n var handleShow = useCallback(function () {\n timeout.clear();\n hoverStateRef.current = 'show';\n if (!delay.show) {\n setShow(true);\n return;\n }\n timeout.set(function () {\n if (hoverStateRef.current === 'show') setShow(true);\n }, delay.show);\n }, [delay.show, setShow, timeout]);\n var handleHide = useCallback(function () {\n timeout.clear();\n hoverStateRef.current = 'hide';\n if (!delay.hide) {\n setShow(false);\n return;\n }\n timeout.set(function () {\n if (hoverStateRef.current === 'hide') setShow(false);\n }, delay.hide);\n }, [delay.hide, setShow, timeout]);\n var handleFocus = useCallback(function () {\n handleShow();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n onFocus == null ? void 0 : onFocus.apply(void 0, args);\n }, [handleShow, onFocus]);\n var handleBlur = useCallback(function () {\n handleHide();\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n onBlur == null ? void 0 : onBlur.apply(void 0, args);\n }, [handleHide, onBlur]);\n var handleClick = useCallback(function () {\n setShow(!show);\n if (onClick) onClick.apply(void 0, arguments);\n }, [onClick, setShow, show]);\n var handleMouseOver = useCallback(function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n handleMouseOverOut(handleShow, args, 'fromElement');\n }, [handleShow]);\n var handleMouseOut = useCallback(function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n handleMouseOverOut(handleHide, args, 'toElement');\n }, [handleHide]);\n var triggers = trigger == null ? [] : [].concat(trigger);\n var triggerProps = {};\n if (triggers.indexOf('click') !== -1) {\n triggerProps.onClick = handleClick;\n }\n if (triggers.indexOf('focus') !== -1) {\n triggerProps.onFocus = handleFocus;\n triggerProps.onBlur = handleBlur;\n }\n if (triggers.indexOf('hover') !== -1) {\n process.env.NODE_ENV !== \"production\" ? warning(triggers.length > 1, '[react-bootstrap] Specifying only the `\"hover\"` trigger limits the visibility of the overlay to just mouse users. Consider also including the `\"focus\"` trigger so that touch and keyboard only users can see the overlay as well.') : void 0;\n triggerProps.onMouseOver = handleMouseOver;\n triggerProps.onMouseOut = handleMouseOut;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, typeof children === 'function' ? children(_extends({}, triggerProps, {\n ref: triggerNodeRef\n })) : /*#__PURE__*/React.createElement(RefHolder, {\n ref: triggerNodeRef\n }, /*#__PURE__*/cloneElement(children, triggerProps)), /*#__PURE__*/React.createElement(Overlay, _extends({}, props, {\n show: show,\n onHide: handleHide,\n flip: flip,\n placement: placement,\n popperConfig: popperConfig,\n target: getTarget\n }), overlay));\n}\nOverlayTrigger.defaultProps = defaultProps;\nexport default OverlayTrigger;","// extracted by mini-css-extract-plugin\nexport const top = \"utbot-desktop-module--top--Sgard\";\nexport const main = \"utbot-desktop-module--main--s8dDE\";\nexport const detailsEditor = \"utbot-desktop-module--detailsEditor--Sr8tQ\";\nexport const detailsContainer = \"utbot-desktop-module--detailsContainer--u3W8-\";\nexport const codeEditor = \"utbot-desktop-module--codeEditor--wGc00\";\nexport const codeEditorContainer = \"utbot-desktop-module--codeEditorContainer--jhtD1\";\nexport const codeEditorsContainer = \"utbot-desktop-module--codeEditorsContainer--IXuBx\";\nexport const sourceCodeEditorcontainer = \"utbot-desktop-module--sourceCodeEditorcontainer--VfaFh\";\nexport const testsEditorContainer = \"utbot-desktop-module--testsEditorContainer--YS8Tv\";\nexport const alert = \"utbot-desktop-module--alert--jWLzv\";\nexport const generateAndRunTestsButtonContainer = \"utbot-desktop-module--generateAndRunTestsButtonContainer--xWoaO\";\nexport const generateAndRunTestsButton = \"utbot-desktop-module--generateAndRunTestsButton---TpCy\";\nexport const toolbarContainer = \"utbot-desktop-module--toolbarContainer--WX2aO\";\nexport const copyLinkButton = \"utbot-desktop-module--copyLinkButton--wwfTM\";\nexport const dropdownLanguages = \"utbot-desktop-module--dropdownLanguages--4kA+Z\";\nexport const dropdownContainer = \"utbot-desktop-module--dropdownContainer--nQY1j\";","// extracted by mini-css-extract-plugin\nexport const main = \"utbot-mobile-module--main--CrMQs\";\nexport const navDropdownContainer = \"utbot-mobile-module--navDropdownContainer--FZaCl\";\nexport const topToolbar = \"utbot-mobile-module--topToolbar--A+FKY\";\nexport const toolbar = \"utbot-mobile-module--toolbar--Dnavd\";\nexport const codeEditor = \"utbot-mobile-module--codeEditor--NzHaW\";\nexport const generateAndRunTestsButton = \"utbot-mobile-module--generateAndRunTestsButton--+XKTl\";\nexport const btnBg = \"utbot-mobile-module--btnBg--nou9n\";","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _unsupportedIterableToArray as unsupportedIterableToArray };","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n return [getState, setState];\n}\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\nvar index = {\n create: create\n};\nexport default index;","var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/[email protected]/min/vs'\n }\n};\nexport default config;","function curry(fn) {\n return function curried() {\n var _this = this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\nexport default curry;","function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\nexport default isObject;","import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\n\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n return config;\n}\n/**\n * logs deprecation message\n */\n\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\nexport default validators;\nexport { errorHandler, errorMessages };","var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\nexport default compose;","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\nexport default merge;","// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\nexport default makeCancelable;\nexport { CANCELATION_MESSAGE };","import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\n/** the local state of the module */\n\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n }),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\n\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, [\"monaco\"]);\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\n\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n return makeCancelable(wrapperPromise);\n}\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\n\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\n\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\n\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n loaderScript.onload = function () {\n return configureLoader();\n };\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n/**\n * configures the monaco loader\n */\n\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n require.config(state.config);\n require(['vs/editor/editor.main'], function (monaco) {\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n/**\n * store monaco instance in local state\n */\n\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\n\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\nexport default loader;","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import React from 'react';\nvar loadingStyles = {\n display: 'flex',\n height: '100%',\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center'\n};\nfunction Loading(_ref) {\n var content = _ref.content;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: loadingStyles\n }, content);\n}\nexport default Loading;","var styles = {\n wrapper: {\n display: 'flex',\n position: 'relative',\n textAlign: 'initial'\n },\n fullWidth: {\n width: '100%'\n },\n hide: {\n display: 'none'\n }\n};\nexport default styles;","import _defineProperty from \"/home/runner/work/utbot-site-staging/utbot-site-staging/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport React from 'react';\nimport Loading from '../Loading/Loading.js';\nimport styles from './styles.js';\n\n// one of the reasons why we use a separate prop for passing ref instead of using forwardref\n\nfunction MonacoContainer(_ref2) {\n var width = _ref2.width,\n height = _ref2.height,\n isEditorReady = _ref2.isEditorReady,\n loading = _ref2.loading,\n _ref = _ref2._ref,\n className = _ref2.className,\n wrapperClassName = _ref2.wrapperClassName;\n return /*#__PURE__*/React.createElement(\"section\", {\n style: _objectSpread(_objectSpread({}, styles.wrapper), {}, {\n width: width,\n height: height\n }),\n className: wrapperClassName\n }, !isEditorReady && /*#__PURE__*/React.createElement(Loading, {\n content: loading\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: _ref,\n style: _objectSpread(_objectSpread({}, styles.fullWidth), !isEditorReady && styles.hide),\n className: className\n }));\n}\nexport default MonacoContainer;","import { memo } from 'react';\nimport MonacoContainer$1 from './MonacoContainer.js';\nvar MonacoContainer = /*#__PURE__*/memo(MonacoContainer$1);\nexport default MonacoContainer;","import { useEffect } from 'react';\nfunction useMount(effect) {\n useEffect(effect, []);\n}\nexport default useMount;","import { useRef, useEffect } from 'react';\nfunction useUpdate(effect, deps) {\n var applyChanges = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var isInitialMount = useRef(true);\n useEffect(isInitialMount.current || !applyChanges ? function () {\n isInitialMount.current = false;\n } : effect, deps);\n}\nexport default useUpdate;","function noop() {}\nfunction getOrCreateModel(monaco, value, language, path) {\n return getModel(monaco, path) || createModel(monaco, value, language, path);\n}\nfunction getModel(monaco, path) {\n return monaco.editor.getModel(crateModelUri(monaco, path));\n}\nfunction createModel(monaco, value, language, path) {\n return monaco.editor.createModel(value, language, path && crateModelUri(monaco, path));\n}\nfunction crateModelUri(monaco, path) {\n return monaco.Uri.parse(path);\n}\nfunction isUndefined(input) {\n return input === undefined;\n}\nexport { getOrCreateModel, isUndefined, noop };","import _defineProperty from \"/home/runner/work/utbot-site-staging/utbot-site-staging/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _slicedToArray from \"/home/runner/work/utbot-site-staging/utbot-site-staging/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport loader from '@monaco-editor/loader';\nimport React, { useState, useRef, useCallback, useEffect } from 'react';\nimport MonacoContainer from '../MonacoContainer/index.js';\nimport useMount from '../hooks/useMount/index.js';\nimport useUpdate from '../hooks/useUpdate/index.js';\nimport { noop } from '../utils/index.js';\nfunction DiffEditor(_ref) {\n var original = _ref.original,\n modified = _ref.modified,\n language = _ref.language,\n originalLanguage = _ref.originalLanguage,\n modifiedLanguage = _ref.modifiedLanguage,\n originalModelPath = _ref.originalModelPath,\n modifiedModelPath = _ref.modifiedModelPath,\n keepCurrentOriginalModel = _ref.keepCurrentOriginalModel,\n keepCurrentModifiedModel = _ref.keepCurrentModifiedModel,\n theme = _ref.theme,\n loading = _ref.loading,\n options = _ref.options,\n height = _ref.height,\n width = _ref.width,\n className = _ref.className,\n wrapperClassName = _ref.wrapperClassName,\n beforeMount = _ref.beforeMount,\n onMount = _ref.onMount;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isEditorReady = _useState2[0],\n setIsEditorReady = _useState2[1];\n var _useState3 = useState(true),\n _useState4 = _slicedToArray(_useState3, 2),\n isMonacoMounting = _useState4[0],\n setIsMonacoMounting = _useState4[1];\n var editorRef = useRef(null);\n var monacoRef = useRef(null);\n var containerRef = useRef(null);\n var onMountRef = useRef(onMount);\n var beforeMountRef = useRef(beforeMount);\n useMount(function () {\n var cancelable = loader.init();\n cancelable.then(function (monaco) {\n return (monacoRef.current = monaco) && setIsMonacoMounting(false);\n }).catch(function (error) {\n return (error === null || error === void 0 ? void 0 : error.type) !== 'cancelation' && console.error('Monaco initialization: error:', error);\n });\n return function () {\n return editorRef.current ? disposeEditor() : cancelable.cancel();\n };\n });\n useUpdate(function () {\n var modifiedEditor = editorRef.current.getModifiedEditor();\n if (modifiedEditor.getOption(monacoRef.current.editor.EditorOption.readOnly)) {\n modifiedEditor.setValue(modified);\n } else {\n if (modified !== modifiedEditor.getValue()) {\n modifiedEditor.executeEdits('', [{\n range: modifiedEditor.getModel().getFullModelRange(),\n text: modified,\n forceMoveMarkers: true\n }]);\n modifiedEditor.pushUndoStop();\n }\n }\n }, [modified], isEditorReady);\n useUpdate(function () {\n editorRef.current.getModel().original.setValue(original);\n }, [original], isEditorReady);\n useUpdate(function () {\n var _editorRef$current$ge = editorRef.current.getModel(),\n original = _editorRef$current$ge.original,\n modified = _editorRef$current$ge.modified;\n monacoRef.current.editor.setModelLanguage(original, originalLanguage || language);\n monacoRef.current.editor.setModelLanguage(modified, modifiedLanguage || language);\n }, [language, originalLanguage, modifiedLanguage], isEditorReady);\n useUpdate(function () {\n monacoRef.current.editor.setTheme(theme);\n }, [theme], isEditorReady);\n useUpdate(function () {\n editorRef.current.updateOptions(options);\n }, [options], isEditorReady);\n var setModels = useCallback(function () {\n beforeMountRef.current(monacoRef.current);\n var originalModel = monacoRef.current.editor.createModel(original, originalLanguage || language, originalModelPath && monacoRef.current.Uri.parse(originalModelPath));\n var modifiedModel = monacoRef.current.editor.createModel(modified, modifiedLanguage || language, modifiedModelPath && monacoRef.current.Uri.parse(modifiedModelPath));\n editorRef.current.setModel({\n original: originalModel,\n modified: modifiedModel\n });\n }, [language, modified, modifiedLanguage, original, originalLanguage, originalModelPath, modifiedModelPath]);\n var createEditor = useCallback(function () {\n editorRef.current = monacoRef.current.editor.createDiffEditor(containerRef.current, _objectSpread({\n automaticLayout: true\n }, options));\n setModels();\n monacoRef.current.editor.setTheme(theme);\n setIsEditorReady(true);\n }, [options, theme, setModels]);\n useEffect(function () {\n if (isEditorReady) {\n onMountRef.current(editorRef.current, monacoRef.current);\n }\n }, [isEditorReady]);\n useEffect(function () {\n !isMonacoMounting && !isEditorReady && createEditor();\n }, [isMonacoMounting, isEditorReady, createEditor]);\n function disposeEditor() {\n var models = editorRef.current.getModel();\n if (!keepCurrentOriginalModel) {\n var _models$original;\n (_models$original = models.original) === null || _models$original === void 0 ? void 0 : _models$original.dispose();\n }\n if (!keepCurrentModifiedModel) {\n var _models$modified;\n (_models$modified = models.modified) === null || _models$modified === void 0 ? void 0 : _models$modified.dispose();\n }\n editorRef.current.dispose();\n }\n return /*#__PURE__*/React.createElement(MonacoContainer, {\n width: width,\n height: height,\n isEditorReady: isEditorReady,\n loading: loading,\n _ref: containerRef,\n className: className,\n wrapperClassName: wrapperClassName\n });\n}\nDiffEditor.defaultProps = {\n theme: 'light',\n loading: 'Loading...',\n options: {},\n keepCurrentOriginalModel: false,\n keepCurrentModifiedModel: false,\n /* === */\n width: '100%',\n height: '100%',\n /* === */\n beforeMount: noop,\n onMount: noop\n};\nexport default DiffEditor;","import { useRef, useEffect } from 'react';\nfunction usePrevious(value) {\n var ref = useRef();\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\nexport default usePrevious;","import _defineProperty from \"/home/runner/work/utbot-site-staging/utbot-site-staging/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _slicedToArray from \"/home/runner/work/utbot-site-staging/utbot-site-staging/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport loader from '@monaco-editor/loader';\nimport React, { useState, useRef, useCallback, useEffect } from 'react';\nimport MonacoContainer from '../MonacoContainer/index.js';\nimport useMount from '../hooks/useMount/index.js';\nimport useUpdate from '../hooks/useUpdate/index.js';\nimport { getOrCreateModel, noop, isUndefined } from '../utils/index.js';\nimport state from 'state-local';\nimport usePrevious from '../hooks/usePrevious/index.js';\nvar _state$create = state.create({\n backup: null\n }),\n _state$create2 = _slicedToArray(_state$create, 2),\n getModelMarkersSetter = _state$create2[0],\n setModelMarkersSetter = _state$create2[1];\nvar viewStates = new Map();\nfunction Editor(_ref) {\n var defaultValue = _ref.defaultValue,\n defaultLanguage = _ref.defaultLanguage,\n defaultPath = _ref.defaultPath,\n value = _ref.value,\n language = _ref.language,\n path = _ref.path,\n theme = _ref.theme,\n line = _ref.line,\n loading = _ref.loading,\n options = _ref.options,\n overrideServices = _ref.overrideServices,\n saveViewState = _ref.saveViewState,\n keepCurrentModel = _ref.keepCurrentModel,\n width = _ref.width,\n height = _ref.height,\n className = _ref.className,\n wrapperClassName = _ref.wrapperClassName,\n beforeMount = _ref.beforeMount,\n onMount = _ref.onMount,\n onChange = _ref.onChange,\n onValidate = _ref.onValidate;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isEditorReady = _useState2[0],\n setIsEditorReady = _useState2[1];\n var _useState3 = useState(true),\n _useState4 = _slicedToArray(_useState3, 2),\n isMonacoMounting = _useState4[0],\n setIsMonacoMounting = _useState4[1];\n var monacoRef = useRef(null);\n var editorRef = useRef(null);\n var containerRef = useRef(null);\n var onMountRef = useRef(onMount);\n var beforeMountRef = useRef(beforeMount);\n var subscriptionRef = useRef(null);\n var valueRef = useRef(value);\n var previousPath = usePrevious(path);\n useMount(function () {\n var cancelable = loader.init();\n cancelable.then(function (monaco) {\n return (monacoRef.current = monaco) && setIsMonacoMounting(false);\n }).catch(function (error) {\n return (error === null || error === void 0 ? void 0 : error.type) !== 'cancelation' && console.error('Monaco initialization: error:', error);\n });\n return function () {\n return editorRef.current ? disposeEditor() : cancelable.cancel();\n };\n });\n useUpdate(function () {\n var model = getOrCreateModel(monacoRef.current, defaultValue || value, defaultLanguage || language, path);\n if (model !== editorRef.current.getModel()) {\n saveViewState && viewStates.set(previousPath, editorRef.current.saveViewState());\n editorRef.current.setModel(model);\n saveViewState && editorRef.current.restoreViewState(viewStates.get(path));\n }\n }, [path], isEditorReady);\n useUpdate(function () {\n editorRef.current.updateOptions(options);\n }, [options], isEditorReady);\n useUpdate(function () {\n if (editorRef.current.getOption(monacoRef.current.editor.EditorOption.readOnly)) {\n editorRef.current.setValue(value);\n } else {\n if (value !== editorRef.current.getValue()) {\n editorRef.current.executeEdits('', [{\n range: editorRef.current.getModel().getFullModelRange(),\n text: value,\n forceMoveMarkers: true\n }]);\n editorRef.current.pushUndoStop();\n }\n }\n }, [value], isEditorReady);\n useUpdate(function () {\n monacoRef.current.editor.setModelLanguage(editorRef.current.getModel(), language);\n }, [language], isEditorReady);\n useUpdate(function () {\n // reason for undefined check: https://github.com/suren-atoyan/monaco-react/pull/188\n if (!isUndefined(line)) {\n editorRef.current.revealLine(line);\n }\n }, [line], isEditorReady);\n useUpdate(function () {\n monacoRef.current.editor.setTheme(theme);\n }, [theme], isEditorReady);\n var createEditor = useCallback(function () {\n beforeMountRef.current(monacoRef.current);\n var autoCreatedModelPath = path || defaultPath;\n var defaultModel = getOrCreateModel(monacoRef.current, value || defaultValue, defaultLanguage || language, autoCreatedModelPath);\n editorRef.current = monacoRef.current.editor.create(containerRef.current, _objectSpread({\n model: defaultModel,\n automaticLayout: true\n }, options), overrideServices);\n saveViewState && editorRef.current.restoreViewState(viewStates.get(autoCreatedModelPath));\n monacoRef.current.editor.setTheme(theme);\n if (!getModelMarkersSetter().backup) {\n setModelMarkersSetter({\n backup: monacoRef.current.editor.setModelMarkers\n });\n }\n setIsEditorReady(true);\n }, [defaultValue, defaultLanguage, defaultPath, value, language, path, options, overrideServices, saveViewState, theme]);\n useEffect(function () {\n if (isEditorReady) {\n onMountRef.current(editorRef.current, monacoRef.current);\n }\n }, [isEditorReady]);\n useEffect(function () {\n !isMonacoMounting && !isEditorReady && createEditor();\n }, [isMonacoMounting, isEditorReady, createEditor]); // subscription\n // to avoid unnecessary updates (attach - dispose listener) in subscription\n\n valueRef.current = value;\n useEffect(function () {\n if (isEditorReady && onChange) {\n var _subscriptionRef$curr, _editorRef$current;\n (_subscriptionRef$curr = subscriptionRef.current) === null || _subscriptionRef$curr === void 0 ? void 0 : _subscriptionRef$curr.dispose();\n subscriptionRef.current = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.onDidChangeModelContent(function (event) {\n var editorValue = editorRef.current.getValue();\n if (valueRef.current !== editorValue) {\n onChange(editorValue, event);\n }\n });\n }\n }, [isEditorReady, onChange]); // onValidate\n\n useEffect(function () {\n if (isEditorReady) {\n monacoRef.current.editor.setModelMarkers = function (model, owner, markers) {\n var _getModelMarkersSette;\n (_getModelMarkersSette = getModelMarkersSetter().backup) === null || _getModelMarkersSette === void 0 ? void 0 : _getModelMarkersSette.call(monacoRef.current.editor, model, owner, markers);\n onValidate === null || onValidate === void 0 ? void 0 : onValidate(markers);\n };\n }\n }, [isEditorReady, onValidate]);\n function disposeEditor() {\n var _subscriptionRef$curr2;\n (_subscriptionRef$curr2 = subscriptionRef.current) === null || _subscriptionRef$curr2 === void 0 ? void 0 : _subscriptionRef$curr2.dispose();\n if (keepCurrentModel) {\n saveViewState && viewStates.set(path, editorRef.current.saveViewState());\n } else {\n var _editorRef$current$ge;\n (_editorRef$current$ge = editorRef.current.getModel()) === null || _editorRef$current$ge === void 0 ? void 0 : _editorRef$current$ge.dispose();\n }\n editorRef.current.dispose();\n }\n return /*#__PURE__*/React.createElement(MonacoContainer, {\n width: width,\n height: height,\n isEditorReady: isEditorReady,\n loading: loading,\n _ref: containerRef,\n className: className,\n wrapperClassName: wrapperClassName\n });\n}\nEditor.defaultProps = {\n theme: 'light',\n loading: 'Loading...',\n options: {},\n overrideServices: {},\n saveViewState: true,\n keepCurrentModel: false,\n /* === */\n width: '100%',\n height: '100%',\n /* === */\n beforeMount: noop,\n onMount: noop,\n onValidate: noop\n};\nexport default Editor;","import { memo } from 'react';\nimport Editor from './Editor.js';\nvar index = /*#__PURE__*/memo(Editor);\nexport default index;","export default function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n strings.raw = raw;\n return strings;\n}","import dedent from \"dedent\";\n\nexport const Language = {\n C: 0,\n CPP: 1,\n JAVA: 2,\n PYTHON: 3,\n JS: 4,\n GO: 5,\n}\n\n\nconst langToQueryMap = {\n [Language.C]: 'C',\n [Language.CPP]: 'Cpp',\n [Language.JAVA]: 'Java',\n [Language.PYTHON]: 'Python',\n [Language.JS]: 'JavaScript',\n [Language.GO]: 'Go'\n}\n\nexport function languageToQuery(lang) {\n return langToQueryMap[lang]\n}\n\nconst langToStringMap = {\n [Language.C]: 'C',\n [Language.CPP]: 'C++',\n [Language.JAVA]: 'Java',\n [Language.PYTHON]: 'Python',\n [Language.JS]: 'JavaScript',\n [Language.GO]: 'Go'\n}\n\nexport function languageToString(lang) {\n return langToStringMap[lang]\n}\n\nconst langToSnippetMap = {\n [Language.C]: dedent`#include <stdio.h>\\n#include <string.h>\\n#include <math.h>\\n#include <stdlib.h>\\n\\nint foo() \\n{\\n // TODO: write your code here\\n return 0;\\n}`,\n [Language.CPP]: dedent`#include <cmath>\\n#include <cstring>\\n\\nusing namespace std;\\n\\nint foo() \\n{\\n // TODO: write your code here\\n return 0;\\n}`,\n [Language.JAVA]: dedent`import java.util.*;\\n\\npublic class Solution {\\n // TODO: write your code here\\n}`,\n [Language.PYTHON]: dedent`# Write your code here`,\n [Language.JS]: dedent`// Write your code here`,\n [Language.GO]: dedent`package simple\\n\\nfunc example() {\\n // Write your code here\\n}`\n}\n\nexport function languageToSnippet(lang) {\n return langToSnippetMap[lang]\n}\n\nconst langToExamplesMap = {\n [Language.C]: require(\"../examples_json/examples_c.json\"),\n [Language.CPP]: require(\"../examples_json/examples_cpp.json\"),\n [Language.JAVA]: require(\"../examples_json/examples_java.json\"),\n [Language.PYTHON]: require(\"../examples_json/examples_python.json\"),\n [Language.JS]: require(\"../examples_json/examples_js.json\"),\n [Language.GO]: require(\"../examples_json/examples_go.json\")\n}\n\nexport function languageToExamples(lang) {\n return langToExamplesMap[lang]\n}\n\nconst langToHighlightMap = {\n [Language.C]: \"cpp\",\n [Language.CPP]: \"cpp\",\n [Language.JAVA]: \"java\",\n [Language.PYTHON]: \"python\",\n [Language.JS]: \"javascript\",\n [Language.GO]: \"go\"\n}\n\nexport function languageToHighlight(lang) {\n return langToHighlightMap[lang]\n}\n\nexport function languageIsExperimentalFeature(lang) {\n return lang === Language.CPP || lang === Language.GO || lang === Language.JS || lang === Language.PYTHON\n}\n","export default \"data:image/png;base64,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\"","import React, { useState, useEffect } from \"react\";\r\nimport cn from \"classnames\";\r\nimport { graphql, useStaticQuery } from \"gatsby\";\r\n\r\nimport Layout from \"../components/layout\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport {\r\n Alert,\r\n Button as Btn,\r\n ButtonGroup as BtnGroup,\r\n NavDropdown,\r\n OverlayTrigger,\r\n Spinner,\r\n ToggleButton,\r\n ToggleButtonGroup,\r\n Tooltip,\r\n} from \"react-bootstrap\";\r\nimport \"./styles/page.css\";\r\nimport * as stylesDesktop from \"./styles/utbot-desktop.module.css\";\r\nimport * as stylesMobile from \"./styles/utbot-mobile.module.css\";\r\nimport Editor from \"@monaco-editor/react\";\r\n// Do not remove the import. It's used to render the page correctly.\r\nimport { highlight, languages } from \"prismjs/components/prism-core\";\r\nimport SEO from \"../components/seo\";\r\nimport withTrans from \"../i18n/withTrans\";\r\nimport \"prismjs/components/prism-clike\";\r\nimport \"prismjs/components/prism-javascript\";\r\nimport \"prismjs/components/prism-python\";\r\nimport \"prismjs/components/prism-markup\";\r\nimport \"prismjs/themes/prism.css\";\r\n\r\n//import { LanguageDropdown } from \"../components/languages-dropdown\";\r\n// import Button from \"../components/button\";\r\nimport {\r\n Language as LanguageEnum,\r\n languageIsExperimentalFeature,\r\n languageToHighlight,\r\n languageToQuery,\r\n languageToString,\r\n languageToSnippet,\r\n languageToExamples,\r\n} from \"../utils/language\";\r\n\r\nimport copyLinkIcon from \"../images/copy-link-icon.png\";\r\nimport codeIcon from \"../images/code-icon.png\";\r\n\r\nrequire(\"prismjs/components/prism-c\");\r\nrequire(\"prismjs/components/prism-cpp\");\r\nrequire(\"prismjs/components/prism-python\");\r\nrequire(\"prismjs/components/prism-javascript\");\r\nrequire(\"prismjs/components/prism-go\");\r\n\r\nconst ResponseType = { run: \"RUN\", generation: \"GENERATION\" };\r\n\r\nconst UTBotOnlinePage = () => {\r\n const [href, setHref] = useState(\"\");\r\n const [sourceCode, setSourceCode] = React.useState(\r\n languageToSnippet(LanguageEnum.C)\r\n );\r\n const [testCode, setTestCode] = React.useState(\"\");\r\n const [showExamples, setShowExamples] = useState(false);\r\n const [language, setLanguage] = useState(LanguageEnum.C);\r\n const [showLanguages, setShowLanguages] = useState(false);\r\n const [detailsText, setDetailsText] = useState(\"\");\r\n const [isGeneratingAndRunning, setIsGeneratingAndRunning] = useState(false);\r\n\r\n // This is for mobile\r\n const [showCode, setShowCode] = useState(true);\r\n const [showTests, setShowTests] = useState(false);\r\n const [showInfo, setShowInfo] = useState(false);\r\n const minDesktopWidth = 800;\r\n const minWidthGenerateAndRunTestsFullText = 400;\r\n\r\n const data = useStaticQuery(graphql`\r\n query {\r\n site {\r\n siteMetadata {\r\n backend_host\r\n }\r\n }\r\n }\r\n `);\r\n const backendHost = data.site.siteMetadata.backend_host;\r\n\r\n useEffect(() => {\r\n function handleWindowResize() {\r\n setWindowSize(getWindowSize());\r\n }\r\n\r\n window.addEventListener(\"resize\", handleWindowResize);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", handleWindowResize);\r\n };\r\n }, []);\r\n\r\n const url = `${href}?language=${languageToQuery(\r\n language\r\n )}&source=${encodeURIComponent(sourceCode)}`;\r\n\r\n function copyLink() {\r\n if (navigator.clipboard && window.isSecureContext) {\r\n return navigator.clipboard.writeText(url);\r\n }\r\n }\r\n\r\n const getDetailsOfSubResponse = (responseType, response) => {\r\n if (response?.statusCode?.localeCompare(\"SUCCEEDED\") === 0) {\r\n return (\r\n `TEST ${responseType}: SUCCEEDED\\n` +\r\n (response.statusDetails\r\n ? response.statusDetails.join(\"\\n\") + \"\\n\\n\"\r\n : `${ResponseType}: no details\\n\\n`)\r\n );\r\n }\r\n\r\n if (response?.statusCode) {\r\n return (\r\n `TEST ${responseType}: ${response.statusCode}\\n` +\r\n (response.statusDetails\r\n ? response.statusDetails.join(\"\\n\") + \"\\n\\n\"\r\n : \"no details\\n\\n\")\r\n );\r\n }\r\n\r\n return (\r\n `TEST ${responseType}: ERROR OCCURRED\\n` +\r\n (response?.statusDetails\r\n ? response.statusDetails.join(\"\\n\") + \"\\n\\n\"\r\n : `${ResponseType}: no details\\n\\n`)\r\n );\r\n };\r\n\r\n function queryGenerateAndRunTests() {\r\n console.log(\"Run and generate tests!!!\");\r\n setIsGeneratingAndRunning(true);\r\n setDetailsText(\"\");\r\n setTestCode(\"\");\r\n\r\n const host = backendHost;\r\n let lang = languageToQuery(language);\r\n const req = `${host}/utbot-online/${lang}-playground/tests/`;\r\n const isInternetConnected = navigator.onLine;\r\n if (isInternetConnected) {\r\n fetch(req, {\r\n body: JSON.stringify({ snippet: sourceCode }),\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n method: \"POST\",\r\n })\r\n .then(response => response.json())\r\n .then(response => JSON.stringify(response))\r\n .then(response => {\r\n const obj = JSON.parse(response);\r\n if (obj.statusCode.localeCompare(\"SUCCEEDED\") === 0) {\r\n if (window.screen.width < minDesktopWidth) {\r\n document.getElementById(\"testsButton\").click();\r\n }\r\n setTestCode(obj.generationResponse.sourceFile);\r\n setDetailsText(\r\n getDetailsOfSubResponse(\r\n ResponseType.generation,\r\n obj.generationResponse\r\n ) + getDetailsOfSubResponse(ResponseType.run, obj.runResponse)\r\n );\r\n } else if (obj.statusCode) {\r\n setTestCode(\"\");\r\n if (\r\n obj.generationResponse.statusCode.localeCompare(\"SUCCEEDED\") === 0\r\n ) {\r\n setTestCode(obj.generationResponse.sourceFile);\r\n if (window.screen.width < minDesktopWidth) {\r\n document.getElementById(\"testsButton\").click();\r\n }\r\n } else {\r\n if (window.screen.width < minDesktopWidth) {\r\n document.getElementById(\"infoButton\").click();\r\n }\r\n }\r\n setDetailsText(\r\n `Status Code: ${obj.statusCode}\\n\\n` +\r\n (obj.statusDetails\r\n ? \"Status details:\\n\" + obj.statusDetails.join(\"\\n\") + \"\\n\\n\"\r\n : \"\") +\r\n getDetailsOfSubResponse(\r\n ResponseType.generation,\r\n obj.generationResponse\r\n ) +\r\n getDetailsOfSubResponse(ResponseType.run, obj.runResponse)\r\n );\r\n } else {\r\n setTestCode(\"\");\r\n setDetailsText(obj);\r\n if (window.screen.width < minDesktopWidth) {\r\n document.getElementById(\"infoButton\").click();\r\n }\r\n }\r\n })\r\n .catch(err => {\r\n setDetailsText(\r\n `Error message:\\n${err.message}\\n\\nError stack:\\n${err.stack}`\r\n );\r\n if (window.screen.width < minDesktopWidth) {\r\n document.getElementById(\"infoButton\").click();\r\n }\r\n })\r\n .finally(function () {\r\n setIsGeneratingAndRunning(false);\r\n });\r\n } else {\r\n setIsGeneratingAndRunning(false);\r\n const details = \"No internet connection\";\r\n setDetailsText(`ERROR: ${details}`);\r\n if (window.screen.width < minDesktopWidth) {\r\n document.getElementById(\"infoButton\").click();\r\n }\r\n }\r\n }\r\n\r\n const showDropdownExamples = () => {\r\n setShowExamples(true);\r\n };\r\n const hideDropdownExamples = () => {\r\n setShowExamples(false);\r\n };\r\n\r\n const showDropdownLanguages = () => {\r\n setShowLanguages(true);\r\n };\r\n const hideDropdownLanguages = () => {\r\n setShowLanguages(false);\r\n };\r\n\r\n const { t, i18n } = useTranslation();\r\n\r\n let dropdownItems = languageToExamples(language).examples.map(example => {\r\n return (\r\n <NavDropdown.Item\r\n onClick={() => {\r\n setSourceCode(example.code);\r\n if (window.screen.width < minDesktopWidth) {\r\n hideDropdownExamples();\r\n }\r\n }}\r\n >\r\n {example.name}\r\n </NavDropdown.Item>\r\n );\r\n });\r\n\r\n const langName = languageToString(language);\r\n\r\n const langHighlight = languageToHighlight(language);\r\n\r\n let monacoThemesDefined = false;\r\n const defineMonacoThemes = monaco => {\r\n if (monacoThemesDefined) {\r\n return;\r\n }\r\n\r\n monacoThemesDefined = true;\r\n monaco.editor.defineTheme(\"my-light\", {\r\n base: \"vs\",\r\n inherit: true,\r\n rules: [],\r\n colors: {\r\n \"editor.background\": \"#f6f6f6\",\r\n \"minimap.background\": \"#f9f9f9\",\r\n },\r\n });\r\n };\r\n const editorWillMountTemp = monaco => {\r\n defineMonacoThemes(monaco);\r\n };\r\n\r\n const renderTooltip = props => (\r\n <Tooltip id=\"button-tooltip\" {...props}>\r\n Share with friends!\r\n </Tooltip>\r\n );\r\n\r\n if (typeof window === `undefined`) {\r\n return <></>;\r\n }\r\n\r\n return (\r\n <Layout>\r\n <SEO title=\"Demo Page\" />\r\n {window.screen.width < minDesktopWidth && (\r\n <div className={stylesMobile.main}>\r\n <div className={cn(stylesMobile.toolbar, stylesMobile.topToolbar)}>\r\n <div className={stylesMobile.navDropdownContainer}>\r\n <NavDropdown\r\n className={stylesDesktop.dropdownLanguages}\r\n title={langName}\r\n show={showLanguages}\r\n onClick={() => {\r\n setShowLanguages(!showLanguages);\r\n }}\r\n >\r\n {Object.values(LanguageEnum).map(lang => (\r\n <NavDropdown.Item\r\n key={lang}\r\n onClick={() => {\r\n setLanguage(lang);\r\n if (language != lang) {\r\n setSourceCode(languageToSnippet(lang));\r\n }\r\n hideDropdownLanguages();\r\n }}\r\n >\r\n {languageToString(lang)}\r\n </NavDropdown.Item>\r\n ))}\r\n </NavDropdown>\r\n <NavDropdown\r\n title=\"Examples\"\r\n show={showExamples}\r\n onClick={() => {\r\n setShowExamples(!showExamples);\r\n }}\r\n style={{ marginTop: \"5px\" }}\r\n >\r\n {dropdownItems}\r\n </NavDropdown>\r\n </div>\r\n <Btn\r\n className={stylesMobile.generateAndRunTestsButton}\r\n onClick={queryGenerateAndRunTests}\r\n disabled={isGeneratingAndRunning}\r\n >\r\n {isGeneratingAndRunning &&\r\n window.screen.width > minWidthGenerateAndRunTestsFullText && (\r\n <span>{t(\"demo.generatingAndRunningTests\")}</span>\r\n )}\r\n {!isGeneratingAndRunning &&\r\n window.screen.width > minWidthGenerateAndRunTestsFullText && (\r\n <span>{t(\"demo.generateAndRunTests\")}</span>\r\n )}\r\n {!isGeneratingAndRunning &&\r\n window.screen.width <= minWidthGenerateAndRunTestsFullText && (\r\n <span>{t(\"demo.genAndRunTests\")}</span>\r\n )}\r\n {isGeneratingAndRunning &&\r\n window.screen.width <= minWidthGenerateAndRunTestsFullText && (\r\n <span>{t(\"demo.genAndRunningTests\")}</span>\r\n )}\r\n {isGeneratingAndRunning && (\r\n <Spinner\r\n as=\"span\"\r\n animation=\"border\"\r\n size=\"sm\"\r\n role=\"status\"\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n </Btn>\r\n </div>\r\n <div className={stylesMobile.toolbar}>\r\n <ToggleButtonGroup type=\"radio\" name=\"options\" defaultValue={1}>\r\n <ToggleButton\r\n id=\"codeButton\"\r\n className={stylesMobile.btnBg}\r\n value={1}\r\n onClick={() => {\r\n setShowCode(true);\r\n setShowTests(false);\r\n setShowInfo(false);\r\n }}\r\n >\r\n <img src={codeIcon} height=\"18\" alt=\"Code icon\" />\r\n </ToggleButton>\r\n <ToggleButton\r\n id=\"testsButton\"\r\n className={stylesMobile.btnBg}\r\n value={2}\r\n onClick={() => {\r\n setShowCode(false);\r\n setShowTests(true);\r\n setShowInfo(false);\r\n }}\r\n >\r\n Tests\r\n </ToggleButton>\r\n <ToggleButton\r\n id=\"infoButton\"\r\n className={stylesMobile.btnBg}\r\n value={3}\r\n onClick={() => {\r\n setShowCode(false);\r\n setShowTests(false);\r\n setShowInfo(true);\r\n }}\r\n >\r\n Info\r\n </ToggleButton>\r\n </ToggleButtonGroup>\r\n <OverlayTrigger\r\n placement=\"bottom\"\r\n delay={{ show: 250, hide: 250 }}\r\n overlay={renderTooltip}\r\n >\r\n <Btn className={stylesMobile.btnBg} onClick={copyLink}>\r\n <img src={copyLinkIcon} height=\"17\" alt=\"Copy link icon\" />\r\n </Btn>\r\n </OverlayTrigger>\r\n </div>\r\n <div className={stylesMobile.codeEditor}>\r\n {showCode && (\r\n <Editor\r\n theme=\"my-light\"\r\n language={langHighlight}\r\n value={sourceCode}\r\n onChange={setSourceCode}\r\n beforeMount={editorWillMountTemp.bind(this)}\r\n options={{\r\n fontSize: 12,\r\n minimap: { enabled: false },\r\n tabSize: 4,\r\n scrollBeyondLastLine: false,\r\n wordWrap: \"on\",\r\n }}\r\n />\r\n )}\r\n {showTests && (\r\n <Editor\r\n theme=\"my-light\"\r\n language={langHighlight}\r\n value={testCode}\r\n beforeMount={editorWillMountTemp.bind(this)}\r\n options={{\r\n fontSize: 12,\r\n minimap: { enabled: false },\r\n readOnly: true,\r\n scrollBeyondLastLine: false,\r\n wordWrap: \"on\",\r\n }}\r\n />\r\n )}\r\n {showInfo && (\r\n <Editor\r\n theme=\"my-light\"\r\n language={langHighlight}\r\n value={detailsText}\r\n options={{\r\n fontSize: 12,\r\n minimap: { enabled: false },\r\n lineNumbers: \"off\",\r\n readOnly: true,\r\n scrollBeyondLastLine: false,\r\n wordWrap: \"on\",\r\n }}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n {window.screen.width >= minDesktopWidth && (\r\n <div className={stylesDesktop.top}>\r\n <div className={stylesDesktop.main}>\r\n <div className={stylesDesktop.codeEditorsContainer}>\r\n <div\r\n className={cn(\r\n stylesDesktop.codeEditorContainer,\r\n stylesDesktop.sourceCodeEditorcontainer\r\n )}\r\n >\r\n <div className={stylesDesktop.toolbarContainer}>\r\n <div>\r\n <OverlayTrigger\r\n placement=\"bottom\"\r\n delay={{ show: 250, hide: 250 }}\r\n overlay={renderTooltip}\r\n >\r\n <Btn\r\n variant=\"dark\"\r\n className={stylesDesktop.copyLinkButton}\r\n onClick={copyLink}\r\n >\r\n <img\r\n src={copyLinkIcon}\r\n height=\"18\"\r\n alt=\"Copy link icon\"\r\n />\r\n </Btn>\r\n </OverlayTrigger>\r\n </div>\r\n <div className={stylesDesktop.dropdownContainer}>\r\n <NavDropdown\r\n className={stylesDesktop.dropdownLanguages}\r\n title={langName}\r\n show={showLanguages}\r\n onMouseEnter={showDropdownLanguages}\r\n onMouseLeave={hideDropdownLanguages}\r\n >\r\n {Object.values(LanguageEnum).map(lang => (\r\n <NavDropdown.Item\r\n key={lang}\r\n onClick={() => {\r\n setLanguage(lang);\r\n if (language != lang) {\r\n setSourceCode(languageToSnippet(lang));\r\n }\r\n }}\r\n >\r\n {languageToString(lang)}\r\n </NavDropdown.Item>\r\n ))}\r\n </NavDropdown>\r\n <NavDropdown\r\n title=\"Examples\"\r\n show={showExamples}\r\n onClick={() => {}}\r\n onMouseEnter={showDropdownExamples}\r\n onMouseLeave={hideDropdownExamples}\r\n style={{ marginTop: \"5px\" }}\r\n >\r\n {dropdownItems}\r\n </NavDropdown>\r\n </div>\r\n </div>\r\n <div className={stylesDesktop.codeEditor}>\r\n <Editor\r\n theme=\"my-light\"\r\n language={langHighlight}\r\n value={sourceCode}\r\n onChange={setSourceCode}\r\n beforeMount={editorWillMountTemp.bind(this)}\r\n options={{\r\n tabSize: 4,\r\n scrollBeyondLastLine: false,\r\n wordWrap: \"on\",\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div\r\n className={cn(\r\n stylesDesktop.codeEditorContainer,\r\n stylesDesktop.testsEditorContainer\r\n )}\r\n >\r\n <div\r\n className={cn(\r\n stylesDesktop.toolbarContainer,\r\n stylesDesktop.generateAndRunTestsButtonContainer\r\n )}\r\n >\r\n <Btn\r\n className={stylesDesktop.generateAndRunTestsButton}\r\n onClick={queryGenerateAndRunTests}\r\n disabled={isGeneratingAndRunning}\r\n >\r\n {isGeneratingAndRunning && (\r\n <span>{t(\"demo.generatingAndRunningTests\")}</span>\r\n )}\r\n {!isGeneratingAndRunning && (\r\n <span>{t(\"demo.generateAndRunTests\")}</span>\r\n )}\r\n {isGeneratingAndRunning && (\r\n <Spinner\r\n as=\"span\"\r\n animation=\"border\"\r\n size=\"sm\"\r\n role=\"status\"\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n </Btn>\r\n {languageIsExperimentalFeature(language) && (\r\n <p\r\n className={stylesDesktop.alert}\r\n dangerouslySetInnerHTML={{ __html: t(\"utbot.alertNew\") }}\r\n ></p>\r\n )}\r\n </div>\r\n <div className={stylesDesktop.codeEditor}>\r\n <Editor\r\n theme=\"my-light\"\r\n language={langHighlight}\r\n value={testCode}\r\n beforeMount={editorWillMountTemp.bind(this)}\r\n options={{\r\n readOnly: true,\r\n scrollBeyondLastLine: false,\r\n wordWrap: \"on\",\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div className={stylesDesktop.detailsContainer}>\r\n <div className={stylesDesktop.detailsEditor}>\r\n <Editor\r\n theme=\"my-light\"\r\n language={langHighlight}\r\n value={detailsText}\r\n options={{\r\n minimap: { enabled: false },\r\n lineNumbers: \"off\",\r\n readOnly: true,\r\n scrollBeyondLastLine: false,\r\n wordWrap: \"on\",\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </Layout>\r\n );\r\n};\r\n\r\nexport default withTrans(UTBotOnlinePage);\r\n","export default \"data:image/png;base64,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\""],"names":["module","exports","strings","raw","result","i","length","replace","arguments","undefined","lines","split","mindent","forEach","l","m","match","indent","Math","min","map","slice","join","trim","Prism","languages","c","extend","pattern","greedy","lookbehind","insertBefore","alias","inside","clike","_self","lang","uniqueId","_","manual","disableWorkerMessageHandler","util","encode","tokens","Token","type","content","Array","isArray","o","Object","prototype","toString","call","objId","obj","defineProperty","value","clone","deepClone","visited","id","key","hasOwnProperty","v","getLanguage","element","test","className","parentElement","toLowerCase","currentScript","document","Error","err","src","exec","stack","scripts","getElementsByTagName","isActive","defaultActivation","no","classList","contains","redef","before","insert","root","grammar","ret","token","newToken","old","DFS","this","callback","property","propertyType","plugins","highlightAll","async","highlightAllUnder","container","env","selector","hooks","run","elements","apply","querySelectorAll","highlightElement","language","parent","nodeName","code","textContent","insertHighlightedCode","highlightedCode","innerHTML","Worker","worker","filename","onmessage","evt","data","postMessage","JSON","stringify","immediateClose","highlight","text","tokenize","rest","tokenList","LinkedList","addAfter","head","matchGrammar","list","array","node","next","tail","push","toArray","all","add","name","callbacks","matchedStr","matchPattern","pos","lastIndex","lookbehindLength","index","startNode","startPos","rematch","patterns","j","cause","patternObj","global","flags","RegExp","source","currentNode","reach","str","removeCount","from","to","p","k","matchStr","after","removeFrom","prev","removeRange","newNode","count","s","e","tag","classes","attributes","aliases","addEventListener","message","parse","close","script","highlightAutomaticallyCallback","hasAttribute","readyState","defer","window","requestAnimationFrame","setTimeout","WorkerGlobalScope","self","g","keyword","cpp","go","javascript","regex","markup","addInlined","js","tagName","includedCdataInside","def","html","mathml","svg","xml","ssml","atom","rss","python","py","isConstructor","tryToString","$TypeError","TypeError","argument","uncurryThis","fails","isCallable","classof","getBuiltIn","inspectSource","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","error","isConstructorLegacy","sham","called","aCallable","PromiseCapability","C","resolve","reject","promise","$$resolve","$$reject","f","Promise","anObject","isObject","newPromiseCapability","x","constructor","promiseCapability","aConstructor","isNullOrUndefined","SPECIES","wellKnownSymbol","O","defaultConstructor","S","$","IS_PURE","NativePromiseConstructor","speciesConstructor","promiseResolve","defineBuiltIn","NativePromisePrototype","target","proto","real","forced","then","onFinally","isFunction","method","unsafe","Tooltip","_ref","ref","bsPrefix","placement","style","children","arrowProps","props","popper","show","primaryPlacement","role","defaultProps","displayName","Spinner","variant","animation","size","_ref$as","as","Component","bsSpinnerPrefix","ButtonGroup","toggle","vertical","prefix","baseClass","ToggleButton","checked","onChange","disabled","inputRef","_useState","useState","focused","setFocused","handleFocus","useCallback","handleBlur","Button","active","autoComplete","onFocus","onBlur","ToggleButtonGroup","_useUncontrolled","controlledProps","getValues","concat","func","child","values","_child$props","childVal","childOnChange","indexOf","inputVal","event","filter","n","handleToggle","useWillUnmount","fn","valueRef","onUnmount","useRef","current","useEffect","MAX_DELAY_MS","pow","setChainedTimeout","handleRef","timeoutAtMs","delayMs","Date","now","useTimeout","isMounted","mounted","useMounted","clearTimeout","useMemo","clear","set","toFnRef","refA","refB","a","b","mergeRefs","resolveContainerRef","ownerDocument","body","nodeType","useWaitForDOMRef","onResolved","resolvedRef","setRef","earlyRef","nextRef","Overlay","outerRef","flip","offset","_props$containerPaddi","containerPadding","_props$popperConfig","popperConfig","Transition","transition","_useCallbackRef","useCallbackRef","rootElement","attachRef","_useCallbackRef2","arrowElement","attachArrowRef","mergedRef","exited","setExited","_usePopper","usePopper","mergeOptionsWithPopperConfig","enableEvents","styles","mountOverlay","useRootClose","onHide","rootClose","rootCloseDisabled","clickTrigger","rootCloseEvent","arrow","onExit","onExiting","onEnter","onEntering","onEntered","appear","onExited","propTypes","_len","args","_key","_PropTypes$func","isRequired","_fadeStyles","fadeStyles","Fade","handleEnter","triggerBrowserReflow","addEndListener","transitionEndListener","status","innerProps","in","timeout","mountOnEnter","unmountOnExit","overlay","_ref$popperConfig","outerProps","popperRef","_usePopperMarginModif","usePopperMarginModifiers","marginModifiers","actualTransition","modifiers","_ref2","_state$modifiersData$","overlayProps","update","forceUpdate","state","aRef","__wrapped","r","safeFindDOMNode","wrapRefs","assign","scheduleUpdate","outOfBoundaries","modifiersData","hide","isReferenceHidden","RefHolder","_React$Component","render","handleMouseOverOut","handler","relatedNative","currentTarget","related","relatedTarget","nativeEvent","OverlayTrigger","trigger","propsShow","_ref$defaultShow","defaultShow","onToggle","propsDelay","delay","_ref$flip","triggerNodeRef","hoverStateRef","_useUncontrolledProp","setShow","normalizeDelay","onClick","getTarget","handleShow","handleHide","_len2","_key2","handleClick","handleMouseOver","_len3","_key3","handleMouseOut","_len4","_key4","triggers","triggerProps","onMouseOver","onMouseOut","cloneElement","codeEditor","codeEditorContainer","toolbarContainer","dropdownLanguages","toolbar","btnBg","_defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_arrayLikeToArray","arr","len","arr2","compose","fns","reduceRight","y","curry","curried","_this","nextArgs","includes","errorHandler","errorMessages","initialIsRequired","initialType","initialContent","handlerType","handlersType","selectorType","changeType","changeField","validators","changes","initial","some","field","_handler","extractChanges","causedChanges","updateState","didStateUpdate","_handler$field","create","didUpdate","validate","getChanges","getState","setState","paths","vs","configIsRequired","configType","deprecation","config","urls","console","warn","monacoBase","merge","CANCELATION_MESSAGE","msg","hasCanceled_","wrappedPromise","val","cancel","_state$create","isInitialized","monaco","_state$create2","_arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","_s","_i","done","_iterableToArrayLimit","minLen","_unsupportedIterableToArray","_nonIterableRest","injectScripts","appendChild","getMonacoLoaderScript","configureLoader","loaderScript","createElement","onload","onerror","_ref3","require","storeMonacoInstance","wrapperPromise","globalConfig","_validators$config","init","editor","__getMonacoInstance","_ref4","unsupportedIterableToArray","loadingStyles","display","height","width","justifyContent","alignItems","wrapper","position","textAlign","fullWidth","_objectSpread","isEditorReady","loading","wrapperClassName","memo","effect","deps","applyChanges","isInitialMount","getOrCreateModel","path","getModel","crateModelUri","createModel","Uri","DiffEditor","original","modified","originalLanguage","modifiedLanguage","originalModelPath","modifiedModelPath","keepCurrentOriginalModel","keepCurrentModifiedModel","theme","options","beforeMount","onMount","_useState2","setIsEditorReady","_useState4","isMonacoMounting","setIsMonacoMounting","editorRef","monacoRef","containerRef","onMountRef","beforeMountRef","cancelable","catch","_models$original","_models$modified","models","dispose","disposeEditor","modifiedEditor","getModifiedEditor","getOption","EditorOption","readOnly","setValue","getValue","executeEdits","range","getFullModelRange","forceMoveMarkers","pushUndoStop","_editorRef$current$ge","setModelLanguage","setTheme","updateOptions","setModels","originalModel","modifiedModel","setModel","createEditor","createDiffEditor","automaticLayout","backup","getModelMarkersSetter","setModelMarkersSetter","viewStates","Map","Editor","defaultValue","defaultLanguage","defaultPath","line","overrideServices","saveViewState","keepCurrentModel","onValidate","subscriptionRef","previousPath","_subscriptionRef$curr2","model","restoreViewState","get","revealLine","autoCreatedModelPath","defaultModel","setModelMarkers","_subscriptionRef$curr","_editorRef$current","onDidChangeModelContent","editorValue","owner","markers","_getModelMarkersSette","_taggedTemplateLiteralLoose","Language","CPP","JAVA","PYTHON","JS","GO","langToQueryMap","languageToQuery","langToStringMap","languageToString","langToSnippetMap","dedent","languageToSnippet","langToExamplesMap","languageToExamples","langToHighlightMap","languageToHighlight","languageIsExperimentalFeature","ResponseType","generation","withTrans","href","React","LanguageEnum","sourceCode","setSourceCode","testCode","setTestCode","showExamples","setShowExamples","setLanguage","showLanguages","setShowLanguages","detailsText","setDetailsText","isGeneratingAndRunning","setIsGeneratingAndRunning","showCode","setShowCode","showTests","setShowTests","showInfo","setShowInfo","minDesktopWidth","minWidthGenerateAndRunTestsFullText","backendHost","useStaticQuery","site","siteMetadata","backend_host","handleWindowResize","setWindowSize","getWindowSize","removeEventListener","url","encodeURIComponent","copyLink","navigator","clipboard","isSecureContext","writeText","getDetailsOfSubResponse","responseType","response","statusCode","localeCompare","statusDetails","queryGenerateAndRunTests","log","req","onLine","fetch","snippet","headers","Accept","json","screen","getElementById","click","generationResponse","sourceFile","runResponse","finally","hideDropdownExamples","hideDropdownLanguages","useTranslation","t","dropdownItems","i18n","examples","example","NavDropdown","langName","langHighlight","monacoThemesDefined","editorWillMountTemp","defineTheme","base","inherit","rules","colors","defineMonacoThemes","renderTooltip","title","cn","stylesMobile","stylesDesktop","marginTop","alt","copyLinkIcon","bind","fontSize","minimap","enabled","tabSize","scrollBeyondLastLine","wordWrap","lineNumbers","onMouseEnter","onMouseLeave","dangerouslySetInnerHTML","__html"],"sourceRoot":""}