`\n };\n\n const VuePlugin = {\n install(Vue) {\n Vue.component('highlightjs', Component);\n }\n };\n\n return { Component, VuePlugin };\n}\n\n/* plugin itself */\n\n/** @type {HLJSPlugin} */\nconst mergeHTMLPlugin = {\n \"after:highlightElement\": ({ el, result, text }) => {\n const originalStream = nodeStream(el);\n if (!originalStream.length) return;\n\n const resultNode = document.createElement('div');\n resultNode.innerHTML = result.value;\n result.value = mergeStreams(originalStream, nodeStream(resultNode), text);\n }\n};\n\n/* Stream merging support functions */\n\n/**\n * @typedef Event\n * @property {'start'|'stop'} event\n * @property {number} offset\n * @property {Node} node\n */\n\n/**\n * @param {Node} node\n */\nfunction tag(node) {\n return node.nodeName.toLowerCase();\n}\n\n/**\n * @param {Node} node\n */\nfunction nodeStream(node) {\n /** @type Event[] */\n const result = [];\n (function _nodeStream(node, offset) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n if (child.nodeType === 3) {\n offset += child.nodeValue.length;\n } else if (child.nodeType === 1) {\n result.push({\n event: 'start',\n offset: offset,\n node: child\n });\n offset = _nodeStream(child, offset);\n // Prevent void elements from having an end tag that would actually\n // double them in the output. There are more void elements in HTML\n // but we list only those realistically expected in code display.\n if (!tag(child).match(/br|hr|img|input/)) {\n result.push({\n event: 'stop',\n offset: offset,\n node: child\n });\n }\n }\n }\n return offset;\n })(node, 0);\n return result;\n}\n\n/**\n * @param {any} original - the original stream\n * @param {any} highlighted - stream of the highlighted source\n * @param {string} value - the original source itself\n */\nfunction mergeStreams(original, highlighted, value) {\n let processed = 0;\n let result = '';\n const nodeStack = [];\n\n function selectStream() {\n if (!original.length || !highlighted.length) {\n return original.length ? original : highlighted;\n }\n if (original[0].offset !== highlighted[0].offset) {\n return (original[0].offset < highlighted[0].offset) ? original : highlighted;\n }\n\n /*\n To avoid starting the stream just before it should stop the order is\n ensured that original always starts first and closes last:\n\n if (event1 == 'start' && event2 == 'start')\n return original;\n if (event1 == 'start' && event2 == 'stop')\n return highlighted;\n if (event1 == 'stop' && event2 == 'start')\n return original;\n if (event1 == 'stop' && event2 == 'stop')\n return highlighted;\n\n ... which is collapsed to:\n */\n return highlighted[0].event === 'start' ? original : highlighted;\n }\n\n /**\n * @param {Node} node\n */\n function open(node) {\n /** @param {Attr} attr */\n function attributeString(attr) {\n return ' ' + attr.nodeName + '=\"' + escapeHTML(attr.value) + '\"';\n }\n // @ts-ignore\n result += '<' + tag(node) + [].map.call(node.attributes, attributeString).join('') + '>';\n }\n\n /**\n * @param {Node} node\n */\n function close(node) {\n result += '' + tag(node) + '>';\n }\n\n /**\n * @param {Event} event\n */\n function render(event) {\n (event.event === 'start' ? open : close)(event.node);\n }\n\n while (original.length || highlighted.length) {\n let stream = selectStream();\n result += escapeHTML(value.substring(processed, stream[0].offset));\n processed = stream[0].offset;\n if (stream === original) {\n /*\n On any opening or closing tag of the original markup we first close\n the entire highlighted node stack, then render the original tag along\n with all the following original tags at the same offset and then\n reopen all the tags on the highlighted stack.\n */\n nodeStack.reverse().forEach(close);\n do {\n render(stream.splice(0, 1)[0]);\n stream = selectStream();\n } while (stream === original && stream.length && stream[0].offset === processed);\n nodeStack.reverse().forEach(open);\n } else {\n if (stream[0].event === 'start') {\n nodeStack.push(stream[0].node);\n } else {\n nodeStack.pop();\n }\n render(stream.splice(0, 1)[0]);\n }\n }\n return result + escapeHTML(value.substr(processed));\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record blocks on a page\n *\n * @type {Function & {called?: boolean}}\n */\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n if (initHighlighting.called) return;\n initHighlighting.called = true;\n\n deprecated(\"10.6.0\", \"initHighlighting() is deprecated. Use highlightAll() instead.\");\n\n const blocks = document.querySelectorAll('pre code');\n blocks.forEach(highlightElement);\n };\n\n // Higlights all when DOMContentLoaded fires\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() is deprecated. Use highlightAll() instead.\");\n wantsHighlight = true;\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll('pre code');\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n intended usage: When one language truly requires another\n\n Unlike `getLanguage`, this will throw when the requested language\n is not available.\n\n @param {string} name - name of the language to fetch/require\n @returns {Language | never}\n */\n function requireLanguage(name) {\n deprecated(\"10.4.0\", \"requireLanguage will be removed entirely in v11.\");\n deprecated(\"10.4.0\", \"Please see https://github.com/highlightjs/highlight.js/pull/2844\");\n\n const lang = getLanguage(name);\n if (lang) { return lang; }\n\n const err = new Error('The \\'{}\\' language is required, but not loaded.'.replace('{}', name));\n throw err;\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n Note: fixMarkup is deprecated and will be removed entirely in v11\n\n @param {string} arg\n @returns {string}\n */\n function deprecateFixMarkup(arg) {\n deprecated(\"10.2.0\", \"fixMarkup will be removed entirely in v11.0\");\n deprecated(\"10.2.0\", \"Please see https://github.com/highlightjs/highlight.js/issues/2534\");\n\n return fixMarkup(arg);\n }\n\n /**\n *\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n fixMarkup: deprecateFixMarkup,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n requireLanguage,\n autoDetection,\n inherit: inherit$1,\n addPlugin,\n // plugins for frameworks\n vuePlugin: BuildVuePlugin(hljs).VuePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreezeEs6(MODES[key]);\n }\n }\n\n // merge all the modes/regexs into our main object\n Object.assign(hljs, MODES);\n\n // built-in plugins, likely to be moved out of core in the future\n hljs.addPlugin(brPlugin); // slated to be removed in v11\n hljs.addPlugin(mergeHTMLPlugin);\n hljs.addPlugin(tabReplacePlugin);\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\n","var map = {\n\t\"./1c\": [\n\t\t73870,\n\t\t\"highlight/1c\"\n\t],\n\t\"./1c.js\": [\n\t\t73870,\n\t\t\"highlight/1c\"\n\t],\n\t\"./abnf\": [\n\t\t1122,\n\t\t\"highlight/abnf\"\n\t],\n\t\"./abnf.js\": [\n\t\t1122,\n\t\t\"highlight/abnf\"\n\t],\n\t\"./accesslog\": [\n\t\t63074,\n\t\t\"highlight/accesslog\"\n\t],\n\t\"./accesslog.js\": [\n\t\t63074,\n\t\t\"highlight/accesslog\"\n\t],\n\t\"./actionscript\": [\n\t\t39696,\n\t\t\"highlight/actionscript\"\n\t],\n\t\"./actionscript.js\": [\n\t\t39696,\n\t\t\"highlight/actionscript\"\n\t],\n\t\"./ada\": [\n\t\t19389,\n\t\t\"highlight/ada\"\n\t],\n\t\"./ada.js\": [\n\t\t19389,\n\t\t\"highlight/ada\"\n\t],\n\t\"./angelscript\": [\n\t\t46147,\n\t\t\"highlight/angelscript\"\n\t],\n\t\"./angelscript.js\": [\n\t\t46147,\n\t\t\"highlight/angelscript\"\n\t],\n\t\"./apache\": [\n\t\t96936,\n\t\t\"highlight/apache\"\n\t],\n\t\"./apache.js\": [\n\t\t96936,\n\t\t\"highlight/apache\"\n\t],\n\t\"./applescript\": [\n\t\t5460,\n\t\t\"highlight/applescript\"\n\t],\n\t\"./applescript.js\": [\n\t\t5460,\n\t\t\"highlight/applescript\"\n\t],\n\t\"./arcade\": [\n\t\t43178,\n\t\t\"highlight/arcade\"\n\t],\n\t\"./arcade.js\": [\n\t\t43178,\n\t\t\"highlight/arcade\"\n\t],\n\t\"./arduino\": [\n\t\t1232,\n\t\t\"highlight/arduino\"\n\t],\n\t\"./arduino.js\": [\n\t\t1232,\n\t\t\"highlight/arduino\"\n\t],\n\t\"./armasm\": [\n\t\t71196,\n\t\t\"highlight/armasm\"\n\t],\n\t\"./armasm.js\": [\n\t\t71196,\n\t\t\"highlight/armasm\"\n\t],\n\t\"./asciidoc\": [\n\t\t90630,\n\t\t\"highlight/asciidoc\"\n\t],\n\t\"./asciidoc.js\": [\n\t\t90630,\n\t\t\"highlight/asciidoc\"\n\t],\n\t\"./aspectj\": [\n\t\t25044,\n\t\t\"highlight/aspectj\"\n\t],\n\t\"./aspectj.js\": [\n\t\t25044,\n\t\t\"highlight/aspectj\"\n\t],\n\t\"./autohotkey\": [\n\t\t67130,\n\t\t\"highlight/autohotkey\"\n\t],\n\t\"./autohotkey.js\": [\n\t\t67130,\n\t\t\"highlight/autohotkey\"\n\t],\n\t\"./autoit\": [\n\t\t75039,\n\t\t\"highlight/autoit\"\n\t],\n\t\"./autoit.js\": [\n\t\t75039,\n\t\t\"highlight/autoit\"\n\t],\n\t\"./avrasm\": [\n\t\t18324,\n\t\t\"highlight/avrasm\"\n\t],\n\t\"./avrasm.js\": [\n\t\t18324,\n\t\t\"highlight/avrasm\"\n\t],\n\t\"./awk\": [\n\t\t40070,\n\t\t\"highlight/awk\"\n\t],\n\t\"./awk.js\": [\n\t\t40070,\n\t\t\"highlight/awk\"\n\t],\n\t\"./axapta\": [\n\t\t80149,\n\t\t\"highlight/axapta\"\n\t],\n\t\"./axapta.js\": [\n\t\t80149,\n\t\t\"highlight/axapta\"\n\t],\n\t\"./bash\": [\n\t\t61519,\n\t\t\"highlight/bash\"\n\t],\n\t\"./bash.js\": [\n\t\t61519,\n\t\t\"highlight/bash\"\n\t],\n\t\"./basic\": [\n\t\t56827,\n\t\t\"highlight/basic\"\n\t],\n\t\"./basic.js\": [\n\t\t56827,\n\t\t\"highlight/basic\"\n\t],\n\t\"./bnf\": [\n\t\t78349,\n\t\t\"highlight/bnf\"\n\t],\n\t\"./bnf.js\": [\n\t\t78349,\n\t\t\"highlight/bnf\"\n\t],\n\t\"./brainfuck\": [\n\t\t44536,\n\t\t\"highlight/brainfuck\"\n\t],\n\t\"./brainfuck.js\": [\n\t\t44536,\n\t\t\"highlight/brainfuck\"\n\t],\n\t\"./c\": [\n\t\t25745,\n\t\t\"highlight/c\"\n\t],\n\t\"./c-like\": [\n\t\t58212,\n\t\t\"highlight/c-like\"\n\t],\n\t\"./c-like.js\": [\n\t\t58212,\n\t\t\"highlight/c-like\"\n\t],\n\t\"./c.js\": [\n\t\t25745,\n\t\t\"highlight/c\"\n\t],\n\t\"./cal\": [\n\t\t45041,\n\t\t\"highlight/cal\"\n\t],\n\t\"./cal.js\": [\n\t\t45041,\n\t\t\"highlight/cal\"\n\t],\n\t\"./capnproto\": [\n\t\t51446,\n\t\t\"highlight/capnproto\"\n\t],\n\t\"./capnproto.js\": [\n\t\t51446,\n\t\t\"highlight/capnproto\"\n\t],\n\t\"./ceylon\": [\n\t\t1795,\n\t\t\"highlight/ceylon\"\n\t],\n\t\"./ceylon.js\": [\n\t\t1795,\n\t\t\"highlight/ceylon\"\n\t],\n\t\"./clean\": [\n\t\t82280,\n\t\t\"highlight/clean\"\n\t],\n\t\"./clean.js\": [\n\t\t82280,\n\t\t\"highlight/clean\"\n\t],\n\t\"./clojure\": [\n\t\t36134,\n\t\t\"highlight/clojure\"\n\t],\n\t\"./clojure-repl\": [\n\t\t36746,\n\t\t\"highlight/clojure-repl\"\n\t],\n\t\"./clojure-repl.js\": [\n\t\t36746,\n\t\t\"highlight/clojure-repl\"\n\t],\n\t\"./clojure.js\": [\n\t\t36134,\n\t\t\"highlight/clojure\"\n\t],\n\t\"./cmake\": [\n\t\t71422,\n\t\t\"highlight/cmake\"\n\t],\n\t\"./cmake.js\": [\n\t\t71422,\n\t\t\"highlight/cmake\"\n\t],\n\t\"./coffeescript\": [\n\t\t6691,\n\t\t\"highlight/coffeescript\"\n\t],\n\t\"./coffeescript.js\": [\n\t\t6691,\n\t\t\"highlight/coffeescript\"\n\t],\n\t\"./coq\": [\n\t\t73621,\n\t\t\"highlight/coq\"\n\t],\n\t\"./coq.js\": [\n\t\t73621,\n\t\t\"highlight/coq\"\n\t],\n\t\"./cos\": [\n\t\t69586,\n\t\t\"highlight/cos\"\n\t],\n\t\"./cos.js\": [\n\t\t69586,\n\t\t\"highlight/cos\"\n\t],\n\t\"./cpp\": [\n\t\t74006,\n\t\t\"highlight/cpp\"\n\t],\n\t\"./cpp.js\": [\n\t\t74006,\n\t\t\"highlight/cpp\"\n\t],\n\t\"./crmsh\": [\n\t\t37641,\n\t\t\"highlight/crmsh\"\n\t],\n\t\"./crmsh.js\": [\n\t\t37641,\n\t\t\"highlight/crmsh\"\n\t],\n\t\"./crystal\": [\n\t\t91139,\n\t\t\"highlight/crystal\"\n\t],\n\t\"./crystal.js\": [\n\t\t91139,\n\t\t\"highlight/crystal\"\n\t],\n\t\"./csharp\": [\n\t\t681,\n\t\t\"highlight/csharp\"\n\t],\n\t\"./csharp.js\": [\n\t\t681,\n\t\t\"highlight/csharp\"\n\t],\n\t\"./csp\": [\n\t\t60530,\n\t\t\"highlight/csp\"\n\t],\n\t\"./csp.js\": [\n\t\t60530,\n\t\t\"highlight/csp\"\n\t],\n\t\"./css\": [\n\t\t68914,\n\t\t\"highlight/css\"\n\t],\n\t\"./css.js\": [\n\t\t68914,\n\t\t\"highlight/css\"\n\t],\n\t\"./d\": [\n\t\t89968,\n\t\t\"highlight/d\"\n\t],\n\t\"./d.js\": [\n\t\t89968,\n\t\t\"highlight/d\"\n\t],\n\t\"./dart\": [\n\t\t65778,\n\t\t\"highlight/dart\"\n\t],\n\t\"./dart.js\": [\n\t\t65778,\n\t\t\"highlight/dart\"\n\t],\n\t\"./delphi\": [\n\t\t48008,\n\t\t\"highlight/delphi\"\n\t],\n\t\"./delphi.js\": [\n\t\t48008,\n\t\t\"highlight/delphi\"\n\t],\n\t\"./diff\": [\n\t\t91833,\n\t\t\"highlight/diff\"\n\t],\n\t\"./diff.js\": [\n\t\t91833,\n\t\t\"highlight/diff\"\n\t],\n\t\"./django\": [\n\t\t45253,\n\t\t\"highlight/django\"\n\t],\n\t\"./django.js\": [\n\t\t45253,\n\t\t\"highlight/django\"\n\t],\n\t\"./dns\": [\n\t\t65594,\n\t\t\"highlight/dns\"\n\t],\n\t\"./dns.js\": [\n\t\t65594,\n\t\t\"highlight/dns\"\n\t],\n\t\"./dockerfile\": [\n\t\t27055,\n\t\t\"highlight/dockerfile\"\n\t],\n\t\"./dockerfile.js\": [\n\t\t27055,\n\t\t\"highlight/dockerfile\"\n\t],\n\t\"./dos\": [\n\t\t85215,\n\t\t\"highlight/dos\"\n\t],\n\t\"./dos.js\": [\n\t\t85215,\n\t\t\"highlight/dos\"\n\t],\n\t\"./dsconfig\": [\n\t\t71524,\n\t\t\"highlight/dsconfig\"\n\t],\n\t\"./dsconfig.js\": [\n\t\t71524,\n\t\t\"highlight/dsconfig\"\n\t],\n\t\"./dts\": [\n\t\t29702,\n\t\t\"highlight/dts\"\n\t],\n\t\"./dts.js\": [\n\t\t29702,\n\t\t\"highlight/dts\"\n\t],\n\t\"./dust\": [\n\t\t27115,\n\t\t\"highlight/dust\"\n\t],\n\t\"./dust.js\": [\n\t\t27115,\n\t\t\"highlight/dust\"\n\t],\n\t\"./ebnf\": [\n\t\t26254,\n\t\t\"highlight/ebnf\"\n\t],\n\t\"./ebnf.js\": [\n\t\t26254,\n\t\t\"highlight/ebnf\"\n\t],\n\t\"./elixir\": [\n\t\t27204,\n\t\t\"highlight/elixir\"\n\t],\n\t\"./elixir.js\": [\n\t\t27204,\n\t\t\"highlight/elixir\"\n\t],\n\t\"./elm\": [\n\t\t58259,\n\t\t\"highlight/elm\"\n\t],\n\t\"./elm.js\": [\n\t\t58259,\n\t\t\"highlight/elm\"\n\t],\n\t\"./erb\": [\n\t\t328,\n\t\t\"highlight/erb\"\n\t],\n\t\"./erb.js\": [\n\t\t328,\n\t\t\"highlight/erb\"\n\t],\n\t\"./erlang\": [\n\t\t87489,\n\t\t\"highlight/erlang\"\n\t],\n\t\"./erlang-repl\": [\n\t\t27670,\n\t\t\"highlight/erlang-repl\"\n\t],\n\t\"./erlang-repl.js\": [\n\t\t27670,\n\t\t\"highlight/erlang-repl\"\n\t],\n\t\"./erlang.js\": [\n\t\t87489,\n\t\t\"highlight/erlang\"\n\t],\n\t\"./excel\": [\n\t\t94369,\n\t\t\"highlight/excel\"\n\t],\n\t\"./excel.js\": [\n\t\t94369,\n\t\t\"highlight/excel\"\n\t],\n\t\"./fix\": [\n\t\t51377,\n\t\t\"highlight/fix\"\n\t],\n\t\"./fix.js\": [\n\t\t51377,\n\t\t\"highlight/fix\"\n\t],\n\t\"./flix\": [\n\t\t72041,\n\t\t\"highlight/flix\"\n\t],\n\t\"./flix.js\": [\n\t\t72041,\n\t\t\"highlight/flix\"\n\t],\n\t\"./fortran\": [\n\t\t28362,\n\t\t\"highlight/fortran\"\n\t],\n\t\"./fortran.js\": [\n\t\t28362,\n\t\t\"highlight/fortran\"\n\t],\n\t\"./fsharp\": [\n\t\t34639,\n\t\t\"highlight/fsharp\"\n\t],\n\t\"./fsharp.js\": [\n\t\t34639,\n\t\t\"highlight/fsharp\"\n\t],\n\t\"./gams\": [\n\t\t9392,\n\t\t\"highlight/gams\"\n\t],\n\t\"./gams.js\": [\n\t\t9392,\n\t\t\"highlight/gams\"\n\t],\n\t\"./gauss\": [\n\t\t44859,\n\t\t\"highlight/gauss\"\n\t],\n\t\"./gauss.js\": [\n\t\t44859,\n\t\t\"highlight/gauss\"\n\t],\n\t\"./gcode\": [\n\t\t38036,\n\t\t\"highlight/gcode\"\n\t],\n\t\"./gcode.js\": [\n\t\t38036,\n\t\t\"highlight/gcode\"\n\t],\n\t\"./gherkin\": [\n\t\t65962,\n\t\t\"highlight/gherkin\"\n\t],\n\t\"./gherkin.js\": [\n\t\t65962,\n\t\t\"highlight/gherkin\"\n\t],\n\t\"./glsl\": [\n\t\t85243,\n\t\t\"highlight/glsl\"\n\t],\n\t\"./glsl.js\": [\n\t\t85243,\n\t\t\"highlight/glsl\"\n\t],\n\t\"./gml\": [\n\t\t94807,\n\t\t\"highlight/gml\"\n\t],\n\t\"./gml.js\": [\n\t\t94807,\n\t\t\"highlight/gml\"\n\t],\n\t\"./go\": [\n\t\t33048,\n\t\t\"highlight/go\"\n\t],\n\t\"./go.js\": [\n\t\t33048,\n\t\t\"highlight/go\"\n\t],\n\t\"./golo\": [\n\t\t87140,\n\t\t\"highlight/golo\"\n\t],\n\t\"./golo.js\": [\n\t\t87140,\n\t\t\"highlight/golo\"\n\t],\n\t\"./gradle\": [\n\t\t88267,\n\t\t\"highlight/gradle\"\n\t],\n\t\"./gradle.js\": [\n\t\t88267,\n\t\t\"highlight/gradle\"\n\t],\n\t\"./groovy\": [\n\t\t12175,\n\t\t\"highlight/groovy\"\n\t],\n\t\"./groovy.js\": [\n\t\t12175,\n\t\t\"highlight/groovy\"\n\t],\n\t\"./haml\": [\n\t\t25268,\n\t\t\"highlight/haml\"\n\t],\n\t\"./haml.js\": [\n\t\t25268,\n\t\t\"highlight/haml\"\n\t],\n\t\"./handlebars\": [\n\t\t83512,\n\t\t\"highlight/handlebars\"\n\t],\n\t\"./handlebars.js\": [\n\t\t83512,\n\t\t\"highlight/handlebars\"\n\t],\n\t\"./haskell\": [\n\t\t56703,\n\t\t\"highlight/haskell\"\n\t],\n\t\"./haskell.js\": [\n\t\t56703,\n\t\t\"highlight/haskell\"\n\t],\n\t\"./haxe\": [\n\t\t429,\n\t\t\"highlight/haxe\"\n\t],\n\t\"./haxe.js\": [\n\t\t429,\n\t\t\"highlight/haxe\"\n\t],\n\t\"./hsp\": [\n\t\t90793,\n\t\t\"highlight/hsp\"\n\t],\n\t\"./hsp.js\": [\n\t\t90793,\n\t\t\"highlight/hsp\"\n\t],\n\t\"./htmlbars\": [\n\t\t93202,\n\t\t\"highlight/htmlbars\"\n\t],\n\t\"./htmlbars.js\": [\n\t\t93202,\n\t\t\"highlight/htmlbars\"\n\t],\n\t\"./http\": [\n\t\t30786,\n\t\t\"highlight/http\"\n\t],\n\t\"./http.js\": [\n\t\t30786,\n\t\t\"highlight/http\"\n\t],\n\t\"./hy\": [\n\t\t35359,\n\t\t\"highlight/hy\"\n\t],\n\t\"./hy.js\": [\n\t\t35359,\n\t\t\"highlight/hy\"\n\t],\n\t\"./inform7\": [\n\t\t68968,\n\t\t\"highlight/inform7\"\n\t],\n\t\"./inform7.js\": [\n\t\t68968,\n\t\t\"highlight/inform7\"\n\t],\n\t\"./ini\": [\n\t\t29560,\n\t\t\"highlight/ini\"\n\t],\n\t\"./ini.js\": [\n\t\t29560,\n\t\t\"highlight/ini\"\n\t],\n\t\"./irpf90\": [\n\t\t10811,\n\t\t\"highlight/irpf90\"\n\t],\n\t\"./irpf90.js\": [\n\t\t10811,\n\t\t\"highlight/irpf90\"\n\t],\n\t\"./isbl\": [\n\t\t15044,\n\t\t\"highlight/isbl\"\n\t],\n\t\"./isbl.js\": [\n\t\t15044,\n\t\t\"highlight/isbl\"\n\t],\n\t\"./java\": [\n\t\t37721,\n\t\t\"highlight/java\"\n\t],\n\t\"./java.js\": [\n\t\t37721,\n\t\t\"highlight/java\"\n\t],\n\t\"./javascript\": [\n\t\t96344,\n\t\t\"highlight/javascript\"\n\t],\n\t\"./javascript.js\": [\n\t\t96344,\n\t\t\"highlight/javascript\"\n\t],\n\t\"./jboss-cli\": [\n\t\t40412,\n\t\t\"highlight/jboss-cli\"\n\t],\n\t\"./jboss-cli.js\": [\n\t\t40412,\n\t\t\"highlight/jboss-cli\"\n\t],\n\t\"./json\": [\n\t\t82026,\n\t\t\"highlight/json\"\n\t],\n\t\"./json.js\": [\n\t\t82026,\n\t\t\"highlight/json\"\n\t],\n\t\"./julia\": [\n\t\t47337,\n\t\t\"highlight/julia\"\n\t],\n\t\"./julia-repl\": [\n\t\t79989,\n\t\t\"highlight/julia-repl\"\n\t],\n\t\"./julia-repl.js\": [\n\t\t79989,\n\t\t\"highlight/julia-repl\"\n\t],\n\t\"./julia.js\": [\n\t\t47337,\n\t\t\"highlight/julia\"\n\t],\n\t\"./kotlin\": [\n\t\t48099,\n\t\t\"highlight/kotlin\"\n\t],\n\t\"./kotlin.js\": [\n\t\t48099,\n\t\t\"highlight/kotlin\"\n\t],\n\t\"./lasso\": [\n\t\t54082,\n\t\t\"highlight/lasso\"\n\t],\n\t\"./lasso.js\": [\n\t\t54082,\n\t\t\"highlight/lasso\"\n\t],\n\t\"./latex\": [\n\t\t850,\n\t\t\"highlight/latex\"\n\t],\n\t\"./latex.js\": [\n\t\t850,\n\t\t\"highlight/latex\"\n\t],\n\t\"./ldif\": [\n\t\t33310,\n\t\t\"highlight/ldif\"\n\t],\n\t\"./ldif.js\": [\n\t\t33310,\n\t\t\"highlight/ldif\"\n\t],\n\t\"./leaf\": [\n\t\t2774,\n\t\t\"highlight/leaf\"\n\t],\n\t\"./leaf.js\": [\n\t\t2774,\n\t\t\"highlight/leaf\"\n\t],\n\t\"./less\": [\n\t\t23874,\n\t\t\"highlight/less\"\n\t],\n\t\"./less.js\": [\n\t\t23874,\n\t\t\"highlight/less\"\n\t],\n\t\"./lisp\": [\n\t\t17169,\n\t\t\"highlight/lisp\"\n\t],\n\t\"./lisp.js\": [\n\t\t17169,\n\t\t\"highlight/lisp\"\n\t],\n\t\"./livecodeserver\": [\n\t\t63909,\n\t\t\"highlight/livecodeserver\"\n\t],\n\t\"./livecodeserver.js\": [\n\t\t63909,\n\t\t\"highlight/livecodeserver\"\n\t],\n\t\"./livescript\": [\n\t\t39563,\n\t\t\"highlight/livescript\"\n\t],\n\t\"./livescript.js\": [\n\t\t39563,\n\t\t\"highlight/livescript\"\n\t],\n\t\"./llvm\": [\n\t\t40119,\n\t\t\"highlight/llvm\"\n\t],\n\t\"./llvm.js\": [\n\t\t40119,\n\t\t\"highlight/llvm\"\n\t],\n\t\"./lsl\": [\n\t\t12130,\n\t\t\"highlight/lsl\"\n\t],\n\t\"./lsl.js\": [\n\t\t12130,\n\t\t\"highlight/lsl\"\n\t],\n\t\"./lua\": [\n\t\t31067,\n\t\t\"highlight/lua\"\n\t],\n\t\"./lua.js\": [\n\t\t31067,\n\t\t\"highlight/lua\"\n\t],\n\t\"./makefile\": [\n\t\t30465,\n\t\t\"highlight/makefile\"\n\t],\n\t\"./makefile.js\": [\n\t\t30465,\n\t\t\"highlight/makefile\"\n\t],\n\t\"./markdown\": [\n\t\t93839,\n\t\t\"highlight/markdown\"\n\t],\n\t\"./markdown.js\": [\n\t\t93839,\n\t\t\"highlight/markdown\"\n\t],\n\t\"./mathematica\": [\n\t\t61083,\n\t\t\"highlight/mathematica\"\n\t],\n\t\"./mathematica.js\": [\n\t\t61083,\n\t\t\"highlight/mathematica\"\n\t],\n\t\"./matlab\": [\n\t\t41304,\n\t\t\"highlight/matlab\"\n\t],\n\t\"./matlab.js\": [\n\t\t41304,\n\t\t\"highlight/matlab\"\n\t],\n\t\"./maxima\": [\n\t\t46747,\n\t\t\"highlight/maxima\"\n\t],\n\t\"./maxima.js\": [\n\t\t46747,\n\t\t\"highlight/maxima\"\n\t],\n\t\"./mel\": [\n\t\t70483,\n\t\t\"highlight/mel\"\n\t],\n\t\"./mel.js\": [\n\t\t70483,\n\t\t\"highlight/mel\"\n\t],\n\t\"./mercury\": [\n\t\t53038,\n\t\t\"highlight/mercury\"\n\t],\n\t\"./mercury.js\": [\n\t\t53038,\n\t\t\"highlight/mercury\"\n\t],\n\t\"./mipsasm\": [\n\t\t45802,\n\t\t\"highlight/mipsasm\"\n\t],\n\t\"./mipsasm.js\": [\n\t\t45802,\n\t\t\"highlight/mipsasm\"\n\t],\n\t\"./mizar\": [\n\t\t90918,\n\t\t\"highlight/mizar\"\n\t],\n\t\"./mizar.js\": [\n\t\t90918,\n\t\t\"highlight/mizar\"\n\t],\n\t\"./mojolicious\": [\n\t\t92210,\n\t\t\"highlight/mojolicious\"\n\t],\n\t\"./mojolicious.js\": [\n\t\t92210,\n\t\t\"highlight/mojolicious\"\n\t],\n\t\"./monkey\": [\n\t\t97350,\n\t\t\"highlight/monkey\"\n\t],\n\t\"./monkey.js\": [\n\t\t97350,\n\t\t\"highlight/monkey\"\n\t],\n\t\"./moonscript\": [\n\t\t27239,\n\t\t\"highlight/moonscript\"\n\t],\n\t\"./moonscript.js\": [\n\t\t27239,\n\t\t\"highlight/moonscript\"\n\t],\n\t\"./n1ql\": [\n\t\t77669,\n\t\t\"highlight/n1ql\"\n\t],\n\t\"./n1ql.js\": [\n\t\t77669,\n\t\t\"highlight/n1ql\"\n\t],\n\t\"./nginx\": [\n\t\t42387,\n\t\t\"highlight/nginx\"\n\t],\n\t\"./nginx.js\": [\n\t\t42387,\n\t\t\"highlight/nginx\"\n\t],\n\t\"./nim\": [\n\t\t35587,\n\t\t\"highlight/nim\"\n\t],\n\t\"./nim.js\": [\n\t\t35587,\n\t\t\"highlight/nim\"\n\t],\n\t\"./nix\": [\n\t\t88170,\n\t\t\"highlight/nix\"\n\t],\n\t\"./nix.js\": [\n\t\t88170,\n\t\t\"highlight/nix\"\n\t],\n\t\"./node-repl\": [\n\t\t93668,\n\t\t\"highlight/node-repl\"\n\t],\n\t\"./node-repl.js\": [\n\t\t93668,\n\t\t\"highlight/node-repl\"\n\t],\n\t\"./nsis\": [\n\t\t29269,\n\t\t\"highlight/nsis\"\n\t],\n\t\"./nsis.js\": [\n\t\t29269,\n\t\t\"highlight/nsis\"\n\t],\n\t\"./objectivec\": [\n\t\t61896,\n\t\t\"highlight/objectivec\"\n\t],\n\t\"./objectivec.js\": [\n\t\t61896,\n\t\t\"highlight/objectivec\"\n\t],\n\t\"./ocaml\": [\n\t\t78550,\n\t\t\"highlight/ocaml\"\n\t],\n\t\"./ocaml.js\": [\n\t\t78550,\n\t\t\"highlight/ocaml\"\n\t],\n\t\"./openscad\": [\n\t\t41078,\n\t\t\"highlight/openscad\"\n\t],\n\t\"./openscad.js\": [\n\t\t41078,\n\t\t\"highlight/openscad\"\n\t],\n\t\"./oxygene\": [\n\t\t89015,\n\t\t\"highlight/oxygene\"\n\t],\n\t\"./oxygene.js\": [\n\t\t89015,\n\t\t\"highlight/oxygene\"\n\t],\n\t\"./parser3\": [\n\t\t6247,\n\t\t\"highlight/parser3\"\n\t],\n\t\"./parser3.js\": [\n\t\t6247,\n\t\t\"highlight/parser3\"\n\t],\n\t\"./perl\": [\n\t\t78529,\n\t\t\"highlight/perl\"\n\t],\n\t\"./perl.js\": [\n\t\t78529,\n\t\t\"highlight/perl\"\n\t],\n\t\"./pf\": [\n\t\t15994,\n\t\t\"highlight/pf\"\n\t],\n\t\"./pf.js\": [\n\t\t15994,\n\t\t\"highlight/pf\"\n\t],\n\t\"./pgsql\": [\n\t\t86509,\n\t\t\"highlight/pgsql\"\n\t],\n\t\"./pgsql.js\": [\n\t\t86509,\n\t\t\"highlight/pgsql\"\n\t],\n\t\"./php\": [\n\t\t73306,\n\t\t\"highlight/php\"\n\t],\n\t\"./php-template\": [\n\t\t75377,\n\t\t\"highlight/php-template\"\n\t],\n\t\"./php-template.js\": [\n\t\t75377,\n\t\t\"highlight/php-template\"\n\t],\n\t\"./php.js\": [\n\t\t73306,\n\t\t\"highlight/php\"\n\t],\n\t\"./plaintext\": [\n\t\t76572,\n\t\t\"highlight/plaintext\"\n\t],\n\t\"./plaintext.js\": [\n\t\t76572,\n\t\t\"highlight/plaintext\"\n\t],\n\t\"./pony\": [\n\t\t28422,\n\t\t\"highlight/pony\"\n\t],\n\t\"./pony.js\": [\n\t\t28422,\n\t\t\"highlight/pony\"\n\t],\n\t\"./powershell\": [\n\t\t66336,\n\t\t\"highlight/powershell\"\n\t],\n\t\"./powershell.js\": [\n\t\t66336,\n\t\t\"highlight/powershell\"\n\t],\n\t\"./processing\": [\n\t\t44148,\n\t\t\"highlight/processing\"\n\t],\n\t\"./processing.js\": [\n\t\t44148,\n\t\t\"highlight/processing\"\n\t],\n\t\"./profile\": [\n\t\t9129,\n\t\t\"highlight/profile\"\n\t],\n\t\"./profile.js\": [\n\t\t9129,\n\t\t\"highlight/profile\"\n\t],\n\t\"./prolog\": [\n\t\t58074,\n\t\t\"highlight/prolog\"\n\t],\n\t\"./prolog.js\": [\n\t\t58074,\n\t\t\"highlight/prolog\"\n\t],\n\t\"./properties\": [\n\t\t81245,\n\t\t\"highlight/properties\"\n\t],\n\t\"./properties.js\": [\n\t\t81245,\n\t\t\"highlight/properties\"\n\t],\n\t\"./protobuf\": [\n\t\t3306,\n\t\t\"highlight/protobuf\"\n\t],\n\t\"./protobuf.js\": [\n\t\t3306,\n\t\t\"highlight/protobuf\"\n\t],\n\t\"./puppet\": [\n\t\t73736,\n\t\t\"highlight/puppet\"\n\t],\n\t\"./puppet.js\": [\n\t\t73736,\n\t\t\"highlight/puppet\"\n\t],\n\t\"./purebasic\": [\n\t\t34055,\n\t\t\"highlight/purebasic\"\n\t],\n\t\"./purebasic.js\": [\n\t\t34055,\n\t\t\"highlight/purebasic\"\n\t],\n\t\"./python\": [\n\t\t30308,\n\t\t\"highlight/python\"\n\t],\n\t\"./python-repl\": [\n\t\t93725,\n\t\t\"highlight/python-repl\"\n\t],\n\t\"./python-repl.js\": [\n\t\t93725,\n\t\t\"highlight/python-repl\"\n\t],\n\t\"./python.js\": [\n\t\t30308,\n\t\t\"highlight/python\"\n\t],\n\t\"./q\": [\n\t\t76891,\n\t\t\"highlight/q\"\n\t],\n\t\"./q.js\": [\n\t\t76891,\n\t\t\"highlight/q\"\n\t],\n\t\"./qml\": [\n\t\t63259,\n\t\t\"highlight/qml\"\n\t],\n\t\"./qml.js\": [\n\t\t63259,\n\t\t\"highlight/qml\"\n\t],\n\t\"./r\": [\n\t\t30806,\n\t\t\"highlight/r\"\n\t],\n\t\"./r.js\": [\n\t\t30806,\n\t\t\"highlight/r\"\n\t],\n\t\"./reasonml\": [\n\t\t82050,\n\t\t\"highlight/reasonml\"\n\t],\n\t\"./reasonml.js\": [\n\t\t82050,\n\t\t\"highlight/reasonml\"\n\t],\n\t\"./rib\": [\n\t\t44613,\n\t\t\"highlight/rib\"\n\t],\n\t\"./rib.js\": [\n\t\t44613,\n\t\t\"highlight/rib\"\n\t],\n\t\"./roboconf\": [\n\t\t33176,\n\t\t\"highlight/roboconf\"\n\t],\n\t\"./roboconf.js\": [\n\t\t33176,\n\t\t\"highlight/roboconf\"\n\t],\n\t\"./routeros\": [\n\t\t25096,\n\t\t\"highlight/routeros\"\n\t],\n\t\"./routeros.js\": [\n\t\t25096,\n\t\t\"highlight/routeros\"\n\t],\n\t\"./rsl\": [\n\t\t61025,\n\t\t\"highlight/rsl\"\n\t],\n\t\"./rsl.js\": [\n\t\t61025,\n\t\t\"highlight/rsl\"\n\t],\n\t\"./ruby\": [\n\t\t58473,\n\t\t\"highlight/ruby\"\n\t],\n\t\"./ruby.js\": [\n\t\t58473,\n\t\t\"highlight/ruby\"\n\t],\n\t\"./ruleslanguage\": [\n\t\t65506,\n\t\t\"highlight/ruleslanguage\"\n\t],\n\t\"./ruleslanguage.js\": [\n\t\t65506,\n\t\t\"highlight/ruleslanguage\"\n\t],\n\t\"./rust\": [\n\t\t11374,\n\t\t\"highlight/rust\"\n\t],\n\t\"./rust.js\": [\n\t\t11374,\n\t\t\"highlight/rust\"\n\t],\n\t\"./sas\": [\n\t\t35457,\n\t\t\"highlight/sas\"\n\t],\n\t\"./sas.js\": [\n\t\t35457,\n\t\t\"highlight/sas\"\n\t],\n\t\"./scala\": [\n\t\t5818,\n\t\t\"highlight/scala\"\n\t],\n\t\"./scala.js\": [\n\t\t5818,\n\t\t\"highlight/scala\"\n\t],\n\t\"./scheme\": [\n\t\t10336,\n\t\t\"highlight/scheme\"\n\t],\n\t\"./scheme.js\": [\n\t\t10336,\n\t\t\"highlight/scheme\"\n\t],\n\t\"./scilab\": [\n\t\t47691,\n\t\t\"highlight/scilab\"\n\t],\n\t\"./scilab.js\": [\n\t\t47691,\n\t\t\"highlight/scilab\"\n\t],\n\t\"./scss\": [\n\t\t36632,\n\t\t\"highlight/scss\"\n\t],\n\t\"./scss.js\": [\n\t\t36632,\n\t\t\"highlight/scss\"\n\t],\n\t\"./shell\": [\n\t\t19514,\n\t\t\"highlight/shell\"\n\t],\n\t\"./shell.js\": [\n\t\t19514,\n\t\t\"highlight/shell\"\n\t],\n\t\"./smali\": [\n\t\t60522,\n\t\t\"highlight/smali\"\n\t],\n\t\"./smali.js\": [\n\t\t60522,\n\t\t\"highlight/smali\"\n\t],\n\t\"./smalltalk\": [\n\t\t75030,\n\t\t\"highlight/smalltalk\"\n\t],\n\t\"./smalltalk.js\": [\n\t\t75030,\n\t\t\"highlight/smalltalk\"\n\t],\n\t\"./sml\": [\n\t\t79664,\n\t\t\"highlight/sml\"\n\t],\n\t\"./sml.js\": [\n\t\t79664,\n\t\t\"highlight/sml\"\n\t],\n\t\"./sqf\": [\n\t\t85168,\n\t\t\"highlight/sqf\"\n\t],\n\t\"./sqf.js\": [\n\t\t85168,\n\t\t\"highlight/sqf\"\n\t],\n\t\"./sql\": [\n\t\t97181,\n\t\t\"highlight/sql\"\n\t],\n\t\"./sql.js\": [\n\t\t97181,\n\t\t\"highlight/sql\"\n\t],\n\t\"./sql_more\": [\n\t\t83224,\n\t\t\"highlight/sql_more\"\n\t],\n\t\"./sql_more.js\": [\n\t\t83224,\n\t\t\"highlight/sql_more\"\n\t],\n\t\"./stan\": [\n\t\t53413,\n\t\t\"highlight/stan\"\n\t],\n\t\"./stan.js\": [\n\t\t53413,\n\t\t\"highlight/stan\"\n\t],\n\t\"./stata\": [\n\t\t92417,\n\t\t\"highlight/stata\"\n\t],\n\t\"./stata.js\": [\n\t\t92417,\n\t\t\"highlight/stata\"\n\t],\n\t\"./step21\": [\n\t\t52706,\n\t\t\"highlight/step21\"\n\t],\n\t\"./step21.js\": [\n\t\t52706,\n\t\t\"highlight/step21\"\n\t],\n\t\"./stylus\": [\n\t\t82054,\n\t\t\"highlight/stylus\"\n\t],\n\t\"./stylus.js\": [\n\t\t82054,\n\t\t\"highlight/stylus\"\n\t],\n\t\"./subunit\": [\n\t\t36886,\n\t\t\"highlight/subunit\"\n\t],\n\t\"./subunit.js\": [\n\t\t36886,\n\t\t\"highlight/subunit\"\n\t],\n\t\"./swift\": [\n\t\t26306,\n\t\t\"highlight/swift\"\n\t],\n\t\"./swift.js\": [\n\t\t26306,\n\t\t\"highlight/swift\"\n\t],\n\t\"./taggerscript\": [\n\t\t54858,\n\t\t\"highlight/taggerscript\"\n\t],\n\t\"./taggerscript.js\": [\n\t\t54858,\n\t\t\"highlight/taggerscript\"\n\t],\n\t\"./tap\": [\n\t\t49113,\n\t\t\"highlight/tap\"\n\t],\n\t\"./tap.js\": [\n\t\t49113,\n\t\t\"highlight/tap\"\n\t],\n\t\"./tcl\": [\n\t\t74562,\n\t\t\"highlight/tcl\"\n\t],\n\t\"./tcl.js\": [\n\t\t74562,\n\t\t\"highlight/tcl\"\n\t],\n\t\"./thrift\": [\n\t\t55063,\n\t\t\"highlight/thrift\"\n\t],\n\t\"./thrift.js\": [\n\t\t55063,\n\t\t\"highlight/thrift\"\n\t],\n\t\"./tp\": [\n\t\t27092,\n\t\t\"highlight/tp\"\n\t],\n\t\"./tp.js\": [\n\t\t27092,\n\t\t\"highlight/tp\"\n\t],\n\t\"./twig\": [\n\t\t35488,\n\t\t\"highlight/twig\"\n\t],\n\t\"./twig.js\": [\n\t\t35488,\n\t\t\"highlight/twig\"\n\t],\n\t\"./typescript\": [\n\t\t91533,\n\t\t\"highlight/typescript\"\n\t],\n\t\"./typescript.js\": [\n\t\t91533,\n\t\t\"highlight/typescript\"\n\t],\n\t\"./vala\": [\n\t\t65431,\n\t\t\"highlight/vala\"\n\t],\n\t\"./vala.js\": [\n\t\t65431,\n\t\t\"highlight/vala\"\n\t],\n\t\"./vbnet\": [\n\t\t86479,\n\t\t\"highlight/vbnet\"\n\t],\n\t\"./vbnet.js\": [\n\t\t86479,\n\t\t\"highlight/vbnet\"\n\t],\n\t\"./vbscript\": [\n\t\t80824,\n\t\t\"highlight/vbscript\"\n\t],\n\t\"./vbscript-html\": [\n\t\t3316,\n\t\t\"highlight/vbscript-html\"\n\t],\n\t\"./vbscript-html.js\": [\n\t\t3316,\n\t\t\"highlight/vbscript-html\"\n\t],\n\t\"./vbscript.js\": [\n\t\t80824,\n\t\t\"highlight/vbscript\"\n\t],\n\t\"./verilog\": [\n\t\t49115,\n\t\t\"highlight/verilog\"\n\t],\n\t\"./verilog.js\": [\n\t\t49115,\n\t\t\"highlight/verilog\"\n\t],\n\t\"./vhdl\": [\n\t\t53260,\n\t\t\"highlight/vhdl\"\n\t],\n\t\"./vhdl.js\": [\n\t\t53260,\n\t\t\"highlight/vhdl\"\n\t],\n\t\"./vim\": [\n\t\t5298,\n\t\t\"highlight/vim\"\n\t],\n\t\"./vim.js\": [\n\t\t5298,\n\t\t\"highlight/vim\"\n\t],\n\t\"./x86asm\": [\n\t\t43377,\n\t\t\"highlight/x86asm\"\n\t],\n\t\"./x86asm.js\": [\n\t\t43377,\n\t\t\"highlight/x86asm\"\n\t],\n\t\"./xl\": [\n\t\t731,\n\t\t\"highlight/xl\"\n\t],\n\t\"./xl.js\": [\n\t\t731,\n\t\t\"highlight/xl\"\n\t],\n\t\"./xml\": [\n\t\t42157,\n\t\t\"highlight/xml\"\n\t],\n\t\"./xml.js\": [\n\t\t42157,\n\t\t\"highlight/xml\"\n\t],\n\t\"./xquery\": [\n\t\t46629,\n\t\t\"highlight/xquery\"\n\t],\n\t\"./xquery.js\": [\n\t\t46629,\n\t\t\"highlight/xquery\"\n\t],\n\t\"./yaml\": [\n\t\t54587,\n\t\t\"highlight/yaml\"\n\t],\n\t\"./yaml.js\": [\n\t\t54587,\n\t\t\"highlight/yaml\"\n\t],\n\t\"./zephir\": [\n\t\t58737,\n\t\t\"highlight/zephir\"\n\t],\n\t\"./zephir.js\": [\n\t\t58737,\n\t\t\"highlight/zephir\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 7 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 23506;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","\n\n\n\t\n\t\t\n\t\t\n\t\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=style&index=0&id=4a5d4c0f&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=style&index=0&id=4a5d4c0f&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CollisionResolveDialog.vue?vue&type=template&id=4a5d4c0f&scoped=true&\"\nimport script from \"./CollisionResolveDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CollisionResolveDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CollisionResolveDialog.vue?vue&type=style&index=0&id=4a5d4c0f&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4a5d4c0f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"collision-resolve-dialog\",attrs:{\"id\":\"resolve-conflicts\"}},[_c('button',{on:{\"click\":function($event){return _vm.$emit('resolve-use-this-version')}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('text', 'Use current version'))+\"\\n\\t\")]),_vm._v(\" \"),_c('button',{on:{\"click\":function($event){return _vm.$emit('resolve-use-server-version')}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('text', 'Use the saved version'))+\"\\n\\t\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"editor-container\"}},[(_vm.displayed)?_c('div',{staticClass:\"document-status\"},[(_vm.idle)?_c('p',{staticClass:\"msg\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('text', 'Document idle for {timeout} minutes, click to continue editing', { timeout: _vm.IDLE_TIMEOUT }))+\" \"),_c('a',{staticClass:\"button primary\",on:{\"click\":_vm.reconnect}},[_vm._v(_vm._s(_vm.t('text', 'Reconnect')))])]):(_vm.hasSyncCollission)?_c('p',{staticClass:\"msg icon-error\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('text', 'The document has been changed outside of the editor. The changes cannot be applied.'))+\"\\n\\t\\t\")]):(_vm.hasConnectionIssue)?_c('p',{staticClass:\"msg\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('text', 'File could not be loaded. Please check your internet connection.'))+\" \"),_c('a',{staticClass:\"button primary\",on:{\"click\":_vm.reconnect}},[_vm._v(_vm._s(_vm.t('text', 'Reconnect')))])]):_vm._e(),_vm._v(\" \"),(_vm.lock)?_c('p',{staticClass:\"msg msg-locked\"},[_c('Lock'),_vm._v(\" \"+_vm._s(_vm.t('text', 'This file is opened read-only as it is currently locked by {user}.', { user: _vm.lock.displayName }))+\"\\n\\t\\t\")],1):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.displayed)?_c('div',{class:{'has-conflicts': _vm.hasSyncCollission, 'icon-loading': !_vm.contentLoaded && !_vm.hasConnectionIssue, 'richEditor': _vm.isRichEditor, 'show-color-annotations': _vm.showAuthorAnnotations},attrs:{\"id\":\"editor-wrapper\"}},[(_vm.$editor)?_c('div',{class:{ draggedOver: _vm.draggedOver },attrs:{\"id\":\"editor\"},on:{\"image-paste\":_vm.onPaste,\"dragover\":function($event){$event.preventDefault();$event.stopPropagation();_vm.draggedOver = true},\"dragleave\":function($event){$event.preventDefault();$event.stopPropagation();_vm.draggedOver = false},\"image-drop\":_vm.onEditorDrop}},[(_vm.renderMenus)?_c('MenuBar',{ref:\"menubar\",attrs:{\"file-path\":_vm.relativePath,\"file-id\":_vm.fileId,\"is-read-only\":_vm.readOnly,\"is-rich-editor\":_vm.isRichEditor,\"is-public\":_vm.isPublic,\"autohide\":_vm.autohide,\"loaded\":_vm.menubarLoaded,\"uploading-images\":_vm.uploadingImages},on:{\"update:loaded\":function($event){_vm.menubarLoaded=$event},\"show-help\":_vm.showHelp,\"image-insert\":_vm.insertImagePath,\"image-upload\":_vm.uploadImageFiles}},[_c('div',{attrs:{\"id\":\"editor-session-list\"}},[_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.lastSavedStatusTooltip),expression:\"lastSavedStatusTooltip\"}],staticClass:\"save-status\",class:_vm.lastSavedStatusClass},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.lastSavedStatus)+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('SessionList',{attrs:{\"sessions\":_vm.filteredSessions}},[(_vm.isPublic && _vm.currentSession.guestName)?_c('GuestNameDialog'):_vm._e()],1)],1),_vm._v(\" \"),_vm._t(\"header\")],2):_vm._e(),_vm._v(\" \"),(!_vm.menubarLoaded)?_c('div',{staticClass:\"menubar placeholder\"}):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"contentWrapper\",staticClass:\"content-wrapper\"},[(_vm.renderRichEditorMenus)?_c('MenuBubble',{attrs:{\"content-wrapper\":_vm.contentWrapper,\"file-path\":_vm.relativePath}}):_vm._e(),_vm._v(\" \"),_c('EditorContent',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.contentLoaded),expression:\"contentLoaded\"}],staticClass:\"editor__content\",attrs:{\"editor\":_vm.$editor}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.hasSyncCollission)?_c('ReadOnlyEditor',{attrs:{\"content\":_vm.syncError.data.outsideChange,\"is-rich-editor\":_vm.isRichEditor}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.hasSyncCollission && !_vm.readOnly)?_c('CollisionResolveDialog',{on:{\"resolve-use-this-version\":_vm.resolveUseThisVersion,\"resolve-use-server-version\":_vm.resolveUseServerVersion}}):_vm._e(),_vm._v(\" \"),(_vm.displayHelp)?_c('HelpModal',{on:{\"close\":_vm.hideHelp}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport axios from '@nextcloud/axios'\nimport { endpointUrl } from '../helpers/index.js'\nimport { SyncService, ERROR_TYPE } from './SyncService.js'\nimport { sendableSteps } from 'prosemirror-collab'\n\n/**\n * Minimum inverval to refetch the document changes\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL = 300\n\n/**\n * Maximum interval between refetches of document state if multiple users have joined\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL_MAX = 5000\n\n/**\n * Interval to check for changes when there is only one user joined\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL_SINGLE_EDITOR = 5000\n\n/**\n * Interval to fetch for changes when a browser window is considered invisible by the\n * page visibility API https://developer.mozilla.org/de/docs/Web/API/Page_Visibility_API\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL_INVISIBLE = 60000\n\nconst MIN_PUSH_RETRY = 500\nconst MAX_PUSH_RETRY = 10000\n\n/* Timeout after that a PUSH_FAILURE error is emitted */\nconst WARNING_PUSH_RETRY = 5000\n\n/* Maximum number of retries for fetching before emitting a connection error */\nconst MAX_RETRY_FETCH_COUNT = 5\n\n/**\n * Timeout for sessions to be marked as disconnected\n * Make sure that this is higher than any FETCH_INTERVAL_ values\n */\nconst COLLABORATOR_DISCONNECT_TIME = FETCH_INTERVAL_INVISIBLE * 1.5\n\nclass PollingBackend {\n\n\tconstructor(authority) {\n\t\t/** @type {SyncService} */\n\t\tthis._authority = authority\n\t\tthis.fetchInterval = FETCH_INTERVAL\n\t\tthis.retryTime = MIN_PUSH_RETRY\n\t\tthis.lock = false\n\t\tthis.fetchRetryCounter = 0\n\t}\n\n\tconnect() {\n\t\tthis.initialLoadingFinished = false\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), 50)\n\t\tdocument.addEventListener('visibilitychange', this.visibilitychange.bind(this))\n\t}\n\n\t_isPublic() {\n\t\treturn !!this._authority.options.shareToken\n\t}\n\n\tforceSave() {\n\t\tthis._forcedSave = true\n\t\tthis.fetchSteps()\n\t}\n\n\tsave() {\n\t\tthis._manualSave = true\n\t\tthis.fetchSteps()\n\t}\n\n\tfetchSteps() {\n\t\tthis._fetchSteps()\n\t}\n\n\t/**\n\t * This method is only called though the timer\n\t */\n\t_fetchSteps() {\n\t\tif (this.lock || !this.fetcher) {\n\t\t\treturn\n\t\t}\n\t\tthis.lock = true\n\t\tlet autosaveContent\n\t\tif (this._forcedSave || this._manualSave\n\t\t\t|| (!sendableSteps(this._authority.state)\n\t\t\t&& (this._authority._getVersion() !== this._authority.document.lastSavedVersion))\n\t\t) {\n\t\t\tautosaveContent = this._authority._getContent()\n\t\t}\n\t\taxios.post(endpointUrl('session/sync', this._isPublic()), {\n\t\t\tdocumentId: this._authority.document.id,\n\t\t\tsessionId: this._authority.session.id,\n\t\t\tsessionToken: this._authority.session.token,\n\t\t\tversion: this._authority._getVersion(),\n\t\t\tautosaveContent,\n\t\t\tforce: !!this._forcedSave,\n\t\t\tmanualSave: !!this._manualSave,\n\t\t\ttoken: this._authority.options.shareToken,\n\t\t\tfilePath: this._authority.options.filePath,\n\t\t}).then(this._handleResponse.bind(this), this._handleError.bind(this))\n\t\tthis._manualSave = false\n\t\tthis._forcedSave = false\n\t}\n\n\t_handleResponse(response) {\n\t\tthis.fetchRetryCounter = 0\n\n\t\tif (this._authority.document.lastSavedVersion < response.data.document.lastSavedVersion) {\n\t\t\tconsole.debug('Saved document', response.data.document)\n\t\t\tthis._authority.emit('save', { document: response.data.document, sessions: response.data.sessions })\n\t\t}\n\n\t\tthis._authority.emit('change', { document: response.data.document, sessions: response.data.sessions })\n\t\tthis._authority.document = response.data.document\n\t\tthis._authority.sessions = response.data.sessions\n\n\t\tif (response.data.steps.length === 0) {\n\t\t\tif (!this.initialLoadingFinished) {\n\t\t\t\tthis.initialLoadingFinished = true\n\t\t\t}\n\t\t\tif (this._authority.checkIdle()) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.lock = false\n\t\t\tconst disconnect = Date.now() - COLLABORATOR_DISCONNECT_TIME\n\t\t\tconst alive = response.data.sessions.filter((s) => s.lastContact * 1000 > disconnect)\n\t\t\tif (alive.length < 2) {\n\t\t\t\tthis.maximumRefetchTimer()\n\t\t\t} else {\n\t\t\t\tthis.increaseRefetchTimer()\n\t\t\t}\n\t\t\tthis._authority.emit('stateChange', { dirty: false })\n\t\t\tthis._authority.emit('stateChange', { initialLoading: true })\n\t\t\treturn\n\t\t}\n\n\t\tthis._authority._receiveSteps(response.data)\n\t\tthis.lock = false\n\t\tthis._forcedSave = false\n\t\tif (this.initialLoadingFinished) {\n\t\t\tthis.resetRefetchTimer()\n\t\t}\n\t}\n\n\t_handleError(e) {\n\t\tthis.lock = false\n\t\tif (!e.response || e.code === 'ECONNABORTED') {\n\t\t\tif (this.fetchRetryCounter++ >= MAX_RETRY_FETCH_COUNT) {\n\t\t\t\tconsole.error('[PollingBackend:fetchSteps] Network error when fetching steps, emitting CONNECTION_FAILED')\n\t\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.CONNECTION_FAILED, data: { retry: false } })\n\n\t\t\t} else {\n\t\t\t\tconsole.error(`[PollingBackend:fetchSteps] Network error when fetching steps, retry ${this.fetchRetryCounter}`)\n\t\t\t}\n\t\t} else if (e.response.status === 409 && e.response.data.document.currentVersion === this._authority.document.currentVersion) {\n\t\t\t// Only emit conflict event if we have synced until the latest version\n\t\t\tconsole.error('Conflict during file save, please resolve')\n\t\t\tthis._authority.emit('error', {\n\t\t\t\ttype: ERROR_TYPE.SAVE_COLLISSION,\n\t\t\t\tdata: {\n\t\t\t\t\toutsideChange: e.response.data.outsideChange,\n\t\t\t\t},\n\t\t\t})\n\t\t} else if (e.response.status === 403) {\n\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.SOURCE_NOT_FOUND, data: {} })\n\t\t\tthis.disconnect()\n\t\t} else if (e.response.status === 404) {\n\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.SOURCE_NOT_FOUND, data: {} })\n\t\t\tthis.disconnect()\n\t\t} else if (e.response.status === 503) {\n\t\t\tthis.increaseRefetchTimer()\n\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.CONNECTION_FAILED, data: { retry: false } })\n\t\t\tconsole.error('Failed to fetch steps due to unavailable service', e)\n\t\t} else {\n\t\t\tthis.disconnect()\n\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.CONNECTION_FAILED, data: { retry: false } })\n\t\t\tconsole.error('Failed to fetch steps due to other reason', e)\n\t\t}\n\n\t}\n\n\tsendSteps(_sendable) {\n\t\tthis._authority.emit('stateChange', { dirty: true })\n\t\tif (this.lock) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._authority.sendSteps()\n\t\t\t}, 100)\n\t\t\treturn\n\t\t}\n\t\tthis.lock = true\n\t\tconst sendable = (typeof _sendable === 'function') ? _sendable() : _sendable\n\t\tconst steps = sendable.steps\n\t\taxios.post(endpointUrl('session/push', !!this._authority.options.shareToken), {\n\t\t\tdocumentId: this._authority.document.id,\n\t\t\tsessionId: this._authority.session.id,\n\t\t\tsessionToken: this._authority.session.token,\n\t\t\tsteps: steps.map(s => s.toJSON ? s.toJSON() : s) || [],\n\t\t\tversion: sendable.version,\n\t\t\ttoken: this._authority.options.shareToken,\n\t\t\tfilePath: this._authority.options.filePath,\n\t\t}).then((response) => {\n\t\t\tthis.carefulRetryReset()\n\t\t\tthis.lock = false\n\t\t\tthis.fetchSteps()\n\t\t}).catch(({ response, code }) => {\n\t\t\tconsole.error('failed to apply steps due to collission, retrying')\n\t\t\tthis.lock = false\n\t\t\tif (!response || code === 'ECONNABORTED') {\n\t\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.CONNECTION_FAILED, data: {} })\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst { status, data } = response\n\t\t\tif (status === 403) {\n\t\t\t\tif (!data.document) {\n\t\t\t\t\t// either the session is invalid or the document is read only.\n\t\t\t\t\tconsole.error('failed to write to document - not allowed')\n\t\t\t\t}\n\t\t\t\t// Only emit conflict event if we have synced until the latest version\n\t\t\t\tif (data.document?.currentVersion === this._authority.document.currentVersion) {\n\t\t\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.PUSH_FAILURE, data: {} })\n\t\t\t\t\tOC.Notification.showTemporary('Changes could not be sent yet')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.fetchSteps()\n\t\t\tthis.carefulRetry()\n\t\t})\n\t}\n\n\tdisconnect() {\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = 0\n\t\tdocument.removeEventListener('visibilitychange', this.visibilitychange.bind(this))\n\t}\n\n\tresetRefetchTimer() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tthis.fetchInterval = FETCH_INTERVAL\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\n\t}\n\n\tincreaseRefetchTimer() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tthis.fetchInterval = Math.min(this.fetchInterval * 2, FETCH_INTERVAL_MAX)\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\t}\n\n\tmaximumRefetchTimer() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tthis.fetchInterval = FETCH_INTERVAL_SINGLE_EDITOR\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\t}\n\n\tvisibilitychange() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tif (document.visibilityState === 'hidden') {\n\t\t\tthis.fetchInterval = FETCH_INTERVAL_INVISIBLE\n\t\t\tclearInterval(this.fetcher)\n\t\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\t\t} else {\n\t\t\tthis.resetRefetchTimer()\n\t\t}\n\t}\n\n\tcarefulRetry() {\n\t\tconst newRetry = this.retryTime ? Math.min(this.retryTime * 2, MAX_PUSH_RETRY) : MIN_PUSH_RETRY\n\t\tif (newRetry > WARNING_PUSH_RETRY && this.retryTime < WARNING_PUSH_RETRY) {\n\t\t\tOC.Notification.showTemporary('Changes could not be sent yet')\n\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.PUSH_FAILURE, data: {} })\n\t\t}\n\t\tthis.retryTime = newRetry\n\t}\n\n\tcarefulRetryReset() {\n\t\tthis.retryTime = MIN_PUSH_RETRY\n\t}\n\n}\n\nexport default PollingBackend\n","/* eslint-disable jsdoc/valid-types */\n/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport axios from '@nextcloud/axios'\n\nimport PollingBackend from './PollingBackend.js'\nimport { endpointUrl } from './../helpers/index.js'\nimport { getVersion, sendableSteps } from 'prosemirror-collab'\nimport mitt from 'mitt'\n\nconst defaultOptions = {\n\tshareToken: null,\n\tforceRecreate: false,\n\tserialize: (document) => document,\n}\n\n/**\n * Timeout after which the editor will consider a document without changes being synced as idle\n * The session will be terminated and the document will stay open in read-only mode with a button to reconnect if needed\n *\n * @type {number}\n */\nconst IDLE_TIMEOUT = 30\n\nconst ERROR_TYPE = {\n\t/**\n\t * Failed to save collaborative document due to external change\n\t * collission needs to be resolved manually\n\t */\n\tSAVE_COLLISSION: 0,\n\t/**\n\t * Failed to push changes for MAX_REBASE_RETRY times\n\t */\n\tPUSH_FAILURE: 1,\n\n\tLOAD_ERROR: 2,\n\n\tCONNECTION_FAILED: 3,\n\n\tSOURCE_NOT_FOUND: 4,\n}\n\nclass SyncService {\n\n\tconstructor(options) {\n\t\t/** @type {import('mitt').Emitter} _bus */\n\t\tthis._bus = mitt()\n\n\t\tthis.backend = new PollingBackend(this)\n\n\t\tthis.options = Object.assign({}, defaultOptions, options)\n\n\t\tthis.document = null\n\t\tthis.session = null\n\t\tthis.sessions = []\n\n\t\tthis.steps = []\n\t\tthis.stepClientIDs = []\n\n\t\tthis.lastStepPush = Date.now()\n\n\t\tthis.lock = null\n\n\t\treturn this\n\t}\n\n\tasync open({ fileId, filePath, initialSession }) {\n\t\tconst connectionData = initialSession\n\t\t\t|| await this._openDocument({ fileId, filePath })\n\t\tthis.document = connectionData.document\n\t\tthis.document.readOnly = connectionData.readOnly\n\t\tthis.session = connectionData.session\n\t\tthis.lock = connectionData.lock\n\t\tthis.emit('opened', {\n\t\t\tdocument: this.document,\n\t\t\tsession: this.session,\n\t\t})\n\t\tconst content = connectionData.content\n\t\t\t|| await this._fetchDocument()\n\t\tthis.emit('loaded', {\n\t\t\tdocument: this.document,\n\t\t\tsession: this.session,\n\t\t\tdocumentSource: '' + content,\n\t\t})\n\t}\n\n\tstartSync() {\n\t\tthis.backend.connect()\n\t}\n\n\t_openDocument({ fileId, filePath }) {\n\t\treturn axios.put(endpointUrl('session/create', !!this.options.shareToken), {\n\t\t\tfileId,\n\t\t\tfilePath,\n\t\t\ttoken: this.options.shareToken,\n\t\t\tguestName: this.options.guestName,\n\t\t\tforceRecreate: this.options.forceRecreate,\n\t\t})\n\t\t\t.then(response => response.data, error => {\n\t\t\t\tif (!error.response || error.code === 'ECONNABORTED') {\n\t\t\t\t\tthis.emit('error', { type: ERROR_TYPE.CONNECTION_FAILED, data: {} })\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit('error', { type: ERROR_TYPE.LOAD_ERROR, data: error.response.status })\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t})\n\t}\n\n\t_fetchDocument() {\n\t\treturn axios.post(\n\t\t\tendpointUrl('session/fetch', !!this.options.shareToken), {\n\t\t\t\tdocumentId: this.document.id,\n\t\t\t\tsessionId: this.session.id,\n\t\t\t\tsessionToken: this.session.token,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t}, {\n\t\t\t\t// Axios normally tries to parse string responses as json.\n\t\t\t\t// Just return the plain content here.\n\t\t\t\ttransformResponse: [(data) => data],\n\t\t\t}\n\t\t).then(response => response.data)\n\t}\n\n\tupdateSession(guestName) {\n\t\tif (!this.isPublic()) {\n\t\t\treturn\n\t\t}\n\t\treturn axios.post(\n\t\t\tendpointUrl('session', !!this.options.shareToken), {\n\t\t\t\tdocumentId: this.document.id,\n\t\t\t\tsessionId: this.session.id,\n\t\t\t\tsessionToken: this.session.token,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t\tguestName,\n\t\t\t}\n\t\t).then(({ data }) => {\n\t\t\tthis.session = data\n\t\t\treturn data\n\t\t}).catch((error) => {\n\t\t\tconsole.error('Failed to update the session', error)\n\t\t\treturn Promise.reject(error)\n\t\t})\n\t}\n\n\tsendSteps(_sendable) {\n\t\tconst sendable = _sendable || sendableSteps(this.state)\n\t\tif (!sendable) {\n\t\t\treturn\n\t\t}\n\t\treturn this.backend.sendSteps(sendable)\n\t}\n\n\tstepsSince(version) {\n\t\treturn {\n\t\t\tsteps: this.steps.slice(version),\n\t\t\tclientIDs: this.stepClientIDs.slice(version),\n\t\t}\n\t}\n\n\t_receiveSteps({ steps, document }) {\n\t\tconst newSteps = []\n\t\tfor (let i = 0; i < steps.length; i++) {\n\t\t\tconst singleSteps = steps[i].data\n\t\t\tif (!Array.isArray(singleSteps)) {\n\t\t\t\tconsole.error('Invalid step data, skipping step', steps[i])\n\t\t\t\t// TODO: recover\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsingleSteps.forEach(step => {\n\t\t\t\tthis.steps.push(step)\n\t\t\t\tnewSteps.push({\n\t\t\t\t\tstep,\n\t\t\t\t\tclientID: steps[i].sessionId,\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t\tthis.lastStepPush = Date.now()\n\t\tthis.emit('sync', { steps: newSteps, document })\n\t\tconsole.debug('receivedSteps', 'newVersion', this._getVersion())\n\t}\n\n\tcheckIdle() {\n\t\tconst lastPushMinutesAgo = (Date.now() - this.lastStepPush) / 1000 / 60\n\t\tif (lastPushMinutesAgo > IDLE_TIMEOUT) {\n\t\t\tconsole.debug(`[SyncService] Document is idle for ${this.IDLE_TIMEOUT} minutes, suspending connection`)\n\t\t\tthis.emit('idle')\n\t\t}\n\t}\n\n\t_getVersion() {\n\t\tif (this.state) {\n\t\t\treturn getVersion(this.state)\n\t\t}\n\t\treturn 0\n\t}\n\n\t_getDocument() {\n\t\tif (this.state) {\n\t\t\treturn this.state.doc\n\t\t}\n\t}\n\n\t_getContent() {\n\t\treturn this.options.serialize(this._getDocument())\n\t}\n\n\tsave() {\n\t\tif (this.backend.save) {\n\t\t\tthis.backend.save()\n\t\t}\n\t}\n\n\tforceSave() {\n\t\tif (this.backend.forceSave) {\n\t\t\tthis.backend.forceSave()\n\t\t}\n\t}\n\n\tclose() {\n\t\tlet closed = false\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.on('save', () => {\n\t\t\t\tthis._close().then(() => {\n\t\t\t\t\tclosed = true\n\t\t\t\t\tresolve()\n\t\t\t\t}).catch(() => resolve())\n\t\t\t})\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!closed) {\n\t\t\t\t\tthis._close().then(() => {\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}).catch(() => resolve())\n\t\t\t\t}\n\t\t\t}, 2000)\n\t\t\tthis.save()\n\t\t})\n\t}\n\n\t_close() {\n\t\tif (this.document === null || this.session === null) {\n\t\t\treturn Promise.resolve()\n\t\t}\n\t\tthis.backend.disconnect()\n\t\treturn axios.post(\n\t\t\tendpointUrl('session/close', !!this.options.shareToken), {\n\t\t\t\tdocumentId: this.document.id,\n\t\t\t\tsessionId: this.session.id,\n\t\t\t\tsessionToken: this.session.token,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t})\n\t}\n\n\tuploadImage(image) {\n\t\tconst formData = new FormData()\n\t\tformData.append('image', image)\n\t\tformData.append('documentId', this.document.id)\n\t\tformData.append('sessionId', this.session.id)\n\t\tformData.append('sessionToken', this.session.token)\n\t\tformData.append('shareToken', this.options.shareToken || '')\n\t\tconst url = endpointUrl('image/upload')\n\t\treturn axios.post(url, formData, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'multipart/form-data',\n\t\t\t},\n\t\t})\n\t}\n\n\tinsertImageLink(imageLink) {\n\t\tconst params = {\n\t\t\tdocumentId: this.document.id,\n\t\t\tsessionId: this.session.id,\n\t\t\tsessionToken: this.session.token,\n\t\t\tshareToken: this.options.shareToken || '',\n\t\t\tlink: imageLink,\n\t\t}\n\t\tconst url = endpointUrl('image/link')\n\t\treturn axios.post(url, params)\n\t}\n\n\tinsertImageFile(imagePath) {\n\t\tconst params = {\n\t\t\tdocumentId: this.document.id,\n\t\t\tsessionId: this.session.id,\n\t\t\tsessionToken: this.session.token,\n\t\t\timagePath,\n\t\t}\n\t\tconst url = endpointUrl('image/filepath')\n\t\treturn axios.post(url, params)\n\t}\n\n\ton(event, callback) {\n\t\tthis._bus.on(event, callback)\n\t\treturn this\n\t}\n\n\toff(event, callback) {\n\t\tthis._bus.off(event, callback)\n\t\treturn this\n\t}\n\n\temit(event, data) {\n\t\tthis._bus.emit(event, data)\n\t}\n\n\tisPublic() {\n\t\treturn !!this.options.shareToken\n\t}\n\n}\n\nexport default SyncService\nexport { SyncService, ERROR_TYPE, IDLE_TIMEOUT }\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nconst extensionHighlight = {\n\tpy: 'python',\n\tgyp: 'python',\n\twsgi: 'python',\n\thtm: 'html',\n\txhtml: 'html',\n\terl: 'erlang',\n\tjsp: 'java',\n\tpl: 'perl',\n\trss: 'xml',\n\tatom: 'xml',\n\txsl: 'xml',\n\tplist: 'xml',\n\trb: 'ruby',\n\tbuilder: 'ruby',\n\tgemspec: 'ruby',\n\tpodspec: 'ruby',\n\tthor: 'ruby',\n\tdiff: 'patch',\n\ths: 'haskell',\n\ticl: 'haskell',\n\tphp3: 'php',\n\tphp4: 'php',\n\tphp5: 'php',\n\tphp6: 'php',\n\tsh: 'bash',\n\tzsh: 'bash',\n\tst: 'smalltalk',\n\tas: 'actionscript',\n\tapacheconf: 'apache',\n\tosacript: 'applescript',\n\tb: 'brainfuck',\n\tbf: 'brainfuck',\n\tclj: 'clojure',\n\t'cmake.in': 'cmake',\n\tcoffee: 'coffeescript',\n\tcson: 'coffescript',\n\ticed: 'coffescript',\n\tc: 'cpp',\n\th: 'cpp',\n\t'c++': 'cpp',\n\t'h++': 'cpp',\n\thh: 'cpp',\n\tjinja: 'django',\n\tbat: 'dos',\n\tcmd: 'dos',\n\tfs: 'fsharp',\n\thbs: 'handlebars',\n\t'html.hbs': 'handlebars',\n\t'html.handlebars': 'handlebars',\n\tsublime_metrics: 'json',\n\tsublime_session: 'json',\n\t'sublime-keymap': 'json',\n\t'sublime-mousemap': 'json',\n\t'sublime-project': 'json',\n\t'sublime-settings': 'json',\n\t'sublime-workspace': 'json',\n\tjs: 'javascript',\n\tmk: 'makefile',\n\tmak: 'makefile',\n\tmd: 'markdown',\n\tmkdown: 'markdown',\n\tmkd: 'markdown',\n\tnginxconf: 'nginx',\n\tm: 'objectivec',\n\tmm: 'objectivec',\n\tml: 'ocaml',\n\trs: 'rust',\n\tsci: 'scilab',\n\ttxt: 'plaintext',\n\tvb: 'vbnet',\n\tvbs: 'vbscript',\n}\n\nexport default extensionHighlight\nexport {\n\textensionHighlight,\n}\n","\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t{{ t('text', 'Document idle for {timeout} minutes, click to continue editing', { timeout: IDLE_TIMEOUT }) }} {{ t('text', 'Reconnect') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ t('text', 'The document has been changed outside of the editor. The changes cannot be applied.') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ t('text', 'File could not be loaded. Please check your internet connection.') }} {{ t('text', 'Reconnect') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t {{ t('text', 'This file is opened read-only as it is currently locked by {user}.', { user: lock.displayName }) }}\n\t\t\t
\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{{ lastSavedStatus }}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\n\t\t\t\n\t\t\t \n\t\t\n\n\t\t \n\t\t \n\t\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=0&id=701abc86&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=0&id=701abc86&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditorWrapper.vue?vue&type=template&id=701abc86&scoped=true&\"\nimport script from \"./EditorWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorWrapper.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditorWrapper.vue?vue&type=style&index=0&id=701abc86&scoped=true&lang=scss&\"\nimport style1 from \"./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"701abc86\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editor)?_c('EditorContent',{attrs:{\"id\":\"read-only-editor\",\"editor\":_vm.editor}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\t \n\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ReadOnlyEditor.vue?vue&type=template&id=9d98c77a&\"\nimport script from \"./ReadOnlyEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./ReadOnlyEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{'icon-loading': _vm.saving},attrs:{\"id\":\"direct-editor\"}},[_c('EditorWrapper',{ref:\"editor\",attrs:{\"initial-session\":_vm.initialSession,\"active\":true,\"mime\":_vm.initial.mimetype,\"is-direct-editing\":true},on:{\"ready\":_vm.loaded},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('button',{staticClass:\"icon-share\",on:{\"click\":_vm.share}}),_vm._v(\" \"),_c('button',{staticClass:\"icon-close\",on:{\"click\":_vm.close}})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t \n\t\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=style&index=0&id=ecc9f54c&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=style&index=0&id=ecc9f54c&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DirectEditing.vue?vue&type=template&id=ecc9f54c&scoped=true&\"\nimport script from \"./DirectEditing.vue?vue&type=script&lang=js&\"\nexport * from \"./DirectEditing.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DirectEditing.vue?vue&type=style&index=0&id=ecc9f54c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ecc9f54c\",\n null\n \n)\n\nexport default component.exports"],"names":["options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_v","editor","on","deleteNode","_s","t","_e","tableCaption","Node","name","content","addAttributes","renderHTML","toMarkdown","state","node","parseHTML","tag","priority","Table","addExtensions","addCommands","parent","insertTable","tr","dispatch","isInTable","schema","rowsCount","colsCount","cellContent","headerCells","cells","index","cell","nodes","tableCell","createAndFill","push","headerCell","tableHeader","headRow","tableHeadRow","createChecked","rows","tableRow","table","createTable","offset","selection","anchor","replaceSelectionWith","scrollIntoView","setSelection","TextSelection","doc","resolve","leaveTable","$head","empty","tableDepth","depth","$next","after","goToNextRow","$cell","childCount","cellStart","row","indexAfter","rowNode","child","nodeSize","findSameCellInNextRow","selectionCell","moveCellForward","HTMLAttributes","mergeAttributes","renderContent","closeBlock","addKeyboardShortcuts","Tab","commands","goToNextCell","Enter","can","addRowAfter","chain","run","addNodeView","VueNodeViewRenderer","TableView","addRowBefore","deleteRow","TableCell","write","renderInline","TableCellView","addColumnBefore","addColumnAfter","deleteColumn","TableHeader","TableHeaderView","TableRow","ensureNewLine","extend","forEach","repeat","textContent","length","basedir","file","end","lastIndexOf","slice","domHref","ref","href","match","relPath","id","dir","base","rel","split","pop","shift","concat","join","absolutePath","OCA","Viewer","generateUrl","parseHref","dom","getAttribute","path","openLink","event","_attrs","htmlHref","target","closest","query","OC","parseQueryString","fragment","filename","document","title","theme","window","location","pathname","open","fileId","markdownit","console","error","clickHandler","type","onClick","Plugin","props","key","PluginKey","handleClick","view","pos","link","marks","find","m","button","ctrlKey","stopPropagation","warn","debug","TipTapLink","addOptions","default","inclusive","getAttrs","mark","addProseMirrorPlugins","plugins","filter","startsWith","openOnClick","TipTapStrike","style","value","close","mixable","expelEnclosingWhitespace","Bold","addInputRules","markInputRule","starInputRegex","addPasteRules","markPasteRule","starPasteRegex","TipTapUnderline","underscoreInputRegex","underscorePasteRegex","Italic","TipTapItalic","class","loaded","src","imageLoaded","isSupportedImage","directives","rawName","showIcons","expression","$event","imageUrl","onLoaded","domProps","alt","indexOf","_k","keyCode","updateAlt","isEditable","internalLinkOrImage","TiptapImage","selectable","currentDirectory","undefined","ImageView","handleDrop","dataTransfer","files","coordinates","posAtCoords","left","clientX","top","clientY","customEvent","CustomEvent","bubbles","detail","position","dispatchEvent","handlePaste","clipboardData","insertContent","TiptapBulletList","InputRule","handler","range","wrappingInputRule","getAttributes","insertText","TipTapTaskItem","nested","draggable","adjust","checked","el","querySelector","context","listAttributes","checkboxAttributes","contenteditable","includes","parentList","findParentNodeClosestToPos","taskItem","listItem","tagName","toLowerCase","setNodeMarkup","TiptapTaskList","renderList","bullet","nodeEqualsType","types","Array","isArray","TrailingNode","Extension","notAfter","plugin","disabledNodes","Object","entries","map","appendTransaction","_","__","shouldInsertNodeAtEnd","getState","endPosition","size","create","init","lastChild","apply","docChanged","Heading","TipTapHeading","levels","reduce","items","level","toggleHeading","group","defining","typesAvailable","rendered","element","classList","contains","attributes","classy","setCallout","wrapIn","toggleCallout","isNodeActive","unsetCallout","updateAttributes","lift","_l","emojiObject","selectedIndex","selectItem","native","short_name","command","loadSyntaxHighlight","language","list","listLanguages","info","syntax","registerLanguage","createEditor","onCreate","onUpdate","extensions","enableRichEditing","richEditingExtensions","Markdown","Document","Paragraph","HardBreak","Strong","Strike","Link","Blockquote","Code","CodeBlock","BulletList","HorizontalRule","OrderedList","ListItem","TableHeadRow","TaskList","TaskItem","Callout","Underline","Image","inline","Emoji","suggestion","emojiSearch","render","component","popup","onStart","VueRenderer","EmojiListWrapper","propsData","tippy","getReferenceClientRect","clientRect","appendTo","body","showOnCreate","interactive","trigger","placement","updateProps","setProps","onKeyDown","destroy","onExit","Placeholder","emptyNodeClass","placeholder","showOnlyWhenEditable","Dropcursor","PlainTextDocument","CodeBlockLowlight","lowlight","Editor","Text","History","SerializeException","message","serializePlainText","tiptap","getJSON","codeBlock","text","EDITOR","Symbol","SYNC_SERVICE","useEditorMixin","inject","$editor","from","useSyncServiceMixin","$syncService","extendMarkSchema","extension","storage","getExtensionField","extendNodeSchema","createMarkdownSerializer","defaultNodes","convertNames","defaultMarkdownSerializer","defaultMarks","serializer","MarkdownSerializer","extractToMarkdown","serialize","tightLists","nodesOrMarks","spec","object","convert","replace","_m","letter","toUpperCase","fromEntries","EmojiPluginKey","char","allowedPrefixes","pluginKey","focus","insertContentAt","emoji","Suggestion","TipTapHardBreak","i","handleKeyDown","metaKey","shiftKey","Span","to","author","updateBlameMap","transform","clientIDs","result","mapping","span","maps","start","next","splice","Math","min","max","insertIntoBlameMap","TrackState","blameMap","clientID","getMeta","steps","item","color","floor","abs","sin","toString","viewReference","editorView","instance","tracked","deco","DecorationSet","oldState","decos","tState","setMeta","composing","applyTransform","Decoration","dec","decorations","timeout","fn","delay","getSendableSteps","sendable","sendableSteps","editable","onSendable","version","step","toJSON","debounce","args","clearTimeout","setTimeout","random","update","getVersion","receiveTransaction","Step","collab","documentReady","callback","attachEvent","readyState","addEventListener","_baseUrl","endpointUrl","endpoint","randomGuestNames","getRandomGuestName","buildRender","tokens","idx","env","slf","nesting","attrSet","attrJoin","renderToken","md","use","container","MarkdownIt","html","breaks","enable","taskLists","labelAfter","core","ruler","token","attrGet","firstChild","attrIndex","splitBefore","parentIndex","predicate","searchLevel","findChildOf","TokenConstructor","closeList","block","openList","splitListAt","Token","ruler2","markup","callouts","data","isMobile","_isMobile","beforeMount","_onResize","beforeDestroy","removeEventListener","methods","documentElement","clientWidth","$store","store","persistentStorage","getBuilder","persist","build","Vue","Vuex","Store","showAuthorAnnotations","getItem","currentSession","mutations","SET_SHOW_AUTHOR_ANNOTATIONS","setItem","SET_CURRENT_SESSION","actions","setShowAuthorAnnotations","commit","setCurrentSession","___CSS_LOADER_EXPORT___","module","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","deepFreeze","obj","Map","clear","delete","set","Error","Set","add","freeze","getOwnPropertyNames","prop","isFrozen","deepFreezeEs6","_default","Response","constructor","mode","isMatchIgnored","ignoreMatch","escapeHTML","inherit","original","objects","emitsWrappingTags","kind","HTMLRenderer","parseTree","buffer","classPrefix","walk","addText","openNode","className","sublanguage","closeNode","TokenTree","rootNode","children","stack","root","closeAllNodes","JSON","stringify","builder","_walk","static","every","_collapse","TokenTreeEmitter","super","addKeyword","addSublanguage","emitter","toHTML","finalize","source","re","BACKREF_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","BACKSLASH_ESCAPE","begin","relevance","APOS_STRING_MODE","illegal","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","modeOptions","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","CSS_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","MODES","__proto__","MATCH_NOTHING_RE","RE_STARTERS_RE","SHEBANG","opts","beginShebang","binary","x","resp","END_SAME_AS_BEGIN","assign","_beginMatch","skipIfhasPrecedingDot","response","input","beginKeywords","__beforeBegin","keywords","compileIllegal","_parent","either","compileMatch","compileRelevance","COMMON_KEYWORDS","DEFAULT_KEYWORD_CLASSNAME","compileKeywords","rawKeywords","caseInsensitive","compiledKeywords","compileList","keys","keywordList","keyword","pair","scoreForKeyword","providedScore","Number","commonKeyword","compileLanguage","langRe","global","RegExp","case_insensitive","MultiRegex","matchIndexes","regexes","matchAt","addRule","exec","countMatchGroups","compile","terminators","matcherRe","regexps","separator","numCaptures","regex","out","substring","String","lastIndex","s","findIndex","matchData","ResumableMultiRegex","rules","multiRegexes","count","regexIndex","getMatcher","matcher","resumingScanAtSamePosition","considerAll","m2","compilerExtensions","classNameAliases","compileMode","cmode","isCompiled","ext","keywordPattern","$pattern","lexemes","keywordPatternRe","beginRe","endSameAsBegin","endsWithParent","endRe","terminatorEnd","illegalRe","c","variants","cachedVariants","variant","dependencyOnParent","starts","expandOrCloneMode","mm","term","rule","buildModeRegex","BuildVuePlugin","hljs","Component","detectedLanguage","unknownLanguage","computed","highlighted","autoDetect","getLanguage","code","highlightAuto","highlight","ignoreIllegals","autodetect","Boolean","createElement","innerHTML","VuePlugin","install","mergeHTMLPlugin","originalStream","nodeStream","resultNode","processed","nodeStack","selectStream","attributeString","attr","nodeName","call","stream","reverse","substr","mergeStreams","_nodeStream","nextSibling","nodeType","nodeValue","seenDeprecations","log","deprecated","escape$1","inherit$1","NO_MATCH","languages","aliases","SAFE_MODE","fixMarkupRe","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","noHighlightRe","languageDetectRe","tabReplace","useBR","__emitter","shouldNotHighlight","languageName","test","codeOrlanguageName","optionsOrCode","continuation","fire","_highlight","codeToHighlight","keywordData","matchText","prototype","hasOwnProperty","processBuffer","subLanguage","modeBuffer","continuations","processSubLanguage","buf","keywordRelevance","cssClass","processKeywords","startNewMode","endOfMode","matchPlusRemainder","matched","lexeme","endsParent","doIgnore","resumeScanAtSamePosition","doBeginMatch","newMode","beforeCallbacks","cb","skip","excludeBegin","returnBegin","doEndMatch","endMode","origin","returnEnd","excludeEnd","lastMatch","processLexeme","textBeforeMatch","err","badRule","iterations","current","unshift","processContinuations","processedCount","illegalBy","msg","sofar","errorRaised","languageSubset","plaintext","justTextHighlightResult","results","autoDetection","sorted","sort","a","b","supersetOf","best","secondBest","second_best","brPlugin","TAB_REPLACE_RE","tabReplacePlugin","highlightElement","classes","parentNode","_class","blockLanguage","currentLang","resultLang","updateClassName","relavance","initHighlighting","called","querySelectorAll","wantsHighlight","highlightAll","registerAliases","aliasList","alias","lang","fixMarkup","arg","highlightBlock","configure","userOptions","initHighlightingOnLoad","languageDefinition","error$1","rawDefinition","bind","unregisterLanguage","requireLanguage","addPlugin","upgradePluginAPI","vuePlugin","debugMode","safeMode","versionString","HLJS","exports","webpackAsyncContext","req","__webpack_require__","o","Promise","then","e","ids","webpackContext","webpackContextResolve","$emit","authority","_authority","fetchInterval","retryTime","lock","fetchRetryCounter","initialLoadingFinished","fetcher","setInterval","_fetchSteps","visibilitychange","shareToken","_forcedSave","fetchSteps","_manualSave","autosaveContent","_getVersion","lastSavedVersion","_getContent","axios","_isPublic","documentId","sessionId","session","sessionToken","force","manualSave","filePath","_handleResponse","_handleError","emit","sessions","checkIdle","disconnect","Date","now","FETCH_INTERVAL_INVISIBLE","lastContact","maximumRefetchTimer","increaseRefetchTimer","dirty","initialLoading","_receiveSteps","resetRefetchTimer","status","currentVersion","ERROR_TYPE","SAVE_COLLISSION","outsideChange","SOURCE_NOT_FOUND","CONNECTION_FAILED","retry","_sendable","sendSteps","carefulRetryReset","catch","PUSH_FAILURE","Notification","showTemporary","carefulRetry","clearInterval","visibilityState","newRetry","defaultOptions","forceRecreate","LOAD_ERROR","SyncService","_bus","mitt","backend","PollingBackend","stepClientIDs","lastStepPush","initialSession","_openDocument","connectionData","readOnly","_fetchDocument","documentSource","connect","guestName","transformResponse","isPublic","reject","newSteps","singleSteps","IDLE_TIMEOUT","_getDocument","save","forceSave","closed","_close","image","formData","FormData","append","url","headers","imageLink","params","imagePath","off","extensionHighlight","py","gyp","wsgi","htm","xhtml","erl","jsp","pl","rss","atom","xsl","plist","rb","gemspec","podspec","thor","diff","hs","icl","php3","php4","php5","php6","sh","zsh","st","as","apacheconf","osacript","bf","clj","coffee","cson","iced","h","hh","jinja","bat","cmd","fs","hbs","sublime_metrics","sublime_session","js","mk","mak","mkdown","mkd","nginxconf","ml","rs","sci","txt","vb","vbs","reconnect","user","displayName","hasSyncCollission","contentLoaded","hasConnectionIssue","isRichEditor","draggedOver","onPaste","preventDefault","onEditorDrop","relativePath","autohide","menubarLoaded","uploadingImages","showHelp","insertImagePath","uploadImageFiles","lastSavedStatusClass","lastSavedStatus","filteredSessions","_t","contentWrapper","syncError","resolveUseThisVersion","resolveUseServerVersion","hideHelp","saving","initial","mimetype","scopedSlots","_u","share","proxy"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"editor.js?v=dfb17859557c272e49b6","mappings":";qXA4CA,MC5C0K,ED4C1K,CACA,iBACA,YACA,iBACA,YACA,qBACA,sBAEA,OACA,QACA,YACA,aAEA,YACA,cACA,cAGA,UACA,qKEpDIA,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,YAAiB,0BCPlD,SAXgB,OACd,GCTW,WAAa,IAAIM,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,kBAAkB,CAACE,YAAY,iBAAiB,CAACF,EAAG,kBAAkB,CAACE,YAAY,UAAUC,MAAM,CAAC,GAAK,WAAWP,EAAIQ,GAAG,KAAMR,EAAIS,OAAiB,WAAEL,EAAG,UAAU,CAACE,YAAY,iBAAiBC,MAAM,CAAC,cAAa,EAAK,eAAe,wBAAwB,CAACH,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,cAAc,qBAAoB,GAAMG,GAAG,CAAC,MAAQV,EAAIW,aAAa,CAACX,EAAIQ,GAAG,WAAWR,EAAIY,GAAGZ,EAAIa,EAAE,OAAQ,sBAAsB,aAAa,GAAGb,EAAIc,KAAKd,EAAIQ,GAAG,KAAKJ,EAAG,MAAM,CAACE,YAAY,cAAc,EAAE,GAChkB,IDWpB,EACA,KACA,WACA,MAI8B,+rBELhC,IAAMS,EAAeC,EAAAA,GAAAA,OAAY,CAChCC,KAAM,eACNC,QAAS,UACTC,cAAa,WACZ,MAAO,CAAC,CACT,EAEAC,WAAU,WACT,MAAO,CAAC,UACT,EAEAC,WAAU,SAACC,EAAOC,GAClB,EAEAC,UAAS,WACR,MAAO,CACN,CAAEC,IAAK,gBAAiBC,SAAU,IAEpC,IAgDD,QAAeC,EAAAA,GAAAA,OAAa,CAC3BT,QAAS,uCAETU,cAAa,WACZ,MAAO,CACNb,EAEF,EAEAc,YAAW,WACV,OAAO,EAAP,KACI5B,KAAK6B,UAAQ,IAChBC,YAAa,kBAAM,YAA8B,IAA3BC,EAAE,EAAFA,GAAIC,EAAQ,EAARA,SAAUxB,EAAM,EAANA,OACnC,IAAIyB,EAAAA,EAAAA,IAAUF,GAAK,OAAO,EAC1B,IAAMT,EA1DV,SAAqBY,EAAQC,EAAWC,EAAWC,GAGlD,IAFA,IAAMC,EAAc,GACdC,EAAQ,GACLC,EAAQ,EAAGA,EAAQJ,EAAWI,GAAS,EAAG,CAClD,IAAMC,EAAOP,EAAOQ,MAAMC,UAAUC,gBAChCH,GACHF,EAAMM,KAAKJ,GAEZ,IAAMK,EAAaZ,EAAOQ,MAAMK,YAAYH,gBACxCE,GACHR,EAAYO,KAAKC,EAEnB,CAGA,IAFA,IAAME,EAAUd,EAAOQ,MAAMO,aAAaC,cAAc,KAAMZ,GACxDa,EAAO,GACJX,EAAQ,EAAGA,EAAQL,EAAWK,GAAS,EAC/CW,EAAKN,KAAKX,EAAOQ,MAAMU,SAASF,cAAc,KAAMX,IAErD,OAAOL,EAAOQ,MAAMW,MAAMH,cAAc,KAAM,CAACF,GAAO,OAAKG,GAC5D,CAuCiBG,CAAY9C,EAAO0B,OAAQ,EAAG,GAC3C,GAAIF,EAAU,CACb,IAAMuB,EAASxB,EAAGyB,UAAUC,OAAS,EACrC1B,EAAG2B,qBAAqBpC,GACtBqC,iBACAC,aAAaC,EAAAA,GAAAA,KAAmB9B,EAAG+B,IAAIC,QAAQR,IAClD,CACA,OAAO,CACR,CAAC,EAEDS,WAAY,kBAAM,YAA8B,IAA3BjC,EAAE,EAAFA,GAAIC,EAAQ,EAARA,SAAgB,EAANxB,OAClC,KAAKyB,EAAAA,EAAAA,IAAUF,GAAK,OAAO,EAC3B,MAAyBA,EAAGyB,UAApBS,EAAK,EAALA,MACR,IADoB,EAALC,MACH,OAAO,EAEnB,IAAMC,EAAaF,EAAMG,MAAQ,EAAI,EAAIH,EAAMG,MAAQ,EACvD,GAAIpC,EAAU,CACb,IAAMqC,EAAQtC,EAAG+B,IAAIC,QAAQE,EAAMK,MAAMH,GAAc,GACjDX,EAAYK,EAAAA,GAAAA,KAAmBQ,GACrCrC,EAASD,EAAG6B,aAAaJ,GAAWG,iBACrC,CACA,OAAO,CACR,CAAC,EACDY,YAAa,kBAAM,YAA8B,IAA3BxC,EAAE,EAAFA,GAAIC,EAAQ,EAARA,SAAgB,EAANxB,OACnC,KAAKyB,EAAAA,EAAAA,IAAUF,GAAK,OAAO,EAC3B,IAAMU,EA1DV,SAA+B+B,GAC9B,GAAIA,EAAMhC,OAAO,KAAOgC,EAAMlD,MAAM,GAAGmD,WAAa,EACnD,OAAO,KAIR,IAFA,IAAIC,EAAYF,EAAMF,QAChBjB,EAAQmB,EAAMlD,MAAM,GACjBqD,EAAMH,EAAMI,YAAY,GAAID,EAAMtB,EAAMoB,WAAYE,IAAO,CACnE,IAAME,EAAUxB,EAAMyB,MAAMH,GAC5B,GAAIE,EAAQJ,YAAcD,EAAMhC,QAAS,CACxC,IAAK,IAAIC,EAAO,EAAGA,EAAO+B,EAAMhC,QAASC,IAExCiC,GADiBG,EAAQC,MAAMrC,GACTsC,SAEvB,OAAOL,EAAY,CACpB,CACAA,GAAaG,EAAQE,QACtB,CACD,CAyCiBC,EAAsBC,EAAAA,EAAAA,IAAclD,IACjD,GAAY,MAARU,EAAJ,CACA,GAAIT,EAAU,CACb,IAAMwC,EAAQzC,EAAG+B,IAAIC,QAAQtB,GACvBe,EAAYK,EAAAA,GAAAA,QAAsBW,GAAOU,EAAAA,EAAAA,IAAgBV,IAC/DxC,EAASD,EAAG6B,aAAaJ,GAAWG,iBACrC,CACA,OAAO,CANiB,CAOzB,CAAC,GAEH,EAEAxC,WAAU,YAAqB,IAAlBgE,EAAc,EAAdA,eACZ,MAAO,CAAC,SAASC,EAAAA,EAAAA,IAAgBpF,KAAKP,QAAQ0F,eAAgBA,GAAiB,EAChF,EAEA/D,WAAU,SAACC,EAAOC,GACjBD,EAAMgE,cAAc/D,GACpBD,EAAMiE,WAAWhE,EAClB,EAEAiE,qBAAoB,WAAG,WACtB,OAAO,EAAP,KACIvF,KAAK6B,UAAQ,IAChB2D,IAAK,kBAAM,EAAKhF,OAAOiF,SAASC,gBAAkB,EAAKlF,OAAOiF,SAASzB,YAAY,EACnF2B,MAAO,WACN,QAAI,EAAKnF,OAAOiF,SAASlB,iBAIpB,EAAK/D,OAAOoF,MAAMC,eAIhB,EAAKrF,OACVsF,QACAD,cACAtB,cACAwB,KACH,GAEF,EAEAC,YAAW,WACV,OAAOC,EAAAA,EAAAA,IAAoBC,EAC5B,mBChHD,MCpD8K,EDoD9K,CACA,qBACA,YACA,iBACA,YACA,qBACA,sBAEA,OACA,QACA,YACA,aAEA,QACA,cACA,cAGA,UACA,+BAEA,SACA,qBACA,oBACA,QACA,gCACA,YACA,KACA,EACA,wBACA,oBACA,QACA,gCACA,eACA,KACA,EACA,uBACA,oBACA,QACA,gCACA,cACA,KACA,mBEnFI,EAAU,CAAC,EAEf,EAAQxG,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,YAAiB,WCPlD,SAXgB,OACd,GCTW,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,OAAO,CAACH,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,kBAAkB,CAACE,YAAY,YAAYN,EAAIQ,GAAG,KAAMR,EAAIS,OAAiB,WAAEL,EAAG,UAAU,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,sBAAsB,qBAAoB,GAAMG,GAAG,CAAC,MAAQV,EAAIoG,eAAe,CAACpG,EAAIQ,GAAG,aAAaR,EAAIY,GAAGZ,EAAIa,EAAE,OAAQ,mBAAmB,cAAcb,EAAIQ,GAAG,KAAKJ,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,qBAAqB,qBAAoB,GAAMG,GAAG,CAAC,MAAQV,EAAI8F,cAAc,CAAC9F,EAAIQ,GAAG,aAAaR,EAAIY,GAAGZ,EAAIa,EAAE,OAAQ,kBAAkB,cAAcb,EAAIQ,GAAG,KAAKJ,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,cAAc,qBAAoB,GAAMG,GAAG,CAAC,MAAQV,EAAIqG,YAAY,CAACrG,EAAIQ,GAAG,aAAaR,EAAIY,GAAGZ,EAAIa,EAAE,OAAQ,oBAAoB,eAAe,GAAGb,EAAIc,MAAM,IAAI,GACt0B,IDWpB,EACA,KACA,WACA,MAI8B,QEfhC,EAAewF,EAAAA,EAAAA,OAAiB,CAC/BpF,QAAS,UAETG,WAAU,SAACC,EAAOC,GACjBD,EAAMiF,MAAM,KACZjF,EAAMkF,aAAajF,GACnBD,EAAMiF,MAAM,KACb,EAEA/E,UAAS,WACR,MAAO,CACN,CAAEC,IAAK,MACP,CAAEA,IAAK,MACP,CAAEA,IAAK,yBAA0BC,SAAU,IAC3C,CAAED,IAAK,yBAA0BC,SAAU,IAE7C,EAEAuE,YAAW,WACV,OAAOC,EAAAA,EAAAA,IAAoBO,EAC5B,mBC4BD,MCpDgL,GDoDhL,CACA,uBACA,YACA,iBACA,YACA,qBACA,sBAEA,OACA,QACA,YACA,aAEA,QACA,cACA,cAGA,UACA,+BAEA,SACA,wBACA,oBACA,QACA,gCACA,eACA,KACA,EACA,2BACA,oBACA,QACA,gCACA,kBACA,KACA,EACA,0BACA,oBACA,QACA,gCACA,iBACA,KACA,oBEnFI,GAAU,CAAC,EAEf,GAAQ9G,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YCPlD,UAXgB,OACd,ICTW,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,OAAO,CAACH,EAAG,MAAM,CAACA,EAAG,kBAAkB,CAACE,YAAY,YAAYN,EAAIQ,GAAG,KAAMR,EAAIS,OAAiB,WAAEL,EAAG,UAAU,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,sBAAsB,qBAAoB,GAAMG,GAAG,CAAC,MAAQV,EAAI0G,kBAAkB,CAAC1G,EAAIQ,GAAG,aAAaR,EAAIY,GAAGZ,EAAIa,EAAE,OAAQ,sBAAsB,cAAcb,EAAIQ,GAAG,KAAKJ,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,qBAAqB,qBAAoB,GAAMG,GAAG,CAAC,MAAQV,EAAI2G,iBAAiB,CAAC3G,EAAIQ,GAAG,aAAaR,EAAIY,GAAGZ,EAAIa,EAAE,OAAQ,qBAAqB,cAAcb,EAAIQ,GAAG,KAAKJ,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,cAAc,qBAAoB,GAAMG,GAAG,CAAC,MAAQV,EAAI4G,eAAe,CAAC5G,EAAIQ,GAAG,aAAaR,EAAIY,GAAGZ,EAAIa,EAAE,OAAQ,uBAAuB,eAAe,GAAGb,EAAIc,MAAM,IAAI,GAC9zB,IDWpB,EACA,KACA,WACA,MAI8B,QEfhC,GAAe+F,EAAAA,EAAAA,OAAmB,CACjC3F,QAAS,UAETG,WAAU,SAACC,EAAOC,GACjBD,EAAMiF,MAAM,KACZjF,EAAMkF,aAAajF,GACnBD,EAAMiF,MAAM,KACb,EAEA/E,UAAS,WACR,MAAO,CACN,CAAEC,IAAK,4CAA6CC,SAAU,IAC9D,CAAED,IAAK,4CAA6CC,SAAU,IAC9D,CAAED,IAAK,8BAA+BC,SAAU,IAChD,CAAED,IAAK,8BAA+BC,SAAU,IAChD,CAAED,IAAK,8BAA+BC,SAAU,IAChD,CAAED,IAAK,8BAA+BC,SAAU,IAChD,CAAED,IAAK,4BAA6BC,SAAU,IAC9C,CAAED,IAAK,4BAA6BC,SAAU,IAEhD,EAEAuE,YAAW,WACV,OAAOC,EAAAA,EAAAA,IAAoBY,GAC5B,IC1BD,iBAAeC,EAAAA,OAAgB,CAC9B7F,QAAS,aAETG,WAAU,SAACC,EAAOC,GACjBD,EAAMiF,MAAM,KACZjF,EAAMkF,aAAajF,GACnBD,EAAM0F,eACP,EAEAxF,UAAS,WACR,MAAO,CACN,CAAEC,IAAK,KAAMC,SAAU,IAEzB,ICbD,GAAeqF,GAASE,OAAO,CAC9BhG,KAAM,eACNC,QAAS,eAETG,WAAU,SAACC,EAAOC,GACjBD,EAAMiF,MAAM,KACZjF,EAAMkF,aAAajF,GACnBD,EAAM0F,gBACN1F,EAAMiF,MAAM,KACZhF,EAAK2F,SAAQ,SAAAxE,GACZpB,EAAMiF,MAAMjF,EAAM6F,OAAO,IAAKzE,EAAK0E,YAAYC,OAAS,IACxD/F,EAAMiF,MAAM,IACb,IACAjF,EAAM0F,eACP,EAEAxF,UAAS,WACR,MAAO,CACN,CAAEC,IAAK,KAAMC,SAAU,IAEzB,shCCGD,IAkBM4F,GAAU,SAASC,GACxB,IAAMC,EAAMD,EAAKE,YAAY,KAC7B,OAAQD,EAAM,EACXD,EAAKG,MAAM,EAAGF,GACdD,EAAKG,MAAM,EAAGF,EAAM,EACxB,EAEMG,GAAU,SAASpG,GACxB,IAAMqG,EAAMrG,EAAKhB,MAAMsH,KACvB,IAAKD,EACJ,OAAOA,EAER,GAAIA,EAAIE,MAAM,eACb,OAAOF,EAER,IAAME,EAAQF,EAAIE,MAAM,0BACxB,GAAIA,EAAO,CACV,SAAwBA,EAAK,GAApBC,EAAO,KAAEC,EAAE,KAEdC,EArCa,SAASC,EAAMC,GACnC,IAAKA,EACJ,OAAOD,EAER,GAAe,MAAXC,EAAI,GACP,OAAOA,EAIR,IAFAD,EAAOA,EAAKE,MAAM,KAClBD,EAAMA,EAAIC,MAAM,KACE,OAAXD,EAAI,IAA0B,MAAXA,EAAI,IACd,OAAXA,EAAI,IACPD,EAAKG,MAENF,EAAIG,QAEL,OAAOJ,EAAKK,OAAOJ,GAAKK,KAAK,IAC9B,CAqBcC,CADOnB,GAAQoB,IAAIC,OAAOpB,MACDD,GAAQS,IAC7C,OAAOa,EAAAA,GAAAA,aAAY,oBAAD,OAAqBX,EAAG,qBAAaD,EAAE,oBAAYD,GACtE,CACD,EAEMc,GAAY,SAASC,GAC1B,IAAMlB,EAAMkB,EAAIC,aAAa,QAC7B,IAAKnB,EACJ,OAAOA,EAER,IAAME,EAAQF,EAAIE,MAAM,kDACxB,GAAIA,EAAO,CACV,SAAuBA,EAAK,GAAjBE,EAAE,KAAEgB,EAAI,KACnB,MAAO,GAAP,OAAUA,EAAI,mBAAWhB,EAC1B,CACA,OAAOJ,CACR,EAEMqB,GAAW,SAASC,EAAOC,GAChC,IACMC,EADcF,EAAMG,OAAOC,QAAQ,KACZzB,KACvB0B,EAAQC,GAAGC,iBAAiBL,GAC5BM,EAAWF,GAAGC,iBAAiBL,EAAShB,MAAM,KAAKC,OACzD,GAAIkB,EAAMtB,KAAOyB,EAAS3B,QAAS,CAClC,IAAM4B,EAAWD,EAAS3B,QAAQK,MAAM,KAAKC,MACvCW,EAAO,GAAH,OAAMO,EAAMtB,IAAG,YAAI0B,GAQ7B,OAPAC,SAASC,MAAQ,GAAH,OAAMF,EAAQ,cAAMH,GAAGM,MAAMD,OACvCE,OAAOC,SAASC,SAASnC,MAAM,uBAKnCY,IAAIC,OAAOuB,KAAK,CAAElB,KAAAA,GAEnB,CACA,IAAIO,EAAMY,OAKV,OAAKC,GAAAA,EAAAA,aAAwBhB,IAI7BW,OAAOG,KAAKd,IACL,IAJNiB,GAAQC,MAAM,eAAgBlB,IACvB,GALPW,OAAOG,MAAKtB,EAAAA,GAAAA,aAAY,MAAD,OAAOW,EAAMY,SAStC,cC1GMI,GAAe,SAAH,GAAY,EAAN9J,OAA4B,IAApB+J,EAAI,EAAJA,KAAMC,EAAO,EAAPA,QACrC,OAAO,IAAIC,EAAAA,GAAO,CACjBC,MAAO,CACNC,IAAK,IAAIC,EAAAA,GAAU,YACnBC,YAAa,SAACC,EAAMC,EAAK9B,GACxB,IACM+B,EADWF,EAAKzJ,MAAMyC,IAAIC,QAAQgH,GAClBE,QAAQC,MAAK,SAAAC,GAAC,OAAIA,EAAEZ,KAAKvJ,OAASuJ,EAAKvJ,IAAI,IACjE,QAAKgK,IAGAA,EAAK1K,MAAMsH,KAOK,IAAjBqB,EAAMmC,QAAiBnC,EAAMoC,aAAjC,GACCpC,EAAMqC,kBACCd,aAAO,EAAPA,EAAUvB,EAAO+B,EAAK1K,SAR7B8J,GAAQmB,KAAK,qCACbnB,GAAQoB,MAAMR,IACP,GAQT,IAGH,i8CC6DA,SA7DaS,GAAAA,EAAAA,OAAkB,CAE9BC,WAAU,WAAG,MACZ,OAAO,SACQ,QADR,EACH1L,KAAK6B,cAAM,aAAX,OAAA7B,OAAe,IAClBwK,QAASxB,IAEX,EAEA9H,cAAa,WACZ,MAAO,CACN0G,KAAM,CACL+D,QAAS,MAEV/B,MAAO,CACN+B,QAAS,MAGZ,EAEAC,WAAW,EAEXrK,UAAW,CACV,CACCC,IAAK,UACLqK,SAAU,SAAAhD,GAAG,MAAK,CACjBjB,KAAMgB,GAAUC,GAChBe,MAAOf,EAAIC,aAAa,SACxB,IAIH3H,WAAY,gBAAG2K,EAAI,EAAJA,KAAoB,EAAd3G,eAAc,MAAO,CAAC,IAAK,SAC5C2G,EAAKxL,OAAK,IACbsH,KAAMF,GAAQoE,GACd5D,IAAK,iCACH,EAAE,EAEL6D,sBAAqB,WACpB,IAAMC,EAAUhM,KAAK6B,SAEnBoK,QAAO,YACP,OADa,EAAHtB,IACEuB,WAAW,kBACxB,IAED,OAAKlM,KAAKP,QAAQ0M,YAKX,GAAP,UACIH,GAAO,CACV1B,GAAa,CACZ9J,OAAQR,KAAKQ,OACb+J,KAAMvK,KAAKuK,KACXC,QAASxK,KAAKP,QAAQ+K,YAThBwB,CAYT,IC5DD,kBAAeI,GAAAA,OAAoB,CAElC7K,UAAS,WACR,MAAO,CACN,CACCC,IAAK,KAEN,CACCA,IAAK,OAEN,CACCA,IAAK,UAEN,CACC6K,MAAO,kBACPR,SAAU,SAAAS,GAAK,MAAc,iBAAVA,CAAwB,GAG9C,EAEAnL,WAAU,WACT,MAAO,CAAC,IAAK,EACd,EAGAC,WAAY,CACX6I,KAAM,KACNsC,MAAO,KACPC,SAAS,EACTC,0BAA0B,qBCN5B,SAtBeC,GAAAA,GAAAA,OAAY,CAC1B1L,KAAM,SAEN2L,cAAa,WACZ,MAAO,EACNC,EAAAA,EAAAA,IAAc,CACb1B,KAAM2B,GAAAA,GACNtC,KAAMvK,KAAKuK,OAGd,EAEAuC,cAAa,WACZ,MAAO,EACNC,EAAAA,EAAAA,IAAc,CACb7B,KAAM8B,GAAAA,GACNzC,KAAMvK,KAAKuK,OAGd,IC2BD,kBA7CkB0C,EAAAA,OAAuB,CAExC1L,UAAS,WACR,MAAO,CACN,CACCC,IAAK,KAEN,CACC6K,MAAO,kBACPR,SAAU,SAAAS,GAAK,MAAc,cAAVA,CAAqB,GAG3C,EAEAnL,WAAU,WACT,MAAO,CAAC,IAAK,EACd,EAEAC,WAAY,CACX6I,KAAM,KACNsC,MAAO,KACPC,SAAS,EACTC,0BAA0B,GAG3BE,cAAa,WACZ,MAAO,EACNC,EAAAA,EAAAA,IAAc,CACb1B,KAAMgC,GAAAA,GACN3C,KAAMvK,KAAKuK,OAGd,EAEAuC,cAAa,WACZ,MAAO,EACNC,EAAAA,EAAAA,IAAc,CACb7B,KAAMiC,GAAAA,GACN5C,KAAMvK,KAAKuK,OAGd,ICvCD,IAAM6C,GAASC,GAAAA,GAAAA,OAAoB,CAClCrM,KAAM,maCwDP,QACA,YACA,aACA,YACA,YACA,kBACA,iBACA,YACA,gBACA,cAGA,iBACA,sBACA,eAGA,sBACA,cAGA,4BACA,sBACA,gCACA,+BAEA,CAVA,CAWA,EAEA,UACA,iBACA,YACA,kBACA,sBAEA,YACA,mBAEA,QACA,MAEA,oEACA,gBACA,OACA,eACA,UACA,UACA,aACA,cAEA,EACA,UACA,0BACA,uCACA,EACA,kBACA,4BACA,kCACA,2BACA,gEACA,CACA,+EACA,CACA,iBACA,gDACA,wBAGA,EACA,uBACA,uCACA,+BACA,EACA,wBACA,yDACA,uEACA,EACA,qBACA,mCACA,EACA,uBACA,0DACA,EACA,oBACA,wCACA,EACA,kBACA,4BACA,EACA,oBACA,OACA,wCACA,eACA,UACA,wBACA,EACA,sBACA,wCACA,EACA,sBACA,IAGA,GAHA,8BACA,gFACA,oCACA,wBAEA,+BACA,sCAEA,oFAEA,EACA,gBACA,8BACA,EACA,oBACA,cACA,+CACA,4CACA,CACA,QACA,EACA,4BACA,4BACA,yBACA,EACA,+BACA,4BACA,UACA,2BAEA,QACA,EACA,KACA,eACA,8BACA,EACA,gBACA,uBACA,OAEA,GAEA,KACA,eACA,iDACA,EACA,gBACA,uBACA,OAEA,GAEA,aACA,0CACA,EACA,iBACA,gDACA,6CACA,GAEA,kCACA,0BAKA,OAHA,eACA,yBACA,gBAGA,+BACA,sBACA,GACA,EACA,SACA,2KACA,4CACA,qDACA,4CAEA,0HACA,uKACA,4CAEA,uDACA,+BAEA,6EACA,uCAGA,+EAEA,yCAEA,iFACA,qBACA,uCACA,GAEA,aAEA,iEA3BA,EA4BA,EACA,0LACA,2BACA,gBACA,oBACA,aACA,iBACA,GACA,EACA,sBACA,IACA,EACA,OACA,+CAZA,EAaA,EACA,8BACA,eACA,oBACA,cACA,EACA,qBACA,kCACA,EACA,oBACA,cACA,EACA,oCACA,iEACA,yDACA,4DACA,4CACA,6IACA,CACA,aACA,YACA,eACA,mBAGA,qKACA,CACA,aACA,YACA,eACA,gBACA,uBAEA,IC7U0K,qBCWtK,GAAU,CAAC,EAEf,GAAQtB,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YCPlD,UAXgB,OACd,ICTW,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,E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,MACA,qBAED,eAAgB,CACf,MACA,qBAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,cAAe,CACd,MACA,uBAED,iBAAkB,CACjB,MACA,uBAED,MAAO,CACN,MACA,eAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,SAAU,CACT,MACA,eAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,cAAe,CACd,MACA,uBAED,iBAAkB,CACjB,MACA,uBAED,WAAY,CACX,KACA,oBAED,cAAe,CACd,KACA,oBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,YAAa,CACZ,MACA,qBAED,iBAAkB,CACjB,MACA,0BAED,oBAAqB,CACpB,MACA,0BAED,eAAgB,CACf,MACA,qBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,iBAAkB,CACjB,KACA,0BAED,oBAAqB,CACpB,KACA,0BAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,YAAa,CACZ,MACA,qBAED,eAAgB,CACf,MACA,qBAED,WAAY,CACX,IACA,oBAED,cAAe,CACd,IACA,oBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,MAAO,CACN,MACA,eAED,SAAU,CACT,MACA,eAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,aAAc,CACb,MACA,sBAED,gBAAiB,CAChB,MACA,sBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,QAAS,CACR,IACA,iBAED,WAAY,CACX,IACA,iBAED,WAAY,CACX,MACA,oBAED,gBAAiB,CAChB,MACA,yBAED,mBAAoB,CACnB,MACA,yBAED,cAAe,CACd,MACA,oBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,YAAa,CACZ,MACA,qBAED,eAAgB,CACf,MACA,qBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,SAAU,CACT,KACA,kBAED,YAAa,CACZ,KACA,kBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,YAAa,CACZ,MACA,qBAED,eAAgB,CACf,MACA,qBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,OAAQ,CACP,MACA,gBAED,UAAW,CACV,MACA,gBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,YAAa,CACZ,MACA,qBAED,eAAgB,CACf,MACA,qBAED,SAAU,CACT,IACA,kBAED,YAAa,CACZ,IACA,kBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,aAAc,CACb,MACA,sBAED,gBAAiB,CAChB,MACA,sBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,OAAQ,CACP,MACA,gBAED,UAAW,CACV,MACA,gBAED,YAAa,CACZ,MACA,qBAED,eAAgB,CACf,MACA,qBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,cAAe,CACd,MACA,uBAED,iBAAkB,CACjB,MACA,uBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,UAAW,CACV,MACA,mBAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,aAAc,CACb,MACA,mBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,UAAW,CACV,IACA,mBAED,aAAc,CACb,IACA,mBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,SAAU,CACT,KACA,kBAED,YAAa,CACZ,KACA,kBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,mBAAoB,CACnB,MACA,4BAED,sBAAuB,CACtB,MACA,4BAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,aAAc,CACb,MACA,sBAED,gBAAiB,CAChB,MACA,sBAED,aAAc,CACb,MACA,sBAED,gBAAiB,CAChB,MACA,sBAED,gBAAiB,CAChB,MACA,yBAED,mBAAoB,CACnB,MACA,yBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,YAAa,CACZ,MACA,qBAED,eAAgB,CACf,MACA,qBAED,YAAa,CACZ,MACA,qBAED,eAAgB,CACf,MACA,qBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,gBAAiB,CAChB,MACA,yBAED,mBAAoB,CACnB,MACA,yBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,cAAe,CACd,MACA,uBAED,iBAAkB,CACjB,MACA,uBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,aAAc,CACb,MACA,sBAED,gBAAiB,CAChB,MACA,sBAED,YAAa,CACZ,MACA,qBAED,eAAgB,CACf,MACA,qBAED,YAAa,CACZ,KACA,qBAED,eAAgB,CACf,KACA,qBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,OAAQ,CACP,MACA,gBAED,UAAW,CACV,MACA,gBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,QAAS,CACR,MACA,iBAED,iBAAkB,CACjB,MACA,0BAED,oBAAqB,CACpB,MACA,0BAED,WAAY,CACX,MACA,iBAED,cAAe,CACd,MACA,uBAED,iBAAkB,CACjB,MACA,uBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,YAAa,CACZ,KACA,qBAED,eAAgB,CACf,KACA,qBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,aAAc,CACb,KACA,sBAED,gBAAiB,CAChB,KACA,sBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,cAAe,CACd,MACA,uBAED,iBAAkB,CACjB,MACA,uBAED,WAAY,CACX,MACA,oBAED,gBAAiB,CAChB,MACA,yBAED,mBAAoB,CACnB,MACA,yBAED,cAAe,CACd,MACA,oBAED,MAAO,CACN,MACA,eAED,SAAU,CACT,MACA,eAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,MAAO,CACN,MACA,eAED,SAAU,CACT,MACA,eAED,aAAc,CACb,MACA,sBAED,gBAAiB,CAChB,MACA,sBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,aAAc,CACb,MACA,sBAED,gBAAiB,CAChB,MACA,sBAED,aAAc,CACb,MACA,sBAED,gBAAiB,CAChB,MACA,sBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,kBAAmB,CAClB,MACA,2BAED,qBAAsB,CACrB,MACA,2BAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,UAAW,CACV,KACA,mBAED,aAAc,CACb,KACA,mBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,cAAe,CACd,MACA,uBAED,iBAAkB,CACjB,MACA,uBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,aAAc,CACb,MACA,sBAED,gBAAiB,CAChB,MACA,sBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,YAAa,CACZ,MACA,qBAED,eAAgB,CACf,MACA,qBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,MACA,mBAED,iBAAkB,CACjB,MACA,0BAED,oBAAqB,CACpB,MACA,0BAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,QAAS,CACR,MACA,iBAED,WAAY,CACX,MACA,iBAED,WAAY,CACX,MACA,oBAED,cAAe,CACd,MACA,oBAED,OAAQ,CACP,MACA,gBAED,UAAW,CACV,MACA,gBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,eAAgB,CACf,MACA,wBAED,kBAAmB,CAClB,MACA,wBAED,SAAU,CACT,MACA,kBAED,YAAa,CACZ,MACA,kBAED,UAAW,CACV,MACA,mBAED,aAAc,CACb,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G,YACH6L,GAAI,YACJC,IAAK,UACL,WAAY,QACZC,OAAQ,eACRC,KAAM,cACNC,KAAM,cACNpU,EAAG,MACHqU,EAAG,MACH,MAAO,MACP,MAAO,MACPC,GAAI,MACJC,MAAO,SACPC,IAAK,MACLC,IAAK,MACLC,GAAI,SACJC,IAAK,aACL,WAAY,aACZ,kBAAmB,aACnBC,gBAAiB,OACjBC,gBAAiB,OACjB,iBAAkB,OAClB,mBAAoB,OACpB,kBAAmB,OACnB,mBAAoB,OACpB,oBAAqB,OACrBC,GAAI,aACJC,GAAI,WACJC,IAAK,WACL/jB,GAAI,WACJgkB,OAAQ,WACRC,IAAK,WACLC,UAAW,QACXh7B,EAAG,aACHomB,GAAI,aACJ6U,GAAI,QACJC,GAAI,OACJC,IAAK,SACLC,IAAK,YACLC,GAAI,QACJC,IAAK,wsCCmBN,IAEA,GACA,YACA,aACA,YACA,YACA,kBACA,iBACA,YACA,gBACA,aACA,aACA,cAGA,MChI8K,EDgI9K,CACA,qBACA,YACA,mBACA,iGACA,qGACA,mGACA,2GACA,2GACA,wGACA,sGACA,UAEA,YACA,aAEA,QACA,IACA,KAEA,8BACA,KAkBA,OAZA,8BACA,eACA,gBACA,IAGA,8BACA,eACA,qBACA,IAGA,CACA,EACA,OACA,gBACA,YACA,cAEA,cACA,YACA,YAEA,QACA,YACA,cAEA,QACA,aACA,YAEA,WACA,aACA,YAEA,YACA,YACA,cAEA,MACA,YACA,cAEA,UACA,aACA,YAEA,iBACA,aACA,aAGA,gBACA,OACA,aFxKqB,GE0KrB,cACA,YACA,oBAEA,oBAEA,QACA,SACA,iBACA,mBACA,eACA,sBACA,YACA,iBACA,iBACA,mBACA,eAEA,uBACA,eACA,oBAEA,EACA,UACA,iCACA,8CACA,EACA,2BACA,+BACA,+EAEA,+DACA,EACA,gCACA,2DACA,EACA,+BACA,sDACA,EACA,kCACA,0EAOA,OANA,yBACA,oGAEA,mDACA,sCAEA,8BACA,EACA,6BACA,8DACA,EACA,8BACA,iBACA,EACA,6BACA,iFACA,EACA,iCACA,mBACA,gCACA,CACA,EACA,iCACA,wDACA,EACA,oBACA,iHACA,EACA,wBACA,iCACA,EACA,yBACA,kFACA,EACA,4BACA,yBACA,mDACA,GACA,EACA,qBACA,uCACA,EACA,iCACA,2BACA,oBACA,iBACA,aACA,EACA,uBACA,4BACA,cACA,GAEA,OACA,2BACA,sDACA,EACA,gCACA,2BACA,uCACA,GACA,GAEA,mBACA,yCACA,mBAEA,sCACA,EACA,8BACA,kBACA,uBACA,+CACA,yBACA,OACA,EACA,yBACA,YACA,EACA,SACA,iCACA,gBACA,2EAEA,EAEA,kCACA,+BAKA,2EAEA,yBACA,2BACA,2BACA,YACA,iCACA,sBACA,uBACA,uCAEA,kBAEA,IAGA,+BAEA,wBACA,mBACA,2BACA,qCACA,mBACA,uBACA,IACA,qBA3BA,MAFA,oDA8BA,EAEA,mCACA,kBACA,2BACA,2BACA,2BACA,uBACA,yBACA,qCACA,uBACA,sBACA,EAEA,qCACA,kBACA,4BACA,4BACA,4BACA,wBACA,0BACA,sCACA,wBACA,uBACA,EAEA,iCACA,8BACA,kDACA,EAEA,mCACA,sBACA,gBACA,EAEA,gCACA,sBACA,2BAEA,iBACA,8BACA,oBACA,oBACA,eACA,EAEA,kBACA,kBACA,QACA,QACA,mBACA,IAGA,IAGA,YACA,EAEA,sCACA,0EAIA,2EACA,uCAEA,wDACA,qDAEA,qCACA,4DAEA,eACA,6CAEA,4BACA,uBACA,8BACA,yBAEA,oDACA,oEAGA,yCAEA,+BACA,sDAEA,CACA,EAEA,oBACA,mBACA,EAEA,oBACA,mBACA,EACA,oBACA,qCACA,EACA,yBACA,wDACA,mBACA,EACA,sGACA,MAGA,wBACA,4BACA,6BACA,IACA,iCACA,oBACA,GAPA,CAQA,EACA,iOACA,mCACA,+GAIA,0DACA,+JACA,+BACA,YACA,iGACA,+CAXA,EAYA,EACA,uCACA,wBACA,iEACA,kKACA,+BACA,YACA,iGACA,qBACA,oBACA,GACA,EACA,sGAGA,GAHA,2DAGA,IACA,sDACA,oDACA,IAGA,4BACA,EACA,4FAEA,mFAGA,sCACA,EAEA,kDACA,sBACA,gBACA,yBACA,iCACA,2DACA,6DACA,EAEA,mDACA,2BACA,wBACA,cACA,wBACA,6CAEA,WACA,iBACA,oBACA,UACA,oCACA,6BACA,0BACA,EACA,oCACA,4BACA,EACA,YACA,gBAGA,kCACA,6BAEA,SAxcA,IAycA,kCACA,gBACA,0BAEA,EACA,wDACA,8BACA,qBAGA,eACA,EACA,qDACA,yCAEA,8DACA,aAPA,CAQA,IAEA,gBACA,mBAEA,OADA,uBACA,CACA,IAEA,gBACA,6BACA,kBACA,0DACA,6BACA,EACA,iBACA,0DACA,4DACA,KAGA,iCACA,sCAEA,iCACA,gBACA,IACA,gCACA,eACA,IACA,oCACA,GAEA,EAEA,mDACA,uFAIA,kCACA,gBAEA,oBACA,oDAPA,8BAQA,EAEA,qDACA,2BACA,IACA,6FACA,gBACA,yBACA,QACA,sBAEA,2CACA,6BACA,2BACA,4BACA,GACA,UACA,2DAEA,CACA,eACA,EAEA,iDACA,uCAEA,2BACA,6BACA,IAEA,iFACA,sBACA,gBACA,OACA,SAGA,mDACA,2BAEA,kEACA,aACA,2CAGA,yBACA,4BAEA,mBACA,EAEA,0BACA,wCACA,sBACA,gCACA,8BAEA,oBAEA,gCAEA,kDACA,mBAEA,EAEA,6BACA,0BACA,aACA,iBACA,mDAEA,2BACA,4BACA,GACA,EAEA,6BACA,2BACA,4BACA,GACA,EAEA,2JACA,uCACA,4EAEA,8BACA,8BACA,sBACA,wGAKA,4DAZA,EAaA,2IE3sBIhnC,GAAU,CAAC,EAEfA,GAAQC,kBAAoB,KAC5BD,GAAQE,cAAgB,IAElBF,GAAQG,OAAS,SAAc,KAAM,QAE3CH,GAAQI,OAAS,IACjBJ,GAAQK,mBAAqB,IAEhB,IAAI,KAASL,IAKJ,MAAW,aAAiB,4BCf9C,GAAU,CAAC,EAEf,GAAQC,kBAAoB,KAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YCNlD,UA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","sources":["webpack:///text/src/nodes/TableView.vue","webpack:///text/src/nodes/TableView.vue?vue&type=script&lang=js&","webpack://text/./src/nodes/TableView.vue?2f86","webpack://text/./src/nodes/TableView.vue?cc99","webpack:///text/src/nodes/TableView.vue?vue&type=template&id=1be1a6a8&scoped=true&","webpack:///text/src/nodes/Table.js","webpack:///text/src/nodes/TableCellView.vue","webpack:///text/src/nodes/TableCellView.vue?vue&type=script&lang=js&","webpack://text/./src/nodes/TableCellView.vue?dbb1","webpack://text/./src/nodes/TableCellView.vue?b2f8","webpack:///text/src/nodes/TableCellView.vue?vue&type=template&id=18b35f45&scoped=true&","webpack:///text/src/nodes/TableCell.js","webpack:///text/src/nodes/TableHeaderView.vue","webpack:///text/src/nodes/TableHeaderView.vue?vue&type=script&lang=js&","webpack://text/./src/nodes/TableHeaderView.vue?1eba","webpack://text/./src/nodes/TableHeaderView.vue?953f","webpack:///text/src/nodes/TableHeaderView.vue?vue&type=template&id=49e3b9b6&scoped=true&","webpack:///text/src/nodes/TableHeader.js","webpack:///text/src/nodes/TableRow.js","webpack:///text/src/nodes/TableHeadRow.js","webpack:///text/src/helpers/links.js","webpack:///text/src/plugins/link.js","webpack:///text/src/marks/Link.js","webpack:///text/src/marks/Strike.js","webpack:///text/src/marks/Strong.js","webpack:///text/src/marks/Underline.js","webpack:///text/src/marks/index.js","webpack:///text/src/nodes/ImageView.vue","webpack:///text/src/nodes/ImageView.vue?vue&type=script&lang=js&","webpack://text/./src/nodes/ImageView.vue?0f85","webpack://text/./src/nodes/ImageView.vue?efcd","webpack:///text/src/nodes/ImageView.vue?vue&type=template&id=37a183c4&scoped=true&","webpack:///text/src/nodes/Image.js","webpack:///text/src/nodes/PlainTextDocument.js","webpack:///text/src/nodes/BulletList.js","webpack:///text/src/commands/listInputRule.js","webpack:///text/src/nodes/TaskItem.js","webpack:///text/src/nodes/TaskList.js","webpack:///text/src/nodes/TrailingNode.js","webpack:///text/src/nodes/Heading.js","webpack:///text/src/nodes/Callouts.js","webpack:///text/src/components/EmojiList.vue","webpack:///text/src/components/EmojiList.vue?vue&type=script&lang=js&","webpack://text/./src/components/EmojiList.vue?c283","webpack://text/./src/components/EmojiList.vue?f465","webpack:///text/src/components/EmojiListWrapper.vue?vue&type=script&lang=js&","webpack:///text/src/components/EmojiListWrapper.vue","webpack:///text/src/components/EmojiList.vue?vue&type=template&id=5559f1fe&scoped=true&","webpack://text/./src/components/EmojiListWrapper.vue?68dc","webpack:///text/src/components/EmojiListWrapper.vue?vue&type=template&id=51da07cd&","webpack:///text/src/EditorFactory.js","webpack:///text/src/components/EditorWrapper.provider.js","webpack:///text/src/extensions/Markdown.js","webpack:///text/src/extensions/Emoji.js","webpack:///text/src/extensions/HardBreak.js","webpack:///text/src/extensions/Keymap.js","webpack:///text/src/extensions/tracking/models.js","webpack:///text/src/extensions/tracking/TrackState.js","webpack:///text/src/extensions/UserColor.js","webpack:///text/src/extensions/Collaboration.js","webpack:///text/src/helpers/index.js","webpack:///text/src/markdownit/callouts.js","webpack:///text/src/markdownit/index.js","webpack:///text/src/markdownit/splitMixedLists.js","webpack:///text/src/markdownit/underline.js","webpack:///text/src/mixins/isMobile.js","webpack:///text/src/mixins/store.js","webpack:///text/src/store.js","webpack:///text/src/components/CollisionResolveDialog.vue?vue&type=style&index=0&id=4a5d4c0f&scoped=true&lang=scss&","webpack:///text/src/components/EditorWrapper.vue?vue&type=style&index=0&id=701abc86&scoped=true&lang=scss&","webpack:///text/src/components/EditorWrapper.vue?vue&type=style&index=1&lang=scss&","webpack:///text/src/components/EmojiList.vue?vue&type=style&index=0&id=5559f1fe&scoped=true&lang=scss&","webpack:///text/src/components/ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&","webpack:///text/src/components/ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&","webpack:///text/src/nodes/ImageView.vue?vue&type=style&index=0&id=37a183c4&scoped=true&lang=scss&","webpack:///text/src/nodes/TableCellView.vue?vue&type=style&index=0&id=18b35f45&scoped=true&lang=scss&","webpack:///text/src/nodes/TableHeaderView.vue?vue&type=style&index=0&id=49e3b9b6&scoped=true&lang=scss&","webpack:///text/src/nodes/TableView.vue?vue&type=style&index=0&id=1be1a6a8&scoped=true&lang=scss&","webpack:///text/src/views/DirectEditing.vue?vue&type=style&index=0&id=ecc9f54c&scoped=true&lang=scss&","webpack:///text/node_modules/highlight.js/lib/core.js","webpack:///text/node_modules/highlight.js/lib/languages|/home/runner/actions-runner/_work/text/text/node_modules/highlight.js/lib/languages|lazy|/^\\.\\/.*$/|chunkName: highlight/[request]|groupOptions: {}|namespace object","webpack:///text/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///text/src/components/CollisionResolveDialog.vue","webpack:///text/src/components/CollisionResolveDialog.vue?vue&type=script&lang=js&","webpack://text/./src/components/CollisionResolveDialog.vue?d090","webpack://text/./src/components/CollisionResolveDialog.vue?6ed8","webpack:///text/src/components/CollisionResolveDialog.vue?vue&type=template&id=4a5d4c0f&scoped=true&","webpack:///text/src/components/EditorWrapper.vue?vue&type=template&id=701abc86&scoped=true&","webpack:///text/src/services/PollingBackend.js","webpack:///text/src/services/SyncService.js","webpack:///text/src/helpers/mappings.js","webpack:///text/src/components/EditorWrapper.vue","webpack:///text/src/components/EditorWrapper.vue?vue&type=script&lang=js&","webpack://text/./src/components/EditorWrapper.vue?b6cc","webpack://text/./src/components/EditorWrapper.vue?973c","webpack://text/./src/components/EditorWrapper.vue?c069","webpack:///text/src/components/ReadOnlyEditor.vue?vue&type=template&id=9d98c77a&","webpack:///text/src/components/ReadOnlyEditor.vue","webpack:///text/src/components/ReadOnlyEditor.vue?vue&type=script&lang=js&","webpack://text/./src/components/ReadOnlyEditor.vue?5123","webpack://text/./src/components/ReadOnlyEditor.vue?fcc9","webpack://text/./src/components/ReadOnlyEditor.vue?4b7c","webpack:///text/src/views/DirectEditing.vue?vue&type=template&id=ecc9f54c&scoped=true&","webpack:///text/src/views/DirectEditing.vue","webpack:///text/src/views/DirectEditing.vue?vue&type=script&lang=js&","webpack://text/./src/views/DirectEditing.vue?4cb3","webpack://text/./src/views/DirectEditing.vue?50c1"],"sourcesContent":["\n\n\n\t\n\t\t \n\t\t\n\t\t\t\n\t\t\t\t{{ t('text', 'Delete this table') }}\n\t\t\t \n\t\t \n\t\t\n\t \n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableView.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableView.vue?vue&type=style&index=0&id=1be1a6a8&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableView.vue?vue&type=style&index=0&id=1be1a6a8&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TableView.vue?vue&type=template&id=1be1a6a8&scoped=true&\"\nimport script from \"./TableView.vue?vue&type=script&lang=js&\"\nexport * from \"./TableView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableView.vue?vue&type=style&index=0&id=1be1a6a8&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1be1a6a8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('NodeViewWrapper',{staticClass:\"table-wrapper\"},[_c('NodeViewContent',{staticClass:\"content\",attrs:{\"as\":\"table\"}}),_vm._v(\" \"),(_vm.editor.isEditable)?_c('Actions',{staticClass:\"table-settings\",attrs:{\"force-menu\":true,\"default-icon\":\"icon-table_settings\"}},[_c('ActionButton',{attrs:{\"icon\":\"icon-delete\",\"close-after-click\":true},on:{\"click\":_vm.deleteNode}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('text', 'Delete this table'))+\"\\n\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"clearfix\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable jsdoc/require-jsdoc */\nimport { Table } from '@tiptap/extension-table'\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { TextSelection } from 'prosemirror-state'\nimport { isInTable, moveCellForward, selectionCell } from '@tiptap/prosemirror-tables'\nimport { VueNodeViewRenderer } from '@tiptap/vue-2'\nimport TableView from './TableView.vue'\n\n/*\n * Markdown tables do not include captions.\n * We still need to parse them though\n * because otherwise tiptap will try to insert their text content\n * and put it in the top row of the table.\n */\nconst tableCaption = Node.create({\n\tname: 'tableCaption',\n\tcontent: 'inline*',\n\taddAttributes() {\n\t\treturn {}\n\t},\n\n\trenderHTML() {\n\t\treturn ['caption']\n\t},\n\n\ttoMarkdown(state, node) {\n\t},\n\n\tparseHTML() {\n\t\treturn [\n\t\t\t{ tag: 'table caption', priority: 90 },\n\t\t]\n\t},\n\n})\n\nfunction createTable(schema, rowsCount, colsCount, cellContent) {\n\tconst headerCells = []\n\tconst cells = []\n\tfor (let index = 0; index < colsCount; index += 1) {\n\t\tconst cell = schema.nodes.tableCell.createAndFill()\n\t\tif (cell) {\n\t\t\tcells.push(cell)\n\t\t}\n\t\tconst headerCell = schema.nodes.tableHeader.createAndFill()\n\t\tif (headerCell) {\n\t\t\theaderCells.push(headerCell)\n\t\t}\n\t}\n\tconst headRow = schema.nodes.tableHeadRow.createChecked(null, headerCells)\n\tconst rows = []\n\tfor (let index = 1; index < rowsCount; index += 1) {\n\t\trows.push(schema.nodes.tableRow.createChecked(null, cells))\n\t}\n\treturn schema.nodes.table.createChecked(null, [headRow, ...rows])\n}\n\n/**\n *\n * @param {object} $cell - resolved position of the current cell\n */\nfunction findSameCellInNextRow($cell) {\n\tif ($cell.index(-1) === $cell.node(-1).childCount - 1) {\n\t\treturn null\n\t}\n\tlet cellStart = $cell.after()\n\tconst table = $cell.node(-1)\n\tfor (let row = $cell.indexAfter(-1); row < table.childCount; row++) {\n\t\tconst rowNode = table.child(row)\n\t\tif (rowNode.childCount >= $cell.index()) {\n\t\t\tfor (let cell = 0; cell < $cell.index(); cell++) {\n\t\t\t\tconst cellNode = rowNode.child(cell)\n\t\t\t\tcellStart += cellNode.nodeSize\n\t\t\t}\n\t\t\treturn cellStart + 1\n\t\t}\n\t\tcellStart += rowNode.nodeSize\n\t}\n}\n\nexport default Table.extend({\n\tcontent: 'tableCaption? tableHeadRow tableRow*',\n\n\taddExtensions() {\n\t\treturn [\n\t\t\ttableCaption,\n\t\t]\n\t},\n\n\taddCommands() {\n\t\treturn {\n\t\t\t...this.parent(),\n\t\t\tinsertTable: () => ({ tr, dispatch, editor }) => {\n\t\t\t\tif (isInTable(tr)) return false\n\t\t\t\tconst node = createTable(editor.schema, 3, 3, true)\n\t\t\t\tif (dispatch) {\n\t\t\t\t\tconst offset = tr.selection.anchor + 1\n\t\t\t\t\ttr.replaceSelectionWith(node)\n\t\t\t\t\t\t.scrollIntoView()\n\t\t\t\t\t\t.setSelection(TextSelection.near(tr.doc.resolve(offset)))\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t},\n\t\t\t// move to the next node after the table from the last cell\n\t\t\tleaveTable: () => ({ tr, dispatch, editor }) => {\n\t\t\t\tif (!isInTable(tr)) return false\n\t\t\t\tconst { $head, empty } = tr.selection\n\t\t\t\tif (!empty) return false\n\t\t\t\t// the selection can temporarily be inside the table but outside of cells.\n\t\t\t\tconst tableDepth = $head.depth < 3 ? 1 : $head.depth - 2\n\t\t\t\tif (dispatch) {\n\t\t\t\t\tconst $next = tr.doc.resolve($head.after(tableDepth) + 1)\n\t\t\t\t\tconst selection = TextSelection.near($next)\n\t\t\t\t\tdispatch(tr.setSelection(selection).scrollIntoView())\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t},\n\t\t\tgoToNextRow: () => ({ tr, dispatch, editor }) => {\n\t\t\t\tif (!isInTable(tr)) return false\n\t\t\t\tconst cell = findSameCellInNextRow(selectionCell(tr))\n\t\t\t\tif (cell == null) return\n\t\t\t\tif (dispatch) {\n\t\t\t\t\tconst $cell = tr.doc.resolve(cell)\n\t\t\t\t\tconst selection = TextSelection.between($cell, moveCellForward($cell))\n\t\t\t\t\tdispatch(tr.setSelection(selection).scrollIntoView())\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t},\n\t\t}\n\t},\n\n\trenderHTML({ HTMLAttributes }) {\n\t\treturn ['table', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]\n\t},\n\n\ttoMarkdown(state, node) {\n\t\tstate.renderContent(node)\n\t\tstate.closeBlock(node)\n\t},\n\n\taddKeyboardShortcuts() {\n\t\treturn {\n\t\t\t...this.parent(),\n\t\t\tTab: () => this.editor.commands.goToNextCell() || this.editor.commands.leaveTable(),\n\t\t\tEnter: () => {\n\t\t\t\tif (this.editor.commands.goToNextRow()) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tif (!this.editor.can().addRowAfter()) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\treturn this.editor\n\t\t\t\t\t.chain()\n\t\t\t\t\t.addRowAfter()\n\t\t\t\t\t.goToNextRow()\n\t\t\t\t\t.run()\n\t\t\t},\n\t\t}\n\t},\n\n\taddNodeView() {\n\t\treturn VueNodeViewRenderer(TableView)\n\t},\n\n})\n","\n\n\n\t\n\t\t\n\t\t\t \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{{ t('text', 'Add row before') }}\n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\t{{ t('text', 'Add row after') }}\n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\t{{ t('text', 'Delete this row') }}\n\t\t\t\t \n\t\t\t \n\t\t\n\t \n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableCellView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableCellView.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableCellView.vue?vue&type=style&index=0&id=18b35f45&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableCellView.vue?vue&type=style&index=0&id=18b35f45&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TableCellView.vue?vue&type=template&id=18b35f45&scoped=true&\"\nimport script from \"./TableCellView.vue?vue&type=script&lang=js&\"\nexport * from \"./TableCellView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableCellView.vue?vue&type=style&index=0&id=18b35f45&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18b35f45\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('NodeViewWrapper',{attrs:{\"as\":\"td\"}},[_c('div',{staticClass:\"container\"},[_c('NodeViewContent',{staticClass:\"content\"}),_vm._v(\" \"),(_vm.editor.isEditable)?_c('Actions',[_c('ActionButton',{attrs:{\"icon\":\"icon-add_row_before\",\"close-after-click\":true},on:{\"click\":_vm.addRowBefore}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('text', 'Add row before'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('ActionButton',{attrs:{\"icon\":\"icon-add_row_after\",\"close-after-click\":true},on:{\"click\":_vm.addRowAfter}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('text', 'Add row after'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('ActionButton',{attrs:{\"icon\":\"icon-delete\",\"close-after-click\":true},on:{\"click\":_vm.deleteRow}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('text', 'Delete this row'))+\"\\n\\t\\t\\t\")])],1):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { TableCell } from '@tiptap/extension-table-cell'\nimport { VueNodeViewRenderer } from '@tiptap/vue-2'\nimport TableCellView from './TableCellView.vue'\n\nexport default TableCell.extend({\n\tcontent: 'inline*',\n\n\ttoMarkdown(state, node) {\n\t\tstate.write(' ')\n\t\tstate.renderInline(node)\n\t\tstate.write(' |')\n\t},\n\n\tparseHTML() {\n\t\treturn [\n\t\t\t{ tag: 'td' },\n\t\t\t{ tag: 'th' },\n\t\t\t{ tag: 'table thead ~ tbody th', priority: 70 },\n\t\t\t{ tag: 'table thead ~ tbody td', priority: 70 },\n\t\t]\n\t},\n\n\taddNodeView() {\n\t\treturn VueNodeViewRenderer(TableCellView)\n\t},\n\n})\n","\n\n\n\t\n\t\t\n\t\t\t \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{{ t('text', 'Add column before') }}\n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\t{{ t('text', 'Add column after') }}\n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\t{{ t('text', 'Delete this column') }}\n\t\t\t\t \n\t\t\t \n\t\t\n\t \n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableHeaderView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableHeaderView.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableHeaderView.vue?vue&type=style&index=0&id=49e3b9b6&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableHeaderView.vue?vue&type=style&index=0&id=49e3b9b6&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TableHeaderView.vue?vue&type=template&id=49e3b9b6&scoped=true&\"\nimport script from \"./TableHeaderView.vue?vue&type=script&lang=js&\"\nexport * from \"./TableHeaderView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableHeaderView.vue?vue&type=style&index=0&id=49e3b9b6&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"49e3b9b6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('NodeViewWrapper',{attrs:{\"as\":\"th\"}},[_c('div',[_c('NodeViewContent',{staticClass:\"content\"}),_vm._v(\" \"),(_vm.editor.isEditable)?_c('Actions',[_c('ActionButton',{attrs:{\"icon\":\"icon-add_col_before\",\"close-after-click\":true},on:{\"click\":_vm.addColumnBefore}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('text', 'Add column before'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('ActionButton',{attrs:{\"icon\":\"icon-add_col_after\",\"close-after-click\":true},on:{\"click\":_vm.addColumnAfter}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('text', 'Add column after'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('ActionButton',{attrs:{\"icon\":\"icon-delete\",\"close-after-click\":true},on:{\"click\":_vm.deleteColumn}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('text', 'Delete this column'))+\"\\n\\t\\t\\t\")])],1):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { TableHeader } from '@tiptap/extension-table-header'\nimport { VueNodeViewRenderer } from '@tiptap/vue-2'\nimport TableHeaderView from './TableHeaderView.vue'\n\nexport default TableHeader.extend({\n\tcontent: 'inline*',\n\n\ttoMarkdown(state, node) {\n\t\tstate.write(' ')\n\t\tstate.renderInline(node)\n\t\tstate.write(' |')\n\t},\n\n\tparseHTML() {\n\t\treturn [\n\t\t\t{ tag: 'table thead:empty ~ tbody :first-child th', priority: 80 },\n\t\t\t{ tag: 'table thead:empty ~ tbody :first-child td', priority: 80 },\n\t\t\t{ tag: 'table thead :first-child th', priority: 60 },\n\t\t\t{ tag: 'table thead :first-child td', priority: 60 },\n\t\t\t{ tag: 'table tbody :first-child th', priority: 60 },\n\t\t\t{ tag: 'table tbody :first-child td', priority: 60 },\n\t\t\t{ tag: 'table > :first-child > th', priority: 60 },\n\t\t\t{ tag: 'table > :first-child > td', priority: 60 },\n\t\t]\n\t},\n\n\taddNodeView() {\n\t\treturn VueNodeViewRenderer(TableHeaderView)\n\t},\n\n})\n","import { TableRow } from '@tiptap/extension-table-row'\n\nexport default TableRow.extend({\n\tcontent: 'tableCell*',\n\n\ttoMarkdown(state, node) {\n\t\tstate.write('|')\n\t\tstate.renderInline(node)\n\t\tstate.ensureNewLine()\n\t},\n\n\tparseHTML() {\n\t\treturn [\n\t\t\t{ tag: 'tr', priority: 80 },\n\t\t]\n\t},\n})\n","import TableRow from './TableRow.js'\n\nexport default TableRow.extend({\n\tname: 'tableHeadRow',\n\tcontent: 'tableHeader*',\n\n\ttoMarkdown(state, node) {\n\t\tstate.write('|')\n\t\tstate.renderInline(node)\n\t\tstate.ensureNewLine()\n\t\tstate.write('|')\n\t\tnode.forEach(cell => {\n\t\t\tstate.write(state.repeat('-', cell.textContent.length + 2))\n\t\t\tstate.write('|')\n\t\t})\n\t\tstate.ensureNewLine()\n\t},\n\n\tparseHTML() {\n\t\treturn [\n\t\t\t{ tag: 'tr', priority: 70 },\n\t\t]\n\t},\n})\n","/*\n * @copyright Copyright (c) 2020 Azul \n *\n * @author Azul \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport markdownit from './../markdownit/index.js'\n\nconst absolutePath = function(base, rel) {\n\tif (!rel) {\n\t\treturn base\n\t}\n\tif (rel[0] === '/') {\n\t\treturn rel\n\t}\n\tbase = base.split('/')\n\trel = rel.split('/')\n\twhile (rel[0] === '..' || rel[0] === '.') {\n\t\tif (rel[0] === '..') {\n\t\t\tbase.pop()\n\t\t}\n\t\trel.shift()\n\t}\n\treturn base.concat(rel).join('/')\n}\n\nconst basedir = function(file) {\n\tconst end = file.lastIndexOf('/')\n\treturn (end > 0)\n\t\t? file.slice(0, end)\n\t\t: file.slice(0, end + 1) // basedir('/toplevel') should return '/'\n}\n\nconst domHref = function(node) {\n\tconst ref = node.attrs.href\n\tif (!ref) {\n\t\treturn ref\n\t}\n\tif (ref.match(/^[a-zA-Z]*:/)) {\n\t\treturn ref\n\t}\n\tconst match = ref.match(/^([^?]*)\\?fileId=(\\d+)/)\n\tif (match) {\n\t\tconst [, relPath, id] = match\n\t\tconst currentDir = basedir(OCA.Viewer.file)\n\t\tconst dir = absolutePath(currentDir, basedir(relPath))\n\t\treturn generateUrl(`/apps/files/?dir=${dir}&openfile=${id}#relPath=${relPath}`)\n\t}\n}\n\nconst parseHref = function(dom) {\n\tconst ref = dom.getAttribute('href')\n\tif (!ref) {\n\t\treturn ref\n\t}\n\tconst match = ref.match(/\\?dir=([^&]*)&openfile=([^&]*)#relPath=([^&]*)/)\n\tif (match) {\n\t\tconst [, , id, path] = match\n\t\treturn `${path}?fileId=${id}`\n\t}\n\treturn ref\n}\n\nconst openLink = function(event, _attrs) {\n\tconst linkElement = event.target.closest('a')\n\tconst htmlHref = linkElement.href\n\tconst query = OC.parseQueryString(htmlHref)\n\tconst fragment = OC.parseQueryString(htmlHref.split('#').pop())\n\tif (query.dir && fragment.relPath) {\n\t\tconst filename = fragment.relPath.split('/').pop()\n\t\tconst path = `${query.dir}/${filename}`\n\t\tdocument.title = `${filename} - ${OC.theme.title}`\n\t\tif (window.location.pathname.match(/apps\\/files\\/$/)) {\n\t\t\t// The files app still lacks a popState handler\n\t\t\t// to allow for using the back button\n\t\t\t// OC.Util.History.pushState('', htmlHref)\n\t\t}\n\t\tOCA.Viewer.open({ path })\n\t\treturn\n\t}\n\tif (query.fileId) {\n\t\t// open the direct file link\n\t\twindow.open(generateUrl(`/f/${query.fileId}`))\n\t\treturn\n\t}\n\tif (!markdownit.validateLink(htmlHref)) {\n\t\tconsole.error('Invalid link', htmlHref)\n\t\treturn false\n\t}\n\twindow.open(htmlHref)\n\treturn true\n}\n\nexport {\n\tdomHref,\n\tparseHref,\n\topenLink,\n}\n","import { Plugin, PluginKey } from 'prosemirror-state'\n\nconst clickHandler = ({ editor, type, onClick }) => {\n\treturn new Plugin({\n\t\tprops: {\n\t\t\tkey: new PluginKey('textLink'),\n\t\t\thandleClick: (view, pos, event) => {\n\t\t\t\tconst $clicked = view.state.doc.resolve(pos)\n\t\t\t\tconst link = $clicked.marks().find(m => m.type.name === type.name)\n\t\t\t\tif (!link) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif (!link.attrs.href) {\n\t\t\t\t\tconsole.warn('Could not determine href of link.')\n\t\t\t\t\tconsole.debug(link)\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// We use custom onClick handler only for left clicks\n\t\t\t\tif (event.button === 0 && !event.ctrlKey) {\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\treturn onClick?.(event, link.attrs)\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t})\n}\n\nexport { clickHandler }\n","/*\n * @copyright Copyright (c) 2019 Azul \n *\n * @author Azul \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport TipTapLink from '@tiptap/extension-link'\nimport { domHref, parseHref, openLink } from './../helpers/links.js'\nimport { clickHandler } from '../plugins/link.js'\n\nconst Link = TipTapLink.extend({\n\n\taddOptions() {\n\t\treturn {\n\t\t\t...this.parent?.(),\n\t\t\tonClick: openLink,\n\t\t}\n\t},\n\n\taddAttributes() {\n\t\treturn {\n\t\t\thref: {\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t\ttitle: {\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t}\n\t},\n\n\tinclusive: false,\n\n\tparseHTML: [\n\t\t{\n\t\t\ttag: 'a[href]',\n\t\t\tgetAttrs: dom => ({\n\t\t\t\thref: parseHref(dom),\n\t\t\t\ttitle: dom.getAttribute('title'),\n\t\t\t}),\n\t\t},\n\t],\n\n\trenderHTML: ({ mark, HTMLAttributes }) => ['a', {\n\t\t...mark.attrs,\n\t\thref: domHref(mark),\n\t\trel: 'noopener noreferrer nofollow',\n\t}, 0],\n\n\taddProseMirrorPlugins() {\n\t\tconst plugins = this.parent()\n\t\t\t// remove original handle click\n\t\t\t.filter(({ key }) => {\n\t\t\t\treturn !key.startsWith('handleClickLink')\n\t\t\t})\n\n\t\tif (!this.options.openOnClick) {\n\t\t\treturn plugins\n\t\t}\n\n\t\t// add custom click handler\n\t\treturn [\n\t\t\t...plugins,\n\t\t\tclickHandler({\n\t\t\t\teditor: this.editor,\n\t\t\t\ttype: this.type,\n\t\t\t\tonClick: this.options.onClick,\n\t\t\t}),\n\t\t]\n\t},\n})\n\nexport default Link\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport TipTapStrike from '@tiptap/extension-strike'\n\nexport default TipTapStrike.extend({\n\n\tparseHTML() {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttag: 's',\n\t\t\t},\n\t\t\t{\n\t\t\t\ttag: 'del',\n\t\t\t},\n\t\t\t{\n\t\t\t\ttag: 'strike',\n\t\t\t},\n\t\t\t{\n\t\t\t\tstyle: 'text-decoration',\n\t\t\t\tgetAttrs: value => value === 'line-through',\n\t\t\t},\n\t\t]\n\t},\n\n\trenderHTML() {\n\t\treturn ['s', 0]\n\t},\n\n\t/** Strike is currently unsupported by prosemirror-markdown */\n\ttoMarkdown: {\n\t\topen: '~~',\n\t\tclose: '~~',\n\t\tmixable: true,\n\t\texpelEnclosingWhitespace: true,\n\t},\n})\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { markInputRule, markPasteRule } from '@tiptap/core'\nimport { Bold, starInputRegex, starPasteRegex } from '@tiptap/extension-bold'\n\nconst Strong = Bold.extend({\n\tname: 'strong',\n\n\taddInputRules() {\n\t\treturn [\n\t\t\tmarkInputRule({\n\t\t\t\tfind: starInputRegex,\n\t\t\t\ttype: this.type,\n\t\t\t}),\n\t\t]\n\t},\n\n\taddPasteRules() {\n\t\treturn [\n\t\t\tmarkPasteRule({\n\t\t\t\tfind: starPasteRegex,\n\t\t\t\ttype: this.type,\n\t\t\t}),\n\t\t]\n\t},\n})\n\nexport default Strong\n","/*\n * @copyright Copyright (c) 2022 Max \n *\n * @author Max \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport TipTapUnderline from '@tiptap/extension-underline'\nimport { markInputRule, markPasteRule } from '@tiptap/core'\nimport { underscoreInputRegex, underscorePasteRegex } from '@tiptap/extension-bold'\n\nconst Underline = TipTapUnderline.extend({\n\n\tparseHTML() {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttag: 'u',\n\t\t\t},\n\t\t\t{\n\t\t\t\tstyle: 'text-decoration',\n\t\t\t\tgetAttrs: value => value === 'underline',\n\t\t\t},\n\t\t]\n\t},\n\n\trenderHTML() {\n\t\treturn ['u', 0]\n\t},\n\n\ttoMarkdown: {\n\t\topen: '__',\n\t\tclose: '__',\n\t\tmixable: true,\n\t\texpelEnclosingWhitespace: true,\n\t},\n\n\taddInputRules() {\n\t\treturn [\n\t\t\tmarkInputRule({\n\t\t\t\tfind: underscoreInputRegex,\n\t\t\t\ttype: this.type,\n\t\t\t}),\n\t\t]\n\t},\n\n\taddPasteRules() {\n\t\treturn [\n\t\t\tmarkPasteRule({\n\t\t\t\tfind: underscorePasteRegex,\n\t\t\t\ttype: this.type,\n\t\t\t}),\n\t\t]\n\t},\n\n})\n\nexport default Underline\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport TipTapItalic from '@tiptap/extension-italic'\nimport Link from './Link.js'\nimport Strike from './Strike.js'\nimport Strong from './Strong.js'\nimport Underline from './Underline.js'\n\nconst Italic = TipTapItalic.extend({\n\tname: 'em',\n})\n\nexport {\n\tStrong,\n\tItalic,\n\tStrike,\n\tLink,\n\tUnderline,\n}\n","\n\n\n\t\n\t\t\n\t\t\t showIcons = false\"\n\t\t\t\tclass=\"image__view\"\n\t\t\t\t@click=\"showIcons = true\"\n\t\t\t\t@mouseover=\"showIcons = true\"\n\t\t\t\t@mouseleave=\"showIcons = false\">\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{{ alt }}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t \n\t\t\t\n\t\t\n\t \n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=style&index=0&id=37a183c4&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=style&index=0&id=37a183c4&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ImageView.vue?vue&type=template&id=37a183c4&scoped=true&\"\nimport script from \"./ImageView.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ImageView.vue?vue&type=style&index=0&id=37a183c4&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"37a183c4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('NodeViewWrapper',[_c('div',{staticClass:\"image\",class:{'icon-loading': !_vm.loaded},attrs:{\"data-component\":\"image-view\",\"data-src\":_vm.src}},[(_vm.imageLoaded && _vm.isSupportedImage)?_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(function () { return _vm.showIcons = false; }),expression:\"() => showIcons = false\"}],staticClass:\"image__view\",on:{\"click\":function($event){_vm.showIcons = true},\"mouseover\":function($event){_vm.showIcons = true},\"mouseleave\":function($event){_vm.showIcons = false}}},[_c('transition',{attrs:{\"name\":\"fade\"}},[_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loaded),expression:\"loaded\"}],staticClass:\"image__main\",attrs:{\"src\":_vm.imageUrl},on:{\"load\":_vm.onLoaded}})]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loaded),expression:\"loaded\"}],staticClass:\"image__caption\"},[_c('input',{ref:\"altInput\",attrs:{\"type\":\"text\"},domProps:{\"value\":_vm.alt},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.updateAlt()}}}),_vm._v(\" \"),(_vm.editor.isEditable && _vm.showIcons)?_c('div',{staticClass:\"trash-icon\",attrs:{\"title\":\"Delete this image\"},on:{\"click\":_vm.deleteNode}},[_c('TrashCanIcon')],1):_vm._e()])])],1):_c('div',[_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loaded),expression:\"loaded\"}]},[_c('a',{attrs:{\"href\":_vm.internalLinkOrImage,\"target\":\"_blank\"}},[(!_vm.isSupportedImage)?_c('span',[_vm._v(_vm._s(_vm.alt))]):_vm._e()])])]),_vm._v(\" \"),(_vm.isSupportedImage)?_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loaded),expression:\"loaded\"}],staticClass:\"image__caption\"},[_c('input',{ref:\"altInput\",attrs:{\"type\":\"text\"},domProps:{\"value\":_vm.alt},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.updateAlt()}}})])]):_vm._e()],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport TiptapImage from '@tiptap/extension-image'\nimport { Plugin } from 'prosemirror-state'\nimport ImageView from './ImageView.vue'\nimport { VueNodeViewRenderer } from '@tiptap/vue-2'\n\nconst Image = TiptapImage.extend({\n\n\tselectable: false,\n\n\trenderHTML() {\n\t\t// Avoid the prosemirror node creation to trigger image loading as we use a custom node view anyways\n\t\t// Otherwise it would attempt to load the image from the current location before the node view is even initialized\n\t\treturn ['img']\n\t},\n\n\taddOptions() {\n\t\treturn {\n\t\t\t...this.parent?.(),\n\t\t\tcurrentDirectory: undefined,\n\t\t}\n\t},\n\n\taddNodeView() {\n\t\treturn VueNodeViewRenderer(ImageView)\n\t},\n\n\taddProseMirrorPlugins() {\n\t\treturn [\n\t\t\tnew Plugin({\n\t\t\t\tprops: {\n\t\t\t\t\thandleDrop: (view, event, slice) => {\n\t\t\t\t\t\t// only catch the drop if it contains files\n\t\t\t\t\t\tif (event.dataTransfer.files && event.dataTransfer.files.length > 0) {\n\t\t\t\t\t\t\tconst coordinates = view.posAtCoords({ left: event.clientX, top: event.clientY })\n\t\t\t\t\t\t\tconst customEvent = new CustomEvent('image-drop', {\n\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\t\tfiles: event.dataTransfer.files,\n\t\t\t\t\t\t\t\t\tposition: coordinates.pos,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tevent.target.dispatchEvent(customEvent)\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\thandlePaste: (view, event, slice) => {\n\t\t\t\t\t\t// only catch the paste if it contains files\n\t\t\t\t\t\tif (event.clipboardData.files && event.clipboardData.files.length > 0) {\n\t\t\t\t\t\t\t// let the editor wrapper catch this custom event\n\t\t\t\t\t\t\tconst customEvent = new CustomEvent('image-paste', {\n\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\t\tfiles: event.clipboardData.files,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tevent.target.dispatchEvent(customEvent)\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t]\n\t},\n\n})\n\nexport default Image\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { Node } from '@tiptap/core'\n\nexport default Node.create({\n\tname: 'doc',\n\tcontent: 'block',\n\taddKeyboardShortcuts() {\n\t\treturn {\n\t\t\tTab: () => this.editor.commands.insertContent('\\t'),\n\t\t}\n\t},\n\n})\n","/*\n * @copyright Copyright (c) 2020 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport TiptapBulletList from '@tiptap/extension-bullet-list'\nimport { listInputRule } from '../commands/index.js'\n\n/* We want to allow for `* [ ]` as an input rule for bullet lists.\n * Therefore the list input rules need to check the input\n * until the first char after the space.\n * Only there we know the user is not trying to create a task list.\n */\nconst BulletList = TiptapBulletList.extend({\n\n\taddInputRules() {\n\t\treturn [\n\t\t\tlistInputRule(\n\t\t\t\t/^\\s*([-+*])\\s([^\\s[]+)$/,\n\t\t\t\tthis.type\n\t\t\t),\n\t\t]\n\t},\n\n})\n\nexport default BulletList\n","/*\n * @copyright Copyright (c) 2021 Jonas Meurer \n *\n * @author Jonas Meurer \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { InputRule, wrappingInputRule } from '@tiptap/core'\n\n/**\n * Wrapping input handler that will append the content of the last match\n *\n * @param {RegExp} find find param for the wrapping input rule\n * @param {object} type Node Type object\n * @param {*} getAttributes handler to get the attributes\n */\nexport default function(find, type, getAttributes) {\n\tconst handler = ({ state, range, match }) => {\n\t\tconst wrap = wrappingInputRule({ find, type, getAttributes })\n\t\twrap.handler({ state, range, match })\n\t\t// Insert the first character after bullet if there is one\n\t\tif (match.length >= 3) {\n\t\t\tstate.tr.insertText(match[2])\n\t\t}\n\t}\n\treturn new InputRule({ find, handler })\n}\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport TipTapTaskItem from '@tiptap/extension-task-item'\nimport { wrappingInputRule, mergeAttributes } from '@tiptap/core'\nimport { Plugin } from 'prosemirror-state'\nimport { findParentNodeClosestToPos } from 'prosemirror-utils'\n\nconst TaskItem = TipTapTaskItem.extend({\n\n\taddOptions() {\n\t\treturn {\n\t\t\tnested: true,\n\t\t\tHTMLAttributes: {},\n\t\t}\n\t},\n\n\tdraggable: false,\n\n\tcontent: 'paragraph block*',\n\n\taddAttributes() {\n\t\tconst adjust = { ...this.parent() }\n\t\tadjust.checked.parseHTML = el => {\n\t\t\treturn el.querySelector('input[type=checkbox]')?.checked\n\t\t}\n\t\treturn adjust\n\t},\n\n\tparseHTML: [\n\t\t{\n\t\t\tpriority: 101,\n\t\t\ttag: 'li',\n\t\t\tgetAttrs: el => {\n\t\t\t\tconst checkbox = el.querySelector('input[type=checkbox]')\n\t\t\t\treturn checkbox\n\t\t\t},\n\t\t\tcontext: 'taskList/',\n\t\t},\n\t],\n\n\trenderHTML({ node, HTMLAttributes }) {\n\t\tconst listAttributes = { class: 'checkbox-item' }\n\t\tconst checkboxAttributes = { type: 'checkbox', class: '', contenteditable: false }\n\t\tif (node.attrs.checked) {\n\t\t\tcheckboxAttributes.checked = true\n\t\t\tlistAttributes.class += ' checked'\n\t\t}\n\t\treturn [\n\t\t\t'li',\n\t\t\tmergeAttributes(HTMLAttributes, listAttributes),\n\t\t\t[\n\t\t\t\t'input',\n\t\t\t\tcheckboxAttributes,\n\t\t\t],\n\t\t\t[\n\t\t\t\t'label',\n\t\t\t\t0,\n\t\t\t],\n\t\t]\n\t},\n\n\t// overwrite the parent node view so renderHTML gets used\n\taddNodeView: false,\n\n\ttoMarkdown: (state, node) => {\n\t\tstate.write(`[${node.attrs.checked ? 'x' : ' '}] `)\n\t\tstate.renderContent(node)\n\t},\n\n\t addInputRules() {\n\t\treturn [\n\t\t\t...this.parent(),\n\t\t\twrappingInputRule({\n\t\t\t\tfind: /^\\s*([-+*])\\s(\\[(x|X| ?)\\])\\s$/,\n\t\t\t\ttype: this.type,\n\t\t\t\tgetAttributes: match => ({\n\t\t\t\t\tchecked: 'xX'.includes(match[match.length - 1]),\n\t\t\t\t}),\n\t\t\t}),\n\t\t]\n\t},\n\n\taddProseMirrorPlugins() {\n\t\treturn [\n\t\t\tnew Plugin({\n\t\t\t\tprops: {\n\t\t\t\t\thandleClick: (view, pos, event) => {\n\t\t\t\t\t\tconst state = view.state\n\t\t\t\t\t\tconst schema = state.schema\n\n\t\t\t\t\t\tconst coordinates = view.posAtCoords({ left: event.clientX, top: event.clientY })\n\t\t\t\t\t\tconst position = state.doc.resolve(coordinates.pos)\n\t\t\t\t\t\tconst parentList = findParentNodeClosestToPos(position, function(node) {\n\t\t\t\t\t\t\treturn node.type === schema.nodes.taskItem\n\t\t\t\t\t\t\t\t|| node.type === schema.nodes.listItem\n\t\t\t\t\t\t})\n\t\t\t\t\t\tconst isListClicked = event.target.tagName.toLowerCase() === 'li'\n\t\t\t\t\t\tif (!isListClicked\n\t\t\t\t\t\t\t|| !parentList\n\t\t\t\t\t\t\t|| parentList.node.type !== schema.nodes.taskItem) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst tr = state.tr\n\t\t\t\t\t\ttr.setNodeMarkup(parentList.pos, schema.nodes.taskItem, { checked: !parentList.node.attrs.checked })\n\t\t\t\t\t\tview.dispatch(tr)\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t]\n\t},\n\n})\n\nexport default TaskItem\n","/*\n * @copyright Copyright (c) 2020 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport TiptapTaskList from '@tiptap/extension-task-list'\n\nconst TaskList = TiptapTaskList.extend({\n\n\tparseHTML: [\n\t\t{\n\t\t\tpriority: 100,\n\t\t\ttag: 'ul.contains-task-list',\n\t\t},\n\t],\n\n\ttoMarkdown: (state, node) => {\n\t\tstate.renderList(node, ' ', () => (node.attrs.bullet || '*') + ' ')\n\t},\n\n})\n\nexport default TaskList\n","/*\n * @copyright Copyright (c) 2021, überdosis GbR\n *\n * @license MIT\n *\n */\n\nimport { Extension } from '@tiptap/core'\nimport { PluginKey, Plugin } from 'prosemirror-state'\n\n/**\n * @param {object} args Arguments as deconstructable object\n * @param {Array | object} args.types possible types\n * @param {object} args.node node to check\n */\nfunction nodeEqualsType({ types, node }) {\n\treturn (Array.isArray(types) && types.includes(node.type)) || node.type === types\n}\n\n/**\n * Extension based on:\n * - https://github.com/ueberdosis/tiptap/tree/main/demos/src/Experiments/TrailingNode\n * - https://github.com/ueberdosis/tiptap/blob/v1/packages/tiptap-extensions/src/extensions/TrailingNode.js\n * - https://github.com/remirror/remirror/blob/e0f1bec4a1e8073ce8f5500d62193e52321155b9/packages/prosemirror-trailing-node/src/trailing-node-plugin.ts\n */\n\nconst TrailingNode = Extension.create({\n\tname: 'trailingNode',\n\n\taddOptions() {\n\t\treturn {\n\t\t\tnode: 'paragraph',\n\t\t\tnotAfter: ['paragraph'],\n\t\t}\n\t},\n\n\taddProseMirrorPlugins() {\n\t\tconst plugin = new PluginKey(this.name)\n\t\tconst disabledNodes = Object.entries(this.editor.schema.nodes)\n\t\t\t.map(([, value]) => value)\n\t\t\t.filter(node => this.options.notAfter.includes(node.name))\n\n\t\treturn [\n\t\t\tnew Plugin({\n\t\t\t\tkey: plugin,\n\t\t\t\tappendTransaction: (_, __, state) => {\n\t\t\t\t\tconst { doc, tr, schema } = state\n\t\t\t\t\tconst shouldInsertNodeAtEnd = plugin.getState(state)\n\t\t\t\t\tconst endPosition = doc.content.size\n\t\t\t\t\tconst type = schema.nodes[this.options.node]\n\n\t\t\t\t\tif (!shouldInsertNodeAtEnd) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\n\t\t\t\t\treturn tr.insert(endPosition, type.create())\n\t\t\t\t},\n\t\t\t\tstate: {\n\t\t\t\t\tinit: (_, state) => {\n\t\t\t\t\t\tconst lastNode = state.tr.doc.lastChild\n\t\t\t\t\t\treturn !nodeEqualsType({ node: lastNode, types: disabledNodes })\n\t\t\t\t\t},\n\t\t\t\t\tapply: (tr, value) => {\n\t\t\t\t\t\tif (!tr.docChanged) {\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst lastNode = tr.doc.lastChild\n\t\t\t\t\t\treturn !nodeEqualsType({ node: lastNode, types: disabledNodes })\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t]\n\t},\n})\n\nexport default TrailingNode\n","import TipTapHeading from '@tiptap/extension-heading'\n\nconst Heading = TipTapHeading.extend({\n\n\taddKeyboardShortcuts() {\n\t\treturn this.options.levels.reduce((items, level) => ({\n\t\t\t...items,\n\t\t\t[`Mod-Shift-${level}`]: () => this.editor.commands.toggleHeading({ level }),\n\t\t}), {})\n\t},\n\n})\n\nexport default Heading\n","/*\n * @copyright Copyright (c) 2022 Vinicius Reis \n *\n * @author Vinicius Reis \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { Node, mergeAttributes, isNodeActive } from '@tiptap/core'\nimport { typesAvailable } from './../markdownit/callouts.js'\n\nexport default Node.create({\n\n\tname: 'callout',\n\n\tcontent: 'paragraph+',\n\n\tgroup: 'block',\n\n\tdefining: true,\n\n\taddOptions() {\n\t\treturn {\n\t\t\ttypes: typesAvailable,\n\t\t\tHTMLAttributes: {\n\t\t\t\tclass: 'callout',\n\t\t\t},\n\t\t}\n\t},\n\n\taddAttributes() {\n\t\treturn {\n\t\t\ttype: {\n\t\t\t\tdefault: 'info',\n\t\t\t\trendered: false,\n\t\t\t\tparseHTML: element => {\n\t\t\t\t\treturn element.getAttribute('data-callout')\n\t\t\t\t\t\t|| typesAvailable.find((type) => element.classList.contains(type))\n\t\t\t\t\t\t|| (element.classList.contains('warning') && 'warn')\n\t\t\t\t},\n\t\t\t\trenderHTML: attributes => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t'data-callout': attributes.type,\n\t\t\t\t\t\tclass: `callout-${attributes.type}`,\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t},\n\n\tparseHTML() {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttag: 'div.callout',\n\t\t\t},\n\t\t\t{\n\t\t\t\ttag: 'p.callout',\n\t\t\t\tpriority: 1001,\n\t\t\t},\n\t\t]\n\t},\n\n\trenderHTML({ node, HTMLAttributes }) {\n\t\tconst { class: classy } = this.options.HTMLAttributes\n\n\t\tconst attributes = {\n\t\t\t...this.options.HTMLAttributes,\n\t\t\t'data-callout': node.attrs.type,\n\t\t\tclass: `${classy} ${classy}-${node.attrs.type}`,\n\t\t}\n\n\t\treturn ['div', mergeAttributes(attributes, HTMLAttributes), 0]\n\t},\n\n\ttoMarkdown: (state, node) => {\n\t\tstate.write('::: ' + (node.attrs.type || 'info') + '\\n')\n\t\tstate.renderContent(node)\n\t\tstate.ensureNewLine()\n\t\tstate.write(':::')\n\t\tstate.closeBlock(node)\n\t},\n\n\taddCommands() {\n\t\treturn {\n\t\t\tsetCallout: attributes => ({ commands }) => {\n\t\t\t\treturn commands.wrapIn(this.name, attributes)\n\t\t\t},\n\t\t\ttoggleCallout: attributes => ({ commands, state }) => {\n\t\t\t\tif (!isNodeActive(state, this.name)) {\n\t\t\t\t\treturn commands.setCallout(attributes)\n\t\t\t\t}\n\n\t\t\t\tif (!isNodeActive(state, this.name, attributes)) {\n\t\t\t\t\treturn commands.updateAttributes(this.name, attributes)\n\t\t\t\t}\n\n\t\t\t\treturn commands.unsetCallout()\n\t\t\t},\n\t\t\tunsetCallout: () => ({ commands }) => {\n\t\t\t\treturn commands.lift(this.name)\n\t\t\t},\n\t\t}\n\t},\n})\n","\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{{ emojiObject.native }}\n\t\t\t\t\n\t\t\t\t:{{ emojiObject.short_name }}\n\t\t\t\n\t\t\n\t\t\n\t\t\t{{ t('text', 'No emoji found') }}\n\t\t\n\t\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmojiList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmojiList.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmojiList.vue?vue&type=style&index=0&id=5559f1fe&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmojiList.vue?vue&type=style&index=0&id=5559f1fe&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EmojiList.vue?vue&type=template&id=5559f1fe&scoped=true&\"\nimport script from \"./EmojiList.vue?vue&type=script&lang=js&\"\nexport * from \"./EmojiList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EmojiList.vue?vue&type=style&index=0&id=5559f1fe&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5559f1fe\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmojiListWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmojiListWrapper.vue?vue&type=script&lang=js&\"","\n\n\n\t \n\n\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"emoji-list\"},[(_vm.hasResults)?_vm._l((_vm.items),function(emojiObject,index){return _c('div',{key:index,staticClass:\"emoji-list__item\",class:{ 'is-selected': index === _vm.selectedIndex },on:{\"click\":function($event){return _vm.selectItem(index)}}},[_c('span',{staticClass:\"emoji-list__item__emoji\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(emojiObject.native)+\"\\n\\t\\t\\t\")]),_vm._v(\"\\n\\t\\t\\t:\"+_vm._s(emojiObject.short_name)+\"\\n\\t\\t\")])}):_c('div',{staticClass:\"emoji-list__item is-empty\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('text', 'No emoji found'))+\"\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./EmojiListWrapper.vue?vue&type=template&id=51da07cd&\"\nimport script from \"./EmojiListWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./EmojiListWrapper.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('EmojiList',{ref:\"emojiList\",attrs:{\"items\":_vm.items,\"command\":_vm.command}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n*/\n\n/* eslint-disable import/no-named-as-default */\nimport Document from '@tiptap/extension-document'\nimport Paragraph from '@tiptap/extension-paragraph'\nimport Text from '@tiptap/extension-text'\nimport History from '@tiptap/extension-history'\nimport Blockquote from '@tiptap/extension-blockquote'\nimport Placeholder from '@tiptap/extension-placeholder'\nimport OrderedList from '@tiptap/extension-ordered-list'\nimport ListItem from '@tiptap/extension-list-item'\nimport Code from '@tiptap/extension-code'\nimport CodeBlock from '@tiptap/extension-code-block'\nimport CodeBlockLowlight from '@tiptap/extension-code-block-lowlight'\nimport Dropcursor from '@tiptap/extension-dropcursor'\nimport HorizontalRule from '@tiptap/extension-horizontal-rule'\nimport Table from './nodes/Table.js'\nimport TableCell from './nodes/TableCell.js'\nimport TableHeader from './nodes/TableHeader.js'\nimport TableHeadRow from './nodes/TableHeadRow.js'\nimport TableRow from './nodes/TableRow.js'\n/* eslint-enable import/no-named-as-default */\n\nimport { Editor } from '@tiptap/core'\nimport { Strong, Italic, Strike, Link, Underline } from './marks/index.js'\nimport {\n\tImage,\n\tPlainTextDocument,\n\tTrailingNode,\n\tHeading,\n\tBulletList,\n\tTaskList,\n\tTaskItem,\n\tCallout,\n} from './nodes/index.js'\nimport { HardBreak, Markdown, Emoji } from './extensions/index.js'\nimport { translate as t } from '@nextcloud/l10n'\nimport lowlight, { listLanguages, registerLanguage } from 'lowlight/lib/core'\nimport { emojiSearch } from '@nextcloud/vue/dist/Functions/emoji'\nimport { VueRenderer } from '@tiptap/vue-2'\nimport EmojiListWrapper from './components/EmojiListWrapper.vue'\nimport tippy from 'tippy.js'\n\nimport 'proxy-polyfill'\n\nconst loadSyntaxHighlight = async (language) => {\n\tconst list = listLanguages()\n\tconsole.info(list)\n\tif (!listLanguages().includes(language)) {\n\t\ttry {\n\t\t\tconst syntax = await import(/* webpackChunkName: \"highlight/[request]\" */'highlight.js/lib/languages/' + language)\n\t\t\tregisterLanguage(language, syntax.default)\n\t\t} catch (e) {\n\t\t\t// No matching highlighing found, fallback to none\n\t\t\tconsole.debug(e)\n\t\t}\n\t}\n}\n\nconst createEditor = ({ content, onCreate, onUpdate, extensions, enableRichEditing, currentDirectory }) => {\n\tlet richEditingExtensions = []\n\tif (enableRichEditing) {\n\t\trichEditingExtensions = [\n\t\t\tMarkdown,\n\t\t\tDocument,\n\t\t\tParagraph,\n\t\t\tHardBreak,\n\t\t\tHeading,\n\t\t\tStrong,\n\t\t\tItalic,\n\t\t\tStrike,\n\t\t\tLink.configure({ openOnClick: true }),\n\t\t\tBlockquote,\n\t\t\tCode,\n\t\t\tCodeBlock,\n\t\t\tBulletList,\n\t\t\tHorizontalRule,\n\t\t\tOrderedList,\n\t\t\tListItem,\n\t\t\tTable,\n\t\t\tTableCell,\n\t\t\tTableHeader,\n\t\t\tTableHeadRow,\n\t\t\tTableRow,\n\t\t\tTaskList,\n\t\t\tTaskItem,\n\t\t\tCallout,\n\t\t\tUnderline,\n\t\t\tImage.configure({ currentDirectory, inline: true }),\n\t\t\tEmoji.configure({\n\t\t\t\tsuggestion: {\n\t\t\t\t\titems: ({ query }) => {\n\t\t\t\t\t\treturn emojiSearch(query)\n\t\t\t\t\t},\n\t\t\t\t\trender: () => {\n\t\t\t\t\t\tlet component\n\t\t\t\t\t\tlet popup\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tonStart: props => {\n\t\t\t\t\t\t\t\tcomponent = new VueRenderer(EmojiListWrapper, {\n\t\t\t\t\t\t\t\t\tparent: this,\n\t\t\t\t\t\t\t\t\tpropsData: props,\n\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\tpopup = tippy('body', {\n\t\t\t\t\t\t\t\t\tgetReferenceClientRect: props.clientRect,\n\t\t\t\t\t\t\t\t\tappendTo: () => document.body,\n\t\t\t\t\t\t\t\t\tcontent: component.element,\n\t\t\t\t\t\t\t\t\tshowOnCreate: true,\n\t\t\t\t\t\t\t\t\tinteractive: true,\n\t\t\t\t\t\t\t\t\ttrigger: 'manual',\n\t\t\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\tonUpdate(props) {\n\t\t\t\t\t\t\t\tcomponent.updateProps(props)\n\t\t\t\t\t\t\t\tpopup[0].setProps({\n\t\t\t\t\t\t\t\t\tgetReferenceClientRect: props.clientRect,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\tonKeyDown(props) {\n\t\t\t\t\t\t\t\tif (props.event.key === 'Escape') {\n\t\t\t\t\t\t\t\t\tcomponent.destroy()\n\t\t\t\t\t\t\t\t\tpopup[0].destroy()\n\t\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn component.ref?.onKeyDown(props)\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\tonExit() {\n\t\t\t\t\t\t\t\tpopup[0].destroy()\n\t\t\t\t\t\t\t\tcomponent.destroy()\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t\tPlaceholder.configure({\n\t\t\t\temptyNodeClass: 'is-empty',\n\t\t\t\tplaceholder: t('text', 'Add notes, lists or links …'),\n\t\t\t\tshowOnlyWhenEditable: true,\n\t\t\t}),\n\t\t\tDropcursor,\n\t\t\tTrailingNode,\n\t\t]\n\t} else {\n\t\trichEditingExtensions = [\n\t\t\tPlainTextDocument,\n\t\t\tCodeBlockLowlight.configure({ lowlight }),\n\t\t]\n\t}\n\textensions = extensions || []\n\treturn new Editor({\n\t\tcontent: content + '',\n\t\tonCreate,\n\t\tonUpdate,\n\t\textensions: [\n\t\t\tText,\n\t\t\tHistory,\n\t\t\t...richEditingExtensions,\n\t\t].concat(extensions),\n\t})\n}\n\nconst SerializeException = function(message) {\n\tthis.message = message\n}\n\nconst serializePlainText = (tiptap) => {\n\tconst doc = tiptap.getJSON()\n\n\tif (doc.content.length !== 1 || typeof doc.content[0].content === 'undefined' || doc.content[0].content.length !== 1) {\n\t\tif (doc.content[0].type === 'codeBlock' && typeof doc.content[0].content === 'undefined') {\n\t\t\treturn ''\n\t\t}\n\t\tthrow new SerializeException('Failed to serialize document to plain text')\n\t}\n\tconst codeBlock = doc.content[0].content[0]\n\tif (codeBlock.type !== 'text') {\n\t\tthrow new SerializeException('Failed to serialize document to plain text')\n\t}\n\treturn codeBlock.text\n}\n\nexport default createEditor\nexport { createEditor, serializePlainText, loadSyntaxHighlight }\n","export const EDITOR = Symbol('tiptap:editor')\nexport const SYNC_SERVICE = Symbol('sync:service')\n\nexport const useEditorMixin = {\n\tinject: {\n\t\t$editor: { from: EDITOR, default: null },\n\t},\n}\nexport const useSyncServiceMixin = {\n\tinject: {\n\t\t$syncService: { from: SYNC_SERVICE, default: null },\n\t},\n}\n","/*\n * @copyright Copyright (c) 2022 Max \n *\n * @author Max \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n/*\n * Tiptap extension to ease customize the serialization to markdown\n *\n * Most markdown serialization can be handled by `prosemirror-markdown`.\n * In order to make it easier to add custom markdown rendering\n * this extension will extend the prosemirror schema for nodes and marks\n * with a `toMarkdown` specification if that is defined in a tiptap extension.\n *\n * For nodes `toMarkown` should be function\n * that take a serializer state and such a node, and serializes the node.\n *\n * For marks `toMarkdown` is an object with open and close properties,\n * which hold the strings that should appear before and after.\n *\n * For more details see\n * https://github.com/ProseMirror/prosemirror-markdown#class-markdownserializer\n */\n\nimport { Extension, getExtensionField } from '@tiptap/core'\nimport { MarkdownSerializer, defaultMarkdownSerializer } from 'prosemirror-markdown'\n\nconst Markdown = Extension.create({\n\n\tname: 'markdown',\n\n\textendMarkSchema(extension) {\n\t\tconst context = {\n\t\t\tname: extension.name,\n\t\t\toptions: extension.options,\n\t\t\tstorage: extension.storage,\n\t\t}\n\t\treturn {\n\t\t\ttoMarkdown: getExtensionField(extension, 'toMarkdown', context),\n\t\t}\n\t},\n\n\textendNodeSchema(extension) {\n\t\tconst context = {\n\t\t\tname: extension.name,\n\t\t\toptions: extension.options,\n\t\t\tstorage: extension.storage,\n\t\t}\n\t\treturn {\n\t\t\ttoMarkdown: getExtensionField(extension, 'toMarkdown', context),\n\t\t}\n\t},\n\n})\n\nconst createMarkdownSerializer = ({ nodes, marks }) => {\n\tconst defaultNodes = convertNames(defaultMarkdownSerializer.nodes)\n\tconst defaultMarks = convertNames(defaultMarkdownSerializer.marks)\n\treturn {\n\t\tserializer: new MarkdownSerializer(\n\t\t\t{ ...defaultNodes, ...extractToMarkdown(nodes) },\n\t\t\t{ ...defaultMarks, ...extractToMarkdown(marks) }\n\t\t),\n\t\tserialize(content, options) {\n\t\t\treturn this.serializer.serialize(content, { ...options, tightLists: true })\n\t\t\t\t.split('\\\\[').join('[')\n\t\t\t\t.split('\\\\]').join(']')\n\t\t},\n\t}\n}\n\nconst extractToMarkdown = (nodesOrMarks) => {\n\treturn Object\n\t\t.entries(nodesOrMarks)\n\t\t.map(([name, nodeOrMark]) => [name, nodeOrMark.spec.toMarkdown])\n\t\t.filter(([, toMarkdown]) => toMarkdown)\n\t\t.reduce((items, [name, toMarkdown]) => ({\n\t\t\t...items,\n\t\t\t[name]: toMarkdown,\n\t\t}), {})\n}\n\nconst convertNames = (object) => {\n\tconst convert = (name) => {\n\t\treturn name.replace(/_(\\w)/g, (_m, letter) => letter.toUpperCase())\n\t}\n\treturn Object.fromEntries(\n\t\tObject.entries(object)\n\t\t\t.map(([name, value]) => [convert(name), value])\n\t)\n}\n\nexport { createMarkdownSerializer }\nexport default Markdown\n","/*\n * @copyright Copyright (c) 2021 Jonas \n *\n * @author Jonas \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { Node } from '@tiptap/core'\nimport { PluginKey } from 'prosemirror-state'\n// eslint-disable-next-line import/no-named-as-default\nimport Suggestion from '@tiptap/suggestion'\n\nexport const EmojiPluginKey = new PluginKey('emoji')\n\nconst Emoji = Node.create({\n\tname: 'emoji',\n\n\taddOptions() {\n\t\treturn {\n\t\t\tHTMLAttributes: {},\n\t\t\tsuggestion: {\n\t\t\t\tchar: ':',\n\t\t\t\tallowedPrefixes: [' '],\n\t\t\t\tpluginKey: EmojiPluginKey,\n\t\t\t\tcommand: ({ editor, range, props }) => {\n\t\t\t\t\teditor\n\t\t\t\t\t\t.chain()\n\t\t\t\t\t\t.focus()\n\t\t\t\t\t\t.insertContentAt(range, props.native + ' ')\n\t\t\t\t\t\t.run()\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t},\n\n\tcontent: 'text*',\n\n\taddCommands() {\n\t\treturn {\n\t\t\temoji: (emojiObject) => ({ commands }) => {\n\t\t\t\treturn commands.insertContent(emojiObject.native + ' ')\n\t\t\t},\n\t\t}\n\t},\n\n\taddProseMirrorPlugins() {\n\t\treturn [\n\t\t\tSuggestion({\n\t\t\t\teditor: this.editor,\n\t\t\t\t...this.options.suggestion,\n\t\t\t}),\n\t\t]\n\t},\n})\n\nexport default Emoji\n","/*\n * @copyright Copyright (c) 2022 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n*/\n\nimport TipTapHardBreak from '@tiptap/extension-hard-break'\n\nconst HardBreak = TipTapHardBreak.extend({\n\n\ttoMarkdown(state, node, parent, index) {\n\t\tfor (let i = index + 1; i < parent.childCount; i++) {\n\t\t\tif (parent.child(i).type !== node.type) {\n\t\t\t\tstate.write(' \\n')\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t},\n})\n\nexport default HardBreak\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { Extension } from '@tiptap/core'\nimport { Plugin } from 'prosemirror-state'\n\nconst Keymap = Extension.create({\n\n\tname: 'customkeymap',\n\n\taddKeyboardShortcuts() {\n\t\treturn this.options\n\t},\n\n\taddProseMirrorPlugins() {\n\t\treturn [\n\t\t\tnew Plugin({\n\t\t\t\tprops: {\n\t\t\t\t\thandleKeyDown(view, event) {\n\t\t\t\t\t\tconst key = event.key || event.keyCode\n\t\t\t\t\t\tif ((event.ctrlKey || event.metaKey) && !event.shiftKey && (key === 'f' || key === 70)) {\n\t\t\t\t\t\t\t// We need to stop propagation and dispatch the event on the window\n\t\t\t\t\t\t\t// in order to force triggering the browser native search in the text editor\n\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\twindow.dispatchEvent(event)\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t]\n\t},\n\n})\n\nexport default Keymap\n","/*\n * @copyright Copyright (c) 2020 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nexport class Span {\n\n\tconstructor(from, to, author) {\n\t\tthis.from = from\n\t\tthis.to = to\n\t\tthis.author = author\n\t}\n\n}\n","/*\n * @copyright Copyright (c) 2021 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { Span } from './models.js'\n\n/*\n * This code is heavily inspired by the change tracking example of prosemirror\n * https://github.com/ProseMirror/website/blob/master/example/track/index.js\n */\n\n/**\n * @param {Array} map List of document ranges and corresponding authors\n * @param {object} transform ProseMirror transform object\n * @param {Array} clientIDs List of client IDs\n */\nfunction updateBlameMap(map, transform, clientIDs) {\n\tconst result = []\n\tconst mapping = transform.mapping\n\tfor (let i = 0; i < map.length; i++) {\n\t\tconst span = map[i]\n\t\tconst from = mapping.map(span.from, 1)\n\t\tconst to = mapping.map(span.to, -1)\n\t\tif (from < to) result.push(new Span(from, to, span.author))\n\t}\n\n\tfor (let i = 0; i < mapping.maps.length; i++) {\n\t\tconst map = mapping.maps[i]; const after = mapping.slice(i + 1)\n\t\tmap.forEach((_s, _e, start, end) => {\n\t\t\tinsertIntoBlameMap(result, after.map(start, 1), after.map(end, -1), clientIDs[i])\n\t\t})\n\t}\n\n\treturn result\n}\n\n/**\n * @param {Array} map List of document ranges and corresponding authors\n * @param {number} from The lower bound of the selection's main range\n * @param {number} to The upper bound of the selection's main range\n * @param {number} author ClientID of the author\n */\nfunction insertIntoBlameMap(map, from, to, author) {\n\tif (from >= to) {\n\t\treturn\n\t}\n\tlet pos = 0\n\tlet next\n\tfor (; pos < map.length; pos++) {\n\t\tnext = map[pos]\n\t\tif (next.author === author) {\n\t\t\tif (next.to >= from) break\n\t\t} else if (next.to > from) { // Different author, not before\n\t\t\tif (next.from < from) { // Sticks out to the left (loop below will handle right side)\n\t\t\t\tconst left = new Span(next.from, from, next.author)\n\t\t\t\tif (next.to > to) map.splice(pos++, 0, left)\n\t\t\t\telse map[pos++] = left\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// eslint-ignore\n\twhile ((next = map[pos])) {\n\t\tif (next.author === author) {\n\t\t\tif (next.from > to) break\n\t\t\tfrom = Math.min(from, next.from)\n\t\t\tto = Math.max(to, next.to)\n\t\t\tmap.splice(pos, 1)\n\t\t} else {\n\t\t\tif (next.from >= to) break\n\t\t\tif (next.to > to) {\n\t\t\t\tmap[pos] = new Span(to, next.to, next.author)\n\t\t\t\tbreak\n\t\t\t} else {\n\t\t\t\tmap.splice(pos, 1)\n\t\t\t}\n\t\t}\n\t}\n\n\tmap.splice(pos, 0, new Span(from, to, author))\n}\n\nexport default class TrackState {\n\n\tconstructor(blameMap) {\n\t\t// The blame map is a data structure that lists a sequence of\n\t\t// document ranges, along with the author that inserted them. This\n\t\t// can be used to, for example, highlight the part of the document\n\t\t// that was inserted by a author.\n\t\tthis.blameMap = blameMap\n\t}\n\n\t// Apply a transform to this state\n\tapplyTransform(transform) {\n\t\tconst clientID = transform.getMeta('clientID') ?? transform.steps.map(item => 'self')\n\t\tconst newBlame = updateBlameMap(this.blameMap, transform, clientID)\n\t\t// Create a new state—since these are part of the editor state, a\n\t\t// persistent data structure, they must not be mutated.\n\t\treturn new TrackState(newBlame)\n\t}\n\n}\n","/*\n * @copyright Copyright (c) 2020 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { Extension } from '@tiptap/core'\nimport { Plugin } from 'prosemirror-state'\nimport { Decoration, DecorationSet } from 'prosemirror-view'\nimport TrackState from './tracking/TrackState.js'\nimport { Span } from './tracking/models.js'\n\nconst UserColor = Extension.create({\n\n\tname: 'users',\n\n\taddOptions() {\n\t\treturn {\n\t\t\tclientID: 0,\n\t\t\tcolor: (clientID) => {\n\t\t\t\treturn '#' + Math.floor((Math.abs(Math.sin(clientID) * 16777215)) % 16777215).toString(16) + 'aa'\n\t\t\t},\n\t\t\tname: (clientID) => {\n\t\t\t\treturn 'Unknown user ' + clientID\n\t\t\t},\n\t\t}\n\t},\n\n\taddProseMirrorPlugins() {\n\t\tlet viewReference = null\n\t\treturn [\n\t\t\tnew Plugin({\n\t\t\t\tclientID: this.options.clientID,\n\t\t\t\tcolor: this.options.color,\n\t\t\t\tname: this.options.name,\n\t\t\t\tview: (editorView) => {\n\t\t\t\t\tviewReference = editorView\n\t\t\t\t\treturn {}\n\t\t\t\t},\n\t\t\t\tstate: {\n\t\t\t\t\tinit(_, instance) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttracked: new TrackState([new Span(0, instance.doc.content.size, null)], [], [], []),\n\t\t\t\t\t\t\tdeco: DecorationSet.empty,\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tapply(tr, instance, oldState, state) {\n\t\t\t\t\t\tlet { tracked, decos } = instance\n\t\t\t\t\t\tlet tState = this.getState(oldState).tracked\n\t\t\t\t\t\tif (tr.docChanged) {\n\t\t\t\t\t\t\tif (!tr.getMeta('clientID')) {\n\t\t\t\t\t\t\t\t// we have an undefined client id for own transactions\n\t\t\t\t\t\t\t\ttr.setMeta('clientID', tr.steps.map(i => this.spec.clientID))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Don't apply transaction when in composition (Github issue #2871)\n\t\t\t\t\t\t\tif (!viewReference.composing) {\n\t\t\t\t\t\t\t\ttracked = tracked.applyTransform(tr)\n\t\t\t\t\t\t\t\ttState = tracked\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdecos = tState.blameMap\n\t\t\t\t\t\t\t.map(span => {\n\t\t\t\t\t\t\t\tconst clientID = span.author\n\t\t\t\t\t\t\t\treturn Decoration.inline(span.from, span.to, {\n\t\t\t\t\t\t\t\t\tclass: 'author-annotation',\n\t\t\t\t\t\t\t\t\tstyle: 'background-color: ' + this.spec.color(clientID) + '66;',\n\t\t\t\t\t\t\t\t\ttitle: this.spec.name(clientID),\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}).filter(dec => dec !== null)\n\t\t\t\t\t\treturn { tracked, deco: DecorationSet.create(state.doc, decos) }\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tprops: {\n\t\t\t\t\tdecorations(state) {\n\t\t\t\t\t\treturn this.getState(state).deco\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t]\n\t},\n\n})\n\nexport default UserColor\n","import { Extension } from '@tiptap/core'\nimport { Step } from 'prosemirror-transform'\nimport {\n\tcollab,\n\tsendableSteps,\n\tgetVersion,\n\treceiveTransaction,\n} from 'prosemirror-collab'\n\nlet timeout\nconst debounce = (fn, delay) => (...args) => {\n\tif (timeout) {\n\t\tclearTimeout(timeout)\n\t}\n\ttimeout = setTimeout(() => {\n\t\tfn(...args)\n\t\ttimeout = null\n\t}, delay)\n}\n\nconst Collaboration = Extension.create({\n\tname: 'collaboration',\n\tonCreate() {\n\t\tthis.getSendableSteps = debounce(state => {\n\t\t\tconst sendable = sendableSteps(state)\n\n\t\t\tif (sendable && this.editor.options.editable) {\n\t\t\t\tthis.options.onSendable({\n\t\t\t\t\teditor: this.editor,\n\t\t\t\t\tsendable: {\n\t\t\t\t\t\tversion: sendable.version,\n\t\t\t\t\t\tsteps: sendable.steps.map(step => step.toJSON()),\n\t\t\t\t\t\tclientID: sendable.clientID,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}, this.options.debounce)\n\n\t\tthis.editor.on('transaction', ({ editor }) => {\n\t\t\tthis.getSendableSteps(editor.state)\n\t\t})\n\t},\n\n\taddOptions() {\n\t\treturn {\n\t\t\tversion: 0,\n\t\t\tclientID: Math.floor(Math.random() * 0xFFFFFFFF),\n\t\t\tdebounce: 250,\n\t\t\tonSendable: () => { },\n\t\t\tupdate: ({ steps, version }) => {\n\t\t\t\tconst { state, view, schema } = this.editor\n\n\t\t\t\tif (getVersion(state) > version) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tview.dispatch(receiveTransaction(\n\t\t\t\t\tstate,\n\t\t\t\t\tsteps.map(item => Step.fromJSON(schema, item.step)),\n\t\t\t\t\tsteps.map(item => item.clientID),\n\t\t\t\t))\n\t\t\t},\n\t\t}\n\t},\n\n\taddProseMirrorPlugins() {\n\t\treturn [\n\t\t\tcollab({\n\t\t\t\tversion: this.options.version,\n\t\t\t\tclientID: this.options.clientID,\n\t\t\t}),\n\t\t]\n\t},\n\n})\n\nexport default Collaboration\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n/**\n * Callback that should be executed after the document is ready\n *\n * @param callback\n */\nimport { generateUrl } from '@nextcloud/router'\n\nconst documentReady = function(callback) {\n\tconst fn = () => setTimeout(callback, 0)\n\tif (document.attachEvent ? document.readyState === 'complete' : document.readyState !== 'loading') {\n\t\tfn()\n\t} else {\n\t\tdocument.addEventListener('DOMContentLoaded', callback)\n\t}\n}\n\nconst _baseUrl = generateUrl('/apps/text')\nconst endpointUrl = (endpoint, isPublic = false) => {\n\tif (isPublic) {\n\t\treturn `${_baseUrl}/public/${endpoint}`\n\t}\n\treturn `${_baseUrl}/${endpoint}`\n}\n\nconst randomGuestNames = ['Artichoke', 'Arugula', 'Asparagus', 'Avocado', 'Bamboo Shoot', 'Bean Sprout', 'Bean', 'Beet', 'Belgian Endive', 'Bell Pepper', 'Bitter Melon', 'Bitter Gourd', 'Bok Choy', 'Broccoli', 'Brussels Sprout', 'Burdock Root', 'Cabbage', 'Calabash', 'Caper', 'Carrot', 'Cassava', 'Cauliflower', 'Celery', 'Celery Root', 'Celtuce', 'Chayote', 'Chinese Broccoli', 'Corn', 'Baby Corn', 'Cucumber', 'English Cucumber', 'Gherkin', 'Pickling Cucumber', 'Daikon Radish', 'Edamame', 'Eggplant', 'Elephant Garlic', 'Endive', 'Curly', 'Escarole', 'Fennel', 'Fiddlehead', 'Galangal', 'Garlic', 'Ginger', 'Grape Leave', 'Green Bean', 'Wax Bean', 'Green', 'Amaranth Leave', 'Beet Green', 'Collard Green', 'Dandelion Green', 'Kale', 'Kohlrabi Green', 'Mustard Green', 'Rapini', 'Spinach', 'Swiss Chard', 'Turnip Green', 'Hearts of Palm', 'Horseradish', 'Jerusalem Artichoke', 'Jícama', 'Kale', 'Curly', 'Lacinato', 'Ornamental', 'Kohlrabi', 'Leeks', 'Lemongrass', 'Lettuce', 'Butterhead', 'Iceberg', 'Leaf', 'Romaine', 'Lotus Root', 'Lotus Seed', 'Mushroom', 'Napa Cabbage', 'Nopales', 'Okra', 'Olive', 'Onion', 'Green Onion', 'Parsley', 'Parsley Root', 'Parsnip', 'Pepper', 'Plantain', 'Potato', 'Pumpkin', 'Purslane', 'Radicchio', 'Radish', 'Rutabaga', 'Shallots', 'Spinach', 'Squash', 'Sweet Potato', 'Swiss Chard', 'Taro', 'Tomatillo', 'Tomato', 'Turnip', 'Water Chestnut', 'Water Spinach', 'Watercress', 'Winter Melon', 'Yams', 'Zucchini']\nconst getRandomGuestName = () => {\n\treturn randomGuestNames[Math.floor(Math.random() * randomGuestNames.length)]\n}\n\nexport {\n\tdocumentReady,\n\tendpointUrl,\n\tgetRandomGuestName,\n}\n","/*\n * @copyright Copyright (c) 2022 Vinicius Reis \n *\n * @author Vinicius Reis \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport container from 'markdown-it-container'\n\nexport const typesAvailable = ['info', 'warn', 'error', 'success']\n\nconst buildRender = type => (tokens, idx, options, env, slf) => {\n\tconst tag = tokens[idx]\n\n\t// add attributes to the opening tag\n\tif (tag.nesting === 1) {\n\t\ttag.attrSet('data-callout', type)\n\t\ttag.attrJoin('class', `callout callout-${type}`)\n\t}\n\n\treturn slf.renderToken(tokens, idx, options, env, slf)\n}\n\n/**\n * @param {object} md Markdown object\n */\nexport default (md) => {\n\t// create a custom container to each callout type\n\ttypesAvailable.forEach(type => {\n\t\tmd.use(container, type, {\n\t\t\trender: buildRender(type),\n\t\t})\n\t})\n\n\treturn md\n}\n","import MarkdownIt from 'markdown-it'\nimport taskLists from 'markdown-it-task-lists'\nimport underline from './underline.js'\nimport splitMixedLists from './splitMixedLists.js'\nimport callouts from './callouts.js'\n\nconst markdownit = MarkdownIt('commonmark', { html: false, breaks: false })\n\t.enable('strikethrough')\n\t.enable('table')\n\t.use(taskLists, { enable: true, labelAfter: true })\n\t.use(splitMixedLists)\n\t.use(underline)\n\t.use(callouts)\n\nexport default markdownit\n","/*\n * @copyright Copyright (c) 2022 Max \n *\n * @author Max \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n/**\n * @param {object} md Markdown object\n */\nexport default function splitMixedLists(md) {\n\tmd.core.ruler.after('github-task-lists', 'split-mixed-task-lists', state => {\n\t\tconst tokens = state.tokens\n\n\t\tfor (let i = 0; i < tokens.length; i++) {\n\t\t\tconst token = tokens[i]\n\t\t\tif (token.attrGet('class') !== 'contains-task-list') {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst firstChild = tokens[i + 1]\n\t\t\tconst startsWithTask = firstChild.attrGet('class') === 'task-list-item'\n\t\t\tif (!startsWithTask) {\n\t\t\t\ttoken.attrs.splice(token.attrIndex('class'))\n\t\t\t\tif (token.attrs.length === 0) {\n\t\t\t\t\ttoken.attrs = null\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst splitBefore = findChildOf(tokens, i, child => {\n\t\t\t\treturn child.nesting === 1\n\t\t\t\t\t&& child.attrGet('class') !== firstChild.attrGet('class')\n\t\t\t})\n\t\t\tif (splitBefore > i) {\n\t\t\t\tsplitListAt(tokens, splitBefore, state.Token)\n\t\t\t}\n\t\t}\n\n\t\treturn false\n\t})\n}\n\n/**\n * @param {Array} tokens - all the tokens in the doc\n * @param {number} index - index into the tokens array where to split\n * @param {object} TokenConstructor - constructor provided by Markdown-it\n */\nfunction splitListAt(tokens, index, TokenConstructor) {\n\tconst closeList = new TokenConstructor('bullet_list_close', 'ul', -1)\n\tcloseList.block = true\n\tconst openList = new TokenConstructor('bullet_list_open', 'ul', 1)\n\topenList.attrSet('class', 'contains-task-list')\n\topenList.block = true\n\ttokens.splice(index, 0, closeList, openList)\n}\n\n/**\n * @param {Array} tokens - all the tokens in the doc\n * @param {number} parentIndex - index of the parent in the tokens array\n * @param {Function} predicate - test function returned child needs to pass\n */\nfunction findChildOf(tokens, parentIndex, predicate) {\n\tconst searchLevel = tokens[parentIndex].level + 1\n\tfor (let i = parentIndex + 1; i < tokens.length; i++) {\n\t\tconst token = tokens[i]\n\t\tif (token.level < searchLevel) {\n\t\t\treturn -1\n\t\t}\n\t\tif ((token.level === searchLevel) && predicate(tokens[i])) {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n","/*\n * @copyright Copyright (c) 2022 Max \n *\n * @author Max \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n/**\n * @param {object} md Markdown object\n */\nexport default function markdownUnderlines(md) {\n\tmd.inline.ruler2.after('emphasis', 'underline', state => {\n\t\tconst tokens = state.tokens\n\n\t\tfor (let i = tokens.length - 1; i > 0; i--) {\n\t\t\tconst token = tokens[i]\n\n\t\t\tif (token.markup === '__') {\n\t\t\t\tif (token.type === 'strong_open') {\n\t\t\t\t\ttokens[i].tag = 'u'\n\t\t\t\t\ttokens[i].type = 'u_open'\n\t\t\t\t}\n\t\t\t\tif (token.type === 'strong_close') {\n\t\t\t\t\ttokens[i].tag = 'u'\n\t\t\t\t\ttokens[i].type = 'u_close'\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false\n\t})\n}\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: this._isMobile(),\n\t\t}\n\t},\n\tbeforeMount() {\n\t\twindow.addEventListener('resize', this._onResize)\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this._onResize)\n\t},\n\tmethods: {\n\t\t_onResize() {\n\t\t\t// Update mobile mode\n\t\t\tthis.isMobile = this._isMobile()\n\t\t},\n\t\t_isMobile() {\n\t\t\t// check if content width is under 768px\n\t\t\treturn document.documentElement.clientWidth < 768\n\t\t},\n\t},\n}\n","/*\n * @copyright Copyright (c) 2021 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport store from '../store.js'\n\n/**\n * This mixin is required since we cannot be sure that the root Vue instance has\n * registered the global store. This might be the case if the text app components\n * are mounted in other apps e.g. viewer\n */\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\t$store: store,\n\t\t}\n\t},\n\tbeforeMount() {\n\t\tif (typeof this.$store === 'undefined') {\n\t\t\tthis.$store = store\n\t\t}\n\t},\n}\n","/*\n * @copyright Copyright (c) 2020 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nconst persistentStorage = getBuilder('text').persist().build()\n\nVue.use(Vuex)\n\nconst store = new Store({\n\tstate: {\n\t\tshowAuthorAnnotations: persistentStorage.getItem('showAuthorAnnotations') === 'true',\n\t\tcurrentSession: persistentStorage.getItem('currentSession'),\n\t},\n\tmutations: {\n\t\tSET_SHOW_AUTHOR_ANNOTATIONS(state, value) {\n\t\t\tstate.showAuthorAnnotations = value\n\t\t\tpersistentStorage.setItem('showAuthorAnnotations', '' + value)\n\t\t},\n\t\tSET_CURRENT_SESSION(state, value) {\n\t\t\tstate.currentSession = value\n\t\t\tpersistentStorage.setItem('currentSession', value)\n\t\t},\n\t},\n\tactions: {\n\t\tsetShowAuthorAnnotations({ commit }, value) {\n\t\t\tstore.commit('SET_SHOW_AUTHOR_ANNOTATIONS', value)\n\t\t},\n\t\tsetCurrentSession({ commit }, value) {\n\t\t\tstore.commit('SET_CURRENT_SESSION', value)\n\t\t},\n\t},\n})\n\nexport default store\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#resolve-conflicts[data-v-4a5d4c0f]{display:flex;position:fixed;z-index:10000;bottom:0;max-width:900px;width:100vw;margin:auto;padding:20px 0}#resolve-conflicts button[data-v-4a5d4c0f]{margin:auto;box-shadow:0 0 10px var(--color-box-shadow)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/CollisionResolveDialog.vue\"],\"names\":[],\"mappings\":\"AAwCA,oCACC,YAAA,CACA,cAAA,CACA,aAAA,CACA,QAAA,CACA,eAAA,CACA,WAAA,CACA,WAAA,CACA,cAAA,CAEA,2CACC,WAAA,CACA,2CAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n#resolve-conflicts {\\n\\tdisplay: flex;\\n\\tposition: fixed;\\n\\tz-index: 10000;\\n\\tbottom: 0;\\n\\tmax-width: 900px;\\n\\twidth: 100vw;\\n\\tmargin: auto;\\n\\tpadding: 20px 0;\\n\\n\\tbutton {\\n\\t\\tmargin: auto;\\n\\t\\tbox-shadow: 0 0 10px var(--color-box-shadow);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".modal-container #editor-container[data-v-701abc86]{top:0;height:calc(100vh - var(--header-height))}#editor-container[data-v-701abc86]{display:block;width:100%;max-width:100%;height:100%;left:0;margin:0 auto;position:relative;background-color:var(--color-main-background)}#editor-wrapper[data-v-701abc86]{display:flex;width:100%;height:100%;overflow:hidden;position:absolute}#editor-wrapper.show-color-annotations[data-v-701abc86] .author-annotation{padding-top:2px;padding-bottom:2px}#editor-wrapper[data-v-701abc86]:not(.show-color-annotations) .author-annotation,#editor-wrapper[data-v-701abc86]:not(.show-color-annotations) .image{background-color:transparent !important}#editor-wrapper .ProseMirror[data-v-701abc86]{margin-top:0 !important}#editor-wrapper.icon-loading #editor[data-v-701abc86]{opacity:.3}#editor[data-v-701abc86],.editor[data-v-701abc86]{background:var(--color-main-background);color:var(--color-main-text);background-clip:padding-box;border-radius:var(--border-radius);padding:0;position:relative;overflow-y:auto;overflow-x:hidden;width:100%}.document-status[data-v-701abc86]{position:relative;background-color:var(--color-main-background)}.document-status .msg[data-v-701abc86]{padding:12px;background-position:8px center;color:var(--color-text-maxcontrast)}.document-status .msg.icon-error[data-v-701abc86]{padding-left:30px}.document-status .msg .button[data-v-701abc86]{margin-left:8px}.document-status .msg.msg-locked .lock-icon[data-v-701abc86]{padding:0 10px;float:left}.save-status[data-v-701abc86]{display:inline-flex;padding:0;text-overflow:ellipsis;color:var(--color-text-lighter);position:relative;top:9px;min-width:85px;max-height:36px}.save-status.error[data-v-701abc86]{background-color:var(--color-error);color:var(--color-main-background);border-radius:3px}#editor-container #editor-wrapper.has-conflicts[data-v-701abc86]{height:calc(100% - 50px)}#editor-container #editor-wrapper.has-conflicts #editor[data-v-701abc86],#editor-container #editor-wrapper.has-conflicts #read-only-editor[data-v-701abc86]{width:50%;height:100%}#editor-session-list[data-v-701abc86]{display:flex}#editor-session-list input[data-v-701abc86],#editor-session-list div[data-v-701abc86]{vertical-align:middle;margin-left:3px}.editor__content[data-v-701abc86]{max-width:670px;margin:auto;position:relative}#body-public[data-v-701abc86]{height:auto}#files-public-content #editor-container[data-v-701abc86]{top:0;width:100%}#files-public-content #editor-container #editor[data-v-701abc86] .menubar{position:sticky;top:0px;width:100%}#files-public-content #editor-container #editor[data-v-701abc86]{overflow:auto;z-index:20}#files-public-content #editor-container .has-conflicts #editor[data-v-701abc86]{padding-top:0}.ie #editor[data-v-701abc86] .menubar{position:fixed;top:50px;width:100%}.ie .editor__content[data-v-701abc86] .ProseMirror{padding-top:50px}.menubar.placeholder[data-v-701abc86]{position:fixed;position:-webkit-sticky;position:sticky;top:0;opacity:0;visibility:hidden;height:44px;padding-top:3px;padding-bottom:3px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/EditorWrapper.vue\"],\"names\":[],\"mappings\":\"AA4tBA,oDACC,KAAA,CACA,yCAAA,CAGD,mCACC,aAAA,CACA,UAAA,CACA,cAAA,CACA,WAAA,CACA,MAAA,CACA,aAAA,CACA,iBAAA,CACA,6CAAA,CAGD,iCACC,YAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,iBAAA,CAEA,2EACC,eAAA,CACA,kBAAA,CAGD,sJAEC,uCAAA,CAGD,8CACC,uBAAA,CAGA,sDACC,UAAA,CAKH,kDACC,uCAAA,CACA,4BAAA,CACA,2BAAA,CACA,kCAAA,CACA,SAAA,CACA,iBAAA,CACA,eAAA,CACA,iBAAA,CACA,UAAA,CAGD,kCACC,iBAAA,CACA,6CAAA,CAEA,uCACC,YAAA,CACA,8BAAA,CACA,mCAAA,CAEA,kDACC,iBAAA,CAGD,+CACC,eAAA,CAGD,6DACC,cAAA,CACA,UAAA,CAKH,8BACC,mBAAA,CACA,SAAA,CACA,sBAAA,CACA,+BAAA,CACA,iBAAA,CACA,OAAA,CACA,cAAA,CACA,eAAA,CAEA,oCACC,mCAAA,CACA,kCAAA,CACA,iBAAA,CAIF,iEACC,wBAAA,CAEA,4JACC,SAAA,CACA,WAAA,CAIF,sCACC,YAAA,CAEA,sFACC,qBAAA,CACA,eAAA,CAIF,kCACC,eAAA,CACA,WAAA,CACA,iBAAA,CAGD,8BACC,WAAA,CAIA,yDACC,KAAA,CACA,UAAA,CAEA,0EACC,eAAA,CACA,OAAA,CACA,UAAA,CAGD,iEACC,aAAA,CACA,UAAA,CAED,gFACC,aAAA,CAMF,sCAEC,cAAA,CACA,QAAA,CACA,UAAA,CAED,mDACC,gBAAA,CAIF,sCACC,cAAA,CACA,uBAAA,CACA,eAAA,CACA,KAAA,CACA,SAAA,CACA,iBAAA,CACA,WAAA,CACA,eAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.modal-container #editor-container {\\n\\ttop: 0;\\n\\theight: calc(100vh - var(--header-height));\\n}\\n\\n#editor-container {\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\tmax-width: 100%;\\n\\theight: 100%;\\n\\tleft: 0;\\n\\tmargin: 0 auto;\\n\\tposition: relative;\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n#editor-wrapper {\\n\\tdisplay: flex;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\toverflow: hidden;\\n\\tposition: absolute;\\n\\n\\t&.show-color-annotations::v-deep .author-annotation {\\n\\t\\tpadding-top: 2px;\\n\\t\\tpadding-bottom: 2px;\\n\\t}\\n\\n\\t&:not(.show-color-annotations)::v-deep .author-annotation,\\n\\t&:not(.show-color-annotations)::v-deep .image {\\n\\t\\tbackground-color: transparent !important;\\n\\t}\\n\\n\\t.ProseMirror {\\n\\t\\tmargin-top: 0 !important;\\n\\t}\\n\\t&.icon-loading {\\n\\t\\t#editor {\\n\\t\\t\\topacity: 0.3;\\n\\t\\t}\\n\\t}\\n}\\n\\n#editor, .editor {\\n\\tbackground: var(--color-main-background);\\n\\tcolor: var(--color-main-text);\\n\\tbackground-clip: padding-box;\\n\\tborder-radius: var(--border-radius);\\n\\tpadding: 0;\\n\\tposition: relative;\\n\\toverflow-y: auto;\\n\\toverflow-x: hidden;\\n\\twidth: 100%;\\n}\\n\\n.document-status {\\n\\tposition: relative;\\n\\tbackground-color: var(--color-main-background);\\n\\n\\t.msg {\\n\\t\\tpadding: 12px;\\n\\t\\tbackground-position: 8px center;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&.icon-error {\\n\\t\\t\\tpadding-left: 30px;\\n\\t\\t}\\n\\n\\t\\t.button {\\n\\t\\t\\tmargin-left: 8px;\\n\\t\\t}\\n\\n\\t\\t&.msg-locked .lock-icon {\\n\\t\\t\\tpadding: 0 10px;\\n\\t\\t\\tfloat: left;\\n\\t\\t}\\n\\t}\\n}\\n\\n.save-status {\\n\\tdisplay: inline-flex;\\n\\tpadding: 0;\\n\\ttext-overflow: ellipsis;\\n\\tcolor: var(--color-text-lighter);\\n\\tposition: relative;\\n\\ttop: 9px;\\n\\tmin-width: 85px;\\n\\tmax-height: 36px;\\n\\n\\t&.error {\\n\\t\\tbackground-color: var(--color-error);\\n\\t\\tcolor: var(--color-main-background);\\n\\t\\tborder-radius: 3px;\\n\\t}\\n}\\n\\n#editor-container #editor-wrapper.has-conflicts {\\n\\theight: calc(100% - 50px);\\n\\n\\t#editor, #read-only-editor {\\n\\t\\twidth: 50%;\\n\\t\\theight: 100%;\\n\\t}\\n}\\n\\n#editor-session-list {\\n\\tdisplay: flex;\\n\\n\\tinput, div {\\n\\t\\tvertical-align: middle;\\n\\t\\tmargin-left: 3px;\\n\\t}\\n}\\n\\n.editor__content {\\n\\tmax-width: 670px;\\n\\tmargin: auto;\\n\\tposition: relative;\\n}\\n\\n#body-public {\\n\\theight: auto;\\n}\\n\\n#files-public-content {\\n\\t#editor-container {\\n\\t\\ttop: 0;\\n\\t\\twidth: 100%;\\n\\n\\t\\t#editor::v-deep .menubar {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: 0px;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t#editor {\\n\\t\\t\\toverflow: auto;\\n\\t\\t\\tz-index: 20;\\n\\t\\t}\\n\\t\\t.has-conflicts #editor {\\n\\t\\t\\tpadding-top: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ie {\\n\\t#editor::v-deep .menubar {\\n\\t\\t// sticky position is not working as body is our scroll container\\n\\t\\tposition: fixed;\\n\\t\\ttop: 50px;\\n\\t\\twidth: 100%;\\n\\t}\\n\\t.editor__content::v-deep .ProseMirror {\\n\\t\\tpadding-top: 50px;\\n\\t}\\n}\\n\\n.menubar.placeholder {\\n\\tposition: fixed;\\n\\tposition: -webkit-sticky;\\n\\tposition: sticky;\\n\\ttop: 0;\\n\\topacity: 0;\\n\\tvisibility: hidden;\\n\\theight: 44px; // important for mobile so that the buttons are always inside the container\\n\\tpadding-top:3px;\\n\\tpadding-bottom: 3px;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../../img/checkbox-mark.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".modal-container #editor-container{position:absolute}.ProseMirror-hideselection *::selection{background:transparent;color:var(--color-main-text)}.ProseMirror-hideselection *::-moz-selection{background:transparent;color:var(--color-main-text)}.ProseMirror-hideselection{caret-color:transparent;color:var(--color-main-text)}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:\\\"\\\";position:absolute;left:-32px;right:-2px;top:-2px;bottom:-2px;border:2px solid #8cf;pointer-events:none}.has-conflicts .ProseMirror-menubar,#editor-wrapper.icon-loading .ProseMirror-menubar{display:none}.ProseMirror-gapcursor{display:none;pointer-events:none;position:absolute}.ProseMirror-gapcursor:after{content:\\\"\\\";display:block;position:absolute;top:-2px;width:20px;border-top:1px solid var(--color-main-text);animation:ProseMirror-cursor-blink 1.1s steps(2, start) infinite}@keyframes ProseMirror-cursor-blink{to{visibility:hidden}}#editor-wrapper div.ProseMirror{margin-top:44px;height:100%;position:relative;word-wrap:break-word;white-space:pre-wrap;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;padding:4px 8px 200px 14px;line-height:150%;font-size:14px;outline:none}#editor-wrapper div.ProseMirror[contenteditable=true],#editor-wrapper div.ProseMirror[contenteditable=false],#editor-wrapper div.ProseMirror [contenteditable=true],#editor-wrapper div.ProseMirror [contenteditable=false]{border:none !important;width:100%;background-color:transparent;color:var(--color-main-text);opacity:1;-webkit-user-select:text;user-select:text;font-size:14px}#editor-wrapper div.ProseMirror[contenteditable=true] *,#editor-wrapper div.ProseMirror [contenteditable=true] *{-webkit-user-modify:read-write-plaintext-only}#editor-wrapper div.ProseMirror .checkbox-item{display:flex;align-items:start;margin-left:-23px}#editor-wrapper div.ProseMirror .checkbox-item input[type=checkbox]{display:none}#editor-wrapper div.ProseMirror .checkbox-item:before{content:\\\"\\\";vertical-align:middle;margin:3px 6px 3px 2px;border:1px solid var(--color-text-maxcontrast);position:relative;display:block;border-radius:var(--border-radius);height:14px;width:14px;box-shadow:none !important;background-position:center;cursor:pointer}#editor-wrapper div.ProseMirror .checkbox-item.checked:before{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-color:var(--color-primary-element);border-color:var(--color-primary-element)}#editor-wrapper div.ProseMirror .checkbox-item label{display:block;flex-grow:1;max-width:calc(100% - 28px)}#editor-wrapper div.ProseMirror>*:first-child{margin-top:10px}#editor-wrapper div.ProseMirror a{color:var(--color-primary-element);text-decoration:underline;padding:.5em 0}#editor-wrapper div.ProseMirror p{margin-bottom:1em;line-height:150%}#editor-wrapper div.ProseMirror em{font-style:italic}#editor-wrapper div.ProseMirror h1,#editor-wrapper div.ProseMirror h2,#editor-wrapper div.ProseMirror h3,#editor-wrapper div.ProseMirror h4,#editor-wrapper div.ProseMirror h5,#editor-wrapper div.ProseMirror h6{font-weight:600;line-height:120%;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}#editor-wrapper div.ProseMirror h1{font-size:36px;margin-top:48px}#editor-wrapper div.ProseMirror h2{font-size:30px;margin-top:48px}#editor-wrapper div.ProseMirror h3{font-size:24px}#editor-wrapper div.ProseMirror h4{font-size:21px}#editor-wrapper div.ProseMirror h5{font-size:17px}#editor-wrapper div.ProseMirror h6{font-size:14px}#editor-wrapper div.ProseMirror img{cursor:default;max-width:100%}#editor-wrapper div.ProseMirror hr{padding:2px 0;border:none;margin:3em 0;width:100%}#editor-wrapper div.ProseMirror hr:after{content:\\\"\\\";display:block;height:1px;background-color:var(--color-border-dark);line-height:2px}#editor-wrapper div.ProseMirror pre{white-space:pre-wrap;background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:1em 1.3em;margin-bottom:1em}#editor-wrapper div.ProseMirror p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}#editor-wrapper div.ProseMirror li{position:relative;padding-left:3px}#editor-wrapper div.ProseMirror li p{margin-bottom:.5em}#editor-wrapper div.ProseMirror ul,#editor-wrapper div.ProseMirror ol{padding-left:10px;margin-left:10px;margin-bottom:1em}#editor-wrapper div.ProseMirror ul>li{list-style-type:disc}#editor-wrapper div.ProseMirror li ul>li{list-style-type:circle}#editor-wrapper div.ProseMirror li li ul>li{list-style-type:square}#editor-wrapper div.ProseMirror blockquote{padding-left:1em;border-left:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-left:0;margin-right:0}#editor-wrapper div.ProseMirror .callout{background-color:var(--callout-background, var(--color-background-hover));border-left-color:var(--callout-border, var(--color-primary-element));border-radius:var(--border-radius);padding:1em;padding-left:2em;border-left-width:.3em;border-left-style:solid;position:relative;margin-bottom:.5em}+#editor-wrapper div.ProseMirror .callout{margin-top:.5em}#editor-wrapper div.ProseMirror .callout::before{content:\\\"\\\";background-image:var(--callout-icon, var(--icon-info-000));background-size:contain;position:absolute;top:calc(50% - 8px);left:.4em;height:16px;width:16px}#editor-wrapper div.ProseMirror .callout>p:last-child{margin-bottom:0}#editor-wrapper div.ProseMirror .callout,#editor-wrapper div.ProseMirror .callout-info{--callout-border: var(--color-primary-element);--callout-icon: var(--icon-info-000)}#editor-wrapper div.ProseMirror .callout-warn{--callout-border: var(--color-warning);--callout-icon: var(--icon-text-warn-000)}#editor-wrapper div.ProseMirror .callout-error{--callout-border: var(--color-error);--callout-icon: var(--icon-error-000)}#editor-wrapper div.ProseMirror .callout-success{--callout-border: var(--color-success);--callout-icon: var(--icon-text-success-000)}:root{--table-color-border: var(--color-border);--table-color-heading: var(--color-text-maxcontrast);--table-color-heading-border: var(--color-border-dark);--table-color-background: var(--color-main-background);--table-color-background-hover: var(--color-primary-light);--table-border-radius: var(--border-radius)}#editor-wrapper div.ProseMirror table{border-spacing:0;width:calc(100% - 50px);table-layout:auto;white-space:normal;margin-bottom:1em}+#editor-wrapper div.ProseMirror table{margin-top:1em}#editor-wrapper div.ProseMirror table td,#editor-wrapper div.ProseMirror table th{border:1px solid var(--table-color-border);border-left:0;vertical-align:top;max-width:100%}#editor-wrapper div.ProseMirror table td:first-child,#editor-wrapper div.ProseMirror table th:first-child{border-left:1px solid var(--table-color-border)}#editor-wrapper div.ProseMirror table td{padding:.5em .75em;border-top:0;color:var(--color-main-text)}#editor-wrapper div.ProseMirror table th{padding:0 0 0 .75em;font-weight:normal;border-bottom-color:var(--table-color-heading-border);color:var(--table-color-heading)}#editor-wrapper div.ProseMirror table th>div{display:flex}#editor-wrapper div.ProseMirror table tr{background-color:var(--table-color-background)}#editor-wrapper div.ProseMirror table tr:hover,#editor-wrapper div.ProseMirror table tr:active,#editor-wrapper div.ProseMirror table tr:focus{background-color:var(--table-color-background-hover)}#editor-wrapper div.ProseMirror table tr:first-child th:first-child{border-top-left-radius:var(--table-border-radius)}#editor-wrapper div.ProseMirror table tr:first-child th:last-child{border-top-right-radius:var(--table-border-radius)}#editor-wrapper div.ProseMirror table tr:last-child td:first-child{border-bottom-left-radius:var(--table-border-radius)}#editor-wrapper div.ProseMirror table tr:last-child td:last-child{border-bottom-right-radius:var(--table-border-radius)}#editor-wrapper .ProseMirror-focused .ProseMirror-gapcursor{display:block}#editor-wrapper .editor__content p.is-empty:first-child::before{content:attr(data-placeholder);float:left;color:var(--color-text-maxcontrast);pointer-events:none;height:0}#editor-wrapper .editor__content{tab-size:4}#editor-wrapper:not(.richEditor) .ProseMirror pre{background-color:var(--color-main-background)}#editor-wrapper:not(.richEditor) .ProseMirror pre::before{content:attr(data-language);text-transform:uppercase;display:block;text-align:right;font-weight:bold;font-size:.6rem}#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-comment,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-quote{color:#999}#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-variable,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-template-variable,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-attribute,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-tag,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-name,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-regexp,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-link,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-selector-id,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-selector-class{color:#f2777a}#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-number,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-meta,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-built_in,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-builtin-name,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-literal,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-type,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-params{color:#f99157}#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-string,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-symbol,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-bullet{color:#9c9}#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-title,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-section{color:#fc6}#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-keyword,#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-selector-tag{color:#69c}#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-emphasis{font-style:italic}#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-strong{font-weight:700}#editor-wrapper #editor.draggedOver{background-color:var(--color-primary-light)}#editor-wrapper #editor .content-wrapper{position:relative}#files-public-content{height:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/style.scss\",\"webpack://./css/prosemirror.scss\",\"webpack://./src/components/EditorWrapper.vue\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".modal-container #editor-container {\\n position: absolute;\\n}\\n\\n.ProseMirror-hideselection *::selection { background: transparent; color: var(--color-main-text); }\\n.ProseMirror-hideselection *::-moz-selection { background: transparent; color: var(--color-main-text); }\\n.ProseMirror-hideselection { caret-color: transparent; color: var(--color-main-text); }\\n\\n.ProseMirror-selectednode {\\n outline: 2px solid #8cf;\\n}\\n\\n/* Make sure li selections wrap around markers */\\nli.ProseMirror-selectednode {\\n outline: none;\\n}\\n\\nli.ProseMirror-selectednode:after {\\n content: \\\"\\\";\\n position: absolute;\\n left: -32px;\\n right: -2px; top: -2px; bottom: -2px;\\n border: 2px solid #8cf;\\n pointer-events: none;\\n}\\n\\n.has-conflicts,\\n#editor-wrapper.icon-loading {\\n .ProseMirror-menubar {\\n display: none;\\n }\\n}\\n\\n.ProseMirror-gapcursor {\\n display: none;\\n pointer-events: none;\\n position: absolute;\\n}\\n\\n.ProseMirror-gapcursor:after {\\n content: \\\"\\\";\\n display: block;\\n position: absolute;\\n top: -2px;\\n width: 20px;\\n border-top: 1px solid var(--color-main-text);\\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\\n}\\n\\n@keyframes ProseMirror-cursor-blink {\\n to {\\n visibility: hidden;\\n }\\n}\\n\",\"@use \\\"sass:selector\\\";\\n\\n/* Document rendering styles */\\ndiv.ProseMirror {\\n\\tmargin-top: 44px;\\n\\theight: 100%;\\n\\tposition: relative;\\n\\tword-wrap: break-word;\\n\\twhite-space: pre-wrap;\\n\\t-webkit-font-variant-ligatures: none;\\n\\tfont-variant-ligatures: none;\\n\\tpadding: 4px 8px 200px 14px;\\n\\tline-height: 150%;\\n\\tfont-size: 14px;\\n\\toutline: none;\\n\\n\\t&[contenteditable=true],\\n\\t&[contenteditable=false],\\n\\t[contenteditable=true],\\n\\t[contenteditable=false] {\\n\\t\\tborder: none !important;\\n\\t\\twidth: 100%;\\n\\t\\tbackground-color: transparent;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\topacity: 1;\\n\\t\\t-webkit-user-select: text;\\n\\t\\tuser-select: text;\\n\\t\\tfont-size: 14px;\\n\\t}\\n\\n\\t&[contenteditable=true],\\n\\t[contenteditable=true] {\\n\\t\\t* {\\n\\t\\t\\t-webkit-user-modify: read-write-plaintext-only;\\n\\t\\t}\\n\\t}\\n\\n\\t.checkbox-item {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: start;\\n\\t\\t// Left-align with list item text\\n\\t\\tmargin-left: -23px;\\n\\n\\t\\tinput[type=checkbox] {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t\\t&:before {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t\\tmargin: 3px 6px 3px 2px;\\n\\t\\t\\tborder: 1px solid var(--color-text-maxcontrast);\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\theight: 14px;\\n\\t\\t\\twidth: 14px;\\n\\t\\t\\tbox-shadow: none !important;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t\\t&.checked:before {\\n\\t\\t\\tbackground-image: url('../../img/checkbox-mark.svg');\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\t\\tlabel {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tmax-width: calc(100% - 28px);\\n\\t\\t}\\n\\t}\\n\\n\\t> *:first-child {\\n\\t\\tmargin-top: 10px;\\n\\t}\\n\\n\\ta {\\n\\t\\tcolor: var(--color-primary-element);\\n\\t\\ttext-decoration: underline;\\n\\t\\tpadding: .5em 0;\\n\\t}\\n\\n\\tp {\\n\\t\\tmargin-bottom: 1em;\\n\\t\\tline-height: 150%;\\n\\t}\\n\\n\\tem {\\n\\t\\tfont-style: italic;\\n\\t}\\n\\n\\th1,\\n\\th2,\\n\\th3,\\n\\th4,\\n\\th5,\\n\\th6 {\\n\\t\\tfont-weight: 600;\\n\\t\\tline-height: 120%;\\n\\t\\tmargin-top: 24px;\\n\\t\\tmargin-bottom: 12px;\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n\\n\\th1 {\\n\\t\\tfont-size: 36px;\\n\\t\\tmargin-top: 48px;\\n\\t}\\n\\n\\th2 {\\n\\t\\tfont-size: 30px;\\n\\t\\tmargin-top: 48px;\\n\\t}\\n\\n\\th3 {\\n\\t\\tfont-size: 24px;\\n\\t}\\n\\n\\th4 {\\n\\t\\tfont-size: 21px;\\n\\t}\\n\\n\\th5 {\\n\\t\\tfont-size: 17px;\\n\\t}\\n\\n\\th6 {\\n\\t\\tfont-size: 14px;\\n\\t}\\n\\n\\timg {\\n\\t\\tcursor: default;\\n\\t\\tmax-width: 100%;\\n\\t}\\n\\n\\thr {\\n\\t\\tpadding: 2px 0;\\n\\t\\tborder: none;\\n\\t\\tmargin: 3em 0;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\thr:after {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\tdisplay: block;\\n\\t\\theight: 1px;\\n\\t\\tbackground-color: var(--color-border-dark);\\n\\t\\tline-height: 2px;\\n\\t}\\n\\n\\tpre {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tpadding: 1em 1.3em;\\n\\t\\tmargin-bottom: 1em;\\n\\t}\\n\\n\\tp code {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tpadding: .1em .3em;\\n\\t}\\n\\n\\tli {\\n\\t\\tposition: relative;\\n\\t\\tpadding-left: 3px;\\n\\n\\t\\tp {\\n\\t\\t\\tmargin-bottom: 0.5em;\\n\\t\\t}\\n\\t}\\n\\n\\tul, ol {\\n\\t\\tpadding-left: 10px;\\n\\t\\tmargin-left: 10px;\\n\\t\\tmargin-bottom: 1em;\\n\\t}\\n\\n\\tul > li {\\n\\t\\tlist-style-type: disc;\\n\\t}\\n\\n\\t// Second-level list entries\\n\\tli ul > li {\\n\\t\\tlist-style-type: circle;\\n\\t}\\n\\n\\t// Third-level and further down list entries\\n\\tli li ul > li {\\n\\t\\tlist-style-type: square;\\n\\t}\\n\\n\\tblockquote {\\n\\t\\tpadding-left: 1em;\\n\\t\\tborder-left: 4px solid var(--color-primary-element);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin-left: 0;\\n\\t\\tmargin-right: 0;\\n\\t}\\n\\n\\t// Callout Block\\n\\t.callout {\\n\\t\\tbackground-color: var(--callout-background, var(--color-background-hover));\\n\\t\\tborder-left-color: var(--callout-border, var(--color-primary-element));\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tpadding: 1em;\\n\\t\\tpadding-left: 2em;\\n\\t\\tborder-left-width: 0.3em;\\n\\t\\tborder-left-style: solid;\\n\\t\\tposition: relative;\\n\\t\\tmargin-bottom: 0.5em;\\n\\t\\t+ & {\\n\\t\\t\\tmargin-top: 0.5em;\\n\\t\\t}\\n\\n\\t\\t// Block icon\\n\\t\\t&::before {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tbackground-image: var(--callout-icon, var(--icon-info-000));\\n\\t\\t\\tbackground-size: contain;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: calc(50% - 8px);\\n\\t\\t\\tleft: 0.4em;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\twidth: 16px;\\n\\t\\t}\\n\\n\\t\\t> p {\\n\\t\\t\\t&:last-child {\\n\\t\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Info (default) variables\\n\\t\\t&, &-info {\\n\\t\\t\\t// --callout-background: var(--color-primary-light);\\n\\t\\t\\t--callout-border: var(--color-primary-element);\\n\\t\\t\\t--callout-icon: var(--icon-info-000);\\n\\t\\t}\\n\\n\\t\\t// Warn variables\\n\\t\\t&-warn {\\n\\t\\t\\t// --callout-background: var(--color-warning-hover);\\n\\t\\t\\t--callout-border: var(--color-warning);\\n\\t\\t\\t--callout-icon: var(--icon-text-warn-000);\\n\\t\\t}\\n\\n\\t\\t// Error variables\\n\\t\\t&-error {\\n\\t\\t\\t// --callout-background: var(--color-error-hover);\\n\\t\\t\\t--callout-border: var(--color-error);\\n\\t\\t\\t--callout-icon: var(--icon-error-000);\\n\\t\\t}\\n\\n\\t\\t// Success variables\\n\\t\\t&-success {\\n\\t\\t\\t// --callout-background: var(--color-success-hover);\\n\\t\\t\\t--callout-border: var(--color-success);\\n\\t\\t\\t--callout-icon: var(--icon-text-success-000);\\n\\t\\t}\\n\\t}\\n\\n\\t// table variables\\n\\t@at-root :root {\\n\\t\\t--table-color-border: var(--color-border);\\n\\t\\t--table-color-heading: var(--color-text-maxcontrast);\\n\\t\\t--table-color-heading-border: var(--color-border-dark);\\n\\t\\t--table-color-background: var(--color-main-background);\\n\\t\\t--table-color-background-hover: var(--color-primary-light);\\n\\t\\t--table-border-radius: var(--border-radius);\\n\\t}\\n\\n\\ttable {\\n\\t\\tborder-spacing: 0;\\n\\t\\twidth: calc(100% - 50px);\\n\\t\\ttable-layout: auto;\\n\\t\\twhite-space: normal; // force text to wrapping\\n\\t\\tmargin-bottom: 1em;\\n\\t\\t+ & {\\n\\t\\t\\tmargin-top: 1em;\\n\\t\\t}\\n\\n\\n\\t\\ttd, th {\\n\\t\\t\\tborder: 1px solid var(--table-color-border);\\n\\t\\t\\tborder-left: 0;\\n\\t\\t\\tvertical-align: top;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\t&:first-child {\\n\\t\\t\\t\\tborder-left: 1px solid var(--table-color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\ttd {\\n\\t\\t\\tpadding: 0.5em 0.75em;\\n\\t\\t\\tborder-top: 0;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t\\tth {\\n\\t\\t\\tpadding: 0 0 0 0.75em;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tborder-bottom-color: var(--table-color-heading-border);\\n\\t\\t\\tcolor: var(--table-color-heading);\\n\\n\\t\\t\\t& > div {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\ttr {\\n\\t\\t\\tbackground-color: var(--table-color-background);\\n\\t\\t\\t&:hover, &:active, &:focus {\\n\\t\\t\\t\\tbackground-color: var(--table-color-background-hover);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\ttr:first-child {\\n\\t\\t\\tth:first-child { border-top-left-radius: var(--table-border-radius); }\\n\\t\\t\\tth:last-child { border-top-right-radius: var(--table-border-radius); }\\n\\t\\t}\\n\\n\\t\\ttr:last-child {\\n\\t\\t\\ttd:first-child { border-bottom-left-radius: var(--table-border-radius); }\\n\\t\\t\\ttd:last-child { border-bottom-right-radius: var(--table-border-radius); }\\n\\t\\t}\\n\\n\\t}\\n\\n}\\n\\n.ProseMirror-focused .ProseMirror-gapcursor {\\n\\tdisplay: block;\\n}\\n\\n.editor__content p.is-empty:first-child::before {\\n\\tcontent: attr(data-placeholder);\\n\\tfloat: left;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tpointer-events: none;\\n\\theight: 0;\\n}\\n\\n.editor__content {\\n\\ttab-size: 4;\\n}\\n\",\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n@import './../../css/style';\\n\\n#editor-wrapper {\\n\\t@import './../../css/prosemirror';\\n\\n\\t&:not(.richEditor) .ProseMirror {\\n\\t\\tpre {\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tcontent: attr(data-language);\\n\\t\\t\\t\\ttext-transform: uppercase;\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\ttext-align: right;\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t\\tfont-size: 0.6rem;\\n\\t\\t\\t}\\n\\t\\t\\tcode {\\n\\t\\t\\t\\t.hljs-comment,\\n\\t\\t\\t\\t.hljs-quote {\\n\\t\\t\\t\\t\\tcolor: #999999;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t.hljs-variable,\\n\\t\\t\\t\\t.hljs-template-variable,\\n\\t\\t\\t\\t.hljs-attribute,\\n\\t\\t\\t\\t.hljs-tag,\\n\\t\\t\\t\\t.hljs-name,\\n\\t\\t\\t\\t.hljs-regexp,\\n\\t\\t\\t\\t.hljs-link,\\n\\t\\t\\t\\t.hljs-selector-id,\\n\\t\\t\\t\\t.hljs-selector-class {\\n\\t\\t\\t\\t\\tcolor: #f2777a;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t.hljs-number,\\n\\t\\t\\t\\t.hljs-meta,\\n\\t\\t\\t\\t.hljs-built_in,\\n\\t\\t\\t\\t.hljs-builtin-name,\\n\\t\\t\\t\\t.hljs-literal,\\n\\t\\t\\t\\t.hljs-type,\\n\\t\\t\\t\\t.hljs-params {\\n\\t\\t\\t\\t\\tcolor: #f99157;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t.hljs-string,\\n\\t\\t\\t\\t.hljs-symbol,\\n\\t\\t\\t\\t.hljs-bullet {\\n\\t\\t\\t\\t\\tcolor: #99cc99;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t.hljs-title,\\n\\t\\t\\t\\t.hljs-section {\\n\\t\\t\\t\\t\\tcolor: #ffcc66;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t.hljs-keyword,\\n\\t\\t\\t\\t.hljs-selector-tag {\\n\\t\\t\\t\\t\\tcolor: #6699cc;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t.hljs-emphasis {\\n\\t\\t\\t\\t\\tfont-style: italic;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t.hljs-strong {\\n\\t\\t\\t\\t\\tfont-weight: 700;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// relative position for the alignment of the menububble\\n\\t#editor {\\n\\t\\t&.draggedOver {\\n\\t\\t\\tbackground-color: var(--color-primary-light);\\n\\t\\t}\\n\\t\\t.content-wrapper {\\n\\t\\t\\tposition: relative;\\n\\t\\t}\\n\\t}\\n}\\n\\n// Required in order to make the public pages behave the same if talk is enabled or not\\n// as Talk overwrites the public page styles and changes the DOM layout for the sidebar injection\\n#files-public-content {\\n\\theight: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".emoji-list[data-v-5559f1fe]{border-radius:var(--border-radius);background-color:var(--color-main-background);box-shadow:0 1px 5px var(--color-box-shadow);overflow:auto;min-width:200px;max-width:200px;padding:4px;max-height:195.5px;margin:5px 0}.emoji-list__item[data-v-5559f1fe]{border-radius:8px;padding:4px 8px;margin-bottom:4px;opacity:.8;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emoji-list__item[data-v-5559f1fe]:last-child{margin-bottom:0}.emoji-list__item__emoji[data-v-5559f1fe]{padding-right:8px}.emoji-list__item.is-selected[data-v-5559f1fe],.emoji-list__item[data-v-5559f1fe]:focus,.emoji-list__item[data-v-5559f1fe]:hover{opacity:1;background-color:var(--color-primary-light)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/EmojiList.vue\"],\"names\":[],\"mappings\":\"AAgIA,6BACC,kCAAA,CACA,6CAAA,CACA,4CAAA,CACA,aAAA,CAEA,eAAA,CACA,eAAA,CACA,WAAA,CAEA,kBAAA,CACA,YAAA,CAEA,mCACC,iBAAA,CACA,eAAA,CACA,iBAAA,CACA,UAAA,CACA,cAAA,CAGA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,8CACC,eAAA,CAGD,0CACC,iBAAA,CAGD,iIAGC,SAAA,CACA,2CAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.emoji-list {\\n\\tborder-radius: var(--border-radius);\\n\\tbackground-color: var(--color-main-background);\\n\\tbox-shadow: 0 1px 5px var(--color-box-shadow);\\n\\toverflow: auto;\\n\\n\\tmin-width: 200px;\\n\\tmax-width: 200px;\\n\\tpadding: 4px;\\n\\t// Show maximum 5 entries and a half to show scroll\\n\\tmax-height: 35.5px * 5 + 18px;\\n\\tmargin: 5px 0;\\n\\n\\t&__item {\\n\\t\\tborder-radius: 8px;\\n\\t\\tpadding: 4px 8px;\\n\\t\\tmargin-bottom: 4px;\\n\\t\\topacity: 0.8;\\n\\t\\tcursor: pointer;\\n\\n\\t\\t// Take care of long names\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\n\\t\\t&:last-child {\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t}\\n\\n\\t\\t&__emoji {\\n\\t\\t\\tpadding-right: 8px;\\n\\t\\t}\\n\\n\\t\\t&.is-selected,\\n\\t\\t&:focus,\\n\\t\\t&:hover {\\n\\t\\t\\topacity: 1;\\n\\t\\t\\tbackground-color: var(--color-primary-light);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../../img/checkbox-mark.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#read-only-editor{overflow:scroll}#read-only-editor div.ProseMirror{margin-top:44px;height:100%;position:relative;word-wrap:break-word;white-space:pre-wrap;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;padding:4px 8px 200px 14px;line-height:150%;font-size:14px;outline:none}#read-only-editor div.ProseMirror[contenteditable=true],#read-only-editor div.ProseMirror[contenteditable=false],#read-only-editor div.ProseMirror [contenteditable=true],#read-only-editor div.ProseMirror [contenteditable=false]{border:none !important;width:100%;background-color:transparent;color:var(--color-main-text);opacity:1;-webkit-user-select:text;user-select:text;font-size:14px}#read-only-editor div.ProseMirror[contenteditable=true] *,#read-only-editor div.ProseMirror [contenteditable=true] *{-webkit-user-modify:read-write-plaintext-only}#read-only-editor div.ProseMirror .checkbox-item{display:flex;align-items:start;margin-left:-23px}#read-only-editor div.ProseMirror .checkbox-item input[type=checkbox]{display:none}#read-only-editor div.ProseMirror .checkbox-item:before{content:\\\"\\\";vertical-align:middle;margin:3px 6px 3px 2px;border:1px solid var(--color-text-maxcontrast);position:relative;display:block;border-radius:var(--border-radius);height:14px;width:14px;box-shadow:none !important;background-position:center;cursor:pointer}#read-only-editor div.ProseMirror .checkbox-item.checked:before{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-color:var(--color-primary-element);border-color:var(--color-primary-element)}#read-only-editor div.ProseMirror .checkbox-item label{display:block;flex-grow:1;max-width:calc(100% - 28px)}#read-only-editor div.ProseMirror>*:first-child{margin-top:10px}#read-only-editor div.ProseMirror a{color:var(--color-primary-element);text-decoration:underline;padding:.5em 0}#read-only-editor div.ProseMirror p{margin-bottom:1em;line-height:150%}#read-only-editor div.ProseMirror em{font-style:italic}#read-only-editor div.ProseMirror h1,#read-only-editor div.ProseMirror h2,#read-only-editor div.ProseMirror h3,#read-only-editor div.ProseMirror h4,#read-only-editor div.ProseMirror h5,#read-only-editor div.ProseMirror h6{font-weight:600;line-height:120%;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}#read-only-editor div.ProseMirror h1{font-size:36px;margin-top:48px}#read-only-editor div.ProseMirror h2{font-size:30px;margin-top:48px}#read-only-editor div.ProseMirror h3{font-size:24px}#read-only-editor div.ProseMirror h4{font-size:21px}#read-only-editor div.ProseMirror h5{font-size:17px}#read-only-editor div.ProseMirror h6{font-size:14px}#read-only-editor div.ProseMirror img{cursor:default;max-width:100%}#read-only-editor div.ProseMirror hr{padding:2px 0;border:none;margin:3em 0;width:100%}#read-only-editor div.ProseMirror hr:after{content:\\\"\\\";display:block;height:1px;background-color:var(--color-border-dark);line-height:2px}#read-only-editor div.ProseMirror pre{white-space:pre-wrap;background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:1em 1.3em;margin-bottom:1em}#read-only-editor div.ProseMirror p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}#read-only-editor div.ProseMirror li{position:relative;padding-left:3px}#read-only-editor div.ProseMirror li p{margin-bottom:.5em}#read-only-editor div.ProseMirror ul,#read-only-editor div.ProseMirror ol{padding-left:10px;margin-left:10px;margin-bottom:1em}#read-only-editor div.ProseMirror ul>li{list-style-type:disc}#read-only-editor div.ProseMirror li ul>li{list-style-type:circle}#read-only-editor div.ProseMirror li li ul>li{list-style-type:square}#read-only-editor div.ProseMirror blockquote{padding-left:1em;border-left:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-left:0;margin-right:0}#read-only-editor div.ProseMirror .callout{background-color:var(--callout-background, var(--color-background-hover));border-left-color:var(--callout-border, var(--color-primary-element));border-radius:var(--border-radius);padding:1em;padding-left:2em;border-left-width:.3em;border-left-style:solid;position:relative;margin-bottom:.5em}+#read-only-editor div.ProseMirror .callout{margin-top:.5em}#read-only-editor div.ProseMirror .callout::before{content:\\\"\\\";background-image:var(--callout-icon, var(--icon-info-000));background-size:contain;position:absolute;top:calc(50% - 8px);left:.4em;height:16px;width:16px}#read-only-editor div.ProseMirror .callout>p:last-child{margin-bottom:0}#read-only-editor div.ProseMirror .callout,#read-only-editor div.ProseMirror .callout-info{--callout-border: var(--color-primary-element);--callout-icon: var(--icon-info-000)}#read-only-editor div.ProseMirror .callout-warn{--callout-border: var(--color-warning);--callout-icon: var(--icon-text-warn-000)}#read-only-editor div.ProseMirror .callout-error{--callout-border: var(--color-error);--callout-icon: var(--icon-error-000)}#read-only-editor div.ProseMirror .callout-success{--callout-border: var(--color-success);--callout-icon: var(--icon-text-success-000)}:root{--table-color-border: var(--color-border);--table-color-heading: var(--color-text-maxcontrast);--table-color-heading-border: var(--color-border-dark);--table-color-background: var(--color-main-background);--table-color-background-hover: var(--color-primary-light);--table-border-radius: var(--border-radius)}#read-only-editor div.ProseMirror table{border-spacing:0;width:calc(100% - 50px);table-layout:auto;white-space:normal;margin-bottom:1em}+#read-only-editor div.ProseMirror table{margin-top:1em}#read-only-editor div.ProseMirror table td,#read-only-editor div.ProseMirror table th{border:1px solid var(--table-color-border);border-left:0;vertical-align:top;max-width:100%}#read-only-editor div.ProseMirror table td:first-child,#read-only-editor div.ProseMirror table th:first-child{border-left:1px solid var(--table-color-border)}#read-only-editor div.ProseMirror table td{padding:.5em .75em;border-top:0;color:var(--color-main-text)}#read-only-editor div.ProseMirror table th{padding:0 0 0 .75em;font-weight:normal;border-bottom-color:var(--table-color-heading-border);color:var(--table-color-heading)}#read-only-editor div.ProseMirror table th>div{display:flex}#read-only-editor div.ProseMirror table tr{background-color:var(--table-color-background)}#read-only-editor div.ProseMirror table tr:hover,#read-only-editor div.ProseMirror table tr:active,#read-only-editor div.ProseMirror table tr:focus{background-color:var(--table-color-background-hover)}#read-only-editor div.ProseMirror table tr:first-child th:first-child{border-top-left-radius:var(--table-border-radius)}#read-only-editor div.ProseMirror table tr:first-child th:last-child{border-top-right-radius:var(--table-border-radius)}#read-only-editor div.ProseMirror table tr:last-child td:first-child{border-bottom-left-radius:var(--table-border-radius)}#read-only-editor div.ProseMirror table tr:last-child td:last-child{border-bottom-right-radius:var(--table-border-radius)}#read-only-editor .ProseMirror-focused .ProseMirror-gapcursor{display:block}#read-only-editor .editor__content p.is-empty:first-child::before{content:attr(data-placeholder);float:left;color:var(--color-text-maxcontrast);pointer-events:none;height:0}#read-only-editor .editor__content{tab-size:4}.thumbnailContainer #read-only-editor{width:100%}.thumbnailContainer #read-only-editor .ProseMirror{height:auto;margin:0 0 0 0;padding:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/ReadOnlyEditor.vue\",\"webpack://./css/prosemirror.scss\"],\"names\":[],\"mappings\":\"AAiEA,kBAEC,eAAA,CChED,kCACC,eAAA,CACA,WAAA,CACA,iBAAA,CACA,oBAAA,CACA,oBAAA,CACA,mCAAA,CACA,2BAAA,CACA,0BAAA,CACA,gBAAA,CACA,cAAA,CACA,YAAA,CAEA,oOAIC,sBAAA,CACA,UAAA,CACA,4BAAA,CACA,4BAAA,CACA,SAAA,CACA,wBAAA,CACA,gBAAA,CACA,cAAA,CAKA,qHACC,6CAAA,CAIF,iDACC,YAAA,CACA,iBAAA,CAEA,iBAAA,CAEA,sEACC,YAAA,CAED,wDACC,UAAA,CACA,qBAAA,CACA,sBAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA,CACA,kCAAA,CACA,WAAA,CACA,UAAA,CACA,0BAAA,CACA,0BAAA,CACA,cAAA,CAED,gEACC,wDAAA,CACA,6CAAA,CACA,yCAAA,CAED,uDACC,aAAA,CACA,WAAA,CACA,2BAAA,CAIF,gDACC,eAAA,CAGD,oCACC,kCAAA,CACA,yBAAA,CACA,cAAA,CAGD,oCACC,iBAAA,CACA,gBAAA,CAGD,qCACC,iBAAA,CAGD,8NAMC,eAAA,CACA,gBAAA,CACA,eAAA,CACA,kBAAA,CACA,4BAAA,CAGD,qCACC,cAAA,CACA,eAAA,CAGD,qCACC,cAAA,CACA,eAAA,CAGD,qCACC,cAAA,CAGD,qCACC,cAAA,CAGD,qCACC,cAAA,CAGD,qCACC,cAAA,CAGD,sCACC,cAAA,CACA,cAAA,CAGD,qCACC,aAAA,CACA,WAAA,CACA,YAAA,CACA,UAAA,CAGD,2CACC,UAAA,CACA,aAAA,CACA,UAAA,CACA,yCAAA,CACA,eAAA,CAGD,sCACC,oBAAA,CACA,6CAAA,CACA,kCAAA,CACA,iBAAA,CACA,iBAAA,CAGD,yCACC,6CAAA,CACA,kCAAA,CACA,iBAAA,CAGD,qCACC,iBAAA,CACA,gBAAA,CAEA,uCACC,kBAAA,CAIF,0EACC,iBAAA,CACA,gBAAA,CACA,iBAAA,CAGD,wCACC,oBAAA,CAID,2CACC,sBAAA,CAID,8CACC,sBAAA,CAGD,6CACC,gBAAA,CACA,kDAAA,CACA,mCAAA,CACA,aAAA,CACA,cAAA,CAID,2CACC,yEAAA,CACA,qEAAA,CACA,kCAAA,CACA,WAAA,CACA,gBAAA,CACA,sBAAA,CACA,uBAAA,CACA,iBAAA,CACA,kBAAA,CACA,4CACC,eAAA,CAID,mDACC,UAAA,CACA,0DAAA,CACA,uBAAA,CACA,iBAAA,CACA,mBAAA,CACA,SAAA,CACA,WAAA,CACA,UAAA,CAIA,wDACC,eAAA,CAKF,2FAEC,8CAAA,CACA,oCAAA,CAID,gDAEC,sCAAA,CACA,yCAAA,CAID,iDAEC,oCAAA,CACA,qCAAA,CAID,mDAEC,sCAAA,CACA,4CAAA,CAKO,MACR,yCAAA,CACA,oDAAA,CACA,sDAAA,CACA,sDAAA,CACA,0DAAA,CACA,2CAAA,CAGD,wCACC,gBAAA,CACA,uBAAA,CACA,iBAAA,CACA,kBAAA,CACA,iBAAA,CACA,yCACC,cAAA,CAID,sFACC,0CAAA,CACA,aAAA,CACA,kBAAA,CACA,cAAA,CACA,8GACC,+CAAA,CAGF,2CACC,kBAAA,CACA,YAAA,CACA,4BAAA,CAED,2CACC,mBAAA,CACA,kBAAA,CACA,qDAAA,CACA,gCAAA,CAEA,+CACC,YAAA,CAGF,2CACC,8CAAA,CACA,oJACC,oDAAA,CAKD,sEAAA,iDAAA,CACA,qEAAA,kDAAA,CAIA,qEAAA,oDAAA,CACA,oEAAA,qDAAA,CAOH,8DACC,aAAA,CAGD,kEACC,8BAAA,CACA,UAAA,CACA,mCAAA,CACA,mBAAA,CACA,QAAA,CAGD,mCACC,UAAA,CDhRD,sCACC,UAAA,CAEA,mDACC,WAAA,CACA,cAAA,CACA,SAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n#read-only-editor {\\n\\t@import './../../css/prosemirror';\\n\\toverflow: scroll;\\n}\\n\\n.thumbnailContainer #read-only-editor {\\n\\twidth: 100%;\\n\\n\\t.ProseMirror {\\n\\t\\theight: auto;\\n\\t\\tmargin: 0 0 0 0;\\n\\t\\tpadding: 0;\\n\\t}\\n}\\n\\n\",\"@use \\\"sass:selector\\\";\\n\\n/* Document rendering styles */\\ndiv.ProseMirror {\\n\\tmargin-top: 44px;\\n\\theight: 100%;\\n\\tposition: relative;\\n\\tword-wrap: break-word;\\n\\twhite-space: pre-wrap;\\n\\t-webkit-font-variant-ligatures: none;\\n\\tfont-variant-ligatures: none;\\n\\tpadding: 4px 8px 200px 14px;\\n\\tline-height: 150%;\\n\\tfont-size: 14px;\\n\\toutline: none;\\n\\n\\t&[contenteditable=true],\\n\\t&[contenteditable=false],\\n\\t[contenteditable=true],\\n\\t[contenteditable=false] {\\n\\t\\tborder: none !important;\\n\\t\\twidth: 100%;\\n\\t\\tbackground-color: transparent;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\topacity: 1;\\n\\t\\t-webkit-user-select: text;\\n\\t\\tuser-select: text;\\n\\t\\tfont-size: 14px;\\n\\t}\\n\\n\\t&[contenteditable=true],\\n\\t[contenteditable=true] {\\n\\t\\t* {\\n\\t\\t\\t-webkit-user-modify: read-write-plaintext-only;\\n\\t\\t}\\n\\t}\\n\\n\\t.checkbox-item {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: start;\\n\\t\\t// Left-align with list item text\\n\\t\\tmargin-left: -23px;\\n\\n\\t\\tinput[type=checkbox] {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t\\t&:before {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t\\tmargin: 3px 6px 3px 2px;\\n\\t\\t\\tborder: 1px solid var(--color-text-maxcontrast);\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\theight: 14px;\\n\\t\\t\\twidth: 14px;\\n\\t\\t\\tbox-shadow: none !important;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t\\t&.checked:before {\\n\\t\\t\\tbackground-image: url('../../img/checkbox-mark.svg');\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\t\\tlabel {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tmax-width: calc(100% - 28px);\\n\\t\\t}\\n\\t}\\n\\n\\t> *:first-child {\\n\\t\\tmargin-top: 10px;\\n\\t}\\n\\n\\ta {\\n\\t\\tcolor: var(--color-primary-element);\\n\\t\\ttext-decoration: underline;\\n\\t\\tpadding: .5em 0;\\n\\t}\\n\\n\\tp {\\n\\t\\tmargin-bottom: 1em;\\n\\t\\tline-height: 150%;\\n\\t}\\n\\n\\tem {\\n\\t\\tfont-style: italic;\\n\\t}\\n\\n\\th1,\\n\\th2,\\n\\th3,\\n\\th4,\\n\\th5,\\n\\th6 {\\n\\t\\tfont-weight: 600;\\n\\t\\tline-height: 120%;\\n\\t\\tmargin-top: 24px;\\n\\t\\tmargin-bottom: 12px;\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n\\n\\th1 {\\n\\t\\tfont-size: 36px;\\n\\t\\tmargin-top: 48px;\\n\\t}\\n\\n\\th2 {\\n\\t\\tfont-size: 30px;\\n\\t\\tmargin-top: 48px;\\n\\t}\\n\\n\\th3 {\\n\\t\\tfont-size: 24px;\\n\\t}\\n\\n\\th4 {\\n\\t\\tfont-size: 21px;\\n\\t}\\n\\n\\th5 {\\n\\t\\tfont-size: 17px;\\n\\t}\\n\\n\\th6 {\\n\\t\\tfont-size: 14px;\\n\\t}\\n\\n\\timg {\\n\\t\\tcursor: default;\\n\\t\\tmax-width: 100%;\\n\\t}\\n\\n\\thr {\\n\\t\\tpadding: 2px 0;\\n\\t\\tborder: none;\\n\\t\\tmargin: 3em 0;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\thr:after {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\tdisplay: block;\\n\\t\\theight: 1px;\\n\\t\\tbackground-color: var(--color-border-dark);\\n\\t\\tline-height: 2px;\\n\\t}\\n\\n\\tpre {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tpadding: 1em 1.3em;\\n\\t\\tmargin-bottom: 1em;\\n\\t}\\n\\n\\tp code {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tpadding: .1em .3em;\\n\\t}\\n\\n\\tli {\\n\\t\\tposition: relative;\\n\\t\\tpadding-left: 3px;\\n\\n\\t\\tp {\\n\\t\\t\\tmargin-bottom: 0.5em;\\n\\t\\t}\\n\\t}\\n\\n\\tul, ol {\\n\\t\\tpadding-left: 10px;\\n\\t\\tmargin-left: 10px;\\n\\t\\tmargin-bottom: 1em;\\n\\t}\\n\\n\\tul > li {\\n\\t\\tlist-style-type: disc;\\n\\t}\\n\\n\\t// Second-level list entries\\n\\tli ul > li {\\n\\t\\tlist-style-type: circle;\\n\\t}\\n\\n\\t// Third-level and further down list entries\\n\\tli li ul > li {\\n\\t\\tlist-style-type: square;\\n\\t}\\n\\n\\tblockquote {\\n\\t\\tpadding-left: 1em;\\n\\t\\tborder-left: 4px solid var(--color-primary-element);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin-left: 0;\\n\\t\\tmargin-right: 0;\\n\\t}\\n\\n\\t// Callout Block\\n\\t.callout {\\n\\t\\tbackground-color: var(--callout-background, var(--color-background-hover));\\n\\t\\tborder-left-color: var(--callout-border, var(--color-primary-element));\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tpadding: 1em;\\n\\t\\tpadding-left: 2em;\\n\\t\\tborder-left-width: 0.3em;\\n\\t\\tborder-left-style: solid;\\n\\t\\tposition: relative;\\n\\t\\tmargin-bottom: 0.5em;\\n\\t\\t+ & {\\n\\t\\t\\tmargin-top: 0.5em;\\n\\t\\t}\\n\\n\\t\\t// Block icon\\n\\t\\t&::before {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tbackground-image: var(--callout-icon, var(--icon-info-000));\\n\\t\\t\\tbackground-size: contain;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: calc(50% - 8px);\\n\\t\\t\\tleft: 0.4em;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\twidth: 16px;\\n\\t\\t}\\n\\n\\t\\t> p {\\n\\t\\t\\t&:last-child {\\n\\t\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Info (default) variables\\n\\t\\t&, &-info {\\n\\t\\t\\t// --callout-background: var(--color-primary-light);\\n\\t\\t\\t--callout-border: var(--color-primary-element);\\n\\t\\t\\t--callout-icon: var(--icon-info-000);\\n\\t\\t}\\n\\n\\t\\t// Warn variables\\n\\t\\t&-warn {\\n\\t\\t\\t// --callout-background: var(--color-warning-hover);\\n\\t\\t\\t--callout-border: var(--color-warning);\\n\\t\\t\\t--callout-icon: var(--icon-text-warn-000);\\n\\t\\t}\\n\\n\\t\\t// Error variables\\n\\t\\t&-error {\\n\\t\\t\\t// --callout-background: var(--color-error-hover);\\n\\t\\t\\t--callout-border: var(--color-error);\\n\\t\\t\\t--callout-icon: var(--icon-error-000);\\n\\t\\t}\\n\\n\\t\\t// Success variables\\n\\t\\t&-success {\\n\\t\\t\\t// --callout-background: var(--color-success-hover);\\n\\t\\t\\t--callout-border: var(--color-success);\\n\\t\\t\\t--callout-icon: var(--icon-text-success-000);\\n\\t\\t}\\n\\t}\\n\\n\\t// table variables\\n\\t@at-root :root {\\n\\t\\t--table-color-border: var(--color-border);\\n\\t\\t--table-color-heading: var(--color-text-maxcontrast);\\n\\t\\t--table-color-heading-border: var(--color-border-dark);\\n\\t\\t--table-color-background: var(--color-main-background);\\n\\t\\t--table-color-background-hover: var(--color-primary-light);\\n\\t\\t--table-border-radius: var(--border-radius);\\n\\t}\\n\\n\\ttable {\\n\\t\\tborder-spacing: 0;\\n\\t\\twidth: calc(100% - 50px);\\n\\t\\ttable-layout: auto;\\n\\t\\twhite-space: normal; // force text to wrapping\\n\\t\\tmargin-bottom: 1em;\\n\\t\\t+ & {\\n\\t\\t\\tmargin-top: 1em;\\n\\t\\t}\\n\\n\\n\\t\\ttd, th {\\n\\t\\t\\tborder: 1px solid var(--table-color-border);\\n\\t\\t\\tborder-left: 0;\\n\\t\\t\\tvertical-align: top;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\t&:first-child {\\n\\t\\t\\t\\tborder-left: 1px solid var(--table-color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\ttd {\\n\\t\\t\\tpadding: 0.5em 0.75em;\\n\\t\\t\\tborder-top: 0;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t\\tth {\\n\\t\\t\\tpadding: 0 0 0 0.75em;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tborder-bottom-color: var(--table-color-heading-border);\\n\\t\\t\\tcolor: var(--table-color-heading);\\n\\n\\t\\t\\t& > div {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\ttr {\\n\\t\\t\\tbackground-color: var(--table-color-background);\\n\\t\\t\\t&:hover, &:active, &:focus {\\n\\t\\t\\t\\tbackground-color: var(--table-color-background-hover);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\ttr:first-child {\\n\\t\\t\\tth:first-child { border-top-left-radius: var(--table-border-radius); }\\n\\t\\t\\tth:last-child { border-top-right-radius: var(--table-border-radius); }\\n\\t\\t}\\n\\n\\t\\ttr:last-child {\\n\\t\\t\\ttd:first-child { border-bottom-left-radius: var(--table-border-radius); }\\n\\t\\t\\ttd:last-child { border-bottom-right-radius: var(--table-border-radius); }\\n\\t\\t}\\n\\n\\t}\\n\\n}\\n\\n.ProseMirror-focused .ProseMirror-gapcursor {\\n\\tdisplay: block;\\n}\\n\\n.editor__content p.is-empty:first-child::before {\\n\\tcontent: attr(data-placeholder);\\n\\tfloat: left;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tpointer-events: none;\\n\\theight: 0;\\n}\\n\\n.editor__content {\\n\\ttab-size: 4;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../../img/checkbox-mark.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"div.ProseMirror{margin-top:44px;height:100%;position:relative;word-wrap:break-word;white-space:pre-wrap;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;padding:4px 8px 200px 14px;line-height:150%;font-size:14px;outline:none}div.ProseMirror[contenteditable=true],div.ProseMirror[contenteditable=false],div.ProseMirror [contenteditable=true],div.ProseMirror [contenteditable=false]{border:none !important;width:100%;background-color:transparent;color:var(--color-main-text);opacity:1;-webkit-user-select:text;user-select:text;font-size:14px}div.ProseMirror[contenteditable=true] *,div.ProseMirror [contenteditable=true] *{-webkit-user-modify:read-write-plaintext-only}div.ProseMirror .checkbox-item{display:flex;align-items:start;margin-left:-23px}div.ProseMirror .checkbox-item input[type=checkbox]{display:none}div.ProseMirror .checkbox-item:before{content:\\\"\\\";vertical-align:middle;margin:3px 6px 3px 2px;border:1px solid var(--color-text-maxcontrast);position:relative;display:block;border-radius:var(--border-radius);height:14px;width:14px;box-shadow:none !important;background-position:center;cursor:pointer}div.ProseMirror .checkbox-item.checked:before{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-color:var(--color-primary-element);border-color:var(--color-primary-element)}div.ProseMirror .checkbox-item label{display:block;flex-grow:1;max-width:calc(100% - 28px)}div.ProseMirror>*:first-child{margin-top:10px}div.ProseMirror a{color:var(--color-primary-element);text-decoration:underline;padding:.5em 0}div.ProseMirror p{margin-bottom:1em;line-height:150%}div.ProseMirror em{font-style:italic}div.ProseMirror h1,div.ProseMirror h2,div.ProseMirror h3,div.ProseMirror h4,div.ProseMirror h5,div.ProseMirror h6{font-weight:600;line-height:120%;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}div.ProseMirror h1{font-size:36px;margin-top:48px}div.ProseMirror h2{font-size:30px;margin-top:48px}div.ProseMirror h3{font-size:24px}div.ProseMirror h4{font-size:21px}div.ProseMirror h5{font-size:17px}div.ProseMirror h6{font-size:14px}div.ProseMirror img{cursor:default;max-width:100%}div.ProseMirror hr{padding:2px 0;border:none;margin:3em 0;width:100%}div.ProseMirror hr:after{content:\\\"\\\";display:block;height:1px;background-color:var(--color-border-dark);line-height:2px}div.ProseMirror pre{white-space:pre-wrap;background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:1em 1.3em;margin-bottom:1em}div.ProseMirror p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}div.ProseMirror li{position:relative;padding-left:3px}div.ProseMirror li p{margin-bottom:.5em}div.ProseMirror ul,div.ProseMirror ol{padding-left:10px;margin-left:10px;margin-bottom:1em}div.ProseMirror ul>li{list-style-type:disc}div.ProseMirror li ul>li{list-style-type:circle}div.ProseMirror li li ul>li{list-style-type:square}div.ProseMirror blockquote{padding-left:1em;border-left:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-left:0;margin-right:0}div.ProseMirror .callout{background-color:var(--callout-background, var(--color-background-hover));border-left-color:var(--callout-border, var(--color-primary-element));border-radius:var(--border-radius);padding:1em;padding-left:2em;border-left-width:.3em;border-left-style:solid;position:relative;margin-bottom:.5em}+div.ProseMirror .callout{margin-top:.5em}div.ProseMirror .callout::before{content:\\\"\\\";background-image:var(--callout-icon, var(--icon-info-000));background-size:contain;position:absolute;top:calc(50% - 8px);left:.4em;height:16px;width:16px}div.ProseMirror .callout>p:last-child{margin-bottom:0}div.ProseMirror .callout,div.ProseMirror .callout-info{--callout-border: var(--color-primary-element);--callout-icon: var(--icon-info-000)}div.ProseMirror .callout-warn{--callout-border: var(--color-warning);--callout-icon: var(--icon-text-warn-000)}div.ProseMirror .callout-error{--callout-border: var(--color-error);--callout-icon: var(--icon-error-000)}div.ProseMirror .callout-success{--callout-border: var(--color-success);--callout-icon: var(--icon-text-success-000)}:root{--table-color-border: var(--color-border);--table-color-heading: var(--color-text-maxcontrast);--table-color-heading-border: var(--color-border-dark);--table-color-background: var(--color-main-background);--table-color-background-hover: var(--color-primary-light);--table-border-radius: var(--border-radius)}div.ProseMirror table{border-spacing:0;width:calc(100% - 50px);table-layout:auto;white-space:normal;margin-bottom:1em}+div.ProseMirror table{margin-top:1em}div.ProseMirror table td,div.ProseMirror table th{border:1px solid var(--table-color-border);border-left:0;vertical-align:top;max-width:100%}div.ProseMirror table td:first-child,div.ProseMirror table th:first-child{border-left:1px solid var(--table-color-border)}div.ProseMirror table td{padding:.5em .75em;border-top:0;color:var(--color-main-text)}div.ProseMirror table th{padding:0 0 0 .75em;font-weight:normal;border-bottom-color:var(--table-color-heading-border);color:var(--table-color-heading)}div.ProseMirror table th>div{display:flex}div.ProseMirror table tr{background-color:var(--table-color-background)}div.ProseMirror table tr:hover,div.ProseMirror table tr:active,div.ProseMirror table tr:focus{background-color:var(--table-color-background-hover)}div.ProseMirror table tr:first-child th:first-child{border-top-left-radius:var(--table-border-radius)}div.ProseMirror table tr:first-child th:last-child{border-top-right-radius:var(--table-border-radius)}div.ProseMirror table tr:last-child td:first-child{border-bottom-left-radius:var(--table-border-radius)}div.ProseMirror table tr:last-child td:last-child{border-bottom-right-radius:var(--table-border-radius)}.ProseMirror-focused .ProseMirror-gapcursor{display:block}.editor__content p.is-empty:first-child::before{content:attr(data-placeholder);float:left;color:var(--color-text-maxcontrast);pointer-events:none;height:0}.editor__content{tab-size:4}\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/prosemirror.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"@use \\\"sass:selector\\\";\\n\\n/* Document rendering styles */\\ndiv.ProseMirror {\\n\\tmargin-top: 44px;\\n\\theight: 100%;\\n\\tposition: relative;\\n\\tword-wrap: break-word;\\n\\twhite-space: pre-wrap;\\n\\t-webkit-font-variant-ligatures: none;\\n\\tfont-variant-ligatures: none;\\n\\tpadding: 4px 8px 200px 14px;\\n\\tline-height: 150%;\\n\\tfont-size: 14px;\\n\\toutline: none;\\n\\n\\t&[contenteditable=true],\\n\\t&[contenteditable=false],\\n\\t[contenteditable=true],\\n\\t[contenteditable=false] {\\n\\t\\tborder: none !important;\\n\\t\\twidth: 100%;\\n\\t\\tbackground-color: transparent;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\topacity: 1;\\n\\t\\t-webkit-user-select: text;\\n\\t\\tuser-select: text;\\n\\t\\tfont-size: 14px;\\n\\t}\\n\\n\\t&[contenteditable=true],\\n\\t[contenteditable=true] {\\n\\t\\t* {\\n\\t\\t\\t-webkit-user-modify: read-write-plaintext-only;\\n\\t\\t}\\n\\t}\\n\\n\\t.checkbox-item {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: start;\\n\\t\\t// Left-align with list item text\\n\\t\\tmargin-left: -23px;\\n\\n\\t\\tinput[type=checkbox] {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t\\t&:before {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t\\tmargin: 3px 6px 3px 2px;\\n\\t\\t\\tborder: 1px solid var(--color-text-maxcontrast);\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\theight: 14px;\\n\\t\\t\\twidth: 14px;\\n\\t\\t\\tbox-shadow: none !important;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t\\t&.checked:before {\\n\\t\\t\\tbackground-image: url('../../img/checkbox-mark.svg');\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\t\\tlabel {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tmax-width: calc(100% - 28px);\\n\\t\\t}\\n\\t}\\n\\n\\t> *:first-child {\\n\\t\\tmargin-top: 10px;\\n\\t}\\n\\n\\ta {\\n\\t\\tcolor: var(--color-primary-element);\\n\\t\\ttext-decoration: underline;\\n\\t\\tpadding: .5em 0;\\n\\t}\\n\\n\\tp {\\n\\t\\tmargin-bottom: 1em;\\n\\t\\tline-height: 150%;\\n\\t}\\n\\n\\tem {\\n\\t\\tfont-style: italic;\\n\\t}\\n\\n\\th1,\\n\\th2,\\n\\th3,\\n\\th4,\\n\\th5,\\n\\th6 {\\n\\t\\tfont-weight: 600;\\n\\t\\tline-height: 120%;\\n\\t\\tmargin-top: 24px;\\n\\t\\tmargin-bottom: 12px;\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n\\n\\th1 {\\n\\t\\tfont-size: 36px;\\n\\t\\tmargin-top: 48px;\\n\\t}\\n\\n\\th2 {\\n\\t\\tfont-size: 30px;\\n\\t\\tmargin-top: 48px;\\n\\t}\\n\\n\\th3 {\\n\\t\\tfont-size: 24px;\\n\\t}\\n\\n\\th4 {\\n\\t\\tfont-size: 21px;\\n\\t}\\n\\n\\th5 {\\n\\t\\tfont-size: 17px;\\n\\t}\\n\\n\\th6 {\\n\\t\\tfont-size: 14px;\\n\\t}\\n\\n\\timg {\\n\\t\\tcursor: default;\\n\\t\\tmax-width: 100%;\\n\\t}\\n\\n\\thr {\\n\\t\\tpadding: 2px 0;\\n\\t\\tborder: none;\\n\\t\\tmargin: 3em 0;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\thr:after {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\tdisplay: block;\\n\\t\\theight: 1px;\\n\\t\\tbackground-color: var(--color-border-dark);\\n\\t\\tline-height: 2px;\\n\\t}\\n\\n\\tpre {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tpadding: 1em 1.3em;\\n\\t\\tmargin-bottom: 1em;\\n\\t}\\n\\n\\tp code {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tpadding: .1em .3em;\\n\\t}\\n\\n\\tli {\\n\\t\\tposition: relative;\\n\\t\\tpadding-left: 3px;\\n\\n\\t\\tp {\\n\\t\\t\\tmargin-bottom: 0.5em;\\n\\t\\t}\\n\\t}\\n\\n\\tul, ol {\\n\\t\\tpadding-left: 10px;\\n\\t\\tmargin-left: 10px;\\n\\t\\tmargin-bottom: 1em;\\n\\t}\\n\\n\\tul > li {\\n\\t\\tlist-style-type: disc;\\n\\t}\\n\\n\\t// Second-level list entries\\n\\tli ul > li {\\n\\t\\tlist-style-type: circle;\\n\\t}\\n\\n\\t// Third-level and further down list entries\\n\\tli li ul > li {\\n\\t\\tlist-style-type: square;\\n\\t}\\n\\n\\tblockquote {\\n\\t\\tpadding-left: 1em;\\n\\t\\tborder-left: 4px solid var(--color-primary-element);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin-left: 0;\\n\\t\\tmargin-right: 0;\\n\\t}\\n\\n\\t// Callout Block\\n\\t.callout {\\n\\t\\tbackground-color: var(--callout-background, var(--color-background-hover));\\n\\t\\tborder-left-color: var(--callout-border, var(--color-primary-element));\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tpadding: 1em;\\n\\t\\tpadding-left: 2em;\\n\\t\\tborder-left-width: 0.3em;\\n\\t\\tborder-left-style: solid;\\n\\t\\tposition: relative;\\n\\t\\tmargin-bottom: 0.5em;\\n\\t\\t+ & {\\n\\t\\t\\tmargin-top: 0.5em;\\n\\t\\t}\\n\\n\\t\\t// Block icon\\n\\t\\t&::before {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tbackground-image: var(--callout-icon, var(--icon-info-000));\\n\\t\\t\\tbackground-size: contain;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: calc(50% - 8px);\\n\\t\\t\\tleft: 0.4em;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\twidth: 16px;\\n\\t\\t}\\n\\n\\t\\t> p {\\n\\t\\t\\t&:last-child {\\n\\t\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Info (default) variables\\n\\t\\t&, &-info {\\n\\t\\t\\t// --callout-background: var(--color-primary-light);\\n\\t\\t\\t--callout-border: var(--color-primary-element);\\n\\t\\t\\t--callout-icon: var(--icon-info-000);\\n\\t\\t}\\n\\n\\t\\t// Warn variables\\n\\t\\t&-warn {\\n\\t\\t\\t// --callout-background: var(--color-warning-hover);\\n\\t\\t\\t--callout-border: var(--color-warning);\\n\\t\\t\\t--callout-icon: var(--icon-text-warn-000);\\n\\t\\t}\\n\\n\\t\\t// Error variables\\n\\t\\t&-error {\\n\\t\\t\\t// --callout-background: var(--color-error-hover);\\n\\t\\t\\t--callout-border: var(--color-error);\\n\\t\\t\\t--callout-icon: var(--icon-error-000);\\n\\t\\t}\\n\\n\\t\\t// Success variables\\n\\t\\t&-success {\\n\\t\\t\\t// --callout-background: var(--color-success-hover);\\n\\t\\t\\t--callout-border: var(--color-success);\\n\\t\\t\\t--callout-icon: var(--icon-text-success-000);\\n\\t\\t}\\n\\t}\\n\\n\\t// table variables\\n\\t@at-root :root {\\n\\t\\t--table-color-border: var(--color-border);\\n\\t\\t--table-color-heading: var(--color-text-maxcontrast);\\n\\t\\t--table-color-heading-border: var(--color-border-dark);\\n\\t\\t--table-color-background: var(--color-main-background);\\n\\t\\t--table-color-background-hover: var(--color-primary-light);\\n\\t\\t--table-border-radius: var(--border-radius);\\n\\t}\\n\\n\\ttable {\\n\\t\\tborder-spacing: 0;\\n\\t\\twidth: calc(100% - 50px);\\n\\t\\ttable-layout: auto;\\n\\t\\twhite-space: normal; // force text to wrapping\\n\\t\\tmargin-bottom: 1em;\\n\\t\\t+ & {\\n\\t\\t\\tmargin-top: 1em;\\n\\t\\t}\\n\\n\\n\\t\\ttd, th {\\n\\t\\t\\tborder: 1px solid var(--table-color-border);\\n\\t\\t\\tborder-left: 0;\\n\\t\\t\\tvertical-align: top;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\t&:first-child {\\n\\t\\t\\t\\tborder-left: 1px solid var(--table-color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\ttd {\\n\\t\\t\\tpadding: 0.5em 0.75em;\\n\\t\\t\\tborder-top: 0;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t\\tth {\\n\\t\\t\\tpadding: 0 0 0 0.75em;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tborder-bottom-color: var(--table-color-heading-border);\\n\\t\\t\\tcolor: var(--table-color-heading);\\n\\n\\t\\t\\t& > div {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\ttr {\\n\\t\\t\\tbackground-color: var(--table-color-background);\\n\\t\\t\\t&:hover, &:active, &:focus {\\n\\t\\t\\t\\tbackground-color: var(--table-color-background-hover);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\ttr:first-child {\\n\\t\\t\\tth:first-child { border-top-left-radius: var(--table-border-radius); }\\n\\t\\t\\tth:last-child { border-top-right-radius: var(--table-border-radius); }\\n\\t\\t}\\n\\n\\t\\ttr:last-child {\\n\\t\\t\\ttd:first-child { border-bottom-left-radius: var(--table-border-radius); }\\n\\t\\t\\ttd:last-child { border-bottom-right-radius: var(--table-border-radius); }\\n\\t\\t}\\n\\n\\t}\\n\\n}\\n\\n.ProseMirror-focused .ProseMirror-gapcursor {\\n\\tdisplay: block;\\n}\\n\\n.editor__content p.is-empty:first-child::before {\\n\\tcontent: attr(data-placeholder);\\n\\tfloat: left;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tpointer-events: none;\\n\\theight: 0;\\n}\\n\\n.editor__content {\\n\\ttab-size: 4;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".image[data-v-37a183c4]{margin:0;padding:0}.image__caption[data-v-37a183c4]{text-align:center;color:var(--color-text-lighter);display:flex;align-items:center;justify-content:center}.image__caption input[type=text][data-v-37a183c4]{max-width:80%;border:none;text-align:center;background-color:transparent}.image__loading[data-v-37a183c4]{height:100px}.image__view[data-v-37a183c4]{text-align:center;position:relative}.image__view img[data-v-37a183c4]{max-width:100%}.image__main[data-v-37a183c4]{max-height:calc(100vh - 50px - 50px)}.fade-enter-active[data-v-37a183c4]{transition:opacity .3s ease-in-out}.fade-enter-to[data-v-37a183c4]{opacity:1}.fade-enter[data-v-37a183c4]{opacity:0}.trash-icon[data-v-37a183c4]{position:absolute;right:0;display:flex;justify-content:flex-end;align-items:center}.trash-icon svg[data-v-37a183c4]{cursor:pointer}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/nodes/ImageView.vue\"],\"names\":[],\"mappings\":\"AAmVA,wBACC,QAAA,CACA,SAAA,CAGD,iCACC,iBAAA,CACA,+BAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,kDACC,aAAA,CACA,WAAA,CACA,iBAAA,CACA,4BAAA,CAIF,iCACC,YAAA,CAGD,8BACC,iBAAA,CACA,iBAAA,CAEA,kCACC,cAAA,CAIF,8BACC,oCAAA,CAGD,oCACC,kCAAA,CAGD,gCACC,SAAA,CAGD,6BACC,SAAA,CAGD,6BACC,iBAAA,CACA,OAAA,CACA,YAAA,CACA,wBAAA,CACA,kBAAA,CACA,iCACC,cAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.image {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n}\\n\\n.image__caption {\\n\\ttext-align: center;\\n\\tcolor: var(--color-text-lighter);\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tinput[type='text'] {\\n\\t\\tmax-width: 80%;\\n\\t\\tborder: none;\\n\\t\\ttext-align: center;\\n\\t\\tbackground-color: transparent;\\n\\t}\\n}\\n\\n.image__loading {\\n\\theight: 100px;\\n}\\n\\n.image__view {\\n\\ttext-align: center;\\n\\tposition: relative;\\n\\n\\timg {\\n\\t\\tmax-width: 100%;\\n\\t}\\n}\\n\\n.image__main {\\n\\tmax-height: calc(100vh - 50px - 50px);\\n}\\n\\n.fade-enter-active {\\n\\ttransition: opacity .3s ease-in-out;\\n}\\n\\n.fade-enter-to {\\n\\topacity: 1;\\n}\\n\\n.fade-enter {\\n\\topacity: 0;\\n}\\n\\n.trash-icon {\\n\\tposition: absolute;\\n\\tright: 0;\\n\\tdisplay: flex;\\n\\tjustify-content: flex-end;\\n\\talign-items: center;\\n\\tsvg {\\n\\t\\tcursor: pointer;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"td[data-v-18b35f45]{position:relative}td .container[data-v-18b35f45]{display:flex;flex-wrap:wrap;min-height:36px}td .content[data-v-18b35f45]{flex:1 1 0;margin:0;padding-top:.6em}td .action-item[data-v-18b35f45]{position:absolute;right:-48px;flex:0 1 auto;display:none;top:2px}td:last-child .action-item[data-v-18b35f45]{display:block;opacity:50%}td:last-child:hover .action-item[data-v-18b35f45],td:last-child:active .action-item[data-v-18b35f45],td:last-child:focus .action-item[data-v-18b35f45],td:last-child:focus-within .action-item[data-v-18b35f45]{opacity:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/nodes/TableCellView.vue\"],\"names\":[],\"mappings\":\"AAoGA,oBACC,iBAAA,CAEA,+BACC,YAAA,CACA,cAAA,CACA,eAAA,CAGD,6BACC,UAAA,CACA,QAAA,CACA,gBAAA,CAGD,iCACC,iBAAA,CACA,WAAA,CACA,aAAA,CACA,YAAA,CACA,OAAA,CAIA,4CACC,aAAA,CACA,WAAA,CAIA,gNACC,YAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\ntd {\\n\\tposition: relative;\\n\\n\\t.container {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tmin-height: 36px;\\n\\t}\\n\\n\\t.content {\\n\\t\\tflex: 1 1 0;\\n\\t\\tmargin: 0;\\n\\t\\tpadding-top: 0.6em;\\n\\t}\\n\\n\\t.action-item {\\n\\t\\tposition: absolute;\\n\\t\\tright: -48px;\\n\\t\\tflex: 0 1 auto;\\n\\t\\tdisplay: none;\\n\\t\\ttop: 2px;\\n\\t}\\n\\n\\t&:last-child {\\n\\t\\t.action-item {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\topacity: 50%;\\n\\t\\t}\\n\\n\\t\\t&:hover, &:active, &:focus, &:focus-within {\\n\\t\\t\\t.action-item {\\n\\t\\t\\t\\topacity: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"th .content[data-v-49e3b9b6]{margin:0;padding-top:.75em;flex-grow:1}th .action-item[data-v-49e3b9b6]{opacity:50%}th:hover .action-item[data-v-49e3b9b6],th:active .action-item[data-v-49e3b9b6],th:focus .action-item[data-v-49e3b9b6],th:focus-within .action-item[data-v-49e3b9b6]{opacity:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/nodes/TableHeaderView.vue\"],\"names\":[],\"mappings\":\"AAsGC,6BACC,QAAA,CACA,iBAAA,CACA,WAAA,CAGD,iCACC,WAAA,CAIA,oKACC,YAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nth {\\n\\n\\t.content {\\n\\t\\tmargin: 0;\\n\\t\\tpadding-top: 0.75em;\\n\\t\\tflex-grow: 1;\\n\\t}\\n\\n\\t.action-item {\\n\\t\\topacity: 50%;\\n\\t}\\n\\n\\t&:hover, &:active, &:focus, &:focus-within {\\n\\t\\t.action-item {\\n\\t\\t\\topacity: 100%;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".clearfix[data-v-1be1a6a8]{clear:both}table[data-v-1be1a6a8]{float:left}.table-settings[data-v-1be1a6a8]{padding-left:3px;opacity:.5}.table-settings[data-v-1be1a6a8]:hover{opacity:1}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/nodes/TableView.vue\"],\"names\":[],\"mappings\":\"AAsEA,2BACC,UAAA,CAGD,uBACC,UAAA,CAGD,iCACC,gBAAA,CACA,UAAA,CAEA,uCACC,SAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.clearfix {\\n\\tclear: both;\\n}\\n\\ntable {\\n\\tfloat: left;\\n}\\n\\n.table-settings {\\n\\tpadding-left: 3px;\\n\\topacity: .5;\\n\\n\\t&:hover {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"body[data-v-ecc9f54c]{position:fixed}#direct-editor[data-v-ecc9f54c]{width:100%;height:100%;position:fixed;overflow:hidden}#direct-editor[data-v-ecc9f54c] #editor-container{height:100%;top:0}#direct-editor[data-v-ecc9f54c] #editor-wrapper div.ProseMirror{margin-top:0}pre[data-v-ecc9f54c]{width:100%;max-width:700px;margin:auto;background-color:var(--color-background-dark)}button[data-v-ecc9f54c]{width:44px;height:44px;margin:0;background-size:16px;border:0;background-color:transparent;opacity:.5;color:var(--color-main-text);background-position:center center;vertical-align:top}button[data-v-ecc9f54c]:hover,button[data-v-ecc9f54c]:focus,button[data-v-ecc9f54c]:active{background-color:var(--color-background-dark)}button.is-active[data-v-ecc9f54c],button[data-v-ecc9f54c]:hover,button[data-v-ecc9f54c]:focus{opacity:1}button.icon-undo[data-v-ecc9f54c],button.icon-redo[data-v-ecc9f54c]{opacity:.4}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/DirectEditing.vue\"],\"names\":[],\"mappings\":\"AAgIA,sBACC,cAAA,CAGD,gCACC,UAAA,CACA,WAAA,CACA,cAAA,CACA,eAAA,CAEA,kDACC,WAAA,CACA,KAAA,CAED,gEACC,YAAA,CAIF,qBACC,UAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CAGD,wBACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,oBAAA,CACA,QAAA,CACA,4BAAA,CACA,UAAA,CACA,4BAAA,CACA,iCAAA,CACA,kBAAA,CACA,2FACC,6CAAA,CAED,8FAGC,SAAA,CAGD,oEACC,UAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nbody {\\n\\tposition: fixed;\\n}\\n\\n#direct-editor {\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tposition: fixed;\\n\\toverflow: hidden;\\n\\n\\t&::v-deep #editor-container {\\n\\t\\theight: 100%;\\n\\t\\ttop: 0;\\n\\t}\\n\\t&::v-deep #editor-wrapper div.ProseMirror {\\n\\t\\tmargin-top: 0;\\n\\t}\\n}\\n\\npre {\\n\\twidth: 100%;\\n\\tmax-width: 700px;\\n\\tmargin: auto;\\n\\tbackground-color: var(--color-background-dark);\\n}\\n\\nbutton {\\n\\twidth: 44px;\\n\\theight: 44px;\\n\\tmargin: 0;\\n\\tbackground-size: 16px;\\n\\tborder: 0;\\n\\tbackground-color: transparent;\\n\\topacity: .5;\\n\\tcolor: var(--color-main-text);\\n\\tbackground-position: center center;\\n\\tvertical-align: top;\\n\\t&:hover, &:focus, &:active {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\t&.is-active,\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\t&.icon-undo, &.icon-redo {\\n\\t\\topacity: .4;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","function deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\nvar deepFreezeEs6 = deepFreeze;\nvar _default = deepFreeze;\ndeepFreezeEs6.default = _default;\n\n/** @implements CallbackResponse */\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = ' `\n };\n\n const VuePlugin = {\n install(Vue) {\n Vue.component('highlightjs', Component);\n }\n };\n\n return { Component, VuePlugin };\n}\n\n/* plugin itself */\n\n/** @type {HLJSPlugin} */\nconst mergeHTMLPlugin = {\n \"after:highlightElement\": ({ el, result, text }) => {\n const originalStream = nodeStream(el);\n if (!originalStream.length) return;\n\n const resultNode = document.createElement('div');\n resultNode.innerHTML = result.value;\n result.value = mergeStreams(originalStream, nodeStream(resultNode), text);\n }\n};\n\n/* Stream merging support functions */\n\n/**\n * @typedef Event\n * @property {'start'|'stop'} event\n * @property {number} offset\n * @property {Node} node\n */\n\n/**\n * @param {Node} node\n */\nfunction tag(node) {\n return node.nodeName.toLowerCase();\n}\n\n/**\n * @param {Node} node\n */\nfunction nodeStream(node) {\n /** @type Event[] */\n const result = [];\n (function _nodeStream(node, offset) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n if (child.nodeType === 3) {\n offset += child.nodeValue.length;\n } else if (child.nodeType === 1) {\n result.push({\n event: 'start',\n offset: offset,\n node: child\n });\n offset = _nodeStream(child, offset);\n // Prevent void elements from having an end tag that would actually\n // double them in the output. There are more void elements in HTML\n // but we list only those realistically expected in code display.\n if (!tag(child).match(/br|hr|img|input/)) {\n result.push({\n event: 'stop',\n offset: offset,\n node: child\n });\n }\n }\n }\n return offset;\n })(node, 0);\n return result;\n}\n\n/**\n * @param {any} original - the original stream\n * @param {any} highlighted - stream of the highlighted source\n * @param {string} value - the original source itself\n */\nfunction mergeStreams(original, highlighted, value) {\n let processed = 0;\n let result = '';\n const nodeStack = [];\n\n function selectStream() {\n if (!original.length || !highlighted.length) {\n return original.length ? original : highlighted;\n }\n if (original[0].offset !== highlighted[0].offset) {\n return (original[0].offset < highlighted[0].offset) ? original : highlighted;\n }\n\n /*\n To avoid starting the stream just before it should stop the order is\n ensured that original always starts first and closes last:\n\n if (event1 == 'start' && event2 == 'start')\n return original;\n if (event1 == 'start' && event2 == 'stop')\n return highlighted;\n if (event1 == 'stop' && event2 == 'start')\n return original;\n if (event1 == 'stop' && event2 == 'stop')\n return highlighted;\n\n ... which is collapsed to:\n */\n return highlighted[0].event === 'start' ? original : highlighted;\n }\n\n /**\n * @param {Node} node\n */\n function open(node) {\n /** @param {Attr} attr */\n function attributeString(attr) {\n return ' ' + attr.nodeName + '=\"' + escapeHTML(attr.value) + '\"';\n }\n // @ts-ignore\n result += '<' + tag(node) + [].map.call(node.attributes, attributeString).join('') + '>';\n }\n\n /**\n * @param {Node} node\n */\n function close(node) {\n result += '' + tag(node) + '>';\n }\n\n /**\n * @param {Event} event\n */\n function render(event) {\n (event.event === 'start' ? open : close)(event.node);\n }\n\n while (original.length || highlighted.length) {\n let stream = selectStream();\n result += escapeHTML(value.substring(processed, stream[0].offset));\n processed = stream[0].offset;\n if (stream === original) {\n /*\n On any opening or closing tag of the original markup we first close\n the entire highlighted node stack, then render the original tag along\n with all the following original tags at the same offset and then\n reopen all the tags on the highlighted stack.\n */\n nodeStack.reverse().forEach(close);\n do {\n render(stream.splice(0, 1)[0]);\n stream = selectStream();\n } while (stream === original && stream.length && stream[0].offset === processed);\n nodeStack.reverse().forEach(open);\n } else {\n if (stream[0].event === 'start') {\n nodeStack.push(stream[0].node);\n } else {\n nodeStack.pop();\n }\n render(stream.splice(0, 1)[0]);\n }\n }\n return result + escapeHTML(value.substr(processed));\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record blocks on a page\n *\n * @type {Function & {called?: boolean}}\n */\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n if (initHighlighting.called) return;\n initHighlighting.called = true;\n\n deprecated(\"10.6.0\", \"initHighlighting() is deprecated. Use highlightAll() instead.\");\n\n const blocks = document.querySelectorAll('pre code');\n blocks.forEach(highlightElement);\n };\n\n // Higlights all when DOMContentLoaded fires\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() is deprecated. Use highlightAll() instead.\");\n wantsHighlight = true;\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll('pre code');\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n intended usage: When one language truly requires another\n\n Unlike `getLanguage`, this will throw when the requested language\n is not available.\n\n @param {string} name - name of the language to fetch/require\n @returns {Language | never}\n */\n function requireLanguage(name) {\n deprecated(\"10.4.0\", \"requireLanguage will be removed entirely in v11.\");\n deprecated(\"10.4.0\", \"Please see https://github.com/highlightjs/highlight.js/pull/2844\");\n\n const lang = getLanguage(name);\n if (lang) { return lang; }\n\n const err = new Error('The \\'{}\\' language is required, but not loaded.'.replace('{}', name));\n throw err;\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n Note: fixMarkup is deprecated and will be removed entirely in v11\n\n @param {string} arg\n @returns {string}\n */\n function deprecateFixMarkup(arg) {\n deprecated(\"10.2.0\", \"fixMarkup will be removed entirely in v11.0\");\n deprecated(\"10.2.0\", \"Please see https://github.com/highlightjs/highlight.js/issues/2534\");\n\n return fixMarkup(arg);\n }\n\n /**\n *\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n fixMarkup: deprecateFixMarkup,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n requireLanguage,\n autoDetection,\n inherit: inherit$1,\n addPlugin,\n // plugins for frameworks\n vuePlugin: BuildVuePlugin(hljs).VuePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreezeEs6(MODES[key]);\n }\n }\n\n // merge all the modes/regexs into our main object\n Object.assign(hljs, MODES);\n\n // built-in plugins, likely to be moved out of core in the future\n hljs.addPlugin(brPlugin); // slated to be removed in v11\n hljs.addPlugin(mergeHTMLPlugin);\n hljs.addPlugin(tabReplacePlugin);\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\n","var map = {\n\t\"./1c\": [\n\t\t73870,\n\t\t\"highlight/1c\"\n\t],\n\t\"./1c.js\": [\n\t\t73870,\n\t\t\"highlight/1c\"\n\t],\n\t\"./abnf\": [\n\t\t1122,\n\t\t\"highlight/abnf\"\n\t],\n\t\"./abnf.js\": [\n\t\t1122,\n\t\t\"highlight/abnf\"\n\t],\n\t\"./accesslog\": [\n\t\t63074,\n\t\t\"highlight/accesslog\"\n\t],\n\t\"./accesslog.js\": [\n\t\t63074,\n\t\t\"highlight/accesslog\"\n\t],\n\t\"./actionscript\": [\n\t\t39696,\n\t\t\"highlight/actionscript\"\n\t],\n\t\"./actionscript.js\": [\n\t\t39696,\n\t\t\"highlight/actionscript\"\n\t],\n\t\"./ada\": [\n\t\t19389,\n\t\t\"highlight/ada\"\n\t],\n\t\"./ada.js\": [\n\t\t19389,\n\t\t\"highlight/ada\"\n\t],\n\t\"./angelscript\": [\n\t\t46147,\n\t\t\"highlight/angelscript\"\n\t],\n\t\"./angelscript.js\": [\n\t\t46147,\n\t\t\"highlight/angelscript\"\n\t],\n\t\"./apache\": [\n\t\t96936,\n\t\t\"highlight/apache\"\n\t],\n\t\"./apache.js\": [\n\t\t96936,\n\t\t\"highlight/apache\"\n\t],\n\t\"./applescript\": [\n\t\t5460,\n\t\t\"highlight/applescript\"\n\t],\n\t\"./applescript.js\": [\n\t\t5460,\n\t\t\"highlight/applescript\"\n\t],\n\t\"./arcade\": [\n\t\t43178,\n\t\t\"highlight/arcade\"\n\t],\n\t\"./arcade.js\": [\n\t\t43178,\n\t\t\"highlight/arcade\"\n\t],\n\t\"./arduino\": [\n\t\t1232,\n\t\t\"highlight/arduino\"\n\t],\n\t\"./arduino.js\": [\n\t\t1232,\n\t\t\"highlight/arduino\"\n\t],\n\t\"./armasm\": [\n\t\t71196,\n\t\t\"highlight/armasm\"\n\t],\n\t\"./armasm.js\": [\n\t\t71196,\n\t\t\"highlight/armasm\"\n\t],\n\t\"./asciidoc\": [\n\t\t90630,\n\t\t\"highlight/asciidoc\"\n\t],\n\t\"./asciidoc.js\": [\n\t\t90630,\n\t\t\"highlight/asciidoc\"\n\t],\n\t\"./aspectj\": [\n\t\t25044,\n\t\t\"highlight/aspectj\"\n\t],\n\t\"./aspectj.js\": [\n\t\t25044,\n\t\t\"highlight/aspectj\"\n\t],\n\t\"./autohotkey\": [\n\t\t67130,\n\t\t\"highlight/autohotkey\"\n\t],\n\t\"./autohotkey.js\": [\n\t\t67130,\n\t\t\"highlight/autohotkey\"\n\t],\n\t\"./autoit\": [\n\t\t75039,\n\t\t\"highlight/autoit\"\n\t],\n\t\"./autoit.js\": [\n\t\t75039,\n\t\t\"highlight/autoit\"\n\t],\n\t\"./avrasm\": [\n\t\t18324,\n\t\t\"highlight/avrasm\"\n\t],\n\t\"./avrasm.js\": [\n\t\t18324,\n\t\t\"highlight/avrasm\"\n\t],\n\t\"./awk\": [\n\t\t40070,\n\t\t\"highlight/awk\"\n\t],\n\t\"./awk.js\": [\n\t\t40070,\n\t\t\"highlight/awk\"\n\t],\n\t\"./axapta\": [\n\t\t80149,\n\t\t\"highlight/axapta\"\n\t],\n\t\"./axapta.js\": [\n\t\t80149,\n\t\t\"highlight/axapta\"\n\t],\n\t\"./bash\": [\n\t\t61519,\n\t\t\"highlight/bash\"\n\t],\n\t\"./bash.js\": [\n\t\t61519,\n\t\t\"highlight/bash\"\n\t],\n\t\"./basic\": [\n\t\t56827,\n\t\t\"highlight/basic\"\n\t],\n\t\"./basic.js\": [\n\t\t56827,\n\t\t\"highlight/basic\"\n\t],\n\t\"./bnf\": [\n\t\t78349,\n\t\t\"highlight/bnf\"\n\t],\n\t\"./bnf.js\": [\n\t\t78349,\n\t\t\"highlight/bnf\"\n\t],\n\t\"./brainfuck\": [\n\t\t44536,\n\t\t\"highlight/brainfuck\"\n\t],\n\t\"./brainfuck.js\": [\n\t\t44536,\n\t\t\"highlight/brainfuck\"\n\t],\n\t\"./c\": [\n\t\t25745,\n\t\t\"highlight/c\"\n\t],\n\t\"./c-like\": [\n\t\t58212,\n\t\t\"highlight/c-like\"\n\t],\n\t\"./c-like.js\": [\n\t\t58212,\n\t\t\"highlight/c-like\"\n\t],\n\t\"./c.js\": [\n\t\t25745,\n\t\t\"highlight/c\"\n\t],\n\t\"./cal\": [\n\t\t45041,\n\t\t\"highlight/cal\"\n\t],\n\t\"./cal.js\": [\n\t\t45041,\n\t\t\"highlight/cal\"\n\t],\n\t\"./capnproto\": [\n\t\t51446,\n\t\t\"highlight/capnproto\"\n\t],\n\t\"./capnproto.js\": [\n\t\t51446,\n\t\t\"highlight/capnproto\"\n\t],\n\t\"./ceylon\": [\n\t\t1795,\n\t\t\"highlight/ceylon\"\n\t],\n\t\"./ceylon.js\": [\n\t\t1795,\n\t\t\"highlight/ceylon\"\n\t],\n\t\"./clean\": [\n\t\t82280,\n\t\t\"highlight/clean\"\n\t],\n\t\"./clean.js\": [\n\t\t82280,\n\t\t\"highlight/clean\"\n\t],\n\t\"./clojure\": [\n\t\t36134,\n\t\t\"highlight/clojure\"\n\t],\n\t\"./clojure-repl\": [\n\t\t36746,\n\t\t\"highlight/clojure-repl\"\n\t],\n\t\"./clojure-repl.js\": [\n\t\t36746,\n\t\t\"highlight/clojure-repl\"\n\t],\n\t\"./clojure.js\": [\n\t\t36134,\n\t\t\"highlight/clojure\"\n\t],\n\t\"./cmake\": [\n\t\t71422,\n\t\t\"highlight/cmake\"\n\t],\n\t\"./cmake.js\": [\n\t\t71422,\n\t\t\"highlight/cmake\"\n\t],\n\t\"./coffeescript\": [\n\t\t6691,\n\t\t\"highlight/coffeescript\"\n\t],\n\t\"./coffeescript.js\": [\n\t\t6691,\n\t\t\"highlight/coffeescript\"\n\t],\n\t\"./coq\": [\n\t\t73621,\n\t\t\"highlight/coq\"\n\t],\n\t\"./coq.js\": [\n\t\t73621,\n\t\t\"highlight/coq\"\n\t],\n\t\"./cos\": [\n\t\t69586,\n\t\t\"highlight/cos\"\n\t],\n\t\"./cos.js\": [\n\t\t69586,\n\t\t\"highlight/cos\"\n\t],\n\t\"./cpp\": [\n\t\t74006,\n\t\t\"highlight/cpp\"\n\t],\n\t\"./cpp.js\": [\n\t\t74006,\n\t\t\"highlight/cpp\"\n\t],\n\t\"./crmsh\": [\n\t\t37641,\n\t\t\"highlight/crmsh\"\n\t],\n\t\"./crmsh.js\": [\n\t\t37641,\n\t\t\"highlight/crmsh\"\n\t],\n\t\"./crystal\": [\n\t\t91139,\n\t\t\"highlight/crystal\"\n\t],\n\t\"./crystal.js\": [\n\t\t91139,\n\t\t\"highlight/crystal\"\n\t],\n\t\"./csharp\": [\n\t\t681,\n\t\t\"highlight/csharp\"\n\t],\n\t\"./csharp.js\": [\n\t\t681,\n\t\t\"highlight/csharp\"\n\t],\n\t\"./csp\": [\n\t\t60530,\n\t\t\"highlight/csp\"\n\t],\n\t\"./csp.js\": [\n\t\t60530,\n\t\t\"highlight/csp\"\n\t],\n\t\"./css\": [\n\t\t68914,\n\t\t\"highlight/css\"\n\t],\n\t\"./css.js\": [\n\t\t68914,\n\t\t\"highlight/css\"\n\t],\n\t\"./d\": [\n\t\t89968,\n\t\t\"highlight/d\"\n\t],\n\t\"./d.js\": [\n\t\t89968,\n\t\t\"highlight/d\"\n\t],\n\t\"./dart\": [\n\t\t65778,\n\t\t\"highlight/dart\"\n\t],\n\t\"./dart.js\": [\n\t\t65778,\n\t\t\"highlight/dart\"\n\t],\n\t\"./delphi\": [\n\t\t48008,\n\t\t\"highlight/delphi\"\n\t],\n\t\"./delphi.js\": [\n\t\t48008,\n\t\t\"highlight/delphi\"\n\t],\n\t\"./diff\": [\n\t\t91833,\n\t\t\"highlight/diff\"\n\t],\n\t\"./diff.js\": [\n\t\t91833,\n\t\t\"highlight/diff\"\n\t],\n\t\"./django\": [\n\t\t45253,\n\t\t\"highlight/django\"\n\t],\n\t\"./django.js\": [\n\t\t45253,\n\t\t\"highlight/django\"\n\t],\n\t\"./dns\": [\n\t\t65594,\n\t\t\"highlight/dns\"\n\t],\n\t\"./dns.js\": [\n\t\t65594,\n\t\t\"highlight/dns\"\n\t],\n\t\"./dockerfile\": [\n\t\t27055,\n\t\t\"highlight/dockerfile\"\n\t],\n\t\"./dockerfile.js\": [\n\t\t27055,\n\t\t\"highlight/dockerfile\"\n\t],\n\t\"./dos\": [\n\t\t85215,\n\t\t\"highlight/dos\"\n\t],\n\t\"./dos.js\": [\n\t\t85215,\n\t\t\"highlight/dos\"\n\t],\n\t\"./dsconfig\": [\n\t\t71524,\n\t\t\"highlight/dsconfig\"\n\t],\n\t\"./dsconfig.js\": [\n\t\t71524,\n\t\t\"highlight/dsconfig\"\n\t],\n\t\"./dts\": [\n\t\t29702,\n\t\t\"highlight/dts\"\n\t],\n\t\"./dts.js\": [\n\t\t29702,\n\t\t\"highlight/dts\"\n\t],\n\t\"./dust\": [\n\t\t27115,\n\t\t\"highlight/dust\"\n\t],\n\t\"./dust.js\": [\n\t\t27115,\n\t\t\"highlight/dust\"\n\t],\n\t\"./ebnf\": [\n\t\t26254,\n\t\t\"highlight/ebnf\"\n\t],\n\t\"./ebnf.js\": [\n\t\t26254,\n\t\t\"highlight/ebnf\"\n\t],\n\t\"./elixir\": [\n\t\t27204,\n\t\t\"highlight/elixir\"\n\t],\n\t\"./elixir.js\": [\n\t\t27204,\n\t\t\"highlight/elixir\"\n\t],\n\t\"./elm\": [\n\t\t58259,\n\t\t\"highlight/elm\"\n\t],\n\t\"./elm.js\": [\n\t\t58259,\n\t\t\"highlight/elm\"\n\t],\n\t\"./erb\": [\n\t\t328,\n\t\t\"highlight/erb\"\n\t],\n\t\"./erb.js\": [\n\t\t328,\n\t\t\"highlight/erb\"\n\t],\n\t\"./erlang\": [\n\t\t87489,\n\t\t\"highlight/erlang\"\n\t],\n\t\"./erlang-repl\": [\n\t\t27670,\n\t\t\"highlight/erlang-repl\"\n\t],\n\t\"./erlang-repl.js\": [\n\t\t27670,\n\t\t\"highlight/erlang-repl\"\n\t],\n\t\"./erlang.js\": [\n\t\t87489,\n\t\t\"highlight/erlang\"\n\t],\n\t\"./excel\": [\n\t\t94369,\n\t\t\"highlight/excel\"\n\t],\n\t\"./excel.js\": [\n\t\t94369,\n\t\t\"highlight/excel\"\n\t],\n\t\"./fix\": [\n\t\t51377,\n\t\t\"highlight/fix\"\n\t],\n\t\"./fix.js\": [\n\t\t51377,\n\t\t\"highlight/fix\"\n\t],\n\t\"./flix\": [\n\t\t72041,\n\t\t\"highlight/flix\"\n\t],\n\t\"./flix.js\": [\n\t\t72041,\n\t\t\"highlight/flix\"\n\t],\n\t\"./fortran\": [\n\t\t28362,\n\t\t\"highlight/fortran\"\n\t],\n\t\"./fortran.js\": [\n\t\t28362,\n\t\t\"highlight/fortran\"\n\t],\n\t\"./fsharp\": [\n\t\t34639,\n\t\t\"highlight/fsharp\"\n\t],\n\t\"./fsharp.js\": [\n\t\t34639,\n\t\t\"highlight/fsharp\"\n\t],\n\t\"./gams\": [\n\t\t9392,\n\t\t\"highlight/gams\"\n\t],\n\t\"./gams.js\": [\n\t\t9392,\n\t\t\"highlight/gams\"\n\t],\n\t\"./gauss\": [\n\t\t44859,\n\t\t\"highlight/gauss\"\n\t],\n\t\"./gauss.js\": [\n\t\t44859,\n\t\t\"highlight/gauss\"\n\t],\n\t\"./gcode\": [\n\t\t38036,\n\t\t\"highlight/gcode\"\n\t],\n\t\"./gcode.js\": [\n\t\t38036,\n\t\t\"highlight/gcode\"\n\t],\n\t\"./gherkin\": [\n\t\t65962,\n\t\t\"highlight/gherkin\"\n\t],\n\t\"./gherkin.js\": [\n\t\t65962,\n\t\t\"highlight/gherkin\"\n\t],\n\t\"./glsl\": [\n\t\t85243,\n\t\t\"highlight/glsl\"\n\t],\n\t\"./glsl.js\": [\n\t\t85243,\n\t\t\"highlight/glsl\"\n\t],\n\t\"./gml\": [\n\t\t94807,\n\t\t\"highlight/gml\"\n\t],\n\t\"./gml.js\": [\n\t\t94807,\n\t\t\"highlight/gml\"\n\t],\n\t\"./go\": [\n\t\t33048,\n\t\t\"highlight/go\"\n\t],\n\t\"./go.js\": [\n\t\t33048,\n\t\t\"highlight/go\"\n\t],\n\t\"./golo\": [\n\t\t87140,\n\t\t\"highlight/golo\"\n\t],\n\t\"./golo.js\": [\n\t\t87140,\n\t\t\"highlight/golo\"\n\t],\n\t\"./gradle\": [\n\t\t88267,\n\t\t\"highlight/gradle\"\n\t],\n\t\"./gradle.js\": [\n\t\t88267,\n\t\t\"highlight/gradle\"\n\t],\n\t\"./groovy\": [\n\t\t12175,\n\t\t\"highlight/groovy\"\n\t],\n\t\"./groovy.js\": [\n\t\t12175,\n\t\t\"highlight/groovy\"\n\t],\n\t\"./haml\": [\n\t\t25268,\n\t\t\"highlight/haml\"\n\t],\n\t\"./haml.js\": [\n\t\t25268,\n\t\t\"highlight/haml\"\n\t],\n\t\"./handlebars\": [\n\t\t83512,\n\t\t\"highlight/handlebars\"\n\t],\n\t\"./handlebars.js\": [\n\t\t83512,\n\t\t\"highlight/handlebars\"\n\t],\n\t\"./haskell\": [\n\t\t56703,\n\t\t\"highlight/haskell\"\n\t],\n\t\"./haskell.js\": [\n\t\t56703,\n\t\t\"highlight/haskell\"\n\t],\n\t\"./haxe\": [\n\t\t429,\n\t\t\"highlight/haxe\"\n\t],\n\t\"./haxe.js\": [\n\t\t429,\n\t\t\"highlight/haxe\"\n\t],\n\t\"./hsp\": [\n\t\t90793,\n\t\t\"highlight/hsp\"\n\t],\n\t\"./hsp.js\": [\n\t\t90793,\n\t\t\"highlight/hsp\"\n\t],\n\t\"./htmlbars\": [\n\t\t93202,\n\t\t\"highlight/htmlbars\"\n\t],\n\t\"./htmlbars.js\": [\n\t\t93202,\n\t\t\"highlight/htmlbars\"\n\t],\n\t\"./http\": [\n\t\t30786,\n\t\t\"highlight/http\"\n\t],\n\t\"./http.js\": [\n\t\t30786,\n\t\t\"highlight/http\"\n\t],\n\t\"./hy\": [\n\t\t35359,\n\t\t\"highlight/hy\"\n\t],\n\t\"./hy.js\": [\n\t\t35359,\n\t\t\"highlight/hy\"\n\t],\n\t\"./inform7\": [\n\t\t68968,\n\t\t\"highlight/inform7\"\n\t],\n\t\"./inform7.js\": [\n\t\t68968,\n\t\t\"highlight/inform7\"\n\t],\n\t\"./ini\": [\n\t\t29560,\n\t\t\"highlight/ini\"\n\t],\n\t\"./ini.js\": [\n\t\t29560,\n\t\t\"highlight/ini\"\n\t],\n\t\"./irpf90\": [\n\t\t10811,\n\t\t\"highlight/irpf90\"\n\t],\n\t\"./irpf90.js\": [\n\t\t10811,\n\t\t\"highlight/irpf90\"\n\t],\n\t\"./isbl\": [\n\t\t15044,\n\t\t\"highlight/isbl\"\n\t],\n\t\"./isbl.js\": [\n\t\t15044,\n\t\t\"highlight/isbl\"\n\t],\n\t\"./java\": [\n\t\t37721,\n\t\t\"highlight/java\"\n\t],\n\t\"./java.js\": [\n\t\t37721,\n\t\t\"highlight/java\"\n\t],\n\t\"./javascript\": [\n\t\t96344,\n\t\t\"highlight/javascript\"\n\t],\n\t\"./javascript.js\": [\n\t\t96344,\n\t\t\"highlight/javascript\"\n\t],\n\t\"./jboss-cli\": [\n\t\t40412,\n\t\t\"highlight/jboss-cli\"\n\t],\n\t\"./jboss-cli.js\": [\n\t\t40412,\n\t\t\"highlight/jboss-cli\"\n\t],\n\t\"./json\": [\n\t\t82026,\n\t\t\"highlight/json\"\n\t],\n\t\"./json.js\": [\n\t\t82026,\n\t\t\"highlight/json\"\n\t],\n\t\"./julia\": [\n\t\t47337,\n\t\t\"highlight/julia\"\n\t],\n\t\"./julia-repl\": [\n\t\t79989,\n\t\t\"highlight/julia-repl\"\n\t],\n\t\"./julia-repl.js\": [\n\t\t79989,\n\t\t\"highlight/julia-repl\"\n\t],\n\t\"./julia.js\": [\n\t\t47337,\n\t\t\"highlight/julia\"\n\t],\n\t\"./kotlin\": [\n\t\t48099,\n\t\t\"highlight/kotlin\"\n\t],\n\t\"./kotlin.js\": [\n\t\t48099,\n\t\t\"highlight/kotlin\"\n\t],\n\t\"./lasso\": [\n\t\t54082,\n\t\t\"highlight/lasso\"\n\t],\n\t\"./lasso.js\": [\n\t\t54082,\n\t\t\"highlight/lasso\"\n\t],\n\t\"./latex\": [\n\t\t850,\n\t\t\"highlight/latex\"\n\t],\n\t\"./latex.js\": [\n\t\t850,\n\t\t\"highlight/latex\"\n\t],\n\t\"./ldif\": [\n\t\t33310,\n\t\t\"highlight/ldif\"\n\t],\n\t\"./ldif.js\": [\n\t\t33310,\n\t\t\"highlight/ldif\"\n\t],\n\t\"./leaf\": [\n\t\t2774,\n\t\t\"highlight/leaf\"\n\t],\n\t\"./leaf.js\": [\n\t\t2774,\n\t\t\"highlight/leaf\"\n\t],\n\t\"./less\": [\n\t\t23874,\n\t\t\"highlight/less\"\n\t],\n\t\"./less.js\": [\n\t\t23874,\n\t\t\"highlight/less\"\n\t],\n\t\"./lisp\": [\n\t\t17169,\n\t\t\"highlight/lisp\"\n\t],\n\t\"./lisp.js\": [\n\t\t17169,\n\t\t\"highlight/lisp\"\n\t],\n\t\"./livecodeserver\": [\n\t\t63909,\n\t\t\"highlight/livecodeserver\"\n\t],\n\t\"./livecodeserver.js\": [\n\t\t63909,\n\t\t\"highlight/livecodeserver\"\n\t],\n\t\"./livescript\": [\n\t\t39563,\n\t\t\"highlight/livescript\"\n\t],\n\t\"./livescript.js\": [\n\t\t39563,\n\t\t\"highlight/livescript\"\n\t],\n\t\"./llvm\": [\n\t\t40119,\n\t\t\"highlight/llvm\"\n\t],\n\t\"./llvm.js\": [\n\t\t40119,\n\t\t\"highlight/llvm\"\n\t],\n\t\"./lsl\": [\n\t\t12130,\n\t\t\"highlight/lsl\"\n\t],\n\t\"./lsl.js\": [\n\t\t12130,\n\t\t\"highlight/lsl\"\n\t],\n\t\"./lua\": [\n\t\t31067,\n\t\t\"highlight/lua\"\n\t],\n\t\"./lua.js\": [\n\t\t31067,\n\t\t\"highlight/lua\"\n\t],\n\t\"./makefile\": [\n\t\t30465,\n\t\t\"highlight/makefile\"\n\t],\n\t\"./makefile.js\": [\n\t\t30465,\n\t\t\"highlight/makefile\"\n\t],\n\t\"./markdown\": [\n\t\t93839,\n\t\t\"highlight/markdown\"\n\t],\n\t\"./markdown.js\": [\n\t\t93839,\n\t\t\"highlight/markdown\"\n\t],\n\t\"./mathematica\": [\n\t\t61083,\n\t\t\"highlight/mathematica\"\n\t],\n\t\"./mathematica.js\": [\n\t\t61083,\n\t\t\"highlight/mathematica\"\n\t],\n\t\"./matlab\": [\n\t\t41304,\n\t\t\"highlight/matlab\"\n\t],\n\t\"./matlab.js\": [\n\t\t41304,\n\t\t\"highlight/matlab\"\n\t],\n\t\"./maxima\": [\n\t\t46747,\n\t\t\"highlight/maxima\"\n\t],\n\t\"./maxima.js\": [\n\t\t46747,\n\t\t\"highlight/maxima\"\n\t],\n\t\"./mel\": [\n\t\t70483,\n\t\t\"highlight/mel\"\n\t],\n\t\"./mel.js\": [\n\t\t70483,\n\t\t\"highlight/mel\"\n\t],\n\t\"./mercury\": [\n\t\t53038,\n\t\t\"highlight/mercury\"\n\t],\n\t\"./mercury.js\": [\n\t\t53038,\n\t\t\"highlight/mercury\"\n\t],\n\t\"./mipsasm\": [\n\t\t45802,\n\t\t\"highlight/mipsasm\"\n\t],\n\t\"./mipsasm.js\": [\n\t\t45802,\n\t\t\"highlight/mipsasm\"\n\t],\n\t\"./mizar\": [\n\t\t90918,\n\t\t\"highlight/mizar\"\n\t],\n\t\"./mizar.js\": [\n\t\t90918,\n\t\t\"highlight/mizar\"\n\t],\n\t\"./mojolicious\": [\n\t\t92210,\n\t\t\"highlight/mojolicious\"\n\t],\n\t\"./mojolicious.js\": [\n\t\t92210,\n\t\t\"highlight/mojolicious\"\n\t],\n\t\"./monkey\": [\n\t\t97350,\n\t\t\"highlight/monkey\"\n\t],\n\t\"./monkey.js\": [\n\t\t97350,\n\t\t\"highlight/monkey\"\n\t],\n\t\"./moonscript\": [\n\t\t27239,\n\t\t\"highlight/moonscript\"\n\t],\n\t\"./moonscript.js\": [\n\t\t27239,\n\t\t\"highlight/moonscript\"\n\t],\n\t\"./n1ql\": [\n\t\t77669,\n\t\t\"highlight/n1ql\"\n\t],\n\t\"./n1ql.js\": [\n\t\t77669,\n\t\t\"highlight/n1ql\"\n\t],\n\t\"./nginx\": [\n\t\t42387,\n\t\t\"highlight/nginx\"\n\t],\n\t\"./nginx.js\": [\n\t\t42387,\n\t\t\"highlight/nginx\"\n\t],\n\t\"./nim\": [\n\t\t35587,\n\t\t\"highlight/nim\"\n\t],\n\t\"./nim.js\": [\n\t\t35587,\n\t\t\"highlight/nim\"\n\t],\n\t\"./nix\": [\n\t\t88170,\n\t\t\"highlight/nix\"\n\t],\n\t\"./nix.js\": [\n\t\t88170,\n\t\t\"highlight/nix\"\n\t],\n\t\"./node-repl\": [\n\t\t93668,\n\t\t\"highlight/node-repl\"\n\t],\n\t\"./node-repl.js\": [\n\t\t93668,\n\t\t\"highlight/node-repl\"\n\t],\n\t\"./nsis\": [\n\t\t29269,\n\t\t\"highlight/nsis\"\n\t],\n\t\"./nsis.js\": [\n\t\t29269,\n\t\t\"highlight/nsis\"\n\t],\n\t\"./objectivec\": [\n\t\t61896,\n\t\t\"highlight/objectivec\"\n\t],\n\t\"./objectivec.js\": [\n\t\t61896,\n\t\t\"highlight/objectivec\"\n\t],\n\t\"./ocaml\": [\n\t\t78550,\n\t\t\"highlight/ocaml\"\n\t],\n\t\"./ocaml.js\": [\n\t\t78550,\n\t\t\"highlight/ocaml\"\n\t],\n\t\"./openscad\": [\n\t\t41078,\n\t\t\"highlight/openscad\"\n\t],\n\t\"./openscad.js\": [\n\t\t41078,\n\t\t\"highlight/openscad\"\n\t],\n\t\"./oxygene\": [\n\t\t89015,\n\t\t\"highlight/oxygene\"\n\t],\n\t\"./oxygene.js\": [\n\t\t89015,\n\t\t\"highlight/oxygene\"\n\t],\n\t\"./parser3\": [\n\t\t6247,\n\t\t\"highlight/parser3\"\n\t],\n\t\"./parser3.js\": [\n\t\t6247,\n\t\t\"highlight/parser3\"\n\t],\n\t\"./perl\": [\n\t\t78529,\n\t\t\"highlight/perl\"\n\t],\n\t\"./perl.js\": [\n\t\t78529,\n\t\t\"highlight/perl\"\n\t],\n\t\"./pf\": [\n\t\t15994,\n\t\t\"highlight/pf\"\n\t],\n\t\"./pf.js\": [\n\t\t15994,\n\t\t\"highlight/pf\"\n\t],\n\t\"./pgsql\": [\n\t\t86509,\n\t\t\"highlight/pgsql\"\n\t],\n\t\"./pgsql.js\": [\n\t\t86509,\n\t\t\"highlight/pgsql\"\n\t],\n\t\"./php\": [\n\t\t73306,\n\t\t\"highlight/php\"\n\t],\n\t\"./php-template\": [\n\t\t75377,\n\t\t\"highlight/php-template\"\n\t],\n\t\"./php-template.js\": [\n\t\t75377,\n\t\t\"highlight/php-template\"\n\t],\n\t\"./php.js\": [\n\t\t73306,\n\t\t\"highlight/php\"\n\t],\n\t\"./plaintext\": [\n\t\t76572,\n\t\t\"highlight/plaintext\"\n\t],\n\t\"./plaintext.js\": [\n\t\t76572,\n\t\t\"highlight/plaintext\"\n\t],\n\t\"./pony\": [\n\t\t28422,\n\t\t\"highlight/pony\"\n\t],\n\t\"./pony.js\": [\n\t\t28422,\n\t\t\"highlight/pony\"\n\t],\n\t\"./powershell\": [\n\t\t66336,\n\t\t\"highlight/powershell\"\n\t],\n\t\"./powershell.js\": [\n\t\t66336,\n\t\t\"highlight/powershell\"\n\t],\n\t\"./processing\": [\n\t\t44148,\n\t\t\"highlight/processing\"\n\t],\n\t\"./processing.js\": [\n\t\t44148,\n\t\t\"highlight/processing\"\n\t],\n\t\"./profile\": [\n\t\t9129,\n\t\t\"highlight/profile\"\n\t],\n\t\"./profile.js\": [\n\t\t9129,\n\t\t\"highlight/profile\"\n\t],\n\t\"./prolog\": [\n\t\t58074,\n\t\t\"highlight/prolog\"\n\t],\n\t\"./prolog.js\": [\n\t\t58074,\n\t\t\"highlight/prolog\"\n\t],\n\t\"./properties\": [\n\t\t81245,\n\t\t\"highlight/properties\"\n\t],\n\t\"./properties.js\": [\n\t\t81245,\n\t\t\"highlight/properties\"\n\t],\n\t\"./protobuf\": [\n\t\t3306,\n\t\t\"highlight/protobuf\"\n\t],\n\t\"./protobuf.js\": [\n\t\t3306,\n\t\t\"highlight/protobuf\"\n\t],\n\t\"./puppet\": [\n\t\t73736,\n\t\t\"highlight/puppet\"\n\t],\n\t\"./puppet.js\": [\n\t\t73736,\n\t\t\"highlight/puppet\"\n\t],\n\t\"./purebasic\": [\n\t\t34055,\n\t\t\"highlight/purebasic\"\n\t],\n\t\"./purebasic.js\": [\n\t\t34055,\n\t\t\"highlight/purebasic\"\n\t],\n\t\"./python\": [\n\t\t30308,\n\t\t\"highlight/python\"\n\t],\n\t\"./python-repl\": [\n\t\t93725,\n\t\t\"highlight/python-repl\"\n\t],\n\t\"./python-repl.js\": [\n\t\t93725,\n\t\t\"highlight/python-repl\"\n\t],\n\t\"./python.js\": [\n\t\t30308,\n\t\t\"highlight/python\"\n\t],\n\t\"./q\": [\n\t\t76891,\n\t\t\"highlight/q\"\n\t],\n\t\"./q.js\": [\n\t\t76891,\n\t\t\"highlight/q\"\n\t],\n\t\"./qml\": [\n\t\t63259,\n\t\t\"highlight/qml\"\n\t],\n\t\"./qml.js\": [\n\t\t63259,\n\t\t\"highlight/qml\"\n\t],\n\t\"./r\": [\n\t\t30806,\n\t\t\"highlight/r\"\n\t],\n\t\"./r.js\": [\n\t\t30806,\n\t\t\"highlight/r\"\n\t],\n\t\"./reasonml\": [\n\t\t82050,\n\t\t\"highlight/reasonml\"\n\t],\n\t\"./reasonml.js\": [\n\t\t82050,\n\t\t\"highlight/reasonml\"\n\t],\n\t\"./rib\": [\n\t\t44613,\n\t\t\"highlight/rib\"\n\t],\n\t\"./rib.js\": [\n\t\t44613,\n\t\t\"highlight/rib\"\n\t],\n\t\"./roboconf\": [\n\t\t33176,\n\t\t\"highlight/roboconf\"\n\t],\n\t\"./roboconf.js\": [\n\t\t33176,\n\t\t\"highlight/roboconf\"\n\t],\n\t\"./routeros\": [\n\t\t25096,\n\t\t\"highlight/routeros\"\n\t],\n\t\"./routeros.js\": [\n\t\t25096,\n\t\t\"highlight/routeros\"\n\t],\n\t\"./rsl\": [\n\t\t61025,\n\t\t\"highlight/rsl\"\n\t],\n\t\"./rsl.js\": [\n\t\t61025,\n\t\t\"highlight/rsl\"\n\t],\n\t\"./ruby\": [\n\t\t58473,\n\t\t\"highlight/ruby\"\n\t],\n\t\"./ruby.js\": [\n\t\t58473,\n\t\t\"highlight/ruby\"\n\t],\n\t\"./ruleslanguage\": [\n\t\t65506,\n\t\t\"highlight/ruleslanguage\"\n\t],\n\t\"./ruleslanguage.js\": [\n\t\t65506,\n\t\t\"highlight/ruleslanguage\"\n\t],\n\t\"./rust\": [\n\t\t11374,\n\t\t\"highlight/rust\"\n\t],\n\t\"./rust.js\": [\n\t\t11374,\n\t\t\"highlight/rust\"\n\t],\n\t\"./sas\": [\n\t\t35457,\n\t\t\"highlight/sas\"\n\t],\n\t\"./sas.js\": [\n\t\t35457,\n\t\t\"highlight/sas\"\n\t],\n\t\"./scala\": [\n\t\t5818,\n\t\t\"highlight/scala\"\n\t],\n\t\"./scala.js\": [\n\t\t5818,\n\t\t\"highlight/scala\"\n\t],\n\t\"./scheme\": [\n\t\t10336,\n\t\t\"highlight/scheme\"\n\t],\n\t\"./scheme.js\": [\n\t\t10336,\n\t\t\"highlight/scheme\"\n\t],\n\t\"./scilab\": [\n\t\t47691,\n\t\t\"highlight/scilab\"\n\t],\n\t\"./scilab.js\": [\n\t\t47691,\n\t\t\"highlight/scilab\"\n\t],\n\t\"./scss\": [\n\t\t36632,\n\t\t\"highlight/scss\"\n\t],\n\t\"./scss.js\": [\n\t\t36632,\n\t\t\"highlight/scss\"\n\t],\n\t\"./shell\": [\n\t\t19514,\n\t\t\"highlight/shell\"\n\t],\n\t\"./shell.js\": [\n\t\t19514,\n\t\t\"highlight/shell\"\n\t],\n\t\"./smali\": [\n\t\t60522,\n\t\t\"highlight/smali\"\n\t],\n\t\"./smali.js\": [\n\t\t60522,\n\t\t\"highlight/smali\"\n\t],\n\t\"./smalltalk\": [\n\t\t75030,\n\t\t\"highlight/smalltalk\"\n\t],\n\t\"./smalltalk.js\": [\n\t\t75030,\n\t\t\"highlight/smalltalk\"\n\t],\n\t\"./sml\": [\n\t\t79664,\n\t\t\"highlight/sml\"\n\t],\n\t\"./sml.js\": [\n\t\t79664,\n\t\t\"highlight/sml\"\n\t],\n\t\"./sqf\": [\n\t\t85168,\n\t\t\"highlight/sqf\"\n\t],\n\t\"./sqf.js\": [\n\t\t85168,\n\t\t\"highlight/sqf\"\n\t],\n\t\"./sql\": [\n\t\t97181,\n\t\t\"highlight/sql\"\n\t],\n\t\"./sql.js\": [\n\t\t97181,\n\t\t\"highlight/sql\"\n\t],\n\t\"./sql_more\": [\n\t\t83224,\n\t\t\"highlight/sql_more\"\n\t],\n\t\"./sql_more.js\": [\n\t\t83224,\n\t\t\"highlight/sql_more\"\n\t],\n\t\"./stan\": [\n\t\t53413,\n\t\t\"highlight/stan\"\n\t],\n\t\"./stan.js\": [\n\t\t53413,\n\t\t\"highlight/stan\"\n\t],\n\t\"./stata\": [\n\t\t92417,\n\t\t\"highlight/stata\"\n\t],\n\t\"./stata.js\": [\n\t\t92417,\n\t\t\"highlight/stata\"\n\t],\n\t\"./step21\": [\n\t\t52706,\n\t\t\"highlight/step21\"\n\t],\n\t\"./step21.js\": [\n\t\t52706,\n\t\t\"highlight/step21\"\n\t],\n\t\"./stylus\": [\n\t\t82054,\n\t\t\"highlight/stylus\"\n\t],\n\t\"./stylus.js\": [\n\t\t82054,\n\t\t\"highlight/stylus\"\n\t],\n\t\"./subunit\": [\n\t\t36886,\n\t\t\"highlight/subunit\"\n\t],\n\t\"./subunit.js\": [\n\t\t36886,\n\t\t\"highlight/subunit\"\n\t],\n\t\"./swift\": [\n\t\t26306,\n\t\t\"highlight/swift\"\n\t],\n\t\"./swift.js\": [\n\t\t26306,\n\t\t\"highlight/swift\"\n\t],\n\t\"./taggerscript\": [\n\t\t54858,\n\t\t\"highlight/taggerscript\"\n\t],\n\t\"./taggerscript.js\": [\n\t\t54858,\n\t\t\"highlight/taggerscript\"\n\t],\n\t\"./tap\": [\n\t\t49113,\n\t\t\"highlight/tap\"\n\t],\n\t\"./tap.js\": [\n\t\t49113,\n\t\t\"highlight/tap\"\n\t],\n\t\"./tcl\": [\n\t\t74562,\n\t\t\"highlight/tcl\"\n\t],\n\t\"./tcl.js\": [\n\t\t74562,\n\t\t\"highlight/tcl\"\n\t],\n\t\"./thrift\": [\n\t\t55063,\n\t\t\"highlight/thrift\"\n\t],\n\t\"./thrift.js\": [\n\t\t55063,\n\t\t\"highlight/thrift\"\n\t],\n\t\"./tp\": [\n\t\t27092,\n\t\t\"highlight/tp\"\n\t],\n\t\"./tp.js\": [\n\t\t27092,\n\t\t\"highlight/tp\"\n\t],\n\t\"./twig\": [\n\t\t35488,\n\t\t\"highlight/twig\"\n\t],\n\t\"./twig.js\": [\n\t\t35488,\n\t\t\"highlight/twig\"\n\t],\n\t\"./typescript\": [\n\t\t91533,\n\t\t\"highlight/typescript\"\n\t],\n\t\"./typescript.js\": [\n\t\t91533,\n\t\t\"highlight/typescript\"\n\t],\n\t\"./vala\": [\n\t\t65431,\n\t\t\"highlight/vala\"\n\t],\n\t\"./vala.js\": [\n\t\t65431,\n\t\t\"highlight/vala\"\n\t],\n\t\"./vbnet\": [\n\t\t86479,\n\t\t\"highlight/vbnet\"\n\t],\n\t\"./vbnet.js\": [\n\t\t86479,\n\t\t\"highlight/vbnet\"\n\t],\n\t\"./vbscript\": [\n\t\t80824,\n\t\t\"highlight/vbscript\"\n\t],\n\t\"./vbscript-html\": [\n\t\t3316,\n\t\t\"highlight/vbscript-html\"\n\t],\n\t\"./vbscript-html.js\": [\n\t\t3316,\n\t\t\"highlight/vbscript-html\"\n\t],\n\t\"./vbscript.js\": [\n\t\t80824,\n\t\t\"highlight/vbscript\"\n\t],\n\t\"./verilog\": [\n\t\t49115,\n\t\t\"highlight/verilog\"\n\t],\n\t\"./verilog.js\": [\n\t\t49115,\n\t\t\"highlight/verilog\"\n\t],\n\t\"./vhdl\": [\n\t\t53260,\n\t\t\"highlight/vhdl\"\n\t],\n\t\"./vhdl.js\": [\n\t\t53260,\n\t\t\"highlight/vhdl\"\n\t],\n\t\"./vim\": [\n\t\t5298,\n\t\t\"highlight/vim\"\n\t],\n\t\"./vim.js\": [\n\t\t5298,\n\t\t\"highlight/vim\"\n\t],\n\t\"./x86asm\": [\n\t\t43377,\n\t\t\"highlight/x86asm\"\n\t],\n\t\"./x86asm.js\": [\n\t\t43377,\n\t\t\"highlight/x86asm\"\n\t],\n\t\"./xl\": [\n\t\t731,\n\t\t\"highlight/xl\"\n\t],\n\t\"./xl.js\": [\n\t\t731,\n\t\t\"highlight/xl\"\n\t],\n\t\"./xml\": [\n\t\t42157,\n\t\t\"highlight/xml\"\n\t],\n\t\"./xml.js\": [\n\t\t42157,\n\t\t\"highlight/xml\"\n\t],\n\t\"./xquery\": [\n\t\t46629,\n\t\t\"highlight/xquery\"\n\t],\n\t\"./xquery.js\": [\n\t\t46629,\n\t\t\"highlight/xquery\"\n\t],\n\t\"./yaml\": [\n\t\t54587,\n\t\t\"highlight/yaml\"\n\t],\n\t\"./yaml.js\": [\n\t\t54587,\n\t\t\"highlight/yaml\"\n\t],\n\t\"./zephir\": [\n\t\t58737,\n\t\t\"highlight/zephir\"\n\t],\n\t\"./zephir.js\": [\n\t\t58737,\n\t\t\"highlight/zephir\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 7 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 23506;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","\n\n\n\t\n\t\t\n\t\t\n\t\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=style&index=0&id=4a5d4c0f&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=style&index=0&id=4a5d4c0f&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CollisionResolveDialog.vue?vue&type=template&id=4a5d4c0f&scoped=true&\"\nimport script from \"./CollisionResolveDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CollisionResolveDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CollisionResolveDialog.vue?vue&type=style&index=0&id=4a5d4c0f&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4a5d4c0f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"collision-resolve-dialog\",attrs:{\"id\":\"resolve-conflicts\"}},[_c('button',{on:{\"click\":function($event){return _vm.$emit('resolve-use-this-version')}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('text', 'Use current version'))+\"\\n\\t\")]),_vm._v(\" \"),_c('button',{on:{\"click\":function($event){return _vm.$emit('resolve-use-server-version')}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('text', 'Use the saved version'))+\"\\n\\t\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"editor-container\"}},[(_vm.displayed)?_c('div',{staticClass:\"document-status\"},[(_vm.idle)?_c('p',{staticClass:\"msg\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('text', 'Document idle for {timeout} minutes, click to continue editing', { timeout: _vm.IDLE_TIMEOUT }))+\" \"),_c('a',{staticClass:\"button primary\",on:{\"click\":_vm.reconnect}},[_vm._v(_vm._s(_vm.t('text', 'Reconnect')))])]):(_vm.hasSyncCollission)?_c('p',{staticClass:\"msg icon-error\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('text', 'The document has been changed outside of the editor. The changes cannot be applied.'))+\"\\n\\t\\t\")]):(_vm.hasConnectionIssue)?_c('p',{staticClass:\"msg\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('text', 'File could not be loaded. Please check your internet connection.'))+\" \"),_c('a',{staticClass:\"button primary\",on:{\"click\":_vm.reconnect}},[_vm._v(_vm._s(_vm.t('text', 'Reconnect')))])]):_vm._e(),_vm._v(\" \"),(_vm.lock)?_c('p',{staticClass:\"msg msg-locked\"},[_c('Lock'),_vm._v(\" \"+_vm._s(_vm.t('text', 'This file is opened read-only as it is currently locked by {user}.', { user: _vm.lock.displayName }))+\"\\n\\t\\t\")],1):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.displayed)?_c('div',{class:{'has-conflicts': _vm.hasSyncCollission, 'icon-loading': !_vm.contentLoaded && !_vm.hasConnectionIssue, 'richEditor': _vm.isRichEditor, 'show-color-annotations': _vm.showAuthorAnnotations},attrs:{\"id\":\"editor-wrapper\"}},[(_vm.$editor)?_c('div',{class:{ draggedOver: _vm.draggedOver },attrs:{\"id\":\"editor\"},on:{\"image-paste\":_vm.onPaste,\"dragover\":function($event){$event.preventDefault();$event.stopPropagation();_vm.draggedOver = true},\"dragleave\":function($event){$event.preventDefault();$event.stopPropagation();_vm.draggedOver = false},\"image-drop\":_vm.onEditorDrop}},[(_vm.renderMenus)?_c('MenuBar',{ref:\"menubar\",attrs:{\"file-path\":_vm.relativePath,\"file-id\":_vm.fileId,\"is-read-only\":_vm.readOnly,\"is-rich-editor\":_vm.isRichEditor,\"is-public\":_vm.isPublic,\"autohide\":_vm.autohide,\"loaded\":_vm.menubarLoaded,\"uploading-images\":_vm.uploadingImages},on:{\"update:loaded\":function($event){_vm.menubarLoaded=$event},\"show-help\":_vm.showHelp,\"image-insert\":_vm.insertImagePath,\"image-upload\":_vm.uploadImageFiles}},[_c('div',{attrs:{\"id\":\"editor-session-list\"}},[_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.lastSavedStatusTooltip),expression:\"lastSavedStatusTooltip\"}],staticClass:\"save-status\",class:_vm.lastSavedStatusClass},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.lastSavedStatus)+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('SessionList',{attrs:{\"sessions\":_vm.filteredSessions}},[(_vm.isPublic && _vm.currentSession.guestName)?_c('GuestNameDialog'):_vm._e()],1)],1),_vm._v(\" \"),_vm._t(\"header\")],2):_vm._e(),_vm._v(\" \"),(!_vm.menubarLoaded)?_c('div',{staticClass:\"menubar placeholder\"}):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"contentWrapper\",staticClass:\"content-wrapper\"},[(_vm.renderRichEditorMenus)?_c('MenuBubble',{attrs:{\"content-wrapper\":_vm.contentWrapper,\"file-path\":_vm.relativePath}}):_vm._e(),_vm._v(\" \"),_c('EditorContent',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.contentLoaded),expression:\"contentLoaded\"}],staticClass:\"editor__content\",attrs:{\"editor\":_vm.$editor}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.hasSyncCollission)?_c('ReadOnlyEditor',{attrs:{\"content\":_vm.syncError.data.outsideChange,\"is-rich-editor\":_vm.isRichEditor}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.hasSyncCollission && !_vm.readOnly)?_c('CollisionResolveDialog',{on:{\"resolve-use-this-version\":_vm.resolveUseThisVersion,\"resolve-use-server-version\":_vm.resolveUseServerVersion}}):_vm._e(),_vm._v(\" \"),(_vm.displayHelp)?_c('HelpModal',{on:{\"close\":_vm.hideHelp}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport axios from '@nextcloud/axios'\nimport { endpointUrl } from '../helpers/index.js'\nimport { SyncService, ERROR_TYPE } from './SyncService.js'\nimport { sendableSteps } from 'prosemirror-collab'\n\n/**\n * Minimum inverval to refetch the document changes\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL = 300\n\n/**\n * Maximum interval between refetches of document state if multiple users have joined\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL_MAX = 5000\n\n/**\n * Interval to check for changes when there is only one user joined\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL_SINGLE_EDITOR = 5000\n\n/**\n * Interval to fetch for changes when a browser window is considered invisible by the\n * page visibility API https://developer.mozilla.org/de/docs/Web/API/Page_Visibility_API\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL_INVISIBLE = 60000\n\nconst MIN_PUSH_RETRY = 500\nconst MAX_PUSH_RETRY = 10000\n\n/* Timeout after that a PUSH_FAILURE error is emitted */\nconst WARNING_PUSH_RETRY = 5000\n\n/* Maximum number of retries for fetching before emitting a connection error */\nconst MAX_RETRY_FETCH_COUNT = 5\n\n/**\n * Timeout for sessions to be marked as disconnected\n * Make sure that this is higher than any FETCH_INTERVAL_ values\n */\nconst COLLABORATOR_DISCONNECT_TIME = FETCH_INTERVAL_INVISIBLE * 1.5\n\nclass PollingBackend {\n\n\tconstructor(authority) {\n\t\t/** @type {SyncService} */\n\t\tthis._authority = authority\n\t\tthis.fetchInterval = FETCH_INTERVAL\n\t\tthis.retryTime = MIN_PUSH_RETRY\n\t\tthis.lock = false\n\t\tthis.fetchRetryCounter = 0\n\t}\n\n\tconnect() {\n\t\tthis.initialLoadingFinished = false\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), 50)\n\t\tdocument.addEventListener('visibilitychange', this.visibilitychange.bind(this))\n\t}\n\n\t_isPublic() {\n\t\treturn !!this._authority.options.shareToken\n\t}\n\n\tforceSave() {\n\t\tthis._forcedSave = true\n\t\tthis.fetchSteps()\n\t}\n\n\tsave() {\n\t\tthis._manualSave = true\n\t\tthis.fetchSteps()\n\t}\n\n\tfetchSteps() {\n\t\tthis._fetchSteps()\n\t}\n\n\t/**\n\t * This method is only called though the timer\n\t */\n\t_fetchSteps() {\n\t\tif (this.lock || !this.fetcher) {\n\t\t\treturn\n\t\t}\n\t\tthis.lock = true\n\t\tlet autosaveContent\n\t\tif (this._forcedSave || this._manualSave\n\t\t\t|| (!sendableSteps(this._authority.state)\n\t\t\t&& (this._authority._getVersion() !== this._authority.document.lastSavedVersion))\n\t\t) {\n\t\t\tautosaveContent = this._authority._getContent()\n\t\t}\n\t\taxios.post(endpointUrl('session/sync', this._isPublic()), {\n\t\t\tdocumentId: this._authority.document.id,\n\t\t\tsessionId: this._authority.session.id,\n\t\t\tsessionToken: this._authority.session.token,\n\t\t\tversion: this._authority._getVersion(),\n\t\t\tautosaveContent,\n\t\t\tforce: !!this._forcedSave,\n\t\t\tmanualSave: !!this._manualSave,\n\t\t\ttoken: this._authority.options.shareToken,\n\t\t\tfilePath: this._authority.options.filePath,\n\t\t}).then(this._handleResponse.bind(this), this._handleError.bind(this))\n\t\tthis._manualSave = false\n\t\tthis._forcedSave = false\n\t}\n\n\t_handleResponse(response) {\n\t\tthis.fetchRetryCounter = 0\n\n\t\tif (this._authority.document.lastSavedVersion < response.data.document.lastSavedVersion) {\n\t\t\tconsole.debug('Saved document', response.data.document)\n\t\t\tthis._authority.emit('save', { document: response.data.document, sessions: response.data.sessions })\n\t\t}\n\n\t\tthis._authority.emit('change', { document: response.data.document, sessions: response.data.sessions })\n\t\tthis._authority.document = response.data.document\n\t\tthis._authority.sessions = response.data.sessions\n\n\t\tif (response.data.steps.length === 0) {\n\t\t\tif (!this.initialLoadingFinished) {\n\t\t\t\tthis.initialLoadingFinished = true\n\t\t\t}\n\t\t\tif (this._authority.checkIdle()) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.lock = false\n\t\t\tconst disconnect = Date.now() - COLLABORATOR_DISCONNECT_TIME\n\t\t\tconst alive = response.data.sessions.filter((s) => s.lastContact * 1000 > disconnect)\n\t\t\tif (alive.length < 2) {\n\t\t\t\tthis.maximumRefetchTimer()\n\t\t\t} else {\n\t\t\t\tthis.increaseRefetchTimer()\n\t\t\t}\n\t\t\tthis._authority.emit('stateChange', { dirty: false })\n\t\t\tthis._authority.emit('stateChange', { initialLoading: true })\n\t\t\treturn\n\t\t}\n\n\t\tthis._authority._receiveSteps(response.data)\n\t\tthis.lock = false\n\t\tthis._forcedSave = false\n\t\tif (this.initialLoadingFinished) {\n\t\t\tthis.resetRefetchTimer()\n\t\t}\n\t}\n\n\t_handleError(e) {\n\t\tthis.lock = false\n\t\tif (!e.response || e.code === 'ECONNABORTED') {\n\t\t\tif (this.fetchRetryCounter++ >= MAX_RETRY_FETCH_COUNT) {\n\t\t\t\tconsole.error('[PollingBackend:fetchSteps] Network error when fetching steps, emitting CONNECTION_FAILED')\n\t\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.CONNECTION_FAILED, data: { retry: false } })\n\n\t\t\t} else {\n\t\t\t\tconsole.error(`[PollingBackend:fetchSteps] Network error when fetching steps, retry ${this.fetchRetryCounter}`)\n\t\t\t}\n\t\t} else if (e.response.status === 409 && e.response.data.document.currentVersion === this._authority.document.currentVersion) {\n\t\t\t// Only emit conflict event if we have synced until the latest version\n\t\t\tconsole.error('Conflict during file save, please resolve')\n\t\t\tthis._authority.emit('error', {\n\t\t\t\ttype: ERROR_TYPE.SAVE_COLLISSION,\n\t\t\t\tdata: {\n\t\t\t\t\toutsideChange: e.response.data.outsideChange,\n\t\t\t\t},\n\t\t\t})\n\t\t} else if (e.response.status === 403) {\n\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.SOURCE_NOT_FOUND, data: {} })\n\t\t\tthis.disconnect()\n\t\t} else if (e.response.status === 404) {\n\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.SOURCE_NOT_FOUND, data: {} })\n\t\t\tthis.disconnect()\n\t\t} else if (e.response.status === 503) {\n\t\t\tthis.increaseRefetchTimer()\n\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.CONNECTION_FAILED, data: { retry: false } })\n\t\t\tconsole.error('Failed to fetch steps due to unavailable service', e)\n\t\t} else {\n\t\t\tthis.disconnect()\n\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.CONNECTION_FAILED, data: { retry: false } })\n\t\t\tconsole.error('Failed to fetch steps due to other reason', e)\n\t\t}\n\n\t}\n\n\tsendSteps(_sendable) {\n\t\tthis._authority.emit('stateChange', { dirty: true })\n\t\tif (this.lock) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._authority.sendSteps()\n\t\t\t}, 100)\n\t\t\treturn\n\t\t}\n\t\tthis.lock = true\n\t\tconst sendable = (typeof _sendable === 'function') ? _sendable() : _sendable\n\t\tconst steps = sendable.steps\n\t\taxios.post(endpointUrl('session/push', !!this._authority.options.shareToken), {\n\t\t\tdocumentId: this._authority.document.id,\n\t\t\tsessionId: this._authority.session.id,\n\t\t\tsessionToken: this._authority.session.token,\n\t\t\tsteps: steps.map(s => s.toJSON ? s.toJSON() : s) || [],\n\t\t\tversion: sendable.version,\n\t\t\ttoken: this._authority.options.shareToken,\n\t\t\tfilePath: this._authority.options.filePath,\n\t\t}).then((response) => {\n\t\t\tthis.carefulRetryReset()\n\t\t\tthis.lock = false\n\t\t\tthis.fetchSteps()\n\t\t}).catch(({ response, code }) => {\n\t\t\tconsole.error('failed to apply steps due to collission, retrying')\n\t\t\tthis.lock = false\n\t\t\tif (!response || code === 'ECONNABORTED') {\n\t\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.CONNECTION_FAILED, data: {} })\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst { status, data } = response\n\t\t\tif (status === 403) {\n\t\t\t\tif (!data.document) {\n\t\t\t\t\t// either the session is invalid or the document is read only.\n\t\t\t\t\tconsole.error('failed to write to document - not allowed')\n\t\t\t\t}\n\t\t\t\t// Only emit conflict event if we have synced until the latest version\n\t\t\t\tif (data.document?.currentVersion === this._authority.document.currentVersion) {\n\t\t\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.PUSH_FAILURE, data: {} })\n\t\t\t\t\tOC.Notification.showTemporary('Changes could not be sent yet')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.fetchSteps()\n\t\t\tthis.carefulRetry()\n\t\t})\n\t}\n\n\tdisconnect() {\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = 0\n\t\tdocument.removeEventListener('visibilitychange', this.visibilitychange.bind(this))\n\t}\n\n\tresetRefetchTimer() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tthis.fetchInterval = FETCH_INTERVAL\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\n\t}\n\n\tincreaseRefetchTimer() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tthis.fetchInterval = Math.min(this.fetchInterval * 2, FETCH_INTERVAL_MAX)\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\t}\n\n\tmaximumRefetchTimer() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tthis.fetchInterval = FETCH_INTERVAL_SINGLE_EDITOR\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\t}\n\n\tvisibilitychange() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tif (document.visibilityState === 'hidden') {\n\t\t\tthis.fetchInterval = FETCH_INTERVAL_INVISIBLE\n\t\t\tclearInterval(this.fetcher)\n\t\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\t\t} else {\n\t\t\tthis.resetRefetchTimer()\n\t\t}\n\t}\n\n\tcarefulRetry() {\n\t\tconst newRetry = this.retryTime ? Math.min(this.retryTime * 2, MAX_PUSH_RETRY) : MIN_PUSH_RETRY\n\t\tif (newRetry > WARNING_PUSH_RETRY && this.retryTime < WARNING_PUSH_RETRY) {\n\t\t\tOC.Notification.showTemporary('Changes could not be sent yet')\n\t\t\tthis._authority.emit('error', { type: ERROR_TYPE.PUSH_FAILURE, data: {} })\n\t\t}\n\t\tthis.retryTime = newRetry\n\t}\n\n\tcarefulRetryReset() {\n\t\tthis.retryTime = MIN_PUSH_RETRY\n\t}\n\n}\n\nexport default PollingBackend\n","/* eslint-disable jsdoc/valid-types */\n/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport axios from '@nextcloud/axios'\n\nimport PollingBackend from './PollingBackend.js'\nimport { endpointUrl } from './../helpers/index.js'\nimport { getVersion, sendableSteps } from 'prosemirror-collab'\nimport mitt from 'mitt'\n\nconst defaultOptions = {\n\tshareToken: null,\n\tforceRecreate: false,\n\tserialize: (document) => document,\n}\n\n/**\n * Timeout after which the editor will consider a document without changes being synced as idle\n * The session will be terminated and the document will stay open in read-only mode with a button to reconnect if needed\n *\n * @type {number}\n */\nconst IDLE_TIMEOUT = 30\n\nconst ERROR_TYPE = {\n\t/**\n\t * Failed to save collaborative document due to external change\n\t * collission needs to be resolved manually\n\t */\n\tSAVE_COLLISSION: 0,\n\t/**\n\t * Failed to push changes for MAX_REBASE_RETRY times\n\t */\n\tPUSH_FAILURE: 1,\n\n\tLOAD_ERROR: 2,\n\n\tCONNECTION_FAILED: 3,\n\n\tSOURCE_NOT_FOUND: 4,\n}\n\nclass SyncService {\n\n\tconstructor(options) {\n\t\t/** @type {import('mitt').Emitter} _bus */\n\t\tthis._bus = mitt()\n\n\t\tthis.backend = new PollingBackend(this)\n\n\t\tthis.options = Object.assign({}, defaultOptions, options)\n\n\t\tthis.document = null\n\t\tthis.session = null\n\t\tthis.sessions = []\n\n\t\tthis.steps = []\n\t\tthis.stepClientIDs = []\n\n\t\tthis.lastStepPush = Date.now()\n\n\t\tthis.lock = null\n\n\t\treturn this\n\t}\n\n\tasync open({ fileId, filePath, initialSession }) {\n\t\tconst connectionData = initialSession\n\t\t\t|| await this._openDocument({ fileId, filePath })\n\t\tthis.document = connectionData.document\n\t\tthis.document.readOnly = connectionData.readOnly\n\t\tthis.session = connectionData.session\n\t\tthis.lock = connectionData.lock\n\t\tthis.emit('opened', {\n\t\t\tdocument: this.document,\n\t\t\tsession: this.session,\n\t\t})\n\t\tconst content = connectionData.content\n\t\t\t|| await this._fetchDocument()\n\t\tthis.emit('loaded', {\n\t\t\tdocument: this.document,\n\t\t\tsession: this.session,\n\t\t\tdocumentSource: '' + content,\n\t\t})\n\t}\n\n\tstartSync() {\n\t\tthis.backend.connect()\n\t}\n\n\t_openDocument({ fileId, filePath }) {\n\t\treturn axios.put(endpointUrl('session/create', !!this.options.shareToken), {\n\t\t\tfileId,\n\t\t\tfilePath,\n\t\t\ttoken: this.options.shareToken,\n\t\t\tguestName: this.options.guestName,\n\t\t\tforceRecreate: this.options.forceRecreate,\n\t\t})\n\t\t\t.then(response => response.data, error => {\n\t\t\t\tif (!error.response || error.code === 'ECONNABORTED') {\n\t\t\t\t\tthis.emit('error', { type: ERROR_TYPE.CONNECTION_FAILED, data: {} })\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit('error', { type: ERROR_TYPE.LOAD_ERROR, data: error.response.status })\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t})\n\t}\n\n\t_fetchDocument() {\n\t\treturn axios.post(\n\t\t\tendpointUrl('session/fetch', !!this.options.shareToken), {\n\t\t\t\tdocumentId: this.document.id,\n\t\t\t\tsessionId: this.session.id,\n\t\t\t\tsessionToken: this.session.token,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t}, {\n\t\t\t\t// Axios normally tries to parse string responses as json.\n\t\t\t\t// Just return the plain content here.\n\t\t\t\ttransformResponse: [(data) => data],\n\t\t\t}\n\t\t).then(response => response.data)\n\t}\n\n\tupdateSession(guestName) {\n\t\tif (!this.isPublic()) {\n\t\t\treturn\n\t\t}\n\t\treturn axios.post(\n\t\t\tendpointUrl('session', !!this.options.shareToken), {\n\t\t\t\tdocumentId: this.document.id,\n\t\t\t\tsessionId: this.session.id,\n\t\t\t\tsessionToken: this.session.token,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t\tguestName,\n\t\t\t}\n\t\t).then(({ data }) => {\n\t\t\tthis.session = data\n\t\t\treturn data\n\t\t}).catch((error) => {\n\t\t\tconsole.error('Failed to update the session', error)\n\t\t\treturn Promise.reject(error)\n\t\t})\n\t}\n\n\tsendSteps(_sendable) {\n\t\tconst sendable = _sendable || sendableSteps(this.state)\n\t\tif (!sendable) {\n\t\t\treturn\n\t\t}\n\t\treturn this.backend.sendSteps(sendable)\n\t}\n\n\tstepsSince(version) {\n\t\treturn {\n\t\t\tsteps: this.steps.slice(version),\n\t\t\tclientIDs: this.stepClientIDs.slice(version),\n\t\t}\n\t}\n\n\t_receiveSteps({ steps, document }) {\n\t\tconst newSteps = []\n\t\tfor (let i = 0; i < steps.length; i++) {\n\t\t\tconst singleSteps = steps[i].data\n\t\t\tif (!Array.isArray(singleSteps)) {\n\t\t\t\tconsole.error('Invalid step data, skipping step', steps[i])\n\t\t\t\t// TODO: recover\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsingleSteps.forEach(step => {\n\t\t\t\tthis.steps.push(step)\n\t\t\t\tnewSteps.push({\n\t\t\t\t\tstep,\n\t\t\t\t\tclientID: steps[i].sessionId,\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t\tthis.lastStepPush = Date.now()\n\t\tthis.emit('sync', { steps: newSteps, document })\n\t\tconsole.debug('receivedSteps', 'newVersion', this._getVersion())\n\t}\n\n\tcheckIdle() {\n\t\tconst lastPushMinutesAgo = (Date.now() - this.lastStepPush) / 1000 / 60\n\t\tif (lastPushMinutesAgo > IDLE_TIMEOUT) {\n\t\t\tconsole.debug(`[SyncService] Document is idle for ${this.IDLE_TIMEOUT} minutes, suspending connection`)\n\t\t\tthis.emit('idle')\n\t\t}\n\t}\n\n\t_getVersion() {\n\t\tif (this.state) {\n\t\t\treturn getVersion(this.state)\n\t\t}\n\t\treturn 0\n\t}\n\n\t_getDocument() {\n\t\tif (this.state) {\n\t\t\treturn this.state.doc\n\t\t}\n\t}\n\n\t_getContent() {\n\t\treturn this.options.serialize(this._getDocument())\n\t}\n\n\tsave() {\n\t\tif (this.backend.save) {\n\t\t\tthis.backend.save()\n\t\t}\n\t}\n\n\tforceSave() {\n\t\tif (this.backend.forceSave) {\n\t\t\tthis.backend.forceSave()\n\t\t}\n\t}\n\n\tclose() {\n\t\tlet closed = false\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.on('save', () => {\n\t\t\t\tthis._close().then(() => {\n\t\t\t\t\tclosed = true\n\t\t\t\t\tresolve()\n\t\t\t\t}).catch(() => resolve())\n\t\t\t})\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!closed) {\n\t\t\t\t\tthis._close().then(() => {\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}).catch(() => resolve())\n\t\t\t\t}\n\t\t\t}, 2000)\n\t\t\tthis.save()\n\t\t})\n\t}\n\n\t_close() {\n\t\tif (this.document === null || this.session === null) {\n\t\t\treturn Promise.resolve()\n\t\t}\n\t\tthis.backend.disconnect()\n\t\treturn axios.post(\n\t\t\tendpointUrl('session/close', !!this.options.shareToken), {\n\t\t\t\tdocumentId: this.document.id,\n\t\t\t\tsessionId: this.session.id,\n\t\t\t\tsessionToken: this.session.token,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t})\n\t}\n\n\tuploadImage(image) {\n\t\tconst formData = new FormData()\n\t\tformData.append('image', image)\n\t\tformData.append('documentId', this.document.id)\n\t\tformData.append('sessionId', this.session.id)\n\t\tformData.append('sessionToken', this.session.token)\n\t\tformData.append('shareToken', this.options.shareToken || '')\n\t\tconst url = endpointUrl('image/upload')\n\t\treturn axios.post(url, formData, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'multipart/form-data',\n\t\t\t},\n\t\t})\n\t}\n\n\tinsertImageLink(imageLink) {\n\t\tconst params = {\n\t\t\tdocumentId: this.document.id,\n\t\t\tsessionId: this.session.id,\n\t\t\tsessionToken: this.session.token,\n\t\t\tshareToken: this.options.shareToken || '',\n\t\t\tlink: imageLink,\n\t\t}\n\t\tconst url = endpointUrl('image/link')\n\t\treturn axios.post(url, params)\n\t}\n\n\tinsertImageFile(imagePath) {\n\t\tconst params = {\n\t\t\tdocumentId: this.document.id,\n\t\t\tsessionId: this.session.id,\n\t\t\tsessionToken: this.session.token,\n\t\t\timagePath,\n\t\t}\n\t\tconst url = endpointUrl('image/filepath')\n\t\treturn axios.post(url, params)\n\t}\n\n\ton(event, callback) {\n\t\tthis._bus.on(event, callback)\n\t\treturn this\n\t}\n\n\toff(event, callback) {\n\t\tthis._bus.off(event, callback)\n\t\treturn this\n\t}\n\n\temit(event, data) {\n\t\tthis._bus.emit(event, data)\n\t}\n\n\tisPublic() {\n\t\treturn !!this.options.shareToken\n\t}\n\n}\n\nexport default SyncService\nexport { SyncService, ERROR_TYPE, IDLE_TIMEOUT }\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nconst extensionHighlight = {\n\tpy: 'python',\n\tgyp: 'python',\n\twsgi: 'python',\n\thtm: 'html',\n\txhtml: 'html',\n\terl: 'erlang',\n\tjsp: 'java',\n\tpl: 'perl',\n\trss: 'xml',\n\tatom: 'xml',\n\txsl: 'xml',\n\tplist: 'xml',\n\trb: 'ruby',\n\tbuilder: 'ruby',\n\tgemspec: 'ruby',\n\tpodspec: 'ruby',\n\tthor: 'ruby',\n\tdiff: 'patch',\n\ths: 'haskell',\n\ticl: 'haskell',\n\tphp3: 'php',\n\tphp4: 'php',\n\tphp5: 'php',\n\tphp6: 'php',\n\tsh: 'bash',\n\tzsh: 'bash',\n\tst: 'smalltalk',\n\tas: 'actionscript',\n\tapacheconf: 'apache',\n\tosacript: 'applescript',\n\tb: 'brainfuck',\n\tbf: 'brainfuck',\n\tclj: 'clojure',\n\t'cmake.in': 'cmake',\n\tcoffee: 'coffeescript',\n\tcson: 'coffescript',\n\ticed: 'coffescript',\n\tc: 'cpp',\n\th: 'cpp',\n\t'c++': 'cpp',\n\t'h++': 'cpp',\n\thh: 'cpp',\n\tjinja: 'django',\n\tbat: 'dos',\n\tcmd: 'dos',\n\tfs: 'fsharp',\n\thbs: 'handlebars',\n\t'html.hbs': 'handlebars',\n\t'html.handlebars': 'handlebars',\n\tsublime_metrics: 'json',\n\tsublime_session: 'json',\n\t'sublime-keymap': 'json',\n\t'sublime-mousemap': 'json',\n\t'sublime-project': 'json',\n\t'sublime-settings': 'json',\n\t'sublime-workspace': 'json',\n\tjs: 'javascript',\n\tmk: 'makefile',\n\tmak: 'makefile',\n\tmd: 'markdown',\n\tmkdown: 'markdown',\n\tmkd: 'markdown',\n\tnginxconf: 'nginx',\n\tm: 'objectivec',\n\tmm: 'objectivec',\n\tml: 'ocaml',\n\trs: 'rust',\n\tsci: 'scilab',\n\ttxt: 'plaintext',\n\tvb: 'vbnet',\n\tvbs: 'vbscript',\n}\n\nexport default extensionHighlight\nexport {\n\textensionHighlight,\n}\n","\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t{{ t('text', 'Document idle for {timeout} minutes, click to continue editing', { timeout: IDLE_TIMEOUT }) }} {{ t('text', 'Reconnect') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ t('text', 'The document has been changed outside of the editor. The changes cannot be applied.') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ t('text', 'File could not be loaded. Please check your internet connection.') }} {{ t('text', 'Reconnect') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t {{ t('text', 'This file is opened read-only as it is currently locked by {user}.', { user: lock.displayName }) }}\n\t\t\t
\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{{ lastSavedStatus }}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\n\t\t\t\n\t\t\t \n\t\t\n\n\t\t \n\t\t \n\t\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=0&id=701abc86&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=0&id=701abc86&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditorWrapper.vue?vue&type=template&id=701abc86&scoped=true&\"\nimport script from \"./EditorWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorWrapper.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditorWrapper.vue?vue&type=style&index=0&id=701abc86&scoped=true&lang=scss&\"\nimport style1 from \"./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"701abc86\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editor)?_c('EditorContent',{attrs:{\"id\":\"read-only-editor\",\"editor\":_vm.editor}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\t \n\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ReadOnlyEditor.vue?vue&type=template&id=9d98c77a&\"\nimport script from \"./ReadOnlyEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./ReadOnlyEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{'icon-loading': _vm.saving},attrs:{\"id\":\"direct-editor\"}},[_c('EditorWrapper',{ref:\"editor\",attrs:{\"initial-session\":_vm.initialSession,\"active\":true,\"mime\":_vm.initial.mimetype,\"is-direct-editing\":true},on:{\"ready\":_vm.loaded},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('button',{staticClass:\"icon-share\",on:{\"click\":_vm.share}}),_vm._v(\" \"),_c('button',{staticClass:\"icon-close\",on:{\"click\":_vm.close}})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t \n\t\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=style&index=0&id=ecc9f54c&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=style&index=0&id=ecc9f54c&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DirectEditing.vue?vue&type=template&id=ecc9f54c&scoped=true&\"\nimport script from \"./DirectEditing.vue?vue&type=script&lang=js&\"\nexport * from \"./DirectEditing.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DirectEditing.vue?vue&type=style&index=0&id=ecc9f54c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ecc9f54c\",\n null\n \n)\n\nexport default component.exports"],"names":["options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_v","editor","on","deleteNode","_s","t","_e","tableCaption","Node","name","content","addAttributes","renderHTML","toMarkdown","state","node","parseHTML","tag","priority","Table","addExtensions","addCommands","parent","insertTable","tr","dispatch","isInTable","schema","rowsCount","colsCount","cellContent","headerCells","cells","index","cell","nodes","tableCell","createAndFill","push","headerCell","tableHeader","headRow","tableHeadRow","createChecked","rows","tableRow","table","createTable","offset","selection","anchor","replaceSelectionWith","scrollIntoView","setSelection","TextSelection","doc","resolve","leaveTable","$head","empty","tableDepth","depth","$next","after","goToNextRow","$cell","childCount","cellStart","row","indexAfter","rowNode","child","nodeSize","findSameCellInNextRow","selectionCell","moveCellForward","HTMLAttributes","mergeAttributes","renderContent","closeBlock","addKeyboardShortcuts","Tab","commands","goToNextCell","Enter","can","addRowAfter","chain","run","addNodeView","VueNodeViewRenderer","TableView","addRowBefore","deleteRow","TableCell","write","renderInline","TableCellView","addColumnBefore","addColumnAfter","deleteColumn","TableHeader","TableHeaderView","TableRow","ensureNewLine","extend","forEach","repeat","textContent","length","basedir","file","end","lastIndexOf","slice","domHref","ref","href","match","relPath","id","dir","base","rel","split","pop","shift","concat","join","absolutePath","OCA","Viewer","generateUrl","parseHref","dom","getAttribute","path","openLink","event","_attrs","htmlHref","target","closest","query","OC","parseQueryString","fragment","filename","document","title","theme","window","location","pathname","open","fileId","markdownit","console","error","clickHandler","type","onClick","Plugin","props","key","PluginKey","handleClick","view","pos","link","marks","find","m","button","ctrlKey","stopPropagation","warn","debug","TipTapLink","addOptions","default","inclusive","getAttrs","mark","addProseMirrorPlugins","plugins","filter","startsWith","openOnClick","TipTapStrike","style","value","close","mixable","expelEnclosingWhitespace","Bold","addInputRules","markInputRule","starInputRegex","addPasteRules","markPasteRule","starPasteRegex","TipTapUnderline","underscoreInputRegex","underscorePasteRegex","Italic","TipTapItalic","class","loaded","src","imageLoaded","isSupportedImage","directives","rawName","showIcons","expression","$event","imageUrl","onLoaded","domProps","alt","indexOf","_k","keyCode","updateAlt","isEditable","internalLinkOrImage","TiptapImage","selectable","currentDirectory","undefined","ImageView","handleDrop","dataTransfer","files","coordinates","posAtCoords","left","clientX","top","clientY","customEvent","CustomEvent","bubbles","detail","position","dispatchEvent","handlePaste","clipboardData","insertContent","TiptapBulletList","InputRule","handler","range","wrappingInputRule","getAttributes","insertText","TipTapTaskItem","nested","draggable","adjust","checked","el","querySelector","context","listAttributes","checkboxAttributes","contenteditable","includes","parentList","findParentNodeClosestToPos","taskItem","listItem","tagName","toLowerCase","setNodeMarkup","TiptapTaskList","renderList","bullet","nodeEqualsType","types","Array","isArray","TrailingNode","Extension","notAfter","plugin","disabledNodes","Object","entries","map","appendTransaction","_","__","shouldInsertNodeAtEnd","getState","endPosition","size","create","init","lastChild","apply","docChanged","Heading","TipTapHeading","levels","reduce","items","level","toggleHeading","group","defining","typesAvailable","rendered","element","classList","contains","attributes","classy","setCallout","wrapIn","toggleCallout","isNodeActive","unsetCallout","updateAttributes","lift","_l","emojiObject","selectedIndex","selectItem","native","short_name","command","loadSyntaxHighlight","language","list","listLanguages","info","syntax","registerLanguage","createEditor","onCreate","onUpdate","extensions","enableRichEditing","richEditingExtensions","Markdown","Document","Paragraph","HardBreak","Strong","Strike","Link","Blockquote","Code","CodeBlock","BulletList","HorizontalRule","OrderedList","ListItem","TableHeadRow","TaskList","TaskItem","Callout","Underline","Image","inline","Emoji","suggestion","emojiSearch","render","component","popup","onStart","VueRenderer","EmojiListWrapper","propsData","tippy","getReferenceClientRect","clientRect","appendTo","body","showOnCreate","interactive","trigger","placement","updateProps","setProps","onKeyDown","destroy","onExit","Placeholder","emptyNodeClass","placeholder","showOnlyWhenEditable","Dropcursor","PlainTextDocument","CodeBlockLowlight","lowlight","Editor","Text","History","SerializeException","message","serializePlainText","tiptap","getJSON","codeBlock","text","EDITOR","Symbol","SYNC_SERVICE","useEditorMixin","inject","$editor","from","useSyncServiceMixin","$syncService","extendMarkSchema","extension","storage","getExtensionField","extendNodeSchema","createMarkdownSerializer","defaultNodes","convertNames","defaultMarkdownSerializer","defaultMarks","serializer","MarkdownSerializer","extractToMarkdown","serialize","tightLists","nodesOrMarks","spec","object","convert","replace","_m","letter","toUpperCase","fromEntries","EmojiPluginKey","char","allowedPrefixes","pluginKey","focus","insertContentAt","emoji","Suggestion","TipTapHardBreak","i","handleKeyDown","metaKey","shiftKey","Span","to","author","updateBlameMap","transform","clientIDs","result","mapping","span","maps","start","next","splice","Math","min","max","insertIntoBlameMap","TrackState","blameMap","clientID","getMeta","steps","item","color","floor","abs","sin","toString","viewReference","editorView","instance","tracked","deco","DecorationSet","oldState","decos","tState","setMeta","composing","applyTransform","Decoration","dec","decorations","timeout","fn","delay","getSendableSteps","sendable","sendableSteps","editable","onSendable","version","step","toJSON","debounce","args","clearTimeout","setTimeout","random","update","getVersion","receiveTransaction","Step","collab","documentReady","callback","attachEvent","readyState","addEventListener","_baseUrl","endpointUrl","endpoint","randomGuestNames","getRandomGuestName","buildRender","tokens","idx","env","slf","nesting","attrSet","attrJoin","renderToken","md","use","container","MarkdownIt","html","breaks","enable","taskLists","labelAfter","core","ruler","token","attrGet","firstChild","attrIndex","splitBefore","parentIndex","predicate","searchLevel","findChildOf","TokenConstructor","closeList","block","openList","splitListAt","Token","ruler2","markup","callouts","data","isMobile","_isMobile","beforeMount","_onResize","beforeDestroy","removeEventListener","methods","documentElement","clientWidth","$store","store","persistentStorage","getBuilder","persist","build","Vue","Vuex","Store","showAuthorAnnotations","getItem","currentSession","mutations","SET_SHOW_AUTHOR_ANNOTATIONS","setItem","SET_CURRENT_SESSION","actions","setShowAuthorAnnotations","commit","setCurrentSession","___CSS_LOADER_EXPORT___","module","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","deepFreeze","obj","Map","clear","delete","set","Error","Set","add","freeze","getOwnPropertyNames","prop","isFrozen","deepFreezeEs6","_default","Response","constructor","mode","isMatchIgnored","ignoreMatch","escapeHTML","inherit","original","objects","emitsWrappingTags","kind","HTMLRenderer","parseTree","buffer","classPrefix","walk","addText","openNode","className","sublanguage","closeNode","TokenTree","rootNode","children","stack","root","closeAllNodes","JSON","stringify","builder","_walk","static","every","_collapse","TokenTreeEmitter","super","addKeyword","addSublanguage","emitter","toHTML","finalize","source","re","BACKREF_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","BACKSLASH_ESCAPE","begin","relevance","APOS_STRING_MODE","illegal","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","modeOptions","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","CSS_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","MODES","__proto__","MATCH_NOTHING_RE","RE_STARTERS_RE","SHEBANG","opts","beginShebang","binary","x","resp","END_SAME_AS_BEGIN","assign","_beginMatch","skipIfhasPrecedingDot","response","input","beginKeywords","__beforeBegin","keywords","compileIllegal","_parent","either","compileMatch","compileRelevance","COMMON_KEYWORDS","DEFAULT_KEYWORD_CLASSNAME","compileKeywords","rawKeywords","caseInsensitive","compiledKeywords","compileList","keys","keywordList","keyword","pair","scoreForKeyword","providedScore","Number","commonKeyword","compileLanguage","langRe","global","RegExp","case_insensitive","MultiRegex","matchIndexes","regexes","matchAt","addRule","exec","countMatchGroups","compile","terminators","matcherRe","regexps","separator","numCaptures","regex","out","substring","String","lastIndex","s","findIndex","matchData","ResumableMultiRegex","rules","multiRegexes","count","regexIndex","getMatcher","matcher","resumingScanAtSamePosition","considerAll","m2","compilerExtensions","classNameAliases","compileMode","cmode","isCompiled","ext","keywordPattern","$pattern","lexemes","keywordPatternRe","beginRe","endSameAsBegin","endsWithParent","endRe","terminatorEnd","illegalRe","c","variants","cachedVariants","variant","dependencyOnParent","starts","expandOrCloneMode","mm","term","rule","buildModeRegex","BuildVuePlugin","hljs","Component","detectedLanguage","unknownLanguage","computed","highlighted","autoDetect","getLanguage","code","highlightAuto","highlight","ignoreIllegals","autodetect","Boolean","createElement","innerHTML","VuePlugin","install","mergeHTMLPlugin","originalStream","nodeStream","resultNode","processed","nodeStack","selectStream","attributeString","attr","nodeName","call","stream","reverse","substr","mergeStreams","_nodeStream","nextSibling","nodeType","nodeValue","seenDeprecations","log","deprecated","escape$1","inherit$1","NO_MATCH","languages","aliases","SAFE_MODE","fixMarkupRe","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","noHighlightRe","languageDetectRe","tabReplace","useBR","__emitter","shouldNotHighlight","languageName","test","codeOrlanguageName","optionsOrCode","continuation","fire","_highlight","codeToHighlight","keywordData","matchText","prototype","hasOwnProperty","processBuffer","subLanguage","modeBuffer","continuations","processSubLanguage","buf","keywordRelevance","cssClass","processKeywords","startNewMode","endOfMode","matchPlusRemainder","matched","lexeme","endsParent","doIgnore","resumeScanAtSamePosition","doBeginMatch","newMode","beforeCallbacks","cb","skip","excludeBegin","returnBegin","doEndMatch","endMode","origin","returnEnd","excludeEnd","lastMatch","processLexeme","textBeforeMatch","err","badRule","iterations","current","unshift","processContinuations","processedCount","illegalBy","msg","sofar","errorRaised","languageSubset","plaintext","justTextHighlightResult","results","autoDetection","sorted","sort","a","b","supersetOf","best","secondBest","second_best","brPlugin","TAB_REPLACE_RE","tabReplacePlugin","highlightElement","classes","parentNode","_class","blockLanguage","currentLang","resultLang","updateClassName","relavance","initHighlighting","called","querySelectorAll","wantsHighlight","highlightAll","registerAliases","aliasList","alias","lang","fixMarkup","arg","highlightBlock","configure","userOptions","initHighlightingOnLoad","languageDefinition","error$1","rawDefinition","bind","unregisterLanguage","requireLanguage","addPlugin","upgradePluginAPI","vuePlugin","debugMode","safeMode","versionString","HLJS","exports","webpackAsyncContext","req","__webpack_require__","o","Promise","then","e","ids","webpackContext","webpackContextResolve","$emit","authority","_authority","fetchInterval","retryTime","lock","fetchRetryCounter","initialLoadingFinished","fetcher","setInterval","_fetchSteps","visibilitychange","shareToken","_forcedSave","fetchSteps","_manualSave","autosaveContent","_getVersion","lastSavedVersion","_getContent","axios","_isPublic","documentId","sessionId","session","sessionToken","force","manualSave","filePath","_handleResponse","_handleError","emit","sessions","checkIdle","disconnect","Date","now","FETCH_INTERVAL_INVISIBLE","lastContact","maximumRefetchTimer","increaseRefetchTimer","dirty","initialLoading","_receiveSteps","resetRefetchTimer","status","currentVersion","ERROR_TYPE","SAVE_COLLISSION","outsideChange","SOURCE_NOT_FOUND","CONNECTION_FAILED","retry","_sendable","sendSteps","carefulRetryReset","catch","PUSH_FAILURE","Notification","showTemporary","carefulRetry","clearInterval","visibilityState","newRetry","defaultOptions","forceRecreate","LOAD_ERROR","SyncService","_bus","mitt","backend","PollingBackend","stepClientIDs","lastStepPush","initialSession","_openDocument","connectionData","readOnly","_fetchDocument","documentSource","connect","guestName","transformResponse","isPublic","reject","newSteps","singleSteps","IDLE_TIMEOUT","_getDocument","save","forceSave","closed","_close","image","formData","FormData","append","url","headers","imageLink","params","imagePath","off","extensionHighlight","py","gyp","wsgi","htm","xhtml","erl","jsp","pl","rss","atom","xsl","plist","rb","gemspec","podspec","thor","diff","hs","icl","php3","php4","php5","php6","sh","zsh","st","as","apacheconf","osacript","bf","clj","coffee","cson","iced","h","hh","jinja","bat","cmd","fs","hbs","sublime_metrics","sublime_session","js","mk","mak","mkdown","mkd","nginxconf","ml","rs","sci","txt","vb","vbs","reconnect","user","displayName","hasSyncCollission","contentLoaded","hasConnectionIssue","isRichEditor","draggedOver","onPaste","preventDefault","onEditorDrop","relativePath","autohide","menubarLoaded","uploadingImages","showHelp","insertImagePath","uploadImageFiles","lastSavedStatusClass","lastSavedStatus","filteredSessions","_t","contentWrapper","syncError","resolveUseThisVersion","resolveUseServerVersion","hideHelp","saving","initial","mimetype","scopedSlots","_u","share","proxy"],"sourceRoot":""}
\ No newline at end of file
diff --git a/lib/Service/ImageService.php b/lib/Service/ImageService.php
index 901575355de..f4f1597e54b 100644
--- a/lib/Service/ImageService.php
+++ b/lib/Service/ImageService.php
@@ -28,6 +28,7 @@
use Exception;
use OCA\Text\Controller\ImageController;
+use OCA\Files_Sharing\SharedStorage;
use OCP\Constants;
use OCP\Files\Folder;
use OCP\Files\File;
@@ -328,13 +329,27 @@ private function getFileFromPath(string $filePath, string $userId): ?File {
$userFolder = $this->rootFolder->getUserFolder($userId);
if ($userFolder->nodeExists($filePath)) {
$file = $userFolder->get($filePath);
- if ($file instanceof File) {
+ if ($file instanceof File && !$this->isDownloadDisabled($file)) {
return $file;
}
}
return null;
}
+ private function isDownloadDisabled(File $file): bool {
+ $storage = $file->getStorage();
+ if ($storage->instanceOfStorage(SharedStorage::class)) {
+ /** @var SharedStorage $storage */
+ $share = $storage->getShare();
+ $attributes = $share->getAttributes();
+ if ($attributes !== null && $attributes->getAttribute('permissions', 'download') === false) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
/**
* Get a user file from file ID
*
@@ -347,9 +362,10 @@ private function getFileFromPath(string $filePath, string $userId): ?File {
*/
private function getTextFile(int $documentId, string $userId): File {
$userFolder = $this->rootFolder->getUserFolder($userId);
- $textFile = $userFolder->getById($documentId);
- if (count($textFile) > 0 && $textFile[0] instanceof File) {
- return $textFile[0];
+ $files = $userFolder->getById($documentId);
+ $file = array_shift($files);
+ if ($file instanceof File && !$this->isDownloadDisabled($file)) {
+ return $file;
}
throw new NotFoundException('Text file with id=' . $documentId . ' was not found in storage of ' . $userId);
}
@@ -370,15 +386,16 @@ private function getTextFilePublic(?int $documentId, string $shareToken): File {
// shared file or folder?
if ($share->getNodeType() === 'file') {
$textFile = $share->getNode();
- if ($textFile instanceof File) {
+ if ($textFile instanceof File && !$this->isDownloadDisabled($textFile)) {
return $textFile;
}
} elseif ($documentId !== null && $share->getNodeType() === 'folder') {
$folder = $share->getNode();
if ($folder instanceof Folder) {
$textFile = $folder->getById($documentId);
- if (count($textFile) > 0 && $textFile[0] instanceof File) {
- return $textFile[0];
+ $textFile = array_shift($textFile);
+ if ($textFile instanceof File && !$this->isDownloadDisabled($textFile)) {
+ return $textFile;
}
}
}